OSDN Git Service

add decode_raw_transaction
authorChengcheng Zhang <943420582@qq.com>
Wed, 23 Jan 2019 11:06:48 +0000 (19:06 +0800)
committerChengcheng Zhang <943420582@qq.com>
Wed, 23 Jan 2019 11:06:48 +0000 (19:06 +0800)
app/api/__init__.py
app/api/resources.py
app/model/transaction.py
assets/main.js
kit.html

index e8216f2..f30c0a4 100644 (file)
@@ -22,6 +22,7 @@ from app.api.resources import Submit_Transaction
 from app.api.resources import Create_QRcode_Base64
 from app.api.resources import Create_New_Key
 from app.api.resources import Create_New_Address
+from app.api.resources import Decode_Raw_Transaction
 
 blueprint = Blueprint('api', __name__, url_prefix='/api/v1')
 api = Api(blueprint)
@@ -46,4 +47,5 @@ api.add_resource(Get_Path_From_Index, '/get_path_from_index')
 api.add_resource(Submit_Transaction, '/submit_transaction')
 api.add_resource(Create_QRcode_Base64, '/create_qrcode_base64')
 api.add_resource(Create_New_Key, '/create_new_key')
-api.add_resource(Create_New_Address, '/create_new_address')
\ No newline at end of file
+api.add_resource(Create_New_Address, '/create_new_address')
+api.add_resource(Decode_Raw_Transaction, '/decode_raw_transaction')
\ No newline at end of file
index af0dd9c..88dd3b3 100644 (file)
@@ -22,6 +22,7 @@ from app.model.receiver import create_qrcode_base64
 from app.model.transaction import submit_transaction
 from app.model.key import create_new_key
 from app.model.receiver import create_new_address
+from app.model.transaction import decode_raw_transaction
 
 
 parser = reqparse.RequestParser()
@@ -223,4 +224,12 @@ class Create_New_Address(Resource):
         change = args.get('change_bool')
         network = args.get('network_str')
         response = create_new_address(xpub, account_index, address_index, change, network)
+        return response
+
+class Decode_Raw_Transaction(Resource):
+
+    def post(self):
+        args = parser.parse_args()
+        raw_transaction = args.get('raw_transaction_str')
+        response = decode_raw_transaction(raw_transaction)
         return response
\ No newline at end of file
index db18f6e..6ff096c 100644 (file)
@@ -24,3 +24,19 @@ def submit_transaction(raw_transaction_str, network_str):
     return {
         "response": response.text[:-1]
     }
+
+
+def decode_raw_transaction(raw_transaction_str):
+    raw_transaction_dict = {
+        "raw_transaction": raw_transaction_str
+    }
+    raw_transaction_json = json.dumps(raw_transaction_dict)
+    headers = {
+        "content-type": "application/json",
+        "accept": "application/json"
+    }
+    url = 'http://127.0.0.1:9888/decode-raw-transaction'
+    response = requests.post(url, headers=headers, data=raw_transaction_json)
+    return {
+        "response": response.text[:-1]
+    }
index 9cdc81c..789718f 100644 (file)
@@ -159,4 +159,29 @@ $(function(){
     console.log('清除');
     $('#txtRawTransaction').val('')
   })
+  // 解码原生交易信息
+  $('#btnDocodeRawTransaction').click(function(){
+    console.log('解码交易');
+    var raw_transaction_str = $('#txtRawHexTransaction').val()
+    $.ajax({
+      method: 'post',  //get or post
+      url: 'http://kit.blockmeta.com/api/v1/decode_raw_transaction',
+      data: {
+        "raw_transaction_str": raw_transaction_str
+      },
+      dataType: 'json',
+    }).done(function(data){
+      console.log(data);
+      layer.msg('解码成功')
+      $('#txtJsonTransaction').val(data.response)
+    }).fail(function(err){
+      layer.alert('解码失败,请检查输入数据格式是否正确' + err);
+    });
+  })
+  // 清除解码交易
+  $('#btnResetDecodeRawTransaction').click(function(){
+    console.log('清除');
+    $('#txtRawHexTransaction').val('')
+    $('#txtJsonTransaction').val('')
+  })
 });
index 81bf6ce..9bb32f1 100644 (file)
--- a/kit.html
+++ b/kit.html
       </form>
     </div>
   </div>
+  <div class="panel panel-default sc-bd">
+    <div class="panel-heading">
+      <h3 class="panel-title">Decode Raw Transaction </h3>
+    </div>
+    <div class="panel-body">
+      <form class="form-horizontal">
+        <!-- 签名好的交易信息 -->
+        <div class="form-group">
+          <label class="col-sm-2 control-label">Raw Transaction</label>
+          <div class="col-sm-10">
+            <input type="text" class="form-control" id="txtRawHexTransaction" placeholder="Raw Hex Transaction, e.g. 070100010161015f28b7b53d8dc90006bf97e0a4eaae2a72ec3d869873188698b694beaf20789f21ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8099c4d5990100011600149335b1cbd4a77b78e33315a0ed10a95b12e7ca48630240897e2d9d24a3b5faaed0579dee7597b401491595675f897504f8945b29d836235bd2fca72a3ad0cae814628973ebcd142d9d6cc92d0b2571b69e5370a98a340c208cb7fb3086f58db9a31401b99e8c658be66134fb9034de1d5c462679270b090702013effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80f9f8bc98010116001406ce4b689ba026ffd3a7ca65d1d059546d4b78a000013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80c6868f01011600147929ef91997c827bebf60fa608f876ea27523c4700" maxlength="100000">
+          </div>
+        </div>
+        <!-- json格式交易 -->
+        <div class="form-group">
+          <label class="col-sm-2 control-label">JSON Format</label>
+          <div class="col-sm-10">
+            <input type="text" class="form-control" id="txtJsonTransaction" placeholder="JSON Format Transaction" maxlength="100000" readonly>
+          </div>
+        </div>
+        <div class="form-group">
+          <div class="col-sm-offset-2 col-sm-10">
+            <a id="btnDocodeRawTransaction" class="btn btn-primary">Decode Transaction</a>
+            <a id="btnResetDecodeRawTransaction" class="btn btn-primary">Reset</a>
+          </div>
+        </div>
+      </form>
+    </div>
+  </div>
 </body>
 
 </html>
\ No newline at end of file