@agoric/vats 0.15.2-dev-ecf2d8e.0 → 0.15.2-other-dev-70beeb7.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/CHANGELOG.md +9 -0
- package/decentral-core-config.json +66 -0
- package/decentral-demo-config.json +155 -0
- package/decentral-devnet-config.json +216 -0
- package/decentral-itest-vaults-config.json +210 -0
- package/decentral-main-vaults-config.json +229 -0
- package/decentral-test-vaults-config.json +195 -0
- package/demo-proposals.json +5 -0
- package/exported.js +1 -1
- package/jsconfig.build.json +12 -0
- package/{tsconfig.json → jsconfig.json} +0 -3
- package/package.json +42 -32
- package/scripts/build-bundles.d.ts +3 -0
- package/scripts/build-bundles.d.ts.map +1 -0
- package/scripts/build-bundles.js +3 -8
- package/scripts/build-game1-start.d.ts +5 -0
- package/scripts/build-game1-start.d.ts.map +1 -0
- package/scripts/build-game1-start.js +34 -0
- package/scripts/build-walletFactory-upgrade.d.ts +5 -0
- package/scripts/build-walletFactory-upgrade.d.ts.map +1 -0
- package/scripts/build-walletFactory-upgrade.js +35 -0
- package/scripts/init-core.d.ts +5 -0
- package/scripts/init-core.d.ts.map +1 -0
- package/scripts/init-core.js +31 -0
- package/scripts/init-network.d.ts +5 -0
- package/scripts/init-network.d.ts.map +1 -0
- package/scripts/init-network.js +19 -0
- package/scripts/restart-vats.d.ts +5 -0
- package/scripts/restart-vats.d.ts.map +1 -0
- package/scripts/restart-vats.js +23 -0
- package/scripts/set-core-proposal-env.d.ts +3 -0
- package/scripts/set-core-proposal-env.d.ts.map +1 -0
- package/scripts/set-core-proposal-env.js +37 -0
- package/src/bridge.d.ts +3 -12
- package/src/bridge.d.ts.map +1 -1
- package/src/bridge.js +12 -24
- package/src/centralSupply.d.ts.map +1 -1
- package/src/centralSupply.js +3 -3
- package/src/core/basic-behaviors.d.ts +7 -7
- package/src/core/basic-behaviors.d.ts.map +1 -1
- package/src/core/basic-behaviors.js +50 -56
- package/src/core/boot-chain.d.ts +1 -1
- package/src/core/boot-chain.js +3 -3
- package/src/core/boot-sim.js +3 -3
- package/src/core/boot-solo.js +4 -4
- package/src/core/chain-behaviors.d.ts.map +1 -1
- package/src/core/chain-behaviors.js +23 -29
- package/src/core/client-behaviors.d.ts.map +1 -1
- package/src/core/client-behaviors.js +4 -5
- package/src/core/demoIssuers.d.ts +15 -17
- package/src/core/demoIssuers.d.ts.map +1 -1
- package/src/core/demoIssuers.js +36 -36
- package/src/core/lib-boot.d.ts +9 -11
- package/src/core/lib-boot.d.ts.map +1 -1
- package/src/core/lib-boot.js +22 -32
- package/src/core/promise-space.d.ts.map +1 -1
- package/src/core/promise-space.js +14 -14
- package/src/core/sim-behaviors.d.ts +1 -1
- package/src/core/sim-behaviors.d.ts.map +1 -1
- package/src/core/startWalletFactory.d.ts +62 -9
- package/src/core/startWalletFactory.d.ts.map +1 -1
- package/src/core/startWalletFactory.js +17 -26
- package/src/core/types.d.ts +820 -0
- package/src/core/types.d.ts.map +1 -0
- package/src/core/types.js +347 -0
- package/src/core/utils.d.ts +16 -18
- package/src/core/utils.d.ts.map +1 -1
- package/src/core/utils.js +30 -32
- package/src/crc.d.ts +6 -2
- package/src/crc.d.ts.map +1 -1
- package/src/crc.js +15 -5
- package/src/ibc.d.ts +5 -5
- package/src/ibc.d.ts.map +1 -1
- package/src/ibc.js +47 -27
- package/src/lib-board.d.ts +50 -49
- package/src/lib-board.d.ts.map +1 -1
- package/src/lib-board.js +39 -32
- package/src/mintHolder.d.ts +1 -3
- package/src/mintHolder.d.ts.map +1 -1
- package/src/mintHolder.js +8 -13
- package/src/nameHub.d.ts +2 -18
- package/src/nameHub.d.ts.map +1 -1
- package/src/nameHub.js +17 -26
- package/src/proposals/network-proposal.d.ts.map +1 -1
- package/src/proposals/network-proposal.js +12 -15
- package/src/proposals/restart-vats-proposal.d.ts +1 -1
- package/src/proposals/restart-vats-proposal.d.ts.map +1 -1
- package/src/proposals/restart-vats-proposal.js +5 -3
- package/src/provisionPool.d.ts +164 -0
- package/src/provisionPool.d.ts.map +1 -0
- package/src/provisionPool.js +113 -0
- package/src/provisionPoolKit.d.ts +408 -0
- package/src/provisionPoolKit.d.ts.map +1 -0
- package/src/provisionPoolKit.js +464 -0
- package/src/repl.js +1 -1
- package/src/tokens.d.ts +36 -0
- package/src/tokens.d.ts.map +1 -0
- package/src/tokens.js +37 -0
- package/src/types.d.ts +103 -84
- package/src/types.d.ts.map +1 -0
- package/src/types.js +97 -1
- package/src/vat-agoricNames.d.ts +1 -1
- package/src/vat-agoricNames.d.ts.map +1 -1
- package/src/vat-agoricNames.js +3 -2
- package/src/vat-bank.d.ts +58 -62
- package/src/vat-bank.d.ts.map +1 -1
- package/src/vat-bank.js +54 -62
- package/src/vat-board.d.ts +1 -1
- package/src/vat-bridge.d.ts +30 -2
- package/src/vat-bridge.d.ts.map +1 -1
- package/src/vat-mints.d.ts +12 -12
- package/src/vat-mints.d.ts.map +1 -1
- package/src/vat-mints.js +6 -6
- package/src/vat-network.d.ts +1 -1
- package/src/vat-network.d.ts.map +1 -1
- package/src/vat-network.js +1 -1
- package/src/vat-priceAuthority.d.ts +1 -1
- package/src/vat-provisioning.d.ts +1 -1
- package/src/vat-provisioning.d.ts.map +1 -1
- package/src/vat-provisioning.js +7 -11
- package/src/vat-sharing.d.ts +54 -0
- package/src/vat-sharing.d.ts.map +1 -0
- package/src/vat-sharing.js +14 -0
- package/src/vat-zoe.d.ts +0 -2
- package/src/vat-zoe.d.ts.map +1 -1
- package/src/vat-zoe.js +2 -8
- package/src/virtual-purse.d.ts +12 -37
- package/src/virtual-purse.d.ts.map +1 -1
- package/src/virtual-purse.js +36 -38
- package/src/walletFlags.d.ts +2 -2
- package/src/walletFlags.js +2 -1
- package/tools/authorityViz.d.ts +27 -0
- package/tools/authorityViz.d.ts.map +1 -0
- package/tools/authorityViz.js +272 -0
- package/tools/bank-utils.d.ts +1 -1
- package/tools/bank-utils.d.ts.map +1 -1
- package/tools/bank-utils.js +5 -12
- package/tools/board-utils.d.ts +19 -5
- package/tools/board-utils.d.ts.map +1 -1
- package/tools/board-utils.js +81 -29
- package/tools/boot-test-utils.d.ts +10 -9
- package/tools/boot-test-utils.d.ts.map +1 -1
- package/tools/boot-test-utils.js +16 -6
- package/tools/viz.mk +17 -0
- package/index.js +0 -11
- package/src/core/types-ambient.d.ts +0 -475
- package/src/core/types-ambient.js +0 -1
- package/src/proposals/zcf-proposal.d.ts +0 -30
- package/src/proposals/zcf-proposal.d.ts.map +0 -1
- package/src/proposals/zcf-proposal.js +0 -45
- package/tsconfig.build.json +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-behaviors.d.ts","sourceRoot":"","sources":["chain-behaviors.js"],"names":[],"mappings":"AA8BO,0CAFI,eAAe,
|
|
1
|
+
{"version":3,"file":"chain-behaviors.d.ts","sourceRoot":"","sources":["chain-behaviors.js"],"names":[],"mappings":"AA8BO,0CAFI,eAAe,iBAmFzB;AAQM,qIAJI,eAAe,GAAG;IAC5B,OAAW,EAAE;QAAE,eAAe,EAAE,KAAK,UAAU,eAAe,CAAC,CAAC,CAAA;KAAE,CAAA;CAC/D,iBAUH;AAMM,6DAFI,eAAe,iBAIzB;AAIM,gMADK,eAAe,iBAuD1B;AAcM,2FAHI,cAAc,kBACd;IAAE,QAAQ,CAAC,EAAE,OAAO,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,iBAqFhD;AAIM,sMADK,eAAe,iBAc1B;AAQM,kNAJI,YAAY,YAAY,CAAC,GAAG,cAAc,GAAG;IACvD,OAAW,EAAE;QAAE,eAAe,EAAE,KAAK,UAAU,eAAe,CAAC,CAAC,CAAA;KAAE,CAAA;CAC/D,iBAgCH;AAQM,2LAJI,cAAc,GAAG;IAC3B,OAAW,EAAE;QAAE,eAAe,EAAE,KAAK,UAAU,eAAe,CAAC,CAAC,CAAA;KAAE,CAAA;CAC/D,iBA2BH;AAOM,qLAJI,cAAc,GAAG;IAC3B,OAAW,EAAE;QAAE,eAAe,EAAE,KAAK,UAAU,eAAe,CAAC,CAAC,CAAA;KAAE,CAAA;CAC/D,iBAoCH;AAGM,kJADK,eAAe,GAAG,cAAc,iBAkB3C;AAUM,kGALI,eAAe;;;;;;kBAqCzB;AAOM,4DAFI,eAAe,iBAMzB;AAGD,qDAAqD;AACrD,8CADW,OAAO,YAAY,EAAE,iBAAiB,CA2E/C;AAGF,wDAAwD;AACxD,uCADW,OAAO,eAAe,EAAE,iBAAiB,CASjD"}
|
|
@@ -23,7 +23,7 @@ const { keys } = Object;
|
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* This registers the code triggered by `agd tx gov submit-proposal
|
|
26
|
-
* swingset-core-eval permit.json code.js`.
|
|
26
|
+
* swingset-core-eval permit.json code.js`. It is the "big hammer" governance
|
|
27
27
|
* that allows code.js access to all powers permitted by permit.json.
|
|
28
28
|
*
|
|
29
29
|
* @param {BootstrapPowers} allPowers
|
|
@@ -59,11 +59,9 @@ export const bridgeCoreEval = async allPowers => {
|
|
|
59
59
|
switch (obj.type) {
|
|
60
60
|
case 'CORE_EVAL': {
|
|
61
61
|
/**
|
|
62
|
-
* Type defined by
|
|
63
|
-
* `agoric-sdk/golang/cosmos/proto/agoric/swingset/swingset.proto`
|
|
64
|
-
* CoreEval.
|
|
62
|
+
* Type defined by `agoric-sdk/golang/cosmos/proto/agoric/swingset/swingset.proto` CoreEval.
|
|
65
63
|
*
|
|
66
|
-
* @type {{ evals: { json_permits: string
|
|
64
|
+
* @type {{ evals: { json_permits: string, js_code: string }[]}}
|
|
67
65
|
*/
|
|
68
66
|
const { evals } = obj;
|
|
69
67
|
return Promise.all(
|
|
@@ -116,7 +114,7 @@ harden(bridgeCoreEval);
|
|
|
116
114
|
|
|
117
115
|
/**
|
|
118
116
|
* @param {BootstrapPowers & {
|
|
119
|
-
* consume: { loadCriticalVat: ERef<VatLoader<ProvisioningVat>> }
|
|
117
|
+
* consume: { loadCriticalVat: ERef<VatLoader<ProvisioningVat>> }
|
|
120
118
|
* }} powers
|
|
121
119
|
*/
|
|
122
120
|
export const makeProvisioner = async ({
|
|
@@ -130,7 +128,9 @@ export const makeProvisioner = async ({
|
|
|
130
128
|
};
|
|
131
129
|
harden(makeProvisioner);
|
|
132
130
|
|
|
133
|
-
/**
|
|
131
|
+
/**
|
|
132
|
+
* @param {BootstrapPowers} powers
|
|
133
|
+
*/
|
|
134
134
|
export const noProvisioner = async ({ produce: { provisioning } }) => {
|
|
135
135
|
provisioning.resolve(undefined);
|
|
136
136
|
};
|
|
@@ -309,10 +309,9 @@ export const startTimerService = async ({
|
|
|
309
309
|
harden(startTimerService);
|
|
310
310
|
|
|
311
311
|
/**
|
|
312
|
-
* @param {BootDevices<ChainDevices> &
|
|
313
|
-
*
|
|
314
|
-
*
|
|
315
|
-
* }} powers
|
|
312
|
+
* @param {BootDevices<ChainDevices> & BootstrapSpace & {
|
|
313
|
+
* consume: { loadCriticalVat: ERef<VatLoader<ChainStorageVat>> }
|
|
314
|
+
* }} powers
|
|
316
315
|
*/
|
|
317
316
|
export const makeBridgeManager = async ({
|
|
318
317
|
consume: { loadCriticalVat },
|
|
@@ -349,7 +348,7 @@ harden(makeBridgeManager);
|
|
|
349
348
|
|
|
350
349
|
/**
|
|
351
350
|
* @param {BootstrapSpace & {
|
|
352
|
-
* consume: { loadCriticalVat: ERef<VatLoader<ChainStorageVat>> }
|
|
351
|
+
* consume: { loadCriticalVat: ERef<VatLoader<ChainStorageVat>> }
|
|
353
352
|
* }} powers
|
|
354
353
|
*/
|
|
355
354
|
export const makeChainStorage = async ({
|
|
@@ -363,7 +362,6 @@ export const makeChainStorage = async ({
|
|
|
363
362
|
if (!bridgeManager) {
|
|
364
363
|
console.warn('Cannot support chainStorage without an actual chain.');
|
|
365
364
|
chainStorageP.resolve(null);
|
|
366
|
-
// @ts-expect-error expects value or undefined
|
|
367
365
|
storageBridgeManagerP.resolve(null);
|
|
368
366
|
return;
|
|
369
367
|
}
|
|
@@ -382,7 +380,7 @@ export const makeChainStorage = async ({
|
|
|
382
380
|
|
|
383
381
|
/**
|
|
384
382
|
* @param {BootstrapSpace & {
|
|
385
|
-
* consume: { loadCriticalVat: ERef<VatLoader<ChainStorageVat>> }
|
|
383
|
+
* consume: { loadCriticalVat: ERef<VatLoader<ChainStorageVat>> }
|
|
386
384
|
* }} powers
|
|
387
385
|
*/
|
|
388
386
|
export const produceHighPrioritySendersManager = async ({
|
|
@@ -407,15 +405,14 @@ export const produceHighPrioritySendersManager = async ({
|
|
|
407
405
|
);
|
|
408
406
|
|
|
409
407
|
/**
|
|
410
|
-
* NB: this is a non-durable Far object. If the bootstrap vat (where this
|
|
411
|
-
*
|
|
412
|
-
* be severed.
|
|
408
|
+
* NB: this is a non-durable Far object. If the bootstrap vat (where this object is made)
|
|
409
|
+
* were to be terminated, the object references to this would be severed.
|
|
413
410
|
*
|
|
414
|
-
* See {@link ./README.md bootstrap documentation} for implications.
|
|
415
|
-
* bootstrap vat is replaced, the new bootstrap config must be made
|
|
416
|
-
* state extracted from IAVL. Contracts holding this manager will need
|
|
417
|
-
* updated with the new object, which can be done with an upgrade
|
|
418
|
-
* null) with the new object in privateArgs.
|
|
411
|
+
* See {@link ./README.md bootstrap documentation} for implications.
|
|
412
|
+
* If the bootstrap vat is replaced, the new bootstrap config must be made
|
|
413
|
+
* using state extracted from IAVL. Contracts holding this manager will need
|
|
414
|
+
* to be updated with the new object, which can be done with an upgrade
|
|
415
|
+
* (regular or null) with the new object in privateArgs.
|
|
419
416
|
*/
|
|
420
417
|
const manager = makePrioritySendersManager(sendersNode);
|
|
421
418
|
|
|
@@ -444,14 +441,11 @@ export const publishAgoricNamesToChainStorage = async ({
|
|
|
444
441
|
|
|
445
442
|
/**
|
|
446
443
|
* @deprecated use reflectAgoricNamesToChainStorage
|
|
444
|
+
*
|
|
447
445
|
* @param {BootstrapPowers} powers
|
|
448
|
-
* @param {{
|
|
449
|
-
*
|
|
450
|
-
*
|
|
451
|
-
* topLevel?: string[];
|
|
452
|
-
* };
|
|
453
|
-
* };
|
|
454
|
-
* }} config
|
|
446
|
+
* @param {{ options?: {agoricNamesOptions?: {
|
|
447
|
+
* topLevel?: string[]
|
|
448
|
+
* }}}} config
|
|
455
449
|
*/
|
|
456
450
|
export const publishAgoricNames = async (
|
|
457
451
|
{ consume: { agoricNamesAdmin, board, chainStorage: rootP } },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-behaviors.d.ts","sourceRoot":"","sources":["client-behaviors.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client-behaviors.d.ts","sourceRoot":"","sources":["client-behaviors.js"],"names":[],"mappings":"AA2FO,8HALK,YAAY,WAAW,CAAC,GAAG,cAAc,GAAG;IACvD,aAAiB,EAAE,kBAAkB,CAAC;IACtC,IAAQ,EAAE,YAAY,GAAG,QAAQ,CAAC;CAC/B,iBAwEH;AAGD,wDAAwD;AACxD,wCADW,OAAO,eAAe,EAAE,iBAAiB,CAoCjD"}
|
|
@@ -84,11 +84,10 @@ async function createLocalBundle(vats, devices, vatAdminSvc, vatPowers) {
|
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
/**
|
|
87
|
-
* @param {BootDevices<SoloDevices> &
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
* }} powers
|
|
87
|
+
* @param { BootDevices<SoloDevices> & BootstrapSpace & {
|
|
88
|
+
* vatParameters: BootstrapVatParams,
|
|
89
|
+
* vats: SwingsetVats & SoloVats,
|
|
90
|
+
* }} powers
|
|
92
91
|
*/
|
|
93
92
|
export const startClient = async ({
|
|
94
93
|
vatParameters: {
|
|
@@ -8,21 +8,19 @@ export function showAmount({ brand, value }: {
|
|
|
8
8
|
}): string;
|
|
9
9
|
/**
|
|
10
10
|
* @typedef {readonly [bigint, bigint]} Rational
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* {
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* }
|
|
25
|
-
* >}
|
|
11
|
+
*
|
|
12
|
+
* @type { Record<string, {
|
|
13
|
+
* config?: {
|
|
14
|
+
* collateralValue: bigint,
|
|
15
|
+
* initialMargin: Rational,
|
|
16
|
+
* liquidationMargin: Rational,
|
|
17
|
+
* liquidationPenalty: Rational,
|
|
18
|
+
* interestRate: Rational,
|
|
19
|
+
* mintFee: Rational,
|
|
20
|
+
* liquidationPadding?: Rational,
|
|
21
|
+
* },
|
|
22
|
+
* trades: Array<{ central: number, collateral: bigint}>
|
|
23
|
+
* }>}
|
|
26
24
|
*/
|
|
27
25
|
export const AMMDemoState: Record<string, {
|
|
28
26
|
config?: {
|
|
@@ -34,10 +32,10 @@ export const AMMDemoState: Record<string, {
|
|
|
34
32
|
mintFee: Rational;
|
|
35
33
|
liquidationPadding?: Rational;
|
|
36
34
|
};
|
|
37
|
-
trades: {
|
|
35
|
+
trades: Array<{
|
|
38
36
|
central: number;
|
|
39
37
|
collateral: bigint;
|
|
40
|
-
}
|
|
38
|
+
}>;
|
|
41
39
|
}>;
|
|
42
40
|
export function connectFaucet({ consume: { bankManager, bldIssuerKit: bldP, client, feeMintAccess, loadVat, zoe, }, installation: { consume: { centralSupply: centralSupplyInstall }, }, produce: { mints }, }: BootstrapSpace & {
|
|
43
41
|
consume: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demoIssuers.d.ts","sourceRoot":"","sources":["demoIssuers.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"demoIssuers.d.ts","sourceRoot":"","sources":["demoIssuers.js"],"names":[],"mappings":"AAgBA,qCAAqC;AACrC,4BADW,OAAO,MAAM,EAAE,MAAM,CAAC,CAU/B;AA0CK,2BAHI,MAAM,OACN,MAAM,UAQhB;AAEM,0CAC+C;AAC/C;;;WAIN;AAWD;;;;;;;;;;;;;;;GAeG;AACH,2BAbW,OAAO,MAAM,EAAE;IACzB,MAAU,CAAC,EAAE;QACb,eAAqB,EAAE,MAAM,CAAC;QAC9B,aAAmB,WAAW;QAC9B,iBAAuB,WAAW;QAClC,kBAAwB,WAAW;QACnC,YAAkB,WAAW;QAC7B,OAAa,WAAW;QACxB,kBAAwB,CAAC,WAAW;KAC/B,CAAC;IACN,MAAU,EAAE,MAAM;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC,CAAC,CAAA;CACtD,CAAC,CAqEH;AAwDK,gNAbK,cAAc,GACzB;IAAM,OAAO,EAAE;QAAC,OAAO,EAAE,UAAU,QAAQ,CAAC,CAAA;KAAC,CAAA;CAAE,iBAgI/C;AAQM,4CAFI,mBAAmB;;;;;EAgC7B;AAOM,0DAJI,OAAO,YACP,OAAO,MAAM,EAAE,MAAM,CAAC,WACtB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE;;;;;GA4BhD;AAQM,sCALI,MAAM,UACN,CAAA,mBAAmB,EAAC,MAAM,CAAC,QAC3B,OAAO,MAAM,EAAE;IAAE,MAAM,EAAE,KAAK,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,WACtD;IAAE,MAAM,EAAE,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAA;CAAE;;;;;;;;;;;;EAoC9D;uBA/WY,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gCAkIzB;IACZ,MAAU,EAAE,KAAK,MAAM,CAAC,CAAC;IACzB,aAAiB,EAAE,MAAM,CAAC;IAC1B,OAAW,EAAE,OAAO,CAAC;IACrB,KAAS,EAAE,KAAK,CAAC;IACjB,YAAgB,EAAE,MAAM,CAAC;CACtB"}
|
package/src/core/demoIssuers.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable @jessie.js/no-nested-await -- demo file */
|
|
1
2
|
import { AmountMath, AssetKind } from '@agoric/ertp';
|
|
2
3
|
import { split, splitMany } from '@agoric/ertp/src/legacy-payment-helpers.js';
|
|
3
4
|
import {
|
|
@@ -7,7 +8,7 @@ import {
|
|
|
7
8
|
import { E, Far } from '@endo/far';
|
|
8
9
|
import { Nat } from '@endo/nat';
|
|
9
10
|
import { notForProductionUse } from '@agoric/internal/src/magic-cookie-test-only.js';
|
|
10
|
-
import { Stake, Stable } from '
|
|
11
|
+
import { Stake, Stable } from '../tokens.js';
|
|
11
12
|
|
|
12
13
|
const { Fail, quote: q } = assert;
|
|
13
14
|
const { multiply, floorDivide } = natSafeMath;
|
|
@@ -25,7 +26,7 @@ export const DecimalPlaces = {
|
|
|
25
26
|
simolean: 0,
|
|
26
27
|
};
|
|
27
28
|
|
|
28
|
-
/** @type {Record<string, { proposedName: string
|
|
29
|
+
/** @type {Record<string, { proposedName: string, balance: bigint}>} */
|
|
29
30
|
const FaucetPurseDetail = {
|
|
30
31
|
[Stake.symbol]: {
|
|
31
32
|
proposedName: Stake.proposedName,
|
|
@@ -92,21 +93,19 @@ const defaultConfig = /** @type {const} */ ({
|
|
|
92
93
|
|
|
93
94
|
/**
|
|
94
95
|
* @typedef {readonly [bigint, bigint]} Rational
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
* {
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
* }
|
|
109
|
-
* >}
|
|
96
|
+
*
|
|
97
|
+
* @type { Record<string, {
|
|
98
|
+
* config?: {
|
|
99
|
+
* collateralValue: bigint,
|
|
100
|
+
* initialMargin: Rational,
|
|
101
|
+
* liquidationMargin: Rational,
|
|
102
|
+
* liquidationPenalty: Rational,
|
|
103
|
+
* interestRate: Rational,
|
|
104
|
+
* mintFee: Rational,
|
|
105
|
+
* liquidationPadding?: Rational,
|
|
106
|
+
* },
|
|
107
|
+
* trades: Array<{ central: number, collateral: bigint}>
|
|
108
|
+
* }>}
|
|
110
109
|
*/
|
|
111
110
|
export const AMMDemoState = {
|
|
112
111
|
// TODO: getRUN makes BLD obsolete here
|
|
@@ -184,9 +183,9 @@ const run2places = f =>
|
|
|
184
183
|
/**
|
|
185
184
|
* @param {bigint} value
|
|
186
185
|
* @param {{
|
|
187
|
-
* centralSupplyInstall: ERef<Installation
|
|
188
|
-
* feeMintAccess: ERef<FeeMintAccess
|
|
189
|
-
* zoe: ERef<ZoeService
|
|
186
|
+
* centralSupplyInstall: ERef<Installation>,
|
|
187
|
+
* feeMintAccess: ERef<FeeMintAccess>,
|
|
188
|
+
* zoe: ERef<ZoeService>,
|
|
190
189
|
* }} powers
|
|
191
190
|
* @returns {Promise<Payment<'nat'>>}
|
|
192
191
|
*/
|
|
@@ -218,15 +217,17 @@ const provideCoin = async (name, mints) => {
|
|
|
218
217
|
};
|
|
219
218
|
|
|
220
219
|
/**
|
|
221
|
-
* @param {BootstrapSpace &
|
|
222
|
-
*
|
|
220
|
+
* @param { BootstrapSpace &
|
|
221
|
+
* { consume: {loadVat: VatLoader<MintsVat>} }
|
|
222
|
+
* } powers
|
|
223
223
|
*
|
|
224
|
+
* TODO: sync this type with end-user docs?
|
|
224
225
|
* @typedef {{
|
|
225
|
-
* issuer: ERef<Issuer
|
|
226
|
-
* issuerPetname: string
|
|
227
|
-
* payment: Payment
|
|
228
|
-
* brand: Brand
|
|
229
|
-
* pursePetname: string
|
|
226
|
+
* issuer: ERef<Issuer>,
|
|
227
|
+
* issuerPetname: string,
|
|
228
|
+
* payment: Payment,
|
|
229
|
+
* brand: Brand,
|
|
230
|
+
* pursePetname: string,
|
|
230
231
|
* }} UserPaymentRecord
|
|
231
232
|
*/
|
|
232
233
|
export const connectFaucet = async ({
|
|
@@ -283,7 +284,6 @@ export const connectFaucet = async ({
|
|
|
283
284
|
entries(FaucetPurseDetail).map(async ([issuerName, record]) => {
|
|
284
285
|
/** @param {string} name */
|
|
285
286
|
const provideIssuerKit = async name => {
|
|
286
|
-
await null;
|
|
287
287
|
switch (name) {
|
|
288
288
|
case Stable.symbol:
|
|
289
289
|
return stableIssuerKit;
|
|
@@ -334,7 +334,7 @@ export const connectFaucet = async ({
|
|
|
334
334
|
/**
|
|
335
335
|
* reap the spoils of our on-chain provisioning.
|
|
336
336
|
*
|
|
337
|
-
* @returns {Promise<UserPaymentRecord
|
|
337
|
+
* @returns {Promise<Array<UserPaymentRecord>>}
|
|
338
338
|
*/
|
|
339
339
|
tapFaucet: async () => faucetPaymentInfo,
|
|
340
340
|
getFeePurse() {
|
|
@@ -389,7 +389,7 @@ export const ammPoolRunDeposits = issuers => {
|
|
|
389
389
|
/**
|
|
390
390
|
* @param {Payment} bootstrapPayment
|
|
391
391
|
* @param {Record<string, bigint>} balances
|
|
392
|
-
* @param {{ issuer: ERef<Issuer
|
|
392
|
+
* @param {{ issuer: ERef<Issuer>, brand: Brand }} central
|
|
393
393
|
*/
|
|
394
394
|
export const splitAllCentralPayments = async (
|
|
395
395
|
bootstrapPayment,
|
|
@@ -421,9 +421,9 @@ export const splitAllCentralPayments = async (
|
|
|
421
421
|
|
|
422
422
|
/**
|
|
423
423
|
* @param {string} issuerName
|
|
424
|
-
* @param {
|
|
425
|
-
* @param {Record<string, { issuer: ERef<Issuer
|
|
426
|
-
* @param {{ issuer: ERef<Issuer<'nat'
|
|
424
|
+
* @param {typeof AMMDemoState['ATOM']} record
|
|
425
|
+
* @param {Record<string, { issuer: ERef<Issuer>, brand: Brand }>} kits
|
|
426
|
+
* @param {{ issuer: ERef<Issuer<'nat'>>, brand: Brand<'nat'> }} central
|
|
427
427
|
*/
|
|
428
428
|
export const poolRates = (issuerName, record, kits, central) => {
|
|
429
429
|
/** @param {bigint} n */
|
|
@@ -462,7 +462,7 @@ export const poolRates = (issuerName, record, kits, central) => {
|
|
|
462
462
|
};
|
|
463
463
|
|
|
464
464
|
/**
|
|
465
|
-
* @param {import('@agoric/inter-protocol/src/proposals/econ-behaviors.js').EconomyBootstrapPowers & {
|
|
466
|
-
*
|
|
467
|
-
*
|
|
465
|
+
* @param { import('@agoric/inter-protocol/src/proposals/econ-behaviors.js').EconomyBootstrapPowers & {
|
|
466
|
+
* consume: { mints }
|
|
467
|
+
* }} powers
|
|
468
468
|
*/
|
package/src/core/lib-boot.d.ts
CHANGED
|
@@ -75,20 +75,19 @@ export function makeBootstrap(vatPowers: import("@agoric/swingset-vat").Terminat
|
|
|
75
75
|
snapshotStore: <K, V>(store: MapStore<K, V>) => [K, V][];
|
|
76
76
|
}>;
|
|
77
77
|
export type BootstrapManifestPermit = string | true | {
|
|
78
|
-
[key: string]: BootstrapManifestPermit
|
|
78
|
+
[key: string]: BootstrapManifestPermit;
|
|
79
79
|
};
|
|
80
80
|
/**
|
|
81
|
-
* A manifest is an object in which each key is the name of a function to run
|
|
82
|
-
* bootstrap and the corresponding value is a "permit" describing an
|
|
83
|
-
* of allPowers that should be provided as its first argument
|
|
84
|
-
* packages/vats/src/core/boot.js).
|
|
81
|
+
* A manifest is an object in which each key is the name of a function to run
|
|
82
|
+
* at bootstrap and the corresponding value is a "permit" describing an
|
|
83
|
+
* attenuation of allPowers that should be provided as its first argument
|
|
84
|
+
* (cf. packages/vats/src/core/boot.js).
|
|
85
85
|
*
|
|
86
86
|
* A permit is either
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
* themselves (recursive) permits.
|
|
87
|
+
* - `true` or a string (both meaning no attenuation, with a string serving
|
|
88
|
+
* as a grouping label for convenience and diagram generation), or
|
|
89
|
+
* - an object whose keys identify properties to preserve and whose values
|
|
90
|
+
* are themselves (recursive) permits.
|
|
92
91
|
*/
|
|
93
92
|
export type BootstrapManifest = Record<string, BootstrapManifestPermit>;
|
|
94
93
|
export type BootBehavior = (powers: any, config?: any) => Promise<void>;
|
|
@@ -96,5 +95,4 @@ export type ModuleNamespace = Record<string, unknown>;
|
|
|
96
95
|
export type BootModules = {
|
|
97
96
|
utils: typeof import('./utils.js');
|
|
98
97
|
} & Record<string, Record<string, any>>;
|
|
99
|
-
export type BootstrapRootObject = Awaited<ReturnType<typeof makeBootstrap>>;
|
|
100
98
|
//# sourceMappingURL=lib-boot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib-boot.d.ts","sourceRoot":"","sources":["lib-boot.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lib-boot.d.ts","sourceRoot":"","sources":["lib-boot.js"],"names":[],"mappings":"AAqDO;OATC,MAAM;0BACQ,IAAI;kBAEf,OAAO,MAAM,EAAE,OAAO,CAAC,gBACvB,iBAAiB,aACjB,OAAO,MAAM,EAAE,YAAY,CAAC,WAC5B,WAAW;IA8GlB;;;;;OAKG;sBAFQ,YAAY,WACZ,WAAW,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;IAwDrC;;;OAGG;;;IA/DH;;;;;OAKG;sBAFQ,YAAY,WACZ,WAAW,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;IAwDrC;;;OAGG;;GAIN;;;;;;;;;;;;;;;;gCAtMY,OAAO,MAAM,EAAE,uBAAuB,CAAC;0DAKZ,QAAQ,IAAI,CAAC;8BACxC,OAAO,MAAM,EAAE,OAAO,CAAC;0BACvB;IAAE,KAAK,EAAE,cAAc,YAAY,CAAC,CAAA;CAAE,GAAG,OAAO,MAAM,EAAE,OAAO,MAAM,EAAE,GAAG,CAAC,CAAC"}
|
package/src/core/lib-boot.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import { E, Far } from '@endo/far';
|
|
3
3
|
import { makePassableEncoding } from '@agoric/swingset-vat/tools/passableEncoding.js';
|
|
4
|
-
import {
|
|
4
|
+
import { heapZone } from '@agoric/zone';
|
|
5
5
|
import {
|
|
6
6
|
makeVatSpace,
|
|
7
7
|
makeWellKnownSpaces,
|
|
@@ -12,45 +12,38 @@ import { makePromiseSpace } from './promise-space.js';
|
|
|
12
12
|
const { Fail, quote: q } = assert;
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* @typedef {|
|
|
16
|
-
* | string
|
|
17
|
-
* | { [key: string]: BootstrapManifestPermit | undefined }} BootstrapManifestPermit
|
|
15
|
+
* @typedef {true | string | { [key: string]: BootstrapManifestPermit }} BootstrapManifestPermit
|
|
18
16
|
*/
|
|
19
17
|
|
|
20
18
|
/**
|
|
21
|
-
* A manifest is an object in which each key is the name of a function to run
|
|
22
|
-
* bootstrap and the corresponding value is a "permit" describing an
|
|
23
|
-
* of allPowers that should be provided as its first argument
|
|
24
|
-
* packages/vats/src/core/boot.js).
|
|
19
|
+
* A manifest is an object in which each key is the name of a function to run
|
|
20
|
+
* at bootstrap and the corresponding value is a "permit" describing an
|
|
21
|
+
* attenuation of allPowers that should be provided as its first argument
|
|
22
|
+
* (cf. packages/vats/src/core/boot.js).
|
|
25
23
|
*
|
|
26
24
|
* A permit is either
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* themselves (recursive) permits.
|
|
25
|
+
* - `true` or a string (both meaning no attenuation, with a string serving
|
|
26
|
+
* as a grouping label for convenience and diagram generation), or
|
|
27
|
+
* - an object whose keys identify properties to preserve and whose values
|
|
28
|
+
* are themselves (recursive) permits.
|
|
32
29
|
*
|
|
33
30
|
* @typedef {Record<string, BootstrapManifestPermit>} BootstrapManifest
|
|
31
|
+
*
|
|
34
32
|
*/
|
|
35
33
|
|
|
36
34
|
/**
|
|
37
|
-
* @typedef {(powers:
|
|
38
|
-
*
|
|
35
|
+
* @typedef {(powers: *, config?: *) => Promise<void>} BootBehavior
|
|
39
36
|
* @typedef {Record<string, unknown>} ModuleNamespace
|
|
40
|
-
*
|
|
41
|
-
* @typedef {{ utils: typeof import('./utils.js') } & Record<
|
|
42
|
-
* string,
|
|
43
|
-
* Record<string, any>
|
|
44
|
-
* >} BootModules
|
|
37
|
+
* @typedef {{ utils: typeof import('./utils.js') } & Record<string, Record<string, any>>} BootModules
|
|
45
38
|
*/
|
|
46
39
|
|
|
47
40
|
/** @type {<X>(a: X[], b: X[]) => X[]} */
|
|
48
41
|
const setDiff = (a, b) => a.filter(x => !b.includes(x));
|
|
49
42
|
|
|
50
43
|
/**
|
|
51
|
-
* @param {
|
|
52
|
-
* D: DProxy
|
|
53
|
-
* logger: (msg) => void
|
|
44
|
+
* @param {VatPowers & {
|
|
45
|
+
* D: DProxy,
|
|
46
|
+
* logger: (msg) => void,
|
|
54
47
|
* }} vatPowers
|
|
55
48
|
* @param {Record<string, unknown>} vatParameters
|
|
56
49
|
* @param {BootstrapManifest} bootManifest
|
|
@@ -64,7 +57,7 @@ export const makeBootstrap = (
|
|
|
64
57
|
bootManifest,
|
|
65
58
|
behaviors,
|
|
66
59
|
modules,
|
|
67
|
-
zone =
|
|
60
|
+
zone = heapZone,
|
|
68
61
|
) => {
|
|
69
62
|
const { keys } = Object;
|
|
70
63
|
const extra = setDiff(keys(bootManifest), keys(behaviors));
|
|
@@ -100,8 +93,9 @@ export const makeBootstrap = (
|
|
|
100
93
|
);
|
|
101
94
|
|
|
102
95
|
const namesVat = namedVat.consume.agoricNames;
|
|
103
|
-
const { nameHub: agoricNames, nameAdmin: agoricNamesAdmin } =
|
|
104
|
-
|
|
96
|
+
const { nameHub: agoricNames, nameAdmin: agoricNamesAdmin } = await E(
|
|
97
|
+
namesVat,
|
|
98
|
+
).getNameHubKit();
|
|
105
99
|
const spaces = await makeWellKnownSpaces(agoricNamesAdmin, log);
|
|
106
100
|
produce.agoricNames.resolve(agoricNames);
|
|
107
101
|
produce.agoricNamesAdmin.resolve(agoricNamesAdmin);
|
|
@@ -153,11 +147,7 @@ export const makeBootstrap = (
|
|
|
153
147
|
},
|
|
154
148
|
],
|
|
155
149
|
};
|
|
156
|
-
/**
|
|
157
|
-
* @type {{
|
|
158
|
-
* coreEvalBridgeHandler: Promise<import('../types.js').BridgeHandler>;
|
|
159
|
-
* }}
|
|
160
|
-
*/
|
|
150
|
+
/** @type {{coreEvalBridgeHandler: Promise<import('../types.js').BridgeHandler>}} */
|
|
161
151
|
// @ts-expect-error cast
|
|
162
152
|
const { coreEvalBridgeHandler } = consume;
|
|
163
153
|
await E(coreEvalBridgeHandler).fromBridge(coreEvalMessage);
|
|
@@ -223,6 +213,7 @@ export const makeBootstrap = (
|
|
|
223
213
|
awaitVatObject: async ({ presence, path = [], rawOutput = false }) => {
|
|
224
214
|
let value = await decodePassable(presence);
|
|
225
215
|
for (const key of path) {
|
|
216
|
+
// eslint-disable-next-line no-await-in-loop
|
|
226
217
|
value = await value[key];
|
|
227
218
|
}
|
|
228
219
|
return rawOutput ? value : encodePassable(value);
|
|
@@ -235,4 +226,3 @@ export const makeBootstrap = (
|
|
|
235
226
|
//#endregion
|
|
236
227
|
});
|
|
237
228
|
};
|
|
238
|
-
/** @typedef {Awaited<ReturnType<typeof makeBootstrap>>} BootstrapRootObject */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise-space.d.ts","sourceRoot":"","sources":["promise-space.js"],"names":[],"mappings":"AAqBO,
|
|
1
|
+
{"version":3,"file":"promise-space.d.ts","sourceRoot":"","sources":["promise-space.js"],"names":[],"mappings":"AAqBO,kCAHK,OAAO,QAAQ,GAAG,GACjB,iBAAiB,CAS1B;AAUG,sCAJI,SAAS,MAAM,EAAE,QAAQ,CAAC;;;gBAExB,iBAAiB,CAkC7B;AAcM;;;;;;;;;;;WAJsC,SAAS,MAAM,EAAE,GAAG,CAAC;4CA2GjE;;oBAnLoB,MAAM,KAAK,IAAI;qBACd,MAAM,SAAS,KAAK,OAAO,CAAC,KAAK,IAAI;qBACrC,MAAM,aAAa,IAAI,MAAM,CAAC,KAAK,IAAI;mBACzC,MAAM,KAAK,IAAI"}
|
|
@@ -6,17 +6,17 @@ import { makePromiseKit } from '@endo/promise-kit';
|
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @typedef {{
|
|
9
|
-
* onAddKey: (key: string) => void
|
|
10
|
-
* onResolve: (key: string, value: ERef<unknown>) => void
|
|
11
|
-
* onSettled: (key: string, remaining: Set<string>) => void
|
|
12
|
-
* onReset: (key: string) => void
|
|
9
|
+
* onAddKey: (key: string) => void,
|
|
10
|
+
* onResolve: (key: string, value: ERef<unknown>) => void,
|
|
11
|
+
* onSettled: (key: string, remaining: Set<string>) => void,
|
|
12
|
+
* onReset: (key: string) => void,
|
|
13
13
|
* }} PromiseSpaceHooks
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
const noop = harden(() => {});
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
* @param {typeof console.log} log
|
|
19
|
+
* @param { typeof console.log } log
|
|
20
20
|
* @returns {PromiseSpaceHooks}
|
|
21
21
|
*/
|
|
22
22
|
export const makeLogHooks = log =>
|
|
@@ -29,11 +29,11 @@ export const makeLogHooks = log =>
|
|
|
29
29
|
});
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
|
-
* Note: caller is responsible for synchronization
|
|
33
|
-
* with a promise.
|
|
32
|
+
* Note: caller is responsible for synchronization
|
|
33
|
+
* in case of onResolve() called with a promise.
|
|
34
34
|
*
|
|
35
35
|
* @param {MapStore<string, Passable>} store
|
|
36
|
-
* @param {typeof console.log} [log]
|
|
36
|
+
* @param { typeof console.log } [log]
|
|
37
37
|
* @returns {PromiseSpaceHooks}
|
|
38
38
|
*/
|
|
39
39
|
export const makeStoreHooks = (store, log = noop) => {
|
|
@@ -77,11 +77,9 @@ export const makeStoreHooks = (store, log = noop) => {
|
|
|
77
77
|
* Note: repeated resolve()s without an intervening reset() are noops.
|
|
78
78
|
*
|
|
79
79
|
* @template {Record<string, unknown>} [T=Record<string, unknown>]
|
|
80
|
-
* @param {
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
* ))
|
|
84
|
-
* | typeof console.log} [optsOrLog]
|
|
80
|
+
* @param {{ log?: typeof console.log } & (
|
|
81
|
+
* { hooks?: PromiseSpaceHooks } | { store: MapStore<string, any> }
|
|
82
|
+
* ) | (typeof console.log)} [optsOrLog]
|
|
85
83
|
* @returns {PromiseSpaceOf<T>}
|
|
86
84
|
*/
|
|
87
85
|
export const makePromiseSpace = (optsOrLog = {}) => {
|
|
@@ -93,7 +91,9 @@ export const makePromiseSpace = (optsOrLog = {}) => {
|
|
|
93
91
|
: opts.hooks || makeLogHooks(log);
|
|
94
92
|
const { onAddKey, onSettled, onResolve, onReset } = hooks;
|
|
95
93
|
|
|
96
|
-
/**
|
|
94
|
+
/**
|
|
95
|
+
* @typedef {{ pk: PromiseRecord<any>, isSettling: boolean }} PromiseState
|
|
96
|
+
*/
|
|
97
97
|
/** @type {Map<string, PromiseState>} */
|
|
98
98
|
const nameToState = new Map();
|
|
99
99
|
/** @type {Set<string>} */
|
|
@@ -3,5 +3,5 @@ export function installSimEgress({ vatParameters: { argv }, vats: { vattp, comms
|
|
|
3
3
|
export function grantRunBehaviors({ runBehaviors, consume: { client }, }: BootstrapPowers): Promise<void>;
|
|
4
4
|
/** @type {import('./lib-boot').BootstrapManifest} */
|
|
5
5
|
export const SIM_CHAIN_BOOTSTRAP_PERMITS: import('./lib-boot').BootstrapManifest;
|
|
6
|
-
import { connectFaucet } from
|
|
6
|
+
import { connectFaucet } from "./demoIssuers.js";
|
|
7
7
|
//# sourceMappingURL=sim-behaviors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-behaviors.d.ts","sourceRoot":"","sources":["sim-behaviors.js"],"names":[],"mappings":";AAOO,mHADK,eAAe,iBAoB1B;AAIM,0EADK,eAAe,iBAS1B;AAGD,qDAAqD;AACrD,0CADW,OAAO,YAAY,EAAE,iBAAiB,CA8B/C
|
|
1
|
+
{"version":3,"file":"sim-behaviors.d.ts","sourceRoot":"","sources":["sim-behaviors.js"],"names":[],"mappings":";AAOO,mHADK,eAAe,iBAoB1B;AAIM,0EADK,eAAe,iBAS1B;AAGD,qDAAqD;AACrD,0CADW,OAAO,YAAY,EAAE,iBAAiB,CA8B/C"}
|