@agoric/orchestration 0.1.1-dev-62c73f5.0 → 0.1.1-dev-0cfea88.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 (57) hide show
  1. package/package.json +16 -16
  2. package/src/chain-info.d.ts +3 -11
  3. package/src/chain-info.d.ts.map +1 -1
  4. package/src/examples/sendAnywhere.contract.d.ts +7 -40
  5. package/src/examples/sendAnywhere.contract.d.ts.map +1 -1
  6. package/src/examples/stakeBld.contract.d.ts +14 -41
  7. package/src/examples/stakeBld.contract.d.ts.map +1 -1
  8. package/src/examples/stakeIca.contract.d.ts +5 -10
  9. package/src/examples/stakeIca.contract.d.ts.map +1 -1
  10. package/src/examples/swapExample.contract.d.ts +5 -33
  11. package/src/examples/swapExample.contract.d.ts.map +1 -1
  12. package/src/examples/unbondExample.contract.d.ts +5 -33
  13. package/src/examples/unbondExample.contract.d.ts.map +1 -1
  14. package/src/exos/chain-account-kit.d.ts +9 -10
  15. package/src/exos/chain-account-kit.d.ts.map +1 -1
  16. package/src/exos/chain-hub.d.ts +5 -2330
  17. package/src/exos/chain-hub.d.ts.map +1 -1
  18. package/src/exos/cosmos-orchestration-account.d.ts +11 -26
  19. package/src/exos/cosmos-orchestration-account.d.ts.map +1 -1
  20. package/src/exos/icq-connection-kit.d.ts +7 -9
  21. package/src/exos/icq-connection-kit.d.ts.map +1 -1
  22. package/src/exos/local-chain-facade.d.ts +19 -125
  23. package/src/exos/local-chain-facade.d.ts.map +1 -1
  24. package/src/exos/local-orchestration-account.d.ts +18 -64
  25. package/src/exos/local-orchestration-account.d.ts.map +1 -1
  26. package/src/exos/orchestrator.d.ts +70 -2440
  27. package/src/exos/orchestrator.d.ts.map +1 -1
  28. package/src/exos/orchestrator.js +74 -27
  29. package/src/exos/remote-chain-facade.d.ts +16 -66
  30. package/src/exos/remote-chain-facade.d.ts.map +1 -1
  31. package/src/facade.d.ts +18 -188
  32. package/src/facade.d.ts.map +1 -1
  33. package/src/facade.js +7 -3
  34. package/src/proposals/orchestration-proposal.d.ts +8 -619
  35. package/src/proposals/orchestration-proposal.d.ts.map +1 -1
  36. package/src/proposals/start-stakeAtom.d.ts +3 -15
  37. package/src/proposals/start-stakeAtom.d.ts.map +1 -1
  38. package/src/proposals/start-stakeBld.d.ts +15 -48
  39. package/src/proposals/start-stakeBld.d.ts.map +1 -1
  40. package/src/proposals/start-stakeOsmo.d.ts +3 -15
  41. package/src/proposals/start-stakeOsmo.d.ts.map +1 -1
  42. package/src/service.d.ts +17 -73
  43. package/src/service.d.ts.map +1 -1
  44. package/src/utils/address.d.ts +8 -5
  45. package/src/utils/address.d.ts.map +1 -1
  46. package/src/utils/cosmos.d.ts.map +1 -1
  47. package/src/utils/orc.d.ts.map +1 -1
  48. package/src/utils/packet.d.ts +3 -3
  49. package/src/utils/packet.d.ts.map +1 -1
  50. package/src/utils/start-helper.d.ts +8 -42
  51. package/src/utils/start-helper.d.ts.map +1 -1
  52. package/src/utils/start-helper.js +1 -0
  53. package/src/utils/time.d.ts +5 -1
  54. package/src/utils/time.d.ts.map +1 -1
  55. package/src/utils/time.js +5 -1
  56. package/src/vat-orchestration.d.ts +14 -22
  57. package/src/vat-orchestration.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["orchestrator.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["orchestrator.js"],"names":[],"mappings":"AAkCA,0BAA0B;AAC1B;;;;;GAKG;AAkBI,6CAfI,IAAI,qGACJ;IACV,cAAkB,EAAE,cAAc,CAAC;IACnC,QAAY,EAAE,QAAQ,CAAC;IACvB,UAAc,EAAE,OAAO,UAAU,CAAC,CAAC;IACnC,eAAmB,EAAE,eAAe,CAAC;IACrC,oBAAwB,EAAE,oBAAoB,CAAC;IAC/C,qBAAyB,EAAE,qBAAqB,CAAC;IACjD,oBAAwB,EAAE,OAAO,oBAAoB,CAAC,CAAC;IACvD,WAAe,EAAE,OAAO,WAAW,CAAC,CAAC;IACrC,YAAgB,EAAE,OAAO,YAAY,CAAC,CAAC;IACvC,QAAY,EAAE,QAAQ,CAAC;IACvB,GAAO,EAAE,GAAG,CAAC;CACV;IAmCE,2DAA2D;;QAEzD,yCAAyC;;;;;;;;;;;;;IAK3C;;;OAGG;;QAED;;;;;WAKG;;;;;;;;;;;;;;QAMH,uCAAuC;;;;;;;;;;;;;GAwB5C;0BA3HoB,mBAAmB;oCAET,oBAAoB;8BAD1B,gBAAgB;gCAId,gCAAgC;4BAEpC,kBAAkB;qCADI,6CAA6C;0CAKrD,yBAAyB;2CACxB,0BAA0B;0CAH3B,eAAe;kCALvB,cAAc;8BADb,aAAa;+BAU8D,aAAa;uCAAb,aAAa;0CAAb,aAAa;2BAAb,aAAa"}
@@ -1,7 +1,7 @@
1
1
  /** @file ChainAccount exo */
2
2
  import { AmountShape } from '@agoric/ertp';
3
3
  import { makeTracer } from '@agoric/internal';
4
- import { V } from '@agoric/vow/vat.js';
4
+ import { E } from '@endo/far';
5
5
  import { M } from '@endo/patterns';
6
6
  import {
7
7
  ChainInfoShape,
@@ -10,16 +10,18 @@ import {
10
10
  BrandInfoShape,
11
11
  DenomAmountShape,
12
12
  } from '../typeGuards.js';
13
+ import { getChainsAndConnection } from './chain-hub.js';
13
14
 
14
15
  /**
15
16
  * @import {Zone} from '@agoric/base-zone';
16
17
  * @import {ChainHub} from './chain-hub.js';
17
18
  * @import {AsyncFlowTools} from '@agoric/async-flow';
18
- * @import {Vow} from '@agoric/vow';
19
+ * @import {Vow, VowTools} from '@agoric/vow';
19
20
  * @import {TimerService} from '@agoric/time';
20
21
  * @import {LocalChain} from '@agoric/vats/src/localchain.js';
21
22
  * @import {RecorderKit, MakeRecorderKit} from '@agoric/zoe/src/contractSupport/recorder.js'.
22
23
  * @import {Remote} from '@agoric/internal';
24
+ * @import {PickFacet} from '@agoric/swingset-liveslots';
23
25
  * @import {OrchestrationService} from '../service.js';
24
26
  * @import {MakeLocalOrchestrationAccountKit} from './local-orchestration-account.js';
25
27
  * @import {MakeLocalChainFacade} from './local-chain-facade.js';
@@ -50,44 +52,89 @@ export const OrchestratorI = M.interface('Orchestrator', {
50
52
  * orchestrationService: Remote<OrchestrationService>;
51
53
  * storageNode: Remote<StorageNode>;
52
54
  * timerService: Remote<TimerService>;
55
+ * vowTools: VowTools;
53
56
  * zcf: ZCF;
54
57
  * }} powers
55
58
  */
56
- export const prepareOrchestrator = (
59
+ export const prepareOrchestratorKit = (
57
60
  zone,
58
- { chainHub, localchain, makeLocalChainFacade, makeRemoteChainFacade },
61
+ {
62
+ chainHub,
63
+ localchain,
64
+ makeLocalChainFacade,
65
+ makeRemoteChainFacade,
66
+ vowTools: { watch, when },
67
+ },
59
68
  ) =>
60
- zone.exoClass(
69
+ zone.exoClassKit(
61
70
  'Orchestrator',
62
- OrchestratorI,
71
+ {
72
+ orchestrator: OrchestratorI,
73
+ makeLocalChainFacadeWatcher: M.interface('makeLocalChainFacadeWatcher', {
74
+ onFulfilled: M.call(M.record())
75
+ .optional(M.arrayOf(M.undefined()))
76
+ .returns(M.any()), // FIXME narrow
77
+ }),
78
+ makeRemoteChainFacadeWatcher: M.interface(
79
+ 'makeRemoteChainFacadeWatcher',
80
+ {
81
+ onFulfilled: M.call(M.arrayOf(M.record()))
82
+ .optional(M.arrayOf(M.undefined()))
83
+ .returns(M.any()), // FIXME narrow
84
+ },
85
+ ),
86
+ },
63
87
  () => {
64
88
  trace('making an Orchestrator');
65
89
  return {};
66
90
  },
67
91
  {
68
- /** @type {Orchestrator['getChain']} */
69
- getChain: async name => {
70
- const agoricChainInfo = await chainHub.getChainInfo('agoric');
71
-
72
- if (name === 'agoric') {
73
- // @ts-expect-error XXX chainInfo generic
92
+ /** Waits for `chainInfo` and returns a LocalChainFacade */
93
+ makeLocalChainFacadeWatcher: {
94
+ /** @param {ChainInfo} agoricChainInfo */
95
+ onFulfilled(agoricChainInfo) {
74
96
  return makeLocalChainFacade(agoricChainInfo);
75
- }
76
-
77
- const remoteChainInfo = await chainHub.getChainInfo(name);
78
- const connectionInfo = await chainHub.getConnectionInfo(
79
- agoricChainInfo.chainId,
80
- remoteChainInfo.chainId,
81
- );
82
-
83
- // @ts-expect-error XXX chainInfo generic
84
- return makeRemoteChainFacade(remoteChainInfo, connectionInfo);
97
+ },
98
+ },
99
+ /**
100
+ * Waits for `chainInfo` for `agoric` and a remote chain and returns a
101
+ * RemoteChainFacade
102
+ */
103
+ makeRemoteChainFacadeWatcher: {
104
+ /**
105
+ * Waits for `chainInfo` for `agoric` and a remote chain and returns a
106
+ * RemoteChainFacade
107
+ *
108
+ * @param {[ChainInfo, ChainInfo, IBCConnectionInfo]} chainsAndConnection
109
+ */
110
+ onFulfilled([_agoricChainInfo, remoteChainInfo, connectionInfo]) {
111
+ return makeRemoteChainFacade(remoteChainInfo, connectionInfo);
112
+ },
85
113
  },
86
- makeLocalAccount() {
87
- return V(localchain).makeAccount();
114
+ orchestrator: {
115
+ /** @type {Orchestrator['getChain']} */
116
+ getChain(name) {
117
+ if (name === 'agoric') {
118
+ return when(
119
+ watch(
120
+ chainHub.getChainInfo('agoric'),
121
+ this.facets.makeLocalChainFacadeWatcher,
122
+ ),
123
+ );
124
+ }
125
+ return when(
126
+ watch(
127
+ getChainsAndConnection(chainHub, 'agoric', name),
128
+ this.facets.makeRemoteChainFacadeWatcher,
129
+ ),
130
+ );
131
+ },
132
+ makeLocalAccount() {
133
+ return when(watch(E(localchain).makeAccount()));
134
+ },
135
+ getBrandInfo: () => Fail`not yet implemented`,
136
+ asAmount: () => Fail`not yet implemented`,
88
137
  },
89
- getBrandInfo: () => Fail`not yet implemented`,
90
- asAmount: () => Fail`not yet implemented`,
91
138
  },
92
139
  );
93
- harden(prepareOrchestrator);
140
+ harden(prepareOrchestratorKit);
@@ -1,84 +1,34 @@
1
1
  export function prepareRemoteChainFacade(zone: Zone, { makeCosmosOrchestrationAccount, orchestration, storageNode, timer }: {
2
- makeCosmosOrchestrationAccount: (chainAddress: import("../orchestration-api.js").ChainAddress, bondDenom: string, io: {
3
- account: import("../cosmos-api.js").IcaAccount;
4
- storageNode: Remote<globalThis.StorageNode>;
5
- icqConnection: import("@endo/exo").Guarded<{
6
- getLocalAddress(): `/ibc-port/${string}`;
7
- getRemoteAddress(): `/${string}ibc-port/${string}/ordered/${string}` | `/${string}ibc-port/${string}/unordered/${string}`;
8
- query(msgs: import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto/tendermint/abci/types.js").RequestQuery>[]): Promise<import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto/tendermint/abci/types.js").ResponseQuery>[]>;
9
- }> | undefined;
10
- timer: Remote<TimerService>;
11
- }) => import("@endo/exo").Guarded<{
12
- asContinuingOffer(): {
13
- publicSubscribers: {
14
- account: {
15
- description: string;
16
- subscriber: globalThis.Subscriber<import("./cosmos-orchestration-account.js").ComosOrchestrationAccountNotification>;
17
- storagePath: Promise<string>;
18
- };
19
- };
20
- invitationMakers: import("@endo/exo").Guarded<{
21
- Delegate(validator: import("../cosmos-api.js").CosmosValidatorAddress, amount: import("../orchestration-api.js").AmountArg): Promise<Invitation<undefined, undefined>>;
22
- Redelegate(srcValidator: import("../cosmos-api.js").CosmosValidatorAddress, dstValidator: import("../cosmos-api.js").CosmosValidatorAddress, amount: import("../orchestration-api.js").AmountArg): Promise<Invitation<undefined, undefined>>;
23
- WithdrawReward(validator: import("../cosmos-api.js").CosmosValidatorAddress): Promise<Invitation<import("../orchestration-api.js").DenomAmount[], undefined>>;
24
- Undelegate(delegations: Omit<import("@agoric/cosmic-proto/cosmos/staking/v1beta1/staking.js").Delegation, "delegatorAddress">[]): Promise<Invitation<undefined, undefined>>;
25
- CloseAccount(): never;
26
- TransferAccount(): never;
27
- }>;
28
- holder: import("@endo/exo").Guarded<any>;
29
- };
30
- getPublicTopics(): {
31
- account: {
32
- description: string;
33
- subscriber: globalThis.Subscriber<import("./cosmos-orchestration-account.js").ComosOrchestrationAccountNotification>;
34
- storagePath: Promise<string>;
35
- };
36
- };
37
- getAddress(): import("../orchestration-api.js").ChainAddress;
38
- delegate(validator: import("../cosmos-api.js").CosmosValidatorAddress, amount: import("../orchestration-api.js").AmountArg): Promise<undefined>;
39
- deposit(payment: any): Promise<void>;
40
- getBalances(): Promise<never>;
41
- redelegate(srcValidator: import("../cosmos-api.js").CosmosValidatorAddress, dstValidator: import("../cosmos-api.js").CosmosValidatorAddress, amount: import("../orchestration-api.js").AmountArg): Promise<undefined>;
42
- withdrawReward(validator: import("../cosmos-api.js").CosmosValidatorAddress): Promise<import("../orchestration-api.js").DenomAmount[]>;
43
- getBalance(denom: import("../orchestration-api.js").DenomArg): Promise<import("../orchestration-api.js").DenomAmount>;
44
- send(toAccount: any, amount: any): never;
45
- transfer(amount: any, msg: any): never;
46
- transferSteps(amount: any, msg: any): never;
47
- withdrawRewards(): never;
48
- undelegate(delegations: Omit<import("@agoric/cosmic-proto/cosmos/staking/v1beta1/staking.js").Delegation, "delegatorAddress">[]): Promise<undefined>;
49
- }>;
50
- orchestration: Remote<import("@endo/exo").Guarded<{
51
- makeAccount(chainId: string, hostConnectionId: `connection-${number}`, controllerConnectionId: `connection-${number}`): Promise<import("../cosmos-api.js").IcaAccount>;
52
- provideICQConnection(controllerConnectionId: `connection-${number}`): Promise<import("@endo/exo").Guarded<{
53
- getLocalAddress(): `/ibc-port/${string}`;
54
- getRemoteAddress(): `/${string}ibc-port/${string}/ordered/${string}` | `/${string}ibc-port/${string}/unordered/${string}`;
55
- query(msgs: import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto/tendermint/abci/types.js").RequestQuery>[]): Promise<import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto/tendermint/abci/types.js").ResponseQuery>[]>;
56
- }>>;
57
- }>>;
58
- storageNode: Remote<globalThis.StorageNode>;
2
+ makeCosmosOrchestrationAccount: ReturnType<typeof prepareCosmosOrchestrationAccount>;
3
+ orchestration: Remote<OrchestrationService>;
4
+ storageNode: Remote<StorageNode>;
59
5
  timer: Remote<TimerService>;
60
6
  }): (remoteChainInfo: Readonly<{
61
7
  chainId: string;
62
- connections?: Record<string, IBCConnectionInfo> | undefined;
63
- icqEnabled?: boolean | undefined;
64
- stakingTokens?: readonly {
8
+ connections?: Record<string, IBCConnectionInfo>;
9
+ icqEnabled?: boolean;
10
+ stakingTokens?: Readonly<Array<{
65
11
  denom: string;
66
- }[] | undefined;
12
+ }>>;
67
13
  }>, connectionInfo: IBCConnectionInfo) => import("@endo/exo").Guarded<{
68
14
  getChainInfo(): Promise<Readonly<{
69
15
  chainId: string;
70
- connections?: Record<string, IBCConnectionInfo> | undefined;
71
- icqEnabled?: boolean | undefined;
72
- stakingTokens?: readonly {
16
+ connections?: Record<string, IBCConnectionInfo>;
17
+ icqEnabled?: boolean;
18
+ stakingTokens?: Readonly<Array<{
73
19
  denom: string;
74
- }[] | undefined;
20
+ }>>;
75
21
  }>>;
76
22
  /** @returns {Promise<OrchestrationAccount<ChainInfo>>} */
77
- makeAccount(): Promise<import("../orchestration-api.js").OrchestrationAccountI>;
23
+ makeAccount(): Promise<OrchestrationAccount<ChainInfo>>;
78
24
  }>;
79
25
  export type MakeRemoteChainFacade = ReturnType<typeof prepareRemoteChainFacade>;
80
26
  import type { Zone } from '@agoric/base-zone';
27
+ import type { prepareCosmosOrchestrationAccount } from './cosmos-orchestration-account.js';
28
+ import type { OrchestrationService } from '../service.js';
81
29
  import type { Remote } from '@agoric/internal';
82
30
  import type { TimerService } from '@agoric/time';
83
31
  import type { IBCConnectionInfo } from '../types.js';
32
+ import type { ChainInfo } from '../types.js';
33
+ import type { OrchestrationAccount } from '../types.js';
84
34
  //# sourceMappingURL=remote-chain-facade.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-chain-facade.d.ts","sourceRoot":"","sources":["remote-chain-facade.js"],"names":[],"mappings":"AAgCO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsBD,0DAA0D;;GAwB7D;oCAEW,UAAU,CAAC,OAAO,wBAAwB,CAAC;0BAzElC,mBAAmB;4BAEjB,kBAAkB;kCADZ,cAAc;uCAIyC,aAAa"}
1
+ {"version":3,"file":"remote-chain-facade.d.ts","sourceRoot":"","sources":["remote-chain-facade.js"],"names":[],"mappings":"AAgCO,+CAVI,IAAI,yEACJ;IACV,8BAAkC,EAAE,UAAU,CAC9C,wCAA8C,CACzC,CAAC;IACN,aAAiB,EAAE,OAAO,oBAAoB,CAAC,CAAC;IAChD,WAAe,EAAE,OAAO,WAAW,CAAC,CAAC;IACrC,KAAS,EAAE,OAAO,YAAY,CAAC,CAAC;CAC7B;;;;;;;;;;;;;;;;IAwBE,0DAA0D;mBAA5C,OAAO,CAAC,qBAAqB,SAAS,CAAC,CAAC;GAwBzD;oCAEW,UAAU,CAAC,OAAO,wBAAwB,CAAC;0BAzElC,mBAAmB;uDAIU,mCAAmC;0CADhD,eAAe;4BAD7B,kBAAkB;kCADZ,cAAc;uCAIyC,aAAa;+BAAb,aAAa;0CAAb,aAAa"}
package/src/facade.d.ts CHANGED
@@ -1,192 +1,18 @@
1
- export function makeOrchestrationFacade({ zone, timerService, zcf, storageNode, orchestrationService, localchain, chainHub, makeLocalOrchestrationAccountKit, makeRecorderKit, makeLocalChainFacade, makeRemoteChainFacade, asyncFlowTools, }: {
1
+ export function makeOrchestrationFacade({ zone, timerService, zcf, storageNode, orchestrationService, localchain, chainHub, makeLocalOrchestrationAccountKit, makeRecorderKit, makeLocalChainFacade, makeRemoteChainFacade, vowTools, asyncFlowTools, }: {
2
2
  zone: Zone;
3
3
  timerService: Remote<TimerService>;
4
4
  zcf: ZCF;
5
- storageNode: Remote<globalThis.StorageNode>;
6
- orchestrationService: Remote<import("@endo/exo").Guarded<{
7
- makeAccount(chainId: string, hostConnectionId: `connection-${number}`, controllerConnectionId: `connection-${number}`): Promise<import("./cosmos-api.js").IcaAccount>;
8
- provideICQConnection(controllerConnectionId: `connection-${number}`): Promise<import("@endo/exo").Guarded<{
9
- getLocalAddress(): `/ibc-port/${string}`;
10
- getRemoteAddress(): `/${string}ibc-port/${string}/ordered/${string}` | `/${string}ibc-port/${string}/unordered/${string}`;
11
- query(msgs: import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto/tendermint/abci/types.js").RequestQuery>[]): Promise<import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto/tendermint/abci/types.js").ResponseQuery>[]>;
12
- }>>;
13
- }>>;
14
- localchain: Remote<import("@endo/exo").Guarded<{
15
- makeAccount(): import("@agoric/vow").PromiseVow<import("@endo/exo").Guarded<{
16
- getAddress(): string;
17
- getBalance(brand: Brand<"nat">): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
18
- deposit(payment: Payment<"nat">, optAmountShape?: Pattern): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
19
- withdraw(amount: Amount<"nat">): import("@agoric/vow").PromiseVow<globalThis.Payment<"nat">>;
20
- executeTx<MT extends {
21
- '@type': string;
22
- }[]>(messages: MT): import("@agoric/vats/src/localchain.js").PromiseVowOfTupleMappedToGenerics<{ [K in keyof MT]: import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto").ResponseTo<MT[K]>>; }>;
23
- monitorTransfers(tap: import("@agoric/vats/src/bridge-target.js").TargetApp): import("@agoric/vow").PromiseVow<import("@agoric/vats/src/bridge-target.js").TargetRegistration>;
24
- }>>;
25
- query<T extends {
26
- '@type': string;
27
- } = {
28
- '@type': string;
29
- }>(request: T): import("@agoric/vow").PromiseVow<import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto").ResponseTo<T>>>;
30
- queryMany<RT extends {
31
- '@type': string;
32
- }[]>(requests: RT): import("@agoric/vats/src/localchain.js").PromiseVowOfTupleMappedToGenerics<{ [K_1 in keyof RT]: import("@agoric/cosmic-proto").JsonSafe<{
33
- error?: string | undefined;
34
- reply: import("@agoric/cosmic-proto").ResponseTo<RT[K_1]>;
35
- }>; }>;
36
- }>>;
5
+ storageNode: Remote<StorageNode>;
6
+ orchestrationService: Remote<OrchestrationService>;
7
+ localchain: Remote<LocalChain>;
37
8
  chainHub: import("./exos/chain-hub.js").ChainHub;
38
- makeLocalOrchestrationAccountKit: (args_0: {
39
- account: import("@endo/exo").Guarded<{
40
- getAddress(): string;
41
- getBalance(brand: Brand<"nat">): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
42
- deposit(payment: Payment<"nat">, optAmountShape?: Pattern): import("@agoric/vow").PromiseVow<import("@agoric/ertp/src/types.js").NatAmount>;
43
- withdraw(amount: Amount<"nat">): import("@agoric/vow").PromiseVow<globalThis.Payment<"nat">>;
44
- executeTx<MT extends {
45
- '@type': string;
46
- }[]>(messages: MT): import("@agoric/vats/src/localchain.js").PromiseVowOfTupleMappedToGenerics<{ [K in keyof MT]: import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto").ResponseTo<MT[K]>>; }>;
47
- monitorTransfers(tap: import("@agoric/vats/src/bridge-target.js").TargetApp): import("@agoric/vow").PromiseVow<import("@agoric/vats/src/bridge-target.js").TargetRegistration>;
48
- }>;
49
- address: import("./orchestration-api.js").ChainAddress;
50
- storageNode: Remote<globalThis.StorageNode>;
51
- }) => import("@endo/exo").GuardedKit<{
52
- invitationMakers: {
53
- Delegate(validatorAddress: string, ertpAmount: Amount<"nat">): Promise<Invitation<Record<unknown, unknown>, undefined>>;
54
- Undelegate(validatorAddress: string, ertpAmount: Amount<"nat">): Promise<Invitation<void | import("@agoric/time").TimestampRecord | Vow<void | import("@agoric/time").TimestampRecord>, undefined>>;
55
- CloseAccount(): never;
56
- };
57
- undelegateWatcher: {
58
- onFulfilled(response: [import("@agoric/cosmic-proto/cosmos/staking/v1beta1/tx.js").MsgUndelegateResponse & {
59
- '@type': "/cosmos.staking.v1beta1.MsgUndelegateResponse";
60
- }]): Promise<import("@agoric/time").TimestampRecord>;
61
- };
62
- getChainInfoWatcher: {
63
- onFulfilled(agoricChainInfo: ChainInfo, { destination }: {
64
- destination: import("./orchestration-api.js").ChainAddress;
65
- }): Promise<IBCConnectionInfo>;
66
- };
67
- getTimeoutTimestampWatcher: {
68
- onFulfilled(timeoutTimestamp: bigint, { opts }: {
69
- opts: import("./cosmos-api.js").IBCMsgTransferOptions;
70
- }): bigint;
71
- };
72
- transferWatcher: {
73
- onFulfilled([{ transferChannel }, timeoutTimestamp]: [{
74
- transferChannel: {
75
- portId: string;
76
- channelId: `channel-${number}`;
77
- counterPartyPortId: string;
78
- counterPartyChannelId: `channel-${number}`;
79
- ordering: import("@agoric/cosmic-proto/ibc/core/channel/v1/channel.js").Order;
80
- state: import("@agoric/cosmic-proto/ibc/core/channel/v1/channel.js").State;
81
- version: string;
82
- };
83
- }, bigint], { opts, amount, destination }: {
84
- destination: import("./orchestration-api.js").ChainAddress;
85
- opts: import("./cosmos-api.js").IBCMsgTransferOptions;
86
- amount: import("./orchestration-api.js").DenomAmount;
87
- }): import("@agoric/vats/src/localchain.js").PromiseVowOfTupleMappedToGenerics<import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto/ibc/applications/transfer/v1/tx.js").MsgTransferResponse & {
88
- '@type': "/ibc.applications.transfer.v1.MsgTransferResponse";
89
- }>[]>;
90
- };
91
- extractFirstResultWatcher: {
92
- onFulfilled(results: Record<unknown, unknown>[]): Record<unknown, unknown>;
93
- };
94
- returnVoidWatcher: {
95
- onFulfilled(results: Record<unknown, unknown>[]): undefined;
96
- };
97
- holder: {
98
- getBalance(denom: DenomArg): Promise<import("./orchestration-api.js").DenomAmount>;
99
- getBalances(): never;
100
- getPublicTopics(): {
101
- account: {
102
- description: string;
103
- subscriber: globalThis.Subscriber<import("./exos/local-orchestration-account.js").LocalChainAccountNotification>;
104
- storagePath: Promise<string>;
105
- };
106
- };
107
- delegate(validatorAddress: string, ertpAmount: Amount<"nat">): Promise<Record<unknown, unknown>>;
108
- undelegate(validatorAddress: string, ertpAmount: Amount<"nat">): import("@agoric/vow").PromiseVow<void | import("@agoric/time").TimestampRecord>;
109
- deposit(payment: globalThis.Payment<"nat">): Promise<void>;
110
- withdraw(amount: Amount<"nat">): import("@agoric/vow").PromiseVow<globalThis.Payment<"nat">>;
111
- executeTx<MT extends {
112
- '@type': string;
113
- }[]>(messages: MT): import("@agoric/vats/src/localchain.js").PromiseVowOfTupleMappedToGenerics<{ [K in keyof MT]: import("@agoric/cosmic-proto").JsonSafe<import("@agoric/cosmic-proto").ResponseTo<MT[K]>>; }>;
114
- getAddress(): import("./orchestration-api.js").ChainAddress;
115
- send(toAccount: any, amount: any): Promise<void>;
116
- transfer(amount: import("./orchestration-api.js").AmountArg, destination: import("./orchestration-api.js").ChainAddress, opts?: import("./cosmos-api.js").IBCMsgTransferOptions | undefined): Promise<void>;
117
- transferSteps(amount: AmountArg, msg: TransferMsg): Promise<void>;
118
- };
119
- }>;
120
- 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>;
9
+ makeLocalOrchestrationAccountKit: MakeLocalOrchestrationAccountKit;
10
+ makeRecorderKit: MakeRecorderKit;
121
11
  makeCosmosOrchestrationAccount: any;
122
- makeLocalChainFacade: (localChainInfo: Readonly<{
123
- chainId: string;
124
- connections?: Record<string, IBCConnectionInfo> | undefined;
125
- icqEnabled?: boolean | undefined;
126
- stakingTokens?: readonly {
127
- denom: string;
128
- }[] | undefined;
129
- }>) => import("@endo/exo").Guarded<{
130
- getChainInfo(): Promise<Readonly<{
131
- chainId: string;
132
- connections?: Record<string, IBCConnectionInfo> | undefined;
133
- icqEnabled?: boolean | undefined;
134
- stakingTokens?: readonly {
135
- denom: string;
136
- }[] | undefined;
137
- }>>;
138
- makeAccount(): Promise<import("./orchestration-api.js").OrchestrationAccountI>;
139
- }>;
140
- makeRemoteChainFacade: (remoteChainInfo: Readonly<{
141
- chainId: string;
142
- connections?: Record<string, IBCConnectionInfo> | undefined;
143
- icqEnabled?: boolean | undefined;
144
- stakingTokens?: readonly {
145
- denom: string;
146
- }[] | undefined;
147
- }>, connectionInfo: IBCConnectionInfo) => import("@endo/exo").Guarded<{
148
- getChainInfo(): Promise<Readonly<{
149
- chainId: string;
150
- connections?: Record<string, IBCConnectionInfo> | undefined;
151
- icqEnabled?: boolean | undefined;
152
- stakingTokens?: readonly {
153
- denom: string;
154
- }[] | undefined;
155
- }>>;
156
- makeAccount(): Promise<import("./orchestration-api.js").OrchestrationAccountI>;
157
- }>;
158
- asyncFlowTools: {
159
- prepareAsyncFlowKit: (zone: Zone, tag: string, guestAsyncFunc: import("../../../node_modules/@agoric/async-flow/src/types.js").GuestAsyncFunc, options?: {
160
- startEager?: boolean | undefined;
161
- } | undefined) => (activationArgs: any) => import("@endo/exo").GuardedKit<{
162
- flow: {
163
- getFlowState(): import("../../../node_modules/@agoric/async-flow/src/types.js").FlowState;
164
- restart(eager?: boolean | undefined): void;
165
- wake(): void;
166
- getOutcome(): Vow<any>;
167
- dump(): ([op: "doFulfill", vow: Vow<import("@endo/pass-style").Passable>, fulfillment: import("@endo/pass-style").Passable] | [op: "doReject", vow: Vow<import("@endo/pass-style").Passable>, reason: import("@endo/pass-style").Passable] | [op: "doReturn", callIndex: number, result: import("@endo/pass-style").Passable] | [op: "doThrow", callIndex: number, problem: import("@endo/pass-style").Passable] | [op: "checkCall", target: import("@endo/pass-style").Passable, optVerb: PropertyKey | undefined, args: import("@endo/pass-style").Passable[], callIndex: number])[];
168
- getOptFatalProblem(): any;
169
- };
170
- admin: {
171
- reset(): void;
172
- complete(): void;
173
- panic(fatalProblem: any): never;
174
- };
175
- wakeWatcher: {
176
- onFulfilled(_fulfillment: any): void;
177
- onRejected(_fulfillment: any): void;
178
- };
179
- }>;
180
- asyncFlow: (zone: Zone, tag: string, guestFunc: import("../../../node_modules/@agoric/async-flow/src/types.js").GuestAsyncFunc, options?: {
181
- startEager?: boolean | undefined;
182
- } | undefined) => import("../../../node_modules/@agoric/async-flow/src/types.js").HostAsyncFuncWrapper;
183
- adminAsyncFlow: import("@endo/exo").Guarded<{
184
- getFailures(): import("@endo/patterns").CopyMap<any, import("@endo/pass-style").Passable>;
185
- wakeAll(): void;
186
- getFlowForOutcomeVow(outcomeVow: any): any;
187
- }>;
188
- allWokenP: Promise<void>;
189
- };
12
+ makeLocalChainFacade: MakeLocalChainFacade;
13
+ makeRemoteChainFacade: MakeRemoteChainFacade;
14
+ vowTools: VowTools;
15
+ asyncFlowTools: AsyncFlowTools;
190
16
  }): {
191
17
  /**
192
18
  * @template Context
@@ -203,9 +29,13 @@ export type OrchestrationFacade = ReturnType<typeof makeOrchestrationFacade>;
203
29
  import type { Zone } from '@agoric/zone';
204
30
  import type { TimerService } from '@agoric/time';
205
31
  import type { Remote } from '@agoric/internal';
206
- import type { Vow } from '@agoric/vow';
207
- import type { ChainInfo } from './types.js';
208
- import type { IBCConnectionInfo } from './types.js';
209
- import type { RecorderKit } from '@agoric/zoe/src/contractSupport/recorder.js';
32
+ import type { OrchestrationService } from './service.js';
33
+ import type { LocalChain } from '@agoric/vats/src/localchain.js';
34
+ import type { MakeLocalOrchestrationAccountKit } from './exos/local-orchestration-account.js';
35
+ import type { MakeRecorderKit } from '@agoric/zoe/src/contractSupport/recorder.js';
36
+ import type { MakeLocalChainFacade } from './exos/local-chain-facade.js';
37
+ import type { MakeRemoteChainFacade } from './exos/remote-chain-facade.js';
38
+ import type { VowTools } from '@agoric/vow';
39
+ import type { AsyncFlowTools } from '@agoric/async-flow';
210
40
  import type { Orchestrator } from './types.js';
211
41
  //# sourceMappingURL=facade.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["facade.js"],"names":[],"mappings":"AAuCO;;;SAbG,GAAG;;;;;;;;;;;;;8BAyEuG,MAAM,KAAK,CAAC;6BAA6gB,QAAQ,KAAK,CAAC,mBAA6B,OAAO;6BAAwjB,OAAO,KAAK,CAAC;;;2BAA6rB,EAAE;;;;;;;oBAAqjG,CAAC;;;uBAA6lB,EAAE;;;;;cArEzkL,OAAO,qBAAqB,EAAE,QAAQ;;;;8BAqE+D,MAAM,KAAK,CAAC;6BAA6gB,QAAQ,KAAK,CAAC,mBAA6B,OAAO;6BAAwjB,OAAO,KAAK,CAAC;;;2BAA6rB,EAAE;;;;;;;2DAA2H,OAAO,KAAK,CAAC;6DAAid,OAAO,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAAgkG,wBAAwB,EAAE;;;iCAAsZ,wBAAwB,EAAE;;;8BAAngJ,QAAS;;;;;;;;;2DAAmwL,OAAO,KAAK,CAAC;6DAAksB,OAAO,KAAK,CAAC;;6BAAjyN,OAAO,KAAK,CAAC;;;2BAA6rB,EAAE;;;;kCAA46B,SAAU,OAAM,WAAY;;;wCAA/xC,WAAW,GAAE,QAAS,OAAO,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oCAlEroD,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgDpC;;;;;;;;OAQG;gBAFkC,OAAO,EACrB,IAAI,6BAJhB,MAAM,OAGoB,OAAO,AAD1B,gCACmB,OAAO,WACrB,IAAI,AADgC,KAAK,MAAM,GACzD,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC;EAQnD;kCAEa,UAAU,CAAC,OAAO,uBAAuB,CAAC;0BA1FjC,cAAc;kCAEN,cAAc;4BAIpB,kBAAkB;yBALX,aAAa;+BAO8D,YAAY;uCAAZ,YAAY;iCAHxE,6CAA6C;kCAGe,YAAY"}
1
+ {"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["facade.js"],"names":[],"mappings":"AAwCO,yPAjBI;IACV,IAAQ,EAAE,IAAI,CAAC;IACf,YAAgB,EAAE,OAAO,YAAY,CAAC,CAAC;IACvC,GAAO,EAAE,GAAG,CAAC;IACb,WAAe,EAAE,OAAO,WAAW,CAAC,CAAC;IACrC,oBAAwB,EAAE,OAAO,oBAAoB,CAAC,CAAC;IACvD,UAAc,EAAE,OAAO,UAAU,CAAC,CAAC;IACnC,QAAY,EAAE,OAAO,qBAAqB,EAAE,QAAQ,CAAC;IACrD,gCAAoC,EAAE,gCAAgC,CAAC;IACvE,eAAmB,EAAE,eAAe,CAAC;IACrC,8BAAkC,EAAE,GAAG,CAAC;IACxC,oBAAwB,EAAE,oBAAoB,CAAC;IAC/C,qBAAyB,EAAE,qBAAqB,CAAC;IACjD,QAAY,EAAE,QAAQ,CAAC;IACvB,cAAkB,EAAE,cAAc,CAAC;CAChC;IA+CA;;;;;;;;OAQG;gBAPU,OAAO,EACC,IAAI,SAAX,GAAG,EAAG,eACT,MAAM,OAEN,OAAO,MACP,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GACzD,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC;EAQnD;kCAEa,UAAU,CAAC,OAAO,uBAAuB,CAAC;0BA9FjC,cAAc;kCAEN,cAAc;4BAIpB,kBAAkB;0CACJ,cAAc;gCAHxB,gCAAgC;sDAOV,uCAAuC;qCAN3C,6CAA6C;0CAIrD,8BAA8B;2CAC7B,+BAA+B;8BATvC,aAAa;oCAFZ,oBAAoB;kCASsD,YAAY"}
package/src/facade.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /** @file Orchestration service */
2
2
 
3
3
  import { Fail } from '@agoric/assert';
4
-
5
- import { prepareOrchestrator } from './exos/orchestrator.js';
4
+ import { pickFacet } from '@agoric/vat-data';
5
+ import { prepareOrchestratorKit } from './exos/orchestrator.js';
6
6
 
7
7
  /**
8
8
  * @import {AsyncFlowTools} from '@agoric/async-flow';
@@ -34,6 +34,7 @@ import { prepareOrchestrator } from './exos/orchestrator.js';
34
34
  * makeCosmosOrchestrationAccount: any;
35
35
  * makeLocalChainFacade: MakeLocalChainFacade;
36
36
  * makeRemoteChainFacade: MakeRemoteChainFacade;
37
+ * vowTools: VowTools;
37
38
  * asyncFlowTools: AsyncFlowTools;
38
39
  * }} powers
39
40
  */
@@ -49,6 +50,7 @@ export const makeOrchestrationFacade = ({
49
50
  makeRecorderKit,
50
51
  makeLocalChainFacade,
51
52
  makeRemoteChainFacade,
53
+ vowTools,
52
54
  asyncFlowTools,
53
55
  }) => {
54
56
  (zone &&
@@ -65,7 +67,7 @@ export const makeOrchestrationFacade = ({
65
67
  asyncFlowTools) ||
66
68
  Fail`params missing`;
67
69
 
68
- const makeOrchestrator = prepareOrchestrator(zone, {
70
+ const makeOrchestratorKit = prepareOrchestratorKit(zone, {
69
71
  asyncFlowTools,
70
72
  chainHub,
71
73
  localchain,
@@ -75,8 +77,10 @@ export const makeOrchestrationFacade = ({
75
77
  orchestrationService,
76
78
  storageNode,
77
79
  timerService,
80
+ vowTools,
78
81
  zcf,
79
82
  });
83
+ const makeOrchestrator = pickFacet(makeOrchestratorKit, 'orchestrator');
80
84
 
81
85
  return {
82
86
  /**