Source code for microraiden.test.test_contract
from eth_utils import denoms
from web3 import Web3
from web3.utils.empty import empty as web3_empty
from microraiden.utils import create_signed_transaction, wait_for_transaction
[docs]def test_create_signed_transaction():
# Mock to simulate the example from EIP 155.
# https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md#list-of-chain-ids
class Web3Mock:
class VersionMock:
network = 1
class EthMock:
class ContractMock:
def _prepare_transaction(self, *args, **kwargs):
return {'data': b''}
defaultAccount = web3_empty
def contract(self, *args, **kwargs):
return self.ContractMock()
def getTransactionCount(self, *args, **kwargs):
return 9
def getCode(self, *args, **kwargs):
"""Need to implement this to fake contract existence check"""
return '0x123456789abcdef'
version = VersionMock()
eth = EthMock()
# TODO: replace with proper mock
web3 = Web3Mock()
private_key = '0x4646464646464646464646464646464646464646464646464646464646464646'
address = '0x3535353535353535353535353535353535353535'
tx = create_signed_transaction(
private_key,
web3,
to=address,
value=10**18,
gas_limit=21000,
gas_price=20 * denoms.gwei
)
tx_expected = \
'0xf86c098504a817c800825208943535353535353535353535353535353535353535880de0' \
'b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d3c71ff63e1590620' \
'aa636276a067cbe9d8997f761aecb703304b3800ccf555c9f3dc64214b297fb1966a3b6d83'
assert tx == tx_expected
[docs]def test_wait_for_transaction(
web3: Web3,
patched_contract,
receiver_address: str,
faucet_private_key: str,
):
tx = create_signed_transaction(
faucet_private_key,
web3,
to=receiver_address
)
tx_hash = web3.eth.sendRawTransaction(tx)
tx_receipt = wait_for_transaction(web3, tx_hash)
assert tx_receipt