Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test sc
Browse files Browse the repository at this point in the history
mmsqe committed Oct 14, 2024
1 parent e6795bb commit 3496ea8
Showing 3 changed files with 35 additions and 24 deletions.
24 changes: 24 additions & 0 deletions integration_tests/ibc_utils.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import base64
import hashlib
import json
import subprocess
@@ -7,6 +8,7 @@
from typing import NamedTuple

import requests
from cprotobuf import Field, ProtoEntity
from pystarport import cluster, ports

from .network import Chainmain, Cronos, Hermes, setup_custom_cronos
@@ -869,3 +871,25 @@ def log_gas_records(cli):
if res["gas_used"]:
records.append(int(res["gas_used"]))
return records


class QueryBalanceRequest(ProtoEntity):
address = Field("string", 1)
denom = Field("string", 2)


def gen_query_balance_packet(cli, ica_address):
query = QueryBalanceRequest(address=ica_address, denom="basecro")
data = json.dumps(
{
"@type": "/ibc.applications.interchain_accounts.host.v1.MsgModuleQuerySafe",
"signer": ica_address,
"requests": [
{
"path": "/cosmos.bank.v1beta1.Query/Balance",
"data": base64.b64encode(query.SerializeToString()).decode("utf-8"),
}
],
}
)
return cli.ica_generate_packet_data(data)
26 changes: 2 additions & 24 deletions integration_tests/test_ica.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import base64
import json

import pytest
from cprotobuf import Field, ProtoEntity
from pystarport import cluster

from .cosmoscli import module_address
@@ -11,6 +9,7 @@
Status,
deploy_contract,
funds_ica,
gen_query_balance_packet,
gen_send_msg,
ica_send_tx,
parse_events_rpc,
@@ -169,26 +168,8 @@ def submit_msgs(msg_num, timeout_in_s=no_timeout, gas="200000"):
call_module_safe_query(cli_controller, connid, signer, ica_address)


class QueryBalanceRequest(ProtoEntity):
address = Field("string", 1)
denom = Field("string", 2)


def call_module_safe_query(cli, connid, signer, ica_address):
query = QueryBalanceRequest(address=ica_address, denom="basecro")
data = json.dumps(
{
"@type": "/ibc.applications.interchain_accounts.host.v1.MsgModuleQuerySafe",
"signer": ica_address,
"requests": [
{
"path": "/cosmos.bank.v1beta1.Query/Balance",
"data": base64.b64encode(query.SerializeToString()).decode("utf-8"),
}
],
}
)
packet = cli.ica_generate_packet_data(data)
packet = gen_query_balance_packet(cli, ica_address)
timeout = 60 # in seconds
rsp = cli.ica_send_tx(
connid,
@@ -198,6 +179,3 @@ def call_module_safe_query(cli, connid, signer, ica_address):
from_=signer,
)
assert rsp["code"] == 0, rsp
events = parse_events_rpc(rsp["events"])
seq = int(events.get("send_packet")["packet_sequence"])
return seq
9 changes: 9 additions & 0 deletions integration_tests/test_ica_precompile.py
Original file line number Diff line number Diff line change
@@ -10,6 +10,7 @@
from .ibc_utils import (
Status,
funds_ica,
gen_query_balance_packet,
gen_send_msg,
get_next_channel,
prepare_network,
@@ -448,3 +449,11 @@ def submit_msgs_ro(func, str):
wait_for_packet_log(start, packet_event, channel_id2, last_seq, status)
balance -= diff
assert cli_host.balance(ica_address, denom=denom) == balance

packet = gen_query_balance_packet(cli_controller, ica_address)
str = base64.b64decode(packet["data"])
tx = tcontract.functions.callSubmitMsgs(
connid, channel_id, str, no_timeout
).build_transaction(data)
receipt = send_transaction(w3, tx, KEYS[signer])
assert receipt.status == 1

0 comments on commit 3496ea8

Please sign in to comment.