@agoric/vats 0.17.0-u23.0 → 0.17.0-u23.1
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 +4 -0
- package/index.d.ts +6 -0
- package/index.d.ts.map +1 -0
- package/package.json +14 -14
- package/source-spec-registry.d.ts +115 -0
- package/source-spec-registry.d.ts.map +1 -0
- package/src/bridge-target.d.ts +208 -0
- package/src/bridge-target.d.ts.map +1 -0
- package/src/bridge.d.ts +23 -0
- package/src/bridge.d.ts.map +1 -0
- package/src/centralSupply.d.ts +16 -0
- package/src/centralSupply.d.ts.map +1 -0
- package/src/core/basic-behaviors.d.ts +49 -0
- package/src/core/basic-behaviors.d.ts.map +1 -0
- package/src/core/boot-chain.d.ts +177 -0
- package/src/core/boot-chain.d.ts.map +1 -0
- package/src/core/boot-sim.d.ts +26 -0
- package/src/core/boot-sim.d.ts.map +1 -0
- package/src/core/boot-solo.d.ts +25 -0
- package/src/core/boot-solo.d.ts.map +1 -0
- package/src/core/chain-behaviors.d.ts +31 -0
- package/src/core/chain-behaviors.d.ts.map +1 -0
- package/src/core/client-behaviors.d.ts +15 -0
- package/src/core/client-behaviors.d.ts.map +1 -0
- package/src/core/demoIssuers.d.ts +90 -0
- package/src/core/demoIssuers.d.ts.map +1 -0
- package/src/core/lib-boot.d.ts +74 -0
- package/src/core/lib-boot.d.ts.map +1 -0
- package/src/core/promise-space.d.ts +20 -0
- package/src/core/promise-space.d.ts.map +1 -0
- package/src/core/sim-behaviors.d.ts +9 -0
- package/src/core/sim-behaviors.d.ts.map +1 -0
- package/src/core/startWalletFactory.d.ts +148 -0
- package/src/core/startWalletFactory.d.ts.map +1 -0
- package/src/core/types.d.ts +327 -0
- package/src/core/types.d.ts.map +1 -0
- package/src/core/utils.d.ts +115 -0
- package/src/core/utils.d.ts.map +1 -0
- package/src/crc.d.ts +46 -0
- package/src/crc.d.ts.map +1 -0
- package/src/ibc.d.ts +32 -0
- package/src/ibc.d.ts.map +1 -0
- package/src/lib-board.d.ts +137 -0
- package/src/lib-board.d.ts.map +1 -0
- package/src/localchain.d.ts +307 -0
- package/src/localchain.d.ts.map +1 -0
- package/src/mintHolder.d.ts +20 -0
- package/src/mintHolder.d.ts.map +1 -0
- package/src/nameHub.d.ts +37 -0
- package/src/nameHub.d.ts.map +1 -0
- package/src/priceAuthorityRegistry.d.ts +24 -0
- package/src/priceAuthorityRegistry.d.ts.map +1 -0
- package/src/proposals/kread-proposal.d.ts +16 -0
- package/src/proposals/kread-proposal.d.ts.map +1 -0
- package/src/proposals/localchain-hook-msg-send.d.ts +32 -0
- package/src/proposals/localchain-hook-msg-send.d.ts.map +1 -0
- package/src/proposals/localchain-proposal.d.ts +67 -0
- package/src/proposals/localchain-proposal.d.ts.map +1 -0
- package/src/proposals/localchain-test.d.ts +31 -0
- package/src/proposals/localchain-test.d.ts.map +1 -0
- package/src/proposals/namesByAddress-fix-proposal.d.ts +24 -0
- package/src/proposals/namesByAddress-fix-proposal.d.ts.map +1 -0
- package/src/proposals/network-proposal.d.ts +76 -0
- package/src/proposals/network-proposal.d.ts.map +1 -0
- package/src/proposals/probeZcfBundle.d.ts +26 -0
- package/src/proposals/probeZcfBundle.d.ts.map +1 -0
- package/src/proposals/restart-vats-proposal.d.ts +29 -0
- package/src/proposals/restart-vats-proposal.d.ts.map +1 -0
- package/src/proposals/terminate-governed-instance.d.ts +26 -0
- package/src/proposals/terminate-governed-instance.d.ts.map +1 -0
- package/src/proposals/testUpgradedBoard.d.ts +26 -0
- package/src/proposals/testUpgradedBoard.d.ts.map +1 -0
- package/src/proposals/transfer-proposal.d.ts +42 -0
- package/src/proposals/transfer-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-agoricNames-proposal.d.ts +32 -0
- package/src/proposals/upgrade-agoricNames-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-asset-reserve-proposal.d.ts +40 -0
- package/src/proposals/upgrade-asset-reserve-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-bank-proposal.d.ts +32 -0
- package/src/proposals/upgrade-bank-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-board-proposal.d.ts +32 -0
- package/src/proposals/upgrade-board-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-mintHolder-proposal.d.ts +29 -0
- package/src/proposals/upgrade-mintHolder-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-paRegistry-proposal.d.ts +31 -0
- package/src/proposals/upgrade-paRegistry-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-provisionPool-proposal.d.ts +38 -0
- package/src/proposals/upgrade-provisionPool-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-provisionPool-to-BLD-proposal.d.ts +43 -0
- package/src/proposals/upgrade-provisionPool-to-BLD-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-psm-proposal.d.ts +35 -0
- package/src/proposals/upgrade-psm-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-vats-generic-proposal.d.ts +79 -0
- package/src/proposals/upgrade-vats-generic-proposal.d.ts.map +1 -0
- package/src/proposals/upgrade-zoe-proposal.d.ts +32 -0
- package/src/proposals/upgrade-zoe-proposal.d.ts.map +1 -0
- package/src/proposals/vtransfer-echoer.d.ts +26 -0
- package/src/proposals/vtransfer-echoer.d.ts.map +1 -0
- package/src/proposals/zcf-only-proposal.d.ts +35 -0
- package/src/proposals/zcf-only-proposal.d.ts.map +1 -0
- package/src/proposals/zcf-proposal.d.ts +35 -0
- package/src/proposals/zcf-proposal.d.ts.map +1 -0
- package/src/repl.d.ts +23 -0
- package/src/repl.d.ts.map +1 -0
- package/src/transfer.d.ts +94 -0
- package/src/transfer.d.ts.map +1 -0
- package/src/types.d.ts +297 -0
- package/src/types.d.ts.map +1 -0
- package/src/vat-agoricNames.d.ts +30 -0
- package/src/vat-agoricNames.d.ts.map +1 -0
- package/src/vat-bank.d.ts +304 -0
- package/src/vat-bank.d.ts.map +1 -0
- package/src/vat-board.d.ts +53 -0
- package/src/vat-board.d.ts.map +1 -0
- package/src/vat-bridge.d.ts +29 -0
- package/src/vat-bridge.d.ts.map +1 -0
- package/src/vat-ibc.d.ts +19 -0
- package/src/vat-ibc.d.ts.map +1 -0
- package/src/vat-localchain.d.ts +74 -0
- package/src/vat-localchain.d.ts.map +1 -0
- package/src/vat-mints.d.ts +70 -0
- package/src/vat-mints.d.ts.map +1 -0
- package/src/vat-network.d.ts +71 -0
- package/src/vat-network.d.ts.map +1 -0
- package/src/vat-priceAuthority.d.ts +21 -0
- package/src/vat-priceAuthority.d.ts.map +1 -0
- package/src/vat-provisioning.d.ts +33 -0
- package/src/vat-provisioning.d.ts.map +1 -0
- package/src/vat-transfer.d.ts +84 -0
- package/src/vat-transfer.d.ts.map +1 -0
- package/src/vat-zoe.d.ts +15 -0
- package/src/vat-zoe.d.ts.map +1 -0
- package/src/virtual-purse.d.ts +82 -0
- package/src/virtual-purse.d.ts.map +1 -0
- package/src/walletFlags.d.ts +11 -0
- package/src/walletFlags.d.ts.map +1 -0
- package/tools/bank-utils.d.ts +29 -0
- package/tools/bank-utils.d.ts.map +1 -0
- package/tools/board-utils.d.ts +47 -0
- package/tools/board-utils.d.ts.map +1 -0
- package/tools/boot-test-utils.d.ts +83 -0
- package/tools/boot-test-utils.d.ts.map +1 -0
- package/tools/fake-bridge.d.ts +29 -0
- package/tools/fake-bridge.d.ts.map +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.17.0-u23.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/vats@0.17.0-u23.0...@agoric/vats@0.17.0-u23.1) (2026-07-15)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @agoric/vats
|
|
9
|
+
|
|
6
10
|
## [0.17.0-u23.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/vats@0.15.1...@agoric/vats@0.17.0-u23.0) (2026-04-27)
|
|
7
11
|
|
|
8
12
|
### ⚠ BREAKING CHANGES
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./src/types-index.js";
|
|
2
|
+
export * from "./src/nameHub.js";
|
|
3
|
+
export * from "./src/bridge.js";
|
|
4
|
+
export { makePromiseSpace } from "./src/core/promise-space.js";
|
|
5
|
+
export { makeAgoricNamesAccess } from "./src/core/utils.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/vats",
|
|
3
|
-
"version": "0.17.0-u23.
|
|
3
|
+
"version": "0.17.0-u23.1",
|
|
4
4
|
"description": "Agoric's Vat library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -20,19 +20,19 @@
|
|
|
20
20
|
"author": "Agoric",
|
|
21
21
|
"license": "Apache-2.0",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@agoric/cosmic-proto": "0.6.0-u23.
|
|
24
|
-
"@agoric/ertp": "0.18.0-u23.
|
|
25
|
-
"@agoric/governance": "0.12.0-u23.
|
|
26
|
-
"@agoric/internal": "0.5.0-u23.
|
|
27
|
-
"@agoric/network": "0.3.0-u23.
|
|
28
|
-
"@agoric/notifier": "0.8.0-u23.
|
|
23
|
+
"@agoric/cosmic-proto": "0.6.0-u23.1",
|
|
24
|
+
"@agoric/ertp": "0.18.0-u23.1",
|
|
25
|
+
"@agoric/governance": "0.12.0-u23.1",
|
|
26
|
+
"@agoric/internal": "0.5.0-u23.1",
|
|
27
|
+
"@agoric/network": "0.3.0-u23.1",
|
|
28
|
+
"@agoric/notifier": "0.8.0-u23.1",
|
|
29
29
|
"@agoric/store": "0.11.0-u23.0",
|
|
30
|
-
"@agoric/swingset-vat": "0.34.0-u23.
|
|
30
|
+
"@agoric/swingset-vat": "0.34.0-u23.1",
|
|
31
31
|
"@agoric/time": "0.5.0-u23.0",
|
|
32
|
-
"@agoric/vat-data": "0.7.0-u23.
|
|
33
|
-
"@agoric/vow": "0.3.0-u23.
|
|
34
|
-
"@agoric/zoe": "0.28.0-u23.
|
|
35
|
-
"@agoric/zone": "0.4.0-u23.
|
|
32
|
+
"@agoric/vat-data": "0.7.0-u23.1",
|
|
33
|
+
"@agoric/vow": "0.3.0-u23.1",
|
|
34
|
+
"@agoric/zoe": "0.28.0-u23.1",
|
|
35
|
+
"@agoric/zone": "0.4.0-u23.1",
|
|
36
36
|
"@endo/errors": "^1.2.13",
|
|
37
37
|
"@endo/far": "^1.1.14",
|
|
38
38
|
"@endo/import-bundle": "^1.5.2",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"jessie.js": "^0.3.4"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@agoric/swingset-liveslots": "0.12.0-u23.
|
|
48
|
+
"@agoric/swingset-liveslots": "0.12.0-u23.1",
|
|
49
49
|
"@endo/bundle-source": "^4.1.2",
|
|
50
50
|
"@endo/init": "^1.1.12",
|
|
51
51
|
"ava": "^6.4.1",
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"typeCoverage": {
|
|
78
78
|
"atLeast": 90.6
|
|
79
79
|
},
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "6a6343510742fef366aa7b4a31a862f9ef409656"
|
|
81
81
|
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
export namespace vatsSourceSpecRegistry {
|
|
2
|
+
namespace bootChain {
|
|
3
|
+
let packagePath: string;
|
|
4
|
+
let sourceSpec: string;
|
|
5
|
+
}
|
|
6
|
+
namespace bootSim {
|
|
7
|
+
let packagePath_1: string;
|
|
8
|
+
export { packagePath_1 as packagePath };
|
|
9
|
+
let sourceSpec_1: string;
|
|
10
|
+
export { sourceSpec_1 as sourceSpec };
|
|
11
|
+
}
|
|
12
|
+
namespace vatAgoricNames {
|
|
13
|
+
let packagePath_2: string;
|
|
14
|
+
export { packagePath_2 as packagePath };
|
|
15
|
+
let sourceSpec_2: string;
|
|
16
|
+
export { sourceSpec_2 as sourceSpec };
|
|
17
|
+
}
|
|
18
|
+
namespace vatBank {
|
|
19
|
+
let packagePath_3: string;
|
|
20
|
+
export { packagePath_3 as packagePath };
|
|
21
|
+
let sourceSpec_3: string;
|
|
22
|
+
export { sourceSpec_3 as sourceSpec };
|
|
23
|
+
}
|
|
24
|
+
namespace vatBoard {
|
|
25
|
+
let packagePath_4: string;
|
|
26
|
+
export { packagePath_4 as packagePath };
|
|
27
|
+
let sourceSpec_4: string;
|
|
28
|
+
export { sourceSpec_4 as sourceSpec };
|
|
29
|
+
}
|
|
30
|
+
namespace vatBridge {
|
|
31
|
+
let packagePath_5: string;
|
|
32
|
+
export { packagePath_5 as packagePath };
|
|
33
|
+
let sourceSpec_5: string;
|
|
34
|
+
export { sourceSpec_5 as sourceSpec };
|
|
35
|
+
}
|
|
36
|
+
namespace centralSupply {
|
|
37
|
+
export let bundleName: string;
|
|
38
|
+
let packagePath_6: string;
|
|
39
|
+
export { packagePath_6 as packagePath };
|
|
40
|
+
let sourceSpec_6: string;
|
|
41
|
+
export { sourceSpec_6 as sourceSpec };
|
|
42
|
+
}
|
|
43
|
+
namespace mintHolder {
|
|
44
|
+
let bundleName_1: string;
|
|
45
|
+
export { bundleName_1 as bundleName };
|
|
46
|
+
let packagePath_7: string;
|
|
47
|
+
export { packagePath_7 as packagePath };
|
|
48
|
+
let sourceSpec_7: string;
|
|
49
|
+
export { sourceSpec_7 as sourceSpec };
|
|
50
|
+
}
|
|
51
|
+
namespace vatMints {
|
|
52
|
+
let packagePath_8: string;
|
|
53
|
+
export { packagePath_8 as packagePath };
|
|
54
|
+
let sourceSpec_8: string;
|
|
55
|
+
export { sourceSpec_8 as sourceSpec };
|
|
56
|
+
}
|
|
57
|
+
namespace vatPriceAuthority {
|
|
58
|
+
let packagePath_9: string;
|
|
59
|
+
export { packagePath_9 as packagePath };
|
|
60
|
+
let sourceSpec_9: string;
|
|
61
|
+
export { sourceSpec_9 as sourceSpec };
|
|
62
|
+
}
|
|
63
|
+
namespace vatProvisioning {
|
|
64
|
+
let packagePath_10: string;
|
|
65
|
+
export { packagePath_10 as packagePath };
|
|
66
|
+
let sourceSpec_10: string;
|
|
67
|
+
export { sourceSpec_10 as sourceSpec };
|
|
68
|
+
}
|
|
69
|
+
namespace vatZoe {
|
|
70
|
+
let packagePath_11: string;
|
|
71
|
+
export { packagePath_11 as packagePath };
|
|
72
|
+
let sourceSpec_11: string;
|
|
73
|
+
export { sourceSpec_11 as sourceSpec };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export function getVatsSourceSpec(name: keyof typeof vatsSourceSpecRegistry): {
|
|
77
|
+
packagePath: string;
|
|
78
|
+
sourceSpec: string;
|
|
79
|
+
} | {
|
|
80
|
+
packagePath: string;
|
|
81
|
+
sourceSpec: string;
|
|
82
|
+
} | {
|
|
83
|
+
packagePath: string;
|
|
84
|
+
sourceSpec: string;
|
|
85
|
+
} | {
|
|
86
|
+
packagePath: string;
|
|
87
|
+
sourceSpec: string;
|
|
88
|
+
} | {
|
|
89
|
+
packagePath: string;
|
|
90
|
+
sourceSpec: string;
|
|
91
|
+
} | {
|
|
92
|
+
packagePath: string;
|
|
93
|
+
sourceSpec: string;
|
|
94
|
+
} | {
|
|
95
|
+
bundleName: string;
|
|
96
|
+
packagePath: string;
|
|
97
|
+
sourceSpec: string;
|
|
98
|
+
} | {
|
|
99
|
+
bundleName: string;
|
|
100
|
+
packagePath: string;
|
|
101
|
+
sourceSpec: string;
|
|
102
|
+
} | {
|
|
103
|
+
packagePath: string;
|
|
104
|
+
sourceSpec: string;
|
|
105
|
+
} | {
|
|
106
|
+
packagePath: string;
|
|
107
|
+
sourceSpec: string;
|
|
108
|
+
} | {
|
|
109
|
+
packagePath: string;
|
|
110
|
+
sourceSpec: string;
|
|
111
|
+
} | {
|
|
112
|
+
packagePath: string;
|
|
113
|
+
sourceSpec: string;
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=source-spec-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-spec-registry.d.ts","sourceRoot":"","sources":["source-spec-registry.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiEO,wCADK,MAAM,OAAO,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EACsB"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @import {Zone} from '@agoric/base-zone';
|
|
3
|
+
* @import {BridgeId} from '@agoric/internal';
|
|
4
|
+
* @import {ScopedBridgeManager} from './types.js';
|
|
5
|
+
* @import {MapStore} from '@agoric/store';
|
|
6
|
+
* @import {ERef} from '@agoric/vow';
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {any} MostlyPureData ideally should be PureData, but that type is
|
|
10
|
+
* too restrictive to work out-of-the-box.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* @typedef {object} TargetApp an object representing the app that receives
|
|
14
|
+
* upcalls from the low-level TargetHost on the other side of a bridge
|
|
15
|
+
* @property {(obj: MostlyPureData) => Promise<MostlyPureData>} receiveUpcall
|
|
16
|
+
* receive data from the TargetHost, and return a data result
|
|
17
|
+
*/
|
|
18
|
+
export const TargetAppI: import("@endo/patterns").InterfaceGuard<{
|
|
19
|
+
receiveUpcall: import("@endo/patterns").MethodGuard;
|
|
20
|
+
}>;
|
|
21
|
+
/**
|
|
22
|
+
* @typedef {object} TargetHost an object representing the host that receives
|
|
23
|
+
* downcalls from the high-level TargetApp over a bridge
|
|
24
|
+
* @property {(obj: MostlyPureData) => Promise<MostlyPureData>} sendDowncall
|
|
25
|
+
* send data to the TargetHost, which returns a data result
|
|
26
|
+
*/
|
|
27
|
+
export const TargetHostI: import("@endo/patterns").InterfaceGuard<{
|
|
28
|
+
sendDowncall: import("@endo/patterns").MethodGuard;
|
|
29
|
+
}>;
|
|
30
|
+
/**
|
|
31
|
+
* @typedef {object} AppTransformer an object for replacing a TargetApp,
|
|
32
|
+
* generally with a wrapper that intercepts its inputs and/or results to
|
|
33
|
+
* ensure conformance with a protocol and/or interface (e.g., an active tap
|
|
34
|
+
* can encode results of the wrapped TargetApp into an acknowledgement
|
|
35
|
+
* message)
|
|
36
|
+
* @property {(
|
|
37
|
+
* app: ERef<TargetApp>,
|
|
38
|
+
* targetHost: ERef<TargetHost>,
|
|
39
|
+
* ...args: unknown[]
|
|
40
|
+
* ) => ERef<TargetApp>} wrapApp
|
|
41
|
+
*/
|
|
42
|
+
export const AppTransformerI: import("@endo/patterns").InterfaceGuard<{
|
|
43
|
+
wrapApp: import("@endo/patterns").MethodGuard;
|
|
44
|
+
}>;
|
|
45
|
+
/**
|
|
46
|
+
* @typedef {object} TargetRegistration is an ExoClass of its own, and each
|
|
47
|
+
* instance is an attenuation of a BridgeTargetKit `targetRegistry` facet that
|
|
48
|
+
* has access to internal state thereof but has been scoped down to a single
|
|
49
|
+
* target.
|
|
50
|
+
* @property {() => Promise<void>} revoke performs unregistration (and sends the
|
|
51
|
+
* corresponding "BRIDGE_TARGET_UNREGISTER" message to the targetHost).
|
|
52
|
+
* @property {(targetApp: ERef<TargetApp>) => Promise<void>} updateTargetApp
|
|
53
|
+
* replaces the app associated with the target (but with no corresponding
|
|
54
|
+
* message).
|
|
55
|
+
*/
|
|
56
|
+
export const TargetRegistrationI: import("@endo/patterns").InterfaceGuard<{
|
|
57
|
+
updateTargetApp: import("@endo/patterns").MethodGuard;
|
|
58
|
+
revoke: import("@endo/patterns").MethodGuard;
|
|
59
|
+
}>;
|
|
60
|
+
export function prepareTargetRegistration(zone: Zone): (target: string, registry: TargetRegistry, args: unknown[] | null) => import("@endo/exo").Guarded<{
|
|
61
|
+
/**
|
|
62
|
+
* Atomically point the registration at a different app.
|
|
63
|
+
*
|
|
64
|
+
* @param {TargetApp} app new app to handle messages for the target
|
|
65
|
+
*/
|
|
66
|
+
updateTargetApp(app: TargetApp): Promise<void>;
|
|
67
|
+
/** Atomically delete the registration. */
|
|
68
|
+
revoke(): Promise<void>;
|
|
69
|
+
}>;
|
|
70
|
+
export function prepareBridgeTargetKit(zone: Zone, makeTargetRegistration: ReturnType<typeof prepareTargetRegistration>): (manager: ScopedBridgeManager<BridgeId>, inboundEventType: string, appTransformer?: AppTransformer | undefined) => import("@endo/exo").GuardedKit<{
|
|
71
|
+
bridgeHandler: {
|
|
72
|
+
fromBridge(obj: any): Promise<any>;
|
|
73
|
+
};
|
|
74
|
+
targetHost: {
|
|
75
|
+
sendDowncall(obj: any): Promise<any>;
|
|
76
|
+
};
|
|
77
|
+
targetRegistry: {
|
|
78
|
+
/**
|
|
79
|
+
* Register an app to handle messages for a target.
|
|
80
|
+
*
|
|
81
|
+
* @param {string} target
|
|
82
|
+
* @param {TargetApp} app
|
|
83
|
+
* @param {unknown[]} [args]
|
|
84
|
+
* @returns {Promise<TargetRegistration>} power to set or delete the
|
|
85
|
+
* registration
|
|
86
|
+
*/
|
|
87
|
+
register(target: string, app: TargetApp, args?: unknown[]): Promise<TargetRegistration>;
|
|
88
|
+
/**
|
|
89
|
+
* Update the app that handles messages for a target.
|
|
90
|
+
*
|
|
91
|
+
* @param {string} target
|
|
92
|
+
* @param {TargetApp} app
|
|
93
|
+
* @param {unknown[]} [args]
|
|
94
|
+
* @returns {Promise<void>}
|
|
95
|
+
*/
|
|
96
|
+
reregister(target: string, app: TargetApp, args?: unknown[]): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Unregister the target, bypassing the attenuated `TargetRegistration`
|
|
99
|
+
* API.
|
|
100
|
+
*
|
|
101
|
+
* @param {string} target
|
|
102
|
+
* @returns {Promise<void>}
|
|
103
|
+
*/
|
|
104
|
+
unregister(target: string): Promise<void>;
|
|
105
|
+
};
|
|
106
|
+
}>;
|
|
107
|
+
export function prepareBridgeTargetModule(zone: Zone): {
|
|
108
|
+
makeBridgeTargetKit: (manager: ScopedBridgeManager<BridgeId>, inboundEventType: string, appTransformer?: AppTransformer | undefined) => import("@endo/exo").GuardedKit<{
|
|
109
|
+
bridgeHandler: {
|
|
110
|
+
fromBridge(obj: any): Promise<any>;
|
|
111
|
+
};
|
|
112
|
+
targetHost: {
|
|
113
|
+
sendDowncall(obj: any): Promise<any>;
|
|
114
|
+
};
|
|
115
|
+
targetRegistry: {
|
|
116
|
+
/**
|
|
117
|
+
* Register an app to handle messages for a target.
|
|
118
|
+
*
|
|
119
|
+
* @param {string} target
|
|
120
|
+
* @param {TargetApp} app
|
|
121
|
+
* @param {unknown[]} [args]
|
|
122
|
+
* @returns {Promise<TargetRegistration>} power to set or delete the
|
|
123
|
+
* registration
|
|
124
|
+
*/
|
|
125
|
+
register(target: string, app: TargetApp, args?: unknown[]): Promise<TargetRegistration>;
|
|
126
|
+
/**
|
|
127
|
+
* Update the app that handles messages for a target.
|
|
128
|
+
*
|
|
129
|
+
* @param {string} target
|
|
130
|
+
* @param {TargetApp} app
|
|
131
|
+
* @param {unknown[]} [args]
|
|
132
|
+
* @returns {Promise<void>}
|
|
133
|
+
*/
|
|
134
|
+
reregister(target: string, app: TargetApp, args?: unknown[]): Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* Unregister the target, bypassing the attenuated `TargetRegistration`
|
|
137
|
+
* API.
|
|
138
|
+
*
|
|
139
|
+
* @param {string} target
|
|
140
|
+
* @returns {Promise<void>}
|
|
141
|
+
*/
|
|
142
|
+
unregister(target: string): Promise<void>;
|
|
143
|
+
};
|
|
144
|
+
}>;
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* ideally should be PureData, but that type is
|
|
148
|
+
* too restrictive to work out-of-the-box.
|
|
149
|
+
*/
|
|
150
|
+
export type MostlyPureData = any;
|
|
151
|
+
/**
|
|
152
|
+
* an object representing the app that receives
|
|
153
|
+
* upcalls from the low-level TargetHost on the other side of a bridge
|
|
154
|
+
*/
|
|
155
|
+
export type TargetApp = {
|
|
156
|
+
/**
|
|
157
|
+
* receive data from the TargetHost, and return a data result
|
|
158
|
+
*/
|
|
159
|
+
receiveUpcall: (obj: MostlyPureData) => Promise<MostlyPureData>;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* an object representing the host that receives
|
|
163
|
+
* downcalls from the high-level TargetApp over a bridge
|
|
164
|
+
*/
|
|
165
|
+
export type TargetHost = {
|
|
166
|
+
/**
|
|
167
|
+
* send data to the TargetHost, which returns a data result
|
|
168
|
+
*/
|
|
169
|
+
sendDowncall: (obj: MostlyPureData) => Promise<MostlyPureData>;
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
* an object for replacing a TargetApp,
|
|
173
|
+
* generally with a wrapper that intercepts its inputs and/or results to
|
|
174
|
+
* ensure conformance with a protocol and/or interface (e.g., an active tap
|
|
175
|
+
* can encode results of the wrapped TargetApp into an acknowledgement
|
|
176
|
+
* message)
|
|
177
|
+
*/
|
|
178
|
+
export type AppTransformer = {
|
|
179
|
+
wrapApp: (app: ERef<TargetApp>, targetHost: ERef<TargetHost>, ...args: unknown[]) => ERef<TargetApp>;
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* is an ExoClass of its own, and each
|
|
183
|
+
* instance is an attenuation of a BridgeTargetKit `targetRegistry` facet that
|
|
184
|
+
* has access to internal state thereof but has been scoped down to a single
|
|
185
|
+
* target.
|
|
186
|
+
*/
|
|
187
|
+
export type TargetRegistration = {
|
|
188
|
+
/**
|
|
189
|
+
* performs unregistration (and sends the
|
|
190
|
+
* corresponding "BRIDGE_TARGET_UNREGISTER" message to the targetHost).
|
|
191
|
+
*/
|
|
192
|
+
revoke: () => Promise<void>;
|
|
193
|
+
/**
|
|
194
|
+
* replaces the app associated with the target (but with no corresponding
|
|
195
|
+
* message).
|
|
196
|
+
*/
|
|
197
|
+
updateTargetApp: (targetApp: ERef<TargetApp>) => Promise<void>;
|
|
198
|
+
};
|
|
199
|
+
export type TargetRegistry = {
|
|
200
|
+
register: (target: string, targetApp: ERef<TargetApp>, args?: unknown[]) => Promise<TargetRegistration>;
|
|
201
|
+
reregister: (target: string, targetApp: ERef<TargetApp>, args?: unknown[]) => Promise<void>;
|
|
202
|
+
unregister: (target: string) => Promise<void>;
|
|
203
|
+
};
|
|
204
|
+
import type { Zone } from '@agoric/base-zone';
|
|
205
|
+
import type { BridgeId } from '@agoric/internal';
|
|
206
|
+
import type { ScopedBridgeManager } from './types.js';
|
|
207
|
+
import type { ERef } from '@agoric/vow';
|
|
208
|
+
//# sourceMappingURL=bridge-target.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-target.d.ts","sourceRoot":"","sources":["bridge-target.js"],"names":[],"mappings":"AAMA;;;;;;GAMG;AAEH;;;GAGG;AAEH;;;;;GAKG;AAEH;;GAEG;AAEH;;;;;GAKG;AAEH;;GAEG;AAEH;;;;;;;;;;;GAWG;AAEH;;GAOG;AAEH;;;;;;;;;;GAUG;AAEH;;;GAGG;AA4BI,gDADK,IAAI;IAiBV;;;;OAIG;yBADQ,SAAS;IAapB,0CAA0C;;GAW7C;AAyBI,6CAHI,IAAI,0BACJ,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,IAAI;;;;;;;;;YA7FR;;;;;;;;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,KAAK,SAAS,CAAC,EACpB,UAAU,EAAE,KAAK,UAAU,CAAC,EAChC,GAAO,IAAI,EAAE,OAAO,EAAE,KACf,KAAK,SAAS,CAAC;;;;;;;;;;;;;YAiBT,MAAM,OAAO,CAAC,IAAI,CAAC;;;;;qBAEnB,CAAC,SAAS,EAAE,KAAK,SAAS,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;;;cAY7C,CACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,KAAK,SAAS,CAAC,EAC1B,IAAI,CAAC,EAAE,OAAO,EAAE,KACb,OAAO,CAAC,kBAAkB,CAAC;gBACrB,CACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,KAAK,SAAS,CAAC,EAC1B,IAAI,CAAC,EAAE,OAAO,EAAE,KACb,OAAO,CAAC,IAAI,CAAC;gBACP,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;;0BArFxB,mBAAmB;8BACf,kBAAkB;yCACP,YAAY;0BAE3B,aAAa"}
|
package/src/bridge.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function makeScopedBridge<BridgeId extends import("@agoric/internal").BridgeId>(bridgeManager: ERef<BridgeManager>, bridgeIdValue: BridgeId, handler?: Remote<BridgeHandler>): Promise<ScopedBridgeManager<BridgeId>>;
|
|
2
|
+
export const BridgeHandlerI: import("@endo/patterns").InterfaceGuard<{
|
|
3
|
+
fromBridge: import("@endo/patterns").MethodGuard;
|
|
4
|
+
}>;
|
|
5
|
+
export const BridgeScopedManagerI: import("@endo/patterns").InterfaceGuard<{
|
|
6
|
+
fromBridge: import("@endo/patterns").MethodGuard;
|
|
7
|
+
toBridge: import("@endo/patterns").MethodGuard;
|
|
8
|
+
initHandler: import("@endo/patterns").MethodGuard;
|
|
9
|
+
setHandler: import("@endo/patterns").MethodGuard;
|
|
10
|
+
}>;
|
|
11
|
+
export const BridgeManagerI: import("@endo/patterns").InterfaceGuard<{
|
|
12
|
+
register: import("@endo/patterns").MethodGuard;
|
|
13
|
+
}>;
|
|
14
|
+
export function prepareBridgeManager(zone: Zone, D: DProxy): (bridgeDevice: BridgeDevice) => BridgeManager;
|
|
15
|
+
import type { BridgeManager } from './types.js';
|
|
16
|
+
import type { ERef } from '@agoric/vow';
|
|
17
|
+
import type { BridgeHandler } from './types.js';
|
|
18
|
+
import type { Remote } from '@agoric/internal';
|
|
19
|
+
import type { ScopedBridgeManager } from './types.js';
|
|
20
|
+
import type { Zone } from '@agoric/zone';
|
|
21
|
+
import type { DProxy } from '@agoric/swingset-vat';
|
|
22
|
+
import type { BridgeDevice } from '@agoric/swingset-vat/src/devices/bridge/device-bridge.js';
|
|
23
|
+
//# sourceMappingURL=bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["bridge.js"],"names":[],"mappings":"AA+BO,iCANiB,QAAQ,SAAnB,mCAAU,iBACZ,KAAK,aAAa,CAAC,iBACnB,QAAQ,YACR,OAAO,aAAa,CAAC,GACnB,OAAO,CAAC,oBAAoB,QAAQ,CAAC,CAAC,CAKhD;AAEH;;GAEG;AAEH;;;;;GAKG;AAEH;;GAIG;AAmEI,2CAHI,IAAI,KACJ,MAAM,kBAuFJ,YAAY,KACV,aAAa,CA2B3B;mCAjO+B,YAAY;0BAMrB,aAAa;mCAJJ,YAAY;4BADnB,kBAAkB;yCAEL,YAAY;0BAC3B,cAAc;4BAGZ,sBAAsB;kCAChB,0DAA0D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function start(zcf: ZCF<{
|
|
2
|
+
bootstrapPaymentValue: bigint;
|
|
3
|
+
}>, { feeMintAccess }: {
|
|
4
|
+
feeMintAccess: FeeMintAccess;
|
|
5
|
+
}): Promise<{
|
|
6
|
+
creatorFacet: {
|
|
7
|
+
getBootstrapPayment: () => import("@agoric/ertp").Payment<any, any>;
|
|
8
|
+
} & import("@endo/pass-style").RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, {
|
|
9
|
+
getBootstrapPayment: () => import("@agoric/ertp").Payment<any, any>;
|
|
10
|
+
}>;
|
|
11
|
+
}>;
|
|
12
|
+
export type CentralSupplyContract = ContractOf<typeof start>;
|
|
13
|
+
import type { ZCF } from '@agoric/zoe';
|
|
14
|
+
import type { FeeMintAccess } from '@agoric/zoe';
|
|
15
|
+
import type { ContractOf } from '@agoric/zoe/src/zoeService/utils.js';
|
|
16
|
+
//# sourceMappingURL=centralSupply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"centralSupply.d.ts","sourceRoot":"","sources":["centralSupply.js"],"names":[],"mappings":"AAkBO,2BANI,IAAI;IACV,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC,qBAEF;IAAmC,aAAa,EAAxC,aAAa;CACvB;;;;;;GAyBA;oCAGa,WAAW,OAAO,KAAK,CAAC;yBAzCyD,aAAa;mCAAb,aAAa;gCAC/E,qCAAqC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export function makeVatsFromBundles({ vats, devices, consume: { vatStore }, produce: { vatAdminSvc, loadVat, loadCriticalVat }, }: BootstrapPowers & {
|
|
2
|
+
produce: {
|
|
3
|
+
loadVat: Producer<VatLoader>;
|
|
4
|
+
loadCriticalVat: Producer<VatLoader>;
|
|
5
|
+
};
|
|
6
|
+
}): Promise<void>;
|
|
7
|
+
export function produceDiagnostics({ produce }: Pick<ChainBootstrapSpace, "produce">): Promise<void>;
|
|
8
|
+
export function produceStartUpgradable({ zone, consume: { diagnostics, zoe }, produce, }: BootstrapSpace & {
|
|
9
|
+
zone: Zone;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
export function produceStartGovernedUpgradable({ zone, consume: { chainTimerService, diagnostics, economicCommitteeCreatorFacet, zoe, }, produce, installation: { consume: { contractGovernor }, }, }: BootstrapSpace & {
|
|
12
|
+
zone: Zone;
|
|
13
|
+
consume: {
|
|
14
|
+
economicCommitteeCreatorFacet: EconomyBootstrapPowers["consume"]["economicCommitteeCreatorFacet"];
|
|
15
|
+
};
|
|
16
|
+
}): Promise<void>;
|
|
17
|
+
export function buildZoe({ consume: { vatAdminSvc, loadCriticalVat, client }, produce: { zoe, feeMintAccess }, brand: { produce: { Invitation: invitationBrand }, }, issuer: { produce: { Invitation: invitationIssuer }, }, }: BootstrapPowers): Promise<void>;
|
|
18
|
+
export function startPriceAuthorityRegistry({ consume: { loadCriticalVat, client }, produce, }: BootstrapPowers): Promise<void>;
|
|
19
|
+
export function makeOracleBrands({ namedVat: { consume: { agoricNames }, }, oracleBrand: { produce: { USD }, }, }: BootstrapPowers & NamedVatPowers): Promise<void>;
|
|
20
|
+
export function produceBoard({ consume: { client }, produce: { board: pBoard }, namedVat: { consume: { board: vatBoard }, }, }: BootstrapPowers & NamedVatPowers): Promise<void>;
|
|
21
|
+
export function makeBoard({ consume: { loadCriticalVat, client }, produce: { board: { resolve: resolveBoard }, }, }: BootstrapPowers): Promise<void>;
|
|
22
|
+
export function produceNamesByAddress({ consume: { agoricNames, provisioning: provisioningOptP, client }, produce: { namesByAddress, namesByAddressAdmin }, }: BootstrapPowers): Promise<void>;
|
|
23
|
+
export function makeAddressNameHubs({ consume: { agoricNames: agoricNamesP, client }, produce, }: BootstrapSpace): Promise<void>;
|
|
24
|
+
export function makeClientBanks({ consume: { namesByAddressAdmin, client, bankManager, walletFactoryStartResult, }, }: BootstrapSpace): Promise<void>;
|
|
25
|
+
export function installBootContracts({ consume: { vatAdminSvc, zoe }, installation: { produce: { centralSupply, mintHolder }, }, }: BootstrapSpace): Promise<void>;
|
|
26
|
+
export function mintInitialSupply({ vatParameters: { argv: { bootMsg }, }, consume: { feeMintAccess: feeMintAccessP, zoe }, produce: { initialSupply }, installation: { consume: { centralSupply }, }, }: BootstrapPowers & {
|
|
27
|
+
vatParameters: {
|
|
28
|
+
argv: {
|
|
29
|
+
bootMsg?: InitMsg;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
}): Promise<void>;
|
|
33
|
+
export function addBankAssets({ consume: { agoricNamesAdmin, initialSupply, bridgeManager: bridgeManagerP, loadCriticalVat, startUpgradable, zoe, }, produce: { bankManager, bldIssuerKit }, installation: { consume: { mintHolder }, }, issuer: { produce: produceIssuer }, brand: { produce: produceBrand }, }: BootstrapSpace): Promise<void>;
|
|
34
|
+
/** @type {BootstrapManifest} */
|
|
35
|
+
export const BASIC_BOOTSTRAP_PERMITS: BootstrapManifest;
|
|
36
|
+
export type VatStore = MapStore<string, CreateVatResults>;
|
|
37
|
+
import type { BootstrapPowers } from './types.js';
|
|
38
|
+
import type { VatLoader } from './types.js';
|
|
39
|
+
import type { Producer } from './types.js';
|
|
40
|
+
import type { ChainBootstrapSpace } from './types.js';
|
|
41
|
+
import type { BootstrapSpace } from './types.js';
|
|
42
|
+
import type { Zone } from '@agoric/zone';
|
|
43
|
+
import type { EconomyBootstrapPowers } from '@agoric/inter-protocol/src/proposals/econ-behaviors.js';
|
|
44
|
+
import type { NamedVatPowers } from './types.js';
|
|
45
|
+
import type { InitMsg } from '@agoric/internal/src/chain-utils.js';
|
|
46
|
+
import type { BootstrapManifest } from './lib-boot.js';
|
|
47
|
+
import type { CreateVatResults } from '@agoric/swingset-vat';
|
|
48
|
+
import type { MapStore } from '@agoric/store';
|
|
49
|
+
//# sourceMappingURL=basic-behaviors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basic-behaviors.d.ts","sourceRoot":"","sources":["basic-behaviors.js"],"names":[],"mappings":"AA+DO,mIATI,eAAe,GAAG;IACxB,OAAO,EAAE;QACP,OAAO,EAAE,SAAS,SAAS,CAAC,CAAC;QAC7B,eAAe,EAAE,SAAS,SAAS,CAAC,CAAC;KACtC,CAAC;CACH,iBA4DH;AAIM,gDADK,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,iBAW/C;AAGM,0FADK,cAAc,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,iBAiC1C;AAqGM,uMAPI,cAAc,GAAG;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE;QACP,6BAA6B,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC,+BAA+B,CAAC,CAAC;KACnG,CAAC;CACH,iBA6DH;AAMM,gOAFI,eAAe,iBAyBzB;AAMM,gGAFI,eAAe,iBAgBzB;AAQM,mHAFI,eAAe,GAAG,cAAc,iBAe1C;AAIM,gIADK,eAAe,GAAG,cAAc,iBAW3C;AAOM,qHAFI,eAAe,iBAWzB;AAcM,+JAFI,eAAe,iBAwBzB;AAQM,kGAFI,cAAc,iBA6BxB;AAIM,uHADK,cAAc,iBAkCzB;AAIM,oIADK,cAAc,iBAiBzB;AAaM,0MARI,eAAe,GAAG;IACxB,aAAa,EAAE;QACb,IAAI,EAAE;YACJ,OAAO,CAAC,EAAE,OAAO,CAAC;SACnB,CAAC;KACH,CAAC;CACH,iBAiCH;AAQM,kTAFI,cAAc,iBAsFxB;AAGD,gCAAgC;AAChC,sCADW,iBAAiB,CA0I1B;uBA9wBY,SAAS,MAAM,EAAE,gBAAgB,CAAC;qCAfd,YAAY;+BAElB,YAAY;8BADb,YAAY;yCAED,YAAY;oCACjB,YAAY;0BAjBtB,cAAc;4CAEI,wDAAwD;oCAkBhE,YAAY;6BAjBnB,qCAAqC;uCAE3B,eAAe;sCAgChB,sBAAsB;8BA3B9B,eAAe"}
|