Skip to content

Commit 32c3918

Browse files
authored
Merge pull request #294 from hyperledger-labs/use-ir-pipeline
Enable build and tests utilizing IR pipeline in CI Signed-off-by: Jun Kimura <jun.kimura@datachain.jp>
2 parents ee66e23 + 8dbbb6c commit 32c3918

File tree

14 files changed

+256
-213
lines changed

14 files changed

+256
-213
lines changed

.gas-snapshot

Lines changed: 77 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,77 @@
1-
IBCBenchmarks:testAcknowledgePacket() (gas: 100109)
2-
IBCBenchmarks:testCreateMockClient() (gas: 216843)
3-
IBCBenchmarks:testRecvPacket() (gas: 158121)
4-
IBCBenchmarks:testSendPacket() (gas: 96524)
5-
IBCBenchmarks:testUpdateMockClientDirectly() (gas: 64815)
6-
IBCBenchmarks:testUpdateMockClientViaHandler() (gas: 150703)
7-
IBCMockAppTest:testHandshake() (gas: 4420576)
8-
IBCMockAppTest:testHandshakeBetweenDifferentPorts() (gas: 3339603)
9-
IBCMockAppTest:testPacketRelay() (gas: 13935831)
10-
IBCMockAppTest:testPacketTimeout() (gas: 4284259)
11-
ICS24HostTest:testValidatePortIdentifier() (gas: 37060)
12-
TestICS02:testCreateClient() (gas: 36875161)
13-
TestICS02:testHeightToUint128((uint64,uint64)) (runs: 256, μ: 887, ~: 887)
14-
TestICS02:testInvalidCreateClient() (gas: 36772272)
15-
TestICS02:testInvalidUpdateClient() (gas: 36771288)
16-
TestICS02:testRegisterClient() (gas: 36426954)
17-
TestICS02:testRegisterClientDuplicatedClientType() (gas: 36412263)
18-
TestICS02:testRegisterClientInvalidClientType() (gas: 36441769)
19-
TestICS02:testUpdateClient() (gas: 36939488)
20-
TestICS03Handshake:testConnOpenAck() (gas: 1858230)
21-
TestICS03Handshake:testConnOpenConfirm() (gas: 2054143)
22-
TestICS03Handshake:testConnOpenInit() (gas: 1429838)
23-
TestICS03Handshake:testConnOpenTry() (gas: 2398844)
24-
TestICS03Handshake:testInvalidConnOpenAck() (gas: 2421822)
25-
TestICS03Handshake:testInvalidConnOpenConfirm() (gas: 2535568)
26-
TestICS03Handshake:testInvalidConnOpenInit() (gas: 783147)
27-
TestICS03Handshake:testInvalidConnOpenTry() (gas: 2342543)
28-
TestICS03Version:testCopyVersions() (gas: 558658)
29-
TestICS03Version:testFindSupportedVersion() (gas: 19400)
30-
TestICS03Version:testIsSupportedVersion() (gas: 7864)
31-
TestICS03Version:testPickVersion() (gas: 25327)
32-
TestICS03Version:testVerifyProposedVersion() (gas: 11777)
33-
TestICS03Version:testVerifySupportedFeature() (gas: 4153)
34-
TestICS04Handshake:testBindPort() (gas: 458623)
35-
TestICS04Handshake:testChanClose() (gas: 12973942)
36-
TestICS04Handshake:testChanOpenAck() (gas: 3459492)
37-
TestICS04Handshake:testChanOpenConfirm() (gas: 3770761)
38-
TestICS04Handshake:testChanOpenInit() (gas: 2543590)
39-
TestICS04Handshake:testChanOpenTry() (gas: 3099942)
40-
TestICS04Handshake:testInvalidChanOpenAck() (gas: 2439771)
41-
TestICS04Handshake:testInvalidChanOpenConfirm() (gas: 2517382)
42-
TestICS04Handshake:testInvalidChanOpenInit() (gas: 1760558)
43-
TestICS04Handshake:testInvalidChanOpenTry() (gas: 1775528)
44-
TestICS04Packet:testAcknowledgementPacket() (gas: 3351204)
45-
TestICS04Packet:testInvalidSendPacket() (gas: 3579171)
46-
TestICS04Packet:testRecvPacket() (gas: 11007558)
47-
TestICS04Packet:testRecvPacketTimeoutHeight() (gas: 3259769)
48-
TestICS04Packet:testRecvPacketTimeoutTimestamp() (gas: 3284145)
49-
TestICS04Packet:testSendPacket() (gas: 6411842)
50-
TestICS04Packet:testTimeoutOnClose() (gas: 3553375)
51-
TestICS04Upgrade:testCrossingHelloInconsistentVersions() (gas: 10152794)
52-
TestICS04Upgrade:testUpgradeAuthorityCancel() (gas: 47011316)
53-
TestICS04Upgrade:testUpgradeCannotCancelWithOldErrorReceipt() (gas: 3460218)
54-
TestICS04Upgrade:testUpgradeCannotRecvNextUpgradePacket() (gas: 5325143)
55-
TestICS04Upgrade:testUpgradeCounterpartyAdvanceNextSequenceBeforeOpen() (gas: 5295126)
56-
TestICS04Upgrade:testUpgradeCrossingHelloIncompatibleProposals() (gas: 5070497)
57-
TestICS04Upgrade:testUpgradeFull() (gas: 57118740)
58-
TestICS04Upgrade:testUpgradeInit() (gas: 3075843)
59-
TestICS04Upgrade:testUpgradeNoChanges() (gas: 2473554)
60-
TestICS04Upgrade:testUpgradeNotUpgradableModule() (gas: 3649002)
61-
TestICS04Upgrade:testUpgradeOutOfSync() (gas: 3909083)
62-
TestICS04Upgrade:testUpgradeRelaySuccessAtCounterpartyFlushComplete() (gas: 5296851)
63-
TestICS04Upgrade:testUpgradeRelaySuccessAtFlushing() (gas: 5670614)
64-
TestICS04Upgrade:testUpgradeSendPacketFailAtFlushingOrFlushComplete() (gas: 4089431)
65-
TestICS04Upgrade:testUpgradeTimeoutAbortAck() (gas: 17829083)
66-
TestICS04Upgrade:testUpgradeTimeoutAbortConfirm() (gas: 21547969)
67-
TestICS04Upgrade:testUpgradeTimeoutUpgrade() (gas: 71726806)
68-
TestICS04Upgrade:testUpgradeToOrdered() (gas: 56982472)
69-
TestICS04Upgrade:testUpgradeToUnordered() (gas: 45498427)
70-
TestICS04UpgradeApp:testUpgradeAuthorizationChanneNotFound() (gas: 61690)
71-
TestICS04UpgradeApp:testUpgradeAuthorizationRePropose() (gas: 2565379)
72-
TestICS04UpgradeApp:testUpgradeAuthorizationRemove() (gas: 2475938)
73-
TestICS20:testAddressToHex(address) (runs: 256, μ: 22668, ~: 22804)
74-
TestICS20:testHexToAddress(string) (runs: 256, μ: 4776, ~: 4734)
75-
TestICS20:testIsEscapedString() (gas: 48979)
76-
TestICS20:testMarshaling() (gas: 148517)
77-
TestICS20:testParseAmount(uint256) (runs: 256, μ: 26349, ~: 23311)
1+
IBCBenchmarks:testAcknowledgePacket() (gas: 98678)
2+
IBCBenchmarks:testCreateMockClient() (gas: 217244)
3+
IBCBenchmarks:testRecvPacket() (gas: 155487)
4+
IBCBenchmarks:testSendPacket() (gas: 95329)
5+
IBCBenchmarks:testUpdateMockClientDirectly() (gas: 64879)
6+
IBCBenchmarks:testUpdateMockClientViaHandler() (gas: 148205)
7+
IBCMockAppTest:testHandshake() (gas: 4343205)
8+
IBCMockAppTest:testHandshakeBetweenDifferentPorts() (gas: 3286459)
9+
IBCMockAppTest:testPacketRelay() (gas: 11692905)
10+
IBCMockAppTest:testPacketTimeout() (gas: 4242242)
11+
ICS24HostTest:testValidatePortIdentifier() (gas: 44476)
12+
TestICS02:testCreateClient() (gas: 30153096)
13+
TestICS02:testHeightToUint128((uint64,uint64)) (runs: 256, μ: 907, ~: 907)
14+
TestICS02:testInvalidCreateClient() (gas: 30038762)
15+
TestICS02:testInvalidUpdateClient() (gas: 30042040)
16+
TestICS02:testRegisterClient() (gas: 29702122)
17+
TestICS02:testRegisterClientDuplicatedClientType() (gas: 29688342)
18+
TestICS02:testRegisterClientInvalidClientType() (gas: 29717304)
19+
TestICS02:testUpdateClient() (gas: 30208564)
20+
TestICS03Handshake:testConnOpenAck() (gas: 1811332)
21+
TestICS03Handshake:testConnOpenConfirm() (gas: 1989221)
22+
TestICS03Handshake:testConnOpenInit() (gas: 1423613)
23+
TestICS03Handshake:testConnOpenTry() (gas: 2348126)
24+
TestICS03Handshake:testInvalidConnOpenAck() (gas: 2323078)
25+
TestICS03Handshake:testInvalidConnOpenConfirm() (gas: 2421885)
26+
TestICS03Handshake:testInvalidConnOpenInit() (gas: 777600)
27+
TestICS03Handshake:testInvalidConnOpenTry() (gas: 2283933)
28+
TestICS03Version:testCopyVersions() (gas: 570207)
29+
TestICS03Version:testFindSupportedVersion() (gas: 34452)
30+
TestICS03Version:testIsSupportedVersion() (gas: 13568)
31+
TestICS03Version:testPickVersion() (gas: 37836)
32+
TestICS03Version:testVerifyProposedVersion() (gas: 21308)
33+
TestICS03Version:testVerifySupportedFeature() (gas: 10229)
34+
TestICS04Handshake:testBindPort() (gas: 456271)
35+
TestICS04Handshake:testChanClose() (gas: 12800640)
36+
TestICS04Handshake:testChanOpenAck() (gas: 3428597)
37+
TestICS04Handshake:testChanOpenConfirm() (gas: 3724273)
38+
TestICS04Handshake:testChanOpenInit() (gas: 2535741)
39+
TestICS04Handshake:testChanOpenTry() (gas: 3083807)
40+
TestICS04Handshake:testInvalidChanOpenAck() (gas: 2411670)
41+
TestICS04Handshake:testInvalidChanOpenConfirm() (gas: 2486327)
42+
TestICS04Handshake:testInvalidChanOpenInit() (gas: 1730517)
43+
TestICS04Handshake:testInvalidChanOpenTry() (gas: 1742638)
44+
TestICS04Packet:testAcknowledgementPacket() (gas: 3316365)
45+
TestICS04Packet:testInvalidSendPacket() (gas: 3476451)
46+
TestICS04Packet:testRecvPacket() (gas: 9965223)
47+
TestICS04Packet:testRecvPacketTimeoutHeight() (gas: 3236945)
48+
TestICS04Packet:testRecvPacketTimeoutTimestamp() (gas: 3261000)
49+
TestICS04Packet:testSendPacket() (gas: 4583983)
50+
TestICS04Packet:testTimeoutOnClose() (gas: 3488144)
51+
TestICS04Upgrade:testCrossingHelloInconsistentVersions() (gas: 9918550)
52+
TestICS04Upgrade:testUpgradeAuthorityCancel() (gas: 46157666)
53+
TestICS04Upgrade:testUpgradeCannotCancelWithOldErrorReceipt() (gas: 3392338)
54+
TestICS04Upgrade:testUpgradeCannotRecvNextUpgradePacket() (gas: 5230053)
55+
TestICS04Upgrade:testUpgradeCounterpartyAdvanceNextSequenceBeforeOpen() (gas: 5191254)
56+
TestICS04Upgrade:testUpgradeCrossingHelloIncompatibleProposals() (gas: 4944387)
57+
TestICS04Upgrade:testUpgradeFull() (gas: 55984957)
58+
TestICS04Upgrade:testUpgradeInit() (gas: 3018393)
59+
TestICS04Upgrade:testUpgradeNoChanges() (gas: 2433786)
60+
TestICS04Upgrade:testUpgradeNotUpgradableModule() (gas: 3533495)
61+
TestICS04Upgrade:testUpgradeOutOfSync() (gas: 3826003)
62+
TestICS04Upgrade:testUpgradeRelaySuccessAtCounterpartyFlushComplete() (gas: 5201982)
63+
TestICS04Upgrade:testUpgradeRelaySuccessAtFlushing() (gas: 5575834)
64+
TestICS04Upgrade:testUpgradeSendPacketFailAtFlushingOrFlushComplete() (gas: 4012928)
65+
TestICS04Upgrade:testUpgradeTimeoutAbortAck() (gas: 17445807)
66+
TestICS04Upgrade:testUpgradeTimeoutAbortConfirm() (gas: 21062598)
67+
TestICS04Upgrade:testUpgradeTimeoutUpgrade() (gas: 70448064)
68+
TestICS04Upgrade:testUpgradeToOrdered() (gas: 53937015)
69+
TestICS04Upgrade:testUpgradeToUnordered() (gas: 43053273)
70+
TestICS04UpgradeApp:testUpgradeAuthorizationChanneNotFound() (gas: 62062)
71+
TestICS04UpgradeApp:testUpgradeAuthorizationRePropose() (gas: 2456047)
72+
TestICS04UpgradeApp:testUpgradeAuthorizationRemove() (gas: 2436473)
73+
TestICS20:testAddressToHex(address) (runs: 256, μ: 26850, ~: 27044)
74+
TestICS20:testHexToAddress(string) (runs: 256, μ: 4636, ~: 4595)
75+
TestICS20:testIsEscapedString() (gas: 62745)
76+
TestICS20:testMarshaling() (gas: 180081)
77+
TestICS20:testParseAmount(uint256) (runs: 256, μ: 32408, ~: 28568)

.github/workflows/test.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ jobs:
2626
with:
2727
version: nightly
2828

29+
- name: Show forge version
30+
run: forge --version
31+
2932
- name: Resolve dependencies
3033
run: npm install
3134

@@ -47,6 +50,12 @@ jobs:
4750
- name: Run tests with minimal solidity version
4851
run: make SOLC_VERSION=${{ env.MINIMAL_SOLC_VERSION }} test
4952

53+
- name: Build via IR-pipeline
54+
run: make FOUNDRY_PROFILE=ir build
55+
56+
- name: Run snapshot tests via IR-pipeline
57+
run: make FOUNDRY_PROFILE=ir snapshot
58+
5059
slither:
5160
name: Slither analysis
5261
needs: contract-test

Makefile

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,45 @@
1-
FORGE ?= forge
2-
SOLC_VERSION ?= 0.8.24
3-
ABIGEN ?= "docker run -v .:/workspace -w /workspace -it ethereum/client-go:alltools-v1.11.6 abigen"
4-
DOCKER_COMPOSE ?= docker compose
5-
E2E_TEST_COMPOSE_FILE ?= ./chains/compose.yml
6-
TEST_BROADCAST_LOG_DIR ?= ./broadcast/Deploy.s.sol
7-
TEST_MNEMONIC ?= "math razor capable expose worth grape metal sunset metal sudden usage scheme"
1+
FOUNDRY_PROFILE=default
2+
FORGE=FOUNDRY_PROFILE=$(FOUNDRY_PROFILE) forge
3+
SOLC_VERSION=0.8.24
4+
DOCKER=docker
5+
ABIGEN="$(DOCKER) run -v .:/workspace -w /workspace -it ethereum/client-go:alltools-v1.11.6 abigen"
6+
SOLHINT=npx solhint
7+
SLITHER=slither
8+
DOCKER_COMPOSE=$(DOCKER) compose
9+
E2E_TEST_COMPOSE_FILE=./chains/compose.yml
10+
TEST_BROADCAST_LOG_DIR=./broadcast/Deploy.s.sol
11+
TEST_MNEMONIC="math razor capable expose worth grape metal sunset metal sudden usage scheme"
812

913
######## Development ########
1014

1115
.PHONY: build
1216
build:
13-
@forge build --sizes --skip test --use solc:$(SOLC_VERSION)
17+
$(FORGE) build --sizes --skip test --use solc:$(SOLC_VERSION)
1418

1519
.PHONY: fmt
1620
fmt:
17-
@$(FORGE) fmt $(FORGE_FMT_OPTS)
21+
$(FORGE) fmt $(FORGE_FMT_OPTS)
1822

1923
.PHONY: lint
2024
lint:
21-
@npx solhint 'contracts/**/*.sol'
25+
@$(SOLHINT) 'contracts/**/*.sol'
2226
@$(MAKE) FORGE_FMT_OPTS=--check fmt
2327

2428
.PHONY: test
2529
test:
26-
@forge snapshot -vvvv --gas-report --isolate --use solc:$(SOLC_VERSION) $(FORGE_SNAPSHOT_OPTION)
30+
$(FORGE) test -vvvv --gas-report --isolate --use solc:$(SOLC_VERSION) $(FORGE_SNAPSHOT_OPTION)
31+
32+
.PHONY: snapshot
33+
snapshot:
34+
$(FORGE) snapshot -vvvv --gas-report --isolate --use solc:$(SOLC_VERSION) $(FORGE_SNAPSHOT_OPTION)
2735

2836
.PHONY: coverage
2937
coverage:
30-
@forge coverage --use solc:$(SOLC_VERSION)
38+
$(FORGE) coverage --use solc:$(SOLC_VERSION)
3139

3240
.PHONY: slither
3341
slither:
34-
@slither .
42+
@$(SLITHER) .
3543

3644
######## Protobuf ########
3745

@@ -48,7 +56,7 @@ proto-go:
4856
ifndef SOLPB_DIR
4957
$(error SOLPB_DIR is not specified)
5058
else
51-
docker run \
59+
$(DOCKER) run \
5260
-v $(CURDIR):/workspace \
5361
-v $(SOLPB_DIR):/solpb \
5462
-e SOLPB_DIR=/solpb \

contracts/core/04-channel/IBCChannelPacketSendRecv.sol

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,8 @@ contract IBCChannelPacketSendRecv is
106106
*/
107107
function recvPacket(MsgPacketRecv calldata msg_) public override {
108108
Channel.Data storage channel = channels[msg_.packet.destinationPort][msg_.packet.destinationChannel];
109-
if (channel.state == Channel.State.STATE_OPEN) {} else if (
110-
channel.state == Channel.State.STATE_FLUSHING || channel.state == Channel.State.STATE_FLUSHCOMPLETE
111-
) {
109+
if (channel.state == Channel.State.STATE_OPEN) {}
110+
else if (channel.state == Channel.State.STATE_FLUSHING || channel.state == Channel.State.STATE_FLUSHCOMPLETE) {
112111
RecvStartSequence storage rseq =
113112
recvStartSequences[msg_.packet.destinationPort][msg_.packet.destinationChannel];
114113
// prevSequence=0 means the channel is not in the process of being upgraded or counterparty has not been upgraded yet

contracts/core/24-host/IBCHostLib.sol

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,16 @@ library IBCHostLib {
2020
unchecked {
2121
for (uint256 i = 0; i < portIdLength; i++) {
2222
uint256 c = uint256(uint8(portId[i]));
23+
// return false if the character is not in one of the following categories:
24+
// a-z
25+
// 0-9
26+
// A-Z
27+
// ".", "_", "+", "-"
28+
// "#", "[", "]", "<", ">"
2329
if (
24-
// a-z
25-
!(c >= 0x61 && c <= 0x7A)
26-
// 0-9
27-
&& !(c >= 0x30 && c <= 0x39)
28-
// A-Z
29-
&& !(c >= 0x41 && c <= 0x5A)
30-
// ".", "_", "+", "-"
31-
&& !(c == 0x2E || c == 0x5F || c == 0x2B || c == 0x2D)
32-
// "#", "[", "]", "<", ">"
33-
&& !(c == 0x23 || c == 0x5B || c == 0x5D || c == 0x3C || c == 0x3E)
30+
!(c >= 0x61 && c <= 0x7A) && !(c >= 0x30 && c <= 0x39) && !(c >= 0x41 && c <= 0x5A)
31+
&& !(c == 0x2E || c == 0x5F || c == 0x2B || c == 0x2D)
32+
&& !(c == 0x23 || c == 0x5B || c == 0x5D || c == 0x3C || c == 0x3E)
3433
) {
3534
return false;
3635
}

foundry.toml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,29 @@ test = 'tests/foundry/src'
66
gas_reports = ["*"]
77
optimizer = true
88
optimizer_runs = 9_999_999
9+
via-ir = false
910

1011
[fmt]
12+
line_length = 120
13+
tab_width = 4
14+
bracket_spacing = false
15+
int_types = "long"
16+
multiline_func_header = "attributes_first"
17+
quote_style = "double"
18+
number_underscore = "preserve"
19+
hex_underscore = "remove"
20+
single_line_statement_blocks = "preserve"
21+
override_spacing = false
22+
wrap_comments = false
1123
ignore = [
12-
'./contracts/proto/**/*.sol',
13-
'./tests/**/*.sol'
24+
"./contracts/proto/**/*.sol",
25+
"./tests/**/*.sol",
1426
]
27+
contract_new_lines = false
28+
sort_imports = false
1529

1630
[profile.no_optimization]
1731
optimizer = false
32+
33+
[profile.ir]
34+
via-ir = true

tests/foundry/src/IBCBenchmarks.t.sol

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ contract IBCBenchmarks is IBCTestHelper {
149149
})
150150
),
151151
protoConsensusState: wrapAnyMockConsensusState(
152-
IbcLightclientsMockV1ConsensusState.Data({timestamp: uint64(block.timestamp * 1e9)})
152+
IbcLightclientsMockV1ConsensusState.Data({timestamp: uint64(getBlockTimestampNano())})
153153
)
154154
});
155155
vm.resumeGasMetering();
@@ -163,7 +163,7 @@ contract IBCBenchmarks is IBCTestHelper {
163163
protoClientMessage: wrapAnyMockHeader(
164164
IbcLightclientsMockV1Header.Data({
165165
height: Height.Data({revision_number: 0, revision_height: nextRevisionHeight}),
166-
timestamp: uint64(block.timestamp * 1e9)
166+
timestamp: uint64(getBlockTimestampNano())
167167
})
168168
)
169169
});
@@ -175,7 +175,7 @@ contract IBCBenchmarks is IBCTestHelper {
175175
vm.pauseGasMetering();
176176
IbcLightclientsMockV1Header.Data memory header = IbcLightclientsMockV1Header.Data({
177177
height: Height.Data({revision_number: 0, revision_height: nextRevisionHeight}),
178-
timestamp: uint64(block.timestamp * 1e9)
178+
timestamp: uint64(getBlockTimestampNano())
179179
});
180180
vm.resumeGasMetering();
181181
mockClient.updateClient(

tests/foundry/src/IBCMockApp.t.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ contract IBCMockAppTest is IBCTestHelper, ICS04PacketEventTestHelper {
111111
for (uint256 i = 0; i < orders.length; i++) {
112112
(ChannelInfo memory channel0, ChannelInfo memory channel1) =
113113
createMockAppChannel(orders[i], connId0, connId1);
114-
Height.Data memory timeoutHeight = H(uint64(block.number + 1));
114+
Height.Data memory timeoutHeight = H(uint64(getBlockNumber(1)));
115115
mockApp.sendPacket(IBCMockLib.MOCK_PACKET_DATA, channel0.portId, channel0.channelId, timeoutHeight, 0);
116116
Packet memory packet =
117117
getLastSentPacket(ibcHandler, channel0.portId, channel0.channelId, vm.getRecordedLogs());
@@ -187,7 +187,7 @@ contract IBCMockAppTest is IBCTestHelper, ICS04PacketEventTestHelper {
187187
function sendAndRelay(ChannelInfo memory ca, ChannelInfo memory cb, Channel.Order ordering, RelayCase memory rc)
188188
private
189189
{
190-
uint64 sequence = mockApp.sendPacket(rc.packetData, ca.portId, ca.channelId, H(uint64(block.number + 1)), 0);
190+
uint64 sequence = mockApp.sendPacket(rc.packetData, ca.portId, ca.channelId, H(uint64(getBlockNumber(1))), 0);
191191
Packet memory packet = getLastSentPacket(ibcHandler, ca.portId, ca.channelId, vm.getRecordedLogs());
192192
assertEq(packet.data, rc.packetData);
193193
ibcHandler.recvPacket(

0 commit comments

Comments
 (0)