eth-accounts-index

Accounts index evm contract tooling with permissioned writes
Log | Files | Refs

commit a8ed83dde484850f891dfe5ed366e6e62b7b3676
parent 6defef8df818edbbff82d129e06afdacab3f9dcd
Author: nolash <dev@holbrook.no>
Date:   Mon, 16 Nov 2020 18:25:50 +0100

Add bytecode to registry object

Diffstat:
Mpython/eth_accounts_index/registry.py | 35+++++++++++++++++++++++++++--------
1 file changed, 27 insertions(+), 8 deletions(-)

diff --git a/python/eth_accounts_index/registry.py b/python/eth_accounts_index/registry.py @@ -4,18 +4,19 @@ import os logg = logging.getLogger() +moddir = os.path.dirname(__file__) +datadir = os.path.join(moddir, 'data') + + class AccountRegistry: - abi = None + __abi = None + __bytecode = None def __init__(self, w3, address, signer_address=None): - if AccountRegistry.abi == None: - moddir = os.path.dirname(__file__) - datadir = os.path.join(moddir, 'data') - f = open(os.path.join(datadir, 'registry.abi.json'), 'r') - AccountRegistry.abi = json.load(f) - f.close() - self.contract = w3.eth.contract(abi=AccountRegistry.abi, address=address) + abi = AccountRegistry.abi() + AccountRegistry.bytecode() + self.contract = w3.eth.contract(abi=abi, address=address) self.w3 = w3 if signer_address != None: self.signer_address = signer_address @@ -25,6 +26,24 @@ class AccountRegistry: self.signer_address = self.w3.eth.defaultAccount + @staticmethod + def abi(): + if AccountRegistry.__abi == None: + f = open(os.path.join(datadir, 'registry.abi.json'), 'r') + AccountRegistry.__abi = json.load(f) + f.close() + return AccountRegistry.__abi + + + @staticmethod + def bytecode(): + if AccountRegistry.__bytecode == None: + f = open(os.path.join(datadir, 'registry.bin')) + AccountRegistry.__bytecode = f.read() + f.close() + return AccountRegistry.__bytecode + + def add(self, address): gasPrice = self.w3.eth.gasPrice; tx_hash = self.contract.functions.add(address).transact({