initial development of tools
This commit is contained in:
parent
6ad86289de
commit
1ec2750699
|
@ -0,0 +1,105 @@
|
||||||
|
# This module initializes data to work in the bridge envirionment
|
||||||
|
|
||||||
|
from toml import load
|
||||||
|
from os.path import isfile
|
||||||
|
from os import getenv
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
from json import load as jload
|
||||||
|
|
||||||
|
from utils.web3 import (
|
||||||
|
toChecksumAddress,
|
||||||
|
connectionToRPCProvider,
|
||||||
|
)
|
||||||
|
|
||||||
|
class BridgeEnv():
|
||||||
|
|
||||||
|
def _fromEnv(self):
|
||||||
|
self.home_rpc_provider = getenv("HOME_RPC_URL")
|
||||||
|
self.foreign_rpc_provider = getenv("FOREIGN_RPC_URL")
|
||||||
|
self.home_bridge = toChecksumAddress(getenv("HOME_BRIDGE_ADDRESS"))
|
||||||
|
self.foreign_bridge = toChecksumAddress(getenv("FOREIGN_BRIDGE_ADDRESS"))
|
||||||
|
self.validator = toChecksumAddress(getenv("VALIDATOR_ADDRESS"))
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
def _fromToml(self, _conf):
|
||||||
|
self.home_rpc_provider = _conf["home"]["rpc_host"] + ":" + str(_conf["home"]["rpc_port"])
|
||||||
|
self.foreign_rpc_provider = _conf["foreign"]["rpc_host"] + ":" + str(_conf["foreign"]["rpc_port"])
|
||||||
|
# Assuming that the validator is the same for both sides of bridge
|
||||||
|
self.validator = toChecksumAddress(_conf["foreign"]["account"])
|
||||||
|
|
||||||
|
try:
|
||||||
|
db = load(self.test_env["bridge_db"])
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
|
||||||
|
self.home_bridge = toChecksumAddress(db["home_contract_address"])
|
||||||
|
self.foreign_bridge = toChecksumAddress(db["foreign_contract_address"])
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
def _getActorAddress(self):
|
||||||
|
try:
|
||||||
|
with open(self.test_env["actor_keystore"]) as f:
|
||||||
|
ks = jload(f)
|
||||||
|
f.close()
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
|
||||||
|
self.actor_address = toChecksumAddress("0x" + ks["address"])
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def initEnv(self, _environment=None):
|
||||||
|
if _environment:
|
||||||
|
f = _environment
|
||||||
|
else:
|
||||||
|
f = 'bridge/test_env_db.toml'
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.test_env = load(f)
|
||||||
|
except:
|
||||||
|
return (False, "Cannot load " + f)
|
||||||
|
|
||||||
|
bridge_config_file = self.test_env['bridge_config']
|
||||||
|
|
||||||
|
if not isfile(bridge_config_file):
|
||||||
|
return (False, bridge_config_file + " not found")
|
||||||
|
|
||||||
|
config_type = None
|
||||||
|
|
||||||
|
try:
|
||||||
|
bridge_config = load(bridge_config_file)
|
||||||
|
config_type = "toml"
|
||||||
|
except:
|
||||||
|
try:
|
||||||
|
load_dotenv(bridge_config_file)
|
||||||
|
config_type = "env"
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
|
||||||
|
retval = False
|
||||||
|
|
||||||
|
if not self._getActorAddress():
|
||||||
|
return retval
|
||||||
|
|
||||||
|
if config_type == "env":
|
||||||
|
retval = self._fromEnv()
|
||||||
|
else:
|
||||||
|
retval = self._fromToml(bridge_config)
|
||||||
|
|
||||||
|
return retval
|
||||||
|
|
||||||
|
def connectionToHome(self):
|
||||||
|
self.home_channel = None
|
||||||
|
if (self.home_rpc_provider) and (not self.home_channel):
|
||||||
|
self.home_channel = connectionToRPCProvider(self.home_rpc_provider)
|
||||||
|
return self.home_channel
|
||||||
|
|
||||||
|
def connectionToForeign(self):
|
||||||
|
self.foreign_channel = None
|
||||||
|
if (self.foreign_rpc_provider) and (not self.foreign_channel):
|
||||||
|
self.foreign_channel = connectionToRPCProvider(self.foreign_rpc_provider)
|
||||||
|
return self.foreign_channel
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
# This module is wrapper for web3.py module
|
||||||
|
|
||||||
|
from web3 import Web3
|
||||||
|
|
||||||
|
def toChecksumAddress(_addr):
|
||||||
|
return Web3.toChecksumAddress(_addr)
|
||||||
|
|
||||||
|
def connectionToRPCProvider(_rpc_link):
|
||||||
|
ch = None
|
||||||
|
try:
|
||||||
|
ch = Web3(Web3.HTTPProvider(_rpc_link))
|
||||||
|
except e:
|
||||||
|
pass
|
||||||
|
return ch
|
Loading…
Reference in New Issue