Skip to content

Commit 0750feb

Browse files
committed
implement getIBCModuleBy{Port,Channel} for IBCQuerier
Signed-off-by: Jun Kimura <[email protected]>
1 parent eddb15c commit 0750feb

File tree

3 files changed

+77
-55
lines changed

3 files changed

+77
-55
lines changed

.gas-snapshot

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,71 @@
1-
IBCMockAppTest:testHandshake() (gas: 4420356)
2-
IBCMockAppTest:testHandshakeBetweenDifferentPorts() (gas: 3334286)
3-
IBCMockAppTest:testPacketRelay() (gas: 13932025)
4-
IBCMockAppTest:testPacketTimeout() (gas: 4279264)
1+
IBCMockAppTest:testHandshake() (gas: 4420488)
2+
IBCMockAppTest:testHandshakeBetweenDifferentPorts() (gas: 3334373)
3+
IBCMockAppTest:testPacketRelay() (gas: 13931365)
4+
IBCMockAppTest:testPacketTimeout() (gas: 4279263)
55
IBCTest:testBenchmarkCreateMockClient() (gas: 233366)
66
IBCTest:testBenchmarkLCUpdateMockClient() (gas: 62005)
7-
IBCTest:testBenchmarkRecvPacket() (gas: 158921)
7+
IBCTest:testBenchmarkRecvPacket() (gas: 158899)
88
IBCTest:testBenchmarkSendPacket() (gas: 128432)
99
IBCTest:testBenchmarkUpdateMockClient() (gas: 160229)
1010
IBCTest:testToUint128((uint64,uint64)) (runs: 256, μ: 947, ~: 947)
11-
TestICS02:testCreateClient() (gas: 36491844)
12-
TestICS02:testInvalidCreateClient() (gas: 36389119)
13-
TestICS02:testInvalidUpdateClient() (gas: 36387971)
14-
TestICS02:testRegisterClient() (gas: 36043570)
15-
TestICS02:testRegisterClientDuplicatedClientType() (gas: 36028879)
16-
TestICS02:testRegisterClientInvalidClientType() (gas: 36058206)
17-
TestICS02:testUpdateClient() (gas: 36556171)
18-
TestICS03Handshake:testConnOpenAck() (gas: 1858296)
19-
TestICS03Handshake:testConnOpenConfirm() (gas: 2054231)
20-
TestICS03Handshake:testConnOpenInit() (gas: 1429882)
21-
TestICS03Handshake:testConnOpenTry() (gas: 2398932)
22-
TestICS03Handshake:testInvalidConnOpenAck() (gas: 2421932)
23-
TestICS03Handshake:testInvalidConnOpenConfirm() (gas: 2535700)
11+
TestICS02:testCreateClient() (gas: 36551707)
12+
TestICS02:testInvalidCreateClient() (gas: 36448926)
13+
TestICS02:testInvalidUpdateClient() (gas: 36447834)
14+
TestICS02:testRegisterClient() (gas: 36103500)
15+
TestICS02:testRegisterClientDuplicatedClientType() (gas: 36088809)
16+
TestICS02:testRegisterClientInvalidClientType() (gas: 36118270)
17+
TestICS02:testUpdateClient() (gas: 36616034)
18+
TestICS03Handshake:testConnOpenAck() (gas: 1858230)
19+
TestICS03Handshake:testConnOpenConfirm() (gas: 2054143)
20+
TestICS03Handshake:testConnOpenInit() (gas: 1429838)
21+
TestICS03Handshake:testConnOpenTry() (gas: 2398844)
22+
TestICS03Handshake:testInvalidConnOpenAck() (gas: 2421822)
23+
TestICS03Handshake:testInvalidConnOpenConfirm() (gas: 2535568)
2424
TestICS03Handshake:testInvalidConnOpenInit() (gas: 783147)
25-
TestICS03Handshake:testInvalidConnOpenTry() (gas: 2342609)
25+
TestICS03Handshake:testInvalidConnOpenTry() (gas: 2342543)
2626
TestICS03Version:testCopyVersions() (gas: 558658)
2727
TestICS03Version:testFindSupportedVersion() (gas: 19400)
2828
TestICS03Version:testIsSupportedVersion() (gas: 7864)
2929
TestICS03Version:testPickVersion() (gas: 25327)
3030
TestICS03Version:testVerifyProposedVersion() (gas: 11777)
3131
TestICS03Version:testVerifySupportedFeature() (gas: 4153)
3232
TestICS04Handshake:testBindPort() (gas: 124350)
33-
TestICS04Handshake:testChanClose() (gas: 12938710)
34-
TestICS04Handshake:testChanOpenAck() (gas: 3459608)
35-
TestICS04Handshake:testChanOpenConfirm() (gas: 3770921)
36-
TestICS04Handshake:testChanOpenInit() (gas: 2543726)
37-
TestICS04Handshake:testChanOpenTry() (gas: 3100014)
38-
TestICS04Handshake:testInvalidChanOpenAck() (gas: 2439820)
39-
TestICS04Handshake:testInvalidChanOpenConfirm() (gas: 2517409)
40-
TestICS04Handshake:testInvalidChanOpenInit() (gas: 1758661)
41-
TestICS04Handshake:testInvalidChanOpenTry() (gas: 1773244)
42-
TestICS04Packet:testAcknowledgementPacket() (gas: 3351462)
43-
TestICS04Packet:testInvalidSendPacket() (gas: 3551893)
44-
TestICS04Packet:testRecvPacket() (gas: 10996621)
45-
TestICS04Packet:testRecvPacketTimeoutHeight() (gas: 3260169)
46-
TestICS04Packet:testRecvPacketTimeoutTimestamp() (gas: 3279319)
47-
TestICS04Packet:testSendPacket() (gas: 6413456)
48-
TestICS04Packet:testTimeoutOnClose() (gas: 3553819)
49-
TestICS04Upgrade:testUpgradeAuthorityCancel() (gas: 46740549)
33+
TestICS04Handshake:testChanClose() (gas: 12938854)
34+
TestICS04Handshake:testChanOpenAck() (gas: 3459404)
35+
TestICS04Handshake:testChanOpenConfirm() (gas: 3770673)
36+
TestICS04Handshake:testChanOpenInit() (gas: 2543524)
37+
TestICS04Handshake:testChanOpenTry() (gas: 3099898)
38+
TestICS04Handshake:testInvalidChanOpenAck() (gas: 2439749)
39+
TestICS04Handshake:testInvalidChanOpenConfirm() (gas: 2517338)
40+
TestICS04Handshake:testInvalidChanOpenInit() (gas: 1758704)
41+
TestICS04Handshake:testInvalidChanOpenTry() (gas: 1773674)
42+
TestICS04Packet:testAcknowledgementPacket() (gas: 3351152)
43+
TestICS04Packet:testInvalidSendPacket() (gas: 3551583)
44+
TestICS04Packet:testRecvPacket() (gas: 10995054)
45+
TestICS04Packet:testRecvPacketTimeoutHeight() (gas: 3259727)
46+
TestICS04Packet:testRecvPacketTimeoutTimestamp() (gas: 3278877)
47+
TestICS04Packet:testSendPacket() (gas: 6412442)
48+
TestICS04Packet:testTimeoutOnClose() (gas: 3553289)
49+
TestICS04Upgrade:testUpgradeAuthorityCancel() (gas: 46737910)
5050
TestICS04Upgrade:testUpgradeCannotCancelWithOldErrorReceipt() (gas: 3455585)
51-
TestICS04Upgrade:testUpgradeCannotRecvNextUpgradePacket() (gas: 5266813)
52-
TestICS04Upgrade:testUpgradeCounterpartyAdvanceNextSequenceBeforeOpen() (gas: 5235961)
53-
TestICS04Upgrade:testUpgradeCrossingHelloIncompatibleProposals() (gas: 4405943)
54-
TestICS04Upgrade:testUpgradeFull() (gas: 57782504)
55-
TestICS04Upgrade:testUpgradeInit() (gas: 3068733)
56-
TestICS04Upgrade:testUpgradeNoChanges() (gas: 2471886)
57-
TestICS04Upgrade:testUpgradeOutOfSync() (gas: 3902195)
58-
TestICS04Upgrade:testUpgradeRelaySuccessAtCounterpartyFlushComplete() (gas: 5238577)
59-
TestICS04Upgrade:testUpgradeRelaySuccessAtFlushing() (gas: 5612554)
60-
TestICS04Upgrade:testUpgradeSendPacketFailAtFlushingOrFlushComplete() (gas: 4070944)
61-
TestICS04Upgrade:testUpgradeTimeoutAbortAck() (gas: 17679407)
62-
TestICS04Upgrade:testUpgradeTimeoutAbortConfirm() (gas: 21317099)
63-
TestICS04Upgrade:testUpgradeTimeoutUpgrade() (gas: 44263811)
64-
TestICS04Upgrade:testUpgradeToOrdered() (gas: 56495273)
65-
TestICS04Upgrade:testUpgradeToUnordered() (gas: 45104027)
66-
TestICS04UpgradeApp:testUpgradeAuthorizationChanneNotFound() (gas: 61712)
67-
TestICS04UpgradeApp:testUpgradeAuthorizationRePropose() (gas: 2565510)
68-
TestICS04UpgradeApp:testUpgradeAuthorizationRemove() (gas: 2473948)
51+
TestICS04Upgrade:testUpgradeCannotRecvNextUpgradePacket() (gas: 5266374)
52+
TestICS04Upgrade:testUpgradeCounterpartyAdvanceNextSequenceBeforeOpen() (gas: 5235544)
53+
TestICS04Upgrade:testUpgradeCrossingHelloIncompatibleProposals() (gas: 4405811)
54+
TestICS04Upgrade:testUpgradeFull() (gas: 57775990)
55+
TestICS04Upgrade:testUpgradeInit() (gas: 3068711)
56+
TestICS04Upgrade:testUpgradeNoChanges() (gas: 2471930)
57+
TestICS04Upgrade:testUpgradeOutOfSync() (gas: 3902151)
58+
TestICS04Upgrade:testUpgradeRelaySuccessAtCounterpartyFlushComplete() (gas: 5238138)
59+
TestICS04Upgrade:testUpgradeRelaySuccessAtFlushing() (gas: 5612071)
60+
TestICS04Upgrade:testUpgradeSendPacketFailAtFlushingOrFlushComplete() (gas: 4070658)
61+
TestICS04Upgrade:testUpgradeTimeoutAbortAck() (gas: 17677097)
62+
TestICS04Upgrade:testUpgradeTimeoutAbortConfirm() (gas: 21313205)
63+
TestICS04Upgrade:testUpgradeTimeoutUpgrade() (gas: 44260340)
64+
TestICS04Upgrade:testUpgradeToOrdered() (gas: 56489888)
65+
TestICS04Upgrade:testUpgradeToUnordered() (gas: 45099675)
66+
TestICS04UpgradeApp:testUpgradeAuthorizationChanneNotFound() (gas: 61690)
67+
TestICS04UpgradeApp:testUpgradeAuthorizationRePropose() (gas: 2565532)
68+
TestICS04UpgradeApp:testUpgradeAuthorizationRemove() (gas: 2473992)
6969
TestICS20:testAddressToHex(address) (runs: 256, μ: 22726, ~: 22867)
7070
TestICS20:testHexToAddress(string) (runs: 256, μ: 4776, ~: 4734)
7171
TestICS20:testIsEscapedString() (gas: 48979)

contracts/core/25-handler/IBCQuerier.sol

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ import {ConnectionEnd} from "../../proto/Connection.sol";
66
import {Channel, Upgrade} from "../../proto/Channel.sol";
77
import {IBCChannelLib} from "../04-channel/IBCChannelLib.sol";
88
import {IBCCommitment} from "../24-host/IBCCommitment.sol";
9-
import {IIBCQuerier} from "./IIBCQuerier.sol";
9+
import {IIBCModule} from "../26-router/IIBCModule.sol";
1010
import {IBCModuleManager} from "../26-router/IBCModuleManager.sol";
11+
import {IIBCQuerier} from "./IIBCQuerier.sol";
1112

1213
contract IBCQuerier is IBCModuleManager, IIBCQuerier {
1314
function getCommitmentPrefix() public view override returns (bytes memory) {
@@ -22,6 +23,19 @@ contract IBCQuerier is IBCModuleManager, IIBCQuerier {
2223
return expectedTimePerBlock;
2324
}
2425

26+
function getIBCModuleByPort(string calldata portId) public view override returns (IIBCModule) {
27+
return lookupModuleByPort(portId);
28+
}
29+
30+
function getIBCModuleByChannel(string calldata portId, string calldata channelId)
31+
public
32+
view
33+
override
34+
returns (IIBCModule)
35+
{
36+
return lookupModuleByChannel(portId, channelId);
37+
}
38+
2539
function getClientByType(string calldata clientType) public view override returns (address) {
2640
return clientRegistry[clientType];
2741
}

contracts/core/25-handler/IIBCQuerier.sol

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {Height} from "../../proto/Client.sol";
55
import {ConnectionEnd} from "../../proto/Connection.sol";
66
import {Channel, Upgrade} from "../../proto/Channel.sol";
77
import {IBCChannelLib} from "../04-channel/IBCChannelLib.sol";
8+
import {IIBCModule} from "../26-router/IIBCModule.sol";
89

910
interface IIBCQuerier {
1011
function getCommitmentPrefix() external view returns (bytes memory);
@@ -13,6 +14,13 @@ interface IIBCQuerier {
1314

1415
function getExpectedTimePerBlock() external view returns (uint64);
1516

17+
function getIBCModuleByPort(string calldata portId) external view returns (IIBCModule);
18+
19+
function getIBCModuleByChannel(string calldata portId, string calldata channelId)
20+
external
21+
view
22+
returns (IIBCModule);
23+
1624
function getClientByType(string calldata clientType) external view returns (address);
1725

1826
function getClientType(string calldata clientId) external view returns (string memory);

0 commit comments

Comments
 (0)