Transaction¶
Bitcoin transaction in blockchain network.
-
class
shuttle.providers.bitcoin.transaction.
Transaction
(version=2, network='testnet')¶ Bitcoin Transaction class.
- Parameters
version (int) – bitcoin transaction version, defaults to 2.
network (str) – bitcoin network, defaults to testnet.
- Returns
Transaction – bitcoin transaction instance.
Note
Bitcoin has only two networks,
mainnet
andtestnet
.-
hash
()¶ Get bitcoin transaction hash.
- Returns
str – bitcoin transaction hash or transaction id.
>>> transaction.hash() "9cc0524fb8e7b2c5fecaee4eb91d43a3dc5cc18e9906abcb35a5732ff52efcc7"
-
json
()¶ Get bitcoin transaction json format.
- Returns
dict – bitcoin transaction json format.
>>> 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
()¶ Get bitcoin transaction raw.
- Returns
str – bitcoin transaction raw.
>>> transaction.raw() "02000000012c392217483906f902e73c4bc132864de58153772d79268960998162266634be0100000000ffffffff02e80300000000000017a914971894c58d85981c16c2059d422bcde0b156d04487a6290000000000001976a9146bce65e58a50b97989930e9a4ff1ac1a77515ef188ac00000000"
FundTransaction¶
-
class
shuttle.providers.bitcoin.transaction.
FundTransaction
(version=2, network='testnet')¶ Bitcoin FundTransaction class.
- Parameters
version (int) – bitcoin transaction version, defaults to 2.
network (str) – bitcoin network, defaults to testnet.
- Returns
FundTransaction – bitcoin fund transaction instance.
Warning
Do not forget to build transaction after initialize fund transaction.
- Fee
Get bitcoin fund transaction fee.
>>> fund_transaction.fee 675
-
build_transaction
(wallet, htlc, amount, locktime=0)¶ Build bitcoin fund transaction.
- Parameters
wallet (bitcoin.wallet.Wallet) – bitcoin sender wallet.
htlc (bitcoin.htlc.HTLC) – bitcoin hash time lock contract (HTLC).
amount (int) – bitcoin amount to fund.
locktime (int) – bitcoin transaction lock time, defaults to 0.
- Returns
FundTransaction – bitcoin fund transaction instance.
>>> from shuttle.providers.bitcoin.transaction import FundTransaction >>> fund_transaction = FundTransaction(network="testnet") >>> fund_transaction.build_transaction(sender_wallet, htlc, 10000) <shuttle.providers.bitcoin.transaction.FundTransaction object at 0x0409DAF0>
-
sign
(solver)¶ Sign bitcoin fund transaction.
- Parameters
solver (bitcoin.solver.FundSolver) – bitcoin fund solver.
- Returns
FundTransaction – bitcoin fund transaction instance.
>>> from shuttle.providers.bitcoin.transaction import FundTransaction >>> fund_transaction = FundTransaction(network="testnet") >>> fund_transaction.build_transaction(sender_wallet, htlc, 10000) >>> fund_transaction.sign(fund_solver) <shuttle.providers.bitcoin.transaction.FundTransaction object at 0x0409DAF0>
-
unsigned_raw
()¶ Get bitcoin unsigned fund transaction raw.
- Returns
str – bitcoin unsigned fund transaction raw.
>>> from shuttle.providers.bitcoin.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.bitcoin.transaction.
ClaimTransaction
(network='testnet', version=2)¶ Bitcoin ClaimTransaction class.
- Parameters
version (int) – bitcoin transaction version, defaults to 2.
network (str) – bitcoin network, defaults to testnet.
- Returns
Transaction – bitcoin transaction instance.
Warning
Do not forget to build transaction after initialize claim transaction.
- Fee
Get bitcoin claim transaction fee.
>>> claim_transaction.fee 675
-
build_transaction
(transaction_id, wallet, amount, secret=None, locktime=0)¶ Build bitcoin claim transaction.
- Parameters
transaction_id (str) – bitcoin fund transaction id to redeem.
wallet (bitcoin.wallet.Wallet) – bitcoin recipient wallet.
amount (int) – bitcoin amount to withdraw.
secret (str) – secret key.
locktime (int) – bitcoin transaction lock time, defaults to 0.
- Returns
ClaimTransaction – bitcoin claim transaction instance.
>>> from shuttle.providers.bitcoin.transaction import ClaimTransaction >>> claim_transaction = ClaimTransaction(network="testnet") >>> claim_transaction.build_transaction(fund_transaction_id, recipient_wallet, 10000) <shuttle.providers.bitcoin.transaction.ClaimTransaction object at 0x0409DAF0>
-
sign
(solver)¶ Sign bitcoin claim transaction.
- Parameters
solver (bitcoin.solver.ClaimSolver) – bitcoin claim solver.
- Returns
ClaimTransaction – bitcoin claim transaction instance.
>>> from shuttle.providers.bitcoin.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.bitcoin.transaction.ClaimTransaction object at 0x0409DAF0>
-
unsigned_raw
()¶ Get bitcoin unsigned claim transaction raw.
- Returns
str – bitcoin unsigned claim transaction raw.
>>> from shuttle.providers.bitcoin.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.bitcoin.transaction.
RefundTransaction
(version=2, network='testnet')¶ Bitcoin RefundTransaction class.
- Parameters
version (int) – bitcoin transaction version, defaults to 2.
network (str) – bitcoin network, defaults to testnet.
- Returns
Transaction – bitcoin transaction instance.
Warning
Do not forget to build transaction after initialize refund transaction.
- Fee
Get bitcoin refund transaction fee.
>>> refund_transaction.fee 675
-
build_transaction
(transaction_id, wallet, amount, secret=None, locktime=0)¶ Build bitcoin refund transaction.
- Parameters
transaction_id (str) – bitcoin fund transaction id to redeem.
wallet (bitcoin.wallet.Wallet) – bitcoin sender wallet.
amount (int) – bitcoin amount to withdraw.
secret (str) – secret passphrase.
locktime (int) – bitcoin transaction lock time, defaults to 0.
- Returns
RefundTransaction – bitcoin refund transaction instance.
>>> from shuttle.providers.bitcoin.transaction import RefundTransaction >>> refund_transaction = RefundTransaction(network="testnet") >>> refund_transaction.build_transaction(fund_transaction_id, sender_wallet, 10000) <shuttle.providers.bitcoin.transaction.RefundTransaction object at 0x0409DAF0>
-
sign
(solver)¶ Sign bitcoin refund transaction.
- Parameters
solver (bitcoin.solver.RefundSolver) – bitcoin refund solver.
- Returns
RefundTransaction – bitcoin refund transaction instance.
>>> from shuttle.providers.bitcoin.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.bitcoin.transaction.RefundTransaction object at 0x0409DAF0>
-
unsigned_raw
()¶ Get bitcoin unsigned refund transaction raw.
- Returns
str – bitcoin unsigned refund transaction raw.
>>> from shuttle.providers.bitcoin.transaction import RefundTransaction >>> refund_transaction = RefundTransaction(network="testnet") >>> refund_transaction.build_transaction(fund_transaction_id, sender_wallet, 10000) >>> refund_transaction.unsigned_raw() "eyJmZWUiOiA2NzgsICJyYXciOiAiMDIwMDAwMDAwMTJjMzkyMjE3NDgzOTA2ZjkwMmU3M2M0YmMxMzI4NjRkZTU4MTUzNzcyZDc5MjY4OTYwOTk4MTYyMjY2NjM0YmUwMTAwMDAwMDAwZmZmZmZmZmYwMmU4MDMwMDAwMDAwMDAwMDAxN2E5MTQ5NzE4OTRjNThkODU5ODFjMTZjMjA1OWQ0MjJiY2RlMGIxNTZkMDQ0ODdhNjI5MDAwMDAwMDAwMDAwMTk3NmE5MTQ2YmNlNjVlNThhNTBiOTc5ODk5MzBlOWE0ZmYxYWMxYTc3NTE1ZWYxODhhYzAwMDAwMDAwIiwgIm91dHB1dHMiOiBbeyJhbW91bnQiOiAxMjM0MCwgIm4iOiAxLCAic2NyaXB0IjogIjc2YTkxNDZiY2U2NWU1OGE1MGI5Nzk4OTkzMGU5YTRmZjFhYzFhNzc1MTVlZjE4OGFjIn1dLCAidHlwZSI6ICJiaXRjb2luX2Z1bmRfdW5zaWduZWQifQ"