@pufferfinance/puffer-sdk 1.5.3 → 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.
Files changed (71) hide show
  1. package/dist/api/puffer-client.cjs +1 -1
  2. package/dist/api/puffer-client.cjs.map +1 -1
  3. package/dist/api/puffer-client.js +43 -36
  4. package/dist/api/puffer-client.js.map +1 -1
  5. package/dist/contracts/abis/mainnet/PufferWithdrawalManager.cjs +2 -0
  6. package/dist/contracts/abis/mainnet/PufferWithdrawalManager.cjs.map +1 -0
  7. package/dist/contracts/abis/mainnet/PufferWithdrawalManager.js +665 -0
  8. package/dist/contracts/abis/mainnet/PufferWithdrawalManager.js.map +1 -0
  9. package/dist/contracts/abis/puffer-withdrawal-manager-abis.cjs +2 -0
  10. package/dist/contracts/abis/puffer-withdrawal-manager-abis.cjs.map +1 -0
  11. package/dist/contracts/abis/puffer-withdrawal-manager-abis.js +10 -0
  12. package/dist/contracts/abis/puffer-withdrawal-manager-abis.js.map +1 -0
  13. package/dist/contracts/addresses.cjs +1 -1
  14. package/dist/contracts/addresses.cjs.map +1 -1
  15. package/dist/contracts/addresses.js +5 -1
  16. package/dist/contracts/addresses.js.map +1 -1
  17. package/dist/contracts/handlers/erc20-permit-handler.cjs +1 -1
  18. package/dist/contracts/handlers/erc20-permit-handler.cjs.map +1 -1
  19. package/dist/contracts/handlers/erc20-permit-handler.js +19 -14
  20. package/dist/contracts/handlers/erc20-permit-handler.js.map +1 -1
  21. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.cjs +2 -0
  22. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.cjs.map +1 -0
  23. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.js +116 -0
  24. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.js.map +1 -0
  25. package/dist/contracts/tokens.cjs +1 -1
  26. package/dist/contracts/tokens.cjs.map +1 -1
  27. package/dist/contracts/tokens.js +11 -3
  28. package/dist/contracts/tokens.js.map +1 -1
  29. package/dist/main.cjs +1 -1
  30. package/dist/main.js +26 -23
  31. package/dist/main.js.map +1 -1
  32. package/dist/utils/version.cjs +1 -1
  33. package/dist/utils/version.js +1 -1
  34. package/package.json +1 -1
  35. package/dist/api/puffer-client-helpers.d.ts +0 -33
  36. package/dist/api/puffer-client.d.ts +0 -49
  37. package/dist/chains/constants.d.ts +0 -11
  38. package/dist/contracts/abis/holesky/PufferDepositor.d.ts +0 -283
  39. package/dist/contracts/abis/holesky/PufferVaultV2.d.ts +0 -1361
  40. package/dist/contracts/abis/l1-reward-manager-abis.d.ts +0 -527
  41. package/dist/contracts/abis/l2-reward-manager-abis.d.ts +0 -709
  42. package/dist/contracts/abis/mainnet/ERC20Permit.d.ts +0 -396
  43. package/dist/contracts/abis/mainnet/L1RewardManager.d.ts +0 -523
  44. package/dist/contracts/abis/mainnet/L2RewardManager.d.ts +0 -705
  45. package/dist/contracts/abis/mainnet/PufLocker.d.ts +0 -480
  46. package/dist/contracts/abis/mainnet/PufToken.d.ts +0 -676
  47. package/dist/contracts/abis/mainnet/PufferDepositor.d.ts +0 -283
  48. package/dist/contracts/abis/mainnet/PufferL2Depositor.d.ts +0 -373
  49. package/dist/contracts/abis/mainnet/PufferVaultV2.d.ts +0 -1421
  50. package/dist/contracts/abis/puf-locker-abis.d.ts +0 -484
  51. package/dist/contracts/abis/puf-token-abis.d.ts +0 -680
  52. package/dist/contracts/abis/puffer-depositor-abis.d.ts +0 -664
  53. package/dist/contracts/abis/puffer-vault-abis.d.ts +0 -2787
  54. package/dist/contracts/abis/tokens-abis.d.ts +0 -396
  55. package/dist/contracts/addresses.d.ts +0 -10
  56. package/dist/contracts/handlers/erc20-permit-handler.d.ts +0 -6579
  57. package/dist/contracts/handlers/l1-reward-manager-handler.d.ts +0 -6693
  58. package/dist/contracts/handlers/l2-reward-manager-handler.d.ts +0 -6939
  59. package/dist/contracts/handlers/puf-locker-handler.d.ts +0 -6702
  60. package/dist/contracts/handlers/puf-token-handler.d.ts +0 -6920
  61. package/dist/contracts/handlers/puffer-depositor-handler.d.ts +0 -6462
  62. package/dist/contracts/handlers/puffer-l2-depositor-handler.d.ts +0 -6555
  63. package/dist/contracts/handlers/puffer-vault-handler.d.ts +0 -9030
  64. package/dist/contracts/tokens.d.ts +0 -47
  65. package/dist/errors/base-error.d.ts +0 -7
  66. package/dist/errors/types.d.ts +0 -4
  67. package/dist/errors/validation-errors.d.ts +0 -5
  68. package/dist/main.d.ts +0 -13
  69. package/dist/utils/time.d.ts +0 -1
  70. package/dist/utils/types.d.ts +0 -4
  71. 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 e=require("../constants-BvU-JhfL.cjs"),a={[e.Chain.Mainnet]:{PufferVault:"0xD9A442856C234a39a81a089C06451EBAa4306a72",PufferDepositor:"0x4aa799c5dfc01ee7d790e3bf1a7c2257ce1dceff",PufferL2Depositor:"0x3436E0B85cd929929F5802e792CFE282166E0259",PufLocker:"0x48e8dE138C246c14248C94d2D616a2F9eb4590D2",L2RewardManager:"0xb4dBcf934558d7b647A7FB21bbcd6b8370318A5c",L1RewardManager:"0x5A0B37ce6c5b90B634B2AD32E3d909B545De8BB7"},[e.Chain.Holesky]:{PufferVault:"0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9",PufferDepositor:"0x824AC05aeb86A0aD770b8acDe0906d2d4a6c4A8c",PufferL2Depositor:"0x0af6998e4828ad8ef8f79a9288d0a861890f791d",PufLocker:"0xa58983ad0899a452b7420bc57228e329d7ba92b6",L1RewardManager:"0x10f970bcb84B82B82a65eBCbF45F26dD26D69F12",L2RewardManager:"0x58C046794f69A8830b0BE737022a45b4acd01dE5"}};exports.CONTRACT_ADDRESSES=a;
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 L1RewardManager: '0x10f970bcb84B82B82a65eBCbF45F26dD26D69F12',\n L2RewardManager: '0x58C046794f69A8830b0BE737022a45b4acd01dE5',\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,gBAAiB,6CACjB,gBAAiB,4CACnB,EACA,CAACA,EAAAA,MAAM,OAAO,EAAG,CACf,YAAa,6CACb,gBAAiB,6CACjB,kBAAmB,6CACnB,UAAW,6CAGX,gBAAiB,6CACjB,gBAAiB,4CACnB,CACF"}
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"}
@@ -5,6 +5,7 @@ const f = {
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
  },
@@ -16,7 +17,10 @@ const f = {
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
  L1RewardManager: "0x10f970bcb84B82B82a65eBCbF45F26dD26D69F12",
19
- L2RewardManager: "0x58C046794f69A8830b0BE737022a45b4acd01dE5"
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 {
@@ -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 L1RewardManager: '0x10f970bcb84B82B82a65eBCbF45F26dD26D69F12',\n L2RewardManager: '0x58C046794f69A8830b0BE737022a45b4acd01dE5',\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,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,EACnB;AACF;"}
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 s=require("../../constants-BvU-JhfL.cjs"),g=require("../abis/tokens-abis.cjs"),o=require("../tokens.cjs"),y=require("../../utils/time.cjs"),C=require("../../getContract-MrPLx6gp.cjs"),S=require("../../secp256k1-CFnFaJ0H.cjs");function E(i){const{r:t,s:e}=S.secp256k1.Signature.fromCompact(i.slice(2,130)),n=+`0x${i.slice(130)}`,[r,a]=(()=>{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:s.numberToHex(t,{size:32}),s:s.numberToHex(e,{size:32}),v:r,yParity:a}:{r:s.numberToHex(t,{size:32}),s:s.numberToHex(e,{size:32}),yParity:a}}class T{constructor(t,e,n){c(this,"viemChain");c(this,"token");this.chain=t,this.walletClient=e,this.publicClient=n,this.viemChain=s.VIEM_CHAINS[t],this.token=o.Token.WETH}withToken(t){return this.token=t,this}getContract(){const t=o.TOKENS_ADDRESSES[this.token][this.chain],e=g.ERC20PERMIT_ABI,n={public:this.publicClient,wallet:this.walletClient};return C.getContract({address:t,abi:e,client:n})}async getPermitSignature(t,e,n){const r=this.getContract(),a=await r.read.nonces([t]),m={name:await r.read.name(),version:this.getPermitVersion(this.token),chainId:this.chain,verifyingContract:o.TOKENS_ADDRESSES[this.token][this.chain]},h={Permit:[{name:"owner",type:"address"},{name:"spender",type:"address"},{name:"value",type:"uint256"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"}]},u=BigInt(y.getTimestampInSeconds()+60*60*2),l=await this.walletClient.signTypedData({account:t,domain:m,types:h,primaryType:"Permit",message:{owner:t,spender:e,value:n,nonce:a,deadline:u}});return{...E(l),deadline:u}}getPermitVersion(t){return o.TOKENS_PERMIT_VERSION[t]}approve(t,e,n){return this.getContract().write.approve([e,n],{account:t,chain:this.viemChain})}}exports.ERC20PermitHandler=T;
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,CCfO,MAAME,CAAmB,CAa9B,YACUC,EACAC,EACAC,EACR,CAhBMC,EAAA,kBACAA,EAAA,cAYE,KAAA,MAAAH,EACA,KAAA,aAAAC,EACA,KAAA,aAAAC,EAEH,KAAA,UAAYE,cAAYJ,CAAK,EAClC,KAAK,MAAQK,EAAM,MAAA,IACrB,CAQO,UAAUC,EAAiB,CAChC,YAAK,MAAQA,EACN,IACT,CAQO,aAAc,CACnB,MAAMC,EAAUC,EAAAA,iBAAiB,KAAK,KAAK,EAAE,KAAK,KAAK,EACjDC,EAAMC,EAAAA,gBACNC,EAAS,CAAE,OAAQ,KAAK,aAAc,OAAQ,KAAK,cAEzD,OAAOC,EAAY,YAAA,CAAE,QAAAL,EAAS,IAAAE,EAAK,OAAAE,CAAQ,CAAA,CAK7C,CAWA,MAAa,mBACXE,EACAC,EACAC,EACA,CACM,MAAAC,EAAW,KAAK,cAEhBC,EAAe,MAAMD,EAAS,KAAK,OAAO,CAACH,CAAY,CAAC,EAExDK,EAAgB,CACpB,KAFW,MAAMF,EAAS,KAAK,KAAK,EAGpC,QAAS,KAAK,iBAAiB,KAAK,KAAK,EACzC,QAAS,KAAK,MACd,kBAAmBR,EAAiB,iBAAA,KAAK,KAAK,EAAE,KAAK,KAAK,CAAA,EAEtDW,EAAe,CACnB,OAAQ,CACN,CAAE,KAAM,QAAS,KAAM,SAAU,EACjC,CAAE,KAAM,UAAW,KAAM,SAAU,EACnC,CAAE,KAAM,QAAS,KAAM,SAAU,EACjC,CAAE,KAAM,QAAS,KAAM,SAAU,EACjC,CAAE,KAAM,WAAY,KAAM,SAAU,CACtC,CAAA,EAGIC,EAAW,OAAOC,EAAA,sBAAA,EAA0B,GAAK,GAAK,CAAC,EAEvDC,EAAY,MAAM,KAAK,aAAa,cAAc,CACtD,QAAST,EACT,OAAAK,EACA,MAAAC,EACA,YAAa,SACb,QAAS,CACP,MAAON,EACP,QAASC,EACT,MAAAC,EACA,MAAOE,EACP,SAAAG,CACF,CAAA,CACD,EAED,MAAO,CAAE,GAAG9B,EAAegC,CAAS,EAAG,SAAAF,CAAS,CAClD,CAEQ,iBAAiBd,EAAyB,CAChD,OAAOiB,EAAAA,sBAAsBjB,CAAK,CACpC,CAUO,QACLO,EACAC,EACAC,EACA,CACO,OAAA,KAAK,cAAc,MAAM,QAAQ,CAACD,EAAgBC,CAAK,EAAG,CAC/D,QAASF,EACT,MAAO,KAAK,SAAA,CACb,CACH,CACF","x_google_ignoreList":[0]}
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 I } from "../../getContract-B3Spz0SO.js";
9
- import { s as v } from "../../secp256k1-BLbXMlpX.js";
10
- function w(i) {
11
- const { r: t, s: e } = v.Signature.fromCompact(i.slice(2, 130)), n = +`0x${i.slice(130)}`, [r, a] = (() => {
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 O {
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 I({ address: t, abi: e, client: n });
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]), p = {
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
- }, h = {
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: p,
91
- types: h,
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 { ...w(u), deadline: c };
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
- O as ERC20PermitHandler
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":"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","x_google_ignoreList":[0]}
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 Token | PufToken]: { [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 Token | PufToken]: 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]: '',\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"],"names":["Token","PufToken","TOKEN_TO_PUF_TOKEN_MAP","TOKENS_ADDRESSES","Chain","TOKENS_PERMIT_VERSION"],"mappings":"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"}
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":"6HAGY,IAAAA,GAAAA,IACVA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,WAAa,aACbA,EAAA,OAAS,SAVCA,IAAAA,GAAA,CAAA,CAAA,EAaAC,GAAAA,IACVA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,UAAY,YACZA,EAAA,QAAU,UACVA,EAAA,SAAW,WACXA,EAAA,UAAY,YACZA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,cAAgB,gBAVNA,IAAAA,GAAA,CAAA,CAAA,EAeL,MAAMC,EAAyB,CACnC,KAAa,UACb,KAAa,UACb,IAAY,SACZ,KAAa,UACb,MAAc,WACd,OAAe,YACf,IAAY,SACZ,KAAa,UACb,WAAmB,gBACnB,OAAe,WAClB,EAEaC,EAET,CACD,KAAa,CACZ,CAACC,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,KAAa,CACZ,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,IAAY,CACX,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,KAAa,CACZ,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,MAAc,CACb,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,OAAe,CACd,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,IAAY,CACX,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,KAAa,CACZ,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,WAAmB,CAClB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,OAAe,CACd,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EAMC,QAAmB,CAClB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,QAAmB,CAClB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,OAAkB,CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,QAAmB,CAClB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,SAAoB,CACnB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,UAAqB,CACpB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,OAAkB,CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,QAAmB,CAClB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,cAAyB,CACxB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,EACC,UAAqB,CACpB,CAACA,EAAAA,MAAM,OAAO,EAAG,6CACjB,CAACA,EAAAA,MAAM,OAAO,EAAG,4CACnB,CACF,EAEaC,EAAuD,CACjE,KAAa,IAEb,KAAa,GAEb,IAAY,GAEZ,KAAa,GACb,MAAc,IAEd,OAAe,IACf,IAAY,IAEZ,KAAa,IACb,WAAmB,SACnB,OAAe,IAGf,QAAmB,IACnB,QAAmB,IACnB,OAAkB,IAClB,QAAmB,IACnB,SAAoB,IACpB,UAAqB,IACrB,OAAkB,IAClB,QAAmB,IACnB,cAAyB,IACzB,UAAqB,GACxB,EAEaC,EAER,CACF,WAAmB,CAGlB,CAACF,EAAAA,MAAM,OAAO,EACZ,qEACF,CAACA,EAAAA,MAAM,OAAO,EACZ,oEACJ,CACF"}
@@ -96,7 +96,7 @@ const p = {
96
96
  [f.Mainnet]: "0x0000000000000000000000000000000000000000",
97
97
  [f.Holesky]: "0x638fd1Fe8205285E8497Eb8E6037c8254EDdB0ae"
98
98
  }
99
- }, u = {
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
- u as TOKENS_PERMIT_VERSION,
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
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","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 Token | PufToken]: { [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 Token | PufToken]: 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]: '',\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"],"names":["Token","PufToken","TOKEN_TO_PUF_TOKEN_MAP","TOKENS_ADDRESSES","Chain","TOKENS_PERMIT_VERSION"],"mappings":"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"}
1
+ {"version":3,"file":"tokens.js","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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"}