@pufferfinance/puffer-sdk 1.4.1 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/api/puffer-client-helpers.cjs +2 -0
  2. package/dist/api/puffer-client-helpers.cjs.map +1 -0
  3. package/dist/api/puffer-client-helpers.d.ts +0 -1
  4. package/dist/api/puffer-client-helpers.js +142 -0
  5. package/dist/api/puffer-client-helpers.js.map +1 -0
  6. package/dist/api/puffer-client.cjs +2 -0
  7. package/dist/api/puffer-client.cjs.map +1 -0
  8. package/dist/api/puffer-client.d.ts +6 -1
  9. package/dist/api/puffer-client.js +97 -0
  10. package/dist/api/puffer-client.js.map +1 -0
  11. package/dist/{ccip-DVMkohQx.js → ccip-D4klNwCt.js} +28 -27
  12. package/dist/{ccip-DVMkohQx.js.map → ccip-D4klNwCt.js.map} +1 -1
  13. package/dist/ccip-DLDqFodf.cjs +2 -0
  14. package/dist/{ccip-BlCTKpsk.cjs.map → ccip-DLDqFodf.cjs.map} +1 -1
  15. package/dist/chains/constants.cjs +2 -0
  16. package/dist/chains/constants.cjs.map +1 -0
  17. package/dist/chains/constants.d.ts +3 -2
  18. package/dist/chains/constants.js +6 -0
  19. package/dist/chains/constants.js.map +1 -0
  20. package/dist/constants-BvU-JhfL.cjs +9 -0
  21. package/dist/constants-BvU-JhfL.cjs.map +1 -0
  22. package/dist/constants-rWWWhxR_.js +2099 -0
  23. package/dist/constants-rWWWhxR_.js.map +1 -0
  24. package/dist/contracts/abis/holesky/PufferDepositor.cjs +2 -0
  25. package/dist/contracts/abis/holesky/PufferDepositor.cjs.map +1 -0
  26. package/dist/contracts/abis/holesky/PufferDepositor.js +377 -0
  27. package/dist/contracts/abis/holesky/PufferDepositor.js.map +1 -0
  28. package/dist/contracts/abis/holesky/PufferVaultV2.cjs +2 -0
  29. package/dist/contracts/abis/holesky/PufferVaultV2.cjs.map +1 -0
  30. package/dist/contracts/abis/holesky/PufferVaultV2.js +1787 -0
  31. package/dist/contracts/abis/holesky/PufferVaultV2.js.map +1 -0
  32. package/dist/contracts/abis/l1-reward-manager-abis.cjs +2 -0
  33. package/dist/contracts/abis/l1-reward-manager-abis.cjs.map +1 -0
  34. package/dist/contracts/abis/l1-reward-manager-abis.d.ts +527 -0
  35. package/dist/contracts/abis/l1-reward-manager-abis.js +9 -0
  36. package/dist/contracts/abis/l1-reward-manager-abis.js.map +1 -0
  37. package/dist/contracts/abis/l2-reward-manager-abis.cjs +2 -0
  38. package/dist/contracts/abis/l2-reward-manager-abis.cjs.map +1 -0
  39. package/dist/contracts/abis/l2-reward-manager-abis.d.ts +685 -0
  40. package/dist/contracts/abis/l2-reward-manager-abis.js +9 -0
  41. package/dist/contracts/abis/l2-reward-manager-abis.js.map +1 -0
  42. package/dist/contracts/abis/mainnet/ERC20Permit.cjs +2 -0
  43. package/dist/contracts/abis/mainnet/ERC20Permit.cjs.map +1 -0
  44. package/dist/contracts/abis/mainnet/ERC20Permit.js +524 -0
  45. package/dist/contracts/abis/mainnet/ERC20Permit.js.map +1 -0
  46. package/dist/contracts/abis/mainnet/L1RewardManager.cjs +2 -0
  47. package/dist/contracts/abis/mainnet/L1RewardManager.cjs.map +1 -0
  48. package/dist/contracts/abis/mainnet/L1RewardManager.d.ts +523 -0
  49. package/dist/contracts/abis/mainnet/L1RewardManager.js +447 -0
  50. package/dist/contracts/abis/mainnet/L1RewardManager.js.map +1 -0
  51. package/dist/contracts/abis/mainnet/L2RewardManager.cjs +2 -0
  52. package/dist/contracts/abis/mainnet/L2RewardManager.cjs.map +1 -0
  53. package/dist/contracts/abis/mainnet/L2RewardManager.d.ts +681 -0
  54. package/dist/contracts/abis/mainnet/L2RewardManager.js +538 -0
  55. package/dist/contracts/abis/mainnet/L2RewardManager.js.map +1 -0
  56. package/dist/contracts/abis/mainnet/PufLocker.cjs +2 -0
  57. package/dist/contracts/abis/mainnet/PufLocker.cjs.map +1 -0
  58. package/dist/contracts/abis/mainnet/PufLocker.js +362 -0
  59. package/dist/contracts/abis/mainnet/PufLocker.js.map +1 -0
  60. package/dist/contracts/abis/mainnet/PufToken.cjs +2 -0
  61. package/dist/contracts/abis/mainnet/PufToken.cjs.map +1 -0
  62. package/dist/contracts/abis/mainnet/PufToken.js +883 -0
  63. package/dist/contracts/abis/mainnet/PufToken.js.map +1 -0
  64. package/dist/contracts/abis/mainnet/PufferDepositor.cjs +2 -0
  65. package/dist/contracts/abis/mainnet/PufferDepositor.cjs.map +1 -0
  66. package/dist/contracts/abis/mainnet/PufferDepositor.js +377 -0
  67. package/dist/contracts/abis/mainnet/PufferDepositor.js.map +1 -0
  68. package/dist/contracts/abis/mainnet/PufferL2Depositor.cjs +2 -0
  69. package/dist/contracts/abis/mainnet/PufferL2Depositor.cjs.map +1 -0
  70. package/dist/contracts/abis/mainnet/PufferL2Depositor.js +300 -0
  71. package/dist/contracts/abis/mainnet/PufferL2Depositor.js.map +1 -0
  72. package/dist/contracts/abis/mainnet/PufferVaultV2.cjs +2 -0
  73. package/dist/contracts/abis/mainnet/PufferVaultV2.cjs.map +1 -0
  74. package/dist/contracts/abis/mainnet/PufferVaultV2.js +1864 -0
  75. package/dist/contracts/abis/mainnet/PufferVaultV2.js.map +1 -0
  76. package/dist/contracts/abis/puf-locker-abis.cjs +2 -0
  77. package/dist/contracts/abis/puf-locker-abis.cjs.map +1 -0
  78. package/dist/contracts/abis/puf-locker-abis.js +10 -0
  79. package/dist/contracts/abis/puf-locker-abis.js.map +1 -0
  80. package/dist/contracts/abis/puf-token-abis.cjs +2 -0
  81. package/dist/contracts/abis/puf-token-abis.cjs.map +1 -0
  82. package/dist/contracts/abis/puf-token-abis.js +10 -0
  83. package/dist/contracts/abis/puf-token-abis.js.map +1 -0
  84. package/dist/contracts/abis/puffer-depositor-abis.cjs +2 -0
  85. package/dist/contracts/abis/puffer-depositor-abis.cjs.map +1 -0
  86. package/dist/contracts/abis/puffer-depositor-abis.js +20 -0
  87. package/dist/contracts/abis/puffer-depositor-abis.js.map +1 -0
  88. package/dist/contracts/abis/puffer-vault-abis.cjs +2 -0
  89. package/dist/contracts/abis/puffer-vault-abis.cjs.map +1 -0
  90. package/dist/contracts/abis/puffer-vault-abis.js +15 -0
  91. package/dist/contracts/abis/puffer-vault-abis.js.map +1 -0
  92. package/dist/contracts/abis/tokens-abis.cjs +2 -0
  93. package/dist/contracts/abis/tokens-abis.cjs.map +1 -0
  94. package/dist/contracts/abis/tokens-abis.js +6 -0
  95. package/dist/contracts/abis/tokens-abis.js.map +1 -0
  96. package/dist/contracts/addresses.cjs +2 -0
  97. package/dist/contracts/addresses.cjs.map +1 -0
  98. package/dist/contracts/addresses.d.ts +23 -0
  99. package/dist/contracts/addresses.js +27 -0
  100. package/dist/contracts/addresses.js.map +1 -0
  101. package/dist/contracts/handlers/erc20-permit-handler.cjs +2 -0
  102. package/dist/contracts/handlers/erc20-permit-handler.cjs.map +1 -0
  103. package/dist/contracts/handlers/erc20-permit-handler.d.ts +579 -579
  104. package/dist/contracts/handlers/erc20-permit-handler.js +124 -0
  105. package/dist/contracts/handlers/erc20-permit-handler.js.map +1 -0
  106. package/dist/contracts/handlers/l1-reward-manager-handler.cjs +2 -0
  107. package/dist/contracts/handlers/l1-reward-manager-handler.cjs.map +1 -0
  108. package/dist/contracts/handlers/l1-reward-manager-handler.d.ts +6693 -0
  109. package/dist/contracts/handlers/l1-reward-manager-handler.js +68 -0
  110. package/dist/contracts/handlers/l1-reward-manager-handler.js.map +1 -0
  111. package/dist/contracts/handlers/l2-reward-manager-handler.cjs +2 -0
  112. package/dist/contracts/handlers/l2-reward-manager-handler.cjs.map +1 -0
  113. package/dist/contracts/handlers/l2-reward-manager-handler.d.ts +6912 -0
  114. package/dist/contracts/handlers/l2-reward-manager-handler.js +137 -0
  115. package/dist/contracts/handlers/l2-reward-manager-handler.js.map +1 -0
  116. package/dist/contracts/handlers/puf-locker-handler.cjs +2 -0
  117. package/dist/contracts/handlers/puf-locker-handler.cjs.map +1 -0
  118. package/dist/contracts/handlers/puf-locker-handler.d.ts +579 -579
  119. package/dist/contracts/handlers/puf-locker-handler.js +168 -0
  120. package/dist/contracts/handlers/puf-locker-handler.js.map +1 -0
  121. package/dist/contracts/handlers/puf-token-handler.cjs +2 -0
  122. package/dist/contracts/handlers/puf-token-handler.cjs.map +1 -0
  123. package/dist/contracts/handlers/puf-token-handler.d.ts +579 -579
  124. package/dist/contracts/handlers/puf-token-handler.js +174 -0
  125. package/dist/contracts/handlers/puf-token-handler.js.map +1 -0
  126. package/dist/contracts/handlers/puffer-depositor-handler.cjs +2 -0
  127. package/dist/contracts/handlers/puffer-depositor-handler.cjs.map +1 -0
  128. package/dist/contracts/handlers/puffer-depositor-handler.d.ts +579 -579
  129. package/dist/contracts/handlers/puffer-depositor-handler.js +113 -0
  130. package/dist/contracts/handlers/puffer-depositor-handler.js.map +1 -0
  131. package/dist/contracts/handlers/puffer-l2-depositor-handler.cjs +2 -0
  132. package/dist/contracts/handlers/puffer-l2-depositor-handler.cjs.map +1 -0
  133. package/dist/contracts/handlers/puffer-l2-depositor-handler.d.ts +579 -579
  134. package/dist/contracts/handlers/puffer-l2-depositor-handler.js +112 -0
  135. package/dist/contracts/handlers/puffer-l2-depositor-handler.js.map +1 -0
  136. package/dist/contracts/handlers/puffer-vault-handler.cjs +2 -0
  137. package/dist/contracts/handlers/puffer-vault-handler.cjs.map +1 -0
  138. package/dist/contracts/handlers/puffer-vault-handler.d.ts +579 -579
  139. package/dist/contracts/handlers/puffer-vault-handler.js +185 -0
  140. package/dist/contracts/handlers/puffer-vault-handler.js.map +1 -0
  141. package/dist/contracts/tokens.cjs +2 -0
  142. package/dist/contracts/tokens.cjs.map +1 -0
  143. package/dist/contracts/tokens.d.ts +0 -1
  144. package/dist/contracts/tokens.js +134 -0
  145. package/dist/contracts/tokens.js.map +1 -0
  146. package/dist/createWalletClient-Bmopj8MM.cjs +4 -0
  147. package/dist/createWalletClient-Bmopj8MM.cjs.map +1 -0
  148. package/dist/createWalletClient-DKcpswHR.js +2007 -0
  149. package/dist/createWalletClient-DKcpswHR.js.map +1 -0
  150. package/dist/errors/base-error.cjs +3 -0
  151. package/dist/errors/base-error.cjs.map +1 -0
  152. package/dist/errors/base-error.d.ts +0 -1
  153. package/dist/errors/base-error.js +23 -0
  154. package/dist/errors/base-error.js.map +1 -0
  155. package/dist/errors/types.cjs +2 -0
  156. package/dist/errors/types.cjs.map +1 -0
  157. package/dist/errors/types.js +2 -0
  158. package/dist/errors/types.js.map +1 -0
  159. package/dist/errors/validation-errors.cjs +2 -0
  160. package/dist/errors/validation-errors.cjs.map +1 -0
  161. package/dist/errors/validation-errors.d.ts +2 -1
  162. package/dist/errors/validation-errors.js +10 -0
  163. package/dist/errors/validation-errors.js.map +1 -0
  164. package/dist/getContract-B3Spz0SO.js +115 -0
  165. package/dist/getContract-B3Spz0SO.js.map +1 -0
  166. package/dist/getContract-MrPLx6gp.cjs +2 -0
  167. package/dist/getContract-MrPLx6gp.cjs.map +1 -0
  168. package/dist/main.cjs +1 -1
  169. package/dist/main.js +14 -10
  170. package/dist/main.js.map +1 -1
  171. package/dist/secp256k1-BLbXMlpX.js +1172 -0
  172. package/dist/secp256k1-BLbXMlpX.js.map +1 -0
  173. package/dist/secp256k1-CFnFaJ0H.cjs +2 -0
  174. package/dist/secp256k1-CFnFaJ0H.cjs.map +1 -0
  175. package/dist/utils/time.cjs +2 -0
  176. package/dist/utils/time.cjs.map +1 -0
  177. package/dist/utils/time.js +5 -0
  178. package/dist/utils/time.js.map +1 -0
  179. package/dist/utils/types.cjs +2 -0
  180. package/dist/utils/types.cjs.map +1 -0
  181. package/dist/utils/types.js +2 -0
  182. package/dist/utils/types.js.map +1 -0
  183. package/dist/utils/version.cjs +2 -0
  184. package/dist/utils/version.cjs.map +1 -0
  185. package/dist/utils/version.js +5 -0
  186. package/dist/utils/version.js.map +1 -0
  187. package/dist/writeContract-BBHpAss8.cjs +32 -0
  188. package/dist/writeContract-BBHpAss8.cjs.map +1 -0
  189. package/dist/writeContract-RluxM31W.js +3833 -0
  190. package/dist/writeContract-RluxM31W.js.map +1 -0
  191. package/package.json +22 -11
  192. package/dist/ccip-BlCTKpsk.cjs +0 -2
  193. package/dist/contracts/handlers/erc20-permit-handler.test.d.ts +0 -1
  194. package/dist/contracts/handlers/puf-locker-handler.test.d.ts +0 -1
  195. package/dist/contracts/handlers/puf-token-handler.test.d.ts +0 -1
  196. package/dist/contracts/handlers/puffer-depositor-handler.test.d.ts +0 -1
  197. package/dist/contracts/handlers/puffer-l2-depositor-handler.test.d.ts +0 -1
  198. package/dist/contracts/handlers/puffer-vault-handler.test.d.ts +0 -1
  199. package/dist/main-D1-cuLnV.cjs +0 -41
  200. package/dist/main-D1-cuLnV.cjs.map +0 -1
  201. package/dist/main-DGqGYUs0.js +0 -16003
  202. package/dist/main-DGqGYUs0.js.map +0 -1
@@ -0,0 +1,185 @@
1
+ var s = Object.defineProperty;
2
+ var o = (e, t, a) => t in e ? s(e, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[t] = a;
3
+ var c = (e, t, a) => o(e, typeof t != "symbol" ? t + "" : t, a);
4
+ import { V as h } from "../../constants-rWWWhxR_.js";
5
+ import { CONTRACT_ADDRESSES as m } from "../addresses.js";
6
+ import { PUFFER_VAULT_ABIS as u } from "../abis/puffer-vault-abis.js";
7
+ import { g as C } from "../../getContract-B3Spz0SO.js";
8
+ class y {
9
+ /**
10
+ * Create the handler for the `PufferVaultV2` contract exposing
11
+ * methods to interact with the contract.
12
+ *
13
+ * @param chain Chain to use for the client.
14
+ * @param walletClient The wallet client to use for wallet
15
+ * interactions.
16
+ * @param publicClient The public client to use for public
17
+ * interactions.
18
+ */
19
+ constructor(t, a, i) {
20
+ c(this, "viemChain");
21
+ this.chain = t, this.walletClient = a, this.publicClient = i, this.viemChain = h[t];
22
+ }
23
+ /**
24
+ * Get the contract. This is a method because the typings are complex
25
+ * and lost when trying to make it a member.
26
+ *
27
+ * @returns The viem contract.
28
+ */
29
+ getContract() {
30
+ const t = m[this.chain].PufferVault, a = u[this.chain].PufferVaultV2, i = { public: this.publicClient, wallet: this.walletClient };
31
+ return C({ address: t, abi: a, client: i });
32
+ }
33
+ /**
34
+ * Deposit ETH in exchange for pufETH. This doesn't make the
35
+ * transaction but returns two methods namely `transact` and
36
+ * `estimate`.
37
+ *
38
+ * @param walletAddress Wallet address to get the ETH from.
39
+ * @returns `transact: (value: bigint) => Promise<Address>` - Used to
40
+ * make the transaction with the given value.
41
+ *
42
+ * `estimate: () => Promise<bigint>` - Gas estimate of the
43
+ * transaction.
44
+ */
45
+ depositETH(t) {
46
+ return { transact: async (n) => await this.getContract().write.depositETH([t], {
47
+ account: t,
48
+ chain: this.viemChain,
49
+ value: n
50
+ }), estimate: async () => await this.getContract().estimateGas.depositETH([t], {
51
+ account: t
52
+ }) };
53
+ }
54
+ /**
55
+ * Check the pufETH balance of the wallet.
56
+ *
57
+ * @param walletAddress Wallet address to check the balance of.
58
+ * @returns pufETH balance in wei.
59
+ */
60
+ async balanceOf(t) {
61
+ return await this.getContract().read.balanceOf([t]);
62
+ }
63
+ /**
64
+ * Get the rate of pufETH compared to ETH.
65
+ *
66
+ * @returns Rate of pufETH compared to 1 ETH.
67
+ */
68
+ async getPufETHRate() {
69
+ const t = BigInt(1e18);
70
+ return await this.getContract().read.previewDeposit([t]);
71
+ }
72
+ /**
73
+ * Get the allowance for the given owner and spender.
74
+ *
75
+ * @param ownerAddress Address of the owner.
76
+ * @param spenderAddress Address of the spender.
77
+ * @returns Allowance for the given owner and spender.
78
+ */
79
+ async getAllowance(t, a) {
80
+ return await this.getContract().read.allowance([
81
+ t,
82
+ a
83
+ ]);
84
+ }
85
+ /**
86
+ * Withdraw pufETH to the given wallet address. This doesn't make the
87
+ * transaction but returns two methods namely `transact` and
88
+ * `estimate`.
89
+ *
90
+ * @param ownerAddress Address of the owner.
91
+ * @param walletAddress Address of the receiver.
92
+ * @param value Value of pufETH to withdraw.
93
+ * @returns `transact: (value: bigint) => Promise<Address>` - Used to
94
+ * make the transaction with the given value.
95
+ *
96
+ * `estimate: () => Promise<bigint>` - Gas estimate of the
97
+ * transaction.
98
+ */
99
+ withdraw(t, a, i) {
100
+ return { transact: async () => await this.getContract().write.withdraw(
101
+ [i, a, t],
102
+ {
103
+ account: a,
104
+ chain: this.viemChain
105
+ }
106
+ ), estimate: async () => await this.getContract().estimateGas.withdraw(
107
+ [i, a, t],
108
+ {
109
+ account: a
110
+ }
111
+ ) };
112
+ }
113
+ /**
114
+ * Preview the amount of WETH that can be redeemed for the given
115
+ * amount of pufETH using the `.redeem()` method.
116
+ *
117
+ * @param value Value of pufETH to redeem.
118
+ * @returns Preview of the amount of WETH that can be redeemed.
119
+ */
120
+ previewRedeem(t) {
121
+ return this.getContract().read.previewRedeem([t]);
122
+ }
123
+ /**
124
+ * Calculates the maximum amount of pufETH shares that can be redeemed
125
+ * by the owner.
126
+ *
127
+ * @param ownerAddress Address of the owner's wallet.
128
+ * @returns Maximum amount of pufETH shares that can be redeemed.
129
+ */
130
+ maxRedeem(t) {
131
+ return this.getContract().read.maxRedeem([t]);
132
+ }
133
+ /**
134
+ * Returns how many basis points of a fee there are when exiting. For
135
+ * example, a 1% fee would mean 1% of the user's requested pufETH is
136
+ * burned (which increases the value for all pufETH holders) before
137
+ * the ETH is redeemed. i.e., you get 1% less ETH back.
138
+ *
139
+ * @returns Basis points of the exit fee.
140
+ */
141
+ getExitFeeBasisPoints() {
142
+ return this.getContract().read.getExitFeeBasisPoints();
143
+ }
144
+ /**
145
+ * Returns how much WETH can still be withdrawn today.
146
+ *
147
+ * @returns Remaining WETH daily withdrawal limit.
148
+ */
149
+ getRemainingAssetsDailyWithdrawalLimit() {
150
+ return this.getContract().read.getRemainingAssetsDailyWithdrawalLimit();
151
+ }
152
+ /**
153
+ * Redeems pufETH shares in exchange for WETH assets from the vault.
154
+ * In the process, the pufETH shares of the owner are burned. This
155
+ * doesn't make the transaction but returns two methods namely
156
+ * `transact` and `estimate`.
157
+ *
158
+ * @param ownerAddress Address of the owner of pufETH.
159
+ * @param receiverAddress Address of the receiver of WETH.
160
+ * @param shares Amount of pufETH shares to redeem.
161
+ * @returns `transact: (value: bigint) => Promise<Address>` - Used to
162
+ * make the transaction with the given value.
163
+ *
164
+ * `estimate: () => Promise<bigint>` - Gas estimate of the
165
+ * transaction.
166
+ */
167
+ redeem(t, a, i) {
168
+ return { transact: async () => await this.getContract().write.redeem(
169
+ [i, a, t],
170
+ {
171
+ account: t,
172
+ chain: this.viemChain
173
+ }
174
+ ), estimate: async () => await this.getContract().estimateGas.redeem(
175
+ [i, a, t],
176
+ {
177
+ account: t
178
+ }
179
+ ) };
180
+ }
181
+ }
182
+ export {
183
+ y as PufferVaultHandler
184
+ };
185
+ //# sourceMappingURL=puffer-vault-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puffer-vault-handler.js","sources":["../../../lib/contracts/handlers/puffer-vault-handler.ts"],"sourcesContent":["import {\n Address,\n GetContractReturnType,\n PublicClient,\n WalletClient,\n getContract,\n} from 'viem';\nimport { Chain, VIEM_CHAINS, ViemChain } from '../../chains/constants';\nimport { CONTRACT_ADDRESSES } from '../addresses';\nimport { PUFFER_VAULT_ABIS } from '../abis/puffer-vault-abis';\n\n/**\n * Handler for the `PufferVaultV2` contract exposing methods to interact\n * with the contract.\n */\nexport class PufferVaultHandler {\n private viemChain: ViemChain;\n\n /**\n * Create the handler for the `PufferVaultV2` 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 }\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 = CONTRACT_ADDRESSES[this.chain].PufferVault as Address;\n const abi = PUFFER_VAULT_ABIS[this.chain].PufferVaultV2;\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 * Deposit ETH in exchange for pufETH. This doesn't make the\n * transaction but returns two methods namely `transact` and\n * `estimate`.\n *\n * @param walletAddress Wallet address to get the ETH from.\n * @returns `transact: (value: bigint) => Promise<Address>` - Used to\n * make the transaction with the given value.\n *\n * `estimate: () => Promise<bigint>` - Gas estimate of the\n * transaction.\n */\n public depositETH(walletAddress: Address) {\n const transact = async (value: bigint) =>\n await this.getContract().write.depositETH([walletAddress], {\n account: walletAddress,\n chain: this.viemChain,\n value,\n });\n\n const estimate = async () =>\n await this.getContract().estimateGas.depositETH([walletAddress], {\n account: walletAddress,\n });\n\n return { transact, estimate };\n }\n\n /**\n * Check the pufETH balance of the wallet.\n *\n * @param walletAddress Wallet address to check the balance of.\n * @returns pufETH balance in wei.\n */\n public async balanceOf(walletAddress: Address) {\n return await this.getContract().read.balanceOf([walletAddress]);\n }\n\n /**\n * Get the rate of pufETH compared to ETH.\n *\n * @returns Rate of pufETH compared to 1 ETH.\n */\n public async getPufETHRate() {\n const oneWei = BigInt(1e18);\n return await this.getContract().read.previewDeposit([oneWei]);\n }\n\n /**\n * Get the allowance for the given owner and spender.\n *\n * @param ownerAddress Address of the owner.\n * @param spenderAddress Address of the spender.\n * @returns Allowance for the given owner and spender.\n */\n public async getAllowance(ownerAddress: Address, spenderAddress: Address) {\n return await this.getContract().read.allowance([\n ownerAddress,\n spenderAddress,\n ]);\n }\n\n /**\n * Withdraw pufETH to the given wallet address. This doesn't make the\n * transaction but returns two methods namely `transact` and\n * `estimate`.\n *\n * @param ownerAddress Address of the owner.\n * @param walletAddress Address of the receiver.\n * @param value Value of pufETH to withdraw.\n * @returns `transact: (value: bigint) => Promise<Address>` - Used to\n * make the transaction with the given value.\n *\n * `estimate: () => Promise<bigint>` - Gas estimate of the\n * transaction.\n */\n public withdraw(\n ownerAddress: Address,\n walletAddress: Address,\n value: bigint,\n ) {\n const transact = async () =>\n await this.getContract().write.withdraw(\n [value, walletAddress, ownerAddress],\n {\n account: walletAddress,\n chain: this.viemChain,\n },\n );\n\n const estimate = async () =>\n await this.getContract().estimateGas.withdraw(\n [value, walletAddress, ownerAddress],\n {\n account: walletAddress,\n },\n );\n\n return { transact, estimate };\n }\n\n /**\n * Preview the amount of WETH that can be redeemed for the given\n * amount of pufETH using the `.redeem()` method.\n *\n * @param value Value of pufETH to redeem.\n * @returns Preview of the amount of WETH that can be redeemed.\n */\n public previewRedeem(value: bigint) {\n return this.getContract().read.previewRedeem([value]);\n }\n\n /**\n * Calculates the maximum amount of pufETH shares that can be redeemed\n * by the owner.\n *\n * @param ownerAddress Address of the owner's wallet.\n * @returns Maximum amount of pufETH shares that can be redeemed.\n */\n public maxRedeem(ownerAddress: Address) {\n return this.getContract().read.maxRedeem([ownerAddress]);\n }\n\n /**\n * Returns how many basis points of a fee there are when exiting. For\n * example, a 1% fee would mean 1% of the user's requested pufETH is\n * burned (which increases the value for all pufETH holders) before\n * the ETH is redeemed. i.e., you get 1% less ETH back.\n *\n * @returns Basis points of the exit fee.\n */\n public getExitFeeBasisPoints() {\n return this.getContract().read.getExitFeeBasisPoints();\n }\n\n /**\n * Returns how much WETH can still be withdrawn today.\n *\n * @returns Remaining WETH daily withdrawal limit.\n */\n public getRemainingAssetsDailyWithdrawalLimit() {\n return this.getContract().read.getRemainingAssetsDailyWithdrawalLimit();\n }\n\n /**\n * Redeems pufETH shares in exchange for WETH assets from the vault.\n * In the process, the pufETH shares of the owner are burned. This\n * doesn't make the transaction but returns two methods namely\n * `transact` and `estimate`.\n *\n * @param ownerAddress Address of the owner of pufETH.\n * @param receiverAddress Address of the receiver of WETH.\n * @param shares Amount of pufETH shares to redeem.\n * @returns `transact: (value: bigint) => Promise<Address>` - Used to\n * make the transaction with the given value.\n *\n * `estimate: () => Promise<bigint>` - Gas estimate of the\n * transaction.\n */\n public redeem(\n ownerAddress: Address,\n receiverAddress: Address,\n shares: bigint,\n ) {\n const transact = async () =>\n await this.getContract().write.redeem(\n [shares, receiverAddress, ownerAddress],\n {\n account: ownerAddress,\n chain: this.viemChain,\n },\n );\n\n const estimate = async () =>\n await this.getContract().estimateGas.redeem(\n [shares, receiverAddress, ownerAddress],\n {\n account: ownerAddress,\n },\n );\n\n return { transact, estimate };\n }\n}\n"],"names":["PufferVaultHandler","chain","walletClient","publicClient","__publicField","VIEM_CHAINS","address","CONTRACT_ADDRESSES","abi","PUFFER_VAULT_ABIS","client","getContract","walletAddress","value","oneWei","ownerAddress","spenderAddress","receiverAddress","shares"],"mappings":";;;;;;;AAeO,MAAMA,EAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAa9B,YACUC,GACAC,GACAC,GACR;AAhBM,IAAAC,EAAA;AAaE,SAAA,QAAAH,GACA,KAAA,eAAAC,GACA,KAAA,eAAAC,GAEH,KAAA,YAAYE,EAAYJ,CAAK;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,cAAc;AACnB,UAAMK,IAAUC,EAAmB,KAAK,KAAK,EAAE,aACzCC,IAAMC,EAAkB,KAAK,KAAK,EAAE,eACpCC,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;AAAA;AAAA;AAAA;AAAA;AAAA,EAcO,WAAWE,GAAwB;AAajC,WAAA,EAAE,UAZQ,OAAOC,MACtB,MAAM,KAAK,YAAY,EAAE,MAAM,WAAW,CAACD,CAAa,GAAG;AAAA,MACzD,SAASA;AAAA,MACT,OAAO,KAAK;AAAA,MACZ,OAAAC;AAAA,IAAA,CACD,GAOgB,UALF,YACf,MAAM,KAAK,cAAc,YAAY,WAAW,CAACD,CAAa,GAAG;AAAA,MAC/D,SAASA;AAAA,IAAA,CACV;EAGL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAa,UAAUA,GAAwB;AACtC,WAAA,MAAM,KAAK,YAAY,EAAE,KAAK,UAAU,CAACA,CAAa,CAAC;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAa,gBAAgB;AACrB,UAAAE,IAAS,OAAO,IAAI;AACnB,WAAA,MAAM,KAAK,YAAY,EAAE,KAAK,eAAe,CAACA,CAAM,CAAC;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAa,aAAaC,GAAuBC,GAAyB;AACxE,WAAO,MAAM,KAAK,cAAc,KAAK,UAAU;AAAA,MAC7CD;AAAA,MACAC;AAAA,IAAA,CACD;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBO,SACLD,GACAH,GACAC,GACA;AAkBO,WAAA,EAAE,UAjBQ,YACf,MAAM,KAAK,cAAc,MAAM;AAAA,MAC7B,CAACA,GAAOD,GAAeG,CAAY;AAAA,MACnC;AAAA,QACE,SAASH;AAAA,QACT,OAAO,KAAK;AAAA,MACd;AAAA,IAAA,GAWe,UARF,YACf,MAAM,KAAK,cAAc,YAAY;AAAA,MACnC,CAACC,GAAOD,GAAeG,CAAY;AAAA,MACnC;AAAA,QACE,SAASH;AAAA,MACX;AAAA,IAAA;EAIN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASO,cAAcC,GAAe;AAClC,WAAO,KAAK,cAAc,KAAK,cAAc,CAACA,CAAK,CAAC;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASO,UAAUE,GAAuB;AACtC,WAAO,KAAK,cAAc,KAAK,UAAU,CAACA,CAAY,CAAC;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUO,wBAAwB;AAC7B,WAAO,KAAK,YAAA,EAAc,KAAK,sBAAsB;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,yCAAyC;AAC9C,WAAO,KAAK,YAAA,EAAc,KAAK,uCAAuC;AAAA,EACxE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBO,OACLA,GACAE,GACAC,GACA;AAkBO,WAAA,EAAE,UAjBQ,YACf,MAAM,KAAK,cAAc,MAAM;AAAA,MAC7B,CAACA,GAAQD,GAAiBF,CAAY;AAAA,MACtC;AAAA,QACE,SAASA;AAAA,QACT,OAAO,KAAK;AAAA,MACd;AAAA,IAAA,GAWe,UARF,YACf,MAAM,KAAK,cAAc,YAAY;AAAA,MACnC,CAACG,GAAQD,GAAiBF,CAAY;AAAA,MACtC;AAAA,QACE,SAASA;AAAA,MACX;AAAA,IAAA;EAIN;AACF;"}
@@ -0,0 +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;
2
+ //# sourceMappingURL=tokens.cjs.map
@@ -0,0 +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,6 +1,5 @@
1
1
  import { Address } from 'viem';
2
2
  import { Chain } from '../chains/constants';
3
-
4
3
  export declare enum Token {
5
4
  USDT = "USDT",
6
5
  USDC = "USDC",
@@ -0,0 +1,134 @@
1
+ import { C as f } from "../constants-rWWWhxR_.js";
2
+ var E = /* @__PURE__ */ ((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))(E || {}), H = /* @__PURE__ */ ((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))(H || {});
3
+ const p = {
4
+ USDT: "pufUSDT",
5
+ USDC: "pufUSDC",
6
+ DAI: "pufDAI",
7
+ WETH: "pufWETH",
8
+ stETH: "pufstETH",
9
+ wstETH: "pufwstETH",
10
+ ALT: "pufALT",
11
+ eETH: "pufeETH",
12
+ pufETHwstE: "pufpufETHwstE",
13
+ pufETH: "pufpufETH"
14
+ /* pufpufETH */
15
+ }, T = {
16
+ USDT: {
17
+ [f.Mainnet]: "0xdac17f958d2ee523a2206206994597c13d831ec7",
18
+ [f.Holesky]: "0xd5bef2c64f418fd460319521d37862327122e3bc"
19
+ },
20
+ USDC: {
21
+ [f.Mainnet]: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
22
+ [f.Holesky]: "0x64Cc0de0429bcb87e875905a0c313ec88f6d1d3E"
23
+ },
24
+ DAI: {
25
+ [f.Mainnet]: "0x6b175474e89094c44da98b954eedeac495271d0f",
26
+ [f.Holesky]: "0x4478905505ddfb7eA1c8A9f46eAEC3695cE542ac"
27
+ },
28
+ WETH: {
29
+ [f.Mainnet]: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
30
+ [f.Holesky]: "0x1d181cBd1825e9eBC6AD966878D555A7215FF4F0"
31
+ },
32
+ stETH: {
33
+ [f.Mainnet]: "0xae7ab96520de3a18e5e111b5eaab095312d7fe84",
34
+ [f.Holesky]: "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034"
35
+ },
36
+ wstETH: {
37
+ [f.Mainnet]: "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
38
+ [f.Holesky]: "0x8d09a4502Cc8Cf1547aD300E066060D043f6982D"
39
+ },
40
+ ALT: {
41
+ [f.Mainnet]: "0x8457ca5040ad67fdebbcc8edce889a335bc0fbfb",
42
+ [f.Holesky]: "0xaf5588a571b42c7e50bd440d80f9bf94a4db94ee"
43
+ },
44
+ eETH: {
45
+ [f.Mainnet]: "0x35fa164735182de50811e8e2e824cfb9b6118ac2",
46
+ [f.Holesky]: "0x7ba2ee123b5977e3da040e1eacb3a61c82c17876"
47
+ },
48
+ pufETHwstE: {
49
+ [f.Mainnet]: "0xeeda34a377dd0ca676b9511ee1324974fa8d980d",
50
+ [f.Holesky]: "0x0000000000000000000000000000000000000000"
51
+ },
52
+ pufETH: {
53
+ [f.Mainnet]: "0xd9a442856c234a39a81a089c06451ebaa4306a72",
54
+ [f.Holesky]: "0x9196830bB4c05504E0A8475A0aD566AceEB6BeC9"
55
+ },
56
+ // TODO: Update the addresses once the contracts are deployed on chain.
57
+ // See https://dev.azure.com/pufferfi/Frontend/_workitems/edit/1797.
58
+ // Wrapped PufTokens.
59
+ pufUSDT: {
60
+ [f.Mainnet]: "0x0000000000000000000000000000000000000000",
61
+ [f.Holesky]: "0x61e7C87c387178D6e0aE6c04748b7FF753fC9b81"
62
+ },
63
+ pufUSDC: {
64
+ [f.Mainnet]: "0x2f0d8e30df0c598b90b34cd68b5e3981b7af3881",
65
+ [f.Holesky]: "0x6D900a9f5784A2cA0004B5c3D3e08D7A9cE4A1b3"
66
+ },
67
+ pufDAI: {
68
+ [f.Mainnet]: "0x0000000000000000000000000000000000000000",
69
+ [f.Holesky]: "0x2D6B705e118198A02F00490BA323B17eC5D58109"
70
+ },
71
+ pufWETH: {
72
+ [f.Mainnet]: "0x2b36f6bfd223f460e7e43ef49bc487481648948c",
73
+ [f.Holesky]: "0x5335f231C22d472Ab31CC2690A2247d25efd76a5"
74
+ },
75
+ pufstETH: {
76
+ [f.Mainnet]: "0x0000000000000000000000000000000000000000",
77
+ [f.Holesky]: "0x0000000000000000000000000000000000000000"
78
+ },
79
+ pufwstETH: {
80
+ [f.Mainnet]: "0x0000000000000000000000000000000000000000",
81
+ [f.Holesky]: "0x0000000000000000000000000000000000000000"
82
+ },
83
+ pufALT: {
84
+ [f.Mainnet]: "0x0000000000000000000000000000000000000000",
85
+ [f.Holesky]: "0x0000000000000000000000000000000000000000"
86
+ },
87
+ pufeETH: {
88
+ [f.Mainnet]: "0x0000000000000000000000000000000000000000",
89
+ [f.Holesky]: "0x0000000000000000000000000000000000000000"
90
+ },
91
+ pufpufETHwstE: {
92
+ [f.Mainnet]: "0xf374014f6fa86bad50d52e6240a117b0830663cb",
93
+ [f.Holesky]: "0x0000000000000000000000000000000000000000"
94
+ },
95
+ pufpufETH: {
96
+ [f.Mainnet]: "0x0000000000000000000000000000000000000000",
97
+ [f.Holesky]: "0x638fd1Fe8205285E8497Eb8E6037c8254EDdB0ae"
98
+ }
99
+ }, u = {
100
+ USDT: "2",
101
+ // USDC does not support permit signatures (ERC20Permit).
102
+ USDC: "",
103
+ // DAI does not support permit signatures (ERC20Permit).
104
+ DAI: "",
105
+ // WETH does not support permit signatures (ERC20Permit).
106
+ WETH: "",
107
+ stETH: "2",
108
+ // Puffer Quest v1 uses version 1 for wstETH.
109
+ wstETH: "1",
110
+ ALT: "1",
111
+ // https://github.com/etherfi-protocol/smart-contracts/blob/7c66e571df4fe7ec502a3c325b623bc52349ef9d/src/EETH.sol#L55
112
+ eETH: "1",
113
+ pufETHwstE: "",
114
+ pufETH: "1",
115
+ // Wrapped PufTokens
116
+ pufUSDT: "1",
117
+ pufUSDC: "1",
118
+ pufDAI: "1",
119
+ pufWETH: "1",
120
+ pufstETH: "1",
121
+ pufwstETH: "1",
122
+ pufALT: "1",
123
+ pufeETH: "1",
124
+ pufpufETHwstE: "1",
125
+ pufpufETH: "1"
126
+ };
127
+ export {
128
+ H as PufToken,
129
+ T as TOKENS_ADDRESSES,
130
+ u as TOKENS_PERMIT_VERSION,
131
+ p as TOKEN_TO_PUF_TOKEN_MAP,
132
+ E as Token
133
+ };
134
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +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":";AAGY,IAAAA,sBAAAA,OACVA,EAAA,OAAO,QACPA,EAAA,OAAO,QACPA,EAAA,MAAM,OACNA,EAAA,OAAO,QACPA,EAAA,QAAQ,SACRA,EAAA,SAAS,UACTA,EAAA,MAAM,OACNA,EAAA,OAAO,QACPA,EAAA,aAAa,cACbA,EAAA,SAAS,UAVCA,IAAAA,KAAA,CAAA,CAAA,GAaAC,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,UAAU,WACVA,EAAA,SAAS,UACTA,EAAA,YAAY,aACZA,EAAA,UAAU,WACVA,EAAA,WAAW,YACXA,EAAA,YAAY,aACZA,EAAA,SAAS,UACTA,EAAA,UAAU,WACVA,EAAA,gBAAgB,iBAVNA,IAAAA,KAAA,CAAA,CAAA;AAeL,MAAMC,IAAyB;AAAA,EACnC,MAAa;AAAA,EACb,MAAa;AAAA,EACb,KAAY;AAAA,EACZ,MAAa;AAAA,EACb,OAAc;AAAA,EACd,QAAe;AAAA,EACf,KAAY;AAAA,EACZ,MAAa;AAAA,EACb,YAAmB;AAAA,EACnB,QAAe;AAAA;AAClB,GAEaC,IAET;AAAA,EACD,MAAa;AAAA,IACZ,CAACC,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,MAAa;AAAA,IACZ,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,KAAY;AAAA,IACX,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,MAAa;AAAA,IACZ,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,OAAc;AAAA,IACb,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,QAAe;AAAA,IACd,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,KAAY;AAAA,IACX,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,MAAa;AAAA,IACZ,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,YAAmB;AAAA,IAClB,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,QAAe;AAAA,IACd,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA,EAMC,SAAmB;AAAA,IAClB,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,SAAmB;AAAA,IAClB,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,QAAkB;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,SAAmB;AAAA,IAClB,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,UAAoB;AAAA,IACnB,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,WAAqB;AAAA,IACpB,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,QAAkB;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,SAAmB;AAAA,IAClB,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,eAAyB;AAAA,IACxB,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AAAA,EACC,WAAqB;AAAA,IACpB,CAACA,EAAM,OAAO,GAAG;AAAA,IACjB,CAACA,EAAM,OAAO,GAAG;AAAA,EACnB;AACF,GAEaC,IAA+D;AAAA,EACzE,MAAa;AAAA;AAAA,EAEb,MAAa;AAAA;AAAA,EAEb,KAAY;AAAA;AAAA,EAEZ,MAAa;AAAA,EACb,OAAc;AAAA;AAAA,EAEd,QAAe;AAAA,EACf,KAAY;AAAA;AAAA,EAEZ,MAAa;AAAA,EACb,YAAmB;AAAA,EACnB,QAAe;AAAA;AAAA,EAGf,SAAmB;AAAA,EACnB,SAAmB;AAAA,EACnB,QAAkB;AAAA,EAClB,SAAmB;AAAA,EACnB,UAAoB;AAAA,EACpB,WAAqB;AAAA,EACrB,QAAkB;AAAA,EAClB,SAAmB;AAAA,EACnB,eAAyB;AAAA,EACzB,WAAqB;AACxB;"}
@@ -0,0 +1,4 @@
1
+ "use strict";const n=require("./writeContract-BBHpAss8.cjs"),d=require("./constants-BvU-JhfL.cjs"),K=require("./secp256k1-CFnFaJ0H.cjs");class ge extends d.BaseError{constructor({address:t}){super(`No EIP-712 domain found on contract "${t}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${t}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Eip712DomainNotFoundError"})}}async function me(e,t){const{address:r,factory:a,factoryData:o}=t;try{const[s,i,u,l,h,c,f]=await n.getAction(e,n.readContract,"readContract")({abi:be,address:r,functionName:"eip712Domain",factory:a,factoryData:o});return{domain:{name:i,version:u,chainId:Number(l),verifyingContract:h,salt:c},extensions:f,fields:s}}catch(s){const i=s;throw i.name==="ContractFunctionExecutionError"&&i.cause.name==="ContractFunctionZeroDataError"?new ge({address:r}):i}}const be=[{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"}];async function ye(e,{chain:t}){const{id:r,name:a,nativeCurrency:o,rpcUrls:s,blockExplorers:i}=t;await e.request({method:"wallet_addEthereumChain",params:[{chainId:d.numberToHex(r),chainName:a,nativeCurrency:o,rpcUrls:s.default.http,blockExplorerUrls:i?Object.values(i).map(({url:u})=>u):void 0}]},{dedupe:!0,retryCount:0})}const M=256;let F=M,D;function Q(e=11){if(!D||F+e>M*2){D="",F=0;for(let t=0;t<M;t++)D+=(256+Math.random()*256|0).toString(16).substring(1)}return D.substring(F,F+++e)}function X(e){const{batch:t,cacheTime:r=e.pollingInterval??4e3,ccipRead:a,key:o="base",name:s="Base Client",pollingInterval:i=4e3,type:u="base"}=e,l=e.chain,h=e.account?n.parseAccount(e.account):void 0,{config:c,request:f,value:p}=e.transport({chain:l,pollingInterval:i}),m={...c,...p},w={account:h,batch:t,cacheTime:r,ccipRead:a,chain:l,key:o,name:s,pollingInterval:i,request:f,transport:m,type:u,uid:Q()};function y(v){return g=>{const b=g(v);for(const T in w)delete b[T];const R={...v,...b};return Object.assign(R,{extend:y(R)})}}return Object.assign(w,{extend:y(w)})}const H=new d.LruMap(8192);function we(e,{enabled:t=!0,id:r}){if(!t||!r)return e();if(H.get(r))return H.get(r);const a=e().finally(()=>H.delete(r));return H.set(r,a),a}function $(e,{delay:t=100,retryCount:r=2,shouldRetry:a=()=>!0}={}){return new Promise((o,s)=>{const i=async({count:u=0}={})=>{const l=async({error:h})=>{const c=typeof t=="function"?t({count:u,error:h}):t;c&&await n.wait(c),i({count:u+1})};try{const h=await e();o(h)}catch(h){if(u<r&&await a({count:u,error:h}))return l({error:h});s(h)}};i()})}function ve(e,t={}){return async(r,a={})=>{const{dedupe:o=!1,retryDelay:s=150,retryCount:i=3,uid:u}={...t,...a},l=o?d.keccak256(d.stringToHex(`${u}.${n.stringify(r)}`)):void 0;return we(()=>$(async()=>{try{return await e(r)}catch(h){const c=h;switch(c.code){case n.ParseRpcError.code:throw new n.ParseRpcError(c);case n.InvalidRequestRpcError.code:throw new n.InvalidRequestRpcError(c);case n.MethodNotFoundRpcError.code:throw new n.MethodNotFoundRpcError(c,{method:r.method});case n.InvalidParamsRpcError.code:throw new n.InvalidParamsRpcError(c);case n.InternalRpcError.code:throw new n.InternalRpcError(c);case n.InvalidInputRpcError.code:throw new n.InvalidInputRpcError(c);case n.ResourceNotFoundRpcError.code:throw new n.ResourceNotFoundRpcError(c);case n.ResourceUnavailableRpcError.code:throw new n.ResourceUnavailableRpcError(c);case n.TransactionRejectedRpcError.code:throw new n.TransactionRejectedRpcError(c);case n.MethodNotSupportedRpcError.code:throw new n.MethodNotSupportedRpcError(c,{method:r.method});case n.LimitExceededRpcError.code:throw new n.LimitExceededRpcError(c);case n.JsonRpcVersionUnsupportedError.code:throw new n.JsonRpcVersionUnsupportedError(c);case n.UserRejectedRequestError.code:throw new n.UserRejectedRequestError(c);case n.UnauthorizedProviderError.code:throw new n.UnauthorizedProviderError(c);case n.UnsupportedProviderMethodError.code:throw new n.UnsupportedProviderMethodError(c);case n.ProviderDisconnectedError.code:throw new n.ProviderDisconnectedError(c);case n.ChainDisconnectedError.code:throw new n.ChainDisconnectedError(c);case n.SwitchChainError.code:throw new n.SwitchChainError(c);case 5e3:throw new n.UserRejectedRequestError(c);default:throw h instanceof d.BaseError?h:new n.UnknownRpcError(c)}}},{delay:({count:h,error:c})=>{var f;if(c&&c instanceof n.HttpRequestError){const p=(f=c==null?void 0:c.headers)==null?void 0:f.get("Retry-After");if(p!=null&&p.match(/\d/))return Number.parseInt(p)*1e3}return~~(1<<h)*s},retryCount:i,shouldRetry:({error:h})=>Te(h)}),{enabled:o,id:l})}}function Te(e){return"code"in e&&typeof e.code=="number"?e.code===-1||e.code===n.LimitExceededRpcError.code||e.code===n.InternalRpcError.code:e instanceof n.HttpRequestError&&e.status?e.status===403||e.status===408||e.status===413||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504:!0}function Y({key:e,name:t,request:r,retryCount:a=3,retryDelay:o=150,timeout:s,type:i},u){const l=Q();return{config:{key:e,name:t,request:r,retryCount:a,retryDelay:o,timeout:s,type:i},request:ve(r,{retryCount:a,retryDelay:o,uid:l}),value:u}}class Re extends d.BaseError{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro"})}}function Ee(e,{errorInstance:t=new Error("timed out"),timeout:r,signal:a}){return new Promise((o,s)=>{(async()=>{let i;try{const u=new AbortController;r>0&&(i=setTimeout(()=>{a?u.abort():s(t)},r)),o(await e({signal:(u==null?void 0:u.signal)||null}))}catch(u){(u==null?void 0:u.name)==="AbortError"&&s(t),s(u)}finally{clearTimeout(i)}})()})}function xe(){return{current:0,take(){return this.current++},reset(){this.current=0}}}const G=xe();function Ce(e,t={}){return{async request(r){var f;const{body:a,onRequest:o=t.onRequest,onResponse:s=t.onResponse,timeout:i=t.timeout??1e4}=r,u={...t.fetchOptions??{},...r.fetchOptions??{}},{headers:l,method:h,signal:c}=u;try{const p=await Ee(async({signal:w})=>{const y={...u,body:Array.isArray(a)?n.stringify(a.map(b=>({jsonrpc:"2.0",id:b.id??G.take(),...b}))):n.stringify({jsonrpc:"2.0",id:a.id??G.take(),...a}),headers:{"Content-Type":"application/json",...l},method:h||"POST",signal:c||(i>0?w:null)},v=new Request(e,y);return o&&await o(v),await fetch(e,y)},{errorInstance:new n.TimeoutError({body:a,url:e}),timeout:i,signal:!0});s&&await s(p);let m;if((f=p.headers.get("Content-Type"))!=null&&f.startsWith("application/json")?m=await p.json():(m=await p.text(),m=JSON.parse(m||"{}")),!p.ok)throw new n.HttpRequestError({body:a,details:n.stringify(m.error)||p.statusText,headers:p.headers,status:p.status,url:e});return m}catch(p){throw p instanceof n.HttpRequestError||p instanceof n.TimeoutError?p:new n.HttpRequestError({body:a,cause:p,url:e})}}}}function Ae(e,t={}){const{batch:r,fetchOptions:a,key:o="http",name:s="HTTP JSON-RPC",onFetchRequest:i,onFetchResponse:u,retryDelay:l}=t;return({chain:h,retryCount:c,timeout:f})=>{const{batchSize:p=1e3,wait:m=0}=typeof r=="object"?r:{},w=t.retryCount??c,y=f??t.timeout??1e4,v=e||(h==null?void 0:h.rpcUrls.default.http[0]);if(!v)throw new Re;const g=Ce(v,{fetchOptions:a,onRequest:i,onResponse:u,timeout:y});return Y({key:o,name:s,async request({method:b,params:R}){const T={method:b,params:R},{schedule:k}=n.createBatchScheduler({id:v,wait:m,shouldSplitBatch(A){return A.length>p},fn:A=>g.request({body:A}),sort:(A,I)=>A.id-I.id}),x=async A=>r?k(A):[await g.request({body:A})],[{error:E,result:C}]=await x(T);if(E)throw new n.RpcRequestError({body:T,error:E,url:v});return C},retryCount:w,retryDelay:l,timeout:y,type:"http"},{fetchOptions:a,url:v})}}function U(e,t){var a,o,s,i,u,l;if(!(e instanceof d.BaseError))return!1;const r=e.walk(h=>h instanceof n.ContractFunctionRevertedError);return r instanceof n.ContractFunctionRevertedError?!!(((a=r.data)==null?void 0:a.errorName)==="ResolverNotFound"||((o=r.data)==null?void 0:o.errorName)==="ResolverWildcardNotSupported"||((s=r.data)==null?void 0:s.errorName)==="ResolverNotContract"||((i=r.data)==null?void 0:i.errorName)==="ResolverError"||((u=r.data)==null?void 0:u.errorName)==="HttpError"||(l=r.reason)!=null&&l.includes("Wildcard on non-extended resolvers is not supported")||t==="reverse"&&r.reason===n.panicReasons[50]):!1}function ee(e){if(e.length!==66||e.indexOf("[")!==0||e.indexOf("]")!==65)return null;const t=`0x${e.slice(1,65)}`;return d.isHex(t)?t:null}function S(e){let t=new Uint8Array(32).fill(0);if(!e)return d.bytesToHex(t);const r=e.split(".");for(let a=r.length-1;a>=0;a-=1){const o=ee(r[a]),s=o?d.toBytes$1(o):d.keccak256(d.stringToBytes(r[a]),"bytes");t=d.keccak256(d.concat([t,s]),"bytes")}return d.bytesToHex(t)}function ke(e){return`[${e.slice(2)}]`}function Ie(e){const t=new Uint8Array(32).fill(0);return e?ee(e)||d.keccak256(d.stringToBytes(e)):d.bytesToHex(t)}function _(e){const t=e.replace(/^\.|\.$/gm,"");if(t.length===0)return new Uint8Array(1);const r=new Uint8Array(d.stringToBytes(t).byteLength+2);let a=0;const o=t.split(".");for(let s=0;s<o.length;s++){let i=d.stringToBytes(o[s]);i.byteLength>255&&(i=d.stringToBytes(ke(Ie(o[s])))),r[a]=i.length,r.set(i,a+1),a+=i.length+1}return r.byteLength!==a+1?r.slice(0,a+1):r}async function Ne(e,{blockNumber:t,blockTag:r,coinType:a,name:o,gatewayUrls:s,strict:i,universalResolverAddress:u}){let l=u;if(!l){if(!e.chain)throw new Error("client chain not configured. universalResolverAddress is required.");l=n.getChainContractAddress({blockNumber:t,chain:e.chain,contract:"ensUniversalResolver"})}try{const h=n.encodeFunctionData({abi:n.addressResolverAbi,functionName:"addr",...a!=null?{args:[S(o),BigInt(a)]}:{args:[S(o)]}}),c={address:l,abi:n.universalResolverResolveAbi,functionName:"resolve",args:[d.toHex(_(o)),h],blockNumber:t,blockTag:r},f=n.getAction(e,n.readContract,"readContract"),p=s?await f({...c,args:[...c.args,s]}):await f(c);if(p[0]==="0x")return null;const m=n.decodeFunctionResult({abi:n.addressResolverAbi,args:a!=null?[S(o),BigInt(a)]:void 0,functionName:"addr",data:p[0]});return m==="0x"||d.trim(m)==="0x00"?null:m}catch(h){if(i)throw h;if(U(h,"resolve"))return null;throw h}}class Be extends d.BaseError{constructor({data:t}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify(t)}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EnsAvatarInvalidMetadataError"})}}class q extends d.BaseError{constructor({reason:t}){super(`ENS NFT avatar URI is invalid. ${t}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EnsAvatarInvalidNftUriError"})}}class L extends d.BaseError{constructor({uri:t}){super(`Unable to resolve ENS avatar URI "${t}". The URI may be malformed, invalid, or does not respond with a valid image.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EnsAvatarUriResolutionError"})}}class Pe extends d.BaseError{constructor({namespace:t}){super(`ENS NFT avatar namespace "${t}" is not supported. Must be "erc721" or "erc1155".`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"EnsAvatarUnsupportedNamespaceError"})}}const qe=/(?<protocol>https?:\/\/[^\/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,Fe=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?<target>[\w\-.]+))?(?<subtarget>\/.*)?$/,De=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,He=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function Se(e){try{const t=await fetch(e,{method:"HEAD"});if(t.status===200){const r=t.headers.get("content-type");return r==null?void 0:r.startsWith("image/")}return!1}catch(t){return typeof t=="object"&&typeof t.response<"u"||!globalThis.hasOwnProperty("Image")?!1:new Promise(r=>{const a=new Image;a.onload=()=>{r(!0)},a.onerror=()=>{r(!1)},a.src=e})}}function Z(e,t){return e?e.endsWith("/")?e.slice(0,-1):e:t}function te({uri:e,gatewayUrls:t}){const r=De.test(e);if(r)return{uri:e,isOnChain:!0,isEncoded:r};const a=Z(t==null?void 0:t.ipfs,"https://ipfs.io"),o=Z(t==null?void 0:t.arweave,"https://arweave.net"),s=e.match(qe),{protocol:i,subpath:u,target:l,subtarget:h=""}=(s==null?void 0:s.groups)||{},c=i==="ipns:/"||u==="ipns/",f=i==="ipfs:/"||u==="ipfs/"||Fe.test(e);if(e.startsWith("http")&&!c&&!f){let m=e;return t!=null&&t.arweave&&(m=e.replace(/https:\/\/arweave.net/g,t==null?void 0:t.arweave)),{uri:m,isOnChain:!1,isEncoded:!1}}if((c||f)&&l)return{uri:`${a}/${c?"ipns":"ipfs"}/${l}${h}`,isOnChain:!1,isEncoded:!1};if(i==="ar:/"&&l)return{uri:`${o}/${l}${h||""}`,isOnChain:!1,isEncoded:!1};let p=e.replace(He,"");if(p.startsWith("<svg")&&(p=`data:image/svg+xml;base64,${btoa(p)}`),p.startsWith("data:")||p.startsWith("{"))return{uri:p,isOnChain:!0,isEncoded:!1};throw new L({uri:e})}function re(e){if(typeof e!="object"||!("image"in e)&&!("image_url"in e)&&!("image_data"in e))throw new Be({data:e});return e.image||e.image_url||e.image_data}async function _e({gatewayUrls:e,uri:t}){try{const r=await fetch(t).then(o=>o.json());return await j({gatewayUrls:e,uri:re(r)})}catch{throw new L({uri:t})}}async function j({gatewayUrls:e,uri:t}){const{uri:r,isOnChain:a}=te({uri:t,gatewayUrls:e});if(a||await Se(r))return r;throw new L({uri:t})}function Me(e){let t=e;t.startsWith("did:nft:")&&(t=t.replace("did:nft:","").replace(/_/g,"/"));const[r,a,o]=t.split("/"),[s,i]=r.split(":"),[u,l]=a.split(":");if(!s||s.toLowerCase()!=="eip155")throw new q({reason:"Only EIP-155 supported"});if(!i)throw new q({reason:"Chain ID not found"});if(!l)throw new q({reason:"Contract address not found"});if(!o)throw new q({reason:"Token ID not found"});if(!u)throw new q({reason:"ERC namespace not found"});return{chainID:Number.parseInt(i),namespace:u.toLowerCase(),contractAddress:l,tokenID:o}}async function $e(e,{nft:t}){if(t.namespace==="erc721")return n.readContract(e,{address:t.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(t.tokenID)]});if(t.namespace==="erc1155")return n.readContract(e,{address:t.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(t.tokenID)]});throw new Pe({namespace:t.namespace})}async function ze(e,{gatewayUrls:t,record:r}){return/eip155:/i.test(r)?Ue(e,{gatewayUrls:t,record:r}):j({uri:r,gatewayUrls:t})}async function Ue(e,{gatewayUrls:t,record:r}){const a=Me(r),o=await $e(e,{nft:a}),{uri:s,isOnChain:i,isEncoded:u}=te({uri:o,gatewayUrls:t});if(i&&(s.includes("data:application/json;base64,")||s.startsWith("{"))){const h=u?atob(s.replace("data:application/json;base64,","")):s,c=JSON.parse(h);return j({uri:re(c),gatewayUrls:t})}let l=a.tokenID;return a.namespace==="erc1155"&&(l=l.replace("0x","").padStart(64,"0")),_e({gatewayUrls:t,uri:s.replace(/(?:0x)?{id}/,l)})}async function ne(e,{blockNumber:t,blockTag:r,name:a,key:o,gatewayUrls:s,strict:i,universalResolverAddress:u}){let l=u;if(!l){if(!e.chain)throw new Error("client chain not configured. universalResolverAddress is required.");l=n.getChainContractAddress({blockNumber:t,chain:e.chain,contract:"ensUniversalResolver"})}try{const h={address:l,abi:n.universalResolverResolveAbi,functionName:"resolve",args:[d.toHex(_(a)),n.encodeFunctionData({abi:n.textResolverAbi,functionName:"text",args:[S(a),o]})],blockNumber:t,blockTag:r},c=n.getAction(e,n.readContract,"readContract"),f=s?await c({...h,args:[...h.args,s]}):await c(h);if(f[0]==="0x")return null;const p=n.decodeFunctionResult({abi:n.textResolverAbi,functionName:"text",data:f[0]});return p===""?null:p}catch(h){if(i)throw h;if(U(h,"resolve"))return null;throw h}}async function Le(e,{blockNumber:t,blockTag:r,assetGatewayUrls:a,name:o,gatewayUrls:s,strict:i,universalResolverAddress:u}){const l=await n.getAction(e,ne,"getEnsText")({blockNumber:t,blockTag:r,key:"avatar",name:o,universalResolverAddress:u,gatewayUrls:s,strict:i});if(!l)return null;try{return await ze(e,{record:l,gatewayUrls:a})}catch{return null}}async function je(e,{address:t,blockNumber:r,blockTag:a,gatewayUrls:o,strict:s,universalResolverAddress:i}){let u=i;if(!u){if(!e.chain)throw new Error("client chain not configured. universalResolverAddress is required.");u=n.getChainContractAddress({blockNumber:r,chain:e.chain,contract:"ensUniversalResolver"})}const l=`${t.toLowerCase().substring(2)}.addr.reverse`;try{const h={address:u,abi:n.universalResolverReverseAbi,functionName:"reverse",args:[d.toHex(_(l))],blockNumber:r,blockTag:a},c=n.getAction(e,n.readContract,"readContract"),[f,p]=o?await c({...h,args:[...h.args,o]}):await c(h);return t.toLowerCase()!==p.toLowerCase()?null:f}catch(h){if(s)throw h;if(U(h,"reverse"))return null;throw h}}async function Oe(e,{blockNumber:t,blockTag:r,name:a,universalResolverAddress:o}){let s=o;if(!s){if(!e.chain)throw new Error("client chain not configured. universalResolverAddress is required.");s=n.getChainContractAddress({blockNumber:t,chain:e.chain,contract:"ensUniversalResolver"})}const[i]=await n.getAction(e,n.readContract,"readContract")({address:s,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[d.toHex(_(a))],blockNumber:t,blockTag:r});return i}async function We(e){const t=n.createFilterRequestScope(e,{method:"eth_newBlockFilter"}),r=await e.request({method:"eth_newBlockFilter"});return{id:r,request:t(r),type:"block"}}async function ae(e,{address:t,args:r,event:a,events:o,fromBlock:s,strict:i,toBlock:u}={}){const l=o??(a?[a]:void 0),h=n.createFilterRequestScope(e,{method:"eth_newFilter"});let c=[];l&&(c=[l.flatMap(m=>n.encodeEventTopics({abi:[m],eventName:m.name,args:r}))],a&&(c=c[0]));const f=await e.request({method:"eth_newFilter",params:[{address:t,fromBlock:typeof s=="bigint"?d.numberToHex(s):s,toBlock:typeof u=="bigint"?d.numberToHex(u):u,...c.length?{topics:c}:{}}]});return{abi:l,args:r,eventName:a?a.name:void 0,fromBlock:s,id:f,request:h(f),strict:!!i,toBlock:u,type:"event"}}async function se(e){const t=n.createFilterRequestScope(e,{method:"eth_newPendingTransactionFilter"}),r=await e.request({method:"eth_newPendingTransactionFilter"});return{id:r,request:t(r),type:"transaction"}}async function Ge(e,{address:t,blockNumber:r,blockTag:a="latest"}){const o=r?d.numberToHex(r):void 0,s=await e.request({method:"eth_getBalance",params:[t,o||a]});return BigInt(s)}async function Ze(e){const t=await e.request({method:"eth_blobBaseFee"});return BigInt(t)}async function Je(e,{blockHash:t,blockNumber:r,blockTag:a="latest"}={}){const o=r!==void 0?d.numberToHex(r):void 0;let s;return t?s=await e.request({method:"eth_getBlockTransactionCountByHash",params:[t]},{dedupe:!0}):s=await e.request({method:"eth_getBlockTransactionCountByNumber",params:[o||a]},{dedupe:!!o}),d.hexToNumber(s)}async function J(e,{address:t,blockNumber:r,blockTag:a="latest"}){const o=r!==void 0?d.numberToHex(r):void 0,s=await e.request({method:"eth_getCode",params:[t,o||a]},{dedupe:!!o});if(s!=="0x")return s}function Ve(e){var t;return{baseFeePerGas:e.baseFeePerGas.map(r=>BigInt(r)),gasUsedRatio:e.gasUsedRatio,oldestBlock:BigInt(e.oldestBlock),reward:(t=e.reward)==null?void 0:t.map(r=>r.map(a=>BigInt(a)))}}async function Ke(e,{blockCount:t,blockNumber:r,blockTag:a="latest",rewardPercentiles:o}){const s=r?d.numberToHex(r):void 0,i=await e.request({method:"eth_feeHistory",params:[d.numberToHex(t),s||a,o]},{dedupe:!!s});return Ve(i)}async function Qe(e,{filter:t}){const r=t.strict??!1,o=(await t.request({method:"eth_getFilterLogs",params:[t.id]})).map(s=>d.formatLog(s));return t.abi?n.parseEventLogs({abi:t.abi,logs:o,strict:r}):o}const Xe=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Ye=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function et(e){const{domain:t={},message:r,primaryType:a}=e,o={EIP712Domain:fe({domain:t}),...e.types};de({domain:t,message:r,primaryType:a,types:o});const s=["0x1901"];return t&&s.push(tt({domain:t,types:o})),a!=="EIP712Domain"&&s.push(oe({data:r,primaryType:a,types:o})),d.keccak256(d.concat(s))}function tt({domain:e,types:t}){return oe({data:e,primaryType:"EIP712Domain",types:t})}function oe({data:e,primaryType:t,types:r}){const a=ie({data:e,primaryType:t,types:r});return d.keccak256(a)}function ie({data:e,primaryType:t,types:r}){const a=[{type:"bytes32"}],o=[rt({primaryType:t,types:r})];for(const s of r[t]){const[i,u]=ue({types:r,name:s.name,type:s.type,value:e[s.name]});a.push(i),o.push(u)}return n.encodeAbiParameters(a,o)}function rt({primaryType:e,types:t}){const r=d.toHex(nt({primaryType:e,types:t}));return d.keccak256(r)}function nt({primaryType:e,types:t}){let r="";const a=ce({primaryType:e,types:t});a.delete(e);const o=[e,...Array.from(a).sort()];for(const s of o)r+=`${s}(${t[s].map(({name:i,type:u})=>`${u} ${i}`).join(",")})`;return r}function ce({primaryType:e,types:t},r=new Set){const a=e.match(/^\w*/u),o=a==null?void 0:a[0];if(r.has(o)||t[o]===void 0)return r;r.add(o);for(const s of t[o])ce({primaryType:s.type,types:t},r);return r}function ue({types:e,name:t,type:r,value:a}){if(e[r]!==void 0)return[{type:"bytes32"},d.keccak256(ie({data:a,primaryType:r,types:e}))];if(r==="bytes")return a=`0x${(a.length%2?"0":"")+a.slice(2)}`,[{type:"bytes32"},d.keccak256(a)];if(r==="string")return[{type:"bytes32"},d.keccak256(d.toHex(a))];if(r.lastIndexOf("]")===r.length-1){const o=r.slice(0,r.lastIndexOf("[")),s=a.map(i=>ue({name:t,type:o,types:e,value:i}));return[{type:"bytes32"},d.keccak256(n.encodeAbiParameters(s.map(([i])=>i),s.map(([,i])=>i)))]}return[{type:r},a]}function at(e){const{domain:t,message:r,primaryType:a,types:o}=e,s=(l,h)=>{const c={...h};for(const f of l){const{name:p,type:m}=f;m==="address"&&(c[p]=c[p].toLowerCase())}return c},i=o.EIP712Domain?t?s(o.EIP712Domain,t):{}:{},u=(()=>{if(a!=="EIP712Domain")return s(o[a],r)})();return n.stringify({domain:i,message:u,primaryType:a,types:o})}function de(e){const{domain:t,message:r,primaryType:a,types:o}=e,s=(i,u)=>{for(const l of i){const{name:h,type:c}=l,f=u[h],p=c.match(Ye);if(p&&(typeof f=="number"||typeof f=="bigint")){const[y,v,g]=p;d.numberToHex(f,{signed:v==="int",size:Number.parseInt(g)/8})}if(c==="address"&&typeof f=="string"&&!d.isAddress(f))throw new d.InvalidAddressError({address:f});const m=c.match(Xe);if(m){const[y,v]=m;if(v&&d.size(f)!==Number.parseInt(v))throw new n.BytesSizeMismatchError({expectedSize:Number.parseInt(v),givenSize:d.size(f)})}const w=o[c];w&&s(w,f)}};o.EIP712Domain&&t&&s(o.EIP712Domain,t),a!=="EIP712Domain"&&s(o[a],r)}function fe({domain:e}){return[typeof(e==null?void 0:e.name)=="string"&&{name:"name",type:"string"},(e==null?void 0:e.version)&&{name:"version",type:"string"},typeof(e==null?void 0:e.chainId)=="number"&&{name:"chainId",type:"uint256"},(e==null?void 0:e.verifyingContract)&&{name:"verifyingContract",type:"address"},(e==null?void 0:e.salt)&&{name:"salt",type:"bytes32"}].filter(Boolean)}function st(e){const t=d.keccak256(`0x${e.substring(4)}`).substring(26);return d.checksumAddress(`0x${t}`)}async function ot({hash:e,signature:t}){const r=d.isHex(e)?e:d.toHex(e),{secp256k1:a}=await Promise.resolve().then(()=>require("./secp256k1-CFnFaJ0H.cjs")).then(i=>i.secp256k1$1);return`0x${(()=>{if(typeof t=="object"&&"r"in t&&"s"in t){const{r:h,s:c,v:f,yParity:p}=t,m=Number(p??f),w=V(m);return new a.Signature(d.hexToBigInt(h),d.hexToBigInt(c)).addRecoveryBit(w)}const i=d.isHex(t)?t:d.toHex(t),u=d.hexToNumber(`0x${i.slice(130)}`),l=V(u);return a.Signature.fromCompact(i.substring(2,130)).addRecoveryBit(l)})().recoverPublicKey(r.substring(2)).toHex(!1)}`}function V(e){if(e===0||e===1)return e;if(e===27)return 0;if(e===28)return 1;throw new Error("Invalid yParityOrV value")}async function it({hash:e,signature:t}){return st(await ot({hash:e,signature:t}))}const ct=`Ethereum Signed Message:
2
+ `;function ut(e){const t=typeof e=="string"?d.stringToHex(e):typeof e.raw=="string"?e.raw:d.bytesToHex(e.raw),r=d.stringToHex(`${ct}${d.size(t)}`);return d.concat([r,t])}function le(e,t){return d.keccak256(ut(e),t)}const pe="0x6492649264926492649264926492649264926492649264926492649264926492";function dt(e){return d.sliceHex(e,-32)===pe}function ft(e){const{address:t,data:r,signature:a,to:o="hex"}=e,s=d.concatHex([n.encodeAbiParameters([{type:"address"},{type:"bytes"},{type:"bytes"}],[t,r,a]),pe]);return o==="hex"?s:d.hexToBytes(s)}function lt(e){return e.map(t=>({...t,value:BigInt(t.value)}))}function pt(e){return{...e,balance:e.balance?BigInt(e.balance):void 0,nonce:e.nonce?d.hexToNumber(e.nonce):void 0,storageProof:e.storageProof?lt(e.storageProof):void 0}}async function ht(e,{address:t,blockNumber:r,blockTag:a,storageKeys:o}){const s=a??"latest",i=r!==void 0?d.numberToHex(r):void 0,u=await e.request({method:"eth_getProof",params:[t,o,i||s]});return pt(u)}async function gt(e,{address:t,blockNumber:r,blockTag:a="latest",slot:o}){const s=r!==void 0?d.numberToHex(r):void 0;return await e.request({method:"eth_getStorageAt",params:[t,o,s||a]})}async function O(e,{blockHash:t,blockNumber:r,blockTag:a,hash:o,index:s}){var c,f,p;const i=a||"latest",u=r!==void 0?d.numberToHex(r):void 0;let l=null;if(o?l=await e.request({method:"eth_getTransactionByHash",params:[o]},{dedupe:!0}):t?l=await e.request({method:"eth_getTransactionByBlockHashAndIndex",params:[t,d.numberToHex(s)]},{dedupe:!0}):(u||i)&&(l=await e.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[u||i,d.numberToHex(s)]},{dedupe:!!u})),!l)throw new d.TransactionNotFoundError({blockHash:t,blockNumber:r,blockTag:i,hash:o,index:s});return(((p=(f=(c=e.chain)==null?void 0:c.formatters)==null?void 0:f.transaction)==null?void 0:p.format)||d.formatTransaction)(l)}async function mt(e,{hash:t,transactionReceipt:r}){const[a,o]=await Promise.all([n.getAction(e,n.getBlockNumber,"getBlockNumber")({}),t?n.getAction(e,O,"getTransaction")({hash:t}):void 0]),s=(r==null?void 0:r.blockNumber)||(o==null?void 0:o.blockNumber);return s?a-s+1n:0n}async function z(e,{hash:t}){var o,s,i;const r=await e.request({method:"eth_getTransactionReceipt",params:[t]},{dedupe:!0});if(!r)throw new d.TransactionReceiptNotFoundError({hash:t});return(((i=(s=(o=e.chain)==null?void 0:o.formatters)==null?void 0:s.transactionReceipt)==null?void 0:i.format)||d.formatTransactionReceipt)(r)}async function bt(e,t){var v;const{allowFailure:r=!0,batchSize:a,blockNumber:o,blockTag:s,multicallAddress:i,stateOverride:u}=t,l=t.contracts,h=a??(typeof((v=e.batch)==null?void 0:v.multicall)=="object"&&e.batch.multicall.batchSize||1024);let c=i;if(!c){if(!e.chain)throw new Error("client chain not configured. multicallAddress is required.");c=n.getChainContractAddress({blockNumber:o,chain:e.chain,contract:"multicall3"})}const f=[[]];let p=0,m=0;for(let g=0;g<l.length;g++){const{abi:b,address:R,args:T,functionName:k}=l[g];try{const x=n.encodeFunctionData({abi:b,args:T,functionName:k});m+=(x.length-2)/2,h>0&&m>h&&f[p].length>0&&(p++,m=(x.length-2)/2,f[p]=[]),f[p]=[...f[p],{allowFailure:!0,callData:x,target:R}]}catch(x){const E=n.getContractError(x,{abi:b,address:R,args:T,docsPath:"/docs/contract/multicall",functionName:k});if(!r)throw E;f[p]=[...f[p],{allowFailure:!0,callData:"0x",target:R}]}}const w=await Promise.allSettled(f.map(g=>n.getAction(e,n.readContract,"readContract")({abi:n.multicall3Abi,address:c,args:[g],blockNumber:o,blockTag:s,functionName:"aggregate3",stateOverride:u}))),y=[];for(let g=0;g<w.length;g++){const b=w[g];if(b.status==="rejected"){if(!r)throw b.reason;for(let T=0;T<f[g].length;T++)y.push({status:"failure",error:b.reason,result:void 0});continue}const R=b.value;for(let T=0;T<R.length;T++){const{returnData:k,success:x}=R[T],{callData:E}=f[g][T],{abi:C,address:A,functionName:I,args:N}=l[y.length];try{if(E==="0x")throw new n.AbiDecodingZeroDataError;if(!x)throw new n.RawContractError({data:k});const B=n.decodeFunctionResult({abi:C,args:N,data:k,functionName:I});y.push(r?{result:B,status:"success"}:B)}catch(B){const P=n.getContractError(B,{abi:C,address:A,args:N,docsPath:"/docs/contract/multicall",functionName:I});if(!r)throw P;y.push({error:P,result:void 0,status:"failure"})}}}if(y.length!==l.length)throw new d.BaseError("multicall results mismatch");return y}function yt(e,t){const r=d.isHex(e)?d.toBytes$1(e):e,a=d.isHex(t)?d.toBytes$1(t):t;return K.equalBytes(r,a)}function wt({r:e,s:t,to:r="hex",v:a,yParity:o}){const s=(()=>{if(o===0||o===1)return o;if(a&&(a===27n||a===28n||a>=35n))return a%2n===0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),i=`0x${new K.secp256k1.Signature(d.hexToBigInt(e),d.hexToBigInt(t)).toCompactHex()}${s===0?"1b":"1c"}`;return r==="hex"?i:d.hexToBytes(i)}async function W(e,t){const{address:r,factory:a,factoryData:o,hash:s,signature:i,...u}=t,l=d.isHex(i)?i:typeof i=="object"&&"r"in i&&"s"in i?wt(i):d.bytesToHex(i),h=await(async()=>!a&&!o||dt(l)?l:ft({address:a,data:o,signature:l}))();try{const{data:c}=await n.getAction(e,n.call,"call")({data:n.encodeDeployData({abi:n.universalSignatureValidatorAbi,args:[r,s,h],bytecode:n.universalSignatureValidatorByteCode}),...u});return yt(c??"0x0","0x1")}catch(c){try{if(n.isAddressEqual(d.getAddress(r),await it({hash:s,signature:i})))return!0}catch{}if(c instanceof n.CallExecutionError)return!1;throw c}}async function vt(e,{address:t,message:r,factory:a,factoryData:o,signature:s,...i}){const u=le(r);return W(e,{address:t,factory:a,factoryData:o,hash:u,signature:s,...i})}async function Tt(e,t){const{address:r,factory:a,factoryData:o,signature:s,message:i,primaryType:u,types:l,domain:h,...c}=t,f=et({message:i,primaryType:u,types:l,domain:h});return W(e,{address:r,factory:a,factoryData:o,hash:f,signature:s,...c})}function he(e,{emitOnBegin:t=!1,emitMissed:r=!1,onBlockNumber:a,onError:o,poll:s,pollingInterval:i=e.pollingInterval}){const u=typeof s<"u"?s:!(e.transport.type==="webSocket"||e.transport.type==="fallback"&&e.transport.transports[0].config.type==="webSocket");let l;return u?(()=>{const f=n.stringify(["watchBlockNumber",e.uid,t,r,i]);return n.observe(f,{onBlockNumber:a,onError:o},p=>n.poll(async()=>{var m;try{const w=await n.getAction(e,n.getBlockNumber,"getBlockNumber")({cacheTime:0});if(l){if(w===l)return;if(w-l>1&&r)for(let y=l+1n;y<w;y++)p.onBlockNumber(y,l),l=y}(!l||w>l)&&(p.onBlockNumber(w,l),l=w)}catch(w){(m=p.onError)==null||m.call(p,w)}},{emitOnBegin:t,interval:i}))})():(()=>{const f=n.stringify(["watchBlockNumber",e.uid,t,r]);return n.observe(f,{onBlockNumber:a,onError:o},p=>{let m=!0,w=()=>m=!1;return(async()=>{try{const y=(()=>{if(e.transport.type==="fallback"){const g=e.transport.transports.find(b=>b.config.type==="webSocket");return g?g.value:e.transport}return e.transport})(),{unsubscribe:v}=await y.subscribe({params:["newHeads"],onData(g){var R;if(!m)return;const b=d.hexToBigInt((R=g.result)==null?void 0:R.number);p.onBlockNumber(b,l),l=b},onError(g){var b;(b=p.onError)==null||b.call(p,g)}});w=v,m||w()}catch(y){o==null||o(y)}})(),()=>w()})})()}async function Rt(e,{confirmations:t=1,hash:r,onReplaced:a,pollingInterval:o=e.pollingInterval,retryCount:s=6,retryDelay:i=({count:l})=>~~(1<<l)*200,timeout:u}){const l=n.stringify(["waitForTransactionReceipt",e.uid,r]);let h=0,c,f,p,m=!1;return new Promise((w,y)=>{u&&setTimeout(()=>y(new d.WaitForTransactionReceiptTimeoutError({hash:r})),u);const v=n.observe(l,{onReplaced:a,resolve:w,reject:y},g=>{const b=n.getAction(e,he,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:o,async onBlockNumber(R){const T=x=>{b(),x(),v()};let k=R;if(!m){h>s&&T(()=>g.reject(new d.WaitForTransactionReceiptTimeoutError({hash:r})));try{if(p){if(t>1&&(!p.blockNumber||k-p.blockNumber+1n<t))return;T(()=>g.resolve(p));return}if(c||(m=!0,await $(async()=>{c=await n.getAction(e,O,"getTransaction")({hash:r}),c.blockNumber&&(k=c.blockNumber)},{delay:i,retryCount:s}),m=!1),p=await n.getAction(e,z,"getTransactionReceipt")({hash:r}),t>1&&(!p.blockNumber||k-p.blockNumber+1n<t))return;T(()=>g.resolve(p))}catch(x){if(x instanceof d.TransactionNotFoundError||x instanceof d.TransactionReceiptNotFoundError){if(!c){m=!1;return}try{f=c,m=!0;const E=await $(()=>n.getAction(e,n.getBlock,"getBlock")({blockNumber:k,includeTransactions:!0}),{delay:i,retryCount:s,shouldRetry:({error:I})=>I instanceof n.BlockNotFoundError});m=!1;const C=E.transactions.find(({from:I,nonce:N})=>I===f.from&&N===f.nonce);if(!C||(p=await n.getAction(e,z,"getTransactionReceipt")({hash:C.hash}),t>1&&(!p.blockNumber||k-p.blockNumber+1n<t)))return;let A="replaced";C.to===f.to&&C.value===f.value?A="repriced":C.from===C.to&&C.value===0n&&(A="cancelled"),T(()=>{var I;(I=g.onReplaced)==null||I.call(g,{reason:A,replacedTransaction:f,transaction:C,transactionReceipt:p}),g.resolve(p)})}catch(E){T(()=>g.reject(E))}}else T(()=>g.reject(x))}finally{h++}}}})})})}function Et(e,{blockTag:t="latest",emitMissed:r=!1,emitOnBegin:a=!1,onBlock:o,onError:s,includeTransactions:i,poll:u,pollingInterval:l=e.pollingInterval}){const h=typeof u<"u"?u:!(e.transport.type==="webSocket"||e.transport.type==="fallback"&&e.transport.transports[0].config.type==="webSocket"),c=i??!1;let f;return h?(()=>{const w=n.stringify(["watchBlocks",e.uid,t,r,a,c,l]);return n.observe(w,{onBlock:o,onError:s},y=>n.poll(async()=>{var v;try{const g=await n.getAction(e,n.getBlock,"getBlock")({blockTag:t,includeTransactions:c});if(g.number&&(f!=null&&f.number)){if(g.number===f.number)return;if(g.number-f.number>1&&r)for(let b=(f==null?void 0:f.number)+1n;b<g.number;b++){const R=await n.getAction(e,n.getBlock,"getBlock")({blockNumber:b,includeTransactions:c});y.onBlock(R,f),f=R}}(!(f!=null&&f.number)||t==="pending"&&!(g!=null&&g.number)||g.number&&g.number>f.number)&&(y.onBlock(g,f),f=g)}catch(g){(v=y.onError)==null||v.call(y,g)}},{emitOnBegin:a,interval:l}))})():(()=>{let w=!0,y=()=>w=!1;return(async()=>{try{const v=(()=>{if(e.transport.type==="fallback"){const b=e.transport.transports.find(R=>R.config.type==="webSocket");return b?b.value:e.transport}return e.transport})(),{unsubscribe:g}=await v.subscribe({params:["newHeads"],onData(b){var k,x,E;if(!w)return;const T=(((E=(x=(k=e.chain)==null?void 0:k.formatters)==null?void 0:x.block)==null?void 0:E.format)||d.formatBlock)(b.result);o(T,f),f=T},onError(b){s==null||s(b)}});y=g,w||y()}catch(v){s==null||s(v)}})(),()=>y()})()}function xt(e,{address:t,args:r,batch:a=!0,event:o,events:s,fromBlock:i,onError:u,onLogs:l,poll:h,pollingInterval:c=e.pollingInterval,strict:f}){const p=typeof h<"u"?h:typeof i=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="fallback"&&e.transport.transports[0].config.type==="webSocket"),m=f??!1;return p?(()=>{const v=n.stringify(["watchEvent",t,r,a,e.uid,o,c,i]);return n.observe(v,{onLogs:l,onError:u},g=>{let b;i!==void 0&&(b=i-1n);let R,T=!1;const k=n.poll(async()=>{var x;if(!T){try{R=await n.getAction(e,ae,"createEventFilter")({address:t,args:r,event:o,events:s,strict:m,fromBlock:i})}catch{}T=!0;return}try{let E;if(R)E=await n.getAction(e,n.getFilterChanges,"getFilterChanges")({filter:R});else{const C=await n.getAction(e,n.getBlockNumber,"getBlockNumber")({});b&&b!==C?E=await n.getAction(e,n.getLogs,"getLogs")({address:t,args:r,event:o,events:s,fromBlock:b+1n,toBlock:C}):E=[],b=C}if(E.length===0)return;if(a)g.onLogs(E);else for(const C of E)g.onLogs([C])}catch(E){R&&E instanceof n.InvalidInputRpcError&&(T=!1),(x=g.onError)==null||x.call(g,E)}},{emitOnBegin:!0,interval:c});return async()=>{R&&await n.getAction(e,n.uninstallFilter,"uninstallFilter")({filter:R}),k()}})})():(()=>{let v=!0,g=()=>v=!1;return(async()=>{try{const b=(()=>{if(e.transport.type==="fallback"){const x=e.transport.transports.find(E=>E.config.type==="webSocket");return x?x.value:e.transport}return e.transport})(),R=s??(o?[o]:void 0);let T=[];R&&(T=[R.flatMap(E=>n.encodeEventTopics({abi:[E],eventName:E.name,args:r}))],o&&(T=T[0]));const{unsubscribe:k}=await b.subscribe({params:["logs",{address:t,topics:T}],onData(x){var C;if(!v)return;const E=x.result;try{const{eventName:A,args:I}=n.decodeEventLog({abi:R??[],data:E.data,topics:E.topics,strict:m}),N=d.formatLog(E,{args:I,eventName:A});l([N])}catch(A){let I,N;if(A instanceof n.DecodeLogDataMismatch||A instanceof n.DecodeLogTopicsMismatch){if(f)return;I=A.abiItem.name,N=(C=A.abiItem.inputs)==null?void 0:C.some(P=>!("name"in P&&P.name))}const B=d.formatLog(E,{args:N?[]:{},eventName:I});l([B])}},onError(x){u==null||u(x)}});g=k,v||g()}catch(b){u==null||u(b)}})(),()=>g()})()}function Ct(e,{batch:t=!0,onError:r,onTransactions:a,poll:o,pollingInterval:s=e.pollingInterval}){return(typeof o<"u"?o:e.transport.type!=="webSocket")?(()=>{const h=n.stringify(["watchPendingTransactions",e.uid,t,s]);return n.observe(h,{onTransactions:a,onError:r},c=>{let f;const p=n.poll(async()=>{var m;try{if(!f)try{f=await n.getAction(e,se,"createPendingTransactionFilter")({});return}catch(y){throw p(),y}const w=await n.getAction(e,n.getFilterChanges,"getFilterChanges")({filter:f});if(w.length===0)return;if(t)c.onTransactions(w);else for(const y of w)c.onTransactions([y])}catch(w){(m=c.onError)==null||m.call(c,w)}},{emitOnBegin:!0,interval:s});return async()=>{f&&await n.getAction(e,n.uninstallFilter,"uninstallFilter")({filter:f}),p()}})})():(()=>{let h=!0,c=()=>h=!1;return(async()=>{try{const{unsubscribe:f}=await e.transport.subscribe({params:["newPendingTransactions"],onData(p){if(!h)return;const m=p.result;a([m])},onError(p){r==null||r(p)}});c=f,h||c()}catch(f){r==null||r(f)}})(),()=>c()})()}function At(e){var f,p,m;const{scheme:t,statement:r,...a}=((f=e.match(kt))==null?void 0:f.groups)??{},{chainId:o,expirationTime:s,issuedAt:i,notBefore:u,requestId:l,...h}=((p=e.match(It))==null?void 0:p.groups)??{},c=(m=e.split("Resources:")[1])==null?void 0:m.split(`
3
+ - `).slice(1);return{...a,...h,...o?{chainId:Number(o)}:{},...s?{expirationTime:new Date(s)}:{},...i?{issuedAt:new Date(i)}:{},...u?{notBefore:new Date(u)}:{},...l?{requestId:l}:{},...c?{resources:c}:{},...t?{scheme:t}:{},...r?{statement:r}:{}}}const kt=/^(?:(?<scheme>[a-zA-Z][a-zA-Z0-9+-.]*):\/\/)?(?<domain>[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\n)(?<address>0x[a-fA-F0-9]{40})\n\n(?:(?<statement>.*)\n\n)?/,It=/(?:URI: (?<uri>.+))\n(?:Version: (?<version>.+))\n(?:Chain ID: (?<chainId>\d+))\n(?:Nonce: (?<nonce>[a-zA-Z0-9]+))\n(?:Issued At: (?<issuedAt>.+))(?:\nExpiration Time: (?<expirationTime>.+))?(?:\nNot Before: (?<notBefore>.+))?(?:\nRequest ID: (?<requestId>.+))?/;function Nt(e){const{address:t,domain:r,message:a,nonce:o,scheme:s,time:i=new Date}=e;if(r&&a.domain!==r||o&&a.nonce!==o||s&&a.scheme!==s||a.expirationTime&&i>=a.expirationTime||a.notBefore&&i<a.notBefore)return!1;try{if(!a.address||t&&!n.isAddressEqual(a.address,t))return!1}catch{return!1}return!0}async function Bt(e,t){const{address:r,domain:a,message:o,nonce:s,scheme:i,signature:u,time:l=new Date,...h}=t,c=At(o);if(!c.address||!Nt({address:r,domain:a,message:c,nonce:s,scheme:i,time:l}))return!1;const p=le(o);return W(e,{address:c.address,hash:p,signature:u,...h})}function Pt(e){return{call:t=>n.call(e,t),createBlockFilter:()=>We(e),createContractEventFilter:t=>n.createContractEventFilter(e,t),createEventFilter:t=>ae(e,t),createPendingTransactionFilter:()=>se(e),estimateContractGas:t=>n.estimateContractGas(e,t),estimateGas:t=>n.estimateGas(e,t),getBalance:t=>Ge(e,t),getBlobBaseFee:()=>Ze(e),getBlock:t=>n.getBlock(e,t),getBlockNumber:t=>n.getBlockNumber(e,t),getBlockTransactionCount:t=>Je(e,t),getBytecode:t=>J(e,t),getChainId:()=>n.getChainId(e),getCode:t=>J(e,t),getContractEvents:t=>n.getContractEvents(e,t),getEip712Domain:t=>me(e,t),getEnsAddress:t=>Ne(e,t),getEnsAvatar:t=>Le(e,t),getEnsName:t=>je(e,t),getEnsResolver:t=>Oe(e,t),getEnsText:t=>ne(e,t),getFeeHistory:t=>Ke(e,t),estimateFeesPerGas:t=>n.estimateFeesPerGas(e,t),getFilterChanges:t=>n.getFilterChanges(e,t),getFilterLogs:t=>Qe(e,t),getGasPrice:()=>n.getGasPrice(e),getLogs:t=>n.getLogs(e,t),getProof:t=>ht(e,t),estimateMaxPriorityFeePerGas:t=>n.estimateMaxPriorityFeePerGas(e,t),getStorageAt:t=>gt(e,t),getTransaction:t=>O(e,t),getTransactionConfirmations:t=>mt(e,t),getTransactionCount:t=>n.getTransactionCount(e,t),getTransactionReceipt:t=>z(e,t),multicall:t=>bt(e,t),prepareTransactionRequest:t=>n.prepareTransactionRequest(e,t),readContract:t=>n.readContract(e,t),sendRawTransaction:t=>n.sendRawTransaction(e,t),simulateContract:t=>n.simulateContract(e,t),verifyMessage:t=>vt(e,t),verifySiweMessage:t=>Bt(e,t),verifyTypedData:t=>Tt(e,t),uninstallFilter:t=>n.uninstallFilter(e,t),waitForTransactionReceipt:t=>Rt(e,t),watchBlocks:t=>Et(e,t),watchBlockNumber:t=>he(e,t),watchContractEvent:t=>n.watchContractEvent(e,t),watchEvent:t=>xt(e,t),watchPendingTransactions:t=>Ct(e,t)}}function qt(e){const{key:t="public",name:r="Public Client"}=e;return X({...e,key:t,name:r,type:"publicClient"}).extend(Pt)}function Ft(e,t){const{abi:r,args:a,bytecode:o,...s}=t,i=n.encodeDeployData({abi:r,args:a,bytecode:o});return n.sendTransaction(e,{...s,data:i})}async function Dt(e){var r;return((r=e.account)==null?void 0:r.type)==="local"?[e.account.address]:(await e.request({method:"eth_accounts"},{dedupe:!0})).map(a=>d.checksumAddress(a))}async function Ht(e){return await e.request({method:"wallet_getPermissions"},{dedupe:!0})}async function St(e){return(await e.request({method:"eth_requestAccounts"},{dedupe:!0,retryCount:0})).map(r=>d.getAddress(r))}async function _t(e,t){return e.request({method:"wallet_requestPermissions",params:[t]},{retryCount:0})}async function Mt(e,{account:t=e.account,message:r}){if(!t)throw new n.AccountNotFoundError({docsPath:"/docs/actions/wallet/signMessage"});const a=n.parseAccount(t);if(a.signMessage)return a.signMessage({message:r});const o=typeof r=="string"?d.stringToHex(r):r.raw instanceof Uint8Array?d.toHex(r.raw):r.raw;return e.request({method:"personal_sign",params:[o,a.address]},{retryCount:0})}async function $t(e,t){var h,c,f,p;const{account:r=e.account,chain:a=e.chain,...o}=t;if(!r)throw new n.AccountNotFoundError({docsPath:"/docs/actions/wallet/signTransaction"});const s=n.parseAccount(r);n.assertRequest({account:s,...t});const i=await n.getAction(e,n.getChainId,"getChainId")({});a!==null&&n.assertCurrentChain({currentChainId:i,chain:a});const u=(a==null?void 0:a.formatters)||((h=e.chain)==null?void 0:h.formatters),l=((c=u==null?void 0:u.transactionRequest)==null?void 0:c.format)||n.formatTransactionRequest;return s.signTransaction?s.signTransaction({...o,chainId:i},{serializer:(p=(f=e.chain)==null?void 0:f.serializers)==null?void 0:p.transaction}):await e.request({method:"eth_signTransaction",params:[{...l(o),chainId:d.numberToHex(i),from:s.address}]},{retryCount:0})}async function zt(e,t){const{account:r=e.account,domain:a,message:o,primaryType:s}=t;if(!r)throw new n.AccountNotFoundError({docsPath:"/docs/actions/wallet/signTypedData"});const i=n.parseAccount(r),u={EIP712Domain:fe({domain:a}),...t.types};if(de({domain:a,message:o,primaryType:s,types:u}),i.signTypedData)return i.signTypedData({domain:a,message:o,primaryType:s,types:u});const l=at({domain:a,message:o,primaryType:s,types:u});return e.request({method:"eth_signTypedData_v4",params:[i.address,l]},{retryCount:0})}async function Ut(e,{id:t}){await e.request({method:"wallet_switchEthereumChain",params:[{chainId:d.numberToHex(t)}]},{retryCount:0})}async function Lt(e,t){return await e.request({method:"wallet_watchAsset",params:t},{retryCount:0})}function jt(e){return{addChain:t=>ye(e,t),deployContract:t=>Ft(e,t),getAddresses:()=>Dt(e),getChainId:()=>n.getChainId(e),getPermissions:()=>Ht(e),prepareTransactionRequest:t=>n.prepareTransactionRequest(e,t),requestAddresses:()=>St(e),requestPermissions:t=>_t(e,t),sendRawTransaction:t=>n.sendRawTransaction(e,t),sendTransaction:t=>n.sendTransaction(e,t),signMessage:t=>Mt(e,t),signTransaction:t=>$t(e,t),signTypedData:t=>zt(e,t),switchChain:t=>Ut(e,t),watchAsset:t=>Lt(e,t),writeContract:t=>n.writeContract(e,t)}}function Ot(e){const{key:t="wallet",name:r="Wallet Client",transport:a}=e;return X({...e,key:t,name:r,transport:a,type:"walletClient"}).extend(jt)}exports.createPublicClient=qt;exports.createTransport=Y;exports.createWalletClient=Ot;exports.http=Ae;
4
+ //# sourceMappingURL=createWalletClient-Bmopj8MM.cjs.map