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({