Remote Procedure Call (RPC)¶
Bytom remote procedure call.
-
shuttle.providers.bytom.rpc.
get_balance
(address, asset='ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', network='solonet', timeout=60)¶ Get Bytom balance.
- Parameters
address (str) – Bytom address.
asset (str) – Bytom asset, default to BTM asset.
network (str) – Bytom network, defaults to solonet.
timeout (int) – request timeout, default to 60.
- Returns
int – Bytom asset balance.
>>> from shuttle.providers.bytom.rpc import get_balance >>> get_balance("bm1q9ndylx02syfwd7npehfxz4lddhzqsve2fu6vc7", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "mainnet") 2580000000
-
shuttle.providers.bytom.rpc.
account_create
(xpublic_key, label='1st address', email=None, network='testnet', timeout=60)¶ Create account in blockcenter.
- Parameters
xpublic_key (str) – Bytom xpublic key.
label (str) – Bytom limit, defaults to 1st address.
email (str) – email address, defaults to None.
network (str) – Bytom network, defaults to testnet.
timeout (int) – request timeout, default to 15.
- Returns
dict – Bytom blockcenter guid, address and label.
>>> from shuttle.providers.bytom.rpc import account_create >>> account_create(xpublic_key, "mainnet") {"guid": "f0ed6ddd-9d6b-49fd-8866-a52d1083a13b", "address": "bm1q9ndylx02syfwd7npehfxz4lddhzqsve2fu6vc7", "label": "1st address"}
-
shuttle.providers.bytom.rpc.
list_address
(guid, limit=10, network='testnet', timeout=60)¶ List address from blockcenter.
- Parameters
guid (str) – Bytom blockcenter guid.
limit (int) – blockcenter limit default to 10.
network (str) – Bytom network, defaults to testnet.
timeout (int) – request timeout, default to 15.
- Returns
list – Bytom blockcenter list of addresses.
>>> from shuttle.providers.bytom.rpc import list_address >>> list_address(guid, 5 "mainnet") [{"guid": "f0ed6ddd-9d6b-49fd-8866-a52d1083a13b", "address": "bm1q9ndylx02syfwd7npehfxz4lddhzqsve2fu6vc7", "label": "1st address", "balances": [{"asset": "f37dea62efd2965174b84bbb59a0bd0a671cf5fb2857303ffd77c1b482b84bdf", "balance": "100000000000", "total_received": "100000000000", "total_sent": "0", "decimals": 8, "alias": "Asset", "icon": "", "name": "f37dea62efd2965174b84bbb59a0bd0a671cf5fb2857303ffd77c1b482b84bdf", "symbol": "Asset", "in_usd": "0.00", "in_cny": "0.00", "in_btc": "0.000000"}, {"asset": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "balance": "2450000000", "total_received": "4950000000", "total_sent": "2500000000", "decimals": 8, "alias": "btm", "icon": "", "name": "BTM", "symbol": "BTM", "in_usd": "2.90", "in_cny": "20.58", "in_btc": "0.000283"}]}]
-
shuttle.providers.bytom.rpc.
build_transaction
(tx, network='testnet', timeout=60)¶ Build Bytom transaction in blockcenter.
- Parameters
tx (dict) – Bytom transaction.
network (str) – Bytom network, defaults to testnet.
timeout (int) – request timeout, default to 15.
- Returns
dict – Bytom built transaction.
>>> from shuttle.providers.bytom.rpc import build_transaction >>> build_transaction(transaction, "mainnet") {"tx": {"hash": "2993414225f65390220730d0c1a356c14e91bca76db112d37366df93e364a492", "status_fail": false, "size": 379, "submission_timestamp": 0, "memo": "", "inputs": [{"script": "00142cda4f99ea8112e6fa61cdd26157ed6dc408332a", "address": "bm1q9ndylx02syfwd7npehfxz4lddhzqsve2fu6vc7", "asset": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "amount": 2450000000, "type": "spend"}], "outputs": [{"utxo_id": "5edccebe497893c289121f9e365fdeb34c97008b9eb5a9960fe9541e7923aabc", "script": "01642091ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e220ac13c0bb1445423a641754182d53f0677cd4351a0e743e6f10b35122c3d7ea01202b9a5949f5546f63a253e41cda6bffdedb527288a7e24ed953f5c2680c70d6ff741f547a6416000000557aa888537a7cae7cac631f000000537acd9f6972ae7cac00c0", "address": "smart contract", "asset": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "amount": 1000, "type": "control"}, {"utxo_id": "f8cfbb692db1963be88b09c314adcc9e19d91c6c019aa556fb7cb76ba8ffa1fa", "script": "00142cda4f99ea8112e6fa61cdd26157ed6dc408332a", "address": "bm1q9ndylx02syfwd7npehfxz4lddhzqsve2fu6vc7", "asset": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "amount": 2439999000, "type": "control"}], "fee": 10000000, "balances": [{"asset": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "amount": "-10001000"}], "types": ["ordinary"]}, "raw_transaction": "070100010160015e7f2d7ecec3f61d30d0b2968973a3ac8448f0599ea20dce883b48c903c4d6e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8091a0900901011600142cda4f99ea8112e6fa61cdd26157ed6dc408332a22012091ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e20201ad01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80701880101642091ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e220ac13c0bb1445423a641754182d53f0677cd4351a0e743e6f10b35122c3d7ea01202b9a5949f5546f63a253e41cda6bffdedb527288a7e24ed953f5c2680c70d6ff741f547a6416000000557aa888537a7cae7cac631f000000537acd9f6972ae7cac00c000013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff98dcbd8b09011600142cda4f99ea8112e6fa61cdd26157ed6dc408332a00", "signing_instructions": [{"derivation_path": ["2c000000", "99000000", "01000000", "00000000", "01000000"], "sign_data": ["37727d44af9801e9723eb325592f4d55cc8d7e3815b1d663d61b7f1af9fc13a7"], "pubkey": "91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2"}], "fee": 10000000}
-
shuttle.providers.bytom.rpc.
get_transaction
(tx_id, network='testnet', timeout=60)¶ Get Bytom transaction detail.
- Parameters
tx_id (str) – Bytom transaction id.
network (str) – Bytom network, defaults to testnet.
timeout (int) – request timeout, default to 15.
- Returns
dict – Bytom built transaction.
>>> from shuttle.providers.bytom.rpc import get_transaction >>> get_transaction(transaction_id, "mainnet") {"tx": {"hash": "2993414225f65390220730d0c1a356c14e91bca76db112d37366df93e364a492", "status_fail": false, "size": 379, "submission_timestamp": 0, "memo": "", "inputs": [{"script": "00142cda4f99ea8112e6fa61cdd26157ed6dc408332a", "address": "bm1q9ndylx02syfwd7npehfxz4lddhzqsve2fu6vc7", "asset": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "amount": 2450000000, "type": "spend"}], "outputs": [{"utxo_id": "5edccebe497893c289121f9e365fdeb34c97008b9eb5a9960fe9541e7923aabc", "script": "01642091ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e220ac13c0bb1445423a641754182d53f0677cd4351a0e743e6f10b35122c3d7ea01202b9a5949f5546f63a253e41cda6bffdedb527288a7e24ed953f5c2680c70d6ff741f547a6416000000557aa888537a7cae7cac631f000000537acd9f6972ae7cac00c0", "address": "smart contract", "asset": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "amount": 1000, "type": "control"}, {"utxo_id": "f8cfbb692db1963be88b09c314adcc9e19d91c6c019aa556fb7cb76ba8ffa1fa", "script": "00142cda4f99ea8112e6fa61cdd26157ed6dc408332a", "address": "bm1q9ndylx02syfwd7npehfxz4lddhzqsve2fu6vc7", "asset": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "amount": 2439999000, "type": "control"}], "fee": 10000000, "balances": [{"asset": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "amount": "-10001000"}], "types": ["ordinary"]}, "raw_transaction": "070100010160015e7f2d7ecec3f61d30d0b2968973a3ac8448f0599ea20dce883b48c903c4d6e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8091a0900901011600142cda4f99ea8112e6fa61cdd26157ed6dc408332a22012091ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e20201ad01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80701880101642091ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e220ac13c0bb1445423a641754182d53f0677cd4351a0e743e6f10b35122c3d7ea01202b9a5949f5546f63a253e41cda6bffdedb527288a7e24ed953f5c2680c70d6ff741f547a6416000000557aa888537a7cae7cac631f000000537acd9f6972ae7cac00c000013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff98dcbd8b09011600142cda4f99ea8112e6fa61cdd26157ed6dc408332a00", "signing_instructions": [{"derivation_path": ["2c000000", "99000000", "01000000", "00000000", "01000000"], "sign_data": ["37727d44af9801e9723eb325592f4d55cc8d7e3815b1d663d61b7f1af9fc13a7"], "pubkey": "91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2"}], "fee": 10000000}
-
shuttle.providers.bytom.rpc.
submit_payment
(guid, tx_raw, signatures, network, memo='mock', timeout=60)¶ Submit transaction raw to Bytom blockchain.
- Parameters
guid (str) – Bytom blockcenter id.
tx_raw (str) – Bytom transaction raw.
signatures (list) – Bytom signed datas.
network (str) – Bytom network, defaults to testnet.
memo (str) – memo, defaults to mock.
timeout (int) – request timeout, default to 15.
- Returns
dict – Bytom transaction id, fee, type and date.
>>> from shuttle.providers.bytom.rpc import submit_payment >>> submit_payment("guid", transaction_raw, [[...]], "mainent") {...}
-
shuttle.providers.bytom.rpc.
decode_tx_raw
(tx_raw, network='testnet', timeout=60)¶ Get decoded transaction raw.
- Parameters
tx_raw (str) – Bytom transaction raw.
network (str) – Bytom network, defaults to testnet.
timeout (int) – request timeout, default to 15.
- Returns
dict – Bytom decoded transaction raw.
>>> from shuttle.providers.bytom.rpc import decode_tx_raw >>> decode_tx_raw(transaction_raw, "testnet") {...}