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()))
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()))
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()))
def get(self): btc_rpc_connection = AuthServiceProxy(BTC_RPC_URL)#todo-junying-20180325 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("utxo no available"))) from utils import accumulate self.write(json.dumps(BaseHandler.success_ret_with_data(accumulate(data)), default=decimal_default)) except Exception as e: self.write(json.dumps(BaseHandler.error_ret_with_data("error: %s"%e))) print("BTC_GetBalance error:{0} in {1}".format(e,get_linenumber()))
def post(self): btc_rpc_connection = AuthServiceProxy(BTC_RPC_URL)#todo-junying-20190310 try: src = self.get_argument_ex("src") if self.get_argument_ex("src") else ['2N8jq3e7eBhrrd9d1dMNCvkwtsvN9md2Hmd'] dest = self.get_argument_ex("dest") if self.get_argument_ex("dest") else {'2MzrgJmFfHB1mz4QqwuSWePbb183TxHR1wA':'0.01'} ret, rsp = BTC_CreateRawTransactionEx.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: self.write(json.dumps(BaseHandler.error_ret_with_data("error: %s"%e))) print("BTC_CreateRawTransactionEx error:{0} in {1}".format(e,get_linenumber()))
def post(self): rpcconn = USDPProxy(g_IP, g_PORT) try: address = self.get_argument("address") if len(address) != 43: 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()))
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
def post(self): btc_rpc_connection = AuthServiceProxy(OMNI_RPC_URL)#todo-junying-20190310 try: from_addr = str(self.get_argument("from")) if self.get_argument("from") else '2N8jq3e7eBhrrd9d1dMNCvkwtsvN9md2Hmd' to_addr = str(self.get_argument("to")) if self.get_argument("to") else '2MzrgJmFfHB1mz4QqwuSWePbb183TxHR1wA' amount = float(self.get_argument("amount")) from btc.handler import BTC_CreateRawTransaction 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("uBTC_CreateRawTransaction error:{0} in {1}".format(e,get_linenumber()))
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()))
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()))
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
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
def post(self): try: cleos = EosProxy(url=EOS_PUBLIC_API_URL) signed_trx = self.get_argument_from_json("data") order_id = self.get_argument_from_json("orderId") is_exist, txid, tx_json = self.get_order_from_db(order_id) if is_exist: self.write(json.dumps(BaseHandler.success_ret_with_data(tx_json), default=decimal_default)) return #如果没有广播过, 则进行广播 data = cleos.sendrawtransaction(data=signed_trx, timeout=HTTP_TIMEOUT_SECS) self.write(json.dumps(BaseHandler.success_ret_with_data(data), default=decimal_default)) #如果广播成功, 则写入数据库 if data['processed']['error_code'] == None and data['processed']['except'] == None \ and data['processed']['receipt']['status'] == 'executed': self.insert_txid_into_db(order_id=order_id, txid= data['transaction_id'], tx_json_str=json.dumps(data) ) except Exception as e: self.write(json.dumps(BaseHandler.error_ret_with_data("error: %s" % e))) logging.error("EOS_CreateRawTransaction():{}".format( e)) pass
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()))
def post(self): try: src_acct = self.get_argument("src_acct") dst_acct = self.get_argument("dst_acct") stramount = self.get_argument("amount") strmemo = self.get_argument("memo") src_acct = src_acct.strip() dst_acct = dst_acct.strip() stramount = stramount.strip() strmemo = strmemo.strip() if not EOS_GetAccountInfo.is_valid_acc_name(src_acct) \ or not EOS_GetAccountInfo.is_valid_acc_name(dst_acct): raise Exception(" src_acct or dst_acct is illegal ") if not isinstance(stramount, str) or Decimal(stramount) < Decimal('0.0001'): raise Exception(" amount is illegal ") if len(strmemo) > 20: raise Exception(" memo is too long") #直接截断, 不能使用 '%.4f' % Decimal('xxxx.xxxxxxx') , 因为会四舍五入 decmlfmtamount = Decimal(stramount).quantize(Decimal("0.0000"), getattr(decimal, 'ROUND_DOWN')) strfmtamount = str(decmlfmtamount) data = EOS_CreateRawTransaction.process(src_acct, dst_acct, strfmtamount, strmemo) 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("EOS_CreateRawTransaction():{}".format(e)) pass
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()))
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()))
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()))
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()))
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()))
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()))
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()))
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()))
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()))
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()))
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()))
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()))
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()))
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()))
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()))