Created
January 19, 2019 14:51
-
-
Save kannapoix/9ef66b0267cfe906239184c82711da30 to your computer and use it in GitHub Desktop.
Build bitcoin transaction with script locked by p2pkh-multisig.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'pry' | |
require 'pp' | |
require 'bitcoin' | |
include Bitcoin::Builder | |
include Bitcoin::Util | |
Bitcoin::network = :regtest | |
# Prepare elements | |
# Previous transaction | |
# prev txid c37e9046d2d6cf514f49bdf0d19b88b2ae91fc87f244b8144c111ed3247d6bfb | |
# sender address n4H4ePNxWzF5ibmqPBLaenGV79HC9gpqfm | |
# dumpprivkey get WIF privkey cP9nfzGMqcJ3LrJtsTpWjEUyrybfiFXumzaAobZEBJEPWBtkzDv3 | |
sender = Bitcoin::Key.from_base58 'cP9nfzGMqcJ3LrJtsTpWjEUyrybfiFXumzaAobZEBJEPWBtkzDv3' | |
# Recipient | |
# recipient address 'cNBfQu3fAJ1QXMrLvd4PGNAd7RzjUj62kHbkL9owNF2zN2g3M4GB', 'cPJSC2SZqW3d9EWZTWtnDdGUQY7HFWcCH3cSm4kkkDpidJxp188N', 'cMujetBk2WXGwnyA1pWZHYLrGVwk1h5V4nYnCQhr9kJshWKPgNpZ' | |
# dumpprivkey get WIF privkey cNBfQu3fAJ1QXMrLvd4PGNAd7RzjUj62kHbkL9owNF2zN2g3M4GB | |
privkeys = [ | |
'cNBfQu3fAJ1QXMrLvd4PGNAd7RzjUj62kHbkL9owNF2zN2g3M4GB', | |
'cPJSC2SZqW3d9EWZTWtnDdGUQY7HFWcCH3cSm4kkkDpidJxp188N', | |
'cMujetBk2WXGwnyA1pWZHYLrGVwk1h5V4nYnCQhr9kJshWKPgNpZ', | |
] | |
recipients_pubkeys = privkeys.map{ |private_key| Bitcoin::Key.from_base58(private_key).pub } | |
tx = build_tx do |t| | |
t.input do |i| | |
i.prev_out 'c37e9046d2d6cf514f49bdf0d19b88b2ae91fc87f244b8144c111ed3247d6bfb' | |
i.prev_out_index 1 | |
i.prev_out_script '76a914f9aa5ee91d95360104f173892b916d01d6a485a188ac'.htb | |
i.signature_key sender | |
end | |
t.output do |o| | |
o.value 1999000000 | |
o.to [2, *recipients_pubkeys], :multisig | |
end | |
end | |
pp tx.to_hash | |
p tx.to_payload.unpack('H*') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment