Add bytecode to registry object

This commit is contained in:
nolash 2020-11-16 18:25:50 +01:00
parent 6defef8df8
commit a8ed83dde4
Signed by: lash
GPG Key ID: 21D2E7BB88C2A746
1 changed files with 27 additions and 8 deletions

View File

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