@pufferfinance/puffer-sdk 1.5.2 → 1.5.4
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/api/puffer-client.cjs +1 -1
- package/dist/api/puffer-client.cjs.map +1 -1
- package/dist/api/puffer-client.js +43 -36
- package/dist/api/puffer-client.js.map +1 -1
- package/dist/contracts/abis/mainnet/PufferWithdrawalManager.cjs +2 -0
- package/dist/contracts/abis/mainnet/PufferWithdrawalManager.cjs.map +1 -0
- package/dist/contracts/abis/mainnet/PufferWithdrawalManager.js +665 -0
- package/dist/contracts/abis/mainnet/PufferWithdrawalManager.js.map +1 -0
- package/dist/contracts/abis/puffer-withdrawal-manager-abis.cjs +2 -0
- package/dist/contracts/abis/puffer-withdrawal-manager-abis.cjs.map +1 -0
- package/dist/contracts/abis/puffer-withdrawal-manager-abis.js +10 -0
- package/dist/contracts/abis/puffer-withdrawal-manager-abis.js.map +1 -0
- package/dist/contracts/addresses.cjs +1 -1
- package/dist/contracts/addresses.cjs.map +1 -1
- package/dist/contracts/addresses.js +11 -7
- package/dist/contracts/addresses.js.map +1 -1
- package/dist/contracts/handlers/erc20-permit-handler.cjs +1 -1
- package/dist/contracts/handlers/erc20-permit-handler.cjs.map +1 -1
- package/dist/contracts/handlers/erc20-permit-handler.js +19 -14
- package/dist/contracts/handlers/erc20-permit-handler.js.map +1 -1
- package/dist/contracts/handlers/puffer-withdrawal-manager-handler.cjs +2 -0
- package/dist/contracts/handlers/puffer-withdrawal-manager-handler.cjs.map +1 -0
- package/dist/contracts/handlers/puffer-withdrawal-manager-handler.js +116 -0
- package/dist/contracts/handlers/puffer-withdrawal-manager-handler.js.map +1 -0
- package/dist/contracts/tokens.cjs +1 -1
- package/dist/contracts/tokens.cjs.map +1 -1
- package/dist/contracts/tokens.js +11 -3
- package/dist/contracts/tokens.js.map +1 -1
- package/dist/main.cjs +1 -1
- package/dist/main.js +26 -23
- package/dist/main.js.map +1 -1
- package/dist/utils/version.cjs +1 -1
- package/dist/utils/version.js +1 -1
- package/package.json +1 -1
- package/dist/api/puffer-client-helpers.d.ts +0 -33
- package/dist/api/puffer-client.d.ts +0 -49
- package/dist/chains/constants.d.ts +0 -11
- package/dist/contracts/abis/holesky/PufferDepositor.d.ts +0 -283
- package/dist/contracts/abis/holesky/PufferVaultV2.d.ts +0 -1361
- package/dist/contracts/abis/l1-reward-manager-abis.d.ts +0 -527
- package/dist/contracts/abis/l2-reward-manager-abis.d.ts +0 -709
- package/dist/contracts/abis/mainnet/ERC20Permit.d.ts +0 -396
- package/dist/contracts/abis/mainnet/L1RewardManager.d.ts +0 -523
- package/dist/contracts/abis/mainnet/L2RewardManager.d.ts +0 -705
- package/dist/contracts/abis/mainnet/PufLocker.d.ts +0 -480
- package/dist/contracts/abis/mainnet/PufToken.d.ts +0 -676
- package/dist/contracts/abis/mainnet/PufferDepositor.d.ts +0 -283
- package/dist/contracts/abis/mainnet/PufferL2Depositor.d.ts +0 -373
- package/dist/contracts/abis/mainnet/PufferVaultV2.d.ts +0 -1421
- package/dist/contracts/abis/puf-locker-abis.d.ts +0 -484
- package/dist/contracts/abis/puf-token-abis.d.ts +0 -680
- package/dist/contracts/abis/puffer-depositor-abis.d.ts +0 -664
- package/dist/contracts/abis/puffer-vault-abis.d.ts +0 -2787
- package/dist/contracts/abis/tokens-abis.d.ts +0 -396
- package/dist/contracts/addresses.d.ts +0 -10
- package/dist/contracts/handlers/erc20-permit-handler.d.ts +0 -6579
- package/dist/contracts/handlers/l1-reward-manager-handler.d.ts +0 -6693
- package/dist/contracts/handlers/l2-reward-manager-handler.d.ts +0 -6939
- package/dist/contracts/handlers/puf-locker-handler.d.ts +0 -6702
- package/dist/contracts/handlers/puf-token-handler.d.ts +0 -6920
- package/dist/contracts/handlers/puffer-depositor-handler.d.ts +0 -6462
- package/dist/contracts/handlers/puffer-l2-depositor-handler.d.ts +0 -6555
- package/dist/contracts/handlers/puffer-vault-handler.d.ts +0 -9030
- package/dist/contracts/tokens.d.ts +0 -47
- package/dist/errors/base-error.d.ts +0 -7
- package/dist/errors/types.d.ts +0 -4
- package/dist/errors/validation-errors.d.ts +0 -5
- package/dist/main.d.ts +0 -13
- package/dist/utils/time.d.ts +0 -1
- package/dist/utils/types.d.ts +0 -4
- package/dist/utils/version.d.ts +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../../constants-BvU-JhfL.cjs"),e=require("./mainnet/PufferWithdrawalManager.cjs"),r={[a.Chain.Mainnet]:{PufferWithdrawalManager:e.PufferWithdrawalManager},[a.Chain.Holesky]:{PufferWithdrawalManager:e.PufferWithdrawalManager}};exports.PUFFER_WITHDRAWAL_MANAGER_ABIS=r;
|
|
2
|
+
//# sourceMappingURL=puffer-withdrawal-manager-abis.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puffer-withdrawal-manager-abis.cjs","sources":["../../../lib/contracts/abis/puffer-withdrawal-manager-abis.ts"],"sourcesContent":["import { Chain } from '../../chains/constants';\nimport { PufferWithdrawalManager } from './mainnet/PufferWithdrawalManager';\n\nexport const PUFFER_WITHDRAWAL_MANAGER_ABIS = {\n [Chain.Mainnet]: { PufferWithdrawalManager },\n [Chain.Holesky]: { PufferWithdrawalManager },\n};\n"],"names":["PUFFER_WITHDRAWAL_MANAGER_ABIS","Chain","PufferWithdrawalManager"],"mappings":"mLAGaA,EAAiC,CAC5C,CAACC,EAAA,MAAM,OAAO,EAAG,CAAA,wBAAEC,yBAAwB,EAC3C,CAACD,EAAA,MAAM,OAAO,EAAG,CAAA,wBAAEC,yBAAwB,CAC7C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { C as r } from "../../constants-rWWWhxR_.js";
|
|
2
|
+
import { PufferWithdrawalManager as a } from "./mainnet/PufferWithdrawalManager.js";
|
|
3
|
+
const e = {
|
|
4
|
+
[r.Mainnet]: { PufferWithdrawalManager: a },
|
|
5
|
+
[r.Holesky]: { PufferWithdrawalManager: a }
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
e as PUFFER_WITHDRAWAL_MANAGER_ABIS
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=puffer-withdrawal-manager-abis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puffer-withdrawal-manager-abis.js","sources":["../../../lib/contracts/abis/puffer-withdrawal-manager-abis.ts"],"sourcesContent":["import { Chain } from '../../chains/constants';\nimport { PufferWithdrawalManager } from './mainnet/PufferWithdrawalManager';\n\nexport const PUFFER_WITHDRAWAL_MANAGER_ABIS = {\n [Chain.Mainnet]: { PufferWithdrawalManager },\n [Chain.Holesky]: { PufferWithdrawalManager },\n};\n"],"names":["PUFFER_WITHDRAWAL_MANAGER_ABIS","Chain","PufferWithdrawalManager"],"mappings":";;AAGO,MAAMA,IAAiC;AAAA,EAC5C,CAACC,EAAM,OAAO,GAAG,EAAE,yBAAAC,EAAwB;AAAA,EAC3C,CAACD,EAAM,OAAO,GAAG,EAAE,yBAAAC,EAAwB;AAC7C;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../constants-BvU-JhfL.cjs"),e={[a.Chain.Mainnet]:{PufferVault:"0xD9A442856C234a39a81a089C06451EBAa4306a72",PufferDepositor:"0x4aa799c5dfc01ee7d790e3bf1a7c2257ce1dceff",PufferL2Depositor:"0x3436E0B85cd929929F5802e792CFE282166E0259",PufLocker:"0x48e8dE138C246c14248C94d2D616a2F9eb4590D2",PufferWithdrawalManager:"0x8a253974f1de9f64d79f1eaaf850faf406802fce",L2RewardManager:"0xb4dBcf934558d7b647A7FB21bbcd6b8370318A5c",L1RewardManager:"0x5A0B37ce6c5b90B634B2AD32E3d909B545De8BB7"},[a.Chain.Holesky]:{PufferVault:"0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9",PufferDepositor:"0x824AC05aeb86A0aD770b8acDe0906d2d4a6c4A8c",PufferL2Depositor:"0x0af6998e4828ad8ef8f79a9288d0a861890f791d",PufLocker:"0xa58983ad0899a452b7420bc57228e329d7ba92b6",L1RewardManager:"0x10f970bcb84B82B82a65eBCbF45F26dD26D69F12",L2RewardManager:"0x58C046794f69A8830b0BE737022a45b4acd01dE5",PufferWithdrawalManager:"0xd3978c299A430a49D838429A4E50b1b5AE2aAa2f"}};exports.CONTRACT_ADDRESSES=e;
|
|
2
2
|
//# sourceMappingURL=addresses.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addresses.cjs","sources":["../../lib/contracts/addresses.ts"],"sourcesContent":["import { Chain } from '../chains/constants';\n\n// Source of truth:\n// https://github.com/PufferFinance/Deployments-and-ACL/tree/main/docs/deployments\nexport const CONTRACT_ADDRESSES = {\n [Chain.Mainnet]: {\n PufferVault: '0xD9A442856C234a39a81a089C06451EBAa4306a72',\n PufferDepositor: '0x4aa799c5dfc01ee7d790e3bf1a7c2257ce1dceff',\n PufferL2Depositor: '0x3436E0B85cd929929F5802e792CFE282166E0259',\n PufLocker: '0x48e8dE138C246c14248C94d2D616a2F9eb4590D2',\n L2RewardManager: '0xb4dBcf934558d7b647A7FB21bbcd6b8370318A5c',\n L1RewardManager: '0x5A0B37ce6c5b90B634B2AD32E3d909B545De8BB7',\n },\n [Chain.Holesky]: {\n PufferVault: '0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9',\n PufferDepositor: '0x824AC05aeb86A0aD770b8acDe0906d2d4a6c4A8c',\n PufferL2Depositor: '0x0af6998e4828ad8ef8f79a9288d0a861890f791d',\n PufLocker: '0xa58983ad0899a452b7420bc57228e329d7ba92b6',\n // These are deployed on a fork at the moment:\n // https://rpc.tenderly.co/fork/f7fd7621-7280-47e5-8521-81b24142814f\n L2RewardManager: '
|
|
1
|
+
{"version":3,"file":"addresses.cjs","sources":["../../lib/contracts/addresses.ts"],"sourcesContent":["import { Chain } from '../chains/constants';\n\n// Source of truth:\n// https://github.com/PufferFinance/Deployments-and-ACL/tree/main/docs/deployments\nexport const CONTRACT_ADDRESSES = {\n [Chain.Mainnet]: {\n PufferVault: '0xD9A442856C234a39a81a089C06451EBAa4306a72',\n PufferDepositor: '0x4aa799c5dfc01ee7d790e3bf1a7c2257ce1dceff',\n PufferL2Depositor: '0x3436E0B85cd929929F5802e792CFE282166E0259',\n PufLocker: '0x48e8dE138C246c14248C94d2D616a2F9eb4590D2',\n PufferWithdrawalManager: '0x8a253974f1de9f64d79f1eaaf850faf406802fce',\n L2RewardManager: '0xb4dBcf934558d7b647A7FB21bbcd6b8370318A5c',\n L1RewardManager: '0x5A0B37ce6c5b90B634B2AD32E3d909B545De8BB7',\n },\n [Chain.Holesky]: {\n PufferVault: '0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9',\n PufferDepositor: '0x824AC05aeb86A0aD770b8acDe0906d2d4a6c4A8c',\n PufferL2Depositor: '0x0af6998e4828ad8ef8f79a9288d0a861890f791d',\n PufLocker: '0xa58983ad0899a452b7420bc57228e329d7ba92b6',\n // These are deployed on a fork at the moment:\n // https://rpc.tenderly.co/fork/f7fd7621-7280-47e5-8521-81b24142814f\n L1RewardManager: '0x10f970bcb84B82B82a65eBCbF45F26dD26D69F12',\n L2RewardManager: '0x58C046794f69A8830b0BE737022a45b4acd01dE5',\n // This is deployed on a fork at the moment:\n // https://rpc.tenderly.co/fork/f7fd7621-7280-47e5-8521-81b24142814f\n PufferWithdrawalManager: '0xd3978c299A430a49D838429A4E50b1b5AE2aAa2f',\n },\n};\n"],"names":["CONTRACT_ADDRESSES","Chain"],"mappings":"6HAIaA,EAAqB,CAChC,CAACC,EAAAA,MAAM,OAAO,EAAG,CACf,YAAa,6CACb,gBAAiB,6CACjB,kBAAmB,6CACnB,UAAW,6CACX,wBAAyB,6CACzB,gBAAiB,6CACjB,gBAAiB,4CACnB,EACA,CAACA,EAAAA,MAAM,OAAO,EAAG,CACf,YAAa,6CACb,gBAAiB,6CACjB,kBAAmB,6CACnB,UAAW,6CAGX,gBAAiB,6CACjB,gBAAiB,6CAGjB,wBAAyB,4CAC3B,CACF"}
|
|
@@ -1,25 +1,29 @@
|
|
|
1
|
-
import { C as
|
|
2
|
-
const
|
|
3
|
-
[
|
|
1
|
+
import { C as a } from "../constants-rWWWhxR_.js";
|
|
2
|
+
const f = {
|
|
3
|
+
[a.Mainnet]: {
|
|
4
4
|
PufferVault: "0xD9A442856C234a39a81a089C06451EBAa4306a72",
|
|
5
5
|
PufferDepositor: "0x4aa799c5dfc01ee7d790e3bf1a7c2257ce1dceff",
|
|
6
6
|
PufferL2Depositor: "0x3436E0B85cd929929F5802e792CFE282166E0259",
|
|
7
7
|
PufLocker: "0x48e8dE138C246c14248C94d2D616a2F9eb4590D2",
|
|
8
|
+
PufferWithdrawalManager: "0x8a253974f1de9f64d79f1eaaf850faf406802fce",
|
|
8
9
|
L2RewardManager: "0xb4dBcf934558d7b647A7FB21bbcd6b8370318A5c",
|
|
9
10
|
L1RewardManager: "0x5A0B37ce6c5b90B634B2AD32E3d909B545De8BB7"
|
|
10
11
|
},
|
|
11
|
-
[
|
|
12
|
+
[a.Holesky]: {
|
|
12
13
|
PufferVault: "0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9",
|
|
13
14
|
PufferDepositor: "0x824AC05aeb86A0aD770b8acDe0906d2d4a6c4A8c",
|
|
14
15
|
PufferL2Depositor: "0x0af6998e4828ad8ef8f79a9288d0a861890f791d",
|
|
15
16
|
PufLocker: "0xa58983ad0899a452b7420bc57228e329d7ba92b6",
|
|
16
17
|
// These are deployed on a fork at the moment:
|
|
17
18
|
// https://rpc.tenderly.co/fork/f7fd7621-7280-47e5-8521-81b24142814f
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
L1RewardManager: "0x10f970bcb84B82B82a65eBCbF45F26dD26D69F12",
|
|
20
|
+
L2RewardManager: "0x58C046794f69A8830b0BE737022a45b4acd01dE5",
|
|
21
|
+
// This is deployed on a fork at the moment:
|
|
22
|
+
// https://rpc.tenderly.co/fork/f7fd7621-7280-47e5-8521-81b24142814f
|
|
23
|
+
PufferWithdrawalManager: "0xd3978c299A430a49D838429A4E50b1b5AE2aAa2f"
|
|
20
24
|
}
|
|
21
25
|
};
|
|
22
26
|
export {
|
|
23
|
-
|
|
27
|
+
f as CONTRACT_ADDRESSES
|
|
24
28
|
};
|
|
25
29
|
//# sourceMappingURL=addresses.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addresses.js","sources":["../../lib/contracts/addresses.ts"],"sourcesContent":["import { Chain } from '../chains/constants';\n\n// Source of truth:\n// https://github.com/PufferFinance/Deployments-and-ACL/tree/main/docs/deployments\nexport const CONTRACT_ADDRESSES = {\n [Chain.Mainnet]: {\n PufferVault: '0xD9A442856C234a39a81a089C06451EBAa4306a72',\n PufferDepositor: '0x4aa799c5dfc01ee7d790e3bf1a7c2257ce1dceff',\n PufferL2Depositor: '0x3436E0B85cd929929F5802e792CFE282166E0259',\n PufLocker: '0x48e8dE138C246c14248C94d2D616a2F9eb4590D2',\n L2RewardManager: '0xb4dBcf934558d7b647A7FB21bbcd6b8370318A5c',\n L1RewardManager: '0x5A0B37ce6c5b90B634B2AD32E3d909B545De8BB7',\n },\n [Chain.Holesky]: {\n PufferVault: '0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9',\n PufferDepositor: '0x824AC05aeb86A0aD770b8acDe0906d2d4a6c4A8c',\n PufferL2Depositor: '0x0af6998e4828ad8ef8f79a9288d0a861890f791d',\n PufLocker: '0xa58983ad0899a452b7420bc57228e329d7ba92b6',\n // These are deployed on a fork at the moment:\n // https://rpc.tenderly.co/fork/f7fd7621-7280-47e5-8521-81b24142814f\n L2RewardManager: '
|
|
1
|
+
{"version":3,"file":"addresses.js","sources":["../../lib/contracts/addresses.ts"],"sourcesContent":["import { Chain } from '../chains/constants';\n\n// Source of truth:\n// https://github.com/PufferFinance/Deployments-and-ACL/tree/main/docs/deployments\nexport const CONTRACT_ADDRESSES = {\n [Chain.Mainnet]: {\n PufferVault: '0xD9A442856C234a39a81a089C06451EBAa4306a72',\n PufferDepositor: '0x4aa799c5dfc01ee7d790e3bf1a7c2257ce1dceff',\n PufferL2Depositor: '0x3436E0B85cd929929F5802e792CFE282166E0259',\n PufLocker: '0x48e8dE138C246c14248C94d2D616a2F9eb4590D2',\n PufferWithdrawalManager: '0x8a253974f1de9f64d79f1eaaf850faf406802fce',\n L2RewardManager: '0xb4dBcf934558d7b647A7FB21bbcd6b8370318A5c',\n L1RewardManager: '0x5A0B37ce6c5b90B634B2AD32E3d909B545De8BB7',\n },\n [Chain.Holesky]: {\n PufferVault: '0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9',\n PufferDepositor: '0x824AC05aeb86A0aD770b8acDe0906d2d4a6c4A8c',\n PufferL2Depositor: '0x0af6998e4828ad8ef8f79a9288d0a861890f791d',\n PufLocker: '0xa58983ad0899a452b7420bc57228e329d7ba92b6',\n // These are deployed on a fork at the moment:\n // https://rpc.tenderly.co/fork/f7fd7621-7280-47e5-8521-81b24142814f\n L1RewardManager: '0x10f970bcb84B82B82a65eBCbF45F26dD26D69F12',\n L2RewardManager: '0x58C046794f69A8830b0BE737022a45b4acd01dE5',\n // This is deployed on a fork at the moment:\n // https://rpc.tenderly.co/fork/f7fd7621-7280-47e5-8521-81b24142814f\n PufferWithdrawalManager: '0xd3978c299A430a49D838429A4E50b1b5AE2aAa2f',\n },\n};\n"],"names":["CONTRACT_ADDRESSES","Chain"],"mappings":";AAIO,MAAMA,IAAqB;AAAA,EAChC,CAACC,EAAM,OAAO,GAAG;AAAA,IACf,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,WAAW;AAAA,IACX,yBAAyB;AAAA,IACzB,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,EACnB;AAAA,EACA,CAACA,EAAM,OAAO,GAAG;AAAA,IACf,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,WAAW;AAAA;AAAA;AAAA,IAGX,iBAAiB;AAAA,IACjB,iBAAiB;AAAA;AAAA;AAAA,IAGjB,yBAAyB;AAAA,EAC3B;AACF;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var p=Object.defineProperty;var d=(i,t,e)=>t in i?p(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var c=(i,t,e)=>d(i,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";var p=Object.defineProperty;var d=(i,t,e)=>t in i?p(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var c=(i,t,e)=>d(i,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../../constants-BvU-JhfL.cjs"),g=require("../abis/tokens-abis.cjs"),s=require("../tokens.cjs"),S=require("../../utils/time.cjs"),y=require("../../getContract-MrPLx6gp.cjs"),C=require("../../secp256k1-CFnFaJ0H.cjs");function T(i){const{r:t,s:e}=C.secp256k1.Signature.fromCompact(i.slice(2,130)),n=+`0x${i.slice(130)}`,[r,o]=(()=>{if(n===0||n===1)return[void 0,n];if(n===27)return[BigInt(n),0];if(n===28)return[BigInt(n),1];throw new Error("Invalid yParityOrV value")})();return typeof r<"u"?{r:a.numberToHex(t,{size:32}),s:a.numberToHex(e,{size:32}),v:r,yParity:o}:{r:a.numberToHex(t,{size:32}),s:a.numberToHex(e,{size:32}),yParity:o}}class E{constructor(t,e,n){c(this,"viemChain");c(this,"token");this.chain=t,this.walletClient=e,this.publicClient=n,this.viemChain=a.VIEM_CHAINS[t],this.token=s.Token.WETH}withToken(t){return this.token=t,this}getContract(){const t=s.TOKENS_ADDRESSES[this.token][this.chain],e=g.ERC20PERMIT_ABI,n={public:this.publicClient,wallet:this.walletClient};return y.getContract({address:t,abi:e,client:n})}async getPermitSignature(t,e,n){const r=this.getContract(),o=await r.read.nonces([t]),h={name:await r.read.name(),version:this.getPermitVersion(this.token),chainId:this.chain,verifyingContract:s.TOKENS_ADDRESSES[this.token][this.chain],salt:this.getPermitSalt(this.token)},m={Permit:[{name:"owner",type:"address"},{name:"spender",type:"address"},{name:"value",type:"uint256"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"}]},u=BigInt(S.getTimestampInSeconds()+60*60*2),l=await this.walletClient.signTypedData({account:t,domain:h,types:m,primaryType:"Permit",message:{owner:t,spender:e,value:n,nonce:o,deadline:u}});return{...T(l),deadline:u}}getPermitVersion(t){return s.TOKENS_PERMIT_VERSION[t]}approve(t,e,n){return this.getContract().write.approve([e,n],{account:t,chain:this.viemChain})}getPermitSalt(t){var e,n;return(n=(e=s.TOKENS_SALT)==null?void 0:e[t])==null?void 0:n[this.chain]}}exports.ERC20PermitHandler=E;
|
|
2
2
|
//# sourceMappingURL=erc20-permit-handler.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20-permit-handler.cjs","sources":["../../../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/utils/signature/parseSignature.js","../../../lib/contracts/handlers/erc20-permit-handler.ts"],"sourcesContent":["import { secp256k1 } from '@noble/curves/secp256k1';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * @description Parses a hex formatted signature into a structured signature.\n *\n * @param signatureHex Signature in hex format.\n * @returns The structured signature.\n *\n * @example\n * parseSignature('0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c')\n * // { r: '0x...', s: '0x...', v: 28n }\n */\nexport function parseSignature(signatureHex) {\n const { r, s } = secp256k1.Signature.fromCompact(signatureHex.slice(2, 130));\n const yParityOrV = Number(`0x${signatureHex.slice(130)}`);\n const [v, yParity] = (() => {\n if (yParityOrV === 0 || yParityOrV === 1)\n return [undefined, yParityOrV];\n if (yParityOrV === 27)\n return [BigInt(yParityOrV), 0];\n if (yParityOrV === 28)\n return [BigInt(yParityOrV), 1];\n throw new Error('Invalid yParityOrV value');\n })();\n if (typeof v !== 'undefined')\n return {\n r: numberToHex(r, { size: 32 }),\n s: numberToHex(s, { size: 32 }),\n v,\n yParity,\n };\n return {\n r: numberToHex(r, { size: 32 }),\n s: numberToHex(s, { size: 32 }),\n yParity,\n };\n}\n//# sourceMappingURL=parseSignature.js.map","import {\n WalletClient,\n PublicClient,\n getContract,\n Address,\n parseSignature,\n GetContractReturnType,\n} from 'viem';\nimport { Chain, VIEM_CHAINS, ViemChain } from '../../chains/constants';\nimport { ERC20PERMIT_ABI } from '../abis/tokens-abis';\nimport {\n AnyToken,\n TOKENS_ADDRESSES,\n TOKENS_PERMIT_VERSION,\n Token,\n} from '../tokens';\nimport { getTimestampInSeconds } from '../../utils/time';\n\n/**\n * Handler for performing operations for and with ERC20Permit tokens.\n */\nexport class ERC20PermitHandler {\n private viemChain: ViemChain;\n private token: AnyToken;\n\n /**\n * Create the handler for processing tokens.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n private chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n this.token = Token.WETH;\n }\n\n /**\n * Set the token to use for executing transactions on the contract.\n *\n * @param token Token to use for the handler.\n * @returns The handler.\n */\n public withToken(token: AnyToken) {\n this.token = token;\n return this;\n }\n\n /**\n * Get the contract. This is a method because the typings are complex\n * and lost when trying to make it a member.\n *\n * @returns The viem contract.\n */\n public getContract() {\n const address = TOKENS_ADDRESSES[this.token][this.chain];\n const abi = ERC20PERMIT_ABI;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({ address, abi, client }) as GetContractReturnType<\n typeof abi,\n typeof client,\n Address\n >;\n }\n\n /**\n * Process and get permit signature for the given token to perform\n * transactions through the `PufferDepositor` contract.\n *\n * @param ownerAddress Address of the token owner.\n * @param spenderAddress Address of the spender who needs the permit.\n * @param value Value of the transaction.\n * @returns Permit signature in the form `{ r, s, v?, yParity }`.\n */\n public async getPermitSignature(\n ownerAddress: Address,\n spenderAddress: Address,\n value: bigint,\n ) {\n const contract = this.getContract();\n\n const permitNonces = await contract.read.nonces([ownerAddress]);\n const name = await contract.read.name();\n const domain = <const>{\n name,\n version: this.getPermitVersion(this.token),\n chainId: this.chain,\n verifyingContract: TOKENS_ADDRESSES[this.token][this.chain],\n };\n const types = <const>{\n Permit: [\n { name: 'owner', type: 'address' },\n { name: 'spender', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n };\n // Valid for 2 hours.\n const deadline = BigInt(getTimestampInSeconds() + 60 * 60 * 2);\n\n const signature = await this.walletClient.signTypedData({\n account: ownerAddress,\n domain,\n types,\n primaryType: 'Permit',\n message: {\n owner: ownerAddress,\n spender: spenderAddress,\n value,\n nonce: permitNonces,\n deadline,\n },\n });\n\n return { ...parseSignature(signature), deadline };\n }\n\n private getPermitVersion(token: AnyToken): string {\n return TOKENS_PERMIT_VERSION[token];\n }\n\n /**\n * Approve transaction for the spender to spend the owner's tokens.\n *\n * @param ownerAddress Address of the caller of the transaction.\n * @param spenderAddress Address of the spender.\n * @param value Value to approve for the spender.\n * @returns Hash of the transaction.\n */\n public approve(\n ownerAddress: Address,\n spenderAddress: Address,\n value: bigint,\n ) {\n return this.getContract().write.approve([spenderAddress, value], {\n account: ownerAddress,\n chain: this.viemChain,\n });\n }\n}\n"],"names":["parseSignature","signatureHex","r","s","secp256k1","yParityOrV","v","yParity","numberToHex","ERC20PermitHandler","chain","walletClient","publicClient","__publicField","VIEM_CHAINS","Token","token","address","TOKENS_ADDRESSES","abi","ERC20PERMIT_ABI","client","getContract","ownerAddress","spenderAddress","value","contract","permitNonces","domain","types","deadline","getTimestampInSeconds","signature","TOKENS_PERMIT_VERSION"],"mappings":"4dAYO,SAASA,EAAeC,EAAc,CACzC,KAAM,CAAE,EAAAC,EAAG,EAAAC,CAAG,EAAGC,EAAS,UAAC,UAAU,YAAYH,EAAa,MAAM,EAAG,GAAG,CAAC,EACrEI,EAAa,CAAO,KAAKJ,EAAa,MAAM,GAAG,CAAC,GAChD,CAACK,EAAGC,CAAO,GAAK,IAAM,CACxB,GAAIF,IAAe,GAAKA,IAAe,EACnC,MAAO,CAAC,OAAWA,CAAU,EACjC,GAAIA,IAAe,GACf,MAAO,CAAC,OAAOA,CAAU,EAAG,CAAC,EACjC,GAAIA,IAAe,GACf,MAAO,CAAC,OAAOA,CAAU,EAAG,CAAC,EACjC,MAAM,IAAI,MAAM,0BAA0B,CAClD,KACI,OAAI,OAAOC,EAAM,IACN,CACH,EAAGE,EAAAA,YAAYN,EAAG,CAAE,KAAM,EAAE,CAAE,EAC9B,EAAGM,EAAAA,YAAYL,EAAG,CAAE,KAAM,EAAE,CAAE,EAC9B,EAAAG,EACA,QAAAC,CACZ,EACW,CACH,EAAGC,EAAAA,YAAYN,EAAG,CAAE,KAAM,EAAE,CAAE,EAC9B,EAAGM,EAAAA,YAAYL,EAAG,CAAE,KAAM,EAAE,CAAE,EAC9B,QAAAI,CACR,CACA,
|
|
1
|
+
{"version":3,"file":"erc20-permit-handler.cjs","sources":["../../../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/utils/signature/parseSignature.js","../../../lib/contracts/handlers/erc20-permit-handler.ts"],"sourcesContent":["import { secp256k1 } from '@noble/curves/secp256k1';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * @description Parses a hex formatted signature into a structured signature.\n *\n * @param signatureHex Signature in hex format.\n * @returns The structured signature.\n *\n * @example\n * parseSignature('0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c')\n * // { r: '0x...', s: '0x...', v: 28n }\n */\nexport function parseSignature(signatureHex) {\n const { r, s } = secp256k1.Signature.fromCompact(signatureHex.slice(2, 130));\n const yParityOrV = Number(`0x${signatureHex.slice(130)}`);\n const [v, yParity] = (() => {\n if (yParityOrV === 0 || yParityOrV === 1)\n return [undefined, yParityOrV];\n if (yParityOrV === 27)\n return [BigInt(yParityOrV), 0];\n if (yParityOrV === 28)\n return [BigInt(yParityOrV), 1];\n throw new Error('Invalid yParityOrV value');\n })();\n if (typeof v !== 'undefined')\n return {\n r: numberToHex(r, { size: 32 }),\n s: numberToHex(s, { size: 32 }),\n v,\n yParity,\n };\n return {\n r: numberToHex(r, { size: 32 }),\n s: numberToHex(s, { size: 32 }),\n yParity,\n };\n}\n//# sourceMappingURL=parseSignature.js.map","import {\n WalletClient,\n PublicClient,\n getContract,\n Address,\n parseSignature,\n GetContractReturnType,\n} from 'viem';\nimport { Chain, VIEM_CHAINS, ViemChain } from '../../chains/constants';\nimport { ERC20PERMIT_ABI } from '../abis/tokens-abis';\nimport {\n AnyToken,\n TOKENS_ADDRESSES,\n TOKENS_SALT,\n TOKENS_PERMIT_VERSION,\n Token,\n} from '../tokens';\nimport { getTimestampInSeconds } from '../../utils/time';\n\n/**\n * Handler for performing operations for and with ERC20Permit tokens.\n */\nexport class ERC20PermitHandler {\n private viemChain: ViemChain;\n private token: AnyToken;\n\n /**\n * Create the handler for processing tokens.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n private chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n this.token = Token.WETH;\n }\n\n /**\n * Set the token to use for executing transactions on the contract.\n *\n * @param token Token to use for the handler.\n * @returns The handler.\n */\n public withToken(token: AnyToken) {\n this.token = token;\n return this;\n }\n\n /**\n * Get the contract. This is a method because the typings are complex\n * and lost when trying to make it a member.\n *\n * @returns The viem contract.\n */\n public getContract() {\n const address = TOKENS_ADDRESSES[this.token][this.chain];\n const abi = ERC20PERMIT_ABI;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({ address, abi, client }) as GetContractReturnType<\n typeof abi,\n typeof client,\n Address\n >;\n }\n\n /**\n * Process and get permit signature for the given token to perform\n * transactions through the `PufferDepositor` contract.\n *\n * @param ownerAddress Address of the token owner.\n * @param spenderAddress Address of the spender who needs the permit.\n * @param value Value of the transaction.\n * @returns Permit signature in the form `{ r, s, v?, yParity }`.\n */\n public async getPermitSignature(\n ownerAddress: Address,\n spenderAddress: Address,\n value: bigint,\n ) {\n const contract = this.getContract();\n\n const permitNonces = await contract.read.nonces([ownerAddress]);\n const name = await contract.read.name();\n const domain = <const>{\n name,\n version: this.getPermitVersion(this.token),\n chainId: this.chain,\n verifyingContract: TOKENS_ADDRESSES[this.token][this.chain],\n salt: this.getPermitSalt(this.token),\n };\n const types = <const>{\n Permit: [\n { name: 'owner', type: 'address' },\n { name: 'spender', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n };\n // Valid for 2 hours.\n const deadline = BigInt(getTimestampInSeconds() + 60 * 60 * 2);\n\n const signature = await this.walletClient.signTypedData({\n account: ownerAddress,\n domain,\n types,\n primaryType: 'Permit',\n message: {\n owner: ownerAddress,\n spender: spenderAddress,\n value,\n nonce: permitNonces,\n deadline,\n },\n });\n\n return { ...parseSignature(signature), deadline };\n }\n\n private getPermitVersion(token: AnyToken): string {\n return TOKENS_PERMIT_VERSION[token];\n }\n\n /**\n * Approve transaction for the spender to spend the owner's tokens.\n *\n * @param ownerAddress Address of the caller of the transaction.\n * @param spenderAddress Address of the spender.\n * @param value Value to approve for the spender.\n * @returns Hash of the transaction.\n */\n public approve(\n ownerAddress: Address,\n spenderAddress: Address,\n value: bigint,\n ) {\n return this.getContract().write.approve([spenderAddress, value], {\n account: ownerAddress,\n chain: this.viemChain,\n });\n }\n\n private getPermitSalt(token: AnyToken) {\n return TOKENS_SALT?.[token]?.[this.chain];\n }\n}\n"],"names":["parseSignature","signatureHex","r","s","secp256k1","yParityOrV","v","yParity","numberToHex","ERC20PermitHandler","chain","walletClient","publicClient","__publicField","VIEM_CHAINS","Token","token","address","TOKENS_ADDRESSES","abi","ERC20PERMIT_ABI","client","getContract","ownerAddress","spenderAddress","value","contract","permitNonces","domain","types","deadline","getTimestampInSeconds","signature","TOKENS_PERMIT_VERSION","TOKENS_SALT"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -3,12 +3,12 @@ var d = (i, t, e) => t in i ? l(i, t, { enumerable: !0, configurable: !0, writab
|
|
|
3
3
|
var o = (i, t, e) => d(i, typeof t != "symbol" ? t + "" : t, e);
|
|
4
4
|
import { n as s, V as g } from "../../constants-rWWWhxR_.js";
|
|
5
5
|
import { ERC20PERMIT_ABI as y } from "../abis/tokens-abis.js";
|
|
6
|
-
import { Token as C, TOKENS_ADDRESSES as m, TOKENS_PERMIT_VERSION as f } from "../tokens.js";
|
|
6
|
+
import { Token as C, TOKENS_ADDRESSES as m, TOKENS_PERMIT_VERSION as f, TOKENS_SALT as S } from "../tokens.js";
|
|
7
7
|
import { getTimestampInSeconds as E } from "../../utils/time.js";
|
|
8
|
-
import { g as
|
|
9
|
-
import { s as
|
|
10
|
-
function
|
|
11
|
-
const { r: t, s: e } =
|
|
8
|
+
import { g as P } from "../../getContract-B3Spz0SO.js";
|
|
9
|
+
import { s as T } from "../../secp256k1-BLbXMlpX.js";
|
|
10
|
+
function I(i) {
|
|
11
|
+
const { r: t, s: e } = T.Signature.fromCompact(i.slice(2, 130)), n = +`0x${i.slice(130)}`, [r, a] = (() => {
|
|
12
12
|
if (n === 0 || n === 1)
|
|
13
13
|
return [void 0, n];
|
|
14
14
|
if (n === 27)
|
|
@@ -28,7 +28,7 @@ function w(i) {
|
|
|
28
28
|
yParity: a
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
-
class
|
|
31
|
+
class _ {
|
|
32
32
|
/**
|
|
33
33
|
* Create the handler for processing tokens.
|
|
34
34
|
*
|
|
@@ -60,7 +60,7 @@ class O {
|
|
|
60
60
|
*/
|
|
61
61
|
getContract() {
|
|
62
62
|
const t = m[this.token][this.chain], e = y, n = { public: this.publicClient, wallet: this.walletClient };
|
|
63
|
-
return
|
|
63
|
+
return P({ address: t, abi: e, client: n });
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
66
|
* Process and get permit signature for the given token to perform
|
|
@@ -72,12 +72,13 @@ class O {
|
|
|
72
72
|
* @returns Permit signature in the form `{ r, s, v?, yParity }`.
|
|
73
73
|
*/
|
|
74
74
|
async getPermitSignature(t, e, n) {
|
|
75
|
-
const r = this.getContract(), a = await r.read.nonces([t]),
|
|
75
|
+
const r = this.getContract(), a = await r.read.nonces([t]), h = {
|
|
76
76
|
name: await r.read.name(),
|
|
77
77
|
version: this.getPermitVersion(this.token),
|
|
78
78
|
chainId: this.chain,
|
|
79
|
-
verifyingContract: m[this.token][this.chain]
|
|
80
|
-
|
|
79
|
+
verifyingContract: m[this.token][this.chain],
|
|
80
|
+
salt: this.getPermitSalt(this.token)
|
|
81
|
+
}, p = {
|
|
81
82
|
Permit: [
|
|
82
83
|
{ name: "owner", type: "address" },
|
|
83
84
|
{ name: "spender", type: "address" },
|
|
@@ -87,8 +88,8 @@ class O {
|
|
|
87
88
|
]
|
|
88
89
|
}, c = BigInt(E() + 60 * 60 * 2), u = await this.walletClient.signTypedData({
|
|
89
90
|
account: t,
|
|
90
|
-
domain:
|
|
91
|
-
types:
|
|
91
|
+
domain: h,
|
|
92
|
+
types: p,
|
|
92
93
|
primaryType: "Permit",
|
|
93
94
|
message: {
|
|
94
95
|
owner: t,
|
|
@@ -98,7 +99,7 @@ class O {
|
|
|
98
99
|
deadline: c
|
|
99
100
|
}
|
|
100
101
|
});
|
|
101
|
-
return { ...
|
|
102
|
+
return { ...I(u), deadline: c };
|
|
102
103
|
}
|
|
103
104
|
getPermitVersion(t) {
|
|
104
105
|
return f[t];
|
|
@@ -117,8 +118,12 @@ class O {
|
|
|
117
118
|
chain: this.viemChain
|
|
118
119
|
});
|
|
119
120
|
}
|
|
121
|
+
getPermitSalt(t) {
|
|
122
|
+
var e, n;
|
|
123
|
+
return (n = (e = S) == null ? void 0 : e[t]) == null ? void 0 : n[this.chain];
|
|
124
|
+
}
|
|
120
125
|
}
|
|
121
126
|
export {
|
|
122
|
-
|
|
127
|
+
_ as ERC20PermitHandler
|
|
123
128
|
};
|
|
124
129
|
//# sourceMappingURL=erc20-permit-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc20-permit-handler.js","sources":["../../../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/utils/signature/parseSignature.js","../../../lib/contracts/handlers/erc20-permit-handler.ts"],"sourcesContent":["import { secp256k1 } from '@noble/curves/secp256k1';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * @description Parses a hex formatted signature into a structured signature.\n *\n * @param signatureHex Signature in hex format.\n * @returns The structured signature.\n *\n * @example\n * parseSignature('0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c')\n * // { r: '0x...', s: '0x...', v: 28n }\n */\nexport function parseSignature(signatureHex) {\n const { r, s } = secp256k1.Signature.fromCompact(signatureHex.slice(2, 130));\n const yParityOrV = Number(`0x${signatureHex.slice(130)}`);\n const [v, yParity] = (() => {\n if (yParityOrV === 0 || yParityOrV === 1)\n return [undefined, yParityOrV];\n if (yParityOrV === 27)\n return [BigInt(yParityOrV), 0];\n if (yParityOrV === 28)\n return [BigInt(yParityOrV), 1];\n throw new Error('Invalid yParityOrV value');\n })();\n if (typeof v !== 'undefined')\n return {\n r: numberToHex(r, { size: 32 }),\n s: numberToHex(s, { size: 32 }),\n v,\n yParity,\n };\n return {\n r: numberToHex(r, { size: 32 }),\n s: numberToHex(s, { size: 32 }),\n yParity,\n };\n}\n//# sourceMappingURL=parseSignature.js.map","import {\n WalletClient,\n PublicClient,\n getContract,\n Address,\n parseSignature,\n GetContractReturnType,\n} from 'viem';\nimport { Chain, VIEM_CHAINS, ViemChain } from '../../chains/constants';\nimport { ERC20PERMIT_ABI } from '../abis/tokens-abis';\nimport {\n AnyToken,\n TOKENS_ADDRESSES,\n TOKENS_PERMIT_VERSION,\n Token,\n} from '../tokens';\nimport { getTimestampInSeconds } from '../../utils/time';\n\n/**\n * Handler for performing operations for and with ERC20Permit tokens.\n */\nexport class ERC20PermitHandler {\n private viemChain: ViemChain;\n private token: AnyToken;\n\n /**\n * Create the handler for processing tokens.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n private chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n this.token = Token.WETH;\n }\n\n /**\n * Set the token to use for executing transactions on the contract.\n *\n * @param token Token to use for the handler.\n * @returns The handler.\n */\n public withToken(token: AnyToken) {\n this.token = token;\n return this;\n }\n\n /**\n * Get the contract. This is a method because the typings are complex\n * and lost when trying to make it a member.\n *\n * @returns The viem contract.\n */\n public getContract() {\n const address = TOKENS_ADDRESSES[this.token][this.chain];\n const abi = ERC20PERMIT_ABI;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({ address, abi, client }) as GetContractReturnType<\n typeof abi,\n typeof client,\n Address\n >;\n }\n\n /**\n * Process and get permit signature for the given token to perform\n * transactions through the `PufferDepositor` contract.\n *\n * @param ownerAddress Address of the token owner.\n * @param spenderAddress Address of the spender who needs the permit.\n * @param value Value of the transaction.\n * @returns Permit signature in the form `{ r, s, v?, yParity }`.\n */\n public async getPermitSignature(\n ownerAddress: Address,\n spenderAddress: Address,\n value: bigint,\n ) {\n const contract = this.getContract();\n\n const permitNonces = await contract.read.nonces([ownerAddress]);\n const name = await contract.read.name();\n const domain = <const>{\n name,\n version: this.getPermitVersion(this.token),\n chainId: this.chain,\n verifyingContract: TOKENS_ADDRESSES[this.token][this.chain],\n };\n const types = <const>{\n Permit: [\n { name: 'owner', type: 'address' },\n { name: 'spender', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n };\n // Valid for 2 hours.\n const deadline = BigInt(getTimestampInSeconds() + 60 * 60 * 2);\n\n const signature = await this.walletClient.signTypedData({\n account: ownerAddress,\n domain,\n types,\n primaryType: 'Permit',\n message: {\n owner: ownerAddress,\n spender: spenderAddress,\n value,\n nonce: permitNonces,\n deadline,\n },\n });\n\n return { ...parseSignature(signature), deadline };\n }\n\n private getPermitVersion(token: AnyToken): string {\n return TOKENS_PERMIT_VERSION[token];\n }\n\n /**\n * Approve transaction for the spender to spend the owner's tokens.\n *\n * @param ownerAddress Address of the caller of the transaction.\n * @param spenderAddress Address of the spender.\n * @param value Value to approve for the spender.\n * @returns Hash of the transaction.\n */\n public approve(\n ownerAddress: Address,\n spenderAddress: Address,\n value: bigint,\n ) {\n return this.getContract().write.approve([spenderAddress, value], {\n account: ownerAddress,\n chain: this.viemChain,\n });\n }\n}\n"],"names":["parseSignature","signatureHex","r","s","secp256k1","yParityOrV","v","yParity","numberToHex","ERC20PermitHandler","chain","walletClient","publicClient","__publicField","VIEM_CHAINS","Token","token","address","TOKENS_ADDRESSES","abi","ERC20PERMIT_ABI","client","getContract","ownerAddress","spenderAddress","value","contract","permitNonces","domain","types","deadline","getTimestampInSeconds","signature","TOKENS_PERMIT_VERSION"],"mappings":";;;;;;;;;AAYO,SAASA,EAAeC,GAAc;AACzC,QAAM,EAAE,GAAAC,GAAG,GAAAC,EAAG,IAAGC,EAAU,UAAU,YAAYH,EAAa,MAAM,GAAG,GAAG,CAAC,GACrEI,IAAa,CAAO,KAAKJ,EAAa,MAAM,GAAG,CAAC,IAChD,CAACK,GAAGC,CAAO,KAAK,MAAM;AACxB,QAAIF,MAAe,KAAKA,MAAe;AACnC,aAAO,CAAC,QAAWA,CAAU;AACjC,QAAIA,MAAe;AACf,aAAO,CAAC,OAAOA,CAAU,GAAG,CAAC;AACjC,QAAIA,MAAe;AACf,aAAO,CAAC,OAAOA,CAAU,GAAG,CAAC;AACjC,UAAM,IAAI,MAAM,0BAA0B;AAAA,EAClD;AACI,SAAI,OAAOC,IAAM,MACN;AAAA,IACH,GAAGE,EAAYN,GAAG,EAAE,MAAM,GAAE,CAAE;AAAA,IAC9B,GAAGM,EAAYL,GAAG,EAAE,MAAM,GAAE,CAAE;AAAA,IAC9B,GAAAG;AAAA,IACA,SAAAC;AAAA,EACZ,IACW;AAAA,IACH,GAAGC,EAAYN,GAAG,EAAE,MAAM,GAAE,CAAE;AAAA,IAC9B,GAAGM,EAAYL,GAAG,EAAE,MAAM,GAAE,CAAE;AAAA,IAC9B,SAAAI;AAAA,EACR;AACA;
|
|
1
|
+
{"version":3,"file":"erc20-permit-handler.js","sources":["../../../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/utils/signature/parseSignature.js","../../../lib/contracts/handlers/erc20-permit-handler.ts"],"sourcesContent":["import { secp256k1 } from '@noble/curves/secp256k1';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * @description Parses a hex formatted signature into a structured signature.\n *\n * @param signatureHex Signature in hex format.\n * @returns The structured signature.\n *\n * @example\n * parseSignature('0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c')\n * // { r: '0x...', s: '0x...', v: 28n }\n */\nexport function parseSignature(signatureHex) {\n const { r, s } = secp256k1.Signature.fromCompact(signatureHex.slice(2, 130));\n const yParityOrV = Number(`0x${signatureHex.slice(130)}`);\n const [v, yParity] = (() => {\n if (yParityOrV === 0 || yParityOrV === 1)\n return [undefined, yParityOrV];\n if (yParityOrV === 27)\n return [BigInt(yParityOrV), 0];\n if (yParityOrV === 28)\n return [BigInt(yParityOrV), 1];\n throw new Error('Invalid yParityOrV value');\n })();\n if (typeof v !== 'undefined')\n return {\n r: numberToHex(r, { size: 32 }),\n s: numberToHex(s, { size: 32 }),\n v,\n yParity,\n };\n return {\n r: numberToHex(r, { size: 32 }),\n s: numberToHex(s, { size: 32 }),\n yParity,\n };\n}\n//# sourceMappingURL=parseSignature.js.map","import {\n WalletClient,\n PublicClient,\n getContract,\n Address,\n parseSignature,\n GetContractReturnType,\n} from 'viem';\nimport { Chain, VIEM_CHAINS, ViemChain } from '../../chains/constants';\nimport { ERC20PERMIT_ABI } from '../abis/tokens-abis';\nimport {\n AnyToken,\n TOKENS_ADDRESSES,\n TOKENS_SALT,\n TOKENS_PERMIT_VERSION,\n Token,\n} from '../tokens';\nimport { getTimestampInSeconds } from '../../utils/time';\n\n/**\n * Handler for performing operations for and with ERC20Permit tokens.\n */\nexport class ERC20PermitHandler {\n private viemChain: ViemChain;\n private token: AnyToken;\n\n /**\n * Create the handler for processing tokens.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n private chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n this.token = Token.WETH;\n }\n\n /**\n * Set the token to use for executing transactions on the contract.\n *\n * @param token Token to use for the handler.\n * @returns The handler.\n */\n public withToken(token: AnyToken) {\n this.token = token;\n return this;\n }\n\n /**\n * Get the contract. This is a method because the typings are complex\n * and lost when trying to make it a member.\n *\n * @returns The viem contract.\n */\n public getContract() {\n const address = TOKENS_ADDRESSES[this.token][this.chain];\n const abi = ERC20PERMIT_ABI;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({ address, abi, client }) as GetContractReturnType<\n typeof abi,\n typeof client,\n Address\n >;\n }\n\n /**\n * Process and get permit signature for the given token to perform\n * transactions through the `PufferDepositor` contract.\n *\n * @param ownerAddress Address of the token owner.\n * @param spenderAddress Address of the spender who needs the permit.\n * @param value Value of the transaction.\n * @returns Permit signature in the form `{ r, s, v?, yParity }`.\n */\n public async getPermitSignature(\n ownerAddress: Address,\n spenderAddress: Address,\n value: bigint,\n ) {\n const contract = this.getContract();\n\n const permitNonces = await contract.read.nonces([ownerAddress]);\n const name = await contract.read.name();\n const domain = <const>{\n name,\n version: this.getPermitVersion(this.token),\n chainId: this.chain,\n verifyingContract: TOKENS_ADDRESSES[this.token][this.chain],\n salt: this.getPermitSalt(this.token),\n };\n const types = <const>{\n Permit: [\n { name: 'owner', type: 'address' },\n { name: 'spender', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n };\n // Valid for 2 hours.\n const deadline = BigInt(getTimestampInSeconds() + 60 * 60 * 2);\n\n const signature = await this.walletClient.signTypedData({\n account: ownerAddress,\n domain,\n types,\n primaryType: 'Permit',\n message: {\n owner: ownerAddress,\n spender: spenderAddress,\n value,\n nonce: permitNonces,\n deadline,\n },\n });\n\n return { ...parseSignature(signature), deadline };\n }\n\n private getPermitVersion(token: AnyToken): string {\n return TOKENS_PERMIT_VERSION[token];\n }\n\n /**\n * Approve transaction for the spender to spend the owner's tokens.\n *\n * @param ownerAddress Address of the caller of the transaction.\n * @param spenderAddress Address of the spender.\n * @param value Value to approve for the spender.\n * @returns Hash of the transaction.\n */\n public approve(\n ownerAddress: Address,\n spenderAddress: Address,\n value: bigint,\n ) {\n return this.getContract().write.approve([spenderAddress, value], {\n account: ownerAddress,\n chain: this.viemChain,\n });\n }\n\n private getPermitSalt(token: AnyToken) {\n return TOKENS_SALT?.[token]?.[this.chain];\n }\n}\n"],"names":["parseSignature","signatureHex","r","s","secp256k1","yParityOrV","v","yParity","numberToHex","ERC20PermitHandler","chain","walletClient","publicClient","__publicField","VIEM_CHAINS","Token","token","address","TOKENS_ADDRESSES","abi","ERC20PERMIT_ABI","client","getContract","ownerAddress","spenderAddress","value","contract","permitNonces","domain","types","deadline","getTimestampInSeconds","signature","TOKENS_PERMIT_VERSION","_b","_a","TOKENS_SALT"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var m=Object.defineProperty;var l=(i,t,a)=>t in i?m(i,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[t]=a;var n=(i,t,a)=>l(i,typeof t!="symbol"?t+"":t,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../addresses.cjs"),C=require("../../constants-BvU-JhfL.cjs"),g=require("./erc20-permit-handler.cjs"),w=require("../abis/puffer-withdrawal-manager-abis.cjs"),W=require("../tokens.cjs"),d=require("../../getContract-MrPLx6gp.cjs");class P{constructor(t,a,e){n(this,"viemChain");n(this,"erc20PermitHandler");this.chain=t,this.walletClient=a,this.publicClient=e,this.viemChain=C.VIEM_CHAINS[t],this.erc20PermitHandler=new g.ERC20PermitHandler(t,a,e)}getContract(){const t=s.CONTRACT_ADDRESSES[this.chain].PufferWithdrawalManager,a=w.PUFFER_WITHDRAWAL_MANAGER_ABIS[this.chain].PufferWithdrawalManager,e={public:this.publicClient,wallet:this.walletClient};return d.getContract({address:t,abi:a,client:e})}async requestWithdrawal(t,a){return{transact:async()=>await this.getContract().write.requestWithdrawal([a,t],{account:t,chain:this.viemChain}),estimate:async()=>await this.getContract().estimateGas.requestWithdrawal([a,t],{account:t})}}async requestWithdrawalWithPermit(t,a){const{r:e,s:r,v:h,yParity:o,deadline:u}=await this.erc20PermitHandler.withToken(W.Token.pufETH).getPermitSignature(t,s.CONTRACT_ADDRESSES[this.chain].PufferWithdrawalManager,a),c={r:e,s:r,v:Number(h??o),deadline:u,amount:a};return{transact:async()=>await this.getContract().write.requestWithdrawalWithPermit([c,t],{account:t,chain:this.viemChain}),estimate:async()=>await this.getContract().estimateGas.requestWithdrawalWithPermit([c,t],{account:t})}}async completeQueuedWithdrawal(t,a){return{transact:async()=>await this.getContract().write.completeQueuedWithdrawal([a],{account:t,chain:this.viemChain}),estimate:async()=>await this.getContract().estimateGas.completeQueuedWithdrawal([a],{account:t})}}async getWithdrawal(t){return await this.getContract().read.getWithdrawal([t])}}exports.PufferWithdrawalManagerHandler=P;
|
|
2
|
+
//# sourceMappingURL=puffer-withdrawal-manager-handler.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puffer-withdrawal-manager-handler.cjs","sources":["../../../lib/contracts/handlers/puffer-withdrawal-manager-handler.ts"],"sourcesContent":["import {\n Address,\n getContract,\n GetContractReturnType,\n PublicClient,\n WalletClient,\n} from 'viem';\nimport { CONTRACT_ADDRESSES } from '../addresses';\nimport { Chain, VIEM_CHAINS, ViemChain } from '../../chains/constants';\nimport { ERC20PermitHandler } from './erc20-permit-handler';\nimport { PUFFER_WITHDRAWAL_MANAGER_ABIS } from '../abis/puffer-withdrawal-manager-abis';\nimport { Token } from '../tokens';\n\n/**\n * Handler for the `PufferWithdrawalsManager` contract exposing methods to\n * interact with the contract.\n */\nexport class PufferWithdrawalManagerHandler {\n private viemChain: ViemChain;\n private erc20PermitHandler: ERC20PermitHandler;\n\n /**\n * Create the handler for the `PufferWithdrawalsManager` contract exposing\n * methods to interact with the contract.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n private chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n this.erc20PermitHandler = new ERC20PermitHandler(\n chain,\n walletClient,\n publicClient,\n );\n }\n\n /**\n * Get the contract.\n *\n * @returns The viem contract.\n */\n public getContract() {\n const address = CONTRACT_ADDRESSES[this.chain]\n .PufferWithdrawalManager as Address;\n const abi =\n PUFFER_WITHDRAWAL_MANAGER_ABIS[this.chain].PufferWithdrawalManager;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({ address, abi, client }) as GetContractReturnType<\n typeof abi,\n typeof client,\n Address\n >;\n }\n\n /**\n * Request a withdrawal of the given amount to the given address, with a permit.\n *\n * @param walletAddress The account address to request the withdrawal for.\n * @param amount The pufETH amount to request the withdrawal for.\n * @returns The transaction hash of the withdrawal.\n */\n public async requestWithdrawal(walletAddress: Address, amount: bigint) {\n const transact = async () =>\n await this.getContract().write.requestWithdrawal(\n [amount, walletAddress],\n {\n account: walletAddress,\n chain: this.viemChain,\n },\n );\n\n const estimate = async () =>\n await this.getContract().estimateGas.requestWithdrawal(\n [amount, walletAddress],\n { account: walletAddress },\n );\n\n return { transact, estimate };\n }\n\n /**\n * Request a withdrawal of the given amount to the given address.\n *\n * @param walletAddress The account address to request the withdrawal for.\n * @param amount The pufETHamount to request the withdrawal for.\n * @returns The transaction hash of the withdrawal.\n */\n public async requestWithdrawalWithPermit(\n walletAddress: Address,\n amount: bigint,\n ) {\n const { r, s, v, yParity, deadline } = await this.erc20PermitHandler\n .withToken(Token.pufETH)\n .getPermitSignature(\n walletAddress,\n CONTRACT_ADDRESSES[this.chain].PufferWithdrawalManager as Address,\n amount,\n );\n\n /* istanbul ignore next */\n const permitData = {\n r,\n s,\n v: Number(v ?? yParity),\n deadline,\n amount,\n };\n\n const transact = async () =>\n await this.getContract().write.requestWithdrawalWithPermit(\n [permitData, walletAddress],\n {\n account: walletAddress,\n chain: this.viemChain,\n },\n );\n\n const estimate = async () =>\n await this.getContract().estimateGas.requestWithdrawalWithPermit(\n [permitData, walletAddress],\n { account: walletAddress },\n );\n\n return { transact, estimate };\n }\n\n /**\n * Complete a withdrawal from the queue.\n *\n * @param withdrawalIdx The index of the withdrawal to complete.\n * @returns The transaction hash of the withdrawal.\n */\n public async completeQueuedWithdrawal(\n walletAddress: Address,\n withdrawalIdx: bigint,\n ) {\n const transact = async () =>\n await this.getContract().write.completeQueuedWithdrawal([withdrawalIdx], {\n account: walletAddress,\n chain: this.viemChain,\n });\n\n const estimate = async () =>\n await this.getContract().estimateGas.completeQueuedWithdrawal(\n [withdrawalIdx],\n { account: walletAddress },\n );\n\n return { transact, estimate };\n }\n\n /**\n * Get the withdrawal at the given index.\n *\n * @param withdrawalIdx The index of the withdrawal to get.\n * @returns The withdrawal at the given index.\n */\n public async getWithdrawal(withdrawalIdx: bigint) {\n return await this.getContract().read.getWithdrawal([withdrawalIdx]);\n }\n}\n"],"names":["PufferWithdrawalManagerHandler","chain","walletClient","publicClient","__publicField","VIEM_CHAINS","ERC20PermitHandler","address","CONTRACT_ADDRESSES","abi","PUFFER_WITHDRAWAL_MANAGER_ABIS","client","getContract","walletAddress","amount","r","s","v","yParity","deadline","Token","permitData","withdrawalIdx"],"mappings":"yeAiBO,MAAMA,CAA+B,CAc1C,YACUC,EACAC,EACAC,EACR,CAjBMC,EAAA,kBACAA,EAAA,2BAaE,KAAA,MAAAH,EACA,KAAA,aAAAC,EACA,KAAA,aAAAC,EAEH,KAAA,UAAYE,cAAYJ,CAAK,EAClC,KAAK,mBAAqB,IAAIK,EAAA,mBAC5BL,EACAC,EACAC,CAAA,CAEJ,CAOO,aAAc,CACnB,MAAMI,EAAUC,EAAA,mBAAmB,KAAK,KAAK,EAC1C,wBACGC,EACJC,EAAA,+BAA+B,KAAK,KAAK,EAAE,wBACvCC,EAAS,CAAE,OAAQ,KAAK,aAAc,OAAQ,KAAK,cAEzD,OAAOC,EAAY,YAAA,CAAE,QAAAL,EAAS,IAAAE,EAAK,OAAAE,CAAQ,CAAA,CAK7C,CASA,MAAa,kBAAkBE,EAAwBC,EAAgB,CAgB9D,MAAA,CAAE,SAfQ,SACf,MAAM,KAAK,cAAc,MAAM,kBAC7B,CAACA,EAAQD,CAAa,EACtB,CACE,QAASA,EACT,MAAO,KAAK,SACd,CAAA,EASe,SANF,SACf,MAAM,KAAK,cAAc,YAAY,kBACnC,CAACC,EAAQD,CAAa,EACtB,CAAE,QAASA,CAAc,CAAA,EAI/B,CASA,MAAa,4BACXA,EACAC,EACA,CACA,KAAM,CAAE,EAAAC,EAAG,EAAAC,EAAG,EAAAC,EAAG,QAAAC,EAAS,SAAAC,CAAA,EAAa,MAAM,KAAK,mBAC/C,UAAUC,EAAAA,MAAM,MAAM,EACtB,mBACCP,EACAL,qBAAmB,KAAK,KAAK,EAAE,wBAC/BM,CAAA,EAIEO,EAAa,CACjB,EAAAN,EACA,EAAAC,EACA,EAAG,OAAOC,GAAKC,CAAO,EACtB,SAAAC,EACA,OAAAL,CAAA,EAkBK,MAAA,CAAE,SAfQ,SACf,MAAM,KAAK,cAAc,MAAM,4BAC7B,CAACO,EAAYR,CAAa,EAC1B,CACE,QAASA,EACT,MAAO,KAAK,SACd,CAAA,EASe,SANF,SACf,MAAM,KAAK,cAAc,YAAY,4BACnC,CAACQ,EAAYR,CAAa,EAC1B,CAAE,QAASA,CAAc,CAAA,EAI/B,CAQA,MAAa,yBACXA,EACAS,EACA,CAaO,MAAA,CAAE,SAZQ,SACf,MAAM,KAAK,cAAc,MAAM,yBAAyB,CAACA,CAAa,EAAG,CACvE,QAAST,EACT,MAAO,KAAK,SAAA,CACb,EAQgB,SANF,SACf,MAAM,KAAK,cAAc,YAAY,yBACnC,CAACS,CAAa,EACd,CAAE,QAAST,CAAc,CAAA,EAI/B,CAQA,MAAa,cAAcS,EAAuB,CACzC,OAAA,MAAM,KAAK,YAAY,EAAE,KAAK,cAAc,CAACA,CAAa,CAAC,CACpE,CACF"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
var u = Object.defineProperty;
|
|
2
|
+
var w = (e, t, a) => t in e ? u(e, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[t] = a;
|
|
3
|
+
var n = (e, t, a) => w(e, typeof t != "symbol" ? t + "" : t, a);
|
|
4
|
+
import { CONTRACT_ADDRESSES as s } from "../addresses.js";
|
|
5
|
+
import { V as C } from "../../constants-rWWWhxR_.js";
|
|
6
|
+
import { ERC20PermitHandler as W } from "./erc20-permit-handler.js";
|
|
7
|
+
import { PUFFER_WITHDRAWAL_MANAGER_ABIS as g } from "../abis/puffer-withdrawal-manager-abis.js";
|
|
8
|
+
import { Token as l } from "../tokens.js";
|
|
9
|
+
import { g as f } from "../../getContract-B3Spz0SO.js";
|
|
10
|
+
class R {
|
|
11
|
+
/**
|
|
12
|
+
* Create the handler for the `PufferWithdrawalsManager` contract exposing
|
|
13
|
+
* methods to interact with the contract.
|
|
14
|
+
*
|
|
15
|
+
* @param chain Chain to use for the client.
|
|
16
|
+
* @param walletClient The wallet client to use for wallet
|
|
17
|
+
* interactions.
|
|
18
|
+
* @param publicClient The public client to use for public
|
|
19
|
+
* interactions.
|
|
20
|
+
*/
|
|
21
|
+
constructor(t, a, i) {
|
|
22
|
+
n(this, "viemChain");
|
|
23
|
+
n(this, "erc20PermitHandler");
|
|
24
|
+
this.chain = t, this.walletClient = a, this.publicClient = i, this.viemChain = C[t], this.erc20PermitHandler = new W(
|
|
25
|
+
t,
|
|
26
|
+
a,
|
|
27
|
+
i
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get the contract.
|
|
32
|
+
*
|
|
33
|
+
* @returns The viem contract.
|
|
34
|
+
*/
|
|
35
|
+
getContract() {
|
|
36
|
+
const t = s[this.chain].PufferWithdrawalManager, a = g[this.chain].PufferWithdrawalManager, i = { public: this.publicClient, wallet: this.walletClient };
|
|
37
|
+
return f({ address: t, abi: a, client: i });
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Request a withdrawal of the given amount to the given address, with a permit.
|
|
41
|
+
*
|
|
42
|
+
* @param walletAddress The account address to request the withdrawal for.
|
|
43
|
+
* @param amount The pufETH amount to request the withdrawal for.
|
|
44
|
+
* @returns The transaction hash of the withdrawal.
|
|
45
|
+
*/
|
|
46
|
+
async requestWithdrawal(t, a) {
|
|
47
|
+
return { transact: async () => await this.getContract().write.requestWithdrawal(
|
|
48
|
+
[a, t],
|
|
49
|
+
{
|
|
50
|
+
account: t,
|
|
51
|
+
chain: this.viemChain
|
|
52
|
+
}
|
|
53
|
+
), estimate: async () => await this.getContract().estimateGas.requestWithdrawal(
|
|
54
|
+
[a, t],
|
|
55
|
+
{ account: t }
|
|
56
|
+
) };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Request a withdrawal of the given amount to the given address.
|
|
60
|
+
*
|
|
61
|
+
* @param walletAddress The account address to request the withdrawal for.
|
|
62
|
+
* @param amount The pufETHamount to request the withdrawal for.
|
|
63
|
+
* @returns The transaction hash of the withdrawal.
|
|
64
|
+
*/
|
|
65
|
+
async requestWithdrawalWithPermit(t, a) {
|
|
66
|
+
const { r: i, s: r, v: h, yParity: o, deadline: m } = await this.erc20PermitHandler.withToken(l.pufETH).getPermitSignature(
|
|
67
|
+
t,
|
|
68
|
+
s[this.chain].PufferWithdrawalManager,
|
|
69
|
+
a
|
|
70
|
+
), c = {
|
|
71
|
+
r: i,
|
|
72
|
+
s: r,
|
|
73
|
+
v: Number(h ?? o),
|
|
74
|
+
deadline: m,
|
|
75
|
+
amount: a
|
|
76
|
+
};
|
|
77
|
+
return { transact: async () => await this.getContract().write.requestWithdrawalWithPermit(
|
|
78
|
+
[c, t],
|
|
79
|
+
{
|
|
80
|
+
account: t,
|
|
81
|
+
chain: this.viemChain
|
|
82
|
+
}
|
|
83
|
+
), estimate: async () => await this.getContract().estimateGas.requestWithdrawalWithPermit(
|
|
84
|
+
[c, t],
|
|
85
|
+
{ account: t }
|
|
86
|
+
) };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Complete a withdrawal from the queue.
|
|
90
|
+
*
|
|
91
|
+
* @param withdrawalIdx The index of the withdrawal to complete.
|
|
92
|
+
* @returns The transaction hash of the withdrawal.
|
|
93
|
+
*/
|
|
94
|
+
async completeQueuedWithdrawal(t, a) {
|
|
95
|
+
return { transact: async () => await this.getContract().write.completeQueuedWithdrawal([a], {
|
|
96
|
+
account: t,
|
|
97
|
+
chain: this.viemChain
|
|
98
|
+
}), estimate: async () => await this.getContract().estimateGas.completeQueuedWithdrawal(
|
|
99
|
+
[a],
|
|
100
|
+
{ account: t }
|
|
101
|
+
) };
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get the withdrawal at the given index.
|
|
105
|
+
*
|
|
106
|
+
* @param withdrawalIdx The index of the withdrawal to get.
|
|
107
|
+
* @returns The withdrawal at the given index.
|
|
108
|
+
*/
|
|
109
|
+
async getWithdrawal(t) {
|
|
110
|
+
return await this.getContract().read.getWithdrawal([t]);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
export {
|
|
114
|
+
R as PufferWithdrawalManagerHandler
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=puffer-withdrawal-manager-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puffer-withdrawal-manager-handler.js","sources":["../../../lib/contracts/handlers/puffer-withdrawal-manager-handler.ts"],"sourcesContent":["import {\n Address,\n getContract,\n GetContractReturnType,\n PublicClient,\n WalletClient,\n} from 'viem';\nimport { CONTRACT_ADDRESSES } from '../addresses';\nimport { Chain, VIEM_CHAINS, ViemChain } from '../../chains/constants';\nimport { ERC20PermitHandler } from './erc20-permit-handler';\nimport { PUFFER_WITHDRAWAL_MANAGER_ABIS } from '../abis/puffer-withdrawal-manager-abis';\nimport { Token } from '../tokens';\n\n/**\n * Handler for the `PufferWithdrawalsManager` contract exposing methods to\n * interact with the contract.\n */\nexport class PufferWithdrawalManagerHandler {\n private viemChain: ViemChain;\n private erc20PermitHandler: ERC20PermitHandler;\n\n /**\n * Create the handler for the `PufferWithdrawalsManager` contract exposing\n * methods to interact with the contract.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n private chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n this.erc20PermitHandler = new ERC20PermitHandler(\n chain,\n walletClient,\n publicClient,\n );\n }\n\n /**\n * Get the contract.\n *\n * @returns The viem contract.\n */\n public getContract() {\n const address = CONTRACT_ADDRESSES[this.chain]\n .PufferWithdrawalManager as Address;\n const abi =\n PUFFER_WITHDRAWAL_MANAGER_ABIS[this.chain].PufferWithdrawalManager;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({ address, abi, client }) as GetContractReturnType<\n typeof abi,\n typeof client,\n Address\n >;\n }\n\n /**\n * Request a withdrawal of the given amount to the given address, with a permit.\n *\n * @param walletAddress The account address to request the withdrawal for.\n * @param amount The pufETH amount to request the withdrawal for.\n * @returns The transaction hash of the withdrawal.\n */\n public async requestWithdrawal(walletAddress: Address, amount: bigint) {\n const transact = async () =>\n await this.getContract().write.requestWithdrawal(\n [amount, walletAddress],\n {\n account: walletAddress,\n chain: this.viemChain,\n },\n );\n\n const estimate = async () =>\n await this.getContract().estimateGas.requestWithdrawal(\n [amount, walletAddress],\n { account: walletAddress },\n );\n\n return { transact, estimate };\n }\n\n /**\n * Request a withdrawal of the given amount to the given address.\n *\n * @param walletAddress The account address to request the withdrawal for.\n * @param amount The pufETHamount to request the withdrawal for.\n * @returns The transaction hash of the withdrawal.\n */\n public async requestWithdrawalWithPermit(\n walletAddress: Address,\n amount: bigint,\n ) {\n const { r, s, v, yParity, deadline } = await this.erc20PermitHandler\n .withToken(Token.pufETH)\n .getPermitSignature(\n walletAddress,\n CONTRACT_ADDRESSES[this.chain].PufferWithdrawalManager as Address,\n amount,\n );\n\n /* istanbul ignore next */\n const permitData = {\n r,\n s,\n v: Number(v ?? yParity),\n deadline,\n amount,\n };\n\n const transact = async () =>\n await this.getContract().write.requestWithdrawalWithPermit(\n [permitData, walletAddress],\n {\n account: walletAddress,\n chain: this.viemChain,\n },\n );\n\n const estimate = async () =>\n await this.getContract().estimateGas.requestWithdrawalWithPermit(\n [permitData, walletAddress],\n { account: walletAddress },\n );\n\n return { transact, estimate };\n }\n\n /**\n * Complete a withdrawal from the queue.\n *\n * @param withdrawalIdx The index of the withdrawal to complete.\n * @returns The transaction hash of the withdrawal.\n */\n public async completeQueuedWithdrawal(\n walletAddress: Address,\n withdrawalIdx: bigint,\n ) {\n const transact = async () =>\n await this.getContract().write.completeQueuedWithdrawal([withdrawalIdx], {\n account: walletAddress,\n chain: this.viemChain,\n });\n\n const estimate = async () =>\n await this.getContract().estimateGas.completeQueuedWithdrawal(\n [withdrawalIdx],\n { account: walletAddress },\n );\n\n return { transact, estimate };\n }\n\n /**\n * Get the withdrawal at the given index.\n *\n * @param withdrawalIdx The index of the withdrawal to get.\n * @returns The withdrawal at the given index.\n */\n public async getWithdrawal(withdrawalIdx: bigint) {\n return await this.getContract().read.getWithdrawal([withdrawalIdx]);\n }\n}\n"],"names":["PufferWithdrawalManagerHandler","chain","walletClient","publicClient","__publicField","VIEM_CHAINS","ERC20PermitHandler","address","CONTRACT_ADDRESSES","abi","PUFFER_WITHDRAWAL_MANAGER_ABIS","client","getContract","walletAddress","amount","r","s","v","yParity","deadline","Token","permitData","withdrawalIdx"],"mappings":";;;;;;;;;AAiBO,MAAMA,EAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAc1C,YACUC,GACAC,GACAC,GACR;AAjBM,IAAAC,EAAA;AACA,IAAAA,EAAA;AAaE,SAAA,QAAAH,GACA,KAAA,eAAAC,GACA,KAAA,eAAAC,GAEH,KAAA,YAAYE,EAAYJ,CAAK,GAClC,KAAK,qBAAqB,IAAIK;AAAA,MAC5BL;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,cAAc;AACnB,UAAMI,IAAUC,EAAmB,KAAK,KAAK,EAC1C,yBACGC,IACJC,EAA+B,KAAK,KAAK,EAAE,yBACvCC,IAAS,EAAE,QAAQ,KAAK,cAAc,QAAQ,KAAK;AAEzD,WAAOC,EAAY,EAAE,SAAAL,GAAS,KAAAE,GAAK,QAAAE,EAAQ,CAAA;AAAA,EAK7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAa,kBAAkBE,GAAwBC,GAAgB;AAgB9D,WAAA,EAAE,UAfQ,YACf,MAAM,KAAK,cAAc,MAAM;AAAA,MAC7B,CAACA,GAAQD,CAAa;AAAA,MACtB;AAAA,QACE,SAASA;AAAA,QACT,OAAO,KAAK;AAAA,MACd;AAAA,IAAA,GASe,UANF,YACf,MAAM,KAAK,cAAc,YAAY;AAAA,MACnC,CAACC,GAAQD,CAAa;AAAA,MACtB,EAAE,SAASA,EAAc;AAAA,IAAA;EAI/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAa,4BACXA,GACAC,GACA;AACA,UAAM,EAAE,GAAAC,GAAG,GAAAC,GAAG,GAAAC,GAAG,SAAAC,GAAS,UAAAC,EAAA,IAAa,MAAM,KAAK,mBAC/C,UAAUC,EAAM,MAAM,EACtB;AAAA,MACCP;AAAA,MACAL,EAAmB,KAAK,KAAK,EAAE;AAAA,MAC/BM;AAAA,IAAA,GAIEO,IAAa;AAAA,MACjB,GAAAN;AAAA,MACA,GAAAC;AAAA,MACA,GAAG,OAAOC,KAAKC,CAAO;AAAA,MACtB,UAAAC;AAAA,MACA,QAAAL;AAAA,IAAA;AAkBK,WAAA,EAAE,UAfQ,YACf,MAAM,KAAK,cAAc,MAAM;AAAA,MAC7B,CAACO,GAAYR,CAAa;AAAA,MAC1B;AAAA,QACE,SAASA;AAAA,QACT,OAAO,KAAK;AAAA,MACd;AAAA,IAAA,GASe,UANF,YACf,MAAM,KAAK,cAAc,YAAY;AAAA,MACnC,CAACQ,GAAYR,CAAa;AAAA,MAC1B,EAAE,SAASA,EAAc;AAAA,IAAA;EAI/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAa,yBACXA,GACAS,GACA;AAaO,WAAA,EAAE,UAZQ,YACf,MAAM,KAAK,cAAc,MAAM,yBAAyB,CAACA,CAAa,GAAG;AAAA,MACvE,SAAST;AAAA,MACT,OAAO,KAAK;AAAA,IAAA,CACb,GAQgB,UANF,YACf,MAAM,KAAK,cAAc,YAAY;AAAA,MACnC,CAACS,CAAa;AAAA,MACd,EAAE,SAAST,EAAc;AAAA,IAAA;EAI/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAa,cAAcS,GAAuB;AACzC,WAAA,MAAM,KAAK,YAAY,EAAE,KAAK,cAAc,CAACA,CAAa,CAAC;AAAA,EACpE;AACF;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../constants-BvU-JhfL.cjs");var f=(e=>(e.USDT="USDT",e.USDC="USDC",e.DAI="DAI",e.WETH="WETH",e.stETH="stETH",e.wstETH="wstETH",e.ALT="ALT",e.eETH="eETH",e.pufETHwstE="pufETHwstE",e.pufETH="pufETH",e))(f||{}),E=(e=>(e.pufUSDT="pufUSDT",e.pufUSDC="pufUSDC",e.pufDAI="pufDAI",e.pufpufETH="pufpufETH",e.pufWETH="pufWETH",e.pufstETH="pufstETH",e.pufwstETH="pufwstETH",e.pufALT="pufALT",e.pufeETH="pufeETH",e.pufpufETHwstE="pufpufETHwstE",e))(E||{});const H={USDT:"pufUSDT",USDC:"pufUSDC",DAI:"pufDAI",WETH:"pufWETH",stETH:"pufstETH",wstETH:"pufwstETH",ALT:"pufALT",eETH:"pufeETH",pufETHwstE:"pufpufETHwstE",pufETH:"pufpufETH"},T={USDT:{[a.Chain.Mainnet]:"0xdac17f958d2ee523a2206206994597c13d831ec7",[a.Chain.Holesky]:"0xd5bef2c64f418fd460319521d37862327122e3bc"},USDC:{[a.Chain.Mainnet]:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",[a.Chain.Holesky]:"0x64Cc0de0429bcb87e875905a0c313ec88f6d1d3E"},DAI:{[a.Chain.Mainnet]:"0x6b175474e89094c44da98b954eedeac495271d0f",[a.Chain.Holesky]:"0x4478905505ddfb7eA1c8A9f46eAEC3695cE542ac"},WETH:{[a.Chain.Mainnet]:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",[a.Chain.Holesky]:"0x1d181cBd1825e9eBC6AD966878D555A7215FF4F0"},stETH:{[a.Chain.Mainnet]:"0xae7ab96520de3a18e5e111b5eaab095312d7fe84",[a.Chain.Holesky]:"0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034"},wstETH:{[a.Chain.Mainnet]:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",[a.Chain.Holesky]:"0x8d09a4502Cc8Cf1547aD300E066060D043f6982D"},ALT:{[a.Chain.Mainnet]:"0x8457ca5040ad67fdebbcc8edce889a335bc0fbfb",[a.Chain.Holesky]:"0xaf5588a571b42c7e50bd440d80f9bf94a4db94ee"},eETH:{[a.Chain.Mainnet]:"0x35fa164735182de50811e8e2e824cfb9b6118ac2",[a.Chain.Holesky]:"0x7ba2ee123b5977e3da040e1eacb3a61c82c17876"},pufETHwstE:{[a.Chain.Mainnet]:"0xeeda34a377dd0ca676b9511ee1324974fa8d980d",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufETH:{[a.Chain.Mainnet]:"0xd9a442856c234a39a81a089c06451ebaa4306a72",[a.Chain.Holesky]:"0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9"},pufUSDT:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x61e7C87c387178D6e0aE6c04748b7FF753fC9b81"},pufUSDC:{[a.Chain.Mainnet]:"0x2f0d8e30df0c598b90b34cd68b5e3981b7af3881",[a.Chain.Holesky]:"0x6D900a9f5784A2cA0004B5c3D3e08D7A9cE4A1b3"},pufDAI:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x2D6B705e118198A02F00490BA323B17eC5D58109"},pufWETH:{[a.Chain.Mainnet]:"0x2b36f6bfd223f460e7e43ef49bc487481648948c",[a.Chain.Holesky]:"0x5335f231C22d472Ab31CC2690A2247d25efd76a5"},pufstETH:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufwstETH:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufALT:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufeETH:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufpufETHwstE:{[a.Chain.Mainnet]:"0xf374014f6fa86bad50d52e6240a117b0830663cb",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufpufETH:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x638fd1Fe8205285E8497Eb8E6037c8254EDdB0ae"}},n={USDT:"2",USDC:"",DAI:"",WETH:"",stETH:"2",wstETH:"1",ALT:"1",eETH:"1",pufETHwstE:"",pufETH:"1",pufUSDT:"1",pufUSDC:"1",pufDAI:"1",pufWETH:"1",pufstETH:"1",pufwstETH:"1",pufALT:"1",pufeETH:"1",pufpufETHwstE:"1",pufpufETH:"1"};exports.PufToken=E;exports.TOKENS_ADDRESSES=T;exports.TOKENS_PERMIT_VERSION=n;exports.TOKEN_TO_PUF_TOKEN_MAP=H;exports.Token=f;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../constants-BvU-JhfL.cjs");var f=(e=>(e.USDT="USDT",e.USDC="USDC",e.DAI="DAI",e.WETH="WETH",e.stETH="stETH",e.wstETH="wstETH",e.ALT="ALT",e.eETH="eETH",e.pufETHwstE="pufETHwstE",e.pufETH="pufETH",e))(f||{}),E=(e=>(e.pufUSDT="pufUSDT",e.pufUSDC="pufUSDC",e.pufDAI="pufDAI",e.pufpufETH="pufpufETH",e.pufWETH="pufWETH",e.pufstETH="pufstETH",e.pufwstETH="pufwstETH",e.pufALT="pufALT",e.pufeETH="pufeETH",e.pufpufETHwstE="pufpufETHwstE",e))(E||{});const H={USDT:"pufUSDT",USDC:"pufUSDC",DAI:"pufDAI",WETH:"pufWETH",stETH:"pufstETH",wstETH:"pufwstETH",ALT:"pufALT",eETH:"pufeETH",pufETHwstE:"pufpufETHwstE",pufETH:"pufpufETH"},T={USDT:{[a.Chain.Mainnet]:"0xdac17f958d2ee523a2206206994597c13d831ec7",[a.Chain.Holesky]:"0xd5bef2c64f418fd460319521d37862327122e3bc"},USDC:{[a.Chain.Mainnet]:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",[a.Chain.Holesky]:"0x64Cc0de0429bcb87e875905a0c313ec88f6d1d3E"},DAI:{[a.Chain.Mainnet]:"0x6b175474e89094c44da98b954eedeac495271d0f",[a.Chain.Holesky]:"0x4478905505ddfb7eA1c8A9f46eAEC3695cE542ac"},WETH:{[a.Chain.Mainnet]:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",[a.Chain.Holesky]:"0x1d181cBd1825e9eBC6AD966878D555A7215FF4F0"},stETH:{[a.Chain.Mainnet]:"0xae7ab96520de3a18e5e111b5eaab095312d7fe84",[a.Chain.Holesky]:"0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034"},wstETH:{[a.Chain.Mainnet]:"0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",[a.Chain.Holesky]:"0x8d09a4502Cc8Cf1547aD300E066060D043f6982D"},ALT:{[a.Chain.Mainnet]:"0x8457ca5040ad67fdebbcc8edce889a335bc0fbfb",[a.Chain.Holesky]:"0xaf5588a571b42c7e50bd440d80f9bf94a4db94ee"},eETH:{[a.Chain.Mainnet]:"0x35fa164735182de50811e8e2e824cfb9b6118ac2",[a.Chain.Holesky]:"0x7ba2ee123b5977e3da040e1eacb3a61c82c17876"},pufETHwstE:{[a.Chain.Mainnet]:"0xeeda34a377dd0ca676b9511ee1324974fa8d980d",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufETH:{[a.Chain.Mainnet]:"0xd9a442856c234a39a81a089c06451ebaa4306a72",[a.Chain.Holesky]:"0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9"},pufUSDT:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x61e7C87c387178D6e0aE6c04748b7FF753fC9b81"},pufUSDC:{[a.Chain.Mainnet]:"0x2f0d8e30df0c598b90b34cd68b5e3981b7af3881",[a.Chain.Holesky]:"0x6D900a9f5784A2cA0004B5c3D3e08D7A9cE4A1b3"},pufDAI:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x2D6B705e118198A02F00490BA323B17eC5D58109"},pufWETH:{[a.Chain.Mainnet]:"0x2b36f6bfd223f460e7e43ef49bc487481648948c",[a.Chain.Holesky]:"0x5335f231C22d472Ab31CC2690A2247d25efd76a5"},pufstETH:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufwstETH:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufALT:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufeETH:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufpufETHwstE:{[a.Chain.Mainnet]:"0xf374014f6fa86bad50d52e6240a117b0830663cb",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000"},pufpufETH:{[a.Chain.Mainnet]:"0x0000000000000000000000000000000000000000",[a.Chain.Holesky]:"0x638fd1Fe8205285E8497Eb8E6037c8254EDdB0ae"}},n={USDT:"2",USDC:"",DAI:"",WETH:"",stETH:"2",wstETH:"1",ALT:"1",eETH:"1",pufETHwstE:"v7.0.0",pufETH:"1",pufUSDT:"1",pufUSDC:"1",pufDAI:"1",pufWETH:"1",pufstETH:"1",pufwstETH:"1",pufALT:"1",pufeETH:"1",pufpufETHwstE:"1",pufpufETH:"1"},p={pufETHwstE:{[a.Chain.Mainnet]:"0x0e986ed5610121905f03fd3850cebcc00f66166fc3ab760acb4e087d735d9457",[a.Chain.Holesky]:"0x0000000000000000000000000000000000000000000000000000000000000000"}};exports.PufToken=E;exports.TOKENS_ADDRESSES=T;exports.TOKENS_PERMIT_VERSION=n;exports.TOKENS_SALT=p;exports.TOKEN_TO_PUF_TOKEN_MAP=H;exports.Token=f;
|
|
2
2
|
//# sourceMappingURL=tokens.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.cjs","sources":["../../lib/contracts/tokens.ts"],"sourcesContent":["import { Address } from 'viem';\nimport { Chain } from '../chains/constants';\n\nexport enum Token {\n USDT = 'USDT',\n USDC = 'USDC',\n DAI = 'DAI',\n WETH = 'WETH',\n stETH = 'stETH',\n wstETH = 'wstETH',\n ALT = 'ALT',\n eETH = 'eETH',\n pufETHwstE = 'pufETHwstE',\n pufETH = 'pufETH',\n}\n\nexport enum PufToken {\n pufUSDT = 'pufUSDT',\n pufUSDC = 'pufUSDC',\n pufDAI = 'pufDAI',\n pufpufETH = 'pufpufETH',\n pufWETH = 'pufWETH',\n pufstETH = 'pufstETH',\n pufwstETH = 'pufwstETH',\n pufALT = 'pufALT',\n pufeETH = 'pufeETH',\n pufpufETHwstE = 'pufpufETHwstE',\n}\n\nexport type AnyToken = Token | PufToken;\n\nexport const TOKEN_TO_PUF_TOKEN_MAP = {\n [Token.USDT]: PufToken.pufUSDT,\n [Token.USDC]: PufToken.pufUSDC,\n [Token.DAI]: PufToken.pufDAI,\n [Token.WETH]: PufToken.pufWETH,\n [Token.stETH]: PufToken.pufstETH,\n [Token.wstETH]: PufToken.pufwstETH,\n [Token.ALT]: PufToken.pufALT,\n [Token.eETH]: PufToken.pufeETH,\n [Token.pufETHwstE]: PufToken.pufpufETHwstE,\n [Token.pufETH]: PufToken.pufpufETH,\n};\n\nexport const TOKENS_ADDRESSES: {\n [key in
|
|
1
|
+
{"version":3,"file":"tokens.cjs","sources":["../../lib/contracts/tokens.ts"],"sourcesContent":["import { Address } from 'viem';\nimport { Chain } from '../chains/constants';\n\nexport enum Token {\n USDT = 'USDT',\n USDC = 'USDC',\n DAI = 'DAI',\n WETH = 'WETH',\n stETH = 'stETH',\n wstETH = 'wstETH',\n ALT = 'ALT',\n eETH = 'eETH',\n pufETHwstE = 'pufETHwstE',\n pufETH = 'pufETH',\n}\n\nexport enum PufToken {\n pufUSDT = 'pufUSDT',\n pufUSDC = 'pufUSDC',\n pufDAI = 'pufDAI',\n pufpufETH = 'pufpufETH',\n pufWETH = 'pufWETH',\n pufstETH = 'pufstETH',\n pufwstETH = 'pufwstETH',\n pufALT = 'pufALT',\n pufeETH = 'pufeETH',\n pufpufETHwstE = 'pufpufETHwstE',\n}\n\nexport type AnyToken = Token | PufToken;\n\nexport const TOKEN_TO_PUF_TOKEN_MAP = {\n [Token.USDT]: PufToken.pufUSDT,\n [Token.USDC]: PufToken.pufUSDC,\n [Token.DAI]: PufToken.pufDAI,\n [Token.WETH]: PufToken.pufWETH,\n [Token.stETH]: PufToken.pufstETH,\n [Token.wstETH]: PufToken.pufwstETH,\n [Token.ALT]: PufToken.pufALT,\n [Token.eETH]: PufToken.pufeETH,\n [Token.pufETHwstE]: PufToken.pufpufETHwstE,\n [Token.pufETH]: PufToken.pufpufETH,\n};\n\nexport const TOKENS_ADDRESSES: {\n [key in AnyToken]: { [chain in Chain]: Address };\n} = {\n [Token.USDT]: {\n [Chain.Mainnet]: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n [Chain.Holesky]: '0xd5bef2c64f418fd460319521d37862327122e3bc',\n },\n [Token.USDC]: {\n [Chain.Mainnet]: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n [Chain.Holesky]: '0x64Cc0de0429bcb87e875905a0c313ec88f6d1d3E',\n },\n [Token.DAI]: {\n [Chain.Mainnet]: '0x6b175474e89094c44da98b954eedeac495271d0f',\n [Chain.Holesky]: '0x4478905505ddfb7eA1c8A9f46eAEC3695cE542ac',\n },\n [Token.WETH]: {\n [Chain.Mainnet]: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n [Chain.Holesky]: '0x1d181cBd1825e9eBC6AD966878D555A7215FF4F0',\n },\n [Token.stETH]: {\n [Chain.Mainnet]: '0xae7ab96520de3a18e5e111b5eaab095312d7fe84',\n [Chain.Holesky]: '0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034',\n },\n [Token.wstETH]: {\n [Chain.Mainnet]: '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0',\n [Chain.Holesky]: '0x8d09a4502Cc8Cf1547aD300E066060D043f6982D',\n },\n [Token.ALT]: {\n [Chain.Mainnet]: '0x8457ca5040ad67fdebbcc8edce889a335bc0fbfb',\n [Chain.Holesky]: '0xaf5588a571b42c7e50bd440d80f9bf94a4db94ee',\n },\n [Token.eETH]: {\n [Chain.Mainnet]: '0x35fa164735182de50811e8e2e824cfb9b6118ac2',\n [Chain.Holesky]: '0x7ba2ee123b5977e3da040e1eacb3a61c82c17876',\n },\n [Token.pufETHwstE]: {\n [Chain.Mainnet]: '0xeeda34a377dd0ca676b9511ee1324974fa8d980d',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [Token.pufETH]: {\n [Chain.Mainnet]: '0xd9a442856c234a39a81a089c06451ebaa4306a72',\n [Chain.Holesky]: '0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9',\n },\n\n // TODO: Update the addresses once the contracts are deployed on chain.\n // See https://dev.azure.com/pufferfi/Frontend/_workitems/edit/1797.\n\n // Wrapped PufTokens.\n [PufToken.pufUSDT]: {\n [Chain.Mainnet]: '0x0000000000000000000000000000000000000000',\n [Chain.Holesky]: '0x61e7C87c387178D6e0aE6c04748b7FF753fC9b81',\n },\n [PufToken.pufUSDC]: {\n [Chain.Mainnet]: '0x2f0d8e30df0c598b90b34cd68b5e3981b7af3881',\n [Chain.Holesky]: '0x6D900a9f5784A2cA0004B5c3D3e08D7A9cE4A1b3',\n },\n [PufToken.pufDAI]: {\n [Chain.Mainnet]: '0x0000000000000000000000000000000000000000',\n [Chain.Holesky]: '0x2D6B705e118198A02F00490BA323B17eC5D58109',\n },\n [PufToken.pufWETH]: {\n [Chain.Mainnet]: '0x2b36f6bfd223f460e7e43ef49bc487481648948c',\n [Chain.Holesky]: '0x5335f231C22d472Ab31CC2690A2247d25efd76a5',\n },\n [PufToken.pufstETH]: {\n [Chain.Mainnet]: '0x0000000000000000000000000000000000000000',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [PufToken.pufwstETH]: {\n [Chain.Mainnet]: '0x0000000000000000000000000000000000000000',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [PufToken.pufALT]: {\n [Chain.Mainnet]: '0x0000000000000000000000000000000000000000',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [PufToken.pufeETH]: {\n [Chain.Mainnet]: '0x0000000000000000000000000000000000000000',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [PufToken.pufpufETHwstE]: {\n [Chain.Mainnet]: '0xf374014f6fa86bad50d52e6240a117b0830663cb',\n [Chain.Holesky]: '0x0000000000000000000000000000000000000000',\n },\n [PufToken.pufpufETH]: {\n [Chain.Mainnet]: '0x0000000000000000000000000000000000000000',\n [Chain.Holesky]: '0x638fd1Fe8205285E8497Eb8E6037c8254EDdB0ae',\n },\n};\n\nexport const TOKENS_PERMIT_VERSION: { [key in AnyToken]: string } = {\n [Token.USDT]: '2',\n // USDC does not support permit signatures (ERC20Permit).\n [Token.USDC]: '',\n // DAI does not support permit signatures (ERC20Permit).\n [Token.DAI]: '',\n // WETH does not support permit signatures (ERC20Permit).\n [Token.WETH]: '',\n [Token.stETH]: '2',\n // Puffer Quest v1 uses version 1 for wstETH.\n [Token.wstETH]: '1',\n [Token.ALT]: '1',\n // https://github.com/etherfi-protocol/smart-contracts/blob/7c66e571df4fe7ec502a3c325b623bc52349ef9d/src/EETH.sol#L55\n [Token.eETH]: '1',\n [Token.pufETHwstE]: 'v7.0.0',\n [Token.pufETH]: '1',\n\n // Wrapped PufTokens\n [PufToken.pufUSDT]: '1',\n [PufToken.pufUSDC]: '1',\n [PufToken.pufDAI]: '1',\n [PufToken.pufWETH]: '1',\n [PufToken.pufstETH]: '1',\n [PufToken.pufwstETH]: '1',\n [PufToken.pufALT]: '1',\n [PufToken.pufeETH]: '1',\n [PufToken.pufpufETHwstE]: '1',\n [PufToken.pufpufETH]: '1',\n};\n\nexport const TOKENS_SALT: Partial<{\n [key in AnyToken]: { [chain in Chain]: Address };\n}> = {\n [Token.pufETHwstE]: {\n // Taken from\n // https://etherscan.io/token/0xeeda34a377dd0ca676b9511ee1324974fa8d980d#readContract#F39.\n [Chain.Mainnet]:\n '0x0e986ed5610121905f03fd3850cebcc00f66166fc3ab760acb4e087d735d9457',\n [Chain.Holesky]:\n '0x0000000000000000000000000000000000000000000000000000000000000000',\n },\n};\n"],"names":["Token","PufToken","TOKEN_TO_PUF_TOKEN_MAP","TOKENS_ADDRESSES","Chain","TOKENS_PERMIT_VERSION","TOKENS_SALT"],"mappings":"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"}
|
package/dist/contracts/tokens.js
CHANGED
|
@@ -96,7 +96,7 @@ const p = {
|
|
|
96
96
|
[f.Mainnet]: "0x0000000000000000000000000000000000000000",
|
|
97
97
|
[f.Holesky]: "0x638fd1Fe8205285E8497Eb8E6037c8254EDdB0ae"
|
|
98
98
|
}
|
|
99
|
-
},
|
|
99
|
+
}, c = {
|
|
100
100
|
USDT: "2",
|
|
101
101
|
// USDC does not support permit signatures (ERC20Permit).
|
|
102
102
|
USDC: "",
|
|
@@ -110,7 +110,7 @@ const p = {
|
|
|
110
110
|
ALT: "1",
|
|
111
111
|
// https://github.com/etherfi-protocol/smart-contracts/blob/7c66e571df4fe7ec502a3c325b623bc52349ef9d/src/EETH.sol#L55
|
|
112
112
|
eETH: "1",
|
|
113
|
-
pufETHwstE: "",
|
|
113
|
+
pufETHwstE: "v7.0.0",
|
|
114
114
|
pufETH: "1",
|
|
115
115
|
// Wrapped PufTokens
|
|
116
116
|
pufUSDT: "1",
|
|
@@ -123,11 +123,19 @@ const p = {
|
|
|
123
123
|
pufeETH: "1",
|
|
124
124
|
pufpufETHwstE: "1",
|
|
125
125
|
pufpufETH: "1"
|
|
126
|
+
}, u = {
|
|
127
|
+
pufETHwstE: {
|
|
128
|
+
// Taken from
|
|
129
|
+
// https://etherscan.io/token/0xeeda34a377dd0ca676b9511ee1324974fa8d980d#readContract#F39.
|
|
130
|
+
[f.Mainnet]: "0x0e986ed5610121905f03fd3850cebcc00f66166fc3ab760acb4e087d735d9457",
|
|
131
|
+
[f.Holesky]: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
|
132
|
+
}
|
|
126
133
|
};
|
|
127
134
|
export {
|
|
128
135
|
H as PufToken,
|
|
129
136
|
T as TOKENS_ADDRESSES,
|
|
130
|
-
|
|
137
|
+
c as TOKENS_PERMIT_VERSION,
|
|
138
|
+
u as TOKENS_SALT,
|
|
131
139
|
p as TOKEN_TO_PUF_TOKEN_MAP,
|
|
132
140
|
E as Token
|
|
133
141
|
};
|