@agoric/cosmos 0.35.0-upgrade-14-dev-0169c7e.0 → 0.35.0-upgrade-16-dev-07b0130.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 (169) hide show
  1. package/CHANGELOG.md +121 -77
  2. package/MAINTAINERS.md +3 -0
  3. package/Makefile +49 -26
  4. package/ante/ante.go +11 -11
  5. package/ante/inbound_test.go +3 -2
  6. package/ante/vm_admission.go +2 -1
  7. package/app/app.go +260 -175
  8. package/app/export.go +13 -6
  9. package/app/upgrade.go +76 -0
  10. package/cmd/agd/agvm.go +42 -0
  11. package/cmd/agd/main.go +132 -11
  12. package/cmd/libdaemon/main.go +67 -53
  13. package/cmd/libdaemon/main_test.go +2 -1
  14. package/daemon/cmd/genaccounts.go +13 -9
  15. package/daemon/cmd/root.go +186 -73
  16. package/daemon/cmd/root_test.go +190 -2
  17. package/daemon/cmd/testnet.go +17 -6
  18. package/daemon/main.go +6 -3
  19. package/e2e_test/Makefile +29 -0
  20. package/e2e_test/README.md +100 -0
  21. package/e2e_test/go.mod +217 -0
  22. package/e2e_test/go.sum +1323 -0
  23. package/e2e_test/ibc_conformance_test.go +56 -0
  24. package/e2e_test/pfm_test.go +613 -0
  25. package/e2e_test/util.go +271 -0
  26. package/git-revision.txt +1 -1
  27. package/go.mod +110 -68
  28. package/go.sum +601 -248
  29. package/package.json +9 -5
  30. package/proto/agoric/swingset/genesis.proto +4 -0
  31. package/proto/agoric/swingset/swingset.proto +1 -1
  32. package/proto/agoric/vlocalchain/.clang-format +7 -0
  33. package/proto/agoric/vlocalchain/vlocalchain.proto +31 -0
  34. package/proto/agoric/vstorage/query.proto +53 -1
  35. package/proto/agoric/vtransfer/genesis.proto +18 -0
  36. package/scripts/protocgen.sh +16 -6
  37. package/third_party/proto/buf.yaml +1 -0
  38. package/third_party/proto/cosmos/base/query/v1beta1/pagination.proto +4 -1
  39. package/third_party/proto/cosmos/base/v1beta1/coin.proto +7 -4
  40. package/third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto +16 -6
  41. package/third_party/proto/cosmos_proto/cosmos.proto +97 -0
  42. package/third_party/proto/google/api/annotations.proto +1 -1
  43. package/third_party/proto/google/api/http.proto +181 -120
  44. package/third_party/proto/google/api/httpbody.proto +9 -6
  45. package/third_party/proto/google/protobuf/any.proto +1 -7
  46. package/third_party/proto/ibc/core/channel/v1/channel.proto +15 -1
  47. package/third_party/proto/ibc/core/client/v1/client.proto +9 -6
  48. package/types/kv_entry_helpers.go +42 -0
  49. package/upgradegaia.sh +21 -12
  50. package/vm/action.go +28 -24
  51. package/vm/action_test.go +36 -16
  52. package/vm/client.go +113 -0
  53. package/vm/client_test.go +182 -0
  54. package/vm/controller.go +18 -42
  55. package/vm/core_proposals.go +22 -2
  56. package/vm/jsonrpcconn/jsonrpcconn.go +160 -0
  57. package/vm/jsonrpcconn/jsonrpcconn_test.go +126 -0
  58. package/vm/proto_json.go +38 -0
  59. package/vm/proto_json_test.go +103 -0
  60. package/vm/server.go +124 -0
  61. package/x/swingset/abci.go +10 -10
  62. package/x/swingset/alias.go +2 -0
  63. package/x/swingset/client/cli/query.go +2 -2
  64. package/x/swingset/client/cli/tx.go +52 -33
  65. package/x/swingset/client/proposal_handler.go +2 -17
  66. package/x/swingset/genesis.go +84 -24
  67. package/x/swingset/handler.go +2 -1
  68. package/x/swingset/keeper/extension_snapshotter.go +2 -2
  69. package/x/swingset/keeper/keeper.go +21 -36
  70. package/x/swingset/keeper/keeper_test.go +1 -1
  71. package/x/swingset/keeper/msg_server.go +20 -22
  72. package/x/swingset/keeper/proposal.go +13 -3
  73. package/x/swingset/keeper/querier.go +23 -14
  74. package/x/swingset/keeper/swing_store_exports_handler.go +21 -6
  75. package/x/swingset/keeper/test_utils.go +16 -0
  76. package/x/swingset/module.go +7 -7
  77. package/x/swingset/proposal_handler.go +5 -4
  78. package/x/swingset/swingset.go +4 -2
  79. package/x/swingset/testing/queue.go +17 -0
  80. package/x/swingset/types/codec.go +2 -2
  81. package/x/swingset/types/default-params.go +1 -1
  82. package/x/swingset/types/expected_keepers.go +3 -2
  83. package/x/swingset/types/genesis.pb.go +78 -25
  84. package/x/swingset/types/msgs.go +44 -24
  85. package/x/swingset/types/msgs.pb.go +16 -16
  86. package/x/swingset/types/params.go +2 -1
  87. package/x/swingset/types/proposal.go +10 -9
  88. package/x/swingset/types/swingset.pb.go +1 -1
  89. package/x/swingset/types/types.go +30 -28
  90. package/x/vbank/genesis.go +0 -2
  91. package/x/vbank/handler.go +2 -1
  92. package/x/vbank/keeper/keeper.go +3 -2
  93. package/x/vbank/keeper/querier.go +9 -4
  94. package/x/vbank/keeper/rewards.go +1 -1
  95. package/x/vbank/module.go +0 -5
  96. package/x/vbank/types/msgs.go +0 -12
  97. package/x/vbank/vbank.go +20 -19
  98. package/x/vbank/vbank_test.go +10 -10
  99. package/x/vibc/alias.go +3 -0
  100. package/x/vibc/handler.go +16 -9
  101. package/x/vibc/keeper/keeper.go +112 -74
  102. package/x/vibc/keeper/triggers.go +101 -0
  103. package/x/vibc/module.go +5 -8
  104. package/x/vibc/types/expected_keepers.go +26 -5
  105. package/x/vibc/types/ibc_module.go +336 -0
  106. package/x/vibc/types/msgs.go +1 -1
  107. package/x/vibc/types/msgs.pb.go +1 -1
  108. package/x/vibc/types/receiver.go +170 -0
  109. package/x/vlocalchain/alias.go +19 -0
  110. package/x/vlocalchain/handler.go +21 -0
  111. package/x/vlocalchain/keeper/keeper.go +279 -0
  112. package/x/vlocalchain/keeper/keeper_test.go +97 -0
  113. package/x/vlocalchain/types/codec.go +34 -0
  114. package/x/vlocalchain/types/key.go +27 -0
  115. package/x/vlocalchain/types/msgs.go +16 -0
  116. package/x/vlocalchain/types/vlocalchain.pb.go +1072 -0
  117. package/x/vlocalchain/vlocalchain.go +114 -0
  118. package/x/vlocalchain/vlocalchain_test.go +434 -0
  119. package/x/vstorage/README.md +138 -0
  120. package/x/vstorage/capdata/capdata.go +298 -0
  121. package/x/vstorage/capdata/capdata_test.go +352 -0
  122. package/x/vstorage/client/cli/query.go +51 -4
  123. package/x/vstorage/handler.go +2 -1
  124. package/x/vstorage/keeper/grpc_query.go +220 -0
  125. package/x/vstorage/keeper/keeper.go +16 -22
  126. package/x/vstorage/keeper/keeper_grpc_test.go +300 -0
  127. package/x/vstorage/keeper/keeper_test.go +1 -1
  128. package/x/vstorage/keeper/querier.go +11 -6
  129. package/x/vstorage/keeper/querier_test.go +4 -3
  130. package/x/vstorage/module.go +0 -5
  131. package/x/vstorage/testing/queue.go +27 -0
  132. package/x/vstorage/types/query.pb.go +646 -36
  133. package/x/vstorage/types/query.pb.gw.go +119 -0
  134. package/x/vstorage/vstorage.go +16 -15
  135. package/x/vstorage/vstorage_test.go +5 -5
  136. package/x/vtransfer/alias.go +13 -0
  137. package/x/vtransfer/genesis.go +39 -0
  138. package/x/vtransfer/genesis_test.go +12 -0
  139. package/x/vtransfer/handler.go +20 -0
  140. package/x/vtransfer/ibc_middleware.go +186 -0
  141. package/x/vtransfer/ibc_middleware_test.go +448 -0
  142. package/x/vtransfer/keeper/keeper.go +281 -0
  143. package/x/vtransfer/module.go +124 -0
  144. package/x/vtransfer/types/expected_keepers.go +38 -0
  145. package/x/vtransfer/types/genesis.pb.go +327 -0
  146. package/x/vtransfer/types/key.go +9 -0
  147. package/x/vtransfer/types/msgs.go +9 -0
  148. package/ante/fee.go +0 -96
  149. package/proto/agoric/lien/genesis.proto +0 -25
  150. package/proto/agoric/lien/lien.proto +0 -25
  151. package/x/lien/alias.go +0 -17
  152. package/x/lien/genesis.go +0 -58
  153. package/x/lien/genesis_test.go +0 -101
  154. package/x/lien/keeper/account.go +0 -290
  155. package/x/lien/keeper/keeper.go +0 -254
  156. package/x/lien/keeper/keeper_test.go +0 -623
  157. package/x/lien/lien.go +0 -203
  158. package/x/lien/lien_test.go +0 -529
  159. package/x/lien/module.go +0 -115
  160. package/x/lien/spec/01_concepts.md +0 -146
  161. package/x/lien/spec/02_messages.md +0 -96
  162. package/x/lien/types/accountkeeper.go +0 -81
  163. package/x/lien/types/accountstate.go +0 -27
  164. package/x/lien/types/expected_keepers.go +0 -18
  165. package/x/lien/types/genesis.pb.go +0 -567
  166. package/x/lien/types/key.go +0 -25
  167. package/x/lien/types/lien.pb.go +0 -403
  168. package/x/vibc/ibc.go +0 -393
  169. /package/{src/index.cjs → index.cjs} +0 -0
package/x/vibc/ibc.go DELETED
@@ -1,393 +0,0 @@
1
- package vibc
2
-
3
- import (
4
- "encoding/json"
5
- "fmt"
6
-
7
- "github.com/Agoric/agoric-sdk/golang/cosmos/vm"
8
- sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
9
- capability "github.com/cosmos/cosmos-sdk/x/capability/types"
10
- channeltypes "github.com/cosmos/ibc-go/v4/modules/core/04-channel/types"
11
- porttypes "github.com/cosmos/ibc-go/v4/modules/core/05-port/types"
12
- host "github.com/cosmos/ibc-go/v4/modules/core/24-host"
13
-
14
- "github.com/cosmos/ibc-go/v4/modules/core/exported"
15
-
16
- sdk "github.com/cosmos/cosmos-sdk/types"
17
- )
18
-
19
- var (
20
- _ porttypes.IBCModule = IBCModule{}
21
- )
22
-
23
- type IBCModule struct {
24
- keeper Keeper
25
- }
26
-
27
- type portMessage struct { // comes from swingset's IBC handler
28
- Type string `json:"type"` // IBC_METHOD
29
- Method string `json:"method"`
30
- Packet channeltypes.Packet `json:"packet"`
31
- RelativeTimeoutNs uint64 `json:"relativeTimeoutNs,string"`
32
- Order string `json:"order"`
33
- Hops []string `json:"hops"`
34
- Version string `json:"version"`
35
- Ack []byte `json:"ack"`
36
- }
37
-
38
- func stringToOrder(order string) channeltypes.Order {
39
- switch order {
40
- case "ORDERED":
41
- return channeltypes.ORDERED
42
- case "UNORDERED":
43
- return channeltypes.UNORDERED
44
- default:
45
- return channeltypes.NONE
46
- }
47
- }
48
-
49
- func orderToString(order channeltypes.Order) string {
50
- switch order {
51
- case channeltypes.ORDERED:
52
- return "ORDERED"
53
- case channeltypes.UNORDERED:
54
- return "UNORDERED"
55
- default:
56
- return "NONE"
57
- }
58
- }
59
-
60
- func NewIBCModule(keeper Keeper) IBCModule {
61
- return IBCModule{
62
- keeper: keeper,
63
- }
64
- }
65
-
66
- func (ch IBCModule) Receive(ctx *vm.ControllerContext, str string) (ret string, err error) {
67
- // fmt.Println("ibc.go downcall", str)
68
- keeper := ch.keeper
69
-
70
- msg := new(portMessage)
71
- err = json.Unmarshal([]byte(str), &msg)
72
- if err != nil {
73
- return ret, err
74
- }
75
-
76
- if msg.Type != "IBC_METHOD" {
77
- return "", fmt.Errorf(`channel handler only accepts messages of "type": "IBC_METHOD"`)
78
- }
79
-
80
- switch msg.Method {
81
- case "sendPacket":
82
- seq, ok := keeper.GetNextSequenceSend(
83
- ctx.Context,
84
- msg.Packet.SourcePort,
85
- msg.Packet.SourceChannel,
86
- )
87
- if !ok {
88
- return "", fmt.Errorf("unknown sequence number")
89
- }
90
-
91
- timeoutTimestamp := msg.Packet.TimeoutTimestamp
92
- if msg.Packet.TimeoutHeight.IsZero() && msg.Packet.TimeoutTimestamp == 0 {
93
- // Use the relative timeout if no absolute timeout is specifiied.
94
- timeoutTimestamp = uint64(ctx.Context.BlockTime().UnixNano()) + msg.RelativeTimeoutNs
95
- }
96
-
97
- packet := channeltypes.NewPacket(
98
- msg.Packet.Data, seq,
99
- msg.Packet.SourcePort, msg.Packet.SourceChannel,
100
- msg.Packet.DestinationPort, msg.Packet.DestinationChannel,
101
- msg.Packet.TimeoutHeight, timeoutTimestamp,
102
- )
103
- err = keeper.SendPacket(ctx.Context, packet)
104
- if err == nil {
105
- bytes, err := json.Marshal(&packet)
106
- if err == nil {
107
- ret = string(bytes)
108
- }
109
- }
110
-
111
- case "receiveExecuted":
112
- err = keeper.WriteAcknowledgement(ctx.Context, msg.Packet, msg.Ack)
113
- if err == nil {
114
- ret = "true"
115
- }
116
-
117
- case "startChannelOpenInit":
118
- err = keeper.ChanOpenInit(
119
- ctx.Context, stringToOrder(msg.Order), msg.Hops,
120
- msg.Packet.SourcePort,
121
- msg.Packet.DestinationPort,
122
- msg.Version,
123
- )
124
- if err == nil {
125
- ret = "true"
126
- }
127
-
128
- case "startChannelCloseInit":
129
- err = keeper.ChanCloseInit(ctx.Context, msg.Packet.SourcePort, msg.Packet.SourceChannel)
130
- if err == nil {
131
- ret = "true"
132
- }
133
-
134
- case "bindPort":
135
- err = keeper.BindPort(ctx.Context, msg.Packet.SourcePort)
136
- if err == nil {
137
- ret = "true"
138
- }
139
-
140
- case "timeoutExecuted":
141
- err = keeper.TimeoutExecuted(ctx.Context, msg.Packet)
142
- if err == nil {
143
- ret = "true"
144
- }
145
-
146
- default:
147
- err = fmt.Errorf("unrecognized method %s", msg.Method)
148
- }
149
-
150
- // fmt.Println("ibc.go downcall reply", ret, err)
151
- return
152
- }
153
-
154
- func (im IBCModule) PushAction(ctx sdk.Context, action vm.Action) error {
155
- // fmt.Println("ibc.go upcall", send)
156
- return im.keeper.PushAction(ctx, action)
157
- // fmt.Println("ibc.go upcall reply", reply, err)
158
- }
159
-
160
- // Implement IBCModule callbacks
161
- func (im IBCModule) OnChanOpenInit(
162
- ctx sdk.Context,
163
- order channeltypes.Order,
164
- connectionHops []string,
165
- portID string,
166
- channelID string,
167
- channelCap *capability.Capability,
168
- counterparty channeltypes.Counterparty,
169
- version string,
170
- ) (string, error) {
171
- return "", sdkerrors.Wrap(
172
- channeltypes.ErrChannelNotFound,
173
- fmt.Sprintf("vibc does not allow synthetic channelOpenInit for port %s", portID),
174
- )
175
- }
176
-
177
- type channelOpenTryEvent struct {
178
- vm.ActionHeader `actionType:"IBC_EVENT"`
179
- Event string `json:"event" default:"channelOpenTry"`
180
- Order string `json:"order"`
181
- ConnectionHops []string `json:"connectionHops"`
182
- PortID string `json:"portID"`
183
- ChannelID string `json:"channelID"`
184
- Counterparty channeltypes.Counterparty `json:"counterparty"`
185
- Version string `json:"version"`
186
- }
187
-
188
- func (im IBCModule) OnChanOpenTry(
189
- ctx sdk.Context,
190
- order channeltypes.Order,
191
- connectionHops []string,
192
- portID,
193
- channelID string,
194
- channelCap *capability.Capability,
195
- counterparty channeltypes.Counterparty,
196
- counterpartyVersion string,
197
- ) (string, error) {
198
- event := channelOpenTryEvent{
199
- Order: orderToString(order),
200
- ConnectionHops: connectionHops,
201
- PortID: portID,
202
- ChannelID: channelID,
203
- Counterparty: counterparty,
204
- Version: counterpartyVersion, // TODO: don't just use the counterparty version
205
- }
206
-
207
- err := im.PushAction(ctx, event)
208
- if err != nil {
209
- return "", err
210
- }
211
-
212
- // Claim channel capability passed back by IBC module
213
- if err = im.keeper.ClaimCapability(ctx, channelCap, host.ChannelCapabilityPath(portID, channelID)); err != nil {
214
- return "", sdkerrors.Wrap(channeltypes.ErrChannelCapabilityNotFound, err.Error())
215
- }
216
-
217
- return event.Version, err
218
- }
219
-
220
- type channelOpenAckEvent struct {
221
- vm.ActionHeader `actionType:"IBC_EVENT"`
222
- Event string `json:"event" default:"channelOpenAck"`
223
- PortID string `json:"portID"`
224
- ChannelID string `json:"channelID"`
225
- CounterpartyVersion string `json:"counterpartyVersion"`
226
- Counterparty channeltypes.Counterparty `json:"counterparty"`
227
- ConnectionHops []string `json:"connectionHops"`
228
- }
229
-
230
- func (im IBCModule) OnChanOpenAck(
231
- ctx sdk.Context,
232
- portID,
233
- channelID string,
234
- counterpartyChannelID string,
235
- counterpartyVersion string,
236
- ) error {
237
- // We don't care if the channel was found. If it wasn't then GetChannel
238
- // returns an empty channel object that we can still use without crashing.
239
- channel, _ := im.keeper.GetChannel(ctx, portID, channelID)
240
-
241
- channel.Counterparty.ChannelId = counterpartyChannelID
242
- event := channelOpenAckEvent{
243
- PortID: portID,
244
- ChannelID: channelID,
245
- CounterpartyVersion: counterpartyVersion,
246
- Counterparty: channel.Counterparty,
247
- ConnectionHops: channel.ConnectionHops,
248
- }
249
-
250
- return im.PushAction(ctx, event)
251
- }
252
-
253
- type channelOpenConfirmEvent struct {
254
- vm.ActionHeader `actionType:"IBC_EVENT"`
255
- Event string `json:"event" default:"channelOpenConfirm"`
256
- PortID string `json:"portID"`
257
- ChannelID string `json:"channelID"`
258
- }
259
-
260
- func (im IBCModule) OnChanOpenConfirm(
261
- ctx sdk.Context,
262
- portID,
263
- channelID string,
264
- ) error {
265
- event := channelOpenConfirmEvent{
266
- PortID: portID,
267
- ChannelID: channelID,
268
- }
269
-
270
- return im.PushAction(ctx, event)
271
- }
272
-
273
- type channelCloseInitEvent struct {
274
- vm.ActionHeader `actionType:"IBC_EVENT"`
275
- Event string `json:"event" default:"channelCloseInit"`
276
- PortID string `json:"portID"`
277
- ChannelID string `json:"channelID"`
278
- }
279
-
280
- func (im IBCModule) OnChanCloseInit(
281
- ctx sdk.Context,
282
- portID,
283
- channelID string,
284
- ) error {
285
- event := channelCloseInitEvent{
286
- PortID: portID,
287
- ChannelID: channelID,
288
- }
289
-
290
- err := im.PushAction(ctx, event)
291
- return err
292
- }
293
-
294
- type channelCloseConfirmEvent struct {
295
- vm.ActionHeader `actionType:"IBC_EVENT"`
296
- Event string `json:"event" default:"channelCloseConfirm"`
297
- PortID string `json:"portID"`
298
- ChannelID string `json:"channelID"`
299
- }
300
-
301
- func (im IBCModule) OnChanCloseConfirm(
302
- ctx sdk.Context,
303
- portID,
304
- channelID string,
305
- ) error {
306
- event := channelCloseConfirmEvent{
307
- PortID: portID,
308
- ChannelID: channelID,
309
- }
310
-
311
- err := im.PushAction(ctx, event)
312
- return err
313
- }
314
-
315
- type receivePacketEvent struct {
316
- vm.ActionHeader `actionType:"IBC_EVENT"`
317
- Event string `json:"event" default:"receivePacket"`
318
- Packet channeltypes.Packet `json:"packet"`
319
- }
320
-
321
- func (im IBCModule) OnRecvPacket(
322
- ctx sdk.Context,
323
- packet channeltypes.Packet,
324
- relayer sdk.AccAddress,
325
- ) exported.Acknowledgement {
326
- // Sometimes we receive duplicate packets, just with a
327
- // missing packet.TimeoutTimestamp. This causes duplicate
328
- // acks, with one of them being rejected.
329
- //
330
- // This turns out to happen when you run both "rly start"
331
- // and also "rly tx xfer"-- they both are trying to relay
332
- // the same packets.
333
-
334
- event := receivePacketEvent{
335
- Packet: packet,
336
- }
337
-
338
- err := im.PushAction(ctx, event)
339
- if err != nil {
340
- return channeltypes.NewErrorAcknowledgement(err)
341
- }
342
-
343
- return nil
344
- }
345
-
346
- type acknowledgementPacketEvent struct {
347
- vm.ActionHeader `actionType:"IBC_EVENT"`
348
- Event string `json:"event" default:"acknowledgementPacket"`
349
- Packet channeltypes.Packet `json:"packet"`
350
- Acknowledgement []byte `json:"acknowledgement"`
351
- }
352
-
353
- func (im IBCModule) OnAcknowledgementPacket(
354
- ctx sdk.Context,
355
- packet channeltypes.Packet,
356
- acknowledgement []byte,
357
- relayer sdk.AccAddress,
358
- ) error {
359
- event := acknowledgementPacketEvent{
360
- Packet: packet,
361
- Acknowledgement: acknowledgement,
362
- }
363
-
364
- err := im.PushAction(ctx, event)
365
- if err != nil {
366
- return err
367
- }
368
-
369
- return nil
370
- }
371
-
372
- type timeoutPacketEvent struct {
373
- vm.ActionHeader `actionType:"IBC_EVENT"`
374
- Event string `json:"event" default:"timeoutPacket"`
375
- Packet channeltypes.Packet `json:"packet"`
376
- }
377
-
378
- func (im IBCModule) OnTimeoutPacket(
379
- ctx sdk.Context,
380
- packet channeltypes.Packet,
381
- relayer sdk.AccAddress,
382
- ) error {
383
- event := timeoutPacketEvent{
384
- Packet: packet,
385
- }
386
-
387
- err := im.PushAction(ctx, event)
388
- if err != nil {
389
- return err
390
- }
391
-
392
- return nil
393
- }
File without changes