@agoric/cosmos 0.35.0-u21.0 → 0.35.0-u22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/CHANGELOG.md +11 -187
  2. package/Makefile +2 -2
  3. package/ante/ante.go +2 -2
  4. package/ante/inbound.go +1 -2
  5. package/ante/inbound_test.go +3 -1
  6. package/ante/vm_admission.go +1 -2
  7. package/app/app.go +255 -174
  8. package/app/encoding.go +6 -3
  9. package/app/export.go +50 -21
  10. package/app/genesis.go +7 -5
  11. package/app/params/encoding.go +1 -1
  12. package/app/params/proto.go +6 -4
  13. package/app/sim_test.go +11 -13
  14. package/app/txconfig/tx_config.go +169 -0
  15. package/app/upgrade.go +52 -97
  16. package/app/upgrade_test.go +1 -1
  17. package/cmd/agd/agvm.go +1 -1
  18. package/cmd/agd/main.go +1 -1
  19. package/cmd/libdaemon/main.go +2 -2
  20. package/daemon/cmd/root.go +99 -30
  21. package/daemon/cmd/root_test.go +12 -27
  22. package/daemon/main.go +2 -9
  23. package/git-revision.txt +1 -1
  24. package/go.mod +129 -109
  25. package/go.sum +228 -469
  26. package/package.json +2 -2
  27. package/proto/agoric/swingset/msgs.proto +46 -9
  28. package/proto/agoric/swingset/swingset.proto +7 -2
  29. package/proto/agoric/vbank/vbank.proto +1 -1
  30. package/proto/agoric/vibc/msgs.proto +4 -0
  31. package/tests/e2e/vbank/vbank_test.go +172 -0
  32. package/tests/integrations/types/aminojson_test.go +214 -0
  33. package/tests/integrations/vbank/vbank_test.go +348 -0
  34. package/third_party/proto/amino/amino.proto +6 -1
  35. package/third_party/proto/cosmos/base/v1beta1/coin.proto +18 -5
  36. package/third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto +4 -8
  37. package/third_party/proto/ibc/core/channel/v1/channel.proto +42 -17
  38. package/third_party/proto/ibc/core/client/v1/client.proto +48 -40
  39. package/types/address_hooks.go +2 -2
  40. package/types/address_hooks_test.go +3 -3
  41. package/types/ibc_packet.go +3 -3
  42. package/types/ibc_packet_test.go +3 -3
  43. package/types/kv_entry_helpers.go +3 -3
  44. package/types/kv_entry_helpers_test.go +2 -2
  45. package/types/legacy_address_encoder.go +58 -0
  46. package/vm/proto_json_test.go +1 -1
  47. package/vm/server.go +2 -1
  48. package/x/swingset/abci.go +2 -2
  49. package/x/swingset/client/cli/tx.go +16 -14
  50. package/x/swingset/config.go +1 -1
  51. package/x/swingset/genesis.go +2 -1
  52. package/x/swingset/handler.go +2 -1
  53. package/x/swingset/keeper/extension_snapshotter.go +14 -5
  54. package/x/swingset/keeper/extension_snapshotter_test.go +1 -1
  55. package/x/swingset/keeper/keeper.go +21 -17
  56. package/x/swingset/keeper/keeper_test.go +10 -7
  57. package/x/swingset/keeper/msg_server.go +26 -5
  58. package/x/swingset/keeper/swing_store_exports_handler.go +1 -1
  59. package/x/swingset/keeper/swing_store_exports_handler_test.go +1 -1
  60. package/x/swingset/module.go +20 -22
  61. package/x/swingset/types/codec.go +10 -5
  62. package/x/swingset/types/default-params.go +13 -12
  63. package/x/swingset/types/expected_keepers.go +5 -4
  64. package/x/swingset/types/msgs.go +50 -36
  65. package/x/swingset/types/msgs.pb.go +60 -51
  66. package/x/swingset/types/params_test.go +21 -20
  67. package/x/swingset/types/swingset.pb.go +67 -61
  68. package/x/vbank/genesis.go +12 -8
  69. package/x/vbank/handler.go +2 -1
  70. package/x/vbank/keeper/grpc_query.go +4 -1
  71. package/x/vbank/keeper/keeper.go +108 -23
  72. package/x/vbank/keeper/querier.go +4 -1
  73. package/x/vbank/keeper/rewards.go +6 -2
  74. package/x/vbank/module.go +47 -75
  75. package/x/vbank/types/expected_keepers.go +15 -10
  76. package/x/vbank/types/key.go +3 -0
  77. package/x/vbank/types/params.go +4 -3
  78. package/x/vbank/types/vbank.pb.go +41 -40
  79. package/x/vbank/vbank.go +25 -10
  80. package/x/vbank/vbank_test.go +213 -154
  81. package/x/vibc/handler.go +2 -1
  82. package/x/vibc/keeper/keeper.go +10 -10
  83. package/x/vibc/keeper/migrations.go +1 -1
  84. package/x/vibc/keeper/triggers.go +1 -1
  85. package/x/vibc/module.go +5 -22
  86. package/x/vibc/types/codec.go +2 -1
  87. package/x/vibc/types/expected_keepers.go +7 -5
  88. package/x/vibc/types/ibc_module.go +5 -5
  89. package/x/vibc/types/msgs.go +30 -7
  90. package/x/vibc/types/msgs.pb.go +29 -25
  91. package/x/vibc/types/receiver.go +2 -2
  92. package/x/vlocalchain/handler.go +2 -1
  93. package/x/vlocalchain/keeper/keeper.go +17 -5
  94. package/x/vlocalchain/keeper/keeper_test.go +3 -2
  95. package/x/vlocalchain/types/expected_keepers.go +7 -4
  96. package/x/vlocalchain/vlocalchain_test.go +38 -26
  97. package/x/vstorage/genesis.go +10 -10
  98. package/x/vstorage/handler.go +2 -1
  99. package/x/vstorage/keeper/keeper.go +68 -46
  100. package/x/vstorage/keeper/keeper_test.go +35 -19
  101. package/x/vstorage/module.go +27 -13
  102. package/x/vstorage/testing/queue.go +5 -3
  103. package/x/vstorage/vstorage.go +2 -1
  104. package/x/vstorage/vstorage_test.go +21 -17
  105. package/x/vtransfer/genesis.go +1 -3
  106. package/x/vtransfer/handler.go +3 -2
  107. package/x/vtransfer/ibc_middleware.go +5 -5
  108. package/x/vtransfer/ibc_middleware_test.go +43 -29
  109. package/x/vtransfer/keeper/keeper.go +35 -33
  110. package/x/vtransfer/module.go +8 -11
  111. package/x/vtransfer/types/expected_keepers.go +3 -3
  112. package/x/vtransfer/utils_test.go +26 -11
  113. package/daemon/cmd/testnet.go +0 -539
@@ -2,20 +2,20 @@ syntax = "proto3";
2
2
 
3
3
  package ibc.core.client.v1;
4
4
 
5
- option go_package = "github.com/cosmos/ibc-go/v7/modules/core/02-client/types";
5
+ option go_package = "github.com/cosmos/ibc-go/v8/modules/core/02-client/types";
6
6
 
7
- import "gogoproto/gogo.proto";
8
- import "google/protobuf/any.proto";
9
7
  import "cosmos/upgrade/v1beta1/upgrade.proto";
10
8
  import "cosmos_proto/cosmos.proto";
9
+ import "gogoproto/gogo.proto";
10
+ import "google/protobuf/any.proto";
11
11
 
12
12
  // IdentifiedClientState defines a client state with an additional client
13
13
  // identifier field.
14
14
  message IdentifiedClientState {
15
15
  // client identifier
16
- string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""];
16
+ string client_id = 1;
17
17
  // client state
18
- google.protobuf.Any client_state = 2 [(gogoproto.moretags) = "yaml:\"client_state\""];
18
+ google.protobuf.Any client_state = 2;
19
19
  }
20
20
 
21
21
  // ConsensusStateWithHeight defines a consensus state with an additional height
@@ -24,26 +24,58 @@ message ConsensusStateWithHeight {
24
24
  // consensus state height
25
25
  Height height = 1 [(gogoproto.nullable) = false];
26
26
  // consensus state
27
- google.protobuf.Any consensus_state = 2 [(gogoproto.moretags) = "yaml:\"consensus_state\""];
27
+ google.protobuf.Any consensus_state = 2;
28
28
  }
29
29
 
30
30
  // ClientConsensusStates defines all the stored consensus states for a given
31
31
  // client.
32
32
  message ClientConsensusStates {
33
33
  // client identifier
34
- string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""];
34
+ string client_id = 1;
35
35
  // consensus states and their heights associated with the client
36
- repeated ConsensusStateWithHeight consensus_states = 2
37
- [(gogoproto.moretags) = "yaml:\"consensus_states\"", (gogoproto.nullable) = false];
36
+ repeated ConsensusStateWithHeight consensus_states = 2 [(gogoproto.nullable) = false];
37
+ }
38
+
39
+ // Height is a monotonically increasing data type
40
+ // that can be compared against another Height for the purposes of updating and
41
+ // freezing clients
42
+ //
43
+ // Normally the RevisionHeight is incremented at each height while keeping
44
+ // RevisionNumber the same. However some consensus algorithms may choose to
45
+ // reset the height in certain conditions e.g. hard forks, state-machine
46
+ // breaking changes In these cases, the RevisionNumber is incremented so that
47
+ // height continues to be monitonically increasing even as the RevisionHeight
48
+ // gets reset
49
+ message Height {
50
+ option (gogoproto.goproto_getters) = false;
51
+ option (gogoproto.goproto_stringer) = false;
52
+
53
+ // the revision that the client is currently on
54
+ uint64 revision_number = 1;
55
+ // the height within the given revision
56
+ uint64 revision_height = 2;
57
+ }
58
+
59
+ // Params defines the set of IBC light client parameters.
60
+ message Params {
61
+ // allowed_clients defines the list of allowed client state types which can be created
62
+ // and interacted with. If a client type is removed from the allowed clients list, usage
63
+ // of this client will be disabled until it is added again to the list.
64
+ repeated string allowed_clients = 1;
38
65
  }
39
66
 
40
- // ClientUpdateProposal is a governance proposal. If it passes, the substitute
67
+ // ClientUpdateProposal is a legacy governance proposal. If it passes, the substitute
41
68
  // client's latest consensus state is copied over to the subject client. The proposal
42
69
  // handler may fail if the subject and the substitute do not match in client and
43
70
  // chain parameters (with exception to latest height, frozen height, and chain-id).
71
+ //
72
+ // Deprecated: Please use MsgRecoverClient in favour of this message type.
44
73
  message ClientUpdateProposal {
45
- option (gogoproto.goproto_getters) = false;
74
+ option deprecated = true;
75
+
46
76
  option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";
77
+ option (gogoproto.goproto_getters) = false;
78
+
47
79
  // the title of the update proposal
48
80
  string title = 1;
49
81
  // the description of the proposal
@@ -57,11 +89,15 @@ message ClientUpdateProposal {
57
89
 
58
90
  // UpgradeProposal is a gov Content type for initiating an IBC breaking
59
91
  // upgrade.
92
+ //
93
+ // Deprecated: Please use MsgIBCSoftwareUpgrade in favour of this message type.
60
94
  message UpgradeProposal {
95
+ option deprecated = true;
96
+
97
+ option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";
61
98
  option (gogoproto.goproto_getters) = false;
62
99
  option (gogoproto.goproto_stringer) = false;
63
100
  option (gogoproto.equal) = true;
64
- option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";
65
101
 
66
102
  string title = 1;
67
103
  string description = 2;
@@ -75,31 +111,3 @@ message UpgradeProposal {
75
111
  // planned chain upgrades
76
112
  google.protobuf.Any upgraded_client_state = 4 [(gogoproto.moretags) = "yaml:\"upgraded_client_state\""];
77
113
  }
78
-
79
- // Height is a monotonically increasing data type
80
- // that can be compared against another Height for the purposes of updating and
81
- // freezing clients
82
- //
83
- // Normally the RevisionHeight is incremented at each height while keeping
84
- // RevisionNumber the same. However some consensus algorithms may choose to
85
- // reset the height in certain conditions e.g. hard forks, state-machine
86
- // breaking changes In these cases, the RevisionNumber is incremented so that
87
- // height continues to be monitonically increasing even as the RevisionHeight
88
- // gets reset
89
- message Height {
90
- option (gogoproto.goproto_getters) = false;
91
- option (gogoproto.goproto_stringer) = false;
92
-
93
- // the revision that the client is currently on
94
- uint64 revision_number = 1 [(gogoproto.moretags) = "yaml:\"revision_number\""];
95
- // the height within the given revision
96
- uint64 revision_height = 2 [(gogoproto.moretags) = "yaml:\"revision_height\""];
97
- }
98
-
99
- // Params defines the set of IBC light client parameters.
100
- message Params {
101
- // allowed_clients defines the list of allowed client state types which can be created
102
- // and interacted with. If a client type is removed from the allowed clients list, usage
103
- // of this client will be disabled until it is added again to the list.
104
- repeated string allowed_clients = 1 [(gogoproto.moretags) = "yaml:\"allowed_clients\""];
105
- }
@@ -7,8 +7,8 @@ import (
7
7
  "github.com/cosmos/cosmos-sdk/codec"
8
8
  "github.com/cosmos/cosmos-sdk/types/bech32"
9
9
 
10
- transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
11
- ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported"
10
+ transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
11
+ ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported"
12
12
  )
13
13
 
14
14
  type AddressRole string
@@ -8,9 +8,9 @@ import (
8
8
  codec "github.com/cosmos/cosmos-sdk/codec"
9
9
  cdctypes "github.com/cosmos/cosmos-sdk/codec/types"
10
10
 
11
- transfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
12
- clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
13
- channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
11
+ transfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
12
+ clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"
13
+ channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"
14
14
 
15
15
  agtypes "github.com/Agoric/agoric-sdk/golang/cosmos/types"
16
16
  )
@@ -3,9 +3,9 @@ package types
3
3
  import (
4
4
  "encoding/json"
5
5
 
6
- clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
7
- channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
8
- "github.com/cosmos/ibc-go/v7/modules/core/exported"
6
+ clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"
7
+ channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"
8
+ "github.com/cosmos/ibc-go/v8/modules/core/exported"
9
9
  )
10
10
 
11
11
  var _ json.Marshaler = IBCPacket{}
@@ -11,9 +11,9 @@ import (
11
11
  "github.com/stretchr/testify/assert"
12
12
  "github.com/stretchr/testify/require"
13
13
 
14
- clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
15
- channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
16
- ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported"
14
+ clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"
15
+ channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"
16
+ ibcexported "github.com/cosmos/ibc-go/v8/modules/core/exported"
17
17
  )
18
18
 
19
19
  func CreateTestChannelPacket() channeltypes.Packet {
@@ -5,9 +5,9 @@ import (
5
5
  "fmt"
6
6
  "io"
7
7
 
8
+ storetypes "cosmossdk.io/store/types"
8
9
  swingsettypes "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/types"
9
10
  vstoragetypes "github.com/Agoric/agoric-sdk/golang/cosmos/x/vstorage/types"
10
- sdk "github.com/cosmos/cosmos-sdk/types"
11
11
  )
12
12
 
13
13
  // These helpers facilitate handling KVEntry streams, in particular for the
@@ -63,11 +63,11 @@ var _ KVEntryReader = &kvIteratorReader{}
63
63
 
64
64
  // kvIteratorReader is a KVEntryReader backed by an sdk.Iterator
65
65
  type kvIteratorReader struct {
66
- iter sdk.Iterator
66
+ iter storetypes.Iterator
67
67
  }
68
68
 
69
69
  // NewKVIteratorReader returns a KVEntryReader backed by an sdk.Iterator.
70
- func NewKVIteratorReader(iter sdk.Iterator) KVEntryReader {
70
+ func NewKVIteratorReader(iter storetypes.Iterator) KVEntryReader {
71
71
  return &kvIteratorReader{
72
72
  iter: iter,
73
73
  }
@@ -7,7 +7,7 @@ import (
7
7
  "strings"
8
8
  "testing"
9
9
 
10
- sdk "github.com/cosmos/cosmos-sdk/types"
10
+ storetypes "cosmossdk.io/store/types"
11
11
  )
12
12
 
13
13
  func toKVEntryIdentity(entry KVEntry) (KVEntry, error) {
@@ -99,7 +99,7 @@ type kvEntryReaderIterator struct {
99
99
 
100
100
  // newKVEntryReaderIterator creates an iterator over a KVEntryReader.
101
101
  // KVEntry keys and values are reported as []byte from the reader in order.
102
- func newKVEntryReaderIterator(reader KVEntryReader) sdk.Iterator {
102
+ func newKVEntryReaderIterator(reader KVEntryReader) storetypes.Iterator {
103
103
  iter := &kvEntryReaderIterator{
104
104
  reader: reader,
105
105
  }
@@ -0,0 +1,58 @@
1
+ package types
2
+
3
+ import (
4
+ "encoding/json"
5
+ fmt "fmt"
6
+ io "io"
7
+
8
+ "cosmossdk.io/x/tx/signing/aminojson"
9
+ types "github.com/cosmos/cosmos-sdk/types"
10
+ "google.golang.org/protobuf/reflect/protoreflect"
11
+ )
12
+
13
+ func marshalJson(value interface{}, w io.Writer) error {
14
+ marshalledAddr, err := json.Marshal(value)
15
+ if err != nil {
16
+ return err
17
+ }
18
+ _, err = w.Write(marshalledAddr)
19
+ return err
20
+ }
21
+
22
+ func LegacyAddressEncoder(_enc *aminojson.Encoder, value protoreflect.Value, w io.Writer) error {
23
+ switch valueAddress := value.Interface().(type) {
24
+ case []byte:
25
+ if len(valueAddress) == 0 {
26
+ err := marshalJson("", w)
27
+ return err
28
+ }
29
+ err := types.VerifyAddressFormat(valueAddress)
30
+ if err != nil {
31
+ return err
32
+ }
33
+ var accAddr types.AccAddress = valueAddress
34
+ err = marshalJson(accAddr, w)
35
+ if err != nil {
36
+ return err
37
+ }
38
+ return nil
39
+
40
+ case string:
41
+ if valueAddress == "" {
42
+ err := marshalJson(valueAddress, w)
43
+ return err
44
+ }
45
+ accAddr, err := types.AccAddressFromBech32(valueAddress)
46
+ if err != nil {
47
+ return err
48
+ }
49
+ err = marshalJson(accAddr, w)
50
+ if err != nil {
51
+ return err
52
+ }
53
+ return nil
54
+
55
+ default:
56
+ return fmt.Errorf("address cannot be encoded wrong type")
57
+ }
58
+ }
@@ -46,7 +46,7 @@ func TestProtoJSONMarshal(t *testing.T) {
46
46
  {
47
47
  "MsgDelegate",
48
48
  func() interface{} {
49
- return stakingtypes.NewMsgDelegate(accAddr, valAddr, coin)
49
+ return stakingtypes.NewMsgDelegate(accAddr.String(), valAddr.String(), coin)
50
50
  },
51
51
  `{"delegatorAddress":"cosmos1qy352eufjjmc9c","validatorAddress":"cosmosvaloper1npm9gvss52mlmk","amount":{"denom":"uatom","amount":"1234567"}}`,
52
52
  },
package/vm/server.go CHANGED
@@ -5,6 +5,7 @@ import (
5
5
  "fmt"
6
6
  "sync"
7
7
 
8
+ storetypes "cosmossdk.io/store/types"
8
9
  sdk "github.com/cosmos/cosmos-sdk/types"
9
10
  )
10
11
 
@@ -45,7 +46,7 @@ func (s *AgdServer) SetControllerContext(ctx sdk.Context) func() {
45
46
  // own meter usage.
46
47
  s.mtx.Lock()
47
48
  defer s.mtx.Unlock()
48
- s.currentCtx = sdk.WrapSDKContext(ctx.WithGasMeter(sdk.NewInfiniteGasMeter()))
49
+ s.currentCtx = sdk.WrapSDKContext(ctx.WithGasMeter(storetypes.NewInfiniteGasMeter()))
49
50
  return func() {
50
51
  s.mtx.Lock()
51
52
  defer s.mtx.Unlock()
@@ -32,7 +32,7 @@ type afterCommitBlockAction struct {
32
32
  *vm.ActionHeader `actionType:"AFTER_COMMIT_BLOCK"`
33
33
  }
34
34
 
35
- func BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock, keeper Keeper) error {
35
+ func BeginBlock(ctx sdk.Context, keeper Keeper) error {
36
36
  defer telemetry.ModuleMeasureSince(types.ModuleName, time.Now(), telemetry.MetricKeyBeginBlocker)
37
37
 
38
38
  action := beginBlockAction{
@@ -53,7 +53,7 @@ func BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock, keeper Keeper) erro
53
53
  var endBlockHeight int64
54
54
  var endBlockTime int64
55
55
 
56
- func EndBlock(ctx sdk.Context, req abci.RequestEndBlock, keeper Keeper) ([]abci.ValidatorUpdate, error) {
56
+ func EndBlock(ctx sdk.Context, keeper Keeper) ([]abci.ValidatorUpdate, error) {
57
57
  defer telemetry.ModuleMeasureSince(types.ModuleName, time.Now(), telemetry.MetricKeyEndBlocker)
58
58
 
59
59
  action := endBlockAction{}
@@ -83,10 +83,6 @@ is an "Ack" integer.`,
83
83
  }
84
84
 
85
85
  msg := types.NewMsgDeliverInbound(msgs, cctx.GetFromAddress())
86
- if err := msg.ValidateBasic(); err != nil {
87
- return err
88
- }
89
-
90
86
  return tx.GenerateOrBroadcastTxCLI(cctx, cmd.Flags(), msg)
91
87
  },
92
88
  }
@@ -130,9 +126,6 @@ https://github.com/endojs/endo/tree/master/packages/bundle-source`,
130
126
  }
131
127
 
132
128
  msg := types.NewMsgInstallBundle(jsonIn, cctx.GetFromAddress())
133
- if err := msg.ValidateBasic(); err != nil {
134
- return err
135
- }
136
129
 
137
130
  compress, err := cmd.Flags().GetBool(FlagCompress)
138
131
  if err != nil {
@@ -144,7 +137,6 @@ https://github.com/endojs/endo/tree/master/packages/bundle-source`,
144
137
  return err
145
138
  }
146
139
  // re-validate to be sure
147
- err = msg.ValidateBasic()
148
140
  if err != nil {
149
141
  return err
150
142
  }
@@ -215,13 +207,23 @@ func GetCmdWalletAction() *cobra.Command {
215
207
  if err != nil {
216
208
  return err
217
209
  }
210
+
218
211
  var msg sdk.Msg
212
+
213
+ // If spend is true, we create a MsgWalletSpendAction, otherwise a MsgWalletAction.
214
+ // This is a bit of a hack, but it allows us to use the same command for both types of actions.
215
+ // The MsgWalletSpendAction is a special case that allows the action to spend assets.
216
+ // The MsgWalletAction is a general action that does not allow spending.
219
217
  if spend {
220
- msg = types.NewMsgWalletSpendAction(owner, action)
218
+ m := types.NewMsgWalletSpendAction(owner, action)
219
+ err = m.ValidateBasic()
220
+ msg = m
221
221
  } else {
222
- msg = types.NewMsgWalletAction(owner, action)
222
+ m := types.NewMsgWalletAction(owner, action)
223
+ err = m.ValidateBasic()
224
+ msg = m
223
225
  }
224
- err = msg.ValidateBasic()
226
+
225
227
  if err != nil {
226
228
  return err
227
229
  }
@@ -304,12 +306,12 @@ Specify at least one pair of permit.json and code.js files`,
304
306
  return err
305
307
  }
306
308
 
307
- msg, err := govv1beta1.NewMsgSubmitProposal(content, deposit, from)
308
- if err != nil {
309
+ if err = content.ValidateBasic(); err != nil {
309
310
  return err
310
311
  }
311
312
 
312
- if err = msg.ValidateBasic(); err != nil {
313
+ msg, err := govv1beta1.NewMsgSubmitProposal(content, deposit, from)
314
+ if err != nil {
313
315
  return err
314
316
  }
315
317
 
@@ -6,10 +6,10 @@ import (
6
6
 
7
7
  "github.com/spf13/viper"
8
8
 
9
+ pruningtypes "cosmossdk.io/store/pruning/types"
9
10
  "github.com/cosmos/cosmos-sdk/client/flags"
10
11
  serverconfig "github.com/cosmos/cosmos-sdk/server/config"
11
12
  servertypes "github.com/cosmos/cosmos-sdk/server/types"
12
- pruningtypes "github.com/cosmos/cosmos-sdk/store/pruning/types"
13
13
 
14
14
  "github.com/Agoric/agoric-sdk/golang/cosmos/util"
15
15
  )
@@ -10,6 +10,7 @@ import (
10
10
  "io"
11
11
  "strings"
12
12
 
13
+ storetypes "cosmossdk.io/store/types"
13
14
  agoric "github.com/Agoric/agoric-sdk/golang/cosmos/types"
14
15
  "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/keeper"
15
16
  "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/types"
@@ -204,7 +205,7 @@ func ExportGenesis(
204
205
  type swingStoreGenesisEventHandler struct {
205
206
  exportDir string
206
207
  snapshotHeight uint64
207
- swingStore sdk.KVStore
208
+ swingStore storetypes.KVStore
208
209
  hasher hash.Hash
209
210
  exportMode string
210
211
  }
@@ -6,12 +6,13 @@ import (
6
6
  "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/keeper"
7
7
 
8
8
  sdkioerrors "cosmossdk.io/errors"
9
+ "github.com/cosmos/cosmos-sdk/baseapp"
9
10
  sdk "github.com/cosmos/cosmos-sdk/types"
10
11
  sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
11
12
  )
12
13
 
13
14
  // NewHandler returns a handler for "swingset" type messages.
14
- func NewHandler(k Keeper) sdk.Handler {
15
+ func NewHandler(k Keeper) baseapp.MsgServiceHandler {
15
16
  msgServer := keeper.NewMsgServerImpl(k)
16
17
 
17
18
  return func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
@@ -7,11 +7,11 @@ import (
7
7
  "io"
8
8
  "math"
9
9
 
10
+ "cosmossdk.io/log"
11
+ snapshots "cosmossdk.io/store/snapshots/types"
10
12
  agoric "github.com/Agoric/agoric-sdk/golang/cosmos/types"
11
13
  "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/types"
12
- "github.com/cometbft/cometbft/libs/log"
13
14
  "github.com/cosmos/cosmos-sdk/baseapp"
14
- snapshots "github.com/cosmos/cosmos-sdk/snapshots/types"
15
15
  )
16
16
 
17
17
  // This module implements a Cosmos ExtensionSnapshotter to capture and restore
@@ -77,10 +77,19 @@ func NewExtensionSnapshotter(
77
77
  swingStoreExportsHandler *SwingStoreExportsHandler,
78
78
  getSwingStoreExportDataShadowCopyReader func(height int64) agoric.KVEntryReader,
79
79
  ) *ExtensionSnapshotter {
80
+ isConfigured := func() bool {
81
+ return app.SnapshotManager() != nil
82
+ }
83
+ takeAppSnapshot := func(height int64) {
84
+ if isConfigured() {
85
+ app.SnapshotManager().Snapshot(height)
86
+ }
87
+ }
88
+ logger := app.Logger().With("module", fmt.Sprintf("x/%s", types.ModuleName), "submodule", "extension snapshotter")
80
89
  return &ExtensionSnapshotter{
81
- isConfigured: func() bool { return app.SnapshotManager() != nil },
82
- takeAppSnapshot: app.Snapshot,
83
- logger: app.Logger().With("module", fmt.Sprintf("x/%s", types.ModuleName), "submodule", "extension snapshotter"),
90
+ isConfigured: isConfigured,
91
+ takeAppSnapshot: takeAppSnapshot,
92
+ logger: logger,
84
93
  swingStoreExportsHandler: swingStoreExportsHandler,
85
94
  getSwingStoreExportDataShadowCopyReader: getSwingStoreExportDataShadowCopyReader,
86
95
  activeSnapshot: nil,
@@ -4,7 +4,7 @@ import (
4
4
  "io"
5
5
  "testing"
6
6
 
7
- "github.com/cometbft/cometbft/libs/log"
7
+ "cosmossdk.io/log"
8
8
  )
9
9
 
10
10
  func newTestExtensionSnapshotter() *ExtensionSnapshotter {
@@ -7,14 +7,14 @@ import (
7
7
  stdlog "log"
8
8
  "math"
9
9
 
10
+ corestore "cosmossdk.io/core/store"
11
+ "cosmossdk.io/log"
10
12
  sdkmath "cosmossdk.io/math"
11
-
12
- "github.com/cometbft/cometbft/libs/log"
13
-
13
+ "cosmossdk.io/store/prefix"
14
+ storetypes "cosmossdk.io/store/types"
14
15
  "github.com/cosmos/cosmos-sdk/baseapp"
15
16
  "github.com/cosmos/cosmos-sdk/codec"
16
- "github.com/cosmos/cosmos-sdk/store/prefix"
17
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
17
+ "github.com/cosmos/cosmos-sdk/runtime"
18
18
  sdk "github.com/cosmos/cosmos-sdk/types"
19
19
  bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
20
20
  paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
@@ -53,9 +53,9 @@ const (
53
53
 
54
54
  // Keeper maintains the link to data vstorage and exposes getter/setter methods for the various parts of the state machine
55
55
  type Keeper struct {
56
- storeKey storetypes.StoreKey
57
- cdc codec.Codec
58
- paramSpace paramtypes.Subspace
56
+ storeService corestore.KVStoreService
57
+ cdc codec.Codec
58
+ paramSpace paramtypes.Subspace
59
59
 
60
60
  accountKeeper types.AccountKeeper
61
61
  bankKeeper bankkeeper.Keeper
@@ -71,7 +71,8 @@ var _ ante.SwingsetKeeper = &Keeper{}
71
71
 
72
72
  // NewKeeper creates a new IBC transfer Keeper instance
73
73
  func NewKeeper(
74
- cdc codec.Codec, key storetypes.StoreKey, paramSpace paramtypes.Subspace,
74
+ cdc codec.Codec, storeService corestore.KVStoreService,
75
+ paramSpace paramtypes.Subspace,
75
76
  accountKeeper types.AccountKeeper, bankKeeper bankkeeper.Keeper,
76
77
  vstorageKeeper vstoragekeeper.Keeper, feeCollectorName string,
77
78
  callToController func(ctx sdk.Context, str string) (string, error),
@@ -83,8 +84,8 @@ func NewKeeper(
83
84
  }
84
85
 
85
86
  return Keeper{
86
- storeKey: key,
87
87
  cdc: cdc,
88
+ storeService: storeService,
88
89
  paramSpace: paramSpace,
89
90
  accountKeeper: accountKeeper,
90
91
  bankKeeper: bankKeeper,
@@ -171,7 +172,7 @@ func (k Keeper) GetSmartWalletState(ctx sdk.Context, addr sdk.AccAddress) types.
171
172
  }
172
173
 
173
174
  func (k Keeper) InboundQueueLength(ctx sdk.Context) (int32, error) {
174
- size := sdk.NewInt(0)
175
+ size := sdkmath.NewInt(0)
175
176
 
176
177
  highPriorityQueueLength, err := k.vstorageKeeper.GetQueueLength(ctx, StoragePathHighPriorityQueue)
177
178
  if err != nil {
@@ -258,7 +259,8 @@ func (k Keeper) SetParams(ctx sdk.Context, params types.Params) {
258
259
  }
259
260
 
260
261
  func (k Keeper) GetState(ctx sdk.Context) types.State {
261
- store := ctx.KVStore(k.storeKey)
262
+ kvstore := k.storeService.OpenKVStore(ctx)
263
+ store := runtime.KVStoreAdapter(kvstore)
262
264
  bz := store.Get([]byte(stateKey))
263
265
  state := types.State{}
264
266
  k.cdc.MustUnmarshal(bz, &state)
@@ -266,7 +268,8 @@ func (k Keeper) GetState(ctx sdk.Context) types.State {
266
268
  }
267
269
 
268
270
  func (k Keeper) SetState(ctx sdk.Context, state types.State) {
269
- store := ctx.KVStore(k.storeKey)
271
+ kvstore := k.storeService.OpenKVStore(ctx)
272
+ store := runtime.KVStoreAdapter(kvstore)
270
273
  bz := k.cdc.MustMarshal(&state)
271
274
  store.Set([]byte(stateKey), bz)
272
275
  }
@@ -323,8 +326,8 @@ func (k Keeper) ChargeBeans(
323
326
  beansToDebit := nowOwing.Sub(remainderOwing)
324
327
 
325
328
  // Convert the debit to coins.
326
- beansPerFeeUnitDec := sdk.NewDecFromBigInt(beansPerUnit[types.BeansPerFeeUnit].BigInt())
327
- beansToDebitDec := sdk.NewDecFromBigInt(beansToDebit.BigInt())
329
+ beansPerFeeUnitDec := sdkmath.LegacyNewDecFromBigInt(beansPerUnit[types.BeansPerFeeUnit].BigInt())
330
+ beansToDebitDec := sdkmath.LegacyNewDecFromBigInt(beansToDebit.BigInt())
328
331
  feeUnitPrice := k.GetParams(ctx).FeeUnitPrice
329
332
  feeDecCoins := sdk.NewDecCoinsFromCoins(feeUnitPrice...).MulDec(beansToDebitDec).QuoDec(beansPerFeeUnitDec)
330
333
 
@@ -485,8 +488,9 @@ func (k Keeper) SetMailbox(ctx sdk.Context, peer string, mailbox string) {
485
488
  k.vstorageKeeper.LegacySetStorageAndNotify(ctx, agoric.NewKVEntry(path, mailbox))
486
489
  }
487
490
 
488
- func (k Keeper) GetSwingStore(ctx sdk.Context) sdk.KVStore {
489
- store := ctx.KVStore(k.storeKey)
491
+ func (k Keeper) GetSwingStore(ctx sdk.Context) storetypes.KVStore {
492
+ kvstore := k.storeService.OpenKVStore(ctx)
493
+ store := runtime.KVStoreAdapter(kvstore)
490
494
  return prefix.NewStore(store, []byte(swingStoreKeyPrefix))
491
495
  }
492
496
 
@@ -5,13 +5,15 @@ import (
5
5
  "reflect"
6
6
  "testing"
7
7
 
8
+ "cosmossdk.io/log"
9
+ "cosmossdk.io/store"
10
+ storemetrics "cosmossdk.io/store/metrics"
11
+ prefixstore "cosmossdk.io/store/prefix"
12
+ storetypes "cosmossdk.io/store/types"
8
13
  "github.com/Agoric/agoric-sdk/golang/cosmos/x/swingset/types"
9
- "github.com/cosmos/cosmos-sdk/store"
10
- prefixstore "github.com/cosmos/cosmos-sdk/store/prefix"
11
- storetypes "github.com/cosmos/cosmos-sdk/store/types"
12
14
  sdk "github.com/cosmos/cosmos-sdk/types"
13
15
 
14
- dbm "github.com/cometbft/cometbft-db"
16
+ dbm "github.com/cosmos/cosmos-db"
15
17
  )
16
18
 
17
19
  func mkcoin(denom string) func(amt int64) sdk.Coin {
@@ -188,7 +190,7 @@ func Test_calculateFees(t *testing.T) {
188
190
  t.Errorf("calculateFees() error = %v, want %v", err, tt.errMsg)
189
191
  return
190
192
  }
191
- if !got.IsEqual(tt.want) {
193
+ if !got.Equal(tt.want) {
192
194
  t.Errorf("calculateFees() = %v, want %v", got, tt.want)
193
195
  }
194
196
  })
@@ -199,9 +201,10 @@ var (
199
201
  swingsetStoreKey = storetypes.NewKVStoreKey(types.StoreKey)
200
202
  )
201
203
 
202
- func makeTestStore() sdk.KVStore {
204
+ func makeTestStore() storetypes.KVStore {
203
205
  db := dbm.NewMemDB()
204
- ms := store.NewCommitMultiStore(db)
206
+ logger := log.NewNopLogger()
207
+ ms := store.NewCommitMultiStore(db, logger, storemetrics.NewNoOpMetrics())
205
208
  ms.MountStoreWithDB(swingsetStoreKey, storetypes.StoreTypeIAVL, db)
206
209
  err := ms.LoadLatestVersion()
207
210
  if err != nil {