def setUp(self): super(SCIBaseTest, self).setUp() from golem.config.environments.testnet import EthereumConfig random.seed() self.transaction_timeout = datetime.timedelta(seconds=300) self.sleep_interval = 15 requestor_storage = JsonTransactionsStorage( Path(tempfile.mkdtemp()) / 'tx.json') provider_storage = JsonTransactionsStorage( Path(tempfile.mkdtemp()) / 'tx.json') self.requestor_eth_addr = privkeytoaddr( self.requestor_keys.raw_privkey) self.provider_eth_addr = privkeytoaddr(self.provider_keys.raw_privkey) self.requestor_sci = new_sci_rpc( storage=requestor_storage, rpc=EthereumConfig.NODE_LIST[0], address=self.requestor_eth_addr, tx_sign=lambda tx: tx.sign(self.requestor_keys.raw_privkey), contract_addresses=EthereumConfig.CONTRACT_ADDRESSES, chain=EthereumConfig.CHAIN, ) self.provider_sci = new_sci_rpc( storage=provider_storage, rpc=EthereumConfig.NODE_LIST[0], address=self.provider_eth_addr, tx_sign=lambda tx: tx.sign(self.provider_keys.raw_privkey), contract_addresses=EthereumConfig.CONTRACT_ADDRESSES, chain=EthereumConfig.CHAIN, )
def is_ethereum_blockchain_running(geth_address: str, concent_ethereum_address: str) -> bool: """ Verifies if Ethereum Blockchain is running and can be connected. """ sci_client = new_sci_rpc( rpc=geth_address, address=concent_ethereum_address, chain=chains.RINKEBY, storage=JsonTransactionsStorage(filepath=Path('./storage.json')), ) transaction_count = sci_client.get_transaction_count() return isinstance(transaction_count, int)
def __new__(cls, *args, **kwargs): # pylint: disable=unused-argument if cls.__instance is None: cls.__instance = new_sci_rpc( rpc=settings.GETH_ADDRESS, address=Web3.toChecksumAddress( settings.CONCENT_ETHEREUM_ADDRESS), chain=chains.RINKEBY, storage=DatabaseTransactionsStorage(), tx_sign=lambda tx: tx.sign(settings. CONCENT_ETHEREUM_PRIVATE_KEY), ) return cls.__instance
def setUp(self, gnt_deposit_address: str, init_new_users_accounts: bool) -> None: if init_new_users_accounts: self.provider_keys = self._generate_keys() self.requestor_keys = self._generate_keys() else: ClientKeys = namedtuple('ClientKeys', ['raw_privkey', 'raw_pubkey']) self.provider_keys = ClientKeys( raw_privkey=PROVIDER_ETHEREUM_PRIVATE_KEY, raw_pubkey=PROVIDER_ETHEREUM_PUBLIC_KEY) self.requestor_keys = ClientKeys( raw_privkey=REQUESTOR_ETHEREUM_PRIVATE_KEY, raw_pubkey=REQUESTOR_ETHEREUM_PUBLIC_KEY) self.provider_empty_account_keys = self._generate_keys() self.requestor_empty_account_keys = self._generate_keys() CONTRACT_ADDRESSES[contracts.GNTDeposit] = gnt_deposit_address requestor_storage = JsonTransactionsStorage( Path(mkdtemp()) / 'requestor_tx.json') provider_storage = JsonTransactionsStorage( Path(mkdtemp()) / 'provider_tx.json') self.requestor_sci = new_sci_rpc( rpc=GETH_RINKEBY_ADDRESS, storage=requestor_storage, address=self.requestor_eth_address, tx_sign=lambda tx: tx.sign(self.requestor_private_key), contract_addresses=CONTRACT_ADDRESSES, chain=RINKEBY) self.provider_sci = new_sci_rpc( rpc=GETH_RINKEBY_ADDRESS, storage=provider_storage, address=self.provider_eth_address, tx_sign=lambda tx: tx.sign(self.provider_private_key), contract_addresses=CONTRACT_ADDRESSES, chain=RINKEBY) self.sleep_time = 5 self.timeout = 300
def __new__(cls, *args: Any, **kwargs: Any) -> SCIImplementation: # pylint: disable=unused-argument if cls.__instance is None: cls.__instance = new_sci_rpc( rpc=settings.GETH_ADDRESS, address=Web3.toChecksumAddress( generate_ethereum_address_from_ethereum_public_key( settings.CONCENT_ETHEREUM_PUBLIC_KEY)), chain=settings.ETHEREUM_CHAIN, storage=DatabaseTransactionsStorage(), tx_sign=( sci_callback if settings.USE_SIGNING_SERVICE else lambda tx: tx.sign(settings.CONCENT_ETHEREUM_PRIVATE_KEY)), contract_addresses={ Contract.GNT: '0x924442A66cFd812308791872C4B242440c108E19', Contract.GNTB: '0x123438d379BAbD07134d1d4d7dFa0BCbd56ca3F3', Contract.GNTDeposit: settings.GNT_DEPOSIT_CONTRACT_ADDRESS, Contract.Faucet: '0x77b6145E853dfA80E8755a4e824c4F510ac6692e', }) return cls.__instance