@bananapus/nana-sdk-core 1.11.1 → 2.0.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 (207) hide show
  1. package/dist/cjs/actions/JBSuckerAbi.d.ts +12 -2
  2. package/dist/cjs/actions/JBSuckerAbi.d.ts.map +1 -1
  3. package/dist/cjs/actions/JBSuckerAbi.js +12 -2
  4. package/dist/cjs/actions/JBSuckerAbi.js.map +1 -1
  5. package/dist/cjs/actions/projectMetadata.d.ts.map +1 -1
  6. package/dist/cjs/actions/projectMetadata.js +15 -9
  7. package/dist/cjs/actions/projectMetadata.js.map +1 -1
  8. package/dist/cjs/actions/suckerPairs.d.ts +26 -0
  9. package/dist/cjs/actions/suckerPairs.d.ts.map +1 -1
  10. package/dist/cjs/actions/suckerPairs.js +73 -39
  11. package/dist/cjs/actions/suckerPairs.js.map +1 -1
  12. package/dist/cjs/constants.d.ts +17 -7
  13. package/dist/cjs/constants.d.ts.map +1 -1
  14. package/dist/cjs/constants.js +45 -31
  15. package/dist/cjs/constants.js.map +1 -1
  16. package/dist/cjs/contracts.d.ts +6 -1
  17. package/dist/cjs/contracts.d.ts.map +1 -1
  18. package/dist/cjs/contracts.js +7 -1
  19. package/dist/cjs/contracts.js.map +1 -1
  20. package/dist/cjs/generated/juicebox.d.ts +8779 -6436
  21. package/dist/cjs/generated/juicebox.d.ts.map +1 -1
  22. package/dist/cjs/generated/juicebox.js +3027 -1244
  23. package/dist/cjs/generated/juicebox.js.map +1 -1
  24. package/dist/cjs/types.d.ts +13 -10
  25. package/dist/cjs/types.d.ts.map +1 -1
  26. package/dist/cjs/types.js +10 -6
  27. package/dist/cjs/types.js.map +1 -1
  28. package/dist/cjs/utils/bendystraw.d.ts +19 -3
  29. package/dist/cjs/utils/bendystraw.d.ts.map +1 -1
  30. package/dist/cjs/utils/bendystraw.js +38 -10
  31. package/dist/cjs/utils/bendystraw.js.map +1 -1
  32. package/dist/cjs/utils/errors.d.ts +19 -0
  33. package/dist/cjs/utils/errors.d.ts.map +1 -0
  34. package/dist/cjs/utils/errors.js +32 -0
  35. package/dist/cjs/utils/errors.js.map +1 -0
  36. package/dist/cjs/utils/fee.d.ts +12 -0
  37. package/dist/cjs/utils/fee.d.ts.map +1 -1
  38. package/dist/cjs/utils/fee.js +13 -2
  39. package/dist/cjs/utils/fee.js.map +1 -1
  40. package/dist/cjs/utils/hook.d.ts +17 -4
  41. package/dist/cjs/utils/hook.d.ts.map +1 -1
  42. package/dist/cjs/utils/hook.js +60 -31
  43. package/dist/cjs/utils/hook.js.map +1 -1
  44. package/dist/cjs/utils/index.d.ts +1 -0
  45. package/dist/cjs/utils/index.d.ts.map +1 -1
  46. package/dist/cjs/utils/index.js +1 -0
  47. package/dist/cjs/utils/index.js.map +1 -1
  48. package/dist/cjs/utils/ipfs.d.ts +9 -1
  49. package/dist/cjs/utils/ipfs.d.ts.map +1 -1
  50. package/dist/cjs/utils/ipfs.js +13 -1
  51. package/dist/cjs/utils/ipfs.js.map +1 -1
  52. package/dist/cjs/utils/revnet.d.ts +1 -1
  53. package/dist/cjs/utils/revnet.d.ts.map +1 -1
  54. package/dist/cjs/utils/revnet.js +2 -1
  55. package/dist/cjs/utils/revnet.js.map +1 -1
  56. package/dist/cjs/utils/ruleset.d.ts +14 -0
  57. package/dist/cjs/utils/ruleset.d.ts.map +1 -1
  58. package/dist/cjs/utils/ruleset.js +19 -0
  59. package/dist/cjs/utils/ruleset.js.map +1 -1
  60. package/dist/cjs/utils/tx.d.ts +9 -0
  61. package/dist/cjs/utils/tx.d.ts.map +1 -1
  62. package/dist/cjs/utils/tx.js +10 -3
  63. package/dist/cjs/utils/tx.js.map +1 -1
  64. package/dist/cjs/utils/urn.d.ts +20 -1
  65. package/dist/cjs/utils/urn.d.ts.map +1 -1
  66. package/dist/cjs/utils/urn.js +54 -32
  67. package/dist/cjs/utils/urn.js.map +1 -1
  68. package/dist/cjs/v6/cashOut.d.ts +40 -6
  69. package/dist/cjs/v6/cashOut.d.ts.map +1 -1
  70. package/dist/cjs/v6/cashOut.js +54 -4
  71. package/dist/cjs/v6/cashOut.js.map +1 -1
  72. package/dist/cjs/v6/fees.d.ts +11 -8
  73. package/dist/cjs/v6/fees.d.ts.map +1 -1
  74. package/dist/cjs/v6/fees.js +12 -9
  75. package/dist/cjs/v6/fees.js.map +1 -1
  76. package/dist/cjs/v6/index.d.ts +1 -0
  77. package/dist/cjs/v6/index.d.ts.map +1 -1
  78. package/dist/cjs/v6/index.js +1 -0
  79. package/dist/cjs/v6/index.js.map +1 -1
  80. package/dist/cjs/v6/loans.d.ts +13 -4
  81. package/dist/cjs/v6/loans.d.ts.map +1 -1
  82. package/dist/cjs/v6/loans.js +14 -5
  83. package/dist/cjs/v6/loans.js.map +1 -1
  84. package/dist/cjs/v6/nft.d.ts +11 -7
  85. package/dist/cjs/v6/nft.d.ts.map +1 -1
  86. package/dist/cjs/v6/nft.js +26 -11
  87. package/dist/cjs/v6/nft.js.map +1 -1
  88. package/dist/cjs/v6/priceFeeds.d.ts +78 -0
  89. package/dist/cjs/v6/priceFeeds.d.ts.map +1 -0
  90. package/dist/cjs/v6/priceFeeds.js +109 -0
  91. package/dist/cjs/v6/priceFeeds.js.map +1 -0
  92. package/dist/cjs/v6/revnets.d.ts +21 -2
  93. package/dist/cjs/v6/revnets.d.ts.map +1 -1
  94. package/dist/cjs/v6/revnets.js +35 -3
  95. package/dist/cjs/v6/revnets.js.map +1 -1
  96. package/dist/cjs/v6/suckers.d.ts +11 -0
  97. package/dist/cjs/v6/suckers.d.ts.map +1 -1
  98. package/dist/cjs/v6/suckers.js +22 -1
  99. package/dist/cjs/v6/suckers.js.map +1 -1
  100. package/dist/cjs/v6/terminals.d.ts +24 -4
  101. package/dist/cjs/v6/terminals.d.ts.map +1 -1
  102. package/dist/cjs/v6/terminals.js +13 -2
  103. package/dist/cjs/v6/terminals.js.map +1 -1
  104. package/dist/esm/actions/JBSuckerAbi.d.ts +12 -2
  105. package/dist/esm/actions/JBSuckerAbi.d.ts.map +1 -1
  106. package/dist/esm/actions/JBSuckerAbi.js +12 -2
  107. package/dist/esm/actions/JBSuckerAbi.js.map +1 -1
  108. package/dist/esm/actions/projectMetadata.d.ts.map +1 -1
  109. package/dist/esm/actions/projectMetadata.js +16 -10
  110. package/dist/esm/actions/projectMetadata.js.map +1 -1
  111. package/dist/esm/actions/suckerPairs.d.ts +26 -0
  112. package/dist/esm/actions/suckerPairs.d.ts.map +1 -1
  113. package/dist/esm/actions/suckerPairs.js +75 -41
  114. package/dist/esm/actions/suckerPairs.js.map +1 -1
  115. package/dist/esm/constants.d.ts +17 -7
  116. package/dist/esm/constants.d.ts.map +1 -1
  117. package/dist/esm/constants.js +44 -30
  118. package/dist/esm/constants.js.map +1 -1
  119. package/dist/esm/contracts.d.ts +6 -1
  120. package/dist/esm/contracts.d.ts.map +1 -1
  121. package/dist/esm/contracts.js +6 -0
  122. package/dist/esm/contracts.js.map +1 -1
  123. package/dist/esm/generated/juicebox.d.ts +8779 -6436
  124. package/dist/esm/generated/juicebox.d.ts.map +1 -1
  125. package/dist/esm/generated/juicebox.js +9644 -7861
  126. package/dist/esm/generated/juicebox.js.map +1 -1
  127. package/dist/esm/types.d.ts +13 -10
  128. package/dist/esm/types.d.ts.map +1 -1
  129. package/dist/esm/types.js +10 -6
  130. package/dist/esm/types.js.map +1 -1
  131. package/dist/esm/utils/bendystraw.d.ts +19 -3
  132. package/dist/esm/utils/bendystraw.d.ts.map +1 -1
  133. package/dist/esm/utils/bendystraw.js +36 -9
  134. package/dist/esm/utils/bendystraw.js.map +1 -1
  135. package/dist/esm/utils/errors.d.ts +19 -0
  136. package/dist/esm/utils/errors.d.ts.map +1 -0
  137. package/dist/esm/utils/errors.js +28 -0
  138. package/dist/esm/utils/errors.js.map +1 -0
  139. package/dist/esm/utils/fee.d.ts +12 -0
  140. package/dist/esm/utils/fee.d.ts.map +1 -1
  141. package/dist/esm/utils/fee.js +13 -2
  142. package/dist/esm/utils/fee.js.map +1 -1
  143. package/dist/esm/utils/hook.d.ts +17 -4
  144. package/dist/esm/utils/hook.d.ts.map +1 -1
  145. package/dist/esm/utils/hook.js +61 -32
  146. package/dist/esm/utils/hook.js.map +1 -1
  147. package/dist/esm/utils/index.d.ts +1 -0
  148. package/dist/esm/utils/index.d.ts.map +1 -1
  149. package/dist/esm/utils/index.js +1 -0
  150. package/dist/esm/utils/index.js.map +1 -1
  151. package/dist/esm/utils/ipfs.d.ts +9 -1
  152. package/dist/esm/utils/ipfs.d.ts.map +1 -1
  153. package/dist/esm/utils/ipfs.js +13 -1
  154. package/dist/esm/utils/ipfs.js.map +1 -1
  155. package/dist/esm/utils/revnet.d.ts +1 -1
  156. package/dist/esm/utils/revnet.d.ts.map +1 -1
  157. package/dist/esm/utils/revnet.js +2 -1
  158. package/dist/esm/utils/revnet.js.map +1 -1
  159. package/dist/esm/utils/ruleset.d.ts +14 -0
  160. package/dist/esm/utils/ruleset.d.ts.map +1 -1
  161. package/dist/esm/utils/ruleset.js +19 -0
  162. package/dist/esm/utils/ruleset.js.map +1 -1
  163. package/dist/esm/utils/tx.d.ts +9 -0
  164. package/dist/esm/utils/tx.d.ts.map +1 -1
  165. package/dist/esm/utils/tx.js +11 -4
  166. package/dist/esm/utils/tx.js.map +1 -1
  167. package/dist/esm/utils/urn.d.ts +20 -1
  168. package/dist/esm/utils/urn.d.ts.map +1 -1
  169. package/dist/esm/utils/urn.js +54 -32
  170. package/dist/esm/utils/urn.js.map +1 -1
  171. package/dist/esm/v6/cashOut.d.ts +40 -6
  172. package/dist/esm/v6/cashOut.d.ts.map +1 -1
  173. package/dist/esm/v6/cashOut.js +54 -4
  174. package/dist/esm/v6/cashOut.js.map +1 -1
  175. package/dist/esm/v6/fees.d.ts +11 -8
  176. package/dist/esm/v6/fees.d.ts.map +1 -1
  177. package/dist/esm/v6/fees.js +11 -8
  178. package/dist/esm/v6/fees.js.map +1 -1
  179. package/dist/esm/v6/index.d.ts +1 -0
  180. package/dist/esm/v6/index.d.ts.map +1 -1
  181. package/dist/esm/v6/index.js +1 -0
  182. package/dist/esm/v6/index.js.map +1 -1
  183. package/dist/esm/v6/loans.d.ts +13 -4
  184. package/dist/esm/v6/loans.d.ts.map +1 -1
  185. package/dist/esm/v6/loans.js +13 -4
  186. package/dist/esm/v6/loans.js.map +1 -1
  187. package/dist/esm/v6/nft.d.ts +11 -7
  188. package/dist/esm/v6/nft.d.ts.map +1 -1
  189. package/dist/esm/v6/nft.js +26 -11
  190. package/dist/esm/v6/nft.js.map +1 -1
  191. package/dist/esm/v6/priceFeeds.d.ts +78 -0
  192. package/dist/esm/v6/priceFeeds.d.ts.map +1 -0
  193. package/dist/esm/v6/priceFeeds.js +105 -0
  194. package/dist/esm/v6/priceFeeds.js.map +1 -0
  195. package/dist/esm/v6/revnets.d.ts +21 -2
  196. package/dist/esm/v6/revnets.d.ts.map +1 -1
  197. package/dist/esm/v6/revnets.js +34 -3
  198. package/dist/esm/v6/revnets.js.map +1 -1
  199. package/dist/esm/v6/suckers.d.ts +11 -0
  200. package/dist/esm/v6/suckers.d.ts.map +1 -1
  201. package/dist/esm/v6/suckers.js +21 -1
  202. package/dist/esm/v6/suckers.js.map +1 -1
  203. package/dist/esm/v6/terminals.d.ts +24 -4
  204. package/dist/esm/v6/terminals.d.ts.map +1 -1
  205. package/dist/esm/v6/terminals.js +13 -2
  206. package/dist/esm/v6/terminals.js.map +1 -1
  207. package/package.json +7 -1
@@ -7,8 +7,20 @@ function validatedIpfsAssetPath(value) {
7
7
  const cid = value.split("/")[0];
8
8
  return cid && isIpfsCid(cid) ? value : null;
9
9
  }
10
+ /**
11
+ * An HTTP gateway URL for a CID (optionally with a path), or `null` when
12
+ * `cid` is not a CID.
13
+ *
14
+ * Fails closed rather than interpolating whatever it was handed: the previous
15
+ * signature accepted `undefined` and happily returned
16
+ * `https://ipfs.io/ipfs/undefined`, a 4xx fetch far from its source.
17
+ */
10
18
  export function ipfsGatewayUrl(cid, gatewayHostname) {
11
- return `https://${gatewayHostname ?? PUBLIC_IPFS_GATEWAY_HOSTNAME}/ipfs/${cid}`;
19
+ // Guarded at runtime too: JS callers were the ones passing `undefined`.
20
+ const assetPath = typeof cid === "string" ? validatedIpfsAssetPath(cid.trim()) : null;
21
+ if (!assetPath)
22
+ return null;
23
+ return `https://${gatewayHostname ?? PUBLIC_IPFS_GATEWAY_HOSTNAME}/ipfs/${assetPath}`;
12
24
  }
13
25
  /** Return an `ipfs://` URI for a CID and optional path. */
14
26
  export function ipfsUri(cid, path) {
@@ -1 +1 @@
1
- {"version":3,"file":"ipfs.js","sourceRoot":"","sources":["../../../src/utils/ipfs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ipfs.js","sourceRoot":"","sources":["../../../src/utils/ipfs.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { JBChainId } from "src/types.js";
1
+ import { JBChainId } from "../types.js";
2
2
  import { JBVersion } from "../contracts.js";
3
3
  export declare function calcPrepaidFee(monthsToPrePay: number): bigint;
4
4
  export declare function getRevnetLoanContract(version: JBVersion, chainId: JBChainId): "0xde1e70faf22024559e7d94ab814abd7e42ca849b" | "0x1880d832aa283d05b8eab68877717e25fbd550bb" | "0x056265c31157748818f0910d1859acd2f7d427de";
@@ -1 +1 @@
1
- {"version":3,"file":"revnet.d.ts","sourceRoot":"","sources":["../../../src/utils/revnet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAY5C,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAY7D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,8IAI3E"}
1
+ {"version":3,"file":"revnet.d.ts","sourceRoot":"","sources":["../../../src/utils/revnet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAY5C,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAa7D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,8IAI3E"}
@@ -6,7 +6,8 @@ const MIN_PREPAID_FEE = 25n;
6
6
  // The divisor (max months) as a BigInt for the calculation.
7
7
  const MAX_PREPAYMENT_MONTHS_BIGINT = 120n;
8
8
  export function calcPrepaidFee(monthsToPrePay) {
9
- const calcd = (BigInt(monthsToPrePay) * MAX_PREPAID_FEE_PERCENT_BIGINT) / MAX_PREPAYMENT_MONTHS_BIGINT +
9
+ const calcd = (BigInt(monthsToPrePay) * MAX_PREPAID_FEE_PERCENT_BIGINT) /
10
+ MAX_PREPAYMENT_MONTHS_BIGINT +
10
11
  MIN_PREPAID_FEE;
11
12
  if (calcd < MIN_PREPAID_FEE) {
12
13
  return MIN_PREPAID_FEE;
@@ -1 +1 @@
1
- {"version":3,"file":"revnet.js","sourceRoot":"","sources":["../../../src/utils/revnet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,0BAA0B;AAC1B,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAE5C,oDAAoD;AACpD,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,4DAA4D;AAC5D,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAE1C,MAAM,UAAU,cAAc,CAAC,cAAsB;IACnD,MAAM,KAAK,GACT,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,8BAA8B,CAAC,GAAG,4BAA4B;QACxF,eAAe,CAAC;IAElB,IAAI,KAAK,GAAG,eAAe,EAAE,CAAC;QAC5B,OAAO,eAAe,CAAC;IACzB,CAAC;SAAM,IAAI,KAAK,GAAG,8BAA8B,EAAE,CAAC;QAClD,OAAO,8BAA8B,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAkB,EAAE,OAAkB;IAC1E,OAAO,OAAO,KAAK,CAAC;QAClB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;QAC9C,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"revnet.js","sourceRoot":"","sources":["../../../src/utils/revnet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,0BAA0B;AAC1B,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAE5C,oDAAoD;AACpD,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,4DAA4D;AAC5D,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAE1C,MAAM,UAAU,cAAc,CAAC,cAAsB;IACnD,MAAM,KAAK,GACT,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,8BAA8B,CAAC;QACvD,4BAA4B;QAC9B,eAAe,CAAC;IAElB,IAAI,KAAK,GAAG,eAAe,EAAE,CAAC;QAC5B,OAAO,eAAe,CAAC;IACzB,CAAC;SAAM,IAAI,KAAK,GAAG,8BAA8B,EAAE,CAAC;QAClD,OAAO,8BAA8B,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAkB,EAAE,OAAkB;IAC1E,OAAO,OAAO,KAAK,CAAC;QAClB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;QAC9C,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC"}
@@ -3,6 +3,13 @@
3
3
  *
4
4
  * Useful when projecting a project's future Token B price.
5
5
  * E.g. "In the next ruleset, how much will Token B cost, given the new Weight?"
6
+ *
7
+ * Projects ONE cycle. `JBRulesets` applies the cut once per elapsed cycle
8
+ * (`JBRulesets.sol:685-690`), so this is not the weight `n` cycles out. It also
9
+ * does not model the weight-1 "inherit the previous weight" sentinel
10
+ * (`JBRulesets.sol:822-824`) — for a ruleset whose configured weight may still
11
+ * be `RULESET_WEIGHT_INHERIT`, use `resolveRulesetIssuanceStages` from
12
+ * `@bananapus/nana-sdk-core/v6` first.
6
13
  */
7
14
  export declare function getNextRulesetWeight(currentRuleset: {
8
15
  weight: bigint;
@@ -10,6 +17,13 @@ export declare function getNextRulesetWeight(currentRuleset: {
10
17
  }): bigint;
11
18
  /**
12
19
  * Derive the previous ruleset's Weight value from the current ruleset.
20
+ *
21
+ * The inverse of {@link getNextRulesetWeight}, with the same one-cycle and
22
+ * sentinel caveats, and lossy by floor division.
23
+ *
24
+ * @throws {RangeError} When `weightCutPercent` is 100% (`MAX_WEIGHT_CUT_PERCENT`).
25
+ * A full cut sends every subsequent weight to 0, so no previous weight can be
26
+ * recovered from the current one — the inverse has no value to return.
13
27
  */
14
28
  export declare function getPrevRulesetWeight(currentRuleset: {
15
29
  weight: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"ruleset.d.ts","sourceRoot":"","sources":["../../../src/utils/ruleset.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B,UAOA;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B,UAOA"}
1
+ {"version":3,"file":"ruleset.d.ts","sourceRoot":"","sources":["../../../src/utils/ruleset.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B,UAOA;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B,UAeA"}
@@ -4,6 +4,13 @@ import { MAX_WEIGHT_CUT_PERCENT } from "../constants.js";
4
4
  *
5
5
  * Useful when projecting a project's future Token B price.
6
6
  * E.g. "In the next ruleset, how much will Token B cost, given the new Weight?"
7
+ *
8
+ * Projects ONE cycle. `JBRulesets` applies the cut once per elapsed cycle
9
+ * (`JBRulesets.sol:685-690`), so this is not the weight `n` cycles out. It also
10
+ * does not model the weight-1 "inherit the previous weight" sentinel
11
+ * (`JBRulesets.sol:822-824`) — for a ruleset whose configured weight may still
12
+ * be `RULESET_WEIGHT_INHERIT`, use `resolveRulesetIssuanceStages` from
13
+ * `@bananapus/nana-sdk-core/v6` first.
7
14
  */
8
15
  export function getNextRulesetWeight(currentRuleset) {
9
16
  const nextRulesetWeight = (currentRuleset.weight *
@@ -13,8 +20,20 @@ export function getNextRulesetWeight(currentRuleset) {
13
20
  }
14
21
  /**
15
22
  * Derive the previous ruleset's Weight value from the current ruleset.
23
+ *
24
+ * The inverse of {@link getNextRulesetWeight}, with the same one-cycle and
25
+ * sentinel caveats, and lossy by floor division.
26
+ *
27
+ * @throws {RangeError} When `weightCutPercent` is 100% (`MAX_WEIGHT_CUT_PERCENT`).
28
+ * A full cut sends every subsequent weight to 0, so no previous weight can be
29
+ * recovered from the current one — the inverse has no value to return.
16
30
  */
17
31
  export function getPrevRulesetWeight(currentRuleset) {
32
+ // A 100% cut is a legal on-chain value (`JBRulesets.sol:139` rejects only
33
+ // `> MAX_WEIGHT_CUT_PERCENT`), so this is a reachable input, not an assert.
34
+ if (currentRuleset.weightCutPercent === MAX_WEIGHT_CUT_PERCENT) {
35
+ throw new RangeError("A 100% weightCutPercent has no invertible previous weight.");
36
+ }
18
37
  // reverse of getNextRulesetWeight
19
38
  const prevRulesetWeight = (currentRuleset.weight * BigInt(MAX_WEIGHT_CUT_PERCENT)) /
20
39
  BigInt(MAX_WEIGHT_CUT_PERCENT - currentRuleset.weightCutPercent);
@@ -1 +1 @@
1
- {"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../../../src/utils/ruleset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,cAGpC;IACC,MAAM,iBAAiB,GACrB,CAAC,cAAc,CAAC,MAAM;QACpB,MAAM,CAAC,sBAAsB,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACnE,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAEjC,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,cAGpC;IACC,kCAAkC;IAClC,MAAM,iBAAiB,GACrB,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACxD,MAAM,CAAC,sBAAsB,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAEnE,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../../../src/utils/ruleset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,cAGpC;IACC,MAAM,iBAAiB,GACrB,CAAC,cAAc,CAAC,MAAM;QACpB,MAAM,CAAC,sBAAsB,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACnE,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAEjC,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,cAGpC;IACC,0EAA0E;IAC1E,4EAA4E;IAC5E,IAAI,cAAc,CAAC,gBAAgB,KAAK,sBAAsB,EAAE,CAAC;QAC/D,MAAM,IAAI,UAAU,CAClB,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,MAAM,iBAAiB,GACrB,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACxD,MAAM,CAAC,sBAAsB,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAEnE,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
@@ -1,2 +1,11 @@
1
+ /**
2
+ * A fresh 32-byte salt.
3
+ *
4
+ * Uses the platform CSPRNG and fills all 32 bytes. The previous implementation
5
+ * hexed `Math.random()` and right-padded it to 32 bytes, which put ~52 bits of
6
+ * non-cryptographic entropy in the HIGH bytes and left the rest zero — and
7
+ * these salts seed the deterministic addresses of omnichain suckers and project
8
+ * ERC-20s, where a collision or a prediction is not recoverable.
9
+ */
1
10
  export declare function createSalt(): `0x${string}`;
2
11
  //# sourceMappingURL=tx.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../../src/utils/tx.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,kBAKzB"}
1
+ {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../../src/utils/tx.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,wBAAgB,UAAU,kBAEzB"}
@@ -1,7 +1,14 @@
1
- import { toBytes, toHex } from "viem";
1
+ import { toHex } from "viem";
2
+ /**
3
+ * A fresh 32-byte salt.
4
+ *
5
+ * Uses the platform CSPRNG and fills all 32 bytes. The previous implementation
6
+ * hexed `Math.random()` and right-padded it to 32 bytes, which put ~52 bits of
7
+ * non-cryptographic entropy in the HIGH bytes and left the rest zero — and
8
+ * these salts seed the deterministic addresses of omnichain suckers and project
9
+ * ERC-20s, where a collision or a prediction is not recoverable.
10
+ */
2
11
  export function createSalt() {
3
- const base = "0x" + Math.random().toString(16).slice(2); // idk lol
4
- const salt = toHex(toBytes(base, { size: 32 }));
5
- return salt;
12
+ return toHex(crypto.getRandomValues(new Uint8Array(32)));
6
13
  }
7
14
  //# sourceMappingURL=tx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tx.js","sourceRoot":"","sources":["../../../src/utils/tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAEtC,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAW,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;IAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAEhD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"tx.js","sourceRoot":"","sources":["../../../src/utils/tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC"}
@@ -1,8 +1,27 @@
1
1
  import { JBChainId, JBVersion } from "../types.js";
2
+ /**
3
+ * Parse a Juicebox project URN.
4
+ *
5
+ * Two shapes are accepted: `<chainSlug>:<projectId>` (implicitly
6
+ * {@link DEFAULT_URN_VERSION}) and `v<version>:<chainSlug>:<projectId>`.
7
+ * `projectId` must be decimal digits naming a real project id (`>= 1`) — hex
8
+ * (`0x123`) and any other `BigInt`-coercible spelling are rejected rather than
9
+ * silently reinterpreted.
10
+ */
2
11
  export declare function jbUrn(urn: string): {
3
12
  chainId: JBChainId;
4
13
  projectId: bigint;
5
14
  version: JBVersion;
6
15
  } | null;
7
- export declare function toJbUrn(chainId: JBChainId, projectId: bigint): string | null;
16
+ /**
17
+ * Format a Juicebox project URN.
18
+ *
19
+ * The version prefix is emitted whenever `version` is not
20
+ * {@link DEFAULT_URN_VERSION}, so a v5/v6 project round-trips through
21
+ * {@link jbUrn} as itself rather than collapsing into the v4 tables.
22
+ *
23
+ * Returns `null` for an unsupported chain, an unsupported version, or a
24
+ * `projectId` that {@link jbUrn} could not parse back (`<= 0`).
25
+ */
26
+ export declare function toJbUrn(chainId: JBChainId, projectId: bigint, version?: JBVersion): string | null;
8
27
  //# sourceMappingURL=urn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"urn.d.ts","sourceRoot":"","sources":["../../../src/utils/urn.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG;IAClC,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;CACpB,GAAG,IAAI,CAiCP;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS5E"}
1
+ {"version":3,"file":"urn.d.ts","sourceRoot":"","sources":["../../../src/utils/urn.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKnD;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG;IAClC,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;CACpB,GAAG,IAAI,CA+BP;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,SAA+B,GACvC,MAAM,GAAG,IAAI,CAUf"}
@@ -1,45 +1,67 @@
1
1
  import { JB_CHAIN_SLUGS } from "../constants.js";
2
+ /** The version a versionless URN (`eth:3`) is understood to name. */
3
+ const DEFAULT_URN_VERSION = 4;
4
+ /**
5
+ * Parse a Juicebox project URN.
6
+ *
7
+ * Two shapes are accepted: `<chainSlug>:<projectId>` (implicitly
8
+ * {@link DEFAULT_URN_VERSION}) and `v<version>:<chainSlug>:<projectId>`.
9
+ * `projectId` must be decimal digits naming a real project id (`>= 1`) — hex
10
+ * (`0x123`) and any other `BigInt`-coercible spelling are rejected rather than
11
+ * silently reinterpreted.
12
+ */
2
13
  export function jbUrn(urn) {
3
- try {
4
- const urlParts = urn.split(":").map((part) => part.trim());
5
- if (urlParts.length < 2 || urlParts.length > 3)
6
- return null;
7
- let chainSlug;
8
- let version;
9
- let projectId;
10
- if (urlParts.length === 2) {
11
- // default to v4 [/eth:3]
12
- version = 4;
13
- chainSlug = urlParts[0];
14
- projectId = urlParts[1];
15
- }
16
- else {
17
- // with version [/v5:eth:3]
18
- if (!urlParts[0].startsWith("v"))
19
- return null;
20
- version = Number(urlParts[0].replace("v", ""));
21
- chainSlug = urlParts[1];
22
- projectId = urlParts[2];
23
- }
24
- const chain = JB_CHAIN_SLUGS[chainSlug];
25
- if (!chain || !projectId || !isValidVersion(version))
14
+ const urlParts = urn.split(":").map((part) => part.trim());
15
+ if (urlParts.length < 2 || urlParts.length > 3)
16
+ return null;
17
+ let chainSlug;
18
+ let version;
19
+ let projectId;
20
+ if (urlParts.length === 2) {
21
+ // Versionless [/eth:3]
22
+ version = DEFAULT_URN_VERSION;
23
+ chainSlug = urlParts[0];
24
+ projectId = urlParts[1];
25
+ }
26
+ else {
27
+ // With version [/v5:eth:3]
28
+ if (!urlParts[0].startsWith("v"))
26
29
  return null;
27
- return {
28
- chainId: chain.chain.id,
29
- projectId: BigInt(projectId),
30
- version,
31
- };
30
+ version = Number(urlParts[0].replace("v", ""));
31
+ chainSlug = urlParts[1];
32
+ projectId = urlParts[2];
32
33
  }
33
- catch (e) {
34
+ const chain = JB_CHAIN_SLUGS[chainSlug];
35
+ if (!chain || !isProjectIdDigits(projectId) || !isValidVersion(version)) {
34
36
  return null;
35
37
  }
38
+ return {
39
+ chainId: chain.chain.id,
40
+ projectId: BigInt(projectId),
41
+ version,
42
+ };
36
43
  }
37
- export function toJbUrn(chainId, projectId) {
44
+ /**
45
+ * Format a Juicebox project URN.
46
+ *
47
+ * The version prefix is emitted whenever `version` is not
48
+ * {@link DEFAULT_URN_VERSION}, so a v5/v6 project round-trips through
49
+ * {@link jbUrn} as itself rather than collapsing into the v4 tables.
50
+ *
51
+ * Returns `null` for an unsupported chain, an unsupported version, or a
52
+ * `projectId` that {@link jbUrn} could not parse back (`<= 0`).
53
+ */
54
+ export function toJbUrn(chainId, projectId, version = DEFAULT_URN_VERSION) {
38
55
  const chain = Object.values(JB_CHAIN_SLUGS).find((chain) => chain.chain.id === chainId);
39
- if (!chain) {
56
+ if (!chain || projectId <= 0n || !isValidVersion(version)) {
40
57
  return null;
41
58
  }
42
- return `${chain.slug}:${projectId}`;
59
+ const prefix = version === DEFAULT_URN_VERSION ? "" : `v${version}:`;
60
+ return `${prefix}${chain.slug}:${projectId}`;
61
+ }
62
+ /** Whether `value` is decimal digits naming a real project id (`>= 1`). */
63
+ function isProjectIdDigits(value) {
64
+ return typeof value === "string" && /^\d+$/.test(value) && BigInt(value) > 0n;
43
65
  }
44
66
  function isValidVersion(version) {
45
67
  return version === 4 || version === 5 || version === 6;
@@ -1 +1 @@
1
- {"version":3,"file":"urn.js","sourceRoot":"","sources":["../../../src/utils/urn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,MAAM,UAAU,KAAK,CAAC,GAAW;IAK/B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAE5D,IAAI,SAA6B,CAAC;QAClC,IAAI,OAA2B,CAAC;QAChC,IAAI,SAA6B,CAAC;QAElC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,yBAAyB;YACzB,OAAO,GAAG,CAAC,CAAC;YACZ,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxB,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,2BAA2B;YAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9C,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/C,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxB,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAElE,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAe;YACpC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;YAC5B,OAAO;SACR,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAkB,EAAE,SAAiB;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAC9C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CACtC,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"urn.js","sourceRoot":"","sources":["../../../src/utils/urn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,qEAAqE;AACrE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B;;;;;;;;GAQG;AACH,MAAM,UAAU,KAAK,CAAC,GAAW;IAK/B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5D,IAAI,SAA6B,CAAC;IAClC,IAAI,OAA2B,CAAC;IAChC,IAAI,SAA6B,CAAC;IAElC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,uBAAuB;QACvB,OAAO,GAAG,mBAAmB,CAAC;QAC9B,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,2BAA2B;QAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9C,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/C,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAe;QACpC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;QAC5B,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CACrB,OAAkB,EAClB,SAAiB,EACjB,UAAqB,mBAAmB;IAExC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAC9C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CACtC,CAAC;IACF,IAAI,CAAC,KAAK,IAAI,SAAS,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,KAAK,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC;IACrE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;AAC/C,CAAC;AAED,2EAA2E;AAC3E,SAAS,iBAAiB,CAAC,KAAyB;IAClD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC;AACzD,CAAC"}
@@ -73,12 +73,17 @@ export interface CashOutQuote {
73
73
  */
74
74
  reclaimAmount: bigint;
75
75
  /**
76
- * The reclaim amount net of the 2.5% protocol cash out fee.
76
+ * The reclaim amount net of the 2.5% protocol cash out fee (`x - x / 40`),
77
+ * computed via {@link cashOutProtocolFee}.
77
78
  *
78
- * The fee only applies when the ruleset's cash out tax rate is non-zero — for
79
- * zero-tax rulesets the full {@link CashOutQuote.reclaimAmount} is paid out.
79
+ * The fee is conditional: with a non-zero cash-out tax rate every cash out
80
+ * pays it in full; zero-tax cash outs pay it on
81
+ * `min(reclaimAmount, feeFreeSurplusOf)`, which is often but NOT always
82
+ * zero; feeless beneficiaries pay none. `undefined` when the gating inputs
83
+ * (`cashOutTaxRate`, plus `feeFreeSurplus` for zero-tax rulesets) were not
84
+ * supplied — an unknown fee is not fabricated as either extreme.
80
85
  */
81
- reclaimAmountAfterFee: bigint;
86
+ reclaimAmountAfterFee: bigint | undefined;
82
87
  }
83
88
  /**
84
89
  * Quote the surplus reclaimed by cashing out `cashOutCount` project tokens, via
@@ -95,19 +100,48 @@ export interface CashOutQuote {
95
100
  * @param args.currency The currency to quote the reclaim amount in (an
96
101
  * accounting-context currency, `uint32(uint160(token))`). Defaults to the native
97
102
  * token's currency (61166).
98
- * @returns The raw reclaim amount and the amount net of the 2.5% protocol fee.
103
+ * @param args.cashOutTaxRate The ruleset's cash-out tax rate, used to gate the
104
+ * protocol fee (see {@link cashOutProtocolFee}). When omitted,
105
+ * `reclaimAmountAfterFee` is `undefined` rather than a fabricated value.
106
+ * @param args.feeFreeSurplus The terminal's `feeFreeSurplusOf` for the reclaimed
107
+ * token. Required to resolve the fee when `cashOutTaxRate` is zero.
108
+ * @param args.beneficiaryIsFeeless Whether the beneficiary is feeless (pays no
109
+ * protocol fee). Defaults to false.
110
+ * @returns The raw reclaim amount and, when the fee inputs are resolved, the
111
+ * amount net of the conditional 2.5% protocol fee.
99
112
  *
100
113
  * NOTE: the defaults quote in NATIVE terms (decimals 18, token-keyed native
101
114
  * currency). For a project whose accounting token is not the native token
102
115
  * (e.g. USDC), pass that token's `decimals` and `tokenCurrencyId(token)` to
103
116
  * quote in its own terms and avoid a price-feed conversion.
117
+ *
118
+ * The quote envelope is set by the CURRENCY CONVENTION of the project's
119
+ * accounting contexts, not by which token it accounts in. `JBPrices` has no
120
+ * native special-case (`JBPrices.sol:226-246` only short-circuits same-currency
121
+ * pairs), so any cross-currency quote needs a registered feed. `deploy-all`
122
+ * registers the project-0 defaults `{ETH(1), uint32(NATIVE)}` (an identity
123
+ * feed) and `{ETH(1), USD(2)}` (`Deploy.s.sol:1546-1562`). So:
124
+ *
125
+ * - Native-context projects quote in ETH(1) fine.
126
+ * - Projects using the USD(2) currency convention for their ERC-20 contexts
127
+ * quote in ETH(1) fine.
128
+ * - Projects whose ERC-20 context is TOKEN-KEYED (`uint32(uint160(usdc))`)
129
+ * have no `{ETH(1), uint32(usdc)}` feed, so an ETH-denominated quote
130
+ * reverts.
131
+ *
132
+ * Prefer quoting each accounting context in its OWN currency
133
+ * (`tokenCurrencyId(context.token)` with `context.decimals`), which never needs
134
+ * a feed, and convert for display separately.
104
135
  */
105
- export declare function getCashOutQuote(client: PublicClient, { chainId, projectId, cashOutCount, decimals, currency, }: {
136
+ export declare function getCashOutQuote(client: PublicClient, { chainId, projectId, cashOutCount, decimals, currency, cashOutTaxRate, feeFreeSurplus, beneficiaryIsFeeless, }: {
106
137
  chainId: JBChainId;
107
138
  projectId: bigint;
108
139
  cashOutCount: bigint;
109
140
  decimals?: bigint;
110
141
  currency?: bigint;
142
+ cashOutTaxRate?: bigint;
143
+ feeFreeSurplus?: bigint;
144
+ beneficiaryIsFeeless?: boolean;
111
145
  }): Promise<CashOutQuote>;
112
146
  /**
113
147
  * The default cash-out slippage tolerance, in basis points (1%).
@@ -1 +1 @@
1
- {"version":3,"file":"cashOut.d.ts","sourceRoot":"","sources":["../../../src/v6/cashOut.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,GAAG,EACH,YAAY,EAGb,MAAM,MAAM,CAAC;AACd,OAAO,EACL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxC,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,gBAAgB,CAAC;AAExB;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,kBAAkB,CAAC;IAC/B,YAAY,EAAE,iBAAiB,CAAC;IAChC,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;CACzE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,YAAY,EACZ,cAAc,EACd,kBAAuB,EACvB,WAAW,EACX,QAAe,GAChB,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,GAAG,kBAAkB,CAgBrB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,gBAAgB,EAChB,QAAQ,GACT,EAAE;IACD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,GAAG,CAiBN;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,YAAY,EACpB,EACE,OAAO,EACP,SAAS,EACT,YAAY,EACZ,QAAc,EACd,QAA2C,GAC5C,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,YAAY,CAAC,CAYvB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAWlD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,MAAsC,GAClD,MAAM,CAKR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,aAAa,EACb,cAAc,EACd,oBAA4B,EAC5B,cAAmB,GACpB,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,MAAM,CAMT;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC,EAAE,OAAO,CAAC;CAC/C;AAaD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,GAAG,GAAG,kBAAkB,CAqB1E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,IAAI,EACJ,oBAAoB,EACpB,IAAY,GACb,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,GAAG,CAYN;AAED,gFAAgF;AAChF,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC;IAC1B,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,EAAE,GAAG,CAAC;IACd,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,OAAO,EAAE,CAAC,kBAAkB,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;CAC1D;AAED,+EAA+E;AAC/E,MAAM,MAAM,gBAAgB,GACxB;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,YAAY,CAAC;CACvB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEN;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,0BAA+B,EAC/B,YAAY,EACZ,WAA2C,GAC5C,EAAE;IACD,OAAO,EAAE,YAAY,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,gBAAgB,CA6BnB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,gEAAgE;IAChE,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,oBAAqB,SAAQ,yBAAyB;IACrE,UAAU,CAAC,EAAE,0BAA0B,CAAC;CACzC;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GACrC,MAAM,GAAG,IAAI,CAaf;AAED,gFAAgF;AAChF,MAAM,MAAM,yBAAyB,GACjC,2BAA2B,GAC3B,oBAAoB,CAAC;AAEzB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,yBAAyB,CAAC;IAChC,QAAQ,EAAE,GAAG,CAAC;CACf;AA0CD,8EAA8E;AAC9E,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,GACb,qBAAqB,GAAG,IAAI,CAO9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,oBAA4B,EAC5B,cAAmB,EACnB,WAA2C,GAC5C,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACxD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,YAAY,CA8Ef;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,SAAS,wBAAwB,EAAE,CAAC;CACzD;AAkGD,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,YAAY,EACpB,EACE,OAAO,EACP,SAAS,EACT,MAAM,EACN,YAAY,EACZ,cAAc,EACd,WAAoB,EACpB,QAAQ,EACR,kBAAkB,EAClB,oBAA4B,EAC5B,WAA2C,GAC5C,EAAE,yBAAyB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAqBvB;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAsD3B;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,IAAI,4BAA4B;;CAQ1C;AAED,2EAA2E;AAC3E,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,EAAE,kBAAkB,CAAC;IAChC,OAAO,EAAE,sBAAsB,CAAC;IAChC,aAAa,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,MAAM,mBAAmB,GAC3B,CAAC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,wBAAwB,CAAC,GACjD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IAC1D,WAAW,EAAE,sBAAsB,CAAC;CACrC,CAAC;AAEN;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,EACpB,EACE,OAAO,EACP,SAAS,EACT,MAAM,EACN,YAAY,EACZ,cAAc,EACd,WAAoB,EACpB,QAAQ,EACR,kBAAkB,EAClB,oBAA4B,EAC5B,WAA2C,GAC5C,EAAE,yBAAyB,GAC3B,OAAO,CAAC,wBAAwB,CAAC,CAiEnC;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,oBAAoB,GAAG;IAAE,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAC1D,OAAO,CAAC,mBAAmB,CAAC,CAsB9B"}
1
+ {"version":3,"file":"cashOut.d.ts","sourceRoot":"","sources":["../../../src/v6/cashOut.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { decodeAbiParameters, encodeAbiParameters, } from "viem";
2
2
  import { jbMultiTerminalAbi, jbTerminalStoreAbi, } from "../generated/juicebox.js";
3
- import { applyJbDaoCashOutFee } from "../utils/fee.js";
4
3
  import { createHookMetadata, hookMetadataId } from "../utils/hook.js";
5
4
  import { NATIVE_TOKEN_CURRENCY_ID } from "./currency.js";
6
5
  import { v6Address } from "./types.js";
@@ -86,14 +85,40 @@ export function build721CashOutMetadata({ metadataIdTarget, tokenIds, }) {
86
85
  * @param args.currency The currency to quote the reclaim amount in (an
87
86
  * accounting-context currency, `uint32(uint160(token))`). Defaults to the native
88
87
  * token's currency (61166).
89
- * @returns The raw reclaim amount and the amount net of the 2.5% protocol fee.
88
+ * @param args.cashOutTaxRate The ruleset's cash-out tax rate, used to gate the
89
+ * protocol fee (see {@link cashOutProtocolFee}). When omitted,
90
+ * `reclaimAmountAfterFee` is `undefined` rather than a fabricated value.
91
+ * @param args.feeFreeSurplus The terminal's `feeFreeSurplusOf` for the reclaimed
92
+ * token. Required to resolve the fee when `cashOutTaxRate` is zero.
93
+ * @param args.beneficiaryIsFeeless Whether the beneficiary is feeless (pays no
94
+ * protocol fee). Defaults to false.
95
+ * @returns The raw reclaim amount and, when the fee inputs are resolved, the
96
+ * amount net of the conditional 2.5% protocol fee.
90
97
  *
91
98
  * NOTE: the defaults quote in NATIVE terms (decimals 18, token-keyed native
92
99
  * currency). For a project whose accounting token is not the native token
93
100
  * (e.g. USDC), pass that token's `decimals` and `tokenCurrencyId(token)` to
94
101
  * quote in its own terms and avoid a price-feed conversion.
102
+ *
103
+ * The quote envelope is set by the CURRENCY CONVENTION of the project's
104
+ * accounting contexts, not by which token it accounts in. `JBPrices` has no
105
+ * native special-case (`JBPrices.sol:226-246` only short-circuits same-currency
106
+ * pairs), so any cross-currency quote needs a registered feed. `deploy-all`
107
+ * registers the project-0 defaults `{ETH(1), uint32(NATIVE)}` (an identity
108
+ * feed) and `{ETH(1), USD(2)}` (`Deploy.s.sol:1546-1562`). So:
109
+ *
110
+ * - Native-context projects quote in ETH(1) fine.
111
+ * - Projects using the USD(2) currency convention for their ERC-20 contexts
112
+ * quote in ETH(1) fine.
113
+ * - Projects whose ERC-20 context is TOKEN-KEYED (`uint32(uint160(usdc))`)
114
+ * have no `{ETH(1), uint32(usdc)}` feed, so an ETH-denominated quote
115
+ * reverts.
116
+ *
117
+ * Prefer quoting each accounting context in its OWN currency
118
+ * (`tokenCurrencyId(context.token)` with `context.decimals`), which never needs
119
+ * a feed, and convert for display separately.
95
120
  */
96
- export async function getCashOutQuote(client, { chainId, projectId, cashOutCount, decimals = 18n, currency = BigInt(NATIVE_TOKEN_CURRENCY_ID), }) {
121
+ export async function getCashOutQuote(client, { chainId, projectId, cashOutCount, decimals = 18n, currency = BigInt(NATIVE_TOKEN_CURRENCY_ID), cashOutTaxRate, feeFreeSurplus, beneficiaryIsFeeless = false, }) {
97
122
  const reclaimAmount = await client.readContract({
98
123
  address: v6Address("JBTerminalStore", chainId),
99
124
  abi: jbTerminalStoreAbi,
@@ -102,9 +127,34 @@ export async function getCashOutQuote(client, { chainId, projectId, cashOutCount
102
127
  });
103
128
  return {
104
129
  reclaimAmount,
105
- reclaimAmountAfterFee: applyJbDaoCashOutFee(reclaimAmount),
130
+ reclaimAmountAfterFee: resolvedReclaimAmountAfterFee({
131
+ reclaimAmount,
132
+ cashOutTaxRate,
133
+ feeFreeSurplus,
134
+ beneficiaryIsFeeless,
135
+ }),
106
136
  };
107
137
  }
138
+ /**
139
+ * The reclaim net of the protocol fee, or `undefined` while the fee-gating
140
+ * inputs are unresolved (never a fabricated value): the fee needs the ruleset's
141
+ * `cashOutTaxRate`, and — when that rate is zero — the terminal's
142
+ * `feeFreeSurplusOf` too. Feeless beneficiaries resolve without either.
143
+ */
144
+ function resolvedReclaimAmountAfterFee({ reclaimAmount, cashOutTaxRate, feeFreeSurplus, beneficiaryIsFeeless, }) {
145
+ if (beneficiaryIsFeeless)
146
+ return reclaimAmount;
147
+ if (cashOutTaxRate === undefined)
148
+ return undefined;
149
+ if (cashOutTaxRate === 0n && feeFreeSurplus === undefined)
150
+ return undefined;
151
+ return (reclaimAmount -
152
+ cashOutProtocolFee({
153
+ reclaimAmount,
154
+ cashOutTaxRate,
155
+ feeFreeSurplus: feeFreeSurplus ?? 0n,
156
+ }));
157
+ }
108
158
  /**
109
159
  * The default cash-out slippage tolerance, in basis points (1%).
110
160
  *