@agoric/zoe 0.26.3-u16.1 → 0.26.3-u17.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.
Files changed (132) hide show
  1. package/README.md +2 -3
  2. package/bundles/bundle-contractFacet-js-meta.json +531 -502
  3. package/bundles/bundle-contractFacet.js +1 -1
  4. package/package.json +30 -28
  5. package/src/cleanProposal.d.ts.map +1 -1
  6. package/src/cleanProposal.js +4 -2
  7. package/src/contractFacet/allocationMath.d.ts.map +1 -1
  8. package/src/contractFacet/allocationMath.js +1 -2
  9. package/src/contractFacet/exit.d.ts.map +1 -1
  10. package/src/contractFacet/exit.js +1 -2
  11. package/src/contractFacet/offerHandlerStorage.d.ts +4 -0
  12. package/src/contractFacet/offerHandlerStorage.d.ts.map +1 -1
  13. package/src/contractFacet/offerHandlerStorage.js +12 -0
  14. package/src/contractFacet/reallocate.d.ts.map +1 -1
  15. package/src/contractFacet/reallocate.js +1 -2
  16. package/src/contractFacet/rightsConservation.js +5 -5
  17. package/src/contractFacet/typeGuards.d.ts +8 -0
  18. package/src/contractFacet/typeGuards.d.ts.map +1 -0
  19. package/src/contractFacet/typeGuards.js +25 -0
  20. package/src/contractFacet/types-ambient.d.ts +4 -1
  21. package/src/contractFacet/vatRoot.d.ts.map +1 -1
  22. package/src/contractFacet/vatRoot.js +1 -2
  23. package/src/contractFacet/zcfMint.d.ts.map +1 -1
  24. package/src/contractFacet/zcfMint.js +3 -5
  25. package/src/contractFacet/zcfSeat.d.ts.map +1 -1
  26. package/src/contractFacet/zcfSeat.js +10 -9
  27. package/src/contractFacet/zcfZygote.d.ts.map +1 -1
  28. package/src/contractFacet/zcfZygote.js +8 -12
  29. package/src/contractSupport/bondingCurves.js +1 -1
  30. package/src/contractSupport/priceAuthority.d.ts.map +1 -1
  31. package/src/contractSupport/priceAuthority.js +2 -3
  32. package/src/contractSupport/priceAuthorityInitial.d.ts.map +1 -1
  33. package/src/contractSupport/priceAuthorityInitial.js +0 -1
  34. package/src/contractSupport/priceAuthorityTransform.js +1 -1
  35. package/src/contractSupport/priceQuote.d.ts.map +1 -1
  36. package/src/contractSupport/priceQuote.js +2 -3
  37. package/src/contractSupport/ratio.d.ts +12 -3
  38. package/src/contractSupport/ratio.d.ts.map +1 -1
  39. package/src/contractSupport/ratio.js +19 -5
  40. package/src/contractSupport/recorder.d.ts +11 -21
  41. package/src/contractSupport/recorder.d.ts.map +1 -1
  42. package/src/contractSupport/recorder.js +9 -21
  43. package/src/contractSupport/stateMachine.js +1 -1
  44. package/src/contractSupport/topics.d.ts +26 -0
  45. package/src/contractSupport/topics.d.ts.map +1 -1
  46. package/src/contractSupport/topics.js +24 -1
  47. package/src/contractSupport/zoeHelpers.d.ts.map +1 -1
  48. package/src/contractSupport/zoeHelpers.js +6 -9
  49. package/src/contracts/auction/assertBidSeat.js +1 -1
  50. package/src/contracts/auction/index.d.ts.map +1 -1
  51. package/src/contracts/auction/index.js +1 -3
  52. package/src/contracts/auction/secondPriceLogic.js +4 -4
  53. package/src/contracts/autoswap.d.ts.map +1 -1
  54. package/src/contracts/autoswap.js +4 -2
  55. package/src/contracts/callSpread/calculateShares.js +1 -1
  56. package/src/contracts/callSpread/payoffHandler.d.ts.map +1 -1
  57. package/src/contracts/callSpread/payoffHandler.js +0 -1
  58. package/src/contracts/callSpread/pricedCallSpread.d.ts.map +1 -1
  59. package/src/contracts/callSpread/pricedCallSpread.js +1 -3
  60. package/src/contracts/coveredCall-durable.d.ts.map +1 -1
  61. package/src/contracts/coveredCall-durable.js +1 -2
  62. package/src/contracts/coveredCall.d.ts.map +1 -1
  63. package/src/contracts/coveredCall.js +1 -2
  64. package/src/contracts/loan/borrow.js +1 -1
  65. package/src/contracts/loan/close.js +1 -1
  66. package/src/contracts/loan/scheduleLiquidation.d.ts.map +1 -1
  67. package/src/contracts/loan/scheduleLiquidation.js +0 -1
  68. package/src/contracts/loan/updateDebt.js +3 -3
  69. package/src/contracts/mintAndSellNFT.js +1 -1
  70. package/src/contracts/oracle.d.ts.map +1 -1
  71. package/src/contracts/oracle.js +1 -2
  72. package/src/contracts/otcDesk.js +1 -1
  73. package/src/contracts/priceAggregator.d.ts.map +1 -1
  74. package/src/contracts/priceAggregator.js +3 -4
  75. package/src/contracts/sellItems.d.ts.map +1 -1
  76. package/src/contracts/sellItems.js +1 -3
  77. package/src/contracts/valueVow.contract.d.ts +17 -0
  78. package/src/contracts/valueVow.contract.d.ts.map +1 -0
  79. package/src/contracts/valueVow.contract.js +63 -0
  80. package/src/instanceRecordStorage.d.ts.map +1 -1
  81. package/src/instanceRecordStorage.js +2 -5
  82. package/src/issuerRecord.js +1 -1
  83. package/src/issuerStorage.d.ts.map +1 -1
  84. package/src/issuerStorage.js +5 -4
  85. package/src/makeHandle.d.ts.map +1 -1
  86. package/src/makeHandle.js +1 -3
  87. package/src/typeGuards.d.ts +10 -8
  88. package/src/typeGuards.d.ts.map +1 -1
  89. package/src/typeGuards.js +7 -12
  90. package/src/zoeService/createZCFVat.js +1 -1
  91. package/src/zoeService/escrowStorage.js +3 -3
  92. package/src/zoeService/feeMint.d.ts.map +1 -1
  93. package/src/zoeService/feeMint.js +1 -2
  94. package/src/zoeService/installationStorage.d.ts.map +1 -1
  95. package/src/zoeService/installationStorage.js +1 -3
  96. package/src/zoeService/instanceAdminStorage.d.ts.map +1 -1
  97. package/src/zoeService/instanceAdminStorage.js +7 -9
  98. package/src/zoeService/internal-types.d.ts +1 -1
  99. package/src/zoeService/internal-types.d.ts.map +1 -1
  100. package/src/zoeService/internal-types.js +0 -1
  101. package/src/zoeService/invitationQueries.js +3 -3
  102. package/src/zoeService/makeInvitation.js +1 -1
  103. package/src/zoeService/offer/burnInvitation.d.ts.map +1 -1
  104. package/src/zoeService/offer/burnInvitation.js +3 -5
  105. package/src/zoeService/offer/offer.d.ts.map +1 -1
  106. package/src/zoeService/offer/offer.js +1 -2
  107. package/src/zoeService/originalZoeSeat.d.ts.map +1 -1
  108. package/src/zoeService/originalZoeSeat.js +1 -3
  109. package/src/zoeService/startInstance.d.ts.map +1 -1
  110. package/src/zoeService/startInstance.js +1 -9
  111. package/src/zoeService/utils.d.ts +3 -2
  112. package/src/zoeService/utils.test-d.ts +6 -5
  113. package/src/zoeService/zoe.d.ts +3 -2
  114. package/src/zoeService/zoe.d.ts.map +1 -1
  115. package/src/zoeService/zoe.js +54 -52
  116. package/src/zoeService/zoeSeat.d.ts.map +1 -1
  117. package/src/zoeService/zoeSeat.js +1 -3
  118. package/src/zoeService/zoeStorageManager.d.ts.map +1 -1
  119. package/src/zoeService/zoeStorageManager.js +0 -1
  120. package/tools/fakePriceAuthority.d.ts.map +1 -1
  121. package/tools/fakePriceAuthority.js +5 -4
  122. package/tools/fakeVatAdmin.d.ts.map +1 -1
  123. package/tools/fakeVatAdmin.js +10 -9
  124. package/tools/manualPriceAuthority.d.ts.map +1 -1
  125. package/tools/manualPriceAuthority.js +0 -1
  126. package/tools/manualTimer.d.ts.map +1 -1
  127. package/tools/manualTimer.js +1 -2
  128. package/tools/scriptedPriceAuthority.d.ts.map +1 -1
  129. package/tools/scriptedPriceAuthority.js +0 -1
  130. package/tools/setup-zoe.d.ts +3 -3
  131. package/tools/setup-zoe.d.ts.map +1 -1
  132. 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-u16.1",
3
+ "version": "0.26.3-u17.0",
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/assert": "^0.6.1-u16.0",
47
- "@agoric/base-zone": "^0.1.1-u16.0",
48
- "@agoric/ertp": "^0.16.3-u16.1",
49
- "@agoric/internal": "^0.4.0-u16.1",
50
- "@agoric/notifier": "^0.7.0-u16.1",
51
- "@agoric/store": "^0.9.3-u16.0",
52
- "@agoric/swingset-liveslots": "^0.10.3-u16.1",
53
- "@agoric/swingset-vat": "^0.33.0-u16.1",
54
- "@agoric/time": "^0.3.3-u16.0",
55
- "@agoric/vat-data": "^0.5.3-u16.1",
56
- "@agoric/zone": "^0.3.0-u16.1",
57
- "@endo/bundle-source": "^3.2.3",
58
- "@endo/captp": "^4.2.0",
59
- "@endo/common": "^1.2.2",
60
- "@endo/eventual-send": "^1.2.2",
61
- "@endo/exo": "^1.5.0",
62
- "@endo/far": "^1.1.2",
63
- "@endo/import-bundle": "^1.1.2",
64
- "@endo/marshal": "^1.5.0",
65
- "@endo/nat": "^5.0.7",
66
- "@endo/patterns": "^1.4.0",
67
- "@endo/promise-kit": "^1.1.2",
46
+ "@agoric/base-zone": "^0.1.1-u17.0",
47
+ "@agoric/ertp": "^0.16.3-u17.0",
48
+ "@agoric/internal": "^0.4.0-u17.0",
49
+ "@agoric/notifier": "^0.7.0-u17.0",
50
+ "@agoric/store": "^0.9.3-u17.0",
51
+ "@agoric/swingset-liveslots": "^0.10.3-u17.0",
52
+ "@agoric/swingset-vat": "^0.33.0-u17.0",
53
+ "@agoric/time": "^0.3.3-u17.0",
54
+ "@agoric/vat-data": "^0.5.3-u17.0",
55
+ "@agoric/vow": "^0.2.0-u17.0",
56
+ "@agoric/zone": "^0.3.0-u17.0",
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-u16.0",
72
- "@endo/init": "^1.1.2",
73
+ "@agoric/kmarshal": "^0.1.1-u17.0",
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.30.7"
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": 84.92
144
+ "atLeast": 85.02
143
145
  },
144
- "gitHead": "2eaeab90b4015e355faea534c1c933351d25b1b9"
146
+ "gitHead": "515c4c0efccfc91b97da30037c10fc4b076851e2"
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,CAYpB;AAEM,mJAsBN;AAQM,sEAJI,OAAO,uBACP,GAAC,GACC,mBAAmB,CAa/B;AA4CM,wCAJI,QAAQ,uBACR,mBAAmB,GACjB,cAAc,CA6B1B"}
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"}
@@ -1,4 +1,4 @@
1
- import { assert, q, Fail } from '@agoric/assert';
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.forEach(assertKeywordName);
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":"AAkFO,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
+ {"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,7 +1,6 @@
1
+ import { Fail, q } from '@endo/errors';
1
2
  import { AmountMath } from '@agoric/ertp';
2
3
 
3
- const { Fail, quote: q } = assert;
4
-
5
4
  /**
6
5
  * @callback Operation
7
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["exit.js"],"names":[],"mappings":"AAyBO,sGAwGN"}
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":"AAiBO;;yCAgCwB,gBAAgB,YAAY,OAAO,KAAK,YAAY;EAsBlF;mCAzDY,2BAAiB,eAAe,GAAG,YAAY;oCAL3B,qBAAqB;qCACpB,kBAAkB"}
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":"AAiBO,6CAHI,KAAK,CAAC,YAAY,CAAC,GACjB,CAAC,OAAO,EAAE,mBAAmB,CAAC,EAAE,CA8E5C;8BAtFa,KAAK,CAAC,mBAAmB,CAAC"}
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
- amounts.forEach(amount => {
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
- allBrands.forEach(brand => {
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: ERef<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":"AAkBA;;;;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"}
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":"AAqBO,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
+ {"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
- /* eslint @typescript-eslint/no-floating-promises: "warn" */
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 '../typeGuards.js';
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":"AAqCO,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,CAsenF"}
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
- /* eslint @typescript-eslint/no-floating-promises: "warn" */
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
- assert.note(
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.forEach(assertActive);
417
- seats.forEach(assertStagedAllocation);
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.forEach(commitStagedAllocation);
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,CAkd9B"}
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
- /* eslint @typescript-eslint/no-floating-promises: "warn" */
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
- // Using Remotable rather than Far because there are too many complications
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":"AA8CA;;;;;;;;;;;;;;;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;sCA7ByI,4BAA4B;sCAA5B,4BAA4B;uCAA5B,4BAA4B"}
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
- /* eslint @typescript-eslint/no-floating-promises: "warn" */
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":"AA8BO,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
+ {"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,5 @@
1
1
  // @ts-check
2
2
  // @jessie-check
3
- /* eslint @typescript-eslint/no-floating-promises: "warn" */
4
3
 
5
4
  import { E } from '@endo/far';
6
5
  import { Far } from '@endo/marshal';
@@ -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":"AAqBO,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;gCAjC4F,4BAA4B;sCAA5B,4BAA4B"}
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 { AmountMath } from '@agoric/ertp';
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
- /** @type {ScaleAmount} */
10
+ /**
11
+ * Divide the amount by the ratio, truncating the remainder.
12
+ * @type {ScaleAmount}
13
+ */
11
14
  export const floorDivideBy: ScaleAmount;
12
- /** @type {ScaleAmount} */
15
+ /**
16
+ * Divide the amount by the ratio, rounding up the remainder.
17
+ * @type {ScaleAmount}
18
+ */
13
19
  export const ceilDivideBy: ScaleAmount;
14
- /** @type {ScaleAmount} */
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,0BAA0B;AAC1B,4BADW,WAAW,CAGpB;AAEF,0BAA0B;AAC1B,2BADW,WAAW,CAGpB;AAEF,0BAA0B;AAC1B,uBADW,WAAW,CAGpB;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;AASM,gCAJI,KAAK,UACL,MAAM,GACJ,KAAK,CAajB;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"}
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"}