Add basic send test

This commit is contained in:
nolash 2021-03-25 20:03:29 +01:00
parent 7d5d7f67c6
commit e166f3d101
Signed by untrusted user who does not match committer: lash
GPG Key ID: 21D2E7BB88C2A746
4 changed files with 64 additions and 6 deletions

View File

@ -568,6 +568,7 @@ def sync_tx(self, tx_hash_hex, chain_str):
# return txpending_hash_hex
# TODO: Move to cic_eth.eth.gas
@celery_app.task(base=CriticalSQLAlchemyTask)
def cache_gas_data(
tx_hash_hex,

View File

@ -0,0 +1,58 @@
# standard imports
import logging
# external imports
import celery
from chainlib.eth.gas import Gas
from chainlib.eth.nonce import RPCNonceOracle
from chainlib.eth.tx import (
TxFormat,
unpack,
transaction,
receipt,
)
# local imports
from cic_eth.queue.tx import register_tx
from cic_eth.eth.tx import cache_gas_data
logg = logging.getLogger()
def test_tx_send(
init_database,
default_chain_spec,
eth_rpc,
eth_signer,
agent_roles,
contract_roles,
celery_worker,
):
chain_id = default_chain_spec.chain_id()
nonce_oracle = RPCNonceOracle(agent_roles['ALICE'], eth_rpc)
c = Gas(signer=eth_signer, nonce_oracle=nonce_oracle, chain_id=chain_id)
(tx_hash_hex, tx_signed_raw_hex) = c.create(agent_roles['ALICE'], agent_roles['BOB'], 1024, tx_format=TxFormat.RLP_SIGNED)
#unpack(bytes.fromhex(strip_0x(tx_signed_raw_hex)), chain_id)
register_tx(tx_hash_hex, tx_signed_raw_hex, default_chain_spec, None, session=init_database)
cache_gas_data(tx_hash_hex, tx_signed_raw_hex, default_chain_spec.asdict())
s_send = celery.signature(
'cic_eth.eth.tx.send',
[
[tx_signed_raw_hex],
default_chain_spec.asdict(),
],
queue=None,
)
t = s_send.apply_async()
r = t.get()
assert t.successful()
o = transaction(tx_hash_hex)
tx = eth_rpc.do(o)
assert r == tx['hash']
o = receipt(tx_hash_hex)
rcpt = eth_rpc.do(o)
assert rcpt['status'] == 1

View File

@ -16,9 +16,8 @@ import random
# external imports
import vobject
import celery
import web3
from faker import Faker
import cic_registry
import cic_eth_registry
import confini
from cic_eth.api import Api
from cic_types.models.person import (
@ -26,7 +25,7 @@ from cic_types.models.person import (
generate_vcard_from_contact_data,
get_contact_data_from_vcard,
)
from chainlib.eth.address import to_checksum
from chainlib.eth.address import to_checksum_address
logging.basicConfig(level=logging.WARNING)
logg = logging.getLogger()
@ -142,7 +141,7 @@ def genDob():
def gen():
old_blockchain_address = '0x' + os.urandom(20).hex()
old_blockchain_checksum_address = to_checksum(old_blockchain_address)
old_blockchain_checksum_address = to_checksum_address(old_blockchain_address)
gender = random.choice(['female', 'male', 'other'])
phone = genPhone()
city = fake.city_name()

View File

@ -1,3 +1,3 @@
cic-base[full_graph]==0.1.1a23
cic-eth==0.10.0a41
cic-base[full_graph]==0.1.2a22
cic-eth==0.10.1a5+build.21f71043
cic-types==0.1.0a8