@bananapus/nana-sdk-core 3.3.0 → 3.5.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 (69) hide show
  1. package/dist/cjs/review/heldWrite.js +1 -1
  2. package/dist/cjs/review/heldWrite.js.map +1 -1
  3. package/dist/cjs/review/messages.d.ts +3 -1
  4. package/dist/cjs/review/messages.d.ts.map +1 -1
  5. package/dist/cjs/review/messages.js +4 -2
  6. package/dist/cjs/review/messages.js.map +1 -1
  7. package/dist/cjs/review/writeHold.d.ts +9 -6
  8. package/dist/cjs/review/writeHold.d.ts.map +1 -1
  9. package/dist/cjs/review/writeHold.js +12 -4
  10. package/dist/cjs/review/writeHold.js.map +1 -1
  11. package/dist/cjs/review/writeRecovery.d.ts +3 -2
  12. package/dist/cjs/review/writeRecovery.d.ts.map +1 -1
  13. package/dist/cjs/review/writeRecovery.js +3 -2
  14. package/dist/cjs/review/writeRecovery.js.map +1 -1
  15. package/dist/cjs/v6/defifa.d.ts +4 -2
  16. package/dist/cjs/v6/defifa.d.ts.map +1 -1
  17. package/dist/cjs/v6/defifa.js +10 -6
  18. package/dist/cjs/v6/defifa.js.map +1 -1
  19. package/dist/cjs/v6/executionErrors.d.ts +69 -11
  20. package/dist/cjs/v6/executionErrors.d.ts.map +1 -1
  21. package/dist/cjs/v6/executionErrors.js +160 -75
  22. package/dist/cjs/v6/executionErrors.js.map +1 -1
  23. package/dist/cjs/v6/index.d.ts +2 -1
  24. package/dist/cjs/v6/index.d.ts.map +1 -1
  25. package/dist/cjs/v6/index.js +4 -1
  26. package/dist/cjs/v6/index.js.map +1 -1
  27. package/dist/cjs/v6/pay.d.ts +35 -8
  28. package/dist/cjs/v6/pay.d.ts.map +1 -1
  29. package/dist/cjs/v6/pay.js +487 -48
  30. package/dist/cjs/v6/pay.js.map +1 -1
  31. package/dist/cjs/v6/uniswapV3.d.ts +21 -0
  32. package/dist/cjs/v6/uniswapV3.d.ts.map +1 -0
  33. package/dist/cjs/v6/uniswapV3.js +72 -0
  34. package/dist/cjs/v6/uniswapV3.js.map +1 -0
  35. package/dist/esm/review/heldWrite.js +2 -2
  36. package/dist/esm/review/heldWrite.js.map +1 -1
  37. package/dist/esm/review/messages.d.ts +3 -1
  38. package/dist/esm/review/messages.d.ts.map +1 -1
  39. package/dist/esm/review/messages.js +3 -1
  40. package/dist/esm/review/messages.js.map +1 -1
  41. package/dist/esm/review/writeHold.d.ts +9 -6
  42. package/dist/esm/review/writeHold.d.ts.map +1 -1
  43. package/dist/esm/review/writeHold.js +12 -4
  44. package/dist/esm/review/writeHold.js.map +1 -1
  45. package/dist/esm/review/writeRecovery.d.ts +3 -2
  46. package/dist/esm/review/writeRecovery.d.ts.map +1 -1
  47. package/dist/esm/review/writeRecovery.js +3 -2
  48. package/dist/esm/review/writeRecovery.js.map +1 -1
  49. package/dist/esm/v6/defifa.d.ts +4 -2
  50. package/dist/esm/v6/defifa.d.ts.map +1 -1
  51. package/dist/esm/v6/defifa.js +10 -6
  52. package/dist/esm/v6/defifa.js.map +1 -1
  53. package/dist/esm/v6/executionErrors.d.ts +69 -11
  54. package/dist/esm/v6/executionErrors.d.ts.map +1 -1
  55. package/dist/esm/v6/executionErrors.js +159 -76
  56. package/dist/esm/v6/executionErrors.js.map +1 -1
  57. package/dist/esm/v6/index.d.ts +2 -1
  58. package/dist/esm/v6/index.d.ts.map +1 -1
  59. package/dist/esm/v6/index.js +2 -1
  60. package/dist/esm/v6/index.js.map +1 -1
  61. package/dist/esm/v6/pay.d.ts +35 -8
  62. package/dist/esm/v6/pay.d.ts.map +1 -1
  63. package/dist/esm/v6/pay.js +487 -49
  64. package/dist/esm/v6/pay.js.map +1 -1
  65. package/dist/esm/v6/uniswapV3.d.ts +21 -0
  66. package/dist/esm/v6/uniswapV3.d.ts.map +1 -0
  67. package/dist/esm/v6/uniswapV3.js +68 -0
  68. package/dist/esm/v6/uniswapV3.js.map +1 -0
  69. package/package.json +1 -1
@@ -121,14 +121,24 @@ export interface PreparedUserPay {
121
121
  metadata: Hex;
122
122
  preview: PayPreview;
123
123
  minReturnedTokens: bigint;
124
+ /**
125
+ * True when a pool quote could not be read, even on a retry, so the minimum
126
+ * is only the mint-based fallback. Show the payer
127
+ * {@link PAY_QUOTE_FAILED_MESSAGE} and a way to quote again.
128
+ */
129
+ quoteFailed?: boolean;
124
130
  }
131
+ /** What to tell the payer when {@link PreparedUserPay.quoteFailed} is set. */
132
+ export declare const PAY_QUOTE_FAILED_MESSAGE = "Couldn't read the pool's price, so this payment's minimum is only the mint rate.";
133
+ /** `prepareUserPay`'s tolerance on its quote and fallback minimum: 1%. */
134
+ export declare const PAY_DEFAULT_SLIPPAGE_BPS = 100n;
125
135
  /**
126
136
  * Prepare a person's payment with {@link buildUserPayMetadata}: preview it,
127
137
  * and set the minimum the terminal enforces on the beneficiary's balance.
128
138
  *
129
- * When the project's buyback hook has a pool in the paid token, this quotes
130
- * that pool (fee and price impact included) and sends the slippage-floored
131
- * quote as an explicit minimum, so the payer gets the pool's rate whenever it
139
+ * When the project's buyback hook would swap, this quotes its pool (fee and
140
+ * price impact included) and sends the slippage-floored quote as an explicit
141
+ * minimum, so the payer gets the pool's rate whenever it
132
142
  * beats minting. The hook compares that minimum to the swap output plus the
133
143
  * leftover mint: the whole leftover mint when the swapped tokens go through
134
144
  * the reserved split (`skipSplits` false, and always on hook 1.1.1, which
@@ -140,17 +150,34 @@ export interface PreparedUserPay {
140
150
  * which reaches zero on large buys against a thin pool and sends them to
141
151
  * minting even when the pool pays far more.
142
152
  *
143
- * Otherwise (no pool, a router converting the token first, or a failed quote)
144
- * the minimum is the payer's mint entitlement when the hook would swap, since
145
- * the hook never settles below it, and the terminal's own issuance when it
146
- * would not. If the payment then reverts, {@link decodePayFailure} says why.
153
+ * Behind a router terminal, its registry or its gateway, when the router
154
+ * converts the paid token first with one swap, the pool is the one in the
155
+ * token it converts to, quoted on what that swap is quoted to return. If the
156
+ * conversion returns noticeably less, the hook's minimum reverts the payment.
157
+ * If it returns more, the hook mints once minting reaches the minimum, which
158
+ * happens only when the pool beats minting by less than `slippageBps` plus
159
+ * that gain. The payer still receives at least the minimum, and no fixed
160
+ * minimum avoids this when the pool's edge is inside the conversion's
161
+ * uncertainty. Other routes, such as cashing a project token out first, keep
162
+ * the fallback. When the project has no buyback hook and accepts one token,
163
+ * the minimum is what minting the quoted conversion issues, instead of the
164
+ * router's floor.
165
+ *
166
+ * Otherwise (no pool, or a failed quote) the minimum is the payer's mint
167
+ * entitlement when the hook would swap, since the hook never settles below it,
168
+ * and the terminal's own issuance when it would not. A quote whose reads fail
169
+ * twice returns `quoteFailed`, so the app can say the pool's rate is not
170
+ * protected. If the payment then
171
+ * reverts, {@link decodePayFailure} says why. To let the payer accept less,
172
+ * prepare again with a larger `slippageBps`: the hook's minimum is in the
173
+ * metadata, so lowering `minReturnedTokens` alone does not relax it.
147
174
  *
148
175
  * When the ruleset calls buyback hook 1.4 directly (or through the omnichain
149
176
  * deployer) instead of through the registry, the metadata is keyed to the hook,
150
177
  * which reads nothing else.
151
178
  *
152
179
  * @param args.slippageBps Tolerance on the pool quote and on the fallback
153
- * minimum. Defaults to 100 (1%).
180
+ * minimum. Defaults to {@link PAY_DEFAULT_SLIPPAGE_BPS}.
154
181
  * @param args.skipSplits Whether the beneficiary keeps the swapped tokens
155
182
  * without the reserved split. Defaults to true, as a person's pay card does;
156
183
  * pass false for payments that should honor the project's splits, such as
@@ -1 +1 @@
1
- {"version":3,"file":"pay.d.ts","sourceRoot":"","sources":["../../../src/v6/pay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pay.d.ts","sourceRoot":"","sources":["../../../src/v6/pay.ts"],"names":[],"mappings":"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"}