@agoric/orchestration 0.1.1-dev-43345a5.0 → 0.1.1-dev-2c51185.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/orchestration",
3
- "version": "0.1.1-dev-43345a5.0+43345a5",
3
+ "version": "0.1.1-dev-2c51185.0+2c51185",
4
4
  "description": "Chain abstraction for Agoric's orchestration clients",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -33,19 +33,19 @@
33
33
  },
34
34
  "homepage": "https://github.com/Agoric/agoric-sdk#readme",
35
35
  "dependencies": {
36
- "@agoric/async-flow": "0.1.1-dev-43345a5.0+43345a5",
37
- "@agoric/cosmic-proto": "0.4.1-dev-43345a5.0+43345a5",
38
- "@agoric/ertp": "0.16.3-dev-43345a5.0+43345a5",
39
- "@agoric/internal": "0.3.3-dev-43345a5.0+43345a5",
40
- "@agoric/network": "0.1.1-dev-43345a5.0+43345a5",
41
- "@agoric/notifier": "0.6.3-dev-43345a5.0+43345a5",
42
- "@agoric/store": "0.9.3-dev-43345a5.0+43345a5",
43
- "@agoric/time": "0.3.3-dev-43345a5.0+43345a5",
44
- "@agoric/vat-data": "0.5.3-dev-43345a5.0+43345a5",
45
- "@agoric/vats": "0.15.2-dev-43345a5.0+43345a5",
46
- "@agoric/vow": "0.1.1-dev-43345a5.0+43345a5",
47
- "@agoric/zoe": "0.26.3-dev-43345a5.0+43345a5",
48
- "@agoric/zone": "0.2.3-dev-43345a5.0+43345a5",
36
+ "@agoric/async-flow": "0.1.1-dev-2c51185.0+2c51185",
37
+ "@agoric/cosmic-proto": "0.4.1-dev-2c51185.0+2c51185",
38
+ "@agoric/ertp": "0.16.3-dev-2c51185.0+2c51185",
39
+ "@agoric/internal": "0.3.3-dev-2c51185.0+2c51185",
40
+ "@agoric/network": "0.1.1-dev-2c51185.0+2c51185",
41
+ "@agoric/notifier": "0.6.3-dev-2c51185.0+2c51185",
42
+ "@agoric/store": "0.9.3-dev-2c51185.0+2c51185",
43
+ "@agoric/time": "0.3.3-dev-2c51185.0+2c51185",
44
+ "@agoric/vat-data": "0.5.3-dev-2c51185.0+2c51185",
45
+ "@agoric/vats": "0.15.2-dev-2c51185.0+2c51185",
46
+ "@agoric/vow": "0.1.1-dev-2c51185.0+2c51185",
47
+ "@agoric/zoe": "0.26.3-dev-2c51185.0+2c51185",
48
+ "@agoric/zone": "0.2.3-dev-2c51185.0+2c51185",
49
49
  "@endo/base64": "^1.0.6",
50
50
  "@endo/errors": "^1.2.4",
51
51
  "@endo/far": "^1.1.4",
@@ -54,7 +54,7 @@
54
54
  "@noble/hashes": "github:paulmillr/noble-hashes#ae060daa6252f3ff2aa2f84e887de0aab491281d"
55
55
  },
56
56
  "devDependencies": {
57
- "@agoric/swingset-liveslots": "0.10.3-dev-43345a5.0+43345a5",
57
+ "@agoric/swingset-liveslots": "0.10.3-dev-2c51185.0+2c51185",
58
58
  "@chain-registry/client": "^1.47.4",
59
59
  "@cosmjs/amino": "^0.32.3",
60
60
  "@cosmjs/proto-signing": "^0.32.3",
@@ -94,5 +94,5 @@
94
94
  "typeCoverage": {
95
95
  "atLeast": 98.1
96
96
  },
97
- "gitHead": "43345a561fbdf7621c369abb15e6839f7c696565"
97
+ "gitHead": "2c5118522c4cde94897aaeac98f6e61beac3a1be"
98
98
  }
@@ -5,7 +5,7 @@ import type { MsgTransfer } from '@agoric/cosmic-proto/ibc/applications/transfer
5
5
  import type { State as IBCChannelState, Order } from '@agoric/cosmic-proto/ibc/core/channel/v1/channel.js';
6
6
  import type { State as IBCConnectionState } from '@agoric/cosmic-proto/ibc/core/connection/v1/connection.js';
7
7
  import type { RequestQuery, ResponseQuery } from '@agoric/cosmic-proto/tendermint/abci/types.js';
8
- import type { Brand, Purse, Payment, Amount } from '@agoric/ertp/src/types.js';
8
+ import type { Payment, Amount } from '@agoric/ertp/src/types.js';
9
9
  import type { Port } from '@agoric/network';
10
10
  import type { IBCChannelID, IBCConnectionID } from '@agoric/vats';
11
11
  import type { TargetApp, TargetRegistration } from '@agoric/vats/src/bridge-target.js';
@@ -166,12 +166,23 @@ export interface IcaAccount {
166
166
  * @returns acknowledgement string
167
167
  */
168
168
  executeEncodedTx: (msgs: AnyJson[], opts?: Partial<Omit<TxBody, 'messages'>>) => Promise<string>;
169
- /** get Purse for a brand to .withdraw() a Payment from the account */
170
- getPurse: (brand: Brand) => Promise<Purse>;
171
169
  /**
172
- * Close the remote account
170
+ * Deactivates the ICA account by closing the ICA channel. The `Port` is
171
+ * persisted so holders can always call `.reactivate()` to re-establish a new
172
+ * channel with the same chain address.
173
+ * CAVEAT: Does not retrieve assets so they may be lost if left.
174
+ * @throws {Error} if connection is not available or already deactivated
173
175
  */
174
- close: () => Promise<void>;
176
+ deactivate: () => Promise<void>;
177
+ /**
178
+ * Reactivates the ICA account by re-establishing a new channel with the
179
+ * original Port and requested address.
180
+ * If a channel is closed for an unexpected reason, such as a packet timeout,
181
+ * an automatic attempt to re will be made and the holder should not need
182
+ * to call `.reactivate()`.
183
+ * @throws {Error} if connection is currently active
184
+ */
185
+ reactivate: () => Promise<void>;
175
186
  /** @returns the address of the remote channel */
176
187
  getRemoteAddress: () => RemoteIbcAddress;
177
188
  /** @returns the address of the local channel */
@@ -1 +1 @@
1
- {"version":3,"file":"cosmos-api.d.ts","sourceRoot":"","sources":["cosmos-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cosmos-api.d.ts","sourceRoot":"","sources":["cosmos-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,mBAAmB,EACpB,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yDAAyD,CAAC;AAC3F,OAAO,KAAK,EACV,KAAK,IAAI,eAAe,EACxB,KAAK,EACN,MAAM,qDAAqD,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,IAAI,kBAAkB,EAAE,MAAM,2DAA2D,CAAC;AAC7G,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACd,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAAgB,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EACnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9E,6EAA6E;AAC7E,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG;IAElD,KAAK,EAAE,GAAG,MAAM,UAAU,MAAM,EAAE,CAAC;IACnC,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,4FAA4F;AAC5F,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,eAAe,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,YAAY,EAAE;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,eAAe,CAAC;QAC/B,MAAM,EAAE;YACN,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC;IACF,eAAe,EAAE;QACf,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,YAAY,CAAC;QACxB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,qBAAqB,EAAE,YAAY,CAAC;QACpC,QAAQ,EAAE,KAAK,CAAC;QAChB,KAAK,EAAE,eAAe,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,KAAK,CAAC;QACZ,YAAY,EAAE;YACZ,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,EAAE,KAAK,CAAC;YAClB,UAAU,EAAE,YAAY,CAAC;SAC1B,CAAC;QACF,KAAK,EAAE;YACL,UAAU,EAAE,YAAY,CAAC;YACzB,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC,CAAC;CACJ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAEhB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAEhD,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAE5C;;;OAGG;IACH,aAAa,EAAE,CAAC,SAAS,EAAE,sBAAsB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAE1E;;OAEG;IACH,uBAAuB,EAAE,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAE9D;;OAEG;IACH,sBAAsB,EAAE,CACtB,SAAS,EAAE,sBAAsB,KAC9B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAElC,gBAAgB,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAEhD,eAAe,EAAE,CACf,YAAY,EAAE,sBAAsB,EACpC,YAAY,CAAC,EAAE,sBAAsB,KAClC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE3B;;;OAGG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEzC;;;;OAIG;IACH,SAAS,EAAE,CAAC,SAAS,EAAE,sBAAsB,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC1E;AACD,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,QAAQ,EAAE,CACR,SAAS,EAAE,sBAAsB,EACjC,MAAM,EAAE,SAAS,KACd,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;;;;;OAOG;IACH,UAAU,EAAE,CACV,YAAY,EAAE,sBAAsB,EACpC,YAAY,EAAE,sBAAsB,EACpC,MAAM,EAAE,SAAS,KACd,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;;;OAKG;IACH,UAAU,EAAE,CACV,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE,KAChD,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;OAGG;IACH,eAAe,EAAE,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE9C;;;;OAIG;IACH,cAAc,EAAE,CAAC,SAAS,EAAE,sBAAsB,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC/E;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,UAAU,EAAE,MAAM,YAAY,CAAC;IAE/B;;;;OAIG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD;;;;;OAKG;IACH,gBAAgB,EAAE,CAChB,IAAI,EAAE,OAAO,EAAE,EACf,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,KACrC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC;;;;;;;OAOG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,iDAAiD;IACjD,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;IACzC,gDAAgD;IAChD,eAAe,EAAE,MAAM,eAAe,CAAC;IACvC,oDAAoD;IACpD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,6DAA6D;IAC7D,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,0CAA0C;IAC1C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D;;;;;;;;;OASG;IACH,gBAAgB,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,GAAG,SAAS,eAAe,IAC/D,CAAC,GAAG,SAAS;IACX,UAAU,EAAE,IAAI,CAAC;CAClB,GACG,UAAU,GACV,EAAE,CAAC,GACL,GAAG,SAAS;IACZ,aAAa,EAAE,EAAE,CAAC;CACnB,GACG,qBAAqB,GACrB,EAAE,CAAC;AAET,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,KAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC"}
package/src/cosmos-api.ts CHANGED
@@ -216,12 +216,23 @@ export interface IcaAccount {
216
216
  msgs: AnyJson[],
217
217
  opts?: Partial<Omit<TxBody, 'messages'>>,
218
218
  ) => Promise<string>;
219
- /** get Purse for a brand to .withdraw() a Payment from the account */
220
- getPurse: (brand: Brand) => Promise<Purse>;
221
219
  /**
222
- * Close the remote account
220
+ * Deactivates the ICA account by closing the ICA channel. The `Port` is
221
+ * persisted so holders can always call `.reactivate()` to re-establish a new
222
+ * channel with the same chain address.
223
+ * CAVEAT: Does not retrieve assets so they may be lost if left.
224
+ * @throws {Error} if connection is not available or already deactivated
223
225
  */
224
- close: () => Promise<void>;
226
+ deactivate: () => Promise<void>;
227
+ /**
228
+ * Reactivates the ICA account by re-establishing a new channel with the
229
+ * original Port and requested address.
230
+ * If a channel is closed for an unexpected reason, such as a packet timeout,
231
+ * an automatic attempt to re will be made and the holder should not need
232
+ * to call `.reactivate()`.
233
+ * @throws {Error} if connection is currently active
234
+ */
235
+ reactivate: () => Promise<void>;
225
236
  /** @returns the address of the remote channel */
226
237
  getRemoteAddress: () => RemoteIbcAddress;
227
238
  /** @returns the address of the local channel */
@@ -38,6 +38,8 @@ export function start(zcf: ZCF<StakeIcaTerms>, privateArgs: {
38
38
  transferSteps(amount: import("../orchestration-api.js").AmountArg, msg: import("../orchestration-api.js").TransferMsg): import("@agoric/vow").Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
39
39
  withdrawRewards(): import("@agoric/vow").Vow<import("../orchestration-api.js").DenomAmount[] extends import("@endo/pass-style").Passable ? import("../orchestration-api.js").DenomAmount[] : import("@agoric/async-flow").HostInterface<import("../orchestration-api.js").DenomAmount[]>>;
40
40
  undelegate(delegations: Omit<import("@agoric/cosmic-proto/cosmos/staking/v1beta1/staking.js").Delegation, "delegatorAddress">[]): import("@agoric/vow").Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
41
+ deactivate(): import("@agoric/vow").Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
42
+ reactivate(): import("@agoric/vow").Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
41
43
  }>>;
42
44
  makeAccountInvitationMaker(): Promise<Invitation<ResolvedContinuingOfferResult, undefined>>;
43
45
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"stakeIca.contract.d.ts","sourceRoot":"","sources":["stakeIca.contract.js"],"names":[],"mappings":"AAgBA;;;;;;;GAOG;AAEH,yCAAyC;AACzC,mBADW,YAAY,CAAC,OAAO,KAAK,CAAC,CAgBlC;AAEH;;;;;;cAAsD;AAwB/C,2BAVI,GAAG,CAAC,aAAa,CAAC,eAClB;IACV,WAAe,EAAE,OAAO,OAAO,CAAC,CAAC;IACjC,uBAA2B,EAAE,uBAAuB,CAAC;IACrD,WAAe,EAAE,WAAW,CAAC;IAC7B,UAAc,EAAE,UAAU,CAAC;IAC3B,KAAS,EAAE,YAAY,CAAC;CACrB,WACO,OAAO;;;;;;;;;;;;;;;;;;;;GAmGjB;4BArHY;IACZ,OAAW,EAAE,MAAM,CAAC;IACpB,gBAAoB,EAAE,eAAe,CAAC;IACtC,sBAA0B,EAAE,eAAe,CAAC;IAC5C,SAAa,EAAE,MAAM,CAAC;IACtB,UAAc,EAAE,OAAO,CAAC;CACrB;yBAkHU,OAAO,KAAK;6BApJiB,cAAc;4BADhC,kBAAkB;6CAIwB,aAAa;kCAFjD,cAAc;6BAHnB,kBAAkB;mDAII,uBAAuB;qCAF5B,cAAc"}
1
+ {"version":3,"file":"stakeIca.contract.d.ts","sourceRoot":"","sources":["stakeIca.contract.js"],"names":[],"mappings":"AAgBA;;;;;;;GAOG;AAEH,yCAAyC;AACzC,mBADW,YAAY,CAAC,OAAO,KAAK,CAAC,CAgBlC;AAEH;;;;;;cAAsD;AAwB/C,2BAVI,GAAG,CAAC,aAAa,CAAC,eAClB;IACV,WAAe,EAAE,OAAO,OAAO,CAAC,CAAC;IACjC,uBAA2B,EAAE,uBAAuB,CAAC;IACrD,WAAe,EAAE,WAAW,CAAC;IAC7B,UAAc,EAAE,UAAU,CAAC;IAC3B,KAAS,EAAE,YAAY,CAAC;CACrB,WACO,OAAO;;;;;;;;;;;;;;;;;;;;;;GAmGjB;4BArHY;IACZ,OAAW,EAAE,MAAM,CAAC;IACpB,gBAAoB,EAAE,eAAe,CAAC;IACtC,sBAA0B,EAAE,eAAe,CAAC;IAC5C,SAAa,EAAE,MAAM,CAAC;IACtB,UAAc,EAAE,OAAO,CAAC;CACrB;yBAkHU,OAAO,KAAK;6BApJiB,cAAc;4BADhC,kBAAkB;6CAIwB,aAAa;kCAFjD,cAAc;6BAHnB,kBAAkB;mDAII,uBAAuB;qCAF5B,cAAc"}
@@ -29,7 +29,8 @@ classDiagram
29
29
  getPort()
30
30
  executeTx()
31
31
  executeEncodedTx()
32
- close()
32
+ deactivate()
33
+ reactivate()
33
34
  }
34
35
  class ICQConnection {
35
36
  port: Port
@@ -19,6 +19,8 @@ export const IcaAccountHolderI: import("@endo/patterns").InterfaceGuard<{
19
19
  withdrawReward: import("@endo/patterns").MethodGuard;
20
20
  withdrawRewards: import("@endo/patterns").MethodGuard;
21
21
  undelegate: import("@endo/patterns").MethodGuard;
22
+ deactivate: import("@endo/patterns").MethodGuard;
23
+ reactivate: import("@endo/patterns").MethodGuard;
22
24
  getAddress: import("@endo/patterns").MethodGuard;
23
25
  getBalance: import("@endo/patterns").MethodGuard;
24
26
  getBalances: import("@endo/patterns").MethodGuard;
@@ -111,7 +113,8 @@ export function prepareCosmosOrchestrationAccountKit(zone: Zone, { chainHub, mak
111
113
  WithdrawReward(validator: CosmosValidatorAddress): Promise<Invitation<Vow<DenomAmount[]>, undefined>>;
112
114
  /** @param {Omit<Delegation, 'delegatorAddress'>[]} delegations */
113
115
  Undelegate(delegations: Omit<Delegation, "delegatorAddress">[]): Promise<Invitation<Vow<void>, undefined>>;
114
- CloseAccount(): never;
116
+ DeactivateAccount(): Promise<Invitation<Vow<void>, undefined>>;
117
+ ReactivateAccount(): Promise<Invitation<Vow<void>, undefined>>;
115
118
  Send(): Promise<Invitation<Vow<void>, {
116
119
  toAccount: ChainAddress;
117
120
  amount: AmountArg;
@@ -161,6 +164,10 @@ export function prepareCosmosOrchestrationAccountKit(zone: Zone, { chainHub, mak
161
164
  withdrawRewards(): Vow<DenomAmount[] extends import("@endo/pass-style").Passable ? DenomAmount[] : import("@agoric/async-flow").HostInterface<DenomAmount[]>>;
162
165
  /** @type {HostOf<StakingAccountActions['undelegate']>} */
163
166
  undelegate(delegations: Omit<Delegation, "delegatorAddress">[]): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
167
+ /** @type {HostOf<IcaAccount['deactivate']>} */
168
+ deactivate(): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
169
+ /** @type {HostOf<IcaAccount['reactivate']>} */
170
+ reactivate(): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
164
171
  };
165
172
  }>;
166
173
  export function prepareCosmosOrchestrationAccount(zone: Zone, { chainHub, makeRecorderKit, timerService, vowTools, zcf }: {
@@ -1 +1 @@
1
- {"version":3,"file":"cosmos-orchestration-account.d.ts","sourceRoot":"","sources":["cosmos-orchestration-account.js"],"names":[],"mappings":"AAyDA;;;GAGG;AAEH;;;;;;;;;GASG;AAEH,mCAAmC;AACnC;;;;;;;;;;;;;;;GAaG;AAmBI,2DARI,IAAI,gGAEZ;IAAyB,QAAQ,EAAzB,QAAQ;IACgB,eAAe,EAAvC,eAAe;IACc,YAAY,EAAzC,OAAO,YAAY,CAAC;IACH,QAAQ,EAAzB,QAAQ;IACI,GAAG,EAAf,GAAG;CACb;aA2Ec,UAAU;iBACV,OAAO,WAAW,CAAC;mBACnB,aAAa,GAAG,SAAS;WACzB,OAAO,YAAY,CAAC;;;QAc3B,wDAAwD;;;QAWxD;;;WAGG;6BAFQ,SAAS,GACP,IAAI;;;QAejB;;WAEG;8BADQ,SAAS,aAAa,CAAC,EAAE;;;QAYpC;;WAEG;4BADQ,MAAM;;IAgBnB;;;OAGG;;QAED,uDAAuD;4BAA3C,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;QAO5C,6BAA6B;4BAAjB,MAAM;;;QAYlB;;;;;;;;;;WAUG;6DATQ,CACV;YAAM,eAAe,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;SAAE,EAC7D,MAAU,CACP,gCACO;YACV,WAAe,EAAE,YAAY,CAAC;YAC9B,IAAQ,CAAC,EAAE,qBAAqB,CAAC;YACjC,KAAS,EAAE,IAAI,CAAC;SACb;;;QA2BJ;;;WAGG;4BAFQ,sBAAsB,UACtB,SAAS;QAUpB;;;;WAIG;iCAHQ,sBAAsB,gBACtB,sBAAsB,UACtB,SAAS;QAYpB,gDAAgD;kCAApC,sBAAsB;QASlC,kEAAkE;gCAAtD,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE;;;uBAgB9B,YAAY;oBAAU,SAAS;;;uBAa/B,YAAY;qBAAW,SAAS,EAAE;;QAStD;;;;WAIG;;;oBASc,SAAS;yBACJ,YAAY;kBACnB,qBAAqB;;;;QAcpC,iEAAiE;;QAsBjE,+DAA+D;;QAiB/D,0DAA0D;;QAI1D,wDAAwD;;QAsBxD,2DAA2D;;QAK3D,0DAA0D;;QAyB1D,8DAA8D;;QAgB9D,0DAA0D;;QAsB1D,oDAAoD;;QAqBpD,uDAAuD;;QAqBvD,wDAAwD;;QAkCxD,6DAA6D;;QAM7D,+DAA+D;;QAK/D,0DAA0D;;;GA6BjE;AAsBM,wDAbI,IAAI,8DAEZ;IAAyB,QAAQ,EAAzB,QAAQ;IACgB,eAAe,EAAvC,eAAe;IACc,YAAY,EAAzC,OAAO,YAAY,CAAC;IACH,QAAQ,EAAzB,QAAQ;IACI,GAAG,EAAf,GAAG;CACX,GAAU,CACZ,GAAO,IAAI,EAAE,UAAU,CACvB,UAAgB,CAAC,OAAO,oCAAoC,CAAC,CACxD,KACE,6BAA6B,CAAC,QAAQ,CAAC,CAc9C;;kBAloBa,YAAY;;oBAIb;IACZ,QAAY,EAAE,YAAY,qCAAqC,CAAC,CAAC;IACjE,OAAW,EAAE,UAAU,CAAC;IACxB,YAAgB,EAAE,YAAY,CAAC;IAC/B,aAAiB,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,SAAa,EAAE,MAAM,CAAC;IACtB,KAAS,EAAE,OAAO,YAAY,CAAC,CAAC;CAC7B;4CAwlBS,UAAU,CACtB,UAAc,CAAC,OAAO,oCAAoC,CAAC,CACxD;yCA8BU,6BAA6B,CAAC,QAAQ,CAAC;0BA/oB9B,cAAc;8BARuK,aAAa;qCAC1K,6CAA6C;kCAK7D,cAAc;4BAFpB,kBAAkB;8BAGX,aAAa;kCAP+J,aAAa;gCAAb,aAAa;mCAAb,aAAa;+BAAb,aAAa;0BAElM,kDAAkD;mCAOzC,+CAA+C;8BACpD,sBAAsB;iCAV2J,aAAa;yBAOzL,aAAa;uCAP+J,aAAa;2CAAb,aAAa;4CAAb,aAAa;gCAG5L,wDAAwD;iCAFtC,6CAA6C"}
1
+ {"version":3,"file":"cosmos-orchestration-account.d.ts","sourceRoot":"","sources":["cosmos-orchestration-account.js"],"names":[],"mappings":"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"}
@@ -85,6 +85,8 @@ export const IcaAccountHolderI = M.interface('IcaAccountHolder', {
85
85
  ),
86
86
  withdrawRewards: M.call().returns(Vow$(M.arrayOf(DenomAmountShape))),
87
87
  undelegate: M.call(M.arrayOf(DelegationShape)).returns(VowShape),
88
+ deactivate: M.call().returns(VowShape),
89
+ reactivate: M.call().returns(VowShape),
88
90
  });
89
91
 
90
92
  /** @type {{ [name: string]: [description: string, valueShape: Matcher] }} */
@@ -167,7 +169,8 @@ export const prepareCosmosOrchestrationAccountKit = (
167
169
  ).returns(M.promise()),
168
170
  WithdrawReward: M.call(ChainAddressShape).returns(M.promise()),
169
171
  Undelegate: M.call(M.arrayOf(DelegationShape)).returns(M.promise()),
170
- CloseAccount: M.call().returns(M.promise()),
172
+ DeactivateAccount: M.call().returns(M.promise()),
173
+ ReactivateAccount: M.call().returns(M.promise()),
171
174
  TransferAccount: M.call().returns(M.promise()),
172
175
  Send: M.call().returns(M.promise()),
173
176
  SendAll: M.call().returns(M.promise()),
@@ -358,8 +361,17 @@ export const prepareCosmosOrchestrationAccountKit = (
358
361
  return watch(this.facets.holder.undelegate(delegations));
359
362
  }, 'Undelegate');
360
363
  },
361
- CloseAccount() {
362
- throw Error('not yet implemented');
364
+ DeactivateAccount() {
365
+ return zcf.makeInvitation(seat => {
366
+ seat.exit();
367
+ return watch(this.facets.holder.deactivate());
368
+ }, 'DeactivateAccount');
369
+ },
370
+ ReactivateAccount() {
371
+ return zcf.makeInvitation(seat => {
372
+ seat.exit();
373
+ return watch(this.facets.holder.reactivate());
374
+ }, 'ReactivateAccount');
363
375
  },
364
376
  Send() {
365
377
  /**
@@ -660,6 +672,14 @@ export const prepareCosmosOrchestrationAccountKit = (
660
672
  return watch(undelegateV, this.facets.returnVoidWatcher);
661
673
  });
662
674
  },
675
+ /** @type {HostOf<IcaAccount['deactivate']>} */
676
+ deactivate() {
677
+ return watch(E(this.facets.helper.owned()).deactivate());
678
+ },
679
+ /** @type {HostOf<IcaAccount['reactivate']>} */
680
+ reactivate() {
681
+ return watch(E(this.facets.helper.owned()).reactivate());
682
+ },
663
683
  },
664
684
  },
665
685
  );
@@ -5,7 +5,8 @@ export const IcaAccountI: import("@endo/patterns").InterfaceGuard<{
5
5
  getPort: import("@endo/patterns").MethodGuard;
6
6
  executeTx: import("@endo/patterns").MethodGuard;
7
7
  executeEncodedTx: import("@endo/patterns").MethodGuard;
8
- close: import("@endo/patterns").MethodGuard;
8
+ deactivate: import("@endo/patterns").MethodGuard;
9
+ reactivate: import("@endo/patterns").MethodGuard;
9
10
  }>;
10
11
  export function prepareIcaAccountKit(zone: Zone, { watch, asVow }: VowTools): (chainId: string, port: Port, requestedRemoteAddress: string) => import("@endo/exo").GuardedKit<{
11
12
  parseTxPacketWatcher: {
@@ -30,13 +31,10 @@ export function prepareIcaAccountKit(zone: Zone, { watch, asVow }: VowTools): (c
30
31
  * @throws {Error} if packet fails to send or an error is returned
31
32
  */
32
33
  executeEncodedTx(msgs: AnyJson[], opts?: Omit<TxBody, "messages"> | undefined): Vow<string>;
33
- /**
34
- * Close the remote account
35
- *
36
- * @returns {Vow<void>}
37
- * @throws {Error} if connection is not available or already closed
38
- */
39
- close(): Vow<void>;
34
+ /** @type {HostOf<IcaAccount['deactivate']>} */
35
+ deactivate(): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
36
+ /** @type {HostOf<IcaAccount['reactivate']>} */
37
+ reactivate(): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
40
38
  };
41
39
  connectionHandler: {
42
40
  /**
@@ -46,8 +44,21 @@ export function prepareIcaAccountKit(zone: Zone, { watch, asVow }: VowTools): (c
46
44
  */
47
45
  onOpen(connection: Remote<Connection>, localAddr: LocalIbcAddress, remoteAddr: RemoteIbcAddress): Promise<void>;
48
46
  /**
47
+ * This handler fires any time the connection (channel) closes. This
48
+ * could be due to external factors (e.g. a packet timeout), or a holder
49
+ * initiated action (`.deactivate()`).
50
+ *
51
+ * Here, if a connection is opened again, we clear the connection and
52
+ * addresses from state as they will change - a new channel will be
53
+ * established if the connection is reopened.
54
+ *
55
+ * If the holder did not initiate the closure, a new connection is
56
+ * established using the original requested remote address. This will
57
+ * result in a new channelID but the ChainAddress will be preserved.
58
+ *
49
59
  * @param {Remote<Connection>} _connection
50
60
  * @param {unknown} reason
61
+ * @see {@link https://docs.cosmos.network/v0.45/ibc/overview.html#:~:text=In%20ORDERED%20channels%2C%20a%20timeout%20of%20a%20single%20packet%20in%20the%20channel%20closes%20the%20channel.}
51
62
  */
52
63
  onClose(_connection: Remote<Connection>, reason: unknown): Promise<void>;
53
64
  };
@@ -61,6 +72,7 @@ export type State = {
61
72
  requestedRemoteAddress: string;
62
73
  remoteAddress: RemoteIbcAddress | undefined;
63
74
  chainAddress: ChainAddress | undefined;
75
+ isInitiatingClose: boolean;
64
76
  };
65
77
  export type IcaAccountKit = ReturnType<ReturnType<typeof prepareIcaAccountKit>>;
66
78
  import type { Zone } from '@agoric/base-zone';
@@ -1 +1 @@
1
- {"version":3,"file":"ica-account-kit.d.ts","sourceRoot":"","sources":["ica-account-kit.js"],"names":[],"mappings":"AA6BA;;;;;;;;GAUG;AAkBI,2CAHI,IAAI,oBACJ,QAAQ;;QA+BX,0BAA0B;yBAAd,MAAM;;;QAMlB,8BAA8B;sBAAhB,YAAY;;;;;QAyB1B;;;;;;;;;WASG;+BALQ,OAAO,EAAE,gDAEP,IAAI,MAAM,CAAC;QAcxB;;;;;WAKG;iBAFU,IAAI,IAAI,CAAC;;;QAetB;;;;WAIG;2BAHQ,OAAO,UAAU,CAAC,aAClB,eAAe,cACf,gBAAgB;QAiB3B;;;WAGG;6BAFQ,OAAO,UAAU,CAAC,UAClB,OAAO;;GASvB;qCAhKW,0BAA0B;oBAgB3B;IACZ,OAAW,EAAE,MAAM,CAAC;IACpB,IAAQ,EAAE,IAAI,CAAC;IACf,UAAc,EAAE,OAAO,UAAU,CAAC,GAAG,SAAS,CAAC;IAC/C,YAAgB,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,sBAA0B,EAAE,MAAM,CAAC;IACnC,aAAiB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAChD,YAAgB,EAAE,YAAY,GAAG,SAAS,CAAC;CACxC;4BA0IU,UAAU,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;0BA7K1C,mBAAmB;8BAEF,aAAa;0BADlB,iBAAiB;kCAKrB,aAAa;yBAJJ,aAAa;6BAC3B,sBAAsB;4BACvB,8CAA8C;gCAHpC,iBAAiB;4BACZ,aAAa;qCAGD,iCAAiC;sCAAjC,iCAAiC"}
1
+ {"version":3,"file":"ica-account-kit.d.ts","sourceRoot":"","sources":["ica-account-kit.js"],"names":[],"mappings":"AA+BA;;;;;;;;;GAWG;AAmBI,2CAHI,IAAI,oBACJ,QAAQ;;QAgCX,0BAA0B;yBAAd,MAAM;;;QAMlB,8BAA8B;sBAAhB,YAAY;;;;;QAyB1B;;;;;;;;;WASG;+BALQ,OAAO,EAAE,gDAEP,IAAI,MAAM,CAAC;QAgBxB,+CAA+C;;QAS/C,+CAA+C;;;;QAiB/C;;;;WAIG;2BAHQ,OAAO,UAAU,CAAC,aAClB,eAAe,cACf,gBAAgB;QAiB3B;;;;;;;;;;;;;;;;WAgBG;6BAHQ,OAAO,UAAU,CAAC,UAClB,OAAO;;GAkBvB;qCAlMW,0BAA0B;oBAiB3B;IACZ,OAAW,EAAE,MAAM,CAAC;IACpB,IAAQ,EAAE,IAAI,CAAC;IACf,UAAc,EAAE,OAAO,UAAU,CAAC,GAAG,SAAS,CAAC;IAC/C,YAAgB,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,sBAA0B,EAAE,MAAM,CAAC;IACnC,aAAiB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAChD,YAAgB,EAAE,YAAY,GAAG,SAAS,CAAC;IAC3C,iBAAqB,EAAE,OAAO,CAAC;CAC5B;4BA0KU,UAAU,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;0BA/M1C,mBAAmB;8BAEF,aAAa;0BADlB,iBAAiB;kCAKT,aAAa;yBAJhB,aAAa;6BAC3B,sBAAsB;4BACvB,8CAA8C;gCAHpC,iBAAiB;4BACZ,aAAa;qCAGD,iCAAiC;sCAAjC,iCAAiC"}
@@ -8,18 +8,20 @@ import {
8
8
  ChainAddressShape,
9
9
  OutboundConnectionHandlerI,
10
10
  Proto3Shape,
11
+ TxBodyOptsShape,
11
12
  } from '../typeGuards.js';
12
13
  import { findAddressField } from '../utils/address.js';
13
14
  import { makeTxPacket, parseTxPacket } from '../utils/packet.js';
14
15
 
15
16
  /**
17
+ * @import {HostOf} from '@agoric/async-flow';
16
18
  * @import {Zone} from '@agoric/base-zone';
17
19
  * @import {Connection, Port} from '@agoric/network';
18
20
  * @import {Remote, Vow, VowTools} from '@agoric/vow';
19
21
  * @import {AnyJson} from '@agoric/cosmic-proto';
20
22
  * @import {TxBody} from '@agoric/cosmic-proto/cosmos/tx/v1beta1/tx.js';
21
23
  * @import {LocalIbcAddress, RemoteIbcAddress} from '@agoric/vats/tools/ibc-utils.js';
22
- * @import {ChainAddress} from '../types.js';
24
+ * @import {ChainAddress, IcaAccount} from '../types.js';
23
25
  */
24
26
 
25
27
  const trace = makeTracer('IcaAccountKit');
@@ -34,9 +36,10 @@ export const IcaAccountI = M.interface('IcaAccount', {
34
36
  getPort: M.call().returns(M.remotable('Port')),
35
37
  executeTx: M.call(M.arrayOf(M.record())).returns(VowShape),
36
38
  executeEncodedTx: M.call(M.arrayOf(Proto3Shape))
37
- .optional(M.record())
39
+ .optional(TxBodyOptsShape)
38
40
  .returns(VowShape),
39
- close: M.call().returns(VowShape),
41
+ deactivate: M.call().returns(VowShape),
42
+ reactivate: M.call().returns(VowShape),
40
43
  });
41
44
 
42
45
  /**
@@ -48,6 +51,7 @@ export const IcaAccountI = M.interface('IcaAccount', {
48
51
  * requestedRemoteAddress: string;
49
52
  * remoteAddress: RemoteIbcAddress | undefined;
50
53
  * chainAddress: ChainAddress | undefined;
54
+ * isInitiatingClose: boolean;
51
55
  * }} State
52
56
  */
53
57
 
@@ -81,6 +85,7 @@ export const prepareIcaAccountKit = (zone, { watch, asVow }) =>
81
85
  remoteAddress: undefined,
82
86
  chainAddress: undefined,
83
87
  localAddress: undefined,
88
+ isInitiatingClose: false,
84
89
  }),
85
90
  {
86
91
  parseTxPacketWatcher: {
@@ -128,29 +133,39 @@ export const prepareIcaAccountKit = (zone, { watch, asVow }) =>
128
133
  executeEncodedTx(msgs, opts) {
129
134
  return asVow(() => {
130
135
  const { connection } = this.state;
131
- if (!connection) throw Fail`connection not available`;
136
+ if (!connection) {
137
+ throw Fail`Account not available or deactivated.`;
138
+ }
132
139
  return watch(
133
140
  E(connection).send(makeTxPacket(msgs, opts)),
134
141
  this.facets.parseTxPacketWatcher,
135
142
  );
136
143
  });
137
144
  },
138
- /**
139
- * Close the remote account
140
- *
141
- * @returns {Vow<void>}
142
- * @throws {Error} if connection is not available or already closed
143
- */
144
- close() {
145
+ /** @type {HostOf<IcaAccount['deactivate']>} */
146
+ deactivate() {
145
147
  return asVow(() => {
146
- /// TODO #9192 what should the behavior be here? and `onClose`?
147
- // - retrieve assets?
148
- // - revoke the port?
149
148
  const { connection } = this.state;
150
- if (!connection) throw Fail`connection not available`;
149
+ if (!connection) throw Fail`Account not available or deactivated.`;
150
+ this.state.isInitiatingClose = true;
151
151
  return E(connection).close();
152
152
  });
153
153
  },
154
+ /** @type {HostOf<IcaAccount['reactivate']>} */
155
+ reactivate() {
156
+ return asVow(() => {
157
+ const { connection, port, requestedRemoteAddress } = this.state;
158
+ if (connection) {
159
+ throw Fail`Account is already active.`;
160
+ }
161
+ return watch(
162
+ E(port).connect(
163
+ requestedRemoteAddress,
164
+ this.facets.connectionHandler,
165
+ ),
166
+ );
167
+ });
168
+ },
154
169
  },
155
170
  connectionHandler: {
156
171
  /**
@@ -174,13 +189,34 @@ export const prepareIcaAccountKit = (zone, { watch, asVow }) =>
174
189
  });
175
190
  },
176
191
  /**
192
+ * This handler fires any time the connection (channel) closes. This
193
+ * could be due to external factors (e.g. a packet timeout), or a holder
194
+ * initiated action (`.deactivate()`).
195
+ *
196
+ * Here, if a connection is opened again, we clear the connection and
197
+ * addresses from state as they will change - a new channel will be
198
+ * established if the connection is reopened.
199
+ *
200
+ * If the holder did not initiate the closure, a new connection is
201
+ * established using the original requested remote address. This will
202
+ * result in a new channelID but the ChainAddress will be preserved.
203
+ *
177
204
  * @param {Remote<Connection>} _connection
178
205
  * @param {unknown} reason
206
+ * @see {@link https://docs.cosmos.network/v0.45/ibc/overview.html#:~:text=In%20ORDERED%20channels%2C%20a%20timeout%20of%20a%20single%20packet%20in%20the%20channel%20closes%20the%20channel.}
179
207
  */
180
208
  async onClose(_connection, reason) {
181
209
  trace(`ICA Channel closed. Reason: ${reason}`);
182
- // FIXME handle connection closing https://github.com/Agoric/agoric-sdk/issues/9192
183
- // XXX is there a scenario where a connection will unexpectedly close? _I think yes_
210
+ this.state.connection = undefined;
211
+ this.state.localAddress = undefined;
212
+ this.state.remoteAddress = undefined;
213
+ if (this.state.isInitiatingClose === true) {
214
+ trace('Account deactivated by holder. Skipping reactivation.');
215
+ this.state.isInitiatingClose = false;
216
+ } else {
217
+ trace('Account closed unexpectedly. Automatically reactivating.');
218
+ void watch(this.facets.account.reactivate());
219
+ }
184
220
  },
185
221
  },
186
222
  },
@@ -40,6 +40,8 @@ export function prepareRemoteChainFacade(zone: Zone, powers: RemoteChainFacadePo
40
40
  transferSteps(amount: import("../orchestration-api.js").AmountArg, msg: import("../orchestration-api.js").TransferMsg): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
41
41
  withdrawRewards(): Vow<import("../orchestration-api.js").DenomAmount[] extends import("@endo/pass-style").Passable ? import("../orchestration-api.js").DenomAmount[] : import("@agoric/async-flow").HostInterface<import("../orchestration-api.js").DenomAmount[]>>;
42
42
  undelegate(delegations: Omit<import("@agoric/cosmic-proto/cosmos/staking/v1beta1/staking.js").Delegation, "delegatorAddress">[]): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
43
+ deactivate(): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
44
+ reactivate(): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
43
45
  }>>;
44
46
  };
45
47
  makeICQConnectionQueryWatcher: {
@@ -70,6 +72,8 @@ export function prepareRemoteChainFacade(zone: Zone, powers: RemoteChainFacadePo
70
72
  transferSteps(amount: import("../orchestration-api.js").AmountArg, msg: import("../orchestration-api.js").TransferMsg): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
71
73
  withdrawRewards(): Vow<import("../orchestration-api.js").DenomAmount[] extends import("@endo/pass-style").Passable ? import("../orchestration-api.js").DenomAmount[] : import("@agoric/async-flow").HostInterface<import("../orchestration-api.js").DenomAmount[]>>;
72
74
  undelegate(delegations: Omit<import("@agoric/cosmic-proto/cosmos/staking/v1beta1/staking.js").Delegation, "delegatorAddress">[]): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
75
+ deactivate(): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
76
+ reactivate(): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
73
77
  }>>;
74
78
  };
75
79
  makeChildNodeWatcher: {
@@ -98,6 +102,8 @@ export function prepareRemoteChainFacade(zone: Zone, powers: RemoteChainFacadePo
98
102
  transferSteps(amount: import("../orchestration-api.js").AmountArg, msg: import("../orchestration-api.js").TransferMsg): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
99
103
  withdrawRewards(): Vow<import("../orchestration-api.js").DenomAmount[] extends import("@endo/pass-style").Passable ? import("../orchestration-api.js").DenomAmount[] : import("@agoric/async-flow").HostInterface<import("../orchestration-api.js").DenomAmount[]>>;
100
104
  undelegate(delegations: Omit<import("@agoric/cosmic-proto/cosmos/staking/v1beta1/staking.js").Delegation, "delegatorAddress">[]): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
105
+ deactivate(): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
106
+ reactivate(): Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
101
107
  }>;
102
108
  };
103
109
  }>>["public"];
@@ -1 +1 @@
1
- {"version":3,"file":"remote-chain-facade.d.ts","sourceRoot":"","sources":["remote-chain-facade.js"],"names":[],"mappings":"AA0OO,+CAHI,IAAI,UACJ,uBAAuB;;;;;;;;;;;;;;;;QA/H1B,4CAA4C;;QAK5C,2CAA2C;;QA4B3C,qCAAqC;;;;QAyBrC;;WAEG;8CADQ,CAAC,UAAU,EAAE,aAAa,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;QAelD;;;;WAIG;mCAHQ,aAAa,QACb,SAAS,YAAY,CAAC,EAAE,GACtB,IAAI,SAAS,aAAa,CAAC,EAAE,CAAC;;;QAU3C;;;WAGG;kCAFQ,YAAY,WACZ,UAAU;;;;;;;;;;;;;;;;;;QAWrB;;;;;;WAMG;+BALQ,OAAO,WAAW,CAAC,6BACnB;YACV,OAAW,EAAE,UAAU,CAAC;YACxB,YAAgB,EAAE,YAAY,CAAC;SAC5B;;;;;;;;;;;;;;;;;cA2BX;sCApNY;IACZ,8BAAkC,EAAE,UAAU,CAC9C,wCAA8C,CACzC,CAAC;IACN,aAAiB,EAAE,OAAO,uBAAuB,CAAC,CAAC;IACnD,WAAe,EAAE,OAAO,WAAW,CAAC,CAAC;IACrC,KAAS,EAAE,OAAO,YAAY,CAAC,CAAC;IAChC,QAAY,EAAE,QAAQ,CAAC;CACpB;qCAIS;IACZ,eAAmB,EAAE,eAAe,CAAC;IACrC,cAAkB,EAAE,iBAAiB,CAAC;IACtC,aAAiB,EAAE,aAAa,GAAG,SAAS,CAAC;CAC1C;oCAuMU,UAAU,CAAC,OAAO,wBAAwB,CAAC;gCAC3C,UAAU,CAAC,qBAAqB,CAAC;0BAvOxB,mBAAmB;uCAQ2D,aAAa;yBAHlF,aAAa;kCAHC,+CAA+C;8BADlE,sBAAsB;mCACH,+CAA+C;gCAMQ,aAAa;mCAAb,aAAa;kCAAb,aAAa;4BAJzF,kBAAkB;uDAGS,mCAAmC;6CAD7C,gCAAgC;kCAH3C,cAAc;8BAEb,aAAa;qCAGwD,aAAa"}
1
+ {"version":3,"file":"remote-chain-facade.d.ts","sourceRoot":"","sources":["remote-chain-facade.js"],"names":[],"mappings":"AA0OO,+CAHI,IAAI,UACJ,uBAAuB;;;;;;;;;;;;;;;;QA/H1B,4CAA4C;;QAK5C,2CAA2C;;QA4B3C,qCAAqC;;;;QAyBrC;;WAEG;8CADQ,CAAC,UAAU,EAAE,aAAa,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;QAelD;;;;WAIG;mCAHQ,aAAa,QACb,SAAS,YAAY,CAAC,EAAE,GACtB,IAAI,SAAS,aAAa,CAAC,EAAE,CAAC;;;QAU3C;;;WAGG;kCAFQ,YAAY,WACZ,UAAU;;;;;;;;;;;;;;;;;;;;QAWrB;;;;;;WAMG;+BALQ,OAAO,WAAW,CAAC,6BACnB;YACV,OAAW,EAAE,UAAU,CAAC;YACxB,YAAgB,EAAE,YAAY,CAAC;SAC5B;;;;;;;;;;;;;;;;;;;cA2BX;sCApNY;IACZ,8BAAkC,EAAE,UAAU,CAC9C,wCAA8C,CACzC,CAAC;IACN,aAAiB,EAAE,OAAO,uBAAuB,CAAC,CAAC;IACnD,WAAe,EAAE,OAAO,WAAW,CAAC,CAAC;IACrC,KAAS,EAAE,OAAO,YAAY,CAAC,CAAC;IAChC,QAAY,EAAE,QAAQ,CAAC;CACpB;qCAIS;IACZ,eAAmB,EAAE,eAAe,CAAC;IACrC,cAAkB,EAAE,iBAAiB,CAAC;IACtC,aAAiB,EAAE,aAAa,GAAG,SAAS,CAAC;CAC1C;oCAuMU,UAAU,CAAC,OAAO,wBAAwB,CAAC;gCAC3C,UAAU,CAAC,qBAAqB,CAAC;0BAvOxB,mBAAmB;uCAQ2D,aAAa;yBAHlF,aAAa;kCAHC,+CAA+C;8BADlE,sBAAsB;mCACH,+CAA+C;gCAMQ,aAAa;mCAAb,aAAa;kCAAb,aAAa;4BAJzF,kBAAkB;uDAGS,mCAAmC;6CAD7C,gCAAgC;kCAH3C,cAAc;8BAEb,aAAa;qCAGwD,aAAa"}
@@ -24,6 +24,8 @@ export function startStakeAtom({ consume: { agoricNames, board, chainStorage, ch
24
24
  transferSteps(amount: import("../orchestration-api.js").AmountArg, msg: import("../orchestration-api.js").TransferMsg): import("@agoric/vow").Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
25
25
  withdrawRewards(): import("@agoric/vow").Vow<import("../orchestration-api.js").DenomAmount[] extends import("@endo/pass-style").Passable ? import("../orchestration-api.js").DenomAmount[] : import("@agoric/async-flow").HostInterface<import("../orchestration-api.js").DenomAmount[]>>;
26
26
  undelegate(delegations: Omit<import("@agoric/cosmic-proto/cosmos/staking/v1beta1/staking.js").Delegation, "delegatorAddress">[]): import("@agoric/vow").Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
27
+ deactivate(): import("@agoric/vow").Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
28
+ reactivate(): import("@agoric/vow").Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
27
29
  }>>;
28
30
  makeAccountInvitationMaker(): Promise<Invitation<import("../utils/zoe-tools.js").ResolvedContinuingOfferResult, undefined>>;
29
31
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"start-stakeAtom.d.ts","sourceRoot":"","sources":["start-stakeAtom.js"],"names":[],"mappings":"AAyBO,0PAVI,eAAe,GAAG;IAC5B,YAAgB,EAAE;QAClB,OAAa,EAAE;YACf,QAAgB,EAAE,YAAY,CAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;cAA0D,CACjD,CAAC;SACH,CAAC;KACH,CAAC;CACH,iBAwDH;AAGM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BN;mCArG4C,+BAA+B"}
1
+ {"version":3,"file":"start-stakeAtom.d.ts","sourceRoot":"","sources":["start-stakeAtom.js"],"names":[],"mappings":"AAyBO,0PAVI,eAAe,GAAG;IAC5B,YAAgB,EAAE;QAClB,OAAa,EAAE;YACf,QAAgB,EAAE,YAAY,CAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAA0D,CACjD,CAAC;SACH,CAAC;KACH,CAAC;CACH,iBAwDH;AAGM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BN;mCArG4C,+BAA+B"}
@@ -24,6 +24,8 @@ export function startStakeOsmo({ consume: { agoricNames, board, chainStorage, ch
24
24
  transferSteps(amount: import("../orchestration-api.js").AmountArg, msg: import("../orchestration-api.js").TransferMsg): import("@agoric/vow").Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
25
25
  withdrawRewards(): import("@agoric/vow").Vow<import("../orchestration-api.js").DenomAmount[] extends import("@endo/pass-style").Passable ? import("../orchestration-api.js").DenomAmount[] : import("@agoric/async-flow").HostInterface<import("../orchestration-api.js").DenomAmount[]>>;
26
26
  undelegate(delegations: Omit<import("@agoric/cosmic-proto/cosmos/staking/v1beta1/staking.js").Delegation, "delegatorAddress">[]): import("@agoric/vow").Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
27
+ deactivate(): import("@agoric/vow").Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
28
+ reactivate(): import("@agoric/vow").Vow<void extends import("@endo/pass-style").Passable ? import("@endo/pass-style").Passable & void : import("@agoric/async-flow").HostInterface<void>>;
27
29
  }>>;
28
30
  makeAccountInvitationMaker(): Promise<Invitation<import("../utils/zoe-tools.js").ResolvedContinuingOfferResult, undefined>>;
29
31
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"start-stakeOsmo.d.ts","sourceRoot":"","sources":["start-stakeOsmo.js"],"names":[],"mappings":"AA8BO,0PAfI,eAAe,GAAG;IAC5B,YAAgB,EAAE;QAClB,OAAa,EAAE;YACf,QAAgB,EAAE,YAAY,CAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;cAA0D,CACjD,CAAC;SACH,CAAC;KACH,CAAC;IACN,QAAY,EAAE;QACd,OAAa,EAAE;YACf,SAAiB,EAAE,GAAG,CAAC;SAChB,CAAC;KACH,CAAC;CACH,iBAwDH;AAGM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BN"}
1
+ {"version":3,"file":"start-stakeOsmo.d.ts","sourceRoot":"","sources":["start-stakeOsmo.js"],"names":[],"mappings":"AA8BO,0PAfI,eAAe,GAAG;IAC5B,YAAgB,EAAE;QAClB,OAAa,EAAE;YACf,QAAgB,EAAE,YAAY,CAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAA0D,CACjD,CAAC;SACH,CAAC;KACH,CAAC;IACN,QAAY,EAAE;QACd,OAAa,EAAE;YACf,SAAiB,EAAE,GAAG,CAAC;SAChB,CAAC;KACH,CAAC;CACH,iBAwDH;AAGM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BN"}
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * @import {TypedPattern} from '@agoric/internal';
3
- * @import {ChainAddress, CosmosAssetInfo, ChainInfo, CosmosChainInfo, DenomAmount, DenomDetail} from './types.js';
3
+ * @import {ChainAddress, CosmosAssetInfo, ChainInfo, CosmosChainInfo, DenomAmount} from './types.js';
4
4
  * @import {Delegation} from '@agoric/cosmic-proto/cosmos/staking/v1beta1/staking.js';
5
+ * @import {TxBody} from '@agoric/cosmic-proto/cosmos/tx/v1beta1/tx.js';
5
6
  */
6
7
  /**
7
8
  * Used for IBC Channel Connections that only send outgoing transactions. If
@@ -53,6 +54,8 @@ export namespace TimestampProtoShape {
53
54
  let seconds: import("@endo/patterns").Matcher;
54
55
  let nanos: import("@endo/patterns").Matcher;
55
56
  }
57
+ /** see {@link TxBody} for more details */
58
+ export const TxBodyOptsShape: import("@endo/patterns").Matcher;
56
59
  import type { ChainAddress } from './types.js';
57
60
  import type { TypedPattern } from '@agoric/internal';
58
61
  import type { Delegation } from '@agoric/cosmic-proto/cosmos/staking/v1beta1/staking.js';
@@ -1 +1 @@
1
- {"version":3,"file":"typeGuards.d.ts","sourceRoot":"","sources":["typeGuards.js"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH;;;;GAIG;AACH;;;GAQE;AAEF,yCAAyC;AACzC,gCADW,aAAa,YAAY,CAAC,CAKnC;;;;;AAQF,uCAAuC;AACvC,8BADW,aAAa,UAAU,CAAC,CAIhC;AAEH,uEAUE;AAEF,iEAA4C;AAC5C,mEAQG;AACH,oEAA+C;AAC/C,sEAYG;AAEH,4CAA4C;AAC5C,mCADW,aAAa,eAAe,CAAC,CASrC;AAEH,4CAA4C;AAC5C,mCADW,aAAa,eAAe,CAAC,CAWtC;AAEF,sCAAsC;AACtC,6BADW,aAAa,SAAS,CAAC,CAG/B;AACH,sEAAuE;AACvE,0DAAqC;AAErC,8DAAsC;AAEtC,wCAAwC;AACxC,+BADW,aAAa,WAAW,CAAC,CACqC;AAEzE,8DAAkE;AAElE,2DAGE;;;;;;AAQF,mBAAmB;AACnB;;;;GAA2E;;;;;kCA7H2B,YAAY;kCADnF,kBAAkB;gCAEpB,wDAAwD;qCADiB,YAAY;qCAAZ,YAAY;+BAAZ,YAAY;iCAAZ,YAAY"}
1
+ {"version":3,"file":"typeGuards.d.ts","sourceRoot":"","sources":["typeGuards.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH;;;;GAIG;AACH;;;GAQE;AAEF,yCAAyC;AACzC,gCADW,aAAa,YAAY,CAAC,CAKnC;;;;;AAQF,uCAAuC;AACvC,8BADW,aAAa,UAAU,CAAC,CAIhC;AAEH,uEAUE;AAEF,iEAA4C;AAC5C,mEAQG;AACH,oEAA+C;AAC/C,sEAYG;AAEH,4CAA4C;AAC5C,mCADW,aAAa,eAAe,CAAC,CASrC;AAEH,4CAA4C;AAC5C,mCADW,aAAa,eAAe,CAAC,CAWtC;AAEF,sCAAsC;AACtC,6BADW,aAAa,SAAS,CAAC,CAG/B;AACH,sEAAuE;AACvE,0DAAqC;AAErC,8DAAsC;AAEtC,wCAAwC;AACxC,+BADW,aAAa,WAAW,CAAC,CACqC;AAEzE,8DAAkE;AAElE,2DAGE;;;;;;AAQF,mBAAmB;AACnB;;;;GAA2E;;;;;AAQ3E,0CAA0C;AAC1C,+DAQE;kCA/IuF,YAAY;kCADtE,kBAAkB;gCAEpB,wDAAwD;qCADI,YAAY;qCAAZ,YAAY;+BAAZ,YAAY;iCAAZ,YAAY"}
package/src/typeGuards.js CHANGED
@@ -4,8 +4,9 @@ import { M } from '@endo/patterns';
4
4
 
5
5
  /**
6
6
  * @import {TypedPattern} from '@agoric/internal';
7
- * @import {ChainAddress, CosmosAssetInfo, ChainInfo, CosmosChainInfo, DenomAmount, DenomDetail} from './types.js';
7
+ * @import {ChainAddress, CosmosAssetInfo, ChainInfo, CosmosChainInfo, DenomAmount} from './types.js';
8
8
  * @import {Delegation} from '@agoric/cosmic-proto/cosmos/staking/v1beta1/staking.js';
9
+ * @import {TxBody} from '@agoric/cosmic-proto/cosmos/tx/v1beta1/tx.js';
9
10
  */
10
11
 
11
12
  /**
@@ -136,3 +137,14 @@ export const ChainFacadeI = M.interface('ChainFacade', chainFacadeMethods);
136
137
  * from `@agoric/time`
137
138
  */
138
139
  export const TimestampProtoShape = { seconds: M.nat(), nanos: M.number() };
140
+
141
+ /** see {@link TxBody} for more details */
142
+ export const TxBodyOptsShape = M.splitRecord(
143
+ {},
144
+ {
145
+ memo: M.string(),
146
+ timeoutHeight: M.bigint(),
147
+ extensionOptions: M.arrayOf(M.any()),
148
+ nonCriticalExtensionOptions: M.arrayOf(M.any()),
149
+ },
150
+ );