def create_account_info(self, label: str, pwd: str, salt: str, private_key: str) -> AccountInfo: acct = self.__create_account(label, pwd, salt, private_key, True) info = AccountInfo() info.address_base58 = Address.from_public_key( acct.get_public_key_bytes()).b58encode() info.public_key = acct.get_public_key_bytes().hex() info.encrypted_pri_key = acct.export_gcm_encrypted_private_key( pwd, salt) info.address_u160 = acct.get_address().to_bytes().hex() info.salt = salt return info
def __init__(self, private_key: str or bytes, scheme=SignatureScheme.SHA256withECDSA): self.__signature_scheme = scheme if scheme == SignatureScheme.SHA256withECDSA: self.__key_type = KeyType.ECDSA elif scheme == SignatureScheme.SHA3_384withECDSA: self.__key_type = KeyType.ECDSA elif scheme == SignatureScheme.SHA3_384withECDSA: self.__key_type = KeyType.ECDSA elif scheme == SignatureScheme.SHA512withECDSA: self.__key_type = KeyType.ECDSA elif scheme == SignatureScheme.SHA3_224withECDSA: self.__key_type = KeyType.ECDSA else: raise TypeError if isinstance(private_key, bytes) and len(private_key) == 32: self.__private_key = private_key elif isinstance(private_key, str) and len(private_key) == 64: self.__private_key = bytes.fromhex(private_key) else: raise SDKException(ErrorCode.invalid_private_key) self.__curve_name = Curve.P256 self.__public_key = Signature.ec_get_public_key_by_private_key(self.__private_key, self.__curve_name) self.__address = Address.from_public_key(self.__public_key)