import warnings
from eth_account.signers.base import (
BaseAccount,
)
class LocalAccount(BaseAccount):
def __init__(self, key, account):
self._publicapi = account
self._address = key.public_key.to_checksum_address()
key_raw = key.to_bytes()
self._private_key = key_raw
self._key_obj = key
@property
def address(self):
return self._address
@property
def privateKey(self):
warnings.warn(
"privateKey is deprecated in favor of key",
category=DeprecationWarning,
)
return self._private_key
@property
def key(self):
return self._private_key
def encrypt(self, password, kdf=None, iterations=None):
return self._publicapi.encrypt(self.key, password, kdf=kdf, iterations=iterations)
def signHash(self, message_hash):
return self._publicapi.signHash(
message_hash,
private_key=self.key,
)
def sign_message(self, signable_message):
return self._publicapi.sign_message(signable_message, private_key=self.key)
def signTransaction(self, transaction_dict):
warnings.warn(
"signTransaction is deprecated in favor of sign_transaction",
category=DeprecationWarning,
)
return self.sign_transaction(transaction_dict)
def sign_transaction(self, transaction_dict):
return self._publicapi.sign_transaction(transaction_dict, self.key)
def __bytes__(self):
return self.key