diff --git a/.github/compatibility-test-matrices/release-v7.0.x/client-chain-a.json b/.github/compatibility-test-matrices/release-v7.0.x/client-chain-a.json index afa22155666..187f3c58c80 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/client-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/client-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.0.x"], - "chain-b": ["release-v7.0.x", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-b": ["release-v7.0.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "entrypoint": ["TestClientTestSuite"], "test": [ "TestClientUpdateProposal_Succeeds", diff --git a/.github/compatibility-test-matrices/release-v7.0.x/client-chain-b.json b/.github/compatibility-test-matrices/release-v7.0.x/client-chain-b.json index 020c5e44340..7b1c6b855db 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/client-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/client-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.0.x", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-a": ["release-v7.0.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "chain-b": ["release-v7.0.x"], "entrypoint": ["TestClientTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.0.x/connection-chain-a.json b/.github/compatibility-test-matrices/release-v7.0.x/connection-chain-a.json index cb4dd35b6f0..627ddf6fe1b 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/connection-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/connection-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.0.x"], - "chain-b": ["release-v7.0.x", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-b": ["release-v7.0.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "entrypoint": ["TestConnectionTestSuite"], "test": [ "TestMaxExpectedTimePerBlockParam" diff --git a/.github/compatibility-test-matrices/release-v7.0.x/connection-chain-b.json b/.github/compatibility-test-matrices/release-v7.0.x/connection-chain-b.json index 268fb343c16..4b4642311e1 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/connection-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/connection-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.0.x", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-a": ["release-v7.0.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "chain-b": ["release-v7.0.x"], "entrypoint": ["TestConnectionTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.0.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.0.x/ica-chain-a.json index f6a63997f3d..6eb0f0467be 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/ica-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.0.x"], - "chain-b": ["release-v7.0.x", "v6.1.0"], + "chain-b": ["release-v7.0.x", "v7.0.0", "v6.1.0"], "entrypoint": ["TestInterchainAccountsTestSuite"], "test": [ "TestMsgSendTx_SuccessfulTransfer", diff --git a/.github/compatibility-test-matrices/release-v7.0.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.0.x/ica-chain-b.json index 452fbebe98b..b8a26f53fed 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/ica-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.0.x", "v6.1.0"], + "chain-a": ["release-v7.0.x", "v7.0.0", "v6.1.0"], "chain-b": ["release-v7.0.x"], "entrypoint": ["TestInterchainAccountsTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.0.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v7.0.x/ica-gov-chain-a.json index c339471ea3d..5962864aa18 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/ica-gov-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/ica-gov-chain-a.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.0.x", "v6.1.0"], + "chain-a": ["release-v7.0.x", "v7.0.0", "v6.1.0"], "chain-b": ["release-v7.0.x"], "entrypoint": ["TestInterchainAccountsGovTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.0.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v7.0.x/ica-gov-chain-b.json index c8489613a48..ae25f8f7eba 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/ica-gov-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/ica-gov-chain-b.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.0.x"], - "chain-b": ["release-v7.0.x", "v6.1.0"], + "chain-b": ["release-v7.0.x", "v7.0.0", "v6.1.0"], "entrypoint": ["TestInterchainAccountsGovTestSuite"], "test": [ "TestInterchainAccountsGovIntegration" diff --git a/.github/compatibility-test-matrices/release-v7.0.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v7.0.x/ica-groups-chain-a.json index 888f7e22e07..bd209c5fe15 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/ica-groups-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/ica-groups-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.0.x"], - "chain-b": ["release-v7.0.x", "v6.1.0"], + "chain-b": ["release-v7.0.x", "v7.0.0", "v6.1.0"], "entrypoint": ["TestInterchainAccountsGroupsTestSuite"], "test": [ "TestInterchainAccountsGroupsIntegration" diff --git a/.github/compatibility-test-matrices/release-v7.0.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v7.0.x/ica-groups-chain-b.json index ff75181eb46..2012cacc120 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/ica-groups-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/ica-groups-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.0.x", "v6.1.0"], + "chain-a": ["release-v7.0.x", "v7.0.0", "v6.1.0"], "chain-b": ["release-v7.0.x"], "entrypoint": ["TestInterchainAccountsGroupsTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.0.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.0.x/incentivized-ica-chain-a.json index bc937f1d6a5..767f8af98cc 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/incentivized-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/incentivized-ica-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.0.x"], - "chain-b": ["release-v7.0.x", "v6.1.0"], + "chain-b": ["release-v7.0.x", "v7.0.0", "v6.1.0"], "entrypoint": ["TestIncentivizedInterchainAccountsTestSuite"], "test": [ "TestMsgSendTx_SuccessfulBankSend_Incentivized", diff --git a/.github/compatibility-test-matrices/release-v7.0.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.0.x/incentivized-ica-chain-b.json index 000e6fcf2be..43b5c25a9f3 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/incentivized-ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/incentivized-ica-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.0.x", "v6.1.0"], + "chain-a": ["release-v7.0.x", "v7.0.0", "v6.1.0"], "chain-b": ["release-v7.0.x"], "entrypoint": ["TestIncentivizedInterchainAccountsTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.0.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.0.x/incentivized-transfer-chain-a.json index 54841e7e08c..964241f7c78 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/incentivized-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/incentivized-transfer-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.0.x"], - "chain-b": ["release-v7.0.x", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-b": ["release-v7.0.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "entrypoint": ["TestIncentivizedTransferTestSuite"], "test": [ "TestMsgPayPacketFee_AsyncSingleSender_Succeeds", diff --git a/.github/compatibility-test-matrices/release-v7.0.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.0.x/incentivized-transfer-chain-b.json index f62e5040c05..8ca0ebf533f 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/incentivized-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/incentivized-transfer-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.0.x", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-a": ["release-v7.0.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "chain-b": ["release-v7.0.x"], "entrypoint": ["TestIncentivizedTransferTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.0.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v7.0.x/transfer-authz-chain-a.json index 23ac0a9ed1b..a689e709292 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/transfer-authz-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/transfer-authz-chain-a.json @@ -1,11 +1,12 @@ { "chain-a": ["release-v7.0.x"], - "chain-b": ["release-v7.0.x"], + "chain-b": ["release-v7.0.x", "v7.0.0"], "entrypoint": ["TestAuthzTransferTestSuite"], "test": [ "TestAuthz_MsgTransfer_Succeeds", "TestAuthz_InvalidTransferAuthorizations" ], + "relayer-type": ["rly"], "chain-binary": ["simd"], "chain-image": ["ghcr.io/cosmos/ibc-go-simd"] } diff --git a/.github/compatibility-test-matrices/release-v7.0.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v7.0.x/transfer-authz-chain-b.json new file mode 100644 index 00000000000..13c9f1c9a64 --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.0.x/transfer-authz-chain-b.json @@ -0,0 +1,12 @@ +{ + "chain-a": ["release-v7.0.x", "v7.0.0"], + "chain-b": ["release-v7.0.x"], + "entrypoint": ["TestAuthzTransferTestSuite"], + "test": [ + "TestAuthz_MsgTransfer_Succeeds", + "TestAuthz_InvalidTransferAuthorizations" + ], + "relayer-type": ["rly"], + "chain-binary": ["simd"], + "chain-image": ["ghcr.io/cosmos/ibc-go-simd"] +} diff --git a/.github/compatibility-test-matrices/release-v7.0.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.0.x/transfer-chain-a.json index 2f2590edb2e..9900028af83 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/transfer-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.0.x"], - "chain-b": ["release-v7.0.x", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-b": ["release-v7.0.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "entrypoint": ["TestTransferTestSuite"], "test": [ "TestMsgTransfer_Succeeds_Nonincentivized", diff --git a/.github/compatibility-test-matrices/release-v7.0.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.0.x/transfer-chain-b.json index fa353c25a76..95168b8db3c 100644 --- a/.github/compatibility-test-matrices/release-v7.0.x/transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.0.x/transfer-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.0.x", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-a": ["release-v7.0.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "chain-b": ["release-v7.0.x"], "entrypoint": ["TestTransferTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.1.x/client-chain-a.json b/.github/compatibility-test-matrices/release-v7.1.x/client-chain-a.json index ee53ac456c6..ab830bd3076 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/client-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/client-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.1.x"], - "chain-b": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-b": ["release-v7.1.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "entrypoint": ["TestClientTestSuite"], "test": [ "TestClientUpdateProposal_Succeeds", diff --git a/.github/compatibility-test-matrices/release-v7.1.x/client-chain-b.json b/.github/compatibility-test-matrices/release-v7.1.x/client-chain-b.json index c462fffad31..a161eb48df0 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/client-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/client-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-a": ["release-v7.1.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "chain-b": ["release-v7.1.x"], "entrypoint": ["TestClientTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.1.x/connection-chain-a.json b/.github/compatibility-test-matrices/release-v7.1.x/connection-chain-a.json index fdacc02efcd..3e101bf4979 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/connection-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/connection-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.1.x"], - "chain-b": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-b": ["release-v7.1.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "entrypoint": ["TestConnectionTestSuite"], "test": [ "TestMaxExpectedTimePerBlockParam" diff --git a/.github/compatibility-test-matrices/release-v7.1.x/connection-chain-b.json b/.github/compatibility-test-matrices/release-v7.1.x/connection-chain-b.json index ff25bc9405a..8da137bde10 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/connection-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/connection-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-a": ["release-v7.1.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "chain-b": ["release-v7.1.x"], "entrypoint": ["TestConnectionTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.1.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.1.x/ica-chain-a.json index 36379c9d38d..a3d30079a9e 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/ica-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.1.x"], - "chain-b": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0"], + "chain-b": ["release-v7.1.x", "v7.0.0", "v6.1.0"], "entrypoint": ["TestInterchainAccountsTestSuite"], "test": [ "TestMsgSendTx_SuccessfulTransfer", diff --git a/.github/compatibility-test-matrices/release-v7.1.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.1.x/ica-chain-b.json index 0dc7aed2695..944952d3140 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/ica-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0"], + "chain-a": ["release-v7.1.x", "v7.0.0", "v6.1.0"], "chain-b": ["release-v7.1.x"], "entrypoint": ["TestInterchainAccountsTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.1.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v7.1.x/ica-gov-chain-a.json index 77a29a799d4..be313dcb0e4 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/ica-gov-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/ica-gov-chain-a.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0"], + "chain-a": ["release-v7.1.x", "v7.0.0", "v6.1.0"], "chain-b": ["release-v7.1.x"], "entrypoint": ["TestInterchainAccountsGovTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.1.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v7.1.x/ica-gov-chain-b.json index 00d59180c4d..5926babf87e 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/ica-gov-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/ica-gov-chain-b.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.1.x"], - "chain-b": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0"], + "chain-b": ["release-v7.1.x", "v7.0.0", "v6.1.0"], "entrypoint": ["TestInterchainAccountsGovTestSuite"], "test": [ "TestInterchainAccountsGovIntegration" diff --git a/.github/compatibility-test-matrices/release-v7.1.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v7.1.x/ica-groups-chain-a.json index 35012389202..ca93ca756dd 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/ica-groups-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/ica-groups-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.1.x"], - "chain-b": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0"], + "chain-b": ["release-v7.1.x", "v7.0.0", "v6.1.0"], "entrypoint": ["TestInterchainAccountsGroupsTestSuite"], "test": [ "TestInterchainAccountsGroupsIntegration" diff --git a/.github/compatibility-test-matrices/release-v7.1.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v7.1.x/ica-groups-chain-b.json index 412f0e21d1c..71a6dc8168a 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/ica-groups-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/ica-groups-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0"], + "chain-a": ["release-v7.1.x", "v7.0.0", "v6.1.0"], "chain-b": ["release-v7.1.x"], "entrypoint": ["TestInterchainAccountsGroupsTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.1.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.1.x/incentivized-ica-chain-a.json index b84d56409e5..861939f800b 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/incentivized-ica-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/incentivized-ica-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.1.x"], - "chain-b": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0"], + "chain-b": ["release-v7.1.x", "v7.0.0", "v6.1.0"], "entrypoint": ["TestIncentivizedInterchainAccountsTestSuite"], "test": [ "TestMsgSendTx_SuccessfulBankSend_Incentivized", diff --git a/.github/compatibility-test-matrices/release-v7.1.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.1.x/incentivized-ica-chain-b.json index b5074245c8b..f6f7149ce4e 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/incentivized-ica-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/incentivized-ica-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0"], + "chain-a": ["release-v7.1.x", "v7.0.0", "v6.1.0"], "chain-b": ["release-v7.1.x"], "entrypoint": ["TestIncentivizedInterchainAccountsTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.1.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.1.x/incentivized-transfer-chain-a.json index d8f9a15f240..02ae0d96087 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/incentivized-transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/incentivized-transfer-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.1.x"], - "chain-b": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-b": ["release-v7.1.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "entrypoint": ["TestIncentivizedTransferTestSuite"], "test": [ "TestMsgPayPacketFee_AsyncSingleSender_Succeeds", diff --git a/.github/compatibility-test-matrices/release-v7.1.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.1.x/incentivized-transfer-chain-b.json index 3c303671554..3aacc37432a 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/incentivized-transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/incentivized-transfer-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-a": ["release-v7.1.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "chain-b": ["release-v7.1.x"], "entrypoint": ["TestIncentivizedTransferTestSuite"], "test": [ diff --git a/.github/compatibility-test-matrices/release-v7.1.x/localhost-ica-chain-1.json b/.github/compatibility-test-matrices/release-v7.1.x/localhost-ica-chain-a.json similarity index 100% rename from .github/compatibility-test-matrices/release-v7.1.x/localhost-ica-chain-1.json rename to .github/compatibility-test-matrices/release-v7.1.x/localhost-ica-chain-a.json diff --git a/.github/compatibility-test-matrices/release-v7.1.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v7.1.x/transfer-authz-chain-a.json index f4a08d01392..e986f41f14c 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/transfer-authz-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/transfer-authz-chain-a.json @@ -1,11 +1,12 @@ { "chain-a": ["release-v7.1.x"], - "chain-b": ["release-v7.1.x", "v7.0.0-rc1"], + "chain-b": ["release-v7.1.x", "v7.0.0"], "entrypoint": ["TestAuthzTransferTestSuite"], "test": [ "TestAuthz_MsgTransfer_Succeeds", "TestAuthz_InvalidTransferAuthorizations" ], + "relayer-type": ["rly"], "chain-binary": ["simd"], "chain-image": ["ghcr.io/cosmos/ibc-go-simd"] } diff --git a/.github/compatibility-test-matrices/release-v7.1.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v7.1.x/transfer-authz-chain-b.json new file mode 100644 index 00000000000..5add6e403ac --- /dev/null +++ b/.github/compatibility-test-matrices/release-v7.1.x/transfer-authz-chain-b.json @@ -0,0 +1,12 @@ +{ + "chain-a": ["release-v7.1.x", "v7.0.0"], + "chain-b": ["release-v7.1.x"], + "entrypoint": ["TestAuthzTransferTestSuite"], + "test": [ + "TestAuthz_MsgTransfer_Succeeds", + "TestAuthz_InvalidTransferAuthorizations" + ], + "relayer-type": ["rly"], + "chain-binary": ["simd"], + "chain-image": ["ghcr.io/cosmos/ibc-go-simd"] +} diff --git a/.github/compatibility-test-matrices/release-v7.1.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.1.x/transfer-chain-a.json index 857fd19750e..87469c1c25b 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/transfer-chain-a.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/transfer-chain-a.json @@ -1,6 +1,6 @@ { "chain-a": ["release-v7.1.x"], - "chain-b": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-b": ["release-v7.1.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "entrypoint": ["TestTransferTestSuite"], "test": [ "TestMsgTransfer_Succeeds_Nonincentivized", diff --git a/.github/compatibility-test-matrices/release-v7.1.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.1.x/transfer-chain-b.json index 5d54e15de95..7406f39d1f0 100644 --- a/.github/compatibility-test-matrices/release-v7.1.x/transfer-chain-b.json +++ b/.github/compatibility-test-matrices/release-v7.1.x/transfer-chain-b.json @@ -1,5 +1,5 @@ { - "chain-a": ["release-v7.1.x", "v7.0.0-rc1", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], + "chain-a": ["release-v7.1.x", "v7.0.0", "v6.1.0", "v5.2.0", "v4.3.0", "v4.2.0", "v4.1.1"], "chain-b": ["release-v7.1.x"], "entrypoint": ["TestTransferTestSuite"], "test": [ diff --git a/.github/workflows/e2e-compatibility.yaml b/.github/workflows/e2e-compatibility.yaml index ed29b29ea08..bdffa51b671 100644 --- a/.github/workflows/e2e-compatibility.yaml +++ b/.github/workflows/e2e-compatibility.yaml @@ -103,6 +103,15 @@ jobs: test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" test-suite: "transfer-authz-chain-a" + transfer-authz-chain-b: + needs: + - build-release-images + - determine-test-directory + uses: ./.github/workflows/e2e-compatibility-workflow-call.yaml + with: + test-file-directory: "${{ needs.determine-test-directory.outputs.test-directory }}" + test-suite: "transfer-authz-chain-b" + connection-chain-a: needs: - build-release-images diff --git a/.github/workflows/e2e-manual-icad.yaml b/.github/workflows/e2e-manual-icad.yaml index 556278c3786..1e48f8d384f 100644 --- a/.github/workflows/e2e-manual-icad.yaml +++ b/.github/workflows/e2e-manual-icad.yaml @@ -25,6 +25,7 @@ on: default: master options: - master + - v0.5.1 - v0.4.3 - v0.3.6 - v0.2.6 @@ -35,6 +36,7 @@ on: type: choice options: - master + - v0.5.1 - v0.4.3 - v0.3.6 - v0.2.6 diff --git a/.github/workflows/e2e-manual-simd.yaml b/.github/workflows/e2e-manual-simd.yaml index a047f325413..109e61247ff 100644 --- a/.github/workflows/e2e-manual-simd.yaml +++ b/.github/workflows/e2e-manual-simd.yaml @@ -35,6 +35,7 @@ on: default: main options: - main + - v7.0.0 - v6.1.0 - v5.2.0 - v4.3.0 @@ -45,12 +46,13 @@ on: required: false type: string chain-b-tag: - default: v6.0.0 + default: v7.0.0 description: 'The tag to use for chain B' required: true type: choice options: - main + - v7.0.0 - v6.1.0 - v5.2.0 - v4.3.0 diff --git a/.github/workflows/e2e-upgrade.yaml b/.github/workflows/e2e-upgrade.yaml index 644d70d04e1..3bf5444c490 100644 --- a/.github/workflows/e2e-upgrade.yaml +++ b/.github/workflows/e2e-upgrade.yaml @@ -39,7 +39,7 @@ jobs: chain-binary: simd chain-a-tag: v6.1.0 chain-b-tag: v6.1.0 - chain-upgrade-tag: v7.0.0-rc1 + chain-upgrade-tag: v7.0.0 upgrade-plan-name: "v7" test-entry-point: "TestUpgradeTestSuite" test: "TestV6ToV7ChainUpgrade" diff --git a/CHANGELOG.md b/CHANGELOG.md index b7e870e2eda..28354f0c7c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,8 +38,24 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Dependencies -* [#2672](https://github.com/cosmos/ibc-go/issues/2672) Update to cosmos-sdk v0.47. -* [#3175](https://github.com/cosmos/ibc-go/issues/3175) Migrate to cometbft v0.37. +### API Breaking + +### State Machine Breaking + +### Improvements + +* (tests) [\#3138](https://github.com/cosmos/ibc-go/pull/3138) Support benchmarks and fuzz tests through `testing.TB`. + +### Features + +### Bug Fixes + +## [v7.0.0](https://github.com/cosmos/ibc-go/releases/tag/v6.1.0) - 2023-03-17 + +### Dependencies + +* [\#2672](https://github.com/cosmos/ibc-go/issues/2672) Update to cosmos-sdk v0.47. +* [\#3175](https://github.com/cosmos/ibc-go/issues/3175) Migrate to cometbft v0.37. ### API Breaking @@ -61,20 +77,19 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (apps/27-interchain-accounts) [\#2638](https://github.com/cosmos/ibc-go/pull/2638) Interchain accounts host and controller Keepers now expects a keeper which fulfills the expected `exported.ScopedKeeper` interface for the capability keeper. * (06-solomachine) [\#2761](https://github.com/cosmos/ibc-go/pull/2761) Removed deprecated `ClientId` field from `Misbehaviour` and `allow_update_after_proposal` field from `ClientState`. * (apps) [\#3154](https://github.com/cosmos/ibc-go/pull/3154) Remove unused `ProposalContents` function. -* (apps) [#3149](https://github.com/cosmos/ibc-go/pull/3149) Remove legacy interface function `RandomizedParams`, which is no longer used. -* (light-clients/06-solomachine) [#2941](https://github.com/cosmos/ibc-go/pull/2941) Remove solomachine header sequence. -* (core) [#2982](https://github.com/cosmos/ibc-go/pull/2982) Moved the ibc module name into the exported package. +* (apps) [\#3149](https://github.com/cosmos/ibc-go/pull/3149) Remove legacy interface function `RandomizedParams`, which is no longer used. +* (light-clients/06-solomachine) [\#2941](https://github.com/cosmos/ibc-go/pull/2941) Remove solomachine header sequence. +* (core) [\#2982](https://github.com/cosmos/ibc-go/pull/2982) Moved the ibc module name into the exported package. ### State Machine Breaking * (06-solomachine) [\#2744](https://github.com/cosmos/ibc-go/pull/2744) `Misbehaviour.ValidateBasic()` now only enforces that signature data does not match when the signature paths are different. * (06-solomachine) [\#2748](https://github.com/cosmos/ibc-go/pull/2748) Adding sentinel value for header path in 06-solomachine. * (apps/29-fee) [\#2942](https://github.com/cosmos/ibc-go/pull/2942) Check `x/bank` send enabled before escrowing fees. -* (core/04-channel) [#3009](https://github.com/cosmos/ibc-go/pull/3009) Change check to disallow optimistic sends. +* (core/04-channel) [\#3009](https://github.com/cosmos/ibc-go/pull/3009) Change check to disallow optimistic sends. ### Improvements -* (tests) [\#3138](https://github.com/cosmos/ibc-go/pull/3138) Support benchmarks and fuzz tests through `testing.TB`. * (core) [\#3082](https://github.com/cosmos/ibc-go/pull/3082) Add `HasConnection` and `HasChannel` methods. * (tests) [\#2926](https://github.com/cosmos/ibc-go/pull/2926) Lint tests * (apps/transfer) [\#2643](https://github.com/cosmos/ibc-go/pull/2643) Add amount, denom, and memo to transfer event emission. @@ -84,56 +99,56 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (modules/core/02-client) [\#1188](https://github.com/cosmos/ibc-go/pull/1188/files) Routing `MsgSubmitMisbehaviour` to `UpdateClient` keeper function. Deprecating `SubmitMisbehaviour` endpoint. * (modules/core/02-client) [\#1208](https://github.com/cosmos/ibc-go/pull/1208) Replace `CheckHeaderAndUpdateState` usage in 02-client with calls to `VerifyClientMessage`, `CheckForMisbehaviour`, `UpdateStateOnMisbehaviour` and `UpdateState`. * (modules/light-clients/09-localhost) [\#1187](https://github.com/cosmos/ibc-go/pull/1187/) Removing localhost light client implementation as it is not functional. An upgrade handler is provided in `modules/migrations/v5` to prune `09-localhost` clients and consensus states from the store. -* [\#1186](https://github.com/cosmos/ibc-go/pull/1186/files) Removing `GetRoot` function from ConsensusState interface in `02-client`. `GetRoot` is unused by core IBC. +* (modules/core/02-client) [\#1186](https://github.com/cosmos/ibc-go/pull/1186) Removing `GetRoot` function from ConsensusState interface in `02-client`. `GetRoot` is unused by core IBC. * (modules/core/02-client) [\#1196](https://github.com/cosmos/ibc-go/pull/1196) Adding VerifyClientMessage to ClientState interface. * (modules/core/02-client) [\#1198](https://github.com/cosmos/ibc-go/pull/1198) Adding UpdateStateOnMisbehaviour to ClientState interface. * (modules/core/02-client) [\#1170](https://github.com/cosmos/ibc-go/pull/1170) Updating `ClientUpdateProposal` to set client state in lightclient implementations `CheckSubstituteAndUpdateState` methods. * (modules/core/02-client) [\#1197](https://github.com/cosmos/ibc-go/pull/1197) Adding `CheckForMisbehaviour` to `ClientState` interface. -* (modules/core/02-client) [\#1195](https://github.com/cosmos/ibc-go/pull/1210) Removing `CheckHeaderAndUpdateState` from `ClientState` interface & associated light client implementations. -* (modules/core/02-client) [\#1189](https://github.com/cosmos/ibc-go/pull/1212) Removing `CheckMisbehaviourAndUpdateState` from `ClientState` interface & associated light client implementations. +* (modules/core/02-client) [\#1210](https://github.com/cosmos/ibc-go/pull/1210) Removing `CheckHeaderAndUpdateState` from `ClientState` interface & associated light client implementations. +* (modules/core/02-client) [\#1212](https://github.com/cosmos/ibc-go/pull/1212) Removing `CheckMisbehaviourAndUpdateState` from `ClientState` interface & associated light client implementations. * (modules/core/exported) [\#1206](https://github.com/cosmos/ibc-go/pull/1206) Adding new method `UpdateState` to `ClientState` interface. * (modules/core/02-client) [\#1741](https://github.com/cosmos/ibc-go/pull/1741) Emitting a new `upgrade_chain` event upon setting upgrade consensus state. * (client) [\#724](https://github.com/cosmos/ibc-go/pull/724) `IsRevisionFormat` and `IsClientIDFormat` have been updated to disallow newlines before the dash used to separate the chainID and revision number, and the client type and client sequence. * (02-client/cli) [\#897](https://github.com/cosmos/ibc-go/pull/897) Remove `GetClientID()` from `Misbehaviour` interface. Submit client misbehaviour cli command requires an explicit client id now. -* (06-solomachine) [\#1972](https://github.com/cosmos/ibc-go/pull/1972) Solo machine implementation of `ZeroCustomFields` fn now panics as the fn is only used for upgrades which solo machine does not support. +* (06-solomachine) [\#1972](https://github.com/cosmos/ibc-go/pull/1972) Solo machine implementation of `ZeroCustomFields` fn now panics as the fn is only used for upgrades which solo machine does not support. * (light-clients/06-solomachine) Moving `verifyMisbehaviour` function from update.go to misbehaviour_handle.go. * [\#2434](https://github.com/cosmos/ibc-go/pull/2478) Removed all `TypeMsg` constants -* (modules/core/exported) [#1689](https://github.com/cosmos/ibc-go/pull/2539) Removing `GetVersions` from `ConnectionI` interface. -* (core/02-connection) [#2419](https://github.com/cosmos/ibc-go/pull/2419) Add optional proof data to proto definitions of `MsgConnectionOpenTry` and `MsgConnectionOpenAck` for host state machines that are unable to introspect their own consensus state. -* (light-clients/07-tendermint) [#3046](https://github.com/cosmos/ibc-go/pull/3046) Moved non-verification misbehaviour checks to `CheckForMisbehaviour`. -* (apps/29-fee) [#2975](https://github.com/cosmos/ibc-go/pull/2975) Adding distribute fee events to ics29. -* (light-clients/07-tendermint) [#2965](https://github.com/cosmos/ibc-go/pull/2965) Prune expired `07-tendermint` consensus states on duplicate header updates. -* (light-clients) [#2736](https://github.com/cosmos/ibc-go/pull/2736) Updating `VerifyMembership` and `VerifyNonMembership` methods to use `Path` interface. -* (light-clients) [#3113](https://github.com/cosmos/ibc-go/pull/3113) Align light client module names. +* (modules/core/exported) [\#2539] (https://github.com/cosmos/ibc-go/pull/2539) Removing `GetVersions` from `ConnectionI` interface. +* (core/02-connection) [\#2419](https://github.com/cosmos/ibc-go/pull/2419) Add optional proof data to proto definitions of `MsgConnectionOpenTry` and `MsgConnectionOpenAck` for host state machines that are unable to introspect their own consensus state. +* (light-clients/07-tendermint) [\#3046](https://github.com/cosmos/ibc-go/pull/3046) Moved non-verification misbehaviour checks to `CheckForMisbehaviour`. +* (apps/29-fee) [\#2975](https://github.com/cosmos/ibc-go/pull/2975) Adding distribute fee events to ics29. +* (light-clients/07-tendermint) [\#2965](https://github.com/cosmos/ibc-go/pull/2965) Prune expired `07-tendermint` consensus states on duplicate header updates. +* (light-clients) [\#2736](https://github.com/cosmos/ibc-go/pull/2736) Updating `VerifyMembership` and `VerifyNonMembership` methods to use `Path` interface. +* (light-clients) [\#3113](https://github.com/cosmos/ibc-go/pull/3113) Align light client module names. ### Features -* (apps/transfer) [#3079](https://github.com/cosmos/ibc-go/pull/3079) Added authz support for ics20. +* (apps/transfer) [\#3079](https://github.com/cosmos/ibc-go/pull/3079) Added authz support for ics20. * (core/02-client) [\#2824](https://github.com/cosmos/ibc-go/pull/2824) Add genesis migrations for v6 to v7. The migration migrates the solo machine client state definition, removes all solo machine consensus states and removes the localhost client. * (core/24-host) [\#2856](https://github.com/cosmos/ibc-go/pull/2856) Add `PrefixedClientStorePath` and `PrefixedClientStoreKey` functions to 24-host * (core/02-client) [\#2819](https://github.com/cosmos/ibc-go/pull/2819) Add automatic in-place store migrations to remove the localhost client and migrate existing solo machine definitions. -* (light-clients/06-solomachine) [\#2826](https://github.com/cosmos/ibc-go/pull/2826) Add `AppModuleBasic` for the 06-solomachine client and remove solo machine type registration from core IBC. Chains must register the `AppModuleBasic` of light clients. -* (light-clients/07-tendermint) [\#2825](https://github.com/cosmos/ibc-go/pull/2825) Add `AppModuleBasic` for the 07-tendermint client and remove tendermint type registration from core IBC. Chains must register the `AppModuleBasic` of light clients. +* (light-clients/06-solomachine) [\#2826](https://github.com/cosmos/ibc-go/pull/2826) Add `AppModuleBasic` for the 06-solomachine client and remove solo machine type registration from core IBC. Chains must register the `AppModuleBasic` of light clients. +* (light-clients/07-tendermint) [\#2825](https://github.com/cosmos/ibc-go/pull/2825) Add `AppModuleBasic` for the 07-tendermint client and remove tendermint type registration from core IBC. Chains must register the `AppModuleBasic` of light clients. * (light-clients/07-tendermint) [\#2800](https://github.com/cosmos/ibc-go/pull/2800) Add optional in-place store migration function to prune all expired tendermint consensus states. -* (core/24-host) [\#2820](https://github.com/cosmos/ibc-go/pull/2820) Add `MustParseClientStatePath` which parses the clientID from a client state key path. +* (core/24-host) [\#2820](https://github.com/cosmos/ibc-go/pull/2820) Add `MustParseClientStatePath` which parses the clientID from a client state key path. * (testing/simapp) [\#2842](https://github.com/cosmos/ibc-go/pull/2842) Adding the new upgrade handler for v6 -> v7 to simapp which prunes expired Tendermint consensus states. * (testing) [\#2829](https://github.com/cosmos/ibc-go/pull/2829) Add `AssertEvents` which asserts events against expected event map. ### Bug Fixes * (testing) [\#3295](https://github.com/cosmos/ibc-go/pull/3295) The function `SetupWithGenesisValSet` will set the baseapp chainID before running `InitChain` -* (light-clients/solomachine) [#1839](https://github.com/cosmos/ibc-go/pull/1839) Fixed usage of the new diversifier in validation of changing diversifiers for the solo machine. The current diversifier must sign over the new diversifier. +* (light-clients/solomachine) [\#1839](https://github.com/cosmos/ibc-go/pull/1839) Fixed usage of the new diversifier in validation of changing diversifiers for the solo machine. The current diversifier must sign over the new diversifier. * (light-clients/07-tendermint) [\#1674](https://github.com/cosmos/ibc-go/pull/1674) Submitted ClientState is zeroed out before checking the proof in order to prevent the proposal from containing information governance is not actually voting on. * (modules/core/02-client)[\#1676](https://github.com/cosmos/ibc-go/pull/1676) ClientState must be zeroed out for `UpgradeProposals` to pass validation. This prevents a proposal containing information governance is not actually voting on. * (core/02-client) [\#2510](https://github.com/cosmos/ibc-go/pull/2510) Fix client ID validation regex to conform closer to spec. -* (apps/transfer) [#3045](https://github.com/cosmos/ibc-go/pull/3045) Allow value with slashes in URL template. -* (apps/27-interchain-accounts) [#2601](https://github.com/cosmos/ibc-go/pull/2601) Remove bech32 check from owner address on ICA controller msgs RegisterInterchainAccount and SendTx. -* (apps/transfer) [#2651](https://github.com/cosmos/ibc-go/pull/2651) Skip emission of unpopulated memo field in ics20. -* (apps/27-interchain-accounts) [#2682](https://github.com/cosmos/ibc-go/pull/2682) Avoid race conditions in ics27 handshakes. -* (light-clients/06-solomachine) [#2741](https://github.com/cosmos/ibc-go/pull/2741) Added check for empty path in 06-solomachine. -* (light-clients/07-tendermint) [#3022](https://github.com/cosmos/ibc-go/pull/3022) Correctly close iterator in `07-tendermint` store. -* (core/02-client) [#3010](https://github.com/cosmos/ibc-go/pull/3010) Update `Paginate` to use `FilterPaginate` in `ClientStates` and `ConnectionChannels` grpc queries. - +* (apps/transfer) [\#3045](https://github.com/cosmos/ibc-go/pull/3045) Allow value with slashes in URL template. +* (apps/27-interchain-accounts) [\#2601](https://github.com/cosmos/ibc-go/pull/2601) Remove bech32 check from owner address on ICA controller msgs RegisterInterchainAccount and SendTx. +* (apps/transfer) [\#2651](https://github.com/cosmos/ibc-go/pull/2651) Skip emission of unpopulated memo field in ics20. +* (apps/27-interchain-accounts) [\#2682](https://github.com/cosmos/ibc-go/pull/2682) Avoid race conditions in ics27 handshakes. +* (light-clients/06-solomachine) [\#2741](https://github.com/cosmos/ibc-go/pull/2741) Added check for empty path in 06-solomachine. +* (light-clients/07-tendermint) [\#3022](https://github.com/cosmos/ibc-go/pull/3022) Correctly close iterator in `07-tendermint` store. +* (core/02-client) [\#3010](https://github.com/cosmos/ibc-go/pull/3010) Update `Paginate` to use `FilterPaginate` in `ClientStates` and `ConnectionChannels` grpc queries. + ## [v6.1.0](https://github.com/cosmos/ibc-go/releases/tag/v6.1.0) - 2022-12-20 ### Dependencies @@ -172,7 +187,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (27-interchain-accounts) [\#2590](https://github.com/cosmos/ibc-go/pull/2590) Removing port prefix requirement from the ICA host channel handshake * (transfer) [\#2377](https://github.com/cosmos/ibc-go/pull/2377) Adding `sequence` to `MsgTransferResponse`. * (light-clients/07-tendermint) [\#2555](https://github.com/cosmos/ibc-go/pull/2555) Forbid negative values for `TrustingPeriod`, `UnbondingPeriod` and `MaxClockDrift` (as specified in ICS-07). -* (core/04-channel) [#2973](https://github.com/cosmos/ibc-go/pull/2973) Write channel state before invoking app callbacks in ack and confirm channel handshake steps. +* (core/04-channel) [\#2973](https://github.com/cosmos/ibc-go/pull/2973) Write channel state before invoking app callbacks in ack and confirm channel handshake steps. ### Improvements @@ -285,28 +300,28 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Dependencies -* [#3049](https://github.com/cosmos/ibc-go/pull/3049) Bump Cosmos SDK to v0.45.12. -* [#2868](https://github.com/cosmos/ibc-go/pull/2868) Bump ics23 to v0.9.0. +* [\#3049](https://github.com/cosmos/ibc-go/pull/3049) Bump Cosmos SDK to v0.45.12. +* [\#2868](https://github.com/cosmos/ibc-go/pull/2868) Bump ics23 to v0.9.0. ### State Machine Breaking -* (core/04-channel) [#2973](https://github.com/cosmos/ibc-go/pull/2973) Write channel state before invoking app callbacks in ack and confirm channel handshake steps. +* (core/04-channel) [\#2973](https://github.com/cosmos/ibc-go/pull/2973) Write channel state before invoking app callbacks in ack and confirm channel handshake steps. ### Improvements -* (apps/29-fee) [#2786](https://github.com/cosmos/ibc-go/pull/2786) Save gas on `IsFeeEnabled`. +* (apps/29-fee) [\#2786](https://github.com/cosmos/ibc-go/pull/2786) Save gas on `IsFeeEnabled`. ### Bug Fixes -* (apps/29-fee) [#2942](https://github.com/cosmos/ibc-go/pull/2942) Check `x/bank` send enabled before escrowing fees. +* (apps/29-fee) [\#2942](https://github.com/cosmos/ibc-go/pull/2942) Check `x/bank` send enabled before escrowing fees. ### Documentation -* [#2737](https://github.com/cosmos/ibc-go/pull/2737) Fix migration/docs for ICA controller middleware. +* [\#2737](https://github.com/cosmos/ibc-go/pull/2737) Fix migration/docs for ICA controller middleware. ### Miscellaneous Tasks -* [#2772](https://github.com/cosmos/ibc-go/pull/2772) Integrated git cliff into the code base to automate generation of changelogs. +* [\#2772](https://github.com/cosmos/ibc-go/pull/2772) Integrated git cliff into the code base to automate generation of changelogs. ## [v4.2.0](https://github.com/cosmos/ibc-go/releases/tag/v4.2.0) - 2022-11-07 diff --git a/README.md b/README.md index 174aefc6f9e..d3f65b8d58f 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ For the latest information on the progress of the work or the decisions made tha ## Releases -The release lines currently supported are v4, v5 and v6. +The release lines currently supported are v4, v5, v6 and v7. Please refer to the [Stable Release Policy section of RELEASES.md](https://github.com/cosmos/ibc-go/blob/main/RELEASES.md#stable-release-policy) for more details. diff --git a/RELEASES.md b/RELEASES.md index ae0d6b1656e..6be4caef671 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -72,6 +72,7 @@ Only the following major release series have a stable release status: |`v4.3.x`|August 12, 2023| |`v5.2.x`|September 28, 2023| |`v6.1.x`|December 09, 2023| +|`v7.0.x`|March 17, 2024| All missing minor release versions have been discontinued. @@ -100,13 +101,14 @@ As rule of thumb, the following changes will **NOT** be automatically accepted i Versions of Golang, Cosmos SDK and Tendermint used by ibc-go in the currently active releases: -| Go | ibc-go | Cosmos SDK | Tendermint | -|----|--------|------------|------------| +| Go | ibc-go | Cosmos SDK | Tendermint/CometBFT | +|----|--------|------------|---------------------| | 1.18 | v4.1.1 | v0.45.10 | v0.34.22 | | 1.18 | v4.2.0 | v0.45.10 | v0.34.22 | | 1.18 | v4.3.0 | v0.45.12 | v0.34.24 | -| 1.18 | v5.2.0 | v0.46.7 | v0.34.24 | -| 1.18 | v6.1.0 | v0.46.7 | v0.34.24 | +| 1.18 | v5.2.0 | v0.46.7 | v0.34.24 | +| 1.18 | v6.1.0 | v0.46.7 | v0.34.24 | +| 1.19 | v7.0.0 | v0.47.0 | v0.37.0 | ## Graphics diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 90e172b6cf4..5dd9f2c1577 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -160,6 +160,10 @@ module.exports = { label: "v6.1.0", key: "v6.1.0", }, + { + label: "v7.0.0", + key: "v7.0.0", + }, ], topbar: { banner: true, diff --git a/docs/architecture/adr-003-ics27-acknowledgement.md b/docs/architecture/adr-003-ics27-acknowledgement.md index 5704af0d98c..4a192795ca5 100644 --- a/docs/architecture/adr-003-ics27-acknowledgement.md +++ b/docs/architecture/adr-003-ics27-acknowledgement.md @@ -92,14 +92,14 @@ Replicate the transaction response format as provided by the current SDK verison When the SDK version changes, adjust the transaction response format to use the updated transaction response format. Include the transaction response bytes in the result channel acknowledgement. -A test has been [written](https://github.com/cosmos/ibc-go/blob/v3.0.0-beta1/modules/apps/27-interchain-accounts/host/ibc_module_test.go#L716-#L774) to fail if the `MsgResponse` is no longer included in consensus. +A test has been [written](https://github.com/cosmos/ibc-go/blob/v3.0.0/modules/apps/27-interchain-accounts/host/ibc_module_test.go#L716-#L774) to fail if the `MsgResponse` is no longer included in consensus. ### Error acknowledgements As indicated above, the `abci.ResponseDeliverTx.Code` is determinstic. Upon transaction execution errors, an error acknowledgement should be returned including the abci code. -A test has been [written](https://github.com/cosmos/ibc-go/blob/v3.0.0-beta1/modules/apps/27-interchain-accounts/host/types/ack_test.go#L41-#L82) to fail if the ABCI code is no longer determinstic. +A test has been [written](https://github.com/cosmos/ibc-go/blob/v3.0.0/modules/apps/27-interchain-accounts/host/types/ack_test.go#L41-#L82) to fail if the ABCI code is no longer determinstic. ## Consequences diff --git a/docs/architecture/adr-010-light-clients-as-sdk-modules.md b/docs/architecture/adr-010-light-clients-as-sdk-modules.md index 62186debaf3..0c8f2bb8e6e 100644 --- a/docs/architecture/adr-010-light-clients-as-sdk-modules.md +++ b/docs/architecture/adr-010-light-clients-as-sdk-modules.md @@ -17,7 +17,7 @@ ibc-go has 3 main consumers: Relayers listen and respond to events emitted by ibc-go while IBC light clients and applications are invoked by core IBC. Currently there exists two different approaches to callbacks being invoked by core IBC. -IBC light clients currently are invoked by a `ClientState` and `ConsensusState` interface as defined by [core IBC](https://github.com/cosmos/ibc-go/blob/fb9dedd706e5835cdd607392320df79fcea7ca7f/modules/core/exported/client.go#L36). +IBC light clients currently are invoked by a `ClientState` and `ConsensusState` interface as defined by [core IBC](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/exported/client.go#L36). The 02-client submodule will retrieve the `ClientState` or `ConsensusState` from the IBC store in order to perform callbacks to the light client. This design requires all required information for the light client to function to be stored in the `ClientState` or `ConsensusState` or potentially under metadata keys for a specific client instance. Additional information may be provided by core IBC via the defined interface arguments if that information is generic enough to be useful to all IBC light clients. diff --git a/docs/dev/go-style-guide.md b/docs/dev/go-style-guide.md index 8e50b592030..7cf50598000 100644 --- a/docs/dev/go-style-guide.md +++ b/docs/dev/go-style-guide.md @@ -93,7 +93,7 @@ import ( ## Testing -- Make use of table driven testing where possible and not-cumbersome. Read [this blog post](https://dave.cheney.net/2013/06/09/writing-table-driven-tests-in-go) for more information. See the [tests](https://github.com/cosmos/ibc-go/blob/f24f41ea8a61fe87f6becab94e84de08c8aa9381/modules/apps/transfer/keeper/msg_server_test.go#L11) for [`Transfer`](https://github.com/cosmos/ibc-go/blob/f24f41ea8a61fe87f6becab94e84de08c8aa9381/modules/apps/transfer/keeper/msg_server.go#L15) for an example. +- Make use of table driven testing where possible and not-cumbersome. Read [this blog post](https://dave.cheney.net/2013/06/09/writing-table-driven-tests-in-go) for more information. See the [tests](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/apps/transfer/keeper/msg_server_test.go#L11) for [`Transfer`](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/apps/transfer/keeper/msg_server.go#L15) for an example. - Make use of Testify [assert](https://godoc.org/github.com/stretchr/testify/assert) and [require](https://godoc.org/github.com/stretchr/testify/require). - When using mocks, it is recommended to use Testify [mock](https://pkg.go.dev/github.com/stretchr/testify/mock) along with [Mockery](https://github.com/vektra/mockery) for autogeneration. diff --git a/docs/ibc/light-clients/client-state.md b/docs/ibc/light-clients/client-state.md index b72b73ad217..b9290fbbb03 100644 --- a/docs/ibc/light-clients/client-state.md +++ b/docs/ibc/light-clients/client-state.md @@ -4,7 +4,7 @@ order: 2 # Implementing the `ClientState` interface -Learn how to implement the [`ClientState`](https://github.com/cosmos/ibc-go/blob/v6.0.0/modules/core/exported/client.go#L40) interface. This list of methods described here does not include all methods of the interface. Some methods are explained in detail in the relevant sections of the guide. +Learn how to implement the [`ClientState`](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/exported/client.go#L36) interface. This list of methods described here does not include all methods of the interface. Some methods are explained in detail in the relevant sections of the guide. ## `ClientType` method @@ -18,7 +18,7 @@ The format is created as follows: `ClientType-{N}` where `{N}` is the unique glo ## `Validate` method `Validate` should validate every client state field and should return an error if any value is invalid. The light client -implementer is in charge of determining which checks are required. See the [Tendermint light client implementation](https://github.com/cosmos/ibc-go/blob/v6.0.0/modules/light-clients/07-tendermint/types/client_state.go#L101) as a reference. +implementer is in charge of determining which checks are required. See the [Tendermint light client implementation](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/light-clients/07-tendermint/client_state.go#L111) as a reference. ## `Status` method @@ -29,14 +29,14 @@ implementer is in charge of determining which checks are required. See the [Tend - An `Expired` status indicates that a client is not allowed to be used because it was not updated for longer than the trusting period. - An `Unknown` status indicates that there was an error in determining the status of a client. -All possible `Status` types can be found [here](https://github.com/cosmos/ibc-go/blob/v6.0.0/modules/core/exported/client.go#L26-L36). +All possible `Status` types can be found [here](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/exported/client.go#L22-L32). -This field is returned in the response of the gRPC [`ibc.core.client.v1.Query/ClientStatus`](https://github.com/cosmos/ibc-go/blob/v6.0.0/modules/core/02-client/types/query.pb.go#L665) endpoint. +This field is returned in the response of the gRPC [`ibc.core.client.v1.Query/ClientStatus`](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/02-client/types/query.pb.go#L665) endpoint. ## `ZeroCustomFields` method `ZeroCustomFields` should return a copy of the light client with all client customizable fields with their zero value. It should not mutate the fields of the light client. -This method is used when [scheduling upgrades](https://github.com/cosmos/ibc-go/blob/v6.0.0/modules/core/02-client/keeper/proposal.go#L89). Upgrades are used to upgrade chain specific fields. +This method is used when [scheduling upgrades](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/02-client/keeper/proposal.go#L82). Upgrades are used to upgrade chain specific fields. In the tendermint case, this may be the chain ID or the unbonding period. For more information about client upgrades see the [Handling upgrades](./upgrades.md) section. @@ -50,7 +50,7 @@ This value is used to facilitate timeouts by checking the packet timeout timesta Clients must validate the initial consensus state, and set the initial client state and consensus state in the provided client store. Clients may also store any necessary client-specific metadata. -`Initialize` is called when a [client is created](https://github.com/cosmos/ibc-go/blob/main/modules/core/02-client/keeper/client.go#L32). +`Initialize` is called when a [client is created](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/02-client/keeper/client.go#L30). ## `VerifyMembership` method diff --git a/docs/ibc/light-clients/consensus-state.md b/docs/ibc/light-clients/consensus-state.md index 26166bc41a7..6e33785a7cf 100644 --- a/docs/ibc/light-clients/consensus-state.md +++ b/docs/ibc/light-clients/consensus-state.md @@ -8,7 +8,7 @@ A `ConsensusState` is the snapshot of the counterparty chain, that an IBC client The further development of multiple types of IBC light clients and the difficulties presented by this generalization problem (see [ADR-006](https://github.com/cosmos/ibc-go/blob/main/docs/architecture/adr-006-02-client-refactor.md) for more information about this historical context) led to the design decision of each client keeping track of and set its own `ClientState` and `ConsensusState`, as well as the simplification of client `ConsensusState` updates through the generalized `ClientMessage` interface. -The below [`ConsensusState`](https://github.com/cosmos/ibc-go/blob/main/modules/core/exported/client.go#L134) interface is a generalized interface for the types of information a `ConsensusState` could contain. For a reference `ConsensusState` implementation, please see the [Tendermint light client `ConsensusState`](https://github.com/cosmos/ibc-go/blob/main/modules/light-clients/07-tendermint/consensus_state.go). +The below [`ConsensusState`](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/exported/client.go#L133) interface is a generalized interface for the types of information a `ConsensusState` could contain. For a reference `ConsensusState` implementation, please see the [Tendermint light client `ConsensusState`](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/light-clients/07-tendermint/consensus_state.go). ## `ClientType` method diff --git a/docs/ibc/light-clients/genesis.md b/docs/ibc/light-clients/genesis.md index 234cfa4002e..9a0eb6249b6 100644 --- a/docs/ibc/light-clients/genesis.md +++ b/docs/ibc/light-clients/genesis.md @@ -12,7 +12,7 @@ Learn how to implement the `ExportMetadata` interface {synopsis} `ClientState` instances are provided their own isolated and namespaced client store upon initialisation. `ClientState` implementations may choose to store any amount of arbitrary metadata in order to verify counterparty consensus state and perform light client updates correctly. -The `ExportMetadata` method of the [`ClientState` interface](https://github.com/cosmos/ibc-go/blob/e650be91614ced7be687c30eb42714787a3bbc59/modules/core/exported/client.go) provides light client modules with the ability to persist metadata in genesis exports. +The `ExportMetadata` method of the [`ClientState` interface](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/exported/client.go#L47) provides light client modules with the ability to persist metadata in genesis exports. ```go ExportMetadata(clientStore sdk.KVStore) []GenesisMetadata @@ -31,6 +31,6 @@ type GenesisMetadata interface { This allows `ClientState` instances to retrieve and export any number of key-value pairs which are maintained within the store in their raw `[]byte` form. -When a chain is started with a `genesis.json` file which contains `ClientState` metadata (for example, when performing manual upgrades using an exported `genesis.json`) the `02-client` submodule of core IBC will handle setting the key-value pairs within their respective client stores. [See `02-client` `InitGenesis`](https://github.com/cosmos/ibc-go/blob/02-client-refactor-beta1/modules/core/02-client/genesis.go#L18-L22). +When a chain is started with a `genesis.json` file which contains `ClientState` metadata (for example, when performing manual upgrades using an exported `genesis.json`) the `02-client` submodule of core IBC will handle setting the key-value pairs within their respective client stores. [See `02-client` `InitGenesis`](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/02-client/genesis.go#L18-L22). -Please refer to the [Tendermint light client implementation](https://github.com/cosmos/ibc-go/blob/02-client-refactor-beta1/modules/light-clients/07-tendermint/genesis.go#L12) for an example. +Please refer to the [Tendermint light client implementation](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/light-clients/07-tendermint/genesis.go#L12) for an example. diff --git a/docs/ibc/light-clients/localhost/integration.md b/docs/ibc/light-clients/localhost/integration.md index a818507f1fd..15a236e2efe 100644 --- a/docs/ibc/light-clients/localhost/integration.md +++ b/docs/ibc/light-clients/localhost/integration.md @@ -6,7 +6,7 @@ order: 2 The 09-localhost light client module registers codec types within the core IBC module. This differs from other light client module implementations which are expected to register codec types using the `AppModuleBasic` interface. -The localhost client is added to the 02-client submodule param [`allowed_clients`](https://github.com/cosmos/ibc-go/blob/v7.0.0-rc0/proto/ibc/core/client/v1/client.proto#L102) by default in ibc-go. +The localhost client is added to the 02-client submodule param [`allowed_clients`](https://github.com/cosmos/ibc-go/blob/v7.0.0/proto/ibc/core/client/v1/client.proto#L102) by default in ibc-go. ```go var ( diff --git a/docs/ibc/light-clients/overview.md b/docs/ibc/light-clients/overview.md index a06ae4afa31..b5d973f79a2 100644 --- a/docs/ibc/light-clients/overview.md +++ b/docs/ibc/light-clients/overview.md @@ -54,11 +54,11 @@ The methods which make up this interface are detailed at a more granular level i ### `Height` `Height` defines a monotonically increasing sequence number which provides ordering of consensus state data persisted through client updates. -IBC light client module developers are expected to use the [concrete type](https://github.com/cosmos/ibc-go/tree/02-client-refactor-beta1/proto/ibc/core/client/v1/client.proto#L89) provided by the `02-client` submodule. This implements the expectations required by the [`Height`](https://github.com/cosmos/ibc-go/blob/02-client-refactor-beta1/modules/core/exported/client.go#L157) interface defined in `modules/core/exported/client.go`. +IBC light client module developers are expected to use the [concrete type](https://github.com/cosmos/ibc-go/tree/02-client-refactor-beta1/proto/ibc/core/client/v1/client.proto#L89) provided by the `02-client` submodule. This implements the expectations required by the [`Height`](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/exported/client.go#L156) interface defined in `modules/core/exported/client.go`. ### `ClientMessage` -`ClientMessage` refers to the interface type [`ClientMessage`](https://github.com/cosmos/ibc-go/tree/02-client-refactor-beta1/modules/core/exported/client.go#L148) used for performing updates to a `ClientState` stored on chain. +`ClientMessage` refers to the interface type [`ClientMessage`](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/exported/client.go#L147) used for performing updates to a `ClientState` stored on chain. This may be any concrete type which produces a change in state to the IBC client when verified. The following are considered as valid update scenarios: diff --git a/docs/ibc/light-clients/proofs.md b/docs/ibc/light-clients/proofs.md index fa4e5a84126..acb7f82ed1e 100644 --- a/docs/ibc/light-clients/proofs.md +++ b/docs/ibc/light-clients/proofs.md @@ -28,7 +28,7 @@ In some cases, there is a necessity to "mock" non-existence proofs if the counte The state verification functions for all IBC data types have been consolidated into two generic methods, `VerifyMembership` and `VerifyNonMembership`. -From the [`ClientState` interface definition](https://github.com/cosmos/ibc-go/blob/e650be91614ced7be687c30eb42714787a3bbc59/modules/core/exported/client.go#L68-L91), we find: +From the [`ClientState` interface definition](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/exported/client.go#L68-L91), we find: ```go VerifyMembership( @@ -59,4 +59,4 @@ VerifyNonMembership( Both are expected to be provided with a standardised key path, `exported.Path`, as defined in [ICS-24 host requirements](https://github.com/cosmos/ibc/tree/main/spec/core/ics-024-host-requirements). Membership verification requires callers to provide the value marshalled as `[]byte`. Delay period values should be zero for non-packet processing verification. A zero proof height is now allowed by core IBC and may be passed into `VerifyMembership` and `VerifyNonMembership`. Light clients are responsible for returning an error if a zero proof height is invalid behaviour. -Please refer to the [ICS-23 implementation](https://github.com/cosmos/ibc-go/blob/e093d85b533ab3572b32a7de60b88a0816bed4af/modules/core/23-commitment/types/merkle.go#L131-L205) for a concrete example. +Please refer to the [ICS-23 implementation](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/23-commitment/types/merkle.go#L131-L205) for a concrete example. diff --git a/docs/ibc/light-clients/proposals.md b/docs/ibc/light-clients/proposals.md index c2a0a57adef..8247cc8fe38 100644 --- a/docs/ibc/light-clients/proposals.md +++ b/docs/ibc/light-clients/proposals.md @@ -8,7 +8,7 @@ It is possible to update the client with the state of the substitute client thro ## Implementing `CheckSubstituteAndUpdateState` -In the [`ClientState`interface](https://github.com/cosmos/ibc-go/blob/e650be91614ced7be687c30eb42714787a3bbc59/modules/core/exported/client.go), we find: +In the [`ClientState`interface](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/exported/client.go), we find: ```go // CheckSubstituteAndUpdateState must verify that the provided substitute may be used to update the subject client. @@ -24,9 +24,9 @@ CheckSubstituteAndUpdateState( Prior to updating, this function must verify that: -- the substitute client is the same type as the subject client. For a reference implementation, please see the [Tendermint light client](https://github.com/cosmos/ibc-go/blob/02-client-refactor-beta1/modules/light-clients/07-tendermint/proposal_handle.go#L32). -- the provided substitute may be used to update the subject client. This may mean that certain parameters must remain unaltered. For example, a [valid substitute Tendermint light client](https://github.com/cosmos/ibc-go/blob/02-client-refactor-beta1/modules/light-clients/07-tendermint/proposal_handle.go#L84) must NOT change the chain ID, trust level, max clock drift, unbonding period, proof specs or upgrade path. Please note that `AllowUpdateAfterMisbehaviour` and `AllowUpdateAfterExpiry` have been deprecated (see ADR 026 for more information). +- the substitute client is the same type as the subject client. For a reference implementation, please see the [Tendermint light client](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/light-clients/07-tendermint/proposal_handle.go#L32). +- the provided substitute may be used to update the subject client. This may mean that certain parameters must remain unaltered. For example, a [valid substitute Tendermint light client](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/light-clients/07-tendermint/proposal_handle.go#L84) must NOT change the chain ID, trust level, max clock drift, unbonding period, proof specs or upgrade path. Please note that `AllowUpdateAfterMisbehaviour` and `AllowUpdateAfterExpiry` have been deprecated (see ADR 026 for more information). -After these checks are performed, the function must [set the updated client and consensus states](https://github.com/cosmos/ibc-go/blob/02-client-refactor-beta1/modules/light-clients/07-tendermint/proposal_handle.go#L77) within the client store for the subject client. +After these checks are performed, the function must [set the updated client and consensus states](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/light-clients/07-tendermint/proposal_handle.go#L77) within the client store for the subject client. -Please refer to the [Tendermint light client implementation](https://github.com/cosmos/ibc-go/blob/02-client-refactor-beta1/modules/light-clients/07-tendermint/proposal_handle.go#L27) for reference. +Please refer to the [Tendermint light client implementation](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/light-clients/07-tendermint/proposal_handle.go#L27) for reference. diff --git a/docs/ibc/light-clients/setup.md b/docs/ibc/light-clients/setup.md index 84d5a924fff..9e97ab22de5 100644 --- a/docs/ibc/light-clients/setup.md +++ b/docs/ibc/light-clients/setup.md @@ -12,7 +12,7 @@ Finally, a succinct rundown is given of the remaining steps to make the light cl ## Configuring a light client module -An IBC light client module must implement the [`AppModuleBasic`](https://github.com/cosmos/cosmos-sdk/blob/main/types/module/module.go#L50) interface in order to register its concrete types against the core IBC interfaces defined in `modules/core/exported`. This is accomplished via the `RegisterInterfaces` method which provides the light client module with the opportunity to register codec types using the chain's `InterfaceRegistry`. Please refer to the [`07-tendermint` codec registration](https://github.com/cosmos/ibc-go/blob/02-client-refactor-beta1/modules/light-clients/07-tendermint/codec.go#L11). +An IBC light client module must implement the [`AppModuleBasic`](https://github.com/cosmos/cosmos-sdk/blob/main/types/module/module.go#L50) interface in order to register its concrete types against the core IBC interfaces defined in `modules/core/exported`. This is accomplished via the `RegisterInterfaces` method which provides the light client module with the opportunity to register codec types using the chain's `InterfaceRegistry`. Please refer to the [`07-tendermint` codec registration](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/light-clients/07-tendermint/codec.go#L11). The `AppModuleBasic` interface may also be leveraged to install custom CLI handlers for light client module users. Light client modules can safely no-op for interface methods which it does not wish to implement. @@ -77,7 +77,7 @@ See below for a list of IBC relayer implementations: - [informalsystems/hermes](https://github.com/informalsystems/hermes) - [confio/ts-relayer](https://github.com/confio/ts-relayer) -Stateless checks are performed within the [`ValidateBasic`](https://github.com/cosmos/ibc-go/blob/02-client-refactor-beta1/modules/core/02-client/types/msgs.go#L48) method of `MsgCreateClient`. +Stateless checks are performed within the [`ValidateBasic`](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/02-client/types/msgs.go#L48) method of `MsgCreateClient`. ```protobuf // MsgCreateClient defines a message to create an IBC client @@ -95,11 +95,11 @@ message MsgCreateClient { } ``` -Leveraging protobuf `Any` encoding allows core IBC to [unpack](https://github.com/cosmos/ibc-go/blob/02-client-refactor-beta1/modules/core/keeper/msg_server.go#L28-L36) both the `ClientState` and `ConsensusState` into their respective interface types registered previously using the light client module's `RegisterInterfaces` method. +Leveraging protobuf `Any` encoding allows core IBC to [unpack](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/keeper/msg_server.go#L28-L36) both the `ClientState` and `ConsensusState` into their respective interface types registered previously using the light client module's `RegisterInterfaces` method. -Within the `02-client` submodule, the [`ClientState` is then initialized](https://github.com/cosmos/ibc-go/blob/02-client-refactor-beta1/modules/core/02-client/keeper/client.go#L30-L34) with its own isolated key-value store, namespaced using a unique client identifier. +Within the `02-client` submodule, the [`ClientState` is then initialized](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/02-client/keeper/client.go#L30-L32) with its own isolated key-value store, namespaced using a unique client identifier. -In order to successfully create an IBC client using a new client type, it [must be supported](https://github.com/cosmos/ibc-go/blob/02-client-refactor-beta1/modules/core/02-client/keeper/client.go#L18-L24). Light client support in IBC is gated by on-chain governance. The allow list may be updated by submitting a new governance proposal to update the `02-client` parameter `AllowedClients`. +In order to successfully create an IBC client using a new client type, it [must be supported](https://github.com/cosmos/ibc-go/blob/v7.0.0/modules/core/02-client/keeper/client.go#L19-L25). Light client support in IBC is gated by on-chain governance. The allow list may be updated by submitting a new governance proposal to update the `02-client` parameter `AllowedClients`.