@bananapus/nana-sdk-core 6.5.0 → 6.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/utils/hook.d.ts +13 -0
- package/dist/cjs/utils/hook.d.ts.map +1 -1
- package/dist/cjs/utils/hook.js +49 -0
- package/dist/cjs/utils/hook.js.map +1 -1
- package/dist/cjs/v6/cashOut.d.ts +5 -1
- package/dist/cjs/v6/cashOut.d.ts.map +1 -1
- package/dist/cjs/v6/cashOut.js +14 -2
- package/dist/cjs/v6/cashOut.js.map +1 -1
- package/dist/cjs/v6/index.d.ts +1 -0
- package/dist/cjs/v6/index.d.ts.map +1 -1
- package/dist/cjs/v6/index.js +1 -0
- package/dist/cjs/v6/index.js.map +1 -1
- package/dist/cjs/v6/permit2.d.ts +106 -1
- package/dist/cjs/v6/permit2.d.ts.map +1 -1
- package/dist/cjs/v6/permit2.js +150 -1
- package/dist/cjs/v6/permit2.js.map +1 -1
- package/dist/cjs/v6/projectHooks.d.ts +53 -0
- package/dist/cjs/v6/projectHooks.d.ts.map +1 -0
- package/dist/cjs/v6/projectHooks.js +203 -0
- package/dist/cjs/v6/projectHooks.js.map +1 -0
- package/dist/cjs/v6/revnets.d.ts +42 -0
- package/dist/cjs/v6/revnets.d.ts.map +1 -1
- package/dist/cjs/v6/revnets.js +60 -0
- package/dist/cjs/v6/revnets.js.map +1 -1
- package/dist/cjs/v6/terminals.d.ts +24 -0
- package/dist/cjs/v6/terminals.d.ts.map +1 -1
- package/dist/cjs/v6/terminals.js +52 -0
- package/dist/cjs/v6/terminals.js.map +1 -1
- package/dist/esm/utils/hook.d.ts +13 -0
- package/dist/esm/utils/hook.d.ts.map +1 -1
- package/dist/esm/utils/hook.js +48 -0
- package/dist/esm/utils/hook.js.map +1 -1
- package/dist/esm/v6/cashOut.d.ts +5 -1
- package/dist/esm/v6/cashOut.d.ts.map +1 -1
- package/dist/esm/v6/cashOut.js +14 -2
- package/dist/esm/v6/cashOut.js.map +1 -1
- package/dist/esm/v6/index.d.ts +1 -0
- package/dist/esm/v6/index.d.ts.map +1 -1
- package/dist/esm/v6/index.js +1 -0
- package/dist/esm/v6/index.js.map +1 -1
- package/dist/esm/v6/permit2.d.ts +106 -1
- package/dist/esm/v6/permit2.d.ts.map +1 -1
- package/dist/esm/v6/permit2.js +145 -0
- package/dist/esm/v6/permit2.js.map +1 -1
- package/dist/esm/v6/projectHooks.d.ts +53 -0
- package/dist/esm/v6/projectHooks.d.ts.map +1 -0
- package/dist/esm/v6/projectHooks.js +200 -0
- package/dist/esm/v6/projectHooks.js.map +1 -0
- package/dist/esm/v6/revnets.d.ts +42 -0
- package/dist/esm/v6/revnets.d.ts.map +1 -1
- package/dist/esm/v6/revnets.js +58 -1
- package/dist/esm/v6/revnets.js.map +1 -1
- package/dist/esm/v6/terminals.d.ts +24 -0
- package/dist/esm/v6/terminals.d.ts.map +1 -1
- package/dist/esm/v6/terminals.js +51 -0
- package/dist/esm/v6/terminals.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/utils/hook.d.ts
CHANGED
|
@@ -34,4 +34,17 @@ export declare function hookMetadataId(target: Address, purpose: string): Hex;
|
|
|
34
34
|
* @link https://github.com/Bananapus/nana-core-v6/blob/main/src/libraries/JBMetadataResolver.sol (`createMetadata`)
|
|
35
35
|
*/
|
|
36
36
|
export declare function createHookMetadata(ids: string[], metadatas: string[]): Hex;
|
|
37
|
+
/**
|
|
38
|
+
* Add one `{id: data}` entry to packed hook metadata, as
|
|
39
|
+
* `JBMetadataResolver.addToMetadata` does: the existing entries keep their
|
|
40
|
+
* order and payloads, and the lookup table is rebuilt with the new one last.
|
|
41
|
+
* Every payload must be whole words, as {@link createHookMetadata} packs them:
|
|
42
|
+
* a last payload that is not cannot be told from one that was cut off.
|
|
43
|
+
*
|
|
44
|
+
* @param metadata Packed metadata from {@link createHookMetadata}, or `0x`.
|
|
45
|
+
* @param id The 4-byte lookup id, from {@link hookMetadataId}.
|
|
46
|
+
* @param data The payload for `id`.
|
|
47
|
+
* @link https://github.com/Bananapus/nana-core-v6/blob/main/src/libraries/JBMetadataResolver.sol (`addToMetadata`)
|
|
48
|
+
*/
|
|
49
|
+
export declare function addToHookMetadata(metadata: string | undefined, id: string, data: string): Hex;
|
|
37
50
|
//# sourceMappingURL=hook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/utils/hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAkC,MAAM,MAAM,CAAC;AAEpE;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAKpE;AAuBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAuC1E"}
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/utils/hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAkC,MAAM,MAAM,CAAC;AAEpE;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAKpE;AAuBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAuC1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GACX,GAAG,CAyCL"}
|
package/dist/cjs/utils/hook.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hookMetadataId = hookMetadataId;
|
|
4
4
|
exports.createHookMetadata = createHookMetadata;
|
|
5
|
+
exports.addToHookMetadata = addToHookMetadata;
|
|
5
6
|
const viem_1 = require("viem");
|
|
6
7
|
/**
|
|
7
8
|
* The metadata lookup id a JB hook resolves via `JBMetadataResolver.getId`:
|
|
@@ -93,4 +94,52 @@ function createHookMetadata(ids, metadatas) {
|
|
|
93
94
|
const paddedTable = table.padEnd(Math.ceil(table.length / WORD_CHARS) * WORD_CHARS, "0");
|
|
94
95
|
return `0x${"0".repeat(WORD_CHARS)}${paddedTable}${payloads.join("")}`;
|
|
95
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Add one `{id: data}` entry to packed hook metadata, as
|
|
99
|
+
* `JBMetadataResolver.addToMetadata` does: the existing entries keep their
|
|
100
|
+
* order and payloads, and the lookup table is rebuilt with the new one last.
|
|
101
|
+
* Every payload must be whole words, as {@link createHookMetadata} packs them:
|
|
102
|
+
* a last payload that is not cannot be told from one that was cut off.
|
|
103
|
+
*
|
|
104
|
+
* @param metadata Packed metadata from {@link createHookMetadata}, or `0x`.
|
|
105
|
+
* @param id The 4-byte lookup id, from {@link hookMetadataId}.
|
|
106
|
+
* @param data The payload for `id`.
|
|
107
|
+
* @link https://github.com/Bananapus/nana-core-v6/blob/main/src/libraries/JBMetadataResolver.sol (`addToMetadata`)
|
|
108
|
+
*/
|
|
109
|
+
function addToHookMetadata(metadata, id, data) {
|
|
110
|
+
const body = hexBody(metadata ?? "0x", "metadata");
|
|
111
|
+
const ids = [];
|
|
112
|
+
const offsets = [];
|
|
113
|
+
// The first entry's offset is where the lookup table ends.
|
|
114
|
+
const idChars = TOTAL_ID_SIZE * 2;
|
|
115
|
+
// Up to one word is the reserved word alone, which is kept, as the contract keeps it.
|
|
116
|
+
const reserved = body.slice(0, WORD_CHARS).padEnd(WORD_CHARS, "0");
|
|
117
|
+
const hasTable = body.length > WORD_CHARS;
|
|
118
|
+
const tableEnd = hasTable
|
|
119
|
+
? parseInt(body.slice(WORD_CHARS + 8, WORD_CHARS + idChars), 16) *
|
|
120
|
+
WORD_CHARS
|
|
121
|
+
: 0;
|
|
122
|
+
// Repacking pads whatever it is given, which would turn a cut-off payload
|
|
123
|
+
// into a valid one with different values: malformed metadata is refused.
|
|
124
|
+
const malformed = () => new Error("metadata is not well-formed packed hook metadata.");
|
|
125
|
+
if (hasTable &&
|
|
126
|
+
(body.length % WORD_CHARS !== 0 ||
|
|
127
|
+
!(tableEnd >= 2 * WORD_CHARS && tableEnd < body.length)))
|
|
128
|
+
throw malformed();
|
|
129
|
+
for (let i = WORD_CHARS; i + idChars <= tableEnd; i += idChars) {
|
|
130
|
+
const offset = parseInt(body.slice(i + 8, i + idChars), 16) * WORD_CHARS;
|
|
131
|
+
// A zero offset is the table's padding.
|
|
132
|
+
if (!offset)
|
|
133
|
+
break;
|
|
134
|
+
// Each payload starts after the one before it and inside the metadata.
|
|
135
|
+
if (offset <= (offsets[offsets.length - 1] ?? tableEnd - 1) ||
|
|
136
|
+
offset >= body.length)
|
|
137
|
+
throw malformed();
|
|
138
|
+
ids.push(`0x${body.slice(i, i + 8)}`);
|
|
139
|
+
offsets.push(offset);
|
|
140
|
+
}
|
|
141
|
+
const payloads = offsets.map((start, i) => `0x${body.slice(start, offsets[i + 1] ?? body.length)}`);
|
|
142
|
+
const packed = createHookMetadata([...ids, id], [...payloads, data]);
|
|
143
|
+
return `0x${reserved}${packed.slice(2 + WORD_CHARS)}`;
|
|
144
|
+
}
|
|
96
145
|
//# sourceMappingURL=hook.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/utils/hook.ts"],"names":[],"mappings":";;AAeA,wCAKC;AA2CD,gDAuCC;
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/utils/hook.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/v6/cashOut.d.ts
CHANGED
|
@@ -107,6 +107,9 @@ export interface CashOutQuote {
|
|
|
107
107
|
* token. Required to resolve the fee when `cashOutTaxRate` is zero.
|
|
108
108
|
* @param args.beneficiaryIsFeeless Whether the beneficiary is feeless (pays no
|
|
109
109
|
* protocol fee). Defaults to false.
|
|
110
|
+
* @param args.revnetFeeApplies Whether the project is a revnet that takes its
|
|
111
|
+
* cash out fee here (`revnetCashOutFeeApplies`). The quote is then for the
|
|
112
|
+
* count left after that fee. Defaults to false.
|
|
110
113
|
* @returns The raw reclaim amount and, when the fee inputs are resolved, the
|
|
111
114
|
* amount net of the conditional 2.5% protocol fee.
|
|
112
115
|
*
|
|
@@ -133,7 +136,7 @@ export interface CashOutQuote {
|
|
|
133
136
|
* (`tokenCurrencyId(context.token)` with `context.decimals`), which never needs
|
|
134
137
|
* a feed, and convert for display separately.
|
|
135
138
|
*/
|
|
136
|
-
export declare function getCashOutQuote(client: PublicClient, { chainId, projectId, cashOutCount, decimals, currency, cashOutTaxRate, feeFreeSurplus, beneficiaryIsFeeless, }: {
|
|
139
|
+
export declare function getCashOutQuote(client: PublicClient, { chainId, projectId, cashOutCount, decimals, currency, cashOutTaxRate, feeFreeSurplus, beneficiaryIsFeeless, revnetFeeApplies, }: {
|
|
137
140
|
chainId: JBChainId;
|
|
138
141
|
projectId: bigint;
|
|
139
142
|
cashOutCount: bigint;
|
|
@@ -142,6 +145,7 @@ export declare function getCashOutQuote(client: PublicClient, { chainId, project
|
|
|
142
145
|
cashOutTaxRate?: bigint;
|
|
143
146
|
feeFreeSurplus?: bigint;
|
|
144
147
|
beneficiaryIsFeeless?: boolean;
|
|
148
|
+
revnetFeeApplies?: boolean;
|
|
145
149
|
}): Promise<CashOutQuote>;
|
|
146
150
|
/**
|
|
147
151
|
* 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;
|
|
1
|
+
{"version":3,"file":"cashOut.d.ts","sourceRoot":"","sources":["../../../src/v6/cashOut.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/v6/cashOut.js
CHANGED
|
@@ -21,6 +21,7 @@ const juicebox_js_1 = require("../generated/juicebox.js");
|
|
|
21
21
|
const hook_js_1 = require("../utils/hook.js");
|
|
22
22
|
const currency_js_1 = require("./currency.js");
|
|
23
23
|
const executionErrors_js_1 = require("./executionErrors.js");
|
|
24
|
+
const revnets_js_1 = require("./revnets.js");
|
|
24
25
|
const types_js_1 = require("./types.js");
|
|
25
26
|
const uniswapV4_js_1 = require("./uniswapV4.js");
|
|
26
27
|
/**
|
|
@@ -111,6 +112,9 @@ function build721CashOutMetadata({ metadataIdTarget, tokenIds, }) {
|
|
|
111
112
|
* token. Required to resolve the fee when `cashOutTaxRate` is zero.
|
|
112
113
|
* @param args.beneficiaryIsFeeless Whether the beneficiary is feeless (pays no
|
|
113
114
|
* protocol fee). Defaults to false.
|
|
115
|
+
* @param args.revnetFeeApplies Whether the project is a revnet that takes its
|
|
116
|
+
* cash out fee here (`revnetCashOutFeeApplies`). The quote is then for the
|
|
117
|
+
* count left after that fee. Defaults to false.
|
|
114
118
|
* @returns The raw reclaim amount and, when the fee inputs are resolved, the
|
|
115
119
|
* amount net of the conditional 2.5% protocol fee.
|
|
116
120
|
*
|
|
@@ -137,12 +141,20 @@ function build721CashOutMetadata({ metadataIdTarget, tokenIds, }) {
|
|
|
137
141
|
* (`tokenCurrencyId(context.token)` with `context.decimals`), which never needs
|
|
138
142
|
* a feed, and convert for display separately.
|
|
139
143
|
*/
|
|
140
|
-
async function getCashOutQuote(client, { chainId, projectId, cashOutCount, decimals = 18n, currency = BigInt(currency_js_1.NATIVE_TOKEN_CURRENCY_ID), cashOutTaxRate, feeFreeSurplus, beneficiaryIsFeeless = false, }) {
|
|
144
|
+
async function getCashOutQuote(client, { chainId, projectId, cashOutCount, decimals = 18n, currency = BigInt(currency_js_1.NATIVE_TOKEN_CURRENCY_ID), cashOutTaxRate, feeFreeSurplus, beneficiaryIsFeeless = false, revnetFeeApplies = false, }) {
|
|
141
145
|
const reclaimAmount = await client.readContract({
|
|
142
146
|
address: (0, types_js_1.v6Address)("JBTerminalStore", chainId),
|
|
143
147
|
abi: juicebox_js_1.jbTerminalStoreAbi,
|
|
144
148
|
functionName: "currentReclaimableSurplusOf",
|
|
145
|
-
args: [
|
|
149
|
+
args: [
|
|
150
|
+
projectId,
|
|
151
|
+
// The store does not run the revnet's hook, so its fee is taken here.
|
|
152
|
+
(0, revnets_js_1.cashOutCountAfterRevnetFee)(cashOutCount, revnetFeeApplies),
|
|
153
|
+
[],
|
|
154
|
+
[],
|
|
155
|
+
decimals,
|
|
156
|
+
currency,
|
|
157
|
+
],
|
|
146
158
|
});
|
|
147
159
|
return {
|
|
148
160
|
reclaimAmount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cashOut.js","sourceRoot":"","sources":["../../../src/v6/cashOut.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cashOut.js","sourceRoot":"","sources":["../../../src/v6/cashOut.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/v6/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export * from "./terminals.js";
|
|
|
11
11
|
export * from "./pay.js";
|
|
12
12
|
export * from "./priceFeeds.js";
|
|
13
13
|
export * from "./permit2.js";
|
|
14
|
+
export * from "./projectHooks.js";
|
|
14
15
|
export * from "./projectPayers.js";
|
|
15
16
|
export * from "./cashOut.js";
|
|
16
17
|
export { decodePayFailure, PAY_MAX_SLIPPAGE_BPS, payRetrySlippageBps, type PayFailure, type PayFailureAdjustable, type PayFailureReason, } from "./executionErrors.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v6/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v6/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
|
package/dist/cjs/v6/index.js
CHANGED
|
@@ -28,6 +28,7 @@ __exportStar(require("./terminals.js"), exports);
|
|
|
28
28
|
__exportStar(require("./pay.js"), exports);
|
|
29
29
|
__exportStar(require("./priceFeeds.js"), exports);
|
|
30
30
|
__exportStar(require("./permit2.js"), exports);
|
|
31
|
+
__exportStar(require("./projectHooks.js"), exports);
|
|
31
32
|
__exportStar(require("./projectPayers.js"), exports);
|
|
32
33
|
__exportStar(require("./cashOut.js"), exports);
|
|
33
34
|
var executionErrors_js_1 = require("./executionErrors.js");
|
package/dist/cjs/v6/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v6/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,gDAA8B;AAC9B,4CAA0B;AAC1B,8CAA4B;AAC5B,iDAA+B;AAC/B,gDAA8B;AAC9B,8CAA4B;AAC5B,qDAAmC;AACnC,+CAA6B;AAC7B,iDAA+B;AAC/B,2CAAyB;AACzB,kDAAgC;AAChC,+CAA6B;AAC7B,qDAAmC;AACnC,+CAA6B;AAC7B,2DAO8B;AAN5B,sHAAA,gBAAgB,OAAA;AAChB,0HAAA,oBAAoB,OAAA;AACpB,yHAAA,mBAAmB,OAAA;AAKrB,2CAAyB;AACzB,oDAAkC;AAClC,8CAA4B;AAC5B,yDAI6B;AAH3B,sHAAA,iBAAiB,OAAA;AAInB,8CAA4B;AAC5B,iDAA+B;AAC/B,iDAA+B;AAC/B,qDAAmC;AACnC,mDAAiC;AACjC,+CAA6B;AAC7B,6CAA2B;AAC3B,8CAA4B;AAC5B,iDAA+B;AAC/B,6DAA2C;AAC3C,qDAAmC;AACnC,yDAAuC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v6/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,gDAA8B;AAC9B,4CAA0B;AAC1B,8CAA4B;AAC5B,iDAA+B;AAC/B,gDAA8B;AAC9B,8CAA4B;AAC5B,qDAAmC;AACnC,+CAA6B;AAC7B,iDAA+B;AAC/B,2CAAyB;AACzB,kDAAgC;AAChC,+CAA6B;AAC7B,oDAAkC;AAClC,qDAAmC;AACnC,+CAA6B;AAC7B,2DAO8B;AAN5B,sHAAA,gBAAgB,OAAA;AAChB,0HAAA,oBAAoB,OAAA;AACpB,yHAAA,mBAAmB,OAAA;AAKrB,2CAAyB;AACzB,oDAAkC;AAClC,8CAA4B;AAC5B,yDAI6B;AAH3B,sHAAA,iBAAiB,OAAA;AAInB,8CAA4B;AAC5B,iDAA+B;AAC/B,iDAA+B;AAC/B,qDAAmC;AACnC,mDAAiC;AACjC,+CAA6B;AAC7B,6CAA2B;AAC3B,8CAA4B;AAC5B,iDAA+B;AAC/B,6DAA2C;AAC3C,qDAAmC;AACnC,yDAAuC"}
|
package/dist/cjs/v6/permit2.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Address, type Hex, type PublicClient } from "viem";
|
|
2
2
|
import type { JBChainId } from "../types.js";
|
|
3
3
|
/** Canonical Permit2 deployment shared by supported EVM chains. */
|
|
4
4
|
export declare const PERMIT2_ADDRESS: `0x${string}`;
|
|
@@ -166,4 +166,109 @@ export declare function shouldUsePermit2Signature({ needsApproval, walletLookupS
|
|
|
166
166
|
}): boolean;
|
|
167
167
|
/** Fall back only for wallets that cannot sign typed data, never on rejection. */
|
|
168
168
|
export declare function permit2SignatureNeedsOnchainFallback(error: unknown): boolean;
|
|
169
|
+
/** How long a signed pay authorization stays usable, matching the swap flows. */
|
|
170
|
+
export declare const PERMIT2_PAY_AUTHORIZATION_SECONDS = 1800;
|
|
171
|
+
/** What an ERC-20 payment to a pay entry still needs from the payer. */
|
|
172
|
+
export interface Permit2PayAuthorization {
|
|
173
|
+
/** The entry's own ERC-20 allowance covers the amount: pay with no authorization. */
|
|
174
|
+
direct: boolean;
|
|
175
|
+
/** The token's allowance for Permit2 is short: one approval of Permit2 comes first. */
|
|
176
|
+
needsTokenApproval: boolean;
|
|
177
|
+
/** The exact, expiring allowance to sign with `signReviewed({ kind: "permit2" })`. */
|
|
178
|
+
authorization: Permit2SignatureAuthorization;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Read what paying `amount` of an ERC-20 into a pay entry needs. The entry is
|
|
182
|
+
* the contract the payer calls: JBMultiTerminal, JBRouterTerminal, its registry
|
|
183
|
+
* or its gateway. Each pulls through its own ERC-20 allowance when that covers
|
|
184
|
+
* the amount, and otherwise through Permit2 with the allowance its pay
|
|
185
|
+
* metadata carries (see {@link addPermit2PayMetadata}).
|
|
186
|
+
*
|
|
187
|
+
* The authorization is for exactly `amount`, to `entry` only, and expires
|
|
188
|
+
* {@link PERMIT2_PAY_AUTHORIZATION_SECONDS} after the chain's latest block.
|
|
189
|
+
*/
|
|
190
|
+
export declare function readPermit2PayAuthorization(client: PublicClient, { chainId, owner, token, entry, amount, blockNumber, }: {
|
|
191
|
+
chainId: JBChainId;
|
|
192
|
+
owner: Address;
|
|
193
|
+
token: Address;
|
|
194
|
+
entry: Address;
|
|
195
|
+
amount: bigint;
|
|
196
|
+
/** Read allowances at this block, so an approval just mined is seen on a lagging backend. */
|
|
197
|
+
blockNumber?: bigint;
|
|
198
|
+
}): Promise<Permit2PayAuthorization>;
|
|
199
|
+
/**
|
|
200
|
+
* Add a signed Permit2 allowance to pay metadata, keyed to the entry that
|
|
201
|
+
* spends it. The entry decodes one `JBSingleAllowance` tuple
|
|
202
|
+
* (`sigDeadline, amount, expiration, nonce, signature`), so the payload is a
|
|
203
|
+
* single dynamic tuple, not flat fields.
|
|
204
|
+
*
|
|
205
|
+
* @link https://github.com/Bananapus/nana-core-v6/blob/main/src/structs/JBSingleAllowance.sol
|
|
206
|
+
*/
|
|
207
|
+
export declare function addPermit2PayMetadata({ metadata, authorization, signature, }: {
|
|
208
|
+
metadata?: Hex;
|
|
209
|
+
authorization: Permit2SignatureAuthorization;
|
|
210
|
+
signature: Hex;
|
|
211
|
+
}): Hex;
|
|
212
|
+
/** A pay authorization the payer signed, kept while its payment retries. */
|
|
213
|
+
export interface SignedPermit2PayAuthorization {
|
|
214
|
+
/** The account that signed. Permit2 checks the signature against the payer. */
|
|
215
|
+
owner: Address;
|
|
216
|
+
authorization: Permit2SignatureAuthorization;
|
|
217
|
+
signature: Hex;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Whether a signature from an earlier attempt still authorizes this exact
|
|
221
|
+
* payment: the same payer, chain, token, entry, amount and Permit2 nonce as a freshly
|
|
222
|
+
* read authorization, with time left. Permit2 moves the nonce on when an
|
|
223
|
+
* allowance is used, so a spent signature is never reused.
|
|
224
|
+
*
|
|
225
|
+
* @param signed The kept signature, if any.
|
|
226
|
+
* @param fresh From {@link readPermit2PayAuthorization} or {@link planErc20PayAuthorization} now.
|
|
227
|
+
* @param owner The account `fresh` was read for, which pays.
|
|
228
|
+
*/
|
|
229
|
+
export declare function permit2PayAuthorizationReusable(signed: SignedPermit2PayAuthorization | null | undefined, fresh: Permit2SignatureAuthorization, owner: Address): signed is SignedPermit2PayAuthorization;
|
|
230
|
+
/** How a payer authorizes an ERC-20 payment to a pay entry. */
|
|
231
|
+
export type Erc20PayAuthorizationPlan =
|
|
232
|
+
/** The entry's own allowance already covers the amount. */
|
|
233
|
+
{
|
|
234
|
+
kind: "none";
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* A contract wallet (a Safe, or any account with code) approves the entry
|
|
238
|
+
* for the exact amount: it cannot produce the signature Permit2 checks, and
|
|
239
|
+
* its signers can outlast the authorization's deadline.
|
|
240
|
+
*/
|
|
241
|
+
| {
|
|
242
|
+
kind: "approve";
|
|
243
|
+
spender: Address;
|
|
244
|
+
amount: bigint;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* An EOA signs an exact, expiring Permit2 allowance for the entry. When
|
|
248
|
+
* `needsTokenApproval`, one approval of Permit2 itself comes first.
|
|
249
|
+
*/
|
|
250
|
+
| {
|
|
251
|
+
kind: "permit2";
|
|
252
|
+
needsTokenApproval: boolean;
|
|
253
|
+
authorization: Permit2SignatureAuthorization;
|
|
254
|
+
};
|
|
255
|
+
/**
|
|
256
|
+
* Decide how `owner` authorizes paying `amount` of an ERC-20 into a pay entry.
|
|
257
|
+
* One rule for every client: nothing when the entry is already approved, an
|
|
258
|
+
* exact approval of the entry for contract wallets, a Permit2 signature for
|
|
259
|
+
* EOAs. The native token needs no authorization and has no plan; do not call
|
|
260
|
+
* this for it.
|
|
261
|
+
*
|
|
262
|
+
* @param args.isSafe The connected wallet is a Safe (a Safe app or a Safe
|
|
263
|
+
* reached through WalletConnect), whatever its code reads as here.
|
|
264
|
+
*/
|
|
265
|
+
export declare function planErc20PayAuthorization(client: PublicClient, { isSafe, ...args }: {
|
|
266
|
+
chainId: JBChainId;
|
|
267
|
+
owner: Address;
|
|
268
|
+
token: Address;
|
|
269
|
+
entry: Address;
|
|
270
|
+
amount: bigint;
|
|
271
|
+
blockNumber?: bigint;
|
|
272
|
+
isSafe: boolean;
|
|
273
|
+
}): Promise<Erc20PayAuthorizationPlan>;
|
|
169
274
|
//# sourceMappingURL=permit2.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permit2.d.ts","sourceRoot":"","sources":["../../../src/v6/permit2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"permit2.d.ts","sourceRoot":"","sources":["../../../src/v6/permit2.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/v6/permit2.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PERMIT2_TYPES = exports.permit2Abi = exports.PERMIT2_ADDRESS = void 0;
|
|
3
|
+
exports.PERMIT2_PAY_AUTHORIZATION_SECONDS = exports.PERMIT2_TYPES = exports.permit2Abi = exports.PERMIT2_ADDRESS = void 0;
|
|
4
4
|
exports.permit2TypedData = permit2TypedData;
|
|
5
5
|
exports.readPermit2Allowance = readPermit2Allowance;
|
|
6
6
|
exports.permit2AllowanceNeedsRefresh = permit2AllowanceNeedsRefresh;
|
|
7
7
|
exports.needsPermit2Approval = needsPermit2Approval;
|
|
8
8
|
exports.shouldUsePermit2Signature = shouldUsePermit2Signature;
|
|
9
9
|
exports.permit2SignatureNeedsOnchainFallback = permit2SignatureNeedsOnchainFallback;
|
|
10
|
+
exports.readPermit2PayAuthorization = readPermit2PayAuthorization;
|
|
11
|
+
exports.addPermit2PayMetadata = addPermit2PayMetadata;
|
|
12
|
+
exports.permit2PayAuthorizationReusable = permit2PayAuthorizationReusable;
|
|
13
|
+
exports.planErc20PayAuthorization = planErc20PayAuthorization;
|
|
14
|
+
const viem_1 = require("viem");
|
|
10
15
|
const constants_js_1 = require("../constants.js");
|
|
16
|
+
const hook_js_1 = require("../utils/hook.js");
|
|
11
17
|
const uniswapV4Deployments_js_1 = require("./uniswapV4Deployments.js");
|
|
12
18
|
/** Canonical Permit2 deployment shared by supported EVM chains. */
|
|
13
19
|
exports.PERMIT2_ADDRESS = uniswapV4Deployments_js_1.UNISWAP_PERMIT2_ADDRESS;
|
|
@@ -142,4 +148,147 @@ function permit2SignatureNeedsOnchainFallback(error) {
|
|
|
142
148
|
return false;
|
|
143
149
|
return /(^|\s)-32602(\s|$)|(^|\s)-32601(\s|$)|(^|\s)4200(\s|$)|invalid parameters|method .*not supported|unsupported method|typed data.*not supported/.test(text);
|
|
144
150
|
}
|
|
151
|
+
/** How long a signed pay authorization stays usable, matching the swap flows. */
|
|
152
|
+
exports.PERMIT2_PAY_AUTHORIZATION_SECONDS = 1_800;
|
|
153
|
+
const MAX_UINT160 = (1n << 160n) - 1n;
|
|
154
|
+
/**
|
|
155
|
+
* Read what paying `amount` of an ERC-20 into a pay entry needs. The entry is
|
|
156
|
+
* the contract the payer calls: JBMultiTerminal, JBRouterTerminal, its registry
|
|
157
|
+
* or its gateway. Each pulls through its own ERC-20 allowance when that covers
|
|
158
|
+
* the amount, and otherwise through Permit2 with the allowance its pay
|
|
159
|
+
* metadata carries (see {@link addPermit2PayMetadata}).
|
|
160
|
+
*
|
|
161
|
+
* The authorization is for exactly `amount`, to `entry` only, and expires
|
|
162
|
+
* {@link PERMIT2_PAY_AUTHORIZATION_SECONDS} after the chain's latest block.
|
|
163
|
+
*/
|
|
164
|
+
async function readPermit2PayAuthorization(client, { chainId, owner, token, entry, amount, blockNumber, }) {
|
|
165
|
+
if (amount <= 0n || amount > MAX_UINT160) {
|
|
166
|
+
throw new Error("The payment amount is outside Permit2's uint160 range.");
|
|
167
|
+
}
|
|
168
|
+
const allowanceFor = (spender) => client.readContract({
|
|
169
|
+
address: token,
|
|
170
|
+
abi: viem_1.erc20Abi,
|
|
171
|
+
functionName: "allowance",
|
|
172
|
+
args: [owner, spender],
|
|
173
|
+
blockNumber,
|
|
174
|
+
});
|
|
175
|
+
const [direct, permit2Token, [, , nonce], block] = await Promise.all([
|
|
176
|
+
allowanceFor(entry),
|
|
177
|
+
allowanceFor(exports.PERMIT2_ADDRESS),
|
|
178
|
+
client.readContract({
|
|
179
|
+
address: exports.PERMIT2_ADDRESS,
|
|
180
|
+
abi: exports.permit2Abi,
|
|
181
|
+
functionName: "allowance",
|
|
182
|
+
args: [owner, token, entry],
|
|
183
|
+
blockNumber,
|
|
184
|
+
}),
|
|
185
|
+
client.getBlock({ blockTag: "latest" }),
|
|
186
|
+
]);
|
|
187
|
+
const now = Number(block.timestamp);
|
|
188
|
+
if (!Number.isSafeInteger(now) || now <= 0) {
|
|
189
|
+
throw new Error("Could not read the chain's time for the authorization.");
|
|
190
|
+
}
|
|
191
|
+
const deadline = now + exports.PERMIT2_PAY_AUTHORIZATION_SECONDS;
|
|
192
|
+
return {
|
|
193
|
+
direct: direct >= amount,
|
|
194
|
+
needsTokenApproval: permit2Token < amount,
|
|
195
|
+
authorization: {
|
|
196
|
+
chainId,
|
|
197
|
+
token,
|
|
198
|
+
spender: entry,
|
|
199
|
+
amount,
|
|
200
|
+
expiration: deadline,
|
|
201
|
+
nonce,
|
|
202
|
+
sigDeadline: BigInt(deadline),
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Add a signed Permit2 allowance to pay metadata, keyed to the entry that
|
|
208
|
+
* spends it. The entry decodes one `JBSingleAllowance` tuple
|
|
209
|
+
* (`sigDeadline, amount, expiration, nonce, signature`), so the payload is a
|
|
210
|
+
* single dynamic tuple, not flat fields.
|
|
211
|
+
*
|
|
212
|
+
* @link https://github.com/Bananapus/nana-core-v6/blob/main/src/structs/JBSingleAllowance.sol
|
|
213
|
+
*/
|
|
214
|
+
function addPermit2PayMetadata({ metadata, authorization, signature, }) {
|
|
215
|
+
return (0, hook_js_1.addToHookMetadata)(metadata, (0, hook_js_1.hookMetadataId)(authorization.spender, "permit2"), (0, viem_1.encodeAbiParameters)([
|
|
216
|
+
{
|
|
217
|
+
type: "tuple",
|
|
218
|
+
components: [
|
|
219
|
+
{ name: "sigDeadline", type: "uint256" },
|
|
220
|
+
{ name: "amount", type: "uint160" },
|
|
221
|
+
{ name: "expiration", type: "uint48" },
|
|
222
|
+
{ name: "nonce", type: "uint48" },
|
|
223
|
+
{ name: "signature", type: "bytes" },
|
|
224
|
+
],
|
|
225
|
+
},
|
|
226
|
+
], [
|
|
227
|
+
{
|
|
228
|
+
sigDeadline: authorization.sigDeadline,
|
|
229
|
+
amount: authorization.amount,
|
|
230
|
+
expiration: authorization.expiration,
|
|
231
|
+
nonce: authorization.nonce,
|
|
232
|
+
signature,
|
|
233
|
+
},
|
|
234
|
+
]));
|
|
235
|
+
}
|
|
236
|
+
/** A signed pay authorization this close to its deadline is signed again. */
|
|
237
|
+
const PERMIT2_PAY_REUSE_MARGIN_SECONDS = 120;
|
|
238
|
+
/**
|
|
239
|
+
* Whether a signature from an earlier attempt still authorizes this exact
|
|
240
|
+
* payment: the same payer, chain, token, entry, amount and Permit2 nonce as a freshly
|
|
241
|
+
* read authorization, with time left. Permit2 moves the nonce on when an
|
|
242
|
+
* allowance is used, so a spent signature is never reused.
|
|
243
|
+
*
|
|
244
|
+
* @param signed The kept signature, if any.
|
|
245
|
+
* @param fresh From {@link readPermit2PayAuthorization} or {@link planErc20PayAuthorization} now.
|
|
246
|
+
* @param owner The account `fresh` was read for, which pays.
|
|
247
|
+
*/
|
|
248
|
+
function permit2PayAuthorizationReusable(signed, fresh, owner) {
|
|
249
|
+
if (!signed)
|
|
250
|
+
return false;
|
|
251
|
+
const was = signed.authorization;
|
|
252
|
+
return (signed.owner.toLowerCase() === owner.toLowerCase() &&
|
|
253
|
+
was.chainId === fresh.chainId &&
|
|
254
|
+
was.token.toLowerCase() === fresh.token.toLowerCase() &&
|
|
255
|
+
was.spender.toLowerCase() === fresh.spender.toLowerCase() &&
|
|
256
|
+
was.amount === fresh.amount &&
|
|
257
|
+
was.nonce === fresh.nonce &&
|
|
258
|
+
// A fresh authorization expires a fixed time after the chain's latest
|
|
259
|
+
// block, so this compares against chain time.
|
|
260
|
+
was.sigDeadline >=
|
|
261
|
+
fresh.sigDeadline -
|
|
262
|
+
BigInt(exports.PERMIT2_PAY_AUTHORIZATION_SECONDS - PERMIT2_PAY_REUSE_MARGIN_SECONDS));
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Decide how `owner` authorizes paying `amount` of an ERC-20 into a pay entry.
|
|
266
|
+
* One rule for every client: nothing when the entry is already approved, an
|
|
267
|
+
* exact approval of the entry for contract wallets, a Permit2 signature for
|
|
268
|
+
* EOAs. The native token needs no authorization and has no plan; do not call
|
|
269
|
+
* this for it.
|
|
270
|
+
*
|
|
271
|
+
* @param args.isSafe The connected wallet is a Safe (a Safe app or a Safe
|
|
272
|
+
* reached through WalletConnect), whatever its code reads as here.
|
|
273
|
+
*/
|
|
274
|
+
async function planErc20PayAuthorization(client, { isSafe, ...args }) {
|
|
275
|
+
const [read, walletBytecode] = await Promise.all([
|
|
276
|
+
readPermit2PayAuthorization(client, args),
|
|
277
|
+
client.getCode({ address: args.owner }),
|
|
278
|
+
]);
|
|
279
|
+
if (read.direct)
|
|
280
|
+
return { kind: "none" };
|
|
281
|
+
return shouldUsePermit2Signature({
|
|
282
|
+
needsApproval: true,
|
|
283
|
+
walletLookupSettled: true,
|
|
284
|
+
walletBytecode,
|
|
285
|
+
isSafe,
|
|
286
|
+
})
|
|
287
|
+
? {
|
|
288
|
+
kind: "permit2",
|
|
289
|
+
needsTokenApproval: read.needsTokenApproval,
|
|
290
|
+
authorization: read.authorization,
|
|
291
|
+
}
|
|
292
|
+
: { kind: "approve", spender: args.entry, amount: args.amount };
|
|
293
|
+
}
|
|
145
294
|
//# sourceMappingURL=permit2.js.map
|