@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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agoric/vats",
3
- "version": "0.15.2-dev-19b9351.0+19b9351",
3
+ "version": "0.15.2-dev-4dd330d.0+4dd330d",
4
4
  "description": "Agoric's Vat library",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -79,5 +79,5 @@
79
79
  "typeCoverage": {
80
80
  "atLeast": 90.49
81
81
  },
82
- "gitHead": "19b935131d0a1923cb1894624a88481511ad62af"
82
+ "gitHead": "4dd330d215bd9a229f39e2f9532aa1f6b29acc40"
83
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-target.d.ts","sourceRoot":"","sources":["bridge-target.js"],"names":[],"mappings":"AAMA;;;GAGG;AAEH;;;;;GAKG;AAEH;;GAEG;AAEH;;;;;GAKG;AAEH;;GAEG;AAEH;;;;;;;;;;;GAWG;AAEH;;GAOG;AAEH;;;;;;;;;;GAUG;AAEH;;;GAGG;AA4BI,gDADK,OAAO,mBAAmB,EAAE,IAAI;IAiBtC;;;;OAIG;yBADQ,SAAS;IAapB,0CAA0C;;GAW7C;AAyBI,6CAHI,OAAO,mBAAmB,EAAE,IAAI,0BAChC,UAAU,CAAC,OAAO,yBAAyB,CAAC;;;;;;;;QA6C/C;;;;;;;;WAQG;yBALQ,MAAM,OACN,SAAS,SACT,OAAO,EAAE,GACP,OAAO,CAAC,kBAAkB,CAAC;QAkCxC;;;;;;;WAOG;2BAJQ,MAAM,OACN,SAAS,SACT,OAAO,EAAE,GACP,OAAO,CAAC,IAAI,CAAC;QAyB1B;;;;;;WAMG;2BAFQ,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC;;GAc/B;AAII,gDADK,OAAO,mBAAmB,EAAE,IAAI;;;;;;;;;YA7FpC;;;;;;;;eAQG;6BALQ,MAAM,OACN,SAAS,SACT,OAAO,EAAE,GACP,OAAO,CAAC,kBAAkB,CAAC;YAkCxC;;;;;;;eAOG;+BAJQ,MAAM,OACN,SAAS,SACT,OAAO,EAAE,GACP,OAAO,CAAC,IAAI,CAAC;YAyB1B;;;;;;eAMG;+BAFQ,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC;;;EA0BjC;;;;;6BAhTY,GAAG;;;;;;;;;mBAOF,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;kBAWhD,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;aAchD,CACT,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EACpB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAChC,GAAO,IAAI,EAAE,OAAO,EAAE,KACf,IAAI,CAAC,SAAS,CAAC;;;;;;;;;;;;;YAiBT,MAAM,OAAO,CAAC,IAAI,CAAC;;;;;qBAEnB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;;;cAY7C,CACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAC1B,IAAI,CAAC,EAAE,OAAO,EAAE,KACb,OAAO,CAAC,kBAAkB,CAAC;gBACrB,CACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAC1B,IAAI,CAAC,EAAE,OAAO,EAAE,KACb,OAAO,CAAC,IAAI,CAAC;gBACP,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"bridge-target.d.ts","sourceRoot":"","sources":["bridge-target.js"],"names":[],"mappings":"AAMA;;;GAGG;AAEH;;;;;GAKG;AAEH;;GAEG;AAEH;;;;;GAKG;AAEH;;GAEG;AAEH;;;;;;;;;;;GAWG;AAEH;;GAOG;AAEH;;;;;;;;;;GAUG;AAEH;;;GAGG;AA4BI,gDADK,OAAO,mBAAmB,EAAE,IAAI;IAiBtC;;;;OAIG;yBADQ,SAAS;IAapB,0CAA0C;;GAW7C;AAyBI,6CAHI,OAAO,mBAAmB,EAAE,IAAI,0BAChC,UAAU,CAAC,OAAO,yBAAyB,CAAC;;;;;;;;QAwD/C;;;;;;;;WAQG;yBALQ,MAAM,OACN,SAAS,SACT,OAAO,EAAE,GACP,OAAO,CAAC,kBAAkB,CAAC;QAkCxC;;;;;;;WAOG;2BAJQ,MAAM,OACN,SAAS,SACT,OAAO,EAAE,GACP,OAAO,CAAC,IAAI,CAAC;QAyB1B;;;;;;WAMG;2BAFQ,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC;;GAc/B;AAII,gDADK,OAAO,mBAAmB,EAAE,IAAI;;;;;;;;;YA7FpC;;;;;;;;eAQG;6BALQ,MAAM,OACN,SAAS,SACT,OAAO,EAAE,GACP,OAAO,CAAC,kBAAkB,CAAC;YAkCxC;;;;;;;eAOG;+BAJQ,MAAM,OACN,SAAS,SACT,OAAO,EAAE,GACP,OAAO,CAAC,IAAI,CAAC;YAyB1B;;;;;;eAMG;+BAFQ,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC;;;EA0BjC;;;;;6BA3TY,GAAG;;;;;;;;;mBAOF,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;kBAWhD,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;aAchD,CACT,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EACpB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAChC,GAAO,IAAI,EAAE,OAAO,EAAE,KACf,IAAI,CAAC,SAAS,CAAC;;;;;;;;;;;;;YAiBT,MAAM,OAAO,CAAC,IAAI,CAAC;;;;;qBAEnB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;;;cAY7C,CACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAC1B,IAAI,CAAC,EAAE,OAAO,EAAE,KACb,OAAO,CAAC,kBAAkB,CAAC;gBACrB,CACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAC1B,IAAI,CAAC,EAAE,OAAO,EAAE,KACb,OAAO,CAAC,IAAI,CAAC;gBACP,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC"}
@@ -187,17 +187,28 @@ export const prepareBridgeTargetKit = (zone, makeTargetRegistration) =>
187
187
  }),
188
188
  {
189
189
  bridgeHandler: {
190
- fromBridge(obj) {
190
+ async fromBridge(obj) {
191
191
  const { inboundEventType, targetToApp } = this.state;
192
- const { type, target } = obj;
192
+ const { type, target: inboundTarget } = obj;
193
193
 
194
194
  type === inboundEventType ||
195
195
  Fail`Invalid inbound event type ${type}; expected ${inboundEventType}`;
196
196
 
197
+ const { onlyIfRegistered } = inboundTarget || {};
198
+ const target = onlyIfRegistered || inboundTarget;
199
+
200
+ const hasApp = targetToApp.has(target);
201
+ if (onlyIfRegistered && !hasApp) {
202
+ // Skip without erroring if they requested the target only if
203
+ // registered, and the target is not registered.
204
+ return;
205
+ }
206
+
197
207
  target || Fail`Missing target property in ${obj}`;
198
208
 
199
209
  const app = targetToApp.get(target);
200
- return E(app).receiveUpcall(obj);
210
+ const specificObj = { ...obj, target };
211
+ return E(app).receiveUpcall(specificObj);
201
212
  },
202
213
  },
203
214
  targetHost: {
@@ -216,7 +227,7 @@ export const prepareBridgeTargetKit = (zone, makeTargetRegistration) =>
216
227
  * @returns {Promise<TargetRegistration>} power to set or delete the
217
228
  * registration
218
229
  */
219
- async register(target, app, args = []) {
230
+ async register(target, app, args = harden([])) {
220
231
  const { targetHost } = this.facets;
221
232
  const { appTransformer, targetToApp } = this.state;
222
233
 
@@ -1,12 +1,26 @@
1
1
  /**
2
+ * @import {MsgSendProtoMsg} from '@agoric/cosmic-proto/cosmos/bank/v1beta1/tx.js';
3
+ * @import {FungibleTokenPacketData} from '@agoric/cosmic-proto/ibc/applications/transfer/v2/packet.js';
4
+ * @import {Coin} from '@agoric/cosmic-proto/cosmos/base/v1beta1/coin.js';
2
5
  * @import {ERef, EReturn} from '@endo/far';
3
6
  * @import {Key, Pattern} from '@endo/patterns';
4
7
  * @import {TypedJson, ResponseTo, JsonSafe} from '@agoric/cosmic-proto';
5
8
  * @import {Amount, Brand, Payment} from '@agoric/ertp';
6
- * @import {PromiseVow, VowTools} from '@agoric/vow';
9
+ * @import {PromiseVow, Vow, VowTools} from '@agoric/vow';
7
10
  * @import {TargetApp, TargetRegistration} from './bridge-target.js';
8
11
  * @import {BankManager, Bank} from './vat-bank.js';
9
- * @import {ScopedBridgeManager} from './types.js';
12
+ * @import {IBCEvent, IBCPacket, ScopedBridgeManager} from './types.js';
13
+ */
14
+ /**
15
+ * @typedef {SendInfo} NotifyInfo Extend this with any additional notification
16
+ * types.
17
+ */
18
+ /**
19
+ * @typedef {{
20
+ * msgTypeUrl: MsgSendProtoMsg['typeUrl'];
21
+ * coins: Coin[];
22
+ * target: string;
23
+ * } & Omit<FungibleTokenPacketData, 'amount' | 'denom'>} SendInfo
10
24
  */
11
25
  /**
12
26
  * @template {unknown[]} T
@@ -35,12 +49,17 @@
35
49
  * }>;
36
50
  * }>}
37
51
  */
52
+ /**
53
+ * @template {TypedJson[]} MT
54
+ * @typedef {{
55
+ * [K in keyof MT]: JsonSafe<ResponseTo<MT[K]>>;
56
+ * }} ResponseToMany
57
+ */
38
58
  /**
39
59
  * @typedef {{
40
- * system: ScopedBridgeManager<'vlocalchain'>;
41
60
  * bank: Bank;
42
- * transfer: import('./transfer.js').TransferMiddleware;
43
- * }} AccountPowers
61
+ * lastSequence?: string;
62
+ * } & Pick<LocalChainPowers, 'system' | 'transfer'>} AccountPowers
44
63
  */
45
64
  /**
46
65
  * @typedef {{
@@ -49,6 +68,17 @@
49
68
  * transfer: import('./transfer.js').TransferMiddleware;
50
69
  * }} LocalChainPowers
51
70
  */
71
+ /**
72
+ * @typedef {WeakMapStore<
73
+ * LocalChainPowers['transfer'],
74
+ * {
75
+ * transferBridgeManager: Pick<
76
+ * ScopedBridgeManager<'vtransfer'>,
77
+ * 'fromBridge'
78
+ * >;
79
+ * }
80
+ * >} AdditionalTransferPowers
81
+ */
52
82
  export const LocalChainAccountI: import("@endo/patterns").InterfaceGuard<{
53
83
  getAddress: import("@endo/patterns").MethodGuard;
54
84
  getBalance: import("@endo/patterns").MethodGuard;
@@ -57,7 +87,9 @@ export const LocalChainAccountI: import("@endo/patterns").InterfaceGuard<{
57
87
  executeTx: import("@endo/patterns").MethodGuard;
58
88
  monitorTransfers: import("@endo/patterns").MethodGuard;
59
89
  }>;
60
- export function prepareLocalChainAccountKit(zone: import("@agoric/base-zone").Zone, { watch }: VowTools): (address: `${string}1${string}`, powers: AccountPowers) => import("@endo/exo").GuardedKit<{
90
+ export function prepareLocalChainAccountKit(zone: import("@agoric/base-zone").Zone, { watch, allSettled, powersForTransfer }: VowTools & {
91
+ powersForTransfer: AdditionalTransferPowers;
92
+ }): (address: `${string}1${string}`, args_1: AccountPowers) => import("@endo/exo").GuardedKit<{
61
93
  depositPaymentWatcher: {
62
94
  /**
63
95
  * @param {Brand<'nat'>} brand
@@ -71,6 +103,23 @@ export function prepareLocalChainAccountKit(zone: import("@agoric/base-zone").Zo
71
103
  optAmountShape: Amount<"nat">;
72
104
  }): Promise<import("@agoric/ertp").NatAmount>;
73
105
  };
106
+ notifyTransferVatWatcher: {
107
+ /**
108
+ * @template {TypedJson[]} MT
109
+ * @param {ResponseToMany<MT>} fulfilment
110
+ * @param {Record<number, NotifyInfo>} notifyInfos
111
+ */
112
+ onFulfilled<MT extends TypedJson[]>(fulfilment: ResponseToMany<MT>, notifyInfos: Record<number, NotifyInfo>): ResponseToMany<MT> | Vow<ResponseToMany<MT>>;
113
+ };
114
+ overrideWatcher: {
115
+ /**
116
+ * @template T
117
+ * @param {unknown} _awaited
118
+ * @param {T} override
119
+ * @returns {T}
120
+ */
121
+ onFulfilled<T>(_awaited: unknown, override: T): T;
122
+ };
74
123
  account: {
75
124
  getAddress(): `${string}1${string}`;
76
125
  /**
@@ -110,14 +159,11 @@ export function prepareLocalChainAccountKit(zone: import("@agoric/base-zone").Zo
110
159
  * @template {TypedJson[]} MT messages tuple (use const with multiple
111
160
  * elements or it will be a mixed array)
112
161
  * @param {MT} messages
113
- * @returns {PromiseVowOfTupleMappedToGenerics<{
114
- * [K in keyof MT]: JsonSafe<ResponseTo<MT[K]>>;
115
- * }>}
116
- *
162
+ * @returns {PromiseVowOfTupleMappedToGenerics<ResponseToMany<MT>>}
117
163
  * @see {typedJson} which can be used on arguments to get typed return
118
164
  * values.
119
165
  */
120
- executeTx<MT extends TypedJson[]>(messages: MT): PromiseVowOfTupleMappedToGenerics<{ [K in keyof MT]: JsonSafe<ResponseTo<MT[K]>>; }>;
166
+ executeTx<MT extends TypedJson[]>(messages: MT): PromiseVowOfTupleMappedToGenerics<ResponseToMany<MT>>;
121
167
  /**
122
168
  * @param {TargetApp} tap
123
169
  * @returns {PromiseVow<TargetRegistration>}
@@ -137,39 +183,49 @@ export const LocalChainI: import("@endo/patterns").InterfaceGuard<{
137
183
  query: import("@endo/patterns").MethodGuard;
138
184
  queryMany: import("@endo/patterns").MethodGuard;
139
185
  }>;
140
- export function prepareLocalChainTools(zone: import("@agoric/base-zone").Zone, vowTools: VowTools): {
141
- makeLocalChain: (powers: LocalChainPowers) => import("@endo/exo").Guarded<{
142
- /**
143
- * Allocate a fresh address that doesn't correspond with a public key,
144
- * and follows the ICA guidelines to help reduce collisions. See
145
- * x/vlocalchain/keeper/keeper.go AllocateAddress for the use of the app
146
- * hash and block data hash.
147
- *
148
- * @returns {PromiseVow<LocalChainAccount>}
149
- */
150
- makeAccount(): PromiseVow<LocalChainAccount>;
151
- /**
152
- * Make a single query to the local chain. Will reject with an error if
153
- * the query fails. Otherwise, return the response as a JSON-compatible
154
- * object.
155
- *
156
- * @template {TypedJson} [T=TypedJson]
157
- * @param {T} request
158
- * @returns {PromiseVow<JsonSafe<ResponseTo<T>>>}
159
- */
160
- query<T extends TypedJson = {
161
- '@type': string;
162
- }>(request: T): PromiseVow<JsonSafe<ResponseTo<T>>>;
163
- queryMany(requests: {
186
+ export function prepareLocalChainTools(zone: import("@agoric/base-zone").Zone, powers: VowTools & {
187
+ powersForTransfer: AdditionalTransferPowers;
188
+ }): (powers: LocalChainPowers) => import("@endo/exo").Guarded<{
189
+ /**
190
+ * Allocate a fresh address that doesn't correspond with a public key,
191
+ * and follows the ICA guidelines to help reduce collisions. See
192
+ * x/vlocalchain/keeper/keeper.go AllocateAddress for the use of the app
193
+ * hash and block data hash.
194
+ *
195
+ * @returns {PromiseVow<LocalChainAccount>}
196
+ */
197
+ makeAccount(): PromiseVow<LocalChainAccount>;
198
+ /**
199
+ * Make a single query to the local chain. Will reject with an error if
200
+ * the query fails. Otherwise, return the response as a JSON-compatible
201
+ * object.
202
+ *
203
+ * @template {TypedJson} [T=TypedJson]
204
+ * @param {T} request
205
+ * @returns {PromiseVow<JsonSafe<ResponseTo<T>>>}
206
+ */
207
+ query<T extends TypedJson = {
208
+ '@type': string;
209
+ }>(request: T): PromiseVow<JsonSafe<ResponseTo<T>>>;
210
+ queryMany(requests: {
211
+ '@type': string;
212
+ }[]): PromiseVowOfTupleMappedToGenerics<{
213
+ error?: string | undefined;
214
+ reply: {
164
215
  '@type': string;
165
- }[]): PromiseVowOfTupleMappedToGenerics<{
166
- error?: string | undefined;
167
- reply: {
168
- '@type': string;
169
- };
170
- }[]>;
171
- }>;
172
- };
216
+ };
217
+ }[]>;
218
+ }>;
219
+ /**
220
+ * Extend this with any additional notification
221
+ * types.
222
+ */
223
+ export type NotifyInfo = SendInfo;
224
+ export type SendInfo = {
225
+ msgTypeUrl: MsgSendProtoMsg["typeUrl"];
226
+ coins: Coin[];
227
+ target: string;
228
+ } & Omit<FungibleTokenPacketData, "amount" | "denom">;
173
229
  /**
174
230
  * Temporary hack
175
231
  *
@@ -193,16 +249,19 @@ export type QueryManyFn<RT extends TypedJson[] = {
193
249
  error?: string;
194
250
  reply: ResponseTo<RT[K]>;
195
251
  }>; }>;
252
+ export type ResponseToMany<MT extends TypedJson[]> = { [K in keyof MT]: JsonSafe<ResponseTo<MT[K]>>; };
196
253
  export type AccountPowers = {
197
- system: ScopedBridgeManager<"vlocalchain">;
198
254
  bank: Bank;
199
- transfer: import("./transfer.js").TransferMiddleware;
200
- };
255
+ lastSequence?: string;
256
+ } & Pick<LocalChainPowers, "system" | "transfer">;
201
257
  export type LocalChainPowers = {
202
258
  system: ScopedBridgeManager<"vlocalchain">;
203
259
  bankManager: BankManager;
204
260
  transfer: import("./transfer.js").TransferMiddleware;
205
261
  };
262
+ export type AdditionalTransferPowers = WeakMapStore<LocalChainPowers["transfer"], {
263
+ transferBridgeManager: Pick<ScopedBridgeManager<"vtransfer">, "fromBridge">;
264
+ }>;
206
265
  export type LocalChain = EReturn<EReturn<typeof prepareLocalChain>>;
207
266
  export type LocalChainAccountKit = Awaited<ReturnType<ReturnType<typeof prepareLocalChainAccountKit>>>;
208
267
  export type LocalChainAccount = LocalChainAccountKit["account"];
@@ -211,16 +270,20 @@ import type { VowTools } from '@agoric/vow';
211
270
  import type { Brand } from '@agoric/ertp';
212
271
  import type { Payment } from '@agoric/ertp';
213
272
  import type { Amount } from '@agoric/ertp';
273
+ import type { TypedJson } from '@agoric/cosmic-proto';
274
+ import type { Vow } from '@agoric/vow';
214
275
  import type { PromiseVow } from '@agoric/vow';
215
276
  import type { ERef } from '@endo/far';
216
277
  import type { Pattern } from '@endo/patterns';
217
- import type { TypedJson } from '@agoric/cosmic-proto';
218
- import type { ResponseTo } from '@agoric/cosmic-proto';
219
- import type { JsonSafe } from '@agoric/cosmic-proto';
220
278
  import type { TargetApp } from './bridge-target.js';
221
279
  import type { TargetRegistration } from './bridge-target.js';
222
- import type { ScopedBridgeManager } from './types.js';
280
+ import type { ResponseTo } from '@agoric/cosmic-proto';
281
+ import type { JsonSafe } from '@agoric/cosmic-proto';
282
+ import type { MsgSendProtoMsg } from '@agoric/cosmic-proto/cosmos/bank/v1beta1/tx.js';
283
+ import type { Coin } from '@agoric/cosmic-proto/cosmos/base/v1beta1/coin.js';
284
+ import type { FungibleTokenPacketData } from '@agoric/cosmic-proto/ibc/applications/transfer/v2/packet.js';
223
285
  import type { Bank } from './vat-bank.js';
286
+ import type { ScopedBridgeManager } from './types.js';
224
287
  import type { BankManager } from './vat-bank.js';
225
288
  /**
226
289
  * @param {import('@agoric/base-zone').Zone} zone
@@ -1 +1 @@
1
- {"version":3,"file":"localchain.d.ts","sourceRoot":"","sources":["localchain.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localchain.d.ts","sourceRoot":"","sources":["localchain.js"],"names":[],"mappings":"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"}