def get(self):
     btc_rpc_connection = AuthServiceProxy(RPC_URL)
     try:
         blkhash = self.get_argument("blkhash") if self.get_argument(
             "blkhash") else BTC_GetBlockCount.process(btc_rpc_connection)
         commands = [["getblock"]]
         data = btc_rpc_connection.batch_(commands)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(data),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         logging.error("BTC_GetBlockHash error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #2
0
 def post(self):
     btc_rpc_connection = AuthServiceProxy(RPC_URL)
     try:
         rawdata = self.get_argument("rawdata")
         if not rawdata: return
         commands = [["sendrawtransaction", rawdata]]
         data = btc_rpc_connection.batch_(commands)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(data),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         logging.error("BTC_SendRawTransaction error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #3
0
 def post(self):
     rpcconn = USDPProxy(g_IP, g_PORT)
     try:
         nBlockNum = self.get_argument("blkNumber")
         data = USDP_GetTransactionFromBlock.getTransactionFromBlock(
             rpcconn, nBlockNum)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(data),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         logging.error(
             "USDP_GetTransactionFromBlock : error:{0} in {1}".format(
                 e, get_linenumber()))
Exemple #4
0
    def get(self):
        try:
            rpcconn = AuthServiceProxy(RPC_URL)
            data = BTC_EstimateSmartFee.calcFee(rpcconn)
            data = '%.8f' % data
            self.write(
                json.dumps(BaseHandler.success_ret_with_data(data),
                           default=decimal_default))
        except Exception as e:
            self.write(
                json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
            logging.error("BTC_EstimateSmartFee error:{0} in {1}".format(
                e, get_linenumber()))

        pass
Exemple #5
0
    def post(self):

        try:
            address = self.get_argument("address")
            if len(address) != 56:
                raise Exception("invalid address, must be 56 byte")
            data = XLM_GetAccountInfo.process(address=address)
            self.write(
                json.dumps(BaseHandler.success_ret_with_data(data),
                           default=decimal_default))
        except Exception as e:
            self.write(
                json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
            logging.error("XLM_GetAccountInfo():", e)

        pass
Exemple #6
0
    def post(self):
        try:
            # symbol = self.get_argument('symbol')
            # if str(symbol) not in ['TRX', 'TRC20-USDT']:
            #     raise Exception("invalid symbol")

            retdata = self.process(symbol='TRX')
            self.write(
                json.dumps(BaseHandler.success_ret_with_data(retdata),
                           default=decimal_default))
            pass
        except Exception as e:
            self.write(
                json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
            logging.error(" TRX_CollectionQuery error:{0} in {1}".format(
                e, get_linenumber()))
Exemple #7
0
 def post(self):
     btc_rpc_connection = AuthServiceProxy(BTC_RPC_URL)#todo-junying-20190310
     try:
         from_addr = self.get_argument("from") if self.get_argument("from") else '2N8jq3e7eBhrrd9d1dMNCvkwtsvN9md2Hmd'
         to_addr = self.get_argument("to") if self.get_argument("to") else '2MzrgJmFfHB1mz4QqwuSWePbb183TxHR1wA'
         #amount = float(self.get_argument("amount"))
         from decimal import Decimal
         amount = Decimal(str(self.get_argument("amount")))
         ret, rsp = BTC_CreateRawTransaction.process(btc_rpc_connection,from_addr,to_addr,amount)
         if not ret:
             self.write(json.dumps(BaseHandler.error_ret_with_data(rsp)))
             return 
         self.write(json.dumps(BaseHandler.success_ret_with_data(rsp), default=decimal_default))
     except Exception as e:
         self.write(json.dumps(BaseHandler.error_ret_with_data("error: %s"%e)))
         print("BTC_CreatRawTransaction error:{0} in {1}".format(e,get_linenumber()))
Exemple #8
0
 def get(self):
     rpc_connection = OrientWaltProxy(ip_addr, port)
     try:
         blknumber = int(self.get_argument(
             "blknumber")) if self.get_argument("blknumber") else int(
                 OWT_BlockNumber.latest(rpc_connection))
         data = OWT_GetBlockTransactionCount.fromGetBlock(
             rpc_connection, blknumber)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(data),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         print("OWT_GetBlockTransactionCount error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #9
0
 def get(self):
     rpc_connection = OrientWaltProxy(ip_addr, port)
     try:
         block_number = self.get_argument("number")
         block_number = int(
             block_number,
             16) if '0x' in block_number else int(block_number)
         tx_infos = rpc_connection.owt_getBlockByNumber(block_number)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(tx_infos),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         print("OWT_GetBlockByNumber Error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #10
0
 def post(self):
     rpc_connection = AuthServiceProxy(RPC_URL)
     try:
         lastscannedblktime = int(str(self.get_argument("blocktime")))
         data = BTC_CrawlTxData.process(rpc_connection, lastscannedblktime)
         for i in range(len(data)):
             data[i]["amount"] = str(
                 data[i]["amount"])  #convert to str to avoid bug
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(data),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         logging.error("BTC_CrawlTxData error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #11
0
 def get(self):
     btc_rpc_connection = AuthServiceProxy(OMNI_RPC_URL)
     data = None
     try:
         minconf = int(self.get_argument(
             "minconf")) if not self.get_argument("minconf") == "" else 1
         commands = [["listaccounts", minconf]]
         data = btc_rpc_connection.batch_(commands)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(data),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         logging.error("uBTC_ListAccounts error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #12
0
 def post(self):
     btc_rpc_connection = AuthServiceProxy(OMNI_RPC_URL)#todo-junying-20190310
     try:
         rawdata = self.get_argument("rawdata") if self.get_argument("rawdata") else '02000000011d9c5db5afc7b8f9606569a9d470c435764b8dbf372c473d152c0cff1a77f5f10100000000ffffffff024d9083000000000017a914a9f2cc6c49785beabd9eb26d6d4d1f17fd365d308780841e000000000017a914537d68a8c0e4c04262f419a81aed12ffbad148408700000000'
         privkey = self.get_argument("privkey") if self.get_argument("privkey") else 'cTe4efinSJLgj8BYdkvnH27Dd6QCM6eeZYRPb6ifGLzuS8oH1gam'
         addr = self.get_argument("address") if self.get_argument("address") else 'mtwEVo8FVJrMcms1GyzhbTUSafwDKvyjsq'
         amount = Decimal(self.get_argument("amount")) if self.get_argument("amount") else Decimal(OMNI_TRANSACTION_FEE)
         from btc.handler import BTC_SignRawTransaction
         param_in = BTC_SignRawTransaction.calcprevtx(btc_rpc_connection,addr,amount)
         # sign raw transaction
         commands = [["signrawtransaction",rawdata,param_in,[privkey]]]
         data = btc_rpc_connection.batch_(commands)
         self.write(json.dumps(BaseHandler.success_ret_with_data(data), default=decimal_default))
     except Exception as e:
         self.write(json.dumps(BaseHandler.error_ret_with_data("error: %s"%e)))
         print("uBTC_SignRawTransaction error:{0} in {1}".format(e,get_linenumber()))
Exemple #13
0
 def post(self):
     rpcconn = USDPProxy(g_IP, g_PORT)
     try:
         strTxid = str(self.get_argument("txid")).strip()
         if len(strTxid) != 64:
             self.write(
                 json.dumps(
                     BaseHandler.error_ret_with_data("txid is invalid.")))
             return
         bValid = USDP_IsValidTx.isValidTx(rpcconn, strTxid)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(bValid),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         pass
Exemple #14
0
 def post(self):
     btc_rpc_connection = AuthServiceProxy(BTC_RPC_URL)#todo-junying-2019040
     try:
         # get arguments
         rawdata = self.get_argument_ex("rawdata")
         src = self.get_argument_ex("src") if self.get_argument_ex("src") else {'2N8jq3e7eBhrrd9d1dMNCvkwtsvN9md2Hmd':'cU27rdRN2uazREh9bBiWQq9e1ZPLAmEguk8ZBuBWKf6a8oav6y73'}
         dest = self.get_argument_ex("dest") if self.get_argument_ex("dest") else {'2MzrgJmFfHB1mz4QqwuSWePbb183TxHR1wA':0.01}
         # preprocess
         addrs,privkeys = src.keys(),src.values()
         param_out = BTC_CreateRawTransactionEx.generateOutParam(dest)
         param_in = BTC_SignRawTransactionEx.calcprevtx(btc_rpc_connection,addrs,param_out)
         commands = [["signrawtransactionwithkey",rawdata,privkeys,param_in]]        
         rsp = btc_rpc_connection.batch_(commands)
         self.write(json.dumps(BaseHandler.success_ret_with_data(rsp), default=decimal_default))
     except Exception as e:
         self.write(json.dumps(BaseHandler.error_ret_with_data("error: %s"%e)))
         print("BTC_SignRawTransactionEx error:{0} in {1}".format(e,get_linenumber()))
Exemple #15
0
 def get(self):
     rpc_connection = UnitedProneProxy(ip_addr, port)
     try:
         address = self.get_argument("address")
         if len(address) != 42:
             self.write(
                 json.dumps(
                     BaseHandler.error_ret_with_data("arguments error")))
             return
         balance = UP_GetBalance.get_balance(rpc_connection, address)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data([balance]),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         print("UP_GetBalance error:{0} in {1}".format(e, get_linenumber()))
Exemple #16
0
 def get(self):
     btc_rpc_connection = AuthServiceProxy(RPC_URL)
     try:
         account = self.get_argument("account").decode("utf-8")
         if account is None or len(account) == 0:
             self.write(json.dumps(BaseHandler.error_ret()))
             return
         commands = [["getbalance", account]]
         data = btc_rpc_connection.batch_(commands)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(data),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         logging.error("BTC_GetAccountBalance error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #17
0
 def get(self):
     omni_rpc_connection = AuthServiceProxy(OMNI_RPC_URL)
     try:
         commands = [[
             "omni_getbalance",
             self.get_argument("address"), OMNI_PROPERTY_ID
         ]]
         data = omni_rpc_connection.batch_(commands)[0][
             'balance']  #直接获取可用余额, 不考虑冻结金额
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(data),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         logging.error("OMNI_GetBalance error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #18
0
 def post(self):
     rpc_connection = OrientWaltProxy(ip_addr, port)
     try:
         from_addr = self.get_argument("from")
         passphrase = self.get_argument("passphrase").encode("utf-8")
         to_addr = self.get_argument("to")
         gas = self.get_argument("gas")
         gas_price = self.get_argument("gasPrice")
         value = self.get_argument("value")
         # check arguments
         _gas = int(gas) if not gas == '' else default_gas
         _gas_price = str_to_decimal(
             gas_price
         ) if not gas_price == '' else default_gasprice  # 10Gwei
         _value = str_to_decimal(value) * 10**18
         # checking balance
         ret, err_msg = OWT_SendTransaction.checkBalance(
             rpc_connection, from_addr, _value, _gas, _gas_price)
         if not ret:
             self.write(json.dumps(
                 BaseHandler.error_ret_with_data(err_msg)))
             return
         # unlocking account
         ret, err_msg = OWT_SendTransaction.unlockAccount(
             rpc_connection, from_addr, passphrase)
         if not ret:
             self.write(json.dumps(
                 BaseHandler.error_ret_with_data(err_msg)))
             return
         # sending money
         rsp = rpc_connection.owt_sendTransaction(to_addr, from_addr, _gas,
                                                  _gas_price, _value)
         if not rsp:
             self.write(
                 json.dumps(
                     BaseHandler.error_ret_with_data('transaction failed')))
             return
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(rsp),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         print("OWT_SendTransaction error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #19
0
 def post(self):
     rpcconn = USDPProxy(g_IP, g_PORT)
     try:
         address = self.get_argument("address")
         if len(address) != 41:
             self.write(
                 json.dumps(
                     BaseHandler.error_ret_with_data("arguments error")))
             return
         balance = USDP_GetBalance.get_balance(rpcconn, address)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(str(balance)),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         logging.error("USDP_GetBalance error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #20
0
    def post(self):
        try:
            blocknum = self.get_argument("blknumber")
            assert str(blocknum).isalnum(), "invalid `blknumber`"

            nblocknum = int(self.get_argument("blknumber"))
            nblocknum = nblocknum - 100 if nblocknum > 10000 else 0

            data = self._get_deposit_txs_from_db(startblk=nblocknum)
            self.write(
                json.dumps(BaseHandler.success_ret_with_data(data),
                           default=decimal_default))
        except Exception as e:
            self.write(
                json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
            logging.error("XMR_CrawlTxData error:{0} in {1}".format(
                e, get_linenumber()))
        pass
Exemple #21
0
 def post(self):
     rpc_connection = UnitedProneProxy(ip_addr, port)
     try:
         blknumber = int(
             self.get_argument("blknumber")) if self.get_argument(
                 "blknumber") else UP_BlockNumber.latest(rpc_connection)
         txcount = UP_GetBlockTransactionCount.fromGetBlock(
             rpc_connection, blknumber)
         data = UP_GetBlockTransactions.process(rpc_connection, blknumber,
                                                txcount)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(data),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         print("UP_GetBlockTransactions error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #22
0
 def post(self):
     rpc_connection = EthereumProxy(ip_addr, port)
     try:
         data = str(self.get_argument("data")) if self.get_argument(
             "data"
         ) else '0xf86c80850ba43b740082520894838c1fc803d79ddbd1e7de5e8ee0463899ff61a888016345785d8a0000801ca0ad7931b11a83aaf3841085a9375287363b2f42e7c2e663cbac505efbcb16aa4ea06cb9b287c9a91e59675684e552abfeb6d794202fb19ef43f9f44b5e02d9eb581'
         # 0x checking
         rlpdata = "0x" + data if "0x" not in data else data
         # sending raw transaction
         rsp = rpc_connection.eth_sendRawTransaction(rlpdata)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(rsp),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         print("ETH_SendRawTransaction error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #23
0
 def post(self):
     rpc_connection = OrientWaltProxy(ip_addr, port)
     try:
         data = str(self.get_argument("data")) if self.get_argument(
             "data"
         ) else '0xf86c80850ba43b740082520894ba1099cc91acdf45771d0a0c6e3b80e8e880c68488016345785d8a0000801ba0217def430ee63758f3142b20d7632f1b8d13864e83c50e4118a7caabe94dc353a06c5c12df29768a0fd54903fa76b01b27f1b1038e6ce2a3c5a3c8b07989f5974f'
         # 0x checking
         rlpdata = "0x" + data if "0x" not in data else data
         # sending raw transaction
         rsp = rpc_connection.owt_sendRawTransaction(rlpdata)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(rsp),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         print("OWT_SendRawTransaction error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #24
0
 def get(self):
     btc_rpc_connection = AuthServiceProxy(RPC_URL)
     try:
         addr = self.get_argument("address")
         data = BTC_ListUTXO.utxo(btc_rpc_connection, addr)
         if not data:
             self.write(json.dumps(BaseHandler.error_ret_with_data("0")))
             return
         from utils import accumulate
         self.write(
             json.dumps(BaseHandler.success_ret_with_data('%.8f' %
                                                          accumulate(data)),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         logging.error("BTC_GetBalance error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #25
0
 def post(self):
     rpcconn = USDPProxy(g_IP, g_PORT)
     try:
         addr = self.get_argument("address")
         if len(addr) != 43:
             self.write(json.dumps(BaseHandler.error_ret_with_data("arguments error")))
             return
         if addr[ : 5] != "usdp1":
             self.write(json.dumps(BaseHandler.error_ret_with_data("arguments error")))
             return
         data = USDP_GetAccountInfo.account_info(rpcconn, addr)
         self.write(json.dumps(BaseHandler.success_ret_with_data(data), default=decimal_default))
     except Exception as e:
         if str(e) == "500":
             self.write(json.dumps(BaseHandler.error_ret_with_data("error: not found any info of the account. Due to the account DOT NOT have transactions yet. ")))
         else:
             self.write(json.dumps(BaseHandler.error_ret_with_data("error: %s"%e)))
         logging.error("USDP_GetAccountInfo error:{0} in {1}".format(e,get_linenumber()))
Exemple #26
0
    def post(self):

        try:

            address = self.get_argument("address")

            if len(address) != 34 or (not str(address).startswith('T')):
                raise Exception("invalid address")

            trx = Trx(
                Tron(full_node=TRON_RPC_URL,
                     solidity_node=TRON_RPC_URL,
                     event_server=TRON_RPC_URL))

            account_info = trx.get_account(address=address)

            if 'balance' in account_info:
                decBalance = Decimal(
                    account_info['balance']) / Decimal('1000000')
                fmtBalance = decBalance.quantize(
                    Decimal("0.000000"), getattr(decimal, 'ROUND_DOWN'))
            else:
                fmtBalance = '0.000000'

            is_active = 'create_time' in account_info  #账户是否已经激活

            rsp_data = {
                'address': address,
                'balance': str(fmtBalance),
                'active': is_active
                #其他代币资产信息可以根据资产id进行获取, 如TRC20-USDT , 此是后话
            }

            logging.info(f'{rsp_data}')

            self.write(
                json.dumps(BaseHandler.success_ret_with_data(rsp_data),
                           default=decimal_default))

            pass
        except Exception as e:
            self.write(
                json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
            logging.error("error:{0} in {1}".format(e, get_linenumber()))
Exemple #27
0
 def post(self):
     omni_rpc_connection = AuthServiceProxy(OMNI_RPC_URL)
     try:
         minconf = int(self.get_argument(
             "minconf"))  #if not self.get_argument("minconf") == "" else 1
         maxconf = int(
             self.get_argument("maxconf")
         )  #if not self.get_argument("maxconf") == "" else 9999999
         data = uBTC_ListUTXO.utxo(omni_rpc_connection,
                                   self.get_argument("address"), minconf,
                                   maxconf)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(data),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         logging.error("uBTC_ListUTXO error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #28
0
 def get(self):
     btc_rpc_connection = AuthServiceProxy(RPC_URL)
     try:
         account = self.get_argument("account") if self.get_argument(
             "account") else "*"
         tx_counts = int(self.get_argument("count")) if self.get_argument(
             "count") else 10
         skips = int(self.get_argument("skips")) if self.get_argument(
             "skips") else 0
         data = BTC_ListTransactions.process(btc_rpc_connection, account,
                                             tx_counts, skips)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(data),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         logging.error("BTC_ListTransActions error:{0} in {1}".format(
             e, get_linenumber()))
Exemple #29
0
 def post(self):
     try:
         address = self.get_argument("address")
         if len(address) != 43:
             self.write(
                 json.dumps(
                     BaseHandler.error_ret_with_data("arguments error")))
             return
         rpcconn = USDPProxy(g_IP, g_PORT)
         retdata = USDP_GetBalance.get_all_balance(rpcconn, address)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(retdata),
                        default=decimal_default))
     except Exception as e:
         traceback.print_exc()
         self.write(
             json.dumps(
                 BaseHandler.error_ret_with_data(f"error: {str(e)}")))
         logging.error("USDP_GetBalance error:{}".format(e))
Exemple #30
0
 def post(self):
     rpc_connection = OrientWaltProxy(ip_addr, port)
     try:
         key = str(self.get_argument('key')) if self.get_argument(
             'key'
         ) else '1be48a93cb149ea2cbc3e85db6056c83a37a1d7aafcee079c266dd05af2e7c31'
         data = str(self.get_argument("data")) if self.get_argument(
             "data"
         ) else 'e980850ba43b740082520894ba1099cc91acdf45771d0a0c6e3b80e8e880c68488016345785d8a000080'
         # sending raw transaction
         encoded = signRawTransaction(key, data)
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(encoded),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         print("OWT_SignRawTransaction error:{0} in {1}".format(
             e, get_linenumber()))