Exemple #1
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()))
Exemple #2
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()))
    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
Exemple #4
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()))
Exemple #5
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()))
Exemple #6
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
Exemple #7
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()))
Exemple #8
0
 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()))
Exemple #9
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
Exemple #10
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()))
Exemple #11
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))
         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 __init__(self, data_handler):
     """Initialized the various features."""
     BaseHandler.__init__(self, data_handler)
     self._i_normalizer = IntegerNormalizer(self)
     self._i_validator = IntegerValidator(self)
     self._i_transfer_mgr = IntegerTransferMgr(self)
     self._i_code_generator = IntegerCodeGenerator(self)
Exemple #13
0
    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 __init__(self, data_handler):
     """Initialized the various features."""
     BaseHandler.__init__(self, data_handler)
     self._i_normalizer = PathNormalizer(self)
     self._i_validator = PathValidator(self)
     self._i_transfer_mgr = PathTransferMgr(self)
     self._i_code_generator = PathCodeGenerator(self)
 def __init__(self, data_handler):
     """Initialized the various features."""
     BaseHandler.__init__(self, data_handler)
     self._i_validator = TupleValidator(self)
     self._i_transfer_mgr = TupleTransferMgr(self)
     self._i_code_generator = TupleCodeGenerator(self)
     self._i_detailer = TupleDetailer(self)
Exemple #16
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()))
Exemple #17
0
 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()))
Exemple #18
0
 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()))
Exemple #19
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()))
Exemple #20
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()))
 def __init__(self, data_handler):
     """Initialized the various features."""
     BaseHandler.__init__(self, data_handler)
     self._i_normalizer = IntegerNormalizer(self)
     self._i_validator = IntegerValidator(self)
     self._i_transfer_mgr = IntegerTransferMgr(self)
     self._i_code_generator = IntegerCodeGenerator(self)
     self._i_detailer = IntegerDetailer(self)
Exemple #22
0
 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()))
Exemple #23
0
 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 get(self):
     try:
         query = "SELECT * FROM %s WHERE frame_id=(SELECT MAX(frame_id) FROM %s);"%(hisTable,hisTable)
         data = query_all(query)
         self.write(json.dumps(BaseHandler.success_ret_with_data(data), default=decimal_default))
     except Exception as e:
         self.write(json.dumps(BaseHandler.error_ret()))
         print("BTC_TransferFund error:%s", format(e))
Exemple #25
0
 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()))            
Exemple #26
0
 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()))
Exemple #27
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 #28
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()))
Exemple #29
0
 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()))
Exemple #30
0
 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()))
Exemple #31
0
 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 __init__(self, uuid, logger= None, node_manager= None, extras = None):
     BaseHandler.__init__(self, uuid, logger, node_manager)
     self.verb = 'CONNECT'
     self.ipv4_socket_re = re.compile(ConnectHandler.ipv4_socket_match)
 def __init__(self, uuid, logger=None, node_manager=None, extras=None):
     BaseHandler.__init__(self, uuid, logger, node_manager)
     self.verb = 'CHANNEL'
     self.ttl = 32
     self.flood = True
 def __init__(self, data_handler):
     """Initialized the various features."""
     BaseHandler.__init__(self, data_handler)
     self._i_validator = DictValidator(self)
     self._i_transfer_mgr = DictTransferMgr(self)
     self._i_code_generator = DictCodeGenerator(self)
Exemple #35
0
 def __init__(self, request=None, response=None):
     BaseHandler.__init__(self, request, response)
     self.obj = None
     self.parent_required = False
 def __init__(self, logger= None, node_manager= None):
     BaseHandler.__init__(self, logger, node_manager)
     self.verb = 'ROUTING'
     self.ttl = 1
     self.flood = False