@agoric/vats 0.15.2-dev-19b9351.0 → 0.15.2-dev-4dd330d.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,4 +1,5 @@
1
1
  // @ts-check
2
+ import { Far } from '@endo/far';
2
3
  import { heapVowE as E } from '@agoric/vow/vat.js';
3
4
  import { typedJson } from '@agoric/cosmic-proto';
4
5
 
@@ -12,7 +13,7 @@ import { typedJson } from '@agoric/cosmic-proto';
12
13
  * @param {{ testResultPath: string }} options.options
13
14
  */
14
15
  export const testLocalChain = async (
15
- { consume: { chainStorage, localchain } },
16
+ { consume: { board, chainStorage, localchain } },
16
17
  { options: { testResultPath } },
17
18
  ) => {
18
19
  console.warn('=== localchain test started (result in', testResultPath, ')!');
@@ -23,24 +24,35 @@ export const testLocalChain = async (
23
24
  throw Error('no chainStorage');
24
25
  }
25
26
 
27
+ for (const nodeName of testResultPath.split('.')) {
28
+ node = E(node).makeChildNode(nodeName);
29
+ }
30
+
31
+ /** @type {PromiseSettledResult<any>} */
26
32
  let result;
27
33
  try {
28
- const lca = await E(localchain).makeAccount();
29
- console.info('created account', lca);
30
- const address = await E(lca).getAddress();
31
- console.info('address', address);
34
+ const lcaSender = await E(localchain).makeAccount();
35
+ const lcaReceiver = await E(localchain).makeAccount();
36
+ const senderAddress = await E(lcaSender).getAddress();
37
+ const receiverAddress = await E(lcaReceiver).getAddress();
38
+ console.info('created accounts', {
39
+ lcaSender,
40
+ lcaReceiver,
41
+ senderAddress,
42
+ receiverAddress,
43
+ });
32
44
 
33
45
  const queryMsg = typedJson('/cosmos.bank.v1beta1.QueryAllBalancesRequest', {
34
- address,
46
+ address: receiverAddress,
35
47
  });
36
48
  const balances = await E(localchain).query(queryMsg);
37
49
  console.info('balances', balances);
38
50
 
39
- await E(lca)
51
+ await E(lcaReceiver)
40
52
  .executeTx([
41
53
  typedJson('/cosmos.bank.v1beta1.MsgSend', {
42
- fromAddress: address,
43
- toAddress: address,
54
+ fromAddress: receiverAddress,
55
+ toAddress: receiverAddress,
44
56
  amount: [{ denom: 'ucosm', amount: '1' }],
45
57
  }),
46
58
  ])
@@ -61,16 +73,58 @@ export const testLocalChain = async (
61
73
  throw Error('emptyQuery results should be empty');
62
74
  }
63
75
 
64
- result = { success: true };
76
+ const tap = Far(
77
+ 'Localchain Tap',
78
+ /** @type {import('../bridge-target.js').TargetApp} */ ({
79
+ async receiveUpcall(obj) {
80
+ console.info('=== localchain test tap received upcall', obj);
81
+ await E(E(node).makeChildNode('tap')).setValue(JSON.stringify(obj));
82
+ },
83
+ }),
84
+ );
85
+ await E(lcaReceiver).monitorTransfers(tap);
86
+
87
+ const testMore = Far('Localchain Test More', {
88
+ async sendTo(toAddress, amount) {
89
+ /** @type {PromiseSettledResult<any>} */
90
+ let sendToResult;
91
+ await null;
92
+ try {
93
+ console.info('=== localchain test sendTo called');
94
+ const execResult = await E(lcaSender).executeTx([
95
+ typedJson('/cosmos.bank.v1beta1.MsgSend', {
96
+ fromAddress: senderAddress,
97
+ toAddress,
98
+ amount,
99
+ }),
100
+ ]);
101
+ sendToResult = {
102
+ status: 'fulfilled',
103
+ value: { toAddress, amount, execResult },
104
+ };
105
+ } catch (e) {
106
+ console.error('=== localchain test sendTo failed', e);
107
+ sendToResult = {
108
+ status: 'rejected',
109
+ reason: { toAddress, amount, error: String(e) },
110
+ };
111
+ }
112
+ console.info('== localchain sendTo result', sendToResult);
113
+ await E(node).setValue(JSON.stringify(sendToResult));
114
+ },
115
+ });
116
+ const testMoreBoardId = await E(board).getId(testMore);
117
+
118
+ result = {
119
+ status: 'fulfilled',
120
+ value: { receiverAddress, senderAddress, testMoreBoardId },
121
+ };
65
122
  } catch (e) {
66
123
  console.error('test failed with', e);
67
- result = { success: false, error: String(e) };
124
+ result = { status: 'rejected', reason: String(e) };
68
125
  }
69
126
 
70
127
  console.warn('=== localchain test done, setting', { result });
71
- for (const nodeName of testResultPath.split('.')) {
72
- node = E(node).makeChildNode(nodeName);
73
- }
74
128
  await E(node).setValue(JSON.stringify(result));
75
129
  };
76
130
 
@@ -78,9 +132,13 @@ export const getManifestForLocalChainTest = (_powers, { testResultPath }) => ({
78
132
  manifest: {
79
133
  [testLocalChain.name]: {
80
134
  consume: {
135
+ board: 'vats',
81
136
  chainStorage: 'bridge',
82
137
  localchain: 'localchain',
83
138
  },
139
+ produce: {
140
+ testLocalChain: 'localchain-test',
141
+ },
84
142
  },
85
143
  },
86
144
  options: {
@@ -12,7 +12,9 @@ export function upgradeVatsGeneric({ consume: { vatAdminSvc, vatStore } }: Boots
12
12
  [vatName: string]: import("@agoric/swingset-vat").VatUpgradeOptions;
13
13
  };
14
14
  };
15
- }): Promise<void>;
15
+ }): Promise<{
16
+ [name: string]: any;
17
+ }>;
16
18
  export function upgradeZoeContractsGeneric({ consume }: PromiseSpaceOf<Record<string, any>>, options: {
17
19
  options: {
18
20
  contractKitSpecs: ContractKitSpec[];
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-vats-generic-proposal.d.ts","sourceRoot":"","sources":["upgrade-vats-generic-proposal.js"],"names":[],"mappings":"AAwBO,2EAjBI,eAAe,GAAG;IACxB,OAAO,EAAE;QACP,WAAW,EAAE,WAAW,CAAC;QACzB,QAAQ,EAAE,QAAQ,CACxB,MAAc,EACd,OAAe,sBAAsB,EAAE,gBAAgB,CAChD,CAAC;KACH,CAAC;CACH,WAED;IAKW,OAAO,EALV;QACN,UAAU,EAAE;YAAE,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAA;SAAE,CAAC;QAChD,UAAU,CAAC,EAAE;YACjB,CAAO,OAAO,EAAE,MAAM,GAAG,OAAO,sBAAsB,EAAE,iBAAiB,CAAC;SACrE,CAAC;KACH;CACH,iBAoBA;AAcM,wDAPI,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAE3C;IAGW,OAAO,EAHV;QACN,gBAAgB,EAAE,eAAe,EAAE,CAAC;QACpC,sBAAsB,EAAE;YAAE,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAAA;SAAE,CAAC;KAChE;CACH,iBAqEA;AAEM;;;;;QAKH,CAAC,kBAAkB,CAAC,IAAI,CAAC;;;;;;UAMxB;;;;;;EAGH;AAUK,uEAPI,GAAG,gDACH;IACN,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,sBAAsB,EAAE;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAC;CAChE;;QAoBE,CAAC,0BAA0B,CAAC,IAAI,CAAC;;;;UAIhC;;;;;;;;;;;EAaN;8BA3IY;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE"}
1
+ {"version":3,"file":"upgrade-vats-generic-proposal.d.ts","sourceRoot":"","sources":["upgrade-vats-generic-proposal.js"],"names":[],"mappings":"AAwBO,2EAjBI,eAAe,GAAG;IACxB,OAAO,EAAE;QACP,WAAW,EAAE,WAAW,CAAC;QACzB,QAAQ,EAAE,QAAQ,CACxB,MAAc,EACd,OAAe,sBAAsB,EAAE,gBAAgB,CAChD,CAAC;KACH,CAAC;CACH,WAED;IAKW,OAAO,EALV;QACN,UAAU,EAAE;YAAE,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAA;SAAE,CAAC;QAChD,UAAU,CAAC,EAAE;YACjB,CAAO,OAAO,EAAE,MAAM,GAAG,OAAO,sBAAsB,EAAE,iBAAiB,CAAC;SACrE,CAAC;KACH;CACH;;GA0BA;AAcM,wDAPI,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAE3C;IAGW,OAAO,EAHV;QACN,gBAAgB,EAAE,eAAe,EAAE,CAAC;QACpC,sBAAsB,EAAE;YAAE,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAAA;SAAE,CAAC;KAChE;CACH,iBAqEA;AAEM;;;;;QAKH,CAAC,kBAAkB,CAAC,IAAI,CAAC;;;;;;UAMxB;;;;;;EAGH;AASK,uEANI,GAAG,gDACH;IACN,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,sBAAsB,EAAE;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAC;CAChE;;QAmBE,CAAC,0BAA0B,CAAC,IAAI,CAAC;;;;UAIhC;;;;;;;;;;;EAaN;8BA1IY;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE"}
@@ -29,18 +29,24 @@ export const upgradeVatsGeneric = async (
29
29
  trace('Starting upgrade of vats');
30
30
  const { bundleRefs, vatOptions = {} } = options.options;
31
31
 
32
- for await (const [name, ref] of Object.entries(bundleRefs)) {
32
+ await null;
33
+
34
+ /** @type {{ [name: string]: any }} */
35
+ const upgradeRoots = {};
36
+ for (const [name, ref] of Object.entries(bundleRefs)) {
33
37
  assert(ref.bundleID, `bundleID missing for ${name}`);
34
38
  trace(name, `BUNDLE ID: `, ref.bundleID);
35
39
  const bundleCap = await E(vatAdminSvc).getBundleCap(ref.bundleID);
36
40
 
37
- trace(name, 'Getting admin node from vatStore');
38
- const { adminNode } = await E(vatStore).get(name);
41
+ trace(name, 'Getting admin node and root from vatStore');
42
+ const { adminNode, root } = await E(vatStore).get(name);
39
43
  trace(name, 'Upgrading via adminNode');
40
44
  await E(adminNode).upgrade(bundleCap, vatOptions[name] || {});
45
+ upgradeRoots[name] = root;
41
46
  }
42
47
 
43
48
  trace('Done upgrading vats');
49
+ return upgradeRoots;
44
50
  };
45
51
 
46
52
  /**
@@ -147,7 +153,6 @@ export const getManifestForUpgradingVats = (
147
153
  * contractKitSpecs: ContractKitSpec[];
148
154
  * installationBundleRefs: { [bundleName: string]: VatSourceRef };
149
155
  * }} options
150
- * @returns
151
156
  */
152
157
  export const getManifestForUpgradingZoeContractKits = (
153
158
  { restoreRef },
package/src/types.d.ts CHANGED
@@ -87,7 +87,7 @@ export type NamesByAddressAdmin = NameAdmin & {
87
87
  /** An object that can receive messages from the bridge device */
88
88
  export type BridgeHandler = {
89
89
  /** Handle an inbound message */
90
- fromBridge: (obj: any) => Promise<unknown>;
90
+ fromBridge: (obj: any) => Promise<unknown> | unknown;
91
91
  };
92
92
  export type ScopedBridgeManagerMethods<B extends BridgeId> = {
93
93
  /**
@@ -180,11 +180,15 @@ type IBCPacketEvents = {
180
180
  type IBCEventType = 'IBC_EVENT' | 'VTRANSFER_IBC_EVENT';
181
181
  export type IBCEvent<E extends IBCBridgeEvent, T extends IBCEventType = 'IBC_EVENT'> = {
182
182
  type: T;
183
- blockHeight: number;
184
- blockTime: number;
183
+ /** blockHeight may be missing from synthetic packets. */
184
+ blockHeight?: number;
185
+ /** blockTime may be missing from synthetic packets. */
186
+ blockTime?: number;
185
187
  event: E;
186
188
  /** e.g. the chain address of the LocalChainAccount */
187
- target?: string;
189
+ target?: string | {
190
+ onlyIfRegistered: string;
191
+ };
188
192
  } & {
189
193
  [K in keyof IBCPacketEvents[E]]: IBCPacketEvents[E][K];
190
194
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
package/src/types.ts CHANGED
@@ -103,7 +103,7 @@ export type NamesByAddressAdmin = NameAdmin & {
103
103
  /** An object that can receive messages from the bridge device */
104
104
  export type BridgeHandler = {
105
105
  /** Handle an inbound message */
106
- fromBridge: (obj: any) => Promise<unknown>;
106
+ fromBridge: (obj: any) => Promise<unknown> | unknown;
107
107
  };
108
108
 
109
109
  export type ScopedBridgeManagerMethods<B extends BridgeId> = {
@@ -217,11 +217,13 @@ export type IBCEvent<
217
217
  T extends IBCEventType = 'IBC_EVENT',
218
218
  > = {
219
219
  type: T;
220
- blockHeight: number;
221
- blockTime: number;
220
+ /** blockHeight may be missing from synthetic packets. */
221
+ blockHeight?: number;
222
+ /** blockTime may be missing from synthetic packets. */
223
+ blockTime?: number;
222
224
  event: E;
223
225
  /** e.g. the chain address of the LocalChainAccount */
224
- target?: string;
226
+ target?: string | { onlyIfRegistered: string };
225
227
  } & {
226
228
  [K in keyof IBCPacketEvents[E]]: IBCPacketEvents[E][K];
227
229
  };
@@ -1,11 +1,11 @@
1
- export function buildRootObject(_vatPowers: any, _args: any, baggage: any): {
1
+ export function buildRootObject(_vatPowers: any, _vatParameters: any, baggage: any): {
2
2
  /**
3
3
  * Create a local chain that allows permissionlessly making fresh local
4
4
  * chain accounts, then using them to send chain queries and transactions.
5
5
  *
6
- * @param {import('./localchain.js').LocalChainPowers} powers
6
+ * @param {LocalChainPowers} powers
7
7
  */
8
- makeLocalChain(powers: import("./localchain.js").LocalChainPowers): import("@endo/exo").Guarded<{
8
+ makeLocalChain(powers: LocalChainPowers): import("@endo/exo").Guarded<{
9
9
  makeAccount(): import("@agoric/vow").PromiseVow<LocalChainAccount>;
10
10
  query<T extends import("@agoric/cosmic-proto").TypedJson = {
11
11
  '@type': string;
@@ -19,14 +19,30 @@ export function buildRootObject(_vatPowers: any, _args: any, baggage: any): {
19
19
  };
20
20
  }[]>;
21
21
  }>;
22
+ /**
23
+ * Associate a TransferMiddleware instance with its corresponding
24
+ * ScopedBridgeManager. This is necessary because existing LocalChain
25
+ * instances need the power to inject vtransfer messages when they initiate
26
+ * a MsgSend.
27
+ *
28
+ * By using a WeakMap, we ensure that only possession of both the map and a
29
+ * TransferMiddleware ocap can be amplified into the associated manager.
30
+ *
31
+ * @param {import('./transfer.js').TransferMiddleware} transfer
32
+ * @param {Pick<
33
+ * import('./types.js').ScopedBridgeManager<'vtransfer'>,
34
+ * 'fromBridge'
35
+ * >} transferBridgeManager
36
+ */
37
+ linkTransferMiddlewareToBridgeManager(transfer: import("./transfer.js").TransferMiddleware, transferBridgeManager: Pick<import("./types.js").ScopedBridgeManager<"vtransfer">, "fromBridge">): void;
22
38
  } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
23
39
  /**
24
40
  * Create a local chain that allows permissionlessly making fresh local
25
41
  * chain accounts, then using them to send chain queries and transactions.
26
42
  *
27
- * @param {import('./localchain.js').LocalChainPowers} powers
43
+ * @param {LocalChainPowers} powers
28
44
  */
29
- makeLocalChain(powers: import("./localchain.js").LocalChainPowers): import("@endo/exo").Guarded<{
45
+ makeLocalChain(powers: LocalChainPowers): import("@endo/exo").Guarded<{
30
46
  makeAccount(): import("@agoric/vow").PromiseVow<LocalChainAccount>;
31
47
  query<T extends import("@agoric/cosmic-proto").TypedJson = {
32
48
  '@type': string;
@@ -40,6 +56,23 @@ export function buildRootObject(_vatPowers: any, _args: any, baggage: any): {
40
56
  };
41
57
  }[]>;
42
58
  }>;
59
+ /**
60
+ * Associate a TransferMiddleware instance with its corresponding
61
+ * ScopedBridgeManager. This is necessary because existing LocalChain
62
+ * instances need the power to inject vtransfer messages when they initiate
63
+ * a MsgSend.
64
+ *
65
+ * By using a WeakMap, we ensure that only possession of both the map and a
66
+ * TransferMiddleware ocap can be amplified into the associated manager.
67
+ *
68
+ * @param {import('./transfer.js').TransferMiddleware} transfer
69
+ * @param {Pick<
70
+ * import('./types.js').ScopedBridgeManager<'vtransfer'>,
71
+ * 'fromBridge'
72
+ * >} transferBridgeManager
73
+ */
74
+ linkTransferMiddlewareToBridgeManager(transfer: import("./transfer.js").TransferMiddleware, transferBridgeManager: Pick<import("./types.js").ScopedBridgeManager<"vtransfer">, "fromBridge">): void;
43
75
  }>;
44
76
  export type LocalChainVat = ReturnType<typeof buildRootObject>;
77
+ import type { LocalChainPowers } from './localchain.js';
45
78
  //# sourceMappingURL=vat-localchain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vat-localchain.d.ts","sourceRoot":"","sources":["vat-localchain.js"],"names":[],"mappings":"AAOO;IASH;;;;;OAKG;2BADQ,OAAO,iBAAiB,EAAE,gBAAgB;;;;;;;;;;;;;;;IAJrD;;;;;OAKG;2BADQ,OAAO,iBAAiB,EAAE,gBAAgB;;;;;;;;;;;;;;GAMxD;4BAEa,UAAU,CAAC,OAAO,eAAe,CAAC"}
1
+ {"version":3,"file":"vat-localchain.d.ts","sourceRoot":"","sources":["vat-localchain.js"],"names":[],"mappings":"AAWO;IAUH;;;;;OAKG;2BADQ,gBAAgB;;;;;;;;;;;;;;IAM3B;;;;;;;;;;;;;;OAcG;oDALQ,OAAO,eAAe,EAAE,kBAAkB,yBAC1C,IAAI,CACd,OAAW,YAAY,EAAE,mBAAmB,CAAC,WAAW,CAAC,EACzD,YAAgB,CACb;;IAvBJ;;;;;OAKG;2BADQ,gBAAgB;;;;;;;;;;;;;;IAM3B;;;;;;;;;;;;;;OAcG;oDALQ,OAAO,eAAe,EAAE,kBAAkB,yBAC1C,IAAI,CACd,OAAW,YAAY,EAAE,mBAAmB,CAAC,WAAW,CAAC,EACzD,YAAgB,CACb;GAiBP;4BAEa,UAAU,CAAC,OAAO,eAAe,CAAC;sCAvDb,iBAAiB"}
@@ -5,24 +5,59 @@ import { prepareVowTools } from '@agoric/vow/vat.js';
5
5
 
6
6
  import { prepareLocalChainTools } from './localchain.js';
7
7
 
8
- export const buildRootObject = (_vatPowers, _args, baggage) => {
8
+ /**
9
+ * @import {LocalChainPowers} from './localchain.js';
10
+ */
11
+
12
+ export const buildRootObject = (_vatPowers, _vatParameters, baggage) => {
9
13
  const zone = makeDurableZone(baggage);
10
14
  const vowTools = prepareVowTools(zone.subZone('VowTools'));
11
- const { makeLocalChain } = prepareLocalChainTools(
12
- zone.subZone('localchain'),
13
- vowTools,
14
- );
15
+ const powersForTransfer = zone.weakMapStore('powersForTransfer');
16
+ const makeLocalChain = prepareLocalChainTools(zone.subZone('localchain'), {
17
+ ...vowTools,
18
+ powersForTransfer,
19
+ });
15
20
 
16
21
  return Far('LocalChainVat', {
17
22
  /**
18
23
  * Create a local chain that allows permissionlessly making fresh local
19
24
  * chain accounts, then using them to send chain queries and transactions.
20
25
  *
21
- * @param {import('./localchain.js').LocalChainPowers} powers
26
+ * @param {LocalChainPowers} powers
22
27
  */
23
28
  makeLocalChain(powers) {
24
29
  return makeLocalChain(powers);
25
30
  },
31
+
32
+ /**
33
+ * Associate a TransferMiddleware instance with its corresponding
34
+ * ScopedBridgeManager. This is necessary because existing LocalChain
35
+ * instances need the power to inject vtransfer messages when they initiate
36
+ * a MsgSend.
37
+ *
38
+ * By using a WeakMap, we ensure that only possession of both the map and a
39
+ * TransferMiddleware ocap can be amplified into the associated manager.
40
+ *
41
+ * @param {import('./transfer.js').TransferMiddleware} transfer
42
+ * @param {Pick<
43
+ * import('./types.js').ScopedBridgeManager<'vtransfer'>,
44
+ * 'fromBridge'
45
+ * >} transferBridgeManager
46
+ */
47
+ linkTransferMiddlewareToBridgeManager(transfer, transferBridgeManager) {
48
+ if (!powersForTransfer.has(transfer)) {
49
+ powersForTransfer.init(
50
+ transfer,
51
+ harden({
52
+ transferBridgeManager,
53
+ }),
54
+ );
55
+ return;
56
+ }
57
+ const existing = powersForTransfer.get(transfer);
58
+ const updated = harden({ ...existing, transferBridgeManager });
59
+ powersForTransfer.set(transfer, updated);
60
+ },
26
61
  });
27
62
  };
28
63