def generateAddressKey(self, index=0): """ an AddressKey is an HDPublicKey that can be used to generate Addresses but can not sign transactions. params: index <hexadecimal> : value less than 0x80000000 """ return AddressKey(HDPrivateKey.from_parent(self.key, index).public_key)
def init_mnemonic(mnemonic, index, password): master_key = HDPrivateKey.master_key_from_mnemonic(mnemonic, password) root_keys = HDKey.from_path(master_key, "m/44'/60'/0'") acct_private_key = root_keys[-1] keys = HDKey.from_path(acct_private_key, '{change}/{index}'.format(change=0, index=index)) private_key_mnemonic = keys[-1] private_key = private_key_mnemonic._key.to_hex() address = private_key_mnemonic.public_key.address() return private_key, address
def init_accounts(w3, how_many): master_key = HDPrivateKey.master_key_from_mnemonic(MNEMONIC) root_keys = HDKey.from_path(master_key, "m/44'/60'/0'") acct_priv_key = root_keys[-1] accounts = {} for i in range(how_many): keys = HDKey.from_path( acct_priv_key, '{change}/{index}'.format(change=0, index=i)) private_key = keys[-1] public_key = private_key.public_key address = private_key.public_key.address() address = w3.toChecksumAddress(address) initial_nonce = AtomicNonce(w3, address) accounts[i] = { "private_key": private_key._key.to_hex(), "address": address, "nonce": initial_nonce } return accounts
def findkey(word, address): #bip 39: 将 seed 用方便记忆和书写的单字表示。一般由 12 个单字组成,称为 mnemonic code(phrase),中文称为助记词或助记码 master_key = HDPrivateKey.master_key_from_mnemonic(word) #bit 44: 基于 BIP32 的系统,赋予树状结构中的各层特殊的意义。让同一个 seed 可以支援多币种、多帐户等 root_keys = HDKey.from_path(master_key, "m/44'/60'/0'") acct_priv_key = root_keys[-1] #bit 32: 定义 Hierarchical Deterministic wallet (简称 “HD Wallet”),是一个系统可以从单一个 seed 产生一树状结构储存多组 keypairs(私钥和公钥) keys = HDKey.from_path(acct_priv_key, '{change}/{index}'.format(change=0, index=0)) private_key = keys[-1] public_key = private_key.public_key # print("Private key (hex, compressed): " + private_key._key.to_hex()) # print("Address: " + private_key.public_key.address()) add = private_key.public_key.address() if add == address: return 'true' return 'false'
#bit 32: 定义 Hierarchical Deterministic wallet (简称 “HD Wallet”),是一个系统可以从单一个 seed 产生一树状结构储存多组 keypairs(私钥和公钥) keys = HDKey.from_path(acct_priv_key, '{change}/{index}'.format(change=0, index=0)) private_key = keys[-1] public_key = private_key.public_key # print("Private key (hex, compressed): " + private_key._key.to_hex()) # print("Address: " + private_key.public_key.address()) add = private_key.public_key.address() if add == address: return 'true' return 'false' master_key, mnemonic = HDPrivateKey.master_key_from_entropy() print('BIP32 Wallet Generated.') print('Mnemonic Secret: ' + mnemonic) from crypto import HDPrivateKey, HDKey master_key = HDPrivateKey.master_key_from_mnemonic('laundry snap patient survey sleep strategy finger bone real west arch protect') root_keys = HDKey.from_path(master_key,"m/44'/60'/0'") acct_priv_key = root_keys[-1] for i in range(6): keys = HDKey.from_path(acct_priv_key,'{change}/{index}'.format(change=0, index=i)) private_key = keys[-1] public_key = private_key.public_key print("Index %s:" % i) print(" Private key (hex, compressed): " + private_key._key.to_hex()) print(" Address: " + private_key.public_key.address())
def generateWalletKey(self, accountIndex=0): keys = HDPrivateKey.from_path(self.key, "m/44'/0'/{}'".format(accountIndex)) return WalletKey(keys[-1])
def generateDeviceKey(self): keys = HDPrivateKey.from_path(self.key, "m/1'") return DeviceKey(keys[-1])
def generate_from_entropy(cls, passphrase=""): key, mnemonic = HDPrivateKey.master_key_from_entropy(passphrase) return cls(mnemonic, passphrase)
def __init__(self, mnemonic, passphrase): self.key = HDPrivateKey.master_key_from_mnemonic(mnemonic, passphrase) self.mnemonic = mnemonic
def generateChildWalletKey(self, index): return WalletKey(HDPrivateKey.from_parent(self.key, index))
# # # print(web3.eth.getTransactionCount(web3.toChecksumAddress(0x499973Da87eF296F5dF933141E1f60775FcEA0f6))) # # # print(web3.eth.getCode('0x5c7029728aa4ca90A6820baf602e91c5c4FB3560')) # # # print(web3.eth.getCode('0x499973Da87eF296F5dF933141E1f60775FcEA0f6')) # # # if __name__ == "__main__": # # TerminalControl.init_mnemonic('laundry snap patient survey sleep strategy finger bone real west arch protect', 0, '123456') # # TerminalControl.p() # # test() # test1() from crypto import HDPrivateKey, HDKey mnemonic = "physical toy explain december juice say hour media assault kidney shine abstract" password = "******" master_key = HDPrivateKey.master_key_from_mnemonic(mnemonic, password) root_keys = HDKey.from_path(master_key, "m/44'/60'/0'/0") for x in range(len(root_keys)): print(root_keys[x]._key.to_hex()) acct_private_key = root_keys[-1] index = 20 # i = 19 for i in range(index): keys = HDKey.from_path(acct_private_key, '{index}'.format(index=i)) private_key_mnemonic = keys[-1] private_key = private_key_mnemonic._key.to_hex() address = private_key_mnemonic.public_key.address() print("private--{index}: ".format(index=i) + private_key) print("public--{index}: ".format(index=i) + hex( int.from_bytes(private_key_mnemonic.public_key.compressed_bytes, 'big')))
from crypto import HDPrivateKey, HDPublicKey, HDKey master_key, mnemonic = HDPrivateKey.master_key_from_entropy() print('BIP32 Wallet Generated.') print('Mnemonic Secret: ' + mnemonic) root_keys = HDKey.from_path(master_key,"m/44'/60'/0'") acct_priv_key = root_keys[-1] acct_pub_key = acct_priv_key.public_key print('Account Master Public Key (Hex): ' + acct_pub_key.to_hex()) print('XPUB format: ' + acct_pub_key.to_b58check()) keys = HDKey.from_path(acct_pub_key,'{change}/{index}'.format(change=0, index=0)) address = keys[-1].address() print('Account address: ' + address) for i in range(10): keys = HDKey.from_path(acct_priv_key,'{change}/{index}'.format(change=0, index=i)) private_key = keys[-1] public_key = private_key.public_key print("Index %s:" % i) print(" Private key (hex, compressed): " + private_key._key.to_hex()) print(" Address: " + private_key.public_key.address())