@agoric/orchestration 0.1.1-dev-37ec151.0 → 0.1.1-dev-989aa19.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 (59) hide show
  1. package/package.json +16 -16
  2. package/src/chain-info.js +1 -1
  3. package/src/examples/sendAnywhere.contract.d.ts.map +1 -1
  4. package/src/examples/sendAnywhere.contract.js +3 -2
  5. package/src/examples/stakeBld.contract.d.ts +23 -11
  6. package/src/examples/stakeBld.contract.d.ts.map +1 -1
  7. package/src/examples/stakeBld.contract.js +9 -5
  8. package/src/examples/stakeIca.contract.d.ts +3 -3
  9. package/src/examples/stakeIca.contract.js +1 -1
  10. package/src/examples/swapExample.contract.d.ts.map +1 -1
  11. package/src/examples/swapExample.contract.js +6 -1
  12. package/src/exos/{chainAccountKit.d.ts → chain-account-kit.d.ts} +1 -1
  13. package/src/exos/chain-account-kit.d.ts.map +1 -0
  14. package/src/exos/{chainAccountKit.js → chain-account-kit.js} +2 -2
  15. package/src/exos/{cosmosOrchestrationAccount.d.ts → cosmos-orchestration-account.d.ts} +1 -1
  16. package/src/exos/cosmos-orchestration-account.d.ts.map +1 -0
  17. package/src/exos/{icqConnectionKit.d.ts → icq-connection-kit.d.ts} +1 -1
  18. package/src/exos/icq-connection-kit.d.ts.map +1 -0
  19. package/src/exos/local-chain-facade.d.ts +105 -0
  20. package/src/exos/local-chain-facade.d.ts.map +1 -0
  21. package/src/exos/local-chain-facade.js +67 -0
  22. package/src/exos/{local-chain-account-kit.d.ts → local-orchestration-account.d.ts} +33 -64
  23. package/src/exos/{local-chain-account-kit.d.ts.map → local-orchestration-account.d.ts.map} +1 -1
  24. package/src/exos/{local-chain-account-kit.js → local-orchestration-account.js} +48 -31
  25. package/src/exos/orchestrator.d.ts +39 -54
  26. package/src/exos/orchestrator.d.ts.map +1 -1
  27. package/src/exos/orchestrator.js +16 -24
  28. package/src/exos/remote-chain-facade.d.ts +3 -7
  29. package/src/exos/remote-chain-facade.d.ts.map +1 -1
  30. package/src/exos/remote-chain-facade.js +8 -18
  31. package/src/facade.d.ts +85 -29
  32. package/src/facade.d.ts.map +1 -1
  33. package/src/facade.js +12 -85
  34. package/src/proposals/start-stakeAtom.d.ts +3 -3
  35. package/src/proposals/start-stakeAtom.d.ts.map +1 -1
  36. package/src/proposals/start-stakeBld.d.ts +23 -11
  37. package/src/proposals/start-stakeBld.d.ts.map +1 -1
  38. package/src/proposals/start-stakeOsmo.d.ts +3 -3
  39. package/src/proposals/start-stakeOsmo.d.ts.map +1 -1
  40. package/src/service.js +3 -3
  41. package/src/typeGuards.d.ts +14 -0
  42. package/src/typeGuards.d.ts.map +1 -1
  43. package/src/typeGuards.js +15 -0
  44. package/src/types.d.ts +2 -2
  45. package/src/types.d.ts.map +1 -1
  46. package/src/types.ts +2 -2
  47. package/src/utils/chainHub.d.ts +15 -3
  48. package/src/utils/chainHub.d.ts.map +1 -1
  49. package/src/utils/chainHub.js +1 -1
  50. package/src/utils/orc.js +2 -2
  51. package/src/utils/orchestrationAccount.js +3 -4
  52. package/src/utils/start-helper.d.ts +9 -0
  53. package/src/utils/start-helper.d.ts.map +1 -1
  54. package/src/utils/start-helper.js +16 -5
  55. package/src/exos/chainAccountKit.d.ts.map +0 -1
  56. package/src/exos/cosmosOrchestrationAccount.d.ts.map +0 -1
  57. package/src/exos/icqConnectionKit.d.ts.map +0 -1
  58. /package/src/exos/{cosmosOrchestrationAccount.js → cosmos-orchestration-account.js} +0 -0
  59. /package/src/exos/{icqConnectionKit.js → icq-connection-kit.js} +0 -0
@@ -1,4 +1,4 @@
1
- export function prepareLocalChainAccountKit(zone: Zone, makeRecorderKit: <T>(storageNode: StorageNode | Awaited<import("@endo/far").FarRef<StorageNode>>, valueShape?: import("@agoric/zoe/src/contractSupport/recorder.js").TypedMatcher<T> | undefined) => RecorderKit<T>, zcf: ZCF, timerService: Remote<TimerService>, chainHub: {
1
+ export function prepareLocalOrchestrationAccountKit(zone: Zone, makeRecorderKit: <T>(storageNode: StorageNode | Awaited<import("@endo/far").FarRef<StorageNode>>, valueShape?: import("@agoric/zoe/src/contractSupport/recorder.js").TypedMatcher<T> | undefined) => RecorderKit<T>, zcf: ZCF, timerService: Remote<TimerService>, chainHub: {
2
2
  registerChain(name: string, chainInfo: Readonly<{
3
3
  chainId: string;
4
4
  connections?: Record<string, import("@agoric/orchestration").IBCConnectionInfo> | undefined;
@@ -100,17 +100,6 @@ export function prepareLocalChainAccountKit(zone: Zone, makeRecorderKit: <T>(sto
100
100
  readonly counterPartyChannelId: "channel-62";
101
101
  readonly counterPartyPortId: "transfer";
102
102
  readonly ordering: 0;
103
- /**
104
- * @typedef {object} LocalChainAccountNotification
105
- * @property {string} address
106
- */
107
- /**
108
- * @typedef {{
109
- * topicKit: RecorderKit<LocalChainAccountNotification>;
110
- * account: LocalChainAccount;
111
- * address: ChainAddress['address'];
112
- * }} State
113
- */
114
103
  readonly state: 3;
115
104
  readonly version: "ics20-1";
116
105
  };
@@ -227,17 +216,14 @@ export function prepareLocalChainAccountKit(zone: Zone, makeRecorderKit: <T>(sto
227
216
  readonly stakingTokens: readonly [{
228
217
  readonly denom: "utia";
229
218
  }];
230
- readonly icqEnabled: false; /**
231
- * @param {string} validatorAddress
232
- * @param {Amount<'nat'>} ertpAmount
233
- */
219
+ readonly icqEnabled: false;
234
220
  readonly connections: {
235
221
  readonly 'neutron-1': {
236
222
  readonly id: "connection-7";
237
223
  readonly client_id: "07-tendermint-29";
238
224
  readonly counterparty: {
239
225
  readonly client_id: "07-tendermint-48";
240
- readonly connection_id: "connection-36";
226
+ readonly connection_id: "connection-36"; /** @type {OrchestrationAccount<any>['getBalance']} */
241
227
  readonly prefix: {
242
228
  readonly key_prefix: "FIXME";
243
229
  };
@@ -296,11 +282,6 @@ export function prepareLocalChainAccountKit(zone: Zone, makeRecorderKit: <T>(sto
296
282
  };
297
283
  };
298
284
  readonly 'stargaze-1': {
299
- /**
300
- * @param {string} validatorAddress
301
- * @param {Amount<'nat'>} ertpAmount
302
- * @returns {Promise<void>}
303
- */
304
285
  readonly id: "connection-56";
305
286
  readonly client_id: "07-tendermint-86";
306
287
  readonly counterparty: {
@@ -370,22 +351,13 @@ export function prepareLocalChainAccountKit(zone: Zone, makeRecorderKit: <T>(sto
370
351
  readonly ordering: 0;
371
352
  readonly state: 3;
372
353
  readonly version: "ics20-1";
373
- }; /** @returns {ChainAddress['address']} */
354
+ };
374
355
  };
375
356
  readonly 'juno-1': {
376
357
  readonly id: "connection-372";
377
358
  readonly client_id: "07-tendermint-439";
378
359
  readonly counterparty: {
379
360
  readonly client_id: "07-tendermint-3";
380
- /**
381
- * @param {AmountArg} amount an ERTP {@link Amount} or a
382
- * {@link DenomAmount}
383
- * @param {ChainAddress} destination
384
- * @param {IBCMsgTransferOptions} [opts] if either timeoutHeight or
385
- * timeoutTimestamp are not supplied, a default timeoutTimestamp will
386
- * be set for 5 minutes in the future
387
- * @returns {Promise<void>}
388
- */
389
361
  readonly connection_id: "connection-2";
390
362
  readonly prefix: {
391
363
  readonly key_prefix: "FIXME";
@@ -396,7 +368,15 @@ export function prepareLocalChainAccountKit(zone: Zone, makeRecorderKit: <T>(sto
396
368
  readonly channelId: "channel-1";
397
369
  readonly portId: "transfer";
398
370
  readonly counterPartyChannelId: "channel-207";
399
- readonly counterPartyPortId: "transfer";
371
+ readonly counterPartyPortId: "transfer"; /**
372
+ * @param {AmountArg} amount an ERTP {@link Amount} or a
373
+ * {@link DenomAmount}
374
+ * @param {ChainAddress} destination
375
+ * @param {IBCMsgTransferOptions} [opts] if either timeoutHeight or
376
+ * timeoutTimestamp are not supplied, a default timeoutTimestamp will
377
+ * be set for 5 minutes in the future
378
+ * @returns {Promise<void>}
379
+ */
400
380
  readonly ordering: 0;
401
381
  readonly state: 3;
402
382
  readonly version: "ics20-1";
@@ -2349,21 +2329,15 @@ export function prepareLocalChainAccountKit(zone: Zone, makeRecorderKit: <T>(sto
2349
2329
  account: import("@endo/exo").Guarded<{
2350
2330
  getAddress(): string;
2351
2331
  getBalance(brand: Brand<"nat">): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
2352
- deposit(payment: Payment<"nat" /**
2353
- * @param {string} validatorAddress
2354
- * @param {Amount<'nat'>} ertpAmount
2355
- */> /**
2356
- * @param {string} validatorAddress
2357
- * @param {Amount<'nat'>} ertpAmount
2358
- */, optAmountShape?: Pattern): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
2332
+ deposit(payment: Payment<"nat">, optAmountShape?: Pattern): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
2359
2333
  withdraw(amount: Amount<"nat">): import("@agoric/vow").PromiseVow<globalThis.Payment<"nat">>;
2360
2334
  executeTx<MT extends {
2361
2335
  '@type': string;
2362
2336
  }[]>(messages: MT): import("@agoric/vats/src/localchain.js").PromiseVowOfTupleMappedToGenerics<{ [K_1 in keyof MT]: import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto/vatsafe").ResponseTo<MT[K_1]>>; }>;
2363
2337
  monitorTransfers(tap: import("@agoric/vats/src/bridge-target.js").TargetApp): import("@agoric/vow").PromiseVow<import("@agoric/vats/src/bridge-target.js").TargetRegistration>;
2364
2338
  }>;
2365
- address: string;
2366
- storageNode: StorageNode;
2339
+ address: ChainAddress;
2340
+ storageNode: Remote<globalThis.StorageNode>;
2367
2341
  }) => import("@endo/exo").GuardedKit<{
2368
2342
  invitationMakers: {
2369
2343
  /**
@@ -2381,6 +2355,9 @@ export function prepareLocalChainAccountKit(zone: Zone, makeRecorderKit: <T>(sto
2381
2355
  CloseAccount(): never;
2382
2356
  };
2383
2357
  holder: {
2358
+ /** @type {OrchestrationAccount<any>['getBalance']} */
2359
+ getBalance(denom: DenomArg): Promise<DenomAmount>;
2360
+ getBalances(): never;
2384
2361
  getPublicTopics(): {
2385
2362
  account: {
2386
2363
  description: string;
@@ -2406,22 +2383,17 @@ export function prepareLocalChainAccountKit(zone: Zone, makeRecorderKit: <T>(sto
2406
2383
  * updater will get a special notification that the account is being
2407
2384
  * transferred.
2408
2385
  */
2409
- /** @type {LocalChainAccount['deposit']} */
2410
- deposit(payment: Payment<"nat" /**
2411
- * @param {string} validatorAddress
2412
- * @param {Amount<'nat'>} ertpAmount
2413
- */> /**
2414
- * @param {string} validatorAddress
2415
- * @param {Amount<'nat'>} ertpAmount
2416
- */, optAmountShape?: Pattern): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
2386
+ /** @type {OrchestrationAccount<any>['deposit']} */
2387
+ deposit(payment: globalThis.Payment<"nat">): Promise<void>;
2417
2388
  /** @type {LocalChainAccount['withdraw']} */
2418
2389
  withdraw(amount: Amount<"nat">): import("@agoric/vow").PromiseVow<globalThis.Payment<"nat">>;
2419
2390
  /** @type {LocalChainAccount['executeTx']} */
2420
2391
  executeTx<MT extends {
2421
2392
  '@type': string;
2422
2393
  }[]>(messages: MT): import("@agoric/vats/src/localchain.js").PromiseVowOfTupleMappedToGenerics<{ [K_1 in keyof MT]: import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto/vatsafe").ResponseTo<MT[K_1]>>; }>;
2423
- /** @returns {ChainAddress['address']} */
2424
- getAddress(): string;
2394
+ /** @returns {ChainAddress} */
2395
+ getAddress(): ChainAddress;
2396
+ send(toAccount: any, amount: any): Promise<void>;
2425
2397
  /**
2426
2398
  * @param {AmountArg} amount an ERTP {@link Amount} or a
2427
2399
  * {@link DenomAmount}
@@ -2432,6 +2404,8 @@ export function prepareLocalChainAccountKit(zone: Zone, makeRecorderKit: <T>(sto
2432
2404
  * @returns {Promise<void>}
2433
2405
  */
2434
2406
  transfer(amount: AmountArg, destination: ChainAddress, opts?: IBCMsgTransferOptions | undefined): Promise<void>;
2407
+ /** @type {OrchestrationAccount<any>['transferSteps']} */
2408
+ transferSteps(amount: AmountArg, msg: TransferMsg): Promise<void>;
2435
2409
  };
2436
2410
  }>;
2437
2411
  export type LocalChainAccountNotification = {
@@ -2442,28 +2416,23 @@ export type State = {
2442
2416
  account: import("@endo/exo").Guarded<{
2443
2417
  getAddress(): string;
2444
2418
  getBalance(brand: Brand<"nat">): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
2445
- deposit(payment: Payment<"nat" /**
2446
- * @param {string} validatorAddress
2447
- * @param {Amount<'nat'>} ertpAmount
2448
- */> /**
2449
- * @param {string} validatorAddress
2450
- * @param {Amount<'nat'>} ertpAmount
2451
- */, optAmountShape?: Pattern): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
2419
+ deposit(payment: Payment<"nat">, optAmountShape?: Pattern): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
2452
2420
  withdraw(amount: Amount<"nat">): import("@agoric/vow").PromiseVow<globalThis.Payment<"nat">>;
2453
2421
  executeTx<MT extends {
2454
2422
  '@type': string;
2455
2423
  }[]>(messages: MT): import("@agoric/vats/src/localchain.js").PromiseVowOfTupleMappedToGenerics<{ [K in keyof MT]: import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto/vatsafe").ResponseTo<MT[K]>>; }>;
2456
2424
  monitorTransfers(tap: import("@agoric/vats/src/bridge-target.js").TargetApp): import("@agoric/vow").PromiseVow<import("@agoric/vats/src/bridge-target.js").TargetRegistration>;
2457
2425
  }>;
2458
- address: string;
2426
+ address: ChainAddress;
2459
2427
  };
2460
- export type MakeLocalChainAccountKit = ReturnType<typeof prepareLocalChainAccountKit>;
2461
- export type LocalChainAccountKit = ReturnType<MakeLocalChainAccountKit>;
2428
+ export type MakeLocalOrchestrationAccountKit = ReturnType<typeof prepareLocalOrchestrationAccountKit>;
2429
+ export type LocalOrchestrationAccountKit = ReturnType<MakeLocalOrchestrationAccountKit>;
2462
2430
  import type { Zone } from '@agoric/zone';
2463
2431
  import type { RecorderKit } from '@agoric/zoe/src/contractSupport/recorder.js';
2464
2432
  import type { TimerService } from '@agoric/time';
2465
2433
  import type { Remote } from '@agoric/internal';
2466
- import type { AmountArg } from '@agoric/orchestration';
2467
2434
  import type { ChainAddress } from '@agoric/orchestration';
2435
+ import type { DenomAmount } from '@agoric/orchestration';
2436
+ import type { AmountArg } from '@agoric/orchestration';
2468
2437
  import type { IBCMsgTransferOptions } from '@agoric/orchestration';
2469
- //# sourceMappingURL=local-chain-account-kit.d.ts.map
2438
+ //# sourceMappingURL=local-orchestration-account.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-chain-account-kit.d.ts","sourceRoot":"","sources":["local-chain-account-kit.js"],"names":[],"mappings":"AAqEO,0FAkES,WACd,GAAQ,QAAG,OAAO,WAAW,EAAE,MAAM,CAAC,WACnC,CAAC,CAAC,0HAxEI,GAAG;;;;;;;;;8CAaP,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA/CR;;;2BAGG;wBAEH;;;;;;2BAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAgFK;;;eAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAiDH;;;;uBAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA4CH,yCAAyC;;;;;;;wBAIzC;;;;;;;;2BAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA7IiC,MAAM,KAC/C,CAAC;yBAaU,QAAQ,KACrB,CAAO;;;WAGG,CAHT,CAAM;;;WAGG,mBAFQ,OAAO;yBAiBX,OAAO,KAAK,CAAC;;;uBAoBE,EAAE;;;;iBAnDjB,WAAW;;;QAalB;;;WAGG;mCAFQ,MAAM,cACN,MAAM,CAAC,KAAK,CAAC;;;QAYxB;;;WAGG;qCAFQ,MAAM,cACN,MAAM,CAAC,KAAK,CAAC;;;;;;;;;;;QA0BxB;;;WAGG;mCAFQ,MAAM,cACN,MAAM,CAAC,KAAK,CAAC;;;QAsBxB;;;;WAIG;qCAHQ,MAAM,cACN,MAAM,CAAC,KAAK,CAAC,GACX,OAAO,CAAC,IAAI,CAAC;QA2B1B;;;;WAIG;QACH,2CAA2C;yBAtGrC,QAAQ,KACrB,CAAO;;;WAGG,CAHT,CAAM;;;WAGG,mBAFQ,OAAO;QAwGlB,4CAA4C;yBAvFrC,OAAO,KAAK,CAAC;QA2FpB,6CAA6C;;;uBAvEvB,EAAE;QA4ExB,yCAAyC;;QAIzC;;;;;;;;WAQG;0GADU,OAAO,CAAC,IAAI,CAAC;;GA8CjC;;aAtPa,MAAM;;;;;;0BA4DwB,MAAM,KAC/C,CAAC;yBAaU,QAAQ,KACrB,CAAO;;;WAGG,CAHT,CAAM;;;WAGG,mBAFQ,OAAO;yBAiBX,OAAO,KAAK,CAAC;;;uBAoBE,EAAE;;;;;uCAsIlB,UAAU,CAAC,OAAO,2BAA2B,CAAC;mCAC9C,UAAU,CAAC,wBAAwB,CAAC;0BAnQ3B,cAAc;iCADU,6CAA6C;kCAGjD,cAAc;4BADhC,kBAAkB;+BAHoD,uBAAuB;kCAAvB,uBAAuB;2CAAvB,uBAAuB"}
1
+ {"version":3,"file":"local-orchestration-account.d.ts","sourceRoot":"","sources":["local-orchestration-account.js"],"names":[],"mappings":"AA4DO,kGA4EO,WAAE,GAAE,QAAS,OAAO,WAAW,EAAE,MAAM,CACvC,WAAH,CAAC,CAAC,0HAjFF,GAAG;;;;;;;;;8CAoBI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEAsDX,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEA4GtD;;;;;;;;2BAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA3JoB,MAAM,KAClC,CAAC;yBAgBQ,QAAA,KAAI,CAAC,mBAA6B,OAAO;yBAiBjC,OACV,KAAH,CAAC;;;uBAoBA,EAAL;;;;;;;QAhDK;;;WAGG;mCAFQ,MAAM,cACN,MAAM,CAAC,KAAK,CAAC;;;QAYxB;;;WAGG;qCAFQ,MAAM,cACN,MAAM,CAAC,KAAK,CAAC;;;;QAgBxB,sDAAsD;0BAI3C,QAAS;;;;;;;;;QAwBpB;;;WAGG;mCAFQ,MAAM,cACN,MAAM,CAAC,KAAK,CAAC;;;QAsBxB;;;;WAIG;qCAHQ,MAAM,cACN,MAAM,CAAC,KAAK,CAAC,GACX,OAAO,CAAC,IAAI,CAAC;QA2B1B;;;;WAIG;QACH,mDAAmD;;QAInD,4CAA4C;yBAhGhC,OACV,KAAH,CAAC;QAmGA,6CAA6C;;;uBA/E7C,EAAL;QAoFK,8BAA8B;;;QAQ9B;;;;;;;;WAQG;0GADU,OAAO,CAAC,IAAI,CAAC;QA0C1B,yDAAyD;8BAlH/B,SAAU,OAAM,WAAY;;GA2H7D;;aA5Qa,MAAM;;;;;;0BA+DW,MAAM,KAClC,CAAC;yBAgBQ,QAAA,KAAI,CAAC,mBAA6B,OAAO;yBAiBjC,OACV,KAAH,CAAC;;;uBAoBA,EAAL;;;;;+CAuJW,UAAU,CAAC,OAAO,mCAAmC,CAAC;2CACtD,UAAU,CAAC,gCAAgC,CAAC;0BAzRnC,cAAc;iCADU,6CAA6C;kCAGjD,cAAc;4BADhC,kBAAkB;kCAHgF,uBAAuB;iCAAvB,uBAAuB;+BAAvB,uBAAuB;2CAAvB,uBAAuB"}
@@ -1,24 +1,19 @@
1
1
  /** @file Use-object for the owner of a localchain account */
2
- import { NonNullish } from '@agoric/assert';
3
2
  import { typedJson } from '@agoric/cosmic-proto/vatsafe';
4
3
  import { AmountShape, PaymentShape } from '@agoric/ertp';
5
4
  import { makeTracer } from '@agoric/internal';
6
5
  import { M } from '@agoric/vat-data';
6
+ import { V } from '@agoric/vow/vat.js';
7
7
  import { TopicsRecordShape } from '@agoric/zoe/src/contractSupport/index.js';
8
8
  import { InvitationShape } from '@agoric/zoe/src/typeGuards.js';
9
- import { V } from '@agoric/vow/vat.js';
10
9
  import { E } from '@endo/far';
11
- import {
12
- AmountArgShape,
13
- ChainAddressShape,
14
- IBCTransferOptionsShape,
15
- } from '../typeGuards.js';
16
10
  import { maxClockSkew } from '../utils/cosmos.js';
11
+ import { orchestrationAccountMethods } from '../utils/orchestrationAccount.js';
17
12
  import { dateInSeconds, makeTimestampHelper } from '../utils/time.js';
18
13
 
19
14
  /**
20
15
  * @import {LocalChainAccount} from '@agoric/vats/src/localchain.js';
21
- * @import {AmountArg, ChainAddress, DenomAmount, IBCMsgTransferOptions, CosmosChainInfo} from '@agoric/orchestration';
16
+ * @import {AmountArg, ChainAddress, DenomAmount, IBCMsgTransferOptions, OrchestrationAccount, OrchestrationAccountI} from '@agoric/orchestration';
22
17
  * @import {RecorderKit, MakeRecorderKit} from '@agoric/zoe/src/contractSupport/recorder.js'.
23
18
  * @import {Zone} from '@agoric/zone';
24
19
  * @import {Remote} from '@agoric/internal';
@@ -26,7 +21,7 @@ import { dateInSeconds, makeTimestampHelper } from '../utils/time.js';
26
21
  * @import {ChainHub} from '../utils/chainHub.js';
27
22
  */
28
23
 
29
- const trace = makeTracer('LCAH');
24
+ const trace = makeTracer('LOA');
30
25
 
31
26
  const { Fail } = assert;
32
27
  /**
@@ -38,20 +33,16 @@ const { Fail } = assert;
38
33
  * @typedef {{
39
34
  * topicKit: RecorderKit<LocalChainAccountNotification>;
40
35
  * account: LocalChainAccount;
41
- * address: ChainAddress['address'];
36
+ * address: ChainAddress;
42
37
  * }} State
43
38
  */
44
39
 
45
40
  const HolderI = M.interface('holder', {
41
+ ...orchestrationAccountMethods,
46
42
  getPublicTopics: M.call().returns(TopicsRecordShape),
47
43
  delegate: M.call(M.string(), AmountShape).returns(M.promise()),
48
44
  undelegate: M.call(M.string(), AmountShape).returns(M.promise()),
49
- deposit: M.callWhen(PaymentShape).optional(AmountShape).returns(AmountShape),
50
45
  withdraw: M.callWhen(AmountShape).returns(PaymentShape),
51
- transfer: M.call(AmountArgShape, ChainAddressShape)
52
- .optional(IBCTransferOptionsShape)
53
- .returns(M.promise()),
54
- getAddress: M.call().returns(M.string()),
55
46
  executeTx: M.callWhen(M.arrayOf(M.record())).returns(M.arrayOf(M.record())),
56
47
  });
57
48
 
@@ -67,7 +58,7 @@ const PUBLIC_TOPICS = {
67
58
  * @param {Remote<TimerService>} timerService
68
59
  * @param {ChainHub} chainHub
69
60
  */
70
- export const prepareLocalChainAccountKit = (
61
+ export const prepareLocalOrchestrationAccountKit = (
71
62
  zone,
72
63
  makeRecorderKit,
73
64
  zcf,
@@ -75,10 +66,10 @@ export const prepareLocalChainAccountKit = (
75
66
  chainHub,
76
67
  ) => {
77
68
  const timestampHelper = makeTimestampHelper(timerService);
78
- // TODO: rename to makeLocalOrchestrationAccount or the like to distinguish from lca
69
+
79
70
  /** Make an object wrapping an LCA with Zoe interfaces. */
80
- const makeLocalChainAccountKit = zone.exoClassKit(
81
- 'LCA Kit',
71
+ const makeLocalOrchestrationAccountKit = zone.exoClassKit(
72
+ 'Local Orchestration Account Kit',
82
73
  {
83
74
  holder: HolderI,
84
75
  invitationMakers: M.interface('invitationMakers', {
@@ -92,8 +83,8 @@ export const prepareLocalChainAccountKit = (
92
83
  /**
93
84
  * @param {object} initState
94
85
  * @param {LocalChainAccount} initState.account
95
- * @param {ChainAddress['address']} initState.address
96
- * @param {StorageNode} initState.storageNode
86
+ * @param {ChainAddress} initState.address
87
+ * @param {Remote<StorageNode>} initState.storageNode
97
88
  * @returns {State}
98
89
  */
99
90
  ({ account, address, storageNode }) => {
@@ -101,7 +92,6 @@ export const prepareLocalChainAccountKit = (
101
92
  // @ts-expect-error XXX Patterns
102
93
  const topicKit = makeRecorderKit(storageNode, PUBLIC_TOPICS.account[1]);
103
94
 
104
- // #9162 use ChainAddress object instead of `address` string
105
95
  return { account, address, topicKit };
106
96
  },
107
97
  {
@@ -138,6 +128,24 @@ export const prepareLocalChainAccountKit = (
138
128
  },
139
129
  },
140
130
  holder: {
131
+ /** @type {OrchestrationAccount<any>['getBalance']} */
132
+ async getBalance(denomArg) {
133
+ // FIXME look up real values
134
+ // UNTIL https://github.com/Agoric/agoric-sdk/issues/9211
135
+ const [brand, denom] =
136
+ typeof denomArg === 'string'
137
+ ? [/** @type {any} */ (null), denomArg]
138
+ : [denomArg, 'FIXME'];
139
+
140
+ const natAmount = await V.when(
141
+ E(this.state.account).getBalance(brand),
142
+ );
143
+ return harden({ denom, value: natAmount.value });
144
+ },
145
+ getBalances() {
146
+ throw new Error('not yet implemented');
147
+ },
148
+
141
149
  getPublicTopics() {
142
150
  const { topicKit } = this.state;
143
151
  return harden({
@@ -207,9 +215,9 @@ export const prepareLocalChainAccountKit = (
207
215
  * updater will get a special notification that the account is being
208
216
  * transferred.
209
217
  */
210
- /** @type {LocalChainAccount['deposit']} */
211
- async deposit(payment, optAmountShape) {
212
- return V(this.state.account).deposit(payment, optAmountShape);
218
+ /** @type {OrchestrationAccount<any>['deposit']} */
219
+ async deposit(payment) {
220
+ await V(this.state.account).deposit(payment);
213
221
  },
214
222
  /** @type {LocalChainAccount['withdraw']} */
215
223
  async withdraw(amount) {
@@ -220,9 +228,13 @@ export const prepareLocalChainAccountKit = (
220
228
  // @ts-expect-error subtype
221
229
  return V(this.state.account).executeTx(messages);
222
230
  },
223
- /** @returns {ChainAddress['address']} */
231
+ /** @returns {ChainAddress} */
224
232
  getAddress() {
225
- return NonNullish(this.state.address, 'Chain address not available.');
233
+ return this.state.address;
234
+ },
235
+ async send(toAccount, amount) {
236
+ // FIXME implement
237
+ console.log('send got', toAccount, amount);
226
238
  },
227
239
  /**
228
240
  * @param {AmountArg} amount an ERTP {@link Amount} or a
@@ -261,7 +273,7 @@ export const prepareLocalChainAccountKit = (
261
273
  amount: String(amount.value),
262
274
  denom: amount.denom,
263
275
  },
264
- sender: this.state.address,
276
+ sender: this.state.address.address,
265
277
  receiver: destination.address,
266
278
  timeoutHeight: opts?.timeoutHeight ?? {
267
279
  revisionHeight: 0n,
@@ -273,10 +285,15 @@ export const prepareLocalChainAccountKit = (
273
285
  ]);
274
286
  trace('MsgTransfer result', result);
275
287
  },
288
+ /** @type {OrchestrationAccount<any>['transferSteps']} */
289
+ transferSteps(amount, msg) {
290
+ console.log('transferSteps got', amount, msg);
291
+ return Promise.resolve();
292
+ },
276
293
  },
277
294
  },
278
295
  );
279
- return makeLocalChainAccountKit;
296
+ return makeLocalOrchestrationAccountKit;
280
297
  };
281
- /** @typedef {ReturnType<typeof prepareLocalChainAccountKit>} MakeLocalChainAccountKit */
282
- /** @typedef {ReturnType<MakeLocalChainAccountKit>} LocalChainAccountKit */
298
+ /** @typedef {ReturnType<typeof prepareLocalOrchestrationAccountKit>} MakeLocalOrchestrationAccountKit */
299
+ /** @typedef {ReturnType<MakeLocalOrchestrationAccountKit>} LocalOrchestrationAccountKit */
@@ -1,11 +1,3 @@
1
- export const ChainInfoShape: import("@endo/patterns").Matcher;
2
- export const LocalChainAccountShape: import("@endo/patterns").Matcher;
3
- export const DenomShape: import("@endo/patterns").Matcher;
4
- export const BrandInfoShape: import("@endo/patterns").Matcher;
5
- export namespace DenomAmountShape {
6
- export { DenomShape as denom };
7
- export let value: import("@endo/patterns").Matcher;
8
- }
9
1
  /** @see {Orchestrator} */
10
2
  export const OrchestratorI: import("@endo/patterns").InterfaceGuard<{
11
3
  getChain: import("@endo/patterns").MethodGuard;
@@ -13,7 +5,7 @@ export const OrchestratorI: import("@endo/patterns").InterfaceGuard<{
13
5
  getBrandInfo: import("@endo/patterns").MethodGuard;
14
6
  asAmount: import("@endo/patterns").MethodGuard;
15
7
  }>;
16
- export function prepareOrchestrator(zone: Zone, { chainHub, localchain, makeLocalChainAccountKit, makeRemoteChainFacade }: {
8
+ export function prepareOrchestrator(zone: Zone, { chainHub, localchain, makeLocalChainFacade, makeRemoteChainFacade }: {
17
9
  asyncFlowTools: {
18
10
  prepareAsyncFlowKit: (zone: Zone, tag: string, guestAsyncFunc: import("../../../../node_modules/@agoric/async-flow/src/types.js").GuestAsyncFunc, options?: {
19
11
  startEager?: boolean | undefined;
@@ -185,7 +177,7 @@ export function prepareOrchestrator(zone: Zone, { chainHub, localchain, makeLoca
185
177
  };
186
178
  readonly state: 3;
187
179
  readonly transferChannel: {
188
- readonly channelId: "channel-320";
180
+ readonly channelId: "channel-320"; /** @type {Orchestrator['getChain']} */
189
181
  readonly portId: "transfer";
190
182
  readonly counterPartyChannelId: "channel-1";
191
183
  readonly counterPartyPortId: "transfer";
@@ -2389,50 +2381,43 @@ export function prepareOrchestrator(zone: Zone, { chainHub, localchain, makeLoca
2389
2381
  reply: import("@agoric/cosmic-proto").ResponseTo<RT[K_2]>;
2390
2382
  }>; }>;
2391
2383
  }>>;
2392
- makeLocalChainAccountKit: (args_0: {
2393
- account: import("@endo/exo").Guarded<{
2394
- getAddress(): string;
2395
- getBalance(brand: Brand<"nat">): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
2396
- deposit(payment: Payment<"nat">, optAmountShape?: Pattern): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
2397
- withdraw(amount: Amount<"nat">): import("@agoric/vow").PromiseVow<globalThis.Payment<"nat">>;
2398
- executeTx<MT extends {
2399
- '@type': string;
2400
- }[]>(messages: MT): import("@agoric/vats/src/localchain.js").PromiseVowOfTupleMappedToGenerics<{ [K_1 in keyof MT]: import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto").ResponseTo<MT[K_1]>>; }>;
2401
- monitorTransfers(tap: import("@agoric/vats/src/bridge-target.js").TargetApp): import("@agoric/vow").PromiseVow<import("@agoric/vats/src/bridge-target.js").TargetRegistration>;
2402
- }>;
2403
- address: string;
2404
- storageNode: globalThis.StorageNode;
2405
- }) => import("@endo/exo").GuardedKit<{
2406
- invitationMakers: {
2407
- Delegate(validatorAddress: string, ertpAmount: Amount<"nat">): Promise<Invitation<import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto/cosmos/staking/v1beta1/tx.js").MsgDelegateResponse & {
2408
- '@type': "/cosmos.staking.v1beta1.MsgDelegateResponse";
2409
- }>, undefined>>;
2410
- Undelegate(validatorAddress: string, ertpAmount: Amount<"nat">): Promise<Invitation<void, undefined>>;
2411
- CloseAccount(): never;
2412
- };
2413
- holder: {
2414
- getPublicTopics(): {
2415
- account: {
2416
- description: string;
2417
- subscriber: globalThis.Subscriber<import("./local-chain-account-kit.js").LocalChainAccountNotification>;
2418
- storagePath: Promise<string>;
2419
- };
2420
- };
2421
- delegate(validatorAddress: string, ertpAmount: Amount<"nat">): Promise<import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto/cosmos/staking/v1beta1/tx.js").MsgDelegateResponse & {
2422
- '@type': "/cosmos.staking.v1beta1.MsgDelegateResponse";
2423
- }>>;
2424
- undelegate(validatorAddress: string, ertpAmount: Amount<"nat">): Promise<void>;
2425
- deposit(payment: Payment<"nat">, optAmountShape?: Pattern): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
2426
- withdraw(amount: Amount<"nat">): import("@agoric/vow").PromiseVow<globalThis.Payment<"nat">>;
2427
- executeTx<MT extends {
2428
- '@type': string;
2429
- }[]>(messages: MT): import("@agoric/vats/src/localchain.js").PromiseVowOfTupleMappedToGenerics<{ [K_1 in keyof MT]: import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto").ResponseTo<MT[K_1]>>; }>;
2430
- getAddress(): string;
2431
- transfer(amount: import("../orchestration-api.js").AmountArg, destination: import("../orchestration-api.js").ChainAddress, opts?: import("../cosmos-api.js").IBCMsgTransferOptions | undefined): Promise<void>;
2432
- };
2433
- }>;
2434
2384
  makeRecorderKit: <T_1>(storageNode: StorageNode | Awaited<import("@endo/far").FarRef<StorageNode>>, valueShape?: import("@agoric/zoe/src/contractSupport/recorder.js").TypedMatcher<T_1> | undefined) => RecorderKit<T_1>;
2435
- makeRemoteChainFacade: any;
2385
+ makeLocalChainFacade: (localChainInfo: Readonly<{
2386
+ chainId: string;
2387
+ connections?: Record<string, IBCConnectionInfo> | undefined;
2388
+ icqEnabled?: boolean | undefined;
2389
+ stakingTokens?: readonly {
2390
+ denom: string;
2391
+ }[] | undefined;
2392
+ }>) => import("@endo/exo").Guarded<{
2393
+ getChainInfo(): Promise<Readonly<{
2394
+ chainId: string;
2395
+ connections?: Record<string, IBCConnectionInfo> | undefined;
2396
+ icqEnabled?: boolean | undefined;
2397
+ stakingTokens?: readonly {
2398
+ denom: string;
2399
+ }[] | undefined;
2400
+ }>>;
2401
+ makeAccount(): Promise<import("../orchestration-api.js").OrchestrationAccountI>;
2402
+ }>;
2403
+ makeRemoteChainFacade: (remoteChainInfo: Readonly<{
2404
+ chainId: string;
2405
+ connections?: Record<string, IBCConnectionInfo> | undefined;
2406
+ icqEnabled?: boolean | undefined;
2407
+ stakingTokens?: readonly {
2408
+ denom: string;
2409
+ }[] | undefined;
2410
+ }>, connectionInfo: IBCConnectionInfo) => import("@endo/exo").Guarded<{
2411
+ getChainInfo(): Promise<Readonly<{
2412
+ chainId: string;
2413
+ connections?: Record<string, IBCConnectionInfo> | undefined;
2414
+ icqEnabled?: boolean | undefined;
2415
+ stakingTokens?: readonly {
2416
+ denom: string;
2417
+ }[] | undefined;
2418
+ }>>;
2419
+ makeAccount(): Promise<import("../orchestration-api.js").OrchestrationAccountI>;
2420
+ }>;
2436
2421
  orchestrationService: Remote<import("@endo/exo").Guarded<{
2437
2422
  makeAccount(chainId: string, hostConnectionId: `connection-${number}`, controllerConnectionId: `connection-${number}`): Promise<import("../cosmos-api.js").IcaAccount>;
2438
2423
  provideICQConnection(controllerConnectionId: `connection-${number}`): Promise<import("@endo/exo").Guarded<{
@@ -2576,7 +2561,7 @@ export function prepareOrchestrator(zone: Zone, { chainHub, localchain, makeLoca
2576
2561
  };
2577
2562
  readonly state: 3;
2578
2563
  readonly transferChannel: {
2579
- readonly channelId: "channel-320";
2564
+ readonly channelId: "channel-320"; /** @type {Orchestrator['getChain']} */
2580
2565
  readonly portId: "transfer";
2581
2566
  readonly counterPartyChannelId: "channel-1";
2582
2567
  readonly counterPartyPortId: "transfer";
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["orchestrator.js"],"names":[],"mappings":"AA+BA,8DAAsC;AACtC,sEAAuE;AACvE,0DAAqC;AACrC,8DAAsC;;;;;AAItC,0BAA0B;AAC1B;;;;;GAKG;AAiBI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAaD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAiByC,MAAM,KAAK,CAAC;6BAU8N,QAAQ,KAAK,CAAC,mBAA6B,OAAO;6BAAwjB,OAAO,KAAK,CAAC;;;2BAA6rB,EAAE;;;;;;;oBAAqjG,CAAC;;;uBAA6lB,EAAE;;;;;;;;8BAVrrK,MAAM,KAAK,CAAC;6BAU8N,QAAQ,KAAK,CAAC,mBAA6B,OAAO;6BAAwjB,OAAO,KAAK,CAAC;;;2BAA6rB,EAAE;;;;;;;2DAA/tC,OAAO,KAAK,CAAC;;;6DAAid,OAAO,KAAK,CAAC;;;;;;;;;;;2DAAs4B,OAAO,KAAK,CAAC;;;6DAA+yB,OAAO,KAAK,CAAC;6BAAjxE,QAAQ,KAAK,CAAC,mBAA6B,OAAO;6BAAwjB,OAAO,KAAK,CAAC;;;2BAA6rB,EAAE;;;;;wCAAvV,WAAW,GAAE,QAAS,OAAO,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;2BA/C3xC,GAAG;;;;;;;;;;;SAIrB,GAAG;;IAeP,uCAAuC;4CAajC,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAKkC,MAAM,KAAK,CAAC;yBAU8N,QAAQ,KAAK,CAAC,mBAA6B,OAAO;yBAAwjB,OAAO,KAAK,CAAC;;;uBAA6rB,EAAE;;;;;GAF7kD;0BA1FoB,mBAAmB;yBAOpB,aAAa;uCAQwE,aAAa;+BAAb,aAAa;4BAH/F,kBAAkB;iCADI,6CAA6C;kCAH7D,cAAc;2BAO8D,aAAa"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["orchestrator.js"],"names":[],"mappings":"AAgCA,0BAA0B;AAC1B;;;;;GAKG;AAiBI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAwBG,CAAF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DAZF,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}