commit a8ed83dde484850f891dfe5ed366e6e62b7b3676
parent 6defef8df818edbbff82d129e06afdacab3f9dcd
Author: nolash <dev@holbrook.no>
Date: Mon, 16 Nov 2020 18:25:50 +0100
Add bytecode to registry object
Diffstat:
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({