@agoric/zoe 0.26.3-upgrade-16-dev-0df76a7.0 → 0.26.3-upgrade-17-dev-e67cd91.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/README.md +2 -3
- package/bundles/bundle-contractFacet-js-meta.json +536 -507
- package/bundles/bundle-contractFacet.js +1 -1
- package/package.json +30 -28
- package/src/cleanProposal.d.ts.map +1 -1
- package/src/cleanProposal.js +4 -2
- package/src/contractFacet/allocationMath.d.ts.map +1 -1
- package/src/contractFacet/allocationMath.js +1 -2
- package/src/contractFacet/exit.d.ts.map +1 -1
- package/src/contractFacet/exit.js +1 -2
- package/src/contractFacet/offerHandlerStorage.d.ts +4 -0
- package/src/contractFacet/offerHandlerStorage.d.ts.map +1 -1
- package/src/contractFacet/offerHandlerStorage.js +12 -0
- package/src/contractFacet/reallocate.d.ts.map +1 -1
- package/src/contractFacet/reallocate.js +1 -2
- package/src/contractFacet/rightsConservation.js +5 -5
- package/src/contractFacet/typeGuards.d.ts +8 -0
- package/src/contractFacet/typeGuards.d.ts.map +1 -0
- package/src/contractFacet/typeGuards.js +25 -0
- package/src/contractFacet/types-ambient.d.ts +4 -1
- package/src/contractFacet/vatRoot.d.ts.map +1 -1
- package/src/contractFacet/vatRoot.js +1 -2
- package/src/contractFacet/zcfMint.d.ts.map +1 -1
- package/src/contractFacet/zcfMint.js +3 -5
- package/src/contractFacet/zcfSeat.d.ts.map +1 -1
- package/src/contractFacet/zcfSeat.js +10 -9
- package/src/contractFacet/zcfZygote.d.ts.map +1 -1
- package/src/contractFacet/zcfZygote.js +8 -12
- package/src/contractSupport/bondingCurves.js +1 -1
- package/src/contractSupport/priceAuthority.d.ts.map +1 -1
- package/src/contractSupport/priceAuthority.js +2 -3
- package/src/contractSupport/priceAuthorityInitial.d.ts.map +1 -1
- package/src/contractSupport/priceAuthorityInitial.js +0 -1
- package/src/contractSupport/priceAuthorityTransform.js +1 -1
- package/src/contractSupport/priceQuote.d.ts.map +1 -1
- package/src/contractSupport/priceQuote.js +2 -3
- package/src/contractSupport/ratio.d.ts +12 -3
- package/src/contractSupport/ratio.d.ts.map +1 -1
- package/src/contractSupport/ratio.js +19 -5
- package/src/contractSupport/recorder.d.ts +11 -21
- package/src/contractSupport/recorder.d.ts.map +1 -1
- package/src/contractSupport/recorder.js +9 -21
- package/src/contractSupport/stateMachine.js +1 -1
- package/src/contractSupport/topics.d.ts +26 -0
- package/src/contractSupport/topics.d.ts.map +1 -1
- package/src/contractSupport/topics.js +24 -1
- package/src/contractSupport/zoeHelpers.d.ts.map +1 -1
- package/src/contractSupport/zoeHelpers.js +6 -9
- package/src/contracts/auction/assertBidSeat.js +1 -1
- package/src/contracts/auction/index.d.ts.map +1 -1
- package/src/contracts/auction/index.js +1 -3
- package/src/contracts/auction/secondPriceLogic.js +4 -4
- package/src/contracts/autoswap.d.ts.map +1 -1
- package/src/contracts/autoswap.js +4 -2
- package/src/contracts/callSpread/calculateShares.js +1 -1
- package/src/contracts/callSpread/payoffHandler.d.ts.map +1 -1
- package/src/contracts/callSpread/payoffHandler.js +0 -1
- package/src/contracts/callSpread/pricedCallSpread.d.ts.map +1 -1
- package/src/contracts/callSpread/pricedCallSpread.js +1 -3
- package/src/contracts/coveredCall-durable.d.ts.map +1 -1
- package/src/contracts/coveredCall-durable.js +1 -2
- package/src/contracts/coveredCall.d.ts.map +1 -1
- package/src/contracts/coveredCall.js +1 -2
- package/src/contracts/loan/borrow.js +1 -1
- package/src/contracts/loan/close.js +1 -1
- package/src/contracts/loan/scheduleLiquidation.d.ts.map +1 -1
- package/src/contracts/loan/scheduleLiquidation.js +0 -1
- package/src/contracts/loan/updateDebt.js +3 -3
- package/src/contracts/mintAndSellNFT.js +1 -1
- package/src/contracts/oracle.d.ts.map +1 -1
- package/src/contracts/oracle.js +1 -2
- package/src/contracts/otcDesk.js +1 -1
- package/src/contracts/priceAggregator.d.ts.map +1 -1
- package/src/contracts/priceAggregator.js +3 -4
- package/src/contracts/sellItems.d.ts.map +1 -1
- package/src/contracts/sellItems.js +1 -3
- package/src/contracts/valueVow.contract.d.ts +17 -0
- package/src/contracts/valueVow.contract.d.ts.map +1 -0
- package/src/contracts/valueVow.contract.js +63 -0
- package/src/instanceRecordStorage.d.ts.map +1 -1
- package/src/instanceRecordStorage.js +2 -5
- package/src/issuerRecord.js +1 -1
- package/src/issuerStorage.d.ts.map +1 -1
- package/src/issuerStorage.js +5 -4
- package/src/makeHandle.d.ts.map +1 -1
- package/src/makeHandle.js +1 -3
- package/src/typeGuards.d.ts +10 -8
- package/src/typeGuards.d.ts.map +1 -1
- package/src/typeGuards.js +7 -12
- package/src/zoeService/createZCFVat.js +1 -1
- package/src/zoeService/escrowStorage.js +3 -3
- package/src/zoeService/feeMint.d.ts.map +1 -1
- package/src/zoeService/feeMint.js +1 -2
- package/src/zoeService/installationStorage.d.ts.map +1 -1
- package/src/zoeService/installationStorage.js +1 -3
- package/src/zoeService/instanceAdminStorage.d.ts.map +1 -1
- package/src/zoeService/instanceAdminStorage.js +7 -9
- package/src/zoeService/internal-types.d.ts +1 -1
- package/src/zoeService/internal-types.d.ts.map +1 -1
- package/src/zoeService/internal-types.js +0 -1
- package/src/zoeService/invitationQueries.js +3 -3
- package/src/zoeService/makeInvitation.js +1 -1
- package/src/zoeService/offer/burnInvitation.d.ts.map +1 -1
- package/src/zoeService/offer/burnInvitation.js +3 -5
- package/src/zoeService/offer/offer.d.ts.map +1 -1
- package/src/zoeService/offer/offer.js +1 -2
- package/src/zoeService/originalZoeSeat.d.ts.map +1 -1
- package/src/zoeService/originalZoeSeat.js +1 -3
- package/src/zoeService/startInstance.d.ts.map +1 -1
- package/src/zoeService/startInstance.js +1 -9
- package/src/zoeService/utils.d.ts +3 -2
- package/src/zoeService/utils.test-d.ts +6 -5
- package/src/zoeService/zoe.d.ts +3 -2
- package/src/zoeService/zoe.d.ts.map +1 -1
- package/src/zoeService/zoe.js +54 -52
- package/src/zoeService/zoeSeat.d.ts.map +1 -1
- package/src/zoeService/zoeSeat.js +1 -3
- package/src/zoeService/zoeStorageManager.d.ts.map +1 -1
- package/src/zoeService/zoeStorageManager.js +0 -1
- package/tools/fakePriceAuthority.d.ts.map +1 -1
- package/tools/fakePriceAuthority.js +5 -4
- package/tools/fakeVatAdmin.d.ts.map +1 -1
- package/tools/fakeVatAdmin.js +10 -9
- package/tools/manualPriceAuthority.d.ts.map +1 -1
- package/tools/manualPriceAuthority.js +0 -1
- package/tools/manualTimer.d.ts.map +1 -1
- package/tools/manualTimer.js +1 -2
- package/tools/scriptedPriceAuthority.d.ts.map +1 -1
- package/tools/scriptedPriceAuthority.js +0 -1
- package/tools/setup-zoe.d.ts +3 -3
- package/tools/setup-zoe.d.ts.map +1 -1
- package/tools/setup-zoe.js +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/zoe",
|
|
3
|
-
"version": "0.26.3-upgrade-
|
|
3
|
+
"version": "0.26.3-upgrade-17-dev-e67cd91.0+e67cd91",
|
|
4
4
|
"description": "Zoe: the Smart Contract Framework for Offer Enforcement",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/zoeService/zoe.js",
|
|
@@ -43,37 +43,39 @@
|
|
|
43
43
|
},
|
|
44
44
|
"homepage": "https://github.com/Agoric/agoric-sdk#readme",
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@agoric/
|
|
47
|
-
"@agoric/
|
|
48
|
-
"@agoric/
|
|
49
|
-
"@agoric/
|
|
50
|
-
"@agoric/
|
|
51
|
-
"@agoric/
|
|
52
|
-
"@agoric/swingset-
|
|
53
|
-
"@agoric/
|
|
54
|
-
"@agoric/
|
|
55
|
-
"@agoric/
|
|
56
|
-
"@agoric/zone": "0.3
|
|
57
|
-
"@endo/bundle-source": "^3.
|
|
58
|
-
"@endo/captp": "^4.
|
|
59
|
-
"@endo/common": "^1.2.
|
|
60
|
-
"@endo/
|
|
61
|
-
"@endo/
|
|
62
|
-
"@endo/
|
|
63
|
-
"@endo/
|
|
64
|
-
"@endo/
|
|
65
|
-
"@endo/
|
|
66
|
-
"@endo/
|
|
67
|
-
"@endo/
|
|
46
|
+
"@agoric/base-zone": "0.1.1-upgrade-17-dev-e67cd91.0+e67cd91",
|
|
47
|
+
"@agoric/ertp": "0.16.3-upgrade-17-dev-e67cd91.0+e67cd91",
|
|
48
|
+
"@agoric/internal": "0.3.3-upgrade-17-dev-e67cd91.0+e67cd91",
|
|
49
|
+
"@agoric/notifier": "0.6.3-upgrade-17-dev-e67cd91.0+e67cd91",
|
|
50
|
+
"@agoric/store": "0.9.3-upgrade-17-dev-e67cd91.0+e67cd91",
|
|
51
|
+
"@agoric/swingset-liveslots": "0.10.3-upgrade-17-dev-e67cd91.0+e67cd91",
|
|
52
|
+
"@agoric/swingset-vat": "0.32.3-upgrade-17-dev-e67cd91.0+e67cd91",
|
|
53
|
+
"@agoric/time": "0.3.3-upgrade-17-dev-e67cd91.0+e67cd91",
|
|
54
|
+
"@agoric/vat-data": "0.5.3-upgrade-17-dev-e67cd91.0+e67cd91",
|
|
55
|
+
"@agoric/vow": "0.1.1-upgrade-17-dev-e67cd91.0+e67cd91",
|
|
56
|
+
"@agoric/zone": "0.2.3-upgrade-17-dev-e67cd91.0+e67cd91",
|
|
57
|
+
"@endo/bundle-source": "^3.4.0",
|
|
58
|
+
"@endo/captp": "^4.3.0",
|
|
59
|
+
"@endo/common": "^1.2.5",
|
|
60
|
+
"@endo/errors": "^1.2.5",
|
|
61
|
+
"@endo/eventual-send": "^1.2.5",
|
|
62
|
+
"@endo/exo": "^1.5.3",
|
|
63
|
+
"@endo/far": "^1.1.5",
|
|
64
|
+
"@endo/import-bundle": "^1.2.2",
|
|
65
|
+
"@endo/marshal": "^1.5.3",
|
|
66
|
+
"@endo/nat": "^5.0.10",
|
|
67
|
+
"@endo/pass-style": "^1.4.3",
|
|
68
|
+
"@endo/patterns": "^1.4.3",
|
|
69
|
+
"@endo/promise-kit": "^1.1.5",
|
|
68
70
|
"yargs-parser": "^21.1.1"
|
|
69
71
|
},
|
|
70
72
|
"devDependencies": {
|
|
71
|
-
"@agoric/kmarshal": "0.1.1-upgrade-
|
|
72
|
-
"@endo/init": "^1.1.
|
|
73
|
+
"@agoric/kmarshal": "0.1.1-upgrade-17-dev-e67cd91.0+e67cd91",
|
|
74
|
+
"@endo/init": "^1.1.4",
|
|
73
75
|
"ava": "^5.3.0",
|
|
74
76
|
"c8": "^9.1.0",
|
|
75
77
|
"import-meta-resolve": "^2.2.1",
|
|
76
|
-
"tsd": "^0.
|
|
78
|
+
"tsd": "^0.31.1"
|
|
77
79
|
},
|
|
78
80
|
"files": [
|
|
79
81
|
"bundles/",
|
|
@@ -139,7 +141,7 @@
|
|
|
139
141
|
"access": "public"
|
|
140
142
|
},
|
|
141
143
|
"typeCoverage": {
|
|
142
|
-
"atLeast":
|
|
144
|
+
"atLeast": 85.02
|
|
143
145
|
},
|
|
144
|
-
"gitHead": "
|
|
146
|
+
"gitHead": "e67cd918f33dafb1708bd4341f2a737b79fa574f"
|
|
145
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleanProposal.d.ts","sourceRoot":"","sources":["cleanProposal.js"],"names":[],"mappings":"AAWA,qCAAsC;AAa/B,sDAYN;AAMM,oDAHI;IAAC,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,GACnB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"cleanProposal.d.ts","sourceRoot":"","sources":["cleanProposal.js"],"names":[],"mappings":"AAWA,qCAAsC;AAa/B,sDAYN;AAMM,oDAHI;IAAC,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,GACnB,MAAM,EAAE,CAcpB;AAEM,mJAsBN;AAQM,sEAJI,OAAO,uBACP,GAAC,GACC,mBAAmB,CAa/B;AA4CM,wCAJI,QAAQ,uBACR,mBAAmB,GACjB,cAAc,CA6B1B"}
|
package/src/cleanProposal.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { assert, q, Fail } from '@
|
|
1
|
+
import { assert, q, Fail } from '@endo/errors';
|
|
2
2
|
import { AmountMath, getAssetKind } from '@agoric/ertp';
|
|
3
3
|
import { objectMap } from '@agoric/internal';
|
|
4
4
|
import { assertRecord } from '@endo/marshal';
|
|
@@ -47,7 +47,9 @@ export const cleanKeywords = uncleanKeywordRecord => {
|
|
|
47
47
|
|
|
48
48
|
// Assert all names are ascii identifiers starting with
|
|
49
49
|
// an upper case letter.
|
|
50
|
-
keywords
|
|
50
|
+
for (const keyword of keywords) {
|
|
51
|
+
assertKeywordName(keyword);
|
|
52
|
+
}
|
|
51
53
|
|
|
52
54
|
return /** @type {string[]} */ (keywords);
|
|
53
55
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allocationMath.d.ts","sourceRoot":"","sources":["allocationMath.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"allocationMath.d.ts","sourceRoot":"","sources":["allocationMath.js"],"names":[],"mappings":"AAiFO,4CAJI,UAAU,uBACV,mBAAmB,GACjB,mBAAmB,CAI/B;AAOM,mDAJI,UAAU,uBACV,mBAAmB,GACjB,mBAAmB,CAI/B;;;;iCApFU,MAAM,GAAG,SAAS,QAClB,MAAM,GAAG,SAAS,WAClB,OAAO,KACL,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["exit.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["exit.js"],"names":[],"mappings":"AAwBO,sGAwGN"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Fail, q } from '@endo/errors';
|
|
1
2
|
import { E } from '@endo/eventual-send';
|
|
2
3
|
import { prepareExoClass, provideDurableSetStore } from '@agoric/vat-data';
|
|
3
4
|
import { M, initEmpty } from '@agoric/store';
|
|
@@ -9,8 +10,6 @@ import {
|
|
|
9
10
|
isWaivedExitRule,
|
|
10
11
|
} from '../typeGuards.js';
|
|
11
12
|
|
|
12
|
-
const { Fail, quote: q } = assert;
|
|
13
|
-
|
|
14
13
|
const ExitObjectI = M.interface('ExitObject', { exit: M.call().returns() });
|
|
15
14
|
const WakerI = M.interface('Waker', {
|
|
16
15
|
wake: M.call(TimestampShape).returns(),
|
|
@@ -2,6 +2,10 @@ export function makeOfferHandlerStorage(zcfBaggage: any): {
|
|
|
2
2
|
storeOfferHandler: (offerHandler: any) => Handle<"Invitation">;
|
|
3
3
|
takeOfferHandler: (invitationHandle: InvitationHandle, details?: Details) => OfferHandler;
|
|
4
4
|
};
|
|
5
|
+
/**
|
|
6
|
+
* The following should work. But for some reason,
|
|
7
|
+
*/
|
|
8
|
+
export type Details = string | {};
|
|
5
9
|
export type PassableOfferHandler = RemotableBrand<any, any> & RemotableObject & OfferHandler;
|
|
6
10
|
import type { RemotableBrand } from '@endo/eventual-send';
|
|
7
11
|
import type { RemotableObject } from '@endo/pass-style';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offerHandlerStorage.d.ts","sourceRoot":"","sources":["offerHandlerStorage.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"offerHandlerStorage.d.ts","sourceRoot":"","sources":["offerHandlerStorage.js"],"names":[],"mappings":"AA6BO;;yCAgCwB,gBAAgB,YAAY,OAAO,KAAK,YAAY;EAsBlF;;;;sBAlEY,MAAM,GAAG,EAAE;mCASX,2BAAiB,eAAe,GAAG,YAAY;oCAL3B,qBAAqB;qCACpB,kBAAkB"}
|
|
@@ -6,6 +6,18 @@ import { canBeDurable, provideDurableWeakMapStore } from '@agoric/vat-data';
|
|
|
6
6
|
|
|
7
7
|
import { defineDurableHandle } from '../makeHandle.js';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* The following should work. But for some reason, @endo/errors does
|
|
11
|
+
* not export the type `Details`.
|
|
12
|
+
* See https://github.com/endojs/endo/issues/2339
|
|
13
|
+
*
|
|
14
|
+
* at-import {Details} from '@endo/errors'
|
|
15
|
+
*
|
|
16
|
+
* In the meantime...
|
|
17
|
+
*
|
|
18
|
+
* @typedef {string | {}} Details
|
|
19
|
+
*/
|
|
20
|
+
|
|
9
21
|
/**
|
|
10
22
|
* @import {RemotableBrand} from '@endo/eventual-send';
|
|
11
23
|
* @import {RemotableObject} from '@endo/pass-style';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reallocate.d.ts","sourceRoot":"","sources":["reallocate.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reallocate.d.ts","sourceRoot":"","sources":["reallocate.js"],"names":[],"mappings":"AAgBO,6CAHI,KAAK,CAAC,YAAY,CAAC,GACjB,CAAC,OAAO,EAAE,mBAAmB,CAAC,EAAE,CA8E5C;8BAtFa,KAAK,CAAC,mBAAmB,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
+
import { Fail } from '@endo/errors';
|
|
1
2
|
import { makeScalarMapStore } from '@agoric/vat-data';
|
|
2
3
|
|
|
3
4
|
import { assertRightsConserved } from './rightsConservation.js';
|
|
4
5
|
import { addToAllocation, subtractFromAllocation } from './allocationMath.js';
|
|
5
6
|
|
|
6
|
-
const { Fail } = assert;
|
|
7
|
-
|
|
8
7
|
/** @typedef {Array<AmountKeywordRecord>} TransactionList */
|
|
9
8
|
|
|
10
9
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { assert, Fail } from '@endo/errors';
|
|
1
2
|
import { makeScalarMapStore } from '@agoric/store';
|
|
2
|
-
import { assert, Fail } from '@agoric/assert';
|
|
3
3
|
import { AmountMath } from '@agoric/ertp';
|
|
4
4
|
|
|
5
5
|
import '../internal-types.js';
|
|
@@ -18,7 +18,7 @@ import '../internal-types.js';
|
|
|
18
18
|
const sumByBrand = amounts => {
|
|
19
19
|
/** @type {MapStore<Brand, Amount>} */
|
|
20
20
|
const sumsByBrand = makeScalarMapStore('brand');
|
|
21
|
-
|
|
21
|
+
for (const amount of amounts) {
|
|
22
22
|
const { brand } = amount;
|
|
23
23
|
if (!sumsByBrand.has(brand)) {
|
|
24
24
|
sumsByBrand.init(brand, amount);
|
|
@@ -26,7 +26,7 @@ const sumByBrand = amounts => {
|
|
|
26
26
|
const sumSoFar = sumsByBrand.get(brand);
|
|
27
27
|
sumsByBrand.set(brand, AmountMath.add(sumSoFar, amount));
|
|
28
28
|
}
|
|
29
|
-
}
|
|
29
|
+
}
|
|
30
30
|
return sumsByBrand;
|
|
31
31
|
};
|
|
32
32
|
|
|
@@ -76,11 +76,11 @@ const assertEqualPerBrand = (leftSumsByBrand, rightSumsByBrand) => {
|
|
|
76
76
|
...rightSumsByBrand.keys(),
|
|
77
77
|
]);
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
for (const brand of allBrands) {
|
|
80
80
|
const { leftSum, rightSum } = getSums(brand);
|
|
81
81
|
AmountMath.isEqual(leftSum, rightSum) ||
|
|
82
82
|
Fail`rights were not conserved for brand ${brand} ${leftSum.value} != ${rightSum.value}`;
|
|
83
|
-
}
|
|
83
|
+
}
|
|
84
84
|
};
|
|
85
85
|
|
|
86
86
|
/**
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const ZcfSeatShape: import("@endo/patterns").Matcher;
|
|
2
|
+
export const ZcfMintI: import("@endo/patterns").InterfaceGuard<{
|
|
3
|
+
getIssuerRecord: import("@endo/patterns").MethodGuard;
|
|
4
|
+
mintGains: import("@endo/patterns").MethodGuard;
|
|
5
|
+
burnLosses: import("@endo/patterns").MethodGuard;
|
|
6
|
+
}>;
|
|
7
|
+
export const ZcfI: import("@endo/patterns").InterfaceGuard<any>;
|
|
8
|
+
//# sourceMappingURL=typeGuards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeGuards.d.ts","sourceRoot":"","sources":["typeGuards.js"],"names":[],"mappings":"AAGA,4DAAmD;AAEnD;;;;GAMG;AAEH,gEAWE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { M } from '@endo/patterns';
|
|
2
|
+
import { AmountKeywordRecordShape, IssuerRecordShape } from '../typeGuards.js';
|
|
3
|
+
|
|
4
|
+
export const ZcfSeatShape = M.remotable('zcfSeat');
|
|
5
|
+
|
|
6
|
+
export const ZcfMintI = M.interface('ZcfMint', {
|
|
7
|
+
getIssuerRecord: M.call().returns(IssuerRecordShape),
|
|
8
|
+
mintGains: M.call(AmountKeywordRecordShape)
|
|
9
|
+
.optional(ZcfSeatShape)
|
|
10
|
+
.returns(ZcfSeatShape),
|
|
11
|
+
burnLosses: M.call(AmountKeywordRecordShape, ZcfSeatShape).returns(),
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export const ZcfI = M.interface(
|
|
15
|
+
'ZCF',
|
|
16
|
+
{
|
|
17
|
+
makeInvitation: M.call(M.raw(), M.string())
|
|
18
|
+
.optional(M.record(), M.pattern())
|
|
19
|
+
.returns(M.promise()),
|
|
20
|
+
setTestJig: M.call().optional(M.raw()).returns(),
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
defaultGuards: 'passable',
|
|
24
|
+
},
|
|
25
|
+
);
|
|
@@ -85,7 +85,10 @@ type ZCF<CT extends unknown = Record<string, unknown>> = {
|
|
|
85
85
|
getOfferFilter: () => Promise<Array<string>>;
|
|
86
86
|
getInstance: () => Instance;
|
|
87
87
|
};
|
|
88
|
+
|
|
88
89
|
/**
|
|
90
|
+
* @deprecated Use atomicRearrange instead
|
|
91
|
+
*
|
|
89
92
|
* The contract can reallocate over seats, which commits the staged
|
|
90
93
|
* allocation for each seat. On commit, the staged allocation becomes
|
|
91
94
|
* the current allocation and the staged allocation is deleted.
|
|
@@ -209,7 +212,7 @@ type ZCFSeat = import('@endo/pass-style').RemotableObject & {
|
|
|
209
212
|
};
|
|
210
213
|
type ZcfSeatKit = {
|
|
211
214
|
zcfSeat: ZCFSeat;
|
|
212
|
-
userSeat:
|
|
215
|
+
userSeat: Promise<UserSeat>;
|
|
213
216
|
};
|
|
214
217
|
type HandleOffer<OR extends unknown, OA> = (seat: ZCFSeat, offerArgs: OA) => OR;
|
|
215
218
|
type OfferHandler<OR extends unknown = unknown, OA = never> =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vatRoot.d.ts","sourceRoot":"","sources":["vatRoot.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vatRoot.d.ts","sourceRoot":"","sources":["vatRoot.js"],"names":[],"mappings":"AAiBA;;;;GAIG;AACH,wCAJW,SAAS,GAAG;IAAE,aAAa,EAAE,aAAa,CAAA;CAAE,iBAC5C;IAAC,iBAAiB,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAAC,WAAW,CAAC,EAAE,GAAG,CAAA;CAAC,WAC1G,OAAO,kBAAkB,EAAE,OAAO,iIA+D5C"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
// time this file is edited, the bundle must be manually rebuilt with
|
|
8
8
|
// `yarn build-zcfBundle`.
|
|
9
9
|
|
|
10
|
+
import { Fail } from '@endo/errors';
|
|
10
11
|
import { Far } from '@endo/marshal';
|
|
11
12
|
import { E } from '@endo/far';
|
|
12
13
|
|
|
@@ -14,8 +15,6 @@ import '../internal-types.js';
|
|
|
14
15
|
|
|
15
16
|
import { makeZCFZygote } from './zcfZygote.js';
|
|
16
17
|
|
|
17
|
-
const { Fail } = assert;
|
|
18
|
-
|
|
19
18
|
/**
|
|
20
19
|
* @param {VatPowers & { testJigSetter: TestJigSetter }} powers
|
|
21
20
|
* @param {{contractBundleCap: BundleCap, zoeService: ZoeService, invitationIssuer: Issuer<'set'>, privateArgs?: any}} vatParameters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zcfMint.d.ts","sourceRoot":"","sources":["zcfMint.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zcfMint.d.ts","sourceRoot":"","sources":["zcfMint.js"],"names":[],"mappings":"AAmBO,4CAJI,mBAAmB,gBACnB,YAAY,GACV,MAAM,CAYlB;AASM,0CANI,OAAO,kBAAkB,EAAE,OAAO,gBAClC;IAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,uBACvD,mBAAmB,oBACnB,CAAC,IAAI,CAAC,EAAE,SAAS,KAAK;IAAE,OAAO,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;CAAE,eACnE,kBAAkB,IAiHF,CAAC,SAAZ,SAAU,WACb,MAAM,YACN,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KACd,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAWjC"}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
import { Fail } from '@endo/errors';
|
|
2
|
+
import { E } from '@endo/eventual-send';
|
|
2
3
|
import { AmountMath } from '@agoric/ertp';
|
|
3
4
|
import { prepareExoClass } from '@agoric/vat-data';
|
|
4
|
-
import { E } from '@endo/eventual-send';
|
|
5
5
|
|
|
6
6
|
import { coerceAmountKeywordRecord } from '../cleanProposal.js';
|
|
7
7
|
import { assertFullIssuerRecord, makeIssuerRecord } from '../issuerRecord.js';
|
|
8
8
|
import { addToAllocation, subtractFromAllocation } from './allocationMath.js';
|
|
9
9
|
|
|
10
10
|
import '../internal-types.js';
|
|
11
|
-
import { ZcfMintI } from '
|
|
11
|
+
import { ZcfMintI } from './typeGuards.js';
|
|
12
12
|
import './internal-types.js';
|
|
13
13
|
import './types-ambient.js';
|
|
14
14
|
|
|
15
|
-
const { Fail } = assert;
|
|
16
|
-
|
|
17
15
|
/**
|
|
18
16
|
* @param {AmountKeywordRecord} amr
|
|
19
17
|
* @param {IssuerRecord} issuerRecord
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zcfSeat.d.ts","sourceRoot":"","sources":["zcfSeat.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zcfSeat.d.ts","sourceRoot":"","sources":["zcfSeat.js"],"names":[],"mappings":"AAmCO,oDANI,IAAI,CAAC,gBAAgB,CAAC,uBACtB,mBAAmB,uBACnB,OAAO,sBAAsB,EAAE,mBAAmB,cAClD,OAAO,kBAAkB,EAAE,OAAO,GAChC;IAAE,WAAW,EAAE,cAAc,CAAC;IAAC,kBAAkB,EAAE,kBAAkB,CAAA;CAAE,CAyenF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { annotateError, Fail } from '@endo/errors';
|
|
2
|
+
import { E } from '@endo/eventual-send';
|
|
2
3
|
import {
|
|
3
4
|
makeScalarBigWeakMapStore,
|
|
4
5
|
prepareExoClass,
|
|
@@ -7,7 +8,6 @@ import {
|
|
|
7
8
|
provideDurableMapStore,
|
|
8
9
|
provideDurableWeakMapStore,
|
|
9
10
|
} from '@agoric/vat-data';
|
|
10
|
-
import { E } from '@endo/eventual-send';
|
|
11
11
|
import { AmountMath } from '@agoric/ertp';
|
|
12
12
|
import { initEmpty, M } from '@agoric/store';
|
|
13
13
|
|
|
@@ -23,8 +23,6 @@ import {
|
|
|
23
23
|
import { makeAllocationMap } from './reallocate.js';
|
|
24
24
|
import { TransferPartShape } from '../contractSupport/atomicTransfer.js';
|
|
25
25
|
|
|
26
|
-
const { Fail } = assert;
|
|
27
|
-
|
|
28
26
|
/**
|
|
29
27
|
* The SeatManager holds the active zcfSeats and can reallocate and
|
|
30
28
|
* make new zcfSeats.
|
|
@@ -181,7 +179,7 @@ export const createSeatManager = (
|
|
|
181
179
|
const { self } = this;
|
|
182
180
|
if (typeof reason === 'string') {
|
|
183
181
|
reason = Error(reason);
|
|
184
|
-
|
|
182
|
+
annotateError(
|
|
185
183
|
reason,
|
|
186
184
|
'ZCFSeat.fail was called with a string reason, but requires an Error argument.',
|
|
187
185
|
);
|
|
@@ -413,8 +411,10 @@ export const createSeatManager = (
|
|
|
413
411
|
}
|
|
414
412
|
},
|
|
415
413
|
reallocate(/** @type {ZCFSeat[]} */ ...seats) {
|
|
416
|
-
seats
|
|
417
|
-
|
|
414
|
+
for (const seat of seats) {
|
|
415
|
+
assertActive(seat);
|
|
416
|
+
assertStagedAllocation(seat);
|
|
417
|
+
}
|
|
418
418
|
|
|
419
419
|
// Ensure that rights are conserved overall.
|
|
420
420
|
const flattenAllocations = allocations =>
|
|
@@ -459,8 +459,9 @@ export const createSeatManager = (
|
|
|
459
459
|
// for each of the seats) and inform Zoe of the
|
|
460
460
|
// newAllocation.
|
|
461
461
|
|
|
462
|
-
seats
|
|
463
|
-
|
|
462
|
+
for (const seat of seats) {
|
|
463
|
+
commitStagedAllocation(seat);
|
|
464
|
+
}
|
|
464
465
|
const seatHandleAllocations = seats.map(seat => {
|
|
465
466
|
const seatHandle = zcfSeatToSeatHandle.get(seat);
|
|
466
467
|
return { seatHandle, allocation: seat.getCurrentAllocation() };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zcfZygote.d.ts","sourceRoot":"","sources":["zcfZygote.js"],"names":[],"mappings":"AAiDO,sCARI,SAAS,cACT,IAAI,CAAC,UAAU,CAAC,oBAChB,MAAM,CAAC,KAAK,CAAC,iBACb,aAAa,qBACb,SAAS,eACT,OAAO,kBAAkB,EAAE,OAAO,GAChC,OAAO,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"zcfZygote.d.ts","sourceRoot":"","sources":["zcfZygote.js"],"names":[],"mappings":"AAiDO,sCARI,SAAS,cACT,IAAI,CAAC,UAAU,CAAC,oBAChB,MAAM,CAAC,KAAK,CAAC,iBACb,aAAa,qBACb,SAAS,eACT,OAAO,kBAAkB,EAAE,OAAO,GAChC,OAAO,CAAC,SAAS,CAAC,CA8c9B"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { Fail } from '@endo/errors';
|
|
2
|
+
import { E } from '@endo/eventual-send';
|
|
3
|
+
import { passStyleOf } from '@endo/pass-style';
|
|
4
|
+
import { makePromiseKit } from '@endo/promise-kit';
|
|
5
|
+
|
|
2
6
|
import { AssetKind } from '@agoric/ertp';
|
|
3
7
|
import { assertPattern, mustMatch } from '@agoric/store';
|
|
4
8
|
import {
|
|
@@ -9,11 +13,8 @@ import {
|
|
|
9
13
|
prepareExoClass,
|
|
10
14
|
provideDurableMapStore,
|
|
11
15
|
} from '@agoric/vat-data';
|
|
12
|
-
import { E } from '@endo/eventual-send';
|
|
13
|
-
import { passStyleOf, Remotable } from '@endo/marshal';
|
|
14
|
-
import { makePromiseKit } from '@endo/promise-kit';
|
|
15
|
-
|
|
16
16
|
import { objectMap } from '@agoric/internal';
|
|
17
|
+
|
|
17
18
|
import { cleanProposal } from '../cleanProposal.js';
|
|
18
19
|
import { handlePKitWarning } from '../handleWarning.js';
|
|
19
20
|
import { makeInstanceRecordStorage } from '../instanceRecordStorage.js';
|
|
@@ -26,14 +27,13 @@ import { createSeatManager } from './zcfSeat.js';
|
|
|
26
27
|
|
|
27
28
|
import { HandleOfferI, InvitationHandleShape } from '../typeGuards.js';
|
|
28
29
|
import { prepareZcMint } from './zcfMint.js';
|
|
30
|
+
import { ZcfI } from './typeGuards.js';
|
|
29
31
|
|
|
30
32
|
/// <reference path="../internal-types.js" />
|
|
31
33
|
/// <reference path="./internal-types.js" />
|
|
32
34
|
|
|
33
35
|
/** @import {IssuerOptionsRecord} from '@agoric/ertp' */
|
|
34
36
|
|
|
35
|
-
const { Fail } = assert;
|
|
36
|
-
|
|
37
37
|
/**
|
|
38
38
|
* Make the ZCF vat in zygote-usable form. First, a generic ZCF is
|
|
39
39
|
* made, then the contract code is evaluated, then a particular
|
|
@@ -281,11 +281,7 @@ export const makeZCFZygote = async (
|
|
|
281
281
|
['canBeUpgraded', 'canUpgrade'].includes(meta.upgradability);
|
|
282
282
|
|
|
283
283
|
/** @type {ZCF} */
|
|
284
|
-
|
|
285
|
-
// imposing checking wrappers: makeInvitation() and setJig() want to
|
|
286
|
-
// accept raw functions. assert cannot be a valid passable! (It's a function
|
|
287
|
-
// and has members.)
|
|
288
|
-
const zcf = Remotable('Alleged: zcf', undefined, {
|
|
284
|
+
const zcf = prepareExo(zcfBaggage, 'zcf', ZcfI, {
|
|
289
285
|
atomicRearrange: transfers => seatManager.atomicRearrange(transfers),
|
|
290
286
|
reallocate: (...seats) => seatManager.reallocate(...seats),
|
|
291
287
|
assertUniqueKeyword: kwd => getInstanceRecHolder().assertUniqueKeyword(kwd),
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// @jessie-check
|
|
2
2
|
|
|
3
3
|
import { Nat } from '@endo/nat';
|
|
4
|
+
import { Fail } from '@endo/errors';
|
|
4
5
|
import { natSafeMath } from './safeMath.js';
|
|
5
6
|
|
|
6
7
|
const { subtract, add, multiply, floorDivide } = natSafeMath;
|
|
7
|
-
const { Fail } = assert;
|
|
8
8
|
|
|
9
9
|
const BASIS_POINTS = 10000n; // TODO change to 10_000n once tooling copes.
|
|
10
10
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priceAuthority.d.ts","sourceRoot":"","sources":["priceAuthority.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"priceAuthority.d.ts","sourceRoot":"","sources":["priceAuthority.js"],"names":[],"mappings":"AA6CA;;;;;;;;;;;;;;;GAiBG;AAYI,kDARJ;IAA8C,WAAW,EAAjD,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACD,QAAQ,EAAtC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACyB,KAAK,EAArD,IAAI,CAAC,OAAO,cAAc,EAAE,YAAY,CAAC;IAClB,WAAW,EAAlC,gBAAgB;IACG,aAAa,EAAhC,KAAK,CAAC,KAAK,CAAC;IACO,cAAc,EAAjC,KAAK,CAAC,KAAK,CAAC;CACpB,GAAU,iBAAiB,CAwT7B;qCA7WU,MAAM,eACN,MAAM,KACJ,OAAO;2CAiBT,gBAAgB,KACd,OAAO,CAAC,IAAI,CAAC;sCA3ByI,4BAA4B;sCAA5B,4BAA4B;uCAA5B,4BAA4B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { q, Fail } from '@endo/errors';
|
|
2
2
|
import { E } from '@endo/eventual-send';
|
|
3
3
|
import { Far } from '@endo/marshal';
|
|
4
4
|
import { makePromiseKit } from '@endo/promise-kit';
|
|
5
|
+
|
|
5
6
|
import { AmountMath, AmountShape, BrandShape } from '@agoric/ertp';
|
|
6
7
|
import { makeNotifier } from '@agoric/notifier';
|
|
7
8
|
import { makeTracer } from '@agoric/internal';
|
|
@@ -12,8 +13,6 @@ import { M } from '@agoric/store';
|
|
|
12
13
|
* @import {PriceAuthority, PriceDescription, PriceQuote, PriceQuoteValue, PriceQuery, PriceQuoteCreate, PriceAuthorityKit, PriceQuoteTrigger, MutableQuote,} from '@agoric/zoe/tools/types.js';
|
|
13
14
|
*/
|
|
14
15
|
|
|
15
|
-
const { quote: q, Fail } = assert;
|
|
16
|
-
|
|
17
16
|
const trace = makeTracer('PA', false);
|
|
18
17
|
|
|
19
18
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priceAuthorityInitial.d.ts","sourceRoot":"","sources":["priceAuthorityInitial.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"priceAuthorityInitial.d.ts","sourceRoot":"","sources":["priceAuthorityInitial.js"],"names":[],"mappings":"AA6BO,oDAPI,KAAK,kBACL,cAAc,aACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,WACnC,KAAK,CAAC,KAAK,CAAC,YACZ,KAAK,CAAC,KAAK,CAAC,GACV,cAAc,CAyF1B;oCAvG4F,4BAA4B;sCAA5B,4BAA4B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { Fail, assert } from '@endo/errors';
|
|
1
2
|
import { E } from '@endo/eventual-send';
|
|
2
3
|
import { Far } from '@endo/marshal';
|
|
3
|
-
import { Fail, assert } from '@agoric/assert';
|
|
4
4
|
import { AmountMath } from '@agoric/ertp';
|
|
5
5
|
import { makeNotifier } from '@agoric/notifier';
|
|
6
6
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priceQuote.d.ts","sourceRoot":"","sources":["priceQuote.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"priceQuote.d.ts","sourceRoot":"","sources":["priceQuote.js"],"names":[],"mappings":"AAoBO,2CAHI,UAAU,GACR,gBAAgB,CAM5B;AAGM,mCADK,UAAU,8CACiD;AAEhE,oCADK,UAAU,8CACmD;AACzE,sEAAsE;AACtE,2BADW,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,cAAc,EAAE,SAAS,CACQ;AAGnE,kCADK,KAAK,CAAC,KAAK,CAAC,uDAMvB;gCA/B4F,4BAA4B;sCAA5B,4BAA4B"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
// @jessie-check
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { Fail } from '@endo/errors';
|
|
4
4
|
import { Nat } from '@endo/nat';
|
|
5
5
|
import { E } from '@endo/eventual-send';
|
|
6
|
+
import { AmountMath } from '@agoric/ertp';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* @import {PriceAuthority, PriceDescription, PriceQuote, PriceQuoteValue, PriceQuery,} from '@agoric/zoe/tools/types.js';
|
|
9
10
|
*/
|
|
10
11
|
|
|
11
|
-
const { Fail } = assert;
|
|
12
|
-
|
|
13
12
|
// PriceAuthorities return quotes as a pair of an amount and a payment, both
|
|
14
13
|
// with the same value. The underlying amount wraps amountIn, amountOut, timer
|
|
15
14
|
// and timestamp. The payment is issued by the quoteIssuer to support veracity
|
|
@@ -7,11 +7,20 @@ export const floorMultiplyBy: ScaleAmount;
|
|
|
7
7
|
export const ceilMultiplyBy: ScaleAmount;
|
|
8
8
|
/** @type {ScaleAmount} */
|
|
9
9
|
export const multiplyBy: ScaleAmount;
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Divide the amount by the ratio, truncating the remainder.
|
|
12
|
+
* @type {ScaleAmount}
|
|
13
|
+
*/
|
|
11
14
|
export const floorDivideBy: ScaleAmount;
|
|
12
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Divide the amount by the ratio, rounding up the remainder.
|
|
17
|
+
* @type {ScaleAmount}
|
|
18
|
+
*/
|
|
13
19
|
export const ceilDivideBy: ScaleAmount;
|
|
14
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Divide the amount by the ratio, rounding to nearest with ties to even (aka Banker's Rounding) as in IEEE 754 default rounding.
|
|
22
|
+
* @type {ScaleAmount}
|
|
23
|
+
*/
|
|
15
24
|
export const divideBy: ScaleAmount;
|
|
16
25
|
export function invertRatio(ratio: Ratio): Ratio;
|
|
17
26
|
export function addRatios(left: Ratio, right: Ratio): Ratio;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ratio.d.ts","sourceRoot":"","sources":["ratio.js"],"names":[],"mappings":"AAwCO,gDAcN;AASM,qCANI,MAAM,kBACN,KAAK,sFAGH,KAAK,CAejB;AAOM,sDAJI,MAAM,qBACN,MAAM,GACJ,KAAK,CAYjB;AA2BD,0BAA0B;AAC1B,8BADW,WAAW,CAGpB;AAEF,0BAA0B;AAC1B,6BADW,WAAW,CAGpB;AAEF,0BAA0B;AAC1B,yBADW,WAAW,CAGpB;AA2BF
|
|
1
|
+
{"version":3,"file":"ratio.d.ts","sourceRoot":"","sources":["ratio.js"],"names":[],"mappings":"AAwCO,gDAcN;AASM,qCANI,MAAM,kBACN,KAAK,sFAGH,KAAK,CAejB;AAOM,sDAJI,MAAM,qBACN,MAAM,GACJ,KAAK,CAYjB;AA2BD,0BAA0B;AAC1B,8BADW,WAAW,CAGpB;AAEF,0BAA0B;AAC1B,6BADW,WAAW,CAGpB;AAEF,0BAA0B;AAC1B,yBADW,WAAW,CAGpB;AA2BF;;;GAGG;AACH,4BAFU,WAAW,CAInB;AAEF;;;GAGG;AACH,2BAFU,WAAW,CAInB;AAEF;;;GAGG;AACH,uBAFU,WAAW,CAInB;AAMK,mCAHI,KAAK,GACH,KAAK,CAWjB;AAOM,gCAJI,KAAK,SACL,KAAK,GACH,KAAK,CAwBjB;AAOM,qCAJI,KAAK,SACL,KAAK,GACH,KAAK,CAmBjB;AAOM,qCAJI,KAAK,SACL,KAAK,GACH,KAAK,CA8BjB;AAQM,gCAHI,KAAK,GACH,KAAK,CAcjB;AAOM,+BAJI,KAAK,SACL,KAAK,GACH,OAAO,CAkBnB;AASM,iCAJI,KAAK,SACL,KAAK,GACH,OAAO,CAOnB;AAUM,gCAJI,KAAK,UACL,MAAM,GACJ,KAAK,CAiBjB;AAaM,oCALI,cAAc,kBACd,KAAK,oDAEH,KAAK,CAmBjB;AAMM,+CAHI,OAAO,GACL,QAAQ,QAAQ,IAAI,cAAc,CAK9C;AAQM,qCAHI,KAAK,GACH,MAAM,CAMlB;6BAhDa,MAAM,GAAG,MAAM,GAAG,MAAM"}
|