@bananapus/nana-sdk-core 1.9.4 → 1.10.1
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/v6/directPay.d.ts +69 -0
- package/dist/cjs/v6/directPay.d.ts.map +1 -0
- package/dist/cjs/v6/directPay.js +391 -0
- package/dist/cjs/v6/directPay.js.map +1 -0
- package/dist/cjs/v6/index.d.ts +2 -0
- package/dist/cjs/v6/index.d.ts.map +1 -1
- package/dist/cjs/v6/index.js +2 -0
- package/dist/cjs/v6/index.js.map +1 -1
- package/dist/cjs/v6/loanMath.d.ts +33 -0
- package/dist/cjs/v6/loanMath.d.ts.map +1 -0
- package/dist/cjs/v6/loanMath.js +52 -0
- package/dist/cjs/v6/loanMath.js.map +1 -0
- package/dist/cjs/v6/loans.d.ts +1 -17
- package/dist/cjs/v6/loans.d.ts.map +1 -1
- package/dist/cjs/v6/loans.js +16 -18
- package/dist/cjs/v6/loans.js.map +1 -1
- package/dist/cjs/v6/permit2.d.ts +169 -0
- package/dist/cjs/v6/permit2.d.ts.map +1 -0
- package/dist/cjs/v6/permit2.js +145 -0
- package/dist/cjs/v6/permit2.js.map +1 -0
- package/dist/cjs/v6/uniswapV4.d.ts +1 -23
- package/dist/cjs/v6/uniswapV4.d.ts.map +1 -1
- package/dist/cjs/v6/uniswapV4.js +21 -65
- package/dist/cjs/v6/uniswapV4.js.map +1 -1
- package/dist/cjs/v6/uniswapV4Deployments.d.ts +21 -0
- package/dist/cjs/v6/uniswapV4Deployments.d.ts.map +1 -0
- package/dist/cjs/v6/uniswapV4Deployments.js +60 -0
- package/dist/cjs/v6/uniswapV4Deployments.js.map +1 -0
- package/dist/esm/v6/directPay.d.ts +69 -0
- package/dist/esm/v6/directPay.d.ts.map +1 -0
- package/dist/esm/v6/directPay.js +385 -0
- package/dist/esm/v6/directPay.js.map +1 -0
- package/dist/esm/v6/index.d.ts +2 -0
- package/dist/esm/v6/index.d.ts.map +1 -1
- package/dist/esm/v6/index.js +2 -0
- package/dist/esm/v6/index.js.map +1 -1
- package/dist/esm/v6/loanMath.d.ts +33 -0
- package/dist/esm/v6/loanMath.d.ts.map +1 -0
- package/dist/esm/v6/loanMath.js +47 -0
- package/dist/esm/v6/loanMath.js.map +1 -0
- package/dist/esm/v6/loans.d.ts +1 -17
- package/dist/esm/v6/loans.d.ts.map +1 -1
- package/dist/esm/v6/loans.js +1 -17
- package/dist/esm/v6/loans.js.map +1 -1
- package/dist/esm/v6/permit2.d.ts +169 -0
- package/dist/esm/v6/permit2.d.ts.map +1 -0
- package/dist/esm/v6/permit2.js +136 -0
- package/dist/esm/v6/permit2.js.map +1 -0
- package/dist/esm/v6/uniswapV4.d.ts +1 -23
- package/dist/esm/v6/uniswapV4.d.ts.map +1 -1
- package/dist/esm/v6/uniswapV4.js +2 -59
- package/dist/esm/v6/uniswapV4.js.map +1 -1
- package/dist/esm/v6/uniswapV4Deployments.d.ts +21 -0
- package/dist/esm/v6/uniswapV4Deployments.d.ts.map +1 -0
- package/dist/esm/v6/uniswapV4Deployments.js +56 -0
- package/dist/esm/v6/uniswapV4Deployments.js.map +1 -0
- package/package.json +37 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directPay.js","sourceRoot":"","sources":["../../../src/v6/directPay.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/v6/index.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export * from "./splits.js";
|
|
|
8
8
|
export * from "./revnets.js";
|
|
9
9
|
export * from "./terminals.js";
|
|
10
10
|
export * from "./pay.js";
|
|
11
|
+
export * from "./directPay.js";
|
|
12
|
+
export * from "./permit2.js";
|
|
11
13
|
export * from "./projectPayers.js";
|
|
12
14
|
export * from "./cashOut.js";
|
|
13
15
|
export * from "./nft.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,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,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,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
package/dist/esm/v6/index.js
CHANGED
|
@@ -8,6 +8,8 @@ export * from "./splits.js";
|
|
|
8
8
|
export * from "./revnets.js";
|
|
9
9
|
export * from "./terminals.js";
|
|
10
10
|
export * from "./pay.js";
|
|
11
|
+
export * from "./directPay.js";
|
|
12
|
+
export * from "./permit2.js";
|
|
11
13
|
export * from "./projectPayers.js";
|
|
12
14
|
export * from "./cashOut.js";
|
|
13
15
|
export * from "./nft.js";
|
package/dist/esm/v6/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","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,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","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,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The denominator for REVLoans fee percents: prepaid fee percents and source fee percents
|
|
3
|
+
* are expressed out of 1000.
|
|
4
|
+
*/
|
|
5
|
+
export declare const LOANS_MAX_FEE = 1000n;
|
|
6
|
+
/**
|
|
7
|
+
* The minimum `prepaidFeePercent` REVLoans accepts when borrowing: 25 of
|
|
8
|
+
* {@link LOANS_MAX_FEE} (2.5%), paid upfront to the source revnet.
|
|
9
|
+
*/
|
|
10
|
+
export declare const MIN_PREPAID_FEE_PERCENT = 25n;
|
|
11
|
+
/** The largest prepaid source fee REVLoans accepts: 500 / 1000 = 50%. */
|
|
12
|
+
export declare const MAX_PREPAID_FEE_PERCENT = 500n;
|
|
13
|
+
/** The upfront fee REVLoans routes to the $REV revnet on every borrow: 1%. */
|
|
14
|
+
export declare const REV_PREPAID_FEE_PERCENT = 10n;
|
|
15
|
+
export interface LoanOpeningAmounts {
|
|
16
|
+
grossBorrowAmount: bigint;
|
|
17
|
+
protocolFee: bigint;
|
|
18
|
+
revFee: bigint;
|
|
19
|
+
sourceFee: bigint;
|
|
20
|
+
netBorrowAmount: bigint;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Calculate spendable loan proceeds using the contracts' floor-rounded fee arithmetic.
|
|
24
|
+
*/
|
|
25
|
+
export declare function loanOpeningAmounts({ grossBorrowAmount, prepaidSourceFeePercent, protocolFeeApplies, revFeeApplies, }: {
|
|
26
|
+
grossBorrowAmount: bigint;
|
|
27
|
+
prepaidSourceFeePercent?: bigint;
|
|
28
|
+
protocolFeeApplies?: boolean;
|
|
29
|
+
revFeeApplies?: boolean;
|
|
30
|
+
}): LoanOpeningAmounts;
|
|
31
|
+
/** Convenience accessor for {@link loanOpeningAmounts}. */
|
|
32
|
+
export declare function netLoanProceeds(grossBorrowAmount: bigint, prepaidSourceFeePercent?: bigint): bigint;
|
|
33
|
+
//# sourceMappingURL=loanMath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loanMath.d.ts","sourceRoot":"","sources":["../../../src/v6/loanMath.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAQ,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,yEAAyE;AACzE,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,iBAAiB,EACjB,uBAAiD,EACjD,kBAAyB,EACzB,aAAoB,GACrB,EAAE;IACD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,kBAAkB,CA2BrB;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAC7B,iBAAiB,EAAE,MAAM,EACzB,uBAAuB,SAA0B,GAChD,MAAM,CAKR"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The denominator for REVLoans fee percents: prepaid fee percents and source fee percents
|
|
3
|
+
* are expressed out of 1000.
|
|
4
|
+
*/
|
|
5
|
+
export const LOANS_MAX_FEE = 1000n;
|
|
6
|
+
/**
|
|
7
|
+
* The minimum `prepaidFeePercent` REVLoans accepts when borrowing: 25 of
|
|
8
|
+
* {@link LOANS_MAX_FEE} (2.5%), paid upfront to the source revnet.
|
|
9
|
+
*/
|
|
10
|
+
export const MIN_PREPAID_FEE_PERCENT = 25n;
|
|
11
|
+
/** The largest prepaid source fee REVLoans accepts: 500 / 1000 = 50%. */
|
|
12
|
+
export const MAX_PREPAID_FEE_PERCENT = 500n;
|
|
13
|
+
/** The upfront fee REVLoans routes to the $REV revnet on every borrow: 1%. */
|
|
14
|
+
export const REV_PREPAID_FEE_PERCENT = 10n;
|
|
15
|
+
/**
|
|
16
|
+
* Calculate spendable loan proceeds using the contracts' floor-rounded fee arithmetic.
|
|
17
|
+
*/
|
|
18
|
+
export function loanOpeningAmounts({ grossBorrowAmount, prepaidSourceFeePercent = MIN_PREPAID_FEE_PERCENT, protocolFeeApplies = true, revFeeApplies = true, }) {
|
|
19
|
+
if (grossBorrowAmount < 0n) {
|
|
20
|
+
throw new Error("grossBorrowAmount cannot be negative.");
|
|
21
|
+
}
|
|
22
|
+
if (prepaidSourceFeePercent < MIN_PREPAID_FEE_PERCENT ||
|
|
23
|
+
prepaidSourceFeePercent > MAX_PREPAID_FEE_PERCENT) {
|
|
24
|
+
throw new Error(`prepaidSourceFeePercent must be between ${MIN_PREPAID_FEE_PERCENT} and ${MAX_PREPAID_FEE_PERCENT}.`);
|
|
25
|
+
}
|
|
26
|
+
const protocolFee = protocolFeeApplies ? grossBorrowAmount / 40n : 0n;
|
|
27
|
+
const revFee = revFeeApplies
|
|
28
|
+
? (grossBorrowAmount * REV_PREPAID_FEE_PERCENT) / LOANS_MAX_FEE
|
|
29
|
+
: 0n;
|
|
30
|
+
const sourceFee = (grossBorrowAmount * prepaidSourceFeePercent) / LOANS_MAX_FEE;
|
|
31
|
+
const totalFees = protocolFee + revFee + sourceFee;
|
|
32
|
+
return {
|
|
33
|
+
grossBorrowAmount,
|
|
34
|
+
protocolFee,
|
|
35
|
+
revFee,
|
|
36
|
+
sourceFee,
|
|
37
|
+
netBorrowAmount: grossBorrowAmount > totalFees ? grossBorrowAmount - totalFees : 0n,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/** Convenience accessor for {@link loanOpeningAmounts}. */
|
|
41
|
+
export function netLoanProceeds(grossBorrowAmount, prepaidSourceFeePercent = MIN_PREPAID_FEE_PERCENT) {
|
|
42
|
+
return loanOpeningAmounts({
|
|
43
|
+
grossBorrowAmount,
|
|
44
|
+
prepaidSourceFeePercent,
|
|
45
|
+
}).netBorrowAmount;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=loanMath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loanMath.js","sourceRoot":"","sources":["../../../src/v6/loanMath.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C,yEAAyE;AACzE,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAE5C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAU3C;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,iBAAiB,EACjB,uBAAuB,GAAG,uBAAuB,EACjD,kBAAkB,GAAG,IAAI,EACzB,aAAa,GAAG,IAAI,GAMrB;IACC,IAAI,iBAAiB,GAAG,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,IACE,uBAAuB,GAAG,uBAAuB;QACjD,uBAAuB,GAAG,uBAAuB,EACjD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,2CAA2C,uBAAuB,QAAQ,uBAAuB,GAAG,CACrG,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,MAAM,GAAG,aAAa;QAC1B,CAAC,CAAC,CAAC,iBAAiB,GAAG,uBAAuB,CAAC,GAAG,aAAa;QAC/D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,SAAS,GACb,CAAC,iBAAiB,GAAG,uBAAuB,CAAC,GAAG,aAAa,CAAC;IAChE,MAAM,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;IACnD,OAAO;QACL,iBAAiB;QACjB,WAAW;QACX,MAAM;QACN,SAAS;QACT,eAAe,EACb,iBAAiB,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE;KACrE,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,eAAe,CAC7B,iBAAyB,EACzB,uBAAuB,GAAG,uBAAuB;IAEjD,OAAO,kBAAkB,CAAC;QACxB,iBAAiB;QACjB,uBAAuB;KACxB,CAAC,CAAC,eAAe,CAAC;AACrB,CAAC"}
|
package/dist/esm/v6/loans.d.ts
CHANGED
|
@@ -1,23 +1,7 @@
|
|
|
1
1
|
import { Address, Hex, PublicClient } from "viem";
|
|
2
2
|
import { revLoansAbi } from "../generated/juicebox.js";
|
|
3
3
|
import { JBChainId } from "../types.js";
|
|
4
|
-
|
|
5
|
-
* The denominator for REVLoans fee percents: prepaid fee percents and source fee percents
|
|
6
|
-
* are expressed out of 1000.
|
|
7
|
-
*/
|
|
8
|
-
export declare const LOANS_MAX_FEE = 1000n;
|
|
9
|
-
/**
|
|
10
|
-
* The minimum `prepaidFeePercent` REVLoans accepts when borrowing: 25 of {@link LOANS_MAX_FEE}
|
|
11
|
-
* (2.5%), paid upfront to the source revnet. Prepaying more than the minimum extends the
|
|
12
|
-
* loan's zero-additional-cost duration; after it expires the repayment cost increases
|
|
13
|
-
* linearly until the loan liquidates at 10 years.
|
|
14
|
-
*/
|
|
15
|
-
export declare const MIN_PREPAID_FEE_PERCENT = 25n;
|
|
16
|
-
/**
|
|
17
|
-
* The upfront fee REVLoans routes to the $REV revnet on every borrow: 10 of
|
|
18
|
-
* {@link LOANS_MAX_FEE} (1%), taken in addition to the prepaid fee.
|
|
19
|
-
*/
|
|
20
|
-
export declare const REV_PREPAID_FEE_PERCENT = 10n;
|
|
4
|
+
export * from "./loanMath.js";
|
|
21
5
|
/**
|
|
22
6
|
* The JBPermissions permission id apps grant to the REVLoans contract before borrowing
|
|
23
7
|
* against a holder's tokens (v6 ROOT permission id 1). REVLoans needs it to manage the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loans.d.ts","sourceRoot":"","sources":["../../../src/v6/loans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC
|
|
1
|
+
{"version":3,"file":"loans.d.ts","sourceRoot":"","sources":["../../../src/v6/loans.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/v6/loans.js
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
import { revLoansAbi } from "../generated/juicebox.js";
|
|
2
2
|
import { v6Address } from "./types.js";
|
|
3
|
-
|
|
4
|
-
* The denominator for REVLoans fee percents: prepaid fee percents and source fee percents
|
|
5
|
-
* are expressed out of 1000.
|
|
6
|
-
*/
|
|
7
|
-
export const LOANS_MAX_FEE = 1000n;
|
|
8
|
-
/**
|
|
9
|
-
* The minimum `prepaidFeePercent` REVLoans accepts when borrowing: 25 of {@link LOANS_MAX_FEE}
|
|
10
|
-
* (2.5%), paid upfront to the source revnet. Prepaying more than the minimum extends the
|
|
11
|
-
* loan's zero-additional-cost duration; after it expires the repayment cost increases
|
|
12
|
-
* linearly until the loan liquidates at 10 years.
|
|
13
|
-
*/
|
|
14
|
-
export const MIN_PREPAID_FEE_PERCENT = 25n;
|
|
15
|
-
/**
|
|
16
|
-
* The upfront fee REVLoans routes to the $REV revnet on every borrow: 10 of
|
|
17
|
-
* {@link LOANS_MAX_FEE} (1%), taken in addition to the prepaid fee.
|
|
18
|
-
*/
|
|
19
|
-
export const REV_PREPAID_FEE_PERCENT = 10n;
|
|
3
|
+
export * from "./loanMath.js";
|
|
20
4
|
/**
|
|
21
5
|
* The JBPermissions permission id apps grant to the REVLoans contract before borrowing
|
|
22
6
|
* against a holder's tokens (v6 ROOT permission id 1). REVLoans needs it to manage the
|
package/dist/esm/v6/loans.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loans.js","sourceRoot":"","sources":["../../../src/v6/loans.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"loans.js","sourceRoot":"","sources":["../../../src/v6/loans.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,cAAc,eAAe,CAAC;AAE9B;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAexC;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,KAAK,EACL,eAAe,GAAG,EAAE,EACpB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,MAAM,GAUP;IAOC,OAAO;QACL,OAAO;QACP,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;QACvC,GAAG,EAAE,WAAW;QAChB,YAAY,EAAE,YAAY;QAC1B,IAAI,EAAE;YACJ,QAAQ;YACR,KAAK;YACL,eAAe;YACf,eAAe;YACf,WAAW;YACX,iBAAiB;YACjB,MAAM;SACP;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,OAAO,EACP,MAAM,EACN,oBAAoB,EACpB,uBAAuB,EACvB,WAAW,EACX,SAAS,GAAG,sBAAsB,EAClC,KAAK,GAAG,EAAE,GASX;IAQC,OAAO;QACL,OAAO;QACP,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;QACvC,GAAG,EAAE,WAAW;QAChB,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE;YACJ,MAAM;YACN,oBAAoB;YACpB,uBAAuB;YACvB,WAAW;YACX,SAAS;SACV;QACD,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,2BAA2B,CAAC,EAC1C,OAAO,EACP,MAAM,EACN,yBAAyB,EACzB,KAAK,EACL,eAAe,GAAG,EAAE,EACpB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,GAUlB;IAOC,OAAO;QACL,OAAO;QACP,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;QACvC,GAAG,EAAE,WAAW;QAChB,YAAY,EAAE,8BAA8B;QAC5C,IAAI,EAAE;YACJ,MAAM;YACN,yBAAyB;YACzB,KAAK;YACL,eAAe;YACf,oBAAoB;YACpB,WAAW;YACX,iBAAiB;SAClB;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAoB,EACpB,EACE,OAAO,EACP,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,QAAQ,GAOT;IAED,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QACpE,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;QACvC,GAAG,EAAE,WAAW;QAChB,YAAY,EAAE,sBAAsB;QACpC,IAAI,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,CAAC;KACtD,CAAC,CAAC;IAEH,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import type { Address, Hex, PublicClient } from "viem";
|
|
2
|
+
import type { JBChainId } from "../types.js";
|
|
3
|
+
/** Canonical Permit2 deployment shared by supported EVM chains. */
|
|
4
|
+
export declare const PERMIT2_ADDRESS: `0x${string}`;
|
|
5
|
+
/** Permit2 methods used to inspect or establish Universal Router allowances. */
|
|
6
|
+
export declare const permit2Abi: readonly [{
|
|
7
|
+
readonly type: "function";
|
|
8
|
+
readonly name: "allowance";
|
|
9
|
+
readonly stateMutability: "view";
|
|
10
|
+
readonly inputs: readonly [{
|
|
11
|
+
readonly name: "owner";
|
|
12
|
+
readonly type: "address";
|
|
13
|
+
}, {
|
|
14
|
+
readonly name: "token";
|
|
15
|
+
readonly type: "address";
|
|
16
|
+
}, {
|
|
17
|
+
readonly name: "spender";
|
|
18
|
+
readonly type: "address";
|
|
19
|
+
}];
|
|
20
|
+
readonly outputs: readonly [{
|
|
21
|
+
readonly name: "amount";
|
|
22
|
+
readonly type: "uint160";
|
|
23
|
+
}, {
|
|
24
|
+
readonly name: "expiration";
|
|
25
|
+
readonly type: "uint48";
|
|
26
|
+
}, {
|
|
27
|
+
readonly name: "nonce";
|
|
28
|
+
readonly type: "uint48";
|
|
29
|
+
}];
|
|
30
|
+
}, {
|
|
31
|
+
readonly type: "function";
|
|
32
|
+
readonly name: "approve";
|
|
33
|
+
readonly stateMutability: "nonpayable";
|
|
34
|
+
readonly inputs: readonly [{
|
|
35
|
+
readonly name: "token";
|
|
36
|
+
readonly type: "address";
|
|
37
|
+
}, {
|
|
38
|
+
readonly name: "spender";
|
|
39
|
+
readonly type: "address";
|
|
40
|
+
}, {
|
|
41
|
+
readonly name: "amount";
|
|
42
|
+
readonly type: "uint160";
|
|
43
|
+
}, {
|
|
44
|
+
readonly name: "expiration";
|
|
45
|
+
readonly type: "uint48";
|
|
46
|
+
}];
|
|
47
|
+
readonly outputs: readonly [];
|
|
48
|
+
}];
|
|
49
|
+
/** EIP-712 types for Permit2's one-token, one-spender authorization. */
|
|
50
|
+
export declare const PERMIT2_TYPES: {
|
|
51
|
+
readonly PermitDetails: readonly [{
|
|
52
|
+
readonly name: "token";
|
|
53
|
+
readonly type: "address";
|
|
54
|
+
}, {
|
|
55
|
+
readonly name: "amount";
|
|
56
|
+
readonly type: "uint160";
|
|
57
|
+
}, {
|
|
58
|
+
readonly name: "expiration";
|
|
59
|
+
readonly type: "uint48";
|
|
60
|
+
}, {
|
|
61
|
+
readonly name: "nonce";
|
|
62
|
+
readonly type: "uint48";
|
|
63
|
+
}];
|
|
64
|
+
readonly PermitSingle: readonly [{
|
|
65
|
+
readonly name: "details";
|
|
66
|
+
readonly type: "PermitDetails";
|
|
67
|
+
}, {
|
|
68
|
+
readonly name: "spender";
|
|
69
|
+
readonly type: "address";
|
|
70
|
+
}, {
|
|
71
|
+
readonly name: "sigDeadline";
|
|
72
|
+
readonly type: "uint256";
|
|
73
|
+
}];
|
|
74
|
+
};
|
|
75
|
+
export interface Permit2SignatureAuthorization {
|
|
76
|
+
chainId: JBChainId;
|
|
77
|
+
token: Address;
|
|
78
|
+
spender: Address;
|
|
79
|
+
amount: bigint;
|
|
80
|
+
expiration: number;
|
|
81
|
+
nonce: number;
|
|
82
|
+
sigDeadline: bigint;
|
|
83
|
+
}
|
|
84
|
+
export interface Permit2Allowance {
|
|
85
|
+
amount: bigint;
|
|
86
|
+
expiration: number;
|
|
87
|
+
nonce: number;
|
|
88
|
+
}
|
|
89
|
+
/** Build the exact typed-data payload a wallet signs for PermitSingle. */
|
|
90
|
+
export declare function permit2TypedData(authorization: Permit2SignatureAuthorization): {
|
|
91
|
+
domain: {
|
|
92
|
+
name: "Permit2";
|
|
93
|
+
chainId: 1 | 11155111 | 10 | 11155420 | 8453 | 84532 | 42161 | 421614;
|
|
94
|
+
verifyingContract: `0x${string}`;
|
|
95
|
+
};
|
|
96
|
+
types: {
|
|
97
|
+
readonly PermitDetails: readonly [{
|
|
98
|
+
readonly name: "token";
|
|
99
|
+
readonly type: "address";
|
|
100
|
+
}, {
|
|
101
|
+
readonly name: "amount";
|
|
102
|
+
readonly type: "uint160";
|
|
103
|
+
}, {
|
|
104
|
+
readonly name: "expiration";
|
|
105
|
+
readonly type: "uint48";
|
|
106
|
+
}, {
|
|
107
|
+
readonly name: "nonce";
|
|
108
|
+
readonly type: "uint48";
|
|
109
|
+
}];
|
|
110
|
+
readonly PermitSingle: readonly [{
|
|
111
|
+
readonly name: "details";
|
|
112
|
+
readonly type: "PermitDetails";
|
|
113
|
+
}, {
|
|
114
|
+
readonly name: "spender";
|
|
115
|
+
readonly type: "address";
|
|
116
|
+
}, {
|
|
117
|
+
readonly name: "sigDeadline";
|
|
118
|
+
readonly type: "uint256";
|
|
119
|
+
}];
|
|
120
|
+
};
|
|
121
|
+
primaryType: "PermitSingle";
|
|
122
|
+
message: {
|
|
123
|
+
details: {
|
|
124
|
+
token: `0x${string}`;
|
|
125
|
+
amount: bigint;
|
|
126
|
+
expiration: number;
|
|
127
|
+
nonce: number;
|
|
128
|
+
};
|
|
129
|
+
spender: `0x${string}`;
|
|
130
|
+
sigDeadline: bigint;
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
/** Read an owner's Permit2 allowance, defaulting the spender to Universal Router. */
|
|
134
|
+
export declare function readPermit2Allowance(client: PublicClient, { chainId, owner, token, spender, }: {
|
|
135
|
+
chainId: JBChainId;
|
|
136
|
+
owner: Address;
|
|
137
|
+
token: Address;
|
|
138
|
+
spender?: Address;
|
|
139
|
+
}): Promise<Permit2Allowance>;
|
|
140
|
+
/** Whether an allowance is too small or expires inside the safety buffer. */
|
|
141
|
+
export declare function permit2AllowanceNeedsRefresh({ allowance, amount, now, expirationBufferSeconds, }: {
|
|
142
|
+
allowance: Pick<Permit2Allowance, "amount" | "expiration">;
|
|
143
|
+
amount: bigint;
|
|
144
|
+
now?: number;
|
|
145
|
+
expirationBufferSeconds?: number;
|
|
146
|
+
}): boolean;
|
|
147
|
+
/** Read whether an ERC-20 needs a fresh Permit2 authorization for Universal Router. */
|
|
148
|
+
export declare function needsPermit2Approval({ client, chainId, owner, token, amount, now, expirationBufferSeconds, }: {
|
|
149
|
+
client: PublicClient;
|
|
150
|
+
chainId: JBChainId;
|
|
151
|
+
owner: Address;
|
|
152
|
+
token: Address;
|
|
153
|
+
amount: bigint;
|
|
154
|
+
now?: number;
|
|
155
|
+
expirationBufferSeconds?: number;
|
|
156
|
+
}): Promise<boolean>;
|
|
157
|
+
/**
|
|
158
|
+
* Prefer a gasless Permit2 signature for EOAs. Contract wallets generally need
|
|
159
|
+
* the on-chain Permit2 approval path unless their integration handles ERC-1271.
|
|
160
|
+
*/
|
|
161
|
+
export declare function shouldUsePermit2Signature({ needsApproval, walletLookupSettled, walletBytecode, isSafe, }: {
|
|
162
|
+
needsApproval: boolean;
|
|
163
|
+
walletLookupSettled: boolean;
|
|
164
|
+
walletBytecode?: Hex;
|
|
165
|
+
isSafe: boolean;
|
|
166
|
+
}): boolean;
|
|
167
|
+
/** Fall back only for wallets that cannot sign typed data, never on rejection. */
|
|
168
|
+
export declare function permit2SignatureNeedsOnchainFallback(error: unknown): boolean;
|
|
169
|
+
//# sourceMappingURL=permit2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permit2.d.ts","sourceRoot":"","sources":["../../../src/v6/permit2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,mEAAmE;AACnE,eAAO,MAAM,eAAe,eAA0B,CAAC;AAEvD,gFAAgF;AAChF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4Bb,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;CAYhB,CAAC;AAEX,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB5E;AAED,qFAAqF;AACrF,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,EACE,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,GACR,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,OAAO,CAAC,gBAAgB,CAAC,CAe3B;AAED,6EAA6E;AAC7E,wBAAgB,4BAA4B,CAAC,EAC3C,SAAS,EACT,MAAM,EACN,GAAmC,EACnC,uBAA+B,GAChC,EAAE;IACD,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,YAAY,CAAC,CAAC;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,GAAG,OAAO,CAQV;AAED,uFAAuF;AACvF,wBAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,OAAO,EACP,KAAK,EACL,KAAK,EACL,MAAM,EACN,GAAG,EACH,uBAAuB,GACxB,EAAE;IACD,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,GAAG,OAAO,CAAC,OAAO,CAAC,CAanB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,MAAM,GACP,EAAE;IACD,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAGV;AAED,kFAAkF;AAClF,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAgB5E"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { NATIVE_TOKEN } from "../constants.js";
|
|
2
|
+
import { UNISWAP_PERMIT2_ADDRESS, uniswapV4Deployment, } from "./uniswapV4Deployments.js";
|
|
3
|
+
/** Canonical Permit2 deployment shared by supported EVM chains. */
|
|
4
|
+
export const PERMIT2_ADDRESS = UNISWAP_PERMIT2_ADDRESS;
|
|
5
|
+
/** Permit2 methods used to inspect or establish Universal Router allowances. */
|
|
6
|
+
export const permit2Abi = [
|
|
7
|
+
{
|
|
8
|
+
type: "function",
|
|
9
|
+
name: "allowance",
|
|
10
|
+
stateMutability: "view",
|
|
11
|
+
inputs: [
|
|
12
|
+
{ name: "owner", type: "address" },
|
|
13
|
+
{ name: "token", type: "address" },
|
|
14
|
+
{ name: "spender", type: "address" },
|
|
15
|
+
],
|
|
16
|
+
outputs: [
|
|
17
|
+
{ name: "amount", type: "uint160" },
|
|
18
|
+
{ name: "expiration", type: "uint48" },
|
|
19
|
+
{ name: "nonce", type: "uint48" },
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
type: "function",
|
|
24
|
+
name: "approve",
|
|
25
|
+
stateMutability: "nonpayable",
|
|
26
|
+
inputs: [
|
|
27
|
+
{ name: "token", type: "address" },
|
|
28
|
+
{ name: "spender", type: "address" },
|
|
29
|
+
{ name: "amount", type: "uint160" },
|
|
30
|
+
{ name: "expiration", type: "uint48" },
|
|
31
|
+
],
|
|
32
|
+
outputs: [],
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
/** EIP-712 types for Permit2's one-token, one-spender authorization. */
|
|
36
|
+
export const PERMIT2_TYPES = {
|
|
37
|
+
PermitDetails: [
|
|
38
|
+
{ name: "token", type: "address" },
|
|
39
|
+
{ name: "amount", type: "uint160" },
|
|
40
|
+
{ name: "expiration", type: "uint48" },
|
|
41
|
+
{ name: "nonce", type: "uint48" },
|
|
42
|
+
],
|
|
43
|
+
PermitSingle: [
|
|
44
|
+
{ name: "details", type: "PermitDetails" },
|
|
45
|
+
{ name: "spender", type: "address" },
|
|
46
|
+
{ name: "sigDeadline", type: "uint256" },
|
|
47
|
+
],
|
|
48
|
+
};
|
|
49
|
+
/** Build the exact typed-data payload a wallet signs for PermitSingle. */
|
|
50
|
+
export function permit2TypedData(authorization) {
|
|
51
|
+
return {
|
|
52
|
+
domain: {
|
|
53
|
+
name: "Permit2",
|
|
54
|
+
chainId: authorization.chainId,
|
|
55
|
+
verifyingContract: PERMIT2_ADDRESS,
|
|
56
|
+
},
|
|
57
|
+
types: PERMIT2_TYPES,
|
|
58
|
+
primaryType: "PermitSingle",
|
|
59
|
+
message: {
|
|
60
|
+
details: {
|
|
61
|
+
token: authorization.token,
|
|
62
|
+
amount: authorization.amount,
|
|
63
|
+
expiration: authorization.expiration,
|
|
64
|
+
nonce: authorization.nonce,
|
|
65
|
+
},
|
|
66
|
+
spender: authorization.spender,
|
|
67
|
+
sigDeadline: authorization.sigDeadline,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/** Read an owner's Permit2 allowance, defaulting the spender to Universal Router. */
|
|
72
|
+
export async function readPermit2Allowance(client, { chainId, owner, token, spender, }) {
|
|
73
|
+
const resolvedSpender = spender ?? uniswapV4Deployment(chainId)?.universalRouter;
|
|
74
|
+
if (!resolvedSpender) {
|
|
75
|
+
throw new Error(`No supported Uniswap Universal Router on chain ${chainId}.`);
|
|
76
|
+
}
|
|
77
|
+
const [amount, expiration, nonce] = await client.readContract({
|
|
78
|
+
address: PERMIT2_ADDRESS,
|
|
79
|
+
abi: permit2Abi,
|
|
80
|
+
functionName: "allowance",
|
|
81
|
+
args: [owner, token, resolvedSpender],
|
|
82
|
+
});
|
|
83
|
+
return { amount, expiration, nonce };
|
|
84
|
+
}
|
|
85
|
+
/** Whether an allowance is too small or expires inside the safety buffer. */
|
|
86
|
+
export function permit2AllowanceNeedsRefresh({ allowance, amount, now = Math.floor(Date.now() / 1000), expirationBufferSeconds = 1_800, }) {
|
|
87
|
+
if (expirationBufferSeconds < 0) {
|
|
88
|
+
throw new Error("expirationBufferSeconds cannot be negative.");
|
|
89
|
+
}
|
|
90
|
+
return (allowance.amount < amount ||
|
|
91
|
+
allowance.expiration <= now + expirationBufferSeconds);
|
|
92
|
+
}
|
|
93
|
+
/** Read whether an ERC-20 needs a fresh Permit2 authorization for Universal Router. */
|
|
94
|
+
export async function needsPermit2Approval({ client, chainId, owner, token, amount, now, expirationBufferSeconds, }) {
|
|
95
|
+
if (token.toLowerCase() === NATIVE_TOKEN.toLowerCase())
|
|
96
|
+
return false;
|
|
97
|
+
const allowance = await readPermit2Allowance(client, {
|
|
98
|
+
chainId,
|
|
99
|
+
owner,
|
|
100
|
+
token,
|
|
101
|
+
});
|
|
102
|
+
return permit2AllowanceNeedsRefresh({
|
|
103
|
+
allowance,
|
|
104
|
+
amount,
|
|
105
|
+
now,
|
|
106
|
+
expirationBufferSeconds,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Prefer a gasless Permit2 signature for EOAs. Contract wallets generally need
|
|
111
|
+
* the on-chain Permit2 approval path unless their integration handles ERC-1271.
|
|
112
|
+
*/
|
|
113
|
+
export function shouldUsePermit2Signature({ needsApproval, walletLookupSettled, walletBytecode, isSafe, }) {
|
|
114
|
+
const isContract = !!walletBytecode && walletBytecode !== "0x";
|
|
115
|
+
return needsApproval && walletLookupSettled && !isContract && !isSafe;
|
|
116
|
+
}
|
|
117
|
+
/** Fall back only for wallets that cannot sign typed data, never on rejection. */
|
|
118
|
+
export function permit2SignatureNeedsOnchainFallback(error) {
|
|
119
|
+
const messages = [];
|
|
120
|
+
let current = error;
|
|
121
|
+
for (let depth = 0; current && depth < 5; depth += 1) {
|
|
122
|
+
if (typeof current !== "object")
|
|
123
|
+
break;
|
|
124
|
+
const value = current;
|
|
125
|
+
for (const key of ["code", "shortMessage", "message", "details"]) {
|
|
126
|
+
if (value[key] !== undefined)
|
|
127
|
+
messages.push(String(value[key]));
|
|
128
|
+
}
|
|
129
|
+
current = value.cause;
|
|
130
|
+
}
|
|
131
|
+
const text = messages.join(" ").toLowerCase();
|
|
132
|
+
if (/user rejected|rejected the request|denied|4001/.test(text))
|
|
133
|
+
return false;
|
|
134
|
+
return /(^|\s)-32602(\s|$)|(^|\s)-32601(\s|$)|(^|\s)4200(\s|$)|invalid parameters|method .*not supported|unsupported method|typed data.*not supported/.test(text);
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=permit2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permit2.js","sourceRoot":"","sources":["../../../src/v6/permit2.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,6 @@
|
|
|
1
1
|
import type { Address, Hex, PublicClient } from "viem";
|
|
2
2
|
import type { JBChainId } from "../types.js";
|
|
3
|
-
|
|
4
|
-
* Canonical Uniswap V4 PoolManager deployments used by Juicebox v6.
|
|
5
|
-
* Optimism Sepolia is intentionally absent: deploy-all skips the Uniswap stack
|
|
6
|
-
* there because Uniswap has not published supported V4 periphery deployments.
|
|
7
|
-
*/
|
|
8
|
-
export declare const UNISWAP_V4_POOL_MANAGER_ADDRESSES: Readonly<Partial<Record<JBChainId, Address>>>;
|
|
9
|
-
/** Canonical Uniswap V4 PositionManager deployments used by Juicebox v6. */
|
|
10
|
-
export declare const UNISWAP_V4_POSITION_MANAGER_ADDRESSES: Readonly<Partial<Record<JBChainId, Address>>>;
|
|
11
|
-
/** Canonical V4Quoter deployments; missing chains must fail closed. */
|
|
12
|
-
export declare const UNISWAP_V4_QUOTER_ADDRESSES: Readonly<Partial<Record<JBChainId, Address>>>;
|
|
13
|
-
/** Canonical Universal Router deployments which support the V4_SWAP command. */
|
|
14
|
-
export declare const UNISWAP_V4_UNIVERSAL_ROUTER_ADDRESSES: Readonly<Partial<Record<JBChainId, Address>>>;
|
|
15
|
-
/** Permit2 is deployed at the same address on supported EVM chains. */
|
|
16
|
-
export declare const UNISWAP_PERMIT2_ADDRESS: Address;
|
|
17
|
-
/** Resolve the supported V4 surface for a chain without guessing addresses. */
|
|
18
|
-
export declare function uniswapV4Deployment(chainId: number): {
|
|
19
|
-
poolManager: Address;
|
|
20
|
-
positionManager: Address | null;
|
|
21
|
-
quoter: Address | null;
|
|
22
|
-
universalRouter: Address | null;
|
|
23
|
-
permit2: Address;
|
|
24
|
-
} | null;
|
|
3
|
+
export * from "./uniswapV4Deployments.js";
|
|
25
4
|
export declare const UNISWAP_V4_Q96: bigint;
|
|
26
5
|
export declare const UNISWAP_V4_MAX_TICK = 887272;
|
|
27
6
|
/** Pool key tuple used by the Juicebox buyback and LP integrations. */
|
|
@@ -191,5 +170,4 @@ export declare function uniswapV4PositionTokenIdFromLog(log: {
|
|
|
191
170
|
}, positionManager: Address): bigint | null;
|
|
192
171
|
/** Whether an address is one of the canonical PoolManager deployments. */
|
|
193
172
|
export declare function isUniswapV4PoolManager(address: string): boolean;
|
|
194
|
-
export {};
|
|
195
173
|
//# sourceMappingURL=uniswapV4.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniswapV4.d.ts","sourceRoot":"","sources":["../../../src/v6/uniswapV4.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"uniswapV4.d.ts","sourceRoot":"","sources":["../../../src/v6/uniswapV4.ts"],"names":[],"mappings":"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"}
|