Transaction

Bitcoin transaction in blockchain network.

class shuttle.providers.bytom.transaction.Transaction(network='testnet', guid=None, inputs=None, outputs=None, tx=None)

Bytom Transaction class.

Parameters
  • network (str) – bytom network, defaults to testnet.

  • guid (str) – bytom blockcenter guid, defaults to None.

  • inputs (list) – bytom transaction inputs, defaults to None.

  • outputs (list) – bytom transaction outputs, defaults to None.

  • tx (dict) – bytom transaction, defaults to None.

Returns

Transaction – bytom transaction instance.

Note

Bytom has only three networks, mainnet. solonet and testnet.

hash()

Get bytom transaction hash.

Returns

str – bytom transaction hash or transaction id.

>>> transaction.hash()
"2993414225f65390220730d0c1a356c14e91bca76db112d37366df93e364a492"
json()

Get bytom transaction json format.

Returns

dict – bytom transaction json format.

>>> 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()

Get bytom transaction raw.

Returns

str – bytom transaction raw.

>>> transaction.raw()
"070100010160015e7f2d7ecec3f61d30d0b2968973a3ac8448f0599ea20dce883b48c903c4d6e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8091a0900901011600142cda4f99ea8112e6fa61cdd26157ed6dc408332a22012091ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e20201ad01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80701880101642091ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e220ac13c0bb1445423a641754182d53f0677cd4351a0e743e6f10b35122c3d7ea01202b9a5949f5546f63a253e41cda6bffdedb527288a7e24ed953f5c2680c70d6ff741f547a6416000000557aa888537a7cae7cac631f000000537acd9f6972ae7cac00c000013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff98dcbd8b09011600142cda4f99ea8112e6fa61cdd26157ed6dc408332a00"

FundTransaction

class shuttle.providers.bytom.transaction.FundTransaction(network='testnet')

Bytom FundTransaction class.

Parameters

network (str) – bytom network, defaults to testnet.

Returns

FundTransaction – bytom fund transaction instance.

Warning

Do not forget to build transaction after initialize fund transaction.

Fee

Get bytom fund transaction fee.

>>> fund_transaction.fee
10000000
Signatures

Get bytom fund transaction signature data.

>>> fund_transaction.signatures
[...]
build_transaction(wallet, htlc, amount, asset='ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')

Build bytom fund transaction.

Parameters
  • wallet (bytom.wallet.Wallet) – bytom sender wallet.

  • htlc (bytom.htlc.HTLC) – bytom hash time lock contract (HTLC).

  • amount (int) – bytom amount to fund.

  • asset (str) – bytom asset id, defaults to BTM asset.

Returns

FundTransaction – bytom fund transaction instance.

>>> from shuttle.providers.bytom.transaction import FundTransaction
>>> fund_transaction = FundTransaction(network="testnet")
>>> fund_transaction.build_transaction(sender_wallet, htlc, 10000)
<shuttle.providers.bytom.transaction.FundTransaction object at 0x0409DAF0>
sign(solver)

Sign bytom fund transaction.

Parameters

solver (bytom.solver.FundSolver) – bytom fund solver.

Returns

FundTransaction – bytom fund transaction instance.

>>> from shuttle.providers.bytom.transaction import FundTransaction
>>> fund_transaction = FundTransaction(network="testnet")
>>> fund_transaction.build_transaction(sender_wallet, htlc, 10000)
>>> fund_transaction.sign(fund_solver)
<shuttle.providers.bytom.transaction.FundTransaction object at 0x0409DAF0>
unsigned_raw()

Get bytom unsigned fund transaction raw.

Returns

str – bytom unsigned fund transaction raw.

>>> from shuttle.providers.bytom.transaction import FundTransaction
>>> fund_transaction = FundTransaction(network="testnet")
>>> fund_transaction.build_transaction(sender_wallet, htlc, 10000)
>>> fund_transaction.unsigned_raw()
"eyJmZWUiOiA2NzgsICJyYXciOiAiMDIwMDAwMDAwMTJjMzkyMjE3NDgzOTA2ZjkwMmU3M2M0YmMxMzI4NjRkZTU4MTUzNzcyZDc5MjY4OTYwOTk4MTYyMjY2NjM0YmUwMTAwMDAwMDAwZmZmZmZmZmYwMmU4MDMwMDAwMDAwMDAwMDAxN2E5MTQ5NzE4OTRjNThkODU5ODFjMTZjMjA1OWQ0MjJiY2RlMGIxNTZkMDQ0ODdhNjI5MDAwMDAwMDAwMDAwMTk3NmE5MTQ2YmNlNjVlNThhNTBiOTc5ODk5MzBlOWE0ZmYxYWMxYTc3NTE1ZWYxODhhYzAwMDAwMDAwIiwgIm91dHB1dHMiOiBbeyJhbW91bnQiOiAxMjM0MCwgIm4iOiAxLCAic2NyaXB0IjogIjc2YTkxNDZiY2U2NWU1OGE1MGI5Nzk4OTkzMGU5YTRmZjFhYzFhNzc1MTVlZjE4OGFjIn1dLCAidHlwZSI6ICJiaXRjb2luX2Z1bmRfdW5zaWduZWQifQ"

ClaimTransaction

class shuttle.providers.bytom.transaction.ClaimTransaction(network='testnet')

Bytom ClaimTransaction class.

Parameters

network (str) – bytom network, defaults to testnet.

Returns

ClaimTransaction – bytom claim transaction instance.

Warning

Do not forget to build transaction after initialize claim transaction.

Fee

Get bytom claim transaction fee.

>>> claim_transaction.fee
10000000
Signatures

Get bytom fund transaction signature data.

>>> claim_transaction.signatures
[...]
build_transaction(wallet, amount, asset='ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', transaction_id=None, utxo_id=None, secret=None)

Build bytom claim transaction.

Parameters
  • wallet (bytom.wallet.Wallet) – bytom recipient wallet.

  • amount (int) – bytom amount to withdraw.

  • asset (str) – bytom asset id, defaults to BTM asset.

  • transaction_id (str) – bytom fund transaction id to redeem, default to None.

  • utxo_id (str) – bytom htlc utxo id, default to None..

  • secret (str) – secret key.

Returns

ClaimTransaction – bytom claim transaction instance.

>>> from shuttle.providers.bytom.transaction import ClaimTransaction
>>> claim_transaction = ClaimTransaction(network="testnet")
>>> claim_transaction.build_transaction(fund_transaction_id, recipient_wallet, 10000)
<shuttle.providers.bytom.transaction.ClaimTransaction object at 0x0409DAF0>
sign(solver)

Sign bytom claim transaction.

Parameters

solver (bytom.solver.ClaimSolver) – bytom claim solver.

Returns

ClaimTransaction – bytom claim transaction instance.

>>> from shuttle.providers.bytom.transaction import ClaimTransaction
>>> claim_transaction = ClaimTransaction(network="testnet")
>>> claim_transaction.build_transaction(fund_transaction_id, recipient_wallet, 10000)
>>> claim_transaction.sign(claim_solver)
<shuttle.providers.bytom.transaction.ClaimTransaction object at 0x0409DAF0>
unsigned_raw()

Get bytom unsigned claim transaction raw.

Returns

str – bytom unsigned claim transaction raw.

>>> from shuttle.providers.bytom.transaction import ClaimTransaction
>>> claim_transaction = ClaimTransaction(network="testnet")
>>> claim_transaction.build_transaction(fund_transaction_id, recipient_wallet, 10000)
>>> claim_transaction.unsigned_raw()
"eyJmZWUiOiA2NzgsICJyYXciOiAiMDIwMDAwMDAwMTJjMzkyMjE3NDgzOTA2ZjkwMmU3M2M0YmMxMzI4NjRkZTU4MTUzNzcyZDc5MjY4OTYwOTk4MTYyMjY2NjM0YmUwMTAwMDAwMDAwZmZmZmZmZmYwMmU4MDMwMDAwMDAwMDAwMDAxN2E5MTQ5NzE4OTRjNThkODU5ODFjMTZjMjA1OWQ0MjJiY2RlMGIxNTZkMDQ0ODdhNjI5MDAwMDAwMDAwMDAwMTk3NmE5MTQ2YmNlNjVlNThhNTBiOTc5ODk5MzBlOWE0ZmYxYWMxYTc3NTE1ZWYxODhhYzAwMDAwMDAwIiwgIm91dHB1dHMiOiBbeyJhbW91bnQiOiAxMjM0MCwgIm4iOiAxLCAic2NyaXB0IjogIjc2YTkxNDZiY2U2NWU1OGE1MGI5Nzk4OTkzMGU5YTRmZjFhYzFhNzc1MTVlZjE4OGFjIn1dLCAidHlwZSI6ICJiaXRjb2luX2Z1bmRfdW5zaWduZWQifQ"

RefundTransaction

class shuttle.providers.bytom.transaction.RefundTransaction(network='testnet')

Bytom RefundTransaction class.

Parameters

network (str) – bytom network, defaults to testnet.

Returns

RefundTransaction – bytom refund transaction instance.

Warning

Do not forget to build transaction after initialize refund transaction.

Fee

Get bytom refund transaction fee.

>>> refund_transaction.fee
10000000
Signatures

Get bytom refund transaction signature data.

>>> refund_transaction.signatures
[...]
build_transaction(wallet, amount, asset='ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', transaction_id=None, utxo_id=None)

Build bytom refund transaction.

Parameters
  • wallet (bytom.wallet.Wallet) – bytom sender wallet.

  • amount (int) – bytom amount to withdraw.

  • asset (str) – bytom asset id, defaults to BTM asset.

  • transaction_id (str) – bytom fund transaction id to redeem, defaults to None.

  • utxo_id (str) – bytom htlc utxo id, default to None..

Returns

RefundTransaction – bytom refund transaction instance.

>>> from shuttle.providers.bytom.transaction import RefundTransaction
>>> refund_transaction = RefundTransaction(network="testnet")
>>> refund_transaction.build_transaction(fund_transaction_id, sender_wallet, 10000)
<shuttle.providers.bytom.transaction.RefundTransaction object at 0x0409DAF0>
sign(solver)

Sign bytom refund transaction.

Parameters

solver (bytom.solver.RefundSolver) – bytom refund solver.

Returns

RefundTransaction – bytom refund transaction instance.

>>> from shuttle.providers.bytom.transaction import RefundTransaction
>>> refund_transaction = RefundTransaction(network="testnet")
>>> refund_transaction.build_transaction(fund_transaction_id, sender_wallet, 10000)
>>> refund_transaction.sign(refund_solver)
<shuttle.providers.bytom.transaction.RefundTransaction object at 0x0409DAF0>
unsigned_raw()

Get bytom unsigned refund transaction raw.

Returns

str – bytom unsigned refund transaction raw.

>>> from shuttle.providers.bytom.transaction import RefundTransaction
>>> refund_transaction = RefundTransaction(network="testnet")
>>> refund_transaction.build_transaction(fund_transaction_id, sender_wallet, 10000)
>>> refund_transaction.unsigned_raw()
"eyJmZWUiOiA2NzgsICJyYXciOiAiMDIwMDAwMDAwMTJjMzkyMjE3NDgzOTA2ZjkwMmU3M2M0YmMxMzI4NjRkZTU4MTUzNzcyZDc5MjY4OTYwOTk4MTYyMjY2NjM0YmUwMTAwMDAwMDAwZmZmZmZmZmYwMmU4MDMwMDAwMDAwMDAwMDAxN2E5MTQ5NzE4OTRjNThkODU5ODFjMTZjMjA1OWQ0MjJiY2RlMGIxNTZkMDQ0ODdhNjI5MDAwMDAwMDAwMDAwMTk3NmE5MTQ2YmNlNjVlNThhNTBiOTc5ODk5MzBlOWE0ZmYxYWMxYTc3NTE1ZWYxODhhYzAwMDAwMDAwIiwgIm91dHB1dHMiOiBbeyJhbW91bnQiOiAxMjM0MCwgIm4iOiAxLCAic2NyaXB0IjogIjc2YTkxNDZiY2U2NWU1OGE1MGI5Nzk4OTkzMGU5YTRmZjFhYzFhNzc1MTVlZjE4OGFjIn1dLCAidHlwZSI6ICJiaXRjb2luX2Z1bmRfdW5zaWduZWQifQ"