From a8ed83dde484850f891dfe5ed366e6e62b7b3676 Mon Sep 17 00:00:00 2001 From: nolash Date: Mon, 16 Nov 2020 18:25:50 +0100 Subject: [PATCH] Add bytecode to registry object --- python/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 index fd0ca3e..537ca46 100644 --- 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({