@agoric/orchestration 0.1.1-dev-bf9f03b.0 → 0.1.1-dev-56687b4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["orchestrator.js"],"names":[],"mappings":"AAgCA,0BAA0B;AAC1B;;;;;GAKG;AAiBI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAsC4qB,CAAC;;kCAAu2B,SAAQ;YAAE,gBAAgB;SAAE,UAAwB,SAAQ;YAAE,gBAAgB;SAAE;;;;;8BAA38C,MAAM,KAAK,CAAC;6BAA6gB,QAAQ,KAAK,CAAC,mBAA6B,OAAO;6BAAwjB,OAAO,KAAK,CAAC;;;2BAA6rB,EAAE;;;;;;;oBAAqjG,CAAC;;;uBAA6lB,EAAE;;;;;wCAA5+H,WAAW,GAAE,QAAS,OAAO,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAzC5sD,GAAG;;IAeP,uCAAuC;4CAyBvC,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BACwJ,MAAM,KAAK,CAAC;yBAA6gB,QAAQ,KAAK,CAAC,mBAA6B,OAAO;yBAAwjB,OAAO,KAAK,CAAC;;;uBAA6rB,EAAE;;;;;GAF5+D;0BA7EoB,mBAAmB;yBAGpB,aAAa;uCASwE,aAAa;4BAL/F,kBAAkB;iCADI,6CAA6C;kCAF7D,cAAc;2BAQ8D,aAAa"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["orchestrator.js"],"names":[],"mappings":"AAkCA,0BAA0B;AAC1B;;;;;GAKG;AAkBI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAyDC,CADN,CAAM,uCAAuC;;kCA0B+D,SAAQ;YAAE,gBAAgB;SAAE,UAAwB,SAAQ;YAAE,gBAAgB;SAAE;;;;;8BAzCzJ,MAAO,KAAI,CAAC;6BAgBzC,QADO,KAAK,CAAC,mBACb,OAAC;6BAmBa,OAAM,KAAK,CAAC;;;2BAM8hB,EAAE;;;;;;;oBAAqjG,CAAC;;;uBAA6lB,EAAE;;;;;wCAA5+H,WAAW,GAAE,QAAS,OAAO,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qQA1BjS,uCAAuC;;;;;;gGAlGT,GAAC;;;wBAQ5B,SAAS;;SA+BV,GAAG;;IAoCP,2DAA2D;;QAEzD,yCAAyC;;;;;;;;;;;;;IAK3C;;;OAGG;;QAED;;;;;WAKG;;;;;;;;;;;;;;QAMH,uCAAuC;gDArBlB,GAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAFzB,2DAA2D;;;;;;;;;;sEAO3D;;;+BAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAF4B,MAAO,KAAI,CAAC;6BAgBzC,QADO,KAAK,CAAC,mBACb,OAAC;6BAmBa,OAAM,KAAK,CAAC;;;2BAM8hB,EAAE;;;;;;GAF/jB;0BA3HoB,mBAAmB;yBAGV,aAAa;uCAU8D,aAAa;4BAN/F,kBAAkB;iCADI,6CAA6C;kCAF7D,cAAc;+BAS8D,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);
package/src/facade.d.ts CHANGED
@@ -1,4 +1,4 @@
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;
@@ -155,6 +155,12 @@ export function makeOrchestrationFacade({ zone, timerService, zcf, storageNode,
155
155
  }>>;
156
156
  makeAccount(): Promise<import("./orchestration-api.js").OrchestrationAccountI>;
157
157
  }>;
158
+ vowTools: {
159
+ when: <T_2, TResult1 = import("@agoric/vow").EUnwrap<T_2>, TResult2 = never>(specimenP: T_2, onFulfilled?: ((value: import("@agoric/vow").EUnwrap<T_2>) => TResult1 | PromiseLike<TResult1>) | undefined, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined) => Promise<TResult1 | TResult2>;
160
+ watch: <T_3 = any, TResult1_1 = T_3, TResult2_1 = never, C = any>(specimenP: import("@agoric/vow").ERef<T_3 | Vow<T_3>>, watcher?: import("@agoric/vow").Watcher<T_3, TResult1_1, TResult2_1> | undefined, watcherContext?: C | undefined) => Vow<Exclude<TResult1_1, void> | Exclude<TResult2_1, void> extends never ? TResult1_1 : Exclude<TResult1_1, void> | Exclude<TResult2_1, void>>;
161
+ makeVowKit: <T_4>() => import("@agoric/vow").VowKit<T_4>;
162
+ allVows: (vows: unknown[]) => Vow<any[]>;
163
+ };
158
164
  asyncFlowTools: {
159
165
  prepareAsyncFlowKit: (zone: Zone, tag: string, guestAsyncFunc: import("../../../node_modules/@agoric/async-flow/src/types.js").GuestAsyncFunc, options?: {
160
166
  startEager?: boolean | undefined;
@@ -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;;;SAdG,GAAG;;;;;;;;;;;;;8BA4EI,MAAM,KAAK,CAAC;6BAC4b,QAAQ,KAAK,CAAC,mBAA6B,OAAO;6BAAwjB,OAAO,KAAK,CAAC;;;2BAA6rB,EAAE;;;;;;;oBAAqjG,CAAC;;;uBAA6lB,EAAE;;;;;cAzEr5K,OAAO,qBAAqB,EAAE,QAAQ;;;;8BAwEpC,MAAM,KAAK,CAAC;6BAC4b,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;oCAtEj9C,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gGArBL,GAAC;;;wBAMvB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmElB;;;;;;;;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;0BA9FjC,cAAc;kCAEN,cAAc;4BAIpB,kBAAkB;yBALX,aAAa;+BAO8D,YAAY;uCAAZ,YAAY;iCAHxE,6CAA6C;kCAGe,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
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"start-helper.d.ts","sourceRoot":"","sources":["start-helper.js"],"names":[],"mappings":"AAwCO,0CALI,GAAG,kCAEH,mBAAmB,cACnB,UAAU;;;;;;;;;;kDAmE6kB,CAAC;;kCAAu2B,SAAQ;YAAE,gBAAgB;SAAE,UAAwB,SAAQ;YAAE,gBAAgB;SAAE;;;uEArBnhD,OAAO,kEAE4B,OAAQ,WAC5C,IAAK,qBAGH,IAAK;EAaZ;;;;;8BAE8E,MAAM,KAAK,CAAC;6BAA6gB,QAAQ,KAAK,CAAC,mBAA6B,OAAO;6BAAwjB,OAAO,KAAK,CAAC;;;2BAA6rB,EAAE;;;;;;;oBAAqjG,CAAC;;;uBAA6lB,EAAE;;;;;;;;;;;;;;;;;6BA1FzhL,kBAAkB;4BAEnB,aAAa;kCAHK,cAAc;6BAE/B,cAAc"}
1
+ {"version":3,"file":"start-helper.d.ts","sourceRoot":"","sources":["start-helper.js"],"names":[],"mappings":"AAwCO,0CALI,GAAG,kCAEH,mBAAmB,cACnB,UAAU;;;;;;;;;;kDAoE+jB,CAAC;;kCAAu2B,SAAQ;YAAE,gBAAgB;SAAE,UAAwB,SAAQ;YAAE,gBAAgB;SAAE;;;uEAhBv/C,OAAO,kEAKnB,OAAQ,WACX,IAAK,qBACM,IAAK;EAOrB;;;;;8BAEgE,MAAM,KAAK,CAAC;6BAA6gB,QAAQ,KAAK,CAAC,mBAA6B,OAAO;6BAAwjB,OAAO,KAAK,CAAC;;;2BAA6rB,EAAE;;;;;;;oBAAqjG,CAAC;;;uBAA6lB,EAAE;;;;;;;;;;;;;;;;;6BA3F3gL,kBAAkB;4BAEnB,aAAa;kCAHK,cAAc;6BAE/B,cAAc"}
@@ -98,6 +98,7 @@ export const provideOrchestration = (
98
98
  makeLocalChainFacade,
99
99
  makeRemoteChainFacade,
100
100
  asyncFlowTools,
101
+ vowTools,
101
102
  ...remotePowers,
102
103
  });
103
104
  return { ...facade, chainHub, zone };
@@ -1,4 +1,8 @@
1
- /** @param {Remote<TimerService>} timer */
1
+ /**
2
+ * XXX should this be durable? resumable?
3
+ *
4
+ * @param {Remote<TimerService>} timer
5
+ */
2
6
  export function makeTimestampHelper(timer: Remote<TimerService>): {
3
7
  /**
4
8
  * XXX do this need to be resumable / use Vows?
@@ -1 +1 @@
1
- {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["time.js"],"names":[],"mappings":"AAWA,0CAA0C;AAC1C;IAUI;;;;;;;;;;OAUG;0EAFU,OAAO,CAAC,MAAM,CAAC;EAiB/B;AA5CD;;;GAGG;AAEH,qCAAsC;AACtC,iDAAqD;AAiD9C,oCAHI,IAAI,GACF,MAAM,CAE2D;8BAThE,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;kCA7CE,cAAc;4BACpD,kBAAkB;wCADoB,cAAc"}
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["time.js"],"names":[],"mappings":"AAWA;;;;GAIG;AACH;IAUI;;;;;;;;;;OAUG;0EAFU,OAAO,CAAC,MAAM,CAAC;EAiB/B;AAhDD;;;GAGG;AAEH,qCAAsC;AACtC,iDAAqD;AAqD9C,oCAHI,IAAI,GACF,MAAM,CAE2D;8BAThE,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;kCAjDE,cAAc;4BACpD,kBAAkB;wCADoB,cAAc"}
package/src/utils/time.js CHANGED
@@ -9,7 +9,11 @@ import { TimeMath } from '@agoric/time';
9
9
  export const SECONDS_PER_MINUTE = 60n;
10
10
  export const NANOSECONDS_PER_SECOND = 1_000_000_000n;
11
11
 
12
- /** @param {Remote<TimerService>} timer */
12
+ /**
13
+ * XXX should this be durable? resumable?
14
+ *
15
+ * @param {Remote<TimerService>} timer
16
+ */
13
17
  export function makeTimestampHelper(timer) {
14
18
  /** @type {TimerBrand | undefined} */
15
19
  let brandCache;