示例#1
0
    def post(self):
        rpc_connection = EthereumProxy(ip_addr, port)
        try:
            data = str(self.get_argument("data"))
            order_id = str(self.get_argument('orderId'))
            flag, txid = self.get_order_from_db(order_id)
            if flag:  #如果是已经广播过的则不再广播
                rspData = {'txid': txid, 'orderId': order_id}
                self.write(
                    json.dumps(BaseHandler.success_ret_with_data(rspData),
                               default=decimal_default))
                return

            # 0x checking
            rlpdata = "0x" + data if "0x" not in data else data
            # sending raw transaction
            txid = rpc_connection.eth_sendRawTransaction(rlpdata)
            self.insert_txid_into_db(order_id, txid)
            rspData = {'txid': txid, 'orderId': order_id}
            self.write(
                json.dumps(BaseHandler.success_ret_with_data(rspData),
                           default=decimal_default))
        except Exception as e:
            self.write(
                json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
            logging.error("ETH_SendRawTransaction error:{0} in {1}".format(
                e, get_linenumber()))
示例#2
0
    def get(self):

        try:
            symbol = self.get_argument("symbol")
        except:
            logging.warning('no symbol arg, default is htdf')
            symbol = "htdf"
            pass

        rpcconn = USDPProxy(g_IP, g_PORT)
        try:
            token_full_name = symbol.upper()

            symbol = token_full_name.replace('HRC20-', '')
            if not symbol.isalpha():  #防止sql注入
                raise Exception("invalid symbol, must token symbol")

            if symbol.upper() == 'HTDF':
                retData = self.proccess(rpcconn)
            elif symbol in [
                    symb['symbol'] for symb in HRC20_CONTRACT_MAP.values()
            ]:
                retData = self.proccess_HRC20(rpcconn, symbol)
            else:
                raise Exception(f'invalid symbol `{symbol}`')
            self.write(
                json.dumps(BaseHandler.success_ret_with_data(retData),
                           default=decimal_default))
        except Exception as e:
            self.write(
                json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
            logging.error(" USDP_CollectionQuery error:{0} in {1}".format(
                e, get_linenumber()))
示例#3
0
 def post(self):
     btc_rpc_connection = AuthServiceProxy(RPC_URL)
     try:
         src = self.get_argument_ex("src")
         dest = self.get_argument_ex("dest")
         if not isinstance(src, list):
             self.write(
                 json.dumps(
                     BaseHandler.error_ret_with_data(
                         "error: %s" % ("src must be json list"))))
             return
         if not isinstance(dest, list):
             self.write(
                 json.dumps(
                     BaseHandler.error_ret_with_data(
                         "error: %s" % ("dest must be json list"))))
             return
         ret, rsp = BTC_CreateRawTransactionEx_Collection.process(
             btc_rpc_connection, src, dest)
         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:
         # traceback.print_exc()
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         logging.error("BTC_CreateRawTransactionEx error:{0} in {1}".format(
             e, get_linenumber()))
示例#4
0
    def get(self):
        # try:
        #     symbol = self.get_argument("symbol")
        # except :
        #     print('no symbol arg, default is eth')
        #     symbol = "etc"
        #     pass
        symbol = 'ETC'

        rpcconn = EthereumProxy(ip_addr, port)
        try:
            # if symbol.upper() == 'ERC20-USDT':
            #     symbol = 'USDT'
            # elif not symbol.isalpha() : #防止sql注入
            if not symbol.isalpha():  #防止sql注入
                raise Exception("invalid symbol, must token symbol")

            symbol = symbol.upper()
            # if symbol != 'ETH' and symbol not in ERC20_CONTRACTS_MAP.keys():
            if symbol != 'ETC':
                retData = []
            else:
                retData = self.proccess(rpcconn, symbol)  #从活跃地址表中获取地址信息
            self.write(
                json.dumps(BaseHandler.success_ret_with_data(retData),
                           default=decimal_default))
        except Exception as e:
            self.write(
                json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
            logging.error(" ETH_CollectionQueryEx error:{0} in {1}".format(
                e, get_linenumber()))
示例#5
0
    def get(self):
        rpcconn = AuthServiceProxy(RPC_URL)

        try:
            commands = [[
                "listunspent", 1, 99999999, [], True, {
                    'minimumAmount': 0.0003
                }
            ]]
            lstUtxos = rpcconn.batch_(commands)[0]
            mapRet = {}
            for utxo in lstUtxos:
                strAddr = utxo['address'].strip()
                if strAddr not in g_exUserAddrs: continue
                if strAddr not in mapRet:
                    mapRet[strAddr] = Decimal("0.0")
                nAmount = utxo['amount']
                mapRet[strAddr] = str(nAmount + Decimal(mapRet[strAddr]))
            self.write(
                json.dumps(BaseHandler.success_ret_with_data(mapRet),
                           default=decimal_default))
        except Exception as e:
            self.write(
                json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
            logging.error("BTC_CollectionQuery error:{0} in {1}".format(
                e, get_linenumber()))
示例#6
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 = str(
                    decBalance.quantize(Decimal("0.000000"),
                                        getattr(decimal, 'ROUND_DOWN')))
            else:
                fmtBalance = '0.000000'

            self.write(
                json.dumps(BaseHandler.success_ret_with_data(fmtBalance),
                           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()))
示例#7
0
文件: handler.py 项目: deep2cv/pyrpc
 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))
         txindex = int(self.get_argument("txindex")) if self.get_argument(
             "txindex") else 0
         ret = OWT_GetTransactionFromBlock.process(rpc_connection,
                                                   blknumber, txindex)
         if not ret:
             self.write(
                 json.dumps(
                     BaseHandler.error_ret_with_data(
                         "no corresponding transaction or block body not found!!!"
                     )))
             return
         self.write(
             json.dumps(BaseHandler.success_ret_with_data(ret),
                        default=decimal_default))
     except Exception as e:
         self.write(
             json.dumps(BaseHandler.error_ret_with_data("error: %s" % e)))
         print("OWT_GetTransactionFromBlock error:{0} in {1}".format(
             e, get_linenumber()))
示例#8
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] != "htdf1":
             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()))
示例#9
0
文件: handler.py 项目: deep2cv/pyrpc
 def post(self):
     rpc_connection = OrientWaltProxy(ip_addr, port)
     try:
         to_addr = str(self.get_argument("to")) if self.get_argument(
             "to") else '0xba1099cc91acdf45771d0a0c6e3b80e8e880c684'
         startgas = str(self.get_argument("startgas")) if self.get_argument(
             "startgas") else default_gas
         gas_price = str(
             self.get_argument("gasPrice")) if self.get_argument(
                 "gasPrice") else default_gasprice
         value = float(self.get_argument("value")) if self.get_argument(
             "value") else 0.1
         nonce = str(self.get_argument("nonce")) if self.get_argument(
             "nonce") else 0
         data = str(self.get_argument("data"))
         value_ = int(value * 10**18)
         # create raw transaction
         encoded = createRawTransaction(nonce, gas_price, startgas, to_addr,
                                        value_, data)
         # sending raw transaction
         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_CreateRawTransaction error:{0} in {1}".format(
             e, get_linenumber()))
示例#10
0
    def post(self):
        try:

            port = XMR_WALLET_RPC_PORT_MANUAL if 'manual' in self.request.uri else XMR_WALLET_RPC_PORT_AUTO

            key_images = self.get_argument_from_json('signed_key_images')

            rpc = XMR_Proxy(protocol=XMR_RPC_PROTOCOL,
                            host=XMR_WALLET_RPC_HOST,
                            port=port,
                            verify_ssl_certs=False)

            rsp = rpc.import_key_images(key_images=key_images)

            #获取可用余额
            balances = rpc.balances()
            retdata = dict(rsp, **balances)

            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("XMR_ImportKeyImages error:{0} in {1}".format(
                e, get_linenumber()))
        pass
示例#11
0
    def post(self):
        try:
            dsts = self.get_argument_from_json('destinations')
            assert isinstance(
                dsts, list
            ), "destinations must be list, eg:[{'address':'addr', 'amount':0.123}]]"

            port = XMR_WALLET_RPC_PORT_MANUAL if 'manual' in self.request.uri else XMR_WALLET_RPC_PORT_AUTO

            rpc = XMR_Proxy(protocol=XMR_RPC_PROTOCOL,
                            host=XMR_WALLET_RPC_HOST,
                            port=port,
                            verify_ssl_certs=False)

            rawtxs = rpc.transfer(destinations=dsts)
            assert isinstance(rawtxs, dict), 'rawtxs is not dict'

            retdata = rawtxs
            logging.info(f'retdata: {retdata}')
            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("XMR_CreateRawTransaction error:{0} in {1}".format(
                str(e), get_linenumber()))
        pass
示例#12
0
 def get(self):
     rpcconn = USDPProxy(g_IP, g_PORT)
     try:
         retData = self.proccess(rpcconn)
         self.write(json.dumps(BaseHandler.success_ret_with_data(retData), default=decimal_default))
     except Exception as e:
         self.write(json.dumps(BaseHandler.error_ret_with_data("error: %s"%e)))
         logging.error(" USDP_CollectionQuery error:{0} in {1}".format(e,get_linenumber()))
示例#13
0
 def get(self):
     rpcconn = USDPProxy(g_IP, g_PORT)
     try:
         data = USDP_ListAccounts.addresses()
         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_ListAccounts error:{0} in {1}".format(e,get_linenumber()))
示例#14
0
文件: handler.py 项目: deep2cv/pyrpc
 def get(self):
     btc_rpc_connection = AuthServiceProxy(BTC_RPC_URL)#todo-junying-20190310
     try:
         blknumber = BTC_GetBlockCount.process(btc_rpc_connection)
         self.write(json.dumps(BaseHandler.success_ret_with_data(blknumber), default=decimal_default))
     except Exception as e:
         self.write(json.dumps(BaseHandler.error_ret_with_data("error: %s"%e)))
         print("BTC_GetBlockCount error:{0} in {1}".format(e,get_linenumber()))
示例#15
0
文件: handler.py 项目: deep2cv/pyrpc
 def get(self):
     btc_rpc_connection = AuthServiceProxy(BTC_RPC_URL)
     try:
         data = BTC_ListAccounts.addresses()
         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("BTC_ListAccounts error:{0} in {1}".format(e,get_linenumber()))
示例#16
0
文件: handler.py 项目: deep2cv/pyrpc
 def post(self):
     btc_rpc_connection = AuthServiceProxy(BTC_RPC_URL)#todo-junying-20180325
     try:
         data = BTC_DumpPrivKey.privkey(btc_rpc_connection,self.get_argument("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)))
         print("BTC_WalletPassphrase error:{0} in {1}".format(e,get_linenumber()))
示例#17
0
文件: handler.py 项目: deep2cv/pyrpc
 def post(self):
     btc_rpc_connection = AuthServiceProxy(OMNI_RPC_URL)#todo-junying-20180325
     try:
         data = OMNI_ListBlockTransActions.process(btc_rpc_connection,self.get_argument("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("BTC_GetTransaction error:{0} in {1}".format(e,get_linenumber()))
示例#18
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()))
示例#19
0
文件: handler.py 项目: deep2cv/pyrpc
 def post(self):
     omni_rpc_connection = AuthServiceProxy(OMNI_RPC_URL)#todo-junying-20180325
     try:
         blknumber = int(self.get_argument("blknumber"))
         data = OMNI_CrawlTxData.process(omni_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("OMNI_ListTransActions error:{0} in {1}".format(e,get_linenumber()))
示例#20
0
 def post(self):
     rpcconn = USDPProxy(g_IP, g_PORT)
     try:
         nStart  = int(self.get_argument("blknumber")) #防止sql注入
         data = self.process(rpcconn, nStart)
         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_CrawlTxData error:{0} in {1}".format(e,get_linenumber()))
示例#21
0
文件: handler.py 项目: deep2cv/pyrpc
 def get(self):
     omni_rpc_connection = AuthServiceProxy(OMNI_RPC_URL)#todo-junying-20180325
     try:
         commands = [["getaccountaddress",self.get_argument("account")]]
         data = omni_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_GetAccountAddress error:{0} in {1}".format(e,get_linenumber()))
示例#22
0
文件: handler.py 项目: deep2cv/pyrpc
 def get(self):
     omni_rpc_connection = AuthServiceProxy(OMNI_RPC_URL)#todo-junying-20190313
     try:
         commands = [["omni_getbalance", self.get_argument("address"), OMNI_PROPERTY_ID]] # usdt: 31
         data = omni_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("OMNI_GetBalance error:{0} in {1}".format(e,get_linenumber()))
示例#23
0
文件: handler.py 项目: deep2cv/pyrpc
 def get(self):
     btc_rpc_connection = AuthServiceProxy(BTC_RPC_URL)#todo-junying-20180325
     try:
         commands = [["getrawtransaction",self.get_argument("txid"),True]]
         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("BTC_GetTransaction error:{0} in {1}".format(e,get_linenumber()))
示例#24
0
文件: handler.py 项目: deep2cv/pyrpc
 def post(self):
     btc_rpc_connection = AuthServiceProxy(OMNI_RPC_URL)#todo-junying-20190310
     try:
         commands = [["sendrawtransaction",self.get_argument("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)))
         print("uBTC_SendRawTransaction error:{0} in {1}".format(e,get_linenumber()))            
示例#25
0
文件: handler.py 项目: deep2cv/pyrpc
 def post(self):
     btc_rpc_connection = AuthServiceProxy(BTC_RPC_URL)#todo-junying-20190310
     try:
         rawdata = self.get_argument("rawdata") if self.get_argument("rawdata") else '020000000001011d9c5db5afc7b8f9606569a9d470c435764b8dbf372c473d152c0cff1a77f5f101000000171600142bf9ada27ec30b4f293ec6f61d98ca00c4d4bb2affffffff024d9083000000000017a914a9f2cc6c49785beabd9eb26d6d4d1f17fd365d308780841e000000000017a914537d68a8c0e4c04262f419a81aed12ffbad1484087024730440220327a6068844a484eb9887fe9d4645fe495d4e280b79013727e375d5e3e8ba86c0220124c779b6e412ef684e897f07fb959807c42b8c128cdbecac28e0de44711b39c012103760b1cfa248f4bf9a95e4812547da273eeccb1cef88a520267685263609e090b00000000'
         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)))
         print("BTC_SendRawTransaction error:{0} in {1}".format(e,get_linenumber()))
示例#26
0
文件: handler.py 项目: deep2cv/pyrpc
 def get(self):
     btc_rpc_connection = AuthServiceProxy(BTC_RPC_URL)#todo-junying-20190310
     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)))
         print("BTC_GetBlockHash error:{0} in {1}".format(e,get_linenumber()))
示例#27
0
文件: handler.py 项目: deep2cv/pyrpc
 def get(self):
     rpc_connection = OrientWaltProxy(ip_addr, port)
     try:
         data = rpc_connection.owt_gasPrice()
         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_GasPrice error:{0} in {1}".format(e, get_linenumber()))
示例#28
0
文件: handler.py 项目: deep2cv/pyrpc
 def get(self):
     omni_rpc_connection = AuthServiceProxy(OMNI_RPC_URL)#todo-junying-20180325
     try:
         address = self.get_argument("address") if self.get_argument("address") 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 = OMNI_ListTransActions.process(omni_rpc_connection,address,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)))
         print("OMNI_ListTransActions error:{0} in {1}".format(e,get_linenumber()))
示例#29
0
文件: handler.py 项目: deep2cv/pyrpc
 def get(self):
     btc_rpc_connection = AuthServiceProxy(OMNI_RPC_URL)#todo-junying-20180325
     data = None
     try:
         minconf = int(self.get_argument("minconf")) if not self.get_argument("minconf") == "" else 0
         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)))
         print("uBTC_ListAccounts error:{0} in {1}".format(e,get_linenumber()))
示例#30
0
文件: handler.py 项目: deep2cv/pyrpc
 def post(self):
     omni_rpc_connection = AuthServiceProxy(OMNI_RPC_URL)# todo-junying-20180325
     try:
         minconf = int(self.get_argument("minconf")) if not self.get_argument("minconf") == "" else 0
         maxconf = int(self.get_argument("maxconf")) if not self.get_argument("maxconf") == "" else 9999999
         from btc.handler import BTC_ListUTXO
         data = BTC_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)))
         print("uBTC_ListUTXO error:{0} in {1}".format(e,get_linenumber()))