Transaction

Bitcoin transaction in blockchain network.

class swap.providers.bitcoin.transaction.Transaction(network: str = 'mainnet', version: int = 2)

Bitcoin Transaction.

Parameters
  • network (str) – Bitcoin network, defaults to mainnet.

  • version (int) – Bitcoin transaction version, defaults to 2.

Returns

Transaction – Bitcoin transaction instance.

Note

Bitcoin has only two networks, mainnet and testnet.

fee(unit: str = 'Satoshi') Union[int, float]

Get Bitcoin transaction fee.

Parameters

unit (str) – Bitcoin unit, default to Satoshi.

Returns

int, float – Bitcoin transaction fee.

>>> from swap.providers.bitcoin.transaction import WithdrawTransaction
>>> withdraw_transaction = WithdrawTransaction("testnet")
>>> withdraw_transaction.build_transaction("mgS3WMHp9nvdUPeDJxr5iCF2P5HuFZSR3V", "a211d21110756b266925fee2fbf2dc81529beef5e410311b38578dc3a076fb31")
>>> withdraw_transaction.fee(unit="Satoshi")
576
hash() str

Get Bitcoin transaction hash.

Returns

str – Bitcoin transaction id/hash.

>>> from swap.providers.bitcoin.htlc import HTLC
>>> from swap.providers.bitcoin.transaction import FundTransaction
>>> from swap.utils import sha256
>>> htlc: HTLC = HTLC(network="testnet")
>>> htlc.build_htlc(secret_hash=sha256("Hello Meheret!"), recipient_address="mgS3WMHp9nvdUPeDJxr5iCF2P5HuFZSR3V", sender_address="n1wgm6kkzMcNfAtJmes8YhpvtDzdNhDY5a", endtime=1624687630)
>>> fund_transaction: FundTransaction = FundTransaction(network="testnet")
>>> fund_transaction.build_transaction(address="n1wgm6kkzMcNfAtJmes8YhpvtDzdNhDY5a", htlc=htlc, amount=0.001, unit="BTC")
>>> fund_transaction.hash()
"9cc0524fb8e7b2c5fecaee4eb91d43a3dc5cc18e9906abcb35a5732ff52efcc7"
json() dict

Get Bitcoin transaction json format.

Returns

dict – Bitcoin transaction json format.

>>> from swap.providers.bitcoin.transaction import RefundTransaction
>>> refund_transaction: RefundTransaction = RefundTransaction(network="testnet")
>>> refund_transaction.build_transaction(address="n1wgm6kkzMcNfAtJmes8YhpvtDzdNhDY5a", transaction_hash="a211d21110756b266925fee2fbf2dc81529beef5e410311b38578dc3a076fb31")
>>> refund_transaction.json()
{"hex": "02000000012c392217483906f902e73c4bc132864de58153772d79268960998162266634be0100000000ffffffff02e80300000000000017a914971894c58d85981c16c2059d422bcde0b156d04487a6290000000000001976a9146bce65e58a50b97989930e9a4ff1ac1a77515ef188ac00000000", "txid": "9cc0524fb8e7b2c5fecaee4eb91d43a3dc5cc18e9906abcb35a5732ff52efcc7", "hash": "9cc0524fb8e7b2c5fecaee4eb91d43a3dc5cc18e9906abcb35a5732ff52efcc7", "size": 117, "vsize": 117, "version": 2, "locktime": 0, "vin": [{"txid": "be346626628199608926792d775381e54d8632c14b3ce702f90639481722392c", "vout": 1, "scriptSig": {"asm": "", "hex": ""}, "sequence": "4294967295"}], "vout": [{"value": "0.00001000", "n": 0, "scriptPubKey": {"asm": "OP_HASH160 971894c58d85981c16c2059d422bcde0b156d044 OP_EQUAL", "hex": "a914971894c58d85981c16c2059d422bcde0b156d04487", "type": "p2sh", "address": "2N729UBGZB3xjsGFRgKivy4bSjkaJGMVSpB"}}, {"value": "0.00010662", "n": 1, "scriptPubKey": {"asm": "OP_DUP OP_HASH160 6bce65e58a50b97989930e9a4ff1ac1a77515ef1 OP_EQUALVERIFY OP_CHECKSIG", "hex": "76a9146bce65e58a50b97989930e9a4ff1ac1a77515ef188ac", "type": "p2pkh", "address": "mqLyrNDjpENRMZAoDpspH7kR9RtgvhWzYE"}}]}
raw() str

Get Bitcoin main transaction raw.

Returns

str – Bitcoin transaction raw.

>>> from swap.providers.bitcoin.transaction import WithdrawTransaction
>>> withdraw_transaction: WithdrawTransaction = WithdrawTransaction("testnet")
>>> withdraw_transaction.build_transaction(address="mgS3WMHp9nvdUPeDJxr5iCF2P5HuFZSR3V", transaction_hash="a211d21110756b266925fee2fbf2dc81529beef5e410311b38578dc3a076fb31")
>>> withdraw_transaction.raw()
"02000000012c392217483906f902e73c4bc132864de58153772d79268960998162266634be0100000000ffffffff02e80300000000000017a914971894c58d85981c16c2059d422bcde0b156d04487a6290000000000001976a9146bce65e58a50b97989930e9a4ff1ac1a77515ef188ac00000000"
type() str

Get Bitcoin signature transaction type.

Returns

str – Bitcoin signature transaction type.

>>> from swap.providers.bitcoin.transaction import WithdrawTransaction
>>> withdraw_transaction: WithdrawTransaction = WithdrawTransaction(network="testnet")
>>> withdraw_transaction.build_transaction(address="mgS3WMHp9nvdUPeDJxr5iCF2P5HuFZSR3V", transaction_hash="a211d21110756b266925fee2fbf2dc81529beef5e410311b38578dc3a076fb31")
>>> withdraw_transaction.type()
"bitcoin_withdraw_unsigned"

NormalTransaction

class swap.providers.bitcoin.transaction.NormalTransaction(network: str = 'mainnet', version: int = 2)

Bitcoin Normal transaction.

Parameters
  • network (str) – Bitcoin network, defaults to mainnet.

  • version (int) – Bitcoin transaction version, defaults to 2.

Returns

NormalTransaction – Bitcoin normal transaction instance.

Warning

Do not forget to build transaction after initialize normal transaction.

build_transaction(address: str, recipients: dict, unit: str = 'Satoshi', locktime: int = 0) swap.providers.bitcoin.transaction.NormalTransaction

Build Bitcoin normal transaction.

Parameters
  • address (str) – Bitcoin sender address.

  • recipients (dict) – Recipients Bitcoin address and amount.

  • unit (str) – Bitcoin unit, default to Satoshi.

  • locktime (int) – Bitcoin transaction lock time, defaults to 0.

Returns

NormalTransaction – Bitcoin normal transaction instance.

>>> from swap.providers.bitcoin.transaction import NormalTransaction
>>> normal_transaction: NormalTransaction = NormalTransaction(network="testnet")
>>> normal_transaction.build_transaction(address="mkFWGt4hT11XS8dJKzzRFsTrqjjAwZfQAC", recipients={"2N6kHwQy6Ph5EdKNgzGrcW2WhGHKGfmP5ae": 10000000}, locktime=0)
<swap.providers.bitcoin.transaction.NormalTransaction object at 0x0409DAF0>
sign(solver: swap.providers.bitcoin.solver.NormalSolver) swap.providers.bitcoin.transaction.NormalTransaction

Sign Bitcoin normal transaction.

Parameters

solver (bitcoin.solver.NormalSolver) – Bitcoin normal solver.

Returns

NormalTransaction – Bitcoin normal transaction instance.

>>> from swap.providers.bitcoin.transaction import NormalTransaction
>>> from swap.providers.bitcoin.solver import NormalSolver
>>> from swap.providers.bitcoin.wallet import Wallet, DEFAULT_PATH
>>> sender_wallet: Wallet = Wallet(network="testnet").from_entropy(entropy="72fee73846f2d1a5807dc8c953bf79f1").from_path(path=DEFAULT_PATH)
>>> normal_solver: NormalSolver = NormalSolver(xprivate_key=sender_wallet.root_xprivate_key())
>>> normal_transaction: NormalTransaction = NormalTransaction(network="testnet").build_transaction(address=sender_wallet.address(), recipients={"2N6kHwQy6Ph5EdKNgzGrcW2WhGHKGfmP5ae": 10000000})
>>> normal_transaction.sign(solver=normal_solver)
<swap.providers.bitcoin.transaction.NormalTransaction object at 0x0409DAF0>
transaction_raw() str

Get Bitcoin normal transaction raw.

Returns

str – Bitcoin normal transaction raw.

>>> from swap.providers.bitcoin.transaction import NormalTransaction
>>> normal_transaction: NormalTransaction = NormalTransaction(network="testnet")
>>> normal_transaction.build_transaction(address="mkFWGt4hT11XS8dJKzzRFsTrqjjAwZfQAC", recipients={"2N6kHwQy6Ph5EdKNgzGrcW2WhGHKGfmP5ae": 10000000})
>>> normal_transaction.transaction_raw()
"eyJmZWUiOiA2NzgsICJyYXciOiAiMDIwMDAwMDAwMTJjMzkyMjE3NDgzOTA2ZjkwMmU3M2M0YmMxMzI4NjRkZTU4MTUzNzcyZDc5MjY4OTYwOTk4MTYyMjY2NjM0YmUwMTAwMDAwMDAwZmZmZmZmZmYwMmU4MDMwMDAwMDAwMDAwMDAxN2E5MTQ5NzE4OTRjNThkODU5ODFjMTZjMjA1OWQ0MjJiY2RlMGIxNTZkMDQ0ODdhNjI5MDAwMDAwMDAwMDAwMTk3NmE5MTQ2YmNlNjVlNThhNTBiOTc5ODk5MzBlOWE0ZmYxYWMxYTc3NTE1ZWYxODhhYzAwMDAwMDAwIiwgIm91dHB1dHMiOiBbeyJhbW91bnQiOiAxMjM0MCwgIm4iOiAxLCAic2NyaXB0IjogIjc2YTkxNDZiY2U2NWU1OGE1MGI5Nzk4OTkzMGU5YTRmZjFhYzFhNzc1MTVlZjE4OGFjIn1dLCAidHlwZSI6ICJiaXRjb2luX2Z1bmRfdW5zaWduZWQifQ"

FundTransaction

class swap.providers.bitcoin.transaction.FundTransaction(network: str = 'mainnet', version: int = 2)

Bitcoin Fund transaction.

Parameters
  • network (str) – Bitcoin network, defaults to mainnet.

  • version (int) – Bitcoin transaction version, defaults to 2.

Returns

FundTransaction – Bitcoin fund transaction instance.

Warning

Do not forget to build transaction after initialize fund transaction.

build_transaction(address: str, htlc: swap.providers.bitcoin.htlc.HTLC, amount: Optional[Union[int, float]], unit: str = 'Satoshi', locktime: int = 0) swap.providers.bitcoin.transaction.FundTransaction

Build Bitcoin fund transaction.

Parameters
  • address (str) – Bitcoin sender address.

  • htlc (bitcoin.htlc.HTLC) – Bitcoin HTLC instance.

  • amount (int, float) – Bitcoin amount, default to None.

  • unit (str) – Bitcoin unit, default to Satoshi.

  • locktime (int) – Bitcoin transaction lock time, defaults to 0.

Returns

FundTransaction – Bitcoin fund transaction instance.

>>> from swap.providers.bitcoin.htlc import HTLC
>>> from swap.providers.bitcoin.transaction import FundTransaction
>>> from swap.utils import sha256
>>> htlc: HTLC = HTLC(network="testnet")
>>> htlc.build_htlc(secret_hash=sha256("Hello Meheret!"), recipient_address="mgS3WMHp9nvdUPeDJxr5iCF2P5HuFZSR3V", sender_address="n1wgm6kkzMcNfAtJmes8YhpvtDzdNhDY5a", endtime=1624687630)
>>> fund_transaction: FundTransaction = FundTransaction(network="testnet")
>>> fund_transaction.build_transaction(address="n1wgm6kkzMcNfAtJmes8YhpvtDzdNhDY5a", htlc=htlc, amount=0.001, unit="BTC")
<swap.providers.bitcoin.transaction.FundTransaction object at 0x0409DAF0>
sign(solver: swap.providers.bitcoin.solver.FundSolver) swap.providers.bitcoin.transaction.FundTransaction

Sign Bitcoin fund transaction.

Parameters

solver (bitcoin.solver.FundSolver) – Bitcoin fund solver.

Returns

FundTransaction – Bitcoin fund transaction instance.

>>> from swap.providers.bitcoin.htlc import HTLC
>>> from swap.providers.bitcoin.transaction import FundTransaction
>>> from swap.providers.bitcoin.solver import FundSolver
>>> from swap.utils import sha256
>>> htlc: HTLC = HTLC(network="testnet")
>>> htlc.build_htlc(secret_hash=sha256("Hello Meheret!"), recipient_address="mgS3WMHp9nvdUPeDJxr5iCF2P5HuFZSR3V", sender_address="n1wgm6kkzMcNfAtJmes8YhpvtDzdNhDY5a", endtime=1624687630)
>>> fund_transaction: FundTransaction = FundTransaction(network="testnet")
>>> fund_transaction.build_transaction(address="n1wgm6kkzMcNfAtJmes8YhpvtDzdNhDY5a", htlc=htlc, amount=0.001, unit="BTC")
>>> fund_solver: FundSolver = FundSolver(xprivate_key="tprv8ZgxMBicQKsPeMHMJAc6uWGYiGqi1MVM2ybmzXL2TAoDpQe85uyDpdT7mv7Nhdu5rTCBEKLZsd9KyP2LQZJzZTvgVQvENArgU8e6DoYBiXf")
>>> fund_transaction.sign(solver=fund_solver)
<swap.providers.bitcoin.transaction.FundTransaction object at 0x0409DAF0>
transaction_raw() str

Get Bitcoin fund transaction raw.

Returns

str – Bitcoin fund transaction raw.

>>> from swap.providers.bitcoin.htlc import HTLC
>>> from swap.providers.bitcoin.transaction import FundTransaction
>>> from swap.utils import sha256
>>> htlc: HTLC = HTLC(network="testnet")
>>> htlc.build_htlc(secret_hash=sha256("Hello Meheret!"), recipient_address="mgS3WMHp9nvdUPeDJxr5iCF2P5HuFZSR3V", sender_address="n1wgm6kkzMcNfAtJmes8YhpvtDzdNhDY5a", endtime=1624687630)
>>> fund_transaction: FundTransaction = FundTransaction(network="testnet")
>>> fund_transaction.build_transaction(address="n1wgm6kkzMcNfAtJmes8YhpvtDzdNhDY5a", htlc=htlc, amount=0.001, unit="BTC")
>>> fund_transaction.transaction_raw()
"eyJmZWUiOiAxMTIyLCAicmF3IjogIjAyMDAwMDAwMDIzMWZiNzZhMGMzOGQ1NzM4MWIzMTEwZTRmNWVlOWI1MjgxZGNmMmZiZTJmZTI1NjkyNjZiNzUxMDExZDIxMWEyMDEwMDAwMDAwMGZmZmZmZmZmMDgwYjgyZWVjMzMyOTk2YTQyMmFlNGYwODBmNzRlNTNmZDJjYTRmMDcwMTFkNDdjNTkwODUzZTFlMzA1ZmUxMTAxMDAwMDAwMDBmZmZmZmZmZjAyYTA4NjAxMDAwMDAwMDAwMDE3YTkxNGM4Yzc3YTliNDNlZTJiZGYxYTA3YzQ4Njk5ODMzZDc2NjhiZjI2NGM4NzMyOWMwZDAwMDAwMDAwMDAxOTc2YTkxNGUwMGZmMmE2NDBiN2NlMmQzMzY4NjA3MzkxNjk0ODdhNTdmODRiMTU4OGFjMDAwMDAwMDAiLCAib3V0cHV0cyI6IFt7InZhbHVlIjogOTQzMzAsICJ0eF9vdXRwdXRfbiI6IDEsICJzY3JpcHQiOiAiNzZhOTE0ZTAwZmYyYTY0MGI3Y2UyZDMzNjg2MDczOTE2OTQ4N2E1N2Y4NGIxNTg4YWMifSwgeyJ2YWx1ZSI6IDg5ODc0NiwgInR4X291dHB1dF9uIjogMSwgInNjcmlwdCI6ICI3NmE5MTRlMDBmZjJhNjQwYjdjZTJkMzM2ODYwNzM5MTY5NDg3YTU3Zjg0YjE1ODhhYyJ9XSwgIm5ldHdvcmsiOiAidGVzdG5ldCIsICJ0eXBlIjogImJpdGNvaW5fZnVuZF91bnNpZ25lZCJ9"

WithdrawTransaction

class swap.providers.bitcoin.transaction.WithdrawTransaction(network: str = 'mainnet', version: int = 2)

Bitcoin Withdraw transaction.

Parameters
  • network (str) – Bitcoin network, defaults to mainnet.

  • version (int) – Bitcoin transaction version, defaults to 2.

Returns

WithdrawTransaction – Bitcoin withdraw transaction instance.

Warning

Do not forget to build transaction after initialize withdraw transaction.

build_transaction(address: str, transaction_hash: str, locktime: int = 0) swap.providers.bitcoin.transaction.WithdrawTransaction

Build Bitcoin withdraw transaction.

Parameters
  • address (str) – Bitcoin recipient address.

  • transaction_hash (str) – Bitcoin funded transaction hash/id.

  • locktime (int) – Bitcoin transaction lock time, defaults to 0.

Returns

WithdrawTransaction – Bitcoin withdraw transaction instance.

>>> from swap.providers.bitcoin.transaction import WithdrawTransaction
>>> withdraw_transaction: WithdrawTransaction = WithdrawTransaction("testnet")
>>> withdraw_transaction.build_transaction(address="mgS3WMHp9nvdUPeDJxr5iCF2P5HuFZSR3V", transaction_hash="a211d21110756b266925fee2fbf2dc81529beef5e410311b38578dc3a076fb31")
<swap.providers.bitcoin.transaction.WithdrawTransaction object at 0x0409DAF0>
sign(solver: swap.providers.bitcoin.solver.WithdrawSolver) swap.providers.bitcoin.transaction.WithdrawTransaction

Sign Bitcoin withdraw transaction.

Parameters

solver (bitcoin.solver.WithdrawSolver) – Bitcoin withdraw solver.

Returns

WithdrawTransaction – Bitcoin withdraw transaction instance.

>>> from swap.providers.bitcoin.transaction import WithdrawTransaction
>>> from swap.providers.bitcoin.solver import WithdrawSolver
>>> withdraw_transaction: WithdrawTransaction = WithdrawTransaction("testnet")
>>> withdraw_transaction.build_transaction(address="mgS3WMHp9nvdUPeDJxr5iCF2P5HuFZSR3V", transaction_hash="a211d21110756b266925fee2fbf2dc81529beef5e410311b38578dc3a076fb31")
>>> bytecode: str = "63aa20821124b554d13f247b1e5d10b84e44fb1296f18f38bbaa1bea34a12c843e01588876a9140a0a6590e6ba4b48118d21b86812615219ece76b88ac67040ec4d660b17576a914e00ff2a640b7ce2d336860739169487a57f84b1588ac68"
>>> withdraw_solver: WithdrawSolver = WithdrawSolver(xprivate_key="tprv8ZgxMBicQKsPf949JcuVFLXPJ5m4VKe33gVX3FYVZYVHr2dChU8K66aEQcPdHpUgACq5GQu81Z4e3QN1vxCrV4pxcUcXHoRTamXBRaPdJhW", secret_key="Hello Meheret!", bytecode=bytecode)
>>> withdraw_transaction.sign(solver=withdraw_solver)
<swap.providers.bitcoin.transaction.WithdrawTransaction object at 0x0409DAF0>
transaction_raw() str

Get Bitcoin withdraw transaction raw.

Returns

str – Bitcoin withdraw transaction raw.

>>> from swap.providers.bitcoin.transaction import WithdrawTransaction
>>> withdraw_transaction: WithdrawTransaction = WithdrawTransaction("testnet")
>>> withdraw_transaction.build_transaction(address="mgS3WMHp9nvdUPeDJxr5iCF2P5HuFZSR3V", transaction_hash="a211d21110756b266925fee2fbf2dc81529beef5e410311b38578dc3a076fb31")
>>> withdraw_transaction.transaction_raw()
"eyJmZWUiOiA1NzYsICJyYXciOiAiMDIwMDAwMDAwMTMxZmI3NmEwYzM4ZDU3MzgxYjMxMTBlNGY1ZWU5YjUyODFkY2YyZmJlMmZlMjU2OTI2NmI3NTEwMTFkMjExYTIwMDAwMDAwMDAwZmZmZmZmZmYwMTYwODQwMTAwMDAwMDAwMDAxOTc2YTkxNDBhMGE2NTkwZTZiYTRiNDgxMThkMjFiODY4MTI2MTUyMTllY2U3NmI4OGFjMDAwMDAwMDAiLCAib3V0cHV0cyI6IHsidmFsdWUiOiAxMDAwMDAsICJ0eF9vdXRwdXRfbiI6IDAsICJzY3JpcHQiOiAiYTkxNGM4Yzc3YTliNDNlZTJiZGYxYTA3YzQ4Njk5ODMzZDc2NjhiZjI2NGM4NyJ9LCAibmV0d29yayI6ICJ0ZXN0bmV0IiwgInR5cGUiOiAiYml0Y29pbl93aXRoZHJhd191bnNpZ25lZCJ9"

RefundTransaction

class swap.providers.bitcoin.transaction.RefundTransaction(network: str = 'mainnet', version: int = 2)

Bitcoin Refund transaction.

Parameters
  • network (str) – Bitcoin network, defaults to mainnet.

  • version (int) – Bitcoin transaction version, defaults to 2.

Returns

RefundTransaction – Bitcoin refund transaction instance.

Warning

Do not forget to build transaction after initialize refund transaction.

build_transaction(address: str, transaction_hash: str, locktime: int = 0) swap.providers.bitcoin.transaction.RefundTransaction

Build Bitcoin refund transaction.

Parameters
  • address (str) – Bitcoin sender address.

  • transaction_hash (str) – Bitcoin funded transaction hash/id.

  • locktime (int) – Bitcoin transaction lock time, defaults to 0.

Returns

RefundTransaction – Bitcoin refund transaction instance.

>>> from swap.providers.bitcoin.transaction import RefundTransaction
>>> refund_transaction: RefundTransaction = RefundTransaction("testnet")
>>> refund_transaction.build_transaction(address="n1wgm6kkzMcNfAtJmes8YhpvtDzdNhDY5a", transaction_hash="a211d21110756b266925fee2fbf2dc81529beef5e410311b38578dc3a076fb31")
<swap.providers.bitcoin.transaction.RefundTransaction object at 0x0409DAF0>
sign(solver: swap.providers.bitcoin.solver.RefundSolver) swap.providers.bitcoin.transaction.RefundTransaction

Sign Bitcoin refund transaction.

Parameters

solver (bitcoin.solver.RefundSolver) – Bitcoin refund solver.

Returns

RefundTransaction – Bitcoin refund transaction instance.

>>> from swap.providers.bitcoin.transaction import RefundTransaction
>>> refund_transaction: RefundTransaction = RefundTransaction("testnet")
>>> refund_transaction.build_transaction(address="n1wgm6kkzMcNfAtJmes8YhpvtDzdNhDY5a", transaction_hash="a211d21110756b266925fee2fbf2dc81529beef5e410311b38578dc3a076fb31")
>>> bytecode: str = "63aa20821124b554d13f247b1e5d10b84e44fb1296f18f38bbaa1bea34a12c843e01588876a9140a0a6590e6ba4b48118d21b86812615219ece76b88ac67040ec4d660b17576a914e00ff2a640b7ce2d336860739169487a57f84b1588ac68"
>>> refund_solver: RefundSolver = RefundSolver(xprivate_key="tprv8ZgxMBicQKsPeMHMJAc6uWGYiGqi1MVM2ybmzXL2TAoDpQe85uyDpdT7mv7Nhdu5rTCBEKLZsd9KyP2LQZJzZTvgVQvENArgU8e6DoYBiXf", bytecode=bytecode, endtime=1624687630)
>>> refund_transaction.sign(solver=refund_solver)
<swap.providers.bitcoin.transaction.RefundTransaction object at 0x0409DAF0>
transaction_raw() str

Get Bitcoin refund transaction raw.

Returns

str – Bitcoin refund transaction raw.

>>> from swap.providers.bitcoin.transaction import RefundTransaction
>>> refund_transaction: RefundTransaction = RefundTransaction("testnet")
>>> refund_transaction.build_transaction(address="n1wgm6kkzMcNfAtJmes8YhpvtDzdNhDY5a", transaction_hash="a211d21110756b266925fee2fbf2dc81529beef5e410311b38578dc3a076fb31")
>>> refund_transaction.transaction_raw()
"eyJmZWUiOiA1NzYsICJyYXciOiAiMDIwMDAwMDAwMTMxZmI3NmEwYzM4ZDU3MzgxYjMxMTBlNGY1ZWU5YjUyODFkY2YyZmJlMmZlMjU2OTI2NmI3NTEwMTFkMjExYTIwMDAwMDAwMDAwZmZmZmZmZmYwMTYwODQwMTAwMDAwMDAwMDAxOTc2YTkxNGUwMGZmMmE2NDBiN2NlMmQzMzY4NjA3MzkxNjk0ODdhNTdmODRiMTU4OGFjMDAwMDAwMDAiLCAib3V0cHV0cyI6IHsidmFsdWUiOiAxMDAwMDAsICJ0eF9vdXRwdXRfbiI6IDAsICJzY3JpcHQiOiAiYTkxNGM4Yzc3YTliNDNlZTJiZGYxYTA3YzQ4Njk5ODMzZDc2NjhiZjI2NGM4NyJ9LCAibmV0d29yayI6ICJ0ZXN0bmV0IiwgInR5cGUiOiAiYml0Y29pbl9yZWZ1bmRfdW5zaWduZWQifQ=="