def setUp(self): super(TestMultisigMofN, self).setUp() self.storage = WalletStorage(self.fake_config) self.storage.put_above_chain('multisig_m', 3) self.storage.put_above_chain('multisig_n', 4) self.wallet = Wallet_MofN(self.storage) # set cosigner master privkey cosigner1_master_privkey = bip32_private_derivation(self.cosigner1_root_privkey, "m/", "m/1491'/0'")[0] self.cosigner1_master_pubkey = xpub_from_xprv(cosigner1_master_privkey) cosigner2_master_privkey = bip32_private_derivation(self.cosigner2_root_privkey, "m/", "m/1491'/0'")[0] self.cosigner2_master_pubkey = xpub_from_xprv(cosigner2_master_privkey) cosigner3_master_privkey = bip32_private_derivation(self.cosigner3_root_privkey, "m/", "m/1491'/0'")[0] self.cosigner3_master_pubkey = xpub_from_xprv(cosigner3_master_privkey) self.wallet.set_chain("BTC") self.wallet.add_seed(self.seed_text, self.password) self.wallet.create_master_keys(self.password) self.wallet.add_master_public_key("x2/", self.cosigner1_master_pubkey) self.wallet.add_master_public_key("x3/", self.cosigner2_master_pubkey) self.wallet.add_master_public_key("x4/", self.cosigner3_master_pubkey) self.wallet.create_main_account(self.password)
def setUp(self): super(TestMultisigMofN, self).setUp() self.storage = WalletStorage(self.fake_config) self.storage.put_above_chain('multisig_m', 3) self.storage.put_above_chain('multisig_n', 4) self.wallet = Wallet_MofN(self.storage) # set cosigner master privkey cosigner1_master_privkey = bip32_private_derivation( self.cosigner1_root_privkey, "m/", "m/1491'/0'")[0] self.cosigner1_master_pubkey = xpub_from_xprv(cosigner1_master_privkey) cosigner2_master_privkey = bip32_private_derivation( self.cosigner2_root_privkey, "m/", "m/1491'/0'")[0] self.cosigner2_master_pubkey = xpub_from_xprv(cosigner2_master_privkey) cosigner3_master_privkey = bip32_private_derivation( self.cosigner3_root_privkey, "m/", "m/1491'/0'")[0] self.cosigner3_master_pubkey = xpub_from_xprv(cosigner3_master_privkey) self.wallet.set_chain("BTC") self.wallet.add_seed(self.seed_text, self.password) self.wallet.create_master_keys(self.password) self.wallet.add_master_public_key("x2/", self.cosigner1_master_pubkey) self.wallet.add_master_public_key("x3/", self.cosigner2_master_pubkey) self.wallet.add_master_public_key("x4/", self.cosigner3_master_pubkey) self.wallet.create_main_account(self.password)
def test_xpub_from_xprv(self): """We can derive the xpub key from a xprv.""" # Taken from test vectors in https://en.bitcoin.it/wiki/BIP_0032_TestVectors xpub = "xpub6H1LXWLaKsWFhvm6RVpEL9P4KfRZSW7abD2ttkWP3SSQvnyA8FSVqNTEcYFgJS2UaFcxupHiYkro49S8yGasTvXEYBVPamhGW6cFJodrTHy" xprv = "xprvA41z7zogVVwxVSgdKUHDy1SKmdb533PjDz7J6N6mV6uS3ze1ai8FHa8kmHScGpWmj4WggLyQjgPie1rFSruoUihUZREPSL39UNdE3BBDu76" result = xpub_from_xprv(xprv) self.assertEqual(result, xpub)
def setUp(self): super(TestMultisigWallet, self).setUp() self.storage = WalletStorage(self.fake_config) self.wallet = Wallet_2of2(self.storage) # set cosigner master privkey cosigner_master_privkey = bip32_private_derivation(self.cosigner_root_privkey, "m/", "m/1491'/0'")[0] self.cosigner_master_pubkey = xpub_from_xprv(cosigner_master_privkey) self.wallet.set_chain("BTC") self.wallet.add_seed(self.seed_text, self.password) self.wallet.create_master_keys(self.password) self.wallet.add_master_public_key("x2/", self.cosigner_master_pubkey) self.wallet.create_main_account(self.password)
def test_xpub_from_xprv(self): """We can derive the xpub key from a xprv.""" for xprv_details in self.xprv_xpub: result = xpub_from_xprv(xprv_details['xprv']) self.assertEqual(result, xprv_details['xpub'])
def test_xpub_from_xprv_testnet(self): """We can derive the xpub key from a xprv using testnet headers.""" xpub = "tpubDHNy3kAG39ThyiwwsgoKY4iRenXDRtce8qdCFJZXPMCJg5dsCUHayp84raLTpvyiNA9sXPob5rgqkKvkN8S7MMyXbnEhGJMW64Cf4vFAoaF" xprv = "tprv8kgvuL81tmn36Fv9z38j8f4K5m1HGZRjZY2QxnXDy5PuqbP6a5TzoKWCgTcGHBu66W3TgSbAu2yX6sPza5FkHmy564Sh6gmCPUNeUt4yj2x" result = xpub_from_xprv(xprv, testnet=True) self.assertEqual(result, xpub)