-
Notifications
You must be signed in to change notification settings - Fork 2
Transaction
pybytom.transaction.Transaction
Bytom has only three networks mainnet, solonet and testnet.
Parameter
network (str) - Bytom network, [defaults to solonet].
Return
transaction (Transaction) - Bytom transaction class instance.
>>> from pybytom.transaction import Transaction
>>> transaction = Transaction(network="mainnet")
<pybytom.transaction.transaction.Transaction object at 0x040DA268>build_transaction() - Build Bytom transaction.
Parameter
kwargs (str) - Arbitrary keyword arguments. Make sure you link to documentation that describes what keywords are accepted, list the keyword arguments as a definition list:
-
guid(str) Bytom blockcenter guid, [required]. -
inputs(list) Bytom transaction inputs, [required]. -
outputs(list) bytom transaction outputs, [required]. -
fee(int) Bytom transaction fee, [defaults to10000000]. -
confirmations(int) confirmations: Bytom transaction confirmations, [defaults to1].
Return
transaction (Transaction) - Bytom transaction class instance.
>>> from pybytom.transaction import Transaction
>>> transaction = Transaction(network="mainnet")
>>> transaction.build_transaction(guid="f0ed6ddd-9d6b-49fd-8866-a52d1083a13b", inputs=[[...], ...], outputs=[[...], ...], fee=10000000, confirmations=3)
<pybytom.transaction.transaction.Transaction object at 0x0409DAF0>fee() - Bytom transaction fee.
Return
fee (int) - Bytom transaction fee.
>>> from pybytom.transaction import Transaction
>>> transaction = Transaction(network="mainnet")
>>> transaction.build_transaction("f0ed6ddd-9d6b-49fd-8866-a52d1083a13b", inputs=[...], outputs=[...])
>>> transaction.fee()
10000000confirmations() - Bytom transaction confirmations.
Return
confirmations (int) - Bytom transaction confirmations.
>>> from pybytom.transaction import Transaction
>>> transaction = Transaction(network="mainnet")
>>> transaction.build_transaction("f0ed6ddd-9d6b-49fd-8866-a52d1083a13b", inputs=[...], outputs=[...])
>>> transaction.confirmations()
2hash() - Bytom transaction hash.
Return
hash (str) - Bytom transaction hash.
>>> from pybytom.transaction import Transaction
>>> transaction = Transaction(network="mainnet")
>>> transaction.build_transaction("f0ed6ddd-9d6b-49fd-8866-a52d1083a13b", inputs=[...], outputs=[...])
>>> transaction.hash()
"2993414225f65390220730d0c1a356c14e91bca76db112d37366df93e364a492"json() - Bytom transaction json.
Return
json (dict) - Bytom transaction json.
>>> from pybytom.transaction import Transaction
>>> transaction = Transaction(network="mainnet")
>>> transaction.build_transaction("f0ed6ddd-9d6b-49fd-8866-a52d1083a13b", inputs=[...], outputs=[...])
>>> transaction.json()
{'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() - Bytom transaction raw.
Return
raw (str) - Bytom transaction raw.
>>> from pybytom.transaction import Transaction
>>> transaction = Transaction(network="mainnet")
>>> transaction.build_transaction("f0ed6ddd-9d6b-49fd-8866-a52d1083a13b", inputs=[...], outputs=[...])
>>> transaction.raw()
"070100010160015e7f2d7ecec3f61d30d0b2968973a3ac8448f0599ea20dce883b48c903c4d6e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8091a0900901011600142cda4f99ea8112e6fa61cdd26157ed6dc408332a22012091ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e20201ad01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80701880101642091ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e220ac13c0bb1445423a641754182d53f0677cd4351a0e743e6f10b35122c3d7ea01202b9a5949f5546f63a253e41cda6bffdedb527288a7e24ed953f5c2680c70d6ff741f547a6416000000557aa888537a7cae7cac631f000000537acd9f6972ae7cac00c000013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff98dcbd8b09011600142cda4f99ea8112e6fa61cdd26157ed6dc408332a00"unsigned_datas() - Bytom unsigned transaction datas with signing instructions.
Return
unsigned_datas (dict) - Bytom transaction unsigned datas.
>>> from pybytom.transaction import Transaction
>>> transaction = Transaction(network="mainnet")
>>> transaction.build_transaction("f0ed6ddd-9d6b-49fd-8866-a52d1083a13b", inputs=[...], outputs=[...])
>>> transaction.unsigned_datas()
[{'datas': ['a7ba7ffd969e4150b36ea9f1f861d53c6f69226a3519023899d27bf1f85be3d9'], 'public_key': '91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2', 'network': 'mainnet', 'path': 'm/44/153/1/0/1'}, {'datas': ['0dbf0e408099017711a941d9a9899541afa64eb31a7118815d37e6d603b7c329'], 'public_key': '91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2', 'network': 'mainnet', 'path': 'm/44/153/1/0/1'}]
>>> transaction.signatures()
[]sign() - Bytom sign unsigned transaction datas.
Parameter
xprivate_key (str) - Bytom xprivate key, [required].
account (int) - Bytom derivation account, [defaults to 1].
change (bool) - Bytom derivation change, [defaults to False].
address (int) - Bytom derivation address, [defaults to 1].
path (str) - Bytom derivation path, [defaults to None].
indexes (list) - Bytom derivation indexes, [defaults to None].
Return
transaction (Transaction) - Bytom transaction class instance.
>>> from pybytom.transaction import Transaction
>>> transaction = Transaction(network="mainnet")
>>> transaction.build_transaction("f0ed6ddd-9d6b-49fd-8866-a52d1083a13b", inputs=[...], outputs=[...])
>>> transaction.unsigned_datas()
[{'datas': ['a7ba7ffd969e4150b36ea9f1f861d53c6f69226a3519023899d27bf1f85be3d9'], 'public_key': '91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2', 'network': 'mainnet', 'path': 'm/44/153/1/0/1'}, {'datas': ['0dbf0e408099017711a941d9a9899541afa64eb31a7118815d37e6d603b7c329'], 'public_key': '91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2', 'network': 'mainnet', 'path': 'm/44/153/1/0/1'}]
>>> transaction.sign(xprivate_key="3842e3fa2af2a687e7fd67655e7a02e85bbb4ca378d4338ff590dedc7ddff447797e1e781190835138c2d1a96d0e654b625a4c019cbc64f71100be7ad1b8d4ed")
>>> transaction.signatures()
[[...], ...]signatures() - Bytom unsigned transaction datas with signing instructions.
Return
signatures (list) - Bytom signed transaction datas.
>>> from pybytom.transaction import Transaction
>>> transaction = Transaction(network="mainnet")
>>> transaction.build_transaction("f0ed6ddd-9d6b-49fd-8866-a52d1083a13b", inputs=[...], outputs=[...])
>>> transaction.signatures()
[[...], ...]pybytom.transaction.NormalTransaction
It inherited Transaction() class, but build_transaction function is different.
Parameter
network (str) - Bytom network, [defaults to solonet].
Return
normal_transaction (NormalTransaction) - Bytom normal transaction class instance.
>>> from pybytom.transaction import NormalTransaction
>>> normal_transaction = NormalTransaction(network="mainnet")
<pybytom.transaction.transaction.NormalTransaction object at 0x040DA268>build_transaction() - Build Bytom normal transaction.
Parameter
guid (str) - Bytom sender blockcenter guid, [required].
recipients (dict) - Recipients Bytom address and amount, [required].
-
key(str) Bytom address, [required]. -
value(list) Bytom amount, [required].
asset (str) - Bytom asset id, [defaults to BTM asset].
fee (int) - Bytom transaction fee, [defaults to 10000000].
confirmations (int) - Bytom transaction confirmations, [defaults to 1].
Return
normal_transaction (NormalTransaction) - Bytom normal transaction class instance.
>>> from pybytom.transaction import NormalTransaction
>>> normal_transaction = NormalTransaction(network="mainnet")
>>> normal_transaction.build_transaction("f0ed6ddd-9d6b-49fd-8866-a52d1083a13b", {"bm1qzx7pjr6whcaxmh9u0thkjuavf2ynk3zkgshhle": 10_000_000_000}, "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
<pybytom.transaction.transaction.NormalTransaction object at 0x0409DAF0> pybytom.transaction.AdvancedTransaction
It inherited Transaction() class and this is also the same with Transaction class, but when you are building transaction it check the agreements not use kwargs.
Parameter
network (str) - Bytom network, [defaults to solonet].
Return
advanced_transaction (AdvancedTransaction) - Bytom advanced transaction class instance.
>>> from pybytom.transaction import AdvancedTransaction
>>> advanced_transaction = AdvancedTransaction(network="mainnet")
<pybytom.transaction.transaction.AdvancedTransaction object at 0x040DA268>build_transaction() - Build Bytom advanced transaction.
Parameter
guid (str) - Bytom sender blockcenter guid, [required].
inputs (list) - Bytom transaction inputs, [required].
outputs (list) - Bytom transaction outputs, [required].
fee (int) - Bytom transaction fee, [defaults to 10000000].
confirmations (int) - Bytom transaction confirmations, [defaults to 1].
Return
advanced_transaction (AdvancedTransaction) - Bytom advanced transaction class instance.
>>> from pybytom.transaction import AdvancedTransaction
>>> advanced_transaction = AdvancedTransaction(network="mainnet")
>>> advanced_transaction.build_transaction("f0ed6ddd-9d6b-49fd-8866-a52d1083a13b", [[...], ...], outputs=[[...], ...], 10000000, 3)
<pybytom.transaction.transaction.AdvancedTransaction object at 0x0409DAF0>pybytom.transaction.tools
find_contract_utxo_id() - Find Bytom smart contract UTXO id by transaction id/hash.
Parameter
transaction_id (str) - Bytom transaction id/hash, [required].
network (list) - Bytom network, [required].
Return
utxo_id (str) - Bytom unspent transaction output id/hash.
>>> from pybytom.transaction.tools import find_contract_utxo_id
>>> find_contract_utxo_id("e4d4fab70a41536cf298d6f261c0a1ac169a45be47583f7240115c9059cd0d03", "mainnet")
"169a45be47583f7240115c9059cd0d03e4d4fab70a41536cf298d6f261c0a1ac"spend_utxo_action() - Get spend UTXO action.
Parameter
utxo (str) - Bytom unspent transaction output id/hash, [required].
Return
action (dict) - Bytom spend utxo action.
>>> from pybytom.transaction.tools import spend_utxo_action
>>> spend_utxo_action("169a45be47583f7240115c9059cd0d03e4d4fab70a41536cf298d6f261c0a1ac")
{'type': 'spend_utxo', 'output_id': '169a45be47583f7240115c9059cd0d03e4d4fab70a41536cf298d6f261c0a1ac'}spend_wallet_action() - Get spend wallet action.
Parameter
amount (int) - Bytom amount, [required].
asset (str) - Bytom asset, [required].
Return
action (dict) - Bytom spend wallet action.
>>> from pybytom.transaction.tools import spend_wallet_action
>>> spend_wallet_action(100000000, "41536cf298d6f261c0a1ac169a45be47583f7240115c9059cd0d03e4d4fab70a")
{'type': 'spend_wallet', 'amount': 100000000, 'asset': '41536cf298d6f261c0a1ac169a45be47583f7240115c9059cd0d03e4d4fab70a'}spend_account_action() - Get spend account action.
Parameter
account (str) - Bytom account, [required].
amount (int) - Bytom amount, [required].
asset (str) - Bytom asset, [required].
Return
action (dict) - Bytom spend account action.
>>> from pybytom.transaction.tools import spend_account_action
>>> spend_account_action(bytom_account, bytom_amount, bytom_asset)
{type: 'spend_account', account='...', amount=1000000, asset='...'}contract_arguments_action() - Get contract arguments action.
Parameter
amount (int) - Bytom amount, [required].
address (str) - Bytom address, [required].
value (str) - Data value, [default to None].
Return
action (list) - Bytom contract arguments action.
>>> from pybytom.transaction.tools import contract_arguments_action
>>> contract_arguments_action(bytom_amount, bytom_address)
[{'integer': 100}, {'address': '...'}, {'data': ''}]control_program_action() - Get contract program action.
Parameter
amount (int) - Bytom amount, [required].
asset (str) - Bytom asset, [required].
control_program (str) - Bytom control program., [required].
Return
action (dict) - Bytom control program action.
>>> from pybytom.transaction.tools import control_program_action
>>> control_program_action(100, "41536cf298d6f261c0a1ac169a45be47583f7240115c9059cd0d03e4d4fab70a", bytom_control_program)
{'type': 'control_program', 'amount': 100, 'asset': '41536cf298d6f261c0a1ac169a45be47583f7240115c9059cd0d03e4d4fab70a', 'control_program': '...'}control_address_action() - Get contract address action.
Parameter
amount (int) - Bytom amount, [required].
asset (str) - Bytom asset, [required].
address (str) - Bytom address, [required].
Return
action (dict) - Bytom control address action.
>>> from pybytom.transaction.tools import control_address_action
>>> control_address_action(10000000, "41536cf298d6f261c0a1ac169a45be47583f7240115c9059cd0d03e4d4fab70a", "bm1qzx7pjr6whcaxmh9u0thkjuavf2ynk3zkgshhle")
{'type': 'control_address', 'amount': 10000000, 'asset': '41536cf298d6f261c0a1ac169a45be47583f7240115c9059cd0d03e4d4fab70a', 'address': 'bm1qzx7pjr6whcaxmh9u0thkjuavf2ynk3zkgshhle'}