diff --git a/.github/compatibility-test-matrices/main/client-chain-a.json b/.github/compatibility-test-matrices/main/client-chain-a.json
index 0eaf6878d19..e4e3117a16e 100644
--- a/.github/compatibility-test-matrices/main/client-chain-a.json
+++ b/.github/compatibility-test-matrices/main/client-chain-a.json
@@ -4,6 +4,8 @@
],
"chain-b": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/main/client-chain-b.json b/.github/compatibility-test-matrices/main/client-chain-b.json
index 3c6a2a38426..ca52092c2cd 100644
--- a/.github/compatibility-test-matrices/main/client-chain-b.json
+++ b/.github/compatibility-test-matrices/main/client-chain-b.json
@@ -1,6 +1,8 @@
{
"chain-a": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -17,8 +19,7 @@
],
"test": [
"TestClientUpdateProposal_Succeeds",
- "TestClient_Update_Misbehaviour",
- "TestAllowedClientsParam"
+ "TestClient_Update_Misbehaviour"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/main/connection-chain-a.json b/.github/compatibility-test-matrices/main/connection-chain-a.json
index 4f0f460b99c..7a6ae45abf7 100644
--- a/.github/compatibility-test-matrices/main/connection-chain-a.json
+++ b/.github/compatibility-test-matrices/main/connection-chain-a.json
@@ -4,6 +4,8 @@
],
"chain-b": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/main/connection-chain-b.json b/.github/compatibility-test-matrices/main/connection-chain-b.json
index c061cce6e5c..cc3078ab296 100644
--- a/.github/compatibility-test-matrices/main/connection-chain-b.json
+++ b/.github/compatibility-test-matrices/main/connection-chain-b.json
@@ -1,6 +1,8 @@
{
"chain-a": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/main/ica-chain-a.json b/.github/compatibility-test-matrices/main/ica-chain-a.json
index 78c47df79bc..242ef7b73ac 100644
--- a/.github/compatibility-test-matrices/main/ica-chain-a.json
+++ b/.github/compatibility-test-matrices/main/ica-chain-a.json
@@ -4,6 +4,8 @@
],
"chain-b": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1"
@@ -15,8 +17,7 @@
"TestMsgSendTx_SuccessfulTransfer",
"TestMsgSendTx_FailedTransfer_InsufficientFunds",
"TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA",
- "TestControllerEnabledParam",
- "TestHostEnabledParam"
+ "TestControllerEnabledParam"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/main/ica-chain-b.json b/.github/compatibility-test-matrices/main/ica-chain-b.json
index 16b4b62481c..1f19b42bcfa 100644
--- a/.github/compatibility-test-matrices/main/ica-chain-b.json
+++ b/.github/compatibility-test-matrices/main/ica-chain-b.json
@@ -1,6 +1,8 @@
{
"chain-a": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1"
@@ -15,7 +17,6 @@
"TestMsgSendTx_SuccessfulTransfer",
"TestMsgSendTx_FailedTransfer_InsufficientFunds",
"TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA",
- "TestControllerEnabledParam",
"TestHostEnabledParam"
],
"relayer-type": [
diff --git a/.github/compatibility-test-matrices/main/ica-gov-chain-a.json b/.github/compatibility-test-matrices/main/ica-gov-chain-a.json
index f567466b318..0382cb47da6 100644
--- a/.github/compatibility-test-matrices/main/ica-gov-chain-a.json
+++ b/.github/compatibility-test-matrices/main/ica-gov-chain-a.json
@@ -4,6 +4,8 @@
],
"chain-b": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1"
diff --git a/.github/compatibility-test-matrices/main/ica-gov-chain-b.json b/.github/compatibility-test-matrices/main/ica-gov-chain-b.json
index 378e90b8fc2..e7db95d76b6 100644
--- a/.github/compatibility-test-matrices/main/ica-gov-chain-b.json
+++ b/.github/compatibility-test-matrices/main/ica-gov-chain-b.json
@@ -1,6 +1,8 @@
{
"chain-a": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1"
diff --git a/.github/compatibility-test-matrices/main/ica-groups-chain-a.json b/.github/compatibility-test-matrices/main/ica-groups-chain-a.json
index 8bdc00c2733..f2467492085 100644
--- a/.github/compatibility-test-matrices/main/ica-groups-chain-a.json
+++ b/.github/compatibility-test-matrices/main/ica-groups-chain-a.json
@@ -4,6 +4,8 @@
],
"chain-b": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1"
diff --git a/.github/compatibility-test-matrices/main/ica-groups-chain-b.json b/.github/compatibility-test-matrices/main/ica-groups-chain-b.json
index 25b61baeed1..9bf334cc98c 100644
--- a/.github/compatibility-test-matrices/main/ica-groups-chain-b.json
+++ b/.github/compatibility-test-matrices/main/ica-groups-chain-b.json
@@ -1,6 +1,8 @@
{
"chain-a": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1"
diff --git a/.github/compatibility-test-matrices/main/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/main/incentivized-ica-chain-a.json
index b4718bd0ac1..7d7985d0348 100644
--- a/.github/compatibility-test-matrices/main/incentivized-ica-chain-a.json
+++ b/.github/compatibility-test-matrices/main/incentivized-ica-chain-a.json
@@ -4,6 +4,8 @@
],
"chain-b": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1"
diff --git a/.github/compatibility-test-matrices/main/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/main/incentivized-ica-chain-b.json
index 035eb6484fb..7cf5eb8282f 100644
--- a/.github/compatibility-test-matrices/main/incentivized-ica-chain-b.json
+++ b/.github/compatibility-test-matrices/main/incentivized-ica-chain-b.json
@@ -1,6 +1,8 @@
{
"chain-a": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1"
diff --git a/.github/compatibility-test-matrices/main/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/main/incentivized-transfer-chain-a.json
index 469654f664a..c85c0f86b05 100644
--- a/.github/compatibility-test-matrices/main/incentivized-transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/main/incentivized-transfer-chain-a.json
@@ -4,6 +4,8 @@
],
"chain-b": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/main/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/main/incentivized-transfer-chain-b.json
index 7dae65428b3..ab2b0f3edd9 100644
--- a/.github/compatibility-test-matrices/main/incentivized-transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/main/incentivized-transfer-chain-b.json
@@ -1,6 +1,8 @@
{
"chain-a": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/main/localhost-ica-chain-a.json b/.github/compatibility-test-matrices/main/localhost-ica-chain-a.json
index c61c057495e..4ac2f14a854 100644
--- a/.github/compatibility-test-matrices/main/localhost-ica-chain-a.json
+++ b/.github/compatibility-test-matrices/main/localhost-ica-chain-a.json
@@ -1,6 +1,8 @@
{
"chain-a": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0"
],
"chain-b": [
diff --git a/.github/compatibility-test-matrices/main/localhost-ica-chain-b.json b/.github/compatibility-test-matrices/main/localhost-ica-chain-b.json
index eac6016978a..affc10e0f0f 100644
--- a/.github/compatibility-test-matrices/main/localhost-ica-chain-b.json
+++ b/.github/compatibility-test-matrices/main/localhost-ica-chain-b.json
@@ -4,6 +4,8 @@
],
"chain-b": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0"
],
"entrypoint": [
diff --git a/.github/compatibility-test-matrices/main/localhost-transfer-chain-a.json b/.github/compatibility-test-matrices/main/localhost-transfer-chain-a.json
index 0cbcc646b86..54959a5fd1b 100644
--- a/.github/compatibility-test-matrices/main/localhost-transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/main/localhost-transfer-chain-a.json
@@ -1,6 +1,8 @@
{
"chain-a": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0"
],
"chain-b": [
diff --git a/.github/compatibility-test-matrices/main/localhost-transfer-chain-b.json b/.github/compatibility-test-matrices/main/localhost-transfer-chain-b.json
index 989ea78bf56..4d8aae60ead 100644
--- a/.github/compatibility-test-matrices/main/localhost-transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/main/localhost-transfer-chain-b.json
@@ -4,6 +4,8 @@
],
"chain-b": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0"
],
"entrypoint": [
diff --git a/.github/compatibility-test-matrices/main/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/main/transfer-authz-chain-a.json
index 191d8ed574d..358ae6ece85 100644
--- a/.github/compatibility-test-matrices/main/transfer-authz-chain-a.json
+++ b/.github/compatibility-test-matrices/main/transfer-authz-chain-a.json
@@ -4,6 +4,8 @@
],
"chain-b": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0"
],
diff --git a/.github/compatibility-test-matrices/main/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/main/transfer-authz-chain-b.json
index c0571b51a2a..fd8f40827f1 100644
--- a/.github/compatibility-test-matrices/main/transfer-authz-chain-b.json
+++ b/.github/compatibility-test-matrices/main/transfer-authz-chain-b.json
@@ -1,6 +1,8 @@
{
"chain-a": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0"
],
diff --git a/.github/compatibility-test-matrices/main/transfer-chain-a.json b/.github/compatibility-test-matrices/main/transfer-chain-a.json
index d36acfe4f7f..95ebdcbbbe5 100644
--- a/.github/compatibility-test-matrices/main/transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/main/transfer-chain-a.json
@@ -4,6 +4,8 @@
],
"chain-b": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/main/transfer-chain-b.json b/.github/compatibility-test-matrices/main/transfer-chain-b.json
index a79e801bf89..cb6d22c3624 100644
--- a/.github/compatibility-test-matrices/main/transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/main/transfer-chain-b.json
@@ -1,6 +1,8 @@
{
"chain-a": [
"main",
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -19,9 +21,7 @@
"TestMsgTransfer_Succeeds_Nonincentivized",
"TestMsgTransfer_Fails_InvalidAddress",
"TestMsgTransfer_Timeout_Nonincentivized",
- "TestMsgTransfer_WithMemo",
- "TestSendEnabledParam",
- "TestReceiveEnabledParam"
+ "TestMsgTransfer_WithMemo"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v4.4.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v4.4.x/incentivized-transfer-chain-a.json
index 7023c3be72a..4e2f9c845f7 100644
--- a/.github/compatibility-test-matrices/release-v4.4.x/incentivized-transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v4.4.x/incentivized-transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v4.4.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v4.4.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v4.4.x/incentivized-transfer-chain-b.json
index 63c86603f93..98078a9f1b4 100644
--- a/.github/compatibility-test-matrices/release-v4.4.x/incentivized-transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v4.4.x/incentivized-transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v4.4.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v4.4.x/transfer-chain-a.json
index d083610285a..98e3d645b9f 100644
--- a/.github/compatibility-test-matrices/release-v4.4.x/transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v4.4.x/transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v4.4.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v4.4.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v4.4.x/transfer-chain-b.json
index 4e914021d18..82a1906dca7 100644
--- a/.github/compatibility-test-matrices/release-v4.4.x/transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v4.4.x/transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -18,9 +20,7 @@
"TestMsgTransfer_Succeeds_Nonincentivized",
"TestMsgTransfer_Fails_InvalidAddress",
"TestMsgTransfer_Timeout_Nonincentivized",
- "TestMsgTransfer_WithMemo",
- "TestSendEnabledParam",
- "TestReceiveEnabledParam"
+ "TestMsgTransfer_WithMemo"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v5.2.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v5.2.x/incentivized-transfer-chain-a.json
index 8bd2d068c56..78695deeb48 100644
--- a/.github/compatibility-test-matrices/release-v5.2.x/incentivized-transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v5.2.x/incentivized-transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v5.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v5.2.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v5.2.x/incentivized-transfer-chain-b.json
index 285c5c46fef..dea53436d6e 100644
--- a/.github/compatibility-test-matrices/release-v5.2.x/incentivized-transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v5.2.x/incentivized-transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v5.2.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v5.2.x/transfer-chain-a.json
index 1f00b96ae3e..d2d9ae7320e 100644
--- a/.github/compatibility-test-matrices/release-v5.2.x/transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v5.2.x/transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v5.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v5.2.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v5.2.x/transfer-chain-b.json
index 87fac524ad9..b104f03d9eb 100644
--- a/.github/compatibility-test-matrices/release-v5.2.x/transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v5.2.x/transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -18,9 +20,7 @@
"TestMsgTransfer_Succeeds_Nonincentivized",
"TestMsgTransfer_Fails_InvalidAddress",
"TestMsgTransfer_Timeout_Nonincentivized",
- "TestMsgTransfer_WithMemo",
- "TestSendEnabledParam",
- "TestReceiveEnabledParam"
+ "TestMsgTransfer_WithMemo"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v5.3.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v5.3.x/incentivized-transfer-chain-a.json
index 92534a79fae..7b351ddda5d 100644
--- a/.github/compatibility-test-matrices/release-v5.3.x/incentivized-transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v5.3.x/incentivized-transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v5.3.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v5.3.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v5.3.x/incentivized-transfer-chain-b.json
index 4b0f7d5f08c..d0309af05e9 100644
--- a/.github/compatibility-test-matrices/release-v5.3.x/incentivized-transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v5.3.x/incentivized-transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v5.3.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v5.3.x/transfer-chain-a.json
index 2b8cbb67159..09e98433329 100644
--- a/.github/compatibility-test-matrices/release-v5.3.x/transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v5.3.x/transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v5.3.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v5.3.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v5.3.x/transfer-chain-b.json
index 9b5239c952a..9ef0e6e5046 100644
--- a/.github/compatibility-test-matrices/release-v5.3.x/transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v5.3.x/transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -18,9 +20,7 @@
"TestMsgTransfer_Succeeds_Nonincentivized",
"TestMsgTransfer_Fails_InvalidAddress",
"TestMsgTransfer_Timeout_Nonincentivized",
- "TestMsgTransfer_WithMemo",
- "TestSendEnabledParam",
- "TestReceiveEnabledParam"
+ "TestMsgTransfer_WithMemo"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/client-chain-a.json b/.github/compatibility-test-matrices/release-v6.1.x/client-chain-a.json
index 2960e74a99a..24ea765b887 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/client-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/client-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.1.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/client-chain-b.json b/.github/compatibility-test-matrices/release-v6.1.x/client-chain-b.json
index baa8be197f3..d423dabf97b 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/client-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/client-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -16,8 +18,7 @@
],
"test": [
"TestClientUpdateProposal_Succeeds",
- "TestClient_Update_Misbehaviour",
- "TestAllowedClientsParam"
+ "TestClient_Update_Misbehaviour"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/connection-chain-a.json b/.github/compatibility-test-matrices/release-v6.1.x/connection-chain-a.json
index 72d0db5145b..5a87ea7fe02 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/connection-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/connection-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.1.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/connection-chain-b.json b/.github/compatibility-test-matrices/release-v6.1.x/connection-chain-b.json
index ef85146f8e2..2181f027fef 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/connection-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/connection-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v6.1.x/ica-chain-a.json
index e147730f594..64c479f8557 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/ica-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/ica-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.1.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -15,8 +17,7 @@
"TestMsgSendTx_SuccessfulTransfer",
"TestMsgSendTx_FailedTransfer_InsufficientFunds",
"TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA",
- "TestControllerEnabledParam",
- "TestHostEnabledParam"
+ "TestControllerEnabledParam"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v6.1.x/ica-chain-b.json
index c6c006f3fda..eeaa14c094b 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/ica-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/ica-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -15,7 +17,6 @@
"TestMsgSendTx_SuccessfulTransfer",
"TestMsgSendTx_FailedTransfer_InsufficientFunds",
"TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA",
- "TestControllerEnabledParam",
"TestHostEnabledParam"
],
"relayer-type": [
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v6.1.x/ica-gov-chain-a.json
index 106a3cb0e8e..4477de4e371 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/ica-gov-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/ica-gov-chain-a.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v6.1.x/ica-gov-chain-b.json
index 1b9aac5f7aa..82556199ee9 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/ica-gov-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/ica-gov-chain-b.json
@@ -3,6 +3,8 @@
"release-v6.1.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v6.1.x/ica-groups-chain-a.json
index 4438aa0ddb8..9d646b0e075 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/ica-groups-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/ica-groups-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.1.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v6.1.x/ica-groups-chain-b.json
index 259f2481717..2827a992999 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/ica-groups-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/ica-groups-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v6.1.x/incentivized-ica-chain-a.json
index 211985966a5..a5c0ef70a64 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/incentivized-ica-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/incentivized-ica-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.1.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v6.1.x/incentivized-ica-chain-b.json
index 6ac3f47322e..195ead77f69 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/incentivized-ica-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/incentivized-ica-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v6.1.x/incentivized-transfer-chain-a.json
index 202225c01e0..472e0be8b04 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/incentivized-transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/incentivized-transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.1.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v6.1.x/incentivized-transfer-chain-b.json
index fc1147ddf6f..a8cfd515ce9 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/incentivized-transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/incentivized-transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v6.1.x/transfer-chain-a.json
index 0498b79e1e1..7a320050b41 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.1.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.1.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v6.1.x/transfer-chain-b.json
index 9e3fcf1f393..23076bd8781 100644
--- a/.github/compatibility-test-matrices/release-v6.1.x/transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.1.x/transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -18,9 +20,7 @@
"TestMsgTransfer_Succeeds_Nonincentivized",
"TestMsgTransfer_Fails_InvalidAddress",
"TestMsgTransfer_Timeout_Nonincentivized",
- "TestMsgTransfer_WithMemo",
- "TestSendEnabledParam",
- "TestReceiveEnabledParam"
+ "TestMsgTransfer_WithMemo"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/client-chain-a.json b/.github/compatibility-test-matrices/release-v6.2.x/client-chain-a.json
index ae3573f78f4..1ba47832a7b 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/client-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/client-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/client-chain-b.json b/.github/compatibility-test-matrices/release-v6.2.x/client-chain-b.json
index c55a889e833..d55679c29b3 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/client-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/client-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -16,8 +18,7 @@
],
"test": [
"TestClientUpdateProposal_Succeeds",
- "TestClient_Update_Misbehaviour",
- "TestAllowedClientsParam"
+ "TestClient_Update_Misbehaviour"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/connection-chain-a.json b/.github/compatibility-test-matrices/release-v6.2.x/connection-chain-a.json
index 097b1ffb12d..18819103995 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/connection-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/connection-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/connection-chain-b.json b/.github/compatibility-test-matrices/release-v6.2.x/connection-chain-b.json
index 2b364e92d88..ccd85d49534 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/connection-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/connection-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v6.2.x/ica-chain-a.json
index ed1fbd2c647..6776223179e 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/ica-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/ica-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -15,8 +17,7 @@
"TestMsgSendTx_SuccessfulTransfer",
"TestMsgSendTx_FailedTransfer_InsufficientFunds",
"TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA",
- "TestControllerEnabledParam",
- "TestHostEnabledParam"
+ "TestControllerEnabledParam"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v6.2.x/ica-chain-b.json
index b410beaef75..f93daba4ad2 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/ica-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/ica-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -15,7 +17,6 @@
"TestMsgSendTx_SuccessfulTransfer",
"TestMsgSendTx_FailedTransfer_InsufficientFunds",
"TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA",
- "TestControllerEnabledParam",
"TestHostEnabledParam"
],
"relayer-type": [
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v6.2.x/ica-gov-chain-a.json
index da53a786d46..269284901cc 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/ica-gov-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/ica-gov-chain-a.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v6.2.x/ica-gov-chain-b.json
index dd22b7a1b21..075faa33827 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/ica-gov-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/ica-gov-chain-b.json
@@ -3,6 +3,8 @@
"release-v6.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v6.2.x/ica-groups-chain-a.json
index 2598e05718e..ce534e047d5 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/ica-groups-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/ica-groups-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v6.2.x/ica-groups-chain-b.json
index 3b526ae6d5c..deda0c1276f 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/ica-groups-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/ica-groups-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v6.2.x/incentivized-ica-chain-a.json
index 5be6e96edf7..055b4ee2a4b 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/incentivized-ica-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/incentivized-ica-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v6.2.x/incentivized-ica-chain-b.json
index cb15346c12d..7c973052fd5 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/incentivized-ica-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/incentivized-ica-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v6.2.x/incentivized-transfer-chain-a.json
index 4ecb08495c0..3efa377c4ee 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/incentivized-transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/incentivized-transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v6.2.x/incentivized-transfer-chain-b.json
index 7a9c24f5fef..9c1347cbcc8 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/incentivized-transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/incentivized-transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v6.2.x/transfer-authz-chain-a.json
index 091e07ad29b..8ca6b24f0ae 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/transfer-authz-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/transfer-authz-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"release-v6.2.x"
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v6.2.x/transfer-authz-chain-b.json
index 6baeaeb6d18..642830fdcec 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/transfer-authz-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/transfer-authz-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"release-v6.2.x"
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v6.2.x/transfer-chain-a.json
index 4c72776965f..413b62fe45c 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v6.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v6.2.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v6.2.x/transfer-chain-b.json
index d8ed982316b..c96a97c8198 100644
--- a/.github/compatibility-test-matrices/release-v6.2.x/transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v6.2.x/transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -18,9 +20,7 @@
"TestMsgTransfer_Succeeds_Nonincentivized",
"TestMsgTransfer_Fails_InvalidAddress",
"TestMsgTransfer_Timeout_Nonincentivized",
- "TestMsgTransfer_WithMemo",
- "TestSendEnabledParam",
- "TestReceiveEnabledParam"
+ "TestMsgTransfer_WithMemo"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/client-chain-a.json b/.github/compatibility-test-matrices/release-v7.2.x/client-chain-a.json
index e332f3c82f5..7c8d51cc7b8 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/client-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/client-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/client-chain-b.json b/.github/compatibility-test-matrices/release-v7.2.x/client-chain-b.json
index c7611def032..00890b0ee3b 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/client-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/client-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -16,8 +18,7 @@
],
"test": [
"TestClientUpdateProposal_Succeeds",
- "TestClient_Update_Misbehaviour",
- "TestAllowedClientsParam"
+ "TestClient_Update_Misbehaviour"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/connection-chain-a.json b/.github/compatibility-test-matrices/release-v7.2.x/connection-chain-a.json
index 6a9b0366210..c6043e371c6 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/connection-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/connection-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/connection-chain-b.json b/.github/compatibility-test-matrices/release-v7.2.x/connection-chain-b.json
index f63e9c9fdcb..507d96fb5cf 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/connection-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/connection-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.2.x/ica-chain-a.json
index ea2fd7e3604..cceaa7599e0 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/ica-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/ica-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -15,8 +17,7 @@
"TestMsgSendTx_SuccessfulTransfer",
"TestMsgSendTx_FailedTransfer_InsufficientFunds",
"TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA",
- "TestControllerEnabledParam",
- "TestHostEnabledParam"
+ "TestControllerEnabledParam"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.2.x/ica-chain-b.json
index 0a3d595596c..7f341f0b2bc 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/ica-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/ica-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -15,7 +17,6 @@
"TestMsgSendTx_SuccessfulTransfer",
"TestMsgSendTx_FailedTransfer_InsufficientFunds",
"TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA",
- "TestControllerEnabledParam",
"TestHostEnabledParam"
],
"relayer-type": [
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v7.2.x/ica-gov-chain-a.json
index a2ec3b15aa0..1444dd87d39 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/ica-gov-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/ica-gov-chain-a.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v7.2.x/ica-gov-chain-b.json
index 96ee69466e1..dd99997d894 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/ica-gov-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/ica-gov-chain-b.json
@@ -3,6 +3,8 @@
"release-v7.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v7.2.x/ica-groups-chain-a.json
index e19f069a7ed..1c7e25d7bd1 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/ica-groups-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/ica-groups-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v7.2.x/ica-groups-chain-b.json
index 0da5eab20a3..6184318a48b 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/ica-groups-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/ica-groups-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.2.x/incentivized-ica-chain-a.json
index dc5f83f4955..3f32c000d4f 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/incentivized-ica-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/incentivized-ica-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.2.x/incentivized-ica-chain-b.json
index 5a6f63ef085..d590f0b93f5 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/incentivized-ica-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/incentivized-ica-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.2.x/incentivized-transfer-chain-a.json
index ed4a53dce77..015b70a4204 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/incentivized-transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/incentivized-transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.2.x/incentivized-transfer-chain-b.json
index 5a898abe9f9..2d823476dab 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/incentivized-transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/incentivized-transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v7.2.x/transfer-authz-chain-a.json
index ff463e840f8..1ee3ce91fc5 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/transfer-authz-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/transfer-authz-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"release-v7.2.x"
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v7.2.x/transfer-authz-chain-b.json
index 9801cf24029..2876ebc0cf9 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/transfer-authz-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/transfer-authz-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"release-v7.2.x"
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.2.x/transfer-chain-a.json
index ebab359db0e..a01b47655d2 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.2.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.2.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.2.x/transfer-chain-b.json
index b44f5c948fa..8c603b2cfc8 100644
--- a/.github/compatibility-test-matrices/release-v7.2.x/transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.2.x/transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -18,9 +20,7 @@
"TestMsgTransfer_Succeeds_Nonincentivized",
"TestMsgTransfer_Fails_InvalidAddress",
"TestMsgTransfer_Timeout_Nonincentivized",
- "TestMsgTransfer_WithMemo",
- "TestSendEnabledParam",
- "TestReceiveEnabledParam"
+ "TestMsgTransfer_WithMemo"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/client-chain-a.json b/.github/compatibility-test-matrices/release-v7.3.x/client-chain-a.json
index 5152a84a183..29b125aace1 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/client-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/client-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.3.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/client-chain-b.json b/.github/compatibility-test-matrices/release-v7.3.x/client-chain-b.json
index 8b07ed9573a..0c8950e2eda 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/client-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/client-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -16,8 +18,7 @@
],
"test": [
"TestClientUpdateProposal_Succeeds",
- "TestClient_Update_Misbehaviour",
- "TestAllowedClientsParam"
+ "TestClient_Update_Misbehaviour"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/connection-chain-a.json b/.github/compatibility-test-matrices/release-v7.3.x/connection-chain-a.json
index 06f5d9fd064..590c624420c 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/connection-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/connection-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.3.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/connection-chain-b.json b/.github/compatibility-test-matrices/release-v7.3.x/connection-chain-b.json
index 594fd11a88d..2a7a7ebf86a 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/connection-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/connection-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.3.x/ica-chain-a.json
index 980dca4f7e2..1a7ea385156 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/ica-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/ica-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.3.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -15,8 +17,7 @@
"TestMsgSendTx_SuccessfulTransfer",
"TestMsgSendTx_FailedTransfer_InsufficientFunds",
"TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA",
- "TestControllerEnabledParam",
- "TestHostEnabledParam"
+ "TestControllerEnabledParam"
],
"relayer-type": [
"rly"
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.3.x/ica-chain-b.json
index 6325c1bbc43..5c16ffcf638 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/ica-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/ica-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -15,7 +17,6 @@
"TestMsgSendTx_SuccessfulTransfer",
"TestMsgSendTx_FailedTransfer_InsufficientFunds",
"TestMsgSendTx_SuccessfulTransfer_AfterReopeningICA",
- "TestControllerEnabledParam",
"TestHostEnabledParam"
],
"relayer-type": [
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/ica-gov-chain-a.json b/.github/compatibility-test-matrices/release-v7.3.x/ica-gov-chain-a.json
index 7b3208bc8cc..e3076f40b2d 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/ica-gov-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/ica-gov-chain-a.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/ica-gov-chain-b.json b/.github/compatibility-test-matrices/release-v7.3.x/ica-gov-chain-b.json
index a9c94bae130..c0b6910b4c2 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/ica-gov-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/ica-gov-chain-b.json
@@ -3,6 +3,8 @@
"release-v7.3.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/ica-groups-chain-a.json b/.github/compatibility-test-matrices/release-v7.3.x/ica-groups-chain-a.json
index 22da2329d4e..cc5265df281 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/ica-groups-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/ica-groups-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.3.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/ica-groups-chain-b.json b/.github/compatibility-test-matrices/release-v7.3.x/ica-groups-chain-b.json
index e2c23565073..ce508a178c2 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/ica-groups-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/ica-groups-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/incentivized-ica-chain-a.json b/.github/compatibility-test-matrices/release-v7.3.x/incentivized-ica-chain-a.json
index 4b38e89bfb3..1c99ac595af 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/incentivized-ica-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/incentivized-ica-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.3.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/incentivized-ica-chain-b.json b/.github/compatibility-test-matrices/release-v7.3.x/incentivized-ica-chain-b.json
index f5cd7814881..f814939c3ce 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/incentivized-ica-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/incentivized-ica-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/incentivized-transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.3.x/incentivized-transfer-chain-a.json
index b2e544d1bf6..aaa3135a58c 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/incentivized-transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/incentivized-transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.3.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/incentivized-transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.3.x/incentivized-transfer-chain-b.json
index 80874e8149b..6dabe8e1684 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/incentivized-transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/incentivized-transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/transfer-authz-chain-a.json b/.github/compatibility-test-matrices/release-v7.3.x/transfer-authz-chain-a.json
index 3a67b08ef7c..7c7f49e8b7a 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/transfer-authz-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/transfer-authz-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.3.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"release-v7.3.x"
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/transfer-authz-chain-b.json b/.github/compatibility-test-matrices/release-v7.3.x/transfer-authz-chain-b.json
index d66e2ca884c..c2f1e721153 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/transfer-authz-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/transfer-authz-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"release-v7.3.x"
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/transfer-chain-a.json b/.github/compatibility-test-matrices/release-v7.3.x/transfer-chain-a.json
index 8d36d65f938..9a345c352f9 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/transfer-chain-a.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/transfer-chain-a.json
@@ -3,6 +3,8 @@
"release-v7.3.x"
],
"chain-b": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
diff --git a/.github/compatibility-test-matrices/release-v7.3.x/transfer-chain-b.json b/.github/compatibility-test-matrices/release-v7.3.x/transfer-chain-b.json
index 770492c5827..ff6d390f888 100644
--- a/.github/compatibility-test-matrices/release-v7.3.x/transfer-chain-b.json
+++ b/.github/compatibility-test-matrices/release-v7.3.x/transfer-chain-b.json
@@ -1,5 +1,7 @@
{
"chain-a": [
+ "v7.3.0",
+ "v7.2.1",
"v7.2.0",
"v6.2.0",
"v6.1.1",
@@ -18,9 +20,7 @@
"TestMsgTransfer_Succeeds_Nonincentivized",
"TestMsgTransfer_Fails_InvalidAddress",
"TestMsgTransfer_Timeout_Nonincentivized",
- "TestMsgTransfer_WithMemo",
- "TestSendEnabledParam",
- "TestReceiveEnabledParam"
+ "TestMsgTransfer_WithMemo"
],
"relayer-type": [
"rly"
diff --git a/.github/mergify.yml b/.github/mergify.yml
index 1021075339f..8a09ba4e469 100644
--- a/.github/mergify.yml
+++ b/.github/mergify.yml
@@ -26,6 +26,14 @@ pull_request_rules:
backport:
branches:
- capability/release/v1.0.x
+ - name: backport patches to v0.1.x callbacks ibc-go v7.3.x branch
+ conditions:
+ - base=main
+ - label=backport-callbacks-to-v0.1.x+ibc-go-v7.3.x
+ actions:
+ backport:
+ branches:
+ - callbacks/release/v0.1.x+ibc-go-v7.3.x
- name: backport patches to v4.4.x branch
conditions:
- base=main
@@ -81,4 +89,4 @@ pull_request_rules:
actions:
backport:
branches:
- - release/v7.3.x
\ No newline at end of file
+ - release/v7.3.x
diff --git a/.github/workflows/build-callbacks-simd-image-from-tag.yml b/.github/workflows/build-callbacks-simd-image-from-tag.yml
new file mode 100644
index 00000000000..4114686d8c3
--- /dev/null
+++ b/.github/workflows/build-callbacks-simd-image-from-tag.yml
@@ -0,0 +1,35 @@
+name: Build Callbacks Simd Image
+on:
+ workflow_dispatch:
+ inputs:
+ tag:
+ description: 'The tag of the image to build'
+ required: true
+ type: string
+
+env:
+ REGISTRY: ghcr.io
+ ORG: cosmos
+ IMAGE_NAME: ibc-go-callbacks-simd
+ GIT_TAG: "${{ inputs.tag }}"
+
+jobs:
+ build-image-at-tag:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ ref: "${{ env.GIT_TAG }}"
+ fetch-depth: 0
+ - name: Log in to the Container registry
+ uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc
+ with:
+ registry: ${{ env.REGISTRY }}
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Build image
+ run: |
+ # remove any `/` characters from the docker tag and replace them with a -
+ docker_tag="$(echo $GIT_TAG | sed 's/\//-/')"
+ docker build . -t "${REGISTRY}/${ORG}/${IMAGE_NAME}:${docker_tag}" -f modules/apps/callbacks/Dockerfile
+ docker push "${REGISTRY}/${ORG}/${IMAGE_NAME}:${docker_tag}"
diff --git a/.github/workflows/build-simd-image-from-tag.yml b/.github/workflows/build-simd-image-from-tag.yml
index f669fc04a80..e417a7a8e90 100644
--- a/.github/workflows/build-simd-image-from-tag.yml
+++ b/.github/workflows/build-simd-image-from-tag.yml
@@ -21,7 +21,7 @@ jobs:
build-image-at-tag:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
ref: "${{ env.GIT_TAG }}"
fetch-depth: 0
diff --git a/.github/workflows/callbacks.yml b/.github/workflows/callbacks.yml
index 55d2a4698f2..a74b3162a75 100644
--- a/.github/workflows/callbacks.yml
+++ b/.github/workflows/callbacks.yml
@@ -15,7 +15,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: golangci/golangci-lint-action@v3.7.0
with:
version: v1.54.2
@@ -28,7 +28,7 @@ jobs:
matrix:
go-arch: ['amd64', 'arm', 'arm64']
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: '1.21'
@@ -40,7 +40,7 @@ jobs:
tests:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: '1.21'
diff --git a/.github/workflows/capability.yml b/.github/workflows/capability.yml
index d0c17e33716..bc74b9d2e43 100644
--- a/.github/workflows/capability.yml
+++ b/.github/workflows/capability.yml
@@ -14,7 +14,7 @@ jobs:
matrix:
go-arch: ['amd64', 'arm', 'arm64']
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: '1.21'
@@ -26,7 +26,7 @@ jobs:
tests:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: '1.21'
diff --git a/.github/workflows/check-docs.yml b/.github/workflows/check-docs.yml
index b14911092ce..3e205b73452 100644
--- a/.github/workflows/check-docs.yml
+++ b/.github/workflows/check-docs.yml
@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 0
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 9cdbe5618cf..e07950f0918 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -39,7 +39,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- uses: technote-space/get-diff-action@v6.1.2
with:
PATTERNS: |
diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml
index 0a221279d71..ec3d5e43007 100644
--- a/.github/workflows/deploy-docs.yml
+++ b/.github/workflows/deploy-docs.yml
@@ -23,7 +23,7 @@ jobs:
image: ghcr.io/cosmos/website-deployment
steps:
- name: Checkout 🛎️
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 0
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 5099889d515..29262bb83d2 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Extract metadata (tags, labels) for Docker
id: meta
diff --git a/.github/workflows/e2e-compatibility-unreleased.yaml b/.github/workflows/e2e-compatibility-unreleased.yaml
index 5c4e4b25a2c..38083cd1801 100644
--- a/.github/workflows/e2e-compatibility-unreleased.yaml
+++ b/.github/workflows/e2e-compatibility-unreleased.yaml
@@ -20,7 +20,7 @@ jobs:
- release/v7.2.x
- release/v7.3.x
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
ref: "${{ matrix.release-branch }}"
fetch-depth: 0
diff --git a/.github/workflows/e2e-compatibility-workflow-call.yaml b/.github/workflows/e2e-compatibility-workflow-call.yaml
index 098e85b2ce3..b5901ddd21b 100644
--- a/.github/workflows/e2e-compatibility-workflow-call.yaml
+++ b/.github/workflows/e2e-compatibility-workflow-call.yaml
@@ -16,7 +16,7 @@ jobs:
test-matrix: ${{ steps.set-test-matrix.outputs.test-matrix }}
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: andstor/file-existence-action@v2
with:
files: '.github/compatibility-test-matrices/${{ inputs.test-file-directory }}/${{ inputs.test-suite }}.json'
@@ -38,7 +38,7 @@ jobs:
matrix: ${{ fromJSON(needs.load-test-matrix.outputs.test-matrix) }}
steps:
- name: Checkout the ibc-go repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
repository: cosmos/ibc-go
- uses: actions/setup-go@v4
diff --git a/.github/workflows/e2e-compatibility.yaml b/.github/workflows/e2e-compatibility.yaml
index 77e16e95ea1..66bfe025f42 100644
--- a/.github/workflows/e2e-compatibility.yaml
+++ b/.github/workflows/e2e-compatibility.yaml
@@ -55,7 +55,7 @@ jobs:
- release/v7.3.x
- main
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
if: env.RELEASE_BRANCH == matrix.release-branch
with:
ref: "${{ matrix.release-branch }}"
diff --git a/.github/workflows/e2e-fork.yml b/.github/workflows/e2e-fork.yml
index b1d9051fd43..d0f4834719e 100644
--- a/.github/workflows/e2e-fork.yml
+++ b/.github/workflows/e2e-fork.yml
@@ -17,7 +17,7 @@ jobs:
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: '1.21'
@@ -40,7 +40,7 @@ jobs:
fail-fast: false
matrix: ${{ fromJSON(needs.build-test-matrix.outputs.matrix) }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Docker Build
run: docker build . -t "${CHAIN_IMAGE}:${CHAIN_A_TAG}" --build-arg IBC_GO_VERSION=latest
- name: Setup Go
diff --git a/.github/workflows/e2e-manual-simd.yaml b/.github/workflows/e2e-manual-simd.yaml
index d899e47859f..5a97fbb0f7a 100644
--- a/.github/workflows/e2e-manual-simd.yaml
+++ b/.github/workflows/e2e-manual-simd.yaml
@@ -35,6 +35,8 @@ on:
default: main
options:
- main
+ - v7.3.0
+ - v7.2.1
- v7.2.0
- v6.2.0
- v6.1.1
@@ -46,12 +48,14 @@ on:
required: false
type: string
chain-b-tag:
- default: v7.2.0
+ default: v7.3.0
description: 'The tag to use for chain B'
required: true
type: choice
options:
- main
+ - v7.3.0
+ - v7.2.1
- v7.2.0
- v6.2.0
- v6.1.1
diff --git a/.github/workflows/e2e-test-workflow-call.yml b/.github/workflows/e2e-test-workflow-call.yml
index c62e1a2a0dd..4294f0c1641 100644
--- a/.github/workflows/e2e-test-workflow-call.yml
+++ b/.github/workflows/e2e-test-workflow-call.yml
@@ -50,7 +50,7 @@ on:
relayer-type:
description: 'The type of relayer to use'
required: false
- default: 'rly'
+ default: 'hermes'
type: string
relayer-tag:
description: 'The tag to use for the relayer'
@@ -96,7 +96,7 @@ jobs:
docker-build:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
if: ${{ inputs.build-and-push-docker-image }}
- name: Log in to the Container registry
if: ${{ inputs.build-and-push-docker-image }}
@@ -133,7 +133,7 @@ jobs:
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
repository: cosmos/ibc-go
- uses: actions/setup-go@v4
@@ -167,7 +167,7 @@ jobs:
fail-fast: false
matrix: ${{ fromJSON(needs.build-test-matrix.outputs.matrix) }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
with:
repository: cosmos/ibc-go
- uses: actions/setup-go@v4
diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml
index f983fc3f0e8..83066790b01 100644
--- a/.github/workflows/e2e.yaml
+++ b/.github/workflows/e2e.yaml
@@ -35,7 +35,7 @@ jobs:
relayer: ${{ steps.get-relayer.outputs.relayer }}
relayer-tag: ${{ steps.get-relayer.outputs.relayer-tag }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: '1.21'
@@ -55,18 +55,18 @@ jobs:
run: |
if [ "${{ github.event_name }}" == "schedule" ]
then
- echo "relayer=hermes" >> $GITHUB_OUTPUT
- echo "relayer-tag=1.4.0" >> $GITHUB_OUTPUT
- else
echo "relayer=rly" >> $GITHUB_OUTPUT
- echo "relayer-tag=latest" >> $GITHUB_OUTPUT
+ echo "relayer-tag=colin-event-fix" >> $GITHUB_OUTPUT
+ else
+ echo "relayer=hermes" >> $GITHUB_OUTPUT
+ echo "relayer-tag=v1.6.0" >> $GITHUB_OUTPUT
fi
# build-e2e ensures that all test code compiles.
build-e2e:
if: ${{ !github.event.pull_request.draft && !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' }}
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: '1.21'
diff --git a/.github/workflows/golangci.yml b/.github/workflows/golangci.yml
index 63b4a2fe323..638d4c81910 100644
--- a/.github/workflows/golangci.yml
+++ b/.github/workflows/golangci.yml
@@ -18,9 +18,9 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: golangci-lint
uses: golangci/golangci-lint-action@v3.7.0
with:
version: v1.54.2
- args: --timeout 5m
+ args: --timeout 10m
diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml
index 6f237e14b79..ad764f1b714 100644
--- a/.github/workflows/link-check.yml
+++ b/.github/workflows/link-check.yml
@@ -4,7 +4,7 @@ jobs:
markdown-link-check:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
config-file: '.github/workflows/link-check-config.json'
diff --git a/.github/workflows/proto-registry.yml b/.github/workflows/proto-registry.yml
index cba1eb9cda5..c1f467d94dd 100644
--- a/.github/workflows/proto-registry.yml
+++ b/.github/workflows/proto-registry.yml
@@ -12,9 +12,9 @@ jobs:
push:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: bufbuild/buf-setup-action@v1.26.1
- uses: bufbuild/buf-push-action@v1
with:
input: "proto"
- buf_token: ${{ secrets.BUF_TOKEN }}
\ No newline at end of file
+ buf_token: ${{ secrets.BUF_TOKEN }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index b9ecdf51345..04613a56fee 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -36,7 +36,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Log in to the Container registry
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 91800dcede8..99a3b1cba74 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -38,7 +38,7 @@ jobs:
matrix:
go-arch: ['amd64', 'arm', 'arm64']
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: '1.21'
@@ -64,7 +64,7 @@ jobs:
split-test-files:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Create a file with all the pkgs
run: go list ./... | grep -v e2e > pkgs.txt
- name: Split pkgs into 4 files
@@ -95,7 +95,7 @@ jobs:
matrix:
part: ['00', '01', '02', '03']
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: '1.21'
@@ -122,7 +122,7 @@ jobs:
runs-on: ubuntu-latest
needs: tests
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: technote-space/get-diff-action@v6.1.2
with:
PATTERNS: |
diff --git a/.golangci.yml b/.golangci.yml
index 7eebeb4578e..5550ee25e24 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -1,7 +1,6 @@
run:
tests: true
- # # timeout for analysis, e.g. 30s, 5m, default is 1m
- timeout: 5m
+ timeout: 10m
linters:
disable-all: true
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cc66dd2f473..b7505031d2a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -50,6 +50,36 @@ Ref: https://keepachangelog.com/en/1.0.0/
### Bug Fixes
+## [v7.3.0](https://github.com/cosmos/ibc-go/releases/tag/v7.3.0) - 2023-08-31
+
+### Dependencies
+
+* [\#4122](https://github.com/cosmos/ibc-go/pull/4122) Update Cosmos SDK to v0.47.4.
+
+### Improvements
+
+* [\#4187](https://github.com/cosmos/ibc-go/pull/4187) Adds function `WithICS4Wrapper` to keepers to allow to set the middleware after the keeper's creation.
+* (light-clients/06-solomachine) [\#4429](https://github.com/cosmos/ibc-go/pull/4429) Remove IBC key from path of bytes signed by solomachine and not escape the path.
+
+### Features
+
+* (apps/27-interchain-accounts) [\#3796](https://github.com/cosmos/ibc-go/pull/3796) Adds support for json tx encoding for interchain accounts.
+* [\#4188](https://github.com/cosmos/ibc-go/pull/4188) Adds optional `PacketDataUnmarshaler` interface that allows a middleware to request the packet data to be unmarshaled by the base application.
+* [\#4199](https://github.com/cosmos/ibc-go/pull/4199) Adds optional `PacketDataProvider` interface for retrieving custom packet data stored on behalf of another application.
+* [\#4200](https://github.com/cosmos/ibc-go/pull/4200) Adds optional `PacketData` interface which application's packet data may implement.
+
+### Bug Fixes
+
+* (04-channel) [\#4476](https://github.com/cosmos/ibc-go/pull/4476) Use UTC time in log messages for packet timeout error.
+* (testing) [\#4483](https://github.com/cosmos/ibc-go/pull/4483) Use the correct revision height when querying trusted validator set.
+
+## [v7.2.1](https://github.com/cosmos/ibc-go/releases/tag/v7.2.1) - 2023-08-31
+
+### Bug Fixes
+
+* (04-channel) [\#4476](https://github.com/cosmos/ibc-go/pull/4476) Use UTC time in log messages for packet timeout error.
+* (testing) [\#4483](https://github.com/cosmos/ibc-go/pull/4483) Use the correct revision height when querying trusted validator set.
+
## [v7.2.0](https://github.com/cosmos/ibc-go/releases/tag/v7.2.0) - 2023-06-22
### Dependencies
diff --git a/README.md b/README.md
index 798bc38f4d7..ccc27545ba4 100644
--- a/README.md
+++ b/README.md
@@ -120,6 +120,8 @@ The following audits have been performed on the `ibc-go` source code:
3.1 [ICS 29 Fee Middleware](https://github.com/cosmos/ibc-go/tree/main/modules/apps/29-fee)
+ 3.2 [Callbacks Middleware](https://github.com/cosmos/ibc-go/tree/main/modules/apps/callbacks)
+
4. **Light Clients**
4.1 [ICS 07 Tendermint](https://github.com/cosmos/ibc-go/tree/main/modules/light-clients/07-tendermint)
diff --git a/RELEASES.md b/RELEASES.md
index 4fb6955e7b7..1267d1726e6 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -63,7 +63,9 @@ The beginning of a new major release series is marked by the release of a new ma
For example, if the current major release series is v1 and was released on January 1st, 2022, then v1 will be supported at least until January 1st, 2023. If v2 is published on August 1st 2022, then v1's end of life will be March 1st, 2023.
-Only the following major release series have a stable release status:
+Only the following major release series have a stable release status. All missing minor release versions have been discontinued.
+
+### ibc-go
|Release|End of Life Date|
|-------|----------------|
@@ -73,8 +75,13 @@ Only the following major release series have a stable release status:
|`v6.1.x`|December 09, 2023|
|`v6.2.x`|December 09, 2023|
|`v7.2.x`|March 17, 2024|
+|`v7.3.x`|March 17, 2024|
+
+### Callbacks middleware
-All missing minor release versions have been discontinued.
+|Release|End of Life Date|
+|-------|----------------|
+|`v0.1.x-ibc-go-v7.3.x`|August 31, 2024|
### What pull requests will be included in stable patch-releases?
@@ -99,7 +106,9 @@ As rule of thumb, the following changes will **NOT** be automatically accepted i
## Version matrix
-Versions of Golang, Cosmos SDK and Tendermint used by ibc-go in the currently active releases:
+### ibc-go
+
+Versions of Golang, Cosmos SDK and CometBFT used by ibc-go in the currently active releases:
| Go | ibc-go | Cosmos SDK | Tendermint/CometBFT |
|----|--------|------------|---------------------|
@@ -110,6 +119,16 @@ Versions of Golang, Cosmos SDK and Tendermint used by ibc-go in the currently ac
| 1.18 | v6.1.1 | v0.46.7 | v0.34.24 |
| 1.19 | v6.2.0 | v0.46.12 | v0.34.27 |
| 1.19 | v7.2.0 | v0.47.3 | v0.37.2 |
+| 1.19 | v7.2.1 | v0.47.3 | v0.37.2 |
+| 1.19 | v7.3.0 | v0.47.4 | v0.37.2 |
+
+### Callbacks middleware
+
+Versions of Golang, ibc-go, Cosmos SDK and CometBFT used by callbacks middleware in the currently active releases:
+
+| Go | callbacks | ibc-go | Cosmos SDK | Tendermint/CometBFT |
+|----|-----------|--------|------------|---------------------|
+| 1.19 | v0.1.0-ibc-go-v7.3 | v7.3.0 | v0.47.4 | v0.37.2 |
## Graphics
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index e44b62b4592..c5767aacec3 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -184,6 +184,10 @@ module.exports = {
label: "v7.2.0",
key: "v7.2.0",
},
+ {
+ label: "v7.3.0",
+ key: "v7.3.0",
+ },
],
topbar: {
banner: true,
@@ -234,6 +238,11 @@ module.exports = {
directory: false,
path: "/ibc/proto-docs.html",
},
+ {
+ title: "Capability Module",
+ directory: false,
+ path: "/ibc/capability-module.html",
+ },
{
title: "Roadmap",
directory: false,
@@ -533,6 +542,43 @@ module.exports = {
},
],
},
+ {
+ title: "Callbacks Middleware",
+ directory: true,
+ path: "/middleware",
+ children: [
+ {
+ title: "Overview",
+ directory: false,
+ path: "/middleware/callbacks/overview.html",
+ },
+ {
+ title: "Integration",
+ directory: false,
+ path: "/middleware/callbacks/integration.html",
+ },
+ {
+ title: "Interfaces",
+ directory: false,
+ path: "/middleware/callbacks/interfaces.html",
+ },
+ {
+ title: "Events",
+ directory: false,
+ path: "/middleware/callbacks/events.html",
+ },
+ {
+ title: "End Users",
+ directory: false,
+ path: "/middleware/callbacks/end-users.html",
+ },
+ {
+ title: "Gas Management",
+ directory: false,
+ path: "/middleware/callbacks/gas.html",
+ },
+ ],
+ },
],
},
{
@@ -584,6 +630,11 @@ module.exports = {
directory: false,
path: "/migrations/v7-to-v7_1.html",
},
+ {
+ title: "IBC-Go v7.2 to v7.3",
+ directory: false,
+ path: "/migrations/v7_2-to-v7_3.html",
+ },
],
},
{
diff --git a/docs/apps/interchain-accounts/client.md b/docs/apps/interchain-accounts/client.md
index 868aeaeb4e4..83e10a73bf7 100644
--- a/docs/apps/interchain-accounts/client.md
+++ b/docs/apps/interchain-accounts/client.md
@@ -84,7 +84,7 @@ simd tx interchain-accounts host --help
##### `generate-packet-data`
-The `generate-packet-data` command allows users to generate protobuf encoded interchain accounts packet data for input message(s). The packet data can then be used with the controller submodule's [`send-tx` command](#send-tx).
+The `generate-packet-data` command allows users to generate protobuf or proto3 JSON encoded interchain accounts packet data for input message(s). The packet data can then be used with the controller submodule's [`send-tx` command](#send-tx). The `--encoding` flag can be uesd to specify the encoding format (value must be either `proto3` or `proto3json`); if not specified, the default will be `proto3`. The `--memo` flag can be used to include a memo string in the interchain accounts packet data.
```shell
simd tx interchain-accounts host generate-packet-data [message]
diff --git a/docs/apps/transfer/params.md b/docs/apps/transfer/params.md
index ac91c693146..7768277dd5d 100644
--- a/docs/apps/transfer/params.md
+++ b/docs/apps/transfer/params.md
@@ -75,8 +75,8 @@ To change the parameter values, you must make a governance proposal that execute
// MsgUpdateParams is the Msg/UpdateParams request type.
message MsgUpdateParams {
- // authority is the address that controls the module (defaults to x/gov unless overwritten).
- string authority = 1;
+ // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten).
+ string signer = 1;
// params defines the transfer parameters to update.
//
diff --git a/docs/assets/callbacks-mw/callbackflow.svg b/docs/assets/callbacks-mw/callbackflow.svg
new file mode 100644
index 00000000000..2323889b7c9
--- /dev/null
+++ b/docs/assets/callbacks-mw/callbackflow.svg
@@ -0,0 +1,43 @@
+
diff --git a/docs/assets/callbacks-mw/ics4-callbackflow.svg b/docs/assets/callbacks-mw/ics4-callbackflow.svg
new file mode 100644
index 00000000000..032a83f7662
--- /dev/null
+++ b/docs/assets/callbacks-mw/ics4-callbackflow.svg
@@ -0,0 +1,43 @@
+
diff --git a/docs/ibc/apps/ibcmodule.md b/docs/ibc/apps/ibcmodule.md
index 510fd5bcf31..ec68681ced6 100644
--- a/docs/ibc/apps/ibcmodule.md
+++ b/docs/ibc/apps/ibcmodule.md
@@ -347,3 +347,26 @@ func (im IBCModule) OnTimeoutPacket(
// do custom timeout logic
}
```
+
+### Optional interfaces
+
+The following interface are optional and MAY be implemented by an IBCModule.
+
+#### PacketDataUnmarshaler
+
+The `PacketDataUnmarshaler` interface is defined as follows:
+
+```go
+// PacketDataUnmarshaler defines an optional interface which allows a middleware to
+// request the packet data to be unmarshaled by the base application.
+type PacketDataUnmarshaler interface {
+ // UnmarshalPacketData unmarshals the packet data into a concrete type
+ UnmarshalPacketData([]byte) (interface{}, error)
+}
+```
+
+The implementation of `UnmarshalPacketData` should unmarshal the bytes into the packet data type defined for an IBC stack.
+The base application of an IBC stack should unmarshal the bytes into its packet data type, while a middleware may simply defer the call to the underlying application.
+
+This interface allows middlewares to unmarshal a packet data in order to make use of interfaces the packet data type implements.
+For example, the callbacks middleware makes use of this function to access packet data types which implement the `PacketData` and `PacketDataProvider` interfaces.
diff --git a/docs/ibc/apps/packets_acks.md b/docs/ibc/apps/packets_acks.md
index 1d5061cf03f..fda814324f9 100644
--- a/docs/ibc/apps/packets_acks.md
+++ b/docs/ibc/apps/packets_acks.md
@@ -68,6 +68,55 @@ packetData := DecodePacketData(packet.Data)
// handle received custom packet data
```
+
+### Optional interfaces
+
+The following interfaces are optional and MAY be implemented by a custom packet type.
+They allow middlewares such as callbacks to access information stored within the packet data.
+
+#### PacketData interface
+
+The `PacketData` interface is defined as follows:
+
+```go
+// PacketData defines an optional interface which an application's packet data structure may implement.
+type PacketData interface {
+ // GetPacketSender returns the sender address of the packet data.
+ // If the packet sender is unknown or undefined, an empty string should be returned.
+ GetPacketSender(sourcePortID string) string
+}
+```
+
+The implementation of `GetPacketSender` should return the sender of the packet data.
+If the packet sender is unknown or undefined, an empty string should be returned.
+
+This interface is intended to give IBC middlewares access to the packet sender of a packet data type.
+
+#### PacketDataProvider interface
+
+The `PacketDataProvider` interface is defined as follows:
+
+```go
+// PacketDataProvider defines an optional interfaces for retrieving custom packet data stored on behalf of another application.
+// An existing problem in the IBC middleware design is the inability for a middleware to define its own packet data type and insert packet sender provided information.
+// A short term solution was introduced into several application's packet data to utilize a memo field to carry this information on behalf of another application.
+// This interfaces standardizes that behaviour. Upon realization of the ability for middleware's to define their own packet data types, this interface will be deprecated and removed with time.
+type PacketDataProvider interface {
+ // GetCustomPacketData returns the packet data held on behalf of another application.
+ // The name the information is stored under should be provided as the key.
+ // If no custom packet data exists for the key, nil should be returned.
+ GetCustomPacketData(key string) interface{}
+}
+```
+
+The implementation of `GetCustomPacketData` should return packet data held on behalf of another application (if present and supported).
+If this functionality is not supported, it should return nil. Otherwise it should return the packet data associated with the provided key.
+
+This interface gives IBC applications access to the packet data information embedded into the base packet data type.
+Within transfer and interchain accounts, the embedded packet data is stored within the Memo field.
+
+Once all IBC applications within an IBC stack are capable of creating/maintaining their own packet data type's, this interface function will be deprecated and removed.
+
## Acknowledgements
Modules may commit an acknowledgement upon receiving and processing a packet in the case of synchronous packet processing.
diff --git a/modules/capability/README.md b/docs/ibc/capability-module.md
similarity index 87%
rename from modules/capability/README.md
rename to docs/ibc/capability-module.md
index 723d8749ee1..6bdef612ea4 100644
--- a/modules/capability/README.md
+++ b/docs/ibc/capability-module.md
@@ -1,14 +1,12 @@
----
-sidebar_position: 1
----
+
# Capability Module
## Overview
-`modules/capability` is an implementation of a Cosmos SDK module, per [ADR 003](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-003-dynamic-capability-store.md),
-that allows for provisioning, tracking, and authenticating multi-owner capabilities
-at runtime.
+`modules/capability` is an implementation of a Cosmos SDK module, per [ADR 003](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-003-dynamic-capability-store.md), that allows for provisioning, tracking, and authenticating multi-owner capabilities at runtime.
The keeper maintains two states: persistent and ephemeral in-memory. The persistent
store maintains a globally unique auto-incrementing index and a mapping from
@@ -43,7 +41,7 @@ type App struct {
func NewApp(...) *App {
// ...
- app.capabilityKeeper = capability.NewKeeper(codec, persistentStoreKey, memStoreKey)
+ app.capabilityKeeper = capabilitykeeper.NewKeeper(codec, persistentStoreKey, memStoreKey)
}
```
@@ -110,20 +108,20 @@ not own.
### Stores
-* MemStore
-* KeyStore
+- MemStore
+- KeyStore
## State
-### In persisted KV store
+### Persisted KV store
1. Global unique capability index
2. Capability owners
Indexes:
-* Unique index: `[]byte("index") -> []byte(currentGlobalIndex)`
-* Capability Index: `[]byte("capability_index") | []byte(index) -> ProtocolBuffer(CapabilityOwners)`
+- Unique index: `[]byte("index") -> []byte(currentGlobalIndex)`
+- Capability Index: `[]byte("capability_index") | []byte(index) -> ProtocolBuffer(CapabilityOwners)`
### In-memory KV store
@@ -133,6 +131,6 @@ Indexes:
Indexes:
-* Initialized flag: `[]byte("mem_initialized")`
-* RevCapabilityKey: `[]byte(moduleName + "/rev/" + capabilityName) -> []byte(index)`
-* FwdCapabilityKey: `[]byte(moduleName + "/fwd/" + capabilityPointerAddress) -> []byte(capabilityName)`
+- Initialized flag: `[]byte("mem_initialized")`
+- RevCapabilityKey: `[]byte(moduleName + "/rev/" + capabilityName) -> []byte(index)`
+- FwdCapabilityKey: `[]byte(moduleName + "/fwd/" + capabilityPointerAddress) -> []byte(capabilityName)`
diff --git a/docs/ibc/light-clients/setup.md b/docs/ibc/light-clients/setup.md
index be4e74a5334..e8e18bd0467 100644
--- a/docs/ibc/light-clients/setup.md
+++ b/docs/ibc/light-clients/setup.md
@@ -115,7 +115,7 @@ where `proposal.json` contains:
"messages": [
{
"@type": "/ibc.core.client.v1.MsgUpdateParams",
- "authority": "cosmos1...", // The gov module account address
+ "signer": "cosmos1...", // The gov module account address
"params": {
"allowed_clients": ["06-solomachine", "07-tendermint", "0x-new-client"]
}
diff --git a/docs/middleware/callbacks/end-users.md b/docs/middleware/callbacks/end-users.md
new file mode 100644
index 00000000000..63c1831845f
--- /dev/null
+++ b/docs/middleware/callbacks/end-users.md
@@ -0,0 +1,93 @@
+
+
+# Usage
+
+This section explains how to use the callbacks middleware from the perspective of an IBC Actor. Callbacks middleware provides two types of callbacks:
+
+- Source callbacks:
+ - `SendPacket` callback
+ - `OnAcknowledgementPacket` callback
+ - `OnTimeoutPacket` callback
+- Destination callbacks:
+ - `ReceivePacket` callback
+
+For a given channel, the source callbacks are supported if the source chain has the callbacks middleware wired up in the channel's IBC stack. Similarly, the destination callbacks are supported if the destination chain has the callbacks middleware wired up in the channel's IBC stack.
+
+::: tip
+Callbacks are always executed after the packet has been processed by the underlying IBC module.
+:::
+
+::: warning
+If the underlying application module is doing an asynchronous acknowledgement on packet receive (for example, if the [packet forward middleware](https://github.com/cosmos/ibc-apps/tree/main/middleware/packet-forward-middleware) is in the stack, and is being used by this packet), then the callbacks middleware will execute the `ReceivePacket` callback after the acknowledgement has been received.
+:::
+
+## Source Callbacks
+
+Source callbacks are natively supported in the following ibc modules (if they are wrapped by the callbacks middleware):
+
+- `transfer`
+- `icacontroller`
+
+To have your source callbacks be processed by the callbacks middleware, you must set the memo in the application's packet data to the following format:
+
+```jsonc
+{
+ "src_callback": {
+ "address": "callbackAddressString",
+ // optional
+ "gas_limit": "userDefinedGasLimitString",
+ }
+}
+```
+
+## Destination Callbacks
+
+Destination callbacks are natively only supported in the transfer module. Note that wrapping icahost is not supported. This is because icahost should be able to execute an arbitrary transaction anyway, and can call contracts or modules directly.
+
+To have your destination callbacks processed by the callbacks middleware, you must set the memo in the application's packet data to the following format:
+
+```jsonc
+{
+ "dest_callback": {
+ "address": "callbackAddressString",
+ // optional
+ "gas_limit": "userDefinedGasLimitString",
+ }
+}
+```
+
+Note that a packet can have both a source and destination callback.
+
+```jsonc
+{
+ "src_callback": {
+ "address": "callbackAddressString",
+ // optional
+ "gas_limit": "userDefinedGasLimitString",
+ },
+ "dest_callback": {
+ "address": "callbackAddressString",
+ // optional
+ "gas_limit": "userDefinedGasLimitString",
+ }
+}
+```
+
+# User Defined Gas Limit
+
+User defined gas limit was added for the following reasons:
+
+- To prevent callbacks from blocking packet lifecycle.
+- To prevent relayers from being able to DOS the callback execution by sending a packet with a low amount of gas.
+
+::: tip
+There is a chain wide parameter that sets the maximum gas limit that a user can set for a callback. This is to prevent a user from setting a gas limit that is too high for relayers. If the `"gas_limit"` is not set in the packet memo, then the maximum gas limit is used.
+:::
+
+These goals are achieved by creating a minimum gas amount required for callback execution. If the relayer provides at least the minimum gas limit for the callback execution, then the packet lifecycle will not be blocked if the callback runs out of gas during execution, and the callback cannot be retried. If the relayer does not provided the minimum amount of gas and the callback executions runs out of gas, the entire tx is reverted and it may be executed again.
+
+::: tip
+`SendPacket` callback is always reverted if the callback execution fails or returns an error for any reason. This is so that the packet is not sent if the callback execution fails.
+:::
diff --git a/docs/middleware/callbacks/events.md b/docs/middleware/callbacks/events.md
new file mode 100644
index 00000000000..cd8d68f28b2
--- /dev/null
+++ b/docs/middleware/callbacks/events.md
@@ -0,0 +1,36 @@
+
+
+# Events
+
+An overview of all events related to the callbacks middleware. There are two types of events, `"ibc_src_callback"` and `"ibc_dest_callback"`.
+
+## Shared Attributes
+
+Both of these event types share the following attributes:
+
+| **Attribute Key** | **Attribute Values** | **Optional** |
+|:-------------------------:|:---------------------------------------------------------------------------------------:|:------------------:|
+| module | "ibccallbacks" | |
+| callback_type | **One of**: "send_packet", "acknowledgement_packet", "timeout_packet", "receive_packet" | |
+| callback_address | string | |
+| callback_exec_gas_limit | string (parsed from uint64) | |
+| callback_commit_gas_limit | string (parsed from uint64) | |
+| packet_sequence | string (parsed from uint64) | |
+| callback_result | **One of**: "success", "failure" | |
+| callback_error | string (parsed from callback err) | Yes, if err != nil |
+
+## `ibc_src_callback` Attributes
+
+| **Attribute Key** | **Attribute Values** |
+|:------------------:|:------------------------:|
+| packet_src_port | string (sourcePortID) |
+| packet_src_channel | string (sourceChannelID) |
+
+## `ibc_dest_callback` Attributes
+
+| **Attribute Key** | **Attribute Values** |
+|:-------------------:|:------------------------:|
+| packet_dest_port | string (destPortID) |
+| packet_dest_channel | string (destChannelID) |
diff --git a/docs/middleware/callbacks/gas.md b/docs/middleware/callbacks/gas.md
new file mode 100644
index 00000000000..c36aeaa330d
--- /dev/null
+++ b/docs/middleware/callbacks/gas.md
@@ -0,0 +1,74 @@
+
+
+# Gas Management
+
+## Overview
+
+Executing arbitrary code on a chain can be arbitrarily expensive. In general, a callback may consume infinite gas (think of a callback that loops forever). This is problematic for a few reasons:
+
+- It can block the packet lifecycle.
+- It can be used to consume all of the relayer's funds and gas.
+- A relayer can DOS the callback execution by sending a packet with a low amount of gas.
+
+To prevent these, the callbacks middleware introduces two gas limits: a chain wide gas limit (`maxCallbackGas`) and a user defined gas limit.
+
+### Chain Wide Gas Limit
+
+Since the callbacks middleware does not have a keeper, it does not use a governance parameter to set the chain wide gas limit. Instead, the chain wide gas limit is passed in as a parameter to the callbacks middleware during initialization.
+
+```go
+// app.go
+
+maxCallbackGas := uint64(1_000_000)
+
+var transferStack porttypes.IBCModule
+transferStack = transfer.NewIBCModule(app.TransferKeeper)
+transferStack = ibcfee.NewIBCMiddleware(transferStack, app.IBCFeeKeeper)
+transferStack = ibccallbacks.NewIBCMiddleware(transferStack, app.IBCFeeKeeper, app.MockContractKeeper, maxCallbackGas)
+// Since the callbacks middleware itself is an ics4wrapper, it needs to be passed to the transfer keeper
+app.TransferKeeper.WithICS4Wrapper(transferStack.(porttypes.ICS4Wrapper))
+
+// Add transfer stack to IBC Router
+ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferStack)
+```
+
+### User Defined Gas Limit
+
+The user defined gas limit is set by the IBC Actor during packet creation. The user defined gas limit is set in the packet memo. If the user defined gas limit is not set or if the user defined gas limit is greater than the chain wide gas limit, then the chain wide gas limit is used as the user defined gas limit.
+
+```jsonc
+{
+ "src_callback": {
+ "address": "callbackAddressString",
+ // optional
+ "gas_limit": "userDefinedGasLimitString",
+ },
+ "dest_callback": {
+ "address": "callbackAddressString",
+ // optional
+ "gas_limit": "userDefinedGasLimitString",
+ }
+}
+```
+
+## Gas Limit Enforcement
+
+During a callback execution, there are three types of gas limits that are enforced:
+
+- User defined gas limit
+- Chain wide gas limit
+- Context gas limit (amount of gas that the relayer has left for this execution)
+
+Chain wide gas limit is used as a maximum to the user defined gas limit as explained in the [previous section](#user-deifined-gas-limit). It may also be used as a default value if no user gas limit is provided. Therefore, we can ignore the chain wide gas limit for the rest of this section and work with the minimum of the chain wide gas limit and user defined gas limit. This minimum is called the commit gas limit.
+
+The gas limit enforcement is done by executing the callback inside a cached context with a new gas meter. The gas meter is initialized with the minimum of the commit gas limit and the context gas limit. This minimum is called the execution gas limit. We say that retries are allowed if `context gas limit < commit gas limit`. Otherwise, we say that retries are not allowed.
+
+If the callback execution fails due to an out of gas error, then the middleware checks if retries are allowed. If retries are not allowed, then it recovers from the out of gas error, consumes execution gas limit from the original context, and continues with the packet life cycle. If retries are allowed, then it panics with an out of gas error to revert the entire tx. The packet can then be submitted again with a higher gas limit. The out of gas panic descriptor is shown below.
+
+```go
+fmt.Sprintf("ibc %s callback out of gas; commitGasLimit: %d", callbackType, callbackData.CommitGasLimit)}
+```
+
+If the callback execution does not fail due to an out of gas error then the callbacks middleware does not block the packet life cycle regardless of whether retries are allowed or not.
diff --git a/docs/middleware/callbacks/integration.md b/docs/middleware/callbacks/integration.md
new file mode 100644
index 00000000000..ddd1f68360f
--- /dev/null
+++ b/docs/middleware/callbacks/integration.md
@@ -0,0 +1,92 @@
+
+
+# Integration
+
+Learn how to integrate the callbacks middleware with IBC applications. The following document is intended for developers building on top of the Cosmos SDK and only applies for Cosmos SDK chains. {synopsis}
+
+The callbacks middleware is a minimal and stateless implementation of the IBC middleware interface. It does not have a keeper, nor does it store any state. It simply routes IBC middleware messages to the appropriate callback function, which is implemented by the secondary application. Therefore, it doesn't need to be registered as a module, nor does it need to be added to the module manager. It only needs to be added to the IBC application stack.
+
+## Pre-requisite Readings
+
+* [IBC middleware development](../../ibc/middleware/develop.md) {prereq}
+* [IBC middleware integration](../../ibc/middleware/integration.md) {prereq}
+
+The callbacks middleware, as the name suggests, plays the role of an IBC middleware and as such must be configured by chain developers to route and handle IBC messages correctly.
+For Cosmos SDK chains this setup is done via the `app/app.go` file, where modules are constructed and configured in order to bootstrap the blockchain application.
+
+## Configuring an application stack with the callbacks middleware
+
+As mentioned in [IBC middleware development](../../ibc/middleware/develop.md) an application stack may be composed of many or no middlewares that nest a base application.
+These layers form the complete set of application logic that enable developers to build composable and flexible IBC application stacks.
+For example, an application stack may just be a single base application like `transfer`, however, the same application stack composed with `29-fee` and `callbacks` will nest the `transfer` base application twice by wrapping it with the Fee Middleware module and then callbacks middleware.
+
+The callbacks middleware also **requires** a secondary application that will receive the callbacks to implement the [`ContractKeeper`](https://github.com/cosmos/ibc-go/blob/v7.3.0/modules/apps/callbacks/types/expected_keepers.go#L11-L83). Since the wasm module does not yet support the callbacks middleware, we will use the `mockContractKeeper` module in the examples below. You should replace this with a module that implements `ContractKeeper`.
+
+### Transfer
+
+See below for an example of how to create an application stack using `transfer`, `29-fee`, and `callbacks`. Feel free to omit the `29-fee` middleware if you do not want to use it.
+The following `transferStack` is configured in `app/app.go` and added to the IBC `Router`.
+The in-line comments describe the execution flow of packets between the application stack and IBC core.
+
+```go
+// Create Transfer Stack
+// SendPacket, since it is originating from the application to core IBC:
+// transferKeeper.SendPacket -> callbacks.SendPacket -> fee.SendPacket -> channel.SendPacket
+
+// RecvPacket, message that originates from core IBC and goes down to app, the flow is the other way
+// channel.RecvPacket -> callbacks.OnRecvPacket -> fee.OnRecvPacket -> transfer.OnRecvPacket
+
+// transfer stack contains (from top to bottom):
+// - IBC Callbacks Middleware
+// - IBC Fee Middleware
+// - Transfer
+
+// create IBC module from bottom to top of stack
+var transferStack porttypes.IBCModule
+transferStack = transfer.NewIBCModule(app.TransferKeeper)
+transferStack = ibcfee.NewIBCMiddleware(transferStack, app.IBCFeeKeeper)
+// maxCallbackGas is a hard-coded value that is passed to the callbacks middleware
+transferStack = ibccallbacks.NewIBCMiddleware(transferStack, app.IBCFeeKeeper, app.MockContractKeeper, maxCallbackGas)
+// Since the callbacks middleware itself is an ics4wrapper, it needs to be passed to the transfer keeper
+app.TransferKeeper.WithICS4Wrapper(transferStack.(porttypes.ICS4Wrapper))
+
+// Add transfer stack to IBC Router
+ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferStack)
+```
+
+::: warning
+The usage of `WithICS4Wrapper` after `transferStack`'s configuration is critical! It allows the callbacks middleware to do `SendPacket` callbacks and asynchronous `ReceivePacket` callbacks. You must do this regardless of whether you are using the `29-fee` middleware or not.
+:::
+
+### Interchain Accounts Controller
+
+```go
+// Create Interchain Accounts Stack
+// SendPacket, since it is originating from the application to core IBC:
+// icaControllerKeeper.SendTx -> callbacks.SendPacket -> fee.SendPacket -> channel.SendPacket
+
+var icaControllerStack porttypes.IBCModule
+icaControllerStack = icacontroller.NewIBCMiddleware(nil, app.ICAControllerKeeper)
+icaControllerStack = ibcfee.NewIBCMiddleware(icaControllerStack, app.IBCFeeKeeper)
+// maxCallbackGas is a hard-coded value that is passed to the callbacks middleware
+icaControllerStack = ibccallbacks.NewIBCMiddleware(icaControllerStack, app.IBCFeeKeeper, app.MockContractKeeper, maxCallbackGas)
+// Since the callbacks middleware itself is an ics4wrapper, it needs to be passed to the ica controller keeper
+app.ICAControllerKeeper.WithICS4Wrapper(icaControllerStack.(porttypes.ICS4Wrapper))
+
+// RecvPacket, message that originates from core IBC and goes down to app, the flow is:
+// channel.RecvPacket -> callbacks.OnRecvPacket -> fee.OnRecvPacket -> icaHost.OnRecvPacket
+
+var icaHostStack porttypes.IBCModule
+icaHostStack = icahost.NewIBCModule(app.ICAHostKeeper)
+icaHostStack = ibcfee.NewIBCMiddleware(icaHostStack, app.IBCFeeKeeper)
+
+// Add ICA host and controller to IBC router ibcRouter.
+AddRoute(icacontrollertypes.SubModuleName, icaControllerStack).
+AddRoute(icahosttypes.SubModuleName, icaHostStack).
+```
+
+::: warning
+The usage of `WithICS4Wrapper` here is also critical!
+:::
diff --git a/docs/middleware/callbacks/interfaces.md b/docs/middleware/callbacks/interfaces.md
new file mode 100644
index 00000000000..afed23d0a4e
--- /dev/null
+++ b/docs/middleware/callbacks/interfaces.md
@@ -0,0 +1,148 @@
+
+
+# Interfaces
+
+The callbacks middleware requires certain interfaces to be implemented by the underlying IBC applications and the secondary application. If you're simply wiring up the callbacks middleware to an existing IBC application stack and a secondary application such as `icacontroller` and `x/wasm`, you can skip this section.
+
+## Interfaces for developing the Underlying IBC Application
+
+### `PacketDataUnmarshaler`
+
+```go
+// PacketDataUnmarshaler defines an optional interface which allows a middleware to
+// request the packet data to be unmarshaled by the base application.
+type PacketDataUnmarshaler interface {
+ // UnmarshalPacketData unmarshals the packet data into a concrete type
+ UnmarshalPacketData([]byte) (interface{}, error)
+}
+```
+
+The callbacks middleware **requires** the underlying ibc application to implement the [`PacketDataUnmarshaler`](https://github.com/cosmos/ibc-go/blob/v7.3.0/modules/core/05-port/types/module.go#L142-L147) interface so that it can unmarshal the packet data bytes into the appropriate packet data type. This allows usage of interface functions implemented by the packet data type. The packet data type is expected to implement the `PacketDataProvider` interface (see section below), which is used to parse the callback data that is currently stored in the packet memo field for `transfer` and `ica` packets as a JSON string. See its implementation in the [`transfer`](https://github.com/cosmos/ibc-go/blob/v7.3.0/modules/apps/transfer/ibc_module.go#L303-L313) and [`icacontroller`](https://github.com/cosmos/ibc-go/blob/v7.3.0/modules/apps/27-interchain-accounts/controller/ibc_middleware.go#L258-L268) modules for reference.
+
+If the underlying application is a middleware itself, then it can implement this interface by simply passing the function call to its underlying application. See its implementation in the [`fee middleware`](https://github.com/cosmos/ibc-go/blob/v7.3.0/modules/apps/29-fee/ibc_middleware.go#L368-L378) for reference.
+
+### `PacketDataProvider`
+
+```go
+// PacketDataProvider defines an optional interfaces for retrieving custom packet data stored on behalf of another application.
+// An existing problem in the IBC middleware design is the inability for a middleware to define its own packet data type and insert packet sender provided information.
+// A short term solution was introduced into several application's packet data to utilize a memo field to carry this information on behalf of another application.
+// This interfaces standardizes that behaviour. Upon realization of the ability for middleware's to define their own packet data types, this interface will be deprecated and removed with time.
+type PacketDataProvider interface {
+ // GetCustomPacketData returns the packet data held on behalf of another application.
+ // The name the information is stored under should be provided as the key.
+ // If no custom packet data exists for the key, nil should be returned.
+ GetCustomPacketData(key string) interface{}
+}
+```
+
+The callbacks middleware also **requires** the underlying ibc application's packet data type to implement the [`PacketDataProvider`](https://github.com/cosmos/ibc-go/blob/v7.3.0/modules/core/exported/packet.go#L43-L52) interface. This interface is used to retrieve the callback data from the packet data (using the memo field in the case of `transfer` and `ica`). For example, see its implementation in the [`transfer`](https://github.com/cosmos/ibc-go/blob/v7.3.0/modules/apps/transfer/types/packet.go#L85-L105) module.
+
+Since middlewares do not have packet types, they do not need to implement this interface.
+
+### `PacketData`
+
+```go
+// PacketData defines an optional interface which an application's packet data structure may implement.
+type PacketData interface {
+ // GetPacketSender returns the sender address of the packet data.
+ // If the packet sender is unknown or undefined, an empty string should be returned.
+ GetPacketSender(sourcePortID string) string
+}
+```
+
+[`PacketData`](https://github.com/cosmos/ibc-go/blob/v7.3.0/modules/core/exported/packet.go#L36-L41) is an optional interface that can be implemented by the underlying ibc application's packet data type. It is used to retrieve the packet sender address from the packet data. The callbacks middleware uses this interface to retrieve the packet sender address and pass it to the callback function during a source callback. If this interface is not implemented, then the callbacks middleware passes and empty string as the sender address. For example, see its implementation in the [`transfer`](https://github.com/cosmos/ibc-go/blob/v7.3.0/modules/apps/transfer/types/packet.go#L74-L83) and [`ica`](https://github.com/cosmos/ibc-go/blob/v7.3.0/modules/apps/27-interchain-accounts/types/packet.go#L78-L92) module.
+
+This interface was added so that secondary applications can retrieve the packet sender address to perform custom authorization logic if needed.
+
+Since middlewares do not have packet types, they do not need to implement this interface.
+
+## Interfaces for developing the Secondary Application
+
+### `ContractKeeper`
+
+The callbacks middleware requires the secondary application to implement the [`ContractKeeper`](https://github.com/cosmos/ibc-go/blob/v7.3.0/modules/apps/callbacks/types/expected_keepers.go#L11-L83) interface. The contract keeper will be invoked at each step of the packet lifecycle. When a packet is sent, if callback information is provided, the contract keeper will be invoked via the `IBCSendPacketCallback`. This allows the contract keeper to prevent packet sends when callback information is provided, for example if the sender is unauthroized to perform callbacks on the given information. If the packet send is successful, the contract keeper on the destination (if present) will be invoked when a packet has been received and the acknowledgement is written, this will occur via `IBCReceivePacketCallback`. At the end of the packet lifecycle, when processing acknowledgements or timeouts, the source contract keeper will be invoked either via `IBCOnAcknowledgementPacket` or `IBCOnTimeoutPacket`. Once a packet has been sent, each step of the packet lifecycle can be processed given that a relayer sets the gas limit to be more than or equal to the required `CommitGasLimit`. State changes performed in the callback will only be committed upon successful execution.
+
+```go
+// ContractKeeper defines the entry points exposed to the VM module which invokes a smart contract
+type ContractKeeper interface {
+ // IBCSendPacketCallback is called in the source chain when a PacketSend is executed. The
+ // packetSenderAddress is determined by the underlying module, and may be empty if the sender is
+ // unknown or undefined. The contract is expected to handle the callback within the user defined
+ // gas limit, and handle any errors, or panics gracefully.
+ // This entry point is called with a cached context. If an error is returned, then the changes in
+ // this context will not be persisted, and the error will be propagated to the underlying IBC
+ // application, resulting in a packet send failure.
+ //
+ // Implementations are provided with the packetSenderAddress and MAY choose to use this to perform
+ // validation on the origin of a given packet. It is recommended to perform the same validation
+ // on all source chain callbacks (SendPacket, AcknowledgementPacket, TimeoutPacket). This
+ // defensively guards against exploits due to incorrectly wired SendPacket ordering in IBC stacks.
+ IBCSendPacketCallback(
+ cachedCtx sdk.Context,
+ sourcePort string,
+ sourceChannel string,
+ timeoutHeight clienttypes.Height,
+ timeoutTimestamp uint64,
+ packetData []byte,
+ contractAddress,
+ packetSenderAddress string,
+ ) error
+ // IBCOnAcknowledgementPacketCallback is called in the source chain when a packet acknowledgement
+ // is received. The packetSenderAddress is determined by the underlying module, and may be empty if
+ // the sender is unknown or undefined. The contract is expected to handle the callback within the
+ // user defined gas limit, and handle any errors, or panics gracefully.
+ // This entry point is called with a cached context. If an error is returned, then the changes in
+ // this context will not be persisted, but the packet lifecycle will not be blocked.
+ //
+ // Implementations are provided with the packetSenderAddress and MAY choose to use this to perform
+ // validation on the origin of a given packet. It is recommended to perform the same validation
+ // on all source chain callbacks (SendPacket, AcknowledgementPacket, TimeoutPacket). This
+ // defensively guards against exploits due to incorrectly wired SendPacket ordering in IBC stacks.
+ IBCOnAcknowledgementPacketCallback(
+ cachedCtx sdk.Context,
+ packet channeltypes.Packet,
+ acknowledgement []byte,
+ relayer sdk.AccAddress,
+ contractAddress,
+ packetSenderAddress string,
+ ) error
+ // IBCOnTimeoutPacketCallback is called in the source chain when a packet is not received before
+ // the timeout height. The packetSenderAddress is determined by the underlying module, and may be
+ // empty if the sender is unknown or undefined. The contract is expected to handle the callback
+ // within the user defined gas limit, and handle any error, out of gas, or panics gracefully.
+ // This entry point is called with a cached context. If an error is returned, then the changes in
+ // this context will not be persisted, but the packet lifecycle will not be blocked.
+ //
+ // Implementations are provided with the packetSenderAddress and MAY choose to use this to perform
+ // validation on the origin of a given packet. It is recommended to perform the same validation
+ // on all source chain callbacks (SendPacket, AcknowledgementPacket, TimeoutPacket). This
+ // defensively guards against exploits due to incorrectly wired SendPacket ordering in IBC stacks.
+ IBCOnTimeoutPacketCallback(
+ cachedCtx sdk.Context,
+ packet channeltypes.Packet,
+ relayer sdk.AccAddress,
+ contractAddress,
+ packetSenderAddress string,
+ ) error
+ // IBCReceivePacketCallback is called in the destination chain when a packet acknowledgement is written.
+ // The contract is expected to handle the callback within the user defined gas limit, and handle any errors,
+ // out of gas, or panics gracefully.
+ // This entry point is called with a cached context. If an error is returned, then the changes in
+ // this context will not be persisted, but the packet lifecycle will not be blocked.
+ IBCReceivePacketCallback(
+ cachedCtx sdk.Context,
+ packet ibcexported.PacketI,
+ ack ibcexported.Acknowledgement,
+ contractAddress string,
+ ) error
+}
+```
+
+These are the callback entry points exposed to the secondary application. The secondary application is expected to execute its custom logic within these entry points. The callbacks middleware will handle the execution of these callbacks and revert the state if needed.
+
+:::tip
+Note that the source callback entry points are provided with the `packetSenderAddress` and MAY choose to use this to perform validation on the origin of a given packet. It is recommended to perform the same validation on all source chain callbacks (SendPacket, AcknowledgePacket, TimeoutPacket). This defensively guards against exploits due to incorrectly wired SendPacket ordering in IBC stacks.
+:::
diff --git a/docs/middleware/callbacks/overview.md b/docs/middleware/callbacks/overview.md
new file mode 100644
index 00000000000..9a10b53388a
--- /dev/null
+++ b/docs/middleware/callbacks/overview.md
@@ -0,0 +1,48 @@
+
+
+# Overview
+
+Learn about what the Callbacks Middleware is, and how to build custom modules that utilize the Callbacks Middleware functionality {synopsis}
+
+## What is the Callbacks Middleware?
+
+IBC was designed with callbacks between core IBC and IBC applications. IBC apps would send a packet to core IBC, and receive a callback on every step of that packet's lifecycle. This allows IBC applications to be built on top of core IBC, and to be able to execute custom logic on packet lifecycle events (e.g. unescrow tokens for ICS-20).
+
+This setup worked well for off-chain users interacting with IBC applications. However, we are now seeing the desire for secondary applications (e.g. smart contracts, modules) to call into IBC apps as part of their state machine logic and then do some actions on packet lifecycle events.
+
+The Callbacks Middleware allows for this functionality by allowing the packets of the underlying IBC applications to register callbacks to secondary applications for lifecycle events. These callbacks are then executed by the Callbacks Middleware when the corresponding packet lifecycle event occurs.
+
+After much discussion, the design was expanded to [an ADR](../../architecture/adr-008-app-caller-cbs/adr-008-app-caller-cbs.md), and the Callbacks Middleware is an implementation of that ADR.
+
+## Concepts
+
+Callbacks Middleware was built with smart contracts in mind, but can be used by any secondary application that wants to allow IBC packets to call into it. Think of the Callbacks Middleware as a bridge between core IBC and a secondary application.
+
+We have the following definitions:
+
+- `Underlying IBC application`: The IBC application that is wrapped by the Callbacks Middleware. This is the IBC application that is actually sending and receiving packet lifecycle events from core IBC. For example, the transfer module, or the ICA controller submodule.
+- `IBC Actor`: IBC Actor is an on-chain or off-chain entity that can initiate a packet on the underlying IBC application. For example, a smart contract, an off-chain user, or a module that sends a transfer packet are all IBC Actors.
+- `Secondary application`: The application that is being called into by the Callbacks Middleware for packet lifecycle events. This is the application that is receiving the callback directly from the Callbacks Middleware module. For example, the `x/wasm` module.
+- `Callback Actor`: The on-chain smart contract or module that is registered to receive callbacks from the secondary application. For example, a Wasm smart contract (gatekeeped by the `x/wasm` module). Note that the Callback Actor is not necessarily the same as the IBC Actor. For example, an off-chain user can initiate a packet on the underlying IBC application, but the Callback Actor could be a smart contract. The secondary application may want to check that the IBC Actor is allowed to call into the Callback Actor, for example, by checking that the IBC Actor is the same as the Callback Actor.
+- `Callback Address`: Address of the Callback Actor. This is the address that the secondary application will call into when a packet lifecycle event occurs. For example, the address of the Wasm smart contract.
+- `Maximum gas limit`: The maximum amount of gas that the Callbacks Middleware will allow the secondary application to use when it executes its custom logic.
+- `User defined gas limit`: The amount of gas that the IBC Actor wants to allow the secondary application to use when it executes its custom logic. This is the gas limit that the IBC Actor specifies when it sends a packet to the underlying IBC application. This cannot be greater than the maximum gas limit.
+
+Think of the secondary application as a bridge between the Callbacks Middleware and the Callback Actor. The secondary application is responsible for executing the custom logic of the Callback Actor when a packet lifecycle event occurs. The secondary application is also responsible for checking that the IBC Actor is allowed to call into the Callback Actor.
+
+Note that it is possible that the IBC Actor, Secondary Application, and Callback Actor are all the same entity. In which case, the Callback Address should be the secondary application's module address.
+
+The following diagram shows how a typical `RecvPacket`, `AcknowledgementPacket`, and `TimeoutPacket` execution flow would look like:
+
+
+And the following diagram shows how a typical `SendPacket` and `WriteAcknowledgement` execution flow would look like:
+
+
+## Known Limitations
+
+- Callbacks are always executed after the underlying IBC application has executed its logic.
+- Maximum gas limit is hardcoded manually during wiring. It requires a coordinated upgrade to change the maximum gas limit.
+- The receive packet callback does not pass the relayer address to the secondary application. This is so that we can use the same callback for both synchronous and asynchronous acknowledgements.
+- The receive packet callback does not pass IBC Actor's address, this is because the IBC Actor lives in the counterparty chain and cannot be trusted.
diff --git a/docs/migrations/v7_2-to-v7_3.md b/docs/migrations/v7_2-to-v7_3.md
new file mode 100644
index 00000000000..3017e2bca76
--- /dev/null
+++ b/docs/migrations/v7_2-to-v7_3.md
@@ -0,0 +1,43 @@
+# Migrating from v7.2 to v7.3
+
+This guide provides instructions for migrating to version `v7.3.0` of ibc-go.
+
+There are four sections based on the four potential user groups of this document:
+
+- [Migrating from v7.2 to v7.3](#migrating-from-v72-to-v73)
+ - [Chains](#chains)
+ - [IBC Apps](#ibc-apps)
+ - [Relayers](#relayers)
+ - [IBC Light Clients](#ibc-light-clients)
+
+**Note:** ibc-go supports golang semantic versioning and therefore all imports must be updated on major version releases.
+
+## Chains
+
+- No relevant changes were made in this release.
+
+## IBC Apps
+
+A set of interfaces have been added that IBC applications may optionally implement. Developers interested in integrating their applications with the [callbacks middleware](../middleware/callbacks/overview.md) should implement these interfaces so that the callbacks middleware can retrieve the desired callback addresses on the source and destination chains and execute actions on packet lifecycle events. The interfaces are [`PacketDataUnmarshaler`](https://github.com/cosmos/ibc-go/blob/v7.3.0-rc1/modules/core/05-port/types/module.go#L142-L147), [`PacketDataProvider`](https://github.com/cosmos/ibc-go/blob/v7.3.0-rc1/modules/core/exported/packet.go#L43-L52) and [`PacketData`](https://github.com/cosmos/ibc-go/blob/v7.3.0-rc1/modules/core/exported/packet.go#L36-L41).
+
+Sample implementations are available for reference. For `transfer`:
+
+- [`PacketDataUnmarshaler`](https://github.com/cosmos/ibc-go/blob/v7.3.0-rc1/modules/apps/transfer/ibc_module.go#L303-L313),
+- [`PacketDataProvider`](https://github.com/cosmos/ibc-go/blob/v7.3.0-rc1/modules/apps/transfer/types/packet.go#L85-L105)
+- and [`PacketData`](https://github.com/cosmos/ibc-go/blob/v7.3.0-rc1/modules/apps/transfer/types/packet.go#L74-L83).
+
+For `27-interchain-accounts`:
+
+- [`PacketDataUnmarshaler`](https://github.com/cosmos/ibc-go/blob/v7.3.0-rc1/modules/apps/27-interchain-accounts/controller/ibc_middleware.go#L258-L268),
+- [`PacketDataProvider`](https://github.com/cosmos/ibc-go/blob/v7.3.0-rc1/modules/apps/27-interchain-accounts/types/packet.go#L94-L114)
+- and [`PacketData`](https://github.com/cosmos/ibc-go/blob/v7.3.0-rc1/modules/apps/27-interchain-accounts/types/packet.go#L78-L92).
+
+## Relayers
+
+- No relevant changes were made in this release.
+
+## IBC Light Clients
+
+### 06-solomachine
+
+Solo machines are now expected to sign data on a path that 1) does not include a connection prefix (e.g `ibc`) and 2) does not escape any characters. See PR [#4429](https://github.com/cosmos/ibc-go/pull/4429) for more details. We recommend __NOT__ using the solo machine light client of versions lower than v7.3.0.
diff --git a/docs/versions b/docs/versions
index 0f8d474ab6c..c9bbb7c9fa6 100644
--- a/docs/versions
+++ b/docs/versions
@@ -1,3 +1,4 @@
+release/v7.3.x v7.3.0
release/v7.2.x v7.2.0
release/v7.1.x v7.1.0
release/v7.0.x v7.0.0
diff --git a/e2e/dockerutil/dockerutil.go b/e2e/dockerutil/dockerutil.go
index 4d75f685f5e..bd5a561323d 100644
--- a/e2e/dockerutil/dockerutil.go
+++ b/e2e/dockerutil/dockerutil.go
@@ -16,7 +16,7 @@ import (
const testLabel = "ibc-test"
// GetTestContainers returns all docker containers that have been created by interchain test.
-func GetTestContainers(t *testing.T, ctx context.Context, dc *dockerclient.Client) ([]dockertypes.Container, error) {
+func GetTestContainers(ctx context.Context, t *testing.T, dc *dockerclient.Client) ([]dockertypes.Container, error) {
t.Helper()
testContainers, err := dc.ContainerList(ctx, dockertypes.ContainerListOptions{
diff --git a/e2e/go.mod b/e2e/go.mod
index f79d4502cd2..27a0b65a9b9 100644
--- a/e2e/go.mod
+++ b/e2e/go.mod
@@ -5,13 +5,14 @@ go 1.21
require (
cosmossdk.io/errors v1.0.0
cosmossdk.io/math v1.1.2
- github.com/cometbft/cometbft v0.37.2
- github.com/cosmos/cosmos-sdk v0.47.4
- github.com/cosmos/gogoproto v1.4.10
- github.com/cosmos/ibc-go/v7 v7.2.0
+ cosmossdk.io/x/upgrade v0.0.0-20230818115413-c402c51a1508
+ github.com/cometbft/cometbft v0.38.0-rc3
+ github.com/cosmos/cosmos-sdk v0.50.0-rc.0.0.20230819070346-e8164be94954
+ github.com/cosmos/gogoproto v1.4.11
+ github.com/cosmos/ibc-go/v7 v7.3.0
github.com/cosmos/interchain-accounts v0.5.1
- github.com/docker/docker v24.0.1+incompatible
- github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230622193330-220ce33823c0
+ github.com/docker/docker v24.0.5+incompatible
+ github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230817191535-cc35cd35adbc
github.com/stretchr/testify v1.8.4
go.uber.org/zap v1.25.0
golang.org/x/mod v0.12.0
@@ -20,16 +21,22 @@ require (
)
require (
- cloud.google.com/go v0.110.4 // indirect
- cloud.google.com/go/compute v1.20.1 // indirect
+ cloud.google.com/go v0.110.6 // indirect
+ cloud.google.com/go/compute v1.23.0 // indirect
cloud.google.com/go/compute/metadata v0.2.3 // indirect
- cloud.google.com/go/iam v1.1.0 // indirect
+ cloud.google.com/go/iam v1.1.1 // indirect
cloud.google.com/go/storage v1.30.1 // indirect
- cosmossdk.io/api v0.3.1 // indirect
- cosmossdk.io/core v0.6.0 // indirect
+ cosmossdk.io/api v0.7.0 // indirect
+ cosmossdk.io/client/v2 v2.0.0-20230818115413-c402c51a1508 // indirect
+ cosmossdk.io/collections v0.4.0 // indirect
+ cosmossdk.io/core v0.10.0 // indirect
cosmossdk.io/depinject v1.0.0-alpha.4 // indirect
cosmossdk.io/log v1.2.1 // indirect
- cosmossdk.io/tools/rosetta v0.2.1 // indirect
+ cosmossdk.io/store v1.0.0-alpha.1.0.20230728080422-54ed7dab3982 // indirect
+ cosmossdk.io/x/circuit v0.0.0-20230818115413-c402c51a1508 // indirect
+ cosmossdk.io/x/evidence v0.0.0-20230818115413-c402c51a1508 // indirect
+ cosmossdk.io/x/feegrant v0.0.0-20230818115413-c402c51a1508 // indirect
+ cosmossdk.io/x/tx v0.9.1 // indirect
filippo.io/edwards25519 v1.0.0 // indirect
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect
github.com/99designs/keyring v1.2.2 // indirect
@@ -37,17 +44,18 @@ require (
github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect
github.com/ChainSafe/go-schnorrkel/1 v0.0.0-00010101000000-000000000000 // indirect
github.com/ComposableFi/go-subkey/v2 v2.0.0-tm03420 // indirect
+ github.com/DataDog/zstd v1.5.5 // indirect
github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e // indirect
github.com/FactomProject/btcutilecc v0.0.0-20130527213604-d3a63a5752ec // indirect
github.com/Microsoft/go-winio v0.6.0 // indirect
github.com/StirlingMarketingGroup/go-namecase v1.0.0 // indirect
- github.com/armon/go-metrics v0.4.1 // indirect
- github.com/avast/retry-go/v4 v4.3.4 // indirect
- github.com/aws/aws-sdk-go v1.44.213 // indirect
+ github.com/avast/retry-go/v4 v4.5.0 // indirect
+ github.com/aws/aws-sdk-go v1.44.224 // indirect
github.com/benbjohnson/clock v1.3.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect
+ github.com/bits-and-blooms/bitset v1.8.0 // indirect
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
github.com/cenkalti/backoff/v4 v4.2.0 // indirect
github.com/cespare/xxhash v1.1.0 // indirect
@@ -56,27 +64,26 @@ require (
github.com/cockroachdb/apd/v2 v2.0.2 // indirect
github.com/cockroachdb/errors v1.10.0 // indirect
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
+ github.com/cockroachdb/pebble v0.0.0-20230817233644-564b068800e0 // indirect
github.com/cockroachdb/redact v1.1.5 // indirect
- github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect
+ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect
github.com/cometbft/cometbft-db v0.8.0 // indirect
- github.com/confio/ics23/go v0.9.0 // indirect
github.com/cosmos/btcutil v1.0.5 // indirect
- github.com/cosmos/cosmos-proto v1.0.0-beta.2 // indirect
+ github.com/cosmos/cosmos-db v1.0.0 // indirect
+ github.com/cosmos/cosmos-proto v1.0.0-beta.3 // indirect
github.com/cosmos/go-bip39 v1.0.0 // indirect
github.com/cosmos/gogogateway v1.2.0 // indirect
- github.com/cosmos/iavl v0.20.0 // indirect
- github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1 // indirect
+ github.com/cosmos/iavl v1.0.0-beta.2 // indirect
+ github.com/cosmos/ibc-go/modules/capability v1.0.0-rc3 // indirect
github.com/cosmos/ics23/go v0.10.0 // indirect
github.com/cosmos/ledger-cosmos-go v0.13.0 // indirect
- github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect
- github.com/creachadair/taskgroup v0.5.0 // indirect
github.com/danieljoos/wincred v1.1.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/deckarep/golang-set v1.8.0 // indirect
github.com/decred/base58 v1.0.4 // indirect
- github.com/decred/dcrd/crypto/blake256 v1.0.0 // indirect
+ github.com/decred/dcrd/crypto/blake256 v1.0.1 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.1 // indirect
- github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
+ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect
github.com/dgraph-io/badger/v2 v2.2007.4 // indirect
github.com/dgraph-io/ristretto v0.1.1 // indirect
@@ -86,7 +93,9 @@ require (
github.com/docker/go-units v0.5.0 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/dvsekhvalnov/jose2go v1.5.0 // indirect
+ github.com/emicklei/dot v1.5.0 // indirect
github.com/ethereum/go-ethereum v1.11.2 // indirect
+ github.com/fatih/color v1.15.0 // indirect
github.com/felixge/httpsnoop v1.0.3 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/getsentry/sentry-go v0.23.0 // indirect
@@ -94,6 +103,8 @@ require (
github.com/go-kit/log v0.2.1 // indirect
github.com/go-logfmt/logfmt v0.6.0 // indirect
github.com/go-stack/stack v1.8.1 // indirect
+ github.com/gobwas/httphead v0.1.0 // indirect
+ github.com/gobwas/pool v0.2.1 // indirect
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect
github.com/gogo/googleapis v1.4.1 // indirect
github.com/gogo/protobuf v1.3.3 // indirect
@@ -112,35 +123,40 @@ require (
github.com/gorilla/handlers v1.5.1 // indirect
github.com/gorilla/mux v1.8.0 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
- github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
+ github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect
github.com/gtank/merlin v0.1.1 // indirect
github.com/gtank/ristretto255 v0.1.2 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-getter v1.7.1 // indirect
+ github.com/hashicorp/go-hclog v1.5.0 // indirect
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
+ github.com/hashicorp/go-metrics v0.5.1 // indirect
+ github.com/hashicorp/go-plugin v1.4.10 // indirect
github.com/hashicorp/go-safetemp v1.0.0 // indirect
github.com/hashicorp/go-version v1.6.0 // indirect
github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
+ github.com/hashicorp/yamux v0.1.1 // indirect
github.com/hdevalence/ed25519consensus v0.1.0 // indirect
github.com/huandu/skiplist v1.2.0 // indirect
+ github.com/iancoleman/strcase v0.3.0 // indirect
github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 // indirect
github.com/improbable-eng/grpc-web v0.15.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
- github.com/ipfs/go-cid v0.3.2 // indirect
+ github.com/ipfs/go-cid v0.4.1 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/jmhodges/levigo v1.0.0 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
- github.com/klauspost/compress v1.16.3 // indirect
+ github.com/klauspost/compress v1.16.7 // indirect
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
github.com/kr/pretty v0.3.1 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/lib/pq v1.10.7 // indirect
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
- github.com/libp2p/go-libp2p v0.26.2 // indirect
- github.com/linxGnu/grocksdb v1.7.16 // indirect
+ github.com/libp2p/go-libp2p v0.27.8 // indirect
+ github.com/linxGnu/grocksdb v1.8.0 // indirect
github.com/magiconair/properties v1.8.7 // indirect
github.com/manifoldco/promptui v0.9.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
@@ -157,24 +173,25 @@ require (
github.com/mtibben/percent v0.2.1 // indirect
github.com/multiformats/go-base32 v0.1.0 // indirect
github.com/multiformats/go-base36 v0.2.0 // indirect
- github.com/multiformats/go-multiaddr v0.8.0 // indirect
- github.com/multiformats/go-multibase v0.1.1 // indirect
+ github.com/multiformats/go-multiaddr v0.9.0 // indirect
+ github.com/multiformats/go-multibase v0.2.0 // indirect
github.com/multiformats/go-multicodec v0.8.1 // indirect
github.com/multiformats/go-multihash v0.2.1 // indirect
github.com/multiformats/go-varint v0.0.7 // indirect
+ github.com/oasisprotocol/curve25519-voi v0.0.0-20230110094441-db37f07504ce // indirect
+ github.com/oklog/run v1.1.0 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.0-rc2 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
- github.com/pelletier/go-toml/v2 v2.0.8 // indirect
- github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect
+ github.com/pelletier/go-toml/v2 v2.0.9 // indirect
+ github.com/petermattis/goid v0.0.0-20230518223814-80aa455d8761 // indirect
github.com/pierrec/xxHash v0.1.5 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
- github.com/prometheus/client_golang v1.15.0 // indirect
- github.com/prometheus/client_model v0.3.0 // indirect
- github.com/prometheus/common v0.42.0 // indirect
- github.com/prometheus/procfs v0.9.0 // indirect
- github.com/rakyll/statik v0.1.7 // indirect
+ github.com/prometheus/client_golang v1.16.0 // indirect
+ github.com/prometheus/client_model v0.4.0 // indirect
+ github.com/prometheus/common v0.44.0 // indirect
+ github.com/prometheus/procfs v0.11.1 // indirect
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/rogpeppe/go-internal v1.11.0 // indirect
@@ -192,6 +209,7 @@ require (
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
github.com/tendermint/go-amino v0.16.0 // indirect
github.com/tidwall/btree v1.6.0 // indirect
+ github.com/tklauser/go-sysconf v0.3.11 // indirect
github.com/tyler-smith/go-bip32 v1.0.0 // indirect
github.com/tyler-smith/go-bip39 v1.1.0 // indirect
github.com/ulikunitz/xz v0.5.11 // indirect
@@ -200,38 +218,39 @@ require (
go.etcd.io/bbolt v1.3.7 // indirect
go.opencensus.io v0.24.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
- golang.org/x/crypto v0.11.0 // indirect
- golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect
- golang.org/x/net v0.12.0 // indirect
+ golang.org/x/crypto v0.12.0 // indirect
+ golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 // indirect
+ golang.org/x/net v0.14.0 // indirect
golang.org/x/oauth2 v0.8.0 // indirect
golang.org/x/sync v0.3.0 // indirect
golang.org/x/sys v0.11.0 // indirect
- golang.org/x/term v0.10.0 // indirect
+ golang.org/x/term v0.11.0 // indirect
golang.org/x/text v0.12.0 // indirect
- golang.org/x/tools v0.10.0 // indirect
+ golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
google.golang.org/api v0.126.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
- google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect
+ google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878 // indirect
google.golang.org/protobuf v1.31.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
+ gotest.tools/v3 v3.5.0 // indirect
lukechampine.com/blake3 v1.1.7 // indirect
lukechampine.com/uint128 v1.2.0 // indirect
modernc.org/cc/v3 v3.40.0 // indirect
modernc.org/ccgo/v3 v3.16.13 // indirect
- modernc.org/libc v1.22.5 // indirect
+ modernc.org/libc v1.24.1 // indirect
modernc.org/mathutil v1.5.0 // indirect
- modernc.org/memory v1.5.0 // indirect
+ modernc.org/memory v1.6.0 // indirect
modernc.org/opt v0.1.3 // indirect
- modernc.org/sqlite v1.23.1 // indirect
+ modernc.org/sqlite v1.25.0 // indirect
modernc.org/strutil v1.1.3 // indirect
modernc.org/token v1.1.0 // indirect
nhooyr.io/websocket v1.8.7 // indirect
- pgregory.net/rapid v0.5.5 // indirect
+ pgregory.net/rapid v1.1.0 // indirect
sigs.k8s.io/yaml v1.3.0 // indirect
)
@@ -249,4 +268,4 @@ replace github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.2021
replace github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1
-replace github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.47.5-0.20230828070859-c9144f02dda8
+replace github.com/strangelove-ventures/interchaintest/v7 => github.com/notional-labs/interchaintest/v7 v7.0.0-20230831143727-c9539fd05629
diff --git a/e2e/go.sum b/e2e/go.sum
index 1b5ae7e6c17..984e29b0bd8 100644
--- a/e2e/go.sum
+++ b/e2e/go.sum
@@ -32,8 +32,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9
cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc=
cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU=
cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA=
-cloud.google.com/go v0.110.4 h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk=
-cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
+cloud.google.com/go v0.110.6 h1:8uYAkj3YHTP/1iwReuHPxLSbdcyc+dSBbzFMrVwDR6Q=
+cloud.google.com/go v0.110.6/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw=
cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY=
cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI=
@@ -70,8 +70,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz
cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU=
cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U=
cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU=
-cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg=
-cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
+cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY=
+cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I=
@@ -111,8 +111,8 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97
cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc=
cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY=
cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc=
-cloud.google.com/go/iam v1.1.0 h1:67gSqaPukx7O8WLLHMa0PNs3EBGd2eE4d+psbO/CO94=
-cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk=
+cloud.google.com/go/iam v1.1.1 h1:lW7fzj15aVIXYHREOqjRBV9PsH0Z6u8Y46a1YGvQP4Y=
+cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU=
cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic=
cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI=
cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8=
@@ -187,10 +187,14 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX
cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg=
cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0=
cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M=
-cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE=
-cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw=
-cosmossdk.io/core v0.6.0 h1:V2zyaMVFN6hJSVENYx2XE9CMhzqwJPMjzSQpj0MyXAU=
-cosmossdk.io/core v0.6.0/go.mod h1:YSFzBcKOf/U24e/sa6WFaYSrlZl5zgNvnWwjfFyPniw=
+cosmossdk.io/api v0.7.0 h1:QsEMIWuv9xWDbF2HZnW4Lpu1/SejCztPu0LQx7t6MN4=
+cosmossdk.io/api v0.7.0/go.mod h1:kJFAEMLN57y0viszHDPLMmieF0471o5QAwwApa+270M=
+cosmossdk.io/client/v2 v2.0.0-20230818115413-c402c51a1508 h1:tt5OMwdouv7dkwkWJYxb8I9h322bOxnC9RmK2qGvWMs=
+cosmossdk.io/client/v2 v2.0.0-20230818115413-c402c51a1508/go.mod h1:iHeSk2AT6O8RNGlfcEQq6Yty6Z/6gydQsXXBh5I715Q=
+cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s=
+cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0=
+cosmossdk.io/core v0.10.0 h1:NP28Ol9YyRODmZLJg2ko/mUl40hMegeMzhJnG+XPkcY=
+cosmossdk.io/core v0.10.0/go.mod h1:MygXNld9DvMgYY4yE76DM/mdZpgfeyRjy6FPjEEehlY=
cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc=
cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU=
cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04=
@@ -199,8 +203,18 @@ cosmossdk.io/log v1.2.1 h1:Xc1GgTCicniwmMiKwDxUjO4eLhPxoVdI9vtMW8Ti/uk=
cosmossdk.io/log v1.2.1/go.mod h1:GNSCc/6+DhFIj1aLn/j7Id7PaO8DzNylUZoOYBL9+I4=
cosmossdk.io/math v1.1.2 h1:ORZetZCTyWkI5GlZ6CZS28fMHi83ZYf+A2vVnHNzZBM=
cosmossdk.io/math v1.1.2/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0=
-cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw=
-cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw=
+cosmossdk.io/store v1.0.0-alpha.1.0.20230728080422-54ed7dab3982 h1:61YFeW2AhwwPfoJWzNJWvVubCj32sm5jZkJfraS9pDQ=
+cosmossdk.io/store v1.0.0-alpha.1.0.20230728080422-54ed7dab3982/go.mod h1:QAF9zeRa/9ghuv7E8NS9SzWqRbgVNwH/dZwGhYDHUjI=
+cosmossdk.io/x/circuit v0.0.0-20230818115413-c402c51a1508 h1:9HRBpMbGgk+W4BIp4ezYH2EjbpuVl2fBlwyJ2GZgrS0=
+cosmossdk.io/x/circuit v0.0.0-20230818115413-c402c51a1508/go.mod h1:BhFX0kD6lkctNQO3ZGYY3p6h0/wPLVbFhrOt3uQxEIM=
+cosmossdk.io/x/evidence v0.0.0-20230818115413-c402c51a1508 h1:R9H1lDpcPSkrLOnt6IDE38o0Wp8xE/+BAxocb0oyX4I=
+cosmossdk.io/x/evidence v0.0.0-20230818115413-c402c51a1508/go.mod h1:yjIo3J0QKDo9CJawK1QoTA1hBx0llafVJdPqI0+ry74=
+cosmossdk.io/x/feegrant v0.0.0-20230818115413-c402c51a1508 h1:TKqjhhTfLchU8nSo1WZRgaH7xZWzYUQXVRj9CePcbaw=
+cosmossdk.io/x/feegrant v0.0.0-20230818115413-c402c51a1508/go.mod h1:kOr8Rr10RoMeGGk/pfW5yo1R7GQTGu4KdRgKphVvjz4=
+cosmossdk.io/x/tx v0.9.1 h1:9pmmXA9Vs4qdouOFnzhsdsff2mif0f0kylMq5xTGhRI=
+cosmossdk.io/x/tx v0.9.1/go.mod h1:/YFGTXG6+kyihd8YbfuJiXHV4R/mIMm2uvVzo80CIhA=
+cosmossdk.io/x/upgrade v0.0.0-20230818115413-c402c51a1508 h1:tZ5fSX+ev+QHQ15457Vhxug8BSZJcHeBhU8DpgwlkCc=
+cosmossdk.io/x/upgrade v0.0.0-20230818115413-c402c51a1508/go.mod h1:M0JWINHzdN0eFHrWMs082akHHSO5muExS+/tNNIOyP8=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek=
filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns=
@@ -208,8 +222,8 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMb
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4=
github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0=
github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk=
-github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
-github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
+github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
+github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=
github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
@@ -221,6 +235,8 @@ github.com/ChainSafe/go-schnorrkel v1.0.0/go.mod h1:dpzHYVxLZcp8pjlV+O+UR8K0Hp/z
github.com/ComposableFi/go-subkey/v2 v2.0.0-tm03420 h1:oknQF/iIhf5lVjbwjsVDzDByupRhga8nhA3NAmwyHDA=
github.com/ComposableFi/go-subkey/v2 v2.0.0-tm03420/go.mod h1:KYkiMX5AbOlXXYfxkrYPrRPV6EbVUALTQh5ptUOJzu8=
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
+github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ=
+github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw=
github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e h1:ahyvB3q25YnZWly5Gq1ekg6jcmWaGj/vG/MhF4aisoc=
github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e/go.mod h1:kGUqhHd//musdITWjFvNTHn90WG9bMLBEPQZ17Cmlpw=
github.com/FactomProject/btcutilecc v0.0.0-20130527213604-d3a63a5752ec h1:1Qb69mGp/UtRPn422BH4/Y4Q3SLUrD9KHuDkm8iodFc=
@@ -254,18 +270,17 @@ github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
-github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA=
-github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A=
-github.com/avast/retry-go/v4 v4.3.4 h1:pHLkL7jvCvP317I8Ge+Km2Yhntv3SdkJm7uekkqbKhM=
-github.com/avast/retry-go/v4 v4.3.4/go.mod h1:rv+Nla6Vk3/ilU0H51VHddWHiwimzX66yZ0JT6T+UvE=
+github.com/avast/retry-go/v4 v4.5.0 h1:QoRAZZ90cj5oni2Lsgl2GW8mNTnUCnmpx/iKpwVisHg=
+github.com/avast/retry-go/v4 v4.5.0/go.mod h1:7hLEXp0oku2Nir2xBAsg0PTphp9z71bN5Aq1fboC3+I=
github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
-github.com/aws/aws-sdk-go v1.44.213 h1:WahquyWs7cQdz0vpDVWyWETEemgSoORx0PbWL9oz2WA=
-github.com/aws/aws-sdk-go v1.44.213/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
+github.com/aws/aws-sdk-go v1.44.224 h1:09CiaaF35nRmxrzWZ2uRq5v6Ghg/d2RiPjZnSgtt+RQ=
+github.com/aws/aws-sdk-go v1.44.224/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
+github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A=
github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
@@ -277,16 +292,18 @@ github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s=
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
+github.com/bits-and-blooms/bitset v1.8.0 h1:FD+XqgOZDUxxZ8hzoBFuV9+cGWY9CslN6d5MS5JVb4c=
+github.com/bits-and-blooms/bitset v1.8.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U=
github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04=
-github.com/btcsuite/btcd/btcutil v1.1.2 h1:XLMbX8JQEiwMcYft2EGi8zPUkoa0abKIU6/BJSRsjzQ=
-github.com/btcsuite/btcd/btcutil v1.1.2/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0=
+github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ=
+github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0=
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U=
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc=
github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce h1:YtWJF7RHm2pYCvA5t0RPmAaLUhREsKuKd+SLhxFbFeQ=
github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o=
-github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA=
-github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8=
+github.com/bufbuild/protocompile v0.5.1 h1:mixz5lJX4Hiz4FpqFREJHIXLfaLBntfaJv1h+/jS+Qg=
+github.com/bufbuild/protocompile v0.5.1/go.mod h1:G5iLmavmF4NsYtpZFvE3B/zFch2GIY8+wjsYLR/lc40=
github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
@@ -327,21 +344,23 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWH
github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E=
github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw=
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
+github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4=
+github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU=
github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU=
github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE=
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE=
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs=
+github.com/cockroachdb/pebble v0.0.0-20230817233644-564b068800e0 h1:M4A5LioEhkZ/s+m0g0pWgiLBQr83p0jWnQUo320Qy+A=
+github.com/cockroachdb/pebble v0.0.0-20230817233644-564b068800e0/go.mod h1:EDjiaAXc0FXiRmxDzcu1wIEJ093ohHMUWxrI6iku0XA=
github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30=
github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=
+github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo=
+github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
-github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA=
-github.com/coinbase/rosetta-sdk-go/types v1.0.0/go.mod h1:eq7W2TMRH22GTW0N0beDnN931DW0/WOI1R2sdHNHG4c=
-github.com/cometbft/cometbft v0.37.2 h1:XB0yyHGT0lwmJlFmM4+rsRnczPlHoAKFX6K8Zgc2/Jc=
-github.com/cometbft/cometbft v0.37.2/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs=
+github.com/cometbft/cometbft v0.38.0-rc3 h1:Ly3eVPWoFu0y68PmZwLljucPdEBtfigZtqm+OV1W6dE=
+github.com/cometbft/cometbft v0.38.0-rc3/go.mod h1:5Jz0Z8YsHSf0ZaAqGvi/ifioSdVFPtEGrm8Y9T/993k=
github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AKVZpjo=
github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0=
-github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4=
-github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak=
github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg=
github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM=
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
@@ -352,35 +371,33 @@ github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk=
github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis=
-github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8=
-github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0=
-github.com/cosmos/cosmos-sdk v0.47.5-0.20230828070859-c9144f02dda8 h1:H4+Ma/eOLsjG3PyK6CLVAup4MfxwzPqUa+02jV2hz08=
-github.com/cosmos/cosmos-sdk v0.47.5-0.20230828070859-c9144f02dda8/go.mod h1:EHwCeN9IXonsjKcjpS12MqeStdZvIdxt3VYXhus3G3c=
+github.com/cosmos/cosmos-db v1.0.0 h1:EVcQZ+qYag7W6uorBKFPvX6gRjw6Uq2hIh4hCWjuQ0E=
+github.com/cosmos/cosmos-db v1.0.0/go.mod h1:iBvi1TtqaedwLdcrZVYRSSCb6eSy61NLj4UNmdIgs0U=
+github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o=
+github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I=
+github.com/cosmos/cosmos-sdk v0.50.0-rc.0.0.20230819070346-e8164be94954 h1:DSVQWPZyt0f7T0Arw7doznp9BK+HDzv3h6HwjMJxNCU=
+github.com/cosmos/cosmos-sdk v0.50.0-rc.0.0.20230819070346-e8164be94954/go.mod h1:6HsAg8cQ/D3JnFN7jao6DOuTLWnUC4qh/vracVlSLAM=
github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y=
github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY=
github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw=
github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE=
github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI=
github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU=
-github.com/cosmos/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI=
-github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek=
-github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38=
-github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A=
-github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1 h1:BvSKnPFKxL+TTSLxGKwJN4x0ndCZj0yfXhSvmsQztSA=
-github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1/go.mod h1:A+CxAQdn2j6ihDTbClpEEBdHthWgAUAcHbRAQPY8sl4=
+github.com/cosmos/gogoproto v1.4.11 h1:LZcMHrx4FjUgrqQSWeaGC1v/TeuVFqSLa43CC6aWR2g=
+github.com/cosmos/gogoproto v1.4.11/go.mod h1:/g39Mh8m17X8Q/GDEs5zYTSNaNnInBSohtaxzQnYq1Y=
+github.com/cosmos/iavl v1.0.0-beta.2 h1:XOsIM80Yyml/KifCXEYOy9tWCXwMAbLa91n6pReW07Y=
+github.com/cosmos/iavl v1.0.0-beta.2/go.mod h1:EA97dJ07TBktRlG/iGzK6g1eCXNj1q3MGoFYkVzrwHE=
+github.com/cosmos/ibc-go/modules/capability v1.0.0-rc3 h1:jEq48O/lE7dT34U6dJLLl8PaHSwerFrRqgaVVPg7J4A=
+github.com/cosmos/ibc-go/modules/capability v1.0.0-rc3/go.mod h1:h+HXgDnFpzthSy7mKw3xCeOG1QZDiwlz7Vuw8eSevjg=
github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM=
github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0=
github.com/cosmos/interchain-accounts v0.5.1 h1:J5ZaYsMc2u4DekKXbDPzv8nu4YD/RSmT0F8dmN7G1oM=
github.com/cosmos/interchain-accounts v0.5.1/go.mod h1:JB3gKbX8geQhxEIrBQtpDco0cyKMUDpVhugb78e5z6U=
github.com/cosmos/ledger-cosmos-go v0.13.0 h1:ex0CvCxToSR7j5WjrghPu2Bu9sSXKikjnVvUryNnx4s=
github.com/cosmos/ledger-cosmos-go v0.13.0/go.mod h1:ZcqYgnfNJ6lAXe4HPtWgarNEY+B74i+2/8MhZw4ziiI=
-github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM=
-github.com/cosmos/rosetta-sdk-go v0.10.0/go.mod h1:SImAZkb96YbwvoRkzSMQB6noNJXFgWl/ENIznEoYQI4=
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
-github.com/creachadair/taskgroup v0.5.0 h1:44w3girt9OM0yPPoqGDO7u8+XEk6uG49PhnEn+8+nHY=
-github.com/creachadair/taskgroup v0.5.0/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0=
@@ -396,12 +413,13 @@ github.com/decred/base58 v1.0.4 h1:QJC6B0E0rXOPA8U/kw2rP+qiRJsUaE2Er+pYb3siUeA=
github.com/decred/base58 v1.0.4/go.mod h1:jJswKPEdvpFpvf7dsDvFZyLT22xZ9lWqEByX38oGd9E=
github.com/decred/dcrd/chaincfg/chainhash v1.0.2 h1:rt5Vlq/jM3ZawwiacWjPa+smINyLRN07EO0cNBV6DGU=
github.com/decred/dcrd/chaincfg/chainhash v1.0.2/go.mod h1:BpbrGgrPTr3YJYRN3Bm+D9NuaFd+zGyNeIKgrhCXK60=
-github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0=
github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc=
+github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y=
+github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo=
github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.1 h1:18HurQ6DfHeNvwIjvOmrgr44bPdtVaQAe/WWwHg9goM=
github.com/decred/dcrd/dcrec/secp256k1/v2 v2.0.1/go.mod h1:XmyzkaXBy7ZvHdrTAlXAjpog8qKSAWa3ze7yqzWmgmc=
-github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4=
-github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc=
+github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs=
+github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I=
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE=
github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o=
@@ -415,8 +433,8 @@ github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WA
github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8=
github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
-github.com/docker/docker v24.0.1+incompatible h1:NxN81beIxDlUaVt46iUQrYHD9/W3u9EGl52r86O/IGw=
-github.com/docker/docker v24.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/docker v24.0.5+incompatible h1:WmgcE4fxyI6EEXxBRxsHnZXrO1pQ3smi0k/jho4HLeY=
+github.com/docker/docker v24.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
@@ -431,6 +449,8 @@ github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5m
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
+github.com/emicklei/dot v1.5.0 h1:tc9eKdCBTgoR68vJ6OcgMtI0SdrGDwLPPVaPA6XhX50=
+github.com/emicklei/dot v1.5.0/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s=
github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
@@ -445,6 +465,9 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
github.com/ethereum/go-ethereum v1.11.2 h1:z/luyejbevDCAMUUiu0rc80dxJxOnpoG58k5o0tSawc=
github.com/ethereum/go-ethereum v1.11.2/go.mod h1:DuefStAgaxoaYGLR0FueVcVbehmn5n9QUcVrMCuOvuc=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
+github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
+github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
+github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk=
github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
@@ -476,6 +499,7 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2
github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o=
github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4=
github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs=
+github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU=
github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
@@ -499,10 +523,12 @@ github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw=
github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4=
-github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0=
github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo=
-github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8=
+github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU=
+github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM=
github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw=
+github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og=
+github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw=
github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo=
github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM=
github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk=
@@ -605,8 +631,8 @@ github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLe
github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20221203041831-ce31453925ec h1:fR20TYVVwhK4O7r7y+McjRYyaTH6/vjwJOajE+XhlzM=
-github.com/google/pprof v0.0.0-20221203041831-ce31453925ec/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo=
+github.com/google/pprof v0.0.0-20230405160723-4a4c7d95572b h1:Qcx5LM0fSiks9uCyFZwDBUasd3lxd1RM0GYpL+Li5o4=
+github.com/google/pprof v0.0.0-20230405160723-4a4c7d95572b/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc=
github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A=
@@ -646,8 +672,8 @@ github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWm
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI=
-github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
-github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
+github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
+github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
@@ -668,11 +694,17 @@ github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9n
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
github.com/hashicorp/go-getter v1.7.1 h1:SWiSWN/42qdpR0MdhaOc/bLR48PLuP1ZQtYLRlM69uY=
github.com/hashicorp/go-getter v1.7.1/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744=
+github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c=
+github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc=
github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
+github.com/hashicorp/go-metrics v0.5.1 h1:rfPwUqFU6uZXNvGl4hzjY8LEBsqFVU4si1H9/Hqck/U=
+github.com/hashicorp/go-metrics v0.5.1/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE=
github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
+github.com/hashicorp/go-plugin v1.4.10 h1:xUbmA4jC6Dq163/fWcp8P3JuHilrHHMLNRxzGQJ9hNk=
+github.com/hashicorp/go-plugin v1.4.10/go.mod h1:6/1TEzT0eQznvI/gV2CM29DLSkAK/e58mUWKVsPaph0=
github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo=
@@ -680,8 +712,9 @@ github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoD
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE=
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE=
+github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek=
github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
@@ -696,6 +729,8 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
+github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE=
+github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ=
github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU=
github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
@@ -704,6 +739,8 @@ github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0Jr
github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw=
github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w=
github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
+github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI=
+github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/icza/dyno v0.0.0-20220812133438-f0b6f8a18845 h1:H+uM0Bv88eur3ZSsd2NGKg3YIiuXxwxtlN7HjE66UTU=
@@ -714,8 +751,8 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
-github.com/ipfs/go-cid v0.3.2 h1:OGgOd+JCFM+y1DjWPmVH+2/4POtpDzwcr7VgnB7mZXc=
-github.com/ipfs/go-cid v0.3.2/go.mod h1:gQ8pKqT/sUxGY+tIwy1RPpAojYu7jAyCp5Tz1svoupw=
+github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s=
+github.com/ipfs/go-cid v0.4.1/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk=
github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c=
github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo=
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
@@ -747,8 +784,8 @@ github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs
github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
-github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY=
-github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
+github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
+github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk=
@@ -771,12 +808,12 @@ github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw=
github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8=
github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg=
-github.com/libp2p/go-libp2p v0.26.2 h1:eHEoW/696FP7/6DxOvcrKfTD6Bi0DExxiMSZUJxswA0=
-github.com/libp2p/go-libp2p v0.26.2/go.mod h1:x75BN32YbwuY0Awm2Uix4d4KOz+/4piInkp4Wr3yOo8=
+github.com/libp2p/go-libp2p v0.27.8 h1:IX5x/4yKwyPQeVS2AXHZ3J4YATM9oHBGH1gBc23jBAI=
+github.com/libp2p/go-libp2p v0.27.8/go.mod h1:eCFFtd0s5i/EVKR7+5Ki8bM7qwkNW3TPTTSSW9sz8NE=
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
-github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8=
-github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4=
+github.com/linxGnu/grocksdb v1.8.0 h1:H4L/LhP7GOMf1j17oQAElHgVlbEje2h14A8Tz9cM2BE=
+github.com/linxGnu/grocksdb v1.8.0/go.mod h1:09CeBborffXhXdNpEcOeZrLKEnRtrZFEpFdPNI9Zjjg=
github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
@@ -784,6 +821,7 @@ github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3v
github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA=
github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
+github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
@@ -824,8 +862,8 @@ github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:F
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae h1:O4SWKdcHVCvYqyDV+9CJA1fcDN2L11Bule0iFy3YlAI=
-github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw=
+github.com/moby/term v0.0.0-20221205130635-1aeaba878587 h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA=
+github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -843,10 +881,10 @@ github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aG
github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI=
github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0=
github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4=
-github.com/multiformats/go-multiaddr v0.8.0 h1:aqjksEcqK+iD/Foe1RRFsGZh8+XFiGo7FgUCZlpv3LU=
-github.com/multiformats/go-multiaddr v0.8.0/go.mod h1:Fs50eBDWvZu+l3/9S6xAE7ZYj6yhxlvaVZjakWN7xRs=
-github.com/multiformats/go-multibase v0.1.1 h1:3ASCDsuLX8+j4kx58qnJ4YFq/JWTJpCyDW27ztsVTOI=
-github.com/multiformats/go-multibase v0.1.1/go.mod h1:ZEjHE+IsUrgp5mhlEAYjMtZwK1k4haNkcaPg9aoe1a8=
+github.com/multiformats/go-multiaddr v0.9.0 h1:3h4V1LHIk5w4hJHekMKWALPXErDfz/sggzwC/NcqbDQ=
+github.com/multiformats/go-multiaddr v0.9.0/go.mod h1:mI67Lb1EeTOYb8GQfL/7wpIZwc46ElrvzhYnoJOmTT0=
+github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g=
+github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk=
github.com/multiformats/go-multicodec v0.8.1 h1:ycepHwavHafh3grIbR1jIXnKCsFm0fqsfEOsJ8NtKE8=
github.com/multiformats/go-multicodec v0.8.1/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k=
github.com/multiformats/go-multihash v0.2.1 h1:aem8ZT0VA2nCHHk7bPJ1BjUbHNciqZC/d16Vve9l108=
@@ -865,11 +903,17 @@ github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi
github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
+github.com/notional-labs/interchaintest/v7 v7.0.0-20230831143727-c9539fd05629 h1:SK5ocs5U5Hip/JyX/cF2k+SP3NEBy1HKiv+JAwKp0gg=
+github.com/notional-labs/interchaintest/v7 v7.0.0-20230831143727-c9539fd05629/go.mod h1:5vnJ/UcQjSmFEDt4iglmCcftSn0votAA7+V7ZlwuUU8=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
+github.com/oasisprotocol/curve25519-voi v0.0.0-20230110094441-db37f07504ce h1:/pEpMk55wH0X+E5zedGEMOdLuWmV8P4+4W3+LZaM6kg=
+github.com/oasisprotocol/curve25519-voi v0.0.0-20230110094441-db37f07504ce/go.mod h1:hVoHR2EVESiICEMbg137etN/Lx+lSrHPTD39Z/uE+2s=
github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=
github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
+github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
+github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU=
github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
@@ -880,8 +924,8 @@ github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q=
-github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo=
+github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E=
+github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ=
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
@@ -907,12 +951,12 @@ github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtP
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
-github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
-github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
+github.com/pelletier/go-toml/v2 v2.0.9 h1:uH2qQXheeefCCkuBBSLi7jCiSmj3VRh2+Goq2N7Xxu0=
+github.com/pelletier/go-toml/v2 v2.0.9/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o=
-github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6R18ax0tZ2BJeNB3NehB3trOwYBsdU=
-github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4=
+github.com/petermattis/goid v0.0.0-20230518223814-80aa455d8761 h1:W04oB3d0J01W5jgYRGKsV8LCM6g9EkCvPkZcmFuy0OE=
+github.com/petermattis/goid v0.0.0-20230518223814-80aa455d8761/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4=
github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pierrec/xxHash v0.1.5 h1:n/jBpwTHiER4xYvK3/CdPVnLDPchj8eTJFFLUb4QHBo=
@@ -935,34 +979,32 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn
github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og=
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.15.0 h1:5fCgGYogn0hFdhyhLbw7hEsWxufKtY9klyvdNfFlFhM=
-github.com/prometheus/client_golang v1.15.0/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk=
+github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
+github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4=
-github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
+github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
+github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
-github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM=
-github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc=
+github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
+github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI=
-github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY=
-github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ=
-github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc=
+github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI=
+github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
@@ -1027,8 +1069,6 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An
github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc=
github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg=
-github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230622193330-220ce33823c0 h1:EmPhftNfcYilfyhv0X8a2wGdLAro19zooZoQqe9/6Ms=
-github.com/strangelove-ventures/interchaintest/v7 v7.0.0-20230622193330-220ce33823c0/go.mod h1:CQxeTz7/TUfTbwJ3hJgHwxaZGfeJUuyIXvSQOz5gH38=
github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
@@ -1045,10 +1085,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=
@@ -1059,10 +1098,10 @@ github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2l
github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME=
github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg=
github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY=
-github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw=
-github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk=
-github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o=
-github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ=
+github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM=
+github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI=
+github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms=
+github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4=
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
github.com/tyler-smith/go-bip32 v1.0.0 h1:sDR9juArbUgX+bO/iblgZnMPeWY1KZMUC2AFUJdv5KE=
@@ -1111,15 +1150,19 @@ go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqe
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
+go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk=
go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
+go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
+go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c=
go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk=
golang.org/x/crypto v0.0.0-20170613210332-850760c427c5/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -1138,8 +1181,8 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
-golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
+golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
+golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -1151,8 +1194,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw=
-golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us=
-golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
+golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ=
+golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -1242,8 +1285,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
-golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
-golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
+golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14=
+golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1362,6 +1405,7 @@ golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -1385,14 +1429,15 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c=
-golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
+golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0=
+golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1431,6 +1476,7 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -1472,8 +1518,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
-golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg=
-golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM=
+golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846 h1:Vve/L0v7CXXuxUmaMGIEK/dEeq7uiqb5qBgQrZzIE7E=
+golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -1652,12 +1698,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw
google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
-google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 h1:Au6te5hbKUV8pIYWHqOUZ1pva5qK/rwbIhoXEUB9Lu8=
-google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y=
-google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 h1:s5YSX+ZH5b5vS9rnpGymvIyMpLRJizowqDlOuyjXnTk=
-google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM=
+google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 h1:L6iMMGrtzgHsWofoFcihmDEMYeDR9KN/ThbPWGrh++g=
+google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5/go.mod h1:oH/ZOT02u4kWEp7oYBGYFFkCdKS/uYR9Z7+0/xuuFp8=
+google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e h1:z3vDksarJxsAKM5dmEGv0GHwE2hKJ096wZra71Vs4sw=
+google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878 h1:lv6/DhyiFFGsmzxbsUUTOkN29II+zeWHxvT8Lpdxsv0=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
@@ -1753,7 +1799,6 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY=
gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
@@ -1778,16 +1823,16 @@ modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk=
modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ=
modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM=
modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM=
-modernc.org/libc v1.22.5 h1:91BNch/e5B0uPbJFgqbxXuOnxBQjlS//icfQEGmvyjE=
-modernc.org/libc v1.22.5/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY=
+modernc.org/libc v1.24.1 h1:uvJSeCKL/AgzBo2yYIPPTy82v21KgGnizcGYfBHaNuM=
+modernc.org/libc v1.24.1/go.mod h1:FmfO1RLrU3MHJfyi9eYYmZBfi/R+tqZ6+hQ3yQQUkak=
modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ=
modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
-modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds=
-modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
+modernc.org/memory v1.6.0 h1:i6mzavxrE9a30whzMfwf7XWVODx2r5OYXvU46cirX7o=
+modernc.org/memory v1.6.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
-modernc.org/sqlite v1.23.1 h1:nrSBg4aRQQwq59JpvGEQ15tNxoO5pX/kUjcRNwSAGQM=
-modernc.org/sqlite v1.23.1/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk=
+modernc.org/sqlite v1.25.0 h1:AFweiwPNd/b3BoKnBOfFm+Y260guGMF+0UFk0savqeA=
+modernc.org/sqlite v1.25.0/go.mod h1:FL3pVXie73rg3Rii6V/u5BoHlSoyeZeIgKZEgHARyCU=
modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY=
modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw=
modernc.org/tcl v1.15.2 h1:C4ybAYCGJw968e+Me18oW55kD/FexcHbqH2xak1ROSY=
@@ -1799,8 +1844,8 @@ modernc.org/z v1.7.3/go.mod h1:Ipv4tsdxZRbQyLq9Q1M6gdbkxYzdlrciF2Hi/lS7nWE=
nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g=
nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
-pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA=
-pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
+pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw=
+pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
diff --git a/e2e/relayer/relayer.go b/e2e/relayer/relayer.go
index 0ca78a34327..4abfc860e21 100644
--- a/e2e/relayer/relayer.go
+++ b/e2e/relayer/relayer.go
@@ -15,9 +15,9 @@ const (
Rly = "rly"
Hermes = "hermes"
- hermesRelayerRepository = "ghcr.io/informalsystems/hermes"
+ HermesRelayerRepository = "colinaxner/hermes"
hermesRelayerUser = "1000:1000"
- rlyRelayerRepository = "ghcr.io/cosmos/relayer"
+ RlyRelayerRepository = "ghcr.io/cosmos/relayer"
rlyRelayerUser = "100:1000" // docker run -it --rm --entrypoint echo ghcr.io/cosmos/relayer "$(id -u):$(id -g)"
)
@@ -33,11 +33,12 @@ type Config struct {
// New returns an implementation of ibc.Relayer depending on the provided RelayerType.
func New(t *testing.T, cfg Config, logger *zap.Logger, dockerClient *dockerclient.Client, network string) ibc.Relayer {
+ t.Helper()
switch cfg.Type {
case Rly:
- return newCosmosRelayer(t, cfg.Tag, logger, dockerClient, network)
+ return newCosmosRelayer(t, cfg.Tag, logger, dockerClient, network, cfg.Image)
case Hermes:
- return newHermesRelayer(t, cfg.Tag, logger, dockerClient, network)
+ return newHermesRelayer(t, cfg.Tag, logger, dockerClient, network, cfg.Image)
default:
panic(fmt.Sprintf("unknown relayer specified: %s", cfg.Type))
}
@@ -45,8 +46,14 @@ func New(t *testing.T, cfg Config, logger *zap.Logger, dockerClient *dockerclien
// newCosmosRelayer returns an instance of the go relayer.
// Options are used to allow for relayer version selection and specifying the default processing option.
-func newCosmosRelayer(t *testing.T, tag string, logger *zap.Logger, dockerClient *dockerclient.Client, network string) ibc.Relayer {
- customImageOption := relayer.CustomDockerImage(rlyRelayerRepository, tag, rlyRelayerUser)
+func newCosmosRelayer(t *testing.T, tag string, logger *zap.Logger, dockerClient *dockerclient.Client, network, relayerImage string) ibc.Relayer {
+ t.Helper()
+
+ if relayerImage == "" {
+ relayerImage = RlyRelayerRepository
+ }
+
+ customImageOption := relayer.CustomDockerImage(relayerImage, tag, rlyRelayerUser)
relayerProcessingOption := relayer.StartupFlags("-p", "events") // relayer processes via events
relayerFactory := interchaintest.NewBuiltinRelayerFactory(ibc.CosmosRly, logger, customImageOption, relayerProcessingOption)
@@ -57,8 +64,14 @@ func newCosmosRelayer(t *testing.T, tag string, logger *zap.Logger, dockerClient
}
// newHermesRelayer returns an instance of the hermes relayer.
-func newHermesRelayer(t *testing.T, tag string, logger *zap.Logger, dockerClient *dockerclient.Client, network string) ibc.Relayer {
- customImageOption := relayer.CustomDockerImage(hermesRelayerRepository, tag, hermesRelayerUser)
+func newHermesRelayer(t *testing.T, tag string, logger *zap.Logger, dockerClient *dockerclient.Client, network, relayerImage string) ibc.Relayer {
+ t.Helper()
+
+ if relayerImage == "" {
+ relayerImage = HermesRelayerRepository
+ }
+
+ customImageOption := relayer.CustomDockerImage(relayerImage, tag, hermesRelayerUser)
relayerFactory := interchaintest.NewBuiltinRelayerFactory(ibc.Hermes, logger, customImageOption)
return relayerFactory.Build(
@@ -66,19 +79,19 @@ func newHermesRelayer(t *testing.T, tag string, logger *zap.Logger, dockerClient
)
}
-// RelayerMap is a mapping from test names to a relayer set for that test.
-type RelayerMap map[string]map[ibc.Wallet]bool
+// Map is a mapping from test names to a relayer set for that test.
+type Map map[string]map[ibc.Wallet]bool
// AddRelayer adds the given relayer to the relayer set for the given test name.
-func (r RelayerMap) AddRelayer(testName string, relayer ibc.Wallet) {
+func (r Map) AddRelayer(testName string, ibcrelayer ibc.Wallet) {
if _, ok := r[testName]; !ok {
r[testName] = make(map[ibc.Wallet]bool)
}
- r[testName][relayer] = true
+ r[testName][ibcrelayer] = true
}
// containsRelayer returns true if the given relayer is in the relayer set for the given test name.
-func (r RelayerMap) ContainsRelayer(testName string, wallet ibc.Wallet) bool {
+func (r Map) ContainsRelayer(testName string, wallet ibc.Wallet) bool {
if relayerSet, ok := r[testName]; ok {
return relayerSet[wallet]
}
diff --git a/e2e/sample.config.yaml b/e2e/sample.config.yaml
index 250738a27ac..b9d47095b7b 100644
--- a/e2e/sample.config.yaml
+++ b/e2e/sample.config.yaml
@@ -21,9 +21,9 @@ chains:
binary: simd # override with CHAIN_BINARY
relayer:
- type: rly # override with RELAYER_TYPE
- image: ghcr.io/cosmos/relayer
- tag: latest # override with RELAYER_TAG
+ type: hermes # override with RELAYER_TYPE
+ image: colinaxner/hermes # override with RELAYER_IMAGE
+ tag: "v1.6.0" # override with RELAYER_TAG
cometbft:
logLevel: info
diff --git a/e2e/tests/core/02-client/client_test.go b/e2e/tests/core/02-client/client_test.go
index ca84849959e..9b69821de65 100644
--- a/e2e/tests/core/02-client/client_test.go
+++ b/e2e/tests/core/02-client/client_test.go
@@ -3,11 +3,22 @@ package client
import (
"context"
"fmt"
+ "slices"
"sort"
"strings"
"testing"
"time"
+ "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ test "github.com/strangelove-ventures/interchaintest/v7/testutil"
+ testifysuite "github.com/stretchr/testify/suite"
+
+ "github.com/cosmos/cosmos-sdk/client/grpc/cmtservice"
+ "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519"
+ govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
+ paramsproposaltypes "github.com/cosmos/cosmos-sdk/x/params/types/proposal"
+
"github.com/cometbft/cometbft/crypto/tmhash"
tmjson "github.com/cometbft/cometbft/libs/json"
"github.com/cometbft/cometbft/privval"
@@ -15,16 +26,7 @@ import (
tmprotoversion "github.com/cometbft/cometbft/proto/tendermint/version"
tmtypes "github.com/cometbft/cometbft/types"
tmversion "github.com/cometbft/cometbft/version"
- "github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
- "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519"
- "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
- test "github.com/strangelove-ventures/interchaintest/v7/testutil"
- testifysuite "github.com/stretchr/testify/suite"
- govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
- paramsproposaltypes "github.com/cosmos/cosmos-sdk/x/params/types/proposal"
- "github.com/cosmos/cosmos-sdk/x/upgrade/types"
"github.com/cosmos/ibc-go/e2e/dockerutil"
"github.com/cosmos/ibc-go/e2e/testsuite"
"github.com/cosmos/ibc-go/e2e/testvalues"
@@ -79,7 +81,7 @@ func (s *ClientTestSuite) TestClientUpdateProposal_Succeeds() {
subjectClientID string
substituteClientID string
// set the trusting period to a value which will still be valid upon client creation, but invalid before the first update
- badTrustingPeriod = time.Duration(time.Second * 10)
+ badTrustingPeriod = time.Second * 10
)
t.Run("create substitute client with correct trusting period", func(t *testing.T) {
@@ -259,7 +261,7 @@ func (s *ClientTestSuite) TestClient_Update_Misbehaviour() {
})
t.Run("create validator set", func(t *testing.T) {
- var validators []*tmservice.Validator
+ var validators []*cmtservice.Validator
t.Run("fetch block header at latest client state height", func(t *testing.T) {
header, err = s.GetBlockHeaderByHeight(ctx, chainB, latestHeight.GetRevisionHeight())
@@ -323,7 +325,12 @@ func (s *ClientTestSuite) TestAllowedClientsParam() {
t.Run("ensure allowed clients are set to the default", func(t *testing.T) {
allowedClients := s.QueryAllowedClients(ctx, chainA)
- s.Require().Equal(clienttypes.DefaultAllowedClients, allowedClients)
+
+ defaultAllowedClients := clienttypes.DefaultAllowedClients
+ if !testvalues.LocalhostClientFeatureReleases.IsSupported(chainAVersion) {
+ defaultAllowedClients = slices.DeleteFunc(defaultAllowedClients, func(s string) bool { return s == ibcexported.Localhost })
+ }
+ s.Require().Equal(defaultAllowedClients, allowedClients)
})
allowedClient := ibcexported.Solomachine
@@ -362,7 +369,7 @@ func (s *ClientTestSuite) TestAllowedClientsParam() {
// extractChainPrivateKeys returns a slice of tmtypes.PrivValidator which hold the private keys for all validator
// nodes for a given chain.
func (s *ClientTestSuite) extractChainPrivateKeys(ctx context.Context, chain *cosmos.CosmosChain) []tmtypes.PrivValidator {
- testContainers, err := dockerutil.GetTestContainers(s.T(), ctx, s.DockerClient)
+ testContainers, err := dockerutil.GetTestContainers(ctx, s.T(), s.DockerClient)
s.Require().NoError(err)
var filePvs []privval.FilePVKey
@@ -422,14 +429,14 @@ func createMaliciousTMHeader(chainID string, blockHeight int64, trustedHeight cl
blockID := ibctesting.MakeBlockID(hhash, 3, tmhash.Sum([]byte(invalidHashValue)))
voteSet := tmtypes.NewVoteSet(chainID, blockHeight, 1, tmproto.PrecommitType, tmValSet)
- commit, err := tmtypes.MakeCommit(blockID, blockHeight, 1, voteSet, signers, timestamp)
+ extCommit, err := tmtypes.MakeExtCommit(blockID, blockHeight, 1, voteSet, signers, timestamp, false)
if err != nil {
return nil, err
}
signedHeader := &tmproto.SignedHeader{
Header: tmHeader.ToProto(),
- Commit: commit.ToProto(),
+ Commit: extCommit.ToCommit().ToProto(),
}
valSet, err := tmValSet.ToProto()
diff --git a/e2e/tests/core/03-connection/connection_test.go b/e2e/tests/core/03-connection/connection_test.go
index a309ec2e7a9..151e7b27e9d 100644
--- a/e2e/tests/core/03-connection/connection_test.go
+++ b/e2e/tests/core/03-connection/connection_test.go
@@ -8,16 +8,18 @@ import (
"testing"
"time"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ test "github.com/strangelove-ventures/interchaintest/v7/testutil"
+ testifysuite "github.com/stretchr/testify/suite"
+
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
paramsproposaltypes "github.com/cosmos/cosmos-sdk/x/params/types/proposal"
+
"github.com/cosmos/ibc-go/e2e/testsuite"
"github.com/cosmos/ibc-go/e2e/testvalues"
connectiontypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types"
ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
- test "github.com/strangelove-ventures/interchaintest/v7/testutil"
- testifysuite "github.com/stretchr/testify/suite"
)
func TestConnectionTestSuite(t *testing.T) {
@@ -46,10 +48,11 @@ func (s *ConnectionTestSuite) QueryMaxExpectedTimePerBlockParam(ctx context.Cont
// removing additional strings that are used for amino
delay := strings.ReplaceAll(res.Param.Value, "\"", "")
- time, err := strconv.ParseUint(delay, 10, 64)
+ // convert to uint64
+ uinttime, err := strconv.ParseUint(delay, 10, 64)
s.Require().NoError(err)
- return time
+ return uinttime
}
// TestMaxExpectedTimePerBlockParam tests changing the MaxExpectedTimePerBlock param using a governance proposal
@@ -127,7 +130,7 @@ func (s *ConnectionTestSuite) TestMaxExpectedTimePerBlockParam() {
s.Require().NoError(err)
expected := testvalues.IBCTransferAmount
- s.Require().Equal(expected, actualBalance)
+ s.Require().Equal(expected, actualBalance.Int64())
})
t.Run("stop relayer", func(t *testing.T) {
diff --git a/e2e/tests/interchain_accounts/base_test.go b/e2e/tests/interchain_accounts/base_test.go
index ce0aecf521a..74b503c586a 100644
--- a/e2e/tests/interchain_accounts/base_test.go
+++ b/e2e/tests/interchain_accounts/base_test.go
@@ -1,12 +1,10 @@
-package interchain_accounts
+package interchainaccounts
import (
"context"
"testing"
"time"
- sdk "github.com/cosmos/cosmos-sdk/types"
- banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
"github.com/cosmos/gogoproto/proto"
"github.com/strangelove-ventures/interchaintest/v7"
"github.com/strangelove-ventures/interchaintest/v7/chain/cosmos"
@@ -14,6 +12,11 @@ import (
test "github.com/strangelove-ventures/interchaintest/v7/testutil"
testifysuite "github.com/stretchr/testify/suite"
+ sdkmath "cosmossdk.io/math"
+
+ sdk "github.com/cosmos/cosmos-sdk/types"
+ banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
+
"github.com/cosmos/ibc-go/e2e/testsuite"
"github.com/cosmos/ibc-go/e2e/testvalues"
controllertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
@@ -81,7 +84,7 @@ func (s *InterchainAccountsTestSuite) TestMsgSendTx_SuccessfulTransfer() {
// fund the host account so it has some $$ to send
err := chainB.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{
Address: hostAccount,
- Amount: testvalues.StartingTokenAmount,
+ Amount: sdkmath.NewInt(testvalues.StartingTokenAmount),
Denom: chainB.Config().Denom,
})
s.Require().NoError(err)
@@ -127,7 +130,7 @@ func (s *InterchainAccountsTestSuite) TestMsgSendTx_SuccessfulTransfer() {
s.Require().NoError(err)
expected := testvalues.IBCTransferAmount + testvalues.StartingTokenAmount
- s.Require().Equal(expected, balance)
+ s.Require().Equal(expected, balance.Int64())
})
})
}
@@ -176,7 +179,7 @@ func (s *InterchainAccountsTestSuite) TestMsgSendTx_FailedTransfer_InsufficientF
t.Run("verify empty host wallet", func(t *testing.T) {
hostAccountBalance, err := chainB.GetBalance(ctx, hostAccount, chainB.Config().Denom)
s.Require().NoError(err)
- s.Require().Zero(hostAccountBalance)
+ s.Require().Zero(hostAccountBalance.Int64())
})
t.Run("broadcast MsgSendTx", func(t *testing.T) {
@@ -216,7 +219,7 @@ func (s *InterchainAccountsTestSuite) TestMsgSendTx_FailedTransfer_InsufficientF
s.Require().NoError(err)
expected := testvalues.StartingTokenAmount
- s.Require().Equal(expected, balance)
+ s.Require().Equal(expected, balance.Int64())
})
})
}
@@ -278,7 +281,7 @@ func (s *InterchainAccountsTestSuite) TestMsgSendTx_SuccessfulTransfer_AfterReop
// fund the host account account so it has some $$ to send
err := chainB.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{
Address: hostAccount,
- Amount: testvalues.StartingTokenAmount,
+ Amount: sdkmath.NewInt(testvalues.StartingTokenAmount),
Denom: chainB.Config().Denom,
})
s.Require().NoError(err)
@@ -338,7 +341,7 @@ func (s *InterchainAccountsTestSuite) TestMsgSendTx_SuccessfulTransfer_AfterReop
s.Require().NoError(err)
expected := testvalues.StartingTokenAmount
- s.Require().Equal(expected, balance)
+ s.Require().Equal(expected, balance.Int64())
})
// re-register interchain account to reopen the channel now that it has been closed due to timeout
@@ -398,6 +401,6 @@ func (s *InterchainAccountsTestSuite) TestMsgSendTx_SuccessfulTransfer_AfterReop
s.Require().NoError(err)
expected := testvalues.IBCTransferAmount + testvalues.StartingTokenAmount
- s.Require().Equal(expected, balance)
+ s.Require().Equal(expected, balance.Int64())
})
}
diff --git a/e2e/tests/interchain_accounts/gov_test.go b/e2e/tests/interchain_accounts/gov_test.go
index 43efeef9bcf..353286e3ca1 100644
--- a/e2e/tests/interchain_accounts/gov_test.go
+++ b/e2e/tests/interchain_accounts/gov_test.go
@@ -1,24 +1,27 @@
-package interchain_accounts
+package interchainaccounts
import (
"context"
"testing"
"time"
+ "github.com/cosmos/gogoproto/proto"
+ "github.com/strangelove-ventures/interchaintest/v7"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ test "github.com/strangelove-ventures/interchaintest/v7/testutil"
+ testifysuite "github.com/stretchr/testify/suite"
+
+ sdkmath "cosmossdk.io/math"
+
sdk "github.com/cosmos/cosmos-sdk/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
- "github.com/cosmos/gogoproto/proto"
"github.com/cosmos/ibc-go/e2e/testsuite"
"github.com/cosmos/ibc-go/e2e/testvalues"
controllertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
- "github.com/strangelove-ventures/interchaintest/v7"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
- test "github.com/strangelove-ventures/interchaintest/v7/testutil"
- testifysuite "github.com/stretchr/testify/suite"
)
func TestInterchainAccountsGovTestSuite(t *testing.T) {
@@ -75,7 +78,7 @@ func (s *InterchainAccountsGovTestSuite) TestInterchainAccountsGovIntegration()
// fund the host account, so it has some $$ to send
err := chainB.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{
Address: interchainAccAddr,
- Amount: testvalues.StartingTokenAmount,
+ Amount: sdkmath.NewInt(testvalues.StartingTokenAmount),
Denom: chainB.Config().Denom,
})
s.Require().NoError(err)
@@ -110,7 +113,7 @@ func (s *InterchainAccountsGovTestSuite) TestInterchainAccountsGovIntegration()
s.Require().NoError(err)
expected := testvalues.IBCTransferAmount + testvalues.StartingTokenAmount
- s.Require().Equal(expected, balance)
+ s.Require().Equal(expected, balance.Int64())
})
})
}
diff --git a/e2e/tests/interchain_accounts/groups_test.go b/e2e/tests/interchain_accounts/groups_test.go
index 7123de937c2..b2b15788bd1 100644
--- a/e2e/tests/interchain_accounts/groups_test.go
+++ b/e2e/tests/interchain_accounts/groups_test.go
@@ -1,23 +1,27 @@
-package interchain_accounts
+package interchainaccounts
import (
"context"
"testing"
"time"
+ "github.com/cosmos/gogoproto/proto"
+ interchaintest "github.com/strangelove-ventures/interchaintest/v7"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ test "github.com/strangelove-ventures/interchaintest/v7/testutil"
+ testifysuite "github.com/stretchr/testify/suite"
+
+ sdkmath "cosmossdk.io/math"
+
sdk "github.com/cosmos/cosmos-sdk/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
grouptypes "github.com/cosmos/cosmos-sdk/x/group"
- "github.com/cosmos/gogoproto/proto"
+
"github.com/cosmos/ibc-go/e2e/testsuite"
"github.com/cosmos/ibc-go/e2e/testvalues"
controllertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
- interchaintest "github.com/strangelove-ventures/interchaintest/v7"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
- test "github.com/strangelove-ventures/interchaintest/v7/testutil"
- testifysuite "github.com/stretchr/testify/suite"
)
const (
@@ -146,7 +150,7 @@ func (s *InterchainAccountsGroupsTestSuite) TestInterchainAccountsGroupsIntegrat
t.Run("fund interchain account wallet", func(t *testing.T) {
err := chainB.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{
Address: interchainAccAddr,
- Amount: testvalues.StartingTokenAmount,
+ Amount: sdkmath.NewInt(testvalues.StartingTokenAmount),
Denom: chainB.Config().Denom,
})
s.Require().NoError(err)
@@ -197,12 +201,12 @@ func (s *InterchainAccountsGroupsTestSuite) TestInterchainAccountsGroupsIntegrat
s.Require().NoError(err)
expected := testvalues.IBCTransferAmount + testvalues.StartingTokenAmount
- s.Require().Equal(expected, balance)
+ s.Require().Equal(expected, balance.Int64())
balance, err = chainB.GetBalance(ctx, interchainAccAddr, chainB.Config().Denom)
s.Require().NoError(err)
expected = testvalues.StartingTokenAmount - testvalues.IBCTransferAmount
- s.Require().Equal(expected, balance)
+ s.Require().Equal(expected, balance.Int64())
})
}
diff --git a/e2e/tests/interchain_accounts/incentivized_test.go b/e2e/tests/interchain_accounts/incentivized_test.go
index dae0daf4a7b..22ecd49817d 100644
--- a/e2e/tests/interchain_accounts/incentivized_test.go
+++ b/e2e/tests/interchain_accounts/incentivized_test.go
@@ -1,23 +1,27 @@
-package interchain_accounts
+package interchainaccounts
import (
"context"
"testing"
"time"
+ "github.com/cosmos/gogoproto/proto"
+ interchaintest "github.com/strangelove-ventures/interchaintest/v7"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ test "github.com/strangelove-ventures/interchaintest/v7/testutil"
+ testifysuite "github.com/stretchr/testify/suite"
+
+ sdkmath "cosmossdk.io/math"
+
sdk "github.com/cosmos/cosmos-sdk/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
- "github.com/cosmos/gogoproto/proto"
+
"github.com/cosmos/ibc-go/e2e/testsuite"
"github.com/cosmos/ibc-go/e2e/testvalues"
controllertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types"
feetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
- interchaintest "github.com/strangelove-ventures/interchaintest/v7"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
- test "github.com/strangelove-ventures/interchaintest/v7/testutil"
- testifysuite "github.com/stretchr/testify/suite"
)
func TestIncentivizedInterchainAccountsTestSuite(t *testing.T) {
@@ -97,7 +101,7 @@ func (s *IncentivizedInterchainAccountsTestSuite) TestMsgSendTx_SuccessfulBankSe
// fund the interchain account so it has some $$ to send
err := chainB.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{
Address: interchainAcc,
- Amount: testvalues.StartingTokenAmount,
+ Amount: sdkmath.NewInt(testvalues.StartingTokenAmount),
Denom: chainB.Config().Denom,
})
s.Require().NoError(err)
@@ -162,9 +166,9 @@ func (s *IncentivizedInterchainAccountsTestSuite) TestMsgSendTx_SuccessfulBankSe
s.Require().Len(packets, 1)
actualFee := packets[0].PacketFees[0].Fee
- s.Require().True(actualFee.RecvFee.IsEqual(testFee.RecvFee))
- s.Require().True(actualFee.AckFee.IsEqual(testFee.AckFee))
- s.Require().True(actualFee.TimeoutFee.IsEqual(testFee.TimeoutFee))
+ s.Require().True(actualFee.RecvFee.Equal(testFee.RecvFee))
+ s.Require().True(actualFee.AckFee.Equal(testFee.AckFee))
+ s.Require().True(actualFee.TimeoutFee.Equal(testFee.TimeoutFee))
})
t.Run("start relayer", func(t *testing.T) {
@@ -185,7 +189,7 @@ func (s *IncentivizedInterchainAccountsTestSuite) TestMsgSendTx_SuccessfulBankSe
s.Require().NoError(err)
expected := testvalues.IBCTransferAmount + testvalues.StartingTokenAmount
- s.Require().Equal(expected, balance)
+ s.Require().Equal(expected, balance.Int64())
})
t.Run("timeout fee is refunded", func(t *testing.T) {
@@ -331,9 +335,9 @@ func (s *IncentivizedInterchainAccountsTestSuite) TestMsgSendTx_FailedBankSend_I
s.Require().Len(packets, 1)
actualFee := packets[0].PacketFees[0].Fee
- s.Require().True(actualFee.RecvFee.IsEqual(testFee.RecvFee))
- s.Require().True(actualFee.AckFee.IsEqual(testFee.AckFee))
- s.Require().True(actualFee.TimeoutFee.IsEqual(testFee.TimeoutFee))
+ s.Require().True(actualFee.RecvFee.Equal(testFee.RecvFee))
+ s.Require().True(actualFee.AckFee.Equal(testFee.AckFee))
+ s.Require().True(actualFee.TimeoutFee.Equal(testFee.TimeoutFee))
})
t.Run("start relayer", func(t *testing.T) {
@@ -354,7 +358,7 @@ func (s *IncentivizedInterchainAccountsTestSuite) TestMsgSendTx_FailedBankSend_I
s.Require().NoError(err)
expected := testvalues.StartingTokenAmount
- s.Require().Equal(expected, balance, "tokens should not have been sent as interchain account was not funded")
+ s.Require().Equal(expected, balance.Int64(), "tokens should not have been sent as interchain account was not funded")
})
t.Run("timeout fee is refunded", func(t *testing.T) {
diff --git a/e2e/tests/interchain_accounts/intertx_incentivized_test.go b/e2e/tests/interchain_accounts/intertx_incentivized_test.go
index 406e58e9b2f..0a8ae734da4 100644
--- a/e2e/tests/interchain_accounts/intertx_incentivized_test.go
+++ b/e2e/tests/interchain_accounts/intertx_incentivized_test.go
@@ -1,19 +1,23 @@
-package interchain_accounts
+package interchainaccounts
import (
"context"
"testing"
- sdk "github.com/cosmos/cosmos-sdk/types"
- banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
- "github.com/cosmos/ibc-go/e2e/testvalues"
- feetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
- ibctesting "github.com/cosmos/ibc-go/v7/testing"
intertxtypes "github.com/cosmos/interchain-accounts/x/inter-tx/types"
"github.com/strangelove-ventures/interchaintest/v7"
"github.com/strangelove-ventures/interchaintest/v7/ibc"
test "github.com/strangelove-ventures/interchaintest/v7/testutil"
testifysuite "github.com/stretchr/testify/suite"
+
+ sdkmath "cosmossdk.io/math"
+
+ sdk "github.com/cosmos/cosmos-sdk/types"
+ banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
+
+ "github.com/cosmos/ibc-go/e2e/testvalues"
+ feetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
+ ibctesting "github.com/cosmos/ibc-go/v7/testing"
)
func TestIncentivizedInterTxTestSuite(t *testing.T) {
@@ -90,7 +94,7 @@ func (s *IncentivizedInterTxTestSuite) TestMsgSubmitTx_SuccessfulBankSend_Incent
// fund the interchain account so it has some $$ to send
err := chainB.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{
Address: interchainAcc,
- Amount: testvalues.StartingTokenAmount,
+ Amount: sdkmath.NewInt(testvalues.StartingTokenAmount),
Denom: chainB.Config().Denom,
})
s.Require().NoError(err)
@@ -146,9 +150,9 @@ func (s *IncentivizedInterTxTestSuite) TestMsgSubmitTx_SuccessfulBankSend_Incent
s.Require().Len(packets, 1)
actualFee := packets[0].PacketFees[0].Fee
- s.Require().True(actualFee.RecvFee.IsEqual(testFee.RecvFee))
- s.Require().True(actualFee.AckFee.IsEqual(testFee.AckFee))
- s.Require().True(actualFee.TimeoutFee.IsEqual(testFee.TimeoutFee))
+ s.Require().True(actualFee.RecvFee.Equal(testFee.RecvFee))
+ s.Require().True(actualFee.AckFee.Equal(testFee.AckFee))
+ s.Require().True(actualFee.TimeoutFee.Equal(testFee.TimeoutFee))
})
t.Run("start relayer", func(t *testing.T) {
@@ -305,9 +309,9 @@ func (s *IncentivizedInterTxTestSuite) TestMsgSubmitTx_FailedBankSend_Incentiviz
s.Require().Len(packets, 1)
actualFee := packets[0].PacketFees[0].Fee
- s.Require().True(actualFee.RecvFee.IsEqual(testFee.RecvFee))
- s.Require().True(actualFee.AckFee.IsEqual(testFee.AckFee))
- s.Require().True(actualFee.TimeoutFee.IsEqual(testFee.TimeoutFee))
+ s.Require().True(actualFee.RecvFee.Equal(testFee.RecvFee))
+ s.Require().True(actualFee.AckFee.Equal(testFee.AckFee))
+ s.Require().True(actualFee.TimeoutFee.Equal(testFee.TimeoutFee))
})
t.Run("start relayer", func(t *testing.T) {
diff --git a/e2e/tests/interchain_accounts/intertx_test.go b/e2e/tests/interchain_accounts/intertx_test.go
index c460e468100..e9c7b8cb343 100644
--- a/e2e/tests/interchain_accounts/intertx_test.go
+++ b/e2e/tests/interchain_accounts/intertx_test.go
@@ -1,11 +1,9 @@
-package interchain_accounts
+package interchainaccounts
import (
"context"
"testing"
- sdk "github.com/cosmos/cosmos-sdk/types"
- banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
intertxtypes "github.com/cosmos/interchain-accounts/x/inter-tx/types"
"github.com/strangelove-ventures/interchaintest/v7"
"github.com/strangelove-ventures/interchaintest/v7/chain/cosmos"
@@ -13,10 +11,14 @@ import (
test "github.com/strangelove-ventures/interchaintest/v7/testutil"
testifysuite "github.com/stretchr/testify/suite"
- "github.com/cosmos/ibc-go/e2e/testsuite"
- "github.com/cosmos/ibc-go/e2e/testvalues"
+ sdkmath "cosmossdk.io/math"
+
+ sdk "github.com/cosmos/cosmos-sdk/types"
+ banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
"github.com/cosmos/ibc-go/e2e/semverutil"
+ "github.com/cosmos/ibc-go/e2e/testsuite"
+ "github.com/cosmos/ibc-go/e2e/testvalues"
icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
)
@@ -88,7 +90,7 @@ func (s *InterTxTestSuite) TestMsgSubmitTx_SuccessfulTransfer() {
// fund the host account account so it has some $$ to send
err := chainB.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{
Address: hostAccount,
- Amount: testvalues.StartingTokenAmount,
+ Amount: sdkmath.NewInt(testvalues.StartingTokenAmount),
Denom: chainB.Config().Denom,
})
s.Require().NoError(err)
diff --git a/e2e/tests/interchain_accounts/localhost_test.go b/e2e/tests/interchain_accounts/localhost_test.go
index a05fe20abba..efffe6b0976 100644
--- a/e2e/tests/interchain_accounts/localhost_test.go
+++ b/e2e/tests/interchain_accounts/localhost_test.go
@@ -1,13 +1,21 @@
-package interchain_accounts
+package interchainaccounts
import (
"context"
"testing"
"time"
+ "github.com/cosmos/gogoproto/proto"
+ "github.com/strangelove-ventures/interchaintest/v7"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ test "github.com/strangelove-ventures/interchaintest/v7/testutil"
+ testifysuite "github.com/stretchr/testify/suite"
+
+ sdkmath "cosmossdk.io/math"
+
sdk "github.com/cosmos/cosmos-sdk/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
- "github.com/cosmos/gogoproto/proto"
+
"github.com/cosmos/ibc-go/e2e/testsuite"
"github.com/cosmos/ibc-go/e2e/testvalues"
controllertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
@@ -17,10 +25,6 @@ import (
"github.com/cosmos/ibc-go/v7/modules/core/exported"
localhost "github.com/cosmos/ibc-go/v7/modules/light-clients/09-localhost"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
- "github.com/strangelove-ventures/interchaintest/v7"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
- test "github.com/strangelove-ventures/interchaintest/v7/testutil"
- testifysuite "github.com/stretchr/testify/suite"
)
func TestInterchainAccountsLocalhostTestSuite(t *testing.T) {
@@ -120,7 +124,7 @@ func (s *LocalhostInterchainAccountsTestSuite) TestInterchainAccounts_Localhost(
walletAmount := ibc.WalletAmount{
Address: interchainAccAddress,
- Amount: testvalues.StartingTokenAmount,
+ Amount: sdkmath.NewInt(testvalues.StartingTokenAmount),
Denom: chainADenom,
}
@@ -181,7 +185,7 @@ func (s *LocalhostInterchainAccountsTestSuite) TestInterchainAccounts_Localhost(
s.Require().NoError(err)
expected := testvalues.IBCTransferAmount + testvalues.StartingTokenAmount
- s.Require().Equal(expected, balance)
+ s.Require().Equal(expected, balance.Int64())
})
}
@@ -275,7 +279,7 @@ func (s *LocalhostInterchainAccountsTestSuite) TestInterchainAccounts_ReopenChan
walletAmount := ibc.WalletAmount{
Address: interchainAccAddress,
- Amount: testvalues.StartingTokenAmount,
+ Amount: sdkmath.NewInt(testvalues.StartingTokenAmount),
Denom: chainADenom,
}
@@ -406,7 +410,7 @@ func (s *LocalhostInterchainAccountsTestSuite) TestInterchainAccounts_ReopenChan
s.Require().NoError(err)
expected := testvalues.StartingTokenAmount
- s.Require().Equal(expected, balance)
+ s.Require().Equal(expected, balance.Int64())
})
t.Run("send packet localhost interchain accounts", func(t *testing.T) {
@@ -465,6 +469,6 @@ func (s *LocalhostInterchainAccountsTestSuite) TestInterchainAccounts_ReopenChan
s.Require().NoError(err)
expected := testvalues.IBCTransferAmount + testvalues.StartingTokenAmount
- s.Require().Equal(expected, balance)
+ s.Require().Equal(expected, balance.Int64())
})
}
diff --git a/e2e/tests/interchain_accounts/params_test.go b/e2e/tests/interchain_accounts/params_test.go
index 79708655b5b..41c621bc1ab 100644
--- a/e2e/tests/interchain_accounts/params_test.go
+++ b/e2e/tests/interchain_accounts/params_test.go
@@ -1,19 +1,21 @@
-package interchain_accounts
+package interchainaccounts
import (
"context"
"testing"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ testifysuite "github.com/stretchr/testify/suite"
+
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
paramsproposaltypes "github.com/cosmos/cosmos-sdk/x/params/types/proposal"
+
"github.com/cosmos/ibc-go/e2e/testsuite"
"github.com/cosmos/ibc-go/e2e/testvalues"
controllertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
hosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types"
icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
- testifysuite "github.com/stretchr/testify/suite"
)
func TestInterchainAccountsParamsTestSuite(t *testing.T) {
@@ -69,8 +71,8 @@ func (s *InterchainAccountsParamsTestSuite) TestControllerEnabledParam() {
s.Require().NotNil(authority)
msg := controllertypes.MsgUpdateParams{
- Authority: authority.String(),
- Params: controllertypes.NewParams(false),
+ Signer: authority.String(),
+ Params: controllertypes.NewParams(false),
}
s.ExecuteGovProposalV1(ctx, &msg, chainA, controllerAccount, 1)
} else {
@@ -126,8 +128,8 @@ func (s *InterchainAccountsParamsTestSuite) TestHostEnabledParam() {
s.Require().NotNil(authority)
msg := hosttypes.MsgUpdateParams{
- Authority: authority.String(),
- Params: hosttypes.NewParams(false, []string{hosttypes.AllowAllHostMsgs}),
+ Signer: authority.String(),
+ Params: hosttypes.NewParams(false, []string{hosttypes.AllowAllHostMsgs}),
}
s.ExecuteGovProposalV1(ctx, &msg, chainB, chainBUser, 1)
} else {
diff --git a/e2e/tests/transfer/authz_test.go b/e2e/tests/transfer/authz_test.go
index a87f9fb90a4..cc66a35e35f 100644
--- a/e2e/tests/transfer/authz_test.go
+++ b/e2e/tests/transfer/authz_test.go
@@ -4,17 +4,20 @@ import (
"context"
"testing"
+ test "github.com/strangelove-ventures/interchaintest/v7/testutil"
+ testifysuite "github.com/stretchr/testify/suite"
+
sdkmath "cosmossdk.io/math"
+
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
"github.com/cosmos/cosmos-sdk/x/authz"
+
"github.com/cosmos/ibc-go/e2e/testsuite"
"github.com/cosmos/ibc-go/e2e/testvalues"
transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
ibcerrors "github.com/cosmos/ibc-go/v7/modules/core/errors"
- test "github.com/strangelove-ventures/interchaintest/v7/testutil"
- testifysuite "github.com/stretchr/testify/suite"
)
func TestAuthzTransferTestSuite(t *testing.T) {
@@ -49,6 +52,7 @@ func (suite *AuthzTransferTestSuite) TestAuthz_MsgTransfer_Succeeds() {
// createMsgGrantFn initializes a TransferAuthorization and broadcasts a MsgGrant message.
createMsgGrantFn := func(t *testing.T) {
+ t.Helper()
transferAuth := transfertypes.TransferAuthorization{
Allocations: []transfertypes.Allocation{
{
@@ -80,7 +84,9 @@ func (suite *AuthzTransferTestSuite) TestAuthz_MsgTransfer_Succeeds() {
// verifyGrantFn returns a test function which asserts chainA has a grant authorization
// with the given spend limit.
verifyGrantFn := func(expectedLimit int64) func(t *testing.T) {
+ t.Helper()
return func(t *testing.T) {
+ t.Helper()
grantAuths, err := suite.QueryGranterGrants(ctx, chainA, granterAddress)
suite.Require().NoError(err)
@@ -131,7 +137,7 @@ func (suite *AuthzTransferTestSuite) TestAuthz_MsgTransfer_Succeeds() {
chainBIBCToken := testsuite.GetIBCToken(chainADenom, channelA.Counterparty.PortID, channelA.Counterparty.ChannelID)
actualBalance, err := chainB.GetBalance(ctx, receiverWalletAddress, chainBIBCToken.IBCDenom())
suite.Require().NoError(err)
- suite.Require().Equal(testvalues.IBCTransferAmount, actualBalance)
+ suite.Require().Equal(testvalues.IBCTransferAmount, actualBalance.Int64())
})
t.Run("granter grant spend limit reduced", verifyGrantFn(testvalues.StartingTokenAmount-testvalues.IBCTransferAmount))
@@ -267,7 +273,7 @@ func (suite *AuthzTransferTestSuite) TestAuthz_InvalidTransferAuthorizations() {
chainBIBCToken := testsuite.GetIBCToken(chainADenom, channelA.Counterparty.PortID, channelA.Counterparty.ChannelID)
actualBalance, err := chainB.GetBalance(ctx, receiverWalletAddress, chainBIBCToken.IBCDenom())
suite.Require().NoError(err)
- suite.Require().Equal(int64(0), actualBalance)
+ suite.Require().Equal(int64(0), actualBalance.Int64())
})
t.Run("granter grant spend limit unchanged", func(t *testing.T) {
diff --git a/e2e/tests/transfer/base_test.go b/e2e/tests/transfer/base_test.go
index 3b0b6d5afc3..f95aa3ca260 100644
--- a/e2e/tests/transfer/base_test.go
+++ b/e2e/tests/transfer/base_test.go
@@ -5,18 +5,20 @@ import (
"testing"
"time"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ test "github.com/strangelove-ventures/interchaintest/v7/testutil"
+ testifysuite "github.com/stretchr/testify/suite"
+
sdkmath "cosmossdk.io/math"
+
sdk "github.com/cosmos/cosmos-sdk/types"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
paramsproposaltypes "github.com/cosmos/cosmos-sdk/x/params/types/proposal"
- transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
"github.com/cosmos/ibc-go/e2e/testsuite"
"github.com/cosmos/ibc-go/e2e/testvalues"
+ transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
- test "github.com/strangelove-ventures/interchaintest/v7/testutil"
- testifysuite "github.com/stretchr/testify/suite"
)
func TestTransferTestSuite(t *testing.T) {
@@ -92,7 +94,7 @@ func (s *TransferTestSuite) TestMsgTransfer_Succeeds_Nonincentivized() {
s.Require().NoError(err)
expected := testvalues.IBCTransferAmount
- s.Require().Equal(expected, actualBalance)
+ s.Require().Equal(expected, actualBalance.Int64())
})
t.Run("non-native IBC token transfer from chainB to chainA, receiver is source of tokens", func(t *testing.T) {
@@ -104,7 +106,7 @@ func (s *TransferTestSuite) TestMsgTransfer_Succeeds_Nonincentivized() {
actualBalance, err := chainB.GetBalance(ctx, chainBAddress, chainBIBCToken.IBCDenom())
s.Require().NoError(err)
- s.Require().Equal(int64(0), actualBalance)
+ s.Require().Equal(sdkmath.ZeroInt(), actualBalance)
if testvalues.TotalEscrowFeatureReleases.IsSupported(chainBVersion) {
actualTotalEscrow, err := s.QueryTotalEscrowForDenom(ctx, chainB, chainBIBCToken.IBCDenom())
@@ -192,7 +194,7 @@ func (s *TransferTestSuite) TestMsgTransfer_Timeout_Nonincentivized() {
chainBWalletAmount := ibc.WalletAmount{
Address: chainBWallet.FormattedAddress(), // destination address
Denom: chainA.Config().Denom,
- Amount: testvalues.IBCTransferAmount,
+ Amount: sdkmath.NewInt(testvalues.IBCTransferAmount),
}
t.Run("IBC transfer packet timesout", func(t *testing.T) {
@@ -345,7 +347,7 @@ func (s *TransferTestSuite) TestReceiveEnabledParam() {
s.Require().NoError(err)
expected := testvalues.IBCTransferAmount
- s.Require().Equal(expected, actualBalance)
+ s.Require().Equal(expected, actualBalance.Int64())
})
t.Run("stop relayer", func(t *testing.T) {
@@ -464,7 +466,7 @@ func (s *TransferTestSuite) TestMsgTransfer_WithMemo() {
s.Require().NoError(err)
if testvalues.MemoFeatureReleases.IsSupported(chainBVersion) {
- s.Require().Equal(testvalues.IBCTransferAmount, actualBalance)
+ s.Require().Equal(testvalues.IBCTransferAmount, actualBalance.Int64())
} else {
s.Require().Equal(int64(0), actualBalance)
}
diff --git a/e2e/tests/transfer/incentivized_test.go b/e2e/tests/transfer/incentivized_test.go
index 86b5ae57676..c52aa1ed47d 100644
--- a/e2e/tests/transfer/incentivized_test.go
+++ b/e2e/tests/transfer/incentivized_test.go
@@ -5,14 +5,18 @@ import (
"testing"
"time"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ test "github.com/strangelove-ventures/interchaintest/v7/testutil"
+ testifysuite "github.com/stretchr/testify/suite"
+
+ sdkmath "cosmossdk.io/math"
+
sdk "github.com/cosmos/cosmos-sdk/types"
+
"github.com/cosmos/ibc-go/e2e/testvalues"
feetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
- test "github.com/strangelove-ventures/interchaintest/v7/testutil"
- testifysuite "github.com/stretchr/testify/suite"
)
type IncentivizedTransferTestSuite struct {
@@ -67,7 +71,7 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_AsyncSingleSender_Su
walletAmount := ibc.WalletAmount{
Address: chainAWallet.FormattedAddress(), // destination address
Denom: chainADenom,
- Amount: testvalues.IBCTransferAmount,
+ Amount: sdkmath.NewInt(testvalues.IBCTransferAmount),
}
t.Run("send IBC transfer", func(t *testing.T) {
@@ -80,7 +84,7 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_AsyncSingleSender_Su
actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet)
s.Require().NoError(err)
- expected := testvalues.StartingTokenAmount - walletAmount.Amount
+ expected := testvalues.StartingTokenAmount - walletAmount.Amount.Int64()
s.Require().Equal(expected, actualBalance)
})
@@ -91,11 +95,11 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_AsyncSingleSender_Su
s.Require().Empty(packets)
})
- packetId := channeltypes.NewPacketID(channelA.PortID, channelA.ChannelID, chainATx.Packet.Sequence)
+ packetID := channeltypes.NewPacketID(channelA.PortID, channelA.ChannelID, chainATx.Packet.Sequence)
packetFee := feetypes.NewPacketFee(testFee, chainAWallet.FormattedAddress(), nil)
t.Run("should succeed", func(t *testing.T) {
- payPacketFeeTxResp = s.PayPacketFeeAsync(ctx, chainA, chainAWallet, packetId, packetFee)
+ payPacketFeeTxResp = s.PayPacketFeeAsync(ctx, chainA, chainAWallet, packetID, packetFee)
s.AssertTxSuccess(payPacketFeeTxResp)
})
@@ -105,9 +109,9 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_AsyncSingleSender_Su
s.Require().Len(packets, 1)
actualFee := packets[0].PacketFees[0].Fee
- s.Require().True(actualFee.RecvFee.IsEqual(testFee.RecvFee))
- s.Require().True(actualFee.AckFee.IsEqual(testFee.AckFee))
- s.Require().True(actualFee.TimeoutFee.IsEqual(testFee.TimeoutFee))
+ s.Require().True(actualFee.RecvFee.Equal(testFee.RecvFee))
+ s.Require().True(actualFee.AckFee.Equal(testFee.AckFee))
+ s.Require().True(actualFee.TimeoutFee.Equal(testFee.TimeoutFee))
})
t.Run("balance should be lowered by sum of recv ack and timeout", func(t *testing.T) {
@@ -115,7 +119,7 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_AsyncSingleSender_Su
actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet)
s.Require().NoError(err)
- expected := testvalues.StartingTokenAmount - walletAmount.Amount - testFee.Total().AmountOf(chainADenom).Int64()
+ expected := testvalues.StartingTokenAmount - walletAmount.Amount.Int64() - testFee.Total().AmountOf(chainADenom).Int64()
s.Require().Equal(expected, actualBalance)
})
})
@@ -135,7 +139,7 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_AsyncSingleSender_Su
s.Require().NoError(err)
// once the relayer has relayed the packets, the timeout fee should be refunded.
- expected := testvalues.StartingTokenAmount - walletAmount.Amount - testFee.AckFee.AmountOf(chainADenom).Int64() - testFee.RecvFee.AmountOf(chainADenom).Int64()
+ expected := testvalues.StartingTokenAmount - walletAmount.Amount.Int64() - testFee.AckFee.AmountOf(chainADenom).Int64() - testFee.RecvFee.AmountOf(chainADenom).Int64()
s.Require().Equal(expected, actualBalance)
})
}
@@ -204,11 +208,11 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_InvalidReceiverAccou
s.Require().Empty(packets)
})
- packetId := channeltypes.NewPacketID(channelA.PortID, channelA.ChannelID, 1)
+ packetID := channeltypes.NewPacketID(channelA.PortID, channelA.ChannelID, 1)
packetFee := feetypes.NewPacketFee(testFee, chainAWallet.FormattedAddress(), nil)
t.Run("should succeed", func(t *testing.T) {
- payPacketFeeTxResp = s.PayPacketFeeAsync(ctx, chainA, chainAWallet, packetId, packetFee)
+ payPacketFeeTxResp = s.PayPacketFeeAsync(ctx, chainA, chainAWallet, packetID, packetFee)
s.AssertTxSuccess(payPacketFeeTxResp)
})
@@ -218,9 +222,9 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_InvalidReceiverAccou
s.Require().Len(packets, 1)
actualFee := packets[0].PacketFees[0].Fee
- s.Require().True(actualFee.RecvFee.IsEqual(testFee.RecvFee))
- s.Require().True(actualFee.AckFee.IsEqual(testFee.AckFee))
- s.Require().True(actualFee.TimeoutFee.IsEqual(testFee.TimeoutFee))
+ s.Require().True(actualFee.RecvFee.Equal(testFee.RecvFee))
+ s.Require().True(actualFee.AckFee.Equal(testFee.AckFee))
+ s.Require().True(actualFee.TimeoutFee.Equal(testFee.TimeoutFee))
})
t.Run("balance should be lowered by sum of recv, ack and timeout", func(t *testing.T) {
@@ -318,9 +322,9 @@ func (s *IncentivizedTransferTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender
s.Require().Len(packets, 1)
actualFee := packets[0].PacketFees[0].Fee
- s.Require().True(actualFee.RecvFee.IsEqual(testFee.RecvFee))
- s.Require().True(actualFee.AckFee.IsEqual(testFee.AckFee))
- s.Require().True(actualFee.TimeoutFee.IsEqual(testFee.TimeoutFee))
+ s.Require().True(actualFee.RecvFee.Equal(testFee.RecvFee))
+ s.Require().True(actualFee.AckFee.Equal(testFee.AckFee))
+ s.Require().True(actualFee.TimeoutFee.Equal(testFee.TimeoutFee))
})
t.Run("balance should be lowered by sum of recv ack and timeout", func(t *testing.T) {
@@ -401,7 +405,7 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_SingleSender_TimesOu
chainBWalletAmount := ibc.WalletAmount{
Address: chainBWallet.FormattedAddress(), // destination address
Denom: chainA.Config().Denom,
- Amount: testvalues.IBCTransferAmount,
+ Amount: sdkmath.NewInt(testvalues.IBCTransferAmount),
}
t.Run("Send IBC transfer", func(t *testing.T) {
@@ -415,12 +419,12 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_SingleSender_TimesOu
actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet)
s.Require().NoError(err)
- expected := testvalues.StartingTokenAmount - chainBWalletAmount.Amount
+ expected := testvalues.StartingTokenAmount - chainBWalletAmount.Amount.Int64()
s.Require().Equal(expected, actualBalance)
})
t.Run("pay packet fee", func(t *testing.T) {
- packetId := channeltypes.NewPacketID(channelA.PortID, channelA.ChannelID, chainATx.Packet.Sequence)
+ packetID := channeltypes.NewPacketID(channelA.PortID, channelA.ChannelID, chainATx.Packet.Sequence)
packetFee := feetypes.NewPacketFee(testFee, chainAWallet.FormattedAddress(), nil)
t.Run("no incentivized packets", func(t *testing.T) {
@@ -430,7 +434,7 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_SingleSender_TimesOu
})
t.Run("should succeed", func(t *testing.T) {
- payPacketFeeTxResp = s.PayPacketFeeAsync(ctx, chainA, chainAWallet, packetId, packetFee)
+ payPacketFeeTxResp = s.PayPacketFeeAsync(ctx, chainA, chainAWallet, packetID, packetFee)
s.AssertTxSuccess(payPacketFeeTxResp)
})
@@ -440,9 +444,9 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_SingleSender_TimesOu
s.Require().Len(packets, 1)
actualFee := packets[0].PacketFees[0].Fee
- s.Require().True(actualFee.RecvFee.IsEqual(testFee.RecvFee))
- s.Require().True(actualFee.AckFee.IsEqual(testFee.AckFee))
- s.Require().True(actualFee.TimeoutFee.IsEqual(testFee.TimeoutFee))
+ s.Require().True(actualFee.RecvFee.Equal(testFee.RecvFee))
+ s.Require().True(actualFee.AckFee.Equal(testFee.AckFee))
+ s.Require().True(actualFee.TimeoutFee.Equal(testFee.TimeoutFee))
})
t.Run("balance should be lowered by sum of recv ack and timeout", func(t *testing.T) {
@@ -450,7 +454,7 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_SingleSender_TimesOu
actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet)
s.Require().NoError(err)
- expected := testvalues.StartingTokenAmount - chainBWalletAmount.Amount - testFee.Total().AmountOf(chainADenom).Int64()
+ expected := testvalues.StartingTokenAmount - chainBWalletAmount.Amount.Int64() - testFee.Total().AmountOf(chainADenom).Int64()
s.Require().Equal(expected, actualBalance)
})
})
@@ -498,7 +502,7 @@ func (s *IncentivizedTransferTestSuite) TestPayPacketFeeAsync_SingleSender_NoCou
chainBWalletAmount := ibc.WalletAmount{
Address: chainAWallet.FormattedAddress(), // destination address
Denom: chainADenom,
- Amount: testvalues.IBCTransferAmount,
+ Amount: sdkmath.NewInt(testvalues.IBCTransferAmount),
}
t.Run("send IBC transfer", func(t *testing.T) {
@@ -512,7 +516,7 @@ func (s *IncentivizedTransferTestSuite) TestPayPacketFeeAsync_SingleSender_NoCou
actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet)
s.Require().NoError(err)
- expected := testvalues.StartingTokenAmount - chainBWalletAmount.Amount
+ expected := testvalues.StartingTokenAmount - chainBWalletAmount.Amount.Int64()
s.Require().Equal(expected, actualBalance)
})
@@ -523,11 +527,11 @@ func (s *IncentivizedTransferTestSuite) TestPayPacketFeeAsync_SingleSender_NoCou
s.Require().Empty(packets)
})
- packetId := channeltypes.NewPacketID(channelA.PortID, channelA.ChannelID, chainATx.Packet.Sequence)
+ packetID := channeltypes.NewPacketID(channelA.PortID, channelA.ChannelID, chainATx.Packet.Sequence)
packetFee := feetypes.NewPacketFee(testFee, chainAWallet.FormattedAddress(), nil)
t.Run("should succeed", func(t *testing.T) {
- payPacketFeeTxResp = s.PayPacketFeeAsync(ctx, chainA, chainAWallet, packetId, packetFee)
+ payPacketFeeTxResp = s.PayPacketFeeAsync(ctx, chainA, chainAWallet, packetID, packetFee)
s.AssertTxSuccess(payPacketFeeTxResp)
})
@@ -537,9 +541,9 @@ func (s *IncentivizedTransferTestSuite) TestPayPacketFeeAsync_SingleSender_NoCou
s.Require().Len(packets, 1)
actualFee := packets[0].PacketFees[0].Fee
- s.Require().True(actualFee.RecvFee.IsEqual(testFee.RecvFee))
- s.Require().True(actualFee.AckFee.IsEqual(testFee.AckFee))
- s.Require().True(actualFee.TimeoutFee.IsEqual(testFee.TimeoutFee))
+ s.Require().True(actualFee.RecvFee.Equal(testFee.RecvFee))
+ s.Require().True(actualFee.AckFee.Equal(testFee.AckFee))
+ s.Require().True(actualFee.TimeoutFee.Equal(testFee.TimeoutFee))
})
})
@@ -548,7 +552,7 @@ func (s *IncentivizedTransferTestSuite) TestPayPacketFeeAsync_SingleSender_NoCou
actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet)
s.Require().NoError(err)
- expected := testvalues.StartingTokenAmount - chainBWalletAmount.Amount - testFee.Total().AmountOf(chainADenom).Int64()
+ expected := testvalues.StartingTokenAmount - chainBWalletAmount.Amount.Int64() - testFee.Total().AmountOf(chainADenom).Int64()
s.Require().Equal(expected, actualBalance)
})
@@ -568,7 +572,7 @@ func (s *IncentivizedTransferTestSuite) TestPayPacketFeeAsync_SingleSender_NoCou
s.Require().NoError(err)
// once the relayer has relayed the packets, the timeout and recv fee should be refunded.
- expected := testvalues.StartingTokenAmount - chainBWalletAmount.Amount - testFee.AckFee.AmountOf(chainADenom).Int64()
+ expected := testvalues.StartingTokenAmount - chainBWalletAmount.Amount.Int64() - testFee.AckFee.AmountOf(chainADenom).Int64()
s.Require().Equal(expected, actualBalance)
})
})
@@ -616,7 +620,7 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_AsyncMultipleSenders
walletAmount1 := ibc.WalletAmount{
Address: chainAWallet1.FormattedAddress(), // destination address
Denom: chainADenom,
- Amount: testvalues.IBCTransferAmount,
+ Amount: sdkmath.NewInt(testvalues.IBCTransferAmount),
}
t.Run("send IBC transfer", func(t *testing.T) {
@@ -629,7 +633,7 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_AsyncMultipleSenders
actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet1)
s.Require().NoError(err)
- expected := testvalues.StartingTokenAmount - walletAmount1.Amount
+ expected := testvalues.StartingTokenAmount - walletAmount1.Amount.Int64()
s.Require().Equal(expected, actualBalance)
})
@@ -640,16 +644,16 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_AsyncMultipleSenders
s.Require().Empty(packets)
})
- packetId := channeltypes.NewPacketID(channelA.PortID, channelA.ChannelID, chainATx.Packet.Sequence)
+ packetID := channeltypes.NewPacketID(channelA.PortID, channelA.ChannelID, chainATx.Packet.Sequence)
packetFee1 := feetypes.NewPacketFee(testFee, chainAWallet1.FormattedAddress(), nil)
packetFee2 := feetypes.NewPacketFee(testFee, chainAWallet2.FormattedAddress(), nil)
t.Run("paying packetFee1 should succeed", func(t *testing.T) {
- payPacketFeeTxResp = s.PayPacketFeeAsync(ctx, chainA, chainAWallet1, packetId, packetFee1)
+ payPacketFeeTxResp = s.PayPacketFeeAsync(ctx, chainA, chainAWallet1, packetID, packetFee1)
s.AssertTxSuccess(payPacketFeeTxResp)
})
t.Run("paying packetFee2 should succeed", func(t *testing.T) {
- payPacketFeeTxResp = s.PayPacketFeeAsync(ctx, chainA, chainAWallet2, packetId, packetFee2)
+ payPacketFeeTxResp = s.PayPacketFeeAsync(ctx, chainA, chainAWallet2, packetID, packetFee2)
s.AssertTxSuccess(payPacketFeeTxResp)
})
@@ -661,20 +665,20 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_AsyncMultipleSenders
actualFee2 := packets[0].PacketFees[1].Fee
s.Require().Len(packets[0].PacketFees, 2)
- s.Require().True(actualFee1.RecvFee.IsEqual(testFee.RecvFee))
- s.Require().True(actualFee1.AckFee.IsEqual(testFee.AckFee))
- s.Require().True(actualFee1.TimeoutFee.IsEqual(testFee.TimeoutFee))
+ s.Require().True(actualFee1.RecvFee.Equal(testFee.RecvFee))
+ s.Require().True(actualFee1.AckFee.Equal(testFee.AckFee))
+ s.Require().True(actualFee1.TimeoutFee.Equal(testFee.TimeoutFee))
- s.Require().True(actualFee2.RecvFee.IsEqual(testFee.RecvFee))
- s.Require().True(actualFee2.AckFee.IsEqual(testFee.AckFee))
- s.Require().True(actualFee2.TimeoutFee.IsEqual(testFee.TimeoutFee))
+ s.Require().True(actualFee2.RecvFee.Equal(testFee.RecvFee))
+ s.Require().True(actualFee2.AckFee.Equal(testFee.AckFee))
+ s.Require().True(actualFee2.TimeoutFee.Equal(testFee.TimeoutFee))
})
t.Run("balance of chainAWallet1 should be lowered by sum of recv ack and timeout", func(t *testing.T) {
actualBalance1, err := s.GetChainANativeBalance(ctx, chainAWallet1)
s.Require().NoError(err)
- expected1 := testvalues.StartingTokenAmount - walletAmount1.Amount - testFee.Total().AmountOf(chainADenom).Int64()
+ expected1 := testvalues.StartingTokenAmount - walletAmount1.Amount.Int64() - testFee.Total().AmountOf(chainADenom).Int64()
s.Require().Equal(expected1, actualBalance1)
})
@@ -702,7 +706,7 @@ func (s *IncentivizedTransferTestSuite) TestMsgPayPacketFee_AsyncMultipleSenders
s.Require().NoError(err)
// once the relayer has relayed the packets, the timeout fee should be refunded.
- expected1 := testvalues.StartingTokenAmount - walletAmount1.Amount - testFee.AckFee.AmountOf(chainADenom).Int64() - testFee.RecvFee.AmountOf(chainADenom).Int64()
+ expected1 := testvalues.StartingTokenAmount - walletAmount1.Amount.Int64() - testFee.AckFee.AmountOf(chainADenom).Int64() - testFee.RecvFee.AmountOf(chainADenom).Int64()
s.Require().Equal(expected1, actualBalance1)
actualBalance2, err := s.GetChainANativeBalance(ctx, chainAWallet2)
diff --git a/e2e/tests/transfer/localhost_test.go b/e2e/tests/transfer/localhost_test.go
index efe2257e47e..9772d5614b5 100644
--- a/e2e/tests/transfer/localhost_test.go
+++ b/e2e/tests/transfer/localhost_test.go
@@ -4,17 +4,17 @@ import (
"context"
"testing"
+ test "github.com/strangelove-ventures/interchaintest/v7/testutil"
+ testifysuite "github.com/stretchr/testify/suite"
+
+ "github.com/cosmos/ibc-go/e2e/testsuite"
+ "github.com/cosmos/ibc-go/e2e/testvalues"
transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
"github.com/cosmos/ibc-go/v7/modules/core/exported"
localhost "github.com/cosmos/ibc-go/v7/modules/light-clients/09-localhost"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
- test "github.com/strangelove-ventures/interchaintest/v7/testutil"
- testifysuite "github.com/stretchr/testify/suite"
-
- "github.com/cosmos/ibc-go/e2e/testsuite"
- "github.com/cosmos/ibc-go/e2e/testvalues"
)
func TestTransferLocalhostTestSuite(t *testing.T) {
@@ -157,6 +157,6 @@ func (s *LocalhostTransferTestSuite) TestMsgTransfer_Localhost() {
s.Require().NoError(err)
expected := testvalues.IBCTransferAmount
- s.Require().Equal(expected, actualBalance)
+ s.Require().Equal(expected, actualBalance.Int64())
})
}
diff --git a/e2e/tests/upgrades/genesis_test.go b/e2e/tests/upgrades/genesis_test.go
new file mode 100644
index 00000000000..13a127c6c4c
--- /dev/null
+++ b/e2e/tests/upgrades/genesis_test.go
@@ -0,0 +1,168 @@
+package upgrades
+
+import (
+ "context"
+ "strings"
+ "testing"
+ "time"
+
+ cosmos "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ test "github.com/strangelove-ventures/interchaintest/v7/testutil"
+ "github.com/stretchr/testify/suite"
+ "go.uber.org/zap"
+
+ "github.com/cosmos/ibc-go/e2e/testsuite"
+ "github.com/cosmos/ibc-go/e2e/testvalues"
+)
+
+func TestGenesisTestSuite(t *testing.T) {
+ suite.Run(t, new(GenesisTestSuite))
+}
+
+type GenesisTestSuite struct {
+ testsuite.E2ETestSuite
+}
+
+func (s *GenesisTestSuite) TestIBCGenesis() {
+ t := s.T()
+
+ configFileOverrides := make(map[string]any)
+ appTomlOverrides := make(test.Toml)
+
+ appTomlOverrides["halt-height"] = haltHeight
+ configFileOverrides["config/app.toml"] = appTomlOverrides
+ chainOpts := func(options *testsuite.ChainOptions) {
+ options.ChainAConfig.ConfigFileOverrides = configFileOverrides
+ }
+
+ // create chains with specified chain configuration options
+ chainA, chainB := s.GetChains(chainOpts)
+
+ ctx := context.Background()
+ relayer, channelA := s.SetupChainsRelayerAndChannel(ctx)
+ var (
+ chainADenom = chainA.Config().Denom
+ chainBIBCToken = testsuite.GetIBCToken(chainADenom, channelA.Counterparty.PortID, channelA.Counterparty.ChannelID) // IBC token sent to chainB
+
+ )
+
+ chainAWallet := s.CreateUserOnChainA(ctx, testvalues.StartingTokenAmount)
+ chainAAddress := chainAWallet.FormattedAddress()
+
+ chainBWallet := s.CreateUserOnChainB(ctx, testvalues.StartingTokenAmount)
+ chainBAddress := chainBWallet.FormattedAddress()
+
+ s.Require().NoError(test.WaitForBlocks(ctx, 1, chainA, chainB), "failed to wait for blocks")
+
+ t.Run("native IBC token transfer from chainA to chainB, sender is source of tokens", func(t *testing.T) {
+ transferTxResp := s.Transfer(ctx, chainA, chainAWallet, channelA.PortID, channelA.ChannelID, testvalues.DefaultTransferAmount(chainADenom), chainAAddress, chainBAddress, s.GetTimeoutHeight(ctx, chainB), 0, "")
+ s.AssertTxSuccess(transferTxResp)
+ })
+
+ t.Run("tokens are escrowed", func(t *testing.T) {
+ actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet)
+ s.Require().NoError(err)
+
+ expected := testvalues.StartingTokenAmount - testvalues.IBCTransferAmount
+ s.Require().Equal(expected, actualBalance)
+ })
+
+ t.Run("start relayer", func(t *testing.T) {
+ s.StartRelayer(relayer)
+ })
+
+ t.Run("packets are relayed", func(t *testing.T) {
+ s.AssertPacketRelayed(ctx, chainA, channelA.PortID, channelA.ChannelID, 1)
+
+ actualBalance, err := chainB.GetBalance(ctx, chainBAddress, chainBIBCToken.IBCDenom())
+ s.Require().NoError(err)
+
+ expected := testvalues.IBCTransferAmount
+ s.Require().Equal(expected, actualBalance.Int64())
+ })
+
+ s.Require().NoError(test.WaitForBlocks(ctx, 10, chainA, chainB), "failed to wait for blocks")
+
+ t.Run("Halt chain and export genesis", func(t *testing.T) {
+ s.HaltChainAndExportGenesis(ctx, chainA, relayer, int64(haltHeight))
+ })
+
+ t.Run("native IBC token transfer from chainA to chainB, sender is source of tokens", func(t *testing.T) {
+ transferTxResp := s.Transfer(ctx, chainA, chainAWallet, channelA.PortID, channelA.ChannelID, testvalues.DefaultTransferAmount(chainADenom), chainAAddress, chainBAddress, s.GetTimeoutHeight(ctx, chainB), 0, "")
+ s.AssertTxSuccess(transferTxResp)
+ })
+
+ t.Run("tokens are escrowed", func(t *testing.T) {
+ actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet)
+ s.Require().NoError(err)
+
+ expected := testvalues.StartingTokenAmount - 2*testvalues.IBCTransferAmount
+ s.Require().Equal(expected, actualBalance)
+ })
+
+ s.Require().NoError(test.WaitForBlocks(ctx, 5, chainA, chainB), "failed to wait for blocks")
+}
+
+func (s *GenesisTestSuite) HaltChainAndExportGenesis(ctx context.Context, chain *cosmos.CosmosChain, relayer ibc.Relayer, haltHeight int64) {
+ timeoutCtx, timeoutCtxCancel := context.WithTimeout(ctx, time.Minute*2)
+ defer timeoutCtxCancel()
+
+ err := test.WaitForBlocks(timeoutCtx, int(haltHeight), chain)
+ s.Require().Error(err, "chain did not halt at halt height")
+
+ err = chain.StopAllNodes(ctx)
+ s.Require().NoError(err, "error stopping node(s)")
+
+ state, err := chain.ExportState(ctx, int64(haltHeight))
+ s.Require().NoError(err)
+
+ // state exports currently read from stdout which include log entries, this discards the log entry by the server module
+ // this may need to be updated if log entries are inserted in between exporting of state and the server module logging
+ // see issue: https://github.com/strangelove-ventures/interchaintest/issues/721
+ str := strings.SplitAfter(state, "server")
+ state = str[1]
+
+ appTomlOverrides := make(test.Toml)
+
+ appTomlOverrides["halt-height"] = 0
+
+ for _, node := range chain.Nodes() {
+ err := node.OverwriteGenesisFile(ctx, []byte(state))
+ s.Require().NoError(err)
+ }
+
+ for _, node := range chain.Nodes() {
+ err := test.ModifyTomlConfigFile(
+ ctx,
+ zap.NewExample(),
+ node.DockerClient,
+ node.TestName,
+ node.VolumeName,
+ "config/app.toml",
+ appTomlOverrides,
+ )
+ s.Require().NoError(err)
+
+ _, _, err = node.ExecBin(ctx, "comet", "unsafe-reset-all")
+ s.Require().NoError(err)
+ }
+
+ err = chain.StartAllNodes(ctx)
+ s.Require().NoError(err)
+
+ // we are reinitializing the clients because we need to update the hostGRPCAddress after
+ // the upgrade and subsequent restarting of nodes
+ s.InitGRPCClients(chain)
+
+ timeoutCtx, timeoutCtxCancel = context.WithTimeout(ctx, time.Minute*2)
+ defer timeoutCtxCancel()
+
+ err = test.WaitForBlocks(timeoutCtx, int(blocksAfterUpgrade), chain)
+ s.Require().NoError(err, "chain did not produce blocks after halt")
+
+ height, err := chain.Height(ctx)
+ s.Require().NoError(err, "error fetching height after halt")
+
+ s.Require().Greater(int64(height), haltHeight, "height did not increment after halt")
+}
diff --git a/e2e/tests/upgrades/upgrade_test.go b/e2e/tests/upgrades/upgrade_test.go
index f7ed23f21ba..e4a2bd59ce4 100644
--- a/e2e/tests/upgrades/upgrade_test.go
+++ b/e2e/tests/upgrades/upgrade_test.go
@@ -6,12 +6,20 @@ import (
"testing"
"time"
+ "github.com/cosmos/gogoproto/proto"
+ intertxtypes "github.com/cosmos/interchain-accounts/x/inter-tx/types"
+ interchaintest "github.com/strangelove-ventures/interchaintest/v7"
+ "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ test "github.com/strangelove-ventures/interchaintest/v7/testutil"
+ testifysuite "github.com/stretchr/testify/suite"
+
sdkmath "cosmossdk.io/math"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
+
sdk "github.com/cosmos/cosmos-sdk/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
- "github.com/cosmos/gogoproto/proto"
- "github.com/cosmos/ibc-go/e2e/semverutil"
+
"github.com/cosmos/ibc-go/e2e/testsuite"
"github.com/cosmos/ibc-go/e2e/testvalues"
controllertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
@@ -22,12 +30,6 @@ import (
"github.com/cosmos/ibc-go/v7/modules/core/exported"
solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
- intertxtypes "github.com/cosmos/interchain-accounts/x/inter-tx/types"
- interchaintest "github.com/strangelove-ventures/interchaintest/v7"
- "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
- test "github.com/strangelove-ventures/interchaintest/v7/testutil"
- testifysuite "github.com/stretchr/testify/suite"
)
const (
@@ -210,7 +212,7 @@ func (s *UpgradeTestSuite) TestChainUpgrade() {
t.Run("send funds to test wallet", func(t *testing.T) {
err := chain.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{
Address: userWalletAddr,
- Amount: testvalues.StartingTokenAmount,
+ Amount: sdkmath.NewInt(testvalues.StartingTokenAmount),
Denom: chain.Config().Denom,
})
s.Require().NoError(err)
@@ -234,7 +236,7 @@ func (s *UpgradeTestSuite) TestChainUpgrade() {
t.Run("send funds to test wallet", func(t *testing.T) {
err := chain.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{
Address: userWalletAddr,
- Amount: testvalues.StartingTokenAmount,
+ Amount: sdkmath.NewInt(testvalues.StartingTokenAmount),
Denom: chain.Config().Denom,
})
s.Require().NoError(err)
@@ -296,7 +298,7 @@ func (s *UpgradeTestSuite) TestV5ToV6ChainUpgrade() {
// fund the host account, so it has some $$ to send
err := chainB.SendFunds(ctx, interchaintest.FaucetAccountKeyName, ibc.WalletAmount{
Address: hostAccount,
- Amount: testvalues.StartingTokenAmount,
+ Amount: sdkmath.NewInt(testvalues.StartingTokenAmount),
Denom: chainB.Config().Denom,
})
s.Require().NoError(err)
@@ -677,18 +679,6 @@ func (s *UpgradeTestSuite) RegisterInterchainAccount(ctx context.Context, chain
s.AssertTxSuccess(txResp)
}
-// getICAVersion returns the version which should be used in the MsgRegisterAccount broadcast from the
-// controller chain.
-func getICAVersion(chainAVersion, chainBVersion string) string {
- chainBIsGreaterThanOrEqualToChainA := semverutil.GTE(chainBVersion, chainAVersion)
- if chainBIsGreaterThanOrEqualToChainA {
- // allow version to be specified by the controller chain
- return ""
- }
- // explicitly set the version string because the host chain might not yet support incentivized channels.
- return icatypes.NewDefaultMetadataString(ibctesting.FirstConnectionID, ibctesting.FirstConnectionID)
-}
-
// ClientState queries the current ClientState by clientID
func (s *UpgradeTestSuite) ClientState(ctx context.Context, chain ibc.Chain, clientID string) (*clienttypes.QueryClientStateResponse, error) {
queryClient := s.GetChainGRCPClients(chain).ClientQueryClient
diff --git a/e2e/testsuite/codec.go b/e2e/testsuite/codec.go
index 42a91712dd9..1422120a3a1 100644
--- a/e2e/testsuite/codec.go
+++ b/e2e/testsuite/codec.go
@@ -4,6 +4,10 @@ import (
"encoding/hex"
"fmt"
+ intertxtypes "github.com/cosmos/interchain-accounts/x/inter-tx/types"
+
+ upgradetypes "cosmossdk.io/x/upgrade/types"
+
"github.com/cosmos/cosmos-sdk/codec"
cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
@@ -15,8 +19,6 @@ import (
govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
grouptypes "github.com/cosmos/cosmos-sdk/x/group"
proposaltypes "github.com/cosmos/cosmos-sdk/x/params/types/proposal"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
- intertxtypes "github.com/cosmos/interchain-accounts/x/inter-tx/types"
icacontrollertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types"
diff --git a/e2e/testsuite/diagnostics/diagnostics.go b/e2e/testsuite/diagnostics/diagnostics.go
index 1f83d76265c..7e1b406ec29 100644
--- a/e2e/testsuite/diagnostics/diagnostics.go
+++ b/e2e/testsuite/diagnostics/diagnostics.go
@@ -50,7 +50,7 @@ func Collect(t *testing.T, dc *dockerclient.Client, debugModeEnabled bool, chain
return
}
- testContainers, err := dockerutil.GetTestContainers(t, ctx, dc)
+ testContainers, err := dockerutil.GetTestContainers(ctx, t, dc)
if err != nil {
t.Logf("failed listing containers test cleanup: %s", err)
return
diff --git a/e2e/testsuite/events.go b/e2e/testsuite/events.go
index c02c21c993d..cd0fd104706 100644
--- a/e2e/testsuite/events.go
+++ b/e2e/testsuite/events.go
@@ -1,8 +1,9 @@
package testsuite
import (
- abci "github.com/cometbft/cometbft/abci/types"
sdk "github.com/cosmos/cosmos-sdk/types"
+
+ abci "github.com/cometbft/cometbft/abci/types"
)
// ABCIToSDKEvents converts a list of ABCI events to Cosmos SDK events.
diff --git a/e2e/testsuite/grpc_query.go b/e2e/testsuite/grpc_query.go
index b968bbb6197..03155feb408 100644
--- a/e2e/testsuite/grpc_query.go
+++ b/e2e/testsuite/grpc_query.go
@@ -6,7 +6,13 @@ import (
"sort"
"time"
- "github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
+ intertxtypes "github.com/cosmos/interchain-accounts/x/inter-tx/types"
+ "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/credentials/insecure"
+
+ "github.com/cosmos/cosmos-sdk/client/grpc/cmtservice"
sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
"github.com/cosmos/cosmos-sdk/x/authz"
@@ -14,11 +20,6 @@ import (
govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
grouptypes "github.com/cosmos/cosmos-sdk/x/group"
paramsproposaltypes "github.com/cosmos/cosmos-sdk/x/params/types/proposal"
- intertxtypes "github.com/cosmos/interchain-accounts/x/inter-tx/types"
- "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
- "google.golang.org/grpc"
- "google.golang.org/grpc/credentials/insecure"
controllertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
hosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types"
@@ -51,7 +52,7 @@ type GRPCClients struct {
AuthQueryClient authtypes.QueryClient
AuthZQueryClient authz.QueryClient
- ConsensusServiceClient tmservice.ServiceClient
+ ConsensusServiceClient cmtservice.ServiceClient
}
// InitGRPCClients establishes GRPC clients with the given chain.
@@ -88,7 +89,7 @@ func (s *E2ETestSuite) InitGRPCClients(chain *cosmos.CosmosChain) {
ParamsQueryClient: paramsproposaltypes.NewQueryClient(grpcConn),
AuthQueryClient: authtypes.NewQueryClient(grpcConn),
AuthZQueryClient: authz.NewQueryClient(grpcConn),
- ConsensusServiceClient: tmservice.NewServiceClient(grpcConn),
+ ConsensusServiceClient: cmtservice.NewServiceClient(grpcConn),
}
}
@@ -216,13 +217,13 @@ func (s *E2ETestSuite) QueryInterchainAccountLegacy(ctx context.Context, chain i
func (s *E2ETestSuite) QueryIncentivizedPacketsForChannel(
ctx context.Context,
chain *cosmos.CosmosChain,
- portId,
- channelId string,
+ portID,
+ channelID string,
) ([]*feetypes.IdentifiedPacketFees, error) {
queryClient := s.GetChainGRCPClients(chain).FeeQueryClient
res, err := queryClient.IncentivizedPacketsForChannel(ctx, &feetypes.QueryIncentivizedPacketsForChannelRequest{
- PortId: portId,
- ChannelId: channelId,
+ PortId: portID,
+ ChannelId: channelID,
})
if err != nil {
return nil, err
@@ -270,28 +271,28 @@ func (s *E2ETestSuite) QueryProposalV1(ctx context.Context, chain ibc.Chain, pro
// GetBlockHeaderByHeight fetches the block header at a given height.
func (s *E2ETestSuite) GetBlockHeaderByHeight(ctx context.Context, chain ibc.Chain, height uint64) (Header, error) {
- tmService := s.GetChainGRCPClients(chain).ConsensusServiceClient
- res, err := tmService.GetBlockByHeight(ctx, &tmservice.GetBlockByHeightRequest{
+ consensusService := s.GetChainGRCPClients(chain).ConsensusServiceClient
+ res, err := consensusService.GetBlockByHeight(ctx, &cmtservice.GetBlockByHeightRequest{
Height: int64(height),
})
if err != nil {
return nil, err
}
- // Clean up when v6 is not supported, see: https://github.com/cosmos/ibc-go/issues/3540
- // versions newer than 0.47 SDK use the SdkBlock field while versions older
- // than 0.47 SDK, which do not have the SdkBlock field, use the Block field.
+ // Clean up when v4 is not supported, see: https://github.com/cosmos/ibc-go/issues/3540
+ // versions newer than 0.46 SDK use the SdkBlock field while versions older
+ // than 0.46 SDK, which do not have the SdkBlock field, use the Block field.
if res.SdkBlock != nil {
return &res.SdkBlock.Header, nil
}
- return &res.Block.Header, nil
+ return &res.Block.Header, nil // needed for v4 (uses SDK v0.45)
}
// GetValidatorSetByHeight returns the validators of the given chain at the specified height. The returned validators
// are sorted by address.
-func (s *E2ETestSuite) GetValidatorSetByHeight(ctx context.Context, chain ibc.Chain, height uint64) ([]*tmservice.Validator, error) {
- tmService := s.GetChainGRCPClients(chain).ConsensusServiceClient
- res, err := tmService.GetValidatorSetByHeight(ctx, &tmservice.GetValidatorSetByHeightRequest{
+func (s *E2ETestSuite) GetValidatorSetByHeight(ctx context.Context, chain ibc.Chain, height uint64) ([]*cmtservice.Validator, error) {
+ consensusService := s.GetChainGRCPClients(chain).ConsensusServiceClient
+ res, err := consensusService.GetValidatorSetByHeight(ctx, &cmtservice.GetValidatorSetByHeightRequest{
Height: int64(height),
})
if err != nil {
@@ -318,7 +319,7 @@ func (s *E2ETestSuite) QueryModuleAccountAddress(ctx context.Context, moduleName
cfg := EncodingConfig()
- var account authtypes.AccountI
+ var account sdk.AccountI
if err := cfg.InterfaceRegistry.UnpackAny(resp.Account, &account); err != nil {
return nil, err
}
diff --git a/e2e/testsuite/testconfig.go b/e2e/testsuite/testconfig.go
index 861ad797a2f..b60328d65a9 100644
--- a/e2e/testsuite/testconfig.go
+++ b/e2e/testsuite/testconfig.go
@@ -7,8 +7,10 @@ import (
"path"
"strings"
- tmjson "github.com/cometbft/cometbft/libs/json"
- tmtypes "github.com/cometbft/cometbft/types"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ interchaintestutil "github.com/strangelove-ventures/interchaintest/v7/testutil"
+ "gopkg.in/yaml.v2"
+
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module/testutil"
@@ -16,9 +18,6 @@ import (
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
- interchaintestutil "github.com/strangelove-ventures/interchaintest/v7/testutil"
- "gopkg.in/yaml.v2"
"github.com/cosmos/ibc-go/e2e/relayer"
"github.com/cosmos/ibc-go/e2e/testvalues"
@@ -35,6 +34,9 @@ const (
ChainBTagEnv = "CHAIN_B_TAG"
// RelayerTagEnv specifies the relayer version. Defaults to "main"
RelayerTagEnv = "RELAYER_TAG"
+ // RelayerImageEnv specifies the image that the relayer will use. If left unspecified, it will default
+ // to values set for hermesRelayerRepository or rlyRelayerRepository.
+ RelayerImageEnv = "RELAYER_IMAGE"
// RelayerTypeEnv specifies the type of relayer that should be used.
RelayerTypeEnv = "RELAYER_TYPE"
// ChainBinaryEnv binary is the binary that will be used for both chains.
@@ -52,11 +54,11 @@ const (
// all images are here https://github.com/cosmos/relayer/pkgs/container/relayer/versions
defaultRlyTag = "latest" // "andrew-tendermint_v0.37" // "v2.2.0"
// defaultHermesTag is the tag that will be used if no relayer tag is specified for hermes.
- defaultHermesTag = "v1.4.0"
+ defaultHermesTag = "v1.6.0"
// defaultChainTag is the tag that will be used for the chains if none is specified.
defaultChainTag = "main"
// defaultRelayerType is the default relayer that will be used if none is specified.
- defaultRelayerType = relayer.Rly
+ defaultRelayerType = relayer.Hermes
// defaultConfigFileName is the default filename for the config file that can be used to configure
// e2e tests. See sample.config.yaml as an example for what this should look like.
defaultConfigFileName = ".ibc-go-e2e-config.yaml"
@@ -204,6 +206,10 @@ func applyEnvironmentVariableOverrides(fromFile TestConfig) TestConfig {
fromFile.RelayerConfig.Type = envTc.RelayerConfig.Type
}
+ if os.Getenv(RelayerImageEnv) != "" {
+ fromFile.RelayerConfig.Image = envTc.RelayerConfig.Image
+ }
+
if os.Getenv(ChainUpgradePlanEnv) != "" {
fromFile.UpgradeConfig.PlanName = envTc.UpgradeConfig.PlanName
}
@@ -282,18 +288,39 @@ func getRelayerConfigFromEnv() relayer.Config {
relayerType = defaultRelayerType
}
- rlyTag := strings.TrimSpace(os.Getenv(RelayerTagEnv))
- if rlyTag == "" {
- if relayerType == relayer.Rly {
- rlyTag = defaultRlyTag
- }
- if relayerType == relayer.Hermes {
- rlyTag = defaultHermesTag
- }
+ relayerConfig := getDefaultRlyRelayerConfig()
+ if relayerType == relayer.Hermes {
+ relayerConfig = getDefaultHermesRelayerConfig()
+ }
+
+ relayerTag := strings.TrimSpace(os.Getenv(RelayerTagEnv))
+ if relayerTag != "" {
+ relayerConfig.Tag = relayerTag
+ }
+
+ relayerImage := strings.TrimSpace(os.Getenv(RelayerImageEnv))
+ if relayerImage != "" {
+ relayerConfig.Image = relayerImage
+ }
+
+ return relayerConfig
+}
+
+// getDefaultHermesRelayerConfig returns the default config for the hermes relayer.
+func getDefaultHermesRelayerConfig() relayer.Config {
+ return relayer.Config{
+ Tag: defaultHermesTag,
+ Type: relayer.Hermes,
+ Image: relayer.HermesRelayerRepository,
}
+}
+
+// getDefaultRlyRelayerConfig returns the default config for the golang relayer.
+func getDefaultRlyRelayerConfig() relayer.Config {
return relayer.Config{
- Tag: rlyTag,
- Type: relayerType,
+ Tag: defaultRlyTag,
+ Type: relayer.Rly,
+ Image: relayer.RlyRelayerRepository,
}
}
@@ -418,13 +445,13 @@ func getGenesisModificationFunction(cc ChainConfig) func(ibc.ChainConfig, []byte
// are functional for e2e testing purposes.
func defaultGovv1ModifyGenesis() func(ibc.ChainConfig, []byte) ([]byte, error) {
return func(chainConfig ibc.ChainConfig, genbz []byte) ([]byte, error) {
- genDoc, err := tmtypes.GenesisDocFromJSON(genbz)
- if err != nil {
- return nil, fmt.Errorf("failed to unmarshal genesis bytes into genesis doc: %w", err)
+ var appGenesis genutiltypes.AppGenesis
+ if err := json.Unmarshal(genbz, &appGenesis); err != nil {
+ return nil, fmt.Errorf("failed to unmarshal genesis bytes into SDK AppGenesis: %w", err)
}
var appState genutiltypes.AppMap
- if err := json.Unmarshal(genDoc.AppState, &appState); err != nil {
+ if err := json.Unmarshal(appGenesis.AppState, &appState); err != nil {
return nil, fmt.Errorf("failed to unmarshal genesis bytes into app state: %w", err)
}
@@ -435,12 +462,12 @@ func defaultGovv1ModifyGenesis() func(ibc.ChainConfig, []byte) ([]byte, error) {
appState[govtypes.ModuleName] = govGenBz
- genDoc.AppState, err = json.Marshal(appState)
+ appGenesis.AppState, err = json.Marshal(appState)
if err != nil {
return nil, err
}
- bz, err := tmjson.MarshalIndent(genDoc, "", " ")
+ bz, err := json.MarshalIndent(appGenesis, "", " ")
if err != nil {
return nil, err
}
diff --git a/e2e/testsuite/testsuite.go b/e2e/testsuite/testsuite.go
index e045a4ab70d..b158d002977 100644
--- a/e2e/testsuite/testsuite.go
+++ b/e2e/testsuite/testsuite.go
@@ -36,7 +36,7 @@ type E2ETestSuite struct {
grpcClients map[string]GRPCClients
paths map[string]pathPair
- relayers relayer.RelayerMap
+ relayers relayer.Map
logger *zap.Logger
DockerClient *dockerclient.Client
network string
@@ -73,7 +73,7 @@ func (s *E2ETestSuite) GetRelayerUsers(ctx context.Context, chainOpts ...ChainOp
chainBRelayerUser := cosmos.NewWallet(ChainBRelayerName, chainBAccountBytes, "", chainB.Config())
if s.relayers == nil {
- s.relayers = make(relayer.RelayerMap)
+ s.relayers = make(relayer.Map)
}
s.relayers.AddRelayer(s.T().Name(), chainARelayerUser)
s.relayers.AddRelayer(s.T().Name(), chainBRelayerUser)
@@ -176,29 +176,29 @@ func (s *E2ETestSuite) GetPathName(idx int64) string {
}
// generatePath generates the path name using the test suites name
-func (s *E2ETestSuite) generatePath(ctx context.Context, relayer ibc.Relayer) string {
+func (s *E2ETestSuite) generatePath(ctx context.Context, ibcrelayer ibc.Relayer) string {
chainA, chainB := s.GetChains()
chainAID := chainA.Config().ChainID
chainBID := chainB.Config().ChainID
pathName := s.generatePathName()
- err := relayer.GeneratePath(ctx, s.GetRelayerExecReporter(), chainAID, chainBID, pathName)
+ err := ibcrelayer.GeneratePath(ctx, s.GetRelayerExecReporter(), chainAID, chainBID, pathName)
s.Require().NoError(err)
return pathName
}
// SetupClients creates clients on chainA and chainB using the provided create client options
-func (s *E2ETestSuite) SetupClients(ctx context.Context, relayer ibc.Relayer, opts ibc.CreateClientOptions) {
- pathName := s.generatePath(ctx, relayer)
- err := relayer.CreateClients(ctx, s.GetRelayerExecReporter(), pathName, opts)
+func (s *E2ETestSuite) SetupClients(ctx context.Context, ibcrelayer ibc.Relayer, opts ibc.CreateClientOptions) {
+ pathName := s.generatePath(ctx, ibcrelayer)
+ err := ibcrelayer.CreateClients(ctx, s.GetRelayerExecReporter(), pathName, opts)
s.Require().NoError(err)
}
// UpdateClients updates clients on chainA and chainB
-func (s *E2ETestSuite) UpdateClients(ctx context.Context, relayer ibc.Relayer, pathName string) {
- err := relayer.UpdateClients(ctx, s.GetRelayerExecReporter(), pathName)
+func (s *E2ETestSuite) UpdateClients(ctx context.Context, ibcrelayer ibc.Relayer, pathName string) {
+ err := ibcrelayer.UpdateClients(ctx, s.GetRelayerExecReporter(), pathName)
s.Require().NoError(err)
}
@@ -226,25 +226,25 @@ func (s *E2ETestSuite) GetChains(chainOpts ...ChainOptionConfiguration) (*cosmos
return path.chainA, path.chainB
}
-// GetRelayerWallets returns the relayer wallets associated with the chains.
-func (s *E2ETestSuite) GetRelayerWallets(relayer ibc.Relayer) (ibc.Wallet, ibc.Wallet, error) {
+// GetRelayerWallets returns the ibcrelayer wallets associated with the chains.
+func (s *E2ETestSuite) GetRelayerWallets(ibcrelayer ibc.Relayer) (ibc.Wallet, ibc.Wallet, error) {
chainA, chainB := s.GetChains()
- chainARelayerWallet, ok := relayer.GetWallet(chainA.Config().ChainID)
+ chainARelayerWallet, ok := ibcrelayer.GetWallet(chainA.Config().ChainID)
if !ok {
return nil, nil, fmt.Errorf("unable to find chain A relayer wallet")
}
- chainBRelayerWallet, ok := relayer.GetWallet(chainB.Config().ChainID)
+ chainBRelayerWallet, ok := ibcrelayer.GetWallet(chainB.Config().ChainID)
if !ok {
return nil, nil, fmt.Errorf("unable to find chain B relayer wallet")
}
return chainARelayerWallet, chainBRelayerWallet, nil
}
-// RecoverRelayerWallets adds the corresponding relayer address to the keychain of the chain.
+// RecoverRelayerWallets adds the corresponding ibcrelayer address to the keychain of the chain.
// This is useful if commands executed on the chains expect the relayer information to present in the keychain.
-func (s *E2ETestSuite) RecoverRelayerWallets(ctx context.Context, relayer ibc.Relayer) error {
- chainARelayerWallet, chainBRelayerWallet, err := s.GetRelayerWallets(relayer)
+func (s *E2ETestSuite) RecoverRelayerWallets(ctx context.Context, ibcrelayer ibc.Relayer) error {
+ chainARelayerWallet, chainBRelayerWallet, err := s.GetRelayerWallets(ibcrelayer)
if err != nil {
return err
}
@@ -260,18 +260,18 @@ func (s *E2ETestSuite) RecoverRelayerWallets(ctx context.Context, relayer ibc.Re
return nil
}
-// StartRelayer starts the given relayer.
-func (s *E2ETestSuite) StartRelayer(relayer ibc.Relayer) {
+// StartRelayer starts the given ibcrelayer.
+func (s *E2ETestSuite) StartRelayer(ibcrelayer ibc.Relayer) {
if s.startRelayerFn == nil {
panic("cannot start relayer before it is created!")
}
- s.startRelayerFn(relayer)
+ s.startRelayerFn(ibcrelayer)
}
-// StopRelayer stops the given relayer.
-func (s *E2ETestSuite) StopRelayer(ctx context.Context, relayer ibc.Relayer) {
- err := relayer.StopRelayer(ctx, s.GetRelayerExecReporter())
+// StopRelayer stops the given ibcrelayer.
+func (s *E2ETestSuite) StopRelayer(ctx context.Context, ibcrelayer ibc.Relayer) {
+ err := ibcrelayer.StopRelayer(ctx, s.GetRelayerExecReporter())
s.Require().NoError(err)
}
@@ -350,7 +350,7 @@ func (s *E2ETestSuite) GetRelayerExecReporter() *testreporter.RelayerExecReporte
}
// TransferChannelOptions configures both of the chains to have non-incentivized transfer channels.
-func (s *E2ETestSuite) TransferChannelOptions() func(options *ibc.CreateChannelOptions) {
+func (*E2ETestSuite) TransferChannelOptions() func(options *ibc.CreateChannelOptions) {
return func(opts *ibc.CreateChannelOptions) {
opts.Version = transfertypes.Version
opts.SourcePortName = transfertypes.PortID
@@ -363,7 +363,7 @@ func (s *E2ETestSuite) TransferChannelOptions() func(options *ibc.CreateChannelO
func (s *E2ETestSuite) GetTimeoutHeight(ctx context.Context, chain *cosmos.CosmosChain) clienttypes.Height {
height, err := chain.Height(ctx)
s.Require().NoError(err)
- return clienttypes.NewHeight(clienttypes.ParseChainID(chain.Config().ChainID), uint64(height)+1000)
+ return clienttypes.NewHeight(clienttypes.ParseChainID(chain.Config().ChainID), height+1000)
}
// GetNativeChainBalance returns the balance of a specific user on a chain using the native denom.
@@ -372,7 +372,7 @@ func GetNativeChainBalance(ctx context.Context, chain ibc.Chain, user ibc.Wallet
if err != nil {
return -1, err
}
- return bal, nil
+ return bal.Int64(), nil
}
// GetIBCToken returns the denomination of the full token denom sent to the receiving channel
diff --git a/e2e/testsuite/tx.go b/e2e/testsuite/tx.go
index 3c64ee124b2..ef53c62f525 100644
--- a/e2e/testsuite/tx.go
+++ b/e2e/testsuite/tx.go
@@ -7,7 +7,12 @@ import (
"strings"
"time"
+ "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+ test "github.com/strangelove-ventures/interchaintest/v7/testutil"
+
errorsmod "cosmossdk.io/errors"
+
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/tx"
sdk "github.com/cosmos/cosmos-sdk/types"
@@ -15,9 +20,6 @@ import (
authtx "github.com/cosmos/cosmos-sdk/x/auth/tx"
govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
- "github.com/strangelove-ventures/interchaintest/v7/chain/cosmos"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
- test "github.com/strangelove-ventures/interchaintest/v7/testutil"
"github.com/cosmos/ibc-go/e2e/testsuite/sanitize"
"github.com/cosmos/ibc-go/e2e/testvalues"
@@ -140,7 +142,15 @@ func (s *E2ETestSuite) ExecuteGovProposalV1(ctx context.Context, msg sdk.Msg, ch
s.Require().NoError(err)
msgs := []sdk.Msg{msg}
- msgSubmitProposal, err := govtypesv1.NewMsgSubmitProposal(msgs, sdk.NewCoins(sdk.NewCoin(chain.Config().Denom, govtypesv1.DefaultMinDepositTokens)), sender.String(), "", fmt.Sprintf("e2e gov proposal: %d", proposalID), fmt.Sprintf("executing gov proposal %d", proposalID))
+ msgSubmitProposal, err := govtypesv1.NewMsgSubmitProposal(
+ msgs,
+ sdk.NewCoins(sdk.NewCoin(chain.Config().Denom, govtypesv1.DefaultMinDepositTokens)),
+ sender.String(),
+ "",
+ fmt.Sprintf("e2e gov proposal: %d", proposalID),
+ fmt.Sprintf("executing gov proposal %d", proposalID),
+ false,
+ )
s.Require().NoError(err)
resp := s.BroadcastMessages(ctx, chain, user, msgSubmitProposal)
diff --git a/e2e/testvalues/values.go b/e2e/testvalues/values.go
index 03a7a207386..24913b0c8b0 100644
--- a/e2e/testvalues/values.go
+++ b/e2e/testvalues/values.go
@@ -4,9 +4,11 @@ import (
"fmt"
"time"
+ "github.com/strangelove-ventures/interchaintest/v7/ibc"
+
sdkmath "cosmossdk.io/math"
+
sdk "github.com/cosmos/cosmos-sdk/types"
- "github.com/strangelove-ventures/interchaintest/v7/ibc"
"github.com/cosmos/ibc-go/e2e/semverutil"
feetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
@@ -72,7 +74,7 @@ var SimdNewGenesisCommandsFeatureReleases = semverutil.FeatureReleases{
MajorVersion: "v8",
}
-// TransferSelfParamsFeatureReleases represents the releases the transfer module started managing its own params.
+// SelfParamsFeatureReleases represents the releases the transfer module started managing its own params.
var SelfParamsFeatureReleases = semverutil.FeatureReleases{
MajorVersion: "v8",
}
@@ -99,3 +101,10 @@ var TotalEscrowFeatureReleases = semverutil.FeatureReleases{
var IbcErrorsFeatureReleases = semverutil.FeatureReleases{
MajorVersion: "v8.0",
}
+
+// LocalhostClientFeatureReleases represents the releases the localhost client was released in.
+var LocalhostClientFeatureReleases = semverutil.FeatureReleases{
+ MinorVersions: []string{
+ "v7.1",
+ },
+}
diff --git a/go.mod b/go.mod
index e7905dd8f3f..a73632cf50b 100644
--- a/go.mod
+++ b/go.mod
@@ -3,47 +3,56 @@ go 1.21
module github.com/cosmos/ibc-go/v7
require (
- cosmossdk.io/api v0.3.1
+ cosmossdk.io/api v0.7.0
+ cosmossdk.io/client/v2 v2.0.0-20230818115413-c402c51a1508
+ cosmossdk.io/core v0.10.0
cosmossdk.io/errors v1.0.0
+ cosmossdk.io/log v1.2.1
cosmossdk.io/math v1.1.2
- github.com/armon/go-metrics v0.4.1
- github.com/cometbft/cometbft v0.37.2
- github.com/cometbft/cometbft-db v0.8.0
- github.com/cosmos/cosmos-proto v1.0.0-beta.2
- github.com/cosmos/cosmos-sdk v0.47.4
- github.com/cosmos/gogoproto v1.4.10
- github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1
+ cosmossdk.io/store v1.0.0-alpha.1.0.20230728080422-54ed7dab3982
+ cosmossdk.io/tools/confix v0.0.0-20230818115413-c402c51a1508
+ cosmossdk.io/x/circuit v0.0.0-20230818115413-c402c51a1508
+ cosmossdk.io/x/evidence v0.0.0-20230818115413-c402c51a1508
+ cosmossdk.io/x/feegrant v0.0.0-20230818115413-c402c51a1508
+ cosmossdk.io/x/tx v0.9.1
+ cosmossdk.io/x/upgrade v0.0.0-20230818115413-c402c51a1508
+ github.com/cometbft/cometbft v0.38.0-rc3
+ github.com/cosmos/cosmos-db v1.0.0
+ github.com/cosmos/cosmos-proto v1.0.0-beta.3
+ github.com/cosmos/cosmos-sdk v0.50.0-rc.0.0.20230819070346-e8164be94954
+ github.com/cosmos/gogoproto v1.4.11
+ github.com/cosmos/ibc-go/modules/capability v1.0.0-rc3
github.com/cosmos/ics23/go v0.10.0
github.com/golang/protobuf v1.5.3
github.com/grpc-ecosystem/grpc-gateway v1.16.0
+ github.com/hashicorp/go-metrics v0.5.1
github.com/spf13/cast v1.5.1
github.com/spf13/cobra v1.7.0
github.com/spf13/viper v1.16.0
github.com/stretchr/testify v1.8.4
- google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529
+ google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e
google.golang.org/grpc v1.57.0
google.golang.org/protobuf v1.31.0
gopkg.in/yaml.v2 v2.4.0
)
require (
- cloud.google.com/go v0.110.4 // indirect
- cloud.google.com/go/compute v1.20.1 // indirect
+ cloud.google.com/go v0.110.6 // indirect
+ cloud.google.com/go/compute v1.23.0 // indirect
cloud.google.com/go/compute/metadata v0.2.3 // indirect
- cloud.google.com/go/iam v1.1.0 // indirect
+ cloud.google.com/go/iam v1.1.1 // indirect
cloud.google.com/go/storage v1.30.1 // indirect
- cosmossdk.io/core v0.5.1 // indirect
+ cosmossdk.io/collections v0.4.0 // indirect
cosmossdk.io/depinject v1.0.0-alpha.4 // indirect
- cosmossdk.io/log v1.2.1 // indirect
- cosmossdk.io/tools/rosetta v0.2.1 // indirect
filippo.io/edwards25519 v1.0.0 // indirect
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect
github.com/99designs/keyring v1.2.1 // indirect
- github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect
- github.com/aws/aws-sdk-go v1.44.203 // indirect
+ github.com/DataDog/zstd v1.5.5 // indirect
+ github.com/aws/aws-sdk-go v1.44.224 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect
+ github.com/bits-and-blooms/bitset v1.8.0 // indirect
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
github.com/cenkalti/backoff/v4 v4.1.3 // indirect
github.com/cespare/xxhash v1.1.0 // indirect
@@ -52,25 +61,28 @@ require (
github.com/cockroachdb/apd/v2 v2.0.2 // indirect
github.com/cockroachdb/errors v1.10.0 // indirect
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
+ github.com/cockroachdb/pebble v0.0.0-20230817233644-564b068800e0 // indirect
github.com/cockroachdb/redact v1.1.5 // indirect
- github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect
- github.com/confio/ics23/go v0.9.0 // indirect
+ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect
+ github.com/cometbft/cometbft-db v0.8.0 // indirect
github.com/cosmos/btcutil v1.0.5 // indirect
github.com/cosmos/go-bip39 v1.0.0 // indirect
github.com/cosmos/gogogateway v1.2.0 // indirect
- github.com/cosmos/iavl v0.20.0 // indirect
- github.com/cosmos/ledger-cosmos-go v0.12.1 // indirect
- github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect
- github.com/creachadair/taskgroup v0.4.2 // indirect
+ github.com/cosmos/iavl v1.0.0-beta.2 // indirect
+ github.com/cosmos/ledger-cosmos-go v0.13.0 // indirect
+ github.com/creachadair/atomicfile v0.3.1 // indirect
+ github.com/creachadair/tomledit v0.0.24 // indirect
github.com/danieljoos/wincred v1.1.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
- github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
+ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect
github.com/dgraph-io/badger/v2 v2.2007.4 // indirect
github.com/dgraph-io/ristretto v0.1.1 // indirect
github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/dvsekhvalnov/jose2go v1.5.0 // indirect
+ github.com/emicklei/dot v1.5.0 // indirect
+ github.com/fatih/color v1.15.0 // indirect
github.com/felixge/httpsnoop v1.0.2 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/getsentry/sentry-go v0.23.0 // indirect
@@ -94,49 +106,52 @@ require (
github.com/gorilla/handlers v1.5.1 // indirect
github.com/gorilla/mux v1.8.0 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
- github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
+ github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect
- github.com/gtank/merlin v0.1.1 // indirect
- github.com/gtank/ristretto255 v0.1.2 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-getter v1.7.1 // indirect
+ github.com/hashicorp/go-hclog v1.5.0 // indirect
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
+ github.com/hashicorp/go-plugin v1.4.10 // indirect
github.com/hashicorp/go-safetemp v1.0.0 // indirect
+ github.com/hashicorp/go-uuid v1.0.2 // indirect
github.com/hashicorp/go-version v1.6.0 // indirect
github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
+ github.com/hashicorp/yamux v0.1.1 // indirect
github.com/hdevalence/ed25519consensus v0.1.0 // indirect
github.com/huandu/skiplist v1.2.0 // indirect
+ github.com/iancoleman/strcase v0.3.0 // indirect
github.com/improbable-eng/grpc-web v0.15.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/jmhodges/levigo v1.0.0 // indirect
- github.com/klauspost/compress v1.16.3 // indirect
+ github.com/klauspost/compress v1.16.7 // indirect
github.com/kr/pretty v0.3.1 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/lib/pq v1.10.7 // indirect
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
- github.com/linxGnu/grocksdb v1.7.16 // indirect
+ github.com/linxGnu/grocksdb v1.8.0 // indirect
github.com/magiconair/properties v1.8.7 // indirect
github.com/manifoldco/promptui v0.9.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
- github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect
github.com/minio/highwayhash v1.0.2 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/mtibben/percent v0.2.1 // indirect
- github.com/pelletier/go-toml/v2 v2.0.8 // indirect
- github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect
+ github.com/oasisprotocol/curve25519-voi v0.0.0-20230110094441-db37f07504ce // indirect
+ github.com/oklog/run v1.1.0 // indirect
+ github.com/pelletier/go-toml/v2 v2.0.9 // indirect
+ github.com/petermattis/goid v0.0.0-20230518223814-80aa455d8761 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
- github.com/prometheus/client_golang v1.14.0 // indirect
- github.com/prometheus/client_model v0.3.0 // indirect
- github.com/prometheus/common v0.42.0 // indirect
- github.com/prometheus/procfs v0.9.0 // indirect
- github.com/rakyll/statik v0.1.7 // indirect
+ github.com/prometheus/client_golang v1.16.0 // indirect
+ github.com/prometheus/client_model v0.4.0 // indirect
+ github.com/prometheus/common v0.44.0 // indirect
+ github.com/prometheus/procfs v0.11.1 // indirect
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
github.com/rogpeppe/go-internal v1.11.0 // indirect
github.com/rs/cors v1.8.3 // indirect
@@ -154,26 +169,25 @@ require (
github.com/zondax/ledger-go v0.14.1 // indirect
go.etcd.io/bbolt v1.3.7 // indirect
go.opencensus.io v0.24.0 // indirect
- golang.org/x/crypto v0.11.0 // indirect
- golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect
- golang.org/x/net v0.12.0 // indirect
+ golang.org/x/crypto v0.12.0 // indirect
+ golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 // indirect
+ golang.org/x/net v0.14.0 // indirect
golang.org/x/oauth2 v0.8.0 // indirect
- golang.org/x/sync v0.2.0 // indirect
+ golang.org/x/sync v0.3.0 // indirect
golang.org/x/sys v0.11.0 // indirect
- golang.org/x/term v0.10.0 // indirect
+ golang.org/x/term v0.11.0 // indirect
golang.org/x/text v0.12.0 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
google.golang.org/api v0.126.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
- google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect
+ google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
+ gotest.tools/v3 v3.5.0 // indirect
nhooyr.io/websocket v1.8.6 // indirect
- pgregory.net/rapid v0.5.5 // indirect
+ pgregory.net/rapid v1.1.0 // indirect
sigs.k8s.io/yaml v1.3.0 // indirect
)
replace github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7
-
-replace github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.47.5-0.20230828070859-c9144f02dda8
diff --git a/go.sum b/go.sum
index 4ba128c73c2..84eec199e7a 100644
--- a/go.sum
+++ b/go.sum
@@ -32,8 +32,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9
cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc=
cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU=
cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA=
-cloud.google.com/go v0.110.4 h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk=
-cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
+cloud.google.com/go v0.110.6 h1:8uYAkj3YHTP/1iwReuHPxLSbdcyc+dSBbzFMrVwDR6Q=
+cloud.google.com/go v0.110.6/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw=
cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY=
cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI=
@@ -70,8 +70,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz
cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU=
cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U=
cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU=
-cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg=
-cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
+cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY=
+cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I=
@@ -111,8 +111,8 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97
cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc=
cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY=
cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc=
-cloud.google.com/go/iam v1.1.0 h1:67gSqaPukx7O8WLLHMa0PNs3EBGd2eE4d+psbO/CO94=
-cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk=
+cloud.google.com/go/iam v1.1.1 h1:lW7fzj15aVIXYHREOqjRBV9PsH0Z6u8Y46a1YGvQP4Y=
+cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU=
cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic=
cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI=
cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8=
@@ -187,10 +187,14 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX
cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg=
cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0=
cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M=
-cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE=
-cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw=
-cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI=
-cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE=
+cosmossdk.io/api v0.7.0 h1:QsEMIWuv9xWDbF2HZnW4Lpu1/SejCztPu0LQx7t6MN4=
+cosmossdk.io/api v0.7.0/go.mod h1:kJFAEMLN57y0viszHDPLMmieF0471o5QAwwApa+270M=
+cosmossdk.io/client/v2 v2.0.0-20230818115413-c402c51a1508 h1:tt5OMwdouv7dkwkWJYxb8I9h322bOxnC9RmK2qGvWMs=
+cosmossdk.io/client/v2 v2.0.0-20230818115413-c402c51a1508/go.mod h1:iHeSk2AT6O8RNGlfcEQq6Yty6Z/6gydQsXXBh5I715Q=
+cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s=
+cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0=
+cosmossdk.io/core v0.10.0 h1:NP28Ol9YyRODmZLJg2ko/mUl40hMegeMzhJnG+XPkcY=
+cosmossdk.io/core v0.10.0/go.mod h1:MygXNld9DvMgYY4yE76DM/mdZpgfeyRjy6FPjEEehlY=
cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc=
cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU=
cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04=
@@ -199,8 +203,20 @@ cosmossdk.io/log v1.2.1 h1:Xc1GgTCicniwmMiKwDxUjO4eLhPxoVdI9vtMW8Ti/uk=
cosmossdk.io/log v1.2.1/go.mod h1:GNSCc/6+DhFIj1aLn/j7Id7PaO8DzNylUZoOYBL9+I4=
cosmossdk.io/math v1.1.2 h1:ORZetZCTyWkI5GlZ6CZS28fMHi83ZYf+A2vVnHNzZBM=
cosmossdk.io/math v1.1.2/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0=
-cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw=
-cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw=
+cosmossdk.io/store v1.0.0-alpha.1.0.20230728080422-54ed7dab3982 h1:61YFeW2AhwwPfoJWzNJWvVubCj32sm5jZkJfraS9pDQ=
+cosmossdk.io/store v1.0.0-alpha.1.0.20230728080422-54ed7dab3982/go.mod h1:QAF9zeRa/9ghuv7E8NS9SzWqRbgVNwH/dZwGhYDHUjI=
+cosmossdk.io/tools/confix v0.0.0-20230818115413-c402c51a1508 h1:axKhxRa3M9QW2GdKJUsSyzo44gxcwSOTGeomtkbQClM=
+cosmossdk.io/tools/confix v0.0.0-20230818115413-c402c51a1508/go.mod h1:qcJ1zwLIMefpDHZuYSa73yBe/k5HyQ5H1Jg9PWv30Ts=
+cosmossdk.io/x/circuit v0.0.0-20230818115413-c402c51a1508 h1:9HRBpMbGgk+W4BIp4ezYH2EjbpuVl2fBlwyJ2GZgrS0=
+cosmossdk.io/x/circuit v0.0.0-20230818115413-c402c51a1508/go.mod h1:BhFX0kD6lkctNQO3ZGYY3p6h0/wPLVbFhrOt3uQxEIM=
+cosmossdk.io/x/evidence v0.0.0-20230818115413-c402c51a1508 h1:R9H1lDpcPSkrLOnt6IDE38o0Wp8xE/+BAxocb0oyX4I=
+cosmossdk.io/x/evidence v0.0.0-20230818115413-c402c51a1508/go.mod h1:yjIo3J0QKDo9CJawK1QoTA1hBx0llafVJdPqI0+ry74=
+cosmossdk.io/x/feegrant v0.0.0-20230818115413-c402c51a1508 h1:TKqjhhTfLchU8nSo1WZRgaH7xZWzYUQXVRj9CePcbaw=
+cosmossdk.io/x/feegrant v0.0.0-20230818115413-c402c51a1508/go.mod h1:kOr8Rr10RoMeGGk/pfW5yo1R7GQTGu4KdRgKphVvjz4=
+cosmossdk.io/x/tx v0.9.1 h1:9pmmXA9Vs4qdouOFnzhsdsff2mif0f0kylMq5xTGhRI=
+cosmossdk.io/x/tx v0.9.1/go.mod h1:/YFGTXG6+kyihd8YbfuJiXHV4R/mIMm2uvVzo80CIhA=
+cosmossdk.io/x/upgrade v0.0.0-20230818115413-c402c51a1508 h1:tZ5fSX+ev+QHQ15457Vhxug8BSZJcHeBhU8DpgwlkCc=
+cosmossdk.io/x/upgrade v0.0.0-20230818115413-c402c51a1508/go.mod h1:M0JWINHzdN0eFHrWMs082akHHSO5muExS+/tNNIOyP8=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek=
filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns=
@@ -208,13 +224,13 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMb
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4=
github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo87o=
github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA=
-github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
-github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
+github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
+github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
-github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg=
-github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4=
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
+github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ=
+github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg=
github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE=
@@ -240,16 +256,15 @@ github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
-github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA=
-github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A=
github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
-github.com/aws/aws-sdk-go v1.44.203 h1:pcsP805b9acL3wUqa4JR2vg1k2wnItkDYNvfmcy6F+U=
-github.com/aws/aws-sdk-go v1.44.203/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
+github.com/aws/aws-sdk-go v1.44.224 h1:09CiaaF35nRmxrzWZ2uRq5v6Ghg/d2RiPjZnSgtt+RQ=
+github.com/aws/aws-sdk-go v1.44.224/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
+github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -259,14 +274,16 @@ github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s=
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
+github.com/bits-and-blooms/bitset v1.8.0 h1:FD+XqgOZDUxxZ8hzoBFuV9+cGWY9CslN6d5MS5JVb4c=
+github.com/bits-and-blooms/bitset v1.8.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U=
github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04=
-github.com/btcsuite/btcd/btcutil v1.1.2 h1:XLMbX8JQEiwMcYft2EGi8zPUkoa0abKIU6/BJSRsjzQ=
-github.com/btcsuite/btcd/btcutil v1.1.2/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0=
+github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ=
+github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0=
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U=
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc=
-github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA=
-github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8=
+github.com/bufbuild/protocompile v0.5.1 h1:mixz5lJX4Hiz4FpqFREJHIXLfaLBntfaJv1h+/jS+Qg=
+github.com/bufbuild/protocompile v0.5.1/go.mod h1:G5iLmavmF4NsYtpZFvE3B/zFch2GIY8+wjsYLR/lc40=
github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
@@ -305,21 +322,23 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWH
github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E=
github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw=
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
+github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4=
+github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU=
github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU=
github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE=
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE=
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs=
+github.com/cockroachdb/pebble v0.0.0-20230817233644-564b068800e0 h1:M4A5LioEhkZ/s+m0g0pWgiLBQr83p0jWnQUo320Qy+A=
+github.com/cockroachdb/pebble v0.0.0-20230817233644-564b068800e0/go.mod h1:EDjiaAXc0FXiRmxDzcu1wIEJ093ohHMUWxrI6iku0XA=
github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30=
github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=
+github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo=
+github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
-github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA=
-github.com/coinbase/rosetta-sdk-go/types v1.0.0/go.mod h1:eq7W2TMRH22GTW0N0beDnN931DW0/WOI1R2sdHNHG4c=
-github.com/cometbft/cometbft v0.37.2 h1:XB0yyHGT0lwmJlFmM4+rsRnczPlHoAKFX6K8Zgc2/Jc=
-github.com/cometbft/cometbft v0.37.2/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs=
+github.com/cometbft/cometbft v0.38.0-rc3 h1:Ly3eVPWoFu0y68PmZwLljucPdEBtfigZtqm+OV1W6dE=
+github.com/cometbft/cometbft v0.38.0-rc3/go.mod h1:5Jz0Z8YsHSf0ZaAqGvi/ifioSdVFPtEGrm8Y9T/993k=
github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AKVZpjo=
github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0=
-github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4=
-github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak=
github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg=
github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM=
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
@@ -330,33 +349,34 @@ github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk=
github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis=
-github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8=
-github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0=
-github.com/cosmos/cosmos-sdk v0.47.5-0.20230828070859-c9144f02dda8 h1:H4+Ma/eOLsjG3PyK6CLVAup4MfxwzPqUa+02jV2hz08=
-github.com/cosmos/cosmos-sdk v0.47.5-0.20230828070859-c9144f02dda8/go.mod h1:EHwCeN9IXonsjKcjpS12MqeStdZvIdxt3VYXhus3G3c=
-github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y=
+github.com/cosmos/cosmos-db v1.0.0 h1:EVcQZ+qYag7W6uorBKFPvX6gRjw6Uq2hIh4hCWjuQ0E=
+github.com/cosmos/cosmos-db v1.0.0/go.mod h1:iBvi1TtqaedwLdcrZVYRSSCb6eSy61NLj4UNmdIgs0U=
+github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o=
+github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I=
+github.com/cosmos/cosmos-sdk v0.50.0-rc.0.0.20230819070346-e8164be94954 h1:DSVQWPZyt0f7T0Arw7doznp9BK+HDzv3h6HwjMJxNCU=
+github.com/cosmos/cosmos-sdk v0.50.0-rc.0.0.20230819070346-e8164be94954/go.mod h1:6HsAg8cQ/D3JnFN7jao6DOuTLWnUC4qh/vracVlSLAM=
github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY=
github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw=
github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE=
github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI=
github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU=
-github.com/cosmos/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI=
-github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek=
-github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38=
-github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A=
-github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1 h1:BvSKnPFKxL+TTSLxGKwJN4x0ndCZj0yfXhSvmsQztSA=
-github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1/go.mod h1:A+CxAQdn2j6ihDTbClpEEBdHthWgAUAcHbRAQPY8sl4=
+github.com/cosmos/gogoproto v1.4.11 h1:LZcMHrx4FjUgrqQSWeaGC1v/TeuVFqSLa43CC6aWR2g=
+github.com/cosmos/gogoproto v1.4.11/go.mod h1:/g39Mh8m17X8Q/GDEs5zYTSNaNnInBSohtaxzQnYq1Y=
+github.com/cosmos/iavl v1.0.0-beta.2 h1:XOsIM80Yyml/KifCXEYOy9tWCXwMAbLa91n6pReW07Y=
+github.com/cosmos/iavl v1.0.0-beta.2/go.mod h1:EA97dJ07TBktRlG/iGzK6g1eCXNj1q3MGoFYkVzrwHE=
+github.com/cosmos/ibc-go/modules/capability v1.0.0-rc3 h1:jEq48O/lE7dT34U6dJLLl8PaHSwerFrRqgaVVPg7J4A=
+github.com/cosmos/ibc-go/modules/capability v1.0.0-rc3/go.mod h1:h+HXgDnFpzthSy7mKw3xCeOG1QZDiwlz7Vuw8eSevjg=
github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM=
github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0=
-github.com/cosmos/ledger-cosmos-go v0.12.1 h1:sMBxza5p/rNK/06nBSNmsI/WDqI0pVJFVNihy1Y984w=
-github.com/cosmos/ledger-cosmos-go v0.12.1/go.mod h1:dhO6kj+Y+AHIOgAe4L9HL/6NDdyyth4q238I9yFpD2g=
-github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM=
-github.com/cosmos/rosetta-sdk-go v0.10.0/go.mod h1:SImAZkb96YbwvoRkzSMQB6noNJXFgWl/ENIznEoYQI4=
+github.com/cosmos/ledger-cosmos-go v0.13.0 h1:ex0CvCxToSR7j5WjrghPu2Bu9sSXKikjnVvUryNnx4s=
+github.com/cosmos/ledger-cosmos-go v0.13.0/go.mod h1:ZcqYgnfNJ6lAXe4HPtWgarNEY+B74i+2/8MhZw4ziiI=
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
-github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJFxv2Li8=
-github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM=
+github.com/creachadair/atomicfile v0.3.1 h1:yQORkHjSYySh/tv5th1dkKcn02NEW5JleB84sjt+W4Q=
+github.com/creachadair/atomicfile v0.3.1/go.mod h1:mwfrkRxFKwpNAflYZzytbSwxvbK6fdGRRlp0KEQc0qU=
+github.com/creachadair/tomledit v0.0.24 h1:5Xjr25R2esu1rKCbQEmjZYlrhFkDspoAbAKb6QKQDhQ=
+github.com/creachadair/tomledit v0.0.24/go.mod h1:9qHbShRWQzSCcn617cMzg4eab1vbLCOjOshAWSzWr8U=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0=
@@ -364,10 +384,10 @@ github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnG
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0=
-github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc=
-github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4=
-github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc=
+github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y=
+github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo=
+github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs=
+github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I=
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE=
github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o=
@@ -393,6 +413,8 @@ github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5m
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
+github.com/emicklei/dot v1.5.0 h1:tc9eKdCBTgoR68vJ6OcgMtI0SdrGDwLPPVaPA6XhX50=
+github.com/emicklei/dot v1.5.0/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s=
github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
@@ -405,6 +427,9 @@ github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.
github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
+github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
+github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
+github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW4o=
github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
@@ -436,6 +461,7 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2
github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o=
github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4=
github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs=
+github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU=
github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
@@ -606,19 +632,14 @@ github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWm
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI=
-github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
-github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
+github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
+github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU=
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0=
-github.com/gtank/merlin v0.1.1-0.20191105220539-8318aed1a79f/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s=
-github.com/gtank/merlin v0.1.1 h1:eQ90iG7K9pOhtereWsmyRJ6RAwcP4tHTDBHXNg+u5is=
-github.com/gtank/merlin v0.1.1/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s=
-github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uMzcc=
-github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIvY4OmlYW69o=
github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -628,11 +649,17 @@ github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9n
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
github.com/hashicorp/go-getter v1.7.1 h1:SWiSWN/42qdpR0MdhaOc/bLR48PLuP1ZQtYLRlM69uY=
github.com/hashicorp/go-getter v1.7.1/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744=
+github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c=
+github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc=
github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
+github.com/hashicorp/go-metrics v0.5.1 h1:rfPwUqFU6uZXNvGl4hzjY8LEBsqFVU4si1H9/Hqck/U=
+github.com/hashicorp/go-metrics v0.5.1/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE=
github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
+github.com/hashicorp/go-plugin v1.4.10 h1:xUbmA4jC6Dq163/fWcp8P3JuHilrHHMLNRxzGQJ9hNk=
+github.com/hashicorp/go-plugin v1.4.10/go.mod h1:6/1TEzT0eQznvI/gV2CM29DLSkAK/e58mUWKVsPaph0=
github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo=
@@ -640,8 +667,9 @@ github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoD
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE=
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE=
+github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek=
github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
@@ -656,6 +684,8 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
+github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE=
+github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ=
github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU=
github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
@@ -664,6 +694,8 @@ github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0Jr
github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw=
github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w=
github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
+github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI=
+github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ=
@@ -703,8 +735,8 @@ github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs
github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
-github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY=
-github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
+github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
+github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
@@ -725,8 +757,8 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6
github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg=
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
-github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8=
-github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4=
+github.com/linxGnu/grocksdb v1.8.0 h1:H4L/LhP7GOMf1j17oQAElHgVlbEje2h14A8Tz9cM2BE=
+github.com/linxGnu/grocksdb v1.8.0/go.mod h1:09CeBborffXhXdNpEcOeZrLKEnRtrZFEpFdPNI9Zjjg=
github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
@@ -734,6 +766,7 @@ github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3v
github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA=
github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
+github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
@@ -750,9 +783,6 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM=
-github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94=
-github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM=
github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g=
github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
@@ -792,20 +822,23 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLA
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
+github.com/oasisprotocol/curve25519-voi v0.0.0-20230110094441-db37f07504ce h1:/pEpMk55wH0X+E5zedGEMOdLuWmV8P4+4W3+LZaM6kg=
+github.com/oasisprotocol/curve25519-voi v0.0.0-20230110094441-db37f07504ce/go.mod h1:hVoHR2EVESiICEMbg137etN/Lx+lSrHPTD39Z/uE+2s=
github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=
github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
+github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
+github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU=
github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
+github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA=
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
-github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=
-github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q=
-github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo=
+github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q=
+github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM=
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
@@ -829,12 +862,12 @@ github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0Mw
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
-github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
-github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
+github.com/pelletier/go-toml/v2 v2.0.9 h1:uH2qQXheeefCCkuBBSLi7jCiSmj3VRh2+Goq2N7Xxu0=
+github.com/pelletier/go-toml/v2 v2.0.9/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o=
-github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6R18ax0tZ2BJeNB3NehB3trOwYBsdU=
-github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4=
+github.com/petermattis/goid v0.0.0-20230518223814-80aa455d8761 h1:W04oB3d0J01W5jgYRGKsV8LCM6g9EkCvPkZcmFuy0OE=
+github.com/petermattis/goid v0.0.0-20230518223814-80aa455d8761/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4=
github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4=
@@ -855,34 +888,32 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn
github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og=
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
-github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y=
+github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
+github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4=
-github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
+github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
+github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
-github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM=
-github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc=
+github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
+github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI=
-github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY=
-github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ=
-github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc=
+github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI=
+github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
@@ -955,9 +986,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=
@@ -1012,11 +1043,15 @@ go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqe
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
+go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
+go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
+go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -1025,15 +1060,14 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
-golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
+golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
+golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -1045,8 +1079,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw=
-golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us=
-golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
+golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ=
+golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -1073,8 +1107,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
-golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU=
-golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
+golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1136,8 +1170,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
-golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
-golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
+golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14=
+golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1179,8 +1213,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
-golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
+golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1256,6 +1290,7 @@ golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -1284,8 +1319,8 @@ golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c=
-golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
+golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0=
+golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1324,6 +1359,7 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -1365,8 +1401,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
-golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
-golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
+golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846 h1:Vve/L0v7CXXuxUmaMGIEK/dEeq7uiqb5qBgQrZzIE7E=
+golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -1544,12 +1580,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw
google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
-google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 h1:Au6te5hbKUV8pIYWHqOUZ1pva5qK/rwbIhoXEUB9Lu8=
-google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y=
-google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 h1:s5YSX+ZH5b5vS9rnpGymvIyMpLRJizowqDlOuyjXnTk=
-google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM=
+google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 h1:L6iMMGrtzgHsWofoFcihmDEMYeDR9KN/ThbPWGrh++g=
+google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5/go.mod h1:oH/ZOT02u4kWEp7oYBGYFFkCdKS/uYR9Z7+0/xuuFp8=
+google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e h1:z3vDksarJxsAKM5dmEGv0GHwE2hKJ096wZra71Vs4sw=
+google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878 h1:lv6/DhyiFFGsmzxbsUUTOkN29II+zeWHxvT8Lpdxsv0=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
@@ -1643,7 +1679,6 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY=
gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
@@ -1656,8 +1691,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k=
nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
-pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA=
-pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
+pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw=
+pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
diff --git a/modules/apps/27-interchain-accounts/controller/ibc_middleware_test.go b/modules/apps/27-interchain-accounts/controller/ibc_middleware_test.go
index 7d61f3e0618..f7478786046 100644
--- a/modules/apps/27-interchain-accounts/controller/ibc_middleware_test.go
+++ b/modules/apps/27-interchain-accounts/controller/ibc_middleware_test.go
@@ -836,7 +836,7 @@ func (suite *InterchainAccountsTestSuite) TestGetAppVersion() {
cbs, ok := suite.chainA.App.GetIBCKeeper().Router.GetRoute(module)
suite.Require().True(ok)
- controllerStack := cbs.(porttypes.Middleware)
+ controllerStack := cbs.(porttypes.ICS4Wrapper)
appVersion, found := controllerStack.GetAppVersion(suite.chainA.GetContext(), path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
suite.Require().True(found)
suite.Require().Equal(path.EndpointA.ChannelConfig.Version, appVersion)
diff --git a/modules/apps/27-interchain-accounts/controller/keeper/keeper.go b/modules/apps/27-interchain-accounts/controller/keeper/keeper.go
index 7a7b3533e5f..d329ccf50db 100644
--- a/modules/apps/27-interchain-accounts/controller/keeper/keeper.go
+++ b/modules/apps/27-interchain-accounts/controller/keeper/keeper.go
@@ -6,14 +6,13 @@ import (
"strings"
errorsmod "cosmossdk.io/errors"
+ "cosmossdk.io/log"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
- "github.com/cometbft/cometbft/libs/log"
-
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
"github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
genesistypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/genesis/types"
diff --git a/modules/apps/27-interchain-accounts/controller/keeper/msg_server.go b/modules/apps/27-interchain-accounts/controller/keeper/msg_server.go
index df22e40b34b..30608f8355a 100644
--- a/modules/apps/27-interchain-accounts/controller/keeper/msg_server.go
+++ b/modules/apps/27-interchain-accounts/controller/keeper/msg_server.go
@@ -75,8 +75,8 @@ func (s msgServer) SendTx(goCtx context.Context, msg *types.MsgSendTx) (*types.M
// UpdateParams defines an rpc handler method for MsgUpdateParams. Updates the ica/controller submodule's parameters.
func (k Keeper) UpdateParams(goCtx context.Context, msg *types.MsgUpdateParams) (*types.MsgUpdateParamsResponse, error) {
- if k.GetAuthority() != msg.Authority {
- return nil, errorsmod.Wrapf(ibcerrors.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Authority)
+ if k.GetAuthority() != msg.Signer {
+ return nil, errorsmod.Wrapf(ibcerrors.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Signer)
}
ctx := sdk.UnwrapSDKContext(goCtx)
diff --git a/modules/apps/27-interchain-accounts/controller/keeper/msg_server_test.go b/modules/apps/27-interchain-accounts/controller/keeper/msg_server_test.go
index 08d3fd4ce5c..3d0d7d84c42 100644
--- a/modules/apps/27-interchain-accounts/controller/keeper/msg_server_test.go
+++ b/modules/apps/27-interchain-accounts/controller/keeper/msg_server_test.go
@@ -204,34 +204,34 @@ func (suite *KeeperTestSuite) TestSubmitTx() {
// TestUpdateParams tests UpdateParams rpc handler
func (suite *KeeperTestSuite) TestUpdateParams() {
- validAuthority := suite.chainA.GetSimApp().TransferKeeper.GetAuthority()
+ signer := suite.chainA.GetSimApp().TransferKeeper.GetAuthority()
testCases := []struct {
name string
msg *types.MsgUpdateParams
expPass bool
}{
{
- "success: valid authority and default params",
- types.NewMsgUpdateParams(validAuthority, types.NewParams(!types.DefaultControllerEnabled)),
+ "success: valid signer and default params",
+ types.NewMsgUpdateParams(signer, types.NewParams(!types.DefaultControllerEnabled)),
true,
},
{
- "failure: malformed authority address",
+ "failure: malformed signer address",
types.NewMsgUpdateParams(ibctesting.InvalidID, types.DefaultParams()),
false,
},
{
- "failure: empty authority address",
+ "failure: empty signer address",
types.NewMsgUpdateParams("", types.DefaultParams()),
false,
},
{
- "failure: whitespace authority address",
+ "failure: whitespace signer address",
types.NewMsgUpdateParams(" ", types.DefaultParams()),
false,
},
{
- "failure: unauthorized authority address",
+ "failure: unauthorized signer address",
types.NewMsgUpdateParams(ibctesting.TestAccAddress, types.DefaultParams()),
false,
},
diff --git a/modules/apps/27-interchain-accounts/controller/migrations/v6/migrations.go b/modules/apps/27-interchain-accounts/controller/migrations/v6/migrations.go
index 094db598598..3bddce0d07c 100644
--- a/modules/apps/27-interchain-accounts/controller/migrations/v6/migrations.go
+++ b/modules/apps/27-interchain-accounts/controller/migrations/v6/migrations.go
@@ -1,9 +1,10 @@
package v6
import (
+ "cosmossdk.io/store/prefix"
+ storetypes "cosmossdk.io/store/types"
+
"github.com/cosmos/cosmos-sdk/codec"
- "github.com/cosmos/cosmos-sdk/store/prefix"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper"
diff --git a/modules/apps/27-interchain-accounts/controller/types/msgs.go b/modules/apps/27-interchain-accounts/controller/types/msgs.go
index 729d098f3fa..cfd397b9c1a 100644
--- a/modules/apps/27-interchain-accounts/controller/types/msgs.go
+++ b/modules/apps/27-interchain-accounts/controller/types/msgs.go
@@ -92,16 +92,16 @@ func (msg MsgSendTx) GetSigners() []sdk.AccAddress {
}
// NewMsgUpdateParams creates a new MsgUpdateParams instance
-func NewMsgUpdateParams(authority string, params Params) *MsgUpdateParams {
+func NewMsgUpdateParams(signer string, params Params) *MsgUpdateParams {
return &MsgUpdateParams{
- Authority: authority,
- Params: params,
+ Signer: signer,
+ Params: params,
}
}
// ValidateBasic implements sdk.Msg
func (msg MsgUpdateParams) ValidateBasic() error {
- _, err := sdk.AccAddressFromBech32(msg.Authority)
+ _, err := sdk.AccAddressFromBech32(msg.Signer)
if err != nil {
return errorsmod.Wrapf(ibcerrors.ErrInvalidAddress, "string could not be parsed as address: %v", err)
}
@@ -111,7 +111,7 @@ func (msg MsgUpdateParams) ValidateBasic() error {
// GetSigners implements sdk.Msg
func (msg MsgUpdateParams) GetSigners() []sdk.AccAddress {
- accAddr, err := sdk.AccAddressFromBech32(msg.Authority)
+ accAddr, err := sdk.AccAddressFromBech32(msg.Signer)
if err != nil {
panic(err)
}
diff --git a/modules/apps/27-interchain-accounts/controller/types/msgs_test.go b/modules/apps/27-interchain-accounts/controller/types/msgs_test.go
index d2347dc3c41..2d81763f870 100644
--- a/modules/apps/27-interchain-accounts/controller/types/msgs_test.go
+++ b/modules/apps/27-interchain-accounts/controller/types/msgs_test.go
@@ -7,13 +7,14 @@ import (
"github.com/stretchr/testify/require"
sdk "github.com/cosmos/cosmos-sdk/types"
+ moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
+ ica "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts"
"github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types"
feetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
- "github.com/cosmos/ibc-go/v7/testing/simapp"
)
func TestMsgRegisterInterchainAccountValidateBasic(t *testing.T) {
@@ -143,7 +144,9 @@ func TestMsgSendTxValidateBasic(t *testing.T) {
Amount: ibctesting.TestCoins,
}
- data, err := icatypes.SerializeCosmosTx(simapp.MakeTestEncodingConfig().Codec, []proto.Message{msgBankSend}, icatypes.EncodingProtobuf)
+ encodingConfig := moduletestutil.MakeTestEncodingConfig(ica.AppModuleBasic{})
+
+ data, err := icatypes.SerializeCosmosTx(encodingConfig.Codec, []proto.Message{msgBankSend}, icatypes.EncodingProtobuf)
require.NoError(t, err)
packetData := icatypes.InterchainAccountPacketData{
@@ -179,7 +182,9 @@ func TestMsgSendTxGetSigners(t *testing.T) {
Amount: ibctesting.TestCoins,
}
- data, err := icatypes.SerializeCosmosTx(simapp.MakeTestEncodingConfig().Codec, []proto.Message{msgBankSend}, icatypes.EncodingProtobuf)
+ encodingConfig := moduletestutil.MakeTestEncodingConfig(ica.AppModuleBasic{})
+
+ data, err := icatypes.SerializeCosmosTx(encodingConfig.Codec, []proto.Message{msgBankSend}, icatypes.EncodingProtobuf)
require.NoError(t, err)
packetData := icatypes.InterchainAccountPacketData{
@@ -203,9 +208,9 @@ func TestMsgUpdateParamsValidateBasic(t *testing.T) {
msg *types.MsgUpdateParams
expPass bool
}{
- {"success: valid authority and valid params", types.NewMsgUpdateParams(ibctesting.TestAccAddress, types.DefaultParams()), true},
- {"failure: invalid authority with valid params", types.NewMsgUpdateParams("invalidAddress", types.DefaultParams()), false},
- {"failure: empty authority with valid params", types.NewMsgUpdateParams("", types.DefaultParams()), false},
+ {"success: valid signer and valid params", types.NewMsgUpdateParams(ibctesting.TestAccAddress, types.DefaultParams()), true},
+ {"failure: invalid signer with valid params", types.NewMsgUpdateParams("invalidAddress", types.DefaultParams()), false},
+ {"failure: empty signer with valid params", types.NewMsgUpdateParams("", types.DefaultParams()), false},
}
for i, tc := range testCases {
@@ -231,8 +236,8 @@ func TestMsgUpdateParamsGetSigners(t *testing.T) {
for _, tc := range testCases {
msg := types.MsgUpdateParams{
- Authority: tc.address.String(),
- Params: types.DefaultParams(),
+ Signer: tc.address.String(),
+ Params: types.DefaultParams(),
}
if tc.expPass {
require.Equal(t, []sdk.AccAddress{tc.address}, msg.GetSigners())
diff --git a/modules/apps/27-interchain-accounts/controller/types/tx.pb.go b/modules/apps/27-interchain-accounts/controller/types/tx.pb.go
index 37e1ba86816..93a15cb34cf 100644
--- a/modules/apps/27-interchain-accounts/controller/types/tx.pb.go
+++ b/modules/apps/27-interchain-accounts/controller/types/tx.pb.go
@@ -192,8 +192,8 @@ var xxx_messageInfo_MsgSendTxResponse proto.InternalMessageInfo
// MsgUpdateParams defines the payload for Msg/UpdateParams
type MsgUpdateParams struct {
- // authority is the address that controls the module (defaults to x/gov unless overwritten).
- Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"`
+ // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten).
+ Signer string `protobuf:"bytes,1,opt,name=signer,proto3" json:"signer,omitempty"`
// params defines the 27-interchain-accounts/controller parameters to update.
//
// NOTE: All parameters must be supplied.
@@ -284,47 +284,47 @@ func init() {
}
var fileDescriptor_7def041328c84a30 = []byte{
- // 628 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0x4f, 0x4f, 0x13, 0x41,
- 0x14, 0xef, 0x48, 0x29, 0x76, 0x40, 0xd1, 0x0d, 0x09, 0x65, 0x83, 0x85, 0x54, 0x0f, 0x48, 0xc2,
- 0x4e, 0x5a, 0x35, 0x24, 0x35, 0x1e, 0x04, 0x3c, 0x34, 0xa6, 0x49, 0xb3, 0x62, 0x42, 0xbc, 0x34,
- 0xd3, 0xd9, 0xc9, 0x76, 0x64, 0x77, 0x66, 0xdd, 0x99, 0x5d, 0xe1, 0x66, 0xf4, 0x62, 0x3c, 0x18,
- 0xbf, 0x80, 0x09, 0x1f, 0x81, 0x6f, 0x21, 0x47, 0x8e, 0x9e, 0x8c, 0x81, 0x03, 0x37, 0x3f, 0x83,
- 0xd9, 0xbf, 0xad, 0x82, 0x04, 0x0b, 0xb7, 0xbe, 0xf7, 0xfa, 0xfb, 0xbd, 0xdf, 0xef, 0xcd, 0xdb,
- 0x07, 0x1f, 0xb3, 0x1e, 0x41, 0xd8, 0xf3, 0x1c, 0x46, 0xb0, 0x62, 0x82, 0x4b, 0xc4, 0xb8, 0xa2,
- 0x3e, 0xe9, 0x63, 0xc6, 0xbb, 0x98, 0x10, 0x11, 0x70, 0x25, 0x11, 0x11, 0x5c, 0xf9, 0xc2, 0x71,
- 0xa8, 0x8f, 0xc2, 0x3a, 0x52, 0x3b, 0x86, 0xe7, 0x0b, 0x25, 0xb4, 0x06, 0xeb, 0x11, 0x63, 0x18,
- 0x6c, 0x9c, 0x01, 0x36, 0x06, 0x60, 0x23, 0xac, 0xeb, 0x33, 0xb6, 0xb0, 0x45, 0x0c, 0x47, 0xd1,
- 0xaf, 0x84, 0x49, 0x7f, 0x78, 0x21, 0x19, 0x61, 0x1d, 0x79, 0x98, 0x6c, 0x53, 0x95, 0xa2, 0xd6,
- 0x47, 0x10, 0x3f, 0xa4, 0x26, 0x21, 0x99, 0x25, 0x42, 0xba, 0x42, 0x22, 0x57, 0xda, 0x51, 0xdd,
- 0x95, 0x76, 0x52, 0xa8, 0x7d, 0x00, 0x70, 0xbe, 0x2d, 0x6d, 0x93, 0xda, 0x4c, 0x2a, 0xea, 0xb7,
- 0x72, 0xea, 0xa7, 0x09, 0xb3, 0x36, 0x03, 0xc7, 0xc5, 0x5b, 0x4e, 0xfd, 0x0a, 0x58, 0x04, 0x4b,
- 0x65, 0x33, 0x09, 0xb4, 0xbb, 0xf0, 0x06, 0x11, 0x9c, 0x53, 0x12, 0x29, 0xea, 0x32, 0xab, 0x72,
- 0x2d, 0xae, 0x4e, 0x0d, 0x92, 0x2d, 0x4b, 0xab, 0xc0, 0x89, 0x90, 0xfa, 0x92, 0x09, 0x5e, 0x19,
- 0x8b, 0xcb, 0x59, 0xd8, 0xbc, 0xf9, 0x71, 0x6f, 0xa1, 0xf0, 0xfe, 0x64, 0x7f, 0x39, 0xa1, 0xab,
- 0x59, 0xf0, 0xde, 0x79, 0x22, 0x4c, 0x2a, 0x3d, 0xc1, 0x25, 0xd5, 0xee, 0x40, 0x48, 0xfa, 0x98,
- 0x73, 0xea, 0x44, 0x3d, 0x13, 0x45, 0xe5, 0x34, 0xd3, 0xb2, 0xb4, 0x59, 0x38, 0xe1, 0x09, 0x5f,
- 0x0d, 0xf4, 0x94, 0xa2, 0xb0, 0x65, 0x35, 0x8b, 0x51, 0xbf, 0xda, 0x2f, 0x00, 0xcb, 0x6d, 0x69,
- 0xbf, 0xa0, 0xdc, 0xda, 0xdc, 0xb9, 0x8c, 0xb1, 0x6d, 0x38, 0x99, 0x3c, 0x51, 0xd7, 0xc2, 0x0a,
- 0xc7, 0xe6, 0x26, 0x1b, 0x1b, 0xc6, 0x85, 0x16, 0x25, 0xac, 0x1b, 0xa7, 0xfc, 0x75, 0x62, 0xb2,
- 0x0d, 0xac, 0xf0, 0x5a, 0xf1, 0xe0, 0xc7, 0x42, 0xc1, 0x84, 0x5e, 0x9e, 0xd1, 0xee, 0xc3, 0x5b,
- 0x3e, 0x75, 0xb0, 0x62, 0x21, 0xed, 0x2a, 0xe6, 0x52, 0x11, 0xa8, 0x4a, 0x71, 0x11, 0x2c, 0x15,
- 0xcd, 0xe9, 0x2c, 0xbf, 0x99, 0xa4, 0x4f, 0x8d, 0xf5, 0x11, 0xbc, 0x9d, 0xfb, 0xcd, 0x67, 0xa8,
- 0xc3, 0xeb, 0x92, 0xbe, 0x09, 0x28, 0x27, 0x34, 0xb6, 0x5e, 0x34, 0xf3, 0x38, 0x9d, 0xd3, 0x57,
- 0x00, 0xa7, 0xdb, 0xd2, 0x7e, 0xe9, 0x59, 0x58, 0xd1, 0x0e, 0xf6, 0xb1, 0x2b, 0xb5, 0x79, 0x58,
- 0xc6, 0x81, 0xea, 0x0b, 0x9f, 0xa9, 0xdd, 0x6c, 0xf0, 0x79, 0x42, 0xdb, 0x82, 0x25, 0x2f, 0xfe,
- 0x5f, 0x3c, 0xae, 0xc9, 0x46, 0xd3, 0xf8, 0xff, 0x8f, 0xc6, 0x48, 0x3a, 0xa5, 0x13, 0x48, 0xf9,
- 0x9a, 0x5a, 0x66, 0x69, 0xd0, 0xad, 0x36, 0x07, 0x67, 0xff, 0x92, 0x97, 0x99, 0x6b, 0x7c, 0x2a,
- 0xc2, 0xb1, 0xb6, 0xb4, 0xb5, 0x6f, 0x00, 0xce, 0xfd, 0x7b, 0xa7, 0x3b, 0xa3, 0xc8, 0x3b, 0x6f,
- 0x41, 0xf5, 0xad, 0xab, 0x66, 0xcc, 0x9f, 0xeb, 0x33, 0x80, 0xa5, 0x74, 0x63, 0x9f, 0x8c, 0xd8,
- 0x24, 0x81, 0xeb, 0xcf, 0x2e, 0x05, 0xcf, 0x05, 0xed, 0x01, 0x38, 0xf5, 0xc7, 0x6a, 0xac, 0x8f,
- 0xc8, 0x3b, 0x4c, 0xa2, 0x3f, 0xbf, 0x02, 0x92, 0x4c, 0xa2, 0x3e, 0xfe, 0xee, 0x64, 0x7f, 0x19,
- 0xac, 0xbd, 0x3e, 0x38, 0xaa, 0x82, 0xc3, 0xa3, 0x2a, 0xf8, 0x79, 0x54, 0x05, 0x5f, 0x8e, 0xab,
- 0x85, 0xc3, 0xe3, 0x6a, 0xe1, 0xfb, 0x71, 0xb5, 0xf0, 0xaa, 0x63, 0x33, 0xd5, 0x0f, 0x7a, 0x06,
- 0x11, 0x2e, 0x4a, 0x2f, 0x23, 0xeb, 0x91, 0x15, 0x5b, 0xa0, 0x70, 0x15, 0xb9, 0xc2, 0x0a, 0x1c,
- 0x2a, 0xa3, 0x9b, 0x2b, 0x51, 0x63, 0x75, 0x65, 0xa0, 0x63, 0xe5, 0xac, 0x73, 0xab, 0x76, 0x3d,
- 0x2a, 0x7b, 0xa5, 0xf8, 0x9c, 0x3e, 0xf8, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xb5, 0xf7, 0xce, 0xb5,
- 0x6b, 0x06, 0x00, 0x00,
+ // 626 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0x4f, 0x4f, 0x13, 0x4f,
+ 0x18, 0xee, 0xfc, 0x58, 0xca, 0x8f, 0x01, 0x45, 0x37, 0x44, 0xca, 0x46, 0x17, 0x52, 0x3d, 0x20,
+ 0x09, 0x3b, 0x69, 0xd5, 0x90, 0xd4, 0x78, 0x10, 0xf0, 0xd0, 0x98, 0x26, 0xcd, 0x8a, 0x09, 0xf1,
+ 0xd2, 0x4c, 0x67, 0x27, 0xc3, 0xc8, 0xee, 0xcc, 0xba, 0x33, 0x5d, 0xf1, 0x66, 0xf4, 0x62, 0x3c,
+ 0x18, 0x0f, 0x7e, 0x00, 0x3e, 0x02, 0xdf, 0x42, 0x8e, 0x1c, 0x3d, 0x19, 0x03, 0x07, 0x6e, 0x7e,
+ 0x06, 0xb3, 0x7f, 0xba, 0x45, 0x41, 0x82, 0x85, 0x5b, 0xdf, 0xf7, 0xed, 0xf3, 0xbc, 0xcf, 0xf3,
+ 0xce, 0xbb, 0x2f, 0x7c, 0xc8, 0xbb, 0x04, 0xe1, 0x30, 0xf4, 0x39, 0xc1, 0x9a, 0x4b, 0xa1, 0x10,
+ 0x17, 0x9a, 0x46, 0x64, 0x13, 0x73, 0xd1, 0xc1, 0x84, 0xc8, 0x9e, 0xd0, 0x0a, 0x11, 0x29, 0x74,
+ 0x24, 0x7d, 0x9f, 0x46, 0x28, 0xae, 0x21, 0xbd, 0xed, 0x84, 0x91, 0xd4, 0xd2, 0xac, 0xf3, 0x2e,
+ 0x71, 0x8e, 0x83, 0x9d, 0x53, 0xc0, 0xce, 0x00, 0xec, 0xc4, 0x35, 0x6b, 0x9a, 0x49, 0x26, 0x53,
+ 0x38, 0x4a, 0x7e, 0x65, 0x4c, 0xd6, 0xfd, 0x73, 0xc9, 0x88, 0x6b, 0x28, 0xc4, 0x64, 0x8b, 0xea,
+ 0x1c, 0xb5, 0x3a, 0x84, 0xf8, 0x63, 0x6a, 0x32, 0x92, 0x19, 0x22, 0x55, 0x20, 0x15, 0x0a, 0x14,
+ 0x4b, 0xea, 0x81, 0x62, 0x59, 0xa1, 0xfa, 0x1e, 0xc0, 0x9b, 0x2d, 0xc5, 0x5c, 0xca, 0xb8, 0xd2,
+ 0x34, 0x6a, 0x16, 0xd4, 0x8f, 0x33, 0x66, 0x73, 0x1a, 0x8e, 0xca, 0xd7, 0x82, 0x46, 0x15, 0x30,
+ 0x0f, 0x16, 0xc6, 0xdd, 0x2c, 0x30, 0x6f, 0xc3, 0x2b, 0x44, 0x0a, 0x41, 0x49, 0xa2, 0xa8, 0xc3,
+ 0xbd, 0xca, 0x7f, 0x69, 0x75, 0x72, 0x90, 0x6c, 0x7a, 0x66, 0x05, 0x8e, 0xc5, 0x34, 0x52, 0x5c,
+ 0x8a, 0xca, 0x48, 0x5a, 0xee, 0x87, 0x8d, 0xab, 0x1f, 0x76, 0xe6, 0x4a, 0xef, 0x8e, 0x76, 0x17,
+ 0x33, 0xba, 0xaa, 0x07, 0xef, 0x9c, 0x25, 0xc2, 0xa5, 0x2a, 0x94, 0x42, 0x51, 0xf3, 0x16, 0x84,
+ 0x64, 0x13, 0x0b, 0x41, 0xfd, 0xa4, 0x67, 0xa6, 0x68, 0x3c, 0xcf, 0x34, 0x3d, 0x73, 0x06, 0x8e,
+ 0x85, 0x32, 0xd2, 0x03, 0x3d, 0xe5, 0x24, 0x6c, 0x7a, 0x0d, 0x23, 0xe9, 0x57, 0xfd, 0x09, 0xe0,
+ 0x78, 0x4b, 0xb1, 0x67, 0x54, 0x78, 0xeb, 0xdb, 0x17, 0x31, 0xb6, 0x05, 0x27, 0xb2, 0x27, 0xea,
+ 0x78, 0x58, 0xe3, 0xd4, 0xdc, 0x44, 0x7d, 0xcd, 0x39, 0xd7, 0xa2, 0xc4, 0x35, 0xe7, 0x84, 0xbf,
+ 0x76, 0x4a, 0xb6, 0x86, 0x35, 0x5e, 0x31, 0xf6, 0xbe, 0xcf, 0x95, 0x5c, 0x18, 0x16, 0x19, 0xf3,
+ 0x2e, 0xbc, 0x16, 0x51, 0x1f, 0x6b, 0x1e, 0xd3, 0x8e, 0xe6, 0x01, 0x95, 0x3d, 0x5d, 0x31, 0xe6,
+ 0xc1, 0x82, 0xe1, 0x4e, 0xf5, 0xf3, 0xeb, 0x59, 0xfa, 0xc4, 0x58, 0x1f, 0xc0, 0xeb, 0x85, 0xdf,
+ 0x62, 0x86, 0x16, 0xfc, 0x5f, 0xd1, 0x57, 0x3d, 0x2a, 0x08, 0x4d, 0xad, 0x1b, 0x6e, 0x11, 0xe7,
+ 0x73, 0xfa, 0x02, 0xe0, 0x54, 0x4b, 0xb1, 0xe7, 0xa1, 0x87, 0x35, 0x6d, 0xe3, 0x08, 0x07, 0xca,
+ 0xbc, 0x01, 0xcb, 0x8a, 0xb3, 0xc1, 0xb8, 0xf2, 0xc8, 0xdc, 0x80, 0xe5, 0x30, 0xfd, 0x47, 0x3a,
+ 0xa8, 0x89, 0x7a, 0xc3, 0xf9, 0xf7, 0xcf, 0xc5, 0xc9, 0x7a, 0xe4, 0xde, 0x73, 0xbe, 0xc6, 0x54,
+ 0xdf, 0x4c, 0xde, 0xaa, 0x3a, 0x0b, 0x67, 0xfe, 0x50, 0xd5, 0xf7, 0x54, 0xff, 0x68, 0xc0, 0x91,
+ 0x96, 0x62, 0xe6, 0x57, 0x00, 0x67, 0xff, 0xbe, 0xca, 0xed, 0x61, 0xb4, 0x9d, 0xb5, 0x97, 0xd6,
+ 0xc6, 0x65, 0x33, 0x16, 0xaf, 0xf4, 0x09, 0xc0, 0x72, 0xbe, 0xa8, 0x8f, 0x86, 0x6c, 0x92, 0xc1,
+ 0xad, 0x27, 0x17, 0x82, 0x17, 0x82, 0x76, 0x00, 0x9c, 0xfc, 0x6d, 0x23, 0x56, 0x87, 0xe4, 0x3d,
+ 0x4e, 0x62, 0x3d, 0xbd, 0x04, 0x92, 0xbe, 0x44, 0x6b, 0xf4, 0xed, 0xd1, 0xee, 0x22, 0x58, 0x79,
+ 0xb9, 0x77, 0x60, 0x83, 0xfd, 0x03, 0x1b, 0xfc, 0x38, 0xb0, 0xc1, 0xe7, 0x43, 0xbb, 0xb4, 0x7f,
+ 0x68, 0x97, 0xbe, 0x1d, 0xda, 0xa5, 0x17, 0x6d, 0xc6, 0xf5, 0x66, 0xaf, 0xeb, 0x10, 0x19, 0xa0,
+ 0xfc, 0x20, 0xf2, 0x2e, 0x59, 0x62, 0x12, 0xc5, 0xcb, 0x28, 0x90, 0x5e, 0xcf, 0xa7, 0x2a, 0x39,
+ 0xb5, 0x0a, 0xd5, 0x97, 0x97, 0x06, 0x3a, 0x96, 0x4e, 0xbb, 0xb2, 0xfa, 0x4d, 0x48, 0x55, 0xb7,
+ 0x9c, 0x5e, 0xd1, 0x7b, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x34, 0x2d, 0x99, 0xbd, 0x62, 0x06,
+ 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -676,10 +676,10 @@ func (m *MsgUpdateParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
}
i--
dAtA[i] = 0x12
- if len(m.Authority) > 0 {
- i -= len(m.Authority)
- copy(dAtA[i:], m.Authority)
- i = encodeVarintTx(dAtA, i, uint64(len(m.Authority)))
+ if len(m.Signer) > 0 {
+ i -= len(m.Signer)
+ copy(dAtA[i:], m.Signer)
+ i = encodeVarintTx(dAtA, i, uint64(len(m.Signer)))
i--
dAtA[i] = 0xa
}
@@ -798,7 +798,7 @@ func (m *MsgUpdateParams) Size() (n int) {
}
var l int
_ = l
- l = len(m.Authority)
+ l = len(m.Signer)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
@@ -1348,7 +1348,7 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error {
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -1376,7 +1376,7 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Authority = string(dAtA[iNdEx:postIndex])
+ m.Signer = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
diff --git a/modules/apps/27-interchain-accounts/host/client/cli/query.go b/modules/apps/27-interchain-accounts/host/client/cli/query.go
index 36e928fe795..50e5d6884c9 100644
--- a/modules/apps/27-interchain-accounts/host/client/cli/query.go
+++ b/modules/apps/27-interchain-accounts/host/client/cli/query.go
@@ -3,6 +3,7 @@ package cli
import (
"fmt"
"strconv"
+ "strings"
"github.com/spf13/cobra"
@@ -79,7 +80,7 @@ func GetCmdPacketEvents() *cobra.Command {
fmt.Sprintf("%s.%s='%d'", channeltypes.EventTypeRecvPacket, channeltypes.AttributeKeySequence, seq),
}
- result, err := tx.QueryTxsByEvents(clientCtx, searchEvents, 1, 1, "")
+ result, err := tx.QueryTxsByEvents(clientCtx, 1, 1, strings.Join(searchEvents, " AND "), "")
if err != nil {
return err
}
diff --git a/modules/apps/27-interchain-accounts/host/client/cli/tx.go b/modules/apps/27-interchain-accounts/host/client/cli/tx.go
index d3902d35f9a..da9c24c7537 100644
--- a/modules/apps/27-interchain-accounts/host/client/cli/tx.go
+++ b/modules/apps/27-interchain-accounts/host/client/cli/tx.go
@@ -12,21 +12,24 @@ import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/version"
+ "github.com/cosmos/ibc-go/v7/internal/collections"
icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types"
)
const (
- memoFlag string = "memo"
+ memoFlag string = "memo"
+ encodingFlag string = "encoding"
)
func generatePacketDataCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "generate-packet-data [message]",
- Short: "Generates protobuf encoded ICA packet data.",
- Long: `generate-packet-data accepts a message string and serializes it using protobuf
-into packet data which is outputted to stdout. It can be used in conjunction with send-tx"
-which submits pre-built packet data containing messages to be executed on the host chain.
-`,
+ Short: "Generates protobuf or proto3 JSON encoded ICA packet data.",
+ Long: `generate-packet-data accepts a message string and serializes it (depending on the
+encoding parameter) using protobuf or proto3 JSON into packet data which is outputted to stdout.
+It can be used in conjunction with send-tx which submits pre-built packet data containing messages
+to be executed on the host chain. The default encoding format is protobuf if none is specified;
+otherwise the encoding flag can be used in combination with either "proto3" or "proto3json".`,
Example: fmt.Sprintf(`%s tx interchain-accounts host generate-packet-data '{
"@type":"/cosmos.bank.v1beta1.MsgSend",
"from_address":"cosmos15ccshhmp0gsx29qpqq6g4zmltnnvgmyu9ueuadh9y2nc5zj0szls5gtddz",
@@ -37,7 +40,7 @@ which submits pre-built packet data containing messages to be executed on the ho
"amount": "1000"
}
]
-}' --memo memo
+}' --memo memo --encoding proto3json
%s tx interchain-accounts host generate-packet-data '[{
@@ -74,7 +77,16 @@ which submits pre-built packet data containing messages to be executed on the ho
return err
}
- packetDataBytes, err := generatePacketData(cdc, []byte(args[0]), memo)
+ encoding, err := cmd.Flags().GetString(encodingFlag)
+ if err != nil {
+ return err
+ }
+
+ if !collections.Contains(encoding, []string{icatypes.EncodingProtobuf, icatypes.EncodingProto3JSON}) {
+ return fmt.Errorf("unsupported encoding type: %s", encoding)
+ }
+
+ packetDataBytes, err := generatePacketData(cdc, []byte(args[0]), memo, encoding)
if err != nil {
return err
}
@@ -85,19 +97,20 @@ which submits pre-built packet data containing messages to be executed on the ho
},
}
- cmd.Flags().String(memoFlag, "", "an optional memo to be included in the interchain account packet data")
+ cmd.Flags().String(memoFlag, "", "optional memo to be included in the interchain accounts packet data")
+ cmd.Flags().String(encodingFlag, "", "optional encoding format of the messages in the interchain accounts packet data")
return cmd
}
// generatePacketData takes in message bytes and a memo and serializes the message into an
// instance of InterchainAccountPacketData which is returned as bytes.
-func generatePacketData(cdc *codec.ProtoCodec, msgBytes []byte, memo string) ([]byte, error) {
+func generatePacketData(cdc *codec.ProtoCodec, msgBytes []byte, memo string, encoding string) ([]byte, error) {
protoMessages, err := convertBytesIntoProtoMessages(cdc, msgBytes)
if err != nil {
return nil, err
}
- return generateIcaPacketDataFromProtoMessages(cdc, protoMessages, memo)
+ return generateIcaPacketDataFromProtoMessages(cdc, protoMessages, memo, encoding)
}
// convertBytesIntoProtoMessages returns a list of proto messages from bytes. The bytes can be in the form of a single
@@ -129,8 +142,8 @@ func convertBytesIntoProtoMessages(cdc *codec.ProtoCodec, msgBytes []byte) ([]pr
}
// generateIcaPacketDataFromProtoMessages generates ica packet data as bytes from a given set of proto encoded sdk messages and a memo.
-func generateIcaPacketDataFromProtoMessages(cdc *codec.ProtoCodec, sdkMessages []proto.Message, memo string) ([]byte, error) {
- icaPacketDataBytes, err := icatypes.SerializeCosmosTx(cdc, sdkMessages, icatypes.EncodingProtobuf)
+func generateIcaPacketDataFromProtoMessages(cdc *codec.ProtoCodec, sdkMessages []proto.Message, memo string, encoding string) ([]byte, error) {
+ icaPacketDataBytes, err := icatypes.SerializeCosmosTx(cdc, sdkMessages, encoding)
if err != nil {
return nil, err
}
diff --git a/modules/apps/27-interchain-accounts/host/client/cli/tx_test.go b/modules/apps/27-interchain-accounts/host/client/cli/tx_test.go
index f9c4c0a4d71..9d31ceb3884 100644
--- a/modules/apps/27-interchain-accounts/host/client/cli/tx_test.go
+++ b/modules/apps/27-interchain-accounts/host/client/cli/tx_test.go
@@ -101,44 +101,46 @@ func TestGeneratePacketData(t *testing.T) {
},
}
- for _, tc := range tests {
- tc := tc
- ir := codectypes.NewInterfaceRegistry()
- if tc.registerInterfaceFn != nil {
- tc.registerInterfaceFn(ir)
- }
+ encodings := []string{icatypes.EncodingProtobuf, icatypes.EncodingProto3JSON}
+ for _, encoding := range encodings {
+ for _, tc := range tests {
+ tc := tc
+ ir := codectypes.NewInterfaceRegistry()
+ if tc.registerInterfaceFn != nil {
+ tc.registerInterfaceFn(ir)
+ }
- cdc := codec.NewProtoCodec(ir)
+ cdc := codec.NewProtoCodec(ir)
- t.Run(tc.name, func(t *testing.T) {
- bz, err := generatePacketData(cdc, []byte(tc.message), tc.memo)
+ t.Run(fmt.Sprintf("%s with %s encoding", tc.name, encoding), func(t *testing.T) {
+ bz, err := generatePacketData(cdc, []byte(tc.message), tc.memo, encoding)
- if tc.expectedPass {
- require.NoError(t, err)
- require.NotNil(t, bz)
+ if tc.expectedPass {
+ require.NoError(t, err)
+ require.NotNil(t, bz)
- packetData := icatypes.InterchainAccountPacketData{}
- err = cdc.UnmarshalJSON(bz, &packetData)
- require.NoError(t, err)
+ packetData := icatypes.InterchainAccountPacketData{}
+ err = cdc.UnmarshalJSON(bz, &packetData)
+ require.NoError(t, err)
- require.Equal(t, icatypes.EXECUTE_TX, packetData.Type)
- require.Equal(t, tc.memo, packetData.Memo)
+ require.Equal(t, icatypes.EXECUTE_TX, packetData.Type)
+ require.Equal(t, tc.memo, packetData.Memo)
- data := packetData.Data
- // cli tx commands always use protobuf encoding
- messages, err := icatypes.DeserializeCosmosTx(cdc, data, icatypes.EncodingProtobuf)
+ data := packetData.Data
+ messages, err := icatypes.DeserializeCosmosTx(cdc, data, encoding)
- require.NoError(t, err)
- require.NotNil(t, messages)
+ require.NoError(t, err)
+ require.NotNil(t, messages)
- if tc.assertionFn != nil {
- tc.assertionFn(t, messages)
+ if tc.assertionFn != nil {
+ tc.assertionFn(t, messages)
+ }
+ } else {
+ require.Error(t, err)
+ require.Nil(t, bz)
}
- } else {
- require.Error(t, err)
- require.Nil(t, bz)
- }
- })
+ })
+ }
}
}
diff --git a/modules/apps/27-interchain-accounts/host/keeper/handshake_test.go b/modules/apps/27-interchain-accounts/host/keeper/handshake_test.go
index c6984fe3181..1f83ace93ba 100644
--- a/modules/apps/27-interchain-accounts/host/keeper/handshake_test.go
+++ b/modules/apps/27-interchain-accounts/host/keeper/handshake_test.go
@@ -4,7 +4,6 @@ import (
sdkmath "cosmossdk.io/math"
sdk "github.com/cosmos/cosmos-sdk/types"
- authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
hosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types"
@@ -124,8 +123,13 @@ func (suite *KeeperTestSuite) TestOnChanOpenTry() {
suite.Require().True(found)
accAddress := sdk.MustAccAddressFromBech32(addr)
- baseAcc := authtypes.NewBaseAccountWithAddress(accAddress)
- suite.chainB.GetSimApp().AccountKeeper.SetAccount(suite.chainB.GetContext(), baseAcc)
+ acc := suite.chainB.GetSimApp().AccountKeeper.GetAccount(suite.chainB.GetContext(), accAddress)
+
+ icaAcc, ok := acc.(*icatypes.InterchainAccount)
+ suite.Require().True(ok)
+
+ // overwrite existing account with only base account type, not intercahin account type
+ suite.chainB.GetSimApp().AccountKeeper.SetAccount(suite.chainB.GetContext(), icaAcc.BaseAccount)
}, false,
},
{
diff --git a/modules/apps/27-interchain-accounts/host/keeper/keeper.go b/modules/apps/27-interchain-accounts/host/keeper/keeper.go
index bad9fc67692..94b1c9daed4 100644
--- a/modules/apps/27-interchain-accounts/host/keeper/keeper.go
+++ b/modules/apps/27-interchain-accounts/host/keeper/keeper.go
@@ -5,14 +5,13 @@ import (
"strings"
errorsmod "cosmossdk.io/errors"
+ "cosmossdk.io/log"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
- "github.com/cometbft/cometbft/libs/log"
-
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
genesistypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/genesis/types"
"github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types"
diff --git a/modules/apps/27-interchain-accounts/host/keeper/msg_server.go b/modules/apps/27-interchain-accounts/host/keeper/msg_server.go
index e9bebdf7193..809a10e1cf5 100644
--- a/modules/apps/27-interchain-accounts/host/keeper/msg_server.go
+++ b/modules/apps/27-interchain-accounts/host/keeper/msg_server.go
@@ -25,8 +25,8 @@ func NewMsgServerImpl(keeper *Keeper) types.MsgServer {
// UpdateParams updates the host submodule's params.
func (m msgServer) UpdateParams(goCtx context.Context, msg *types.MsgUpdateParams) (*types.MsgUpdateParamsResponse, error) {
- if m.authority != msg.Authority {
- return nil, errorsmod.Wrapf(ibcerrors.ErrUnauthorized, "expected %s, got %s", m.authority, msg.Authority)
+ if m.GetAuthority() != msg.Signer {
+ return nil, errorsmod.Wrapf(ibcerrors.ErrUnauthorized, "expected %s, got %s", m.GetAuthority(), msg.Signer)
}
ctx := sdk.UnwrapSDKContext(goCtx)
diff --git a/modules/apps/27-interchain-accounts/host/keeper/msg_server_test.go b/modules/apps/27-interchain-accounts/host/keeper/msg_server_test.go
index ab9cce28a97..15ccf0c5e07 100644
--- a/modules/apps/27-interchain-accounts/host/keeper/msg_server_test.go
+++ b/modules/apps/27-interchain-accounts/host/keeper/msg_server_test.go
@@ -17,8 +17,8 @@ func (suite *KeeperTestSuite) TestUpdateParams() {
true,
},
{
- "invalid authority address",
- types.NewMsgUpdateParams("authority", types.DefaultParams()),
+ "invalid signer address",
+ types.NewMsgUpdateParams("signer", types.DefaultParams()),
false,
},
}
diff --git a/modules/apps/27-interchain-accounts/host/keeper/relay.go b/modules/apps/27-interchain-accounts/host/keeper/relay.go
index a91a89a185d..c14ea7a951b 100644
--- a/modules/apps/27-interchain-accounts/host/keeper/relay.go
+++ b/modules/apps/27-interchain-accounts/host/keeper/relay.go
@@ -68,8 +68,10 @@ func (k Keeper) executeTx(ctx sdk.Context, sourcePort, destPort, destChannel str
// writeCache is called only if all msgs succeed, performing state transitions atomically
cacheCtx, writeCache := ctx.CacheContext()
for i, msg := range msgs {
- if err := msg.ValidateBasic(); err != nil {
- return nil, err
+ if m, ok := msg.(sdk.HasValidateBasic); ok {
+ if err := m.ValidateBasic(); err != nil {
+ return nil, err
+ }
}
protoAny, err := k.executeMsg(cacheCtx, msg)
@@ -104,9 +106,19 @@ func (k Keeper) authenticateTx(ctx sdk.Context, msgs []sdk.Msg, connectionID, po
return errorsmod.Wrapf(ibcerrors.ErrUnauthorized, "message type not allowed: %s", sdk.MsgTypeURL(msg))
}
- for _, signer := range msg.GetSigners() {
- if interchainAccountAddr != signer.String() {
- return errorsmod.Wrapf(ibcerrors.ErrUnauthorized, "unexpected signer address: expected %s, got %s", interchainAccountAddr, signer.String())
+ // obtain the message signers using the proto signer annotations
+ // the msgv2 return value is discarded as it is not used
+ signers, _, err := k.cdc.GetMsgV1Signers(msg)
+ if err != nil {
+ return errorsmod.Wrapf(err, "failed to obtain message signers for message type %s", sdk.MsgTypeURL(msg))
+ }
+
+ for _, signer := range signers {
+ // the interchain account address is stored as the string value of the sdk.AccAddress type
+ // thus we must cast the signer to a sdk.AccAddress to obtain the comparison value
+ // the stored interchain account address must match the signer for every message to be executed
+ if interchainAccountAddr != sdk.AccAddress(signer).String() {
+ return errorsmod.Wrapf(ibcerrors.ErrUnauthorized, "unexpected signer address: expected %s, got %s", interchainAccountAddr, sdk.AccAddress(signer).String())
}
}
}
diff --git a/modules/apps/27-interchain-accounts/host/keeper/relay_test.go b/modules/apps/27-interchain-accounts/host/keeper/relay_test.go
index 220a88073a6..aa50d48b2c7 100644
--- a/modules/apps/27-interchain-accounts/host/keeper/relay_test.go
+++ b/modules/apps/27-interchain-accounts/host/keeper/relay_test.go
@@ -50,11 +50,13 @@ func (suite *KeeperTestSuite) TestOnRecvPacket() {
proposalMsg, err := govv1.NewLegacyContent(testProposal, interchainAccountAddr)
suite.Require().NoError(err)
- proposal, err := govv1.NewProposal([]sdk.Msg{proposalMsg}, govtypes.DefaultStartingProposalID, suite.chainA.GetContext().BlockTime(), suite.chainA.GetContext().BlockTime(), "test proposal", "title", "Description", sdk.AccAddress(interchainAccountAddr))
+ proposal, err := govv1.NewProposal([]sdk.Msg{proposalMsg}, govtypes.DefaultStartingProposalID, suite.chainA.GetContext().BlockTime(), suite.chainA.GetContext().BlockTime(), "test proposal", "title", "Description", sdk.AccAddress(interchainAccountAddr), false)
suite.Require().NoError(err)
- suite.chainB.GetSimApp().GovKeeper.SetProposal(suite.chainB.GetContext(), proposal)
- suite.chainB.GetSimApp().GovKeeper.ActivateVotingPeriod(suite.chainB.GetContext(), proposal)
+ err = suite.chainB.GetSimApp().GovKeeper.SetProposal(suite.chainB.GetContext(), proposal)
+ suite.Require().NoError(err)
+ err = suite.chainB.GetSimApp().GovKeeper.ActivateVotingPeriod(suite.chainB.GetContext(), proposal)
+ suite.Require().NoError(err)
msg := &govtypes.MsgVote{
ProposalId: govtypes.DefaultStartingProposalID,
@@ -216,11 +218,13 @@ func (suite *KeeperTestSuite) TestOnRecvPacket() {
proposalMsg, err := govv1.NewLegacyContent(testProposal, interchainAccountAddr)
suite.Require().NoError(err)
- proposal, err := govv1.NewProposal([]sdk.Msg{proposalMsg}, govtypes.DefaultStartingProposalID, suite.chainA.GetContext().BlockTime(), suite.chainA.GetContext().BlockTime(), "test proposal", "title", "description", sdk.AccAddress(interchainAccountAddr))
+ proposal, err := govv1.NewProposal([]sdk.Msg{proposalMsg}, govtypes.DefaultStartingProposalID, suite.chainA.GetContext().BlockTime(), suite.chainA.GetContext().BlockTime(), "test proposal", "title", "description", sdk.AccAddress(interchainAccountAddr), false)
suite.Require().NoError(err)
- suite.chainB.GetSimApp().GovKeeper.SetProposal(suite.chainB.GetContext(), proposal)
- suite.chainB.GetSimApp().GovKeeper.ActivateVotingPeriod(suite.chainB.GetContext(), proposal)
+ err = suite.chainB.GetSimApp().GovKeeper.SetProposal(suite.chainB.GetContext(), proposal)
+ suite.Require().NoError(err)
+ err = suite.chainB.GetSimApp().GovKeeper.ActivateVotingPeriod(suite.chainB.GetContext(), proposal)
+ suite.Require().NoError(err)
msg := &govtypes.MsgVote{
ProposalId: govtypes.DefaultStartingProposalID,
@@ -530,11 +534,13 @@ func (suite *KeeperTestSuite) TestJSONOnRecvPacket() {
proposalMsg, err := govv1.NewLegacyContent(testProposal, interchainAccountAddr)
suite.Require().NoError(err)
- proposal, err := govv1.NewProposal([]sdk.Msg{proposalMsg}, govtypes.DefaultStartingProposalID, suite.chainA.GetContext().BlockTime(), suite.chainA.GetContext().BlockTime(), "test proposal", "title", "Description", sdk.AccAddress(interchainAccountAddr))
+ proposal, err := govv1.NewProposal([]sdk.Msg{proposalMsg}, govtypes.DefaultStartingProposalID, suite.chainA.GetContext().BlockTime(), suite.chainA.GetContext().BlockTime(), "test proposal", "title", "Description", sdk.AccAddress(interchainAccountAddr), false)
suite.Require().NoError(err)
- suite.chainB.GetSimApp().GovKeeper.SetProposal(suite.chainB.GetContext(), proposal)
- suite.chainB.GetSimApp().GovKeeper.ActivateVotingPeriod(suite.chainB.GetContext(), proposal)
+ err = suite.chainB.GetSimApp().GovKeeper.SetProposal(suite.chainB.GetContext(), proposal)
+ suite.Require().NoError(err)
+ err = suite.chainB.GetSimApp().GovKeeper.ActivateVotingPeriod(suite.chainB.GetContext(), proposal)
+ suite.Require().NoError(err)
msgBytes := []byte(`{
"messages": [
@@ -626,11 +632,13 @@ func (suite *KeeperTestSuite) TestJSONOnRecvPacket() {
proposalMsg, err := govv1.NewLegacyContent(testProposal, interchainAccountAddr)
suite.Require().NoError(err)
- proposal, err := govv1.NewProposal([]sdk.Msg{proposalMsg}, govtypes.DefaultStartingProposalID, suite.chainA.GetContext().BlockTime(), suite.chainA.GetContext().BlockTime(), "test proposal", "title", "description", sdk.AccAddress(interchainAccountAddr))
+ proposal, err := govv1.NewProposal([]sdk.Msg{proposalMsg}, govtypes.DefaultStartingProposalID, suite.chainA.GetContext().BlockTime(), suite.chainA.GetContext().BlockTime(), "test proposal", "title", "description", sdk.AccAddress(interchainAccountAddr), false)
suite.Require().NoError(err)
- suite.chainB.GetSimApp().GovKeeper.SetProposal(suite.chainB.GetContext(), proposal)
- suite.chainB.GetSimApp().GovKeeper.ActivateVotingPeriod(suite.chainB.GetContext(), proposal)
+ err = suite.chainB.GetSimApp().GovKeeper.SetProposal(suite.chainB.GetContext(), proposal)
+ suite.Require().NoError(err)
+ err = suite.chainB.GetSimApp().GovKeeper.ActivateVotingPeriod(suite.chainB.GetContext(), proposal)
+ suite.Require().NoError(err)
msgBytes := []byte(`{
"messages": [
diff --git a/modules/apps/27-interchain-accounts/host/types/msgs.go b/modules/apps/27-interchain-accounts/host/types/msgs.go
index 0c851060c44..0fe46895841 100644
--- a/modules/apps/27-interchain-accounts/host/types/msgs.go
+++ b/modules/apps/27-interchain-accounts/host/types/msgs.go
@@ -11,16 +11,16 @@ import (
var _ sdk.Msg = (*MsgUpdateParams)(nil)
// NewMsgUpdateParams creates a new MsgUpdateParams instance
-func NewMsgUpdateParams(authority string, params Params) *MsgUpdateParams {
+func NewMsgUpdateParams(signer string, params Params) *MsgUpdateParams {
return &MsgUpdateParams{
- Authority: authority,
- Params: params,
+ Signer: signer,
+ Params: params,
}
}
// ValidateBasic implements sdk.Msg
func (msg MsgUpdateParams) ValidateBasic() error {
- _, err := sdk.AccAddressFromBech32(msg.Authority)
+ _, err := sdk.AccAddressFromBech32(msg.Signer)
if err != nil {
return errorsmod.Wrapf(ibcerrors.ErrInvalidAddress, "string could not be parsed as address: %v", err)
}
@@ -30,7 +30,7 @@ func (msg MsgUpdateParams) ValidateBasic() error {
// GetSigners implements sdk.Msg
func (msg MsgUpdateParams) GetSigners() []sdk.AccAddress {
- accAddr, err := sdk.AccAddressFromBech32(msg.Authority)
+ accAddr, err := sdk.AccAddressFromBech32(msg.Signer)
if err != nil {
panic(err)
}
diff --git a/modules/apps/27-interchain-accounts/host/types/msgs_test.go b/modules/apps/27-interchain-accounts/host/types/msgs_test.go
index 2cfda22f526..db0da5d0c66 100644
--- a/modules/apps/27-interchain-accounts/host/types/msgs_test.go
+++ b/modules/apps/27-interchain-accounts/host/types/msgs_test.go
@@ -18,18 +18,18 @@ func TestMsgUpdateParamsValidateBasic(t *testing.T) {
expPass bool
}{
{
- "success: valid authority address",
+ "success: valid signer address",
types.NewMsgUpdateParams(sdk.AccAddress(ibctesting.TestAccAddress).String(), types.DefaultParams()),
true,
},
{
- "failure: invalid authority address",
- types.NewMsgUpdateParams("authority", types.DefaultParams()),
+ "failure: invalid signer address",
+ types.NewMsgUpdateParams("signer", types.DefaultParams()),
false,
},
{
"failure: invalid allowed message",
- types.NewMsgUpdateParams("authority", types.Params{
+ types.NewMsgUpdateParams("signer", types.Params{
AllowMessages: []string{""},
}),
false,
diff --git a/modules/apps/27-interchain-accounts/host/types/tx.pb.go b/modules/apps/27-interchain-accounts/host/types/tx.pb.go
index 48fdff5812a..781b7d20926 100644
--- a/modules/apps/27-interchain-accounts/host/types/tx.pb.go
+++ b/modules/apps/27-interchain-accounts/host/types/tx.pb.go
@@ -31,8 +31,8 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
// MsgUpdateParams defines the payload for Msg/UpdateParams
type MsgUpdateParams struct {
- // authority is the address that controls the module (defaults to x/gov unless overwritten).
- Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"`
+ // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten).
+ Signer string `protobuf:"bytes,1,opt,name=signer,proto3" json:"signer,omitempty"`
// params defines the 27-interchain-accounts/host parameters to update.
//
// NOTE: All parameters must be supplied.
@@ -119,7 +119,7 @@ func init() {
}
var fileDescriptor_fa437afde7f1e7ae = []byte{
- // 355 bytes of a gzipped FileDescriptorProto
+ // 352 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0xcd, 0x4c, 0x4a, 0xd6,
0x4f, 0x2c, 0x28, 0xc8, 0xc9, 0x4c, 0x4e, 0x2c, 0xc9, 0xcc, 0xcf, 0x2b, 0xd6, 0xcf, 0xcc, 0x2b,
0x49, 0x2d, 0x4a, 0xce, 0x48, 0xcc, 0xcc, 0x8b, 0x4f, 0x4c, 0x4e, 0xce, 0x2f, 0xcd, 0x2b, 0x29,
@@ -127,22 +127,21 @@ var fileDescriptor_fa437afde7f1e7ae = []byte{
0xc9, 0x17, 0xd2, 0xc9, 0x4c, 0x4a, 0xd6, 0x43, 0xd6, 0xa6, 0x87, 0x45, 0x9b, 0x1e, 0x48, 0x9b,
0x5e, 0x99, 0xa1, 0x94, 0x48, 0x7a, 0x7e, 0x7a, 0x3e, 0x58, 0xa3, 0x3e, 0x88, 0x05, 0x31, 0x43,
0x4a, 0x3c, 0x39, 0xbf, 0x38, 0x37, 0xbf, 0x58, 0x3f, 0xb7, 0x38, 0x1d, 0x64, 0x76, 0x6e, 0x71,
- 0x3a, 0x54, 0xc2, 0x9c, 0x24, 0x37, 0x81, 0x2d, 0x01, 0x6b, 0x54, 0x9a, 0xce, 0xc8, 0xc5, 0xef,
- 0x5b, 0x9c, 0x1e, 0x5a, 0x90, 0x92, 0x58, 0x92, 0x1a, 0x90, 0x58, 0x94, 0x98, 0x5b, 0x2c, 0x24,
- 0xc3, 0xc5, 0x99, 0x58, 0x5a, 0x92, 0x91, 0x5f, 0x94, 0x59, 0x52, 0x29, 0xc1, 0xa8, 0xc0, 0xa8,
- 0xc1, 0x19, 0x84, 0x10, 0x10, 0x0a, 0xe2, 0x62, 0x2b, 0x00, 0xab, 0x93, 0x60, 0x52, 0x60, 0xd4,
- 0xe0, 0x36, 0x32, 0xd1, 0x23, 0xc5, 0x63, 0x7a, 0x10, 0x3b, 0x9c, 0x58, 0x4e, 0xdc, 0x93, 0x67,
- 0x08, 0x82, 0x9a, 0x64, 0x25, 0xd4, 0xb1, 0x40, 0x9e, 0xa1, 0xe9, 0xf9, 0x06, 0x2d, 0x84, 0x3d,
- 0x4a, 0x92, 0x5c, 0xe2, 0x68, 0x0e, 0x0b, 0x4a, 0x2d, 0x2e, 0xc8, 0xcf, 0x2b, 0x4e, 0x35, 0x5a,
- 0xcc, 0xc8, 0xc5, 0xec, 0x5b, 0x9c, 0x2e, 0x34, 0x85, 0x91, 0x8b, 0x07, 0xc5, 0xe5, 0xb6, 0xa4,
- 0xb9, 0x05, 0xcd, 0x7c, 0x29, 0x57, 0x8a, 0xb4, 0xc3, 0x9c, 0x27, 0xc5, 0xda, 0xf0, 0x7c, 0x83,
- 0x16, 0xa3, 0x53, 0xca, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7,
- 0x38, 0xe1, 0xb1, 0x1c, 0xc3, 0x85, 0xc7, 0x72, 0x0c, 0x37, 0x1e, 0xcb, 0x31, 0x44, 0x79, 0xa5,
- 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0x43, 0x63, 0x34, 0x33, 0x29, 0x59,
- 0x37, 0x3d, 0x5f, 0xbf, 0xcc, 0x5c, 0x3f, 0x37, 0x3f, 0xa5, 0x34, 0x27, 0xb5, 0x18, 0x14, 0x9b,
- 0xc5, 0xfa, 0x46, 0xe6, 0xba, 0x08, 0x17, 0xe8, 0xa2, 0x46, 0x64, 0x49, 0x65, 0x41, 0x6a, 0x71,
- 0x12, 0x1b, 0x38, 0x1e, 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd9, 0x32, 0xfd, 0x69, 0x96,
- 0x02, 0x00, 0x00,
+ 0x3a, 0x54, 0xc2, 0x9c, 0x24, 0x37, 0x81, 0x2d, 0x01, 0x6b, 0x54, 0xea, 0x63, 0xe4, 0xe2, 0xf7,
+ 0x2d, 0x4e, 0x0f, 0x2d, 0x48, 0x49, 0x2c, 0x49, 0x0d, 0x48, 0x2c, 0x4a, 0xcc, 0x2d, 0x16, 0x12,
+ 0xe3, 0x62, 0x2b, 0xce, 0x4c, 0xcf, 0x4b, 0x2d, 0x92, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x0c, 0x82,
+ 0xf2, 0x84, 0x82, 0xb8, 0xd8, 0x0a, 0xc0, 0x2a, 0x24, 0x98, 0x14, 0x18, 0x35, 0xb8, 0x8d, 0x4c,
+ 0xf4, 0x48, 0xf1, 0x92, 0x1e, 0xc4, 0x74, 0x27, 0x96, 0x13, 0xf7, 0xe4, 0x19, 0x82, 0xa0, 0x26,
+ 0x59, 0xf1, 0x77, 0x2c, 0x90, 0x67, 0x68, 0x7a, 0xbe, 0x41, 0x0b, 0x6a, 0x89, 0x92, 0x24, 0x97,
+ 0x38, 0x9a, 0x7b, 0x82, 0x52, 0x8b, 0x0b, 0xf2, 0xf3, 0x8a, 0x53, 0x8d, 0x16, 0x33, 0x72, 0x31,
+ 0xfb, 0x16, 0xa7, 0x0b, 0x4d, 0x61, 0xe4, 0xe2, 0x41, 0x71, 0xb0, 0x2d, 0x69, 0x0e, 0x41, 0x33,
+ 0x5f, 0xca, 0x95, 0x22, 0xed, 0x30, 0xe7, 0x49, 0xb1, 0x36, 0x3c, 0xdf, 0xa0, 0xc5, 0xe8, 0x94,
+ 0x72, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c,
+ 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0x5e, 0xe9, 0x99, 0x25, 0x19,
+ 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0xd0, 0x88, 0xcc, 0x4c, 0x4a, 0xd6, 0x4d, 0xcf, 0xd7,
+ 0x2f, 0x33, 0xd7, 0xcf, 0xcd, 0x4f, 0x29, 0xcd, 0x49, 0x2d, 0x06, 0x45, 0x62, 0xb1, 0xbe, 0x91,
+ 0xb9, 0x2e, 0xc2, 0x05, 0xba, 0xa8, 0xf1, 0x57, 0x52, 0x59, 0x90, 0x5a, 0x9c, 0xc4, 0x06, 0x8e,
+ 0x3e, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0xeb, 0x47, 0xd5, 0x82, 0x8d, 0x02, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -257,10 +256,10 @@ func (m *MsgUpdateParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
}
i--
dAtA[i] = 0x12
- if len(m.Authority) > 0 {
- i -= len(m.Authority)
- copy(dAtA[i:], m.Authority)
- i = encodeVarintTx(dAtA, i, uint64(len(m.Authority)))
+ if len(m.Signer) > 0 {
+ i -= len(m.Signer)
+ copy(dAtA[i:], m.Signer)
+ i = encodeVarintTx(dAtA, i, uint64(len(m.Signer)))
i--
dAtA[i] = 0xa
}
@@ -307,7 +306,7 @@ func (m *MsgUpdateParams) Size() (n int) {
}
var l int
_ = l
- l = len(m.Authority)
+ l = len(m.Signer)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
@@ -362,7 +361,7 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error {
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -390,7 +389,7 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Authority = string(dAtA[iNdEx:postIndex])
+ m.Signer = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
diff --git a/modules/apps/27-interchain-accounts/module.go b/modules/apps/27-interchain-accounts/module.go
index 1dceea8aa15..91d7706701c 100644
--- a/modules/apps/27-interchain-accounts/module.go
+++ b/modules/apps/27-interchain-accounts/module.go
@@ -8,6 +8,8 @@ import (
"github.com/grpc-ecosystem/grpc-gateway/runtime"
"github.com/spf13/cobra"
+ "cosmossdk.io/core/appmodule"
+
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/codec"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
@@ -34,6 +36,7 @@ var (
_ module.AppModule = (*AppModule)(nil)
_ module.AppModuleBasic = (*AppModuleBasic)(nil)
_ module.AppModuleSimulation = (*AppModule)(nil)
+ _ appmodule.AppModule = (*AppModule)(nil)
_ porttypes.IBCModule = (*host.IBCModule)(nil)
)
@@ -46,6 +49,12 @@ func (AppModuleBasic) Name() string {
return types.ModuleName
}
+// IsOnePerModuleType implements the depinject.OnePerModuleType interface.
+func (AppModule) IsOnePerModuleType() {}
+
+// IsAppModule implements the appmodule.AppModule interface.
+func (AppModule) IsAppModule() {}
+
// RegisterLegacyAminoCodec implements AppModuleBasic.
func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {}
@@ -202,15 +211,6 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw
// ConsensusVersion implements AppModule/ConsensusVersion.
func (AppModule) ConsensusVersion() uint64 { return 3 }
-// BeginBlock implements the AppModule interface
-func (AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) {
-}
-
-// EndBlock implements the AppModule interface
-func (AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate {
- return []abci.ValidatorUpdate{}
-}
-
// AppModuleSimulation functions
// GenerateGenesisState creates a randomized GenState of the ics27 module.
@@ -224,6 +224,6 @@ func (AppModule) WeightedOperations(simState module.SimulationState) []simtypes.
}
// RegisterStoreDecoder registers a decoder for interchain accounts module's types
-func (AppModule) RegisterStoreDecoder(sdr sdk.StoreDecoderRegistry) {
+func (AppModule) RegisterStoreDecoder(sdr simtypes.StoreDecoderRegistry) {
sdr[types.StoreKey] = simulation.NewDecodeStore()
}
diff --git a/modules/apps/27-interchain-accounts/module_test.go b/modules/apps/27-interchain-accounts/module_test.go
index da6e3136622..5719e70e5c5 100644
--- a/modules/apps/27-interchain-accounts/module_test.go
+++ b/modules/apps/27-interchain-accounts/module_test.go
@@ -3,15 +3,14 @@ package ica_test
import (
"testing"
+ dbm "github.com/cosmos/cosmos-db"
testifysuite "github.com/stretchr/testify/suite"
+ "cosmossdk.io/log"
+
"github.com/cosmos/cosmos-sdk/baseapp"
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
- dbm "github.com/cometbft/cometbft-db"
- "github.com/cometbft/cometbft/libs/log"
- tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
-
ica "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts"
controllertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
hosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types"
@@ -41,13 +40,7 @@ func (suite *InterchainAccountsTestSuite) TestInitModule() {
appModule, ok := app.ModuleManager.Modules[types.ModuleName].(ica.AppModule)
suite.Require().True(ok)
- header := tmproto.Header{
- ChainID: chainID,
- Height: 1,
- Time: suite.coordinator.CurrentTime.UTC(),
- }
-
- ctx := app.GetBaseApp().NewContext(true, header)
+ ctx := app.GetBaseApp().NewContext(true)
// ensure params are not set
suite.Require().Panics(func() {
@@ -105,13 +98,8 @@ func (suite *InterchainAccountsTestSuite) TestInitModule() {
// reset app state
chainID := "testchain"
app = simapp.NewSimApp(log.NewNopLogger(), dbm.NewMemDB(), nil, true, simtestutil.EmptyAppOptions{}, baseapp.SetChainID(chainID))
- header := tmproto.Header{
- ChainID: chainID,
- Height: 1,
- Time: suite.coordinator.CurrentTime.UTC(),
- }
- ctx := app.GetBaseApp().NewContext(true, header)
+ ctx := app.GetBaseApp().NewContext(true)
tc.malleate()
diff --git a/modules/apps/27-interchain-accounts/simulation/genesis.go b/modules/apps/27-interchain-accounts/simulation/genesis.go
index c90ecaf7003..953216b3da5 100644
--- a/modules/apps/27-interchain-accounts/simulation/genesis.go
+++ b/modules/apps/27-interchain-accounts/simulation/genesis.go
@@ -23,7 +23,7 @@ func RandomEnabled(r *rand.Rand) bool {
func RandomizedGenState(simState *module.SimulationState) {
var controllerEnabled bool
simState.AppParams.GetOrGenerate(
- simState.Cdc, string(controllertypes.KeyControllerEnabled), &controllerEnabled, simState.Rand,
+ string(controllertypes.KeyControllerEnabled), &controllerEnabled, simState.Rand,
func(r *rand.Rand) { controllerEnabled = RandomEnabled(r) },
)
@@ -40,7 +40,7 @@ func RandomizedGenState(simState *module.SimulationState) {
var hostEnabled bool
simState.AppParams.GetOrGenerate(
- simState.Cdc, string(hosttypes.KeyHostEnabled), &hostEnabled, simState.Rand,
+ string(hosttypes.KeyHostEnabled), &hostEnabled, simState.Rand,
func(r *rand.Rand) { hostEnabled = RandomEnabled(r) },
)
diff --git a/modules/apps/27-interchain-accounts/types/account.go b/modules/apps/27-interchain-accounts/types/account.go
index 03431d3e63a..60c05ad448c 100644
--- a/modules/apps/27-interchain-accounts/types/account.go
+++ b/modules/apps/27-interchain-accounts/types/account.go
@@ -27,9 +27,9 @@ var DefaultMaxAddrLength = 128
// strictly alphanumeric characters and is non empty.
var isValidAddr = regexp.MustCompile("^[a-zA-Z0-9]+$").MatchString
-// InterchainAccountI wraps the authtypes.AccountI interface
+// InterchainAccountI wraps the sdk.AccountI interface
type InterchainAccountI interface {
- authtypes.AccountI
+ sdk.AccountI
}
// interchainAccountPretty defines an unexported struct used for encoding the InterchainAccount details
diff --git a/modules/apps/27-interchain-accounts/types/codec.go b/modules/apps/27-interchain-accounts/types/codec.go
index 68d19fb0db3..6823b30d07c 100644
--- a/modules/apps/27-interchain-accounts/types/codec.go
+++ b/modules/apps/27-interchain-accounts/types/codec.go
@@ -21,7 +21,7 @@ var ModuleCdc = codec.NewProtoCodec(codectypes.NewInterfaceRegistry())
// RegisterInterfaces registers the interchain accounts controller types and the concrete InterchainAccount implementation
// against the associated x/auth AccountI and GenesisAccount interfaces.
func RegisterInterfaces(registry codectypes.InterfaceRegistry) {
- registry.RegisterImplementations((*authtypes.AccountI)(nil), &InterchainAccount{})
+ registry.RegisterImplementations((*sdk.AccountI)(nil), &InterchainAccount{})
registry.RegisterImplementations((*authtypes.GenesisAccount)(nil), &InterchainAccount{})
}
diff --git a/modules/apps/27-interchain-accounts/types/codec_test.go b/modules/apps/27-interchain-accounts/types/codec_test.go
index e120c393c16..885f77b5a9f 100644
--- a/modules/apps/27-interchain-accounts/types/codec_test.go
+++ b/modules/apps/27-interchain-accounts/types/codec_test.go
@@ -5,7 +5,6 @@ import (
sdkmath "cosmossdk.io/math"
- "github.com/cosmos/cosmos-sdk/codec"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
sdk "github.com/cosmos/cosmos-sdk/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
@@ -14,7 +13,6 @@ import (
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
"github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types"
- "github.com/cosmos/ibc-go/v7/testing/simapp"
)
// mockSdkMsg defines a mock struct, used for testing codec error scenarios
@@ -265,7 +263,7 @@ func (suite *TypesTestSuite) TestSerializeAndDeserializeCosmosTx() {
suite.Run(tc.name, func() {
tc.malleate()
- bz, err := types.SerializeCosmosTx(simapp.MakeTestEncodingConfig().Codec, msgs, encoding)
+ bz, err := types.SerializeCosmosTx(suite.chainA.Codec, msgs, encoding)
if encoding == types.EncodingProto3JSON && !tc.expPass {
suite.Require().Error(err, tc.name)
suite.Require().Contains(err.Error(), expSerializeErrorStrings[1], tc.name)
@@ -273,7 +271,7 @@ func (suite *TypesTestSuite) TestSerializeAndDeserializeCosmosTx() {
suite.Require().NoError(err, tc.name)
}
- deserializedMsgs, err := types.DeserializeCosmosTx(simapp.MakeTestEncodingConfig().Codec, bz, encoding)
+ deserializedMsgs, err := types.DeserializeCosmosTx(suite.chainA.Codec, bz, encoding)
if tc.expPass {
suite.Require().NoError(err, tc.name)
} else {
@@ -300,40 +298,24 @@ func (suite *TypesTestSuite) TestSerializeAndDeserializeCosmosTx() {
}
// test serializing non sdk.Msg type
- bz, err := types.SerializeCosmosTx(simapp.MakeTestEncodingConfig().Codec, []proto.Message{&banktypes.MsgSendResponse{}}, encoding)
+ bz, err := types.SerializeCosmosTx(suite.chainA.Codec, []proto.Message{&banktypes.MsgSendResponse{}}, encoding)
suite.Require().NoError(err)
suite.Require().NotEmpty(bz)
// test deserializing unknown bytes
- msgs, err := types.DeserializeCosmosTx(simapp.MakeTestEncodingConfig().Codec, bz, encoding)
+ msgs, err := types.DeserializeCosmosTx(suite.chainA.Codec, bz, encoding)
suite.Require().Error(err) // unregistered type
suite.Require().Contains(err.Error(), expDeserializeErrorStrings[i])
suite.Require().Empty(msgs)
// test deserializing unknown bytes
- msgs, err = types.DeserializeCosmosTx(simapp.MakeTestEncodingConfig().Codec, []byte("invalid"), encoding)
+ msgs, err = types.DeserializeCosmosTx(suite.chainA.Codec, []byte("invalid"), encoding)
suite.Require().Error(err)
suite.Require().Contains(err.Error(), expDeserializeErrorStrings[i])
suite.Require().Empty(msgs)
}
}
-// unregistered bytes causes amino to panic.
-// test that DeserializeCosmosTx gracefully returns an error on
-// unsupported amino codec.
-func (suite *TypesTestSuite) TestProtoDeserializeAndSerializeCosmosTxWithAmino() {
- cdc := codec.NewLegacyAmino()
- marshaler := codec.NewAminoCodec(cdc)
-
- msgs, err := types.SerializeCosmosTx(marshaler, []proto.Message{&banktypes.MsgSend{}}, types.EncodingProtobuf)
- suite.Require().ErrorIs(err, types.ErrInvalidCodec)
- suite.Require().Empty(msgs)
-
- bz, err := types.DeserializeCosmosTx(marshaler, []byte{0x10, 0}, types.EncodingProtobuf)
- suite.Require().ErrorIs(err, types.ErrInvalidCodec)
- suite.Require().Empty(bz)
-}
-
func (suite *TypesTestSuite) TestJSONDeserializeCosmosTx() {
testCases := []struct {
name string
@@ -456,7 +438,7 @@ func (suite *TypesTestSuite) TestJSONDeserializeCosmosTx() {
tc := tc
suite.Run(tc.name, func() {
- msgs, errDeserialize := types.DeserializeCosmosTx(simapp.MakeTestEncodingConfig().Codec, tc.jsonBytes, types.EncodingProto3JSON)
+ msgs, errDeserialize := types.DeserializeCosmosTx(suite.chainA.Codec, tc.jsonBytes, types.EncodingProto3JSON)
if tc.expError == nil {
suite.Require().NoError(errDeserialize, tc.name)
for i, msg := range msgs {
@@ -478,17 +460,17 @@ func (suite *TypesTestSuite) TestUnsupportedEncodingType() {
},
}
- bz, err := types.SerializeCosmosTx(simapp.MakeTestEncodingConfig().Codec, msgs, "unsupported")
+ bz, err := types.SerializeCosmosTx(suite.chainA.Codec, msgs, "unsupported")
suite.Require().ErrorIs(err, types.ErrInvalidCodec)
suite.Require().Nil(bz)
- data, err := types.SerializeCosmosTx(simapp.MakeTestEncodingConfig().Codec, msgs, types.EncodingProtobuf)
+ data, err := types.SerializeCosmosTx(suite.chainA.Codec, msgs, types.EncodingProtobuf)
suite.Require().NoError(err)
- _, err = types.DeserializeCosmosTx(simapp.MakeTestEncodingConfig().Codec, data, "unsupported")
+ _, err = types.DeserializeCosmosTx(suite.chainA.Codec, data, "unsupported")
suite.Require().ErrorIs(err, types.ErrInvalidCodec)
// verify that protobuf encoding still works otherwise:
- _, err = types.DeserializeCosmosTx(simapp.MakeTestEncodingConfig().Codec, data, types.EncodingProtobuf)
+ _, err = types.DeserializeCosmosTx(suite.chainA.Codec, data, types.EncodingProtobuf)
suite.Require().NoError(err)
}
diff --git a/modules/apps/27-interchain-accounts/types/expected_keepers.go b/modules/apps/27-interchain-accounts/types/expected_keepers.go
index d923d61c603..eee2b1142ab 100644
--- a/modules/apps/27-interchain-accounts/types/expected_keepers.go
+++ b/modules/apps/27-interchain-accounts/types/expected_keepers.go
@@ -1,8 +1,9 @@
package types
import (
+ "context"
+
sdk "github.com/cosmos/cosmos-sdk/types"
- authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
@@ -11,10 +12,10 @@ import (
// AccountKeeper defines the expected account keeper
type AccountKeeper interface {
- NewAccount(ctx sdk.Context, acc authtypes.AccountI) authtypes.AccountI
- GetAccount(ctx sdk.Context, addr sdk.AccAddress) authtypes.AccountI
- SetAccount(ctx sdk.Context, acc authtypes.AccountI)
- GetModuleAccount(ctx sdk.Context, name string) authtypes.ModuleAccountI
+ NewAccount(ctx context.Context, acc sdk.AccountI) sdk.AccountI
+ GetAccount(ctx context.Context, addr sdk.AccAddress) sdk.AccountI
+ SetAccount(ctx context.Context, acc sdk.AccountI)
+ GetModuleAccount(ctx context.Context, name string) sdk.ModuleAccountI
GetModuleAddress(name string) sdk.AccAddress
}
diff --git a/modules/apps/29-fee/ibc_middleware_test.go b/modules/apps/29-fee/ibc_middleware_test.go
index 9ce8d8abe1f..48fbf673ea1 100644
--- a/modules/apps/29-fee/ibc_middleware_test.go
+++ b/modules/apps/29-fee/ibc_middleware_test.go
@@ -1069,8 +1069,7 @@ func (suite *FeeTestSuite) TestGetAppVersion() {
cbs, ok := suite.chainA.App.GetIBCKeeper().Router.GetRoute(module)
suite.Require().True(ok)
- feeModule := cbs.(porttypes.Middleware)
-
+ feeModule := cbs.(porttypes.ICS4Wrapper)
appVersion, found := feeModule.GetAppVersion(suite.chainA.GetContext(), portID, channelID)
if tc.expFound {
diff --git a/modules/apps/29-fee/keeper/events_test.go b/modules/apps/29-fee/keeper/events_test.go
index f2d5c34d9ae..11df4ee1782 100644
--- a/modules/apps/29-fee/keeper/events_test.go
+++ b/modules/apps/29-fee/keeper/events_test.go
@@ -165,7 +165,7 @@ func (suite *KeeperTestSuite) TestDistributeFeeEvent() {
),
}.ToABCIEvents()
- for _, evt := range expectedEvents {
- suite.Require().Contains(events, evt)
- }
+ var indexSet map[string]struct{}
+ expectedEvents = sdk.MarkEventsToIndex(expectedEvents, indexSet)
+ ibctesting.AssertEvents(&suite.Suite, expectedEvents, events)
}
diff --git a/modules/apps/29-fee/keeper/grpc_query.go b/modules/apps/29-fee/keeper/grpc_query.go
index 6c7122e28c3..297d72efc1e 100644
--- a/modules/apps/29-fee/keeper/grpc_query.go
+++ b/modules/apps/29-fee/keeper/grpc_query.go
@@ -7,8 +7,8 @@ import (
"google.golang.org/grpc/status"
errorsmod "cosmossdk.io/errors"
+ "cosmossdk.io/store/prefix"
- "github.com/cosmos/cosmos-sdk/store/prefix"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/query"
diff --git a/modules/apps/29-fee/keeper/keeper.go b/modules/apps/29-fee/keeper/keeper.go
index fd810553d8b..328a3839be1 100644
--- a/modules/apps/29-fee/keeper/keeper.go
+++ b/modules/apps/29-fee/keeper/keeper.go
@@ -1,12 +1,12 @@
package keeper
import (
+ "cosmossdk.io/log"
+ storetypes "cosmossdk.io/store/types"
+
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
- "github.com/cometbft/cometbft/libs/log"
-
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
"github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
diff --git a/modules/apps/29-fee/module.go b/modules/apps/29-fee/module.go
index 95818469cfb..9639430817e 100644
--- a/modules/apps/29-fee/module.go
+++ b/modules/apps/29-fee/module.go
@@ -8,6 +8,8 @@ import (
"github.com/grpc-ecosystem/grpc-gateway/runtime"
"github.com/spf13/cobra"
+ "cosmossdk.io/core/appmodule"
+
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/codec"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
@@ -25,6 +27,7 @@ import (
var (
_ module.AppModule = (*AppModule)(nil)
_ module.AppModuleBasic = (*AppModuleBasic)(nil)
+ _ appmodule.AppModule = (*AppModule)(nil)
)
// AppModuleBasic is the 29-fee AppModuleBasic
@@ -35,6 +38,12 @@ func (AppModuleBasic) Name() string {
return types.ModuleName
}
+// IsOnePerModuleType implements the depinject.OnePerModuleType interface.
+func (AppModule) IsOnePerModuleType() {}
+
+// IsAppModule implements the appmodule.AppModule interface.
+func (AppModule) IsAppModule() {}
+
// RegisterLegacyAminoCodec implements AppModuleBasic interface
func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {}
@@ -119,15 +128,6 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw
// ConsensusVersion implements AppModule/ConsensusVersion.
func (AppModule) ConsensusVersion() uint64 { return 1 }
-// BeginBlock implements the AppModule interface
-func (AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) {
-}
-
-// EndBlock implements the AppModule interface
-func (AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate {
- return []abci.ValidatorUpdate{}
-}
-
// AppModuleSimulation functions
// GenerateGenesisState creates a randomized GenState of the 29-fee module.
@@ -135,7 +135,7 @@ func (AppModule) GenerateGenesisState(_ *module.SimulationState) {
}
// RegisterStoreDecoder registers a decoder for 29-fee module's types
-func (AppModule) RegisterStoreDecoder(_ sdk.StoreDecoderRegistry) {
+func (AppModule) RegisterStoreDecoder(_ simtypes.StoreDecoderRegistry) {
}
// WeightedOperations returns the all the 29-fee module operations with their respective weights.
diff --git a/modules/apps/29-fee/types/codec.go b/modules/apps/29-fee/types/codec.go
index 272056d6f9f..51541f78b57 100644
--- a/modules/apps/29-fee/types/codec.go
+++ b/modules/apps/29-fee/types/codec.go
@@ -39,9 +39,6 @@ var (
// The actual codec used for serialization should be provided to x/ibc transfer and
// defined at the application level.
ModuleCdc = codec.NewProtoCodec(codectypes.NewInterfaceRegistry())
-
- // AminoCdc is a amino codec created to support amino json compatible msgs.
- AminoCdc = codec.NewAminoCodec(amino)
)
func init() {
diff --git a/modules/apps/29-fee/types/expected_keepers.go b/modules/apps/29-fee/types/expected_keepers.go
index 68ea270b72a..830a542431b 100644
--- a/modules/apps/29-fee/types/expected_keepers.go
+++ b/modules/apps/29-fee/types/expected_keepers.go
@@ -1,8 +1,9 @@
package types
import (
+ "context"
+
sdk "github.com/cosmos/cosmos-sdk/types"
- "github.com/cosmos/cosmos-sdk/x/auth/types"
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
@@ -11,7 +12,7 @@ import (
// AccountKeeper defines the contract required for account APIs.
type AccountKeeper interface {
GetModuleAddress(name string) sdk.AccAddress
- GetAccount(sdk.Context, sdk.AccAddress) types.AccountI
+ GetAccount(context.Context, sdk.AccAddress) sdk.AccountI
}
// ChannelKeeper defines the expected IBC channel keeper
@@ -28,9 +29,9 @@ type PortKeeper interface {
// BankKeeper defines the expected bank keeper
type BankKeeper interface {
- HasBalance(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coin) bool
- SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error
- SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
+ HasBalance(ctx context.Context, addr sdk.AccAddress, amt sdk.Coin) bool
+ SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error
+ SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
BlockedAddr(sdk.AccAddress) bool
- IsSendEnabledCoins(ctx sdk.Context, coins ...sdk.Coin) error
+ IsSendEnabledCoins(ctx context.Context, coins ...sdk.Coin) error
}
diff --git a/modules/apps/29-fee/types/msgs.go b/modules/apps/29-fee/types/msgs.go
index 56c5869d765..d76358af5ff 100644
--- a/modules/apps/29-fee/types/msgs.go
+++ b/modules/apps/29-fee/types/msgs.go
@@ -174,7 +174,7 @@ func (MsgPayPacketFee) Route() string {
// GetSignBytes implements legacytx.LegacyMsg
func (msg MsgPayPacketFee) GetSignBytes() []byte {
- return sdk.MustSortJSON(AminoCdc.MustMarshalJSON(&msg))
+ return sdk.MustSortJSON(amino.MustMarshalJSON(&msg))
}
// NewMsgPayPacketAsync creates a new instance of MsgPayPacketFee
@@ -216,5 +216,5 @@ func (MsgPayPacketFeeAsync) Route() string {
// GetSignBytes implements legacytx.LegacyMsg
func (msg MsgPayPacketFeeAsync) GetSignBytes() []byte {
- return sdk.MustSortJSON(AminoCdc.MustMarshalJSON(&msg))
+ return sdk.MustSortJSON(amino.MustMarshalJSON(&msg))
}
diff --git a/modules/apps/callbacks/Dockerfile b/modules/apps/callbacks/Dockerfile
new file mode 100644
index 00000000000..d81cee1389e
--- /dev/null
+++ b/modules/apps/callbacks/Dockerfile
@@ -0,0 +1,28 @@
+FROM golang:1.21-alpine3.18 as builder
+
+RUN set -eux; apk add --no-cache git libusb-dev linux-headers gcc musl-dev make;
+
+ENV GOPATH=""
+ENV GOMODULE="on"
+
+# Copy relevant files before go mod download. Replace directives to local paths break if local
+# files are not copied before go mod download.
+ADD internal internal
+ADD testing testing
+ADD modules modules
+ADD LICENSE LICENSE
+
+COPY go.mod .
+COPY go.sum .
+
+WORKDIR modules/apps/callbacks
+
+RUN go mod download
+
+RUN GOOS=linux GOARCH=amd64 LEDGER_ENABLED=false go build -mod=readonly -tags "netgo ledger" -ldflags '-X github.com/cosmos/cosmos-sdk/version.Name=sim -X github.com/cosmos/cosmos-sdk/version.AppName=simd -X github.com/cosmos/cosmos-sdk/version.Version= -X github.com/cosmos/cosmos-sdk/version.Commit= -X "github.com/cosmos/cosmos-sdk/version.BuildTags=netgo ledger," -w -s' -trimpath -o /go/build/ ./...
+
+FROM alpine:3.18
+
+COPY --from=builder /go/build/simd /bin/simd
+
+ENTRYPOINT ["simd"]
diff --git a/modules/apps/callbacks/callbacks_test.go b/modules/apps/callbacks/callbacks_test.go
index 5f63170e47f..a7088240b40 100644
--- a/modules/apps/callbacks/callbacks_test.go
+++ b/modules/apps/callbacks/callbacks_test.go
@@ -5,16 +5,17 @@ import (
"fmt"
"testing"
+ dbm "github.com/cosmos/cosmos-db"
"github.com/stretchr/testify/suite"
+ "cosmossdk.io/log"
sdkmath "cosmossdk.io/math"
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
sdk "github.com/cosmos/cosmos-sdk/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
- dbm "github.com/cometbft/cometbft-db"
- "github.com/cometbft/cometbft/libs/log"
+ abci "github.com/cometbft/cometbft/abci/types"
simapp "github.com/cosmos/ibc-go/modules/apps/callbacks/testing/simapp"
"github.com/cosmos/ibc-go/modules/apps/callbacks/types"
@@ -22,6 +23,7 @@ import (
icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types"
feetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
+ porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
ibcmock "github.com/cosmos/ibc-go/v7/testing/mock"
)
@@ -35,9 +37,8 @@ func init() {
// SetupTestingApp provides the duplicated simapp which is specific to the callbacks module on chain creation.
func SetupTestingApp() (ibctesting.TestingApp, map[string]json.RawMessage) {
db := dbm.NewMemDB()
- encCdc := simapp.MakeTestEncodingConfig()
app := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, simtestutil.EmptyAppOptions{})
- return app, simapp.NewDefaultGenesisState(encCdc.Codec)
+ return app, app.DefaultGenesis()
}
// GetSimApp returns the duplicated SimApp from within the callbacks directory.
@@ -289,3 +290,26 @@ func (s *CallbacksTestSuite) AssertHasExecutedExpectedCallbackWithFee(
}
s.AssertHasExecutedExpectedCallback(callbackType, isSuccessful)
}
+
+// GetExpectedEvent returns the expected event for a callback.
+func GetExpectedEvent(
+ packetDataUnmarshaler porttypes.PacketDataUnmarshaler, remainingGas uint64, data []byte, srcPortID,
+ eventPortID, eventChannelID string, seq uint64, callbackType types.CallbackType, expError error,
+) (abci.Event, bool) {
+ var (
+ callbackData types.CallbackData
+ err error
+ )
+ if callbackType == types.CallbackTypeReceivePacket {
+ callbackData, err = types.GetDestCallbackData(packetDataUnmarshaler, data, srcPortID, remainingGas, maxCallbackGas)
+ } else {
+ callbackData, err = types.GetSourceCallbackData(packetDataUnmarshaler, data, srcPortID, remainingGas, maxCallbackGas)
+ }
+ if err != nil {
+ return abci.Event{}, false
+ }
+
+ newCtx := sdk.Context{}.WithEventManager(sdk.NewEventManager())
+ types.EmitCallbackEvent(newCtx, eventPortID, eventChannelID, seq, callbackType, callbackData, expError)
+ return newCtx.EventManager().Events().ToABCIEvents()[0], true
+}
diff --git a/modules/apps/callbacks/fee_transfer_test.go b/modules/apps/callbacks/fee_transfer_test.go
index f50c1d76abd..cb73830e4d8 100644
--- a/modules/apps/callbacks/fee_transfer_test.go
+++ b/modules/apps/callbacks/fee_transfer_test.go
@@ -7,6 +7,7 @@ import (
sdk "github.com/cosmos/cosmos-sdk/types"
+ "github.com/cosmos/ibc-go/modules/apps/callbacks/testing/simapp"
"github.com/cosmos/ibc-go/modules/apps/callbacks/types"
feetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
@@ -33,19 +34,19 @@ func (s *CallbacksTestSuite) TestIncentivizedTransferCallbacks() {
},
{
"success: dest callback",
- fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.SuccessContract),
types.CallbackTypeReceivePacket,
true,
},
{
"success: dest callback with other json fields",
- fmt.Sprintf(`{"dest_callback": {"address": "%s"}, "something_else": {}}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}, "something_else": {}}`, simapp.SuccessContract),
types.CallbackTypeReceivePacket,
true,
},
{
"success: dest callback with malformed json",
- fmt.Sprintf(`{"dest_callback": {"address": "%s"}, malformed}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}, malformed}`, simapp.SuccessContract),
"none",
true,
},
@@ -57,19 +58,19 @@ func (s *CallbacksTestSuite) TestIncentivizedTransferCallbacks() {
},
{
"success: source callback",
- fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.SuccessContract),
types.CallbackTypeAcknowledgementPacket,
true,
},
{
"success: source callback with other json fields",
- fmt.Sprintf(`{"src_callback": {"address": "%s"}, "something_else": {}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}, "something_else": {}}`, simapp.SuccessContract),
types.CallbackTypeAcknowledgementPacket,
true,
},
{
"success: source callback with malformed json",
- fmt.Sprintf(`{"src_callback": {"address": "%s"}, malformed}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}, malformed}`, simapp.SuccessContract),
"none",
true,
},
@@ -81,13 +82,25 @@ func (s *CallbacksTestSuite) TestIncentivizedTransferCallbacks() {
},
{
"failure: dest callback with low gas (panic)",
- fmt.Sprintf(`{"dest_callback": {"address": "%s", "gas_limit": "450000"}}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.OogPanicContract),
+ types.CallbackTypeReceivePacket,
+ false,
+ },
+ {
+ "failure: dest callback with low gas (error)",
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.OogErrorContract),
types.CallbackTypeReceivePacket,
false,
},
{
"failure: source callback with low gas (panic)",
- fmt.Sprintf(`{"src_callback": {"address": "%s", "gas_limit": "450000"}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.OogPanicContract),
+ types.CallbackTypeSendPacket,
+ false,
+ },
+ {
+ "failure: source callback with low gas (error)",
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.OogErrorContract),
types.CallbackTypeSendPacket,
false,
},
@@ -127,25 +140,37 @@ func (s *CallbacksTestSuite) TestIncentivizedTransferTimeoutCallbacks() {
},
{
"success: dest callback",
- fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.SuccessContract),
"none",
true, // timeouts don't reach destination chain execution
},
{
"success: source callback",
- fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.SuccessContract),
types.CallbackTypeTimeoutPacket,
true,
},
{
"success: dest callback with low gas (panic)",
- fmt.Sprintf(`{"dest_callback": {"address": "%s", "gas_limit": "450000"}}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.OogPanicContract),
"none", // timeouts don't reach destination chain execution
false,
},
{
"failure: source callback with low gas (panic)",
- fmt.Sprintf(`{"src_callback": {"address": "%s", "gas_limit": "450000"}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.OogPanicContract),
+ types.CallbackTypeSendPacket,
+ false,
+ },
+ {
+ "success: dest callback with low gas (error)",
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.OogErrorContract),
+ "none", // timeouts don't reach destination chain execution
+ false,
+ },
+ {
+ "failure: source callback with low gas (error)",
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.OogErrorContract),
types.CallbackTypeSendPacket,
false,
},
@@ -159,7 +184,7 @@ func (s *CallbacksTestSuite) TestIncentivizedTransferTimeoutCallbacks() {
s.ExecutePayPacketFeeMsg(fee)
preRelaySenderBalance := sdk.NewCoins(GetSimApp(s.chainA).BankKeeper.GetBalance(s.chainA.GetContext(), s.chainA.SenderAccount.GetAddress(), ibctesting.TestCoin.Denom))
- s.ExecuteTransferTimeout(tc.transferMemo, 1)
+ s.ExecuteTransferTimeout(tc.transferMemo)
// after incentivizing the packets
s.AssertHasExecutedExpectedCallbackWithFee(tc.expCallback, tc.expSuccess, true, preRelaySenderBalance, fee)
diff --git a/modules/apps/callbacks/go.mod b/modules/apps/callbacks/go.mod
index a939d4a5b97..fd93e3becb1 100644
--- a/modules/apps/callbacks/go.mod
+++ b/modules/apps/callbacks/go.mod
@@ -2,71 +2,90 @@ module github.com/cosmos/ibc-go/modules/apps/callbacks
go 1.21
+toolchain go1.21.0
+
replace github.com/cosmos/ibc-go/v7 => ../../../
replace github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7
require (
- cosmossdk.io/api v0.3.1
+ cosmossdk.io/api v0.7.0
+ cosmossdk.io/client/v2 v2.0.0-20230818115413-c402c51a1508
+ cosmossdk.io/core v0.10.0
cosmossdk.io/errors v1.0.0
+ cosmossdk.io/log v1.2.1
cosmossdk.io/math v1.1.2
- github.com/cometbft/cometbft v0.37.2
- github.com/cometbft/cometbft-db v0.8.0
- github.com/cosmos/cosmos-sdk v0.47.4
- github.com/cosmos/gogoproto v1.4.10
- github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1
- github.com/cosmos/ibc-go/v7 v7.2.0
+ cosmossdk.io/store v1.0.0-rc.0
+ cosmossdk.io/tools/confix v0.0.0-20230818115413-c402c51a1508
+ cosmossdk.io/x/circuit v0.0.0-20230818115413-c402c51a1508
+ cosmossdk.io/x/evidence v0.0.0-20230818115413-c402c51a1508
+ cosmossdk.io/x/feegrant v0.0.0-20230818115413-c402c51a1508
+ cosmossdk.io/x/tx v0.9.1
+ cosmossdk.io/x/upgrade v0.0.0-20230818115413-c402c51a1508
+ github.com/cometbft/cometbft v0.38.0-rc3
+ github.com/cosmos/cosmos-db v1.0.0
+ github.com/cosmos/cosmos-sdk v0.50.0-rc.0.0.20230819070346-e8164be94954
+ github.com/cosmos/gogoproto v1.4.11
+ github.com/cosmos/ibc-go/modules/capability v1.0.0-rc4
+ github.com/cosmos/ibc-go/v7 v7.3.0
github.com/spf13/cast v1.5.1
+ github.com/spf13/cobra v1.7.0
+ github.com/spf13/viper v1.16.0
github.com/stretchr/testify v1.8.4
)
require (
- cloud.google.com/go v0.110.4 // indirect
- cloud.google.com/go/compute v1.20.1 // indirect
+ cloud.google.com/go v0.110.6 // indirect
+ cloud.google.com/go/compute v1.23.0 // indirect
cloud.google.com/go/compute/metadata v0.2.3 // indirect
- cloud.google.com/go/iam v1.1.0 // indirect
+ cloud.google.com/go/iam v1.1.1 // indirect
cloud.google.com/go/storage v1.30.1 // indirect
- cosmossdk.io/core v0.5.1 // indirect
- cosmossdk.io/depinject v1.0.0-alpha.3 // indirect
- cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca // indirect
- cosmossdk.io/tools/rosetta v0.2.1 // indirect
+ cosmossdk.io/collections v0.4.0 // indirect
+ cosmossdk.io/depinject v1.0.0-alpha.4 // indirect
filippo.io/edwards25519 v1.0.0 // indirect
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect
github.com/99designs/keyring v1.2.1 // indirect
- github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect
- github.com/armon/go-metrics v0.4.1 // indirect
- github.com/aws/aws-sdk-go v1.44.203 // indirect
+ github.com/DataDog/zstd v1.5.5 // indirect
+ github.com/aws/aws-sdk-go v1.44.224 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect
+ github.com/bits-and-blooms/bitset v1.8.0 // indirect
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
github.com/cenkalti/backoff/v4 v4.1.3 // indirect
github.com/cespare/xxhash v1.1.0 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/chzyer/readline v1.5.1 // indirect
github.com/cockroachdb/apd/v2 v2.0.2 // indirect
- github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect
- github.com/confio/ics23/go v0.9.0 // indirect
+ github.com/cockroachdb/errors v1.10.0 // indirect
+ github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
+ github.com/cockroachdb/pebble v0.0.0-20230817233644-564b068800e0 // indirect
+ github.com/cockroachdb/redact v1.1.5 // indirect
+ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect
+ github.com/cometbft/cometbft-db v0.8.0 // indirect
github.com/cosmos/btcutil v1.0.5 // indirect
- github.com/cosmos/cosmos-proto v1.0.0-beta.2 // indirect
+ github.com/cosmos/cosmos-proto v1.0.0-beta.3 // indirect
github.com/cosmos/go-bip39 v1.0.0 // indirect
github.com/cosmos/gogogateway v1.2.0 // indirect
- github.com/cosmos/iavl v0.20.0 // indirect
+ github.com/cosmos/iavl v1.0.0-rc.1 // indirect
github.com/cosmos/ics23/go v0.10.0 // indirect
- github.com/cosmos/ledger-cosmos-go v0.12.1 // indirect
- github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect
- github.com/creachadair/taskgroup v0.4.2 // indirect
+ github.com/cosmos/ledger-cosmos-go v0.13.0 // indirect
+ github.com/creachadair/atomicfile v0.3.1 // indirect
+ github.com/creachadair/tomledit v0.0.24 // indirect
github.com/danieljoos/wincred v1.1.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
- github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
+ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect
github.com/dgraph-io/badger/v2 v2.2007.4 // indirect
github.com/dgraph-io/ristretto v0.1.1 // indirect
github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/dvsekhvalnov/jose2go v1.5.0 // indirect
+ github.com/emicklei/dot v1.5.0 // indirect
+ github.com/fatih/color v1.15.0 // indirect
github.com/felixge/httpsnoop v1.0.2 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
+ github.com/getsentry/sentry-go v0.23.0 // indirect
github.com/go-kit/kit v0.12.0 // indirect
github.com/go-kit/log v0.2.1 // indirect
github.com/go-logfmt/logfmt v0.6.0 // indirect
@@ -88,57 +107,61 @@ require (
github.com/gorilla/handlers v1.5.1 // indirect
github.com/gorilla/mux v1.8.0 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
- github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
+ github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect
- github.com/gtank/merlin v0.1.1 // indirect
- github.com/gtank/ristretto255 v0.1.2 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-getter v1.7.1 // indirect
+ github.com/hashicorp/go-hclog v1.5.0 // indirect
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
+ github.com/hashicorp/go-metrics v0.5.1 // indirect
+ github.com/hashicorp/go-plugin v1.4.10 // indirect
github.com/hashicorp/go-safetemp v1.0.0 // indirect
github.com/hashicorp/go-version v1.6.0 // indirect
- github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect
+ github.com/hashicorp/golang-lru v1.0.2 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
+ github.com/hashicorp/yamux v0.1.1 // indirect
github.com/hdevalence/ed25519consensus v0.1.0 // indirect
github.com/huandu/skiplist v1.2.0 // indirect
+ github.com/iancoleman/strcase v0.3.0 // indirect
github.com/improbable-eng/grpc-web v0.15.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/jmhodges/levigo v1.0.0 // indirect
- github.com/klauspost/compress v1.16.3 // indirect
+ github.com/klauspost/compress v1.16.7 // indirect
+ github.com/kr/pretty v0.3.1 // indirect
+ github.com/kr/text v0.2.0 // indirect
github.com/lib/pq v1.10.7 // indirect
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
- github.com/linxGnu/grocksdb v1.7.16 // indirect
+ github.com/linxGnu/grocksdb v1.8.0 // indirect
github.com/magiconair/properties v1.8.7 // indirect
github.com/manifoldco/promptui v0.9.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
- github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect
github.com/minio/highwayhash v1.0.2 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/mtibben/percent v0.2.1 // indirect
- github.com/pelletier/go-toml/v2 v2.0.8 // indirect
- github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect
+ github.com/oasisprotocol/curve25519-voi v0.0.0-20230110094441-db37f07504ce // indirect
+ github.com/oklog/run v1.1.0 // indirect
+ github.com/pelletier/go-toml/v2 v2.0.9 // indirect
+ github.com/petermattis/goid v0.0.0-20230518223814-80aa455d8761 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
- github.com/prometheus/client_golang v1.14.0 // indirect
- github.com/prometheus/client_model v0.3.0 // indirect
- github.com/prometheus/common v0.42.0 // indirect
- github.com/prometheus/procfs v0.9.0 // indirect
- github.com/rakyll/statik v0.1.7 // indirect
+ github.com/prometheus/client_golang v1.16.0 // indirect
+ github.com/prometheus/client_model v0.4.0 // indirect
+ github.com/prometheus/common v0.44.0 // indirect
+ github.com/prometheus/procfs v0.11.1 // indirect
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
+ github.com/rogpeppe/go-internal v1.11.0 // indirect
github.com/rs/cors v1.8.3 // indirect
- github.com/rs/zerolog v1.29.1 // indirect
+ github.com/rs/zerolog v1.30.0 // indirect
github.com/sasha-s/go-deadlock v0.3.1 // indirect
github.com/spf13/afero v1.9.5 // indirect
- github.com/spf13/cobra v1.7.0 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
- github.com/spf13/viper v1.16.0 // indirect
github.com/subosito/gotenv v1.4.2 // indirect
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
github.com/tendermint/go-amino v0.16.0 // indirect
@@ -148,26 +171,27 @@ require (
github.com/zondax/ledger-go v0.14.1 // indirect
go.etcd.io/bbolt v1.3.7 // indirect
go.opencensus.io v0.24.0 // indirect
- golang.org/x/crypto v0.11.0 // indirect
- golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc // indirect
- golang.org/x/net v0.12.0 // indirect
+ golang.org/x/crypto v0.12.0 // indirect
+ golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 // indirect
+ golang.org/x/net v0.14.0 // indirect
golang.org/x/oauth2 v0.8.0 // indirect
- golang.org/x/sync v0.2.0 // indirect
- golang.org/x/sys v0.10.0 // indirect
- golang.org/x/term v0.10.0 // indirect
- golang.org/x/text v0.11.0 // indirect
+ golang.org/x/sync v0.3.0 // indirect
+ golang.org/x/sys v0.11.0 // indirect
+ golang.org/x/term v0.11.0 // indirect
+ golang.org/x/text v0.12.0 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
google.golang.org/api v0.126.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
- google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect
+ google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878 // indirect
google.golang.org/grpc v1.57.0 // indirect
google.golang.org/protobuf v1.31.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
+ gotest.tools/v3 v3.5.0 // indirect
nhooyr.io/websocket v1.8.6 // indirect
- pgregory.net/rapid v0.5.5 // indirect
+ pgregory.net/rapid v1.1.0 // indirect
sigs.k8s.io/yaml v1.3.0 // indirect
)
diff --git a/modules/apps/callbacks/go.sum b/modules/apps/callbacks/go.sum
index 999a74be126..7df28333ab0 100644
--- a/modules/apps/callbacks/go.sum
+++ b/modules/apps/callbacks/go.sum
@@ -32,8 +32,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9
cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc=
cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU=
cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA=
-cloud.google.com/go v0.110.4 h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk=
-cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
+cloud.google.com/go v0.110.6 h1:8uYAkj3YHTP/1iwReuHPxLSbdcyc+dSBbzFMrVwDR6Q=
+cloud.google.com/go v0.110.6/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI=
cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw=
cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY=
cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI=
@@ -70,8 +70,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz
cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU=
cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U=
cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU=
-cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg=
-cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
+cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY=
+cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I=
@@ -111,8 +111,8 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97
cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc=
cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY=
cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc=
-cloud.google.com/go/iam v1.1.0 h1:67gSqaPukx7O8WLLHMa0PNs3EBGd2eE4d+psbO/CO94=
-cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk=
+cloud.google.com/go/iam v1.1.1 h1:lW7fzj15aVIXYHREOqjRBV9PsH0Z6u8Y46a1YGvQP4Y=
+cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU=
cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic=
cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI=
cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8=
@@ -187,20 +187,36 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX
cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg=
cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0=
cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M=
-cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE=
-cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw=
-cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI=
-cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE=
-cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw=
-cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU=
+cosmossdk.io/api v0.7.0 h1:QsEMIWuv9xWDbF2HZnW4Lpu1/SejCztPu0LQx7t6MN4=
+cosmossdk.io/api v0.7.0/go.mod h1:kJFAEMLN57y0viszHDPLMmieF0471o5QAwwApa+270M=
+cosmossdk.io/client/v2 v2.0.0-20230818115413-c402c51a1508 h1:tt5OMwdouv7dkwkWJYxb8I9h322bOxnC9RmK2qGvWMs=
+cosmossdk.io/client/v2 v2.0.0-20230818115413-c402c51a1508/go.mod h1:iHeSk2AT6O8RNGlfcEQq6Yty6Z/6gydQsXXBh5I715Q=
+cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s=
+cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0=
+cosmossdk.io/core v0.10.0 h1:NP28Ol9YyRODmZLJg2ko/mUl40hMegeMzhJnG+XPkcY=
+cosmossdk.io/core v0.10.0/go.mod h1:MygXNld9DvMgYY4yE76DM/mdZpgfeyRjy6FPjEEehlY=
+cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc=
+cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU=
cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04=
cosmossdk.io/errors v1.0.0/go.mod h1:+hJZLuhdDE0pYN8HkOrVNwrIOYvUGnn6+4fjnJs/oV0=
-cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca h1:msenprh2BLLRwNT7zN56TbBHOGk/7ARQckXHxXyvjoQ=
-cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca/go.mod h1:PkIAKXZvaxrTRc++z53XMRvFk8AcGGWYHcMIPzVYX9c=
+cosmossdk.io/log v1.2.1 h1:Xc1GgTCicniwmMiKwDxUjO4eLhPxoVdI9vtMW8Ti/uk=
+cosmossdk.io/log v1.2.1/go.mod h1:GNSCc/6+DhFIj1aLn/j7Id7PaO8DzNylUZoOYBL9+I4=
cosmossdk.io/math v1.1.2 h1:ORZetZCTyWkI5GlZ6CZS28fMHi83ZYf+A2vVnHNzZBM=
cosmossdk.io/math v1.1.2/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0=
-cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw=
-cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw=
+cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4=
+cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk=
+cosmossdk.io/tools/confix v0.0.0-20230818115413-c402c51a1508 h1:axKhxRa3M9QW2GdKJUsSyzo44gxcwSOTGeomtkbQClM=
+cosmossdk.io/tools/confix v0.0.0-20230818115413-c402c51a1508/go.mod h1:qcJ1zwLIMefpDHZuYSa73yBe/k5HyQ5H1Jg9PWv30Ts=
+cosmossdk.io/x/circuit v0.0.0-20230818115413-c402c51a1508 h1:9HRBpMbGgk+W4BIp4ezYH2EjbpuVl2fBlwyJ2GZgrS0=
+cosmossdk.io/x/circuit v0.0.0-20230818115413-c402c51a1508/go.mod h1:BhFX0kD6lkctNQO3ZGYY3p6h0/wPLVbFhrOt3uQxEIM=
+cosmossdk.io/x/evidence v0.0.0-20230818115413-c402c51a1508 h1:R9H1lDpcPSkrLOnt6IDE38o0Wp8xE/+BAxocb0oyX4I=
+cosmossdk.io/x/evidence v0.0.0-20230818115413-c402c51a1508/go.mod h1:yjIo3J0QKDo9CJawK1QoTA1hBx0llafVJdPqI0+ry74=
+cosmossdk.io/x/feegrant v0.0.0-20230818115413-c402c51a1508 h1:TKqjhhTfLchU8nSo1WZRgaH7xZWzYUQXVRj9CePcbaw=
+cosmossdk.io/x/feegrant v0.0.0-20230818115413-c402c51a1508/go.mod h1:kOr8Rr10RoMeGGk/pfW5yo1R7GQTGu4KdRgKphVvjz4=
+cosmossdk.io/x/tx v0.9.1 h1:9pmmXA9Vs4qdouOFnzhsdsff2mif0f0kylMq5xTGhRI=
+cosmossdk.io/x/tx v0.9.1/go.mod h1:/YFGTXG6+kyihd8YbfuJiXHV4R/mIMm2uvVzo80CIhA=
+cosmossdk.io/x/upgrade v0.0.0-20230818115413-c402c51a1508 h1:tZ5fSX+ev+QHQ15457Vhxug8BSZJcHeBhU8DpgwlkCc=
+cosmossdk.io/x/upgrade v0.0.0-20230818115413-c402c51a1508/go.mod h1:M0JWINHzdN0eFHrWMs082akHHSO5muExS+/tNNIOyP8=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek=
filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns=
@@ -208,13 +224,13 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMb
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4=
github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo87o=
github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA=
-github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
-github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
+github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
+github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
-github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg=
-github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4=
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
+github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ=
+github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg=
github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE=
@@ -229,8 +245,6 @@ github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/
github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I=
github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV9fHg=
github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
-github.com/alecthomas/participle/v2 v2.0.0-alpha7 h1:cK4vjj0VSgb3lN1nuKA5F7dw+1s1pWBe5bx7nNCnN+c=
-github.com/alecthomas/participle/v2 v2.0.0-alpha7/go.mod h1:NumScqsC42o9x+dGj8/YqsIfhrIQjFEOFovxotbBirA=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
@@ -242,16 +256,15 @@ github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
-github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA=
-github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A=
github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
-github.com/aws/aws-sdk-go v1.44.203 h1:pcsP805b9acL3wUqa4JR2vg1k2wnItkDYNvfmcy6F+U=
-github.com/aws/aws-sdk-go v1.44.203/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
+github.com/aws/aws-sdk-go v1.44.224 h1:09CiaaF35nRmxrzWZ2uRq5v6Ghg/d2RiPjZnSgtt+RQ=
+github.com/aws/aws-sdk-go v1.44.224/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
+github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -261,14 +274,16 @@ github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s=
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
+github.com/bits-and-blooms/bitset v1.8.0 h1:FD+XqgOZDUxxZ8hzoBFuV9+cGWY9CslN6d5MS5JVb4c=
+github.com/bits-and-blooms/bitset v1.8.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U=
github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04=
-github.com/btcsuite/btcd/btcutil v1.1.2 h1:XLMbX8JQEiwMcYft2EGi8zPUkoa0abKIU6/BJSRsjzQ=
-github.com/btcsuite/btcd/btcutil v1.1.2/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0=
+github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ=
+github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0=
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U=
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc=
-github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA=
-github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8=
+github.com/bufbuild/protocompile v0.5.1 h1:mixz5lJX4Hiz4FpqFREJHIXLfaLBntfaJv1h+/jS+Qg=
+github.com/bufbuild/protocompile v0.5.1/go.mod h1:G5iLmavmF4NsYtpZFvE3B/zFch2GIY8+wjsYLR/lc40=
github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
@@ -306,18 +321,24 @@ github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWH
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E=
github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw=
-github.com/cockroachdb/apd/v3 v3.1.0 h1:MK3Ow7LH0W8zkd5GMKA1PvS9qG3bWFI95WaVNfyZJ/w=
-github.com/cockroachdb/apd/v3 v3.1.0/go.mod h1:6qgPBMXjATAdD/VefbRP9NoSLKjbB4LCoA7gN4LpHs4=
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
+github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4=
+github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU=
+github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU=
+github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE=
+github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE=
+github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs=
+github.com/cockroachdb/pebble v0.0.0-20230817233644-564b068800e0 h1:M4A5LioEhkZ/s+m0g0pWgiLBQr83p0jWnQUo320Qy+A=
+github.com/cockroachdb/pebble v0.0.0-20230817233644-564b068800e0/go.mod h1:EDjiaAXc0FXiRmxDzcu1wIEJ093ohHMUWxrI6iku0XA=
+github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30=
+github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=
+github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo=
+github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
-github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA=
-github.com/coinbase/rosetta-sdk-go/types v1.0.0/go.mod h1:eq7W2TMRH22GTW0N0beDnN931DW0/WOI1R2sdHNHG4c=
-github.com/cometbft/cometbft v0.37.2 h1:XB0yyHGT0lwmJlFmM4+rsRnczPlHoAKFX6K8Zgc2/Jc=
-github.com/cometbft/cometbft v0.37.2/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs=
+github.com/cometbft/cometbft v0.38.0-rc3 h1:Ly3eVPWoFu0y68PmZwLljucPdEBtfigZtqm+OV1W6dE=
+github.com/cometbft/cometbft v0.38.0-rc3/go.mod h1:5Jz0Z8YsHSf0ZaAqGvi/ifioSdVFPtEGrm8Y9T/993k=
github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AKVZpjo=
github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0=
-github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4=
-github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak=
github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg=
github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM=
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
@@ -328,47 +349,45 @@ github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk=
github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis=
-github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8=
-github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0=
-github.com/cosmos/cosmos-sdk v0.47.4 h1:FVUpEprm58nMmBX4xkRdMDaIG5Nr4yy92HZAfGAw9bg=
-github.com/cosmos/cosmos-sdk v0.47.4/go.mod h1:R5n+uM7vguVPFap4pgkdvQCT1nVo/OtPwrlAU40rvok=
-github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y=
+github.com/cosmos/cosmos-db v1.0.0 h1:EVcQZ+qYag7W6uorBKFPvX6gRjw6Uq2hIh4hCWjuQ0E=
+github.com/cosmos/cosmos-db v1.0.0/go.mod h1:iBvi1TtqaedwLdcrZVYRSSCb6eSy61NLj4UNmdIgs0U=
+github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o=
+github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I=
+github.com/cosmos/cosmos-sdk v0.50.0-rc.0.0.20230819070346-e8164be94954 h1:DSVQWPZyt0f7T0Arw7doznp9BK+HDzv3h6HwjMJxNCU=
+github.com/cosmos/cosmos-sdk v0.50.0-rc.0.0.20230819070346-e8164be94954/go.mod h1:6HsAg8cQ/D3JnFN7jao6DOuTLWnUC4qh/vracVlSLAM=
github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY=
github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw=
github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE=
github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI=
github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU=
-github.com/cosmos/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI=
-github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek=
-github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38=
-github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A=
-github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1 h1:BvSKnPFKxL+TTSLxGKwJN4x0ndCZj0yfXhSvmsQztSA=
-github.com/cosmos/ibc-go/modules/capability v1.0.0-rc1/go.mod h1:A+CxAQdn2j6ihDTbClpEEBdHthWgAUAcHbRAQPY8sl4=
+github.com/cosmos/gogoproto v1.4.11 h1:LZcMHrx4FjUgrqQSWeaGC1v/TeuVFqSLa43CC6aWR2g=
+github.com/cosmos/gogoproto v1.4.11/go.mod h1:/g39Mh8m17X8Q/GDEs5zYTSNaNnInBSohtaxzQnYq1Y=
+github.com/cosmos/iavl v1.0.0-rc.1 h1:5+73BEWW1gZOIUJKlk/1fpD4lOqqeFBA8KuV+NpkCpU=
+github.com/cosmos/iavl v1.0.0-rc.1/go.mod h1:CmTGqMnRnucjxbjduneZXT+0vPgNElYvdefjX2q9tYc=
+github.com/cosmos/ibc-go/modules/capability v1.0.0-rc4 h1:SYxmGRCkpXUXxyb3eAQNomeSe26moo9XPfY5dC2HGTw=
+github.com/cosmos/ibc-go/modules/capability v1.0.0-rc4/go.mod h1:YriReKrNl7ZKBW6FSmgV7v4BhrN84tm672YjU0Y2C2I=
github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM=
github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0=
-github.com/cosmos/ledger-cosmos-go v0.12.1 h1:sMBxza5p/rNK/06nBSNmsI/WDqI0pVJFVNihy1Y984w=
-github.com/cosmos/ledger-cosmos-go v0.12.1/go.mod h1:dhO6kj+Y+AHIOgAe4L9HL/6NDdyyth4q238I9yFpD2g=
-github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM=
-github.com/cosmos/rosetta-sdk-go v0.10.0/go.mod h1:SImAZkb96YbwvoRkzSMQB6noNJXFgWl/ENIznEoYQI4=
+github.com/cosmos/ledger-cosmos-go v0.13.0 h1:ex0CvCxToSR7j5WjrghPu2Bu9sSXKikjnVvUryNnx4s=
+github.com/cosmos/ledger-cosmos-go v0.13.0/go.mod h1:ZcqYgnfNJ6lAXe4HPtWgarNEY+B74i+2/8MhZw4ziiI=
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
-github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJFxv2Li8=
-github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM=
+github.com/creachadair/atomicfile v0.3.1 h1:yQORkHjSYySh/tv5th1dkKcn02NEW5JleB84sjt+W4Q=
+github.com/creachadair/atomicfile v0.3.1/go.mod h1:mwfrkRxFKwpNAflYZzytbSwxvbK6fdGRRlp0KEQc0qU=
+github.com/creachadair/tomledit v0.0.24 h1:5Xjr25R2esu1rKCbQEmjZYlrhFkDspoAbAKb6QKQDhQ=
+github.com/creachadair/tomledit v0.0.24/go.mod h1:9qHbShRWQzSCcn617cMzg4eab1vbLCOjOshAWSzWr8U=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
-github.com/cucumber/common/gherkin/go/v22 v22.0.0 h1:4K8NqptbvdOrjL9DEea6HFjSpbdT9+Q5kgLpmmsHYl0=
-github.com/cucumber/common/gherkin/go/v22 v22.0.0/go.mod h1:3mJT10B2GGn3MvVPd3FwR7m2u4tLhSRhWUqJU4KN4Fg=
-github.com/cucumber/common/messages/go/v17 v17.1.1 h1:RNqopvIFyLWnKv0LfATh34SWBhXeoFTJnSrgm9cT/Ts=
-github.com/cucumber/common/messages/go/v17 v17.1.1/go.mod h1:bpGxb57tDE385Rb2EohgUadLkAbhoC4IyCFi89u/JQI=
+github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0=
github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0=
-github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc=
-github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4=
-github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc=
+github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y=
+github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo=
+github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs=
+github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I=
github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE=
github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o=
@@ -394,6 +413,8 @@ github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5m
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
+github.com/emicklei/dot v1.5.0 h1:tc9eKdCBTgoR68vJ6OcgMtI0SdrGDwLPPVaPA6XhX50=
+github.com/emicklei/dot v1.5.0/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s=
github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
@@ -406,6 +427,9 @@ github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.
github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
+github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
+github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
+github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW4o=
github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
@@ -419,12 +443,16 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
+github.com/getsentry/sentry-go v0.23.0 h1:dn+QRCeJv4pPt9OjVXiMcGIBIefaTJPw/h0bZWO05nE=
+github.com/getsentry/sentry-go v0.23.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M=
github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8=
github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk=
+github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
+github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
@@ -433,6 +461,7 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2
github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o=
github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4=
github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs=
+github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU=
github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
@@ -441,8 +470,9 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG
github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4=
github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
-github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q=
github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
+github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU=
+github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho=
github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
@@ -455,15 +485,14 @@ github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah
github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo=
github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8=
github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw=
-github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo=
github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM=
+github.com/gobwas/ws v1.1.0 h1:7RFti/xnNkMJnrK7D1yQ/iCIB5OrrY/54/H930kIbHA=
+github.com/gobwas/ws v1.1.0/go.mod h1:nzvNcVha5eUziGrbxFCo6qFIojQHjJV5cLYIbezhfL0=
github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk=
github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0=
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
-github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc=
-github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c=
github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0=
@@ -604,19 +633,14 @@ github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWm
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI=
-github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
-github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
+github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
+github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU=
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0=
-github.com/gtank/merlin v0.1.1-0.20191105220539-8318aed1a79f/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s=
-github.com/gtank/merlin v0.1.1 h1:eQ90iG7K9pOhtereWsmyRJ6RAwcP4tHTDBHXNg+u5is=
-github.com/gtank/merlin v0.1.1/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s=
-github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uMzcc=
-github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIvY4OmlYW69o=
github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -626,11 +650,17 @@ github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9n
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
github.com/hashicorp/go-getter v1.7.1 h1:SWiSWN/42qdpR0MdhaOc/bLR48PLuP1ZQtYLRlM69uY=
github.com/hashicorp/go-getter v1.7.1/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744=
+github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c=
+github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc=
github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
+github.com/hashicorp/go-metrics v0.5.1 h1:rfPwUqFU6uZXNvGl4hzjY8LEBsqFVU4si1H9/Hqck/U=
+github.com/hashicorp/go-metrics v0.5.1/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE=
github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
+github.com/hashicorp/go-plugin v1.4.10 h1:xUbmA4jC6Dq163/fWcp8P3JuHilrHHMLNRxzGQJ9hNk=
+github.com/hashicorp/go-plugin v1.4.10/go.mod h1:6/1TEzT0eQznvI/gV2CM29DLSkAK/e58mUWKVsPaph0=
github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo=
@@ -638,22 +668,25 @@ github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoD
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE=
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE=
+github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek=
github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs=
-github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
+github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=
+github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
+github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE=
+github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ=
github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU=
github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
@@ -662,6 +695,8 @@ github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0Jr
github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw=
github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w=
github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
+github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI=
+github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ=
@@ -670,8 +705,8 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
-github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c=
-github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo=
+github.com/jhump/protoreflect v1.15.2 h1:7YppbATX94jEt9KLAc5hICx4h6Yt3SaavhQRsIUEHP0=
+github.com/jhump/protoreflect v1.15.2/go.mod h1:4ORHmSBmlCW8fh3xHmJMGyul1zNqZK4Elxc8qKP+p1k=
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
@@ -701,8 +736,8 @@ github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs
github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
-github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY=
-github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
+github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
+github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
@@ -723,8 +758,8 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6
github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg=
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
-github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8=
-github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4=
+github.com/linxGnu/grocksdb v1.8.0 h1:H4L/LhP7GOMf1j17oQAElHgVlbEje2h14A8Tz9cM2BE=
+github.com/linxGnu/grocksdb v1.8.0/go.mod h1:09CeBborffXhXdNpEcOeZrLKEnRtrZFEpFdPNI9Zjjg=
github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
@@ -732,6 +767,7 @@ github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3v
github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA=
github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
+github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
@@ -748,9 +784,6 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM=
-github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94=
-github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM=
github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g=
github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
@@ -790,20 +823,23 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLA
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
+github.com/oasisprotocol/curve25519-voi v0.0.0-20230110094441-db37f07504ce h1:/pEpMk55wH0X+E5zedGEMOdLuWmV8P4+4W3+LZaM6kg=
+github.com/oasisprotocol/curve25519-voi v0.0.0-20230110094441-db37f07504ce/go.mod h1:hVoHR2EVESiICEMbg137etN/Lx+lSrHPTD39Z/uE+2s=
github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=
github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
+github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
+github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU=
github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
+github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA=
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
-github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=
-github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q=
-github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo=
+github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q=
+github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM=
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
@@ -827,14 +863,17 @@ github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0Mw
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
-github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
-github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
+github.com/pelletier/go-toml/v2 v2.0.9 h1:uH2qQXheeefCCkuBBSLi7jCiSmj3VRh2+Goq2N7Xxu0=
+github.com/pelletier/go-toml/v2 v2.0.9/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o=
-github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6R18ax0tZ2BJeNB3NehB3trOwYBsdU=
-github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4=
+github.com/petermattis/goid v0.0.0-20230518223814-80aa455d8761 h1:W04oB3d0J01W5jgYRGKsV8LCM6g9EkCvPkZcmFuy0OE=
+github.com/petermattis/goid v0.0.0-20230518223814-80aa455d8761/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4=
github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
+github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4=
+github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8=
+github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -850,50 +889,47 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn
github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og=
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
-github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y=
+github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
+github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4=
-github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
+github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
+github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
-github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM=
-github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc=
+github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
+github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI=
-github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY=
-github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ=
-github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc=
+github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI=
+github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
-github.com/regen-network/gocuke v0.6.2 h1:pHviZ0kKAq2U2hN2q3smKNxct6hS0mGByFMHGnWA97M=
-github.com/regen-network/gocuke v0.6.2/go.mod h1:zYaqIHZobHyd0xOrHGPQjbhGJsuZ1oElx150u2o1xuk=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
+github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
+github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo=
github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
-github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
-github.com/rs/zerolog v1.29.1 h1:cO+d60CHkknCbvzEWxP0S9K6KqyTjrCNUy1LdQLCGPc=
-github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU=
+github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
+github.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c=
+github.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w=
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
@@ -951,9 +987,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=
@@ -1008,11 +1044,15 @@ go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqe
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
+go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
+go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
+go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -1021,15 +1061,14 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
-golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
+golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
+golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -1041,8 +1080,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw=
-golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc h1:mCRnTeVUjcrhlRmO0VK8a6k6Rrf6TF9htwo2pJVSjIU=
-golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w=
+golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ=
+golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -1069,8 +1108,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
-golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
-golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
+golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1132,8 +1171,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
-golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
-golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
+golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14=
+golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1175,8 +1214,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
-golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
+golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1252,6 +1291,7 @@ golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -1275,13 +1315,13 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA=
-golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
+golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c=
-golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
+golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0=
+golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1293,8 +1333,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4=
-golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc=
+golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -1320,6 +1360,7 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -1361,8 +1402,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
-golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
-golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
+golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846 h1:Vve/L0v7CXXuxUmaMGIEK/dEeq7uiqb5qBgQrZzIE7E=
+golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -1540,12 +1581,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw
google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
-google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 h1:Au6te5hbKUV8pIYWHqOUZ1pva5qK/rwbIhoXEUB9Lu8=
-google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y=
-google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 h1:s5YSX+ZH5b5vS9rnpGymvIyMpLRJizowqDlOuyjXnTk=
-google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM=
+google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 h1:L6iMMGrtzgHsWofoFcihmDEMYeDR9KN/ThbPWGrh++g=
+google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5/go.mod h1:oH/ZOT02u4kWEp7oYBGYFFkCdKS/uYR9Z7+0/xuuFp8=
+google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e h1:z3vDksarJxsAKM5dmEGv0GHwE2hKJ096wZra71Vs4sw=
+google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878 h1:lv6/DhyiFFGsmzxbsUUTOkN29II+zeWHxvT8Lpdxsv0=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
@@ -1639,7 +1680,6 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY=
gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
@@ -1652,8 +1692,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k=
nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
-pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA=
-pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
+pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw=
+pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
diff --git a/modules/apps/callbacks/ibc_middleware.go b/modules/apps/callbacks/ibc_middleware.go
index be61c50d751..24d17a99370 100644
--- a/modules/apps/callbacks/ibc_middleware.go
+++ b/modules/apps/callbacks/ibc_middleware.go
@@ -3,6 +3,8 @@ package ibccallbacks
import (
"fmt"
+ storetypes "cosmossdk.io/store/types"
+
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/ibc-go/modules/apps/callbacks/types"
@@ -268,7 +270,7 @@ func (IBCMiddleware) processCallback(
callbackData types.CallbackData, callbackExecutor func(sdk.Context) error,
) (err error) {
cachedCtx, writeFn := ctx.CacheContext()
- cachedCtx = cachedCtx.WithGasMeter(sdk.NewGasMeter(callbackData.ExecutionGasLimit))
+ cachedCtx = cachedCtx.WithGasMeter(storetypes.NewGasMeter(callbackData.ExecutionGasLimit))
defer func() {
// consume the minimum of g.consumed and g.limit
@@ -283,7 +285,7 @@ func (IBCMiddleware) processCallback(
// if the callback ran out of gas and the relayer has not reserved enough gas, then revert the state
if cachedCtx.GasMeter().IsPastLimit() && callbackData.AllowRetry() {
- panic(sdk.ErrorOutOfGas{Descriptor: fmt.Sprintf("ibc %s callback out of gas; commitGasLimit: %d", callbackType, callbackData.CommitGasLimit)})
+ panic(storetypes.ErrorOutOfGas{Descriptor: fmt.Sprintf("ibc %s callback out of gas; commitGasLimit: %d", callbackType, callbackData.CommitGasLimit)})
}
// allow the transaction to be committed, continuing the packet lifecycle
diff --git a/modules/apps/callbacks/ibc_middleware_test.go b/modules/apps/callbacks/ibc_middleware_test.go
index cb8174b9f15..8577aa4f6d2 100644
--- a/modules/apps/callbacks/ibc_middleware_test.go
+++ b/modules/apps/callbacks/ibc_middleware_test.go
@@ -4,6 +4,7 @@ import (
"fmt"
errorsmod "cosmossdk.io/errors"
+ storetypes "cosmossdk.io/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
@@ -127,9 +128,9 @@ func (s *CallbacksTestSuite) TestSendPacket() {
channeltypes.ErrChannelNotFound,
},
{
- "failure: callback execution fails, sender is not callback address",
+ "failure: callback execution fails",
func() {
- packetData.Sender = simapp.MockCallbackUnauthorizedAddress
+ packetData.Memo = fmt.Sprintf(`{"src_callback": {"address":"%s"}}`, simapp.ErrorContract)
},
types.CallbackTypeSendPacket,
false,
@@ -138,11 +139,11 @@ func (s *CallbacksTestSuite) TestSendPacket() {
{
"failure: callback execution reach out of gas, but sufficient gas provided by relayer",
func() {
- packetData.Memo = fmt.Sprintf(`{"src_callback": {"address":"%s", "gas_limit":"400000"}}`, callbackAddr)
+ packetData.Memo = fmt.Sprintf(`{"src_callback": {"address":"%s", "gas_limit":"400000"}}`, simapp.OogPanicContract)
},
types.CallbackTypeSendPacket,
true,
- sdk.ErrorOutOfGas{Descriptor: fmt.Sprintf("mock %s callback panic", types.CallbackTypeSendPacket)},
+ storetypes.ErrorOutOfGas{Descriptor: fmt.Sprintf("mock %s callback oog panic", types.CallbackTypeSendPacket)},
},
}
@@ -156,20 +157,23 @@ func (s *CallbacksTestSuite) TestSendPacket() {
s.Require().True(ok)
packetData = transfertypes.NewFungibleTokenPacketData(
- ibctesting.TestCoin.GetDenom(), ibctesting.TestCoin.Amount.String(), callbackAddr,
- ibctesting.TestAccAddress, fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, callbackAddr),
+ ibctesting.TestCoin.GetDenom(), ibctesting.TestCoin.Amount.String(), ibctesting.TestAccAddress,
+ ibctesting.TestAccAddress, fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.SuccessContract),
)
chanCap := s.path.EndpointA.Chain.GetChannelCapability(s.path.EndpointA.ChannelConfig.PortID, s.path.EndpointA.ChannelID)
tc.malleate()
+ ctx := s.chainA.GetContext()
+ gasLimit := ctx.GasMeter().Limit()
+
var (
seq uint64
err error
)
sendPacket := func() {
- seq, err = transferStack.(porttypes.Middleware).SendPacket(s.chainA.GetContext(), chanCap, s.path.EndpointA.ChannelConfig.PortID, s.path.EndpointA.ChannelID, s.chainB.GetTimeoutHeight(), 0, packetData.GetBytes())
+ seq, err = transferStack.(porttypes.ICS4Wrapper).SendPacket(ctx, chanCap, s.path.EndpointA.ChannelConfig.PortID, s.path.EndpointA.ChannelID, s.chainB.GetTimeoutHeight(), 0, packetData.GetBytes())
}
expPass := tc.expValue == nil
@@ -178,8 +182,18 @@ func (s *CallbacksTestSuite) TestSendPacket() {
sendPacket()
s.Require().Nil(err)
s.Require().Equal(uint64(1), seq)
+
+ expEvent, exists := GetExpectedEvent(
+ transferStack.(porttypes.PacketDataUnmarshaler), gasLimit, packetData.GetBytes(), s.path.EndpointA.ChannelConfig.PortID,
+ s.path.EndpointA.ChannelConfig.PortID, s.path.EndpointA.ChannelID, seq, types.CallbackTypeSendPacket, nil,
+ )
+ if exists {
+ s.Require().Contains(ctx.EventManager().Events().ToABCIEvents(), expEvent)
+ }
+
case tc.expPanic:
s.Require().PanicsWithValue(tc.expValue, sendPacket)
+
default:
sendPacket()
s.Require().ErrorIs(tc.expValue.(error), err)
@@ -200,10 +214,11 @@ func (s *CallbacksTestSuite) TestOnAcknowledgementPacket() {
)
var (
- packetData transfertypes.FungibleTokenPacketData
- packet channeltypes.Packet
- ack []byte
- ctx sdk.Context
+ packetData transfertypes.FungibleTokenPacketData
+ packet channeltypes.Packet
+ ack []byte
+ ctx sdk.Context
+ userGasLimit uint64
)
panicError := fmt.Errorf("panic error")
@@ -241,7 +256,7 @@ func (s *CallbacksTestSuite) TestOnAcknowledgementPacket() {
{
"failure: callback execution reach out of gas, but sufficient gas provided by relayer",
func() {
- packetData.Memo = fmt.Sprintf(`{"src_callback": {"address":"%s", "gas_limit":"400000"}}`, callbackAddr)
+ packetData.Memo = fmt.Sprintf(`{"src_callback": {"address":"%s", "gas_limit":"%d"}}`, simapp.OogPanicContract, userGasLimit)
packet.Data = packetData.GetBytes()
},
callbackFailed,
@@ -250,15 +265,18 @@ func (s *CallbacksTestSuite) TestOnAcknowledgementPacket() {
{
"failure: callback execution panics on insufficient gas provided by relayer",
func() {
- ctx = ctx.WithGasMeter(sdk.NewGasMeter(300_000))
+ packetData.Memo = fmt.Sprintf(`{"src_callback": {"address":"%s", "gas_limit":"%d"}}`, simapp.OogPanicContract, userGasLimit)
+ packet.Data = packetData.GetBytes()
+
+ ctx = ctx.WithGasMeter(storetypes.NewGasMeter(300_000))
},
callbackFailed,
panicError,
},
{
- "failure: callback execution fails, unauthorized address",
+ "failure: callback execution fails",
func() {
- packetData.Sender = simapp.MockCallbackUnauthorizedAddress
+ packetData.Memo = fmt.Sprintf(`{"src_callback": {"address":"%s"}}`, simapp.ErrorContract)
packet.Data = packetData.GetBytes()
},
callbackFailed,
@@ -271,11 +289,10 @@ func (s *CallbacksTestSuite) TestOnAcknowledgementPacket() {
s.Run(tc.name, func() {
s.SetupTransferTest()
- // set user gas limit above panic level in mock contract keeper
- userGasLimit := 600000
+ userGasLimit = 600000
packetData = transfertypes.NewFungibleTokenPacketData(
- ibctesting.TestCoin.GetDenom(), ibctesting.TestCoin.Amount.String(), callbackAddr, ibctesting.TestAccAddress,
- fmt.Sprintf(`{"src_callback": {"address":"%s", "gas_limit":"%d"}}`, callbackAddr, userGasLimit),
+ ibctesting.TestCoin.GetDenom(), ibctesting.TestCoin.Amount.String(), ibctesting.TestAccAddress, ibctesting.TestAccAddress,
+ fmt.Sprintf(`{"src_callback": {"address":"%s", "gas_limit":"%d"}}`, simapp.SuccessContract, userGasLimit),
)
packet = channeltypes.Packet{
@@ -290,7 +307,9 @@ func (s *CallbacksTestSuite) TestOnAcknowledgementPacket() {
}
ack = channeltypes.NewResultAcknowledgement([]byte{1}).Acknowledgement()
+
ctx = s.chainA.GetContext()
+ gasLimit := ctx.GasMeter().Limit()
tc.malleate()
@@ -308,7 +327,7 @@ func (s *CallbacksTestSuite) TestOnAcknowledgementPacket() {
s.Require().Nil(err)
case panicError:
- s.Require().PanicsWithValue(sdk.ErrorOutOfGas{
+ s.Require().PanicsWithValue(storetypes.ErrorOutOfGas{
Descriptor: fmt.Sprintf("ibc %s callback out of gas; commitGasLimit: %d", types.CallbackTypeAcknowledgementPacket, userGasLimit),
}, func() {
_ = onAcknowledgementPacket()
@@ -337,6 +356,12 @@ func (s *CallbacksTestSuite) TestOnAcknowledgementPacket() {
s.Require().Equal(1, sourceCounters[types.CallbackTypeAcknowledgementPacket])
s.Require().Equal(uint8(1), sourceStatefulCounter)
+ expEvent, exists := GetExpectedEvent(
+ transferStack.(porttypes.PacketDataUnmarshaler), gasLimit, packet.Data, packet.SourcePort,
+ packet.SourcePort, packet.SourceChannel, packet.Sequence, types.CallbackTypeAcknowledgementPacket, nil,
+ )
+ s.Require().True(exists)
+ s.Require().Contains(ctx.EventManager().Events().ToABCIEvents(), expEvent)
}
})
}
@@ -356,13 +381,11 @@ func (s *CallbacksTestSuite) TestOnTimeoutPacket() {
ctx sdk.Context
)
- panicError := fmt.Errorf("panic error")
-
testCases := []struct {
name string
malleate func()
expResult expResult
- expError error
+ expValue interface{}
}{
{
"success",
@@ -391,7 +414,7 @@ func (s *CallbacksTestSuite) TestOnTimeoutPacket() {
{
"failure: callback execution reach out of gas, but sufficient gas provided by relayer",
func() {
- packetData.Memo = fmt.Sprintf(`{"src_callback": {"address":"%s", "gas_limit":"400000"}}`, callbackAddr)
+ packetData.Memo = fmt.Sprintf(`{"src_callback": {"address":"%s", "gas_limit":"400000"}}`, simapp.OogPanicContract)
packet.Data = packetData.GetBytes()
},
callbackFailed,
@@ -400,15 +423,20 @@ func (s *CallbacksTestSuite) TestOnTimeoutPacket() {
{
"failure: callback execution panics on insufficient gas provided by relayer",
func() {
- ctx = ctx.WithGasMeter(sdk.NewGasMeter(300_000))
+ packetData.Memo = fmt.Sprintf(`{"src_callback": {"address":"%s"}}`, simapp.OogPanicContract)
+ packet.Data = packetData.GetBytes()
+
+ ctx = ctx.WithGasMeter(storetypes.NewGasMeter(300_000))
},
callbackFailed,
- panicError,
+ storetypes.ErrorOutOfGas{
+ Descriptor: fmt.Sprintf("ibc %s callback out of gas; commitGasLimit: %d", types.CallbackTypeTimeoutPacket, maxCallbackGas),
+ },
},
{
- "failure: callback execution fails, unauthorized address",
+ "failure: callback execution fails",
func() {
- packetData.Sender = simapp.MockCallbackUnauthorizedAddress
+ packetData.Memo = fmt.Sprintf(`{"src_callback": {"address":"%s"}}`, simapp.ErrorContract)
packet.Data = packetData.GetBytes()
},
callbackFailed,
@@ -436,7 +464,7 @@ func (s *CallbacksTestSuite) TestOnTimeoutPacket() {
s.Require().NoError(err)
s.Require().NotNil(res)
- packet, err = ibctesting.ParsePacketFromEvents(res.GetEvents().ToABCIEvents())
+ packet, err = ibctesting.ParsePacketFromEvents(res.GetEvents())
s.Require().NoError(err)
s.Require().NotNil(packet)
@@ -444,6 +472,7 @@ func (s *CallbacksTestSuite) TestOnTimeoutPacket() {
s.Require().NoError(err)
ctx = s.chainA.GetContext()
+ gasLimit := ctx.GasMeter().Limit()
tc.malleate()
@@ -455,21 +484,17 @@ func (s *CallbacksTestSuite) TestOnTimeoutPacket() {
return transferStack.OnTimeoutPacket(ctx, packet, s.chainA.SenderAccount.GetAddress())
}
- switch tc.expError {
+ switch expValue := tc.expValue.(type) {
case nil:
err := onTimeoutPacket()
s.Require().Nil(err)
-
- case panicError:
- s.Require().PanicsWithValue(sdk.ErrorOutOfGas{
- Descriptor: fmt.Sprintf("ibc %s callback out of gas; commitGasLimit: %d", types.CallbackTypeTimeoutPacket, userGasLimit),
- }, func() {
+ case error:
+ err := onTimeoutPacket()
+ s.Require().ErrorIs(expValue, err)
+ default:
+ s.Require().PanicsWithValue(tc.expValue, func() {
_ = onTimeoutPacket()
})
-
- default:
- err := onTimeoutPacket()
- s.Require().ErrorIs(tc.expError, err)
}
sourceStatefulCounter := GetSimApp(s.chainA).MockContractKeeper.GetStateEntryCounter(s.chainA.GetContext())
@@ -492,6 +517,13 @@ func (s *CallbacksTestSuite) TestOnTimeoutPacket() {
s.Require().Equal(1, sourceCounters[types.CallbackTypeTimeoutPacket])
s.Require().Equal(1, sourceCounters[types.CallbackTypeSendPacket])
s.Require().Equal(uint8(2), sourceStatefulCounter)
+
+ expEvent, exists := GetExpectedEvent(
+ transferStack.(porttypes.PacketDataUnmarshaler), gasLimit, packet.Data, packet.SourcePort,
+ packet.SourcePort, packet.SourceChannel, packet.Sequence, types.CallbackTypeTimeoutPacket, nil,
+ )
+ s.Require().True(exists)
+ s.Require().Contains(ctx.EventManager().Events().ToABCIEvents(), expEvent)
}
})
}
@@ -506,9 +538,10 @@ func (s *CallbacksTestSuite) TestOnRecvPacket() {
)
var (
- packetData transfertypes.FungibleTokenPacketData
- packet channeltypes.Packet
- ctx sdk.Context
+ packetData transfertypes.FungibleTokenPacketData
+ packet channeltypes.Packet
+ ctx sdk.Context
+ userGasLimit uint64
)
successAck := channeltypes.NewResultAcknowledgement([]byte{byte(1)})
@@ -547,7 +580,7 @@ func (s *CallbacksTestSuite) TestOnRecvPacket() {
{
"failure: callback execution reach out of gas, but sufficient gas provided by relayer",
func() {
- packetData.Memo = fmt.Sprintf(`{"dest_callback": {"address":"%s", "gas_limit":"400000"}}`, callbackAddr)
+ packetData.Memo = fmt.Sprintf(`{"dest_callback": {"address":"%s", "gas_limit":"%d"}}`, simapp.OogPanicContract, userGasLimit)
packet.Data = packetData.GetBytes()
},
callbackFailed,
@@ -556,20 +589,23 @@ func (s *CallbacksTestSuite) TestOnRecvPacket() {
{
"failure: callback execution panics on insufficient gas provided by relayer",
func() {
- ctx = ctx.WithGasMeter(sdk.NewGasMeter(300_000))
+ packetData.Memo = fmt.Sprintf(`{"dest_callback": {"address":"%s", "gas_limit":"%d"}}`, simapp.OogPanicContract, userGasLimit)
+ packet.Data = packetData.GetBytes()
+
+ ctx = ctx.WithGasMeter(storetypes.NewGasMeter(300_000))
},
callbackFailed,
panicAck,
},
- /*
- TODO: https://github.com/cosmos/ibc-go/issues/4309
- {
- "failure: callback execution fails",
- func() {},
- callbackFailed,
- successAck,
+ {
+ "failure: callback execution fails",
+ func() {
+ packetData.Memo = fmt.Sprintf(`{"dest_callback": {"address":"%s"}}`, simapp.ErrorContract)
+ packet.Data = packetData.GetBytes()
},
- */
+ callbackFailed,
+ successAck,
+ },
}
for _, tc := range testCases {
@@ -578,7 +614,7 @@ func (s *CallbacksTestSuite) TestOnRecvPacket() {
s.SetupTransferTest()
// set user gas limit above panic level in mock contract keeper
- userGasLimit := 600_000
+ userGasLimit = 600_000
packetData = transfertypes.NewFungibleTokenPacketData(
ibctesting.TestCoin.GetDenom(), ibctesting.TestCoin.Amount.String(), ibctesting.TestAccAddress, s.chainB.SenderAccount.GetAddress().String(),
fmt.Sprintf(`{"dest_callback": {"address":"%s", "gas_limit":"%d"}}`, ibctesting.TestAccAddress, userGasLimit),
@@ -596,6 +632,7 @@ func (s *CallbacksTestSuite) TestOnRecvPacket() {
}
ctx = s.chainB.GetContext()
+ gasLimit := ctx.GasMeter().Limit()
tc.malleate()
@@ -613,7 +650,7 @@ func (s *CallbacksTestSuite) TestOnRecvPacket() {
s.Require().NotNil(ack)
case panicAck:
- s.Require().PanicsWithValue(sdk.ErrorOutOfGas{
+ s.Require().PanicsWithValue(storetypes.ErrorOutOfGas{
Descriptor: fmt.Sprintf("ibc %s callback out of gas; commitGasLimit: %d", types.CallbackTypeReceivePacket, userGasLimit),
}, func() {
_ = onRecvPacket()
@@ -641,6 +678,13 @@ func (s *CallbacksTestSuite) TestOnRecvPacket() {
s.Require().Len(destCounters, 1)
s.Require().Equal(1, destCounters[types.CallbackTypeReceivePacket])
s.Require().Equal(uint8(1), destStatefulCounter)
+
+ expEvent, exists := GetExpectedEvent(
+ transferStack.(porttypes.PacketDataUnmarshaler), gasLimit, packet.Data, packet.SourcePort,
+ packet.DestinationPort, packet.DestinationChannel, packet.Sequence, types.CallbackTypeReceivePacket, nil,
+ )
+ s.Require().True(exists)
+ s.Require().Contains(ctx.EventManager().Events().ToABCIEvents(), expEvent)
}
})
}
@@ -712,6 +756,7 @@ func (s *CallbacksTestSuite) TestWriteAcknowledgement() {
}
ctx = s.chainB.GetContext()
+ gasLimit := ctx.GasMeter().Limit()
chanCap := s.chainB.GetChannelCapability(s.path.EndpointB.ChannelConfig.PortID, s.path.EndpointB.ChannelID)
@@ -721,13 +766,22 @@ func (s *CallbacksTestSuite) TestWriteAcknowledgement() {
transferStack, ok := s.chainB.App.GetIBCKeeper().Router.GetRoute(transfertypes.ModuleName)
s.Require().True(ok)
- err := transferStack.(porttypes.Middleware).WriteAcknowledgement(ctx, chanCap, packet, ack)
+ err := transferStack.(porttypes.ICS4Wrapper).WriteAcknowledgement(ctx, chanCap, packet, ack)
expPass := tc.expError == nil
s.AssertHasExecutedExpectedCallback(tc.callbackType, expPass)
if expPass {
s.Require().NoError(err)
+
+ expEvent, exists := GetExpectedEvent(
+ transferStack.(porttypes.PacketDataUnmarshaler), gasLimit, packet.Data, packet.SourcePort,
+ packet.DestinationPort, packet.DestinationChannel, packet.Sequence, types.CallbackTypeReceivePacket, nil,
+ )
+ if exists {
+ s.Require().Contains(ctx.EventManager().Events().ToABCIEvents(), expEvent)
+ }
+
} else {
s.Require().ErrorIs(tc.expError, err)
}
@@ -817,7 +871,7 @@ func (s *CallbacksTestSuite) TestProcessCallback() {
}
},
true,
- sdk.ErrorOutOfGas{Descriptor: fmt.Sprintf("ibc %s callback out of gas; commitGasLimit: %d", types.CallbackTypeReceivePacket, 1000000+1)},
+ storetypes.ErrorOutOfGas{Descriptor: fmt.Sprintf("ibc %s callback out of gas; commitGasLimit: %d", types.CallbackTypeReceivePacket, 1000000+1)},
},
}
@@ -912,7 +966,7 @@ func (s *CallbacksTestSuite) TestGetAppVersion() {
icaControllerStack, ok := s.chainA.App.GetIBCKeeper().Router.GetRoute(icacontrollertypes.SubModuleName)
s.Require().True(ok)
- controllerStack := icaControllerStack.(porttypes.Middleware)
+ controllerStack := icaControllerStack.(porttypes.ICS4Wrapper)
appVersion, found := controllerStack.GetAppVersion(s.chainA.GetContext(), s.path.EndpointA.ChannelConfig.PortID, s.path.EndpointA.ChannelID)
s.Require().True(found)
s.Require().Equal(s.path.EndpointA.ChannelConfig.Version, appVersion)
diff --git a/modules/apps/callbacks/ica_test.go b/modules/apps/callbacks/ica_test.go
index 600f278fccf..0a6ea55788e 100644
--- a/modules/apps/callbacks/ica_test.go
+++ b/modules/apps/callbacks/ica_test.go
@@ -11,6 +11,7 @@ import (
sdk "github.com/cosmos/cosmos-sdk/types"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
+ "github.com/cosmos/ibc-go/modules/apps/callbacks/testing/simapp"
"github.com/cosmos/ibc-go/modules/apps/callbacks/types"
icacontrollertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types"
@@ -34,25 +35,25 @@ func (s *CallbacksTestSuite) TestICACallbacks() {
},
{
"success: dest callback",
- fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.SuccessContract),
"none",
true,
},
{
"success: source callback",
- fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.SuccessContract),
types.CallbackTypeAcknowledgementPacket,
true,
},
{
"success: source callback with other json fields",
- fmt.Sprintf(`{"src_callback": {"address": "%s"}, "something_else": {}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}, "something_else": {}}`, simapp.SuccessContract),
types.CallbackTypeAcknowledgementPacket,
true,
},
{
"success: source callback with malformed json",
- fmt.Sprintf(`{"src_callback": {"address": "%s"}, malformed}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}, malformed}`, simapp.SuccessContract),
"none",
true,
},
@@ -64,7 +65,13 @@ func (s *CallbacksTestSuite) TestICACallbacks() {
},
{
"failure: source callback with low gas (panic)",
- fmt.Sprintf(`{"src_callback": {"address": "%s", "gas_limit": "350000"}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.OogPanicContract),
+ types.CallbackTypeSendPacket,
+ false,
+ },
+ {
+ "failure: source callback with low gas (error)",
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.OogErrorContract),
types.CallbackTypeSendPacket,
false,
},
@@ -74,7 +81,7 @@ func (s *CallbacksTestSuite) TestICACallbacks() {
s.Run(tc.name, func() {
icaAddr := s.SetupICATest()
- s.ExecuteICATx(icaAddr, tc.icaMemo, 1)
+ s.ExecuteICATx(icaAddr, tc.icaMemo)
s.AssertHasExecutedExpectedCallback(tc.expCallback, tc.expSuccess)
})
}
@@ -96,19 +103,25 @@ func (s *CallbacksTestSuite) TestICATimeoutCallbacks() {
},
{
"success: dest callback",
- fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.SuccessContract),
"none",
true,
},
{
"success: source callback",
- fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.SuccessContract),
types.CallbackTypeTimeoutPacket,
true,
},
{
"failure: source callback with low gas (panic)",
- fmt.Sprintf(`{"src_callback": {"address": "%s", "gas_limit": "350000"}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.OogPanicContract),
+ types.CallbackTypeSendPacket,
+ false,
+ },
+ {
+ "failure: source callback with low gas (error)",
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.OogErrorContract),
types.CallbackTypeSendPacket,
false,
},
@@ -118,14 +131,14 @@ func (s *CallbacksTestSuite) TestICATimeoutCallbacks() {
s.Run(tc.name, func() {
icaAddr := s.SetupICATest()
- s.ExecuteICATimeout(icaAddr, tc.icaMemo, 1)
+ s.ExecuteICATimeout(icaAddr, tc.icaMemo)
s.AssertHasExecutedExpectedCallback(tc.expCallback, tc.expSuccess)
})
}
}
// ExecuteICATx executes a stakingtypes.MsgDelegate on chainB by sending a packet containing the msg to chainB
-func (s *CallbacksTestSuite) ExecuteICATx(icaAddress, memo string, seq uint64) {
+func (s *CallbacksTestSuite) ExecuteICATx(icaAddress, memo string) {
timeoutTimestamp := uint64(s.chainA.GetContext().BlockTime().Add(time.Minute).UnixNano())
icaOwner := s.chainA.SenderAccount.GetAddress().String()
connectionID := s.path.EndpointA.ConnectionID
@@ -138,7 +151,7 @@ func (s *CallbacksTestSuite) ExecuteICATx(icaAddress, memo string, seq uint64) {
return // we return if send packet is rejected
}
- packet, err := ibctesting.ParsePacketFromEvents(res.GetEvents().ToABCIEvents())
+ packet, err := ibctesting.ParsePacketFromEvents(res.GetEvents())
s.Require().NoError(err)
err = s.path.RelayPacket(packet)
@@ -146,7 +159,7 @@ func (s *CallbacksTestSuite) ExecuteICATx(icaAddress, memo string, seq uint64) {
}
// ExecuteICATx sends and times out an ICA tx
-func (s *CallbacksTestSuite) ExecuteICATimeout(icaAddress, memo string, seq uint64) {
+func (s *CallbacksTestSuite) ExecuteICATimeout(icaAddress, memo string) {
relativeTimeout := uint64(1)
icaOwner := s.chainA.SenderAccount.GetAddress().String()
connectionID := s.path.EndpointA.ConnectionID
@@ -159,7 +172,7 @@ func (s *CallbacksTestSuite) ExecuteICATimeout(icaAddress, memo string, seq uint
return // we return if send packet is rejected
}
- packet, err := ibctesting.ParsePacketFromEvents(res.GetEvents().ToABCIEvents())
+ packet, err := ibctesting.ParsePacketFromEvents(res.GetEvents())
s.Require().NoError(err)
// proof query requires up to date client
diff --git a/modules/apps/callbacks/testing/simapp/README.md b/modules/apps/callbacks/testing/simapp/README.md
new file mode 100644
index 00000000000..7ee00030c45
--- /dev/null
+++ b/modules/apps/callbacks/testing/simapp/README.md
@@ -0,0 +1,7 @@
+# Callbacks Testing SimApp
+
+This testing directory is a duplicate of the ibc-go testing directory.
+It is only here as a way of creating a separate SimApp binary to avoid introducing a dependency on the callbacks
+module from within ibc-go.
+
+The simapp can be built with the workflow found [here](../../../../../.github/workflows/build-callbacks-simd-image-from-tag.yml).
diff --git a/modules/apps/callbacks/testing/simapp/ante_handler.go b/modules/apps/callbacks/testing/simapp/ante_handler.go
index 1214324e66b..96e79c3474c 100644
--- a/modules/apps/callbacks/testing/simapp/ante_handler.go
+++ b/modules/apps/callbacks/testing/simapp/ante_handler.go
@@ -1,37 +1,43 @@
package simapp
import (
- errorsmod "cosmossdk.io/errors"
+ "errors"
+
+ circuitante "cosmossdk.io/x/circuit/ante"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/auth/ante"
ibcante "github.com/cosmos/ibc-go/v7/modules/core/ante"
- ibcerrors "github.com/cosmos/ibc-go/v7/modules/core/errors"
"github.com/cosmos/ibc-go/v7/modules/core/keeper"
)
-// HandlerOptions extend the SDK's AnteHandler options by requiring the IBC keeper.
+// HandlerOptions are the options required for constructing a default SDK AnteHandler.
type HandlerOptions struct {
ante.HandlerOptions
-
- IBCKeeper *keeper.Keeper
+ CircuitKeeper circuitante.CircuitBreaker
+ IBCKeeper *keeper.Keeper
}
-// NewAnteHandler creates a new ante handler
+// NewAnteHandler returns an AnteHandler that checks and increments sequence
+// numbers, checks signatures & account numbers, and deducts fees from the first
+// signer.
func NewAnteHandler(options HandlerOptions) (sdk.AnteHandler, error) {
if options.AccountKeeper == nil {
- return nil, errorsmod.Wrap(ibcerrors.ErrLogic, "account keeper is required for AnteHandler")
+ return nil, errors.New("account keeper is required for ante builder")
}
+
if options.BankKeeper == nil {
- return nil, errorsmod.Wrap(ibcerrors.ErrLogic, "bank keeper is required for AnteHandler")
+ return nil, errors.New("bank keeper is required for ante builder")
}
+
if options.SignModeHandler == nil {
- return nil, errorsmod.Wrap(ibcerrors.ErrLogic, "sign mode handler is required for AnteHandler")
+ return nil, errors.New("sign mode handler is required for ante builder")
}
anteDecorators := []sdk.AnteDecorator{
ante.NewSetUpContextDecorator(), // outermost AnteDecorator. SetUpContext must be called first
+ circuitante.NewCircuitBreakerDecorator(options.CircuitKeeper),
ante.NewExtensionOptionsDecorator(options.ExtensionOptionChecker),
ante.NewValidateBasicDecorator(),
ante.NewTxTimeoutHeightDecorator(),
diff --git a/modules/apps/callbacks/testing/simapp/app.go b/modules/apps/callbacks/testing/simapp/app.go
index bbe9e17d252..6a14ed61818 100644
--- a/modules/apps/callbacks/testing/simapp/app.go
+++ b/modules/apps/callbacks/testing/simapp/app.go
@@ -2,23 +2,42 @@ package simapp
import (
"encoding/json"
+ "fmt"
"io"
"os"
"path/filepath"
+ dbm "github.com/cosmos/cosmos-db"
+ "github.com/cosmos/gogoproto/proto"
"github.com/spf13/cast"
- _ "github.com/cosmos/cosmos-sdk/client/docs/statik" // this is used for serving docs
-
autocliv1 "cosmossdk.io/api/cosmos/autocli/v1"
reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1"
+ "cosmossdk.io/client/v2/autocli"
+ "cosmossdk.io/core/appmodule"
+ "cosmossdk.io/log"
+ storetypes "cosmossdk.io/store/types"
+ "cosmossdk.io/x/circuit"
+ circuitkeeper "cosmossdk.io/x/circuit/keeper"
+ circuittypes "cosmossdk.io/x/circuit/types"
+ "cosmossdk.io/x/evidence"
+ evidencekeeper "cosmossdk.io/x/evidence/keeper"
+ evidencetypes "cosmossdk.io/x/evidence/types"
+ "cosmossdk.io/x/feegrant"
+ feegrantkeeper "cosmossdk.io/x/feegrant/keeper"
+ feegrantmodule "cosmossdk.io/x/feegrant/module"
+ "cosmossdk.io/x/tx/signing"
+ "cosmossdk.io/x/upgrade"
+ upgradekeeper "cosmossdk.io/x/upgrade/keeper"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
"github.com/cosmos/cosmos-sdk/baseapp"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
+ "github.com/cosmos/cosmos-sdk/client/grpc/cmtservice"
nodeservice "github.com/cosmos/cosmos-sdk/client/grpc/node"
- "github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
"github.com/cosmos/cosmos-sdk/codec"
+ "github.com/cosmos/cosmos-sdk/codec/address"
"github.com/cosmos/cosmos-sdk/codec/types"
"github.com/cosmos/cosmos-sdk/runtime"
runtimeservices "github.com/cosmos/cosmos-sdk/runtime/services"
@@ -27,14 +46,14 @@ import (
"github.com/cosmos/cosmos-sdk/server/config"
servertypes "github.com/cosmos/cosmos-sdk/server/types"
"github.com/cosmos/cosmos-sdk/std"
- "github.com/cosmos/cosmos-sdk/store/streaming"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
- testdatapb "github.com/cosmos/cosmos-sdk/testutil/testdata/testpb"
+ "github.com/cosmos/cosmos-sdk/testutil/testdata/testpb"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
+ "github.com/cosmos/cosmos-sdk/types/msgservice"
"github.com/cosmos/cosmos-sdk/version"
"github.com/cosmos/cosmos-sdk/x/auth"
"github.com/cosmos/cosmos-sdk/x/auth/ante"
+ authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec"
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
"github.com/cosmos/cosmos-sdk/x/auth/posthandler"
authsims "github.com/cosmos/cosmos-sdk/x/auth/simulation"
@@ -48,7 +67,7 @@ import (
"github.com/cosmos/cosmos-sdk/x/bank"
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
- "github.com/cosmos/cosmos-sdk/x/consensus"
+ consensus "github.com/cosmos/cosmos-sdk/x/consensus"
consensusparamkeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper"
consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types"
"github.com/cosmos/cosmos-sdk/x/crisis"
@@ -57,12 +76,6 @@ import (
distr "github.com/cosmos/cosmos-sdk/x/distribution"
distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper"
distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
- "github.com/cosmos/cosmos-sdk/x/evidence"
- evidencekeeper "github.com/cosmos/cosmos-sdk/x/evidence/keeper"
- evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types"
- "github.com/cosmos/cosmos-sdk/x/feegrant"
- feegrantkeeper "github.com/cosmos/cosmos-sdk/x/feegrant/keeper"
- feegrantmodule "github.com/cosmos/cosmos-sdk/x/feegrant/module"
"github.com/cosmos/cosmos-sdk/x/genutil"
genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
"github.com/cosmos/cosmos-sdk/x/gov"
@@ -87,17 +100,10 @@ import (
"github.com/cosmos/cosmos-sdk/x/staking"
stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
- "github.com/cosmos/cosmos-sdk/x/upgrade"
- upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client"
- upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
- dbm "github.com/cometbft/cometbft-db"
abci "github.com/cometbft/cometbft/abci/types"
- "github.com/cometbft/cometbft/libs/log"
ibccallbacks "github.com/cosmos/ibc-go/modules/apps/callbacks"
- simappparams "github.com/cosmos/ibc-go/modules/apps/callbacks/testing/simapp/params"
"github.com/cosmos/ibc-go/modules/capability"
capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper"
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
@@ -139,45 +145,6 @@ var (
// DefaultNodeHome default home directories for the application daemon
DefaultNodeHome string
- // ModuleBasics defines the module BasicManager is in charge of setting up basic,
- // non-dependant module elements, such as codec registration
- // and genesis verification.
- ModuleBasics = module.NewBasicManager(
- auth.AppModuleBasic{},
- genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator),
- bank.AppModuleBasic{},
- capability.AppModuleBasic{},
- staking.AppModuleBasic{},
- mint.AppModuleBasic{},
- distr.AppModuleBasic{},
- gov.NewAppModuleBasic(
- []govclient.ProposalHandler{
- paramsclient.ProposalHandler,
- upgradeclient.LegacyProposalHandler,
- upgradeclient.LegacyCancelProposalHandler,
- ibcclientclient.UpdateClientProposalHandler,
- ibcclientclient.UpgradeProposalHandler,
- },
- ),
- groupmodule.AppModuleBasic{},
- params.AppModuleBasic{},
- crisis.AppModuleBasic{},
- slashing.AppModuleBasic{},
- ibc.AppModuleBasic{},
- ibctm.AppModuleBasic{},
- solomachine.AppModuleBasic{},
- feegrantmodule.AppModuleBasic{},
- upgrade.AppModuleBasic{},
- evidence.AppModuleBasic{},
- transfer.AppModuleBasic{},
- ibcmock.AppModuleBasic{},
- ica.AppModuleBasic{},
- authzmodule.AppModuleBasic{},
- vesting.AppModuleBasic{},
- ibcfee.AppModuleBasic{},
- consensus.AppModuleBasic{},
- )
-
// module account permissions
maccPerms = map[string][]string{
authtypes.FeeCollectorName: nil,
@@ -235,6 +202,7 @@ type SimApp struct {
FeeGrantKeeper feegrantkeeper.Keeper
GroupKeeper groupkeeper.Keeper
ConsensusParamsKeeper consensusparamkeeper.Keeper
+ CircuitKeeper circuitkeeper.Keeper
// make scoped keepers public for test purposes
ScopedIBCKeeper capabilitykeeper.ScopedKeeper
@@ -254,7 +222,8 @@ type SimApp struct {
FeeMockModule ibcmock.IBCModule
// the module manager
- ModuleManager *module.Manager
+ ModuleManager *module.Manager
+ BasicModuleManager module.BasicManager
// simulation manager
simulationManager *module.SimulationManager
@@ -281,12 +250,23 @@ func NewSimApp(
appOpts servertypes.AppOptions,
baseAppOptions ...func(*baseapp.BaseApp),
) *SimApp {
- encodingConfig := makeEncodingConfig()
+ interfaceRegistry, _ := types.NewInterfaceRegistryWithOptions(types.InterfaceRegistryOptions{
+ ProtoFiles: proto.HybridResolver,
+ SigningOptions: signing.Options{
+ AddressCodec: address.Bech32Codec{
+ Bech32Prefix: sdk.GetConfig().GetBech32AccountAddrPrefix(),
+ },
+ ValidatorAddressCodec: address.Bech32Codec{
+ Bech32Prefix: sdk.GetConfig().GetBech32ValidatorAddrPrefix(),
+ },
+ },
+ })
+ appCodec := codec.NewProtoCodec(interfaceRegistry)
+ legacyAmino := codec.NewLegacyAmino()
+ txConfig := authtx.NewTxConfig(appCodec, authtx.DefaultSignModes)
- appCodec := encodingConfig.Codec
- legacyAmino := encodingConfig.Amino
- interfaceRegistry := encodingConfig.InterfaceRegistry
- txConfig := encodingConfig.TxConfig
+ std.RegisterLegacyAminoCodec(legacyAmino)
+ std.RegisterInterfaces(interfaceRegistry)
// Below we could construct and set an application specific mempool and
// ABCI 1.0 PrepareProposal and ProcessProposal handlers. These defaults are
@@ -320,27 +300,22 @@ func NewSimApp(
bApp.SetInterfaceRegistry(interfaceRegistry)
bApp.SetTxEncoder(txConfig.TxEncoder())
- keys := sdk.NewKVStoreKeys(
+ keys := storetypes.NewKVStoreKeys(
authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey, crisistypes.StoreKey,
minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey,
- govtypes.StoreKey, group.StoreKey, paramstypes.StoreKey,
- upgradetypes.StoreKey, feegrant.StoreKey,
- evidencetypes.StoreKey, consensusparamtypes.StoreKey, authzkeeper.StoreKey,
- ibctransfertypes.StoreKey, icacontrollertypes.StoreKey, icahosttypes.StoreKey, capabilitytypes.StoreKey,
- ibcfeetypes.StoreKey, ibcexported.StoreKey,
+ govtypes.StoreKey, group.StoreKey, paramstypes.StoreKey, ibcexported.StoreKey, upgradetypes.StoreKey, feegrant.StoreKey,
+ evidencetypes.StoreKey, ibctransfertypes.StoreKey, icacontrollertypes.StoreKey, icahosttypes.StoreKey, capabilitytypes.StoreKey,
+ authzkeeper.StoreKey, ibcfeetypes.StoreKey, consensusparamtypes.StoreKey, circuittypes.StoreKey,
)
- tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey)
- // NOTE: The ibcmock.MemStoreKey is just mounted for testing purposes. Actual applications should
- // not include this key.
- memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey, ibcmock.MemStoreKey)
-
- // load state streaming if enabled
- if _, _, err := streaming.LoadStreamingServices(bApp, appOpts, appCodec, logger, keys); err != nil {
- logger.Error("failed to load state streaming", "err", err)
- os.Exit(1)
+ // register streaming services
+ if err := bApp.RegisterStreamingServices(appOpts, keys); err != nil {
+ panic(err)
}
+ tkeys := storetypes.NewTransientStoreKeys(paramstypes.TStoreKey)
+ memKeys := storetypes.NewMemoryStoreKeys(capabilitytypes.MemStoreKey, ibcmock.MemStoreKey)
+
app := &SimApp{
BaseApp: bApp,
legacyAmino: legacyAmino,
@@ -355,8 +330,8 @@ func NewSimApp(
app.ParamsKeeper = initParamsKeeper(appCodec, legacyAmino, keys[paramstypes.StoreKey], tkeys[paramstypes.TStoreKey])
// set the BaseApp's parameter store
- app.ConsensusParamsKeeper = consensusparamkeeper.NewKeeper(appCodec, keys[consensusparamtypes.StoreKey], authtypes.NewModuleAddress(govtypes.ModuleName).String())
- bApp.SetParamStore(&app.ConsensusParamsKeeper)
+ app.ConsensusParamsKeeper = consensusparamkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[consensusparamtypes.StoreKey]), authtypes.NewModuleAddress(govtypes.ModuleName).String(), runtime.EventService{})
+ bApp.SetParamStore(app.ConsensusParamsKeeper.ParamsStore)
// add capability keeper and ScopeToModule for ibc module
app.CapabilityKeeper = capabilitykeeper.NewKeeper(appCodec, keys[capabilitytypes.StoreKey], memKeys[capabilitytypes.MemStoreKey])
@@ -378,34 +353,34 @@ func NewSimApp(
app.CapabilityKeeper.Seal()
// SDK module keepers
- app.AccountKeeper = authkeeper.NewAccountKeeper(appCodec, keys[authtypes.StoreKey], authtypes.ProtoBaseAccount, maccPerms, sdk.GetConfig().GetBech32AccountAddrPrefix(), authtypes.NewModuleAddress(govtypes.ModuleName).String())
+
+ // add keepers
+ app.AccountKeeper = authkeeper.NewAccountKeeper(appCodec, runtime.NewKVStoreService(keys[authtypes.StoreKey]), authtypes.ProtoBaseAccount, maccPerms, authcodec.NewBech32Codec(sdk.Bech32MainPrefix), sdk.Bech32MainPrefix, authtypes.NewModuleAddress(govtypes.ModuleName).String())
app.BankKeeper = bankkeeper.NewBaseKeeper(
appCodec,
- keys[banktypes.StoreKey],
+ runtime.NewKVStoreService(keys[banktypes.StoreKey]),
app.AccountKeeper,
BlockedAddresses(),
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
+ logger,
)
-
- // register the staking hooks
- // NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks
app.StakingKeeper = stakingkeeper.NewKeeper(
- appCodec, keys[stakingtypes.StoreKey], app.AccountKeeper, app.BankKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
+ appCodec, runtime.NewKVStoreService(keys[stakingtypes.StoreKey]), app.AccountKeeper, app.BankKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), authcodec.NewBech32Codec(sdk.Bech32PrefixValAddr), authcodec.NewBech32Codec(sdk.Bech32PrefixConsAddr),
)
- app.MintKeeper = mintkeeper.NewKeeper(appCodec, keys[minttypes.StoreKey], app.StakingKeeper, app.AccountKeeper, app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String())
+ app.MintKeeper = mintkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[minttypes.StoreKey]), app.StakingKeeper, app.AccountKeeper, app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String())
- app.DistrKeeper = distrkeeper.NewKeeper(appCodec, keys[distrtypes.StoreKey], app.AccountKeeper, app.BankKeeper, app.StakingKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String())
+ app.DistrKeeper = distrkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[distrtypes.StoreKey]), app.AccountKeeper, app.BankKeeper, app.StakingKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String())
app.SlashingKeeper = slashingkeeper.NewKeeper(
- appCodec, legacyAmino, keys[slashingtypes.StoreKey], app.StakingKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
+ appCodec, legacyAmino, runtime.NewKVStoreService(keys[slashingtypes.StoreKey]), app.StakingKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
)
invCheckPeriod := cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod))
- app.CrisisKeeper = crisiskeeper.NewKeeper(appCodec, keys[crisistypes.StoreKey], invCheckPeriod,
- app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String())
+ app.CrisisKeeper = crisiskeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[crisistypes.StoreKey]), invCheckPeriod,
+ app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String(), app.AccountKeeper.AddressCodec())
- app.FeeGrantKeeper = feegrantkeeper.NewKeeper(appCodec, keys[feegrant.StoreKey], app.AccountKeeper)
+ app.FeeGrantKeeper = feegrantkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[feegrant.StoreKey]), app.AccountKeeper)
// register the staking hooks
// NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks
@@ -413,7 +388,10 @@ func NewSimApp(
stakingtypes.NewMultiStakingHooks(app.DistrKeeper.Hooks(), app.SlashingKeeper.Hooks()),
)
- app.AuthzKeeper = authzkeeper.NewKeeper(keys[authzkeeper.StoreKey], appCodec, app.MsgServiceRouter(), app.AccountKeeper)
+ app.CircuitKeeper = circuitkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[circuittypes.StoreKey]), authtypes.NewModuleAddress(govtypes.ModuleName).String(), app.AccountKeeper.AddressCodec())
+ app.BaseApp.SetCircuitBreaker(&app.CircuitKeeper)
+
+ app.AuthzKeeper = authzkeeper.NewKeeper(runtime.NewKVStoreService(keys[authzkeeper.StoreKey]), appCodec, app.MsgServiceRouter(), app.AccountKeeper)
groupConfig := group.DefaultConfig()
/*
@@ -422,15 +400,14 @@ func NewSimApp(
*/
app.GroupKeeper = groupkeeper.NewKeeper(keys[group.StoreKey], appCodec, app.MsgServiceRouter(), app.AccountKeeper, groupConfig)
+ // get skipUpgradeHeights from the app options
skipUpgradeHeights := map[int64]bool{}
for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) {
skipUpgradeHeights[int64(h)] = true
}
homePath := cast.ToString(appOpts.Get(flags.FlagHome))
// set the governance module account as the authority for conducting upgrades
- app.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, keys[upgradetypes.StoreKey], appCodec, homePath, app.BaseApp, authtypes.NewModuleAddress(govtypes.ModuleName).String())
-
- // IBC Keepers
+ app.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, runtime.NewKVStoreService(keys[upgradetypes.StoreKey]), appCodec, homePath, app.BaseApp, authtypes.NewModuleAddress(govtypes.ModuleName).String())
app.IBCKeeper = ibckeeper.NewKeeper(
appCodec, keys[ibcexported.StoreKey], app.GetSubspace(ibcexported.ModuleName), app.StakingKeeper, app.UpgradeKeeper, scopedIBCKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
@@ -440,11 +417,13 @@ func NewSimApp(
// Real applications should not use the mock ContractKeeper
app.MockContractKeeper = NewContractKeeper(memKeys[ibcmock.MemStoreKey])
- // register the proposal types
+ // Register the proposal types
+ // Deprecated: Avoid adding new handlers, instead use the new proposal flow
+ // by granting the governance module the right to execute the message.
+ // See: https://docs.cosmos.network/main/modules/gov#proposal-messages
govRouter := govv1beta1.NewRouter()
govRouter.AddRoute(govtypes.RouterKey, govv1beta1.ProposalHandler).
AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.ParamsKeeper)).
- AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)).
AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper))
govConfig := govtypes.DefaultConfig()
@@ -453,8 +432,8 @@ func NewSimApp(
govConfig.MaxMetadataLen = 10000
*/
govKeeper := govkeeper.NewKeeper(
- appCodec, keys[govtypes.StoreKey], app.AccountKeeper, app.BankKeeper,
- app.StakingKeeper, app.MsgServiceRouter(), govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
+ appCodec, runtime.NewKVStoreService(keys[govtypes.StoreKey]), app.AccountKeeper, app.BankKeeper,
+ app.StakingKeeper, app.DistrKeeper, app.MsgServiceRouter(), govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
)
// Set legacy router for backwards compatibility with gov v1beta1
@@ -538,7 +517,7 @@ func NewSimApp(
transferStack = ibcfee.NewIBCMiddleware(transferStack, app.IBCFeeKeeper)
transferStack = ibccallbacks.NewIBCMiddleware(transferStack, app.IBCFeeKeeper, app.MockContractKeeper, maxCallbackGas)
// Since the callbacks middleware itself is an ics4wrapper, it needs to be passed to the transfer keeper
- app.TransferKeeper.WithICS4Wrapper(transferStack.(porttypes.Middleware))
+ app.TransferKeeper.WithICS4Wrapper(transferStack.(porttypes.ICS4Wrapper))
// Add transfer stack to IBC Router
ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferStack)
@@ -555,7 +534,7 @@ func NewSimApp(
icaControllerStack = ibcfee.NewIBCMiddleware(icaControllerStack, app.IBCFeeKeeper)
icaControllerStack = ibccallbacks.NewIBCMiddleware(icaControllerStack, app.IBCFeeKeeper, app.MockContractKeeper, maxCallbackGas)
// Since the callbacks middleware itself is an ics4wrapper, it needs to be passed to the ica controller keeper
- app.ICAControllerKeeper.WithICS4Wrapper(icaControllerStack.(porttypes.Middleware))
+ app.ICAControllerKeeper.WithICS4Wrapper(icaControllerStack.(porttypes.ICS4Wrapper))
// RecvPacket, message that originates from core IBC and goes down to app, the flow is:
// channel.RecvPacket -> fee.OnRecvPacket -> icaHost.OnRecvPacket
@@ -594,7 +573,7 @@ func NewSimApp(
// create evidence keeper with router
evidenceKeeper := evidencekeeper.NewKeeper(
- appCodec, keys[evidencetypes.StoreKey], app.StakingKeeper, app.SlashingKeeper,
+ appCodec, runtime.NewKVStoreService(keys[evidencetypes.StoreKey]), app.StakingKeeper, app.SlashingKeeper, app.AccountKeeper.AddressCodec(), runtime.ProvideCometInfoService(),
)
// If evidence needs to be handled for the app, set routes in router here and seal
app.EvidenceKeeper = *evidenceKeeper
@@ -608,10 +587,9 @@ func NewSimApp(
// NOTE: Any module instantiated in the module manager that is later modified
// must be passed by reference here.
app.ModuleManager = module.NewManager(
- // SDK app modules
genutil.NewAppModule(
- app.AccountKeeper, app.StakingKeeper, app.BaseApp.DeliverTx,
- encodingConfig.TxConfig,
+ app.AccountKeeper, app.StakingKeeper, app,
+ txConfig,
),
auth.NewAppModule(appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)),
vesting.NewAppModule(app.AccountKeeper, app.BankKeeper),
@@ -621,41 +599,80 @@ func NewSimApp(
feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry),
gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)),
mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil, app.GetSubspace(minttypes.ModuleName)),
- slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName)),
+ slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName), app.interfaceRegistry),
distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)),
staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)),
- upgrade.NewAppModule(app.UpgradeKeeper),
+ upgrade.NewAppModule(app.UpgradeKeeper, app.AccountKeeper.AddressCodec()),
evidence.NewAppModule(app.EvidenceKeeper),
params.NewAppModule(app.ParamsKeeper),
authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper),
+ circuit.NewAppModule(appCodec, app.CircuitKeeper),
// IBC modules
ibc.NewAppModule(app.IBCKeeper),
transfer.NewAppModule(app.TransferKeeper),
ibcfee.NewAppModule(app.IBCFeeKeeper),
ica.NewAppModule(&app.ICAControllerKeeper, &app.ICAHostKeeper),
+ ibctm.AppModuleBasic{},
+ solomachine.AppModuleBasic{},
mockModule,
)
+ // BasicModuleManager defines the module BasicManager is in charge of setting up basic,
+ // non-dependant module elements, such as codec registration and genesis verification.
+ // By default it is composed of all the module from the module manager.
+ // Additionally, app module basics can be overwritten by passing them as argument.
+ app.BasicModuleManager = module.NewBasicManagerFromManager(
+ app.ModuleManager,
+ map[string]module.AppModuleBasic{
+ genutiltypes.ModuleName: genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator),
+ govtypes.ModuleName: gov.NewAppModuleBasic(
+ []govclient.ProposalHandler{
+ paramsclient.ProposalHandler,
+ ibcclientclient.UpdateClientProposalHandler,
+ ibcclientclient.UpgradeProposalHandler,
+ },
+ ),
+ })
+ app.BasicModuleManager.RegisterLegacyAminoCodec(legacyAmino)
+ app.BasicModuleManager.RegisterInterfaces(interfaceRegistry)
+
// During begin block slashing happens after distr.BeginBlocker so that
// there is nothing left over in the validator fee pool, so as to keep the
// CanWithdrawInvariant invariant.
// NOTE: staking module is required if HistoricalEntries param > 0
// NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC)
app.ModuleManager.SetOrderBeginBlockers(
- upgradetypes.ModuleName, capabilitytypes.ModuleName, minttypes.ModuleName, distrtypes.ModuleName, slashingtypes.ModuleName,
- evidencetypes.ModuleName, stakingtypes.ModuleName, ibcexported.ModuleName, ibctransfertypes.ModuleName, authtypes.ModuleName,
- banktypes.ModuleName, govtypes.ModuleName, crisistypes.ModuleName, genutiltypes.ModuleName, authz.ModuleName, feegrant.ModuleName,
- paramstypes.ModuleName, vestingtypes.ModuleName, icatypes.ModuleName, ibcfeetypes.ModuleName, ibcmock.ModuleName, group.ModuleName, consensusparamtypes.ModuleName,
+ upgradetypes.ModuleName,
+ capabilitytypes.ModuleName,
+ minttypes.ModuleName,
+ distrtypes.ModuleName,
+ slashingtypes.ModuleName,
+ evidencetypes.ModuleName,
+ stakingtypes.ModuleName,
+ ibcexported.ModuleName,
+ ibctransfertypes.ModuleName,
+ genutiltypes.ModuleName,
+ authz.ModuleName,
+ icatypes.ModuleName,
+ ibcfeetypes.ModuleName,
+ ibcmock.ModuleName,
)
-
app.ModuleManager.SetOrderEndBlockers(
- crisistypes.ModuleName, govtypes.ModuleName, stakingtypes.ModuleName, ibcexported.ModuleName, ibctransfertypes.ModuleName,
- capabilitytypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, distrtypes.ModuleName, slashingtypes.ModuleName,
- minttypes.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, feegrant.ModuleName, paramstypes.ModuleName,
- upgradetypes.ModuleName, vestingtypes.ModuleName, icatypes.ModuleName, ibcfeetypes.ModuleName, ibcmock.ModuleName, group.ModuleName, consensusparamtypes.ModuleName,
+ crisistypes.ModuleName,
+ govtypes.ModuleName,
+ stakingtypes.ModuleName,
+ ibcexported.ModuleName,
+ ibctransfertypes.ModuleName,
+ capabilitytypes.ModuleName,
+ genutiltypes.ModuleName,
+ feegrant.ModuleName,
+ icatypes.ModuleName,
+ ibcfeetypes.ModuleName,
+ ibcmock.ModuleName,
+ group.ModuleName,
)
// NOTE: The genutils module must occur after staking so that pools are
@@ -664,13 +681,14 @@ func NewSimApp(
// NOTE: Capability module must occur first so that it can initialize any capabilities
// so that other modules that want to create or claim capabilities afterwards in InitChain
// can do so safely.
-
genesisModuleOrder := []string{
- capabilitytypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, distrtypes.ModuleName, stakingtypes.ModuleName,
+ capabilitytypes.ModuleName,
+ authtypes.ModuleName,
+ banktypes.ModuleName, distrtypes.ModuleName, stakingtypes.ModuleName,
slashingtypes.ModuleName, govtypes.ModuleName, minttypes.ModuleName, crisistypes.ModuleName,
ibcexported.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, ibctransfertypes.ModuleName,
icatypes.ModuleName, ibcfeetypes.ModuleName, ibcmock.ModuleName, feegrant.ModuleName, paramstypes.ModuleName, upgradetypes.ModuleName,
- vestingtypes.ModuleName, group.ModuleName, consensusparamtypes.ModuleName,
+ vestingtypes.ModuleName, group.ModuleName, consensusparamtypes.ModuleName, circuittypes.ModuleName,
}
app.ModuleManager.SetOrderInitGenesis(genesisModuleOrder...)
app.ModuleManager.SetOrderExportGenesis(genesisModuleOrder...)
@@ -680,7 +698,10 @@ func NewSimApp(
app.ModuleManager.RegisterInvariants(app.CrisisKeeper)
app.configurator = module.NewConfigurator(app.appCodec, app.MsgServiceRouter(), app.GRPCQueryRouter())
- app.ModuleManager.RegisterServices(app.configurator)
+ err := app.ModuleManager.RegisterServices(app.configurator)
+ if err != nil {
+ panic(err)
+ }
autocliv1.RegisterQueryServer(app.GRPCQueryRouter(), runtimeservices.NewAutoCLIQueryService(app.ModuleManager.Modules))
@@ -691,7 +712,7 @@ func NewSimApp(
reflectionv1.RegisterReflectionServiceServer(app.GRPCQueryRouter(), reflectionSvc)
// add test gRPC service for testing gRPC queries in isolation
- testdatapb.RegisterQueryServer(app.GRPCQueryRouter(), testdatapb.QueryImpl{})
+ testpb.RegisterQueryServer(app.GRPCQueryRouter(), testpb.QueryImpl{})
// create the simulation manager and define the order of the modules for deterministic simulations
//
@@ -713,7 +734,7 @@ func NewSimApp(
app.SetInitChainer(app.InitChainer)
app.SetBeginBlocker(app.BeginBlocker)
app.SetEndBlocker(app.EndBlocker)
- app.setAnteHandler(encodingConfig.TxConfig)
+ app.setAnteHandler(txConfig)
// In v0.46, the SDK introduces _postHandlers_. PostHandlers are like
// antehandlers, but are run _after_ the `runMsgs` execution. They are also
@@ -735,13 +756,25 @@ func NewSimApp(
// upgrade.
app.setPostHandler()
- app.setupUpgradeHandlers()
- app.setupUpgradeStoreLoaders()
+ // At startup, after all modules have been registered, check that all proto
+ // annotations are correct.
+ protoFiles, err := proto.MergedRegistry()
+ if err != nil {
+ panic(err)
+ }
+ err = msgservice.ValidateProtoAnnotations(protoFiles)
+ if err != nil {
+ // Once we switch to using protoreflect-based antehandlers, we might
+ // want to panic here instead of logging a warning.
+ _, err := fmt.Fprintln(os.Stderr, err.Error())
+ if err != nil {
+ fmt.Println("could not write to stderr")
+ }
+ }
if loadLatest {
if err := app.LoadLatestVersion(); err != nil {
- logger.Error("error on loading last version", "err", err)
- os.Exit(1)
+ panic(fmt.Errorf("error loading last version: %w", err))
}
}
@@ -762,20 +795,22 @@ func NewSimApp(
func (app *SimApp) setAnteHandler(txConfig client.TxConfig) {
anteHandler, err := NewAnteHandler(
HandlerOptions{
- HandlerOptions: ante.HandlerOptions{
+ ante.HandlerOptions{
AccountKeeper: app.AccountKeeper,
BankKeeper: app.BankKeeper,
SignModeHandler: txConfig.SignModeHandler(),
FeegrantKeeper: app.FeeGrantKeeper,
SigGasConsumer: ante.DefaultSigVerificationGasConsumer,
},
- IBCKeeper: app.IBCKeeper,
+ &app.CircuitKeeper,
+ app.IBCKeeper,
},
)
if err != nil {
panic(err)
}
+ // Set the AnteHandler for the app
app.SetAnteHandler(anteHandler)
}
@@ -794,13 +829,13 @@ func (app *SimApp) setPostHandler() {
func (app *SimApp) Name() string { return app.BaseApp.Name() }
// BeginBlocker application updates every begin block
-func (app *SimApp) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock {
- return app.ModuleManager.BeginBlock(ctx, req)
+func (app *SimApp) BeginBlocker(ctx sdk.Context) (sdk.BeginBlock, error) {
+ return app.ModuleManager.BeginBlock(ctx)
}
// EndBlocker application updates every end block
-func (app *SimApp) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock {
- return app.ModuleManager.EndBlock(ctx, req)
+func (app *SimApp) EndBlocker(ctx sdk.Context) (sdk.EndBlock, error) {
+ return app.ModuleManager.EndBlock(ctx)
}
// Configurator returns the configurator for the app
@@ -809,12 +844,14 @@ func (app *SimApp) Configurator() module.Configurator {
}
// InitChainer application update at chain initialization
-func (app *SimApp) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain {
+func (app *SimApp) InitChainer(ctx sdk.Context, req *abci.RequestInitChain) (*abci.ResponseInitChain, error) {
var genesisState GenesisState
if err := json.Unmarshal(req.AppStateBytes, &genesisState); err != nil {
panic(err)
}
- app.UpgradeKeeper.SetModuleVersionMap(ctx, app.ModuleManager.GetVersionMap())
+ if err := app.UpgradeKeeper.SetModuleVersionMap(ctx, app.ModuleManager.GetVersionMap()); err != nil {
+ panic(err)
+ }
return app.ModuleManager.InitGenesis(ctx, app.appCodec, genesisState)
}
@@ -849,9 +886,29 @@ func (app *SimApp) TxConfig() client.TxConfig {
return app.txConfig
}
+// AutoCliOpts returns the autocli options for the app.
+func (app *SimApp) AutoCliOpts() autocli.AppOptions {
+ modules := make(map[string]appmodule.AppModule, 0)
+ for _, m := range app.ModuleManager.Modules {
+ if moduleWithName, ok := m.(module.HasName); ok {
+ moduleName := moduleWithName.Name()
+ if appModule, ok := moduleWithName.(appmodule.AppModule); ok {
+ modules[moduleName] = appModule
+ }
+ }
+ }
+
+ return autocli.AppOptions{
+ Modules: modules,
+ AddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()),
+ ValidatorAddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()),
+ ConsensusAddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ConsensusAddrPrefix()),
+ }
+}
+
// DefaultGenesis returns a default genesis from the registered AppModuleBasic's.
func (app *SimApp) DefaultGenesis() map[string]json.RawMessage {
- return ModuleBasics.DefaultGenesis(app.appCodec)
+ return app.BasicModuleManager.DefaultGenesis(app.appCodec)
}
// GetKey returns the KVStoreKey for the provided store key.
@@ -861,18 +918,14 @@ func (app *SimApp) GetKey(storeKey string) *storetypes.KVStoreKey {
return app.keys[storeKey]
}
-// GetTKey returns the TransientStoreKey for the provided store key.
-//
-// NOTE: This is solely to be used for testing purposes.
-func (app *SimApp) GetTKey(storeKey string) *storetypes.TransientStoreKey {
- return app.tkeys[storeKey]
-}
+// GetStoreKeys returns all the stored store keys.
+func (app *SimApp) GetStoreKeys() []storetypes.StoreKey {
+ keys := make([]storetypes.StoreKey, len(app.keys))
+ for _, key := range app.keys {
+ keys = append(keys, key)
+ }
-// GetMemKey returns the MemStoreKey for the provided mem key.
-//
-// NOTE: This is solely used for testing purposes.
-func (app *SimApp) GetMemKey(storeKey string) *storetypes.MemoryStoreKey {
- return app.memKeys[storeKey]
+ return keys
}
// GetSubspace returns a param subspace for a given module name.
@@ -890,19 +943,19 @@ func (app *SimApp) SimulationManager() *module.SimulationManager {
// RegisterAPIRoutes registers all application module routes with the provided
// API server.
-func (*SimApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig) {
+func (app *SimApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig) {
clientCtx := apiSvr.ClientCtx
// Register new tx routes from grpc-gateway.
authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
- // Register new tendermint queries routes from grpc-gateway.
- tmservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
+ // Register new CometBFT queries routes from grpc-gateway.
+ cmtservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
// Register node gRPC service for grpc-gateway.
nodeservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
// Register grpc-gateway routes for all modules.
- ModuleBasics.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
+ app.BasicModuleManager.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
// register swagger API from root so that other applications can override easily
if err := server.RegisterSwaggerAPI(apiSvr.ClientCtx, apiSvr.Router, apiConfig.Swagger); err != nil {
@@ -917,16 +970,17 @@ func (app *SimApp) RegisterTxService(clientCtx client.Context) {
// RegisterTendermintService implements the Application.RegisterTendermintService method.
func (app *SimApp) RegisterTendermintService(clientCtx client.Context) {
- tmservice.RegisterTendermintService(
+ cmtApp := server.NewCometABCIWrapper(app)
+ cmtservice.RegisterTendermintService(
clientCtx,
app.BaseApp.GRPCQueryRouter(),
app.interfaceRegistry,
- app.Query,
+ cmtApp.Query,
)
}
-func (app *SimApp) RegisterNodeService(clientCtx client.Context) {
- nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter())
+func (app *SimApp) RegisterNodeService(clientCtx client.Context, cfg config.Config) {
+ nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter(), cfg)
}
// GetMaccPerms returns a copy of the module account permissions
@@ -969,22 +1023,6 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
return paramsKeeper
}
-func makeEncodingConfig() simappparams.EncodingConfig {
- encodingConfig := simappparams.MakeTestEncodingConfig()
- std.RegisterLegacyAminoCodec(encodingConfig.Amino)
- std.RegisterInterfaces(encodingConfig.InterfaceRegistry)
- ModuleBasics.RegisterLegacyAminoCodec(encodingConfig.Amino)
- ModuleBasics.RegisterInterfaces(encodingConfig.InterfaceRegistry)
- return encodingConfig
-}
-
-// IBC Upgrade examples
-// setupUpgradeHandlers sets all necessary upgrade handlers for testing purposes
-func (*SimApp) setupUpgradeHandlers() {}
-
-// setupUpgradeStoreLoaders sets all necessary store loaders required by upgrades.
-func (*SimApp) setupUpgradeStoreLoaders() {}
-
// IBC TestingApp functions
// GetBaseApp implements the TestingApp interface.
@@ -1011,3 +1049,10 @@ func (app *SimApp) GetScopedIBCKeeper() capabilitykeeper.ScopedKeeper {
func (app *SimApp) GetTxConfig() client.TxConfig {
return app.txConfig
}
+
+// GetMemKey returns the MemStoreKey for the provided mem key.
+//
+// NOTE: This is solely used for testing purposes.
+func (app *SimApp) GetMemKey(storeKey string) *storetypes.MemoryStoreKey {
+ return app.memKeys[storeKey]
+}
diff --git a/modules/apps/callbacks/testing/simapp/contract_keeper.go b/modules/apps/callbacks/testing/simapp/contract_keeper.go
index 0fc16f7a3bf..589219d5950 100644
--- a/modules/apps/callbacks/testing/simapp/contract_keeper.go
+++ b/modules/apps/callbacks/testing/simapp/contract_keeper.go
@@ -3,7 +3,8 @@ package simapp
import (
"fmt"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
+ storetypes "cosmossdk.io/store/types"
+
sdk "github.com/cosmos/cosmos-sdk/types"
callbacktypes "github.com/cosmos/ibc-go/modules/apps/callbacks/types"
@@ -16,9 +17,19 @@ import (
// MockKeeper implements callbacktypes.ContractKeeper
var _ callbacktypes.ContractKeeper = (*ContractKeeper)(nil)
-var (
- StatefulCounterKey = "stateful-callback-counter"
- MockCallbackUnauthorizedAddress = "cosmos15ulrf36d4wdtrtqzkgaan9ylwuhs7k7qz753uk"
+var StatefulCounterKey = "stateful-callback-counter"
+
+const (
+ // OogPanicContract is a contract address that will panic out of gas
+ OogPanicContract = "panics out of gas"
+ // OogErrorContract is a contract address that will error out of gas
+ OogErrorContract = "errors out of gas"
+ // PanicContract is a contract address that will panic
+ PanicContract = "panics"
+ // ErrorContract is a contract address that will return an error
+ ErrorContract = "errors"
+ // SuccessContract is a contract address that will return nil
+ SuccessContract = "success"
)
// This is a mock contract keeper used for testing. It is not wired up to any modules.
@@ -68,10 +79,13 @@ func NewContractKeeper(key storetypes.StoreKey) ContractKeeper {
}
}
-// IBCPacketSendCallback returns nil if the gas meter has greater than
-// or equal to 500_000 gas remaining.
-// This function oog panics if the gas remaining is less than 500_000.
-// This function errors if the authAddress is MockCallbackUnauthorizedAddress.
+// IBCPacketSendCallback increments the stateful entry counter and the send_packet callback counter.
+// This function:
+// - returns MockApplicationCallbackError and consumes half the remaining gas if the contract address is ErrorContract
+// - Oog panics and consumes all the remaining gas + 1 if the contract address is OogPanicContract
+// - returns MockApplicationCallbackError and consumes all the remaining gas + 1 if the contract address is OogErrorContract
+// - Panics and consumes half the remaining gas if the contract address is PanicContract
+// - returns nil and consumes half the remaining gas if the contract address is SuccessContract or any other value
func (k ContractKeeper) IBCSendPacketCallback(
ctx sdk.Context,
sourcePort string,
@@ -82,13 +96,16 @@ func (k ContractKeeper) IBCSendPacketCallback(
contractAddress,
packetSenderAddress string,
) error {
- return k.processMockCallback(ctx, callbacktypes.CallbackTypeSendPacket, packetSenderAddress)
+ return k.processMockCallback(ctx, callbacktypes.CallbackTypeSendPacket, contractAddress)
}
-// IBCOnAcknowledgementPacketCallback returns nil if the gas meter has greater than
-// or equal to 500_000 gas remaining.
-// This function oog panics if the gas remaining is less than 500_000.
-// This function errors if the authAddress is MockCallbackUnauthorizedAddress.
+// IBCOnAcknowledgementPacketCallback increments the stateful entry counter and the acknowledgement_packet callback counter.
+// This function:
+// - returns MockApplicationCallbackError and consumes half the remaining gas if the contract address is ErrorContract
+// - Oog panics and consumes all the remaining gas + 1 if the contract address is OogPanicContract
+// - returns MockApplicationCallbackError and consumes all the remaining gas + 1 if the contract address is OogErrorContract
+// - Panics and consumes half the remaining gas if the contract address is PanicContract
+// - returns nil and consumes half the remaining gas if the contract address is SuccessContract or any other value
func (k ContractKeeper) IBCOnAcknowledgementPacketCallback(
ctx sdk.Context,
packet channeltypes.Packet,
@@ -97,13 +114,16 @@ func (k ContractKeeper) IBCOnAcknowledgementPacketCallback(
contractAddress,
packetSenderAddress string,
) error {
- return k.processMockCallback(ctx, callbacktypes.CallbackTypeAcknowledgementPacket, packetSenderAddress)
+ return k.processMockCallback(ctx, callbacktypes.CallbackTypeAcknowledgementPacket, contractAddress)
}
-// IBCOnTimeoutPacketCallback returns nil if the gas meter has greater than
-// or equal to 500_000 gas remaining.
-// This function oog panics if the gas remaining is less than 500_000.
-// This function errors if the authAddress is MockCallbackUnauthorizedAddress.
+// IBCOnTimeoutPacketCallback increments the stateful entry counter and the timeout_packet callback counter.
+// This function:
+// - returns MockApplicationCallbackError and consumes half the remaining gas if the contract address is ErrorContract
+// - Oog panics and consumes all the remaining gas + 1 if the contract address is OogPanicContract
+// - returns MockApplicationCallbackError and consumes all the remaining gas + 1 if the contract address is OogErrorContract
+// - Panics and consumes half the remaining gas if the contract address is PanicContract
+// - returns nil and consumes half the remaining gas if the contract address is SuccessContract or any other value
func (k ContractKeeper) IBCOnTimeoutPacketCallback(
ctx sdk.Context,
packet channeltypes.Packet,
@@ -111,30 +131,38 @@ func (k ContractKeeper) IBCOnTimeoutPacketCallback(
contractAddress,
packetSenderAddress string,
) error {
- return k.processMockCallback(ctx, callbacktypes.CallbackTypeTimeoutPacket, packetSenderAddress)
+ return k.processMockCallback(ctx, callbacktypes.CallbackTypeTimeoutPacket, contractAddress)
}
-// IBCReceivePacketCallback returns nil if the gas meter has greater than
-// or equal to 500_000 gas remaining.
-// This function oog panics if the gas remaining is less than 500_000.
-// This function errors if the authAddress is MockCallbackUnauthorizedAddress.
+// IBCReceivePacketCallback increments the stateful entry counter and the receive_packet callback counter.
+// This function:
+// - returns MockApplicationCallbackError and consumes half the remaining gas if the contract address is ErrorContract
+// - Oog panics and consumes all the remaining gas + 1 if the contract address is OogPanicContract
+// - returns MockApplicationCallbackError and consumes all the remaining gas + 1 if the contract address is OogErrorContract
+// - Panics and consumes half the remaining gas if the contract address is PanicContract
+// - returns nil and consumes half the remaining gas if the contract address is SuccessContract or any other value
func (k ContractKeeper) IBCReceivePacketCallback(
ctx sdk.Context,
packet ibcexported.PacketI,
ack ibcexported.Acknowledgement,
contractAddress string,
) error {
- return k.processMockCallback(ctx, callbacktypes.CallbackTypeReceivePacket, "")
+ return k.processMockCallback(ctx, callbacktypes.CallbackTypeReceivePacket, contractAddress)
}
-// processMockCallback returns nil if the gas meter has greater than or equal to 500_000 gas remaining.
-// This function oog panics if the gas remaining is less than 500_000.
-// This function errors if the authAddress is MockCallbackUnauthorizedAddress.
+// processMockCallback processes a mock callback.
+// It increments the stateful entry counter and the callback counter.
+// This function:
+// - returns MockApplicationCallbackError and consumes half the remaining gas if the contract address is ErrorContract
+// - Oog panics and consumes all the remaining gas + 1 if the contract address is OogPanicContract
+// - returns MockApplicationCallbackError and consumes all the remaining gas + 1 if the contract address is OogErrorContract
+// - Panics and consumes half the remaining gas if the contract address is PanicContract
+// - returns nil and consumes half the remaining gas if the contract address is SuccessContract or any other value
func (k ContractKeeper) processMockCallback(
ctx sdk.Context,
callbackType callbacktypes.CallbackType,
- authAddress string,
-) error {
+ contractAddress string,
+) (err error) {
gasRemaining := ctx.GasMeter().GasRemaining()
// increment stateful entries, if the callbacks module handler
@@ -145,16 +173,28 @@ func (k ContractKeeper) processMockCallback(
// increment callback execution attempts
k.Counters[callbackType]++
- if gasRemaining < 500000 {
- // consume gas will panic since we attempt to consume 500_000 gas, for tests
- ctx.GasMeter().ConsumeGas(500000, fmt.Sprintf("mock %s callback panic", callbackType))
- }
-
- if authAddress == MockCallbackUnauthorizedAddress {
- ctx.GasMeter().ConsumeGas(500000, fmt.Sprintf("mock %s callback unauthorized", callbackType))
+ switch contractAddress {
+ case ErrorContract:
+ // consume half of the remaining gas so that ConsumeGas cannot oog panic
+ ctx.GasMeter().ConsumeGas(gasRemaining/2, fmt.Sprintf("mock %s callback unauthorized", callbackType))
return ibcmock.MockApplicationCallbackError
+ case OogPanicContract:
+ ctx.GasMeter().ConsumeGas(gasRemaining+1, fmt.Sprintf("mock %s callback oog panic", callbackType))
+ return nil // unreachable
+ case OogErrorContract:
+ defer func() {
+ _ = recover()
+ err = ibcmock.MockApplicationCallbackError
+ }()
+ ctx.GasMeter().ConsumeGas(gasRemaining+1, fmt.Sprintf("mock %s callback oog error", callbackType))
+ return nil // unreachable
+ case PanicContract:
+ // consume half of the remaining gas so that ConsumeGas cannot oog panic
+ ctx.GasMeter().ConsumeGas(gasRemaining/2, fmt.Sprintf("mock %s callback panic", callbackType))
+ panic(ibcmock.MockApplicationCallbackError)
+ default:
+ // consume half of the remaining gas so that ConsumeGas cannot oog panic
+ ctx.GasMeter().ConsumeGas(gasRemaining/2, fmt.Sprintf("mock %s callback success", callbackType))
+ return nil // success
}
-
- ctx.GasMeter().ConsumeGas(500000, fmt.Sprintf("mock %s callback success", callbackType))
- return nil
}
diff --git a/modules/apps/callbacks/testing/simapp/encoding.go b/modules/apps/callbacks/testing/simapp/encoding.go
index 80b7092f715..dc6ab8f7ca6 100644
--- a/modules/apps/callbacks/testing/simapp/encoding.go
+++ b/modules/apps/callbacks/testing/simapp/encoding.go
@@ -1,20 +1,16 @@
package simapp
import (
- "github.com/cosmos/cosmos-sdk/std"
-
- simappparams "github.com/cosmos/ibc-go/modules/apps/callbacks/testing/simapp/params"
+ "github.com/cosmos/cosmos-sdk/client"
+ "github.com/cosmos/cosmos-sdk/codec"
+ "github.com/cosmos/cosmos-sdk/codec/types"
)
-// MakeTestEncodingConfig creates an EncodingConfig for testing. This function
-// should be used only in tests or when creating a new app instance (NewApp*()).
-// App user shouldn't create new codecs - use the app.AppCodec instead.
-// [DEPRECATED]
-func MakeTestEncodingConfig() simappparams.EncodingConfig {
- encodingConfig := simappparams.MakeTestEncodingConfig()
- std.RegisterLegacyAminoCodec(encodingConfig.Amino)
- std.RegisterInterfaces(encodingConfig.InterfaceRegistry)
- ModuleBasics.RegisterLegacyAminoCodec(encodingConfig.Amino)
- ModuleBasics.RegisterInterfaces(encodingConfig.InterfaceRegistry)
- return encodingConfig
+// EncodingConfig specifies the concrete encoding types to use for a given app.
+// This is provided for compatibility between protobuf and amino implementations.
+type EncodingConfig struct {
+ InterfaceRegistry types.InterfaceRegistry
+ Codec codec.Codec
+ TxConfig client.TxConfig
+ Amino *codec.LegacyAmino
}
diff --git a/modules/apps/callbacks/testing/simapp/export.go b/modules/apps/callbacks/testing/simapp/export.go
index 4d6489f63d4..40891d5182e 100644
--- a/modules/apps/callbacks/testing/simapp/export.go
+++ b/modules/apps/callbacks/testing/simapp/export.go
@@ -4,14 +4,13 @@ import (
"encoding/json"
"log"
+ storetypes "cosmossdk.io/store/types"
+
servertypes "github.com/cosmos/cosmos-sdk/server/types"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types"
"github.com/cosmos/cosmos-sdk/x/staking"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
-
- tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
)
// ExportAppStateAndValidators exports the state of the application for a genesis
@@ -20,7 +19,7 @@ func (app *SimApp) ExportAppStateAndValidators(
forZeroHeight bool, jailAllowedAddrs []string, modulesToExport []string,
) (servertypes.ExportedApp, error) {
// as if they could withdraw from the start of the next block
- ctx := app.NewContext(true, tmproto.Header{Height: app.LastBlockHeight()})
+ ctx := app.NewContext(true)
// We export at last height + 1, because that's the height at which
// Tendermint will start InitChain.
@@ -30,7 +29,10 @@ func (app *SimApp) ExportAppStateAndValidators(
app.prepForZeroHeightGenesis(ctx, jailAllowedAddrs)
}
- genState := app.ModuleManager.ExportGenesis(ctx, app.appCodec)
+ genState, err := app.ModuleManager.ExportGenesis(ctx, app.appCodec)
+ if err != nil {
+ return servertypes.ExportedApp{}, err
+ }
appState, err := json.MarshalIndent(genState, "", " ")
if err != nil {
return servertypes.ExportedApp{}, err
@@ -72,13 +74,24 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
/* Handle fee distribution state. */
// withdraw all validator commission
- app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) {
- _, _ = app.DistrKeeper.WithdrawValidatorCommission(ctx, val.GetOperator())
+ err := app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) {
+ valBz, err := app.StakingKeeper.ValidatorAddressCodec().StringToBytes(val.GetOperator())
+ if err != nil {
+ panic(err)
+ }
+ _, _ = app.DistrKeeper.WithdrawValidatorCommission(ctx, valBz)
return false
})
+ if err != nil {
+ panic(err)
+ }
// withdraw all delegator rewards
- dels := app.StakingKeeper.GetAllDelegations(ctx)
+ dels, err := app.StakingKeeper.GetAllDelegations(ctx)
+ if err != nil {
+ panic(err)
+ }
+
for _, delegation := range dels {
valAddr, err := sdk.ValAddressFromBech32(delegation.ValidatorAddress)
if err != nil {
@@ -103,15 +116,29 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
ctx = ctx.WithBlockHeight(0)
// reinitialize all validators
- app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) {
+ err = app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) {
+ valBz, err := sdk.ValAddressFromBech32(val.GetOperator())
+ if err != nil {
+ panic(err)
+ }
// donate any unwithdrawn outstanding reward fraction tokens to the community pool
- scraps := app.DistrKeeper.GetValidatorOutstandingRewardsCoins(ctx, val.GetOperator())
- feePool := app.DistrKeeper.GetFeePool(ctx)
+ scraps, err := app.DistrKeeper.GetValidatorOutstandingRewardsCoins(ctx, valBz)
+ if err != nil {
+ panic(err)
+ }
+ feePool, err := app.DistrKeeper.FeePool.Get(ctx)
+ if err != nil {
+ panic(err)
+ }
feePool.CommunityPool = feePool.CommunityPool.Add(scraps...)
- app.DistrKeeper.SetFeePool(ctx, feePool)
+ if err := app.DistrKeeper.FeePool.Set(ctx, feePool); err != nil {
+ panic(err)
+ }
- err := app.DistrKeeper.Hooks().AfterValidatorCreated(ctx, val.GetOperator())
- return err != nil
+ if err := app.DistrKeeper.Hooks().AfterValidatorCreated(ctx, valBz); err != nil {
+ panic(err)
+ }
+ return false
})
// reinitialize all delegations
@@ -140,22 +167,34 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
/* Handle staking state. */
// iterate through redelegations, reset creation height
- app.StakingKeeper.IterateRedelegations(ctx, func(_ int64, red stakingtypes.Redelegation) (stop bool) {
+ err = app.StakingKeeper.IterateRedelegations(ctx, func(_ int64, red stakingtypes.Redelegation) (stop bool) {
for i := range red.Entries {
red.Entries[i].CreationHeight = 0
}
- app.StakingKeeper.SetRedelegation(ctx, red)
+ err = app.StakingKeeper.SetRedelegation(ctx, red)
+ if err != nil {
+ panic(err)
+ }
return false
})
+ if err != nil {
+ panic(err)
+ }
// iterate through unbonding delegations, reset creation height
- app.StakingKeeper.IterateUnbondingDelegations(ctx, func(_ int64, ubd stakingtypes.UnbondingDelegation) (stop bool) {
+ err = app.StakingKeeper.IterateUnbondingDelegations(ctx, func(_ int64, ubd stakingtypes.UnbondingDelegation) (stop bool) {
for i := range ubd.Entries {
ubd.Entries[i].CreationHeight = 0
}
- app.StakingKeeper.SetUnbondingDelegation(ctx, ubd)
+ err = app.StakingKeeper.SetUnbondingDelegation(ctx, ubd)
+ if err != nil {
+ panic(err)
+ }
return false
})
+ if err != nil {
+ panic(err)
+ }
// Iterate through validators by power descending, reset bond heights, and
// update bond intra-tx counters.
@@ -165,8 +204,8 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
for ; iter.Valid(); iter.Next() {
addr := sdk.ValAddress(stakingtypes.AddressFromValidatorsKey(iter.Key()))
- validator, found := app.StakingKeeper.GetValidator(ctx, addr)
- if !found {
+ validator, err := app.StakingKeeper.GetValidator(ctx, addr)
+ if err != nil {
panic("expected validator, not found")
}
@@ -175,13 +214,16 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
validator.Jailed = true
}
- app.StakingKeeper.SetValidator(ctx, validator)
+ err = app.StakingKeeper.SetValidator(ctx, validator)
+ if err != nil {
+ panic("couldn't set validator")
+ }
counter++
}
iter.Close()
- _, err := app.StakingKeeper.ApplyAndReturnValidatorSetUpdates(ctx)
+ _, err = app.StakingKeeper.ApplyAndReturnValidatorSetUpdates(ctx)
if err != nil {
log.Fatal(err)
}
@@ -189,12 +231,18 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
/* Handle slashing state. */
// reset start height on signing infos
- app.SlashingKeeper.IterateValidatorSigningInfos(
+ err = app.SlashingKeeper.IterateValidatorSigningInfos(
ctx,
func(addr sdk.ConsAddress, info slashingtypes.ValidatorSigningInfo) (stop bool) {
info.StartHeight = 0
- app.SlashingKeeper.SetValidatorSigningInfo(ctx, addr, info)
+ err = app.SlashingKeeper.SetValidatorSigningInfo(ctx, addr, info)
+ if err != nil {
+ panic(err)
+ }
return false
},
)
+ if err != nil {
+ log.Fatal(err)
+ }
}
diff --git a/modules/apps/callbacks/testing/simapp/genesis.go b/modules/apps/callbacks/testing/simapp/genesis.go
index 772e452d443..69fa46b90ef 100644
--- a/modules/apps/callbacks/testing/simapp/genesis.go
+++ b/modules/apps/callbacks/testing/simapp/genesis.go
@@ -2,11 +2,9 @@ package simapp
import (
"encoding/json"
-
- "github.com/cosmos/cosmos-sdk/codec"
)
-// The genesis state of the blockchain is represented here as a map of raw json
+// GenesisState of the blockchain is represented here as a map of raw json
// messages key'd by a identifier string.
// The identifier is used to determine which module genesis information belongs
// to so it may be appropriately routed during init chain.
@@ -14,8 +12,3 @@ import (
// the ModuleBasicManager which populates json from each BasicModule
// object provided to it during init.
type GenesisState map[string]json.RawMessage
-
-// NewDefaultGenesisState generates the default state for the application.
-func NewDefaultGenesisState(cdc codec.JSONCodec) GenesisState {
- return ModuleBasics.DefaultGenesis(cdc)
-}
diff --git a/modules/apps/callbacks/testing/simapp/simd/cmd/root.go b/modules/apps/callbacks/testing/simapp/simd/cmd/root.go
new file mode 100644
index 00000000000..5f5b33c9888
--- /dev/null
+++ b/modules/apps/callbacks/testing/simapp/simd/cmd/root.go
@@ -0,0 +1,342 @@
+package cmd
+
+import (
+ "errors"
+ "io"
+ "os"
+
+ dbm "github.com/cosmos/cosmos-db"
+ "github.com/spf13/cobra"
+ "github.com/spf13/viper"
+
+ "cosmossdk.io/log"
+ confixcmd "cosmossdk.io/tools/confix/cmd"
+
+ "github.com/cosmos/cosmos-sdk/client"
+ "github.com/cosmos/cosmos-sdk/client/config"
+ "github.com/cosmos/cosmos-sdk/client/debug"
+ "github.com/cosmos/cosmos-sdk/client/flags"
+ "github.com/cosmos/cosmos-sdk/client/keys"
+ "github.com/cosmos/cosmos-sdk/client/pruning"
+ "github.com/cosmos/cosmos-sdk/client/rpc"
+ "github.com/cosmos/cosmos-sdk/client/snapshot"
+ "github.com/cosmos/cosmos-sdk/codec"
+ "github.com/cosmos/cosmos-sdk/server"
+ serverconfig "github.com/cosmos/cosmos-sdk/server/config"
+ servertypes "github.com/cosmos/cosmos-sdk/server/types"
+ simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
+ sdk "github.com/cosmos/cosmos-sdk/types"
+ "github.com/cosmos/cosmos-sdk/types/module"
+ "github.com/cosmos/cosmos-sdk/types/tx/signing"
+ authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli"
+ "github.com/cosmos/cosmos-sdk/x/auth/tx"
+ txmodule "github.com/cosmos/cosmos-sdk/x/auth/tx/config"
+ "github.com/cosmos/cosmos-sdk/x/auth/types"
+ "github.com/cosmos/cosmos-sdk/x/crisis"
+ genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli"
+
+ cmtcfg "github.com/cometbft/cometbft/config"
+
+ "github.com/cosmos/ibc-go/modules/apps/callbacks/testing/simapp"
+ "github.com/cosmos/ibc-go/modules/apps/callbacks/testing/simapp/params"
+)
+
+// NewRootCmd creates a new root command for simd. It is called once in the
+// main function.
+func NewRootCmd() *cobra.Command {
+ // we "pre"-instantiate the application for getting the injected/configured encoding configuration
+ // note, this is not necessary when using app wiring, as depinject can be directly used (see root_v2.go)
+ tempApp := simapp.NewSimApp(log.NewNopLogger(), dbm.NewMemDB(), nil, true, simtestutil.NewAppOptionsWithFlagHome(tempDir()))
+ encodingConfig := params.EncodingConfig{
+ InterfaceRegistry: tempApp.InterfaceRegistry(),
+ Codec: tempApp.AppCodec(),
+ TxConfig: tempApp.TxConfig(),
+ Amino: tempApp.LegacyAmino(),
+ }
+
+ initClientCtx := client.Context{}.
+ WithCodec(encodingConfig.Codec).
+ WithInterfaceRegistry(encodingConfig.InterfaceRegistry).
+ WithLegacyAmino(encodingConfig.Amino).
+ WithInput(os.Stdin).
+ WithAccountRetriever(types.AccountRetriever{}).
+ WithHomeDir(simapp.DefaultNodeHome).
+ WithViper("") // In simapp, we don't use any prefix for env variables.
+
+ rootCmd := &cobra.Command{
+ Use: "simd",
+ Short: "simulation app",
+ SilenceErrors: true,
+ PersistentPreRunE: func(cmd *cobra.Command, _ []string) error {
+ // set the default command outputs
+ cmd.SetOut(cmd.OutOrStdout())
+ cmd.SetErr(cmd.ErrOrStderr())
+
+ initClientCtx = initClientCtx.WithCmdContext(cmd.Context())
+ initClientCtx, err := client.ReadPersistentCommandFlags(initClientCtx, cmd.Flags())
+ if err != nil {
+ return err
+ }
+
+ initClientCtx, err = config.ReadFromClientConfig(initClientCtx)
+ if err != nil {
+ return err
+ }
+
+ // This needs to go after ReadFromClientConfig, as that function
+ // sets the RPC client needed for SIGN_MODE_TEXTUAL.
+ enabledSignModes := append(tx.DefaultSignModes, signing.SignMode_SIGN_MODE_TEXTUAL) //nolint:gocritic // we know we aren't appending to the same slice
+ txConfigOpts := tx.ConfigOptions{
+ EnabledSignModes: enabledSignModes,
+ TextualCoinMetadataQueryFn: txmodule.NewGRPCCoinMetadataQueryFn(initClientCtx),
+ }
+ txConfigWithTextual, err := tx.NewTxConfigWithOptions(
+ codec.NewProtoCodec(encodingConfig.InterfaceRegistry),
+ txConfigOpts,
+ )
+ if err != nil {
+ return err
+ }
+ initClientCtx = initClientCtx.WithTxConfig(txConfigWithTextual)
+
+ if err := client.SetCmdClientContextHandler(initClientCtx, cmd); err != nil {
+ return err
+ }
+
+ customAppTemplate, customAppConfig := initAppConfig()
+ customCMTConfig := initCometBFTConfig()
+
+ return server.InterceptConfigsPreRunHandler(cmd, customAppTemplate, customAppConfig, customCMTConfig)
+ },
+ }
+
+ initRootCmd(rootCmd, encodingConfig, tempApp.BasicModuleManager)
+
+ if err := tempApp.AutoCliOpts().EnhanceRootCommand(rootCmd); err != nil {
+ panic(err)
+ }
+
+ return rootCmd
+}
+
+// initCometBFTConfig helps to override default CometBFT Config values.
+// return cmtcfg.DefaultConfig if no custom configuration is required for the application.
+func initCometBFTConfig() *cmtcfg.Config {
+ cfg := cmtcfg.DefaultConfig()
+
+ // these values put a higher strain on node memory
+ // cfg.P2P.MaxNumInboundPeers = 100
+ // cfg.P2P.MaxNumOutboundPeers = 40
+
+ return cfg
+}
+
+// initAppConfig helps to override default appConfig template and configs.
+// return "", nil if no custom configuration is required for the application.
+func initAppConfig() (string, interface{}) {
+ // The following code snippet is just for reference.
+
+ // WASMConfig defines configuration for the wasm module.
+ type WASMConfig struct {
+ // This is the maximum sdk gas (wasm and storage) that we allow for any x/wasm "smart" queries
+ QueryGasLimit uint64 `mapstructure:"query_gas_limit"`
+
+ // Address defines the gRPC-web server to listen on
+ LruSize uint64 `mapstructure:"lru_size"`
+ }
+
+ type CustomAppConfig struct {
+ serverconfig.Config
+
+ WASM WASMConfig `mapstructure:"wasm"`
+ }
+
+ // Optionally allow the chain developer to overwrite the SDK's default
+ // server config.
+ srvCfg := serverconfig.DefaultConfig()
+ // The SDK's default minimum gas price is set to "" (empty value) inside
+ // app.toml. If left empty by validators, the node will halt on startup.
+ // However, the chain developer can set a default app.toml value for their
+ // validators here.
+ //
+ // In summary:
+ // - if you leave srvCfg.MinGasPrices = "", all validators MUST tweak their
+ // own app.toml config,
+ // - if you set srvCfg.MinGasPrices non-empty, validators CAN tweak their
+ // own app.toml to override, or use this default value.
+ //
+ // In simapp, we set the min gas prices to 0.
+ srvCfg.MinGasPrices = "0stake"
+ // srvCfg.BaseConfig.IAVLDisableFastNode = true // disable fastnode by default
+
+ customAppConfig := CustomAppConfig{
+ Config: *srvCfg,
+ WASM: WASMConfig{
+ LruSize: 1,
+ QueryGasLimit: 300000,
+ },
+ }
+
+ customAppTemplate := serverconfig.DefaultConfigTemplate + `
+[wasm]
+# This is the maximum sdk gas (wasm and storage) that we allow for any x/wasm "smart" queries
+query_gas_limit = 300000
+# This is the number of wasm vm instances we keep cached in memory for speed-up
+# Warning: this is currently unstable and may lead to crashes, best to keep for 0 unless testing locally
+lru_size = 0`
+
+ return customAppTemplate, customAppConfig
+}
+
+func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingConfig, basicManager module.BasicManager) {
+ cfg := sdk.GetConfig()
+ cfg.Seal()
+
+ rootCmd.AddCommand(
+ genutilcli.InitCmd(basicManager, simapp.DefaultNodeHome),
+ debug.Cmd(),
+ confixcmd.ConfigCommand(),
+ pruning.Cmd(newApp, simapp.DefaultNodeHome),
+ snapshot.Cmd(newApp),
+ server.QueryBlockResultsCmd(),
+ )
+
+ server.AddCommands(rootCmd, simapp.DefaultNodeHome, newApp, appExport, addModuleInitFlags)
+
+ // add keybase, auxiliary RPC, query, genesis, and tx child commands
+ rootCmd.AddCommand(
+ server.StatusCommand(),
+ genesisCommand(encodingConfig, basicManager),
+ txCommand(),
+ queryCommand(),
+ keys.Commands(),
+ )
+}
+
+func addModuleInitFlags(startCmd *cobra.Command) {
+ crisis.AddModuleInitFlags(startCmd)
+}
+
+func queryCommand() *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "query",
+ Aliases: []string{"q"},
+ Short: "Querying subcommands",
+ DisableFlagParsing: false,
+ SuggestionsMinimumDistance: 2,
+ RunE: client.ValidateCmd,
+ }
+
+ cmd.AddCommand(
+ rpc.ValidatorCommand(),
+ server.QueryBlockCmd(),
+ authcmd.QueryTxsByEventsCmd(),
+ server.QueryBlocksCmd(),
+ authcmd.QueryTxCmd(),
+ authcmd.GetSimulateCmd(),
+ )
+
+ return cmd
+}
+
+func txCommand() *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "tx",
+ Short: "Transactions subcommands",
+ DisableFlagParsing: false,
+ SuggestionsMinimumDistance: 2,
+ RunE: client.ValidateCmd,
+ }
+
+ cmd.AddCommand(
+ authcmd.GetSignCommand(),
+ authcmd.GetSignBatchCommand(),
+ authcmd.GetMultiSignCommand(),
+ authcmd.GetMultiSignBatchCmd(),
+ authcmd.GetValidateSignaturesCommand(),
+ authcmd.GetBroadcastCommand(),
+ authcmd.GetEncodeCommand(),
+ authcmd.GetDecodeCommand(),
+ authcmd.GetAuxToFeeCommand(),
+ )
+
+ return cmd
+}
+
+// genesisCommand builds genesis-related `simd genesis` command. Users may provide application specific commands as a parameter
+func genesisCommand(encodingConfig params.EncodingConfig, basicManager module.BasicManager, cmds ...*cobra.Command) *cobra.Command {
+ cmd := genutilcli.Commands(encodingConfig.TxConfig, basicManager, simapp.DefaultNodeHome)
+
+ for _, subCmd := range cmds {
+ cmd.AddCommand(subCmd)
+ }
+ return cmd
+}
+
+// newApp creates the application
+func newApp(
+ logger log.Logger,
+ db dbm.DB,
+ traceStore io.Writer,
+ appOpts servertypes.AppOptions,
+) servertypes.Application {
+ baseappOptions := server.DefaultBaseappOptions(appOpts)
+
+ return simapp.NewSimApp(
+ logger, db, traceStore, true,
+ appOpts,
+ baseappOptions...,
+ )
+}
+
+// appExport creates a new simapp (optionally at a given height) and exports state.
+func appExport(
+ logger log.Logger,
+ db dbm.DB,
+ traceStore io.Writer,
+ height int64,
+ forZeroHeight bool,
+ jailAllowedAddrs []string,
+ appOpts servertypes.AppOptions,
+ modulesToExport []string,
+) (servertypes.ExportedApp, error) {
+ var simApp *simapp.SimApp
+
+ // this check is necessary as we use the flag in x/upgrade.
+ // we can exit more gracefully by checking the flag here.
+ homePath, ok := appOpts.Get(flags.FlagHome).(string)
+ if !ok || homePath == "" {
+ return servertypes.ExportedApp{}, errors.New("application home not set")
+ }
+
+ viperAppOpts, ok := appOpts.(*viper.Viper)
+ if !ok {
+ return servertypes.ExportedApp{}, errors.New("appOpts is not viper.Viper")
+ }
+
+ // overwrite the FlagInvCheckPeriod
+ viperAppOpts.Set(server.FlagInvCheckPeriod, 1)
+ appOpts = viperAppOpts
+
+ if height != -1 {
+ simApp = simapp.NewSimApp(logger, db, traceStore, false, appOpts)
+
+ if err := simApp.LoadHeight(height); err != nil {
+ return servertypes.ExportedApp{}, err
+ }
+ } else {
+ simApp = simapp.NewSimApp(logger, db, traceStore, true, appOpts)
+ }
+
+ return simApp.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs, modulesToExport)
+}
+
+var tempDir = func() string {
+ dir, err := os.MkdirTemp("", "simapp")
+ if err != nil {
+ dir = simapp.DefaultNodeHome
+ }
+ defer os.RemoveAll(dir)
+
+ return dir
+}
diff --git a/modules/apps/callbacks/testing/simapp/simd/main.go b/modules/apps/callbacks/testing/simapp/simd/main.go
new file mode 100644
index 00000000000..61e9d7c2180
--- /dev/null
+++ b/modules/apps/callbacks/testing/simapp/simd/main.go
@@ -0,0 +1,20 @@
+package main
+
+import (
+ "os"
+
+ "cosmossdk.io/log"
+
+ svrcmd "github.com/cosmos/cosmos-sdk/server/cmd"
+
+ "github.com/cosmos/ibc-go/modules/apps/callbacks/testing/simapp"
+ "github.com/cosmos/ibc-go/modules/apps/callbacks/testing/simapp/simd/cmd"
+)
+
+func main() {
+ rootCmd := cmd.NewRootCmd()
+ if err := svrcmd.Execute(rootCmd, "", simapp.DefaultNodeHome); err != nil {
+ log.NewLogger(rootCmd.OutOrStderr()).Error("failure when running app", "err", err)
+ os.Exit(1)
+ }
+}
diff --git a/modules/apps/callbacks/transfer_test.go b/modules/apps/callbacks/transfer_test.go
index da523043f6b..83627779177 100644
--- a/modules/apps/callbacks/transfer_test.go
+++ b/modules/apps/callbacks/transfer_test.go
@@ -3,16 +3,17 @@ package ibccallbacks_test
import (
"fmt"
+ sdkmath "cosmossdk.io/math"
+
sdk "github.com/cosmos/cosmos-sdk/types"
+ "github.com/cosmos/ibc-go/modules/apps/callbacks/testing/simapp"
"github.com/cosmos/ibc-go/modules/apps/callbacks/types"
transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
)
-var callbackAddr = ibctesting.TestAccAddress
-
func (s *CallbacksTestSuite) TestTransferCallbacks() {
testCases := []struct {
name string
@@ -28,19 +29,19 @@ func (s *CallbacksTestSuite) TestTransferCallbacks() {
},
{
"success: dest callback",
- fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.SuccessContract),
types.CallbackTypeReceivePacket,
true,
},
{
"success: dest callback with other json fields",
- fmt.Sprintf(`{"dest_callback": {"address": "%s"}, "something_else": {}}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}, "something_else": {}}`, simapp.SuccessContract),
types.CallbackTypeReceivePacket,
true,
},
{
"success: dest callback with malformed json",
- fmt.Sprintf(`{"dest_callback": {"address": "%s"}, malformed}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}, malformed}`, simapp.SuccessContract),
"none",
true,
},
@@ -52,19 +53,19 @@ func (s *CallbacksTestSuite) TestTransferCallbacks() {
},
{
"success: source callback",
- fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.SuccessContract),
types.CallbackTypeAcknowledgementPacket,
true,
},
{
"success: source callback with other json fields",
- fmt.Sprintf(`{"src_callback": {"address": "%s"}, "something_else": {}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}, "something_else": {}}`, simapp.SuccessContract),
types.CallbackTypeAcknowledgementPacket,
true,
},
{
"success: source callback with malformed json",
- fmt.Sprintf(`{"src_callback": {"address": "%s"}, malformed}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}, malformed}`, simapp.SuccessContract),
"none",
true,
},
@@ -76,13 +77,25 @@ func (s *CallbacksTestSuite) TestTransferCallbacks() {
},
{
"failure: dest callback with low gas (panic)",
- fmt.Sprintf(`{"dest_callback": {"address": "%s", "gas_limit": "450000"}}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.OogPanicContract),
types.CallbackTypeReceivePacket,
false,
},
{
"failure: source callback with low gas (panic)",
- fmt.Sprintf(`{"src_callback": {"address": "%s", "gas_limit": "450000"}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.OogPanicContract),
+ types.CallbackTypeSendPacket,
+ false,
+ },
+ {
+ "failure: dest callback with low gas (error)",
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.OogErrorContract),
+ types.CallbackTypeReceivePacket,
+ false,
+ },
+ {
+ "failure: source callback with low gas (error)",
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.OogErrorContract),
types.CallbackTypeSendPacket,
false,
},
@@ -111,25 +124,37 @@ func (s *CallbacksTestSuite) TestTransferTimeoutCallbacks() {
},
{
"success: dest callback",
- fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.SuccessContract),
"none", // timeouts don't reach destination chain execution
true,
},
{
"success: source callback",
- fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.SuccessContract),
types.CallbackTypeTimeoutPacket,
true,
},
{
"success: dest callback with low gas (panic)",
- fmt.Sprintf(`{"dest_callback": {"address": "%s", "gas_limit": "450000"}}`, callbackAddr),
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.OogPanicContract),
+ "none", // timeouts don't reach destination chain execution
+ true,
+ },
+ {
+ "success: dest callback with low gas (error)",
+ fmt.Sprintf(`{"dest_callback": {"address": "%s"}}`, simapp.OogErrorContract),
"none", // timeouts don't reach destination chain execution
true,
},
{
"failure: source callback with low gas (panic)",
- fmt.Sprintf(`{"src_callback": {"address": "%s", "gas_limit": "450000"}}`, callbackAddr),
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.OogPanicContract),
+ types.CallbackTypeSendPacket,
+ false,
+ },
+ {
+ "failure: source callback with low gas (error)",
+ fmt.Sprintf(`{"src_callback": {"address": "%s"}}`, simapp.OogErrorContract),
types.CallbackTypeSendPacket,
false,
},
@@ -138,7 +163,7 @@ func (s *CallbacksTestSuite) TestTransferTimeoutCallbacks() {
for _, tc := range testCases {
s.SetupTransferTest()
- s.ExecuteTransferTimeout(tc.transferMemo, 1)
+ s.ExecuteTransferTimeout(tc.transferMemo)
s.AssertHasExecutedExpectedCallback(tc.expCallback, tc.expSuccess)
}
}
@@ -168,7 +193,7 @@ func (s *CallbacksTestSuite) ExecuteTransfer(memo string) {
return // we return if send packet is rejected
}
- packet, err := ibctesting.ParsePacketFromEvents(res.GetEvents().ToABCIEvents())
+ packet, err := ibctesting.ParsePacketFromEvents(res.GetEvents())
s.Require().NoError(err)
// relay send
@@ -178,12 +203,12 @@ func (s *CallbacksTestSuite) ExecuteTransfer(memo string) {
// check that the escrow address balance increased by 100
s.Require().Equal(escrowBalance.Add(amount), GetSimApp(s.chainA).BankKeeper.GetBalance(s.chainA.GetContext(), escrowAddress, sdk.DefaultBondDenom))
// check that the receiving address balance increased by 100
- s.Require().Equal(receiverBalance.AddAmount(sdk.NewInt(100)), GetSimApp(s.chainB).BankKeeper.GetBalance(s.chainB.GetContext(), s.chainB.SenderAccount.GetAddress(), voucherDenomTrace.IBCDenom()))
+ s.Require().Equal(receiverBalance.AddAmount(sdkmath.NewInt(100)), GetSimApp(s.chainB).BankKeeper.GetBalance(s.chainB.GetContext(), s.chainB.SenderAccount.GetAddress(), voucherDenomTrace.IBCDenom()))
}
// ExecuteTransferTimeout executes a transfer message on chainA for 100 denom.
// This message is not relayed to chainB, and it times out on chainA.
-func (s *CallbacksTestSuite) ExecuteTransferTimeout(memo string, nextSeqRecv uint64) {
+func (s *CallbacksTestSuite) ExecuteTransferTimeout(memo string) {
timeoutHeight := clienttypes.GetSelfHeight(s.chainB.GetContext())
timeoutTimestamp := uint64(s.chainB.GetContext().BlockTime().UnixNano())
@@ -202,7 +227,7 @@ func (s *CallbacksTestSuite) ExecuteTransferTimeout(memo string, nextSeqRecv uin
return // we return if send packet is rejected
}
- packet, err := ibctesting.ParsePacketFromEvents(res.GetEvents().ToABCIEvents())
+ packet, err := ibctesting.ParsePacketFromEvents(res.GetEvents())
s.Require().NoError(err) // packet committed
s.Require().NotNil(packet)
diff --git a/modules/apps/callbacks/types/events_test.go b/modules/apps/callbacks/types/events_test.go
index ffc99b94454..d8fb37d8b5a 100644
--- a/modules/apps/callbacks/types/events_test.go
+++ b/modules/apps/callbacks/types/events_test.go
@@ -10,13 +10,41 @@ import (
)
func (s *CallbacksTypesTestSuite) TestEvents() {
+ constEvents := func() ibctesting.EventsMap {
+ return ibctesting.EventsMap{
+ types.EventTypeSourceCallback: {
+ sdk.AttributeKeyModule: types.ModuleName,
+ types.AttributeKeyCallbackType: string(types.CallbackTypeAcknowledgementPacket),
+ types.AttributeKeyCallbackAddress: ibctesting.TestAccAddress,
+ types.AttributeKeyCallbackGasLimit: "100000",
+ types.AttributeKeyCallbackCommitGasLimit: "200000",
+ types.AttributeKeyCallbackSourcePortID: ibctesting.MockPort,
+ types.AttributeKeyCallbackSourceChannelID: ibctesting.FirstChannelID,
+ types.AttributeKeyCallbackSequence: "1",
+ types.AttributeKeyCallbackResult: types.AttributeValueCallbackSuccess,
+ },
+ types.EventTypeDestinationCallback: {
+ sdk.AttributeKeyModule: types.ModuleName,
+ types.AttributeKeyCallbackType: string(types.CallbackTypeReceivePacket),
+ types.AttributeKeyCallbackAddress: ibctesting.TestAccAddress,
+ types.AttributeKeyCallbackGasLimit: "100000",
+ types.AttributeKeyCallbackCommitGasLimit: "200000",
+ types.AttributeKeyCallbackDestPortID: ibctesting.MockFeePort,
+ types.AttributeKeyCallbackDestChannelID: ibctesting.InvalidID,
+ types.AttributeKeyCallbackSequence: "1",
+ types.AttributeKeyCallbackResult: types.AttributeValueCallbackSuccess,
+ },
+ }
+ }
+
+ var expEvents ibctesting.EventsMap
testCases := []struct {
name string
packet channeltypes.Packet
callbackType types.CallbackType
callbackData types.CallbackData
callbackError error
- expEvents ibctesting.EventsMap
+ malleate func()
}{
{
"success: ack callback",
@@ -27,23 +55,11 @@ func (s *CallbacksTypesTestSuite) TestEvents() {
types.CallbackTypeAcknowledgementPacket,
types.CallbackData{
CallbackAddress: ibctesting.TestAccAddress,
- ExecutionGasLimit: 100000,
- CommitGasLimit: 200000,
+ ExecutionGasLimit: 100_000,
+ CommitGasLimit: 200_000,
},
nil,
- ibctesting.EventsMap{
- types.EventTypeSourceCallback: {
- sdk.AttributeKeyModule: types.ModuleName,
- types.AttributeKeyCallbackType: string(types.CallbackTypeAcknowledgementPacket),
- types.AttributeKeyCallbackAddress: ibctesting.TestAccAddress,
- types.AttributeKeyCallbackGasLimit: "100000",
- types.AttributeKeyCallbackCommitGasLimit: "200000",
- types.AttributeKeyCallbackSourcePortID: ibctesting.MockPort,
- types.AttributeKeyCallbackSourceChannelID: ibctesting.FirstChannelID,
- types.AttributeKeyCallbackSequence: "1",
- types.AttributeKeyCallbackResult: types.AttributeValueCallbackSuccess,
- },
- },
+ func() {},
},
{
"success: send packet callback",
@@ -54,22 +70,12 @@ func (s *CallbacksTypesTestSuite) TestEvents() {
types.CallbackTypeSendPacket,
types.CallbackData{
CallbackAddress: ibctesting.TestAccAddress,
- ExecutionGasLimit: 100000,
- CommitGasLimit: 200000,
+ ExecutionGasLimit: 100_000,
+ CommitGasLimit: 200_000,
},
nil,
- ibctesting.EventsMap{
- types.EventTypeSourceCallback: {
- sdk.AttributeKeyModule: types.ModuleName,
- types.AttributeKeyCallbackType: string(types.CallbackTypeSendPacket),
- types.AttributeKeyCallbackAddress: ibctesting.TestAccAddress,
- types.AttributeKeyCallbackGasLimit: "100000",
- types.AttributeKeyCallbackCommitGasLimit: "200000",
- types.AttributeKeyCallbackSourcePortID: ibctesting.MockPort,
- types.AttributeKeyCallbackSourceChannelID: ibctesting.FirstChannelID,
- types.AttributeKeyCallbackSequence: "1",
- types.AttributeKeyCallbackResult: types.AttributeValueCallbackSuccess,
- },
+ func() {
+ expEvents[types.EventTypeSourceCallback][types.AttributeKeyCallbackType] = string(types.CallbackTypeSendPacket)
},
},
{
@@ -81,22 +87,12 @@ func (s *CallbacksTypesTestSuite) TestEvents() {
types.CallbackTypeTimeoutPacket,
types.CallbackData{
CallbackAddress: ibctesting.TestAccAddress,
- ExecutionGasLimit: 100000,
- CommitGasLimit: 200000,
+ ExecutionGasLimit: 100_000,
+ CommitGasLimit: 200_000,
},
nil,
- ibctesting.EventsMap{
- types.EventTypeSourceCallback: {
- sdk.AttributeKeyModule: types.ModuleName,
- types.AttributeKeyCallbackType: string(types.CallbackTypeTimeoutPacket),
- types.AttributeKeyCallbackAddress: ibctesting.TestAccAddress,
- types.AttributeKeyCallbackGasLimit: "100000",
- types.AttributeKeyCallbackCommitGasLimit: "200000",
- types.AttributeKeyCallbackSourcePortID: ibctesting.MockPort,
- types.AttributeKeyCallbackSourceChannelID: ibctesting.FirstChannelID,
- types.AttributeKeyCallbackSequence: "1",
- types.AttributeKeyCallbackResult: types.AttributeValueCallbackSuccess,
- },
+ func() {
+ expEvents[types.EventTypeSourceCallback][types.AttributeKeyCallbackType] = string(types.CallbackTypeTimeoutPacket)
},
},
{
@@ -108,23 +104,11 @@ func (s *CallbacksTypesTestSuite) TestEvents() {
types.CallbackTypeReceivePacket,
types.CallbackData{
CallbackAddress: ibctesting.TestAccAddress,
- ExecutionGasLimit: 100000,
- CommitGasLimit: 200000,
+ ExecutionGasLimit: 100_000,
+ CommitGasLimit: 200_000,
},
nil,
- ibctesting.EventsMap{
- types.EventTypeDestinationCallback: {
- sdk.AttributeKeyModule: types.ModuleName,
- types.AttributeKeyCallbackType: string(types.CallbackTypeReceivePacket),
- types.AttributeKeyCallbackAddress: ibctesting.TestAccAddress,
- types.AttributeKeyCallbackGasLimit: "100000",
- types.AttributeKeyCallbackCommitGasLimit: "200000",
- types.AttributeKeyCallbackDestPortID: ibctesting.MockFeePort,
- types.AttributeKeyCallbackDestChannelID: ibctesting.InvalidID,
- types.AttributeKeyCallbackSequence: "1",
- types.AttributeKeyCallbackResult: types.AttributeValueCallbackSuccess,
- },
- },
+ func() {},
},
{
"success: unknown callback",
@@ -135,22 +119,12 @@ func (s *CallbacksTypesTestSuite) TestEvents() {
"something",
types.CallbackData{
CallbackAddress: ibctesting.TestAccAddress,
- ExecutionGasLimit: 100000,
- CommitGasLimit: 200000,
+ ExecutionGasLimit: 100_000,
+ CommitGasLimit: 200_000,
},
nil,
- ibctesting.EventsMap{
- types.EventTypeSourceCallback: {
- sdk.AttributeKeyModule: types.ModuleName,
- types.AttributeKeyCallbackType: "something",
- types.AttributeKeyCallbackAddress: ibctesting.TestAccAddress,
- types.AttributeKeyCallbackGasLimit: "100000",
- types.AttributeKeyCallbackCommitGasLimit: "200000",
- types.AttributeKeyCallbackSourcePortID: ibctesting.MockPort,
- types.AttributeKeyCallbackSourceChannelID: ibctesting.FirstChannelID,
- types.AttributeKeyCallbackSequence: "1",
- types.AttributeKeyCallbackResult: types.AttributeValueCallbackSuccess,
- },
+ func() {
+ expEvents[types.EventTypeSourceCallback][types.AttributeKeyCallbackType] = "something"
},
},
{
@@ -162,23 +136,13 @@ func (s *CallbacksTypesTestSuite) TestEvents() {
types.CallbackTypeAcknowledgementPacket,
types.CallbackData{
CallbackAddress: ibctesting.TestAccAddress,
- ExecutionGasLimit: 100000,
- CommitGasLimit: 200000,
+ ExecutionGasLimit: 100_000,
+ CommitGasLimit: 200_000,
},
types.ErrNotPacketDataProvider,
- ibctesting.EventsMap{
- types.EventTypeSourceCallback: {
- sdk.AttributeKeyModule: types.ModuleName,
- types.AttributeKeyCallbackType: string(types.CallbackTypeAcknowledgementPacket),
- types.AttributeKeyCallbackAddress: ibctesting.TestAccAddress,
- types.AttributeKeyCallbackGasLimit: "100000",
- types.AttributeKeyCallbackCommitGasLimit: "200000",
- types.AttributeKeyCallbackSourcePortID: ibctesting.MockPort,
- types.AttributeKeyCallbackSourceChannelID: ibctesting.FirstChannelID,
- types.AttributeKeyCallbackSequence: "1",
- types.AttributeKeyCallbackResult: types.AttributeValueCallbackFailure,
- types.AttributeKeyCallbackError: types.ErrNotPacketDataProvider.Error(),
- },
+ func() {
+ expEvents[types.EventTypeSourceCallback][types.AttributeKeyCallbackResult] = types.AttributeValueCallbackFailure
+ expEvents[types.EventTypeSourceCallback][types.AttributeKeyCallbackError] = types.ErrNotPacketDataProvider.Error()
},
},
}
@@ -186,22 +150,28 @@ func (s *CallbacksTypesTestSuite) TestEvents() {
for _, tc := range testCases {
tc := tc
s.Run(tc.name, func() {
+ expEvents = constEvents()
+ tc.malleate()
newCtx := sdk.Context{}.WithEventManager(sdk.NewEventManager())
switch tc.callbackType {
case types.CallbackTypeReceivePacket:
+ delete(expEvents, types.EventTypeSourceCallback)
types.EmitCallbackEvent(
newCtx, tc.packet.GetDestPort(), tc.packet.GetDestChannel(),
tc.packet.GetSequence(), tc.callbackType, tc.callbackData, tc.callbackError,
)
+
default:
+ delete(expEvents, types.EventTypeDestinationCallback)
types.EmitCallbackEvent(
newCtx, tc.packet.GetSourcePort(), tc.packet.GetSourceChannel(),
tc.packet.GetSequence(), tc.callbackType, tc.callbackData, tc.callbackError,
)
}
+
events := newCtx.EventManager().Events().ToABCIEvents()
- ibctesting.AssertEvents(&s.Suite, tc.expEvents, events)
+ ibctesting.AssertEventsLegacy(&s.Suite, expEvents, events)
})
}
}
diff --git a/modules/apps/callbacks/types/expected_keepers.go b/modules/apps/callbacks/types/expected_keepers.go
index 1fc9494c352..ba168602dbe 100644
--- a/modules/apps/callbacks/types/expected_keepers.go
+++ b/modules/apps/callbacks/types/expected_keepers.go
@@ -14,15 +14,16 @@ type ContractKeeper interface {
// packetSenderAddress is determined by the underlying module, and may be empty if the sender is
// unknown or undefined. The contract is expected to handle the callback within the user defined
// gas limit, and handle any errors, or panics gracefully.
- // If an error is returned, the transaction will be reverted by the callbacks middleware, and the
- // packet will not be sent.
+ // This entry point is called with a cached context. If an error is returned, then the changes in
+ // this context will not be persisted, and the error will be propagated to the underlying IBC
+ // application, resulting in a packet send failure.
//
// Implementations are provided with the packetSenderAddress and MAY choose to use this to perform
// validation on the origin of a given packet. It is recommended to perform the same validation
// on all source chain callbacks (SendPacket, AcknowledgementPacket, TimeoutPacket). This
// defensively guards against exploits due to incorrectly wired SendPacket ordering in IBC stacks.
IBCSendPacketCallback(
- ctx sdk.Context,
+ cachedCtx sdk.Context,
sourcePort string,
sourceChannel string,
timeoutHeight clienttypes.Height,
@@ -35,14 +36,15 @@ type ContractKeeper interface {
// is received. The packetSenderAddress is determined by the underlying module, and may be empty if
// the sender is unknown or undefined. The contract is expected to handle the callback within the
// user defined gas limit, and handle any errors, or panics gracefully.
- // If an error is returned, state will be reverted by the callbacks middleware.
+ // This entry point is called with a cached context. If an error is returned, then the changes in
+ // this context will not be persisted, but the packet lifecycle will not be blocked.
//
// Implementations are provided with the packetSenderAddress and MAY choose to use this to perform
// validation on the origin of a given packet. It is recommended to perform the same validation
// on all source chain callbacks (SendPacket, AcknowledgementPacket, TimeoutPacket). This
// defensively guards against exploits due to incorrectly wired SendPacket ordering in IBC stacks.
IBCOnAcknowledgementPacketCallback(
- ctx sdk.Context,
+ cachedCtx sdk.Context,
packet channeltypes.Packet,
acknowledgement []byte,
relayer sdk.AccAddress,
@@ -53,14 +55,15 @@ type ContractKeeper interface {
// the timeout height. The packetSenderAddress is determined by the underlying module, and may be
// empty if the sender is unknown or undefined. The contract is expected to handle the callback
// within the user defined gas limit, and handle any error, out of gas, or panics gracefully.
- // If an error is returned, state will be reverted by the callbacks middleware.
+ // This entry point is called with a cached context. If an error is returned, then the changes in
+ // this context will not be persisted, but the packet lifecycle will not be blocked.
//
// Implementations are provided with the packetSenderAddress and MAY choose to use this to perform
// validation on the origin of a given packet. It is recommended to perform the same validation
// on all source chain callbacks (SendPacket, AcknowledgementPacket, TimeoutPacket). This
// defensively guards against exploits due to incorrectly wired SendPacket ordering in IBC stacks.
IBCOnTimeoutPacketCallback(
- ctx sdk.Context,
+ cachedCtx sdk.Context,
packet channeltypes.Packet,
relayer sdk.AccAddress,
contractAddress,
@@ -69,9 +72,10 @@ type ContractKeeper interface {
// IBCReceivePacketCallback is called in the destination chain when a packet acknowledgement is written.
// The contract is expected to handle the callback within the user defined gas limit, and handle any errors,
// out of gas, or panics gracefully.
- // If an error is returned, state will be reverted by the callbacks middleware.
+ // This entry point is called with a cached context. If an error is returned, then the changes in
+ // this context will not be persisted, but the packet lifecycle will not be blocked.
IBCReceivePacketCallback(
- ctx sdk.Context,
+ cachedCtx sdk.Context,
packet ibcexported.PacketI,
ack ibcexported.Acknowledgement,
contractAddress string,
diff --git a/modules/apps/transfer/keeper/grpc_query.go b/modules/apps/transfer/keeper/grpc_query.go
index de30f1d1b1d..bd40c9da6da 100644
--- a/modules/apps/transfer/keeper/grpc_query.go
+++ b/modules/apps/transfer/keeper/grpc_query.go
@@ -9,8 +9,8 @@ import (
"google.golang.org/grpc/status"
errorsmod "cosmossdk.io/errors"
+ "cosmossdk.io/store/prefix"
- "github.com/cosmos/cosmos-sdk/store/prefix"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/query"
diff --git a/modules/apps/transfer/keeper/keeper.go b/modules/apps/transfer/keeper/keeper.go
index d21f34190f1..5fe27ac9e28 100644
--- a/modules/apps/transfer/keeper/keeper.go
+++ b/modules/apps/transfer/keeper/keeper.go
@@ -4,16 +4,16 @@ import (
"fmt"
"strings"
+ "cosmossdk.io/log"
sdkmath "cosmossdk.io/math"
+ "cosmossdk.io/store/prefix"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
- "github.com/cosmos/cosmos-sdk/store/prefix"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
tmbytes "github.com/cometbft/cometbft/libs/bytes"
- "github.com/cometbft/cometbft/libs/log"
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
"github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
diff --git a/modules/apps/transfer/keeper/keeper_test.go b/modules/apps/transfer/keeper/keeper_test.go
index 04ea5100ada..95041ff4bdf 100644
--- a/modules/apps/transfer/keeper/keeper_test.go
+++ b/modules/apps/transfer/keeper/keeper_test.go
@@ -7,10 +7,10 @@ import (
testifysuite "github.com/stretchr/testify/suite"
sdkmath "cosmossdk.io/math"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/baseapp"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
diff --git a/modules/apps/transfer/keeper/migrations_test.go b/modules/apps/transfer/keeper/migrations_test.go
index b6072f4db74..dc7f74bf52d 100644
--- a/modules/apps/transfer/keeper/migrations_test.go
+++ b/modules/apps/transfer/keeper/migrations_test.go
@@ -178,7 +178,7 @@ func (suite *KeeperTestSuite) TestMigrateTotalEscrowForDenom() {
coin := sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(100))
// funds the escrow account to have balance
- suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetSimApp().BankKeeper, suite.chainA.GetContext(), escrowAddress, sdk.NewCoins(coin)))
+ suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetContext(), suite.chainA.GetSimApp().BankKeeper, escrowAddress, sdk.NewCoins(coin)))
},
sdkmath.NewInt(100),
},
@@ -195,8 +195,8 @@ func (suite *KeeperTestSuite) TestMigrateTotalEscrowForDenom() {
coin2 := sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(100))
// funds the escrow accounts to have balance
- suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetSimApp().BankKeeper, suite.chainA.GetContext(), escrowAddress1, sdk.NewCoins(coin1)))
- suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetSimApp().BankKeeper, suite.chainA.GetContext(), escrowAddress2, sdk.NewCoins(coin2)))
+ suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetContext(), suite.chainA.GetSimApp().BankKeeper, escrowAddress1, sdk.NewCoins(coin1)))
+ suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetContext(), suite.chainA.GetSimApp().BankKeeper, escrowAddress2, sdk.NewCoins(coin2)))
},
sdkmath.NewInt(200),
},
@@ -211,7 +211,7 @@ func (suite *KeeperTestSuite) TestMigrateTotalEscrowForDenom() {
suite.chainA.GetSimApp().TransferKeeper.SetDenomTrace(suite.chainA.GetContext(), trace)
// funds the escrow account to have balance
- suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetSimApp().BankKeeper, suite.chainA.GetContext(), escrowAddress, sdk.NewCoins(coin)))
+ suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetContext(), suite.chainA.GetSimApp().BankKeeper, escrowAddress, sdk.NewCoins(coin)))
},
sdkmath.NewInt(100),
},
diff --git a/modules/apps/transfer/keeper/msg_server.go b/modules/apps/transfer/keeper/msg_server.go
index 41961e57261..ed3d0969586 100644
--- a/modules/apps/transfer/keeper/msg_server.go
+++ b/modules/apps/transfer/keeper/msg_server.go
@@ -63,8 +63,8 @@ func (k Keeper) Transfer(goCtx context.Context, msg *types.MsgTransfer) (*types.
// UpdateParams defines an rpc handler method for MsgUpdateParams. Updates the ibc-transfer module's parameters.
func (k Keeper) UpdateParams(goCtx context.Context, msg *types.MsgUpdateParams) (*types.MsgUpdateParamsResponse, error) {
- if k.authority != msg.Authority {
- return nil, errorsmod.Wrapf(ibcerrors.ErrUnauthorized, "expected %s, got %s", k.authority, msg.Authority)
+ if k.GetAuthority() != msg.Signer {
+ return nil, errorsmod.Wrapf(ibcerrors.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Signer)
}
ctx := sdk.UnwrapSDKContext(goCtx)
diff --git a/modules/apps/transfer/keeper/msg_server_test.go b/modules/apps/transfer/keeper/msg_server_test.go
index 10310b7097f..dc1e0481d1e 100644
--- a/modules/apps/transfer/keeper/msg_server_test.go
+++ b/modules/apps/transfer/keeper/msg_server_test.go
@@ -119,7 +119,7 @@ func (suite *KeeperTestSuite) TestMsgTransfer() {
suite.Require().NoError(err)
suite.Require().NotNil(res)
suite.Require().NotEqual(res.Sequence, uint64(0))
- ibctesting.AssertEvents(&suite.Suite, expEvents, events)
+ ibctesting.AssertEventsLegacy(&suite.Suite, expEvents, events)
} else {
suite.Require().Error(err)
suite.Require().Nil(res)
@@ -131,34 +131,34 @@ func (suite *KeeperTestSuite) TestMsgTransfer() {
// TestUpdateParams tests UpdateParams rpc handler
func (suite *KeeperTestSuite) TestUpdateParams() {
- validAuthority := suite.chainA.GetSimApp().TransferKeeper.GetAuthority()
+ signer := suite.chainA.GetSimApp().TransferKeeper.GetAuthority()
testCases := []struct {
name string
msg *types.MsgUpdateParams
expPass bool
}{
{
- "success: valid authority and default params",
- types.NewMsgUpdateParams(validAuthority, types.DefaultParams()),
+ "success: valid signer and default params",
+ types.NewMsgUpdateParams(signer, types.DefaultParams()),
true,
},
{
- "failure: malformed authority address",
+ "failure: malformed signer address",
types.NewMsgUpdateParams(ibctesting.InvalidID, types.DefaultParams()),
false,
},
{
- "failure: empty authority address",
+ "failure: empty signer address",
types.NewMsgUpdateParams("", types.DefaultParams()),
false,
},
{
- "failure: whitespace authority address",
+ "failure: whitespace signer address",
types.NewMsgUpdateParams(" ", types.DefaultParams()),
false,
},
{
- "failure: unauthorized authority address",
+ "failure: unauthorized signer address",
types.NewMsgUpdateParams(ibctesting.TestAccAddress, types.DefaultParams()),
false,
},
diff --git a/modules/apps/transfer/keeper/relay.go b/modules/apps/transfer/keeper/relay.go
index f6abdd61bd2..19e0b7eeaa8 100644
--- a/modules/apps/transfer/keeper/relay.go
+++ b/modules/apps/transfer/keeper/relay.go
@@ -4,7 +4,7 @@ import (
"fmt"
"strings"
- metrics "github.com/armon/go-metrics"
+ metrics "github.com/hashicorp/go-metrics"
errorsmod "cosmossdk.io/errors"
sdkmath "cosmossdk.io/math"
diff --git a/modules/apps/transfer/keeper/relay_test.go b/modules/apps/transfer/keeper/relay_test.go
index b0fd9ef1acd..05e3a620f02 100644
--- a/modules/apps/transfer/keeper/relay_test.go
+++ b/modules/apps/transfer/keeper/relay_test.go
@@ -479,8 +479,8 @@ func (suite *KeeperTestSuite) TestOnRecvPacketSetsTotalEscrowAmountForSourceIBCT
coin := sdk.NewCoin(denomTrace.IBCDenom(), amount)
suite.Require().NoError(
banktestutil.FundAccount(
- suite.chainB.GetSimApp().BankKeeper,
suite.chainB.GetContext(),
+ suite.chainB.GetSimApp().BankKeeper,
escrowAddress,
sdk.NewCoins(coin),
),
@@ -535,7 +535,7 @@ func (suite *KeeperTestSuite) TestOnAcknowledgementPacket() {
trace = types.ParseDenomTrace(sdk.DefaultBondDenom)
coin := sdk.NewCoin(sdk.DefaultBondDenom, amount)
- suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetSimApp().BankKeeper, suite.chainA.GetContext(), escrow, sdk.NewCoins(coin)))
+ suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetContext(), suite.chainA.GetSimApp().BankKeeper, escrow, sdk.NewCoins(coin)))
// set escrow amount that would have been stored after successful execution of MsgTransfer
suite.chainA.GetSimApp().TransferKeeper.SetTotalEscrowForDenom(suite.chainA.GetContext(), sdk.NewCoin(sdk.DefaultBondDenom, amount))
@@ -560,7 +560,7 @@ func (suite *KeeperTestSuite) TestOnAcknowledgementPacket() {
trace = types.ParseDenomTrace(types.GetPrefixedDenom(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, sdk.DefaultBondDenom))
coin := sdk.NewCoin(trace.IBCDenom(), amount)
- suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetSimApp().BankKeeper, suite.chainA.GetContext(), escrow, sdk.NewCoins(coin)))
+ suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetContext(), suite.chainA.GetSimApp().BankKeeper, escrow, sdk.NewCoins(coin)))
}, false, true,
},
}
@@ -655,8 +655,8 @@ func (suite *KeeperTestSuite) TestOnAcknowledgementPacketSetsTotalEscrowAmountFo
coin := sdk.NewCoin(denomTrace.IBCDenom(), amount)
suite.Require().NoError(
banktestutil.FundAccount(
- suite.chainB.GetSimApp().BankKeeper,
suite.chainB.GetContext(),
+ suite.chainB.GetSimApp().BankKeeper,
escrowAddress,
sdk.NewCoins(coin),
),
@@ -717,7 +717,7 @@ func (suite *KeeperTestSuite) TestOnTimeoutPacket() {
expEscrowAmount = sdkmath.ZeroInt()
// funds the escrow account to have balance
- suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetSimApp().BankKeeper, suite.chainA.GetContext(), escrow, sdk.NewCoins(coin)))
+ suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetContext(), suite.chainA.GetSimApp().BankKeeper, escrow, sdk.NewCoins(coin)))
// set escrow amount that would have been stored after successful execution of MsgTransfer
suite.chainA.GetSimApp().TransferKeeper.SetTotalEscrowForDenom(suite.chainA.GetContext(), coin)
}, true,
@@ -731,7 +731,7 @@ func (suite *KeeperTestSuite) TestOnTimeoutPacket() {
expEscrowAmount = sdkmath.ZeroInt()
// funds the escrow account to have balance
- suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetSimApp().BankKeeper, suite.chainA.GetContext(), escrow, sdk.NewCoins(coin)))
+ suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetContext(), suite.chainA.GetSimApp().BankKeeper, escrow, sdk.NewCoins(coin)))
}, true,
},
{
@@ -849,8 +849,8 @@ func (suite *KeeperTestSuite) TestOnTimeoutPacketSetsTotalEscrowAmountForSourceI
coin := sdk.NewCoin(denomTrace.IBCDenom(), amount)
suite.Require().NoError(
banktestutil.FundAccount(
- suite.chainB.GetSimApp().BankKeeper,
suite.chainB.GetContext(),
+ suite.chainB.GetSimApp().BankKeeper,
escrowAddress,
sdk.NewCoins(coin),
),
diff --git a/modules/apps/transfer/module.go b/modules/apps/transfer/module.go
index ad9c4e39b39..52c54edfb3c 100644
--- a/modules/apps/transfer/module.go
+++ b/modules/apps/transfer/module.go
@@ -8,6 +8,8 @@ import (
"github.com/grpc-ecosystem/grpc-gateway/runtime"
"github.com/spf13/cobra"
+ "cosmossdk.io/core/appmodule"
+
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/codec"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
@@ -27,6 +29,7 @@ import (
var (
_ module.AppModule = (*AppModule)(nil)
_ module.AppModuleBasic = (*AppModuleBasic)(nil)
+ _ appmodule.AppModule = (*AppModule)(nil)
_ porttypes.IBCModule = (*IBCModule)(nil)
)
@@ -38,6 +41,12 @@ func (AppModuleBasic) Name() string {
return types.ModuleName
}
+// IsOnePerModuleType implements the depinject.OnePerModuleType interface.
+func (AppModule) IsOnePerModuleType() {}
+
+// IsAppModule implements the appmodule.AppModule interface.
+func (AppModule) IsAppModule() {}
+
// RegisterLegacyAminoCodec implements AppModuleBasic interface
func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
types.RegisterLegacyAminoCodec(cdc)
@@ -138,15 +147,6 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw
// ConsensusVersion implements AppModule/ConsensusVersion defining the current version of transfer.
func (AppModule) ConsensusVersion() uint64 { return 4 }
-// BeginBlock implements the AppModule interface
-func (AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) {
-}
-
-// EndBlock implements the AppModule interface
-func (AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate {
- return []abci.ValidatorUpdate{}
-}
-
// AppModuleSimulation functions
// GenerateGenesisState creates a randomized GenState of the transfer module.
@@ -155,7 +155,7 @@ func (AppModule) GenerateGenesisState(simState *module.SimulationState) {
}
// RegisterStoreDecoder registers a decoder for transfer module's types
-func (am AppModule) RegisterStoreDecoder(sdr sdk.StoreDecoderRegistry) {
+func (am AppModule) RegisterStoreDecoder(sdr simtypes.StoreDecoderRegistry) {
sdr[types.StoreKey] = simulation.NewDecodeStore(am.keeper)
}
diff --git a/modules/apps/transfer/simulation/genesis.go b/modules/apps/transfer/simulation/genesis.go
index 220cdddd470..d91d2cb8c28 100644
--- a/modules/apps/transfer/simulation/genesis.go
+++ b/modules/apps/transfer/simulation/genesis.go
@@ -24,19 +24,19 @@ func RadomEnabled(r *rand.Rand) bool {
func RandomizedGenState(simState *module.SimulationState) {
var portID string
simState.AppParams.GetOrGenerate(
- simState.Cdc, port, &portID, simState.Rand,
+ port, &portID, simState.Rand,
func(r *rand.Rand) { portID = strings.ToLower(simtypes.RandStringOfLength(r, 20)) },
)
var sendEnabled bool
simState.AppParams.GetOrGenerate(
- simState.Cdc, string(types.KeySendEnabled), &sendEnabled, simState.Rand,
+ string(types.KeySendEnabled), &sendEnabled, simState.Rand,
func(r *rand.Rand) { sendEnabled = RadomEnabled(r) },
)
var receiveEnabled bool
simState.AppParams.GetOrGenerate(
- simState.Cdc, string(types.KeyReceiveEnabled), &receiveEnabled, simState.Rand,
+ string(types.KeyReceiveEnabled), &receiveEnabled, simState.Rand,
func(r *rand.Rand) { receiveEnabled = RadomEnabled(r) },
)
diff --git a/modules/apps/transfer/types/codec.go b/modules/apps/transfer/types/codec.go
index e04fb6fab0c..22da424c957 100644
--- a/modules/apps/transfer/types/codec.go
+++ b/modules/apps/transfer/types/codec.go
@@ -41,9 +41,6 @@ var (
// The actual codec used for serialization should be provided to x/ibc transfer and
// defined at the application level.
ModuleCdc = codec.NewProtoCodec(codectypes.NewInterfaceRegistry())
-
- // AminoCdc is a amino codec created to support amino json compatible msgs.
- AminoCdc = codec.NewAminoCodec(amino)
)
func init() {
diff --git a/modules/apps/transfer/types/expected_keepers.go b/modules/apps/transfer/types/expected_keepers.go
index e4997fd879f..db029dba534 100644
--- a/modules/apps/transfer/types/expected_keepers.go
+++ b/modules/apps/transfer/types/expected_keepers.go
@@ -1,8 +1,9 @@
package types
import (
+ "context"
+
sdk "github.com/cosmos/cosmos-sdk/types"
- "github.com/cosmos/cosmos-sdk/x/auth/types"
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
connectiontypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types"
@@ -13,20 +14,20 @@ import (
// AccountKeeper defines the contract required for account APIs.
type AccountKeeper interface {
GetModuleAddress(name string) sdk.AccAddress
- GetModuleAccount(ctx sdk.Context, name string) types.ModuleAccountI
+ GetModuleAccount(ctx context.Context, name string) sdk.ModuleAccountI
}
// BankKeeper defines the expected bank keeper
type BankKeeper interface {
- SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error
- MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error
- BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error
- SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
- SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error
+ SendCoins(ctx context.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error
+ MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error
+ BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error
+ SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
+ SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error
BlockedAddr(addr sdk.AccAddress) bool
- IsSendEnabledCoin(ctx sdk.Context, coin sdk.Coin) bool
- GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin
- GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins
+ IsSendEnabledCoin(ctx context.Context, coin sdk.Coin) bool
+ GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin
+ GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins
}
// ChannelKeeper defines the expected IBC channel keeper
diff --git a/modules/apps/transfer/types/msgs.go b/modules/apps/transfer/types/msgs.go
index 08eeaff89f9..cd51a33e696 100644
--- a/modules/apps/transfer/types/msgs.go
+++ b/modules/apps/transfer/types/msgs.go
@@ -25,16 +25,16 @@ var (
)
// NewMsgUpdateParams creates a new MsgUpdateParams instance
-func NewMsgUpdateParams(authority string, params Params) *MsgUpdateParams {
+func NewMsgUpdateParams(signer string, params Params) *MsgUpdateParams {
return &MsgUpdateParams{
- Authority: authority,
- Params: params,
+ Signer: signer,
+ Params: params,
}
}
// ValidateBasic implements sdk.Msg
func (msg MsgUpdateParams) ValidateBasic() error {
- _, err := sdk.AccAddressFromBech32(msg.Authority)
+ _, err := sdk.AccAddressFromBech32(msg.Signer)
if err != nil {
return errorsmod.Wrapf(ibcerrors.ErrInvalidAddress, "string could not be parsed as address: %v", err)
}
@@ -44,7 +44,7 @@ func (msg MsgUpdateParams) ValidateBasic() error {
// GetSigners implements sdk.Msg
func (msg MsgUpdateParams) GetSigners() []sdk.AccAddress {
- accAddr, err := sdk.AccAddressFromBech32(msg.Authority)
+ accAddr, err := sdk.AccAddressFromBech32(msg.Signer)
if err != nil {
panic(err)
}
@@ -111,7 +111,7 @@ func (msg MsgTransfer) ValidateBasic() error {
// GetSignBytes implements legacytx.LegacyMsg
func (msg MsgTransfer) GetSignBytes() []byte {
- return sdk.MustSortJSON(AminoCdc.MustMarshalJSON(&msg))
+ return sdk.MustSortJSON(amino.MustMarshalJSON(&msg))
}
// GetSigners implements sdk.Msg
diff --git a/modules/apps/transfer/types/msgs_test.go b/modules/apps/transfer/types/msgs_test.go
index b967e699fa8..2004645a9f4 100644
--- a/modules/apps/transfer/types/msgs_test.go
+++ b/modules/apps/transfer/types/msgs_test.go
@@ -112,9 +112,9 @@ func TestMsgUpdateParamsValidateBasic(t *testing.T) {
msg *types.MsgUpdateParams
expPass bool
}{
- {"success: valid authority and valid params", types.NewMsgUpdateParams(ibctesting.TestAccAddress, types.DefaultParams()), true},
- {"failure: invalid authority with valid params", types.NewMsgUpdateParams(invalidAddress, types.DefaultParams()), false},
- {"failure: empty authority with valid params", types.NewMsgUpdateParams(emptyAddr, types.DefaultParams()), false},
+ {"success: valid signer and valid params", types.NewMsgUpdateParams(ibctesting.TestAccAddress, types.DefaultParams()), true},
+ {"failure: invalid signer with valid params", types.NewMsgUpdateParams(invalidAddress, types.DefaultParams()), false},
+ {"failure: empty signer with valid params", types.NewMsgUpdateParams(emptyAddr, types.DefaultParams()), false},
}
for i, tc := range testCases {
@@ -140,8 +140,8 @@ func TestMsgUpdateParamsGetSigners(t *testing.T) {
for _, tc := range testCases {
msg := types.MsgUpdateParams{
- Authority: tc.address.String(),
- Params: types.DefaultParams(),
+ Signer: tc.address.String(),
+ Params: types.DefaultParams(),
}
if tc.expPass {
require.Equal(t, []sdk.AccAddress{tc.address}, msg.GetSigners())
diff --git a/modules/apps/transfer/types/transfer_authorization.go b/modules/apps/transfer/types/transfer_authorization.go
index f8537f0174c..bd45d7b29a9 100644
--- a/modules/apps/transfer/types/transfer_authorization.go
+++ b/modules/apps/transfer/types/transfer_authorization.go
@@ -1,8 +1,11 @@
package types
import (
+ "context"
"math/big"
+ "github.com/cosmos/gogoproto/proto"
+
errorsmod "cosmossdk.io/errors"
sdkmath "cosmossdk.io/math"
@@ -32,7 +35,7 @@ func (TransferAuthorization) MsgTypeURL() string {
}
// Accept implements Authorization.Accept.
-func (a TransferAuthorization) Accept(ctx sdk.Context, msg sdk.Msg) (authz.AcceptResponse, error) {
+func (a TransferAuthorization) Accept(ctx context.Context, msg proto.Message) (authz.AcceptResponse, error) {
msgTransfer, ok := msg.(*MsgTransfer)
if !ok {
return authz.AcceptResponse{}, errorsmod.Wrap(ibcerrors.ErrInvalidType, "type mismatch")
@@ -43,7 +46,7 @@ func (a TransferAuthorization) Accept(ctx sdk.Context, msg sdk.Msg) (authz.Accep
continue
}
- if !isAllowedAddress(ctx, msgTransfer.Receiver, allocation.AllowList) {
+ if !isAllowedAddress(sdk.UnwrapSDKContext(ctx), msgTransfer.Receiver, allocation.AllowList) {
return authz.AcceptResponse{}, errorsmod.Wrap(ibcerrors.ErrInvalidAddress, "not allowed receiver address for transfer")
}
diff --git a/modules/apps/transfer/types/transfer_authorization_test.go b/modules/apps/transfer/types/transfer_authorization_test.go
index da2764cba39..a282fc2d81f 100644
--- a/modules/apps/transfer/types/transfer_authorization_test.go
+++ b/modules/apps/transfer/types/transfer_authorization_test.go
@@ -4,7 +4,7 @@ import (
sdkmath "cosmossdk.io/math"
sdk "github.com/cosmos/cosmos-sdk/types"
- "github.com/cosmos/cosmos-sdk/x/authz"
+ authz "github.com/cosmos/cosmos-sdk/x/authz"
"github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
ibctesting "github.com/cosmos/ibc-go/v7/testing"
@@ -47,7 +47,7 @@ func (suite *TypesTestSuite) TestTransferAuthorizationAccept() {
updatedAuthz, ok := res.Updated.(*types.TransferAuthorization)
suite.Require().True(ok)
- isEqual := updatedAuthz.Allocations[0].SpendLimit.IsEqual(sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(50))))
+ isEqual := updatedAuthz.Allocations[0].SpendLimit.Equal(sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(50))))
suite.Require().True(isEqual)
},
},
diff --git a/modules/apps/transfer/types/tx.pb.go b/modules/apps/transfer/types/tx.pb.go
index 95069745f2c..c1e0e40ad54 100644
--- a/modules/apps/transfer/types/tx.pb.go
+++ b/modules/apps/transfer/types/tx.pb.go
@@ -129,8 +129,8 @@ var xxx_messageInfo_MsgTransferResponse proto.InternalMessageInfo
// MsgUpdateParams is the Msg/UpdateParams request type.
type MsgUpdateParams struct {
- // authority is the address that controls the module (defaults to x/gov unless overwritten).
- Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"`
+ // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten).
+ Signer string `protobuf:"bytes,1,opt,name=signer,proto3" json:"signer,omitempty"`
// params defines the transfer parameters to update.
//
// NOTE: All parameters must be supplied.
@@ -220,44 +220,44 @@ func init() {
}
var fileDescriptor_7401ed9bed2f8e09 = []byte{
- // 589 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0x41, 0x4f, 0xd4, 0x40,
- 0x14, 0xde, 0xc2, 0xb2, 0xc2, 0xac, 0x80, 0x8e, 0x46, 0x4a, 0x43, 0xba, 0x64, 0x23, 0x09, 0x42,
- 0x98, 0x49, 0x31, 0x84, 0x84, 0x23, 0x1c, 0xf4, 0x42, 0x82, 0x1b, 0xbc, 0x78, 0x21, 0xed, 0xf0,
- 0x6c, 0x27, 0x6e, 0x3b, 0x75, 0x66, 0xda, 0xc8, 0xcd, 0x78, 0xd1, 0xa3, 0x3f, 0xc1, 0x9f, 0xc0,
- 0xcf, 0xe0, 0xc8, 0xd1, 0xc4, 0xc4, 0x18, 0x38, 0x70, 0xf1, 0x47, 0x98, 0x4e, 0xa7, 0xcb, 0xea,
- 0x61, 0xd5, 0x53, 0x67, 0xde, 0xfb, 0xde, 0xf7, 0xbe, 0xf7, 0x4d, 0x1f, 0x5a, 0xe3, 0x11, 0xa3,
- 0x61, 0x9e, 0x0f, 0x39, 0x0b, 0x35, 0x17, 0x99, 0xa2, 0x5a, 0x86, 0x99, 0x7a, 0x0d, 0x92, 0x96,
- 0x01, 0xd5, 0xef, 0x48, 0x2e, 0x85, 0x16, 0x78, 0x85, 0x47, 0x8c, 0x8c, 0xc3, 0x48, 0x03, 0x23,
- 0x65, 0xe0, 0x3d, 0x8c, 0x45, 0x2c, 0x0c, 0x90, 0x56, 0xa7, 0xba, 0xc6, 0x5b, 0x62, 0x42, 0xa5,
- 0x42, 0xd1, 0x54, 0xc5, 0x15, 0x57, 0xaa, 0x62, 0x9b, 0xf0, 0x6d, 0x22, 0x0a, 0x15, 0xd0, 0x32,
- 0x88, 0x40, 0x87, 0x01, 0x65, 0x82, 0x67, 0x36, 0xdf, 0xab, 0x34, 0x31, 0x21, 0x81, 0xb2, 0x21,
- 0x87, 0x4c, 0x57, 0xd5, 0xf5, 0xc9, 0x02, 0x36, 0x27, 0x8b, 0x6e, 0x94, 0x19, 0x70, 0xff, 0xdb,
- 0x14, 0xea, 0x1e, 0xaa, 0xf8, 0xd8, 0x46, 0x71, 0x0f, 0x75, 0x95, 0x28, 0x24, 0x83, 0x93, 0x5c,
- 0x48, 0xed, 0x3a, 0xab, 0xce, 0xfa, 0xdc, 0x00, 0xd5, 0xa1, 0x23, 0x21, 0x35, 0x5e, 0x43, 0x0b,
- 0x16, 0xc0, 0x92, 0x30, 0xcb, 0x60, 0xe8, 0x4e, 0x19, 0xcc, 0x7c, 0x1d, 0x3d, 0xa8, 0x83, 0x78,
- 0x07, 0xcd, 0x68, 0xf1, 0x06, 0x32, 0x77, 0x7a, 0xd5, 0x59, 0xef, 0x6e, 0x2f, 0x93, 0x7a, 0x2a,
- 0x52, 0x4d, 0x45, 0xec, 0x54, 0xe4, 0x40, 0xf0, 0x6c, 0xbf, 0x7d, 0xf1, 0xbd, 0xd7, 0x1a, 0xd4,
- 0x68, 0xfc, 0x08, 0x75, 0x14, 0x64, 0xa7, 0x20, 0xdd, 0xb6, 0x61, 0xb5, 0x37, 0xec, 0xa1, 0x59,
- 0x09, 0x0c, 0x78, 0x09, 0xd2, 0x9d, 0x31, 0x99, 0xd1, 0x1d, 0x3f, 0x43, 0x0b, 0x9a, 0xa7, 0x20,
- 0x0a, 0x7d, 0x92, 0x00, 0x8f, 0x13, 0xed, 0x76, 0x4c, 0x4f, 0x8f, 0x54, 0xcf, 0x52, 0x39, 0x45,
- 0xac, 0x3f, 0x65, 0x40, 0x9e, 0x1b, 0x84, 0x6d, 0x3a, 0x6f, 0xeb, 0xea, 0x20, 0xde, 0x44, 0xf7,
- 0x1b, 0xa2, 0xea, 0xab, 0x74, 0x98, 0xe6, 0xee, 0x9d, 0x55, 0x67, 0xbd, 0x3d, 0xb8, 0x67, 0x13,
- 0xc7, 0x4d, 0x1c, 0x63, 0xd4, 0x4e, 0x21, 0x15, 0xee, 0xac, 0x51, 0x63, 0xce, 0x7b, 0x8b, 0x9f,
- 0xbe, 0xf4, 0x5a, 0x1f, 0x6e, 0xce, 0x37, 0xac, 0xec, 0xfe, 0x2e, 0x7a, 0x30, 0x66, 0xee, 0x00,
- 0x54, 0x2e, 0x32, 0x05, 0xd5, 0x34, 0x0a, 0xde, 0x16, 0x90, 0x31, 0x30, 0x0e, 0xb7, 0x07, 0xa3,
- 0xfb, 0x5e, 0xbb, 0xe2, 0xe8, 0x7f, 0x74, 0xd0, 0xe2, 0xa1, 0x8a, 0x5f, 0xe6, 0xa7, 0xa1, 0x86,
- 0xa3, 0x50, 0x86, 0xa9, 0xc2, 0x2b, 0x68, 0x2e, 0x2c, 0x74, 0x22, 0x24, 0xd7, 0x67, 0xf6, 0x61,
- 0x6e, 0x03, 0x78, 0x1f, 0x75, 0x72, 0x83, 0x33, 0xef, 0xd1, 0xdd, 0x7e, 0x4c, 0x26, 0xfd, 0x94,
- 0xa4, 0xe6, 0xb4, 0x3e, 0xd8, 0xca, 0x3d, 0xdc, 0xe8, 0xbf, 0xe5, 0xed, 0x2f, 0xa3, 0xa5, 0x3f,
- 0x84, 0x34, 0x63, 0x6c, 0xff, 0x74, 0xd0, 0xf4, 0xa1, 0x8a, 0x71, 0x82, 0x66, 0x47, 0xff, 0xcf,
- 0x93, 0xc9, 0x6d, 0xc7, 0xdc, 0xf0, 0x82, 0x7f, 0x86, 0x8e, 0x8c, 0xd3, 0xe8, 0xee, 0x6f, 0x96,
- 0x6c, 0xfd, 0x95, 0x62, 0x1c, 0xee, 0xed, 0xfc, 0x17, 0xbc, 0xe9, 0xea, 0xcd, 0xbc, 0xbf, 0x39,
- 0xdf, 0x70, 0xf6, 0x5f, 0x5c, 0x5c, 0xf9, 0xce, 0xe5, 0x95, 0xef, 0xfc, 0xb8, 0xf2, 0x9d, 0xcf,
- 0xd7, 0x7e, 0xeb, 0xf2, 0xda, 0x6f, 0x7d, 0xbd, 0xf6, 0x5b, 0xaf, 0x76, 0x63, 0xae, 0x93, 0x22,
- 0x22, 0x4c, 0xa4, 0xd4, 0x6e, 0x2f, 0x8f, 0xd8, 0x56, 0x2c, 0x68, 0xb9, 0x4b, 0x53, 0x71, 0x5a,
- 0x0c, 0x41, 0x55, 0x1b, 0x39, 0xb6, 0x89, 0xfa, 0x2c, 0x07, 0x15, 0x75, 0xcc, 0x12, 0x3e, 0xfd,
- 0x15, 0x00, 0x00, 0xff, 0xff, 0xc4, 0x2f, 0xbe, 0x20, 0x68, 0x04, 0x00, 0x00,
+ // 583 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0x41, 0x4f, 0xd4, 0x4e,
+ 0x14, 0xdf, 0x42, 0xd9, 0x3f, 0xff, 0x59, 0x01, 0x1d, 0x8d, 0x94, 0xc6, 0x74, 0xc9, 0x46, 0x12,
+ 0x84, 0x30, 0x93, 0x62, 0x08, 0x09, 0x47, 0x38, 0xe8, 0x85, 0x04, 0x37, 0x78, 0xf1, 0x42, 0xda,
+ 0xe1, 0xd9, 0x9d, 0xb8, 0x9d, 0xa9, 0x33, 0xb3, 0x8d, 0x5e, 0x8c, 0xf1, 0xe4, 0xd1, 0x8f, 0xe0,
+ 0x47, 0xe0, 0x63, 0x70, 0xe4, 0x68, 0x62, 0x62, 0x0c, 0x1c, 0xb8, 0xf8, 0x21, 0x4c, 0xa7, 0xd3,
+ 0x4d, 0xf5, 0x80, 0x7a, 0xea, 0xcc, 0x7b, 0xbf, 0xf7, 0x7b, 0xbf, 0xf7, 0x9b, 0x3e, 0xb4, 0xc6,
+ 0x53, 0x46, 0x93, 0xa2, 0x18, 0x73, 0x96, 0x18, 0x2e, 0x85, 0xa6, 0x46, 0x25, 0x42, 0xbf, 0x04,
+ 0x45, 0xcb, 0x98, 0x9a, 0x37, 0xa4, 0x50, 0xd2, 0x48, 0xfc, 0x80, 0xa7, 0x8c, 0xb4, 0x61, 0xa4,
+ 0x81, 0x91, 0x32, 0x0e, 0xef, 0x65, 0x32, 0x93, 0x16, 0x48, 0xab, 0x53, 0x5d, 0x13, 0x2e, 0x33,
+ 0xa9, 0x73, 0xa9, 0x69, 0xae, 0xb3, 0x8a, 0x2b, 0xd7, 0x99, 0x4b, 0x44, 0x2e, 0x91, 0x26, 0x1a,
+ 0x68, 0x19, 0xa7, 0x60, 0x92, 0x98, 0x32, 0xc9, 0x85, 0xcb, 0xf7, 0x2b, 0x4d, 0x4c, 0x2a, 0xa0,
+ 0x6c, 0xcc, 0x41, 0x98, 0xaa, 0xba, 0x3e, 0x39, 0xc0, 0xe6, 0xcd, 0xa2, 0x1b, 0x65, 0x16, 0x3c,
+ 0xf8, 0x3a, 0x83, 0x7a, 0x87, 0x3a, 0x3b, 0x76, 0x51, 0xdc, 0x47, 0x3d, 0x2d, 0x27, 0x8a, 0xc1,
+ 0x49, 0x21, 0x95, 0x09, 0xbc, 0x55, 0x6f, 0xfd, 0xff, 0x21, 0xaa, 0x43, 0x47, 0x52, 0x19, 0xbc,
+ 0x86, 0x16, 0x1d, 0x80, 0x8d, 0x12, 0x21, 0x60, 0x1c, 0xcc, 0x58, 0xcc, 0x42, 0x1d, 0x3d, 0xa8,
+ 0x83, 0x78, 0x07, 0xcd, 0x19, 0xf9, 0x0a, 0x44, 0x30, 0xbb, 0xea, 0xad, 0xf7, 0xb6, 0x57, 0x48,
+ 0x3d, 0x15, 0xa9, 0xa6, 0x22, 0x6e, 0x2a, 0x72, 0x20, 0xb9, 0xd8, 0xf7, 0xcf, 0xbf, 0xf5, 0x3b,
+ 0xc3, 0x1a, 0x8d, 0xef, 0xa3, 0xae, 0x06, 0x71, 0x0a, 0x2a, 0xf0, 0x2d, 0xab, 0xbb, 0xe1, 0x10,
+ 0xcd, 0x2b, 0x60, 0xc0, 0x4b, 0x50, 0xc1, 0x9c, 0xcd, 0x4c, 0xef, 0xf8, 0x09, 0x5a, 0x34, 0x3c,
+ 0x07, 0x39, 0x31, 0x27, 0x23, 0xe0, 0xd9, 0xc8, 0x04, 0x5d, 0xdb, 0x33, 0x24, 0xd5, 0xb3, 0x54,
+ 0x4e, 0x11, 0xe7, 0x4f, 0x19, 0x93, 0xa7, 0x16, 0xe1, 0x9a, 0x2e, 0xb8, 0xba, 0x3a, 0x88, 0x37,
+ 0xd1, 0x9d, 0x86, 0xa8, 0xfa, 0x6a, 0x93, 0xe4, 0x45, 0xf0, 0xdf, 0xaa, 0xb7, 0xee, 0x0f, 0x6f,
+ 0xbb, 0xc4, 0x71, 0x13, 0xc7, 0x18, 0xf9, 0x39, 0xe4, 0x32, 0x98, 0xb7, 0x6a, 0xec, 0x79, 0x6f,
+ 0xe9, 0xe3, 0xe7, 0x7e, 0xe7, 0xc3, 0xf5, 0xd9, 0x86, 0x93, 0x3d, 0xd8, 0x45, 0x77, 0x5b, 0xe6,
+ 0x0e, 0x41, 0x17, 0x52, 0x68, 0xa8, 0xa6, 0xd1, 0xf0, 0x7a, 0x02, 0x82, 0x81, 0x75, 0xd8, 0x1f,
+ 0x4e, 0xef, 0x7b, 0x7e, 0xc5, 0x31, 0x78, 0x87, 0x96, 0x0e, 0x75, 0xf6, 0xbc, 0x38, 0x4d, 0x0c,
+ 0x1c, 0x25, 0x2a, 0xc9, 0xb5, 0xb5, 0x86, 0x67, 0x02, 0x94, 0x7b, 0x14, 0x77, 0xc3, 0xfb, 0xa8,
+ 0x5b, 0x58, 0x84, 0x7d, 0x88, 0xde, 0xf6, 0x43, 0x72, 0xd3, 0xdf, 0x48, 0x6a, 0x36, 0x67, 0x80,
+ 0xab, 0x6c, 0x0b, 0xb7, 0xa4, 0x83, 0x15, 0xb4, 0xfc, 0x5b, 0xff, 0x46, 0xfc, 0xf6, 0x0f, 0x0f,
+ 0xcd, 0x1e, 0xea, 0x0c, 0x8f, 0xd0, 0xfc, 0xf4, 0xaf, 0x79, 0x74, 0x73, 0xcf, 0x96, 0x07, 0x61,
+ 0xfc, 0xd7, 0xd0, 0xa9, 0x5d, 0x06, 0xdd, 0xfa, 0xc5, 0x89, 0xad, 0x3f, 0x52, 0xb4, 0xe1, 0xe1,
+ 0xce, 0x3f, 0xc1, 0x9b, 0xae, 0xe1, 0xdc, 0xfb, 0xeb, 0xb3, 0x0d, 0x6f, 0xff, 0xd9, 0xf9, 0x65,
+ 0xe4, 0x5d, 0x5c, 0x46, 0xde, 0xf7, 0xcb, 0xc8, 0xfb, 0x74, 0x15, 0x75, 0x2e, 0xae, 0xa2, 0xce,
+ 0x97, 0xab, 0xa8, 0xf3, 0x62, 0x37, 0xe3, 0x66, 0x34, 0x49, 0x09, 0x93, 0x39, 0x75, 0x3b, 0xcb,
+ 0x53, 0xb6, 0x95, 0x49, 0x5a, 0xee, 0xd2, 0x5c, 0x9e, 0x4e, 0xc6, 0xa0, 0xab, 0x3d, 0x6c, 0xed,
+ 0x9f, 0x79, 0x5b, 0x80, 0x4e, 0xbb, 0x76, 0xf5, 0x1e, 0xff, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x31,
+ 0x59, 0x33, 0x3e, 0x5e, 0x04, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -521,10 +521,10 @@ func (m *MsgUpdateParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
}
i--
dAtA[i] = 0x12
- if len(m.Authority) > 0 {
- i -= len(m.Authority)
- copy(dAtA[i:], m.Authority)
- i = encodeVarintTx(dAtA, i, uint64(len(m.Authority)))
+ if len(m.Signer) > 0 {
+ i -= len(m.Signer)
+ copy(dAtA[i:], m.Signer)
+ i = encodeVarintTx(dAtA, i, uint64(len(m.Signer)))
i--
dAtA[i] = 0xa
}
@@ -619,7 +619,7 @@ func (m *MsgUpdateParams) Size() (n int) {
}
var l int
_ = l
- l = len(m.Authority)
+ l = len(m.Signer)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
@@ -1038,7 +1038,7 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error {
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -1066,7 +1066,7 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Authority = string(dAtA[iNdEx:postIndex])
+ m.Signer = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
diff --git a/modules/capability/go.mod b/modules/capability/go.mod
index 19b27bf6726..fd25d01b54d 100644
--- a/modules/capability/go.mod
+++ b/modules/capability/go.mod
@@ -5,15 +5,15 @@ go 1.21
replace github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7
require (
- cosmossdk.io/core v0.9.0
+ cosmossdk.io/core v0.10.0
cosmossdk.io/errors v1.0.0
- cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca
+ cosmossdk.io/log v1.2.0
cosmossdk.io/math v1.1.2
- cosmossdk.io/store v1.0.0-alpha.1
+ cosmossdk.io/store v1.0.0-alpha.1.0.20230728080422-54ed7dab3982
github.com/cometbft/cometbft v0.38.0-rc3
github.com/cosmos/cosmos-db v1.0.0
- github.com/cosmos/cosmos-sdk v0.50.0-beta.0
- github.com/cosmos/gogoproto v1.4.10
+ github.com/cosmos/cosmos-sdk v0.50.0-rc.0.0.20230819070346-e8164be94954
+ github.com/cosmos/gogoproto v1.4.11
github.com/grpc-ecosystem/grpc-gateway v1.16.0
github.com/spf13/cobra v1.7.0
github.com/stretchr/testify v1.8.4
@@ -22,8 +22,8 @@ require (
require (
cosmossdk.io/api v0.7.0 // indirect
- cosmossdk.io/collections v0.3.0 // indirect
- cosmossdk.io/depinject v1.0.0-alpha.3 // indirect
+ cosmossdk.io/collections v0.4.0 // indirect
+ cosmossdk.io/depinject v1.0.0-alpha.4 // indirect
cosmossdk.io/x/tx v0.9.1 // indirect
filippo.io/edwards25519 v1.0.0 // indirect
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect
@@ -37,9 +37,9 @@ require (
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/cockroachdb/errors v1.10.0 // indirect
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
- github.com/cockroachdb/pebble v0.0.0-20230711190327-88bbab59ff4f // indirect
+ github.com/cockroachdb/pebble v0.0.0-20230817233644-564b068800e0 // indirect
github.com/cockroachdb/redact v1.1.5 // indirect
- github.com/cockroachdb/tokenbucket v0.0.0-20230613231145-182959a1fad6 // indirect
+ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect
github.com/cometbft/cometbft-db v0.8.0 // indirect
github.com/cosmos/btcutil v1.0.5 // indirect
github.com/cosmos/cosmos-proto v1.0.0-beta.3 // indirect
@@ -61,10 +61,13 @@ require (
github.com/fatih/color v1.15.0 // indirect
github.com/felixge/httpsnoop v1.0.2 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
- github.com/getsentry/sentry-go v0.22.0 // indirect
+ github.com/getsentry/sentry-go v0.23.0 // indirect
github.com/go-kit/kit v0.12.0 // indirect
github.com/go-kit/log v0.2.1 // indirect
github.com/go-logfmt/logfmt v0.6.0 // indirect
+ github.com/go-playground/validator/v10 v10.14.0 // indirect
+ github.com/gobwas/ws v1.1.0 // indirect
+ github.com/goccy/go-json v0.10.2 // indirect
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect
github.com/gogo/googleapis v1.4.1 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
@@ -82,6 +85,7 @@ require (
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
github.com/hashicorp/go-metrics v0.5.1 // indirect
github.com/hashicorp/go-plugin v1.4.10 // indirect
+ github.com/hashicorp/go-uuid v1.0.2 // indirect
github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/hashicorp/yamux v0.1.1 // indirect
@@ -105,6 +109,7 @@ require (
github.com/mtibben/percent v0.2.1 // indirect
github.com/oasisprotocol/curve25519-voi v0.0.0-20230110094441-db37f07504ce // indirect
github.com/oklog/run v1.1.0 // indirect
+ github.com/onsi/ginkgo v1.16.4 // indirect
github.com/pelletier/go-toml/v2 v2.0.8 // indirect
github.com/petermattis/goid v0.0.0-20230518223814-80aa455d8761 // indirect
github.com/pkg/errors v0.9.1 // indirect
@@ -112,11 +117,11 @@ require (
github.com/prometheus/client_golang v1.16.0 // indirect
github.com/prometheus/client_model v0.4.0 // indirect
github.com/prometheus/common v0.44.0 // indirect
- github.com/prometheus/procfs v0.11.0 // indirect
+ github.com/prometheus/procfs v0.11.1 // indirect
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
github.com/rogpeppe/go-internal v1.11.0 // indirect
github.com/rs/cors v1.8.3 // indirect
- github.com/rs/zerolog v1.29.1 // indirect
+ github.com/rs/zerolog v1.30.0 // indirect
github.com/sasha-s/go-deadlock v0.3.1 // indirect
github.com/spf13/afero v1.9.5 // indirect
github.com/spf13/cast v1.5.1 // indirect
@@ -127,24 +132,25 @@ require (
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
github.com/tendermint/go-amino v0.16.0 // indirect
github.com/tidwall/btree v1.6.0 // indirect
+ github.com/ugorji/go/codec v1.2.11 // indirect
github.com/zondax/hid v0.9.1 // indirect
github.com/zondax/ledger-go v0.14.1 // indirect
go.etcd.io/bbolt v1.3.7 // indirect
- golang.org/x/crypto v0.11.0 // indirect
- golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect
- golang.org/x/net v0.12.0 // indirect
- golang.org/x/sys v0.10.0 // indirect
- golang.org/x/term v0.10.0 // indirect
- golang.org/x/text v0.11.0 // indirect
- google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect
- google.golang.org/grpc v1.56.2 // indirect
+ golang.org/x/crypto v0.12.0 // indirect
+ golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 // indirect
+ golang.org/x/net v0.14.0 // indirect
+ golang.org/x/sys v0.11.0 // indirect
+ golang.org/x/term v0.11.0 // indirect
+ golang.org/x/text v0.12.0 // indirect
+ google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878 // indirect
+ google.golang.org/grpc v1.57.0 // indirect
google.golang.org/protobuf v1.31.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gotest.tools/v3 v3.5.0 // indirect
nhooyr.io/websocket v1.8.6 // indirect
- pgregory.net/rapid v1.0.0 // indirect
+ pgregory.net/rapid v1.1.0 // indirect
)
diff --git a/modules/capability/go.sum b/modules/capability/go.sum
index 47cb8d07d40..5ef644fed50 100644
--- a/modules/capability/go.sum
+++ b/modules/capability/go.sum
@@ -37,20 +37,20 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
cosmossdk.io/api v0.7.0 h1:QsEMIWuv9xWDbF2HZnW4Lpu1/SejCztPu0LQx7t6MN4=
cosmossdk.io/api v0.7.0/go.mod h1:kJFAEMLN57y0viszHDPLMmieF0471o5QAwwApa+270M=
-cosmossdk.io/collections v0.3.0 h1:v0eEqLBxebAV+t+Ahwf9tSJOu95HVLINwROXx2TTZ08=
-cosmossdk.io/collections v0.3.0/go.mod h1:CHE1+niUElL9ikCpevRZcp0yqQ4TU0TrEEGirN0mvIg=
-cosmossdk.io/core v0.9.0 h1:30ScAOHDIUOCg1DKAwqkho9wuQJnu7GUrMcg0XLioic=
-cosmossdk.io/core v0.9.0/go.mod h1:NFgl5r41Q36+RixTvyrfsS6qQ65agCbZ1FTpnN7/G1Y=
-cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw=
-cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU=
+cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s=
+cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0=
+cosmossdk.io/core v0.10.0 h1:NP28Ol9YyRODmZLJg2ko/mUl40hMegeMzhJnG+XPkcY=
+cosmossdk.io/core v0.10.0/go.mod h1:MygXNld9DvMgYY4yE76DM/mdZpgfeyRjy6FPjEEehlY=
+cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc=
+cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU=
cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04=
cosmossdk.io/errors v1.0.0/go.mod h1:+hJZLuhdDE0pYN8HkOrVNwrIOYvUGnn6+4fjnJs/oV0=
-cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca h1:msenprh2BLLRwNT7zN56TbBHOGk/7ARQckXHxXyvjoQ=
-cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca/go.mod h1:PkIAKXZvaxrTRc++z53XMRvFk8AcGGWYHcMIPzVYX9c=
+cosmossdk.io/log v1.2.0 h1:BbykkDsutXPSy8RojFB3KZEWyvMsToLy0ykb/ZhsLqQ=
+cosmossdk.io/log v1.2.0/go.mod h1:GNSCc/6+DhFIj1aLn/j7Id7PaO8DzNylUZoOYBL9+I4=
cosmossdk.io/math v1.1.2 h1:ORZetZCTyWkI5GlZ6CZS28fMHi83ZYf+A2vVnHNzZBM=
cosmossdk.io/math v1.1.2/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0=
-cosmossdk.io/store v1.0.0-alpha.1 h1:/151XxAgm0tiKuYrtJzMG61lf6enpPuP+D/hIN8cRjQ=
-cosmossdk.io/store v1.0.0-alpha.1/go.mod h1:ejgU9GhRGMNBduVnDwC3RyhOmu4uKlNQlTiJgPmbDkI=
+cosmossdk.io/store v1.0.0-alpha.1.0.20230728080422-54ed7dab3982 h1:61YFeW2AhwwPfoJWzNJWvVubCj32sm5jZkJfraS9pDQ=
+cosmossdk.io/store v1.0.0-alpha.1.0.20230728080422-54ed7dab3982/go.mod h1:QAF9zeRa/9ghuv7E8NS9SzWqRbgVNwH/dZwGhYDHUjI=
cosmossdk.io/x/tx v0.9.1 h1:9pmmXA9Vs4qdouOFnzhsdsff2mif0f0kylMq5xTGhRI=
cosmossdk.io/x/tx v0.9.1/go.mod h1:/YFGTXG6+kyihd8YbfuJiXHV4R/mIMm2uvVzo80CIhA=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
@@ -73,8 +73,6 @@ github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMx
github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE=
github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
-github.com/alecthomas/participle/v2 v2.0.0-alpha7 h1:cK4vjj0VSgb3lN1nuKA5F7dw+1s1pWBe5bx7nNCnN+c=
-github.com/alecthomas/participle/v2 v2.0.0-alpha7/go.mod h1:NumScqsC42o9x+dGj8/YqsIfhrIQjFEOFovxotbBirA=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
@@ -137,8 +135,6 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/cockroachdb/apd/v3 v3.1.0 h1:MK3Ow7LH0W8zkd5GMKA1PvS9qG3bWFI95WaVNfyZJ/w=
-github.com/cockroachdb/apd/v3 v3.1.0/go.mod h1:6qgPBMXjATAdD/VefbRP9NoSLKjbB4LCoA7gN4LpHs4=
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4=
github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU=
@@ -146,12 +142,12 @@ github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+
github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE=
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE=
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs=
-github.com/cockroachdb/pebble v0.0.0-20230711190327-88bbab59ff4f h1:V7Cg5eC+VAHz4rusEB1/kSEQ1mbhHJfV0RICDcTBFLw=
-github.com/cockroachdb/pebble v0.0.0-20230711190327-88bbab59ff4f/go.mod h1:FN5O47SBEz5+kO9fG8UTR64g2WS1u5ZFCgTvxGjoSks=
+github.com/cockroachdb/pebble v0.0.0-20230817233644-564b068800e0 h1:M4A5LioEhkZ/s+m0g0pWgiLBQr83p0jWnQUo320Qy+A=
+github.com/cockroachdb/pebble v0.0.0-20230817233644-564b068800e0/go.mod h1:EDjiaAXc0FXiRmxDzcu1wIEJ093ohHMUWxrI6iku0XA=
github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30=
github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=
-github.com/cockroachdb/tokenbucket v0.0.0-20230613231145-182959a1fad6 h1:DJK8W/iB+s/qkTtmXSrHA49lp5O3OsR7E6z4byOLy34=
-github.com/cockroachdb/tokenbucket v0.0.0-20230613231145-182959a1fad6/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ=
+github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo=
+github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/cometbft/cometbft v0.38.0-rc3 h1:Ly3eVPWoFu0y68PmZwLljucPdEBtfigZtqm+OV1W6dE=
github.com/cometbft/cometbft v0.38.0-rc3/go.mod h1:5Jz0Z8YsHSf0ZaAqGvi/ifioSdVFPtEGrm8Y9T/993k=
@@ -169,15 +165,15 @@ github.com/cosmos/cosmos-db v1.0.0 h1:EVcQZ+qYag7W6uorBKFPvX6gRjw6Uq2hIh4hCWjuQ0
github.com/cosmos/cosmos-db v1.0.0/go.mod h1:iBvi1TtqaedwLdcrZVYRSSCb6eSy61NLj4UNmdIgs0U=
github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o=
github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I=
-github.com/cosmos/cosmos-sdk v0.50.0-beta.0 h1:cPblupyMlA4qvnvuuQEjYQPq1uqSXBgQmsiGREQ5hd0=
-github.com/cosmos/cosmos-sdk v0.50.0-beta.0/go.mod h1:MF/wnXyreoL0g8YdRZhUD4apPdgebMc29LgMJB+dh6M=
+github.com/cosmos/cosmos-sdk v0.50.0-rc.0.0.20230819070346-e8164be94954 h1:DSVQWPZyt0f7T0Arw7doznp9BK+HDzv3h6HwjMJxNCU=
+github.com/cosmos/cosmos-sdk v0.50.0-rc.0.0.20230819070346-e8164be94954/go.mod h1:6HsAg8cQ/D3JnFN7jao6DOuTLWnUC4qh/vracVlSLAM=
github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY=
github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw=
github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE=
github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI=
github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU=
-github.com/cosmos/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI=
-github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek=
+github.com/cosmos/gogoproto v1.4.11 h1:LZcMHrx4FjUgrqQSWeaGC1v/TeuVFqSLa43CC6aWR2g=
+github.com/cosmos/gogoproto v1.4.11/go.mod h1:/g39Mh8m17X8Q/GDEs5zYTSNaNnInBSohtaxzQnYq1Y=
github.com/cosmos/iavl v1.0.0-beta.2 h1:XOsIM80Yyml/KifCXEYOy9tWCXwMAbLa91n6pReW07Y=
github.com/cosmos/iavl v1.0.0-beta.2/go.mod h1:EA97dJ07TBktRlG/iGzK6g1eCXNj1q3MGoFYkVzrwHE=
github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM=
@@ -189,10 +185,6 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
-github.com/cucumber/common/gherkin/go/v22 v22.0.0 h1:4K8NqptbvdOrjL9DEea6HFjSpbdT9+Q5kgLpmmsHYl0=
-github.com/cucumber/common/gherkin/go/v22 v22.0.0/go.mod h1:3mJT10B2GGn3MvVPd3FwR7m2u4tLhSRhWUqJU4KN4Fg=
-github.com/cucumber/common/messages/go/v17 v17.1.1 h1:RNqopvIFyLWnKv0LfATh34SWBhXeoFTJnSrgm9cT/Ts=
-github.com/cucumber/common/messages/go/v17 v17.1.1/go.mod h1:bpGxb57tDE385Rb2EohgUadLkAbhoC4IyCFi89u/JQI=
github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0=
github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -251,8 +243,10 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
-github.com/getsentry/sentry-go v0.22.0 h1:XNX9zKbv7baSEI65l+H1GEJgSeIC1c7EN5kluWaP6dM=
-github.com/getsentry/sentry-go v0.22.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY=
+github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
+github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
+github.com/getsentry/sentry-go v0.23.0 h1:dn+QRCeJv4pPt9OjVXiMcGIBIefaTJPw/h0bZWO05nE=
+github.com/getsentry/sentry-go v0.23.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
@@ -279,29 +273,31 @@ github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi
github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
-github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU=
-github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
+github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
+github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
-github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho=
-github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
+github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
+github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI=
-github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ=
-github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU=
+github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js=
+github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
-github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0=
+github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo=
-github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8=
+github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU=
+github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM=
github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw=
-github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo=
+github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og=
+github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw=
github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM=
-github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk=
-github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
+github.com/gobwas/ws v1.1.0 h1:7RFti/xnNkMJnrK7D1yQ/iCIB5OrrY/54/H930kIbHA=
+github.com/gobwas/ws v1.1.0/go.mod h1:nzvNcVha5eUziGrbxFCo6qFIojQHjJV5cLYIbezhfL0=
+github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
+github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0=
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
-github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA=
-github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c=
github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0=
@@ -436,8 +432,9 @@ github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE=
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE=
+github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
@@ -510,8 +507,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
-github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=
-github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
+github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
+github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw=
github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8=
@@ -591,8 +588,9 @@ github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:v
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
-github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA=
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
+github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=
+github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
@@ -663,13 +661,11 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.11.0 h1:5EAgkfkMl659uZPbe9AS2N68a7Cc1TJbPEuGzFuRbyk=
-github.com/prometheus/procfs v0.11.0/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
+github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI=
+github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
-github.com/regen-network/gocuke v0.6.2 h1:pHviZ0kKAq2U2hN2q3smKNxct6hS0mGByFMHGnWA97M=
-github.com/regen-network/gocuke v0.6.2/go.mod h1:zYaqIHZobHyd0xOrHGPQjbhGJsuZ1oElx150u2o1xuk=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
@@ -679,9 +675,9 @@ github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUz
github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo=
github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
-github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
-github.com/rs/zerolog v1.29.1 h1:cO+d60CHkknCbvzEWxP0S9K6KqyTjrCNUy1LdQLCGPc=
-github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU=
+github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
+github.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c=
+github.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w=
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
@@ -752,12 +748,11 @@ github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg=
github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY=
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
-github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo=
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
-github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0=
-github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY=
+github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU=
+github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
@@ -807,8 +802,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
-golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
+golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
+golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -820,8 +815,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw=
-golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us=
-golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
+golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ=
+golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -891,8 +886,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
-golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
-golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
+golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14=
+golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -966,7 +961,9 @@ golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -986,12 +983,12 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA=
-golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
+golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c=
-golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
+golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0=
+golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1001,8 +998,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4=
-golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc=
+golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -1060,6 +1057,7 @@ golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82u
golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
@@ -1138,12 +1136,12 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D
google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E=
-google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 h1:Au6te5hbKUV8pIYWHqOUZ1pva5qK/rwbIhoXEUB9Lu8=
-google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y=
-google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 h1:s5YSX+ZH5b5vS9rnpGymvIyMpLRJizowqDlOuyjXnTk=
-google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM=
+google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 h1:L6iMMGrtzgHsWofoFcihmDEMYeDR9KN/ThbPWGrh++g=
+google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5/go.mod h1:oH/ZOT02u4kWEp7oYBGYFFkCdKS/uYR9Z7+0/xuuFp8=
+google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e h1:z3vDksarJxsAKM5dmEGv0GHwE2hKJ096wZra71Vs4sw=
+google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878 h1:lv6/DhyiFFGsmzxbsUUTOkN29II+zeWHxvT8Lpdxsv0=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230815205213-6bfd019c3878/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
@@ -1170,8 +1168,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
-google.golang.org/grpc v1.56.2 h1:fVRFRnXvU+x6C4IlHZewvJOVHoOv1TUuQyoRsYnB4bI=
-google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
+google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw=
+google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -1231,8 +1229,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k=
nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
-pgregory.net/rapid v1.0.0 h1:iQaM2w5PZ6xvt6x7hbd7tiDS+nk7YPp5uCaEba+T/F4=
-pgregory.net/rapid v1.0.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
+pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw=
+pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
diff --git a/modules/capability/module.go b/modules/capability/module.go
index 27bcd87d51e..1d357234360 100644
--- a/modules/capability/module.go
+++ b/modules/capability/module.go
@@ -1,6 +1,7 @@
package capability
import (
+ "context"
"encoding/json"
"fmt"
"time"
@@ -29,6 +30,7 @@ var (
_ module.AppModuleBasic = (*AppModuleBasic)(nil)
_ module.AppModuleSimulation = (*AppModule)(nil)
_ appmodule.AppModule = (*AppModule)(nil)
+ _ appmodule.HasBeginBlocker = (*AppModule)(nil)
)
// ----------------------------------------------------------------------------
@@ -142,14 +144,16 @@ func (AppModule) ConsensusVersion() uint64 { return 1 }
// BeginBlock executes all ABCI BeginBlock logic respective to the capability module.
// BeginBlocker calls InitMemStore to assert that the memory store is initialized.
// It's safe to run multiple times.
-func (am AppModule) BeginBlock(ctx sdk.Context) {
+func (am AppModule) BeginBlock(ctx context.Context) error {
defer telemetry.ModuleMeasureSince(types.ModuleName, time.Now(), telemetry.MetricKeyBeginBlocker)
- am.keeper.InitMemStore(ctx)
+ am.keeper.InitMemStore(sdk.UnwrapSDKContext(ctx))
if am.sealKeeper && !am.keeper.IsSealed() {
am.keeper.Seal()
}
+
+ return nil
}
// GenerateGenesisState creates a randomized GenState of the capability module.
diff --git a/modules/core/02-client/abci.go b/modules/core/02-client/abci.go
index d5b4b2deb65..6297a431a38 100644
--- a/modules/core/02-client/abci.go
+++ b/modules/core/02-client/abci.go
@@ -10,16 +10,16 @@ import (
// BeginBlocker is used to perform IBC client upgrades
func BeginBlocker(ctx sdk.Context, k keeper.Keeper) {
- plan, found := k.GetUpgradePlan(ctx)
- if found {
+ plan, err := k.GetUpgradePlan(ctx)
+ if err == nil {
// Once we are at the last block this chain will commit, set the upgraded consensus state
// so that IBC clients can use the last NextValidatorsHash as a trusted kernel for verifying
// headers on the next version of the chain.
// Set the time to the last block time of the current chain.
// In order for a client to upgrade successfully, the first block of the new chain must be committed
// within the trusting period of the last block time on this chain.
- _, exists := k.GetUpgradedClient(ctx, plan.Height)
- if exists && ctx.BlockHeight() == plan.Height-1 {
+ _, err := k.GetUpgradedClient(ctx, plan.Height)
+ if err == nil && ctx.BlockHeight() == plan.Height-1 {
upgradedConsState := &ibctm.ConsensusState{
Timestamp: ctx.BlockTime(),
NextValidatorsHash: ctx.BlockHeader().NextValidatorsHash,
diff --git a/modules/core/02-client/abci_test.go b/modules/core/02-client/abci_test.go
index 48fc0423de4..788856683c4 100644
--- a/modules/core/02-client/abci_test.go
+++ b/modules/core/02-client/abci_test.go
@@ -6,10 +6,10 @@ import (
testifysuite "github.com/stretchr/testify/suite"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
+
sdk "github.com/cosmos/cosmos-sdk/types"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
- abci "github.com/cometbft/cometbft/abci/types"
tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
client "github.com/cosmos/ibc-go/v7/modules/core/02-client"
@@ -69,12 +69,12 @@ func (suite *ClientTestSuite) TestBeginBlockerConsensusState() {
err := suite.chainA.GetSimApp().UpgradeKeeper.SetUpgradedClient(newCtx, plan.Height, []byte("client state"))
suite.Require().NoError(err)
- req := abci.RequestBeginBlock{Header: newCtx.BlockHeader()}
- suite.chainA.App.BeginBlock(req)
+ client.BeginBlocker(newCtx, suite.chainA.App.GetIBCKeeper().ClientKeeper)
// plan Height is at ctx.BlockHeight+1
- consState, found := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedConsensusState(newCtx, plan.Height)
- suite.Require().True(found)
+ consState, err := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedConsensusState(newCtx, plan.Height)
+ suite.Require().NoError(err)
+
bz, err = types.MarshalConsensusState(suite.chainA.App.AppCodec(), &ibctm.ConsensusState{Timestamp: newCtx.BlockTime(), NextValidatorsHash: nextValsHash})
suite.Require().NoError(err)
suite.Require().Equal(bz, consState)
diff --git a/modules/core/02-client/client/cli/tx.go b/modules/core/02-client/client/cli/tx.go
index ebf30c75087..55be0846b11 100644
--- a/modules/core/02-client/client/cli/tx.go
+++ b/modules/core/02-client/client/cli/tx.go
@@ -7,6 +7,8 @@ import (
"github.com/spf13/cobra"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
+
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/client/tx"
@@ -17,7 +19,6 @@ import (
govcli "github.com/cosmos/cosmos-sdk/x/gov/client/cli"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
"github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
"github.com/cosmos/ibc-go/v7/modules/core/exported"
@@ -348,10 +349,6 @@ func NewCmdSubmitUpdateClientProposal() *cobra.Command {
return err
}
- if err = msg.ValidateBasic(); err != nil {
- return err
- }
-
return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
},
}
@@ -447,10 +444,6 @@ func NewCmdSubmitUpgradeProposal() *cobra.Command {
return err
}
- if err = msg.ValidateBasic(); err != nil {
- return err
- }
-
return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
},
}
diff --git a/modules/core/02-client/keeper/client.go b/modules/core/02-client/keeper/client.go
index b5e49f7f077..b2fe660f631 100644
--- a/modules/core/02-client/keeper/client.go
+++ b/modules/core/02-client/keeper/client.go
@@ -1,7 +1,7 @@
package keeper
import (
- metrics "github.com/armon/go-metrics"
+ metrics "github.com/hashicorp/go-metrics"
errorsmod "cosmossdk.io/errors"
diff --git a/modules/core/02-client/keeper/client_test.go b/modules/core/02-client/keeper/client_test.go
index 1b386e3572d..a9c3b6a464c 100644
--- a/modules/core/02-client/keeper/client_test.go
+++ b/modules/core/02-client/keeper/client_test.go
@@ -5,7 +5,7 @@ import (
"fmt"
"time"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
commitmenttypes "github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types"
diff --git a/modules/core/02-client/keeper/events.go b/modules/core/02-client/keeper/events.go
index ce51fe189c5..08bf94f4c62 100644
--- a/modules/core/02-client/keeper/events.go
+++ b/modules/core/02-client/keeper/events.go
@@ -6,9 +6,10 @@ import (
"strconv"
"strings"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
+
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
"github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
"github.com/cosmos/ibc-go/v7/modules/core/exported"
diff --git a/modules/core/02-client/keeper/grpc_query.go b/modules/core/02-client/keeper/grpc_query.go
index 5f31c5c3bf3..9258c773e0f 100644
--- a/modules/core/02-client/keeper/grpc_query.go
+++ b/modules/core/02-client/keeper/grpc_query.go
@@ -11,8 +11,8 @@ import (
"google.golang.org/grpc/status"
errorsmod "cosmossdk.io/errors"
+ "cosmossdk.io/store/prefix"
- "github.com/cosmos/cosmos-sdk/store/prefix"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/query"
@@ -272,16 +272,14 @@ func (k Keeper) UpgradedClientState(c context.Context, req *types.QueryUpgradedC
ctx := sdk.UnwrapSDKContext(c)
- plan, found := k.GetUpgradePlan(ctx)
- if !found {
- return nil, status.Error(
- codes.NotFound, "upgrade plan not found",
- )
+ plan, err := k.GetUpgradePlan(ctx)
+ if err != nil {
+ return nil, status.Error(codes.NotFound, err.Error())
}
- bz, found := k.GetUpgradedClient(ctx, plan.Height)
- if !found {
- return nil, status.Error(codes.NotFound, types.ErrClientNotFound.Error())
+ bz, err := k.GetUpgradedClient(ctx, plan.Height)
+ if err != nil {
+ return nil, status.Error(codes.NotFound, err.Error())
}
clientState, err := types.UnmarshalClientState(k.cdc, bz)
@@ -309,9 +307,9 @@ func (k Keeper) UpgradedConsensusState(c context.Context, req *types.QueryUpgrad
ctx := sdk.UnwrapSDKContext(c)
- bz, found := k.GetUpgradedConsensusState(ctx, ctx.BlockHeight())
- if !found {
- return nil, status.Errorf(codes.NotFound, "%s, height %d", types.ErrConsensusStateNotFound.Error(), ctx.BlockHeight())
+ bz, err := k.GetUpgradedConsensusState(ctx, ctx.BlockHeight())
+ if err != nil {
+ return nil, status.Errorf(codes.NotFound, "%s, height %d", err.Error(), ctx.BlockHeight())
}
consensusState, err := types.UnmarshalConsensusState(k.cdc, bz)
diff --git a/modules/core/02-client/keeper/keeper.go b/modules/core/02-client/keeper/keeper.go
index 85cf2984827..c956604c208 100644
--- a/modules/core/02-client/keeper/keeper.go
+++ b/modules/core/02-client/keeper/keeper.go
@@ -6,15 +6,15 @@ import (
"strings"
errorsmod "cosmossdk.io/errors"
+ "cosmossdk.io/log"
+ "cosmossdk.io/store/prefix"
+ storetypes "cosmossdk.io/store/types"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
"github.com/cosmos/cosmos-sdk/codec"
- "github.com/cosmos/cosmos-sdk/store/prefix"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
- "github.com/cometbft/cometbft/libs/log"
"github.com/cometbft/cometbft/light"
"github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
@@ -267,9 +267,9 @@ func (k Keeper) GetSelfConsensusState(ctx sdk.Context, height exported.Height) (
if revision != height.GetRevisionNumber() {
return nil, errorsmod.Wrapf(types.ErrInvalidHeight, "chainID revision number does not match height revision number: expected %d, got %d", revision, height.GetRevisionNumber())
}
- histInfo, found := k.stakingKeeper.GetHistoricalInfo(ctx, int64(selfHeight.RevisionHeight))
- if !found {
- return nil, errorsmod.Wrapf(ibcerrors.ErrNotFound, "no historical info found at height %d", selfHeight.RevisionHeight)
+ histInfo, err := k.stakingKeeper.GetHistoricalInfo(ctx, int64(selfHeight.RevisionHeight))
+ if err != nil {
+ return nil, errorsmod.Wrapf(err, "height %d", selfHeight.RevisionHeight)
}
consensusState := &ibctm.ConsensusState{
@@ -323,7 +323,11 @@ func (k Keeper) ValidateSelfClient(ctx sdk.Context, clientState exported.ClientS
return errorsmod.Wrapf(types.ErrInvalidClient, "trust-level invalid: %v", err)
}
- expectedUbdPeriod := k.stakingKeeper.UnbondingTime(ctx)
+ expectedUbdPeriod, err := k.stakingKeeper.UnbondingTime(ctx)
+ if err != nil {
+ return errorsmod.Wrapf(err, "failed to retrieve unbonding period")
+ }
+
if expectedUbdPeriod != tmClient.UnbondingPeriod {
return errorsmod.Wrapf(types.ErrInvalidClient, "invalid unbonding period. expected: %s, got: %s",
expectedUbdPeriod, tmClient.UnbondingPeriod)
@@ -346,17 +350,17 @@ func (k Keeper) ValidateSelfClient(ctx sdk.Context, clientState exported.ClientS
}
// GetUpgradePlan executes the upgrade keeper GetUpgradePlan function.
-func (k Keeper) GetUpgradePlan(ctx sdk.Context) (plan upgradetypes.Plan, havePlan bool) {
+func (k Keeper) GetUpgradePlan(ctx sdk.Context) (upgradetypes.Plan, error) {
return k.upgradeKeeper.GetUpgradePlan(ctx)
}
// GetUpgradedClient executes the upgrade keeper GetUpgradeClient function.
-func (k Keeper) GetUpgradedClient(ctx sdk.Context, planHeight int64) ([]byte, bool) {
+func (k Keeper) GetUpgradedClient(ctx sdk.Context, planHeight int64) ([]byte, error) {
return k.upgradeKeeper.GetUpgradedClient(ctx, planHeight)
}
// GetUpgradedConsensusState returns the upgraded consensus state
-func (k Keeper) GetUpgradedConsensusState(ctx sdk.Context, planHeight int64) ([]byte, bool) {
+func (k Keeper) GetUpgradedConsensusState(ctx sdk.Context, planHeight int64) ([]byte, error) {
return k.upgradeKeeper.GetUpgradedConsensusState(ctx, planHeight)
}
diff --git a/modules/core/02-client/keeper/keeper_test.go b/modules/core/02-client/keeper/keeper_test.go
index 46edef8d584..8ab7a56b4a4 100644
--- a/modules/core/02-client/keeper/keeper_test.go
+++ b/modules/core/02-client/keeper/keeper_test.go
@@ -8,16 +8,15 @@ import (
testifysuite "github.com/stretchr/testify/suite"
sdkmath "cosmossdk.io/math"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
"github.com/cosmos/cosmos-sdk/codec"
cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
tmbytes "github.com/cometbft/cometbft/libs/bytes"
- tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
tmtypes "github.com/cometbft/cometbft/types"
"github.com/cosmos/ibc-go/v7/modules/core/02-client/keeper"
@@ -40,8 +39,6 @@ const (
testClientID2 = "tendermint-1"
testClientID3 = "tendermint-2"
- height = 5
-
trustingPeriod time.Duration = time.Hour * 24 * 7 * 2
ubdPeriod time.Duration = time.Hour * 24 * 7 * 3
maxClockDrift time.Duration = time.Second * 10
@@ -83,11 +80,10 @@ func (suite *KeeperTestSuite) SetupTest() {
isCheckTx := false
suite.now = time.Date(2020, 1, 2, 0, 0, 0, 0, time.UTC)
suite.past = time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC)
- now2 := suite.now.Add(time.Hour)
app := simapp.Setup(suite.T(), isCheckTx)
suite.cdc = app.AppCodec()
- suite.ctx = app.BaseApp.NewContext(isCheckTx, tmproto.Header{Height: height, ChainID: testClientID, Time: now2})
+ suite.ctx = app.BaseApp.NewContext(isCheckTx)
suite.keeper = &app.IBCKeeper.ClientKeeper
suite.privVal = ibctestingmock.NewPV()
pubKey, err := suite.privVal.GetPubKey()
@@ -107,17 +103,18 @@ func (suite *KeeperTestSuite) SetupTest() {
privVal := ibctestingmock.NewPV()
tmPk, err := privVal.GetPubKey()
suite.Require().NoError(err)
- pk, err := cryptocodec.FromTmPubKeyInterface(tmPk)
+ pk, err := cryptocodec.FromCmtPubKeyInterface(tmPk)
suite.Require().NoError(err)
- val, err := stakingtypes.NewValidator(sdk.ValAddress(pk.Address()), pk, stakingtypes.Description{})
+ val, err := stakingtypes.NewValidator(pk.Address().String(), pk, stakingtypes.Description{})
suite.Require().NoError(err)
val.Status = stakingtypes.Bonded
val.Tokens = sdkmath.NewInt(rand.Int63())
- validators = append(validators, val)
+ validators.Validators = append(validators.Validators, val)
hi := stakingtypes.NewHistoricalInfo(suite.ctx.BlockHeader(), validators, sdk.DefaultPowerReduction)
- app.StakingKeeper.SetHistoricalInfo(suite.ctx, int64(i), &hi)
+ err = app.StakingKeeper.SetHistoricalInfo(suite.ctx, int64(i), &hi)
+ suite.Require().NoError(err)
}
suite.solomachine = ibctesting.NewSolomachine(suite.T(), suite.chainA.Codec, "solomachinesingle", "testing", 1)
@@ -559,38 +556,38 @@ func (suite *KeeperTestSuite) TestIBCSoftwareUpgrade() {
suite.Require().NoError(err)
// check that the correct plan is returned
- storedPlan, found := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradePlan(suite.chainA.GetContext())
- suite.Require().True(found)
+ storedPlan, err := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradePlan(suite.chainA.GetContext())
+ suite.Require().NoError(err)
suite.Require().Equal(plan, storedPlan)
// check that old upgraded client state is cleared
- cs, found := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), oldPlan.Height)
- suite.Require().False(found)
+ cs, err := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), oldPlan.Height)
+ suite.Require().ErrorIs(err, upgradetypes.ErrNoUpgradedClientFound)
suite.Require().Empty(cs)
// check that client state was set
- storedClientState, found := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), plan.Height)
- suite.Require().True(found)
+ storedClientState, err := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), plan.Height)
+ suite.Require().NoError(err)
clientState, err := types.UnmarshalClientState(suite.chainA.App.AppCodec(), storedClientState)
suite.Require().NoError(err)
suite.Require().Equal(upgradedClientState, clientState)
} else {
// check that the new plan wasn't stored
- storedPlan, found := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradePlan(suite.chainA.GetContext())
+ storedPlan, err := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradePlan(suite.chainA.GetContext())
if oldPlan.Height != 0 {
// NOTE: this is only true if the ScheduleUpgrade function
// returns an error before clearing the old plan
- suite.Require().True(found)
+ suite.Require().NoError(err)
suite.Require().Equal(oldPlan, storedPlan)
} else {
- suite.Require().False(found)
+ suite.Require().ErrorIs(err, upgradetypes.ErrNoUpgradePlanFound)
suite.Require().Empty(storedPlan)
}
// check that client state was not set
- cs, found := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), plan.Height)
+ cs, err := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), plan.Height)
suite.Require().Empty(cs)
- suite.Require().False(found)
+ suite.Require().ErrorIs(err, upgradetypes.ErrNoUpgradedClientFound)
}
})
}
diff --git a/modules/core/02-client/keeper/proposal.go b/modules/core/02-client/keeper/proposal.go
index 12f2685e299..eda3bb70492 100644
--- a/modules/core/02-client/keeper/proposal.go
+++ b/modules/core/02-client/keeper/proposal.go
@@ -1,7 +1,7 @@
package keeper
import (
- metrics "github.com/armon/go-metrics"
+ metrics "github.com/hashicorp/go-metrics"
errorsmod "cosmossdk.io/errors"
diff --git a/modules/core/02-client/keeper/proposal_test.go b/modules/core/02-client/keeper/proposal_test.go
index 651e3db61b5..a400034622e 100644
--- a/modules/core/02-client/keeper/proposal_test.go
+++ b/modules/core/02-client/keeper/proposal_test.go
@@ -1,8 +1,9 @@
package keeper_test
import (
+ upgradetypes "cosmossdk.io/x/upgrade/types"
+
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
"github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
"github.com/cosmos/ibc-go/v7/modules/core/exported"
@@ -231,17 +232,17 @@ func (suite *KeeperTestSuite) TestHandleUpgradeProposal() {
suite.Require().NoError(err)
// check that the correct plan is returned
- storedPlan, found := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradePlan(suite.chainA.GetContext())
- suite.Require().True(found)
+ storedPlan, err := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradePlan(suite.chainA.GetContext())
+ suite.Require().NoError(err)
suite.Require().Equal(plan, storedPlan)
// check that old upgraded client state is cleared
- _, found = suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), oldPlan.Height)
- suite.Require().False(found)
+ _, err = suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), oldPlan.Height)
+ suite.Require().ErrorIs(err, upgradetypes.ErrNoUpgradedClientFound)
// check that client state was set
- storedClientState, found := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), plan.Height)
- suite.Require().True(found)
+ storedClientState, err := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), plan.Height)
+ suite.Require().NoError(err)
clientState, err := types.UnmarshalClientState(suite.chainA.App.AppCodec(), storedClientState)
suite.Require().NoError(err)
suite.Require().Equal(upgradedClientState, clientState)
@@ -249,21 +250,20 @@ func (suite *KeeperTestSuite) TestHandleUpgradeProposal() {
suite.Require().Error(err)
// check that the new plan wasn't stored
- storedPlan, found := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradePlan(suite.chainA.GetContext())
+ storedPlan, err := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradePlan(suite.chainA.GetContext())
if oldPlan.Height != 0 {
// NOTE: this is only true if the ScheduleUpgrade function
// returns an error before clearing the old plan
- suite.Require().True(found)
+ suite.Require().NoError(err)
suite.Require().Equal(oldPlan, storedPlan)
} else {
- suite.Require().False(found)
+ suite.Require().ErrorIs(err, upgradetypes.ErrNoUpgradePlanFound)
suite.Require().Empty(storedPlan)
}
// check that client state was not set
- _, found = suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), plan.Height)
- suite.Require().False(found)
-
+ _, err = suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), plan.Height)
+ suite.Require().ErrorIs(err, upgradetypes.ErrNoUpgradedClientFound)
}
})
}
diff --git a/modules/core/02-client/migrations/v7/expected_keepers.go b/modules/core/02-client/migrations/v7/expected_keepers.go
index 8f03d363831..26b13cff021 100644
--- a/modules/core/02-client/migrations/v7/expected_keepers.go
+++ b/modules/core/02-client/migrations/v7/expected_keepers.go
@@ -1,7 +1,8 @@
package v7
import (
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
+ storetypes "cosmossdk.io/store/types"
+
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/ibc-go/v7/modules/core/exported"
diff --git a/modules/core/02-client/migrations/v7/solomachine.go b/modules/core/02-client/migrations/v7/solomachine.go
index ac90209285a..6c8315fda2f 100644
--- a/modules/core/02-client/migrations/v7/solomachine.go
+++ b/modules/core/02-client/migrations/v7/solomachine.go
@@ -1,10 +1,11 @@
package v7
import (
+ storetypes "cosmossdk.io/store/types"
+
"github.com/cosmos/cosmos-sdk/codec"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/ibc-go/v7/modules/core/exported"
diff --git a/modules/core/02-client/migrations/v7/store.go b/modules/core/02-client/migrations/v7/store.go
index d4a86b51841..2b817e5aa52 100644
--- a/modules/core/02-client/migrations/v7/store.go
+++ b/modules/core/02-client/migrations/v7/store.go
@@ -4,10 +4,10 @@ import (
"strings"
errorsmod "cosmossdk.io/errors"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
diff --git a/modules/core/02-client/types/client.pb.go b/modules/core/02-client/types/client.pb.go
index d65d15ccb43..33a4efb5ea1 100644
--- a/modules/core/02-client/types/client.pb.go
+++ b/modules/core/02-client/types/client.pb.go
@@ -4,10 +4,10 @@
package types
import (
+ types1 "cosmossdk.io/x/upgrade/types"
fmt "fmt"
_ "github.com/cosmos/cosmos-proto"
types "github.com/cosmos/cosmos-sdk/codec/types"
- types1 "github.com/cosmos/cosmos-sdk/x/upgrade/types"
_ "github.com/cosmos/gogoproto/gogoproto"
proto "github.com/cosmos/gogoproto/proto"
io "io"
diff --git a/modules/core/02-client/types/expected_keepers.go b/modules/core/02-client/types/expected_keepers.go
index f10c39b954a..ea56078ed26 100644
--- a/modules/core/02-client/types/expected_keepers.go
+++ b/modules/core/02-client/types/expected_keepers.go
@@ -1,26 +1,27 @@
package types
import (
+ "context"
"time"
- sdk "github.com/cosmos/cosmos-sdk/types"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
+
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
)
// StakingKeeper expected staking keeper
type StakingKeeper interface {
- GetHistoricalInfo(ctx sdk.Context, height int64) (stakingtypes.HistoricalInfo, bool)
- UnbondingTime(ctx sdk.Context) time.Duration
+ GetHistoricalInfo(ctx context.Context, height int64) (stakingtypes.HistoricalInfo, error)
+ UnbondingTime(ctx context.Context) (time.Duration, error)
}
// UpgradeKeeper expected upgrade keeper
type UpgradeKeeper interface {
- ClearIBCState(ctx sdk.Context, lastHeight int64)
- GetUpgradePlan(ctx sdk.Context) (plan upgradetypes.Plan, havePlan bool)
- GetUpgradedClient(ctx sdk.Context, height int64) ([]byte, bool)
- SetUpgradedClient(ctx sdk.Context, planHeight int64, bz []byte) error
- GetUpgradedConsensusState(ctx sdk.Context, lastHeight int64) ([]byte, bool)
- SetUpgradedConsensusState(ctx sdk.Context, planHeight int64, bz []byte) error
- ScheduleUpgrade(ctx sdk.Context, plan upgradetypes.Plan) error
+ ClearIBCState(ctx context.Context, lastHeight int64) error
+ GetUpgradePlan(ctx context.Context) (plan upgradetypes.Plan, err error)
+ GetUpgradedClient(ctx context.Context, height int64) ([]byte, error)
+ SetUpgradedClient(ctx context.Context, planHeight int64, bz []byte) error
+ GetUpgradedConsensusState(ctx context.Context, lastHeight int64) ([]byte, error)
+ SetUpgradedConsensusState(ctx context.Context, planHeight int64, bz []byte) error
+ ScheduleUpgrade(ctx context.Context, plan upgradetypes.Plan) error
}
diff --git a/modules/core/02-client/types/msgs.go b/modules/core/02-client/types/msgs.go
index f0894736ae7..9599b176c26 100644
--- a/modules/core/02-client/types/msgs.go
+++ b/modules/core/02-client/types/msgs.go
@@ -2,10 +2,10 @@ package types
import (
errorsmod "cosmossdk.io/errors"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
sdk "github.com/cosmos/cosmos-sdk/types"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
host "github.com/cosmos/ibc-go/v7/modules/core/24-host"
ibcerrors "github.com/cosmos/ibc-go/v7/modules/core/errors"
@@ -263,16 +263,16 @@ func (msg MsgSubmitMisbehaviour) UnpackInterfaces(unpacker codectypes.AnyUnpacke
}
// NewMsgUpdateParams creates a new instance of MsgUpdateParams.
-func NewMsgUpdateParams(authority string, params Params) *MsgUpdateParams {
+func NewMsgUpdateParams(signer string, params Params) *MsgUpdateParams {
return &MsgUpdateParams{
- Authority: authority,
- Params: params,
+ Signer: signer,
+ Params: params,
}
}
// GetSigners returns the expected signers for a MsgUpdateParams message.
func (msg *MsgUpdateParams) GetSigners() []sdk.AccAddress {
- accAddr, err := sdk.AccAddressFromBech32(msg.Authority)
+ accAddr, err := sdk.AccAddressFromBech32(msg.Signer)
if err != nil {
panic(err)
}
@@ -281,7 +281,7 @@ func (msg *MsgUpdateParams) GetSigners() []sdk.AccAddress {
// ValidateBasic performs basic checks on a MsgUpdateParams.
func (msg *MsgUpdateParams) ValidateBasic() error {
- if _, err := sdk.AccAddressFromBech32(msg.Authority); err != nil {
+ if _, err := sdk.AccAddressFromBech32(msg.Signer); err != nil {
return errorsmod.Wrapf(ibcerrors.ErrInvalidAddress, "string could not be parsed as address: %v", err)
}
return msg.Params.Validate()
diff --git a/modules/core/02-client/types/msgs_test.go b/modules/core/02-client/types/msgs_test.go
index 13b60e6c2ee..cdffa92a415 100644
--- a/modules/core/02-client/types/msgs_test.go
+++ b/modules/core/02-client/types/msgs_test.go
@@ -9,10 +9,11 @@ import (
"github.com/stretchr/testify/require"
testifysuite "github.com/stretchr/testify/suite"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
+
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
"github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
commitmenttypes "github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types"
@@ -622,30 +623,30 @@ func (suite *TypesTestSuite) TestMsgSubmitMisbehaviour_ValidateBasic() {
// TestMsgUpdateParamsValidateBasic tests ValidateBasic for MsgUpdateParams
func (suite *TypesTestSuite) TestMsgUpdateParamsValidateBasic() {
- authority := suite.chainA.App.GetIBCKeeper().GetAuthority()
+ signer := suite.chainA.App.GetIBCKeeper().GetAuthority()
testCases := []struct {
name string
msg *types.MsgUpdateParams
expPass bool
}{
{
- "success: valid authority and params",
- types.NewMsgUpdateParams(authority, types.DefaultParams()),
+ "success: valid signer and params",
+ types.NewMsgUpdateParams(signer, types.DefaultParams()),
true,
},
{
- "success: valid authority empty params",
- types.NewMsgUpdateParams(authority, types.Params{}),
+ "success: valid signer empty params",
+ types.NewMsgUpdateParams(signer, types.Params{}),
true,
},
{
- "failure: invalid authority address",
+ "failure: invalid signer address",
types.NewMsgUpdateParams("invalid", types.DefaultParams()),
false,
},
{
"failure: invalid allowed client",
- types.NewMsgUpdateParams(authority, types.NewParams("")),
+ types.NewMsgUpdateParams(signer, types.NewParams("")),
false,
},
}
@@ -673,8 +674,8 @@ func TestMsgUpdateParamsGetSigners(t *testing.T) {
for _, tc := range testCases {
msg := types.MsgUpdateParams{
- Authority: tc.address.String(),
- Params: types.DefaultParams(),
+ Signer: tc.address.String(),
+ Params: types.DefaultParams(),
}
if tc.expPass {
require.Equal(t, []sdk.AccAddress{tc.address}, msg.GetSigners())
diff --git a/modules/core/02-client/types/proposal.go b/modules/core/02-client/types/proposal.go
index b00169275b6..2392a01d7a5 100644
--- a/modules/core/02-client/types/proposal.go
+++ b/modules/core/02-client/types/proposal.go
@@ -5,10 +5,10 @@ import (
"reflect"
errorsmod "cosmossdk.io/errors"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
"github.com/cosmos/ibc-go/v7/modules/core/exported"
)
@@ -139,7 +139,7 @@ func (up UpgradeProposal) String() string {
Title: %s
Description: %s
%s
- Upgraded IBC Client: %s`, up.Title, up.Description, up.Plan, upgradedClientStr)
+ Upgraded IBC Client: %s`, up.Title, up.Description, up.Plan.String(), upgradedClientStr)
}
// UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces
diff --git a/modules/core/02-client/types/proposal_test.go b/modules/core/02-client/types/proposal_test.go
index 8009e4ebd8b..268c03fa9be 100644
--- a/modules/core/02-client/types/proposal_test.go
+++ b/modules/core/02-client/types/proposal_test.go
@@ -3,10 +3,11 @@ package types_test
import (
"fmt"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
+
"github.com/cosmos/cosmos-sdk/codec"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
"github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint"
@@ -220,7 +221,7 @@ func (suite *TypesTestSuite) TestUpgradeString() {
proposal, err := types.NewUpgradeProposal(ibctesting.Title, ibctesting.Description, plan, &ibctm.ClientState{})
suite.Require().NoError(err)
- expect := fmt.Sprintf("IBC Upgrade Proposal\n Title: title\n Description: description\n Upgrade Plan\n Name: ibc upgrade\n height: 1000\n Info: https://foo.bar/baz.\n Upgraded IBC Client: %s", &ibctm.ClientState{})
+ expect := fmt.Sprintf("IBC Upgrade Proposal\n Title: title\n Description: description\n name:\"ibc upgrade\" time: height:1000 info:\"https://foo.bar/baz\" \n Upgraded IBC Client: %s", &ibctm.ClientState{})
suite.Require().Equal(expect, proposal.String())
}
diff --git a/modules/core/02-client/types/tx.pb.go b/modules/core/02-client/types/tx.pb.go
index 5420d2fe671..cd7c11076d5 100644
--- a/modules/core/02-client/types/tx.pb.go
+++ b/modules/core/02-client/types/tx.pb.go
@@ -5,10 +5,10 @@ package types
import (
context "context"
+ types1 "cosmossdk.io/x/upgrade/types"
fmt "fmt"
types "github.com/cosmos/cosmos-sdk/codec/types"
_ "github.com/cosmos/cosmos-sdk/types/msgservice"
- types1 "github.com/cosmos/cosmos-sdk/x/upgrade/types"
_ "github.com/cosmos/gogoproto/gogoproto"
grpc1 "github.com/cosmos/gogoproto/grpc"
proto "github.com/cosmos/gogoproto/proto"
@@ -475,8 +475,8 @@ var xxx_messageInfo_MsgSubmitMisbehaviourResponse proto.InternalMessageInfo
// MsgUpdateParams defines the sdk.Msg type to update the client parameters.
type MsgUpdateParams struct {
- // authority is the address of the governance account.
- Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"`
+ // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten).
+ Signer string `protobuf:"bytes,1,opt,name=signer,proto3" json:"signer,omitempty"`
// params defines the client parameters to update.
//
// NOTE: All parameters must be supplied.
@@ -654,59 +654,58 @@ func init() {
func init() { proto.RegisterFile("ibc/core/client/v1/tx.proto", fileDescriptor_cb5dc4651eb49a04) }
var fileDescriptor_cb5dc4651eb49a04 = []byte{
- // 824 bytes of a gzipped FileDescriptorProto
+ // 807 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x96, 0xbf, 0x4f, 0xdb, 0x4c,
- 0x18, 0xc7, 0xe3, 0x00, 0xd1, 0x9b, 0x23, 0x90, 0x97, 0x7b, 0xc3, 0x4b, 0x30, 0x90, 0x20, 0x5e,
- 0x06, 0x5e, 0x5a, 0x6c, 0x42, 0xa5, 0x82, 0xa8, 0x3a, 0x40, 0x96, 0x32, 0x44, 0x42, 0x46, 0x5d,
- 0xba, 0xa4, 0xb6, 0x73, 0x31, 0xae, 0x62, 0x9f, 0xe5, 0x3b, 0xa7, 0xcd, 0x50, 0xa9, 0xea, 0xd4,
- 0xb1, 0x43, 0x97, 0x6e, 0xfd, 0x13, 0x50, 0xff, 0x80, 0x6e, 0x95, 0x18, 0x19, 0x3b, 0x55, 0x15,
- 0x0c, 0x48, 0xfd, 0x2b, 0x2a, 0xfb, 0xce, 0x89, 0xed, 0xc4, 0x69, 0x50, 0x37, 0xdb, 0xcf, 0xe7,
- 0xb9, 0xe7, 0x7b, 0xcf, 0x2f, 0x19, 0xac, 0x98, 0x9a, 0x2e, 0xeb, 0xd8, 0x45, 0xb2, 0xde, 0x31,
- 0x91, 0x4d, 0xe5, 0x6e, 0x4d, 0xa6, 0xaf, 0x24, 0xc7, 0xc5, 0x14, 0x43, 0x68, 0x6a, 0xba, 0xe4,
- 0x1b, 0x25, 0x66, 0x94, 0xba, 0x35, 0x71, 0x49, 0xc7, 0xc4, 0xc2, 0x44, 0xb6, 0x88, 0xe1, 0xb3,
- 0x16, 0x31, 0x18, 0x2c, 0x6e, 0x72, 0x83, 0xe7, 0x18, 0xae, 0xda, 0x42, 0x72, 0xb7, 0xa6, 0x21,
- 0xaa, 0xd6, 0xc2, 0x77, 0x4e, 0x95, 0x0c, 0x6c, 0xe0, 0xe0, 0x51, 0xf6, 0x9f, 0xf8, 0xd7, 0x65,
- 0x03, 0x63, 0xa3, 0x83, 0xe4, 0xe0, 0x4d, 0xf3, 0xda, 0xb2, 0x6a, 0xf7, 0xb8, 0xa9, 0x3a, 0x42,
- 0x20, 0x57, 0x13, 0x00, 0x1b, 0x9f, 0x05, 0x50, 0x6c, 0x10, 0xa3, 0xee, 0x22, 0x95, 0xa2, 0x7a,
- 0x60, 0x81, 0xfb, 0xa0, 0xc0, 0x98, 0x26, 0xa1, 0x2a, 0x45, 0x65, 0x61, 0x5d, 0xd8, 0x9a, 0xdd,
- 0x2b, 0x49, 0x2c, 0x8c, 0x14, 0x86, 0x91, 0x8e, 0xec, 0x9e, 0x32, 0xcb, 0xc8, 0x33, 0x1f, 0x84,
- 0x8f, 0x41, 0x51, 0xc7, 0x36, 0x41, 0x36, 0xf1, 0x08, 0xf7, 0xcd, 0x8e, 0xf1, 0x9d, 0xef, 0xc3,
- 0xcc, 0xfd, 0x5f, 0x90, 0x23, 0xa6, 0x61, 0x23, 0xb7, 0x3c, 0xb5, 0x2e, 0x6c, 0xe5, 0x15, 0xfe,
- 0x76, 0x58, 0x7c, 0xf7, 0xa9, 0x9a, 0x79, 0x7b, 0x7b, 0xb1, 0xcd, 0x3f, 0x6c, 0x2c, 0x83, 0xa5,
- 0x84, 0x66, 0x05, 0x11, 0xc7, 0x3f, 0x6c, 0xe3, 0x03, 0xbb, 0xcf, 0x53, 0xa7, 0x35, 0xb8, 0xcf,
- 0x0a, 0xc8, 0xf3, 0xfb, 0x98, 0xad, 0xe0, 0x32, 0x79, 0xe5, 0x2f, 0xf6, 0xe1, 0xa4, 0x05, 0x1f,
- 0x81, 0x79, 0x6e, 0xb4, 0x10, 0x21, 0xaa, 0x31, 0x5e, 0xf2, 0x1c, 0x63, 0x1b, 0x0c, 0xbd, 0xab,
- 0xe2, 0xa8, 0xaa, 0xbe, 0xe2, 0xaf, 0x59, 0xf0, 0x77, 0x60, 0x0b, 0x0a, 0x3d, 0x89, 0xe4, 0x64,
- 0x7d, 0xb2, 0x7f, 0x50, 0x9f, 0xa9, 0x3b, 0xd4, 0x67, 0x17, 0x94, 0x1c, 0x17, 0xe3, 0x76, 0x93,
- 0x37, 0x65, 0x93, 0x9d, 0x5d, 0x9e, 0x5e, 0x17, 0xb6, 0x0a, 0x0a, 0x0c, 0x6c, 0xf1, 0x6b, 0x1c,
- 0x81, 0xb5, 0x84, 0x47, 0x22, 0xfc, 0x4c, 0xe0, 0x2a, 0xc6, 0x5c, 0xd3, 0x9a, 0x22, 0x37, 0x3e,
- 0xc5, 0x22, 0x28, 0x27, 0xd3, 0xd8, 0xcf, 0xf1, 0x17, 0x01, 0x2c, 0x36, 0x88, 0x71, 0x72, 0x5c,
- 0x3f, 0xc3, 0x6d, 0xfa, 0x52, 0x75, 0x11, 0xe7, 0xe0, 0x43, 0x30, 0xed, 0x74, 0x54, 0x9b, 0xf7,
- 0xf8, 0xaa, 0xc4, 0xc6, 0x50, 0x0a, 0xc7, 0x8e, 0x8f, 0xa1, 0x74, 0xda, 0x51, 0xed, 0xe3, 0xe9,
- 0xcb, 0xef, 0xd5, 0x8c, 0x12, 0xf0, 0xf0, 0x09, 0x58, 0xe4, 0x4c, 0xab, 0x39, 0x71, 0x31, 0xfe,
- 0x09, 0x5d, 0xea, 0x91, 0xa2, 0xa4, 0xf5, 0xd0, 0x6c, 0xf4, 0x72, 0x55, 0xb0, 0x36, 0x52, 0x7f,
- 0xff, 0x86, 0x1f, 0xd9, 0x0d, 0xcf, 0x3c, 0xcd, 0x32, 0x69, 0xc3, 0x24, 0x1a, 0x3a, 0x57, 0xbb,
- 0x26, 0xf6, 0xdc, 0xf1, 0xad, 0x74, 0x00, 0x0a, 0x56, 0x04, 0x1e, 0xab, 0x3e, 0x46, 0xa6, 0xca,
- 0x5e, 0x48, 0xd4, 0xa5, 0x2c, 0x70, 0xf1, 0xc3, 0xd2, 0xfa, 0xe2, 0x5f, 0x47, 0x66, 0xf6, 0x54,
- 0x75, 0x55, 0x8b, 0xc0, 0x55, 0x90, 0x57, 0x3d, 0x7a, 0x8e, 0x5d, 0x93, 0xf6, 0xb8, 0xea, 0xc1,
- 0x07, 0x78, 0x00, 0x72, 0x4e, 0xc0, 0x71, 0xc1, 0xa2, 0x34, 0xbc, 0x6b, 0x25, 0x76, 0x12, 0xaf,
- 0x1a, 0xe7, 0x0f, 0x61, 0x28, 0x6f, 0x70, 0x5a, 0x6c, 0x38, 0x99, 0x53, 0x34, 0xad, 0xfe, 0x70,
- 0x2a, 0x48, 0xc7, 0x5d, 0xe4, 0xf2, 0xae, 0xde, 0x06, 0x0b, 0xc4, 0xd3, 0x5e, 0x20, 0x9d, 0x36,
- 0x93, 0x99, 0x2d, 0x72, 0x43, 0x3d, 0x4c, 0xf0, 0x2e, 0x28, 0x11, 0x4f, 0x23, 0xd4, 0xa4, 0x1e,
- 0x45, 0x11, 0x3c, 0x1b, 0xe0, 0x70, 0x60, 0xeb, 0x7b, 0x4c, 0xbc, 0x53, 0x58, 0xc3, 0xc7, 0xa4,
- 0x85, 0xba, 0xf7, 0x7e, 0xce, 0x80, 0xa9, 0x06, 0x31, 0xe0, 0x73, 0x50, 0x88, 0xad, 0xf6, 0xff,
- 0x46, 0x25, 0x2a, 0xb1, 0x4b, 0xc5, 0x7b, 0x13, 0x40, 0x61, 0x24, 0x3f, 0x42, 0x6c, 0xd9, 0xa6,
- 0x45, 0x88, 0x42, 0xa9, 0x11, 0x46, 0x2d, 0x48, 0xa8, 0x83, 0xb9, 0xf8, 0x56, 0xd9, 0x4c, 0xf5,
- 0x8e, 0x50, 0xe2, 0xfd, 0x49, 0xa8, 0x7e, 0x10, 0x17, 0xc0, 0x11, 0xdb, 0xe1, 0xff, 0x94, 0x33,
- 0x86, 0x51, 0xb1, 0x36, 0x31, 0x1a, 0x8d, 0x39, 0x62, 0x5e, 0xd3, 0x62, 0x0e, 0xa3, 0xa9, 0x31,
- 0xd3, 0x47, 0x0d, 0xb6, 0x01, 0x8c, 0x26, 0x99, 0x4f, 0xdb, 0xf8, 0xa2, 0x31, 0xe8, 0x37, 0x45,
- 0x8b, 0x0f, 0x8e, 0x5f, 0xb4, 0xf8, 0xd0, 0xa4, 0x15, 0x2d, 0x46, 0xa5, 0x16, 0x6d, 0x64, 0x97,
- 0x8b, 0x33, 0x6f, 0x6e, 0x2f, 0xb6, 0x85, 0x63, 0xe5, 0xf2, 0xba, 0x22, 0x5c, 0x5d, 0x57, 0x84,
- 0x1f, 0xd7, 0x15, 0xe1, 0xfd, 0x4d, 0x25, 0x73, 0x75, 0x53, 0xc9, 0x7c, 0xbb, 0xa9, 0x64, 0x9e,
- 0x1d, 0x18, 0x26, 0x3d, 0xf7, 0x34, 0x49, 0xc7, 0x96, 0xcc, 0x7f, 0xb0, 0x4c, 0x4d, 0xdf, 0x31,
- 0xb0, 0xdc, 0xdd, 0x97, 0x2d, 0xdc, 0xf2, 0x3a, 0x88, 0xb0, 0xdf, 0xa3, 0xdd, 0xbd, 0x1d, 0xfe,
- 0x87, 0x44, 0x7b, 0x0e, 0x22, 0x5a, 0x2e, 0x58, 0x7d, 0x0f, 0x7e, 0x05, 0x00, 0x00, 0xff, 0xff,
- 0x99, 0x83, 0x41, 0x89, 0xe2, 0x09, 0x00, 0x00,
+ 0x18, 0xc7, 0xe3, 0x00, 0xd1, 0xcb, 0x11, 0xc8, 0xcb, 0xbd, 0xe1, 0x25, 0x98, 0x92, 0x20, 0xca,
+ 0x40, 0x69, 0xb1, 0x09, 0x95, 0x0a, 0x6a, 0xd5, 0x01, 0xb2, 0x94, 0x21, 0x12, 0x32, 0xea, 0xd2,
+ 0x25, 0xb5, 0x9d, 0xcb, 0xe1, 0x2a, 0xf6, 0x59, 0xbe, 0x73, 0x5a, 0xb6, 0xaa, 0x53, 0xc7, 0x0e,
+ 0x5d, 0xba, 0xf5, 0x4f, 0x40, 0xfd, 0x03, 0xba, 0x55, 0x62, 0x64, 0xec, 0x54, 0x55, 0x30, 0x20,
+ 0xf5, 0xaf, 0xa8, 0xec, 0xbb, 0x04, 0xdb, 0x89, 0xdd, 0xa0, 0x6e, 0xb6, 0x9f, 0xcf, 0x73, 0xcf,
+ 0xf7, 0x9e, 0x5f, 0x32, 0x58, 0xb6, 0x0c, 0x53, 0x35, 0x89, 0x87, 0x54, 0xb3, 0x6b, 0x21, 0x87,
+ 0xa9, 0xbd, 0xba, 0xca, 0xde, 0x28, 0xae, 0x47, 0x18, 0x81, 0xd0, 0x32, 0x4c, 0x25, 0x30, 0x2a,
+ 0xdc, 0xa8, 0xf4, 0xea, 0xf2, 0xa2, 0x49, 0xa8, 0x4d, 0xa8, 0x6a, 0x53, 0x1c, 0xb0, 0x36, 0xc5,
+ 0x1c, 0x96, 0xd7, 0x85, 0xc1, 0x77, 0xb1, 0xa7, 0xb7, 0x91, 0xda, 0xab, 0x1b, 0x88, 0xe9, 0xf5,
+ 0xfe, 0xbb, 0xa0, 0xca, 0x98, 0x60, 0x12, 0x3e, 0xaa, 0xc1, 0x93, 0xf8, 0xba, 0x84, 0x09, 0xc1,
+ 0x5d, 0xa4, 0x86, 0x6f, 0x86, 0xdf, 0x51, 0x75, 0xe7, 0x54, 0x98, 0x6a, 0x23, 0x04, 0x0a, 0x35,
+ 0x21, 0xb0, 0xf6, 0x45, 0x02, 0xa5, 0x26, 0xc5, 0x0d, 0x0f, 0xe9, 0x0c, 0x35, 0x42, 0x0b, 0xdc,
+ 0x05, 0x45, 0xce, 0xb4, 0x28, 0xd3, 0x19, 0xaa, 0x48, 0xab, 0xd2, 0xc6, 0xcc, 0x4e, 0x59, 0xe1,
+ 0x61, 0x94, 0x7e, 0x18, 0x65, 0xdf, 0x39, 0xd5, 0x66, 0x38, 0x79, 0x1c, 0x80, 0xf0, 0x29, 0x28,
+ 0x99, 0xc4, 0xa1, 0xc8, 0xa1, 0x3e, 0x15, 0xbe, 0xf9, 0x0c, 0xdf, 0xb9, 0x01, 0xcc, 0xdd, 0xff,
+ 0x07, 0x05, 0x6a, 0x61, 0x07, 0x79, 0x95, 0x89, 0x55, 0x69, 0x63, 0x5a, 0x13, 0x6f, 0x8f, 0x4b,
+ 0xef, 0x3f, 0xd7, 0x72, 0xef, 0xae, 0xcf, 0x36, 0xc5, 0x87, 0xb5, 0x25, 0xb0, 0x98, 0xd0, 0xac,
+ 0x21, 0xea, 0x06, 0x87, 0xad, 0x7d, 0xe4, 0xf7, 0x79, 0xee, 0xb6, 0x6f, 0xee, 0xb3, 0x0c, 0xa6,
+ 0xc5, 0x7d, 0xac, 0x76, 0x78, 0x99, 0x69, 0xed, 0x1f, 0xfe, 0xe1, 0xb0, 0x0d, 0x9f, 0x80, 0x39,
+ 0x61, 0xb4, 0x11, 0xa5, 0x3a, 0xce, 0x96, 0x3c, 0xcb, 0xd9, 0x26, 0x47, 0x6f, 0xab, 0x38, 0xaa,
+ 0x6a, 0xa0, 0xf8, 0x5b, 0x1e, 0xfc, 0x1b, 0xda, 0xc2, 0x42, 0x8f, 0x23, 0x39, 0x59, 0x9f, 0xfc,
+ 0x5f, 0xd4, 0x67, 0xe2, 0x16, 0xf5, 0xd9, 0x06, 0x65, 0xd7, 0x23, 0xa4, 0xd3, 0x12, 0x4d, 0xd9,
+ 0xe2, 0x67, 0x57, 0x26, 0x57, 0xa5, 0x8d, 0xa2, 0x06, 0x43, 0x5b, 0xfc, 0x1a, 0xfb, 0x60, 0x25,
+ 0xe1, 0x91, 0x08, 0x3f, 0x15, 0xba, 0xca, 0x31, 0xd7, 0xb4, 0xa6, 0x28, 0x64, 0xa7, 0x58, 0x06,
+ 0x95, 0x64, 0x1a, 0x07, 0x39, 0xfe, 0x2a, 0x81, 0x85, 0x26, 0xc5, 0x87, 0x07, 0x8d, 0x63, 0xd2,
+ 0x61, 0xaf, 0x75, 0x0f, 0x09, 0x0e, 0x3e, 0x02, 0x93, 0x6e, 0x57, 0x77, 0x44, 0x8f, 0xdf, 0x51,
+ 0xf8, 0x18, 0x2a, 0xfd, 0xb1, 0x13, 0x63, 0xa8, 0x1c, 0x75, 0x75, 0xe7, 0x60, 0xf2, 0xfc, 0x47,
+ 0x2d, 0xa7, 0x85, 0x3c, 0x7c, 0x06, 0x16, 0x04, 0xd3, 0x6e, 0x8d, 0x5d, 0x8c, 0xff, 0xfa, 0x2e,
+ 0x8d, 0x48, 0x51, 0xd2, 0x7a, 0x68, 0x26, 0x7a, 0xb9, 0x1a, 0x58, 0x19, 0xa9, 0x7f, 0x70, 0xc3,
+ 0x4f, 0xfc, 0x86, 0xc7, 0xbe, 0x61, 0x5b, 0xac, 0x69, 0x51, 0x03, 0x9d, 0xe8, 0x3d, 0x8b, 0xf8,
+ 0x5e, 0x76, 0x2b, 0xed, 0x81, 0xa2, 0x1d, 0x81, 0x33, 0xd5, 0xc7, 0xc8, 0x54, 0xd9, 0xf3, 0x89,
+ 0xba, 0x54, 0x24, 0x21, 0x7e, 0x58, 0xda, 0x40, 0x3c, 0x8b, 0xcc, 0xec, 0x91, 0xee, 0xe9, 0x36,
+ 0x8d, 0x1c, 0x2f, 0x45, 0x8f, 0x87, 0x7b, 0xa0, 0xe0, 0x86, 0x84, 0x90, 0x2a, 0x2b, 0xc3, 0x5b,
+ 0x56, 0xe1, 0x67, 0x88, 0x7a, 0x09, 0x3e, 0x7b, 0x26, 0xb9, 0x47, 0x34, 0x9b, 0xc1, 0x4c, 0x6a,
+ 0xc8, 0x24, 0x3d, 0xe4, 0x89, 0x66, 0xde, 0x04, 0xf3, 0xd4, 0x37, 0x5e, 0x21, 0x93, 0xb5, 0x92,
+ 0x09, 0x2d, 0x09, 0x43, 0xa3, 0x9f, 0xd7, 0x6d, 0x50, 0xa6, 0xbe, 0x41, 0x99, 0xc5, 0x7c, 0x86,
+ 0x22, 0x78, 0x3e, 0xc4, 0xe1, 0x8d, 0x6d, 0xe0, 0x31, 0xf6, 0x2a, 0xe1, 0x7d, 0x1e, 0x93, 0xd6,
+ 0xd7, 0xbd, 0xf3, 0x6b, 0x0a, 0x4c, 0x34, 0x29, 0x86, 0x2f, 0x41, 0x31, 0xb6, 0xd1, 0xef, 0x8e,
+ 0xca, 0x52, 0x62, 0x85, 0xca, 0xf7, 0xc7, 0x80, 0xfa, 0x91, 0x82, 0x08, 0xb1, 0x1d, 0x9b, 0x16,
+ 0x21, 0x0a, 0xa5, 0x46, 0x18, 0xb5, 0x17, 0xa1, 0x09, 0x66, 0xe3, 0xcb, 0x64, 0x3d, 0xd5, 0x3b,
+ 0x42, 0xc9, 0x0f, 0xc6, 0xa1, 0x06, 0x41, 0x3c, 0x00, 0x47, 0x2c, 0x85, 0x7b, 0x29, 0x67, 0x0c,
+ 0xa3, 0x72, 0x7d, 0x6c, 0x34, 0x1a, 0x73, 0xc4, 0x98, 0xa6, 0xc5, 0x1c, 0x46, 0x53, 0x63, 0xa6,
+ 0x4f, 0x18, 0xec, 0x00, 0x18, 0x4d, 0xb2, 0x18, 0xb2, 0xec, 0xa2, 0x71, 0xe8, 0x0f, 0x45, 0x8b,
+ 0x0f, 0x4e, 0x50, 0xb4, 0xf8, 0xd0, 0xa4, 0x15, 0x2d, 0x46, 0xa5, 0x16, 0x6d, 0x64, 0x97, 0xcb,
+ 0x53, 0x6f, 0xaf, 0xcf, 0x36, 0xa5, 0x03, 0xed, 0xfc, 0xb2, 0x2a, 0x5d, 0x5c, 0x56, 0xa5, 0x9f,
+ 0x97, 0x55, 0xe9, 0xc3, 0x55, 0x35, 0x77, 0x71, 0x55, 0xcd, 0x7d, 0xbf, 0xaa, 0xe6, 0x5e, 0xec,
+ 0x61, 0x8b, 0x9d, 0xf8, 0x86, 0x62, 0x12, 0x5b, 0x15, 0xff, 0x55, 0x96, 0x61, 0x6e, 0x61, 0xa2,
+ 0xf6, 0x76, 0x55, 0x9b, 0xb4, 0xfd, 0x2e, 0xa2, 0xfc, 0xaf, 0x68, 0x7b, 0x67, 0x4b, 0xfc, 0x18,
+ 0xb1, 0x53, 0x17, 0x51, 0xa3, 0x10, 0x6e, 0xbc, 0x87, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x9d,
+ 0x6b, 0x20, 0xe4, 0xd9, 0x09, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -1443,10 +1442,10 @@ func (m *MsgUpdateParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
}
i--
dAtA[i] = 0x12
- if len(m.Authority) > 0 {
- i -= len(m.Authority)
- copy(dAtA[i:], m.Authority)
- i = encodeVarintTx(dAtA, i, uint64(len(m.Authority)))
+ if len(m.Signer) > 0 {
+ i -= len(m.Signer)
+ copy(dAtA[i:], m.Signer)
+ i = encodeVarintTx(dAtA, i, uint64(len(m.Signer)))
i--
dAtA[i] = 0xa
}
@@ -1720,7 +1719,7 @@ func (m *MsgUpdateParams) Size() (n int) {
}
var l int
_ = l
- l = len(m.Authority)
+ l = len(m.Signer)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
@@ -2914,7 +2913,7 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error {
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -2942,7 +2941,7 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Authority = string(dAtA[iNdEx:postIndex])
+ m.Signer = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
diff --git a/modules/core/03-connection/keeper/grpc_query.go b/modules/core/03-connection/keeper/grpc_query.go
index 9cd1830d1e5..f6871bf4ab3 100644
--- a/modules/core/03-connection/keeper/grpc_query.go
+++ b/modules/core/03-connection/keeper/grpc_query.go
@@ -7,8 +7,8 @@ import (
"google.golang.org/grpc/status"
errorsmod "cosmossdk.io/errors"
+ "cosmossdk.io/store/prefix"
- "github.com/cosmos/cosmos-sdk/store/prefix"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/query"
diff --git a/modules/core/03-connection/keeper/keeper.go b/modules/core/03-connection/keeper/keeper.go
index b0a910f3e08..f892455cf60 100644
--- a/modules/core/03-connection/keeper/keeper.go
+++ b/modules/core/03-connection/keeper/keeper.go
@@ -2,14 +2,13 @@ package keeper
import (
errorsmod "cosmossdk.io/errors"
+ "cosmossdk.io/log"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
- "github.com/cometbft/cometbft/libs/log"
-
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
"github.com/cosmos/ibc-go/v7/modules/core/03-connection/types"
commitmenttypes "github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types"
diff --git a/modules/core/03-connection/keeper/verify.go b/modules/core/03-connection/keeper/verify.go
index ef169878c27..3e96d58f157 100644
--- a/modules/core/03-connection/keeper/verify.go
+++ b/modules/core/03-connection/keeper/verify.go
@@ -4,8 +4,8 @@ import (
"math"
errorsmod "cosmossdk.io/errors"
+ storetypes "cosmossdk.io/store/types"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
diff --git a/modules/core/03-connection/types/expected_keepers.go b/modules/core/03-connection/types/expected_keepers.go
index 7082595a0bf..dd4af1f548b 100644
--- a/modules/core/03-connection/types/expected_keepers.go
+++ b/modules/core/03-connection/types/expected_keepers.go
@@ -1,7 +1,8 @@
package types
import (
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
+ storetypes "cosmossdk.io/store/types"
+
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/ibc-go/v7/modules/core/exported"
diff --git a/modules/core/03-connection/types/msgs.go b/modules/core/03-connection/types/msgs.go
index 67837a2133f..05bf802b906 100644
--- a/modules/core/03-connection/types/msgs.go
+++ b/modules/core/03-connection/types/msgs.go
@@ -285,16 +285,16 @@ func (msg MsgConnectionOpenConfirm) GetSigners() []sdk.AccAddress {
}
// NewMsgUpdateParams creates a new MsgUpdateParams instance
-func NewMsgUpdateParams(authority string, params Params) *MsgUpdateParams {
+func NewMsgUpdateParams(signer string, params Params) *MsgUpdateParams {
return &MsgUpdateParams{
- Authority: authority,
- Params: params,
+ Signer: signer,
+ Params: params,
}
}
// GetSigners returns the expected signers for a MsgUpdateParams message.
func (msg *MsgUpdateParams) GetSigners() []sdk.AccAddress {
- accAddr, err := sdk.AccAddressFromBech32(msg.Authority)
+ accAddr, err := sdk.AccAddressFromBech32(msg.Signer)
if err != nil {
panic(err)
}
@@ -303,7 +303,7 @@ func (msg *MsgUpdateParams) GetSigners() []sdk.AccAddress {
// ValidateBasic performs basic checks on a MsgUpdateParams.
func (msg *MsgUpdateParams) ValidateBasic() error {
- if _, err := sdk.AccAddressFromBech32(msg.Authority); err != nil {
+ if _, err := sdk.AccAddressFromBech32(msg.Signer); err != nil {
return errorsmod.Wrapf(ibcerrors.ErrInvalidAddress, "string could not be parsed as address: %v", err)
}
return msg.Params.Validate()
diff --git a/modules/core/03-connection/types/msgs_test.go b/modules/core/03-connection/types/msgs_test.go
index cc0544f91fa..ecb10b4b7c3 100644
--- a/modules/core/03-connection/types/msgs_test.go
+++ b/modules/core/03-connection/types/msgs_test.go
@@ -5,17 +5,17 @@ import (
"testing"
"time"
+ dbm "github.com/cosmos/cosmos-db"
"github.com/stretchr/testify/require"
testifysuite "github.com/stretchr/testify/suite"
- "github.com/cosmos/cosmos-sdk/store/iavl"
- "github.com/cosmos/cosmos-sdk/store/rootmulti"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
- sdk "github.com/cosmos/cosmos-sdk/types"
+ log "cosmossdk.io/log"
+ "cosmossdk.io/store/iavl"
+ "cosmossdk.io/store/metrics"
+ "cosmossdk.io/store/rootmulti"
+ storetypes "cosmossdk.io/store/types"
- dbm "github.com/cometbft/cometbft-db"
- abci "github.com/cometbft/cometbft/abci/types"
- log "github.com/cometbft/cometbft/libs/log"
+ sdk "github.com/cosmos/cosmos-sdk/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
"github.com/cosmos/ibc-go/v7/modules/core/03-connection/types"
@@ -52,8 +52,7 @@ func (suite *MsgTestSuite) SetupTest() {
app := simapp.Setup(suite.T(), false)
db := dbm.NewMemDB()
- dblog := log.TestingLogger()
- store := rootmulti.NewStore(db, dblog)
+ store := rootmulti.NewStore(db, log.NewNopLogger(), metrics.NewNoOpMetrics())
storeKey := storetypes.NewKVStoreKey("iavlStoreKey")
store.MountStoreWithDB(storeKey, storetypes.StoreTypeIAVL, nil)
@@ -64,11 +63,12 @@ func (suite *MsgTestSuite) SetupTest() {
iavlStore.Set([]byte("KEY"), []byte("VALUE"))
_ = store.Commit()
- res := store.Query(abci.RequestQuery{
- Path: fmt.Sprintf("/%s/key", storeKey.Name()), // required path to get key/value+proof
+ res, err := store.Query(&storetypes.RequestQuery{
Data: []byte("KEY"),
+ Path: fmt.Sprintf("/%s/key", storeKey.Name()), // required path to get key/value+proof
Prove: true,
})
+ suite.Require().NoError(err)
merkleProof, err := commitmenttypes.ConvertProofs(res.ProofOps)
suite.Require().NoError(err)
@@ -238,25 +238,25 @@ func (suite *MsgTestSuite) TestNewMsgConnectionOpenConfirm() {
// TestMsgUpdateParamsValidateBasic tests ValidateBasic for MsgUpdateParams
func (suite *MsgTestSuite) TestMsgUpdateParamsValidateBasic() {
- authority := suite.chainA.App.GetIBCKeeper().GetAuthority()
+ signer := suite.chainA.App.GetIBCKeeper().GetAuthority()
testCases := []struct {
name string
msg *types.MsgUpdateParams
expPass bool
}{
{
- "success: valid authority and params",
- types.NewMsgUpdateParams(authority, types.DefaultParams()),
+ "success: valid signer and params",
+ types.NewMsgUpdateParams(signer, types.DefaultParams()),
true,
},
{
- "failure: invalid authority address",
+ "failure: invalid signer address",
types.NewMsgUpdateParams("invalid", types.DefaultParams()),
false,
},
{
"failure: invalid time per block",
- types.NewMsgUpdateParams(authority, types.NewParams(0)),
+ types.NewMsgUpdateParams(signer, types.NewParams(0)),
false,
},
}
@@ -284,8 +284,8 @@ func TestMsgUpdateParamsGetSigners(t *testing.T) {
for _, tc := range testCases {
msg := types.MsgUpdateParams{
- Authority: tc.address.String(),
- Params: types.DefaultParams(),
+ Signer: tc.address.String(),
+ Params: types.DefaultParams(),
}
if tc.expPass {
require.Equal(t, []sdk.AccAddress{tc.address}, msg.GetSigners())
diff --git a/modules/core/03-connection/types/tx.pb.go b/modules/core/03-connection/types/tx.pb.go
index 8be9326652a..d9fb4381a62 100644
--- a/modules/core/03-connection/types/tx.pb.go
+++ b/modules/core/03-connection/types/tx.pb.go
@@ -380,8 +380,8 @@ var xxx_messageInfo_MsgConnectionOpenConfirmResponse proto.InternalMessageInfo
// MsgUpdateParams defines the sdk.Msg type to update the connection parameters.
type MsgUpdateParams struct {
- // authority is the address that controls the module (defaults to x/gov unless overwritten).
- Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"`
+ // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten).
+ Signer string `protobuf:"bytes,1,opt,name=signer,proto3" json:"signer,omitempty"`
// params defines the connection parameters to update.
//
// NOTE: All parameters must be supplied.
@@ -474,66 +474,65 @@ func init() {
func init() { proto.RegisterFile("ibc/core/connection/v1/tx.proto", fileDescriptor_5d00fde5fc97399e) }
var fileDescriptor_5d00fde5fc97399e = []byte{
- // 944 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0xcd, 0x6e, 0xdb, 0x46,
- 0x10, 0xc7, 0x45, 0x5b, 0x92, 0xad, 0x91, 0x52, 0xb7, 0x0b, 0xd9, 0x66, 0x98, 0x44, 0x52, 0xd4,
- 0x02, 0x36, 0x82, 0x9a, 0x8c, 0x93, 0x16, 0x49, 0x53, 0x5f, 0x6c, 0x5d, 0x6a, 0x14, 0x6e, 0x03,
- 0xd5, 0xcd, 0xa1, 0x17, 0x41, 0xa2, 0xd6, 0xd4, 0xc2, 0x16, 0x97, 0xe0, 0xae, 0xd4, 0xb2, 0xa7,
- 0x7e, 0x5c, 0x0a, 0xf4, 0xd2, 0x47, 0xe8, 0x23, 0xe4, 0x31, 0x82, 0x1e, 0x8a, 0xa0, 0xa7, 0x9e,
- 0x8a, 0xc2, 0x3e, 0xe4, 0x05, 0xfa, 0x00, 0x05, 0x77, 0x97, 0x1f, 0xd6, 0x87, 0x41, 0xd9, 0xb9,
- 0x49, 0xc3, 0xff, 0xcc, 0xfe, 0x67, 0xf6, 0xb7, 0xe4, 0x42, 0x9d, 0xf4, 0x6c, 0xcb, 0xa6, 0x3e,
- 0xb6, 0x6c, 0xea, 0xba, 0xd8, 0xe6, 0x84, 0xba, 0xd6, 0x78, 0xd7, 0xe2, 0xdf, 0x99, 0x9e, 0x4f,
- 0x39, 0x45, 0x1b, 0xa4, 0x67, 0x9b, 0xa1, 0xc0, 0x4c, 0x04, 0xe6, 0x78, 0xd7, 0xa8, 0x3a, 0xd4,
- 0xa1, 0x42, 0x62, 0x85, 0xbf, 0xa4, 0xda, 0xd8, 0xb4, 0x29, 0x1b, 0x52, 0x66, 0x0d, 0x99, 0x13,
- 0x56, 0x19, 0x32, 0x47, 0x3d, 0xb8, 0xed, 0x50, 0xea, 0x9c, 0x61, 0x4b, 0xfc, 0xeb, 0x8d, 0x4e,
- 0xac, 0xae, 0x1b, 0xa8, 0x47, 0x29, 0x0b, 0x67, 0x04, 0xbb, 0x3c, 0x4c, 0x94, 0xbf, 0x94, 0x60,
- 0x6b, 0x8e, 0xc7, 0x94, 0x21, 0x21, 0x6c, 0xfe, 0xba, 0x04, 0xeb, 0x47, 0xcc, 0x69, 0xc5, 0xf1,
- 0x2f, 0x3d, 0xec, 0x1e, 0xba, 0x84, 0xa3, 0x3b, 0x50, 0x92, 0x25, 0x3b, 0xa4, 0xaf, 0x6b, 0x0d,
- 0x6d, 0xbb, 0xd4, 0x5e, 0x95, 0x81, 0xc3, 0x3e, 0xfa, 0x02, 0x2a, 0x36, 0x1d, 0xb9, 0x1c, 0xfb,
- 0x5e, 0xd7, 0xe7, 0x81, 0xbe, 0xd4, 0xd0, 0xb6, 0xcb, 0x8f, 0x3e, 0x30, 0x67, 0x77, 0x6e, 0xb6,
- 0x52, 0xda, 0x83, 0xfc, 0xab, 0x7f, 0xea, 0xb9, 0xf6, 0xa5, 0x7c, 0xf4, 0x09, 0xac, 0x8c, 0xb1,
- 0xcf, 0x08, 0x75, 0xf5, 0x65, 0x51, 0xaa, 0x3e, 0xaf, 0xd4, 0x0b, 0x29, 0x6b, 0x47, 0x7a, 0x74,
- 0x1f, 0x2a, 0x7d, 0x7c, 0xd6, 0x0d, 0x3a, 0x1e, 0xf6, 0x09, 0xed, 0xeb, 0xf9, 0x86, 0xb6, 0x9d,
- 0x6f, 0x97, 0x45, 0xec, 0xb9, 0x08, 0xa1, 0x0d, 0x28, 0x32, 0xe2, 0xb8, 0xd8, 0xd7, 0x0b, 0xa2,
- 0x0f, 0xf5, 0xef, 0xd9, 0xda, 0x2f, 0xbf, 0xd7, 0x73, 0x3f, 0xbd, 0x79, 0xf9, 0x40, 0x05, 0x9a,
- 0x75, 0xb8, 0x37, 0x73, 0x18, 0x6d, 0xcc, 0x3c, 0xea, 0x32, 0xdc, 0xfc, 0xab, 0x00, 0xd5, 0x29,
- 0xc5, 0xb1, 0x1f, 0x5c, 0x3d, 0xad, 0xa7, 0xb0, 0xe1, 0xf9, 0x78, 0x4c, 0xe8, 0x88, 0x75, 0x92,
- 0x6e, 0x42, 0x65, 0x38, 0xb7, 0xd2, 0xc1, 0x92, 0xae, 0xb5, 0xab, 0x91, 0x22, 0xa9, 0x7d, 0xd8,
- 0x47, 0x4f, 0xa0, 0xa2, 0xca, 0x32, 0xde, 0xe5, 0x58, 0x0d, 0xa7, 0x6a, 0x4a, 0x34, 0xcc, 0x08,
- 0x0d, 0x73, 0xdf, 0x0d, 0xda, 0x65, 0xa9, 0xfc, 0x2a, 0x14, 0x4e, 0x6d, 0x50, 0xfe, 0x86, 0x1b,
- 0x34, 0x39, 0xe5, 0xc2, 0xf4, 0x94, 0x8f, 0x61, 0x3d, 0x9d, 0xd2, 0x51, 0x1b, 0xc4, 0xf4, 0x62,
- 0x63, 0x39, 0xcb, 0x8e, 0x56, 0xd3, 0xd9, 0x2a, 0xc8, 0x50, 0x0b, 0x2a, 0x9e, 0x4f, 0xe9, 0x49,
- 0x67, 0x80, 0x89, 0x33, 0xe0, 0xfa, 0x8a, 0x68, 0xc4, 0x48, 0x15, 0x93, 0xdc, 0x8f, 0x77, 0xcd,
- 0xcf, 0x84, 0x42, 0xd9, 0x2f, 0x8b, 0x2c, 0x19, 0x42, 0xf7, 0x00, 0x64, 0x11, 0xe2, 0x12, 0xae,
- 0xaf, 0x36, 0xb4, 0xed, 0x4a, 0xbb, 0x24, 0x22, 0x02, 0xf5, 0xfb, 0xd1, 0x1a, 0xb2, 0x96, 0x5e,
- 0x12, 0x02, 0x59, 0xa1, 0x25, 0x42, 0x68, 0x0b, 0xd6, 0x94, 0x24, 0xe4, 0xc0, 0x65, 0x23, 0xa6,
- 0x83, 0x50, 0xbd, 0x23, 0x55, 0x51, 0x14, 0x7d, 0x0e, 0xef, 0xc6, 0x92, 0xc8, 0x73, 0x39, 0xa3,
- 0xe7, 0xb5, 0x38, 0x53, 0xf9, 0x4e, 0xc0, 0xad, 0xa4, 0xc1, 0x45, 0x9f, 0x82, 0x31, 0xa0, 0x8c,
- 0x27, 0x66, 0x24, 0x1e, 0x1d, 0xe1, 0x45, 0xbf, 0x25, 0x8c, 0x6d, 0x86, 0x8a, 0xd8, 0x97, 0xa0,
- 0xe2, 0x79, 0xf8, 0x78, 0x9a, 0xfa, 0x1a, 0xdc, 0x9d, 0xc5, 0x74, 0x0c, 0xfd, 0x9f, 0xf9, 0x19,
- 0xd0, 0xef, 0xdb, 0xa7, 0xe8, 0x7d, 0xb8, 0x75, 0x19, 0x67, 0x09, 0x7e, 0xc5, 0x4e, 0x23, 0xbc,
- 0x07, 0xc6, 0x25, 0x2c, 0x66, 0x1c, 0x80, 0xb6, 0x9e, 0x56, 0x5c, 0x3a, 0x00, 0x37, 0x78, 0x31,
- 0x4c, 0x9e, 0x9d, 0x7c, 0xd6, 0xb3, 0x33, 0x89, 0x5c, 0xe1, 0x3a, 0xc8, 0xdd, 0x01, 0x09, 0x58,
- 0x87, 0xfb, 0x81, 0x5e, 0x14, 0x3b, 0xb2, 0x2a, 0x02, 0xe1, 0xdb, 0x62, 0x12, 0xb8, 0x95, 0x4c,
- 0xc0, 0xad, 0x66, 0x06, 0xae, 0x74, 0x73, 0xe0, 0x60, 0x01, 0xe0, 0xca, 0x6f, 0x01, 0xb8, 0x7d,
- 0xfb, 0x34, 0x06, 0xee, 0x0f, 0x0d, 0xf4, 0x29, 0x41, 0x8b, 0xba, 0x27, 0xc4, 0x1f, 0x66, 0x83,
- 0x2e, 0x9e, 0x7e, 0xd7, 0x3e, 0x15, 0x8c, 0x45, 0xd3, 0x0f, 0xb1, 0x9d, 0xdc, 0xdf, 0xe5, 0xeb,
- 0xec, 0x6f, 0x32, 0xa9, 0xfc, 0xd5, 0xdf, 0x94, 0x26, 0x34, 0xe6, 0xf5, 0x12, 0x37, 0xfc, 0xa3,
- 0x06, 0x6b, 0x47, 0xcc, 0xf9, 0xda, 0xeb, 0x87, 0x43, 0xeb, 0xfa, 0xdd, 0x21, 0x43, 0x77, 0xa1,
- 0xd4, 0x1d, 0xf1, 0x01, 0xf5, 0x09, 0x0f, 0x54, 0x8f, 0x49, 0x00, 0xed, 0x41, 0xd1, 0x13, 0x3a,
- 0xf5, 0xe9, 0xad, 0xcd, 0x3b, 0x16, 0xb2, 0x9a, 0xea, 0x40, 0xe5, 0x3c, 0x43, 0x91, 0xc9, 0xa4,
- 0x62, 0xf3, 0x36, 0x6c, 0x4e, 0x58, 0x88, 0xec, 0x3d, 0xfa, 0x2f, 0x0f, 0xcb, 0x47, 0xcc, 0x41,
- 0xdf, 0x03, 0x9a, 0x71, 0x51, 0xd8, 0x99, 0xb7, 0xf4, 0xcc, 0x4f, 0xa9, 0xf1, 0xf1, 0x42, 0xf2,
- 0xc8, 0x03, 0xfa, 0x16, 0xde, 0x9b, 0xfe, 0xea, 0x7e, 0x98, 0xb9, 0xd6, 0xb1, 0x1f, 0x18, 0x1f,
- 0x2d, 0xa2, 0x9e, 0xbf, 0x70, 0x88, 0x50, 0xf6, 0x85, 0xf7, 0xed, 0xd3, 0x05, 0x16, 0x4e, 0x9d,
- 0x02, 0xf4, 0xb3, 0x06, 0xeb, 0xb3, 0x8f, 0xc0, 0xc3, 0xcc, 0xf5, 0x54, 0x86, 0xf1, 0x74, 0xd1,
- 0x8c, 0xd8, 0x85, 0x0f, 0x1b, 0x92, 0x89, 0x44, 0xa6, 0x00, 0xdd, 0xba, 0xa2, 0x66, 0x1a, 0x23,
- 0xc3, 0xca, 0x28, 0x8c, 0xd6, 0x34, 0x0a, 0x3f, 0xbc, 0x79, 0xf9, 0x40, 0x3b, 0x78, 0xf1, 0xea,
- 0xbc, 0xa6, 0xbd, 0x3e, 0xaf, 0x69, 0xff, 0x9e, 0xd7, 0xb4, 0xdf, 0x2e, 0x6a, 0xb9, 0xd7, 0x17,
- 0xb5, 0xdc, 0xdf, 0x17, 0xb5, 0xdc, 0x37, 0x7b, 0x0e, 0xe1, 0x83, 0x51, 0xcf, 0xb4, 0xe9, 0xd0,
- 0x52, 0xd7, 0x67, 0xd2, 0xb3, 0x77, 0x1c, 0x6a, 0x8d, 0x9f, 0x58, 0x43, 0xda, 0x1f, 0x9d, 0x61,
- 0x26, 0xaf, 0xbf, 0x0f, 0x1f, 0xef, 0xa4, 0x6e, 0xc0, 0x3c, 0xf0, 0x30, 0xeb, 0x15, 0xc5, 0xab,
- 0xff, 0xf1, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf6, 0xb0, 0x86, 0xad, 0xc9, 0x0b, 0x00, 0x00,
+ // 928 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0x41, 0x6f, 0xe3, 0x44,
+ 0x14, 0xc7, 0xe3, 0xd6, 0x49, 0x9b, 0x97, 0x2c, 0x85, 0x51, 0xda, 0x7a, 0xbd, 0xac, 0x93, 0x2d,
+ 0x48, 0xad, 0x56, 0xd4, 0xde, 0xee, 0x82, 0x76, 0x81, 0x5e, 0xda, 0x5c, 0xa8, 0x50, 0x61, 0x65,
+ 0xca, 0x1e, 0xb8, 0x44, 0x89, 0x33, 0x75, 0x47, 0x6d, 0x3c, 0x96, 0xc7, 0x09, 0x6b, 0x4e, 0x08,
+ 0x2e, 0x48, 0x5c, 0xf8, 0x08, 0x7c, 0x84, 0xfd, 0x18, 0x2b, 0x0e, 0x68, 0xc5, 0x89, 0x13, 0x42,
+ 0xed, 0x61, 0xbf, 0x00, 0x1f, 0x00, 0x79, 0x66, 0xec, 0x38, 0x89, 0x53, 0x39, 0xdb, 0xbd, 0x25,
+ 0xcf, 0xff, 0xf7, 0xe6, 0x3f, 0xef, 0xfd, 0xc6, 0x1e, 0x68, 0x92, 0x9e, 0x63, 0x39, 0x34, 0xc0,
+ 0x96, 0x43, 0x3d, 0x0f, 0x3b, 0x21, 0xa1, 0x9e, 0x35, 0xda, 0xb3, 0xc2, 0xe7, 0xa6, 0x1f, 0xd0,
+ 0x90, 0xa2, 0x0d, 0xd2, 0x73, 0xcc, 0x58, 0x60, 0x8e, 0x05, 0xe6, 0x68, 0x4f, 0x6f, 0xb8, 0xd4,
+ 0xa5, 0x5c, 0x62, 0xc5, 0xbf, 0x84, 0x5a, 0xdf, 0x74, 0x28, 0x1b, 0x50, 0x66, 0x0d, 0x98, 0x1b,
+ 0x57, 0x19, 0x30, 0x57, 0x3e, 0xb8, 0xed, 0x52, 0xea, 0x5e, 0x60, 0x8b, 0xff, 0xeb, 0x0d, 0x4f,
+ 0xad, 0xae, 0x17, 0xc9, 0x47, 0x19, 0x0b, 0x17, 0x04, 0x7b, 0x61, 0x9c, 0x28, 0x7e, 0x49, 0xc1,
+ 0xf6, 0x1c, 0x8f, 0x19, 0x43, 0x5c, 0xb8, 0xf5, 0xeb, 0x12, 0xac, 0x1f, 0x33, 0xb7, 0x9d, 0xc6,
+ 0xbf, 0xf6, 0xb1, 0x77, 0xe4, 0x91, 0x10, 0xdd, 0x81, 0xaa, 0x28, 0xd9, 0x21, 0x7d, 0x4d, 0x69,
+ 0x29, 0x3b, 0x55, 0x7b, 0x55, 0x04, 0x8e, 0xfa, 0xe8, 0x2b, 0xa8, 0x3b, 0x74, 0xe8, 0x85, 0x38,
+ 0xf0, 0xbb, 0x41, 0x18, 0x69, 0x4b, 0x2d, 0x65, 0xa7, 0xf6, 0xf0, 0x43, 0x33, 0x7f, 0xe7, 0x66,
+ 0x3b, 0xa3, 0x3d, 0x54, 0x5f, 0xfe, 0xd3, 0x2c, 0xd9, 0x13, 0xf9, 0xe8, 0x53, 0x58, 0x19, 0xe1,
+ 0x80, 0x11, 0xea, 0x69, 0xcb, 0xbc, 0x54, 0x73, 0x5e, 0xa9, 0x67, 0x42, 0x66, 0x27, 0x7a, 0x74,
+ 0x0f, 0xea, 0x7d, 0x7c, 0xd1, 0x8d, 0x3a, 0x3e, 0x0e, 0x08, 0xed, 0x6b, 0x6a, 0x4b, 0xd9, 0x51,
+ 0xed, 0x1a, 0x8f, 0x3d, 0xe5, 0x21, 0xb4, 0x01, 0x15, 0x46, 0x5c, 0x0f, 0x07, 0x5a, 0x99, 0xef,
+ 0x43, 0xfe, 0xfb, 0x6c, 0xed, 0x97, 0xdf, 0x9b, 0xa5, 0x9f, 0x5e, 0xbf, 0xb8, 0x2f, 0x03, 0x5b,
+ 0x4d, 0xb8, 0x9b, 0xdb, 0x0c, 0x1b, 0x33, 0x9f, 0x7a, 0x0c, 0x6f, 0xfd, 0x55, 0x86, 0xc6, 0x8c,
+ 0xe2, 0x24, 0x88, 0xae, 0xef, 0xd6, 0x13, 0xd8, 0xf0, 0x03, 0x3c, 0x22, 0x74, 0xc8, 0x3a, 0xe3,
+ 0xdd, 0xc4, 0xca, 0xb8, 0x6f, 0xd5, 0xc3, 0x25, 0x4d, 0xb1, 0x1b, 0x89, 0x62, 0x5c, 0xfb, 0xa8,
+ 0x8f, 0x1e, 0x43, 0x5d, 0x96, 0x65, 0x61, 0x37, 0xc4, 0xb2, 0x39, 0x0d, 0x53, 0xa0, 0x61, 0x26,
+ 0x68, 0x98, 0x07, 0x5e, 0x64, 0xd7, 0x84, 0xf2, 0x9b, 0x58, 0x38, 0x33, 0x20, 0xf5, 0x86, 0x03,
+ 0x9a, 0xee, 0x72, 0x79, 0xb6, 0xcb, 0x27, 0xb0, 0x9e, 0x4d, 0xe9, 0xc8, 0x01, 0x31, 0xad, 0xd2,
+ 0x5a, 0x2e, 0x32, 0xd1, 0x46, 0x36, 0x5b, 0x06, 0x19, 0x6a, 0x43, 0xdd, 0x0f, 0x28, 0x3d, 0xed,
+ 0x9c, 0x61, 0xe2, 0x9e, 0x85, 0xda, 0x0a, 0xdf, 0x88, 0x9e, 0x29, 0x26, 0xb8, 0x1f, 0xed, 0x99,
+ 0x5f, 0x70, 0x85, 0xb4, 0x5f, 0xe3, 0x59, 0x22, 0x84, 0xee, 0x02, 0x88, 0x22, 0xc4, 0x23, 0xa1,
+ 0xb6, 0xda, 0x52, 0x76, 0xea, 0x76, 0x95, 0x47, 0x38, 0xea, 0xf7, 0x92, 0x35, 0x44, 0x2d, 0xad,
+ 0xca, 0x05, 0xa2, 0x42, 0x9b, 0x87, 0xd0, 0x36, 0xac, 0x49, 0x49, 0xcc, 0x81, 0xc7, 0x86, 0x4c,
+ 0x03, 0xae, 0x7a, 0x47, 0xa8, 0x92, 0x28, 0xfa, 0x12, 0xde, 0x4d, 0x25, 0x89, 0xe7, 0x5a, 0x41,
+ 0xcf, 0x6b, 0x69, 0xa6, 0xf4, 0x3d, 0x06, 0xb7, 0x9e, 0x05, 0x17, 0x7d, 0x0e, 0xfa, 0x19, 0x65,
+ 0xe1, 0xd8, 0x8c, 0xc0, 0xa3, 0xc3, 0xbd, 0x68, 0xb7, 0xb8, 0xb1, 0xcd, 0x58, 0x91, 0xfa, 0xe2,
+ 0x54, 0x3c, 0x8d, 0x1f, 0xcf, 0x52, 0x6f, 0xc0, 0xfb, 0x79, 0x4c, 0xa7, 0xd0, 0xff, 0xa9, 0xe6,
+ 0x40, 0x7f, 0xe0, 0x9c, 0xa3, 0x0f, 0xe0, 0xd6, 0x24, 0xce, 0x02, 0xfc, 0xba, 0x93, 0x45, 0x78,
+ 0x1f, 0xf4, 0x09, 0x2c, 0x72, 0x0e, 0x80, 0xad, 0x65, 0x15, 0x13, 0x07, 0xe0, 0x06, 0x2f, 0x86,
+ 0xe9, 0xb3, 0xa3, 0x16, 0x3d, 0x3b, 0xd3, 0xc8, 0x95, 0xdf, 0x04, 0xb9, 0x3b, 0x20, 0x00, 0xeb,
+ 0x84, 0x41, 0xa4, 0x55, 0xf8, 0x44, 0x56, 0x79, 0x20, 0x7e, 0x5b, 0x4c, 0x03, 0xb7, 0x52, 0x08,
+ 0xb8, 0xd5, 0xc2, 0xc0, 0x55, 0x6f, 0x0e, 0x1c, 0x2c, 0x00, 0x5c, 0xed, 0x2d, 0x00, 0x77, 0xe0,
+ 0x9c, 0xa7, 0xc0, 0xfd, 0xa1, 0x80, 0x36, 0x23, 0x68, 0x53, 0xef, 0x94, 0x04, 0x83, 0x62, 0xd0,
+ 0xa5, 0xdd, 0xef, 0x3a, 0xe7, 0x9c, 0xb1, 0xa4, 0xfb, 0x31, 0xb6, 0xd3, 0xf3, 0x5d, 0x7e, 0x93,
+ 0xf9, 0x8e, 0x3b, 0xa5, 0x5e, 0xff, 0x4d, 0xd9, 0x82, 0xd6, 0xbc, 0xbd, 0xa4, 0x1b, 0x7e, 0x0e,
+ 0x6b, 0xc7, 0xcc, 0xfd, 0xd6, 0xef, 0xc7, 0x3d, 0xeb, 0x06, 0xdd, 0x01, 0xcb, 0xd4, 0x57, 0x26,
+ 0x26, 0xb1, 0x0f, 0x15, 0x9f, 0x2b, 0xe4, 0x37, 0xd7, 0x98, 0x77, 0x1e, 0x44, 0x1d, 0x69, 0x5d,
+ 0xe6, 0xcc, 0xba, 0xbb, 0x0d, 0x9b, 0x53, 0x2b, 0x27, 0xa6, 0x1e, 0xfe, 0xa7, 0xc2, 0xf2, 0x31,
+ 0x73, 0xd1, 0x0f, 0x80, 0x72, 0xae, 0x07, 0xbb, 0xf3, 0xd6, 0xcd, 0xfd, 0x80, 0xea, 0x9f, 0x2c,
+ 0x24, 0x4f, 0x3c, 0xa0, 0xef, 0xe1, 0xbd, 0xd9, 0x6f, 0xed, 0x47, 0x85, 0x6b, 0x9d, 0x04, 0x91,
+ 0xfe, 0xf1, 0x22, 0xea, 0xf9, 0x0b, 0xc7, 0xe0, 0x14, 0x5f, 0xf8, 0xc0, 0x39, 0x5f, 0x60, 0xe1,
+ 0x0c, 0xfb, 0xe8, 0x67, 0x05, 0xd6, 0xf3, 0xc1, 0x7f, 0x50, 0xb8, 0x9e, 0xcc, 0xd0, 0x9f, 0x2c,
+ 0x9a, 0x91, 0xba, 0x08, 0x60, 0x43, 0x30, 0x31, 0x96, 0x49, 0x2e, 0xb7, 0xaf, 0xa9, 0x99, 0xc5,
+ 0x48, 0xb7, 0x0a, 0x0a, 0x93, 0x35, 0xf5, 0xf2, 0x8f, 0xaf, 0x5f, 0xdc, 0x57, 0x0e, 0x9f, 0xbd,
+ 0xbc, 0x34, 0x94, 0x57, 0x97, 0x86, 0xf2, 0xef, 0xa5, 0xa1, 0xfc, 0x76, 0x65, 0x94, 0x5e, 0x5d,
+ 0x19, 0xa5, 0xbf, 0xaf, 0x8c, 0xd2, 0x77, 0xfb, 0x2e, 0x09, 0xcf, 0x86, 0x3d, 0xd3, 0xa1, 0x03,
+ 0x4b, 0x5e, 0x9a, 0x49, 0xcf, 0xd9, 0x75, 0xa9, 0x35, 0x7a, 0x6c, 0x0d, 0x68, 0x7f, 0x78, 0x81,
+ 0x99, 0xb8, 0xf4, 0x3e, 0x78, 0xb4, 0x9b, 0xb9, 0xf7, 0x86, 0x91, 0x8f, 0x59, 0xaf, 0xc2, 0x5f,
+ 0xf8, 0x8f, 0xfe, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x2d, 0x47, 0x10, 0x9f, 0xbf, 0x0b, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -1263,10 +1262,10 @@ func (m *MsgUpdateParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
}
i--
dAtA[i] = 0x12
- if len(m.Authority) > 0 {
- i -= len(m.Authority)
- copy(dAtA[i:], m.Authority)
- i = encodeVarintTx(dAtA, i, uint64(len(m.Authority)))
+ if len(m.Signer) > 0 {
+ i -= len(m.Signer)
+ copy(dAtA[i:], m.Signer)
+ i = encodeVarintTx(dAtA, i, uint64(len(m.Signer)))
i--
dAtA[i] = 0xa
}
@@ -1503,7 +1502,7 @@ func (m *MsgUpdateParams) Size() (n int) {
}
var l int
_ = l
- l = len(m.Authority)
+ l = len(m.Signer)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
@@ -3031,7 +3030,7 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error {
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -3059,7 +3058,7 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Authority = string(dAtA[iNdEx:postIndex])
+ m.Signer = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
diff --git a/modules/core/04-channel/keeper/grpc_query.go b/modules/core/04-channel/keeper/grpc_query.go
index d0415e1bb63..b8b94653271 100644
--- a/modules/core/04-channel/keeper/grpc_query.go
+++ b/modules/core/04-channel/keeper/grpc_query.go
@@ -9,8 +9,8 @@ import (
"google.golang.org/grpc/status"
errorsmod "cosmossdk.io/errors"
+ "cosmossdk.io/store/prefix"
- "github.com/cosmos/cosmos-sdk/store/prefix"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/query"
diff --git a/modules/core/04-channel/keeper/keeper.go b/modules/core/04-channel/keeper/keeper.go
index edab92bc071..6622ab43bb2 100644
--- a/modules/core/04-channel/keeper/keeper.go
+++ b/modules/core/04-channel/keeper/keeper.go
@@ -4,15 +4,15 @@ import (
"strconv"
"strings"
+ db "github.com/cosmos/cosmos-db"
+
errorsmod "cosmossdk.io/errors"
+ "cosmossdk.io/log"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
- db "github.com/cometbft/cometbft-db"
- "github.com/cometbft/cometbft/libs/log"
-
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
connectiontypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types"
diff --git a/modules/core/04-channel/keeper/packet.go b/modules/core/04-channel/keeper/packet.go
index 32920d67793..a01fc36abef 100644
--- a/modules/core/04-channel/keeper/packet.go
+++ b/modules/core/04-channel/keeper/packet.go
@@ -93,7 +93,7 @@ func (k Keeper) SendPacket(
if packet.GetTimeoutTimestamp() != 0 && latestTimestamp >= packet.GetTimeoutTimestamp() {
return 0, errorsmod.Wrapf(
types.ErrPacketTimeout,
- "receiving chain block timestamp >= packet timeout timestamp (%s >= %s)", time.Unix(0, int64(latestTimestamp)), time.Unix(0, int64(packet.GetTimeoutTimestamp())),
+ "receiving chain block timestamp >= packet timeout timestamp (%s >= %s)", time.Unix(0, int64(latestTimestamp)).UTC(), time.Unix(0, int64(packet.GetTimeoutTimestamp())).UTC(),
)
}
@@ -190,7 +190,7 @@ func (k Keeper) RecvPacket(
if packet.GetTimeoutTimestamp() != 0 && uint64(ctx.BlockTime().UnixNano()) >= packet.GetTimeoutTimestamp() {
return errorsmod.Wrapf(
types.ErrPacketTimeout,
- "block timestamp >= packet timeout timestamp (%s >= %s)", ctx.BlockTime(), time.Unix(0, int64(packet.GetTimeoutTimestamp())),
+ "block timestamp >= packet timeout timestamp (%s >= %s)", ctx.BlockTime(), time.Unix(0, int64(packet.GetTimeoutTimestamp())).UTC(),
)
}
diff --git a/modules/core/04-channel/keeper/packet_test.go b/modules/core/04-channel/keeper/packet_test.go
index 6077127d432..ec73aa4db4a 100644
--- a/modules/core/04-channel/keeper/packet_test.go
+++ b/modules/core/04-channel/keeper/packet_test.go
@@ -1,15 +1,13 @@
package keeper_test
import (
- "errors"
"fmt"
- errorsmod "cosmossdk.io/errors"
-
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
connectiontypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types"
"github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
+ commitmenttypes "github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types"
host "github.com/cosmos/ibc-go/v7/modules/core/24-host"
"github.com/cosmos/ibc-go/v7/modules/core/exported"
ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint"
@@ -261,225 +259,277 @@ func (suite *KeeperTestSuite) TestRecvPacket() {
path *ibctesting.Path
packet exported.PacketI
channelCap *capabilitytypes.Capability
- expError *errorsmod.Error
)
- testCases := []testCase{
- {"success: ORDERED channel", func() {
- path.SetChannelOrdered()
- suite.coordinator.Setup(path)
-
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, true},
- {"success UNORDERED channel", func() {
- // setup uses an UNORDERED channel
- suite.coordinator.Setup(path)
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, true},
- {"success with out of order packet: UNORDERED channel", func() {
- // setup uses an UNORDERED channel
- suite.coordinator.Setup(path)
- // send 2 packets
- _, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- // attempts to receive packet 2 without receiving packet 1
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, true},
- {"packet already relayed ORDERED channel (no-op)", func() {
- expError = types.ErrNoOpMsg
-
- path.SetChannelOrdered()
- suite.coordinator.Setup(path)
-
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
-
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- err = path.EndpointB.RecvPacket(packet.(types.Packet))
- suite.Require().NoError(err)
- }, false},
- {"packet already relayed UNORDERED channel (no-op)", func() {
- expError = types.ErrNoOpMsg
-
- // setup uses an UNORDERED channel
- suite.coordinator.Setup(path)
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
-
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- err = path.EndpointB.RecvPacket(packet.(types.Packet))
- suite.Require().NoError(err)
- }, false},
- {"out of order packet failure with ORDERED channel", func() {
- expError = types.ErrPacketSequenceOutOfOrder
-
- path.SetChannelOrdered()
- suite.coordinator.Setup(path)
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ testCases := []struct {
+ name string
+ malleate func()
+ expError error
+ }{
+ {
+ "success: ORDERED channel",
+ func() {
+ path.SetChannelOrdered()
+ suite.coordinator.Setup(path)
- // send 2 packets
- _, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- // attempts to receive packet 2 without receiving packet 1
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, false},
- {"channel not found", func() {
- expError = types.ErrChannelNotFound
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ nil,
+ },
+ {
+ "success UNORDERED channel",
+ func() {
+ // setup uses an UNORDERED channel
+ suite.coordinator.Setup(path)
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ nil,
+ },
+ {
+ "success with out of order packet: UNORDERED channel",
+ func() {
+ // setup uses an UNORDERED channel
+ suite.coordinator.Setup(path)
+ // send 2 packets
+ _, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ // attempts to receive packet 2 without receiving packet 1
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ nil,
+ },
+ {
+ "packet already relayed ORDERED channel (no-op)",
+ func() {
+ path.SetChannelOrdered()
+ suite.coordinator.Setup(path)
- // use wrong channel naming
- suite.coordinator.Setup(path)
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, ibctesting.InvalidID, ibctesting.InvalidID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, false},
- {"channel not open", func() {
- expError = types.ErrInvalidChannelState
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- suite.coordinator.Setup(path)
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ err = path.EndpointB.RecvPacket(packet.(types.Packet))
+ suite.Require().NoError(err)
+ },
+ types.ErrNoOpMsg,
+ },
+ {
+ "packet already relayed UNORDERED channel (no-op)",
+ func() {
+ // setup uses an UNORDERED channel
+ suite.coordinator.Setup(path)
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- err := path.EndpointB.SetChannelState(types.CLOSED)
- suite.Require().NoError(err)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, false},
- {"capability cannot authenticate ORDERED", func() {
- expError = types.ErrInvalidChannelCapability
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ err = path.EndpointB.RecvPacket(packet.(types.Packet))
+ suite.Require().NoError(err)
+ },
+ types.ErrNoOpMsg,
+ },
+ {
+ "out of order packet failure with ORDERED channel",
+ func() {
+ path.SetChannelOrdered()
+ suite.coordinator.Setup(path)
+ packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- path.SetChannelOrdered()
- suite.coordinator.Setup(path)
+ // send 2 packets
+ _, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ // attempts to receive packet 2 without receiving packet 1
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ types.ErrPacketSequenceOutOfOrder,
+ },
+ {
+ "channel not found",
+ func() {
+ // use wrong channel naming
+ suite.coordinator.Setup(path)
+ packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, ibctesting.InvalidID, ibctesting.InvalidID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ types.ErrChannelNotFound,
+ },
+ {
+ "channel not open",
+ func() {
+ suite.coordinator.Setup(path)
+ packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- channelCap = capabilitytypes.NewCapability(3)
- }, false},
- {"packet source port ≠ channel counterparty port", func() {
- expError = types.ErrInvalidPacket
- suite.coordinator.Setup(path)
+ err := path.EndpointB.SetChannelState(types.CLOSED)
+ suite.Require().NoError(err)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ types.ErrInvalidChannelState,
+ },
+ {
+ "capability cannot authenticate ORDERED",
+ func() {
+ path.SetChannelOrdered()
+ suite.coordinator.Setup(path)
- // use wrong port for dest
- packet = types.NewPacket(ibctesting.MockPacketData, 1, ibctesting.InvalidID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, false},
- {"packet source channel ID ≠ channel counterparty channel ID", func() {
- expError = types.ErrInvalidPacket
- suite.coordinator.Setup(path)
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ channelCap = capabilitytypes.NewCapability(3)
+ },
+ types.ErrInvalidChannelCapability,
+ },
+ {
+ "packet source port ≠ channel counterparty port",
+ func() {
+ suite.coordinator.Setup(path)
- // use wrong port for dest
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, ibctesting.InvalidID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, false},
- {"connection not found", func() {
- expError = connectiontypes.ErrConnectionNotFound
- suite.coordinator.Setup(path)
+ // use wrong port for dest
+ packet = types.NewPacket(ibctesting.MockPacketData, 1, ibctesting.InvalidID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ types.ErrInvalidPacket,
+ },
+ {
+ "packet source channel ID ≠ channel counterparty channel ID",
+ func() {
+ suite.coordinator.Setup(path)
- // pass channel check
- suite.chainB.App.GetIBCKeeper().ChannelKeeper.SetChannel(
- suite.chainB.GetContext(),
- path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID,
- types.NewChannel(types.OPEN, types.ORDERED, types.NewCounterparty(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID), []string{connIDB}, path.EndpointB.ChannelConfig.Version),
- )
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- suite.chainB.CreateChannelCapability(suite.chainB.GetSimApp().ScopedIBCMockKeeper, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, false},
- {"connection not OPEN", func() {
- expError = connectiontypes.ErrInvalidConnectionState
- suite.coordinator.SetupClients(path)
+ // use wrong port for dest
+ packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, ibctesting.InvalidID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ types.ErrInvalidPacket,
+ },
+ {
+ "connection not found",
+ func() {
+ suite.coordinator.Setup(path)
- // connection on chainB is in INIT
- err := path.EndpointB.ConnOpenInit()
- suite.Require().NoError(err)
+ // pass channel check
+ suite.chainB.App.GetIBCKeeper().ChannelKeeper.SetChannel(
+ suite.chainB.GetContext(),
+ path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID,
+ types.NewChannel(types.OPEN, types.ORDERED, types.NewCounterparty(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID), []string{connIDB}, path.EndpointB.ChannelConfig.Version),
+ )
+ packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ suite.chainB.CreateChannelCapability(suite.chainB.GetSimApp().ScopedIBCMockKeeper, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ connectiontypes.ErrConnectionNotFound,
+ },
+ {
+ "connection not OPEN",
+ func() {
+ suite.coordinator.SetupClients(path)
- // pass channel check
- suite.chainB.App.GetIBCKeeper().ChannelKeeper.SetChannel(
- suite.chainB.GetContext(),
- path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID,
- types.NewChannel(types.OPEN, types.ORDERED, types.NewCounterparty(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID), []string{path.EndpointB.ConnectionID}, path.EndpointB.ChannelConfig.Version),
- )
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- suite.chainB.CreateChannelCapability(suite.chainB.GetSimApp().ScopedIBCMockKeeper, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, false},
- {"timeout height passed", func() {
- expError = types.ErrPacketTimeout
- suite.coordinator.Setup(path)
+ // connection on chainB is in INIT
+ err := path.EndpointB.ConnOpenInit()
+ suite.Require().NoError(err)
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, clienttypes.GetSelfHeight(suite.chainB.GetContext()), disabledTimeoutTimestamp)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, false},
- {"timeout timestamp passed", func() {
- expError = types.ErrPacketTimeout
- suite.coordinator.Setup(path)
+ // pass channel check
+ suite.chainB.App.GetIBCKeeper().ChannelKeeper.SetChannel(
+ suite.chainB.GetContext(),
+ path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID,
+ types.NewChannel(types.OPEN, types.ORDERED, types.NewCounterparty(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID), []string{path.EndpointB.ConnectionID}, path.EndpointB.ChannelConfig.Version),
+ )
+ packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ suite.chainB.CreateChannelCapability(suite.chainB.GetSimApp().ScopedIBCMockKeeper, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ connectiontypes.ErrInvalidConnectionState,
+ },
+ {
+ "timeout height passed",
+ func() {
+ suite.coordinator.Setup(path)
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, disabledTimeoutHeight, uint64(suite.chainB.GetContext().BlockTime().UnixNano()))
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, false},
- {"next receive sequence is not found", func() {
- expError = types.ErrSequenceReceiveNotFound
- suite.coordinator.SetupConnections(path)
+ packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, clienttypes.GetSelfHeight(suite.chainB.GetContext()), disabledTimeoutTimestamp)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ types.ErrPacketTimeout,
+ },
+ {
+ "timeout timestamp passed",
+ func() {
+ suite.coordinator.Setup(path)
- path.EndpointA.ChannelID = ibctesting.FirstChannelID
- path.EndpointB.ChannelID = ibctesting.FirstChannelID
+ packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, disabledTimeoutHeight, uint64(suite.chainB.GetContext().BlockTime().UnixNano()))
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ types.ErrPacketTimeout,
+ },
+ {
+ "next receive sequence is not found",
+ func() {
+ suite.coordinator.SetupConnections(path)
- // manually creating channel prevents next recv sequence from being set
- suite.chainB.App.GetIBCKeeper().ChannelKeeper.SetChannel(
- suite.chainB.GetContext(),
- path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID,
- types.NewChannel(types.OPEN, types.ORDERED, types.NewCounterparty(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID), []string{path.EndpointB.ConnectionID}, path.EndpointB.ChannelConfig.Version),
- )
+ path.EndpointA.ChannelID = ibctesting.FirstChannelID
+ path.EndpointB.ChannelID = ibctesting.FirstChannelID
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ // manually creating channel prevents next recv sequence from being set
+ suite.chainB.App.GetIBCKeeper().ChannelKeeper.SetChannel(
+ suite.chainB.GetContext(),
+ path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID,
+ types.NewChannel(types.OPEN, types.ORDERED, types.NewCounterparty(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID), []string{path.EndpointB.ConnectionID}, path.EndpointB.ChannelConfig.Version),
+ )
- // manually set packet commitment
- suite.chainA.App.GetIBCKeeper().ChannelKeeper.SetPacketCommitment(suite.chainA.GetContext(), path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, packet.GetSequence(), types.CommitPacket(suite.chainA.App.AppCodec(), packet))
- suite.chainB.CreateChannelCapability(suite.chainB.GetSimApp().ScopedIBCMockKeeper, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ // manually set packet commitment
+ suite.chainA.App.GetIBCKeeper().ChannelKeeper.SetPacketCommitment(suite.chainA.GetContext(), path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, packet.GetSequence(), types.CommitPacket(suite.chainA.App.AppCodec(), packet))
+ suite.chainB.CreateChannelCapability(suite.chainB.GetSimApp().ScopedIBCMockKeeper, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- err := path.EndpointA.UpdateClient()
- suite.Require().NoError(err)
- err = path.EndpointB.UpdateClient()
- suite.Require().NoError(err)
- }, false},
- {"receipt already stored", func() {
- expError = types.ErrNoOpMsg
- suite.coordinator.Setup(path)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
- suite.chainB.App.GetIBCKeeper().ChannelKeeper.SetPacketReceipt(suite.chainB.GetContext(), path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, sequence)
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, false},
- {"validation failed", func() {
- // skip error code check, downstream error code is used from light-client implementations
+ err := path.EndpointA.UpdateClient()
+ suite.Require().NoError(err)
+ err = path.EndpointB.UpdateClient()
+ suite.Require().NoError(err)
+ },
+ types.ErrSequenceReceiveNotFound,
+ },
+ {
+ "receipt already stored",
+ func() {
+ suite.coordinator.Setup(path)
- // packet commitment not set resulting in invalid proof
- suite.coordinator.Setup(path)
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
- }, false},
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
+ suite.chainB.App.GetIBCKeeper().ChannelKeeper.SetPacketReceipt(suite.chainB.GetContext(), path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, sequence)
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ types.ErrNoOpMsg,
+ },
+ {
+ "validation failed",
+ func() {
+ // packet commitment not set resulting in invalid proof
+ suite.coordinator.Setup(path)
+ packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ channelCap = suite.chainB.GetChannelCapability(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID)
+ },
+ commitmenttypes.ErrInvalidProof,
+ },
}
- for i, tc := range testCases {
+ for _, tc := range testCases {
tc := tc
- suite.Run(fmt.Sprintf("Case %s, %d/%d tests", tc.msg, i, len(testCases)), func() {
+ suite.Run(tc.name, func() {
suite.SetupTest() // reset
- expError = nil // must explicitly set for failed cases
path = ibctesting.NewPath(suite.chainA, suite.chainB)
tc.malleate()
@@ -490,7 +540,8 @@ func (suite *KeeperTestSuite) TestRecvPacket() {
err := suite.chainB.App.GetIBCKeeper().ChannelKeeper.RecvPacket(suite.chainB.GetContext(), channelCap, packet, proof, proofHeight)
- if tc.expPass {
+ expPass := tc.expError == nil
+ if expPass {
suite.Require().NoError(err)
channelB, _ := suite.chainB.App.GetIBCKeeper().ChannelKeeper.GetChannel(suite.chainB.GetContext(), packet.GetDestPort(), packet.GetDestChannel())
@@ -508,11 +559,7 @@ func (suite *KeeperTestSuite) TestRecvPacket() {
}
} else {
suite.Require().Error(err)
-
- // only check if expError is set, since not all error codes can be known
- if expError != nil {
- suite.Require().True(errors.Is(err, expError))
- }
+ suite.Require().ErrorIs(err, tc.expError)
}
})
}
@@ -622,256 +669,393 @@ func (suite *KeeperTestSuite) TestAcknowledgePacket() {
ack = ibcmock.MockAcknowledgement
channelCap *capabilitytypes.Capability
- expError *errorsmod.Error
)
- testCases := []testCase{
- {"success on ordered channel", func() {
- path.SetChannelOrdered()
- suite.coordinator.Setup(path)
+ testCases := []struct {
+ name string
+ malleate func()
+ expResult func(commitment []byte, err error)
+ }{
+ {
+ name: "success on ordered channel",
+ malleate: func() {
+ path.SetChannelOrdered()
+ suite.coordinator.Setup(path)
- // create packet commitment
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
- // create packet receipt and acknowledgement
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- err = path.EndpointB.RecvPacket(packet)
- suite.Require().NoError(err)
+ // create packet receipt and acknowledgement
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ err = path.EndpointB.RecvPacket(packet)
+ suite.Require().NoError(err)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- }, true},
- {"success on unordered channel", func() {
- // setup uses an UNORDERED channel
- suite.coordinator.Setup(path)
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().NoError(err)
+ suite.Require().Nil(commitment)
- // create packet commitment
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
+ nextSequenceAck, found := suite.chainA.App.GetIBCKeeper().ChannelKeeper.GetNextSequenceAck(suite.chainA.GetContext(), packet.GetSourcePort(), packet.GetSourceChannel())
+ suite.Require().True(found)
+ suite.Require().Equal(packet.GetSequence()+1, nextSequenceAck, "sequence not incremented in ordered channel")
+ },
+ },
+ {
+ name: "success on unordered channel",
+ malleate: func() {
+ // setup uses an UNORDERED channel
+ suite.coordinator.Setup(path)
- // create packet receipt and acknowledgement
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- err = path.EndpointB.RecvPacket(packet)
- suite.Require().NoError(err)
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- }, true},
- {"packet already acknowledged ordered channel (no-op)", func() {
- expError = types.ErrNoOpMsg
+ // create packet receipt and acknowledgement
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ err = path.EndpointB.RecvPacket(packet)
+ suite.Require().NoError(err)
- path.SetChannelOrdered()
- suite.coordinator.Setup(path)
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().NoError(err)
+ suite.Require().Nil(commitment)
- // create packet commitment
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
+ nextSequenceAck, found := suite.chainA.App.GetIBCKeeper().ChannelKeeper.GetNextSequenceAck(suite.chainA.GetContext(), packet.GetSourcePort(), packet.GetSourceChannel())
+ suite.Require().True(found)
+ suite.Require().Equal(uint64(1), nextSequenceAck, "sequence incremented for UNORDERED channel")
+ },
+ },
+ {
+ name: "packet already acknowledged ordered channel (no-op)",
+ malleate: func() {
+ path.SetChannelOrdered()
+ suite.coordinator.Setup(path)
- // create packet receipt and acknowledgement
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- err = path.EndpointB.RecvPacket(packet)
- suite.Require().NoError(err)
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ // create packet receipt and acknowledgement
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ err = path.EndpointB.RecvPacket(packet)
+ suite.Require().NoError(err)
- err = path.EndpointA.AcknowledgePacket(packet, ack.Acknowledgement())
- suite.Require().NoError(err)
- }, false},
- {"packet already acknowledged unordered channel (no-op)", func() {
- expError = types.ErrNoOpMsg
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- // setup uses an UNORDERED channel
- suite.coordinator.Setup(path)
+ err = path.EndpointA.AcknowledgePacket(packet, ack.Acknowledgement())
+ suite.Require().NoError(err)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, types.ErrNoOpMsg)
+ suite.Require().Nil(commitment)
+ },
+ },
+ {
+ name: "packet already acknowledged unordered channel (no-op)",
+ malleate: func() {
+ // setup uses an UNORDERED channel
+ suite.coordinator.Setup(path)
- // create packet commitment
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
- // create packet receipt and acknowledgement
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- err = path.EndpointB.RecvPacket(packet)
- suite.Require().NoError(err)
+ // create packet receipt and acknowledgement
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ err = path.EndpointB.RecvPacket(packet)
+ suite.Require().NoError(err)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- err = path.EndpointA.AcknowledgePacket(packet, ack.Acknowledgement())
- suite.Require().NoError(err)
- }, false},
- {"channel not found", func() {
- expError = types.ErrChannelNotFound
+ err = path.EndpointA.AcknowledgePacket(packet, ack.Acknowledgement())
+ suite.Require().NoError(err)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, types.ErrNoOpMsg)
+ suite.Require().Nil(commitment)
+ },
+ },
+ {
+ name: "channel not found",
+ malleate: func() {
+ // use wrong channel naming
+ suite.coordinator.Setup(path)
- // use wrong channel naming
- suite.coordinator.Setup(path)
- packet = types.NewPacket(ibctesting.MockPacketData, 1, ibctesting.InvalidID, ibctesting.InvalidID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- }, false},
- {"channel not open", func() {
- expError = types.ErrInvalidChannelState
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
- suite.coordinator.Setup(path)
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, ibctesting.InvalidID, ibctesting.InvalidID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, types.ErrChannelNotFound)
+ suite.Require().NotNil(commitment)
+ },
+ },
+ {
+ name: "channel not open",
+ malleate: func() {
+ suite.coordinator.Setup(path)
- err := path.EndpointA.SetChannelState(types.CLOSED)
- suite.Require().NoError(err)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- }, false},
- {"capability authentication failed ORDERED", func() {
- expError = types.ErrInvalidChannelCapability
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
- path.SetChannelOrdered()
- suite.coordinator.Setup(path)
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- // create packet commitment
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
+ err = path.EndpointA.SetChannelState(types.CLOSED)
+ suite.Require().NoError(err)
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, types.ErrInvalidChannelState)
+ suite.Require().NotNil(commitment)
+ },
+ },
+ {
+ name: "capability authentication failed ORDERED",
+ malleate: func() {
+ path.SetChannelOrdered()
+ suite.coordinator.Setup(path)
- // create packet receipt and acknowledgement
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- err = path.EndpointB.RecvPacket(packet)
- suite.Require().NoError(err)
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
- channelCap = capabilitytypes.NewCapability(3)
- }, false},
- {"packet destination port ≠ channel counterparty port", func() {
- expError = types.ErrInvalidPacket
- suite.coordinator.Setup(path)
+ // create packet receipt and acknowledgement
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ err = path.EndpointB.RecvPacket(packet)
+ suite.Require().NoError(err)
- // use wrong port for dest
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, ibctesting.InvalidID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- }, false},
- {"packet destination channel ID ≠ channel counterparty channel ID", func() {
- expError = types.ErrInvalidPacket
- suite.coordinator.Setup(path)
+ channelCap = capabilitytypes.NewCapability(3)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, types.ErrInvalidChannelCapability)
+ suite.Require().NotNil(commitment)
+ },
+ },
+ {
+ name: "packet destination port ≠ channel counterparty port",
+ malleate: func() {
+ suite.coordinator.Setup(path)
- // use wrong channel for dest
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, ibctesting.InvalidID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- }, false},
- {"connection not found", func() {
- expError = connectiontypes.ErrConnectionNotFound
- suite.coordinator.Setup(path)
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
- // pass channel check
- suite.chainA.App.GetIBCKeeper().ChannelKeeper.SetChannel(
- suite.chainA.GetContext(),
- path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID,
- types.NewChannel(types.OPEN, types.ORDERED, types.NewCounterparty(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID), []string{"connection-1000"}, path.EndpointA.ChannelConfig.Version),
- )
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- suite.chainA.CreateChannelCapability(suite.chainA.GetSimApp().ScopedIBCMockKeeper, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- }, false},
- {"connection not OPEN", func() {
- expError = connectiontypes.ErrInvalidConnectionState
- suite.coordinator.SetupClients(path)
- // connection on chainA is in INIT
- err := path.EndpointA.ConnOpenInit()
- suite.Require().NoError(err)
+ // use wrong port for dest
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, ibctesting.InvalidID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, types.ErrInvalidPacket)
+ suite.Require().NotNil(commitment)
+ },
+ },
+ {
+ name: "packet destination channel ID ≠ channel counterparty channel ID",
+ malleate: func() {
+ suite.coordinator.Setup(path)
- // pass channel check
- suite.chainA.App.GetIBCKeeper().ChannelKeeper.SetChannel(
- suite.chainA.GetContext(),
- path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID,
- types.NewChannel(types.OPEN, types.ORDERED, types.NewCounterparty(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID), []string{path.EndpointA.ConnectionID}, path.EndpointA.ChannelConfig.Version),
- )
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- suite.chainA.CreateChannelCapability(suite.chainA.GetSimApp().ScopedIBCMockKeeper, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- }, false},
- {"packet hasn't been sent", func() {
- expError = types.ErrNoOpMsg
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
- // packet commitment never written
- suite.coordinator.Setup(path)
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- }, false},
- {"packet ack verification failed", func() {
- // skip error code check since error occurs in light-clients
+ // use wrong channel for dest
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, ibctesting.InvalidID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, types.ErrInvalidPacket)
+ suite.Require().NotNil(commitment)
+ },
+ },
+ {
+ name: "connection not found",
+ malleate: func() {
+ suite.coordinator.Setup(path)
- // ack never written
- suite.coordinator.Setup(path)
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
- // create packet commitment
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- }, false},
- {"packet commitment bytes do not match", func() {
- expError = types.ErrInvalidPacket
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- // setup uses an UNORDERED channel
- suite.coordinator.Setup(path)
+ // pass channel check
+ suite.chainA.App.GetIBCKeeper().ChannelKeeper.SetChannel(
+ suite.chainA.GetContext(),
+ path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID,
+ types.NewChannel(types.OPEN, types.ORDERED, types.NewCounterparty(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID), []string{"connection-1000"}, path.EndpointA.ChannelConfig.Version),
+ )
- // create packet commitment
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
+ suite.chainA.CreateChannelCapability(suite.chainA.GetSimApp().ScopedIBCMockKeeper, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, connectiontypes.ErrConnectionNotFound)
+ suite.Require().NotNil(commitment)
+ },
+ },
+ {
+ name: "connection not OPEN",
+ malleate: func() {
+ suite.coordinator.Setup(path)
- // create packet receipt and acknowledgement
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- err = path.EndpointB.RecvPacket(packet)
- suite.Require().NoError(err)
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- packet.Data = []byte("invalid packet commitment")
- }, false},
- {"next ack sequence not found", func() {
- expError = types.ErrSequenceAckNotFound
- suite.coordinator.SetupConnections(path)
+ // connection on chainA is in INIT
+ err = path.EndpointA.ConnOpenInit()
+ suite.Require().NoError(err)
- path.EndpointA.ChannelID = ibctesting.FirstChannelID
- path.EndpointB.ChannelID = ibctesting.FirstChannelID
+ // pass channel check
+ suite.chainA.App.GetIBCKeeper().ChannelKeeper.SetChannel(
+ suite.chainA.GetContext(),
+ path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID,
+ types.NewChannel(types.OPEN, types.ORDERED, types.NewCounterparty(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID), []string{path.EndpointA.ConnectionID}, path.EndpointA.ChannelConfig.Version),
+ )
+ suite.chainA.CreateChannelCapability(suite.chainA.GetSimApp().ScopedIBCMockKeeper, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, connectiontypes.ErrInvalidConnectionState)
+ suite.Require().NotNil(commitment)
+ },
+ },
+ {
+ name: "packet hasn't been sent",
+ malleate: func() {
+ // packet commitment never written
+ suite.coordinator.Setup(path)
+ packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, types.ErrNoOpMsg) // NOTE: ibc core does not distinguish between unsent and already relayed packets.
+ suite.Require().Nil(commitment)
+ },
+ },
+ {
+ name: "packet ack verification failed",
+ malleate: func() {
+ // skip error code check since error occurs in light-clients
- // manually creating channel prevents next sequence acknowledgement from being set
- suite.chainA.App.GetIBCKeeper().ChannelKeeper.SetChannel(
- suite.chainA.GetContext(),
- path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID,
- types.NewChannel(types.OPEN, types.ORDERED, types.NewCounterparty(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID), []string{path.EndpointA.ConnectionID}, path.EndpointA.ChannelConfig.Version),
- )
+ // ack never written
+ suite.coordinator.Setup(path)
- packet = types.NewPacket(ibctesting.MockPacketData, 1, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- // manually set packet commitment
- suite.chainA.App.GetIBCKeeper().ChannelKeeper.SetPacketCommitment(suite.chainA.GetContext(), path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, packet.GetSequence(), types.CommitPacket(suite.chainA.App.AppCodec(), packet))
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, commitmenttypes.ErrInvalidProof)
+ suite.Require().NotNil(commitment)
+ },
+ },
+ {
+ name: "packet commitment bytes do not match",
+ malleate: func() {
+ // setup uses an UNORDERED channel
+ suite.coordinator.Setup(path)
- // manually set packet acknowledgement and capability
- suite.chainB.App.GetIBCKeeper().ChannelKeeper.SetPacketAcknowledgement(suite.chainB.GetContext(), path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, packet.GetSequence(), types.CommitAcknowledgement(ack.Acknowledgement()))
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
- suite.chainA.CreateChannelCapability(suite.chainA.GetSimApp().ScopedIBCMockKeeper, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ // create packet receipt and acknowledgement
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ err = path.EndpointB.RecvPacket(packet)
+ suite.Require().NoError(err)
- suite.coordinator.CommitBlock(path.EndpointA.Chain, path.EndpointB.Chain)
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- err := path.EndpointA.UpdateClient()
- suite.Require().NoError(err)
- err = path.EndpointB.UpdateClient()
- suite.Require().NoError(err)
- }, false},
- {"next ack sequence mismatch ORDERED", func() {
- expError = types.ErrPacketSequenceOutOfOrder
- path.SetChannelOrdered()
- suite.coordinator.Setup(path)
+ packet.Data = []byte("invalid packet commitment")
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, types.ErrInvalidPacket)
+ suite.Require().NotNil(commitment)
+ },
+ },
+ {
+ name: "next ack sequence not found",
+ malleate: func() {
+ path.SetChannelOrdered()
+ suite.coordinator.Setup(path)
- // create packet commitment
- sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
- suite.Require().NoError(err)
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
- // create packet acknowledgement
- packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
- err = path.EndpointB.RecvPacket(packet)
- suite.Require().NoError(err)
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ err = path.EndpointB.RecvPacket(packet)
+ suite.Require().NoError(err)
- // set next sequence ack wrong
- suite.chainA.App.GetIBCKeeper().ChannelKeeper.SetNextSequenceAck(suite.chainA.GetContext(), path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, 10)
- channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
- }, false},
+ // manually delete the next sequence ack in the ibc store
+ storeKey := suite.chainA.GetSimApp().GetKey(exported.ModuleName)
+ ibcStore := suite.chainA.GetContext().KVStore(storeKey)
+
+ ibcStore.Delete(host.NextSequenceAckKey(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID))
+
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, types.ErrSequenceAckNotFound)
+ suite.Require().NotNil(commitment)
+ },
+ },
+ {
+ name: "next ack sequence mismatch ORDERED",
+ malleate: func() {
+ path.SetChannelOrdered()
+ suite.coordinator.Setup(path)
+
+ // create packet commitment
+ sequence, err := path.EndpointA.SendPacket(defaultTimeoutHeight, disabledTimeoutTimestamp, ibctesting.MockPacketData)
+ suite.Require().NoError(err)
+
+ // create packet acknowledgement
+ packet = types.NewPacket(ibctesting.MockPacketData, sequence, path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, defaultTimeoutHeight, disabledTimeoutTimestamp)
+ err = path.EndpointB.RecvPacket(packet)
+ suite.Require().NoError(err)
+
+ // set next sequence ack wrong
+ suite.chainA.App.GetIBCKeeper().ChannelKeeper.SetNextSequenceAck(suite.chainA.GetContext(), path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, 10)
+ channelCap = suite.chainA.GetChannelCapability(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID)
+ },
+ expResult: func(commitment []byte, err error) {
+ suite.Require().Error(err)
+ suite.Require().ErrorIs(err, types.ErrPacketSequenceOutOfOrder)
+ suite.Require().NotNil(commitment)
+ },
+ },
}
- for i, tc := range testCases {
+ for _, tc := range testCases {
tc := tc
- suite.Run(fmt.Sprintf("Case %s, %d/%d tests", tc.msg, i, len(testCases)), func() {
+ suite.Run(tc.name, func() {
suite.SetupTest() // reset
- expError = nil // must explcitly set error for failed cases
+
path = ibctesting.NewPath(suite.chainA, suite.chainB)
tc.malleate()
@@ -880,27 +1064,9 @@ func (suite *KeeperTestSuite) TestAcknowledgePacket() {
proof, proofHeight := path.EndpointB.QueryProof(packetKey)
err := suite.chainA.App.GetIBCKeeper().ChannelKeeper.AcknowledgePacket(suite.chainA.GetContext(), channelCap, packet, ack.Acknowledgement(), proof, proofHeight)
- pc := suite.chainA.App.GetIBCKeeper().ChannelKeeper.GetPacketCommitment(suite.chainA.GetContext(), packet.GetSourcePort(), packet.GetSourceChannel(), packet.GetSequence())
-
- channelA, _ := suite.chainA.App.GetIBCKeeper().ChannelKeeper.GetChannel(suite.chainA.GetContext(), packet.GetSourcePort(), packet.GetSourceChannel())
- sequenceAck, _ := suite.chainA.App.GetIBCKeeper().ChannelKeeper.GetNextSequenceAck(suite.chainA.GetContext(), packet.GetSourcePort(), packet.GetSourceChannel())
- if tc.expPass {
- suite.NoError(err)
- suite.Nil(pc)
-
- if channelA.Ordering == types.ORDERED {
- suite.Require().Equal(packet.GetSequence()+1, sequenceAck, "sequence not incremented in ordered channel")
- } else {
- suite.Require().Equal(uint64(1), sequenceAck, "sequence incremented for UNORDERED channel")
- }
- } else {
- suite.Error(err)
- // only check if expError is set, since not all error codes can be known
- if expError != nil {
- suite.Require().True(errors.Is(err, expError))
- }
- }
+ commitment := suite.chainA.App.GetIBCKeeper().ChannelKeeper.GetPacketCommitment(suite.chainA.GetContext(), path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID, packet.GetSequence())
+ tc.expResult(commitment, err)
})
}
}
diff --git a/modules/core/04-channel/types/acknowledgement_test.go b/modules/core/04-channel/types/acknowledgement_test.go
index b5ff0af3141..5c7d281eabf 100644
--- a/modules/core/04-channel/types/acknowledgement_test.go
+++ b/modules/core/04-channel/types/acknowledgement_test.go
@@ -8,7 +8,6 @@ import (
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
abcitypes "github.com/cometbft/cometbft/abci/types"
- tmprotostate "github.com/cometbft/cometbft/proto/tendermint/state"
tmstate "github.com/cometbft/cometbft/state"
"github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
@@ -108,30 +107,18 @@ func (suite *TypesTestSuite) TestABCICodeDeterminism() {
// different ABCI error code used
errDifferentABCICode := ibcerrors.ErrNotFound
- deliverTx := sdkerrors.ResponseDeliverTxWithEvents(err, gasUsed, gasWanted, []abcitypes.Event{}, false)
- responses := tmprotostate.ABCIResponses{
- DeliverTxs: []*abcitypes.ResponseDeliverTx{
- &deliverTx,
- },
- }
+ deliverTx := sdkerrors.ResponseExecTxResultWithEvents(err, gasUsed, gasWanted, []abcitypes.Event{}, false)
+ execTxResults := []*abcitypes.ExecTxResult{deliverTx}
- deliverTxSameABCICode := sdkerrors.ResponseDeliverTxWithEvents(errSameABCICode, gasUsed, gasWanted, []abcitypes.Event{}, false)
- responsesSameABCICode := tmprotostate.ABCIResponses{
- DeliverTxs: []*abcitypes.ResponseDeliverTx{
- &deliverTxSameABCICode,
- },
- }
+ deliverTxSameABCICode := sdkerrors.ResponseExecTxResultWithEvents(errSameABCICode, gasUsed, gasWanted, []abcitypes.Event{}, false)
+ resultsSameABCICode := []*abcitypes.ExecTxResult{deliverTxSameABCICode}
- deliverTxDifferentABCICode := sdkerrors.ResponseDeliverTxWithEvents(errDifferentABCICode, gasUsed, gasWanted, []abcitypes.Event{}, false)
- responsesDifferentABCICode := tmprotostate.ABCIResponses{
- DeliverTxs: []*abcitypes.ResponseDeliverTx{
- &deliverTxDifferentABCICode,
- },
- }
+ deliverTxDifferentABCICode := sdkerrors.ResponseExecTxResultWithEvents(errDifferentABCICode, gasUsed, gasWanted, []abcitypes.Event{}, false)
+ resultsDifferentABCICode := []*abcitypes.ExecTxResult{deliverTxDifferentABCICode}
- hash := tmstate.ABCIResponsesResultsHash(&responses)
- hashSameABCICode := tmstate.ABCIResponsesResultsHash(&responsesSameABCICode)
- hashDifferentABCICode := tmstate.ABCIResponsesResultsHash(&responsesDifferentABCICode)
+ hash := tmstate.TxResultsHash(execTxResults)
+ hashSameABCICode := tmstate.TxResultsHash(resultsSameABCICode)
+ hashDifferentABCICode := tmstate.TxResultsHash(resultsDifferentABCICode)
suite.Require().Equal(hash, hashSameABCICode)
suite.Require().NotEqual(hash, hashDifferentABCICode)
diff --git a/modules/core/04-channel/types/expected_keepers.go b/modules/core/04-channel/types/expected_keepers.go
index 41ceecfa25e..a35481bfe3f 100644
--- a/modules/core/04-channel/types/expected_keepers.go
+++ b/modules/core/04-channel/types/expected_keepers.go
@@ -1,7 +1,8 @@
package types
import (
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
+ storetypes "cosmossdk.io/store/types"
+
sdk "github.com/cosmos/cosmos-sdk/types"
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
diff --git a/modules/core/04-channel/types/msgs_test.go b/modules/core/04-channel/types/msgs_test.go
index f2f5d4d82ed..b63ed20b3f4 100644
--- a/modules/core/04-channel/types/msgs_test.go
+++ b/modules/core/04-channel/types/msgs_test.go
@@ -4,16 +4,16 @@ import (
"fmt"
"testing"
+ dbm "github.com/cosmos/cosmos-db"
testifysuite "github.com/stretchr/testify/suite"
- "github.com/cosmos/cosmos-sdk/store/iavl"
- "github.com/cosmos/cosmos-sdk/store/rootmulti"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
- sdk "github.com/cosmos/cosmos-sdk/types"
+ log "cosmossdk.io/log"
+ "cosmossdk.io/store/iavl"
+ "cosmossdk.io/store/metrics"
+ "cosmossdk.io/store/rootmulti"
+ storetypes "cosmossdk.io/store/types"
- dbm "github.com/cometbft/cometbft-db"
- abci "github.com/cometbft/cometbft/abci/types"
- log "github.com/cometbft/cometbft/libs/log"
+ sdk "github.com/cosmos/cosmos-sdk/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
"github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
@@ -77,8 +77,7 @@ type TypesTestSuite struct {
func (suite *TypesTestSuite) SetupTest() {
app := simapp.Setup(suite.T(), false)
db := dbm.NewMemDB()
- dblog := log.TestingLogger()
- store := rootmulti.NewStore(db, dblog)
+ store := rootmulti.NewStore(db, log.NewNopLogger(), metrics.NewNoOpMetrics())
storeKey := storetypes.NewKVStoreKey("iavlStoreKey")
store.MountStoreWithDB(storeKey, storetypes.StoreTypeIAVL, nil)
@@ -89,11 +88,12 @@ func (suite *TypesTestSuite) SetupTest() {
iavlStore.Set([]byte("KEY"), []byte("VALUE"))
_ = store.Commit()
- res := store.Query(abci.RequestQuery{
- Path: fmt.Sprintf("/%s/key", storeKey.Name()), // required path to get key/value+proof
+ res, err := store.Query(&storetypes.RequestQuery{
Data: []byte("KEY"),
+ Path: fmt.Sprintf("/%s/key", storeKey.Name()), // required path to get key/value+proof
Prove: true,
})
+ suite.Require().NoError(err)
merkleProof, err := commitmenttypes.ConvertProofs(res.ProofOps)
suite.Require().NoError(err)
@@ -377,7 +377,7 @@ func (suite *TypesTestSuite) TestMsgTimeoutValidateBasic() {
func (suite *TypesTestSuite) TestMsgTimeoutOnCloseValidateBasic() {
testCases := []struct {
name string
- msg sdk.Msg
+ msg *types.MsgTimeoutOnClose
expPass bool
}{
{"success", types.NewMsgTimeoutOnClose(packet, 1, suite.proof, suite.proof, height, addr), true},
diff --git a/modules/core/05-port/keeper/keeper.go b/modules/core/05-port/keeper/keeper.go
index 11a20255192..f290f99fed9 100644
--- a/modules/core/05-port/keeper/keeper.go
+++ b/modules/core/05-port/keeper/keeper.go
@@ -3,9 +3,9 @@ package keeper
import (
"fmt"
- sdk "github.com/cosmos/cosmos-sdk/types"
+ "cosmossdk.io/log"
- "github.com/cometbft/cometbft/libs/log"
+ sdk "github.com/cosmos/cosmos-sdk/types"
capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
"github.com/cosmos/ibc-go/v7/modules/core/05-port/types"
diff --git a/modules/core/05-port/keeper/keeper_test.go b/modules/core/05-port/keeper/keeper_test.go
index 55e428b4e11..578348efa84 100644
--- a/modules/core/05-port/keeper/keeper_test.go
+++ b/modules/core/05-port/keeper/keeper_test.go
@@ -8,8 +8,6 @@ import (
sdk "github.com/cosmos/cosmos-sdk/types"
- tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
-
"github.com/cosmos/ibc-go/v7/modules/core/05-port/keeper"
"github.com/cosmos/ibc-go/v7/testing/simapp"
)
@@ -30,7 +28,7 @@ func (suite *KeeperTestSuite) SetupTest() {
isCheckTx := false
app := simapp.Setup(suite.T(), isCheckTx)
- suite.ctx = app.BaseApp.NewContext(isCheckTx, tmproto.Header{})
+ suite.ctx = app.BaseApp.NewContext(isCheckTx)
suite.keeper = &app.IBCKeeper.PortKeeper
}
diff --git a/modules/core/23-commitment/types/commitment_test.go b/modules/core/23-commitment/types/commitment_test.go
index c08a94ab1bb..6d8a2d227af 100644
--- a/modules/core/23-commitment/types/commitment_test.go
+++ b/modules/core/23-commitment/types/commitment_test.go
@@ -3,14 +3,14 @@ package types_test
import (
"testing"
+ dbm "github.com/cosmos/cosmos-db"
testifysuite "github.com/stretchr/testify/suite"
- "github.com/cosmos/cosmos-sdk/store/iavl"
- "github.com/cosmos/cosmos-sdk/store/rootmulti"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
-
- dbm "github.com/cometbft/cometbft-db"
- "github.com/cometbft/cometbft/libs/log"
+ "cosmossdk.io/log"
+ "cosmossdk.io/store/iavl"
+ "cosmossdk.io/store/metrics"
+ "cosmossdk.io/store/rootmulti"
+ storetypes "cosmossdk.io/store/types"
)
type MerkleTestSuite struct {
@@ -23,8 +23,7 @@ type MerkleTestSuite struct {
func (suite *MerkleTestSuite) SetupTest() {
db := dbm.NewMemDB()
- dblog := log.TestingLogger()
- suite.store = rootmulti.NewStore(db, dblog)
+ suite.store = rootmulti.NewStore(db, log.NewNopLogger(), metrics.NewNoOpMetrics())
suite.storeKey = storetypes.NewKVStoreKey("iavlStoreKey")
diff --git a/modules/core/23-commitment/types/merkle.go b/modules/core/23-commitment/types/merkle.go
index 6cf5d973bc2..4367a27ccfe 100644
--- a/modules/core/23-commitment/types/merkle.go
+++ b/modules/core/23-commitment/types/merkle.go
@@ -81,6 +81,12 @@ func NewMerklePath(keyPath ...string) MerklePath {
// This represents the path in the same way the tendermint KeyPath will
// represent a key path. The backslashes partition the key path into
// the respective stores they belong to.
+//
+// Deprecated: This function makes assumptions about the way a merkle path
+// in a multistore should be represented as a string that are not standardized.
+// The decision on how to represent the merkle path as a string will be deferred
+// to upstream users of the type.
+// This function will be removed in a next release.
func (mp MerklePath) String() string {
pathStr := ""
for _, k := range mp.KeyPath {
@@ -93,6 +99,12 @@ func (mp MerklePath) String() string {
// This function will unescape any backslash within a particular store key.
// This makes the keypath more human-readable while removing information
// about the exact partitions in the key path.
+//
+// Deprecated: This function makes assumptions about the way a merkle path
+// in a multistore should be represented as a string that are not standardized.
+// The decision on how to represent the merkle path as a string will be deferred
+// to upstream users of the type.
+// This function will be removed in a next release.
func (mp MerklePath) Pretty() string {
path, err := url.PathUnescape(mp.String())
if err != nil {
@@ -107,11 +119,7 @@ func (mp MerklePath) GetKey(i uint64) ([]byte, error) {
if i >= uint64(len(mp.KeyPath)) {
return nil, fmt.Errorf("index out of range. %d (index) >= %d (len)", i, len(mp.KeyPath))
}
- key, err := url.PathUnescape(mp.KeyPath[i])
- if err != nil {
- return nil, err
- }
- return []byte(key), nil
+ return []byte(mp.KeyPath[i]), nil
}
// Empty returns true if the path is empty
diff --git a/modules/core/23-commitment/types/merkle_test.go b/modules/core/23-commitment/types/merkle_test.go
index 5b80c7ce266..0cbc8ac153f 100644
--- a/modules/core/23-commitment/types/merkle_test.go
+++ b/modules/core/23-commitment/types/merkle_test.go
@@ -6,7 +6,7 @@ import (
"github.com/stretchr/testify/require"
- abci "github.com/cometbft/cometbft/abci/types"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types"
)
@@ -15,11 +15,12 @@ func (suite *MerkleTestSuite) TestVerifyMembership() {
suite.iavlStore.Set([]byte("MYKEY"), []byte("MYVALUE"))
cid := suite.store.Commit()
- res := suite.store.Query(abci.RequestQuery{
+ res, err := suite.store.Query(&storetypes.RequestQuery{
Path: fmt.Sprintf("/%s/key", suite.storeKey.Name()), // required path to get key/value+proof
Data: []byte("MYKEY"),
Prove: true,
})
+ require.NoError(suite.T(), err)
require.NotNil(suite.T(), res.ProofOps)
proof, err := types.ConvertProofs(res.ProofOps)
@@ -80,11 +81,12 @@ func (suite *MerkleTestSuite) TestVerifyNonMembership() {
cid := suite.store.Commit()
// Get Proof
- res := suite.store.Query(abci.RequestQuery{
+ res, err := suite.store.Query(&storetypes.RequestQuery{
Path: fmt.Sprintf("/%s/key", suite.storeKey.Name()), // required path to get key/value+proof
Data: []byte("MYABSENTKEY"),
Prove: true,
})
+ require.NoError(suite.T(), err)
require.NotNil(suite.T(), res.ProofOps)
proof, err := types.ConvertProofs(res.ProofOps)
diff --git a/modules/core/23-commitment/types/utils_test.go b/modules/core/23-commitment/types/utils_test.go
index f82dce0ad82..86811e61220 100644
--- a/modules/core/23-commitment/types/utils_test.go
+++ b/modules/core/23-commitment/types/utils_test.go
@@ -5,7 +5,8 @@ import (
"github.com/stretchr/testify/require"
- abci "github.com/cometbft/cometbft/abci/types"
+ storetypes "cosmossdk.io/store/types"
+
crypto "github.com/cometbft/cometbft/proto/tendermint/crypto"
"github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types"
@@ -30,11 +31,12 @@ func (suite *MerkleTestSuite) TestConvertProofs() {
{
"success for ExistenceProof",
func() {
- res := suite.store.Query(abci.RequestQuery{
+ res, err := suite.store.Query(&storetypes.RequestQuery{
Path: fmt.Sprintf("/%s/key", suite.storeKey.Name()), // required path to get key/value+proof
Data: []byte("MYKEY"),
Prove: true,
})
+ require.NoError(suite.T(), err)
require.NotNil(suite.T(), res.ProofOps)
proofOps = res.ProofOps
@@ -44,11 +46,12 @@ func (suite *MerkleTestSuite) TestConvertProofs() {
{
"success for NonexistenceProof",
func() {
- res := suite.store.Query(abci.RequestQuery{
+ res, err := suite.store.Query(&storetypes.RequestQuery{
Path: fmt.Sprintf("/%s/key", suite.storeKey.Name()), // required path to get key/value+proof
Data: []byte("NOTMYKEY"),
Prove: true,
})
+ require.NoError(suite.T(), err)
require.NotNil(suite.T(), res.ProofOps)
proofOps = res.ProofOps
@@ -65,11 +68,12 @@ func (suite *MerkleTestSuite) TestConvertProofs() {
{
"proof op data is nil",
func() {
- res := suite.store.Query(abci.RequestQuery{
+ res, err := suite.store.Query(&storetypes.RequestQuery{
Path: fmt.Sprintf("/%s/key", suite.storeKey.Name()), // required path to get key/value+proof
Data: []byte("MYKEY"),
Prove: true,
})
+ require.NoError(suite.T(), err)
require.NotNil(suite.T(), res.ProofOps)
proofOps = res.ProofOps
diff --git a/modules/core/ante/ante.go b/modules/core/ante/ante.go
index 7b8cdb326de..e2b6e548d09 100644
--- a/modules/core/ante/ante.go
+++ b/modules/core/ante/ante.go
@@ -30,7 +30,7 @@ func (rrd RedundantRelayDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula
for _, m := range tx.GetMsgs() {
switch msg := m.(type) {
case *channeltypes.MsgRecvPacket:
- response, err := rrd.k.RecvPacket(sdk.WrapSDKContext(ctx), msg)
+ response, err := rrd.k.RecvPacket(ctx, msg)
if err != nil {
return ctx, err
}
@@ -40,7 +40,7 @@ func (rrd RedundantRelayDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula
packetMsgs++
case *channeltypes.MsgAcknowledgement:
- response, err := rrd.k.Acknowledgement(sdk.WrapSDKContext(ctx), msg)
+ response, err := rrd.k.Acknowledgement(ctx, msg)
if err != nil {
return ctx, err
}
@@ -50,7 +50,7 @@ func (rrd RedundantRelayDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula
packetMsgs++
case *channeltypes.MsgTimeout:
- response, err := rrd.k.Timeout(sdk.WrapSDKContext(ctx), msg)
+ response, err := rrd.k.Timeout(ctx, msg)
if err != nil {
return ctx, err
}
@@ -60,7 +60,7 @@ func (rrd RedundantRelayDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula
packetMsgs++
case *channeltypes.MsgTimeoutOnClose:
- response, err := rrd.k.TimeoutOnClose(sdk.WrapSDKContext(ctx), msg)
+ response, err := rrd.k.TimeoutOnClose(ctx, msg)
if err != nil {
return ctx, err
}
@@ -70,7 +70,7 @@ func (rrd RedundantRelayDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula
packetMsgs++
case *clienttypes.MsgUpdateClient:
- _, err := rrd.k.UpdateClient(sdk.WrapSDKContext(ctx), msg)
+ _, err := rrd.k.UpdateClient(ctx, msg)
if err != nil {
return ctx, err
}
diff --git a/modules/core/exported/client.go b/modules/core/exported/client.go
index 512c620f7a2..cf5d11ca617 100644
--- a/modules/core/exported/client.go
+++ b/modules/core/exported/client.go
@@ -3,8 +3,9 @@ package exported
import (
proto "github.com/cosmos/gogoproto/proto"
+ storetypes "cosmossdk.io/store/types"
+
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
)
diff --git a/modules/core/exported/commitment.go b/modules/core/exported/commitment.go
index 904910e44e9..9a8b47f0151 100644
--- a/modules/core/exported/commitment.go
+++ b/modules/core/exported/commitment.go
@@ -28,7 +28,7 @@ type Prefix interface {
// Path implements spec:CommitmentPath.
// A path is the additional information provided to the verification function.
type Path interface {
- String() string
+ String() string // deprecated
Empty() bool
}
diff --git a/modules/core/genesis_test.go b/modules/core/genesis_test.go
index 8e20fb2cf15..e18b49fb013 100644
--- a/modules/core/genesis_test.go
+++ b/modules/core/genesis_test.go
@@ -8,8 +8,6 @@ import (
"github.com/cosmos/cosmos-sdk/codec"
- tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
-
ibc "github.com/cosmos/ibc-go/v7/modules/core"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
connectiontypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types"
@@ -311,7 +309,7 @@ func (suite *IBCTestSuite) TestInitGenesis() {
app := simapp.Setup(suite.T(), false)
suite.NotPanics(func() {
- ibc.InitGenesis(app.BaseApp.NewContext(false, tmproto.Header{Height: 1}), *app.IBCKeeper, tc.genState)
+ ibc.InitGenesis(app.BaseApp.NewContext(false), *app.IBCKeeper, tc.genState)
})
}
}
diff --git a/modules/core/keeper/keeper.go b/modules/core/keeper/keeper.go
index 3c3d30a9ddf..43700187a5a 100644
--- a/modules/core/keeper/keeper.go
+++ b/modules/core/keeper/keeper.go
@@ -4,8 +4,9 @@ import (
"fmt"
"reflect"
+ storetypes "cosmossdk.io/store/types"
+
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper"
diff --git a/modules/core/keeper/keeper_test.go b/modules/core/keeper/keeper_test.go
index 0cf893873dc..7f8e6e8af01 100644
--- a/modules/core/keeper/keeper_test.go
+++ b/modules/core/keeper/keeper_test.go
@@ -1,15 +1,16 @@
package keeper_test
import (
+ "context"
"testing"
"time"
testifysuite "github.com/stretchr/testify/suite"
- sdk "github.com/cosmos/cosmos-sdk/types"
+ upgradekeeper "cosmossdk.io/x/upgrade/keeper"
+
stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
- upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper"
capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
@@ -48,12 +49,12 @@ type MockStakingKeeper struct {
mockField string
}
-func (MockStakingKeeper) GetHistoricalInfo(_ sdk.Context, height int64) (stakingtypes.HistoricalInfo, bool) {
- return stakingtypes.HistoricalInfo{}, true
+func (MockStakingKeeper) GetHistoricalInfo(_ context.Context, _ int64) (stakingtypes.HistoricalInfo, error) {
+ return stakingtypes.HistoricalInfo{}, nil
}
-func (MockStakingKeeper) UnbondingTime(_ sdk.Context) time.Duration {
- return 0
+func (MockStakingKeeper) UnbondingTime(_ context.Context) (time.Duration, error) {
+ return 0, nil
}
// Test ibckeeper.NewKeeper used to initialize IBCKeeper when creating an app instance.
diff --git a/modules/core/keeper/msg_server.go b/modules/core/keeper/msg_server.go
index 42ff5879c61..cf17c21e752 100644
--- a/modules/core/keeper/msg_server.go
+++ b/modules/core/keeper/msg_server.go
@@ -3,7 +3,7 @@ package keeper
import (
"context"
- metrics "github.com/armon/go-metrics"
+ metrics "github.com/hashicorp/go-metrics"
errorsmod "cosmossdk.io/errors"
@@ -537,6 +537,7 @@ func (k Keeper) Timeout(goCtx context.Context, msg *channeltypes.MsgTimeout) (*c
writeFn()
case channeltypes.ErrNoOpMsg:
// no-ops do not need event emission as they will be ignored
+ ctx.Logger().Debug("no-op on redundant relay", "port-id", msg.Packet.SourcePort, "channel-id", msg.Packet.SourceChannel)
return &channeltypes.MsgTimeoutResponse{Result: channeltypes.NOOP}, nil
default:
ctx.Logger().Error("timeout failed", "port-id", msg.Packet.SourcePort, "channel-id", msg.Packet.SourceChannel, "error", errorsmod.Wrap(err, "timeout packet verification failed"))
@@ -608,6 +609,7 @@ func (k Keeper) TimeoutOnClose(goCtx context.Context, msg *channeltypes.MsgTimeo
writeFn()
case channeltypes.ErrNoOpMsg:
// no-ops do not need event emission as they will be ignored
+ ctx.Logger().Debug("no-op on redundant relay", "port-id", msg.Packet.SourcePort, "channel-id", msg.Packet.SourceChannel)
return &channeltypes.MsgTimeoutOnCloseResponse{Result: channeltypes.NOOP}, nil
default:
ctx.Logger().Error("timeout on close failed", "port-id", msg.Packet.SourcePort, "channel-id", msg.Packet.SourceChannel, "error", errorsmod.Wrap(err, "timeout on close packet verification failed"))
@@ -682,6 +684,7 @@ func (k Keeper) Acknowledgement(goCtx context.Context, msg *channeltypes.MsgAckn
writeFn()
case channeltypes.ErrNoOpMsg:
// no-ops do not need event emission as they will be ignored
+ ctx.Logger().Debug("no-op on redundant relay", "port-id", msg.Packet.SourcePort, "channel-id", msg.Packet.SourceChannel)
return &channeltypes.MsgAcknowledgementResponse{Result: channeltypes.NOOP}, nil
default:
ctx.Logger().Error("acknowledgement failed", "port-id", msg.Packet.SourcePort, "channel-id", msg.Packet.SourceChannel, "error", errorsmod.Wrap(err, "acknowledge packet verification failed"))
@@ -713,8 +716,8 @@ func (k Keeper) Acknowledgement(goCtx context.Context, msg *channeltypes.MsgAckn
// UpdateClientParams defines a rpc handler method for MsgUpdateParams.
func (k Keeper) UpdateClientParams(goCtx context.Context, msg *clienttypes.MsgUpdateParams) (*clienttypes.MsgUpdateParamsResponse, error) {
- if k.GetAuthority() != msg.Authority {
- return nil, errorsmod.Wrapf(ibcerrors.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Authority)
+ if k.GetAuthority() != msg.Signer {
+ return nil, errorsmod.Wrapf(ibcerrors.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Signer)
}
ctx := sdk.UnwrapSDKContext(goCtx)
@@ -744,8 +747,8 @@ func (k Keeper) IBCSoftwareUpgrade(goCtx context.Context, msg *clienttypes.MsgIB
// UpdateConnectionParams defines a rpc handler method for MsgUpdateParams for the 03-connection submodule.
func (k Keeper) UpdateConnectionParams(goCtx context.Context, msg *connectiontypes.MsgUpdateParams) (*connectiontypes.MsgUpdateParamsResponse, error) {
- if k.GetAuthority() != msg.Authority {
- return nil, errorsmod.Wrapf(ibcerrors.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Authority)
+ if k.GetAuthority() != msg.Signer {
+ return nil, errorsmod.Wrapf(ibcerrors.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Signer)
}
ctx := sdk.UnwrapSDKContext(goCtx)
diff --git a/modules/core/keeper/msg_server_test.go b/modules/core/keeper/msg_server_test.go
index 5815eb08cf6..c957bfde070 100644
--- a/modules/core/keeper/msg_server_test.go
+++ b/modules/core/keeper/msg_server_test.go
@@ -3,8 +3,9 @@ package keeper_test
import (
"errors"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
+
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
connectiontypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types"
@@ -857,34 +858,34 @@ func (suite *KeeperTestSuite) TestRecoverClient() {
// TestUpdateClientParams tests the UpdateClientParams rpc handler
func (suite *KeeperTestSuite) TestUpdateClientParams() {
- validAuthority := suite.chainA.App.GetIBCKeeper().GetAuthority()
+ signer := suite.chainA.App.GetIBCKeeper().GetAuthority()
testCases := []struct {
name string
msg *clienttypes.MsgUpdateParams
expPass bool
}{
{
- "success: valid authority and default params",
- clienttypes.NewMsgUpdateParams(validAuthority, clienttypes.DefaultParams()),
+ "success: valid signer and default params",
+ clienttypes.NewMsgUpdateParams(signer, clienttypes.DefaultParams()),
true,
},
{
- "failure: malformed authority address",
+ "failure: malformed signer address",
clienttypes.NewMsgUpdateParams(ibctesting.InvalidID, clienttypes.DefaultParams()),
false,
},
{
- "failure: empty authority address",
+ "failure: empty signer address",
clienttypes.NewMsgUpdateParams("", clienttypes.DefaultParams()),
false,
},
{
- "failure: whitespace authority address",
+ "failure: whitespace signer address",
clienttypes.NewMsgUpdateParams(" ", clienttypes.DefaultParams()),
false,
},
{
- "failure: unauthorized authority address",
+ "failure: unauthorized signer address",
clienttypes.NewMsgUpdateParams(ibctesting.TestAccAddress, clienttypes.DefaultParams()),
false,
},
@@ -972,13 +973,13 @@ func (suite *KeeperTestSuite) TestIBCSoftwareUpgrade() {
if tc.expError == nil {
suite.Require().NoError(err)
// upgrade plan is stored
- storedPlan, found := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradePlan(suite.chainA.GetContext())
- suite.Require().True(found)
+ storedPlan, err := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradePlan(suite.chainA.GetContext())
+ suite.Require().NoError(err)
suite.Require().Equal(plan, storedPlan)
// upgraded client state is stored
- bz, found := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), plan.Height)
- suite.Require().True(found)
+ bz, err := suite.chainA.GetSimApp().UpgradeKeeper.GetUpgradedClient(suite.chainA.GetContext(), plan.Height)
+ suite.Require().NoError(err)
upgradedClientState, err := clienttypes.UnmarshalClientState(suite.chainA.App.AppCodec(), bz)
suite.Require().NoError(err)
suite.Require().Equal(clientState.ZeroCustomFields(), upgradedClientState)
@@ -991,34 +992,34 @@ func (suite *KeeperTestSuite) TestIBCSoftwareUpgrade() {
// TestUpdateConnectionParams tests the UpdateConnectionParams rpc handler
func (suite *KeeperTestSuite) TestUpdateConnectionParams() {
- validAuthority := suite.chainA.App.GetIBCKeeper().GetAuthority()
+ signer := suite.chainA.App.GetIBCKeeper().GetAuthority()
testCases := []struct {
name string
msg *connectiontypes.MsgUpdateParams
expPass bool
}{
{
- "success: valid authority and default params",
- connectiontypes.NewMsgUpdateParams(validAuthority, connectiontypes.DefaultParams()),
+ "success: valid signer and default params",
+ connectiontypes.NewMsgUpdateParams(signer, connectiontypes.DefaultParams()),
true,
},
{
- "failure: malformed authority address",
+ "failure: malformed signer address",
connectiontypes.NewMsgUpdateParams(ibctesting.InvalidID, connectiontypes.DefaultParams()),
false,
},
{
- "failure: empty authority address",
+ "failure: empty signer address",
connectiontypes.NewMsgUpdateParams("", connectiontypes.DefaultParams()),
false,
},
{
- "failure: whitespace authority address",
+ "failure: whitespace signer address",
connectiontypes.NewMsgUpdateParams(" ", connectiontypes.DefaultParams()),
false,
},
{
- "failure: unauthorized authority address",
+ "failure: unauthorized signer address",
connectiontypes.NewMsgUpdateParams(ibctesting.TestAccAddress, connectiontypes.DefaultParams()),
false,
},
diff --git a/modules/core/module.go b/modules/core/module.go
index 5369c955bc1..8c671b4b850 100644
--- a/modules/core/module.go
+++ b/modules/core/module.go
@@ -8,6 +8,8 @@ import (
"github.com/grpc-ecosystem/grpc-gateway/runtime"
"github.com/spf13/cobra"
+ "cosmossdk.io/core/appmodule"
+
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/codec"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
@@ -34,6 +36,7 @@ var (
_ module.AppModule = (*AppModule)(nil)
_ module.AppModuleBasic = (*AppModuleBasic)(nil)
_ module.AppModuleSimulation = (*AppModule)(nil)
+ _ appmodule.AppModule = (*AppModule)(nil)
)
// AppModuleBasic defines the basic application module used by the ibc module.
@@ -44,6 +47,12 @@ func (AppModuleBasic) Name() string {
return exported.ModuleName
}
+// IsOnePerModuleType implements the depinject.OnePerModuleType interface.
+func (AppModule) IsOnePerModuleType() {}
+
+// IsAppModule implements the appmodule.AppModule interface.
+func (AppModule) IsAppModule() {}
+
// RegisterLegacyAminoCodec does nothing. IBC does not support amino.
func (AppModuleBasic) RegisterLegacyAminoCodec(*codec.LegacyAmino) {}
@@ -173,16 +182,10 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw
func (AppModule) ConsensusVersion() uint64 { return 5 }
// BeginBlock returns the begin blocker for the ibc module.
-func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) {
+func (am AppModule) BeginBlock(ctx sdk.Context) {
ibcclient.BeginBlocker(ctx, am.keeper.ClientKeeper)
}
-// EndBlock returns the end blocker for the ibc module. It returns no validator
-// updates.
-func (AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate {
- return []abci.ValidatorUpdate{}
-}
-
// AppModuleSimulation functions
// GenerateGenesisState creates a randomized GenState of the ibc module.
@@ -191,7 +194,7 @@ func (AppModule) GenerateGenesisState(simState *module.SimulationState) {
}
// RegisterStoreDecoder registers a decoder for ibc module's types
-func (am AppModule) RegisterStoreDecoder(sdr sdk.StoreDecoderRegistry) {
+func (am AppModule) RegisterStoreDecoder(sdr simtypes.StoreDecoderRegistry) {
sdr[exported.StoreKey] = simulation.NewDecodeStore(*am.keeper)
}
diff --git a/modules/core/simulation/genesis.go b/modules/core/simulation/genesis.go
index 187d986fd5f..524614d9610 100644
--- a/modules/core/simulation/genesis.go
+++ b/modules/core/simulation/genesis.go
@@ -35,17 +35,17 @@ func RandomizedGenState(simState *module.SimulationState) {
)
simState.AppParams.GetOrGenerate(
- simState.Cdc, clientGenesis, &clientGenesisState, simState.Rand,
+ clientGenesis, &clientGenesisState, simState.Rand,
func(r *rand.Rand) { clientGenesisState = clientsims.GenClientGenesis(r, simState.Accounts) },
)
simState.AppParams.GetOrGenerate(
- simState.Cdc, connectionGenesis, &connectionGenesisState, simState.Rand,
+ connectionGenesis, &connectionGenesisState, simState.Rand,
func(r *rand.Rand) { connectionGenesisState = connectionsims.GenConnectionGenesis(r, simState.Accounts) },
)
simState.AppParams.GetOrGenerate(
- simState.Cdc, channelGenesis, &channelGenesisState, simState.Rand,
+ channelGenesis, &channelGenesisState, simState.Rand,
func(r *rand.Rand) { channelGenesisState = channelsims.GenChannelGenesis(r, simState.Accounts) },
)
diff --git a/modules/light-clients/06-solomachine/client_state.go b/modules/light-clients/06-solomachine/client_state.go
index 85e6bad1ced..334188542f6 100644
--- a/modules/light-clients/06-solomachine/client_state.go
+++ b/modules/light-clients/06-solomachine/client_state.go
@@ -4,10 +4,10 @@ import (
"reflect"
errorsmod "cosmossdk.io/errors"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/tx/signing"
@@ -128,15 +128,21 @@ func (cs *ClientState) VerifyMembership(
return errorsmod.Wrapf(ibcerrors.ErrInvalidType, "expected %T, got %T", commitmenttypes.MerklePath{}, path)
}
- if merklePath.Empty() {
- return errorsmod.Wrap(commitmenttypes.ErrInvalidProof, "path is empty")
+ if len(merklePath.GetKeyPath()) != 2 {
+ return errorsmod.Wrapf(host.ErrInvalidPath, "path must be of length 2: %s", merklePath.GetKeyPath())
+ }
+
+ // in a multistore context: index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ key, err := merklePath.GetKey(1)
+ if err != nil {
+ return errorsmod.Wrapf(host.ErrInvalidPath, "key not found at index 1: %v", err)
}
signBytes := &SignBytes{
Sequence: sequence,
Timestamp: timestamp,
Diversifier: cs.ConsensusState.Diversifier,
- Path: []byte(merklePath.String()),
+ Path: key,
Data: value,
}
@@ -178,11 +184,21 @@ func (cs *ClientState) VerifyNonMembership(
return errorsmod.Wrapf(ibcerrors.ErrInvalidType, "expected %T, got %T", commitmenttypes.MerklePath{}, path)
}
+ if len(merklePath.GetKeyPath()) != 2 {
+ return errorsmod.Wrapf(host.ErrInvalidPath, "path must be of length 2: %s", merklePath.GetKeyPath())
+ }
+
+ // in a multistore context: index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ key, err := merklePath.GetKey(1)
+ if err != nil {
+ return errorsmod.Wrapf(host.ErrInvalidPath, "key not found at index 1: %v", err)
+ }
+
signBytes := &SignBytes{
Sequence: sequence,
Timestamp: timestamp,
Diversifier: cs.ConsensusState.Diversifier,
- Path: []byte(merklePath.String()),
+ Path: key,
Data: nil,
}
diff --git a/modules/light-clients/06-solomachine/client_state_test.go b/modules/light-clients/06-solomachine/client_state_test.go
index 33888252e4e..418c8c6f9c8 100644
--- a/modules/light-clients/06-solomachine/client_state_test.go
+++ b/modules/light-clients/06-solomachine/client_state_test.go
@@ -176,11 +176,15 @@ func (suite *SoloMachineTestSuite) TestVerifyMembership() {
suite.Require().NoError(err)
path = suite.solomachine.GetClientStatePath(counterpartyClientIdentifier)
+ merklePath, ok := path.(commitmenttypes.MerklePath)
+ suite.Require().True(ok)
+ key, err := merklePath.GetKey(1) // in a multistore context: index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ suite.Require().NoError(err)
signBytes = solomachine.SignBytes{
Sequence: sm.GetHeight().GetRevisionHeight(),
Timestamp: sm.Time,
Diversifier: sm.Diversifier,
- Path: []byte(path.String()),
+ Path: key,
Data: clientStateBz,
}
@@ -208,11 +212,15 @@ func (suite *SoloMachineTestSuite) TestVerifyMembership() {
suite.Require().NoError(err)
path = sm.GetConsensusStatePath(counterpartyClientIdentifier, clienttypes.NewHeight(0, 1))
+ merklePath, ok := path.(commitmenttypes.MerklePath)
+ suite.Require().True(ok)
+ key, err := merklePath.GetKey(1) // in a multistore context: index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ suite.Require().NoError(err)
signBytes = solomachine.SignBytes{
Sequence: sm.Sequence,
Timestamp: sm.Time,
Diversifier: sm.Diversifier,
- Path: []byte(path.String()),
+ Path: key,
Data: consensusStateBz,
}
@@ -243,11 +251,15 @@ func (suite *SoloMachineTestSuite) TestVerifyMembership() {
suite.Require().NoError(err)
path = sm.GetConnectionStatePath(ibctesting.FirstConnectionID)
+ merklePath, ok := path.(commitmenttypes.MerklePath)
+ suite.Require().True(ok)
+ key, err := merklePath.GetKey(1) // in a multistore context: index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ suite.Require().NoError(err)
signBytes = solomachine.SignBytes{
Sequence: sm.Sequence,
Timestamp: sm.Time,
Diversifier: sm.Diversifier,
- Path: []byte(path.String()),
+ Path: key,
Data: connectionEndBz,
}
@@ -279,11 +291,15 @@ func (suite *SoloMachineTestSuite) TestVerifyMembership() {
suite.Require().NoError(err)
path = sm.GetChannelStatePath(ibctesting.MockPort, ibctesting.FirstChannelID)
+ merklePath, ok := path.(commitmenttypes.MerklePath)
+ suite.Require().True(ok)
+ key, err := merklePath.GetKey(1) // in a multistore context: index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ suite.Require().NoError(err)
signBytes = solomachine.SignBytes{
Sequence: sm.Sequence,
Timestamp: sm.Time,
Diversifier: sm.Diversifier,
- Path: []byte(path.String()),
+ Path: key,
Data: channelEndBz,
}
@@ -312,11 +328,15 @@ func (suite *SoloMachineTestSuite) TestVerifyMembership() {
suite.Require().True(found)
path = sm.GetNextSequenceRecvPath(ibctesting.MockPort, ibctesting.FirstChannelID)
+ merklePath, ok := path.(commitmenttypes.MerklePath)
+ suite.Require().True(ok)
+ key, err := merklePath.GetKey(1) // in a multistore context: index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ suite.Require().NoError(err)
signBytes = solomachine.SignBytes{
Sequence: sm.Sequence,
Timestamp: sm.Time,
Diversifier: sm.Diversifier,
- Path: []byte(path.String()),
+ Path: key,
Data: sdk.Uint64ToBigEndian(nextSeqRecv),
}
@@ -351,11 +371,15 @@ func (suite *SoloMachineTestSuite) TestVerifyMembership() {
commitmentBz := channeltypes.CommitPacket(suite.chainA.Codec, packet)
path = sm.GetPacketCommitmentPath(packet.GetSourcePort(), packet.GetSourceChannel(), packet.GetSequence())
+ merklePath, ok := path.(commitmenttypes.MerklePath)
+ suite.Require().True(ok)
+ key, err := merklePath.GetKey(1) // in a multistore context: index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ suite.Require().NoError(err)
signBytes = solomachine.SignBytes{
Sequence: sm.Sequence,
Timestamp: sm.Time,
Diversifier: sm.Diversifier,
- Path: []byte(path.String()),
+ Path: key,
Data: commitmentBz,
}
@@ -378,11 +402,15 @@ func (suite *SoloMachineTestSuite) TestVerifyMembership() {
"success: packet acknowledgement verification",
func() {
path = sm.GetPacketAcknowledgementPath(ibctesting.MockPort, ibctesting.FirstChannelID, 1)
+ merklePath, ok := path.(commitmenttypes.MerklePath)
+ suite.Require().True(ok)
+ key, err := merklePath.GetKey(1) // index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ suite.Require().NoError(err)
signBytes = solomachine.SignBytes{
Sequence: sm.Sequence,
Timestamp: sm.Time,
Diversifier: sm.Diversifier,
- Path: []byte(path.String()),
+ Path: key,
Data: ibctesting.MockAcknowledgement,
}
@@ -405,11 +433,15 @@ func (suite *SoloMachineTestSuite) TestVerifyMembership() {
"success: packet receipt verification",
func() {
path = sm.GetPacketReceiptPath(ibctesting.MockPort, ibctesting.FirstChannelID, 1)
+ merklePath, ok := path.(commitmenttypes.MerklePath)
+ suite.Require().True(ok)
+ key, err := merklePath.GetKey(1) // in a multistore context: index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ suite.Require().NoError(err)
signBytes = solomachine.SignBytes{
Sequence: sm.Sequence,
Timestamp: sm.Time,
Diversifier: sm.Diversifier,
- Path: []byte(path.String()),
+ Path: key,
Data: []byte{byte(1)}, // packet receipt is stored as a single byte
}
@@ -429,7 +461,7 @@ func (suite *SoloMachineTestSuite) TestVerifyMembership() {
true,
},
{
- "invalid path type",
+ "invalid path type - empty",
func() {
path = ibcmock.KeyPath{}
},
@@ -521,11 +553,15 @@ func (suite *SoloMachineTestSuite) TestVerifyMembership() {
clientState = sm.ClientState()
path = commitmenttypes.NewMerklePath("ibc", "solomachine")
+ merklePath, ok := path.(commitmenttypes.MerklePath)
+ suite.Require().True(ok)
+ key, err := merklePath.GetKey(1) // in a multistore context: index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ suite.Require().NoError(err)
signBytes = solomachine.SignBytes{
Sequence: sm.GetHeight().GetRevisionHeight(),
Timestamp: sm.Time,
Diversifier: sm.Diversifier,
- Path: []byte(path.String()),
+ Path: key,
Data: []byte("solomachine"),
}
@@ -570,11 +606,13 @@ func (suite *SoloMachineTestSuite) TestVerifyMembership() {
func (suite *SoloMachineTestSuite) TestSignBytesMarshalling() {
sm := suite.solomachine
merklePath := commitmenttypes.NewMerklePath("ibc", "solomachine")
+ key, err := merklePath.GetKey(1) // in a multistore context: index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ suite.Require().NoError(err)
signBytesNilData := solomachine.SignBytes{
Sequence: sm.GetHeight().GetRevisionHeight(),
Timestamp: sm.Time,
Diversifier: sm.Diversifier,
- Path: []byte(merklePath.String()),
+ Path: key,
Data: nil,
}
@@ -582,7 +620,7 @@ func (suite *SoloMachineTestSuite) TestSignBytesMarshalling() {
Sequence: sm.GetHeight().GetRevisionHeight(),
Timestamp: sm.Time,
Diversifier: sm.Diversifier,
- Path: []byte(merklePath.String()),
+ Path: key,
Data: []byte{},
}
@@ -621,11 +659,15 @@ func (suite *SoloMachineTestSuite) TestVerifyNonMembership() {
"success: packet receipt absence verification",
func() {
path = suite.solomachine.GetPacketReceiptPath(ibctesting.MockPort, ibctesting.FirstChannelID, 1)
+ merklePath, ok := path.(commitmenttypes.MerklePath)
+ suite.Require().True(ok)
+ key, err := merklePath.GetKey(1) // in a multistore context: index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ suite.Require().NoError(err)
signBytes = solomachine.SignBytes{
Sequence: sm.GetHeight().GetRevisionHeight(),
Timestamp: sm.Time,
Diversifier: sm.Diversifier,
- Path: []byte(path.String()),
+ Path: key,
Data: nil,
}
@@ -740,11 +782,15 @@ func (suite *SoloMachineTestSuite) TestVerifyNonMembership() {
clientState = sm.ClientState()
path = commitmenttypes.NewMerklePath("ibc", "solomachine")
+ merklePath, ok := path.(commitmenttypes.MerklePath)
+ suite.Require().True(ok)
+ key, err := merklePath.GetKey(1) // in a multistore context: index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ suite.Require().NoError(err)
signBytes = solomachine.SignBytes{
Sequence: sm.GetHeight().GetRevisionHeight(),
Timestamp: sm.Time,
Diversifier: sm.Diversifier,
- Path: []byte(path.String()),
+ Path: key,
Data: nil,
}
diff --git a/modules/light-clients/06-solomachine/misbehaviour_handle.go b/modules/light-clients/06-solomachine/misbehaviour_handle.go
index 77175adf729..9eb700ccbe0 100644
--- a/modules/light-clients/06-solomachine/misbehaviour_handle.go
+++ b/modules/light-clients/06-solomachine/misbehaviour_handle.go
@@ -2,9 +2,9 @@ package solomachine
import (
errorsmod "cosmossdk.io/errors"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
commitmenttypes "github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types"
diff --git a/modules/light-clients/06-solomachine/proposal_handle.go b/modules/light-clients/06-solomachine/proposal_handle.go
index 7920274ad39..a8bbe6761a4 100644
--- a/modules/light-clients/06-solomachine/proposal_handle.go
+++ b/modules/light-clients/06-solomachine/proposal_handle.go
@@ -4,9 +4,9 @@ import (
"reflect"
errorsmod "cosmossdk.io/errors"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
diff --git a/modules/light-clients/06-solomachine/solomachine_test.go b/modules/light-clients/06-solomachine/solomachine_test.go
index 72fbd98f0d9..fe974f8f585 100644
--- a/modules/light-clients/06-solomachine/solomachine_test.go
+++ b/modules/light-clients/06-solomachine/solomachine_test.go
@@ -7,10 +7,11 @@ import (
"github.com/stretchr/testify/require"
testifysuite "github.com/stretchr/testify/suite"
+ storetypes "cosmossdk.io/store/types"
+
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec"
"github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
"github.com/cosmos/cosmos-sdk/testutil/testdata"
transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
diff --git a/modules/light-clients/06-solomachine/update.go b/modules/light-clients/06-solomachine/update.go
index 6fd76f292a3..366856e852b 100644
--- a/modules/light-clients/06-solomachine/update.go
+++ b/modules/light-clients/06-solomachine/update.go
@@ -4,9 +4,9 @@ import (
"fmt"
errorsmod "cosmossdk.io/errors"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
diff --git a/modules/light-clients/07-tendermint/client_state.go b/modules/light-clients/07-tendermint/client_state.go
index c41e8c3d40e..93c009b975f 100644
--- a/modules/light-clients/07-tendermint/client_state.go
+++ b/modules/light-clients/07-tendermint/client_state.go
@@ -7,9 +7,9 @@ import (
ics23 "github.com/cosmos/ics23/go"
errorsmod "cosmossdk.io/errors"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cometbft/cometbft/light"
diff --git a/modules/light-clients/07-tendermint/genesis.go b/modules/light-clients/07-tendermint/genesis.go
index 00ae2ef25ed..45ddea672bd 100644
--- a/modules/light-clients/07-tendermint/genesis.go
+++ b/modules/light-clients/07-tendermint/genesis.go
@@ -1,7 +1,7 @@
package tendermint
import (
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
+ storetypes "cosmossdk.io/store/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
"github.com/cosmos/ibc-go/v7/modules/core/exported"
diff --git a/modules/light-clients/07-tendermint/migrations/expected_keepers.go b/modules/light-clients/07-tendermint/migrations/expected_keepers.go
index acada379b96..a90b381b76b 100644
--- a/modules/light-clients/07-tendermint/migrations/expected_keepers.go
+++ b/modules/light-clients/07-tendermint/migrations/expected_keepers.go
@@ -1,10 +1,10 @@
package migrations
import (
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
- sdk "github.com/cosmos/cosmos-sdk/types"
+ "cosmossdk.io/log"
+ storetypes "cosmossdk.io/store/types"
- "github.com/cometbft/cometbft/libs/log"
+ sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/ibc-go/v7/modules/core/exported"
)
diff --git a/modules/light-clients/07-tendermint/misbehaviour_handle.go b/modules/light-clients/07-tendermint/misbehaviour_handle.go
index 1431d86cc07..542afc0ee82 100644
--- a/modules/light-clients/07-tendermint/misbehaviour_handle.go
+++ b/modules/light-clients/07-tendermint/misbehaviour_handle.go
@@ -6,9 +6,9 @@ import (
"time"
errorsmod "cosmossdk.io/errors"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
tmtypes "github.com/cometbft/cometbft/types"
diff --git a/modules/light-clients/07-tendermint/misbehaviour_handle_test.go b/modules/light-clients/07-tendermint/misbehaviour_handle_test.go
index 232fb38fe75..0f77f6c3cbf 100644
--- a/modules/light-clients/07-tendermint/misbehaviour_handle_test.go
+++ b/modules/light-clients/07-tendermint/misbehaviour_handle_test.go
@@ -42,7 +42,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"valid fork misbehaviour", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -61,7 +61,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"valid time misbehaviour", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
misbehaviour = &ibctm.Misbehaviour{
@@ -75,7 +75,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"valid time misbehaviour, header 1 time stricly less than header 2 time", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
misbehaviour = &ibctm.Misbehaviour{
@@ -89,7 +89,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"valid misbehavior at height greater than last consensusState", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
misbehaviour = &ibctm.Misbehaviour{
@@ -102,7 +102,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"valid misbehaviour with different trusted heights", func() {
trustedHeight1 := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals1, found := suite.chainB.GetValsAtHeight(int64(trustedHeight1.RevisionHeight) + 1)
+ trustedVals1, found := suite.chainB.GetValsAtHeight(int64(trustedHeight1.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -110,7 +110,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
trustedHeight2 := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals2, found := suite.chainB.GetValsAtHeight(int64(trustedHeight2.RevisionHeight) + 1)
+ trustedVals2, found := suite.chainB.GetValsAtHeight(int64(trustedHeight2.RevisionHeight))
suite.Require().True(found)
misbehaviour = &ibctm.Misbehaviour{
@@ -124,7 +124,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"valid misbehaviour at a previous revision", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -147,7 +147,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"valid misbehaviour at a future revision", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
height := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
@@ -165,7 +165,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"valid misbehaviour with trusted heights at a previous revision", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
// increment revision of chainID
@@ -185,7 +185,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"consensus state's valset hash different from misbehaviour should still pass", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -208,7 +208,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"invalid misbehaviour: misbehaviour from different chain", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -241,7 +241,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"trusted consensus state does not exist", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
misbehaviour = &ibctm.Misbehaviour{
@@ -259,7 +259,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"trusting period expired", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -279,7 +279,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"header 1 valset has too much change", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -297,7 +297,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"header 2 valset has too much change", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -315,7 +315,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviour() {
"both header 1 and header 2 valsets have too much change", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -390,7 +390,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
"valid fork misbehaviour", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -409,7 +409,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
"valid time misbehaviour", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
misbehaviour = &ibctm.Misbehaviour{
@@ -423,7 +423,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
"valid time misbehaviour, header 1 time stricly less than header 2 time", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
misbehaviour = &ibctm.Misbehaviour{
@@ -437,7 +437,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
"valid misbehavior at height greater than last consensusState", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
misbehaviour = &ibctm.Misbehaviour{
@@ -450,7 +450,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
"valid misbehaviour with different trusted heights", func() {
trustedHeight1 := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals1, found := suite.chainB.GetValsAtHeight(int64(trustedHeight1.RevisionHeight) + 1)
+ trustedVals1, found := suite.chainB.GetValsAtHeight(int64(trustedHeight1.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -458,7 +458,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
trustedHeight2 := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals2, found := suite.chainB.GetValsAtHeight(int64(trustedHeight2.RevisionHeight) + 1)
+ trustedVals2, found := suite.chainB.GetValsAtHeight(int64(trustedHeight2.RevisionHeight))
suite.Require().True(found)
misbehaviour = &ibctm.Misbehaviour{
@@ -472,7 +472,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
"consensus state's valset hash different from misbehaviour should still pass", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -495,7 +495,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
"invalid misbehaviour: misbehaviour from different chain", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -528,7 +528,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
"trusted consensus state does not exist", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
misbehaviour = &ibctm.Misbehaviour{
@@ -546,7 +546,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
"trusting period expired", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -566,7 +566,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
"header 1 valset has too much change", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -584,7 +584,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
"header 2 valset has too much change", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
@@ -602,7 +602,7 @@ func (suite *TendermintTestSuite) TestVerifyMisbehaviourNonRevisionChainID() {
"both header 1 and header 2 valsets have too much change", func() {
trustedHeight := path.EndpointA.GetClientState().GetLatestHeight().(clienttypes.Height)
- trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight) + 1)
+ trustedVals, found := suite.chainB.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
suite.Require().True(found)
err := path.EndpointA.UpdateClient()
diff --git a/modules/light-clients/07-tendermint/misbehaviour_test.go b/modules/light-clients/07-tendermint/misbehaviour_test.go
index 61a5458906b..1cbde65f390 100644
--- a/modules/light-clients/07-tendermint/misbehaviour_test.go
+++ b/modules/light-clients/07-tendermint/misbehaviour_test.go
@@ -178,8 +178,8 @@ func (suite *TendermintTestSuite) TestMisbehaviourValidateBasic() {
return err
}
- tmCommit, err := tmtypes.MakeCommit(*blockID, int64(misbehaviour.Header2.GetHeight().GetRevisionHeight()), misbehaviour.Header1.Commit.Round, wrongVoteSet, altSignerArr, suite.now)
- misbehaviour.Header1.Commit = tmCommit.ToProto()
+ extCommit, err := tmtypes.MakeExtCommit(*blockID, int64(misbehaviour.Header2.GetHeight().GetRevisionHeight()), misbehaviour.Header1.Commit.Round, wrongVoteSet, altSignerArr, suite.now, false)
+ misbehaviour.Header1.Commit = extCommit.ToCommit().ToProto()
return err
},
false,
@@ -199,8 +199,8 @@ func (suite *TendermintTestSuite) TestMisbehaviourValidateBasic() {
return err
}
- tmCommit, err := tmtypes.MakeCommit(*blockID, int64(misbehaviour.Header2.GetHeight().GetRevisionHeight()), misbehaviour.Header2.Commit.Round, wrongVoteSet, altSignerArr, suite.now)
- misbehaviour.Header2.Commit = tmCommit.ToProto()
+ extCommit, err := tmtypes.MakeExtCommit(*blockID, int64(misbehaviour.Header2.GetHeight().GetRevisionHeight()), misbehaviour.Header2.Commit.Round, wrongVoteSet, altSignerArr, suite.now, false)
+ misbehaviour.Header2.Commit = extCommit.ToCommit().ToProto()
return err
},
false,
diff --git a/modules/light-clients/07-tendermint/proposal_handle.go b/modules/light-clients/07-tendermint/proposal_handle.go
index b96a925adf7..bb0117d97e6 100644
--- a/modules/light-clients/07-tendermint/proposal_handle.go
+++ b/modules/light-clients/07-tendermint/proposal_handle.go
@@ -5,9 +5,9 @@ import (
"time"
errorsmod "cosmossdk.io/errors"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
diff --git a/modules/light-clients/07-tendermint/store.go b/modules/light-clients/07-tendermint/store.go
index d3cf600c651..8117890965e 100644
--- a/modules/light-clients/07-tendermint/store.go
+++ b/modules/light-clients/07-tendermint/store.go
@@ -5,9 +5,10 @@ import (
"encoding/binary"
"strings"
+ "cosmossdk.io/store/prefix"
+ storetypes "cosmossdk.io/store/types"
+
"github.com/cosmos/cosmos-sdk/codec"
- "github.com/cosmos/cosmos-sdk/store/prefix"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
diff --git a/modules/light-clients/07-tendermint/store_test.go b/modules/light-clients/07-tendermint/store_test.go
index 9aa24613431..b970a6469ae 100644
--- a/modules/light-clients/07-tendermint/store_test.go
+++ b/modules/light-clients/07-tendermint/store_test.go
@@ -92,12 +92,10 @@ func (suite *TendermintTestSuite) TestGetConsensusState() {
}
func (suite *TendermintTestSuite) TestGetProcessedTime() {
- // setup
path := ibctesting.NewPath(suite.chainA, suite.chainB)
-
suite.coordinator.UpdateTime()
- // coordinator increments time before creating client
- expectedTime := suite.chainA.CurrentHeader.Time.Add(ibctesting.TimeIncrement)
+
+ expectedTime := suite.chainA.CurrentHeader.Time
// Verify ProcessedTime on CreateClient
err := path.EndpointA.CreateClient()
diff --git a/modules/light-clients/07-tendermint/tendermint_test.go b/modules/light-clients/07-tendermint/tendermint_test.go
index 48887f8ab72..6f424b3398a 100644
--- a/modules/light-clients/07-tendermint/tendermint_test.go
+++ b/modules/light-clients/07-tendermint/tendermint_test.go
@@ -10,7 +10,6 @@ import (
sdk "github.com/cosmos/cosmos-sdk/types"
tmbytes "github.com/cometbft/cometbft/libs/bytes"
- tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
tmtypes "github.com/cometbft/cometbft/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
@@ -92,7 +91,7 @@ func (suite *TendermintTestSuite) SetupTest() {
suite.valSet = tmtypes.NewValidatorSet([]*tmtypes.Validator{val})
suite.valsHash = suite.valSet.Hash()
suite.header = suite.chainA.CreateTMClientHeader(chainID, int64(height.RevisionHeight), heightMinus1, suite.now, suite.valSet, suite.valSet, suite.valSet, suite.signers)
- suite.ctx = app.BaseApp.NewContext(checkTx, tmproto.Header{Height: 1, Time: suite.now})
+ suite.ctx = app.BaseApp.NewContext(checkTx)
}
func getAltSigners(altVal *tmtypes.Validator, altPrivVal tmtypes.PrivValidator) map[string]tmtypes.PrivValidator {
diff --git a/modules/light-clients/07-tendermint/update.go b/modules/light-clients/07-tendermint/update.go
index c2df71ab39d..55cc8a31b38 100644
--- a/modules/light-clients/07-tendermint/update.go
+++ b/modules/light-clients/07-tendermint/update.go
@@ -5,9 +5,9 @@ import (
"fmt"
errorsmod "cosmossdk.io/errors"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cometbft/cometbft/light"
diff --git a/modules/light-clients/07-tendermint/update_test.go b/modules/light-clients/07-tendermint/update_test.go
index 96b2e75dc61..63c2982519f 100644
--- a/modules/light-clients/07-tendermint/update_test.go
+++ b/modules/light-clients/07-tendermint/update_test.go
@@ -3,7 +3,7 @@ package tendermint_test
import (
"time"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
+ storetypes "cosmossdk.io/store/types"
tmtypes "github.com/cometbft/cometbft/types"
diff --git a/modules/light-clients/07-tendermint/upgrade.go b/modules/light-clients/07-tendermint/upgrade.go
index bd91ac438d8..a70af47867b 100644
--- a/modules/light-clients/07-tendermint/upgrade.go
+++ b/modules/light-clients/07-tendermint/upgrade.go
@@ -4,11 +4,11 @@ import (
"fmt"
errorsmod "cosmossdk.io/errors"
+ storetypes "cosmossdk.io/store/types"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
commitmenttypes "github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types"
@@ -83,7 +83,7 @@ func (cs ClientState) VerifyUpgradeAndUpdateState(
// construct clientState Merkle path
upgradeClientPath := constructUpgradeClientMerklePath(cs.UpgradePath, lastHeight)
if err := merkleProofClient.VerifyMembership(cs.ProofSpecs, consState.GetRoot(), upgradeClientPath, bz); err != nil {
- return errorsmod.Wrapf(err, "client state proof failed. Path: %s", upgradeClientPath.Pretty())
+ return errorsmod.Wrapf(err, "client state proof failed. Path: %s", upgradeClientPath.GetKeyPath())
}
// Verify consensus state proof
@@ -94,7 +94,7 @@ func (cs ClientState) VerifyUpgradeAndUpdateState(
// construct consensus state Merkle path
upgradeConsStatePath := constructUpgradeConsStateMerklePath(cs.UpgradePath, lastHeight)
if err := merkleProofConsState.VerifyMembership(cs.ProofSpecs, consState.GetRoot(), upgradeConsStatePath, bz); err != nil {
- return errorsmod.Wrapf(err, "consensus state proof failed. Path: %s", upgradeConsStatePath.Pretty())
+ return errorsmod.Wrapf(err, "consensus state proof failed. Path: %s", upgradeConsStatePath.GetKeyPath())
}
// Construct new client state and consensus state
diff --git a/modules/light-clients/07-tendermint/upgrade_test.go b/modules/light-clients/07-tendermint/upgrade_test.go
index 52c2b7841b8..189ee62b9bd 100644
--- a/modules/light-clients/07-tendermint/upgrade_test.go
+++ b/modules/light-clients/07-tendermint/upgrade_test.go
@@ -1,7 +1,7 @@
package tendermint_test
import (
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
commitmenttypes "github.com/cosmos/ibc-go/v7/modules/core/23-commitment/types"
diff --git a/modules/light-clients/09-localhost/client_state.go b/modules/light-clients/09-localhost/client_state.go
index 0815126ba45..5b7274aed13 100644
--- a/modules/light-clients/09-localhost/client_state.go
+++ b/modules/light-clients/09-localhost/client_state.go
@@ -4,9 +4,9 @@ import (
"bytes"
errorsmod "cosmossdk.io/errors"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
diff --git a/proto/buf.lock b/proto/buf.lock
index 7906031c41a..d8577cc0b96 100644
--- a/proto/buf.lock
+++ b/proto/buf.lock
@@ -9,8 +9,8 @@ deps:
- remote: buf.build
owner: cosmos
repository: cosmos-sdk
- commit: 954f7b05f38440fc8250134b15adec47
- digest: shake256:2ab4404fd04a7d1d52df0e2d0f2d477a3d83ffd88d876957bf3fedfd702c8e52833d65b3ce1d89a3c5adf2aab512616b0e4f51d8463f07eda9a8a3317ee3ac54
+ commit: aa25660f4ff746388669ce36b3778442
+ digest: shake256:a20eb29eb7284d9d0b76e94324a6e24e3665d13682bed0d5beac647d7109b7b2f22080301276779a91f394c97dab334da36dfc01d4252d9f869b090bfc8248aa
- remote: buf.build
owner: cosmos
repository: gogo-proto
diff --git a/proto/buf.yaml b/proto/buf.yaml
index 606565c074a..68d17ed2f07 100644
--- a/proto/buf.yaml
+++ b/proto/buf.yaml
@@ -1,7 +1,7 @@
version: v1
name: buf.build/cosmos/ibc
deps:
- - buf.build/cosmos/cosmos-sdk:v0.47.0
+ - buf.build/cosmos/cosmos-sdk:aa25660f4ff746388669ce36b3778442
- buf.build/cosmos/cosmos-proto:1935555c206d4afb9e94615dfd0fad31
- buf.build/cosmos/gogo-proto:a14993478f40695898ed8a86931094b6656e8a5d
- buf.build/googleapis/googleapis:8d7204855ec14631a499bd7393ce1970
diff --git a/proto/ibc/applications/interchain_accounts/controller/v1/tx.proto b/proto/ibc/applications/interchain_accounts/controller/v1/tx.proto
index ed47b6e385d..626a6631474 100644
--- a/proto/ibc/applications/interchain_accounts/controller/v1/tx.proto
+++ b/proto/ibc/applications/interchain_accounts/controller/v1/tx.proto
@@ -63,12 +63,12 @@ message MsgSendTxResponse {
// MsgUpdateParams defines the payload for Msg/UpdateParams
message MsgUpdateParams {
- option (cosmos.msg.v1.signer) = "authority";
+ option (cosmos.msg.v1.signer) = "signer";
option (gogoproto.goproto_getters) = false;
- // authority is the address that controls the module (defaults to x/gov unless overwritten).
- string authority = 1;
+ // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten).
+ string signer = 1;
// params defines the 27-interchain-accounts/controller parameters to update.
//
diff --git a/proto/ibc/applications/interchain_accounts/host/v1/tx.proto b/proto/ibc/applications/interchain_accounts/host/v1/tx.proto
index 727c50149d5..af5d0b33ad3 100644
--- a/proto/ibc/applications/interchain_accounts/host/v1/tx.proto
+++ b/proto/ibc/applications/interchain_accounts/host/v1/tx.proto
@@ -18,12 +18,12 @@ service Msg {
// MsgUpdateParams defines the payload for Msg/UpdateParams
message MsgUpdateParams {
- option (cosmos.msg.v1.signer) = "authority";
+ option (cosmos.msg.v1.signer) = "signer";
option (gogoproto.goproto_getters) = false;
- // authority is the address that controls the module (defaults to x/gov unless overwritten).
- string authority = 1;
+ // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten).
+ string signer = 1;
// params defines the 27-interchain-accounts/host parameters to update.
//
diff --git a/proto/ibc/applications/transfer/v1/tx.proto b/proto/ibc/applications/transfer/v1/tx.proto
index 61bbaa79e5d..1f021aa73e5 100644
--- a/proto/ibc/applications/transfer/v1/tx.proto
+++ b/proto/ibc/applications/transfer/v1/tx.proto
@@ -59,12 +59,12 @@ message MsgTransferResponse {
// MsgUpdateParams is the Msg/UpdateParams request type.
message MsgUpdateParams {
- option (cosmos.msg.v1.signer) = "authority";
+ option (cosmos.msg.v1.signer) = "signer";
option (gogoproto.goproto_getters) = false;
- // authority is the address that controls the module (defaults to x/gov unless overwritten).
- string authority = 1;
+ // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten).
+ string signer = 1;
// params defines the transfer parameters to update.
//
diff --git a/proto/ibc/core/client/v1/tx.proto b/proto/ibc/core/client/v1/tx.proto
index 1ea017c1b6a..71fc19411b6 100644
--- a/proto/ibc/core/client/v1/tx.proto
+++ b/proto/ibc/core/client/v1/tx.proto
@@ -140,12 +140,12 @@ message MsgSubmitMisbehaviourResponse {}
// MsgUpdateParams defines the sdk.Msg type to update the client parameters.
message MsgUpdateParams {
- option (cosmos.msg.v1.signer) = "authority";
+ option (cosmos.msg.v1.signer) = "signer";
option (gogoproto.goproto_getters) = false;
- // authority is the address of the governance account.
- string authority = 1;
+ // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten).
+ string signer = 1;
// params defines the client parameters to update.
//
diff --git a/proto/ibc/core/connection/v1/tx.proto b/proto/ibc/core/connection/v1/tx.proto
index 5bba1821980..c31e73d1366 100644
--- a/proto/ibc/core/connection/v1/tx.proto
+++ b/proto/ibc/core/connection/v1/tx.proto
@@ -129,12 +129,12 @@ message MsgConnectionOpenConfirmResponse {}
// MsgUpdateParams defines the sdk.Msg type to update the connection parameters.
message MsgUpdateParams {
- option (cosmos.msg.v1.signer) = "authority";
+ option (cosmos.msg.v1.signer) = "signer";
option (gogoproto.goproto_getters) = false;
- // authority is the address that controls the module (defaults to x/gov unless overwritten).
- string authority = 1;
+ // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten).
+ string signer = 1;
// params defines the connection parameters to update.
//
diff --git a/testing/app.go b/testing/app.go
index a67f46e2870..e3d37961a9f 100644
--- a/testing/app.go
+++ b/testing/app.go
@@ -5,26 +5,26 @@ import (
"testing"
"time"
+ dbm "github.com/cosmos/cosmos-db"
"github.com/stretchr/testify/require"
+ "cosmossdk.io/log"
sdkmath "cosmossdk.io/math"
+ storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/baseapp"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/codec"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
+ servertypes "github.com/cosmos/cosmos-sdk/server/types"
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
- dbm "github.com/cometbft/cometbft-db"
abci "github.com/cometbft/cometbft/abci/types"
- "github.com/cometbft/cometbft/libs/log"
- tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
tmtypes "github.com/cometbft/cometbft/types"
capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper"
@@ -36,7 +36,7 @@ import (
var DefaultTestingAppInit = SetupTestingApp
type TestingApp interface {
- abci.Application
+ servertypes.ABCI
// ibc-go additions
GetBaseApp() *baseapp.BaseApp
@@ -55,9 +55,8 @@ type TestingApp interface {
func SetupTestingApp() (TestingApp, map[string]json.RawMessage) {
db := dbm.NewMemDB()
- encCdc := simapp.MakeTestEncodingConfig()
app := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, simtestutil.EmptyAppOptions{})
- return app, simapp.NewDefaultGenesisState(encCdc.Codec)
+ return app, app.DefaultGenesis()
}
// SetupWithGenesisValSet initializes a new SimApp with a validator set and genesis accounts
@@ -81,7 +80,7 @@ func SetupWithGenesisValSet(tb testing.TB, valSet *tmtypes.ValidatorSet, genAccs
bondAmt := sdk.TokensFromConsensusPower(1, powerReduction)
for _, val := range valSet.Validators {
- pk, err := cryptocodec.FromTmPubKeyInterface(val.PubKey)
+ pk, err := cryptocodec.FromCmtPubKeyInterface(val.PubKey)
require.NoError(tb, err)
pkAny, err := codectypes.NewAnyWithValue(pk)
require.NoError(tb, err)
@@ -100,7 +99,7 @@ func SetupWithGenesisValSet(tb testing.TB, valSet *tmtypes.ValidatorSet, genAccs
}
validators = append(validators, validator)
- delegations = append(delegations, stakingtypes.NewDelegation(genAccs[0].GetAddress(), val.Address.Bytes(), sdkmath.LegacyOneDec()))
+ delegations = append(delegations, stakingtypes.NewDelegation(genAccs[0].GetAddress().String(), sdk.ValAddress(val.Address).String(), sdkmath.LegacyOneDec()))
}
// set validators and delegations
@@ -127,27 +126,15 @@ func SetupWithGenesisValSet(tb testing.TB, valSet *tmtypes.ValidatorSet, genAccs
require.NoError(tb, err)
// init chain will set the validator set and initialize the genesis accounts
- app.InitChain(
- abci.RequestInitChain{
- ChainId: chainID,
- Validators: []abci.ValidatorUpdate{},
- AppStateBytes: stateBytes,
- },
- )
-
- // commit genesis changes
- app.Commit()
- app.BeginBlock(
- abci.RequestBeginBlock{
- Header: tmproto.Header{
- ChainID: chainID,
- Height: app.LastBlockHeight() + 1,
- AppHash: app.LastCommitID().Hash,
- ValidatorsHash: valSet.Hash(),
- NextValidatorsHash: valSet.Hash(),
- },
+ _, err = app.InitChain(
+ &abci.RequestInitChain{
+ ChainId: chainID,
+ Validators: []abci.ValidatorUpdate{},
+ AppStateBytes: stateBytes,
+ ConsensusParams: simtestutil.DefaultConsensusParams,
},
)
+ require.NoError(tb, err)
return app
}
diff --git a/testing/chain.go b/testing/chain.go
index bf83817a53b..825e5c37b52 100644
--- a/testing/chain.go
+++ b/testing/chain.go
@@ -35,7 +35,6 @@ import (
"github.com/cosmos/ibc-go/v7/modules/core/exported"
"github.com/cosmos/ibc-go/v7/modules/core/types"
ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint"
- "github.com/cosmos/ibc-go/v7/testing/mock"
"github.com/cosmos/ibc-go/v7/testing/simapp"
)
@@ -43,7 +42,7 @@ var MaxAccounts = 10
type SenderAccount struct {
SenderPrivKey cryptotypes.PrivKey
- SenderAccount authtypes.AccountI
+ SenderAccount sdk.AccountI
}
// TestChain is a testing struct that wraps a simapp with the last TM Header, the current ABCI
@@ -61,7 +60,7 @@ type TestChain struct {
CurrentHeader cmtproto.Header // header for current block height
QueryServer types.QueryServer
TxConfig client.TxConfig
- Codec codec.BinaryCodec
+ Codec codec.Codec
Vals *cmttypes.ValidatorSet
NextVals *cmttypes.ValidatorSet
@@ -75,13 +74,13 @@ type TestChain struct {
// autogenerated sender private key
SenderPrivKey cryptotypes.PrivKey
- SenderAccount authtypes.AccountI
+ SenderAccount sdk.AccountI
SenderAccounts []SenderAccount
// Short-term solution to override the logic of the standard SendMsgs function.
// See issue https://github.com/cosmos/ibc-go/issues/3123 for more information.
- SendMsgsOverride func(msgs ...sdk.Msg) (*sdk.Result, error)
+ SendMsgsOverride func(msgs ...sdk.Msg) (*abci.ExecTxResult, error)
}
// NewTestChainWithValSet initializes a new TestChain instance with the given validator set
@@ -158,7 +157,8 @@ func NewTestChainWithValSet(tb testing.TB, coord *Coordinator, chainID string, v
SenderAccounts: senderAccs,
}
- coord.CommitBlock(chain)
+ // commit genesis block
+ chain.NextBlock()
return chain
}
@@ -175,7 +175,7 @@ func NewTestChain(t *testing.T, coord *Coordinator, chainID string) *TestChain {
)
for i := 0; i < validatorsPerChain; i++ {
- privVal := mock.NewPV()
+ _, privVal := cmttypes.RandValidator(false, 100)
pubKey, err := privVal.GetPubKey()
require.NoError(t, err)
validators = append(validators, cmttypes.NewValidator(pubKey, 1))
@@ -192,7 +192,7 @@ func NewTestChain(t *testing.T, coord *Coordinator, chainID string) *TestChain {
// GetContext returns the current context for the application.
func (chain *TestChain) GetContext() sdk.Context {
- return chain.App.GetBaseApp().NewContext(false, chain.CurrentHeader)
+ return chain.App.GetBaseApp().NewUncachedContext(false, chain.CurrentHeader)
}
// GetSimApp returns the SimApp to allow usage ofnon-interface fields.
@@ -221,12 +221,15 @@ func (chain *TestChain) QueryProofAtHeight(key []byte, height int64) ([]byte, cl
// QueryProofForStore performs an abci query with the given key and returns the proto encoded merkle proof
// for the query and the height at which the proof will succeed on a tendermint verifier.
func (chain *TestChain) QueryProofForStore(storeKey string, key []byte, height int64) ([]byte, clienttypes.Height) {
- res := chain.App.Query(abci.RequestQuery{
- Path: fmt.Sprintf("store/%s/key", storeKey),
- Height: height - 1,
- Data: key,
- Prove: true,
- })
+ res, err := chain.App.Query(
+ chain.GetContext().Context(),
+ &abci.RequestQuery{
+ Path: fmt.Sprintf("store/%s/key", storeKey),
+ Height: height - 1,
+ Data: key,
+ Prove: true,
+ })
+ require.NoError(chain.TB, err)
merkleProof, err := commitmenttypes.ConvertProofs(res.ProofOps)
require.NoError(chain.TB, err)
@@ -245,12 +248,15 @@ func (chain *TestChain) QueryProofForStore(storeKey string, key []byte, height i
// QueryUpgradeProof performs an abci query with the given key and returns the proto encoded merkle proof
// for the query and the height at which the proof will succeed on a tendermint verifier.
func (chain *TestChain) QueryUpgradeProof(key []byte, height uint64) ([]byte, clienttypes.Height) {
- res := chain.App.Query(abci.RequestQuery{
- Path: "store/upgrade/key",
- Height: int64(height - 1),
- Data: key,
- Prove: true,
- })
+ res, err := chain.App.Query(
+ chain.GetContext().Context(),
+ &abci.RequestQuery{
+ Path: "store/upgrade/key",
+ Height: int64(height - 1),
+ Data: key,
+ Prove: true,
+ })
+ require.NoError(chain.TB, err)
merkleProof, err := commitmenttypes.ConvertProofs(res.ProofOps)
require.NoError(chain.TB, err)
@@ -280,14 +286,23 @@ func (chain *TestChain) QueryConsensusStateProof(clientID string) ([]byte, clien
// NextBlock sets the last header to the current header and increments the current header to be
// at the next block height. It does not update the time as that is handled by the Coordinator.
-// It will call Endblock and Commit and apply the validator set changes to the next validators
+// It will call FinalizeBlock and Commit and apply the validator set changes to the next validators
// of the next block being created. This follows the Tendermint protocol of applying valset changes
// returned on block `n` to the validators of block `n+2`.
// It calls BeginBlock with the new block created before returning.
func (chain *TestChain) NextBlock() {
- res := chain.App.EndBlock(abci.RequestEndBlock{Height: chain.CurrentHeader.Height})
+ res, err := chain.App.FinalizeBlock(&abci.RequestFinalizeBlock{
+ Height: chain.CurrentHeader.Height,
+ Time: chain.CurrentHeader.GetTime(),
+ NextValidatorsHash: chain.NextVals.Hash(),
+ })
+ require.NoError(chain.TB, err)
+ chain.commitBlock(res)
+}
- chain.App.Commit()
+func (chain *TestChain) commitBlock(res *abci.ResponseFinalizeBlock) {
+ _, err := chain.App.Commit()
+ require.NoError(chain.TB, err)
// set the last header to the current header
// use nil trusted fields
@@ -296,7 +311,7 @@ func (chain *TestChain) NextBlock() {
// val set changes returned from previous block get applied to the next validators
// of this block. See tendermint spec for details.
chain.Vals = chain.NextVals
- chain.NextVals = ApplyValSetChanges(chain.TB, chain.Vals, res.ValidatorUpdates)
+ chain.NextVals = ApplyValSetChanges(chain, chain.Vals, res.ValidatorUpdates)
// increment the current header
chain.CurrentHeader = cmtproto.Header{
@@ -310,8 +325,6 @@ func (chain *TestChain) NextBlock() {
NextValidatorsHash: chain.NextVals.Hash(),
ProposerAddress: chain.CurrentHeader.ProposerAddress,
}
-
- chain.App.BeginBlock(abci.RequestBeginBlock{Header: chain.CurrentHeader})
}
// sendMsgs delivers a transaction through the application without returning the result.
@@ -323,7 +336,7 @@ func (chain *TestChain) sendMsgs(msgs ...sdk.Msg) error {
// SendMsgs delivers a transaction through the application. It updates the senders sequence
// number and updates the TestChain's headers. It returns the result and error if one
// occurred.
-func (chain *TestChain) SendMsgs(msgs ...sdk.Msg) (*sdk.Result, error) {
+func (chain *TestChain) SendMsgs(msgs ...sdk.Msg) (*abci.ExecTxResult, error) {
if chain.SendMsgsOverride != nil {
return chain.SendMsgsOverride(msgs...)
}
@@ -331,21 +344,31 @@ func (chain *TestChain) SendMsgs(msgs ...sdk.Msg) (*sdk.Result, error) {
// ensure the chain has the latest time
chain.Coordinator.UpdateTimeForChain(chain)
- _, r, err := simapp.SignAndDeliver(
+ resp, err := simapp.SignAndDeliver(
+ chain.TB,
chain.TxConfig,
chain.App.GetBaseApp(),
msgs,
chain.ChainID,
[]uint64{chain.SenderAccount.GetAccountNumber()},
[]uint64{chain.SenderAccount.GetSequence()},
+ true,
+ chain.CurrentHeader.GetTime(),
+ chain.NextVals.Hash(),
chain.SenderPrivKey,
)
if err != nil {
return nil, err
}
- // NextBlock calls app.Commit()
- chain.NextBlock()
+ chain.commitBlock(resp)
+
+ require.Len(chain.TB, resp.TxResults, 1)
+ txResult := resp.TxResults[0]
+
+ if txResult.Code != 0 {
+ return txResult, fmt.Errorf("%s/%d: %q", txResult.Codespace, txResult.Code, txResult.Log)
+ }
// increment sequence for successful transaction execution
err = chain.SenderAccount.SetSequence(chain.SenderAccount.GetSequence() + 1)
@@ -355,7 +378,7 @@ func (chain *TestChain) SendMsgs(msgs ...sdk.Msg) (*sdk.Result, error) {
chain.Coordinator.IncrementTime()
- return r, nil
+ return txResult, nil
}
// GetClientState retrieves the client state for the provided clientID. The client is
@@ -373,24 +396,33 @@ func (chain *TestChain) GetConsensusState(clientID string, height exported.Heigh
return chain.App.GetIBCKeeper().ClientKeeper.GetClientConsensusState(chain.GetContext(), clientID, height)
}
-// GetValsAtHeight will return the validator set of the chain at a given height. It will return
+// GetValsAtHeight will return the trusted validator set of the chain for the given trusted height. It will return
// a success boolean depending on if the validator set exists or not at that height.
-func (chain *TestChain) GetValsAtHeight(height int64) (*cmttypes.ValidatorSet, bool) {
- // if the current uncommitted header equals the requested height, then we can return
- // the current validator set as this validator set will be stored in the historical info
- // when the block height is executed
- if height == chain.CurrentHeader.Height {
- return chain.Vals, true
- }
-
- histInfo, ok := chain.App.GetStakingKeeper().GetHistoricalInfo(chain.GetContext(), height)
- if !ok {
+func (chain *TestChain) GetValsAtHeight(trustedHeight int64) (*cmttypes.ValidatorSet, bool) {
+ // historical information does not store the validator set which committed the header at
+ // height h. During BeginBlock, it stores the last updated validator set. This is equivalent to
+ // the next validator set at height h. This is because cometbft processes the validator set
+ // as follows:
+ //
+ // valSetChanges := endBlock()
+ // chain.Vals = chain.NextVals
+ // chain.NextVals = applyValSetChanges(chain.NextVals, valSetChanges)
+ //
+ // At height h, the validators in the historical information are the:
+ // validators used to sign height h + 1 (next validator set)
+ //
+ // Since we want to return the trusted validator set, which is the next validator set
+ // for height h, we can simply query using the trusted height.
+ histInfo, err := chain.App.GetStakingKeeper().GetHistoricalInfo(chain.GetContext(), trustedHeight)
+ if err != nil {
return nil, false
}
- valSet := stakingtypes.Validators(histInfo.Valset)
+ valSet := stakingtypes.Validators{
+ Validators: histInfo.Valset,
+ }
- tmValidators, err := testutil.ToTmValidators(valSet, sdk.DefaultPowerReduction)
+ tmValidators, err := testutil.ToCmtValidators(valSet, sdk.DefaultPowerReduction)
if err != nil {
panic(err)
}
@@ -430,13 +462,11 @@ func (chain *TestChain) ConstructUpdateTMClientHeaderWithTrustedHeight(counterpa
ok bool
)
- // NOTE: We need to get validators from counterparty at height: trustedHeight+1
- // since the last trusted validators for a header at height h
- // is the NextValidators at h+1 committed to in header h via the NextValidatorsHash field
- tmTrustedVals, ok = counterparty.GetValsAtHeight(int64(trustedHeight.RevisionHeight + 1))
+ tmTrustedVals, ok = counterparty.GetValsAtHeight(int64(trustedHeight.RevisionHeight))
if !ok {
return nil, errorsmod.Wrapf(ibctm.ErrInvalidHeaderHeight, "could not retrieve trusted validators at trustedHeight: %d", trustedHeight)
}
+
// inject trusted fields into last header
// for now assume revision number is 0
header.TrustedHeight = trustedHeight
@@ -459,17 +489,26 @@ func (chain *TestChain) ExpireClient(amount time.Duration) {
// CurrentTMClientHeader creates a TM header using the current header parameters
// on the chain. The trusted fields in the header are set to nil.
func (chain *TestChain) CurrentTMClientHeader() *ibctm.Header {
- return chain.CreateTMClientHeader(chain.ChainID, chain.CurrentHeader.Height, clienttypes.Height{}, chain.CurrentHeader.Time, chain.Vals, chain.NextVals, nil, chain.Signers)
+ return chain.CreateTMClientHeader(
+ chain.ChainID,
+ chain.CurrentHeader.Height,
+ clienttypes.Height{},
+ chain.CurrentHeader.Time,
+ chain.Vals,
+ chain.NextVals,
+ nil,
+ chain.Signers,
+ )
}
// CreateTMClientHeader creates a TM header to update the TM client. Args are passed in to allow
// caller flexibility to use params that differ from the chain.
-func (chain *TestChain) CreateTMClientHeader(chainID string, blockHeight int64, trustedHeight clienttypes.Height, timestamp time.Time, tmValSet, nextVals, tmTrustedVals *cmttypes.ValidatorSet, signers map[string]cmttypes.PrivValidator) *ibctm.Header {
+func (chain *TestChain) CreateTMClientHeader(chainID string, blockHeight int64, trustedHeight clienttypes.Height, timestamp time.Time, cmtValSet, nextVals, tmTrustedVals *cmttypes.ValidatorSet, signers map[string]cmttypes.PrivValidator) *ibctm.Header {
var (
valSet *cmtproto.ValidatorSet
trustedVals *cmtproto.ValidatorSet
)
- require.NotNil(chain.TB, tmValSet)
+ require.NotNil(chain.TB, cmtValSet)
tmHeader := cmttypes.Header{
Version: cmtprotoversion.Consensus{Block: cmtversion.BlockProtocol, App: 2},
@@ -479,37 +518,37 @@ func (chain *TestChain) CreateTMClientHeader(chainID string, blockHeight int64,
LastBlockID: MakeBlockID(make([]byte, tmhash.Size), 10_000, make([]byte, tmhash.Size)),
LastCommitHash: chain.App.LastCommitID().Hash,
DataHash: tmhash.Sum([]byte("data_hash")),
- ValidatorsHash: tmValSet.Hash(),
+ ValidatorsHash: cmtValSet.Hash(),
NextValidatorsHash: nextVals.Hash(),
ConsensusHash: tmhash.Sum([]byte("consensus_hash")),
AppHash: chain.CurrentHeader.AppHash,
LastResultsHash: tmhash.Sum([]byte("last_results_hash")),
EvidenceHash: tmhash.Sum([]byte("evidence_hash")),
- ProposerAddress: tmValSet.Proposer.Address, //nolint:staticcheck
+ ProposerAddress: cmtValSet.Proposer.Address, //nolint:staticcheck
}
hhash := tmHeader.Hash()
blockID := MakeBlockID(hhash, 3, tmhash.Sum([]byte("part_set")))
- voteSet := cmttypes.NewVoteSet(chainID, blockHeight, 1, cmtproto.PrecommitType, tmValSet)
+ voteSet := cmttypes.NewVoteSet(chainID, blockHeight, 1, cmtproto.PrecommitType, cmtValSet)
// MakeCommit expects a signer array in the same order as the validator array.
// Thus we iterate over the ordered validator set and construct a signer array
// from the signer map in the same order.
- var signerArr []cmttypes.PrivValidator //nolint:prealloc // using prealloc here would be needlessly complex
- for _, v := range tmValSet.Validators { //nolint:staticcheck // need to check for nil validator set
+ var signerArr []cmttypes.PrivValidator //nolint:prealloc // using prealloc here would be needlessly complex
+ for _, v := range cmtValSet.Validators { //nolint:staticcheck // need to check for nil validator set
signerArr = append(signerArr, signers[v.Address.String()])
}
- commit, err := cmttypes.MakeCommit(blockID, blockHeight, 1, voteSet, signerArr, timestamp)
+ extCommit, err := cmttypes.MakeExtCommit(blockID, blockHeight, 1, voteSet, signerArr, timestamp, false)
require.NoError(chain.TB, err)
signedHeader := &cmtproto.SignedHeader{
Header: tmHeader.ToProto(),
- Commit: commit.ToProto(),
+ Commit: extCommit.ToCommit().ToProto(),
}
- if tmValSet != nil { //nolint:staticcheck
- valSet, err = tmValSet.ToProto()
+ if cmtValSet != nil { //nolint:staticcheck
+ valSet, err = cmtValSet.ToProto()
require.NoError(chain.TB, err)
}
diff --git a/testing/chain_test.go b/testing/chain_test.go
index 8eb6315716c..be2d03a30d2 100644
--- a/testing/chain_test.go
+++ b/testing/chain_test.go
@@ -25,7 +25,8 @@ func TestChangeValSet(t *testing.T) {
amount2, ok := sdkmath.NewIntFromString("30000000000000000000")
require.True(t, ok)
- val := chainA.GetSimApp().StakingKeeper.GetValidators(chainA.GetContext(), 4)
+ val, err := chainA.GetSimApp().StakingKeeper.GetValidators(chainA.GetContext(), 4)
+ require.NoError(t, err)
chainA.GetSimApp().StakingKeeper.Delegate(chainA.GetContext(), chainA.SenderAccounts[1].SenderAccount.GetAddress(), //nolint:errcheck // ignore error for test
amount, types.Unbonded, val[1], true)
@@ -35,7 +36,7 @@ func TestChangeValSet(t *testing.T) {
coord.CommitBlock(chainA)
// verify that update clients works even after validator update goes into effect
- err := path.EndpointB.UpdateClient()
+ err = path.EndpointB.UpdateClient()
require.NoError(t, err)
err = path.EndpointB.UpdateClient()
require.NoError(t, err)
diff --git a/testing/coordinator.go b/testing/coordinator.go
index 1f3418a983c..95af7c610b2 100644
--- a/testing/coordinator.go
+++ b/testing/coordinator.go
@@ -7,8 +7,6 @@ import (
"time"
"github.com/stretchr/testify/require"
-
- abci "github.com/cometbft/cometbft/abci/types"
)
var (
@@ -71,7 +69,6 @@ func (coord *Coordinator) UpdateTime() {
// UpdateTimeForChain updates the clock for a specific chain.
func (coord *Coordinator) UpdateTimeForChain(chain *TestChain) {
chain.CurrentHeader.Time = coord.CurrentTime.UTC()
- chain.App.BeginBlock(abci.RequestBeginBlock{Header: chain.CurrentHeader})
}
// Setup constructs a TM client, connection, and channel on both chains provided. It will
@@ -193,7 +190,6 @@ func (coord *Coordinator) CommitBlock(chains ...*TestChain) {
// CommitNBlocks commits n blocks to state and updates the block height by 1 for each commit.
func (coord *Coordinator) CommitNBlocks(chain *TestChain, n uint64) {
for i := uint64(0); i < n; i++ {
- chain.App.BeginBlock(abci.RequestBeginBlock{Header: chain.CurrentHeader})
chain.NextBlock()
coord.IncrementTime()
}
diff --git a/testing/endpoint.go b/testing/endpoint.go
index dcc89e1c99a..fdfef1bb6c5 100644
--- a/testing/endpoint.go
+++ b/testing/endpoint.go
@@ -7,7 +7,8 @@ import (
"github.com/stretchr/testify/require"
"github.com/cosmos/cosmos-sdk/baseapp"
- sdk "github.com/cosmos/cosmos-sdk/types"
+
+ abci "github.com/cometbft/cometbft/abci/types"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
connectiontypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types"
@@ -81,7 +82,7 @@ func (endpoint *Endpoint) QueryProofAtHeight(key []byte, height uint64) ([]byte,
// NOTE: a solo machine client will be created with an empty diversifier.
func (endpoint *Endpoint) CreateClient() (err error) {
// ensure counterparty has committed state
- endpoint.Chain.Coordinator.CommitBlock(endpoint.Counterparty.Chain)
+ endpoint.Counterparty.Chain.NextBlock()
var (
clientState exported.ClientState
@@ -461,7 +462,7 @@ func (endpoint *Endpoint) RecvPacket(packet channeltypes.Packet) error {
// RecvPacketWithResult receives a packet on the associated endpoint and the result
// of the transaction is returned. The counterparty client is updated.
-func (endpoint *Endpoint) RecvPacketWithResult(packet channeltypes.Packet) (*sdk.Result, error) {
+func (endpoint *Endpoint) RecvPacketWithResult(packet channeltypes.Packet) (*abci.ExecTxResult, error) {
// get proof of packet commitment on source
packetKey := host.PacketCommitmentKey(packet.GetSourcePort(), packet.GetSourceChannel(), packet.GetSequence())
proof, proofHeight := endpoint.Counterparty.Chain.QueryProof(packetKey)
diff --git a/testing/events.go b/testing/events.go
index 3679a65f3c4..2962cd43435 100644
--- a/testing/events.go
+++ b/testing/events.go
@@ -8,6 +8,7 @@ import (
abci "github.com/cometbft/cometbft/abci/types"
+ "github.com/cosmos/ibc-go/v7/internal/collections"
clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
connectiontypes "github.com/cosmos/ibc-go/v7/modules/core/03-connection/types"
channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
@@ -134,9 +135,9 @@ func ParseAckFromEvents(events []abci.Event) ([]byte, error) {
return nil, fmt.Errorf("acknowledgement event attribute not found")
}
-// AssertEvents asserts that expected events are present in the actual events.
+// AssertEventsLegacy asserts that expected events are present in the actual events.
// Expected map needs to be a subset of actual events to pass.
-func AssertEvents(
+func AssertEventsLegacy(
suite *testifysuite.Suite,
expected EventsMap,
actual []abci.Event,
@@ -163,3 +164,38 @@ func AssertEvents(
suite.Require().True(hasEvent, "event: %s was not found in events", eventName)
}
}
+
+// AssertEvents asserts that expected events are present in the actual events.
+func AssertEvents(
+ suite *testifysuite.Suite,
+ expected []abci.Event,
+ actual []abci.Event,
+) {
+ foundEvents := make(map[int]bool)
+
+ for i, expectedEvent := range expected {
+ for _, actualEvent := range actual {
+ // the actual event will have an extra attribute added automatically
+ // by Cosmos SDK since v0.50, that's why we subtract 1 when comparing
+ // with the number of attributes in the expected event.
+ if expectedEvent.Type == actualEvent.Type && (len(expectedEvent.Attributes) == len(actualEvent.Attributes)-1) {
+ // multiple events with the same type may be emitted, only mark the expected event as found
+ // if all of the attributes match
+ attributeMatch := true
+ for _, expectedAttr := range expectedEvent.Attributes {
+ // any expected attributes that are not contained in the actual events will cause this event
+ // not to match
+ attributeMatch = attributeMatch && collections.Contains(expectedAttr, actualEvent.Attributes)
+ }
+
+ if attributeMatch {
+ foundEvents[i] = true
+ }
+ }
+ }
+ }
+
+ for i, expectedEvent := range expected {
+ suite.Require().True(foundEvents[i], "event: %s was not found in events", expectedEvent.Type)
+ }
+}
diff --git a/testing/mock/mock.go b/testing/mock/mock.go
index 88c46c1bfb7..1188aafec12 100644
--- a/testing/mock/mock.go
+++ b/testing/mock/mock.go
@@ -136,15 +136,6 @@ func (AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMes
// ConsensusVersion implements AppModule/ConsensusVersion.
func (AppModule) ConsensusVersion() uint64 { return 1 }
-// BeginBlock implements the AppModule interface
-func (AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) {
-}
-
-// EndBlock implements the AppModule interface
-func (AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate {
- return []abci.ValidatorUpdate{}
-}
-
var _ exported.Path = KeyPath{}
// KeyPath defines a placeholder struct which implements the exported.Path interface
diff --git a/testing/mock/privval.go b/testing/mock/privval.go
index 660fb481416..0fc09423507 100644
--- a/testing/mock/privval.go
+++ b/testing/mock/privval.go
@@ -1,6 +1,8 @@
package mock
import (
+ "errors"
+
cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec"
"github.com/cosmos/cosmos-sdk/crypto/keys/ed25519"
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
@@ -24,7 +26,7 @@ func NewPV() PV {
// GetPubKey implements PrivValidator interface
func (pv PV) GetPubKey() (crypto.PubKey, error) {
- return cryptocodec.ToTmPubKeyInterface(pv.PrivKey.PubKey())
+ return cryptocodec.ToCmtPubKeyInterface(pv.PrivKey.PubKey())
}
// SignVote implements PrivValidator interface
@@ -35,6 +37,19 @@ func (pv PV) SignVote(chainID string, vote *tmproto.Vote) error {
return err
}
vote.Signature = sig
+
+ var extSig []byte
+ // We only sign vote extensions for non-nil precommits
+ if vote.Type == tmproto.PrecommitType && !tmtypes.ProtoBlockIDIsNil(&vote.BlockID) {
+ extSignBytes := tmtypes.VoteExtensionSignBytes(chainID, vote)
+ extSig, err = pv.PrivKey.Sign(extSignBytes)
+ if err != nil {
+ return err
+ }
+ } else if len(vote.Extension) > 0 {
+ return errors.New("unexpected vote extension - vote extensions are only allowed in non-nil precommits")
+ }
+ vote.ExtensionSignature = extSig
return nil
}
diff --git a/testing/path.go b/testing/path.go
index 5a671928b4d..43aa504d4d4 100644
--- a/testing/path.go
+++ b/testing/path.go
@@ -4,7 +4,7 @@ import (
"bytes"
"fmt"
- sdk "github.com/cosmos/cosmos-sdk/types"
+ abci "github.com/cometbft/cometbft/abci/types"
transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
@@ -63,7 +63,7 @@ func (path *Path) RelayPacket(packet channeltypes.Packet) error {
// - The result of the packet receive transaction.
// - The acknowledgement written on the receiving chain.
// - An error if a relay step fails or the packet commitment does not exist on either endpoint.
-func (path *Path) RelayPacketWithResults(packet channeltypes.Packet) (*sdk.Result, []byte, error) {
+func (path *Path) RelayPacketWithResults(packet channeltypes.Packet) (*abci.ExecTxResult, []byte, error) {
pc := path.EndpointA.Chain.App.GetIBCKeeper().ChannelKeeper.GetPacketCommitment(path.EndpointA.Chain.GetContext(), packet.GetSourcePort(), packet.GetSourceChannel(), packet.GetSequence())
if bytes.Equal(pc, channeltypes.CommitPacket(path.EndpointA.Chain.App.AppCodec(), packet)) {
// packet found, relay from A to B
diff --git a/testing/simapp/ante_handler.go b/testing/simapp/ante.go
similarity index 69%
rename from testing/simapp/ante_handler.go
rename to testing/simapp/ante.go
index 1214324e66b..96e79c3474c 100644
--- a/testing/simapp/ante_handler.go
+++ b/testing/simapp/ante.go
@@ -1,37 +1,43 @@
package simapp
import (
- errorsmod "cosmossdk.io/errors"
+ "errors"
+
+ circuitante "cosmossdk.io/x/circuit/ante"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/auth/ante"
ibcante "github.com/cosmos/ibc-go/v7/modules/core/ante"
- ibcerrors "github.com/cosmos/ibc-go/v7/modules/core/errors"
"github.com/cosmos/ibc-go/v7/modules/core/keeper"
)
-// HandlerOptions extend the SDK's AnteHandler options by requiring the IBC keeper.
+// HandlerOptions are the options required for constructing a default SDK AnteHandler.
type HandlerOptions struct {
ante.HandlerOptions
-
- IBCKeeper *keeper.Keeper
+ CircuitKeeper circuitante.CircuitBreaker
+ IBCKeeper *keeper.Keeper
}
-// NewAnteHandler creates a new ante handler
+// NewAnteHandler returns an AnteHandler that checks and increments sequence
+// numbers, checks signatures & account numbers, and deducts fees from the first
+// signer.
func NewAnteHandler(options HandlerOptions) (sdk.AnteHandler, error) {
if options.AccountKeeper == nil {
- return nil, errorsmod.Wrap(ibcerrors.ErrLogic, "account keeper is required for AnteHandler")
+ return nil, errors.New("account keeper is required for ante builder")
}
+
if options.BankKeeper == nil {
- return nil, errorsmod.Wrap(ibcerrors.ErrLogic, "bank keeper is required for AnteHandler")
+ return nil, errors.New("bank keeper is required for ante builder")
}
+
if options.SignModeHandler == nil {
- return nil, errorsmod.Wrap(ibcerrors.ErrLogic, "sign mode handler is required for AnteHandler")
+ return nil, errors.New("sign mode handler is required for ante builder")
}
anteDecorators := []sdk.AnteDecorator{
ante.NewSetUpContextDecorator(), // outermost AnteDecorator. SetUpContext must be called first
+ circuitante.NewCircuitBreakerDecorator(options.CircuitKeeper),
ante.NewExtensionOptionsDecorator(options.ExtensionOptionChecker),
ante.NewValidateBasicDecorator(),
ante.NewTxTimeoutHeightDecorator(),
diff --git a/testing/simapp/app.go b/testing/simapp/app.go
index 04486fe65d4..9a241a1e3c6 100644
--- a/testing/simapp/app.go
+++ b/testing/simapp/app.go
@@ -7,19 +7,37 @@ import (
"os"
"path/filepath"
+ dbm "github.com/cosmos/cosmos-db"
+ "github.com/cosmos/gogoproto/proto"
"github.com/spf13/cast"
- _ "github.com/cosmos/cosmos-sdk/client/docs/statik" // this is used for serving docs
-
autocliv1 "cosmossdk.io/api/cosmos/autocli/v1"
reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1"
+ "cosmossdk.io/client/v2/autocli"
+ "cosmossdk.io/core/appmodule"
+ "cosmossdk.io/log"
+ storetypes "cosmossdk.io/store/types"
+ "cosmossdk.io/x/circuit"
+ circuitkeeper "cosmossdk.io/x/circuit/keeper"
+ circuittypes "cosmossdk.io/x/circuit/types"
+ "cosmossdk.io/x/evidence"
+ evidencekeeper "cosmossdk.io/x/evidence/keeper"
+ evidencetypes "cosmossdk.io/x/evidence/types"
+ "cosmossdk.io/x/feegrant"
+ feegrantkeeper "cosmossdk.io/x/feegrant/keeper"
+ feegrantmodule "cosmossdk.io/x/feegrant/module"
+ "cosmossdk.io/x/tx/signing"
+ "cosmossdk.io/x/upgrade"
+ upgradekeeper "cosmossdk.io/x/upgrade/keeper"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
"github.com/cosmos/cosmos-sdk/baseapp"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
+ "github.com/cosmos/cosmos-sdk/client/grpc/cmtservice"
nodeservice "github.com/cosmos/cosmos-sdk/client/grpc/node"
- "github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
"github.com/cosmos/cosmos-sdk/codec"
+ "github.com/cosmos/cosmos-sdk/codec/address"
"github.com/cosmos/cosmos-sdk/codec/types"
"github.com/cosmos/cosmos-sdk/runtime"
runtimeservices "github.com/cosmos/cosmos-sdk/runtime/services"
@@ -28,14 +46,14 @@ import (
"github.com/cosmos/cosmos-sdk/server/config"
servertypes "github.com/cosmos/cosmos-sdk/server/types"
"github.com/cosmos/cosmos-sdk/std"
- "github.com/cosmos/cosmos-sdk/store/streaming"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
- testdatapb "github.com/cosmos/cosmos-sdk/testutil/testdata/testpb"
+ "github.com/cosmos/cosmos-sdk/testutil/testdata/testpb"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
+ "github.com/cosmos/cosmos-sdk/types/msgservice"
"github.com/cosmos/cosmos-sdk/version"
"github.com/cosmos/cosmos-sdk/x/auth"
"github.com/cosmos/cosmos-sdk/x/auth/ante"
+ authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec"
authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
"github.com/cosmos/cosmos-sdk/x/auth/posthandler"
authsims "github.com/cosmos/cosmos-sdk/x/auth/simulation"
@@ -49,7 +67,7 @@ import (
"github.com/cosmos/cosmos-sdk/x/bank"
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
- "github.com/cosmos/cosmos-sdk/x/consensus"
+ consensus "github.com/cosmos/cosmos-sdk/x/consensus"
consensusparamkeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper"
consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types"
"github.com/cosmos/cosmos-sdk/x/crisis"
@@ -58,12 +76,6 @@ import (
distr "github.com/cosmos/cosmos-sdk/x/distribution"
distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper"
distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
- "github.com/cosmos/cosmos-sdk/x/evidence"
- evidencekeeper "github.com/cosmos/cosmos-sdk/x/evidence/keeper"
- evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types"
- "github.com/cosmos/cosmos-sdk/x/feegrant"
- feegrantkeeper "github.com/cosmos/cosmos-sdk/x/feegrant/keeper"
- feegrantmodule "github.com/cosmos/cosmos-sdk/x/feegrant/module"
"github.com/cosmos/cosmos-sdk/x/genutil"
genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
"github.com/cosmos/cosmos-sdk/x/gov"
@@ -88,15 +100,8 @@ import (
"github.com/cosmos/cosmos-sdk/x/staking"
stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
- "github.com/cosmos/cosmos-sdk/x/upgrade"
- upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client"
- upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
- dbm "github.com/cometbft/cometbft-db"
abci "github.com/cometbft/cometbft/abci/types"
- "github.com/cometbft/cometbft/libs/log"
- tmos "github.com/cometbft/cometbft/libs/os"
"github.com/cosmos/ibc-go/modules/capability"
capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper"
@@ -125,8 +130,6 @@ import (
solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine"
ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint"
ibcmock "github.com/cosmos/ibc-go/v7/testing/mock"
- simappparams "github.com/cosmos/ibc-go/v7/testing/simapp/params"
- upgrades "github.com/cosmos/ibc-go/v7/testing/simapp/upgrades"
ibctestingtypes "github.com/cosmos/ibc-go/v7/testing/types"
)
@@ -141,45 +144,6 @@ var (
// DefaultNodeHome default home directories for the application daemon
DefaultNodeHome string
- // ModuleBasics defines the module BasicManager is in charge of setting up basic,
- // non-dependant module elements, such as codec registration
- // and genesis verification.
- ModuleBasics = module.NewBasicManager(
- auth.AppModuleBasic{},
- genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator),
- bank.AppModuleBasic{},
- capability.AppModuleBasic{},
- staking.AppModuleBasic{},
- mint.AppModuleBasic{},
- distr.AppModuleBasic{},
- gov.NewAppModuleBasic(
- []govclient.ProposalHandler{
- paramsclient.ProposalHandler,
- upgradeclient.LegacyProposalHandler,
- upgradeclient.LegacyCancelProposalHandler,
- ibcclientclient.UpdateClientProposalHandler,
- ibcclientclient.UpgradeProposalHandler,
- },
- ),
- groupmodule.AppModuleBasic{},
- params.AppModuleBasic{},
- crisis.AppModuleBasic{},
- slashing.AppModuleBasic{},
- ibc.AppModuleBasic{},
- ibctm.AppModuleBasic{},
- solomachine.AppModuleBasic{},
- feegrantmodule.AppModuleBasic{},
- upgrade.AppModuleBasic{},
- evidence.AppModuleBasic{},
- transfer.AppModuleBasic{},
- ibcmock.AppModuleBasic{},
- ica.AppModuleBasic{},
- authzmodule.AppModuleBasic{},
- vesting.AppModuleBasic{},
- ibcfee.AppModuleBasic{},
- consensus.AppModuleBasic{},
- )
-
// module account permissions
maccPerms = map[string][]string{
authtypes.FeeCollectorName: nil,
@@ -237,6 +201,7 @@ type SimApp struct {
FeeGrantKeeper feegrantkeeper.Keeper
GroupKeeper groupkeeper.Keeper
ConsensusParamsKeeper consensusparamkeeper.Keeper
+ CircuitKeeper circuitkeeper.Keeper
// make scoped keepers public for test purposes
ScopedIBCKeeper capabilitykeeper.ScopedKeeper
@@ -253,7 +218,8 @@ type SimApp struct {
FeeMockModule ibcmock.IBCModule
// the module manager
- ModuleManager *module.Manager
+ ModuleManager *module.Manager
+ BasicModuleManager module.BasicManager
// simulation manager
simulationManager *module.SimulationManager
@@ -280,12 +246,23 @@ func NewSimApp(
appOpts servertypes.AppOptions,
baseAppOptions ...func(*baseapp.BaseApp),
) *SimApp {
- encodingConfig := makeEncodingConfig()
+ interfaceRegistry, _ := types.NewInterfaceRegistryWithOptions(types.InterfaceRegistryOptions{
+ ProtoFiles: proto.HybridResolver,
+ SigningOptions: signing.Options{
+ AddressCodec: address.Bech32Codec{
+ Bech32Prefix: sdk.GetConfig().GetBech32AccountAddrPrefix(),
+ },
+ ValidatorAddressCodec: address.Bech32Codec{
+ Bech32Prefix: sdk.GetConfig().GetBech32ValidatorAddrPrefix(),
+ },
+ },
+ })
+ appCodec := codec.NewProtoCodec(interfaceRegistry)
+ legacyAmino := codec.NewLegacyAmino()
+ txConfig := authtx.NewTxConfig(appCodec, authtx.DefaultSignModes)
- appCodec := encodingConfig.Codec
- legacyAmino := encodingConfig.Amino
- interfaceRegistry := encodingConfig.InterfaceRegistry
- txConfig := encodingConfig.TxConfig
+ std.RegisterLegacyAminoCodec(legacyAmino)
+ std.RegisterInterfaces(interfaceRegistry)
// Below we could construct and set an application specific mempool and
// ABCI 1.0 PrepareProposal and ProcessProposal handlers. These defaults are
@@ -319,27 +296,22 @@ func NewSimApp(
bApp.SetInterfaceRegistry(interfaceRegistry)
bApp.SetTxEncoder(txConfig.TxEncoder())
- keys := sdk.NewKVStoreKeys(
+ keys := storetypes.NewKVStoreKeys(
authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey, crisistypes.StoreKey,
minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey,
- govtypes.StoreKey, group.StoreKey, paramstypes.StoreKey,
- upgradetypes.StoreKey, feegrant.StoreKey,
- evidencetypes.StoreKey, consensusparamtypes.StoreKey, authzkeeper.StoreKey,
- ibctransfertypes.StoreKey, icacontrollertypes.StoreKey, icahosttypes.StoreKey, capabilitytypes.StoreKey,
- ibcfeetypes.StoreKey, ibcexported.StoreKey,
+ govtypes.StoreKey, group.StoreKey, paramstypes.StoreKey, ibcexported.StoreKey, upgradetypes.StoreKey, feegrant.StoreKey,
+ evidencetypes.StoreKey, ibctransfertypes.StoreKey, icacontrollertypes.StoreKey, icahosttypes.StoreKey, capabilitytypes.StoreKey,
+ authzkeeper.StoreKey, ibcfeetypes.StoreKey, consensusparamtypes.StoreKey, circuittypes.StoreKey,
)
- tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey)
- // NOTE: The ibcmock.MemStoreKey is just mounted for testing purposes. Actual applications should
- // not include this key.
- memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey, ibcmock.MemStoreKey)
-
- // load state streaming if enabled
- if _, _, err := streaming.LoadStreamingServices(bApp, appOpts, appCodec, logger, keys); err != nil {
- logger.Error("failed to load state streaming", "err", err)
- os.Exit(1)
+ // register streaming services
+ if err := bApp.RegisterStreamingServices(appOpts, keys); err != nil {
+ panic(err)
}
+ tkeys := storetypes.NewTransientStoreKeys(paramstypes.TStoreKey)
+ memKeys := storetypes.NewMemoryStoreKeys(capabilitytypes.MemStoreKey, ibcmock.MemStoreKey)
+
app := &SimApp{
BaseApp: bApp,
legacyAmino: legacyAmino,
@@ -354,8 +326,8 @@ func NewSimApp(
app.ParamsKeeper = initParamsKeeper(appCodec, legacyAmino, keys[paramstypes.StoreKey], tkeys[paramstypes.TStoreKey])
// set the BaseApp's parameter store
- app.ConsensusParamsKeeper = consensusparamkeeper.NewKeeper(appCodec, keys[consensusparamtypes.StoreKey], authtypes.NewModuleAddress(govtypes.ModuleName).String())
- bApp.SetParamStore(&app.ConsensusParamsKeeper)
+ app.ConsensusParamsKeeper = consensusparamkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[consensusparamtypes.StoreKey]), authtypes.NewModuleAddress(govtypes.ModuleName).String(), runtime.EventService{})
+ bApp.SetParamStore(app.ConsensusParamsKeeper.ParamsStore)
// add capability keeper and ScopeToModule for ibc module
app.CapabilityKeeper = capabilitykeeper.NewKeeper(appCodec, keys[capabilitytypes.StoreKey], memKeys[capabilitytypes.MemStoreKey])
@@ -377,34 +349,34 @@ func NewSimApp(
app.CapabilityKeeper.Seal()
// SDK module keepers
- app.AccountKeeper = authkeeper.NewAccountKeeper(appCodec, keys[authtypes.StoreKey], authtypes.ProtoBaseAccount, maccPerms, sdk.GetConfig().GetBech32AccountAddrPrefix(), authtypes.NewModuleAddress(govtypes.ModuleName).String())
+
+ // add keepers
+ app.AccountKeeper = authkeeper.NewAccountKeeper(appCodec, runtime.NewKVStoreService(keys[authtypes.StoreKey]), authtypes.ProtoBaseAccount, maccPerms, authcodec.NewBech32Codec(sdk.Bech32MainPrefix), sdk.Bech32MainPrefix, authtypes.NewModuleAddress(govtypes.ModuleName).String())
app.BankKeeper = bankkeeper.NewBaseKeeper(
appCodec,
- keys[banktypes.StoreKey],
+ runtime.NewKVStoreService(keys[banktypes.StoreKey]),
app.AccountKeeper,
BlockedAddresses(),
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
+ logger,
)
-
- // register the staking hooks
- // NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks
app.StakingKeeper = stakingkeeper.NewKeeper(
- appCodec, keys[stakingtypes.StoreKey], app.AccountKeeper, app.BankKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
+ appCodec, runtime.NewKVStoreService(keys[stakingtypes.StoreKey]), app.AccountKeeper, app.BankKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), authcodec.NewBech32Codec(sdk.Bech32PrefixValAddr), authcodec.NewBech32Codec(sdk.Bech32PrefixConsAddr),
)
- app.MintKeeper = mintkeeper.NewKeeper(appCodec, keys[minttypes.StoreKey], app.StakingKeeper, app.AccountKeeper, app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String())
+ app.MintKeeper = mintkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[minttypes.StoreKey]), app.StakingKeeper, app.AccountKeeper, app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String())
- app.DistrKeeper = distrkeeper.NewKeeper(appCodec, keys[distrtypes.StoreKey], app.AccountKeeper, app.BankKeeper, app.StakingKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String())
+ app.DistrKeeper = distrkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[distrtypes.StoreKey]), app.AccountKeeper, app.BankKeeper, app.StakingKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String())
app.SlashingKeeper = slashingkeeper.NewKeeper(
- appCodec, legacyAmino, keys[slashingtypes.StoreKey], app.StakingKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
+ appCodec, legacyAmino, runtime.NewKVStoreService(keys[slashingtypes.StoreKey]), app.StakingKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
)
invCheckPeriod := cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod))
- app.CrisisKeeper = crisiskeeper.NewKeeper(appCodec, keys[crisistypes.StoreKey], invCheckPeriod,
- app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String())
+ app.CrisisKeeper = crisiskeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[crisistypes.StoreKey]), invCheckPeriod,
+ app.BankKeeper, authtypes.FeeCollectorName, authtypes.NewModuleAddress(govtypes.ModuleName).String(), app.AccountKeeper.AddressCodec())
- app.FeeGrantKeeper = feegrantkeeper.NewKeeper(appCodec, keys[feegrant.StoreKey], app.AccountKeeper)
+ app.FeeGrantKeeper = feegrantkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[feegrant.StoreKey]), app.AccountKeeper)
// register the staking hooks
// NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks
@@ -412,7 +384,10 @@ func NewSimApp(
stakingtypes.NewMultiStakingHooks(app.DistrKeeper.Hooks(), app.SlashingKeeper.Hooks()),
)
- app.AuthzKeeper = authzkeeper.NewKeeper(keys[authzkeeper.StoreKey], appCodec, app.MsgServiceRouter(), app.AccountKeeper)
+ app.CircuitKeeper = circuitkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[circuittypes.StoreKey]), authtypes.NewModuleAddress(govtypes.ModuleName).String(), app.AccountKeeper.AddressCodec())
+ app.BaseApp.SetCircuitBreaker(&app.CircuitKeeper)
+
+ app.AuthzKeeper = authzkeeper.NewKeeper(runtime.NewKVStoreService(keys[authzkeeper.StoreKey]), appCodec, app.MsgServiceRouter(), app.AccountKeeper)
groupConfig := group.DefaultConfig()
/*
@@ -421,25 +396,25 @@ func NewSimApp(
*/
app.GroupKeeper = groupkeeper.NewKeeper(keys[group.StoreKey], appCodec, app.MsgServiceRouter(), app.AccountKeeper, groupConfig)
+ // get skipUpgradeHeights from the app options
skipUpgradeHeights := map[int64]bool{}
for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) {
skipUpgradeHeights[int64(h)] = true
}
homePath := cast.ToString(appOpts.Get(flags.FlagHome))
// set the governance module account as the authority for conducting upgrades
- app.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, keys[upgradetypes.StoreKey], appCodec, homePath, app.BaseApp, authtypes.NewModuleAddress(govtypes.ModuleName).String())
-
- // IBC Keepers
+ app.UpgradeKeeper = upgradekeeper.NewKeeper(skipUpgradeHeights, runtime.NewKVStoreService(keys[upgradetypes.StoreKey]), appCodec, homePath, app.BaseApp, authtypes.NewModuleAddress(govtypes.ModuleName).String())
app.IBCKeeper = ibckeeper.NewKeeper(
appCodec, keys[ibcexported.StoreKey], app.GetSubspace(ibcexported.ModuleName), app.StakingKeeper, app.UpgradeKeeper, scopedIBCKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
)
-
- // register the proposal types
+ // Register the proposal types
+ // Deprecated: Avoid adding new handlers, instead use the new proposal flow
+ // by granting the governance module the right to execute the message.
+ // See: https://docs.cosmos.network/main/modules/gov#proposal-messages
govRouter := govv1beta1.NewRouter()
govRouter.AddRoute(govtypes.RouterKey, govv1beta1.ProposalHandler).
AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.ParamsKeeper)).
- AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)).
AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper))
govConfig := govtypes.DefaultConfig()
@@ -448,8 +423,8 @@ func NewSimApp(
govConfig.MaxMetadataLen = 10000
*/
govKeeper := govkeeper.NewKeeper(
- appCodec, keys[govtypes.StoreKey], app.AccountKeeper, app.BankKeeper,
- app.StakingKeeper, app.MsgServiceRouter(), govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
+ appCodec, runtime.NewKVStoreService(keys[govtypes.StoreKey]), app.AccountKeeper, app.BankKeeper,
+ app.StakingKeeper, app.DistrKeeper, app.MsgServiceRouter(), govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String(),
)
// Set legacy router for backwards compatibility with gov v1beta1
@@ -579,7 +554,7 @@ func NewSimApp(
// create evidence keeper with router
evidenceKeeper := evidencekeeper.NewKeeper(
- appCodec, keys[evidencetypes.StoreKey], app.StakingKeeper, app.SlashingKeeper,
+ appCodec, runtime.NewKVStoreService(keys[evidencetypes.StoreKey]), app.StakingKeeper, app.SlashingKeeper, app.AccountKeeper.AddressCodec(), runtime.ProvideCometInfoService(),
)
// If evidence needs to be handled for the app, set routes in router here and seal
app.EvidenceKeeper = *evidenceKeeper
@@ -593,10 +568,9 @@ func NewSimApp(
// NOTE: Any module instantiated in the module manager that is later modified
// must be passed by reference here.
app.ModuleManager = module.NewManager(
- // SDK app modules
genutil.NewAppModule(
- app.AccountKeeper, app.StakingKeeper, app.BaseApp.DeliverTx,
- encodingConfig.TxConfig,
+ app.AccountKeeper, app.StakingKeeper, app,
+ txConfig,
),
auth.NewAppModule(appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)),
vesting.NewAppModule(app.AccountKeeper, app.BankKeeper),
@@ -606,41 +580,80 @@ func NewSimApp(
feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry),
gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)),
mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil, app.GetSubspace(minttypes.ModuleName)),
- slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName)),
+ slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName), app.interfaceRegistry),
distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)),
staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)),
- upgrade.NewAppModule(app.UpgradeKeeper),
+ upgrade.NewAppModule(app.UpgradeKeeper, app.AccountKeeper.AddressCodec()),
evidence.NewAppModule(app.EvidenceKeeper),
params.NewAppModule(app.ParamsKeeper),
authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper),
+ circuit.NewAppModule(appCodec, app.CircuitKeeper),
// IBC modules
ibc.NewAppModule(app.IBCKeeper),
transfer.NewAppModule(app.TransferKeeper),
ibcfee.NewAppModule(app.IBCFeeKeeper),
ica.NewAppModule(&app.ICAControllerKeeper, &app.ICAHostKeeper),
+ ibctm.AppModuleBasic{},
+ solomachine.AppModuleBasic{},
mockModule,
)
+ // BasicModuleManager defines the module BasicManager is in charge of setting up basic,
+ // non-dependant module elements, such as codec registration and genesis verification.
+ // By default it is composed of all the module from the module manager.
+ // Additionally, app module basics can be overwritten by passing them as argument.
+ app.BasicModuleManager = module.NewBasicManagerFromManager(
+ app.ModuleManager,
+ map[string]module.AppModuleBasic{
+ genutiltypes.ModuleName: genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator),
+ govtypes.ModuleName: gov.NewAppModuleBasic(
+ []govclient.ProposalHandler{
+ paramsclient.ProposalHandler,
+ ibcclientclient.UpdateClientProposalHandler,
+ ibcclientclient.UpgradeProposalHandler,
+ },
+ ),
+ })
+ app.BasicModuleManager.RegisterLegacyAminoCodec(legacyAmino)
+ app.BasicModuleManager.RegisterInterfaces(interfaceRegistry)
+
// During begin block slashing happens after distr.BeginBlocker so that
// there is nothing left over in the validator fee pool, so as to keep the
// CanWithdrawInvariant invariant.
// NOTE: staking module is required if HistoricalEntries param > 0
// NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC)
app.ModuleManager.SetOrderBeginBlockers(
- upgradetypes.ModuleName, capabilitytypes.ModuleName, minttypes.ModuleName, distrtypes.ModuleName, slashingtypes.ModuleName,
- evidencetypes.ModuleName, stakingtypes.ModuleName, ibcexported.ModuleName, ibctransfertypes.ModuleName, authtypes.ModuleName,
- banktypes.ModuleName, govtypes.ModuleName, crisistypes.ModuleName, genutiltypes.ModuleName, authz.ModuleName, feegrant.ModuleName,
- paramstypes.ModuleName, vestingtypes.ModuleName, icatypes.ModuleName, ibcfeetypes.ModuleName, ibcmock.ModuleName, group.ModuleName, consensusparamtypes.ModuleName,
+ upgradetypes.ModuleName,
+ capabilitytypes.ModuleName,
+ minttypes.ModuleName,
+ distrtypes.ModuleName,
+ slashingtypes.ModuleName,
+ evidencetypes.ModuleName,
+ stakingtypes.ModuleName,
+ ibcexported.ModuleName,
+ ibctransfertypes.ModuleName,
+ genutiltypes.ModuleName,
+ authz.ModuleName,
+ icatypes.ModuleName,
+ ibcfeetypes.ModuleName,
+ ibcmock.ModuleName,
)
-
app.ModuleManager.SetOrderEndBlockers(
- crisistypes.ModuleName, govtypes.ModuleName, stakingtypes.ModuleName, ibcexported.ModuleName, ibctransfertypes.ModuleName,
- capabilitytypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, distrtypes.ModuleName, slashingtypes.ModuleName,
- minttypes.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, feegrant.ModuleName, paramstypes.ModuleName,
- upgradetypes.ModuleName, vestingtypes.ModuleName, icatypes.ModuleName, ibcfeetypes.ModuleName, ibcmock.ModuleName, group.ModuleName, consensusparamtypes.ModuleName,
+ crisistypes.ModuleName,
+ govtypes.ModuleName,
+ stakingtypes.ModuleName,
+ ibcexported.ModuleName,
+ ibctransfertypes.ModuleName,
+ capabilitytypes.ModuleName,
+ genutiltypes.ModuleName,
+ feegrant.ModuleName,
+ icatypes.ModuleName,
+ ibcfeetypes.ModuleName,
+ ibcmock.ModuleName,
+ group.ModuleName,
)
// NOTE: The genutils module must occur after staking so that pools are
@@ -649,13 +662,14 @@ func NewSimApp(
// NOTE: Capability module must occur first so that it can initialize any capabilities
// so that other modules that want to create or claim capabilities afterwards in InitChain
// can do so safely.
-
genesisModuleOrder := []string{
- capabilitytypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, distrtypes.ModuleName, stakingtypes.ModuleName,
+ capabilitytypes.ModuleName,
+ authtypes.ModuleName,
+ banktypes.ModuleName, distrtypes.ModuleName, stakingtypes.ModuleName,
slashingtypes.ModuleName, govtypes.ModuleName, minttypes.ModuleName, crisistypes.ModuleName,
ibcexported.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, ibctransfertypes.ModuleName,
icatypes.ModuleName, ibcfeetypes.ModuleName, ibcmock.ModuleName, feegrant.ModuleName, paramstypes.ModuleName, upgradetypes.ModuleName,
- vestingtypes.ModuleName, group.ModuleName, consensusparamtypes.ModuleName,
+ vestingtypes.ModuleName, group.ModuleName, consensusparamtypes.ModuleName, circuittypes.ModuleName,
}
app.ModuleManager.SetOrderInitGenesis(genesisModuleOrder...)
app.ModuleManager.SetOrderExportGenesis(genesisModuleOrder...)
@@ -665,7 +679,14 @@ func NewSimApp(
app.ModuleManager.RegisterInvariants(app.CrisisKeeper)
app.configurator = module.NewConfigurator(app.appCodec, app.MsgServiceRouter(), app.GRPCQueryRouter())
- app.ModuleManager.RegisterServices(app.configurator)
+ err := app.ModuleManager.RegisterServices(app.configurator)
+ if err != nil {
+ panic(err)
+ }
+
+ // registerUpgradeHandlers is used for registering any on-chain upgrades.
+ // Make sure it's called after `app.ModuleManager` and `app.configurator` are set.
+ app.registerUpgradeHandlers()
autocliv1.RegisterQueryServer(app.GRPCQueryRouter(), runtimeservices.NewAutoCLIQueryService(app.ModuleManager.Modules))
@@ -676,7 +697,7 @@ func NewSimApp(
reflectionv1.RegisterReflectionServiceServer(app.GRPCQueryRouter(), reflectionSvc)
// add test gRPC service for testing gRPC queries in isolation
- testdatapb.RegisterQueryServer(app.GRPCQueryRouter(), testdatapb.QueryImpl{})
+ testpb.RegisterQueryServer(app.GRPCQueryRouter(), testpb.QueryImpl{})
// create the simulation manager and define the order of the modules for deterministic simulations
//
@@ -698,7 +719,7 @@ func NewSimApp(
app.SetInitChainer(app.InitChainer)
app.SetBeginBlocker(app.BeginBlocker)
app.SetEndBlocker(app.EndBlocker)
- app.setAnteHandler(encodingConfig.TxConfig)
+ app.setAnteHandler(txConfig)
// In v0.46, the SDK introduces _postHandlers_. PostHandlers are like
// antehandlers, but are run _after_ the `runMsgs` execution. They are also
@@ -720,13 +741,25 @@ func NewSimApp(
// upgrade.
app.setPostHandler()
- app.setupUpgradeHandlers()
- app.setupUpgradeStoreLoaders()
+ // At startup, after all modules have been registered, check that all proto
+ // annotations are correct.
+ protoFiles, err := proto.MergedRegistry()
+ if err != nil {
+ panic(err)
+ }
+ err = msgservice.ValidateProtoAnnotations(protoFiles)
+ if err != nil {
+ // Once we switch to using protoreflect-based antehandlers, we might
+ // want to panic here instead of logging a warning.
+ _, err := fmt.Fprintln(os.Stderr, err.Error())
+ if err != nil {
+ fmt.Println("could not write to stderr")
+ }
+ }
if loadLatest {
if err := app.LoadLatestVersion(); err != nil {
- logger.Error("error on loading last version", "err", err)
- os.Exit(1)
+ panic(fmt.Errorf("error loading last version: %w", err))
}
}
@@ -747,20 +780,22 @@ func NewSimApp(
func (app *SimApp) setAnteHandler(txConfig client.TxConfig) {
anteHandler, err := NewAnteHandler(
HandlerOptions{
- HandlerOptions: ante.HandlerOptions{
+ ante.HandlerOptions{
AccountKeeper: app.AccountKeeper,
BankKeeper: app.BankKeeper,
SignModeHandler: txConfig.SignModeHandler(),
FeegrantKeeper: app.FeeGrantKeeper,
SigGasConsumer: ante.DefaultSigVerificationGasConsumer,
},
- IBCKeeper: app.IBCKeeper,
+ &app.CircuitKeeper,
+ app.IBCKeeper,
},
)
if err != nil {
panic(err)
}
+ // Set the AnteHandler for the app
app.SetAnteHandler(anteHandler)
}
@@ -779,13 +814,13 @@ func (app *SimApp) setPostHandler() {
func (app *SimApp) Name() string { return app.BaseApp.Name() }
// BeginBlocker application updates every begin block
-func (app *SimApp) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock {
- return app.ModuleManager.BeginBlock(ctx, req)
+func (app *SimApp) BeginBlocker(ctx sdk.Context) (sdk.BeginBlock, error) {
+ return app.ModuleManager.BeginBlock(ctx)
}
// EndBlocker application updates every end block
-func (app *SimApp) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock {
- return app.ModuleManager.EndBlock(ctx, req)
+func (app *SimApp) EndBlocker(ctx sdk.Context) (sdk.EndBlock, error) {
+ return app.ModuleManager.EndBlock(ctx)
}
// Configurator returns the configurator for the app
@@ -794,12 +829,14 @@ func (app *SimApp) Configurator() module.Configurator {
}
// InitChainer application update at chain initialization
-func (app *SimApp) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain {
+func (app *SimApp) InitChainer(ctx sdk.Context, req *abci.RequestInitChain) (*abci.ResponseInitChain, error) {
var genesisState GenesisState
if err := json.Unmarshal(req.AppStateBytes, &genesisState); err != nil {
panic(err)
}
- app.UpgradeKeeper.SetModuleVersionMap(ctx, app.ModuleManager.GetVersionMap())
+ if err := app.UpgradeKeeper.SetModuleVersionMap(ctx, app.ModuleManager.GetVersionMap()); err != nil {
+ panic(err)
+ }
return app.ModuleManager.InitGenesis(ctx, app.appCodec, genesisState)
}
@@ -834,9 +871,29 @@ func (app *SimApp) TxConfig() client.TxConfig {
return app.txConfig
}
+// AutoCliOpts returns the autocli options for the app.
+func (app *SimApp) AutoCliOpts() autocli.AppOptions {
+ modules := make(map[string]appmodule.AppModule, 0)
+ for _, m := range app.ModuleManager.Modules {
+ if moduleWithName, ok := m.(module.HasName); ok {
+ moduleName := moduleWithName.Name()
+ if appModule, ok := moduleWithName.(appmodule.AppModule); ok {
+ modules[moduleName] = appModule
+ }
+ }
+ }
+
+ return autocli.AppOptions{
+ Modules: modules,
+ AddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix()),
+ ValidatorAddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ValidatorAddrPrefix()),
+ ConsensusAddressCodec: authcodec.NewBech32Codec(sdk.GetConfig().GetBech32ConsensusAddrPrefix()),
+ }
+}
+
// DefaultGenesis returns a default genesis from the registered AppModuleBasic's.
func (app *SimApp) DefaultGenesis() map[string]json.RawMessage {
- return ModuleBasics.DefaultGenesis(app.appCodec)
+ return app.BasicModuleManager.DefaultGenesis(app.appCodec)
}
// GetKey returns the KVStoreKey for the provided store key.
@@ -846,18 +903,14 @@ func (app *SimApp) GetKey(storeKey string) *storetypes.KVStoreKey {
return app.keys[storeKey]
}
-// GetTKey returns the TransientStoreKey for the provided store key.
-//
-// NOTE: This is solely to be used for testing purposes.
-func (app *SimApp) GetTKey(storeKey string) *storetypes.TransientStoreKey {
- return app.tkeys[storeKey]
-}
+// GetStoreKeys returns all the stored store keys.
+func (app *SimApp) GetStoreKeys() []storetypes.StoreKey {
+ keys := make([]storetypes.StoreKey, len(app.keys))
+ for _, key := range app.keys {
+ keys = append(keys, key)
+ }
-// GetMemKey returns the MemStoreKey for the provided mem key.
-//
-// NOTE: This is solely used for testing purposes.
-func (app *SimApp) GetMemKey(storeKey string) *storetypes.MemoryStoreKey {
- return app.memKeys[storeKey]
+ return keys
}
// GetSubspace returns a param subspace for a given module name.
@@ -875,19 +928,19 @@ func (app *SimApp) SimulationManager() *module.SimulationManager {
// RegisterAPIRoutes registers all application module routes with the provided
// API server.
-func (*SimApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig) {
+func (app *SimApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig) {
clientCtx := apiSvr.ClientCtx
// Register new tx routes from grpc-gateway.
authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
- // Register new tendermint queries routes from grpc-gateway.
- tmservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
+ // Register new CometBFT queries routes from grpc-gateway.
+ cmtservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
// Register node gRPC service for grpc-gateway.
nodeservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
// Register grpc-gateway routes for all modules.
- ModuleBasics.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
+ app.BasicModuleManager.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)
// register swagger API from root so that other applications can override easily
if err := server.RegisterSwaggerAPI(apiSvr.ClientCtx, apiSvr.Router, apiConfig.Swagger); err != nil {
@@ -902,16 +955,17 @@ func (app *SimApp) RegisterTxService(clientCtx client.Context) {
// RegisterTendermintService implements the Application.RegisterTendermintService method.
func (app *SimApp) RegisterTendermintService(clientCtx client.Context) {
- tmservice.RegisterTendermintService(
+ cmtApp := server.NewCometABCIWrapper(app)
+ cmtservice.RegisterTendermintService(
clientCtx,
app.BaseApp.GRPCQueryRouter(),
app.interfaceRegistry,
- app.Query,
+ cmtApp.Query,
)
}
-func (app *SimApp) RegisterNodeService(clientCtx client.Context) {
- nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter())
+func (app *SimApp) RegisterNodeService(clientCtx client.Context, cfg config.Config) {
+ nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter(), cfg)
}
// GetMaccPerms returns a copy of the module account permissions
@@ -954,76 +1008,6 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
return paramsKeeper
}
-func makeEncodingConfig() simappparams.EncodingConfig {
- encodingConfig := simappparams.MakeTestEncodingConfig()
- std.RegisterLegacyAminoCodec(encodingConfig.Amino)
- std.RegisterInterfaces(encodingConfig.InterfaceRegistry)
- ModuleBasics.RegisterLegacyAminoCodec(encodingConfig.Amino)
- ModuleBasics.RegisterInterfaces(encodingConfig.InterfaceRegistry)
- return encodingConfig
-}
-
-// IBC Upgrade examples
-// setupUpgradeHandlers sets all necessary upgrade handlers for testing purposes
-func (app *SimApp) setupUpgradeHandlers() {
- app.UpgradeKeeper.SetUpgradeHandler(
- upgrades.V5,
- upgrades.CreateDefaultUpgradeHandler(app.ModuleManager, app.configurator),
- )
-
- // NOTE: The moduleName arg of v6.CreateUpgradeHandler refers to the auth module ScopedKeeper name to which the channel capability should be migrated from.
- // This should be the same string value provided upon instantiation of the ScopedKeeper with app.CapabilityKeeper.ScopeToModule()
- // See: https://github.com/cosmos/ibc-go/blob/v6.1.0/testing/simapp/app.go#L310
- app.UpgradeKeeper.SetUpgradeHandler(
- upgrades.V6,
- upgrades.CreateV6UpgradeHandler(
- app.ModuleManager,
- app.configurator,
- app.appCodec,
- app.keys[capabilitytypes.ModuleName],
- app.CapabilityKeeper,
- ibcmock.ModuleName+icacontrollertypes.SubModuleName,
- ),
- )
-
- app.UpgradeKeeper.SetUpgradeHandler(
- upgrades.V7,
- upgrades.CreateV7UpgradeHandler(
- app.ModuleManager,
- app.configurator,
- app.appCodec,
- app.IBCKeeper.ClientKeeper,
- app.ConsensusParamsKeeper,
- app.ParamsKeeper,
- ),
- )
-
- app.UpgradeKeeper.SetUpgradeHandler(
- upgrades.V7_1,
- upgrades.CreateV7LocalhostUpgradeHandler(app.ModuleManager, app.configurator, app.IBCKeeper.ClientKeeper),
- )
-}
-
-// setupUpgradeStoreLoaders sets all necessary store loaders required by upgrades.
-func (app *SimApp) setupUpgradeStoreLoaders() {
- upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
- if err != nil {
- tmos.Exit(fmt.Sprintf("failed to read upgrade info from disk %s", err))
- }
-
- if upgradeInfo.Name == upgrades.V7 && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
- storeUpgrades := storetypes.StoreUpgrades{
- Added: []string{
- consensusparamtypes.StoreKey,
- crisistypes.StoreKey,
- },
- }
-
- // configure store loader that checks if version == upgradeHeight and applies store upgrades
- app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades))
- }
-}
-
// IBC TestingApp functions
// GetBaseApp implements the TestingApp interface.
@@ -1050,3 +1034,10 @@ func (app *SimApp) GetScopedIBCKeeper() capabilitykeeper.ScopedKeeper {
func (app *SimApp) GetTxConfig() client.TxConfig {
return app.txConfig
}
+
+// GetMemKey returns the MemStoreKey for the provided mem key.
+//
+// NOTE: This is solely used for testing purposes.
+func (app *SimApp) GetMemKey(storeKey string) *storetypes.MemoryStoreKey {
+ return app.memKeys[storeKey]
+}
diff --git a/testing/simapp/encoding.go b/testing/simapp/encoding.go
deleted file mode 100644
index ff03bcd5ed6..00000000000
--- a/testing/simapp/encoding.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package simapp
-
-import (
- "github.com/cosmos/cosmos-sdk/std"
-
- simappparams "github.com/cosmos/ibc-go/v7/testing/simapp/params"
-)
-
-// MakeTestEncodingConfig creates an EncodingConfig for testing. This function
-// should be used only in tests or when creating a new app instance (NewApp*()).
-// App user shouldn't create new codecs - use the app.AppCodec instead.
-// [DEPRECATED]
-func MakeTestEncodingConfig() simappparams.EncodingConfig {
- encodingConfig := simappparams.MakeTestEncodingConfig()
- std.RegisterLegacyAminoCodec(encodingConfig.Amino)
- std.RegisterInterfaces(encodingConfig.InterfaceRegistry)
- ModuleBasics.RegisterLegacyAminoCodec(encodingConfig.Amino)
- ModuleBasics.RegisterInterfaces(encodingConfig.InterfaceRegistry)
- return encodingConfig
-}
diff --git a/testing/simapp/export.go b/testing/simapp/export.go
index 4d6489f63d4..4613465dc09 100644
--- a/testing/simapp/export.go
+++ b/testing/simapp/export.go
@@ -4,14 +4,13 @@ import (
"encoding/json"
"log"
+ storetypes "cosmossdk.io/store/types"
+
servertypes "github.com/cosmos/cosmos-sdk/server/types"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types"
"github.com/cosmos/cosmos-sdk/x/staking"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
-
- tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
)
// ExportAppStateAndValidators exports the state of the application for a genesis
@@ -20,7 +19,7 @@ func (app *SimApp) ExportAppStateAndValidators(
forZeroHeight bool, jailAllowedAddrs []string, modulesToExport []string,
) (servertypes.ExportedApp, error) {
// as if they could withdraw from the start of the next block
- ctx := app.NewContext(true, tmproto.Header{Height: app.LastBlockHeight()})
+ ctx := app.NewContext(true)
// We export at last height + 1, because that's the height at which
// Tendermint will start InitChain.
@@ -30,7 +29,10 @@ func (app *SimApp) ExportAppStateAndValidators(
app.prepForZeroHeightGenesis(ctx, jailAllowedAddrs)
}
- genState := app.ModuleManager.ExportGenesis(ctx, app.appCodec)
+ genState, err := app.ModuleManager.ExportGenesis(ctx, app.appCodec)
+ if err != nil {
+ return servertypes.ExportedApp{}, err
+ }
appState, err := json.MarshalIndent(genState, "", " ")
if err != nil {
return servertypes.ExportedApp{}, err
@@ -72,13 +74,24 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
/* Handle fee distribution state. */
// withdraw all validator commission
- app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) {
- _, _ = app.DistrKeeper.WithdrawValidatorCommission(ctx, val.GetOperator())
+ err := app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) {
+ valBz, err := app.StakingKeeper.ValidatorAddressCodec().StringToBytes(val.GetOperator())
+ if err != nil {
+ panic(err)
+ }
+ _, _ = app.DistrKeeper.WithdrawValidatorCommission(ctx, valBz)
return false
})
+ if err != nil {
+ panic(err)
+ }
// withdraw all delegator rewards
- dels := app.StakingKeeper.GetAllDelegations(ctx)
+ dels, err := app.StakingKeeper.GetAllDelegations(ctx)
+ if err != nil {
+ panic(err)
+ }
+
for _, delegation := range dels {
valAddr, err := sdk.ValAddressFromBech32(delegation.ValidatorAddress)
if err != nil {
@@ -103,16 +116,33 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
ctx = ctx.WithBlockHeight(0)
// reinitialize all validators
- app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) {
+ err = app.StakingKeeper.IterateValidators(ctx, func(_ int64, val stakingtypes.ValidatorI) (stop bool) {
+ valBz, err := sdk.ValAddressFromBech32(val.GetOperator())
+ if err != nil {
+ panic(err)
+ }
// donate any unwithdrawn outstanding reward fraction tokens to the community pool
- scraps := app.DistrKeeper.GetValidatorOutstandingRewardsCoins(ctx, val.GetOperator())
- feePool := app.DistrKeeper.GetFeePool(ctx)
+ scraps, err := app.DistrKeeper.GetValidatorOutstandingRewardsCoins(ctx, valBz)
+ if err != nil {
+ panic(err)
+ }
+ feePool, err := app.DistrKeeper.FeePool.Get(ctx)
+ if err != nil {
+ panic(err)
+ }
feePool.CommunityPool = feePool.CommunityPool.Add(scraps...)
- app.DistrKeeper.SetFeePool(ctx, feePool)
+ if err := app.DistrKeeper.FeePool.Set(ctx, feePool); err != nil {
+ panic(err)
+ }
- err := app.DistrKeeper.Hooks().AfterValidatorCreated(ctx, val.GetOperator())
- return err != nil
+ if err := app.DistrKeeper.Hooks().AfterValidatorCreated(ctx, valBz); err != nil {
+ panic(err)
+ }
+ return false
})
+ if err != nil {
+ panic(err)
+ }
// reinitialize all delegations
for _, del := range dels {
@@ -140,22 +170,34 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
/* Handle staking state. */
// iterate through redelegations, reset creation height
- app.StakingKeeper.IterateRedelegations(ctx, func(_ int64, red stakingtypes.Redelegation) (stop bool) {
+ err = app.StakingKeeper.IterateRedelegations(ctx, func(_ int64, red stakingtypes.Redelegation) (stop bool) {
for i := range red.Entries {
red.Entries[i].CreationHeight = 0
}
- app.StakingKeeper.SetRedelegation(ctx, red)
+ err = app.StakingKeeper.SetRedelegation(ctx, red)
+ if err != nil {
+ panic(err)
+ }
return false
})
+ if err != nil {
+ panic(err)
+ }
// iterate through unbonding delegations, reset creation height
- app.StakingKeeper.IterateUnbondingDelegations(ctx, func(_ int64, ubd stakingtypes.UnbondingDelegation) (stop bool) {
+ err = app.StakingKeeper.IterateUnbondingDelegations(ctx, func(_ int64, ubd stakingtypes.UnbondingDelegation) (stop bool) {
for i := range ubd.Entries {
ubd.Entries[i].CreationHeight = 0
}
- app.StakingKeeper.SetUnbondingDelegation(ctx, ubd)
+ err = app.StakingKeeper.SetUnbondingDelegation(ctx, ubd)
+ if err != nil {
+ panic(err)
+ }
return false
})
+ if err != nil {
+ panic(err)
+ }
// Iterate through validators by power descending, reset bond heights, and
// update bond intra-tx counters.
@@ -165,8 +207,8 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
for ; iter.Valid(); iter.Next() {
addr := sdk.ValAddress(stakingtypes.AddressFromValidatorsKey(iter.Key()))
- validator, found := app.StakingKeeper.GetValidator(ctx, addr)
- if !found {
+ validator, err := app.StakingKeeper.GetValidator(ctx, addr)
+ if err != nil {
panic("expected validator, not found")
}
@@ -175,13 +217,16 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
validator.Jailed = true
}
- app.StakingKeeper.SetValidator(ctx, validator)
+ err = app.StakingKeeper.SetValidator(ctx, validator)
+ if err != nil {
+ panic("couldn't set validator")
+ }
counter++
}
iter.Close()
- _, err := app.StakingKeeper.ApplyAndReturnValidatorSetUpdates(ctx)
+ _, err = app.StakingKeeper.ApplyAndReturnValidatorSetUpdates(ctx)
if err != nil {
log.Fatal(err)
}
@@ -189,12 +234,18 @@ func (app *SimApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []
/* Handle slashing state. */
// reset start height on signing infos
- app.SlashingKeeper.IterateValidatorSigningInfos(
+ err = app.SlashingKeeper.IterateValidatorSigningInfos(
ctx,
func(addr sdk.ConsAddress, info slashingtypes.ValidatorSigningInfo) (stop bool) {
info.StartHeight = 0
- app.SlashingKeeper.SetValidatorSigningInfo(ctx, addr, info)
+ err = app.SlashingKeeper.SetValidatorSigningInfo(ctx, addr, info)
+ if err != nil {
+ panic(err)
+ }
return false
},
)
+ if err != nil {
+ log.Fatal(err)
+ }
}
diff --git a/testing/simapp/genesis.go b/testing/simapp/genesis.go
index 772e452d443..69fa46b90ef 100644
--- a/testing/simapp/genesis.go
+++ b/testing/simapp/genesis.go
@@ -2,11 +2,9 @@ package simapp
import (
"encoding/json"
-
- "github.com/cosmos/cosmos-sdk/codec"
)
-// The genesis state of the blockchain is represented here as a map of raw json
+// GenesisState of the blockchain is represented here as a map of raw json
// messages key'd by a identifier string.
// The identifier is used to determine which module genesis information belongs
// to so it may be appropriately routed during init chain.
@@ -14,8 +12,3 @@ import (
// the ModuleBasicManager which populates json from each BasicModule
// object provided to it during init.
type GenesisState map[string]json.RawMessage
-
-// NewDefaultGenesisState generates the default state for the application.
-func NewDefaultGenesisState(cdc codec.JSONCodec) GenesisState {
- return ModuleBasics.DefaultGenesis(cdc)
-}
diff --git a/testing/simapp/simd/cmd/root.go b/testing/simapp/simd/cmd/root.go
index 2c22eb5c911..9f52aa61cf3 100644
--- a/testing/simapp/simd/cmd/root.go
+++ b/testing/simapp/simd/cmd/root.go
@@ -5,9 +5,13 @@ import (
"io"
"os"
+ dbm "github.com/cosmos/cosmos-db"
"github.com/spf13/cobra"
"github.com/spf13/viper"
+ "cosmossdk.io/log"
+ confixcmd "cosmossdk.io/tools/confix/cmd"
+
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/config"
"github.com/cosmos/cosmos-sdk/client/debug"
@@ -16,19 +20,22 @@ import (
"github.com/cosmos/cosmos-sdk/client/pruning"
"github.com/cosmos/cosmos-sdk/client/rpc"
"github.com/cosmos/cosmos-sdk/client/snapshot"
+ "github.com/cosmos/cosmos-sdk/codec"
"github.com/cosmos/cosmos-sdk/server"
serverconfig "github.com/cosmos/cosmos-sdk/server/config"
servertypes "github.com/cosmos/cosmos-sdk/server/types"
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
sdk "github.com/cosmos/cosmos-sdk/types"
+ "github.com/cosmos/cosmos-sdk/types/module"
+ "github.com/cosmos/cosmos-sdk/types/tx/signing"
authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli"
+ "github.com/cosmos/cosmos-sdk/x/auth/tx"
+ txmodule "github.com/cosmos/cosmos-sdk/x/auth/tx/config"
"github.com/cosmos/cosmos-sdk/x/auth/types"
"github.com/cosmos/cosmos-sdk/x/crisis"
genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli"
- dbm "github.com/cometbft/cometbft-db"
cmtcfg "github.com/cometbft/cometbft/config"
- "github.com/cometbft/cometbft/libs/log"
"github.com/cosmos/ibc-go/v7/testing/simapp"
"github.com/cosmos/ibc-go/v7/testing/simapp/params"
@@ -38,7 +45,8 @@ import (
// main function.
func NewRootCmd() *cobra.Command {
// we "pre"-instantiate the application for getting the injected/configured encoding configuration
- tempApp := simapp.NewSimApp(log.NewNopLogger(), dbm.NewMemDB(), nil, true, simtestutil.NewAppOptionsWithFlagHome(simapp.DefaultNodeHome))
+ // note, this is not necessary when using app wiring, as depinject can be directly used (see root_v2.go)
+ tempApp := simapp.NewSimApp(log.NewNopLogger(), dbm.NewMemDB(), nil, true, simtestutil.NewAppOptionsWithFlagHome(tempDir()))
encodingConfig := params.EncodingConfig{
InterfaceRegistry: tempApp.InterfaceRegistry(),
Codec: tempApp.AppCodec(),
@@ -49,7 +57,6 @@ func NewRootCmd() *cobra.Command {
initClientCtx := client.Context{}.
WithCodec(encodingConfig.Codec).
WithInterfaceRegistry(encodingConfig.InterfaceRegistry).
- WithTxConfig(encodingConfig.TxConfig).
WithLegacyAmino(encodingConfig.Amino).
WithInput(os.Stdin).
WithAccountRetriever(types.AccountRetriever{}).
@@ -57,13 +64,15 @@ func NewRootCmd() *cobra.Command {
WithViper("") // In simapp, we don't use any prefix for env variables.
rootCmd := &cobra.Command{
- Use: "simd",
- Short: "simulation app",
+ Use: "simd",
+ Short: "simulation app",
+ SilenceErrors: true,
PersistentPreRunE: func(cmd *cobra.Command, _ []string) error {
// set the default command outputs
cmd.SetOut(cmd.OutOrStdout())
cmd.SetErr(cmd.ErrOrStderr())
+ initClientCtx = initClientCtx.WithCmdContext(cmd.Context())
initClientCtx, err := client.ReadPersistentCommandFlags(initClientCtx, cmd.Flags())
if err != nil {
return err
@@ -74,25 +83,45 @@ func NewRootCmd() *cobra.Command {
return err
}
+ // This needs to go after ReadFromClientConfig, as that function
+ // sets the RPC client needed for SIGN_MODE_TEXTUAL.
+ enabledSignModes := append(tx.DefaultSignModes, signing.SignMode_SIGN_MODE_TEXTUAL) //nolint:gocritic // we know we aren't appending to the same slice
+ txConfigOpts := tx.ConfigOptions{
+ EnabledSignModes: enabledSignModes,
+ TextualCoinMetadataQueryFn: txmodule.NewGRPCCoinMetadataQueryFn(initClientCtx),
+ }
+ txConfigWithTextual, err := tx.NewTxConfigWithOptions(
+ codec.NewProtoCodec(encodingConfig.InterfaceRegistry),
+ txConfigOpts,
+ )
+ if err != nil {
+ return err
+ }
+ initClientCtx = initClientCtx.WithTxConfig(txConfigWithTextual)
+
if err := client.SetCmdClientContextHandler(initClientCtx, cmd); err != nil {
return err
}
customAppTemplate, customAppConfig := initAppConfig()
- customTMConfig := initTendermintConfig()
+ customCMTConfig := initCometBFTConfig()
- return server.InterceptConfigsPreRunHandler(cmd, customAppTemplate, customAppConfig, customTMConfig)
+ return server.InterceptConfigsPreRunHandler(cmd, customAppTemplate, customAppConfig, customCMTConfig)
},
}
- initRootCmd(rootCmd, encodingConfig)
+ initRootCmd(rootCmd, encodingConfig, tempApp.BasicModuleManager)
+
+ if err := tempApp.AutoCliOpts().EnhanceRootCommand(rootCmd); err != nil {
+ panic(err)
+ }
return rootCmd
}
-// initTendermintConfig helps to override default Tendermint Config values.
+// initCometBFTConfig helps to override default CometBFT Config values.
// return cmtcfg.DefaultConfig if no custom configuration is required for the application.
-func initTendermintConfig() *cmtcfg.Config {
+func initCometBFTConfig() *cmtcfg.Config {
cfg := cmtcfg.DefaultConfig()
// these values put a higher strain on node memory
@@ -159,27 +188,28 @@ lru_size = 0`
return customAppTemplate, customAppConfig
}
-func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingConfig) {
+func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingConfig, basicManager module.BasicManager) {
cfg := sdk.GetConfig()
cfg.Seal()
rootCmd.AddCommand(
- genutilcli.InitCmd(simapp.ModuleBasics, simapp.DefaultNodeHome),
+ genutilcli.InitCmd(basicManager, simapp.DefaultNodeHome),
debug.Cmd(),
- config.Cmd(),
- pruning.PruningCmd(newApp),
+ confixcmd.ConfigCommand(),
+ pruning.Cmd(newApp, simapp.DefaultNodeHome),
snapshot.Cmd(newApp),
+ server.QueryBlockResultsCmd(),
)
server.AddCommands(rootCmd, simapp.DefaultNodeHome, newApp, appExport, addModuleInitFlags)
// add keybase, auxiliary RPC, query, genesis, and tx child commands
rootCmd.AddCommand(
- rpc.StatusCommand(),
- genesisCommand(encodingConfig),
- queryCommand(),
+ server.StatusCommand(),
+ genesisCommand(encodingConfig, basicManager),
txCommand(),
- keys.Commands(simapp.DefaultNodeHome),
+ queryCommand(),
+ keys.Commands(),
)
}
@@ -187,16 +217,6 @@ func addModuleInitFlags(startCmd *cobra.Command) {
crisis.AddModuleInitFlags(startCmd)
}
-// genesisCommand builds genesis-related `simd genesis` command. Users may provide application specific commands as a parameter
-func genesisCommand(encodingConfig params.EncodingConfig, cmds ...*cobra.Command) *cobra.Command {
- cmd := genutilcli.GenesisCoreCommand(encodingConfig.TxConfig, simapp.ModuleBasics, simapp.DefaultNodeHome)
-
- for _, subCmd := range cmds {
- cmd.AddCommand(subCmd)
- }
- return cmd
-}
-
func queryCommand() *cobra.Command {
cmd := &cobra.Command{
Use: "query",
@@ -208,15 +228,14 @@ func queryCommand() *cobra.Command {
}
cmd.AddCommand(
- authcmd.GetAccountCmd(),
rpc.ValidatorCommand(),
- rpc.BlockCommand(),
+ server.QueryBlockCmd(),
authcmd.QueryTxsByEventsCmd(),
+ server.QueryBlocksCmd(),
authcmd.QueryTxCmd(),
+ authcmd.GetSimulateCmd(),
)
- simapp.ModuleBasics.AddQueryCommands(cmd)
-
return cmd
}
@@ -241,8 +260,16 @@ func txCommand() *cobra.Command {
authcmd.GetAuxToFeeCommand(),
)
- simapp.ModuleBasics.AddTxCommands(cmd)
+ return cmd
+}
+
+// genesisCommand builds genesis-related `simd genesis` command. Users may provide application specific commands as a parameter
+func genesisCommand(encodingConfig params.EncodingConfig, basicManager module.BasicManager, cmds ...*cobra.Command) *cobra.Command {
+ cmd := genutilcli.Commands(encodingConfig.TxConfig, basicManager, simapp.DefaultNodeHome)
+ for _, subCmd := range cmds {
+ cmd.AddCommand(subCmd)
+ }
return cmd
}
@@ -303,3 +330,13 @@ func appExport(
return simApp.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs, modulesToExport)
}
+
+var tempDir = func() string {
+ dir, err := os.MkdirTemp("", "simapp")
+ if err != nil {
+ dir = simapp.DefaultNodeHome
+ }
+ defer os.RemoveAll(dir)
+
+ return dir
+}
diff --git a/testing/simapp/simd/main.go b/testing/simapp/simd/main.go
index b431382a732..b22fe4c12f3 100644
--- a/testing/simapp/simd/main.go
+++ b/testing/simapp/simd/main.go
@@ -3,7 +3,8 @@ package main
import (
"os"
- "github.com/cosmos/cosmos-sdk/server"
+ "cosmossdk.io/log"
+
svrcmd "github.com/cosmos/cosmos-sdk/server/cmd"
"github.com/cosmos/ibc-go/v7/testing/simapp"
@@ -13,12 +14,7 @@ import (
func main() {
rootCmd := cmd.NewRootCmd()
if err := svrcmd.Execute(rootCmd, "", simapp.DefaultNodeHome); err != nil {
- switch e := err.(type) {
- case server.ErrorCode:
- os.Exit(e.Code)
-
- default:
- os.Exit(1)
- }
+ log.NewLogger(rootCmd.OutOrStderr()).Error("failure when running app", "err", err)
+ os.Exit(1)
}
}
diff --git a/testing/simapp/test_helpers.go b/testing/simapp/test_helpers.go
index 377818f83eb..a3c4e8764be 100644
--- a/testing/simapp/test_helpers.go
+++ b/testing/simapp/test_helpers.go
@@ -6,8 +6,10 @@ import (
"testing"
"time"
+ dbm "github.com/cosmos/cosmos-db"
"github.com/stretchr/testify/require"
+ "cosmossdk.io/log"
sdkmath "cosmossdk.io/math"
bam "github.com/cosmos/cosmos-sdk/baseapp"
@@ -17,18 +19,14 @@ import (
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
"github.com/cosmos/cosmos-sdk/server"
servertypes "github.com/cosmos/cosmos-sdk/server/types"
+ "github.com/cosmos/cosmos-sdk/testutil/mock"
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
- dbm "github.com/cometbft/cometbft-db"
abci "github.com/cometbft/cometbft/abci/types"
- "github.com/cometbft/cometbft/libs/log"
- tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
cmttypes "github.com/cometbft/cometbft/types"
-
- "github.com/cosmos/ibc-go/v7/testing/mock"
)
// SetupOptions defines arguments that are passed into `Simapp` constructor.
@@ -93,22 +91,13 @@ func SetupWithGenesisValSet(t *testing.T, valSet *cmttypes.ValidatorSet, genAccs
require.NoError(t, err)
// init chain will set the validator set and initialize the genesis accounts
- app.InitChain(
- abci.RequestInitChain{
- Validators: []abci.ValidatorUpdate{},
- ConsensusParams: simtestutil.DefaultConsensusParams,
- AppStateBytes: stateBytes,
- },
+ _, err = app.InitChain(&abci.RequestInitChain{
+ Validators: []abci.ValidatorUpdate{},
+ ConsensusParams: simtestutil.DefaultConsensusParams,
+ AppStateBytes: stateBytes,
+ },
)
-
- // commit genesis changes
- app.Commit()
- app.BeginBlock(abci.RequestBeginBlock{Header: tmproto.Header{
- Height: app.LastBlockHeight() + 1,
- AppHash: app.LastCommitID().Hash,
- ValidatorsHash: valSet.Hash(),
- NextValidatorsHash: valSet.Hash(),
- }})
+ require.NoError(t, err)
return app
}
@@ -118,9 +107,10 @@ func SetupWithGenesisValSet(t *testing.T, valSet *cmttypes.ValidatorSet, genAccs
//
// CONTRACT: BeginBlock must be called before this function.
func SignAndDeliver(
- txCfg client.TxConfig, app *bam.BaseApp, msgs []sdk.Msg,
- chainID string, accNums, accSeqs []uint64, priv ...cryptotypes.PrivKey,
-) (sdk.GasInfo, *sdk.Result, error) {
+ tb testing.TB, txCfg client.TxConfig, app *bam.BaseApp, msgs []sdk.Msg,
+ chainID string, accNums, accSeqs []uint64, expPass bool, blockTime time.Time, nextValHash []byte, priv ...cryptotypes.PrivKey,
+) (*abci.ResponseFinalizeBlock, error) {
+ tb.Helper()
tx, err := simtestutil.GenSignedMockTx(
rand.New(rand.NewSource(time.Now().UnixNano())),
txCfg,
@@ -132,9 +122,15 @@ func SignAndDeliver(
accSeqs,
priv...,
)
- if err != nil {
- return sdk.GasInfo{}, nil, err
- }
+ require.NoError(tb, err)
+
+ txBytes, err := txCfg.TxEncoder()(tx)
+ require.NoError(tb, err)
- return app.SimDeliver(txCfg.TxEncoder(), tx)
+ return app.FinalizeBlock(&abci.RequestFinalizeBlock{
+ Height: app.LastBlockHeight() + 1,
+ Time: blockTime,
+ NextValidatorsHash: nextValHash,
+ Txs: [][]byte{txBytes},
+ })
}
diff --git a/testing/simapp/upgrades.go b/testing/simapp/upgrades.go
new file mode 100644
index 00000000000..91325cbb91f
--- /dev/null
+++ b/testing/simapp/upgrades.go
@@ -0,0 +1,79 @@
+package simapp
+
+import (
+ storetypes "cosmossdk.io/store/types"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
+
+ consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types"
+ crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types"
+
+ capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types"
+ icacontrollertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
+ ibcmock "github.com/cosmos/ibc-go/v7/testing/mock"
+ "github.com/cosmos/ibc-go/v7/testing/simapp/upgrades"
+)
+
+// registerUpgradeHandlers registers all supported upgrade handlers
+func (app *SimApp) registerUpgradeHandlers() {
+ app.UpgradeKeeper.SetUpgradeHandler(
+ upgrades.V5,
+ upgrades.CreateDefaultUpgradeHandler(app.ModuleManager, app.configurator),
+ )
+
+ // NOTE: The moduleName arg of v6.CreateUpgradeHandler refers to the auth module ScopedKeeper name to which the channel capability should be migrated from.
+ // This should be the same string value provided upon instantiation of the ScopedKeeper with app.CapabilityKeeper.ScopeToModule()
+ // See: https://github.com/cosmos/ibc-go/blob/v6.1.0/testing/simapp/app.go#L310
+ app.UpgradeKeeper.SetUpgradeHandler(
+ upgrades.V6,
+ upgrades.CreateV6UpgradeHandler(
+ app.ModuleManager,
+ app.configurator,
+ app.appCodec,
+ app.keys[capabilitytypes.ModuleName],
+ app.CapabilityKeeper,
+ ibcmock.ModuleName+icacontrollertypes.SubModuleName,
+ ),
+ )
+
+ app.UpgradeKeeper.SetUpgradeHandler(
+ upgrades.V7,
+ upgrades.CreateV7UpgradeHandler(
+ app.ModuleManager,
+ app.configurator,
+ app.appCodec,
+ app.IBCKeeper.ClientKeeper,
+ app.ConsensusParamsKeeper,
+ app.ParamsKeeper,
+ ),
+ )
+
+ app.UpgradeKeeper.SetUpgradeHandler(
+ upgrades.V7_1,
+ upgrades.CreateV7LocalhostUpgradeHandler(app.ModuleManager, app.configurator, app.IBCKeeper.ClientKeeper),
+ )
+
+ app.UpgradeKeeper.SetUpgradeHandler(
+ upgrades.V8,
+ upgrades.CreateV8UpgradeHandler(
+ app.ModuleManager,
+ app.configurator,
+ ),
+ )
+
+ upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
+ if err != nil {
+ panic(err)
+ }
+
+ if upgradeInfo.Name == upgrades.V7 && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
+ storeUpgrades := storetypes.StoreUpgrades{
+ Added: []string{
+ consensusparamtypes.StoreKey,
+ crisistypes.StoreKey,
+ },
+ }
+
+ // configure store loader that checks if version == upgradeHeight and applies store upgrades
+ app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades))
+ }
+}
diff --git a/testing/simapp/upgrades/upgrades.go b/testing/simapp/upgrades/upgrades.go
index 1a8a8a9052c..01313e089d9 100644
--- a/testing/simapp/upgrades/upgrades.go
+++ b/testing/simapp/upgrades/upgrades.go
@@ -1,15 +1,18 @@
package upgrades
import (
+ "context"
+
+ storetypes "cosmossdk.io/store/types"
+ upgradetypes "cosmossdk.io/x/upgrade/types"
+
"github.com/cosmos/cosmos-sdk/baseapp"
"github.com/cosmos/cosmos-sdk/codec"
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
consensusparamskeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper"
paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper"
paramstypes "github.com/cosmos/cosmos-sdk/x/params/types"
- upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper"
v6 "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/migrations/v6"
@@ -27,6 +30,8 @@ const (
V7 = "v7"
// V7_1 defines the upgrade name for the ibc-go/v7.1 upgrade handler.
V7_1 = "v7.1"
+ // V8 defines the upgrade name for the ibc-go/v8 upgrade handler.
+ V8 = "v8"
)
// CreateDefaultUpgradeHandler creates an upgrade handler which can be used for regular upgrade tests
@@ -35,7 +40,7 @@ func CreateDefaultUpgradeHandler(
mm *module.Manager,
configurator module.Configurator,
) upgradetypes.UpgradeHandler {
- return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
+ return func(ctx context.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return mm.RunMigrations(ctx, configurator, vm)
}
}
@@ -50,8 +55,9 @@ func CreateV6UpgradeHandler(
capabilityKeeper *capabilitykeeper.Keeper,
moduleName string,
) upgradetypes.UpgradeHandler {
- return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
- if err := v6.MigrateICS27ChannelCapability(ctx, cdc, capabilityStoreKey, capabilityKeeper, moduleName); err != nil {
+ return func(ctx context.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
+ sdkCtx := sdk.UnwrapSDKContext(ctx)
+ if err := v6.MigrateICS27ChannelCapability(sdkCtx, cdc, capabilityStoreKey, capabilityKeeper, moduleName); err != nil {
return nil, err
}
@@ -68,14 +74,18 @@ func CreateV7UpgradeHandler(
consensusParamsKeeper consensusparamskeeper.Keeper,
paramsKeeper paramskeeper.Keeper,
) upgradetypes.UpgradeHandler {
- return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
+ return func(ctx context.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
+ sdkCtx := sdk.UnwrapSDKContext(ctx)
// OPTIONAL: prune expired tendermint consensus states to save storage space
- if _, err := ibctmmigrations.PruneExpiredConsensusStates(ctx, cdc, clientKeeper); err != nil {
+ if _, err := ibctmmigrations.PruneExpiredConsensusStates(sdkCtx, cdc, clientKeeper); err != nil {
return nil, err
}
legacyBaseAppSubspace := paramsKeeper.Subspace(baseapp.Paramspace).WithKeyTable(paramstypes.ConsensusParamsKeyTable())
- baseapp.MigrateParams(ctx, legacyBaseAppSubspace, &consensusParamsKeeper)
+ err := baseapp.MigrateParams(sdkCtx, legacyBaseAppSubspace, consensusParamsKeeper.ParamsStore)
+ if err != nil {
+ panic(err)
+ }
return mm.RunMigrations(ctx, configurator, vm)
}
@@ -87,12 +97,20 @@ func CreateV7LocalhostUpgradeHandler(
configurator module.Configurator,
clientKeeper clientkeeper.Keeper,
) upgradetypes.UpgradeHandler {
- return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
+ return func(ctx context.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
+ sdkCtx := sdk.UnwrapSDKContext(ctx)
// explicitly update the IBC 02-client params, adding the localhost client type
- params := clientKeeper.GetParams(ctx)
+ params := clientKeeper.GetParams(sdkCtx)
params.AllowedClients = append(params.AllowedClients, exported.Localhost)
- clientKeeper.SetParams(ctx, params)
+ clientKeeper.SetParams(sdkCtx, params)
+
+ return mm.RunMigrations(ctx, configurator, vm)
+ }
+}
+// CreateV8UpgradeHandler creates an upgrade handler for the ibc-go/v8 SimApp upgrade.
+func CreateV8UpgradeHandler(mm *module.Manager, configurator module.Configurator) upgradetypes.UpgradeHandler {
+ return func(ctx context.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return mm.RunMigrations(ctx, configurator, vm)
}
}
diff --git a/testing/solomachine.go b/testing/solomachine.go
index 097b47f71a7..8d542eae5fe 100644
--- a/testing/solomachine.go
+++ b/testing/solomachine.go
@@ -516,11 +516,14 @@ func (solo *Solomachine) GenerateClientStateProof(clientState exported.ClientSta
data, err := clienttypes.MarshalClientState(solo.cdc, clientState)
require.NoError(solo.t, err)
+ merklePath := solo.GetClientStatePath(clientIDSolomachine)
+ key, err := merklePath.GetKey(1) // index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ require.NoError(solo.t, err)
signBytes := &solomachine.SignBytes{
Sequence: solo.Sequence,
Timestamp: solo.Time,
Diversifier: solo.Diversifier,
- Path: []byte(solo.GetClientStatePath(clientIDSolomachine).String()),
+ Path: key,
Data: data,
}
@@ -533,11 +536,14 @@ func (solo *Solomachine) GenerateConsensusStateProof(consensusState exported.Con
data, err := clienttypes.MarshalConsensusState(solo.cdc, consensusState)
require.NoError(solo.t, err)
+ merklePath := solo.GetConsensusStatePath(clientIDSolomachine, consensusHeight)
+ key, err := merklePath.GetKey(1) // index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ require.NoError(solo.t, err)
signBytes := &solomachine.SignBytes{
Sequence: solo.Sequence,
Timestamp: solo.Time,
Diversifier: solo.Diversifier,
- Path: []byte(solo.GetConsensusStatePath(clientIDSolomachine, consensusHeight).String()),
+ Path: key,
Data: data,
}
@@ -553,11 +559,14 @@ func (solo *Solomachine) GenerateConnOpenTryProof(counterpartyClientID, counterp
data, err := solo.cdc.Marshal(&connection)
require.NoError(solo.t, err)
+ merklePath := solo.GetConnectionStatePath(connectionIDSolomachine)
+ key, err := merklePath.GetKey(1) // index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ require.NoError(solo.t, err)
signBytes := &solomachine.SignBytes{
Sequence: solo.Sequence,
Timestamp: solo.Time,
Diversifier: solo.Diversifier,
- Path: []byte(solo.GetConnectionStatePath(connectionIDSolomachine).String()),
+ Path: key,
Data: data,
}
@@ -573,11 +582,14 @@ func (solo *Solomachine) GenerateChanOpenTryProof(portID, version, counterpartyC
data, err := solo.cdc.Marshal(&channel)
require.NoError(solo.t, err)
+ merklePath := solo.GetChannelStatePath(portID, channelIDSolomachine)
+ key, err := merklePath.GetKey(1) // index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ require.NoError(solo.t, err)
signBytes := &solomachine.SignBytes{
Sequence: solo.Sequence,
Timestamp: solo.Time,
Diversifier: solo.Diversifier,
- Path: []byte(solo.GetChannelStatePath(portID, channelIDSolomachine).String()),
+ Path: key,
Data: data,
}
@@ -593,11 +605,14 @@ func (solo *Solomachine) GenerateChanClosedProof(portID, version, counterpartyCh
data, err := solo.cdc.Marshal(&channel)
require.NoError(solo.t, err)
+ merklePath := solo.GetChannelStatePath(portID, channelIDSolomachine)
+ key, err := merklePath.GetKey(1) // index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ require.NoError(solo.t, err)
signBytes := &solomachine.SignBytes{
Sequence: solo.Sequence,
Timestamp: solo.Time,
Diversifier: solo.Diversifier,
- Path: []byte(solo.GetChannelStatePath(portID, channelIDSolomachine).String()),
+ Path: key,
Data: data,
}
@@ -608,11 +623,14 @@ func (solo *Solomachine) GenerateChanClosedProof(portID, version, counterpartyCh
func (solo *Solomachine) GenerateCommitmentProof(packet channeltypes.Packet) []byte {
commitment := channeltypes.CommitPacket(solo.cdc, packet)
+ merklePath := solo.GetPacketCommitmentPath(packet.GetSourcePort(), packet.GetSourceChannel(), packet.GetSequence())
+ key, err := merklePath.GetKey(1) // index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ require.NoError(solo.t, err)
signBytes := &solomachine.SignBytes{
Sequence: solo.Sequence,
Timestamp: solo.Time,
Diversifier: solo.Diversifier,
- Path: []byte(solo.GetPacketCommitmentPath(packet.GetSourcePort(), packet.GetSourceChannel(), packet.GetSequence()).String()),
+ Path: key,
Data: commitment,
}
@@ -622,11 +640,15 @@ func (solo *Solomachine) GenerateCommitmentProof(packet channeltypes.Packet) []b
// GenerateAcknowledgementProof generates an acknowledgement proof.
func (solo *Solomachine) GenerateAcknowledgementProof(packet channeltypes.Packet) []byte {
transferAck := channeltypes.NewResultAcknowledgement([]byte{byte(1)}).Acknowledgement()
+
+ merklePath := solo.GetPacketAcknowledgementPath(packet.GetDestPort(), packet.GetDestChannel(), packet.GetSequence())
+ key, err := merklePath.GetKey(1) // index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ require.NoError(solo.t, err)
signBytes := &solomachine.SignBytes{
Sequence: solo.Sequence,
Timestamp: solo.Time,
Diversifier: solo.Diversifier,
- Path: []byte(solo.GetPacketAcknowledgementPath(packet.GetDestPort(), packet.GetDestChannel(), packet.GetSequence()).String()),
+ Path: key,
Data: channeltypes.CommitAcknowledgement(transferAck),
}
@@ -635,11 +657,14 @@ func (solo *Solomachine) GenerateAcknowledgementProof(packet channeltypes.Packet
// GenerateReceiptAbsenceProof generates a receipt absence proof for the provided packet.
func (solo *Solomachine) GenerateReceiptAbsenceProof(packet channeltypes.Packet) []byte {
+ merklePath := solo.GetPacketReceiptPath(packet.GetDestPort(), packet.GetDestChannel(), packet.GetSequence())
+ key, err := merklePath.GetKey(1) // index 0 is the key for the IBC store in the multistore, index 1 is the key in the IBC store
+ require.NoError(solo.t, err)
signBytes := &solomachine.SignBytes{
Sequence: solo.Sequence,
Timestamp: solo.Time,
Diversifier: solo.Diversifier,
- Path: []byte(solo.GetPacketReceiptPath(packet.GetDestPort(), packet.GetDestChannel(), packet.GetSequence()).String()),
+ Path: key,
Data: nil,
}
return solo.GenerateProof(signBytes)
diff --git a/testing/types/expected_keepers.go b/testing/types/expected_keepers.go
index 07034b57a25..e0d3af4b878 100644
--- a/testing/types/expected_keepers.go
+++ b/testing/types/expected_keepers.go
@@ -1,12 +1,13 @@
package types
import (
- sdk "github.com/cosmos/cosmos-sdk/types"
+ "context"
+
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
)
// StakingKeeper defines the expected staking keeper interface used in the
// IBC testing package
type StakingKeeper interface {
- GetHistoricalInfo(ctx sdk.Context, height int64) (stakingtypes.HistoricalInfo, bool)
+ GetHistoricalInfo(ctx context.Context, height int64) (stakingtypes.HistoricalInfo, error)
}