@pufferfinance/puffer-sdk 1.4.2 → 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-ZoYOXsGl.js → ccip-D4klNwCt.js} +28 -27
  12. package/dist/{ccip-ZoYOXsGl.js.map → ccip-D4klNwCt.js.map} +1 -1
  13. package/dist/ccip-DLDqFodf.cjs +2 -0
  14. package/dist/{ccip-Dv116NSL.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-Dv116NSL.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-69HiNG3t.js +0 -16001
  200. package/dist/main-69HiNG3t.js.map +0 -1
  201. package/dist/main-IyjWcdJ1.cjs +0 -41
  202. package/dist/main-IyjWcdJ1.cjs.map +0 -1
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("../constants-BvU-JhfL.cjs"),d=require("../createWalletClient-Bmopj8MM.cjs"),_=require("../writeContract-BBHpAss8.cjs");function S(n,e={}){const{key:o="custom",name:h="Custom Provider",retryDelay:l}=e;return({retryCount:u})=>d.createTransport({key:o,name:h,request:n.request.bind(n),retryCount:e.retryCount??u,retryDelay:l,type:"custom"})}function M(n,e={}){const{key:o="fallback",name:h="Fallback",rank:l=!1,retryCount:u,retryDelay:T}=e;return({chain:f,pollingInterval:k=4e3,timeout:c,...b})=>{let i=n,C=()=>{};const g=d.createTransport({key:o,name:h,async request({method:t,params:r}){const p=async(y=0)=>{const a=i[y]({...b,chain:f,retryCount:0,timeout:c});try{const s=await a.request({method:t,params:r});return C({method:t,params:r,response:s,transport:a,status:"success"}),s}catch(s){if(C({error:s,method:t,params:r,transport:a,status:"error"}),P(s)||y===i.length-1)throw s;return p(y+1)}};return p()},retryCount:u,retryDelay:T,type:"fallback"},{onResponse:t=>C=t,transports:i.map(t=>t({chain:f,retryCount:0}))});if(l){const t=typeof l=="object"?l:{};W({chain:f,interval:t.interval??k,onTransports:r=>i=r,sampleCount:t.sampleCount,timeout:t.timeout,transports:i,weights:t.weights})}return g}}function P(n){return"code"in n&&typeof n.code=="number"&&(n.code===_.TransactionRejectedRpcError.code||n.code===_.UserRejectedRequestError.code||n.code===5e3)}function W({chain:n,interval:e=4e3,onTransports:o,sampleCount:h=10,timeout:l=1e3,transports:u,weights:T={}}){const{stability:f=.7,latency:k=.3}=T,c=[],b=async()=>{const i=await Promise.all(u.map(async t=>{const r=t({chain:n,retryCount:0,timeout:l}),p=Date.now();let y,a;try{await r.request({method:"net_listening"}),a=1}catch{a=0}finally{y=Date.now()}return{latency:y-p,success:a}}));c.push(i),c.length>h&&c.shift();const C=Math.max(...c.map(t=>Math.max(...t.map(({latency:r})=>r)))),g=u.map((t,r)=>{const p=c.map(m=>m[r].latency),a=1-p.reduce((m,q)=>m+q,0)/p.length/C,s=c.map(m=>m[r].success),x=s.reduce((m,q)=>m+q,0)/s.length;return x===0?[0,r]:[k*a+f*x,r]}).sort((t,r)=>r[0]-t[0]);o(g.map(([,t])=>u[t])),await _.wait(e),b()};b()}class w{static createPublicClient(e){return d.createPublicClient({chain:R.VIEM_CHAINS[e.chain],transport:w.extractTransportConfig(e)})}static createWalletClient(e){return d.createWalletClient({chain:R.VIEM_CHAINS[e.chain],transport:w.extractTransportConfig(e)})}static extractTransportConfig(e){return"rpcUrls"in e?M(e.rpcUrls.map(o=>d.http(o))):S(e.provider,e.config)}}exports.PufferClientHelpers=w;
2
+ //# sourceMappingURL=puffer-client-helpers.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puffer-client-helpers.cjs","sources":["../../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/clients/transports/fallback.js","../../lib/api/puffer-client-helpers.ts"],"sourcesContent":["import { createTransport, } from './createTransport.js';\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom(provider, config = {}) {\n const { key = 'custom', name = 'Custom Provider', retryDelay } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n });\n}\n//# sourceMappingURL=custom.js.map","import { TransactionRejectedRpcError, UserRejectedRequestError, } from '../../errors/rpc.js';\nimport { wait } from '../../utils/wait.js';\nimport { createTransport, } from './createTransport.js';\nexport function fallback(transports_, config = {}) {\n const { key = 'fallback', name = 'Fallback', rank = false, retryCount, retryDelay, } = config;\n return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {\n let transports = transports_;\n let onResponse = () => { };\n const transport = createTransport({\n key,\n name,\n async request({ method, params }) {\n const fetch = async (i = 0) => {\n const transport = transports[i]({\n ...rest,\n chain,\n retryCount: 0,\n timeout,\n });\n try {\n const response = await transport.request({\n method,\n params,\n });\n onResponse({\n method,\n params: params,\n response,\n transport,\n status: 'success',\n });\n return response;\n }\n catch (err) {\n onResponse({\n error: err,\n method,\n params: params,\n transport,\n status: 'error',\n });\n if (shouldThrow(err))\n throw err;\n // If we've reached the end of the fallbacks, throw the error.\n if (i === transports.length - 1)\n throw err;\n // Otherwise, try the next fallback.\n return fetch(i + 1);\n }\n };\n return fetch();\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n }, {\n onResponse: (fn) => (onResponse = fn),\n transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n });\n if (rank) {\n const rankOptions = (typeof rank === 'object' ? rank : {});\n rankTransports({\n chain,\n interval: rankOptions.interval ?? pollingInterval,\n onTransports: (transports_) => (transports = transports_),\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n });\n }\n return transport;\n });\n}\nfunction shouldThrow(error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === TransactionRejectedRpcError.code ||\n error.code === UserRejectedRequestError.code ||\n error.code === 5000 // CAIP UserRejectedRequestError\n )\n return true;\n }\n return false;\n}\n/** @internal */\nexport function rankTransports({ chain, interval = 4_000, onTransports, sampleCount = 10, timeout = 1_000, transports, weights = {}, }) {\n const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } = weights;\n const samples = [];\n const rankTransports_ = async () => {\n // 1. Take a sample from each Transport.\n const sample = await Promise.all(transports.map(async (transport) => {\n const transport_ = transport({ chain, retryCount: 0, timeout });\n const start = Date.now();\n let end;\n let success;\n try {\n await transport_.request({ method: 'net_listening' });\n success = 1;\n }\n catch {\n success = 0;\n }\n finally {\n end = Date.now();\n }\n const latency = end - start;\n return { latency, success };\n }));\n // 2. Store the sample. If we have more than `sampleCount` samples, remove\n // the oldest sample.\n samples.push(sample);\n if (samples.length > sampleCount)\n samples.shift();\n // 3. Calculate the max latency from samples.\n const maxLatency = Math.max(...samples.map((sample) => Math.max(...sample.map(({ latency }) => latency))));\n // 4. Calculate the score for each Transport.\n const scores = transports\n .map((_, i) => {\n const latencies = samples.map((sample) => sample[i].latency);\n const meanLatency = latencies.reduce((acc, latency) => acc + latency, 0) /\n latencies.length;\n const latencyScore = 1 - meanLatency / maxLatency;\n const successes = samples.map((sample) => sample[i].success);\n const stabilityScore = successes.reduce((acc, success) => acc + success, 0) /\n successes.length;\n if (stabilityScore === 0)\n return [0, i];\n return [\n latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n i,\n ];\n })\n .sort((a, b) => b[0] - a[0]);\n // 5. Sort the Transports by score.\n onTransports(scores.map(([, i]) => transports[i]));\n // 6. Wait, and then rank again.\n await wait(interval);\n rankTransports_();\n };\n rankTransports_();\n}\n//# sourceMappingURL=fallback.js.map","import {\n CustomTransportConfig,\n createPublicClient as createPublicClientViem,\n createWalletClient as createWalletClientViem,\n http,\n fallback,\n custom,\n Transport,\n PublicClient,\n WalletClient,\n} from 'viem';\nimport { Chain, VIEM_CHAINS } from '../chains/constants';\nimport { TransportProvider } from '../utils/types';\n\nexport type ClientConfig = {\n chain: Chain;\n} & (\n | { rpcUrls: string[] }\n | { provider: TransportProvider; config?: CustomTransportConfig }\n);\n\n/**\n * Helper methods for the main `PufferClient`.\n */\nexport class PufferClientHelpers {\n /**\n * Helper method for creating a public client based on the\n * configuration\n *\n * @param config Configuration for the public client.\n * @returns The public client created with viem.\n */\n public static createPublicClient(config: ClientConfig): PublicClient {\n return createPublicClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n /**\n * Helper method for creating a wallet client based on the\n * configuration\n *\n * @param config Configuration for the wallet client.\n * @returns The wallet client created with viem.\n */\n public static createWalletClient(config: ClientConfig): WalletClient {\n return createWalletClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n private static extractTransportConfig(config: ClientConfig): Transport {\n if ('rpcUrls' in config) {\n return fallback(config.rpcUrls.map((url) => http(url)));\n } else {\n return custom(config.provider, config.config);\n }\n }\n}\n"],"names":["custom","provider","config","key","name","retryDelay","defaultRetryCount","createTransport","fallback","transports_","rank","retryCount","chain","pollingInterval","timeout","rest","transports","onResponse","transport","method","params","fetch","i","response","err","shouldThrow","fn","rankOptions","rankTransports","error","TransactionRejectedRpcError","UserRejectedRequestError","interval","onTransports","sampleCount","weights","stabilityWeight","latencyWeight","samples","rankTransports_","sample","transport_","start","end","success","maxLatency","latency","scores","_","latencies","latencyScore","acc","successes","stabilityScore","a","b","wait","PufferClientHelpers","createPublicClientViem","VIEM_CHAINS","createWalletClientViem","url","http"],"mappings":"wNAIO,SAASA,EAAOC,EAAUC,EAAS,GAAI,CAC1C,KAAM,CAAE,IAAAC,EAAM,SAAU,KAAAC,EAAO,kBAAmB,WAAAC,CAAY,EAAGH,EACjE,MAAO,CAAC,CAAE,WAAYI,CAAiB,IAAOC,EAAAA,gBAAgB,CAC1D,IAAAJ,EACA,KAAAC,EACA,QAASH,EAAS,QAAQ,KAAKA,CAAQ,EACvC,WAAYC,EAAO,YAAcI,EACjC,WAAAD,EACA,KAAM,QACd,CAAK,CACL,CCXO,SAASG,EAASC,EAAaP,EAAS,GAAI,CAC/C,KAAM,CAAE,IAAAC,EAAM,WAAY,KAAAC,EAAO,WAAY,KAAAM,EAAO,GAAO,WAAAC,EAAY,WAAAN,CAAa,EAAGH,EACvF,MAAQ,CAAC,CAAE,MAAAU,EAAO,gBAAAC,EAAkB,IAAO,QAAAC,EAAS,GAAGC,KAAW,CAC9D,IAAIC,EAAaP,EACbQ,EAAa,IAAM,GACvB,MAAMC,EAAYX,EAAAA,gBAAgB,CAC9B,IAAAJ,EACA,KAAAC,EACA,MAAM,QAAQ,CAAE,OAAAe,EAAQ,OAAAC,GAAU,CAC9B,MAAMC,EAAQ,MAAOC,EAAI,IAAM,CAC3B,MAAMJ,EAAYF,EAAWM,CAAC,EAAE,CAC5B,GAAGP,EACH,MAAAH,EACA,WAAY,EACZ,QAAAE,CACxB,CAAqB,EACD,GAAI,CACA,MAAMS,EAAW,MAAML,EAAU,QAAQ,CACrC,OAAAC,EACA,OAAAC,CAC5B,CAAyB,EACD,OAAAH,EAAW,CACP,OAAAE,EACA,OAAQC,EACR,SAAAG,EACA,UAAAL,EACA,OAAQ,SACpC,CAAyB,EACMK,CACV,OACMC,EAAK,CAWR,GAVAP,EAAW,CACP,MAAOO,EACP,OAAAL,EACA,OAAQC,EACR,UAAAF,EACA,OAAQ,OACpC,CAAyB,EACGO,EAAYD,CAAG,GAGfF,IAAMN,EAAW,OAAS,EAC1B,MAAMQ,EAEV,OAAOH,EAAMC,EAAI,CAAC,CACrB,CACrB,EACgB,OAAOD,EAAK,CACf,EACD,WAAAV,EACA,WAAAN,EACA,KAAM,UAClB,EAAW,CACC,WAAaqB,GAAQT,EAAaS,EAClC,WAAYV,EAAW,IAAKU,GAAOA,EAAG,CAAE,MAAAd,EAAO,WAAY,CAAC,CAAE,CAAC,CAC3E,CAAS,EACD,GAAIF,EAAM,CACN,MAAMiB,EAAe,OAAOjB,GAAS,SAAWA,EAAO,CAAE,EACzDkB,EAAe,CACX,MAAAhB,EACA,SAAUe,EAAY,UAAYd,EAClC,aAAeJ,GAAiBO,EAAaP,EAC7C,YAAakB,EAAY,YACzB,QAASA,EAAY,QACrB,WAAAX,EACA,QAASW,EAAY,OACrC,CAAa,CACJ,CACD,OAAOT,CACf,CACA,CACA,SAASO,EAAYI,EAAO,CACxB,MAAI,SAAUA,GAAS,OAAOA,EAAM,MAAS,WACrCA,EAAM,OAASC,EAAAA,4BAA4B,MAC3CD,EAAM,OAASE,EAAAA,yBAAyB,MACxCF,EAAM,OAAS,IAK3B,CAEO,SAASD,EAAe,CAAE,MAAAhB,EAAO,SAAAoB,EAAW,IAAO,aAAAC,EAAc,YAAAC,EAAc,GAAI,QAAApB,EAAU,IAAO,WAAAE,EAAY,QAAAmB,EAAU,CAAE,CAAA,EAAK,CACpI,KAAM,CAAE,UAAWC,EAAkB,GAAK,QAASC,EAAgB,EAAK,EAAGF,EACrEG,EAAU,CAAA,EACVC,EAAkB,SAAY,CAEhC,MAAMC,EAAS,MAAM,QAAQ,IAAIxB,EAAW,IAAI,MAAOE,GAAc,CACjE,MAAMuB,EAAavB,EAAU,CAAE,MAAAN,EAAO,WAAY,EAAG,QAAAE,CAAO,CAAE,EACxD4B,EAAQ,KAAK,MACnB,IAAIC,EACAC,EACJ,GAAI,CACA,MAAMH,EAAW,QAAQ,CAAE,OAAQ,eAAiB,CAAA,EACpDG,EAAU,CACb,MACK,CACFA,EAAU,CACb,QACO,CACJD,EAAM,KAAK,KACd,CAED,MAAO,CAAE,QADOA,EAAMD,EACJ,QAAAE,EACrB,CAAA,CAAC,EAGFN,EAAQ,KAAKE,CAAM,EACfF,EAAQ,OAASJ,GACjBI,EAAQ,MAAK,EAEjB,MAAMO,EAAa,KAAK,IAAI,GAAGP,EAAQ,IAAKE,GAAW,KAAK,IAAI,GAAGA,EAAO,IAAI,CAAC,CAAE,QAAAM,CAAO,IAAOA,CAAO,CAAC,CAAC,CAAC,EAEnGC,EAAS/B,EACV,IAAI,CAACgC,EAAG1B,IAAM,CACf,MAAM2B,EAAYX,EAAQ,IAAKE,GAAWA,EAAOlB,CAAC,EAAE,OAAO,EAGrD4B,EAAe,EAFDD,EAAU,OAAO,CAACE,EAAKL,IAAYK,EAAML,EAAS,CAAC,EACnEG,EAAU,OACyBJ,EACjCO,EAAYd,EAAQ,IAAKE,GAAWA,EAAOlB,CAAC,EAAE,OAAO,EACrD+B,EAAiBD,EAAU,OAAO,CAACD,EAAKP,IAAYO,EAAMP,EAAS,CAAC,EACtEQ,EAAU,OACd,OAAIC,IAAmB,EACZ,CAAC,EAAG/B,CAAC,EACT,CACHe,EAAgBa,EAAed,EAAkBiB,EACjD/B,CAChB,CACA,CAAS,EACI,KAAK,CAACgC,EAAGC,IAAMA,EAAE,CAAC,EAAID,EAAE,CAAC,CAAC,EAE/BrB,EAAac,EAAO,IAAI,CAAC,CAAA,CAAGzB,CAAC,IAAMN,EAAWM,CAAC,CAAC,CAAC,EAEjD,MAAMkC,EAAAA,KAAKxB,CAAQ,EACnBO,GACR,EACIA,GACJ,CCpHO,MAAMkB,CAAoB,CAQ/B,OAAc,mBAAmBvD,EAAoC,CACnE,OAAOwD,qBAAuB,CAC5B,MAAOC,EAAAA,YAAYzD,EAAO,KAAK,EAC/B,UAAWuD,EAAoB,uBAAuBvD,CAAM,CAAA,CAC7D,CACH,CASA,OAAc,mBAAmBA,EAAoC,CACnE,OAAO0D,qBAAuB,CAC5B,MAAOD,EAAAA,YAAYzD,EAAO,KAAK,EAC/B,UAAWuD,EAAoB,uBAAuBvD,CAAM,CAAA,CAC7D,CACH,CAEA,OAAe,uBAAuBA,EAAiC,CACrE,MAAI,YAAaA,EACRM,EAASN,EAAO,QAAQ,IAAK2D,GAAQC,EAAA,KAAKD,CAAG,CAAC,CAAC,EAE/C7D,EAAOE,EAAO,SAAUA,EAAO,MAAM,CAEhD,CACF","x_google_ignoreList":[0,1]}
@@ -1,7 +1,6 @@
1
1
  import { CustomTransportConfig, PublicClient, WalletClient } from 'viem';
2
2
  import { Chain } from '../chains/constants';
3
3
  import { TransportProvider } from '../utils/types';
4
-
5
4
  export type ClientConfig = {
6
5
  chain: Chain;
7
6
  } & ({
@@ -0,0 +1,142 @@
1
+ import { V as q } from "../constants-rWWWhxR_.js";
2
+ import { b as R, a as _, c as D, h as U } from "../createWalletClient-DKcpswHR.js";
3
+ import { T as W, U as j, k as v } from "../writeContract-RluxM31W.js";
4
+ function E(n, e = {}) {
5
+ const { key: o = "custom", name: h = "Custom Provider", retryDelay: l } = e;
6
+ return ({ retryCount: u }) => R({
7
+ key: o,
8
+ name: h,
9
+ request: n.request.bind(n),
10
+ retryCount: e.retryCount ?? u,
11
+ retryDelay: l,
12
+ type: "custom"
13
+ });
14
+ }
15
+ function L(n, e = {}) {
16
+ const { key: o = "fallback", name: h = "Fallback", rank: l = !1, retryCount: u, retryDelay: b } = e;
17
+ return ({ chain: f, pollingInterval: w = 4e3, timeout: c, ...d }) => {
18
+ let i = n, C = () => {
19
+ };
20
+ const k = R({
21
+ key: o,
22
+ name: h,
23
+ async request({ method: t, params: r }) {
24
+ const p = async (y = 0) => {
25
+ const s = i[y]({
26
+ ...d,
27
+ chain: f,
28
+ retryCount: 0,
29
+ timeout: c
30
+ });
31
+ try {
32
+ const a = await s.request({
33
+ method: t,
34
+ params: r
35
+ });
36
+ return C({
37
+ method: t,
38
+ params: r,
39
+ response: a,
40
+ transport: s,
41
+ status: "success"
42
+ }), a;
43
+ } catch (a) {
44
+ if (C({
45
+ error: a,
46
+ method: t,
47
+ params: r,
48
+ transport: s,
49
+ status: "error"
50
+ }), M(a) || y === i.length - 1)
51
+ throw a;
52
+ return p(y + 1);
53
+ }
54
+ };
55
+ return p();
56
+ },
57
+ retryCount: u,
58
+ retryDelay: b,
59
+ type: "fallback"
60
+ }, {
61
+ onResponse: (t) => C = t,
62
+ transports: i.map((t) => t({ chain: f, retryCount: 0 }))
63
+ });
64
+ if (l) {
65
+ const t = typeof l == "object" ? l : {};
66
+ P({
67
+ chain: f,
68
+ interval: t.interval ?? w,
69
+ onTransports: (r) => i = r,
70
+ sampleCount: t.sampleCount,
71
+ timeout: t.timeout,
72
+ transports: i,
73
+ weights: t.weights
74
+ });
75
+ }
76
+ return k;
77
+ };
78
+ }
79
+ function M(n) {
80
+ return "code" in n && typeof n.code == "number" && (n.code === W.code || n.code === j.code || n.code === 5e3);
81
+ }
82
+ function P({ chain: n, interval: e = 4e3, onTransports: o, sampleCount: h = 10, timeout: l = 1e3, transports: u, weights: b = {} }) {
83
+ const { stability: f = 0.7, latency: w = 0.3 } = b, c = [], d = async () => {
84
+ const i = await Promise.all(u.map(async (t) => {
85
+ const r = t({ chain: n, retryCount: 0, timeout: l }), p = Date.now();
86
+ let y, s;
87
+ try {
88
+ await r.request({ method: "net_listening" }), s = 1;
89
+ } catch {
90
+ s = 0;
91
+ } finally {
92
+ y = Date.now();
93
+ }
94
+ return { latency: y - p, success: s };
95
+ }));
96
+ c.push(i), c.length > h && c.shift();
97
+ const C = Math.max(...c.map((t) => Math.max(...t.map(({ latency: r }) => r)))), k = u.map((t, r) => {
98
+ const p = c.map((m) => m[r].latency), s = 1 - p.reduce((m, T) => m + T, 0) / p.length / C, a = c.map((m) => m[r].success), x = a.reduce((m, T) => m + T, 0) / a.length;
99
+ return x === 0 ? [0, r] : [
100
+ w * s + f * x,
101
+ r
102
+ ];
103
+ }).sort((t, r) => r[0] - t[0]);
104
+ o(k.map(([, t]) => u[t])), await v(e), d();
105
+ };
106
+ d();
107
+ }
108
+ class g {
109
+ /**
110
+ * Helper method for creating a public client based on the
111
+ * configuration
112
+ *
113
+ * @param config Configuration for the public client.
114
+ * @returns The public client created with viem.
115
+ */
116
+ static createPublicClient(e) {
117
+ return _({
118
+ chain: q[e.chain],
119
+ transport: g.extractTransportConfig(e)
120
+ });
121
+ }
122
+ /**
123
+ * Helper method for creating a wallet client based on the
124
+ * configuration
125
+ *
126
+ * @param config Configuration for the wallet client.
127
+ * @returns The wallet client created with viem.
128
+ */
129
+ static createWalletClient(e) {
130
+ return D({
131
+ chain: q[e.chain],
132
+ transport: g.extractTransportConfig(e)
133
+ });
134
+ }
135
+ static extractTransportConfig(e) {
136
+ return "rpcUrls" in e ? L(e.rpcUrls.map((o) => U(o))) : E(e.provider, e.config);
137
+ }
138
+ }
139
+ export {
140
+ g as PufferClientHelpers
141
+ };
142
+ //# sourceMappingURL=puffer-client-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puffer-client-helpers.js","sources":["../../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/clients/transports/fallback.js","../../lib/api/puffer-client-helpers.ts"],"sourcesContent":["import { createTransport, } from './createTransport.js';\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom(provider, config = {}) {\n const { key = 'custom', name = 'Custom Provider', retryDelay } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n });\n}\n//# sourceMappingURL=custom.js.map","import { TransactionRejectedRpcError, UserRejectedRequestError, } from '../../errors/rpc.js';\nimport { wait } from '../../utils/wait.js';\nimport { createTransport, } from './createTransport.js';\nexport function fallback(transports_, config = {}) {\n const { key = 'fallback', name = 'Fallback', rank = false, retryCount, retryDelay, } = config;\n return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {\n let transports = transports_;\n let onResponse = () => { };\n const transport = createTransport({\n key,\n name,\n async request({ method, params }) {\n const fetch = async (i = 0) => {\n const transport = transports[i]({\n ...rest,\n chain,\n retryCount: 0,\n timeout,\n });\n try {\n const response = await transport.request({\n method,\n params,\n });\n onResponse({\n method,\n params: params,\n response,\n transport,\n status: 'success',\n });\n return response;\n }\n catch (err) {\n onResponse({\n error: err,\n method,\n params: params,\n transport,\n status: 'error',\n });\n if (shouldThrow(err))\n throw err;\n // If we've reached the end of the fallbacks, throw the error.\n if (i === transports.length - 1)\n throw err;\n // Otherwise, try the next fallback.\n return fetch(i + 1);\n }\n };\n return fetch();\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n }, {\n onResponse: (fn) => (onResponse = fn),\n transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n });\n if (rank) {\n const rankOptions = (typeof rank === 'object' ? rank : {});\n rankTransports({\n chain,\n interval: rankOptions.interval ?? pollingInterval,\n onTransports: (transports_) => (transports = transports_),\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n });\n }\n return transport;\n });\n}\nfunction shouldThrow(error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === TransactionRejectedRpcError.code ||\n error.code === UserRejectedRequestError.code ||\n error.code === 5000 // CAIP UserRejectedRequestError\n )\n return true;\n }\n return false;\n}\n/** @internal */\nexport function rankTransports({ chain, interval = 4_000, onTransports, sampleCount = 10, timeout = 1_000, transports, weights = {}, }) {\n const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } = weights;\n const samples = [];\n const rankTransports_ = async () => {\n // 1. Take a sample from each Transport.\n const sample = await Promise.all(transports.map(async (transport) => {\n const transport_ = transport({ chain, retryCount: 0, timeout });\n const start = Date.now();\n let end;\n let success;\n try {\n await transport_.request({ method: 'net_listening' });\n success = 1;\n }\n catch {\n success = 0;\n }\n finally {\n end = Date.now();\n }\n const latency = end - start;\n return { latency, success };\n }));\n // 2. Store the sample. If we have more than `sampleCount` samples, remove\n // the oldest sample.\n samples.push(sample);\n if (samples.length > sampleCount)\n samples.shift();\n // 3. Calculate the max latency from samples.\n const maxLatency = Math.max(...samples.map((sample) => Math.max(...sample.map(({ latency }) => latency))));\n // 4. Calculate the score for each Transport.\n const scores = transports\n .map((_, i) => {\n const latencies = samples.map((sample) => sample[i].latency);\n const meanLatency = latencies.reduce((acc, latency) => acc + latency, 0) /\n latencies.length;\n const latencyScore = 1 - meanLatency / maxLatency;\n const successes = samples.map((sample) => sample[i].success);\n const stabilityScore = successes.reduce((acc, success) => acc + success, 0) /\n successes.length;\n if (stabilityScore === 0)\n return [0, i];\n return [\n latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n i,\n ];\n })\n .sort((a, b) => b[0] - a[0]);\n // 5. Sort the Transports by score.\n onTransports(scores.map(([, i]) => transports[i]));\n // 6. Wait, and then rank again.\n await wait(interval);\n rankTransports_();\n };\n rankTransports_();\n}\n//# sourceMappingURL=fallback.js.map","import {\n CustomTransportConfig,\n createPublicClient as createPublicClientViem,\n createWalletClient as createWalletClientViem,\n http,\n fallback,\n custom,\n Transport,\n PublicClient,\n WalletClient,\n} from 'viem';\nimport { Chain, VIEM_CHAINS } from '../chains/constants';\nimport { TransportProvider } from '../utils/types';\n\nexport type ClientConfig = {\n chain: Chain;\n} & (\n | { rpcUrls: string[] }\n | { provider: TransportProvider; config?: CustomTransportConfig }\n);\n\n/**\n * Helper methods for the main `PufferClient`.\n */\nexport class PufferClientHelpers {\n /**\n * Helper method for creating a public client based on the\n * configuration\n *\n * @param config Configuration for the public client.\n * @returns The public client created with viem.\n */\n public static createPublicClient(config: ClientConfig): PublicClient {\n return createPublicClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n /**\n * Helper method for creating a wallet client based on the\n * configuration\n *\n * @param config Configuration for the wallet client.\n * @returns The wallet client created with viem.\n */\n public static createWalletClient(config: ClientConfig): WalletClient {\n return createWalletClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n private static extractTransportConfig(config: ClientConfig): Transport {\n if ('rpcUrls' in config) {\n return fallback(config.rpcUrls.map((url) => http(url)));\n } else {\n return custom(config.provider, config.config);\n }\n }\n}\n"],"names":["custom","provider","config","key","name","retryDelay","defaultRetryCount","createTransport","fallback","transports_","rank","retryCount","chain","pollingInterval","timeout","rest","transports","onResponse","transport","method","params","fetch","i","response","err","shouldThrow","fn","rankOptions","rankTransports","error","TransactionRejectedRpcError","UserRejectedRequestError","interval","onTransports","sampleCount","weights","stabilityWeight","latencyWeight","samples","rankTransports_","sample","transport_","start","end","success","maxLatency","latency","scores","_","latencies","latencyScore","acc","successes","stabilityScore","a","b","wait","PufferClientHelpers","createPublicClientViem","VIEM_CHAINS","createWalletClientViem","url","http"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var o=(r,e,l)=>e in r?s(r,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):r[e]=l;var t=(r,e,l)=>o(r,typeof e!="symbol"?e+"":e,l);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../constants-BvU-JhfL.cjs"),u=require("../contracts/handlers/puffer-vault-handler.cjs"),d=require("../contracts/handlers/puffer-depositor-handler.cjs"),h=require("../contracts/handlers/puf-token-handler.cjs"),p=require("../contracts/handlers/puffer-l2-depositor-handler.cjs"),C=require("../contracts/handlers/erc20-permit-handler.cjs"),w=require("../contracts/handlers/puf-locker-handler.cjs"),f=require("../contracts/handlers/l2-reward-manager-handler.cjs"),_=require("../contracts/handlers/l1-reward-manager-handler.cjs"),n=require("../createWalletClient-Bmopj8MM.cjs");class H{constructor(e,l,a){t(this,"walletClient");t(this,"publicClient");t(this,"erc20Permit");t(this,"vault");t(this,"depositor");t(this,"l2Depositor");t(this,"pufToken");t(this,"pufLocker");t(this,"l2RewardManager");t(this,"l1RewardManager");const i=c.VIEM_CHAINS[e];this.walletClient=l??n.createWalletClient({chain:i,transport:n.http()}),this.publicClient=a??n.createPublicClient({chain:i,transport:n.http()}),this.erc20Permit=new C.ERC20PermitHandler(e,this.walletClient,this.publicClient),this.vault=new u.PufferVaultHandler(e,this.walletClient,this.publicClient),this.depositor=new d.PufferDepositorHandler(e,this.walletClient,this.publicClient),this.pufToken=new h.PufTokenHandler(e,this.walletClient,this.publicClient),this.l2Depositor=new p.PufferL2DepositorHandler(e,this.walletClient,this.publicClient),this.pufLocker=new w.PufLockerHandler(e,this.walletClient,this.publicClient),this.l2RewardManager=new f.L2RewardManagerHandler(e,this.walletClient,this.publicClient),this.l1RewardManager=new _.L1RewardManagerHandler(e,this.walletClient,this.publicClient)}async requestAddresses(){return await this.walletClient.requestAddresses()}}exports.PufferClient=H;
2
+ //# sourceMappingURL=puffer-client.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puffer-client.cjs","sources":["../../lib/api/puffer-client.ts"],"sourcesContent":["import {\n PublicClient,\n WalletClient,\n createPublicClient,\n createWalletClient,\n http,\n} from 'viem';\nimport { Chain, VIEM_CHAINS } from '../chains/constants';\nimport { PufferVaultHandler } from '../contracts/handlers/puffer-vault-handler';\nimport { PufferDepositorHandler } from '../contracts/handlers/puffer-depositor-handler';\nimport { PufTokenHandler } from '../contracts/handlers/puf-token-handler';\nimport { PufferL2DepositorHandler } from '../contracts/handlers/puffer-l2-depositor-handler';\nimport { ERC20PermitHandler } from '../contracts/handlers/erc20-permit-handler';\nimport { PufLockerHandler } from '../contracts/handlers/puf-locker-handler';\nimport { L2RewardManagerHandler } from '../contracts/handlers/l2-reward-manager-handler';\nimport { L1RewardManagerHandler } from '../contracts/handlers/l1-reward-manager-handler';\n\n/**\n * The core class and the main entry point of the Puffer SDK.\n */\nexport class PufferClient {\n private walletClient: WalletClient;\n private publicClient: PublicClient;\n\n // Contract Handlers\n /** Handler for the `ERC20Permit` contract. */\n public erc20Permit: ERC20PermitHandler;\n /** Handler for the `PufferVaultV2` contract. */\n public vault: PufferVaultHandler;\n /** Handler for the `PufferDepositor` contract. */\n public depositor: PufferDepositorHandler;\n /** Handler for the `PufferL2Depositor` contract. */\n public l2Depositor: PufferL2DepositorHandler;\n /** Handler for the `PufToken` contract. */\n public pufToken: PufTokenHandler;\n /** Handler for the `PufLocker` contract. */\n public pufLocker: PufLockerHandler;\n /** Handler for the `L2RewardManager` contract. */\n public l2RewardManager: L2RewardManagerHandler;\n /** Handler for the `L1RewardManager` contract. */\n public l1RewardManager: L1RewardManagerHandler;\n\n /**\n * Create the Puffer Client.\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 chain: Chain,\n walletClient?: WalletClient,\n publicClient?: PublicClient,\n ) {\n const viemChain = VIEM_CHAINS[chain];\n\n /* istanbul ignore next */\n this.walletClient =\n walletClient ??\n createWalletClient({\n chain: viemChain,\n transport: http(),\n });\n this.publicClient =\n publicClient ??\n createPublicClient({\n chain: viemChain,\n transport: http(),\n });\n\n this.erc20Permit = new ERC20PermitHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.vault = new PufferVaultHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.depositor = new PufferDepositorHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.pufToken = new PufTokenHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.l2Depositor = new PufferL2DepositorHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.pufLocker = new PufLockerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.l2RewardManager = new L2RewardManagerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.l1RewardManager = new L1RewardManagerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n }\n\n /**\n * Request addresses from the wallet.\n *\n * @returns An array of wallet addresses.\n */\n public async requestAddresses() {\n return await this.walletClient.requestAddresses();\n }\n}\n"],"names":["PufferClient","chain","walletClient","publicClient","__publicField","viemChain","VIEM_CHAINS","createWalletClient","http","createPublicClient","ERC20PermitHandler","PufferVaultHandler","PufferDepositorHandler","PufTokenHandler","PufferL2DepositorHandler","PufLockerHandler","L2RewardManagerHandler","L1RewardManagerHandler"],"mappings":"i0BAoBO,MAAMA,CAAa,CA+BxB,YACEC,EACAC,EACAC,EACA,CAlCMC,EAAA,qBACAA,EAAA,qBAIDA,EAAA,oBAEAA,EAAA,cAEAA,EAAA,kBAEAA,EAAA,oBAEAA,EAAA,iBAEAA,EAAA,kBAEAA,EAAA,wBAEAA,EAAA,wBAgBC,MAAAC,EAAYC,cAAYL,CAAK,EAG9B,KAAA,aACHC,GACAK,qBAAmB,CACjB,MAAOF,EACP,UAAWG,EAAAA,KAAK,CAAA,CACjB,EACE,KAAA,aACHL,GACAM,qBAAmB,CACjB,MAAOJ,EACP,UAAWG,EAAAA,KAAK,CAAA,CACjB,EAEH,KAAK,YAAc,IAAIE,EAAA,mBACrBT,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,MAAQ,IAAIU,EAAA,mBACfV,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,UAAY,IAAIW,EAAA,uBACnBX,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,SAAW,IAAIY,EAAA,gBAClBZ,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,YAAc,IAAIa,EAAA,yBACrBb,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,UAAY,IAAIc,EAAA,iBACnBd,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,gBAAkB,IAAIe,EAAA,uBACzBf,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,gBAAkB,IAAIgB,EAAA,uBACzBhB,EACA,KAAK,aACL,KAAK,YAAA,CAET,CAOA,MAAa,kBAAmB,CACvB,OAAA,MAAM,KAAK,aAAa,kBACjC,CACF"}
@@ -6,7 +6,8 @@ import { PufTokenHandler } from '../contracts/handlers/puf-token-handler';
6
6
  import { PufferL2DepositorHandler } from '../contracts/handlers/puffer-l2-depositor-handler';
7
7
  import { ERC20PermitHandler } from '../contracts/handlers/erc20-permit-handler';
8
8
  import { PufLockerHandler } from '../contracts/handlers/puf-locker-handler';
9
-
9
+ import { L2RewardManagerHandler } from '../contracts/handlers/l2-reward-manager-handler';
10
+ import { L1RewardManagerHandler } from '../contracts/handlers/l1-reward-manager-handler';
10
11
  /**
11
12
  * The core class and the main entry point of the Puffer SDK.
12
13
  */
@@ -25,6 +26,10 @@ export declare class PufferClient {
25
26
  pufToken: PufTokenHandler;
26
27
  /** Handler for the `PufLocker` contract. */
27
28
  pufLocker: PufLockerHandler;
29
+ /** Handler for the `L2RewardManager` contract. */
30
+ l2RewardManager: L2RewardManagerHandler;
31
+ /** Handler for the `L1RewardManager` contract. */
32
+ l1RewardManager: L1RewardManagerHandler;
28
33
  /**
29
34
  * Create the Puffer Client.
30
35
  *
@@ -0,0 +1,97 @@
1
+ var a = Object.defineProperty;
2
+ var o = (i, t, l) => t in i ? a(i, t, { enumerable: !0, configurable: !0, writable: !0, value: l }) : i[t] = l;
3
+ var e = (i, t, l) => o(i, typeof t != "symbol" ? t + "" : t, l);
4
+ import { V as p } from "../constants-rWWWhxR_.js";
5
+ import { PufferVaultHandler as u } from "../contracts/handlers/puffer-vault-handler.js";
6
+ import { PufferDepositorHandler as C } from "../contracts/handlers/puffer-depositor-handler.js";
7
+ import { PufTokenHandler as w } from "../contracts/handlers/puf-token-handler.js";
8
+ import { PufferL2DepositorHandler as f } from "../contracts/handlers/puffer-l2-depositor-handler.js";
9
+ import { ERC20PermitHandler as h } from "../contracts/handlers/erc20-permit-handler.js";
10
+ import { PufLockerHandler as m } from "../contracts/handlers/puf-locker-handler.js";
11
+ import { L2RewardManagerHandler as d } from "../contracts/handlers/l2-reward-manager-handler.js";
12
+ import { L1RewardManagerHandler as c } from "../contracts/handlers/l1-reward-manager-handler.js";
13
+ import { c as b, a as P, h as s } from "../createWalletClient-DKcpswHR.js";
14
+ class q {
15
+ /**
16
+ * Create the Puffer Client.
17
+ *
18
+ * @param chain Chain to use for the client.
19
+ * @param walletClient The wallet client to use for wallet
20
+ * interactions.
21
+ * @param publicClient The public client to use for public
22
+ * interactions.
23
+ */
24
+ constructor(t, l, n) {
25
+ e(this, "walletClient");
26
+ e(this, "publicClient");
27
+ // Contract Handlers
28
+ /** Handler for the `ERC20Permit` contract. */
29
+ e(this, "erc20Permit");
30
+ /** Handler for the `PufferVaultV2` contract. */
31
+ e(this, "vault");
32
+ /** Handler for the `PufferDepositor` contract. */
33
+ e(this, "depositor");
34
+ /** Handler for the `PufferL2Depositor` contract. */
35
+ e(this, "l2Depositor");
36
+ /** Handler for the `PufToken` contract. */
37
+ e(this, "pufToken");
38
+ /** Handler for the `PufLocker` contract. */
39
+ e(this, "pufLocker");
40
+ /** Handler for the `L2RewardManager` contract. */
41
+ e(this, "l2RewardManager");
42
+ /** Handler for the `L1RewardManager` contract. */
43
+ e(this, "l1RewardManager");
44
+ const r = p[t];
45
+ this.walletClient = l ?? b({
46
+ chain: r,
47
+ transport: s()
48
+ }), this.publicClient = n ?? P({
49
+ chain: r,
50
+ transport: s()
51
+ }), this.erc20Permit = new h(
52
+ t,
53
+ this.walletClient,
54
+ this.publicClient
55
+ ), this.vault = new u(
56
+ t,
57
+ this.walletClient,
58
+ this.publicClient
59
+ ), this.depositor = new C(
60
+ t,
61
+ this.walletClient,
62
+ this.publicClient
63
+ ), this.pufToken = new w(
64
+ t,
65
+ this.walletClient,
66
+ this.publicClient
67
+ ), this.l2Depositor = new f(
68
+ t,
69
+ this.walletClient,
70
+ this.publicClient
71
+ ), this.pufLocker = new m(
72
+ t,
73
+ this.walletClient,
74
+ this.publicClient
75
+ ), this.l2RewardManager = new d(
76
+ t,
77
+ this.walletClient,
78
+ this.publicClient
79
+ ), this.l1RewardManager = new c(
80
+ t,
81
+ this.walletClient,
82
+ this.publicClient
83
+ );
84
+ }
85
+ /**
86
+ * Request addresses from the wallet.
87
+ *
88
+ * @returns An array of wallet addresses.
89
+ */
90
+ async requestAddresses() {
91
+ return await this.walletClient.requestAddresses();
92
+ }
93
+ }
94
+ export {
95
+ q as PufferClient
96
+ };
97
+ //# sourceMappingURL=puffer-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puffer-client.js","sources":["../../lib/api/puffer-client.ts"],"sourcesContent":["import {\n PublicClient,\n WalletClient,\n createPublicClient,\n createWalletClient,\n http,\n} from 'viem';\nimport { Chain, VIEM_CHAINS } from '../chains/constants';\nimport { PufferVaultHandler } from '../contracts/handlers/puffer-vault-handler';\nimport { PufferDepositorHandler } from '../contracts/handlers/puffer-depositor-handler';\nimport { PufTokenHandler } from '../contracts/handlers/puf-token-handler';\nimport { PufferL2DepositorHandler } from '../contracts/handlers/puffer-l2-depositor-handler';\nimport { ERC20PermitHandler } from '../contracts/handlers/erc20-permit-handler';\nimport { PufLockerHandler } from '../contracts/handlers/puf-locker-handler';\nimport { L2RewardManagerHandler } from '../contracts/handlers/l2-reward-manager-handler';\nimport { L1RewardManagerHandler } from '../contracts/handlers/l1-reward-manager-handler';\n\n/**\n * The core class and the main entry point of the Puffer SDK.\n */\nexport class PufferClient {\n private walletClient: WalletClient;\n private publicClient: PublicClient;\n\n // Contract Handlers\n /** Handler for the `ERC20Permit` contract. */\n public erc20Permit: ERC20PermitHandler;\n /** Handler for the `PufferVaultV2` contract. */\n public vault: PufferVaultHandler;\n /** Handler for the `PufferDepositor` contract. */\n public depositor: PufferDepositorHandler;\n /** Handler for the `PufferL2Depositor` contract. */\n public l2Depositor: PufferL2DepositorHandler;\n /** Handler for the `PufToken` contract. */\n public pufToken: PufTokenHandler;\n /** Handler for the `PufLocker` contract. */\n public pufLocker: PufLockerHandler;\n /** Handler for the `L2RewardManager` contract. */\n public l2RewardManager: L2RewardManagerHandler;\n /** Handler for the `L1RewardManager` contract. */\n public l1RewardManager: L1RewardManagerHandler;\n\n /**\n * Create the Puffer Client.\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 chain: Chain,\n walletClient?: WalletClient,\n publicClient?: PublicClient,\n ) {\n const viemChain = VIEM_CHAINS[chain];\n\n /* istanbul ignore next */\n this.walletClient =\n walletClient ??\n createWalletClient({\n chain: viemChain,\n transport: http(),\n });\n this.publicClient =\n publicClient ??\n createPublicClient({\n chain: viemChain,\n transport: http(),\n });\n\n this.erc20Permit = new ERC20PermitHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.vault = new PufferVaultHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.depositor = new PufferDepositorHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.pufToken = new PufTokenHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.l2Depositor = new PufferL2DepositorHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.pufLocker = new PufLockerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.l2RewardManager = new L2RewardManagerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.l1RewardManager = new L1RewardManagerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n }\n\n /**\n * Request addresses from the wallet.\n *\n * @returns An array of wallet addresses.\n */\n public async requestAddresses() {\n return await this.walletClient.requestAddresses();\n }\n}\n"],"names":["PufferClient","chain","walletClient","publicClient","__publicField","viemChain","VIEM_CHAINS","createWalletClient","http","createPublicClient","ERC20PermitHandler","PufferVaultHandler","PufferDepositorHandler","PufTokenHandler","PufferL2DepositorHandler","PufLockerHandler","L2RewardManagerHandler","L1RewardManagerHandler"],"mappings":";;;;;;;;;;;;;AAoBO,MAAMA,EAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+BxB,YACEC,GACAC,GACAC,GACA;AAlCM,IAAAC,EAAA;AACA,IAAAA,EAAA;AAID;AAAA;AAAA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA;AAgBC,UAAAC,IAAYC,EAAYL,CAAK;AAG9B,SAAA,eACHC,KACAK,EAAmB;AAAA,MACjB,OAAOF;AAAA,MACP,WAAWG,EAAK;AAAA,IAAA,CACjB,GACE,KAAA,eACHL,KACAM,EAAmB;AAAA,MACjB,OAAOJ;AAAA,MACP,WAAWG,EAAK;AAAA,IAAA,CACjB,GAEH,KAAK,cAAc,IAAIE;AAAA,MACrBT;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,QAAQ,IAAIU;AAAA,MACfV;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,YAAY,IAAIW;AAAA,MACnBX;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,WAAW,IAAIY;AAAA,MAClBZ;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,cAAc,IAAIa;AAAA,MACrBb;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,YAAY,IAAIc;AAAA,MACnBd;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,kBAAkB,IAAIe;AAAA,MACzBf;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,kBAAkB,IAAIgB;AAAA,MACzBhB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAa,mBAAmB;AACvB,WAAA,MAAM,KAAK,aAAa;EACjC;AACF;"}
@@ -1,6 +1,7 @@
1
- import { B as p, g as m, s as y, d as w, i as k, c as O, a as E, e as L, H as h, b as x } from "./main-69HiNG3t.js";
1
+ import { d as m, f as w, i as k, h as O, j as E, H as h } from "./writeContract-RluxM31W.js";
2
+ import { B as p, g as y, c as L, i as x } from "./constants-rWWWhxR_.js";
2
3
  class M extends p {
3
- constructor({ callbackSelector: s, cause: e, data: n, extraData: c, sender: u, urls: t }) {
4
+ constructor({ callbackSelector: s, cause: e, data: o, extraData: c, sender: u, urls: t }) {
4
5
  var i;
5
6
  super(e.shortMessage || "An error occurred while fetching for an offchain result.", {
6
7
  cause: e,
@@ -10,10 +11,10 @@ class M extends p {
10
11
  "Offchain Gateway Call:",
11
12
  t && [
12
13
  " Gateway URL(s):",
13
- ...t.map((f) => ` ${m(f)}`)
14
+ ...t.map((f) => ` ${y(f)}`)
14
15
  ],
15
16
  ` Sender: ${u}`,
16
- ` Data: ${n}`,
17
+ ` Data: ${o}`,
17
18
  ` Callback selector: ${s}`,
18
19
  ` Extra data: ${c}`
19
20
  ].flat()
@@ -29,8 +30,8 @@ class R extends p {
29
30
  constructor({ result: s, url: e }) {
30
31
  super("Offchain gateway response is malformed. Response data must be a hex value.", {
31
32
  metaMessages: [
32
- `Gateway URL: ${m(e)}`,
33
- `Response: ${y(s)}`
33
+ `Gateway URL: ${y(e)}`,
34
+ `Response: ${m(s)}`
34
35
  ]
35
36
  }), Object.defineProperty(this, "name", {
36
37
  enumerable: !0,
@@ -55,7 +56,7 @@ class $ extends p {
55
56
  });
56
57
  }
57
58
  }
58
- const j = "0x556f1830", S = {
59
+ const v = "0x556f1830", S = {
59
60
  name: "OffchainLookup",
60
61
  type: "error",
61
62
  inputs: [
@@ -81,20 +82,20 @@ const j = "0x556f1830", S = {
81
82
  }
82
83
  ]
83
84
  };
84
- async function v(o, { blockNumber: s, blockTag: e, data: n, to: c }) {
85
+ async function A(n, { blockNumber: s, blockTag: e, data: o, to: c }) {
85
86
  const { args: u } = w({
86
- data: n,
87
+ data: o,
87
88
  abi: [S]
88
- }), [t, i, f, a, r] = u, { ccipRead: d } = o, b = d && typeof (d == null ? void 0 : d.request) == "function" ? d.request : q;
89
+ }), [t, i, f, a, r] = u, { ccipRead: d } = n, b = d && typeof (d == null ? void 0 : d.request) == "function" ? d.request : j;
89
90
  try {
90
91
  if (!k(c, t))
91
92
  throw new $({ sender: t, to: c });
92
- const l = await b({ data: f, sender: t, urls: i }), { data: g } = await O(o, {
93
+ const l = await b({ data: f, sender: t, urls: i }), { data: g } = await O(n, {
93
94
  blockNumber: s,
94
95
  blockTag: e,
95
- data: E([
96
+ data: L([
96
97
  a,
97
- L([{ type: "bytes" }, { type: "bytes" }], [l, r])
98
+ E([{ type: "bytes" }, { type: "bytes" }], [l, r])
98
99
  ]),
99
100
  to: c
100
101
  });
@@ -103,28 +104,28 @@ async function v(o, { blockNumber: s, blockTag: e, data: n, to: c }) {
103
104
  throw new M({
104
105
  callbackSelector: a,
105
106
  cause: l,
106
- data: n,
107
+ data: o,
107
108
  extraData: r,
108
109
  sender: t,
109
110
  urls: i
110
111
  });
111
112
  }
112
113
  }
113
- async function q({ data: o, sender: s, urls: e }) {
114
+ async function j({ data: n, sender: s, urls: e }) {
114
115
  var c;
115
- let n = new Error("An unknown error occurred.");
116
+ let o = new Error("An unknown error occurred.");
116
117
  for (let u = 0; u < e.length; u++) {
117
- const t = e[u], i = t.includes("{data}") ? "GET" : "POST", f = i === "POST" ? { data: o, sender: s } : void 0;
118
+ const t = e[u], i = t.includes("{data}") ? "GET" : "POST", f = i === "POST" ? { data: n, sender: s } : void 0;
118
119
  try {
119
- const a = await fetch(t.replace("{sender}", s).replace("{data}", o), {
120
+ const a = await fetch(t.replace("{sender}", s).replace("{data}", n), {
120
121
  body: JSON.stringify(f),
121
122
  method: i
122
123
  });
123
124
  let r;
124
125
  if ((c = a.headers.get("Content-Type")) != null && c.startsWith("application/json") ? r = (await a.json()).data : r = await a.text(), !a.ok) {
125
- n = new h({
126
+ o = new h({
126
127
  body: f,
127
- details: r != null && r.error ? y(r.error) : a.statusText,
128
+ details: r != null && r.error ? m(r.error) : a.statusText,
128
129
  headers: a.headers,
129
130
  status: a.status,
130
131
  url: t
@@ -132,7 +133,7 @@ async function q({ data: o, sender: s, urls: e }) {
132
133
  continue;
133
134
  }
134
135
  if (!x(r)) {
135
- n = new R({
136
+ o = new R({
136
137
  result: r,
137
138
  url: t
138
139
  });
@@ -140,19 +141,19 @@ async function q({ data: o, sender: s, urls: e }) {
140
141
  }
141
142
  return r;
142
143
  } catch (a) {
143
- n = new h({
144
+ o = new h({
144
145
  body: f,
145
146
  details: a.message,
146
147
  url: t
147
148
  });
148
149
  }
149
150
  }
150
- throw n;
151
+ throw o;
151
152
  }
152
153
  export {
153
- q as ccipRequest,
154
- v as offchainLookup,
154
+ j as ccipRequest,
155
+ A as offchainLookup,
155
156
  S as offchainLookupAbiItem,
156
- j as offchainLookupSignature
157
+ v as offchainLookupSignature
157
158
  };
158
- //# sourceMappingURL=ccip-ZoYOXsGl.js.map
159
+ //# sourceMappingURL=ccip-D4klNwCt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ccip-ZoYOXsGl.js","sources":["../node_modules/.pnpm/viem@2.14.0_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/errors/ccip.js","../node_modules/.pnpm/viem@2.14.0_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/utils/ccip.js"],"sourcesContent":["import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class OffchainLookupError extends BaseError {\n constructor({ callbackSelector, cause, data, extraData, sender, urls, }) {\n super(cause.shortMessage ||\n 'An error occurred while fetching for an offchain result.', {\n cause,\n metaMessages: [\n ...(cause.metaMessages || []),\n cause.metaMessages?.length ? '' : [],\n 'Offchain Gateway Call:',\n urls && [\n ' Gateway URL(s):',\n ...urls.map((url) => ` ${getUrl(url)}`),\n ],\n ` Sender: ${sender}`,\n ` Data: ${data}`,\n ` Callback selector: ${callbackSelector}`,\n ` Extra data: ${extraData}`,\n ].flat(),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'OffchainLookupError'\n });\n }\n}\nexport class OffchainLookupResponseMalformedError extends BaseError {\n constructor({ result, url }) {\n super('Offchain gateway response is malformed. Response data must be a hex value.', {\n metaMessages: [\n `Gateway URL: ${getUrl(url)}`,\n `Response: ${stringify(result)}`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'OffchainLookupResponseMalformedError'\n });\n }\n}\nexport class OffchainLookupSenderMismatchError extends BaseError {\n constructor({ sender, to }) {\n super('Reverted sender address does not match target contract address (`to`).', {\n metaMessages: [\n `Contract address: ${to}`,\n `OffchainLookup sender address: ${sender}`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'OffchainLookupSenderMismatchError'\n });\n }\n}\n//# sourceMappingURL=ccip.js.map","import { call } from '../actions/public/call.js';\nimport { OffchainLookupError, OffchainLookupResponseMalformedError, OffchainLookupSenderMismatchError, } from '../errors/ccip.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { decodeErrorResult } from './abi/decodeErrorResult.js';\nimport { encodeAbiParameters } from './abi/encodeAbiParameters.js';\nimport { isAddressEqual } from './address/isAddressEqual.js';\nimport { concat } from './data/concat.js';\nimport { isHex } from './data/isHex.js';\nimport { stringify } from './stringify.js';\nexport const offchainLookupSignature = '0x556f1830';\nexport const offchainLookupAbiItem = {\n name: 'OffchainLookup',\n type: 'error',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'urls',\n type: 'string[]',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n {\n name: 'callbackFunction',\n type: 'bytes4',\n },\n {\n name: 'extraData',\n type: 'bytes',\n },\n ],\n};\nexport async function offchainLookup(client, { blockNumber, blockTag, data, to, }) {\n const { args } = decodeErrorResult({\n data,\n abi: [offchainLookupAbiItem],\n });\n const [sender, urls, callData, callbackSelector, extraData] = args;\n const { ccipRead } = client;\n const ccipRequest_ = ccipRead && typeof ccipRead?.request === 'function'\n ? ccipRead.request\n : ccipRequest;\n try {\n if (!isAddressEqual(to, sender))\n throw new OffchainLookupSenderMismatchError({ sender, to });\n const result = await ccipRequest_({ data: callData, sender, urls });\n const { data: data_ } = await call(client, {\n blockNumber,\n blockTag,\n data: concat([\n callbackSelector,\n encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }], [result, extraData]),\n ]),\n to,\n });\n return data_;\n }\n catch (err) {\n throw new OffchainLookupError({\n callbackSelector,\n cause: err,\n data,\n extraData,\n sender,\n urls,\n });\n }\n}\nexport async function ccipRequest({ data, sender, urls, }) {\n let error = new Error('An unknown error occurred.');\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n const method = url.includes('{data}') ? 'GET' : 'POST';\n const body = method === 'POST' ? { data, sender } : undefined;\n try {\n const response = await fetch(url.replace('{sender}', sender).replace('{data}', data), {\n body: JSON.stringify(body),\n method,\n });\n let result;\n if (response.headers.get('Content-Type')?.startsWith('application/json')) {\n result = (await response.json()).data;\n }\n else {\n result = (await response.text());\n }\n if (!response.ok) {\n error = new HttpRequestError({\n body,\n details: result?.error\n ? stringify(result.error)\n : response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n continue;\n }\n if (!isHex(result)) {\n error = new OffchainLookupResponseMalformedError({\n result,\n url,\n });\n continue;\n }\n return result;\n }\n catch (err) {\n error = new HttpRequestError({\n body,\n details: err.message,\n url,\n });\n }\n }\n throw error;\n}\n//# sourceMappingURL=ccip.js.map"],"names":["OffchainLookupError","BaseError","callbackSelector","cause","data","extraData","sender","urls","_a","url","getUrl","OffchainLookupResponseMalformedError","result","stringify","OffchainLookupSenderMismatchError","to","offchainLookupSignature","offchainLookupAbiItem","offchainLookup","client","blockNumber","blockTag","args","decodeErrorResult","callData","ccipRead","ccipRequest_","ccipRequest","isAddressEqual","data_","call","concat","encodeAbiParameters","err","error","i","method","body","response","HttpRequestError","isHex"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"ccip-D4klNwCt.js","sources":["../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/errors/ccip.js","../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/utils/ccip.js"],"sourcesContent":["import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class OffchainLookupError extends BaseError {\n constructor({ callbackSelector, cause, data, extraData, sender, urls, }) {\n super(cause.shortMessage ||\n 'An error occurred while fetching for an offchain result.', {\n cause,\n metaMessages: [\n ...(cause.metaMessages || []),\n cause.metaMessages?.length ? '' : [],\n 'Offchain Gateway Call:',\n urls && [\n ' Gateway URL(s):',\n ...urls.map((url) => ` ${getUrl(url)}`),\n ],\n ` Sender: ${sender}`,\n ` Data: ${data}`,\n ` Callback selector: ${callbackSelector}`,\n ` Extra data: ${extraData}`,\n ].flat(),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'OffchainLookupError'\n });\n }\n}\nexport class OffchainLookupResponseMalformedError extends BaseError {\n constructor({ result, url }) {\n super('Offchain gateway response is malformed. Response data must be a hex value.', {\n metaMessages: [\n `Gateway URL: ${getUrl(url)}`,\n `Response: ${stringify(result)}`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'OffchainLookupResponseMalformedError'\n });\n }\n}\nexport class OffchainLookupSenderMismatchError extends BaseError {\n constructor({ sender, to }) {\n super('Reverted sender address does not match target contract address (`to`).', {\n metaMessages: [\n `Contract address: ${to}`,\n `OffchainLookup sender address: ${sender}`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'OffchainLookupSenderMismatchError'\n });\n }\n}\n//# sourceMappingURL=ccip.js.map","import { call } from '../actions/public/call.js';\nimport { OffchainLookupError, OffchainLookupResponseMalformedError, OffchainLookupSenderMismatchError, } from '../errors/ccip.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { decodeErrorResult } from './abi/decodeErrorResult.js';\nimport { encodeAbiParameters } from './abi/encodeAbiParameters.js';\nimport { isAddressEqual } from './address/isAddressEqual.js';\nimport { concat } from './data/concat.js';\nimport { isHex } from './data/isHex.js';\nimport { stringify } from './stringify.js';\nexport const offchainLookupSignature = '0x556f1830';\nexport const offchainLookupAbiItem = {\n name: 'OffchainLookup',\n type: 'error',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'urls',\n type: 'string[]',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n {\n name: 'callbackFunction',\n type: 'bytes4',\n },\n {\n name: 'extraData',\n type: 'bytes',\n },\n ],\n};\nexport async function offchainLookup(client, { blockNumber, blockTag, data, to, }) {\n const { args } = decodeErrorResult({\n data,\n abi: [offchainLookupAbiItem],\n });\n const [sender, urls, callData, callbackSelector, extraData] = args;\n const { ccipRead } = client;\n const ccipRequest_ = ccipRead && typeof ccipRead?.request === 'function'\n ? ccipRead.request\n : ccipRequest;\n try {\n if (!isAddressEqual(to, sender))\n throw new OffchainLookupSenderMismatchError({ sender, to });\n const result = await ccipRequest_({ data: callData, sender, urls });\n const { data: data_ } = await call(client, {\n blockNumber,\n blockTag,\n data: concat([\n callbackSelector,\n encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }], [result, extraData]),\n ]),\n to,\n });\n return data_;\n }\n catch (err) {\n throw new OffchainLookupError({\n callbackSelector,\n cause: err,\n data,\n extraData,\n sender,\n urls,\n });\n }\n}\nexport async function ccipRequest({ data, sender, urls, }) {\n let error = new Error('An unknown error occurred.');\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n const method = url.includes('{data}') ? 'GET' : 'POST';\n const body = method === 'POST' ? { data, sender } : undefined;\n try {\n const response = await fetch(url.replace('{sender}', sender).replace('{data}', data), {\n body: JSON.stringify(body),\n method,\n });\n let result;\n if (response.headers.get('Content-Type')?.startsWith('application/json')) {\n result = (await response.json()).data;\n }\n else {\n result = (await response.text());\n }\n if (!response.ok) {\n error = new HttpRequestError({\n body,\n details: result?.error\n ? stringify(result.error)\n : response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n continue;\n }\n if (!isHex(result)) {\n error = new OffchainLookupResponseMalformedError({\n result,\n url,\n });\n continue;\n }\n return result;\n }\n catch (err) {\n error = new HttpRequestError({\n body,\n details: err.message,\n url,\n });\n }\n }\n throw error;\n}\n//# sourceMappingURL=ccip.js.map"],"names":["OffchainLookupError","BaseError","callbackSelector","cause","data","extraData","sender","urls","_a","url","getUrl","OffchainLookupResponseMalformedError","result","stringify","OffchainLookupSenderMismatchError","to","offchainLookupSignature","offchainLookupAbiItem","offchainLookup","client","blockNumber","blockTag","args","decodeErrorResult","callData","ccipRead","ccipRequest_","ccipRequest","isAddressEqual","data_","call","concat","encodeAbiParameters","err","error","i","method","body","response","HttpRequestError","isHex"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./writeContract-BBHpAss8.cjs"),d=require("./constants-BvU-JhfL.cjs");class w extends d.BaseError{constructor({callbackSelector:s,cause:e,data:o,extraData:c,sender:f,urls:t}){var i;super(e.shortMessage||"An error occurred while fetching for an offchain result.",{cause:e,metaMessages:[...e.metaMessages||[],(i=e.metaMessages)!=null&&i.length?"":[],"Offchain Gateway Call:",t&&[" Gateway URL(s):",...t.map(l=>` ${d.getUrl(l)}`)],` Sender: ${f}`,` Data: ${o}`,` Callback selector: ${s}`,` Extra data: ${c}`].flat()}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"OffchainLookupError"})}}class k extends d.BaseError{constructor({result:s,url:e}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${d.getUrl(e)}`,`Response: ${u.stringify(s)}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"OffchainLookupResponseMalformedError"})}}class O extends d.BaseError{constructor({sender:s,to:e}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${e}`,`OffchainLookup sender address: ${s}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"OffchainLookupSenderMismatchError"})}}const E="0x556f1830",y={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]};async function L(n,{blockNumber:s,blockTag:e,data:o,to:c}){const{args:f}=u.decodeErrorResult({data:o,abi:[y]}),[t,i,l,r,a]=f,{ccipRead:p}=n,b=p&&typeof(p==null?void 0:p.request)=="function"?p.request:m;try{if(!u.isAddressEqual(c,t))throw new O({sender:t,to:c});const h=await b({data:l,sender:t,urls:i}),{data:g}=await u.call(n,{blockNumber:s,blockTag:e,data:d.concat([r,u.encodeAbiParameters([{type:"bytes"},{type:"bytes"}],[h,a])]),to:c});return g}catch(h){throw new w({callbackSelector:r,cause:h,data:o,extraData:a,sender:t,urls:i})}}async function m({data:n,sender:s,urls:e}){var c;let o=new Error("An unknown error occurred.");for(let f=0;f<e.length;f++){const t=e[f],i=t.includes("{data}")?"GET":"POST",l=i==="POST"?{data:n,sender:s}:void 0;try{const r=await fetch(t.replace("{sender}",s).replace("{data}",n),{body:JSON.stringify(l),method:i});let a;if((c=r.headers.get("Content-Type"))!=null&&c.startsWith("application/json")?a=(await r.json()).data:a=await r.text(),!r.ok){o=new u.HttpRequestError({body:l,details:a!=null&&a.error?u.stringify(a.error):r.statusText,headers:r.headers,status:r.status,url:t});continue}if(!d.isHex(a)){o=new k({result:a,url:t});continue}return a}catch(r){o=new u.HttpRequestError({body:l,details:r.message,url:t})}}throw o}exports.ccipRequest=m;exports.offchainLookup=L;exports.offchainLookupAbiItem=y;exports.offchainLookupSignature=E;
2
+ //# sourceMappingURL=ccip-DLDqFodf.cjs.map