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
andtestnet
.-
fee
()¶ Get Bitcoin transaction fee.
- Returns
int – Bitcoin transaction fee.
>>> from shuttle.providers.bytom.transaction import ClaimTransaction >>> from shuttle.providers.bytom.wallet import Wallet >>> recipient_wallet = Wallet(network="testnet").from_mnemonic("hint excuse upgrade sleep easily deputy erase cluster section other ugly limit") >>> claim_transaction = ClaimTransaction(network="testnet") >>> claim_transaction.build_transaction("1006a6f537fcc4888c65f6ff4f91818a1c6e19bdd3130f59391c00212c552fbd", recipient_wallet, 10000, "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff") >>> claim_transaction.fee() 10000000
-
hash
()¶ Get Bytom transaction hash.
- Returns
str – Bytom transaction hash or transaction id.
>>> from shuttle.providers.bytom.htlc import HTLC >>> from shuttle.providers.bytom.transaction import FundTransaction >>> from shuttle.providers.bytom.wallet import Wallet >>> htlc = HTLC(network="testnet").init("821124b554d13f247b1e5d10b84e44fb1296f18f38bbaa1bea34a12c843e0158", "3e0a377ae4afa031d4551599d9bb7d5b27f4736d77f78cac4d476f0ffba5ae3e", "91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2", 1000) >>> sender_wallet = Wallet(network="testnet").from_mnemonic("indicate warm sock mistake code spot acid ribbon sing over taxi toast") >>> fund_transaction = FundTransaction(network="testnet") >>> fund_transaction.build_transaction(sender_wallet, htlc, 10000) >>> fund_transaction.hash() "2993414225f65390220730d0c1a356c14e91bca76db112d37366df93e364a492"
-
json
()¶ Get Bytom transaction json format.
- Returns
dict – Bytom transaction json format.
>>> from shuttle.providers.bytom.transaction import RefundTransaction >>> from shuttle.providers.bytom.wallet import Wallet >>> sender_wallet = Wallet(network="testnet").from_mnemonic("indicate warm sock mistake code spot acid ribbon sing over taxi toast") >>> refund_transaction = RefundTransaction(network="testnet") >>> refund_transaction.build_transaction("481c00212c552fbdf537fcc88c1006a69bdd3130f593965f6ff4f91818a1c6e1", sender_wallet, 10000, "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff") >>> refund_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.
>>> from shuttle.providers.bytom.transaction import ClaimTransaction >>> from shuttle.providers.bytom.wallet import Wallet >>> recipient_wallet = Wallet(network="testnet").from_mnemonic("hint excuse upgrade sleep easily deputy erase cluster section other ugly limit") >>> claim_transaction = ClaimTransaction(network="testnet") >>> claim_transaction.build_transaction("1006a6f537fcc4888c65f6ff4f91818a1c6e19bdd3130f59391c00212c552fbd", recipient_wallet, 10000, "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff") >>> claim_transaction.raw() "070100010160015e7f2d7ecec3f61d30d0b2968973a3ac8448f0599ea20dce883b48c903c4d6e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8091a0900901011600142cda4f99ea8112e6fa61cdd26157ed6dc408332a22012091ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e20201ad01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80701880101642091ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e220ac13c0bb1445423a641754182d53f0677cd4351a0e743e6f10b35122c3d7ea01202b9a5949f5546f63a253e41cda6bffdedb527288a7e24ed953f5c2680c70d6ff741f547a6416000000557aa888537a7cae7cac631f000000537acd9f6972ae7cac00c000013dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff98dcbd8b09011600142cda4f99ea8112e6fa61cdd26157ed6dc408332a00"
-
type
()¶ Get Bitcoin signature transaction type.
- Returns
str – Bitcoin signature transaction type.
>>> from shuttle.providers.bytom.transaction import ClaimTransaction >>> from shuttle.providers.bytom.wallet import Wallet >>> recipient_wallet = Wallet(network="testnet").from_mnemonic("hint excuse upgrade sleep easily deputy erase cluster section other ugly limit") >>> claim_transaction = ClaimTransaction(network="testnet") >>> claim_transaction.build_transaction("1006a6f537fcc4888c65f6ff4f91818a1c6e19bdd3130f59391c00212c552fbd", recipient_wallet, 10000, "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff") >>> claim_transaction.type() "bitcoin_claim_unsigned"
-
unsigned_datas
(detail=False)¶ Get Bytom transaction unsigned datas with instruction.
- Parameters
detail (bool) – Bytom unsigned datas to see detail, defaults to False.
- Returns
list – Bytom transaction unsigned datas.
>>> from shuttle.providers.bytom.htlc import HTLC >>> from shuttle.providers.bytom.transaction import FundTransaction >>> from shuttle.providers.bytom.wallet import Wallet >>> htlc = HTLC(network="testnet").init("821124b554d13f247b1e5d10b84e44fb1296f18f38bbaa1bea34a12c843e0158", "3e0a377ae4afa031d4551599d9bb7d5b27f4736d77f78cac4d476f0ffba5ae3e", "91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2", 1000) >>> sender_wallet = Wallet(network="testnet").from_mnemonic("indicate warm sock mistake code spot acid ribbon sing over taxi toast") >>> fund_transaction = FundTransaction(network="testnet") >>> fund_transaction.build_transaction(sender_wallet, htlc, 10000) >>> fund_transaction.unsigned_datas() [{'datas': ['38601bf7ce08dab921916f2c723acca0451d8904649bbec16c2076f1455dd1a2'], 'public_key': '91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2', 'network': 'mainnet', 'path': 'm/44/153/1/0/1'}]
-
signatures
()¶ Get Bytom transaction signatures(signed datas).
- Returns
list – Bytom transaction signatures.
>>> from shuttle.providers.bytom.htlc import HTLC >>> from shuttle.providers.bytom.transaction import FundTransaction >>> from shuttle.providers.bytom.solver import FundSolver >>> from shuttle.providers.bytom.wallet import Wallet >>> htlc = HTLC(network="testnet").init("821124b554d13f247b1e5d10b84e44fb1296f18f38bbaa1bea34a12c843e0158", "3e0a377ae4afa031d4551599d9bb7d5b27f4736d77f78cac4d476f0ffba5ae3e", "91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2", 1000) >>> sender_wallet = Wallet(network="testnet").from_mnemonic("indicate warm sock mistake code spot acid ribbon sing over taxi toast") >>> fund_solver = FundSolver("205b15f70e253399da90b127b074ea02904594be9d54678207872ec1ba31ee51ef4490504bd2b6f997113671892458830de09518e6bd5958d5d5dd97624cfa4b") >>> fund_transaction = FundTransaction(network="testnet") >>> fund_transaction.build_transaction(sender_wallet, htlc, 10000) >>> fund_transaction.sign(solver=fund_solver) >>> fund_transaction.signatures() [['8ca69a01def05118866681bc7008971efcff40895285297e0d6bd791220a36d6ef85a11abc48438de21f0256c4f82752b66eb58100ce6b213e1af14cc130ec0e']]
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.
-
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.htlc import HTLC >>> from shuttle.providers.bytom.transaction import FundTransaction >>> from shuttle.providers.bytom.wallet import Wallet >>> htlc = HTLC(network="testnet").init("821124b554d13f247b1e5d10b84e44fb1296f18f38bbaa1bea34a12c843e0158", "3e0a377ae4afa031d4551599d9bb7d5b27f4736d77f78cac4d476f0ffba5ae3e", "91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2", 1000) >>> sender_wallet = Wallet(network="testnet").from_mnemonic("indicate warm sock mistake code spot acid ribbon sing over taxi toast") >>> fund_transaction = FundTransaction(network="testnet") >>> fund_transaction.build_transaction(wallet=sender_wallet, htlc=htlc, amount=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.htlc import HTLC >>> from shuttle.providers.bytom.transaction import FundTransaction >>> from shuttle.providers.bytom.solver import FundSolver >>> from shuttle.providers.bytom.wallet import Wallet >>> htlc = HTLC(network="testnet").init("821124b554d13f247b1e5d10b84e44fb1296f18f38bbaa1bea34a12c843e0158", "3e0a377ae4afa031d4551599d9bb7d5b27f4736d77f78cac4d476f0ffba5ae3e", "91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2", 1000) >>> sender_wallet = Wallet(network="testnet").from_mnemonic("indicate warm sock mistake code spot acid ribbon sing over taxi toast") >>> fund_solver = FundSolver("205b15f70e253399da90b127b074ea02904594be9d54678207872ec1ba31ee51ef4490504bd2b6f997113671892458830de09518e6bd5958d5d5dd97624cfa4b") >>> fund_transaction = FundTransaction(network="testnet") >>> fund_transaction.build_transaction(sender_wallet, htlc, 10000) >>> fund_transaction.sign(solver=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.htlc import HTLC >>> from shuttle.providers.bytom.transaction import FundTransaction >>> from shuttle.providers.bytom.wallet import Wallet >>> htlc = HTLC(network="testnet").init("821124b554d13f247b1e5d10b84e44fb1296f18f38bbaa1bea34a12c843e0158", "3e0a377ae4afa031d4551599d9bb7d5b27f4736d77f78cac4d476f0ffba5ae3e", "91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2", 1000) >>> sender_wallet = Wallet(network="testnet").from_mnemonic("indicate warm sock mistake code spot acid ribbon sing over taxi toast") >>> 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.
-
build_transaction
(transaction_id, wallet, amount, asset='ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')¶ Build Bytom claim transaction.
- Parameters
transaction_id (str) – Bytom fund transaction id to redeem.
wallet (bytom.wallet.Wallet) – Bytom recipient wallet.
amount (int) – Bytom amount to withdraw.
asset (str) – Bytom asset id, defaults to BTM asset.
- Returns
ClaimTransaction – Bytom claim transaction instance.
>>> from shuttle.providers.bytom.transaction import ClaimTransaction >>> from shuttle.providers.bytom.wallet import Wallet >>> recipient_wallet = Wallet(network="testnet").from_mnemonic("hint excuse upgrade sleep easily deputy erase cluster section other ugly limit") >>> claim_transaction = ClaimTransaction(network="testnet") >>> claim_transaction.build_transaction(transaction_id="1006a6f537fcc4888c65f6ff4f91818a1c6e19bdd3130f59391c00212c552fbd", wallet=recipient_wallet, amount=10000, asset="ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff") <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 >>> from shuttle.providers.bytom.solver import ClaimSolver >>> from shuttle.providers.bytom.wallet import Wallet >>> recipient_wallet = Wallet(network="testnet").from_mnemonic("hint excuse upgrade sleep easily deputy erase cluster section other ugly limit") >>> claim_solver = ClaimSolver(recipient_wallet.xprivate_key(), "Hello Meheret!", "3a26da82ead15a80533a02696656b14b5dbfd84eb14790f2e1be5e9e45820eeb", recipient_wallet.public_key(), "91ff7f525ff40874c4f47f0cab42e46e3bf53adad59adef9558ad1b6448f22e2", 1000) >>> claim_transaction = ClaimTransaction(network="testnet") >>> claim_transaction.build_transaction("1006a6f537fcc4888c65f6ff4f91818a1c6e19bdd3130f59391c00212c552fbd", recipient_wallet, 10000, "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff") >>> claim_transaction.sign(solver=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 >>> from shuttle.providers.bytom.wallet import Wallet >>> wallet = Wallet(network="testnet").from_mnemonic("hint excuse upgrade sleep easily deputy erase cluster section other ugly limit") >>> claim_transaction = ClaimTransaction(network="testnet") >>> claim_transaction.build_transaction("1006a6f537fcc4888c65f6ff4f91818a1c6e19bdd3130f59391c00212c552fbd", wallet, 10000, "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff") >>> 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.
-
build_transaction
(transaction_id, wallet, amount, asset='ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')¶ Build Bytom refund transaction.
- Parameters
transaction_id (str) – Bytom fund transaction id to redeem.
wallet (bytom.wallet.Wallet) – Bytom sender wallet.
amount (int) – Bytom amount to withdraw.
asset (str) – Bytom asset id, defaults to BTM asset.
- Returns
RefundTransaction – Bytom refund transaction instance.
>>> from shuttle.providers.bytom.transaction import RefundTransaction >>> from shuttle.providers.bytom.wallet import Wallet >>> sender_wallet = Wallet(network="testnet").from_mnemonic("indicate warm sock mistake code spot acid ribbon sing over taxi toast") >>> refund_transaction = RefundTransaction(network="testnet") >>> refund_transaction.build_transaction(transaction_id="481c00212c552fbdf537fcc88c1006a69bdd3130f593965f6ff4f91818a1c6e1", wallet=sender_wallet, amount=10000, asset="ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff") <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 >>> from shuttle.providers.bytom.solver import RefundSolver >>> from shuttle.providers.bytom.wallet import Wallet >>> sender_wallet = Wallet(network="testnet").from_mnemonic("indicate warm sock mistake code spot acid ribbon sing over taxi toast") >>> refund_solver = RefundSolver(wallet.xprivate_key(), "3a26da82ead15a80533a02696656b14b5dbfd84eb14790f2e1be5e9e45820eeb", "3e0a377ae4afa031d4551599d9bb7d5b27f4736d77f78cac4d476f0ffba5ae3e", wallet.public_key(), 1000) >>> refund_transaction = RefundTransaction(network="testnet") >>> refund_transaction.build_transaction("481c00212c552fbdf537fcc88c1006a69bdd3130f593965f6ff4f91818a1c6e1", sender_wallet, 10000, "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff") >>> refund_transaction.sign(solver=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 >>> from shuttle.providers.bytom.wallet import Wallet >>> sender_wallet = Wallet(network="testnet").from_mnemonic("indicate warm sock mistake code spot acid ribbon sing over taxi toast") >>> refund_transaction = RefundTransaction(network="testnet") >>> refund_transaction.build_transaction("481c00212c552fbdf537fcc88c1006a69bdd3130f593965f6ff4f91818a1c6e1", sender_wallet, 10000, "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff") >>> refund_transaction.unsigned_raw() "eyJmZWUiOiA2NzgsICJyYXciOiAiMDIwMDAwMDAwMTJjMzkyMjE3NDgzOTA2ZjkwMmU3M2M0YmMxMzI4NjRkZTU4MTUzNzcyZDc5MjY4OTYwOTk4MTYyMjY2NjM0YmUwMTAwMDAwMDAwZmZmZmZmZmYwMmU4MDMwMDAwMDAwMDAwMDAxN2E5MTQ5NzE4OTRjNThkODU5ODFjMTZjMjA1OWQ0MjJiY2RlMGIxNTZkMDQ0ODdhNjI5MDAwMDAwMDAwMDAwMTk3NmE5MTQ2YmNlNjVlNThhNTBiOTc5ODk5MzBlOWE0ZmYxYWMxYTc3NTE1ZWYxODhhYzAwMDAwMDAwIiwgIm91dHB1dHMiOiBbeyJhbW91bnQiOiAxMjM0MCwgIm4iOiAxLCAic2NyaXB0IjogIjc2YTkxNDZiY2U2NWU1OGE1MGI5Nzk4OTkzMGU5YTRmZjFhYzFhNzc1MTVlZjE4OGFjIn1dLCAidHlwZSI6ICJiaXRjb2luX2Z1bmRfdW5zaWduZWQifQ"