예제 #1
0
 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)
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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'
예제 #5
0
    #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())
예제 #6
0
 def generateWalletKey(self, accountIndex=0):
     keys = HDPrivateKey.from_path(self.key,
                                   "m/44'/0'/{}'".format(accountIndex))
     return WalletKey(keys[-1])
예제 #7
0
 def generateDeviceKey(self):
     keys = HDPrivateKey.from_path(self.key, "m/1'")
     return DeviceKey(keys[-1])
예제 #8
0
 def generate_from_entropy(cls, passphrase=""):
     key, mnemonic = HDPrivateKey.master_key_from_entropy(passphrase)
     return cls(mnemonic, passphrase)
예제 #9
0
 def __init__(self, mnemonic, passphrase):
     self.key = HDPrivateKey.master_key_from_mnemonic(mnemonic, passphrase)
     self.mnemonic = mnemonic
예제 #10
0
 def generateChildWalletKey(self, index):
     return WalletKey(HDPrivateKey.from_parent(self.key, index))
예제 #11
0
# #     # 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')))
예제 #12
0
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())