Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
wl2 = wallet_create_or_open(
'multisigmulticur2_tst', sigs_required=2, network=network,
db_uri=self.DATABASE_URI, sort_keys=False,
keys=[pk1.public_master(), pk2, pk3.public_master()])
wl3 = wallet_create_or_open(
'multisigmulticur3_tst', sigs_required=2, network=network,
db_uri=self.DATABASE_URI, sort_keys=False,
keys=[pk1.public_master(), pk2.public_master(), pk3])
return wl1, wl2, wl3
self.db_remove()
network = 'litecoin'
phrase1 = 'shop cloth bench traffic vintage security hour engage omit almost episode fragile'
phrase2 = 'exclude twice mention orchard grit ignore display shine cheap exercise same apart'
phrase3 = 'citizen obscure tribe index little welcome deer wine exile possible pizza adjust'
pk1 = HDKey.from_passphrase(phrase1, multisig=True, network=network)
pk2 = HDKey.from_passphrase(phrase2, multisig=True, network=network)
pk3 = HDKey.from_passphrase(phrase3, multisig=True, network=network)
wallets = _open_all_wallets()
for wlt in wallets:
self.assertEqual(wlt.get_key(cosigner_id=1).address, 'MQVt7KeRHGe35b9ziZo16T5y4fQPg6Up7q')
del wallets
wallets2 = _open_all_wallets()
for wlt in wallets2:
self.assertEqual(wlt.get_key(cosigner_id=1).address, 'MQVt7KeRHGe35b9ziZo16T5y4fQPg6Up7q')
def test_wallet_segwit_create_p2sh_p2wsh(self):
phrase1 = 'exclude twice mention orchard grit ignore display shine cheap exercise same apart'
phrase2 = 'shop cloth bench traffic vintage security hour engage omit almost episode fragile'
pk1 = HDKey.from_passphrase(phrase1)
pk2 = HDKey.from_passphrase(phrase2)
w = HDWallet.create('segwit-p2sh-p2wsh', [pk1, pk2.public_master(witness_type='p2sh-segwit', multisig=True)],
sigs_required=2, witness_type='p2sh-segwit', db_uri=self.DATABASE_URI)
nk = w.get_key()
self.assertEqual(nk.address, '3JFyRjKWYFz5BMFHLZvT7EZQJ85gLFvtkT')
self.assertEqual(nk.key_type, 'multisig')
self.assertEqual(nk.path, "m/48'/0'/0'/1'/0/0")
db_uri=self.DATABASE_URI, sort_keys=False,
keys=[pk1.public_master(), pk2, pk3.public_master()])
wl3 = wallet_create_or_open(
'multisigmulticur3_tst', sigs_required=2, network=network,
db_uri=self.DATABASE_URI, sort_keys=False,
keys=[pk1.public_master(), pk2.public_master(), pk3])
return wl1, wl2, wl3
self.db_remove()
network = 'litecoin'
phrase1 = 'shop cloth bench traffic vintage security hour engage omit almost episode fragile'
phrase2 = 'exclude twice mention orchard grit ignore display shine cheap exercise same apart'
phrase3 = 'citizen obscure tribe index little welcome deer wine exile possible pizza adjust'
pk1 = HDKey.from_passphrase(phrase1, multisig=True, network=network)
pk2 = HDKey.from_passphrase(phrase2, multisig=True, network=network)
pk3 = HDKey.from_passphrase(phrase3, multisig=True, network=network)
wallets = _open_all_wallets()
for wlt in wallets:
self.assertEqual(wlt.get_key(cosigner_id=1).address, 'MQVt7KeRHGe35b9ziZo16T5y4fQPg6Up7q')
del wallets
wallets2 = _open_all_wallets()
for wlt in wallets2:
self.assertEqual(wlt.get_key(cosigner_id=1).address, 'MQVt7KeRHGe35b9ziZo16T5y4fQPg6Up7q')
def test_wallet_segwit_create_pswsh(self):
phrase1 = 'exclude twice mention orchard grit ignore display shine cheap exercise same apart'
phrase2 = 'shop cloth bench traffic vintage security hour engage omit almost episode fragile'
pk1 = HDKey.from_passphrase(phrase1, witness_type='segwit', multisig=True)
pk2 = HDKey.from_passphrase(phrase2, witness_type='segwit', multisig=True)
w = HDWallet.create('multisig-segwit', [pk1, pk2.public_master()], sigs_required=1, witness_type='segwit',
db_uri=self.DATABASE_URI)
self.assertEqual(w.get_key().address, 'bc1qfjhmzzt9l6dmm0xx3tc6qrtff8dve7j7qrcyp88tllszm97r84aqxel5jk')
def test_transaction_multisig_estimate_size(self):
network = 'bitcoinlib_test'
phrase1 = 'shop cloth bench traffic vintage security hour engage omit almost episode fragile'
phrase2 = 'exclude twice mention orchard grit ignore display shine cheap exercise same apart'
phrase3 = 'citizen obscure tribe index little welcome deer wine exile possible pizza adjust'
prev_hash = '55d721dffa90208d8ab7ae3411c42db3e7de860f3a76ab18f7c237bf2390a666'
pk1 = HDKey.from_passphrase(phrase1, network=network)
pk2 = HDKey.from_passphrase(phrase2, network=network)
pk3 = HDKey.from_passphrase(phrase3, network=network)
t = Transaction(network=network)
t.add_input(prev_hash, 0, [pk1.private_byte, pk2.public_byte, pk3.public_byte], script_type='p2sh_multisig',
sigs_required=2)
t.add_output(10000, '22zkxRGNsjHJpqU8tSS7cahSZVXrz9pJKSs')
self.assertEqual(t.estimate_size(), 337)
def test_transaction_multisig_estimate_size(self):
network = 'bitcoinlib_test'
phrase1 = 'shop cloth bench traffic vintage security hour engage omit almost episode fragile'
phrase2 = 'exclude twice mention orchard grit ignore display shine cheap exercise same apart'
phrase3 = 'citizen obscure tribe index little welcome deer wine exile possible pizza adjust'
prev_hash = '55d721dffa90208d8ab7ae3411c42db3e7de860f3a76ab18f7c237bf2390a666'
pk1 = HDKey.from_passphrase(phrase1, network=network)
pk2 = HDKey.from_passphrase(phrase2, network=network)
pk3 = HDKey.from_passphrase(phrase3, network=network)
t = Transaction(network=network)
t.add_input(prev_hash, 0, [pk1.private_byte, pk2.public_byte, pk3.public_byte], script_type='p2sh_multisig',
sigs_required=2)
t.add_output(10000, '22zkxRGNsjHJpqU8tSS7cahSZVXrz9pJKSs')
self.assertEqual(t.estimate_size(), 337)
def test_wallet_multisig_network_mixups(self):
self.db_remove()
network = 'litecoin_testnet'
phrase1 = 'shop cloth bench traffic vintage security hour engage omit almost episode fragile'
phrase2 = 'exclude twice mention orchard grit ignore display shine cheap exercise same apart'
phrase3 = 'citizen obscure tribe index little welcome deer wine exile possible pizza adjust'
pk2 = HDKey.from_passphrase(phrase2, multisig=True, network=network)
pk3 = HDKey.from_passphrase(phrase3, multisig=True, network=network)
wlt = wallet_create_or_open(
'multisig_network_mixups', sigs_required=2, network=network, db_uri=self.DATABASE_URI,
keys=[phrase1, pk2.public_master(), pk3.public_master()],
sort_keys=False)
self.assertEqual(wlt.get_key().address, 'QjecchURWzhzUzLkhJ8Xijnm29Z9PscSqD')
self.assertEqual(wlt.get_key().network.name, network)
def test_wallet_segwit_create_p2sh_p2wsh(self):
phrase1 = 'exclude twice mention orchard grit ignore display shine cheap exercise same apart'
phrase2 = 'shop cloth bench traffic vintage security hour engage omit almost episode fragile'
pk1 = HDKey.from_passphrase(phrase1)
pk2 = HDKey.from_passphrase(phrase2)
w = HDWallet.create('segwit-p2sh-p2wsh', [pk1, pk2.public_master(witness_type='p2sh-segwit', multisig=True)],
sigs_required=2, witness_type='p2sh-segwit', db_uri=self.DATABASE_URI)
nk = w.get_key()
self.assertEqual(nk.address, '3JFyRjKWYFz5BMFHLZvT7EZQJ85gLFvtkT')
self.assertEqual(nk.key_type, 'multisig')
self.assertEqual(nk.path, "m/48'/0'/0'/1'/0/0")
'multisigmulticur2_tst', sigs_required=2, network=network,
db_uri=self.DATABASE_URI, sort_keys=False,
keys=[pk1.public_master(), pk2, pk3.public_master()])
wl3 = wallet_create_or_open(
'multisigmulticur3_tst', sigs_required=2, network=network,
db_uri=self.DATABASE_URI, sort_keys=False,
keys=[pk1.public_master(), pk2.public_master(), pk3])
return wl1, wl2, wl3
self.db_remove()
network = 'litecoin'
phrase1 = 'shop cloth bench traffic vintage security hour engage omit almost episode fragile'
phrase2 = 'exclude twice mention orchard grit ignore display shine cheap exercise same apart'
phrase3 = 'citizen obscure tribe index little welcome deer wine exile possible pizza adjust'
pk1 = HDKey.from_passphrase(phrase1, multisig=True, network=network)
pk2 = HDKey.from_passphrase(phrase2, multisig=True, network=network)
pk3 = HDKey.from_passphrase(phrase3, multisig=True, network=network)
wallets = _open_all_wallets()
for wlt in wallets:
self.assertEqual(wlt.get_key(cosigner_id=1).address, 'MQVt7KeRHGe35b9ziZo16T5y4fQPg6Up7q')
del wallets
wallets2 = _open_all_wallets()
for wlt in wallets2:
self.assertEqual(wlt.get_key(cosigner_id=1).address, 'MQVt7KeRHGe35b9ziZo16T5y4fQPg6Up7q')