@pufferfinance/puffer-sdk 1.12.2 → 1.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/api/puffer-client-helpers.cjs +1 -1
  2. package/dist/api/puffer-client-helpers.cjs.map +1 -1
  3. package/dist/api/puffer-client-helpers.js +70 -65
  4. package/dist/api/puffer-client-helpers.js.map +1 -1
  5. package/dist/api/puffer-client.cjs +1 -1
  6. package/dist/api/puffer-client.cjs.map +1 -1
  7. package/dist/api/puffer-client.d.ts +3 -0
  8. package/dist/api/puffer-client.js +20 -13
  9. package/dist/api/puffer-client.js.map +1 -1
  10. package/dist/{ccip-BO_b9tFc.cjs → ccip-C0xwQhXU.cjs} +2 -2
  11. package/dist/ccip-C0xwQhXU.cjs.map +1 -0
  12. package/dist/{ccip-DLDO0_x2.js → ccip-K-z2PL4P.js} +3 -3
  13. package/dist/ccip-K-z2PL4P.js.map +1 -0
  14. package/dist/chains/constants.cjs +1 -1
  15. package/dist/chains/constants.js +1 -1
  16. package/dist/constants-BcPRVxdH.cjs +9 -0
  17. package/dist/constants-BcPRVxdH.cjs.map +1 -0
  18. package/dist/{constants-BjRNQpT2.js → constants-CH7Tz5jz.js} +745 -694
  19. package/dist/constants-CH7Tz5jz.js.map +1 -0
  20. package/dist/contracts/abis/l1-reward-manager-abis.cjs +1 -1
  21. package/dist/contracts/abis/l1-reward-manager-abis.d.ts +527 -1
  22. package/dist/contracts/abis/l1-reward-manager-abis.js +1 -1
  23. package/dist/contracts/abis/l2-reward-manager-abis.cjs +1 -1
  24. package/dist/contracts/abis/l2-reward-manager-abis.d.ts +1416 -1
  25. package/dist/contracts/abis/l2-reward-manager-abis.js +1 -1
  26. package/dist/contracts/abis/mainnet/Distributor.cjs +2 -0
  27. package/dist/contracts/abis/mainnet/Distributor.cjs.map +1 -0
  28. package/dist/contracts/abis/mainnet/Distributor.d.ts +618 -0
  29. package/dist/contracts/abis/mainnet/Distributor.js +492 -0
  30. package/dist/contracts/abis/mainnet/Distributor.js.map +1 -0
  31. package/dist/contracts/abis/nucleus-accountant-abis.cjs +1 -1
  32. package/dist/contracts/abis/nucleus-accountant-abis.d.ts +2 -1
  33. package/dist/contracts/abis/nucleus-accountant-abis.js +1 -1
  34. package/dist/contracts/abis/nucleus-atomic-queue-abis.cjs +1 -1
  35. package/dist/contracts/abis/nucleus-atomic-queue-abis.d.ts +2 -1
  36. package/dist/contracts/abis/nucleus-atomic-queue-abis.js +1 -1
  37. package/dist/contracts/abis/nucleus-boring-vault-abis.cjs +1 -1
  38. package/dist/contracts/abis/nucleus-boring-vault-abis.d.ts +2 -1
  39. package/dist/contracts/abis/nucleus-boring-vault-abis.js +1 -1
  40. package/dist/contracts/abis/nucleus-teller-abis.cjs +1 -1
  41. package/dist/contracts/abis/nucleus-teller-abis.d.ts +2 -1
  42. package/dist/contracts/abis/nucleus-teller-abis.js +1 -1
  43. package/dist/contracts/abis/puf-locker-abis.cjs +1 -1
  44. package/dist/contracts/abis/puf-locker-abis.d.ts +484 -1
  45. package/dist/contracts/abis/puf-locker-abis.js +1 -1
  46. package/dist/contracts/abis/puffer-depositor-abis.cjs +1 -1
  47. package/dist/contracts/abis/puffer-depositor-abis.d.ts +663 -2
  48. package/dist/contracts/abis/puffer-depositor-abis.js +1 -1
  49. package/dist/contracts/abis/puffer-vault-abis.cjs +1 -1
  50. package/dist/contracts/abis/puffer-vault-abis.d.ts +4 -2
  51. package/dist/contracts/abis/puffer-vault-abis.js +1 -1
  52. package/dist/contracts/abis/puffer-withdrawal-manager-abis.cjs +1 -1
  53. package/dist/contracts/abis/puffer-withdrawal-manager-abis.d.ts +514 -1
  54. package/dist/contracts/abis/puffer-withdrawal-manager-abis.js +1 -1
  55. package/dist/contracts/addresses.cjs +1 -1
  56. package/dist/contracts/addresses.cjs.map +1 -1
  57. package/dist/contracts/addresses.d.ts +7 -13
  58. package/dist/contracts/addresses.js +6 -5
  59. package/dist/contracts/addresses.js.map +1 -1
  60. package/dist/contracts/handlers/carrot-staking-handler.cjs +1 -1
  61. package/dist/contracts/handlers/carrot-staking-handler.js +2 -2
  62. package/dist/contracts/handlers/distributor-handler.cjs +2 -0
  63. package/dist/contracts/handlers/distributor-handler.cjs.map +1 -0
  64. package/dist/contracts/handlers/distributor-handler.js +318 -0
  65. package/dist/contracts/handlers/distributor-handler.js.map +1 -0
  66. package/dist/contracts/handlers/erc20-permit-handler.cjs +1 -1
  67. package/dist/contracts/handlers/erc20-permit-handler.cjs.map +1 -1
  68. package/dist/contracts/handlers/erc20-permit-handler.d.ts +17101 -14898
  69. package/dist/contracts/handlers/erc20-permit-handler.js +3 -3
  70. package/dist/contracts/handlers/erc20-permit-handler.js.map +1 -1
  71. package/dist/contracts/handlers/l1-reward-manager-handler.cjs +1 -1
  72. package/dist/contracts/handlers/l1-reward-manager-handler.js +2 -2
  73. package/dist/contracts/handlers/l2-reward-manager-handler.cjs +1 -1
  74. package/dist/contracts/handlers/l2-reward-manager-handler.js +2 -2
  75. package/dist/contracts/handlers/mtw-carrot-handler.cjs +1 -1
  76. package/dist/contracts/handlers/mtw-carrot-handler.js +2 -2
  77. package/dist/contracts/handlers/nucleus-accountant-handler.cjs +1 -1
  78. package/dist/contracts/handlers/nucleus-accountant-handler.js +1 -1
  79. package/dist/contracts/handlers/nucleus-atomic-queue-handler.cjs +1 -1
  80. package/dist/contracts/handlers/nucleus-atomic-queue-handler.cjs.map +1 -1
  81. package/dist/contracts/handlers/nucleus-atomic-queue-handler.d.ts +7619 -14812
  82. package/dist/contracts/handlers/nucleus-atomic-queue-handler.js +2 -2
  83. package/dist/contracts/handlers/nucleus-atomic-queue-handler.js.map +1 -1
  84. package/dist/contracts/handlers/nucleus-boring-vault-handler.cjs +1 -1
  85. package/dist/contracts/handlers/nucleus-boring-vault-handler.js +2 -2
  86. package/dist/contracts/handlers/nucleus-teller-handler.cjs +1 -1
  87. package/dist/contracts/handlers/nucleus-teller-handler.js +2 -2
  88. package/dist/contracts/handlers/puf-locker-handler.cjs +1 -1
  89. package/dist/contracts/handlers/puf-locker-handler.cjs.map +1 -1
  90. package/dist/contracts/handlers/puf-locker-handler.js +2 -2
  91. package/dist/contracts/handlers/puf-locker-handler.js.map +1 -1
  92. package/dist/contracts/handlers/puffer-depositor-handler.cjs +1 -1
  93. package/dist/contracts/handlers/puffer-depositor-handler.d.ts +11215 -14794
  94. package/dist/contracts/handlers/puffer-depositor-handler.js +2 -2
  95. package/dist/contracts/handlers/puffer-l2-depositor-handler.cjs +1 -1
  96. package/dist/contracts/handlers/puffer-l2-depositor-handler.js +2 -2
  97. package/dist/contracts/handlers/puffer-vault-handler.cjs +1 -1
  98. package/dist/contracts/handlers/puffer-vault-handler.js +2 -2
  99. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.cjs +1 -1
  100. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.js +2 -2
  101. package/dist/contracts/tokens.cjs +1 -1
  102. package/dist/contracts/tokens.js +1 -1
  103. package/dist/contracts/vaults-addresses.cjs +1 -1
  104. package/dist/contracts/vaults-addresses.d.ts +5 -4
  105. package/dist/contracts/vaults-addresses.js +1 -1
  106. package/dist/createWalletClient-DNLhBkOd.js +3289 -0
  107. package/dist/createWalletClient-DNLhBkOd.js.map +1 -0
  108. package/dist/createWalletClient-Di5of07E.cjs +6 -0
  109. package/dist/createWalletClient-Di5of07E.cjs.map +1 -0
  110. package/dist/{getContract-CezEyDf-.js → getContract-6ajhFbP2.js} +2 -2
  111. package/dist/getContract-6ajhFbP2.js.map +1 -0
  112. package/dist/{getContract-3QbyfZBF.cjs → getContract-ChPFzc5y.cjs} +2 -2
  113. package/dist/{getContract-CezEyDf-.js.map → getContract-ChPFzc5y.cjs.map} +1 -1
  114. package/dist/main.cjs +1 -1
  115. package/dist/main.d.ts +1 -0
  116. package/dist/main.js +13 -11
  117. package/dist/main.js.map +1 -1
  118. package/dist/secp256k1-B8plqpXf.cjs +2 -0
  119. package/dist/secp256k1-B8plqpXf.cjs.map +1 -0
  120. package/dist/secp256k1-Ev0s9Yr6.js +1340 -0
  121. package/dist/secp256k1-Ev0s9Yr6.js.map +1 -0
  122. package/dist/utils/version.cjs +1 -1
  123. package/dist/utils/version.js +1 -1
  124. package/dist/writeContract-BatuNuTe.cjs +32 -0
  125. package/dist/writeContract-BatuNuTe.cjs.map +1 -0
  126. package/dist/{writeContract-ChuHpJLC.js → writeContract-CjcOEtWX.js} +822 -763
  127. package/dist/writeContract-CjcOEtWX.js.map +1 -0
  128. package/package.json +15 -15
  129. package/dist/ccip-BO_b9tFc.cjs.map +0 -1
  130. package/dist/ccip-DLDO0_x2.js.map +0 -1
  131. package/dist/constants-BjRNQpT2.js.map +0 -1
  132. package/dist/constants-DA2xUb9r.cjs +0 -9
  133. package/dist/constants-DA2xUb9r.cjs.map +0 -1
  134. package/dist/contracts/handlers/carrot-staking-handler.d.ts +0 -15063
  135. package/dist/contracts/handlers/l1-reward-manager-handler.d.ts +0 -15107
  136. package/dist/contracts/handlers/l2-reward-manager-handler.d.ts +0 -15353
  137. package/dist/contracts/handlers/mtw-carrot-handler.d.ts +0 -15293
  138. package/dist/contracts/handlers/nucleus-accountant-handler.d.ts +0 -15126
  139. package/dist/contracts/handlers/nucleus-boring-vault-handler.d.ts +0 -15284
  140. package/dist/contracts/handlers/nucleus-teller-handler.d.ts +0 -15201
  141. package/dist/contracts/handlers/puf-locker-handler.d.ts +0 -15116
  142. package/dist/contracts/handlers/puffer-l2-depositor-handler.d.ts +0 -14969
  143. package/dist/contracts/handlers/puffer-vault-handler.d.ts +0 -17452
  144. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.d.ts +0 -15111
  145. package/dist/createWalletClient-BuLYysrp.cjs +0 -4
  146. package/dist/createWalletClient-BuLYysrp.cjs.map +0 -1
  147. package/dist/createWalletClient-DNcW-ENe.js +0 -2028
  148. package/dist/createWalletClient-DNcW-ENe.js.map +0 -1
  149. package/dist/getContract-3QbyfZBF.cjs.map +0 -1
  150. package/dist/secp256k1-3OC5y4qp.js +0 -1579
  151. package/dist/secp256k1-3OC5y4qp.js.map +0 -1
  152. package/dist/secp256k1-bcahnPX9.cjs +0 -2
  153. package/dist/secp256k1-bcahnPX9.cjs.map +0 -1
  154. package/dist/writeContract-ChuHpJLC.js.map +0 -1
  155. package/dist/writeContract-D97dSJQe.cjs +0 -32
  156. package/dist/writeContract-D97dSJQe.cjs.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("../constants-DA2xUb9r.cjs"),b=require("../createWalletClient-BuLYysrp.cjs"),x=require("../writeContract-D97dSJQe.cjs");function M(a,t={}){const{key:u="custom",name:m="Custom Provider",retryDelay:i}=t;return({retryCount:h})=>b.createTransport({key:u,name:m,request:a.request.bind(a),retryCount:t.retryCount??h,retryDelay:i,type:"custom"})}function P(a,t={}){const{key:u="fallback",name:m="Fallback",rank:i=!1,retryCount:h,retryDelay:f}=t;return({chain:C,pollingInterval:T=4e3,timeout:g,...c})=>{let o=a,d=()=>{};const k=b.createTransport({key:u,name:m,async request({method:e,params:r}){const n=async(l=0)=>{const p=o[l]({...c,chain:C,retryCount:0,timeout:g});try{const s=await p.request({method:e,params:r});return d({method:e,params:r,response:s,transport:p,status:"success"}),s}catch(s){if(d({error:s,method:e,params:r,transport:p,status:"error"}),W(s)||l===o.length-1)throw s;return n(l+1)}};return n()},retryCount:h,retryDelay:f,type:"fallback"},{onResponse:e=>d=e,transports:o.map(e=>e({chain:C,retryCount:0}))});if(i){const e=typeof i=="object"?i:{};j({chain:C,interval:e.interval??T,onTransports:r=>o=r,ping:e.ping,sampleCount:e.sampleCount,timeout:e.timeout,transports:o,weights:e.weights})}return k}}function W(a){return"code"in a&&typeof a.code=="number"&&(a.code===x.TransactionRejectedRpcError.code||a.code===x.UserRejectedRequestError.code||a.code===5e3)}function j({chain:a,interval:t=4e3,onTransports:u,ping:m,sampleCount:i=10,timeout:h=1e3,transports:f,weights:C={}}){const{stability:T=.7,latency:g=.3}=C,c=[],o=async()=>{const d=await Promise.all(f.map(async r=>{const n=r({chain:a,retryCount:0,timeout:h}),l=Date.now();let p,s;try{await(m?m({transport:n}):n.request({method:"net_listening"})),s=1}catch{s=0}finally{p=Date.now()}return{latency:p-l,success:s}}));c.push(d),c.length>i&&c.shift();const k=Math.max(...c.map(r=>Math.max(...r.map(({latency:n})=>n)))),e=f.map((r,n)=>{const l=c.map(y=>y[n].latency),s=1-l.reduce((y,_)=>y+_,0)/l.length/k,q=c.map(y=>y[n].success),R=q.reduce((y,_)=>y+_,0)/q.length;return R===0?[0,n]:[g*s+T*R,n]}).sort((r,n)=>n[0]-r[0]);u(e.map(([,r])=>f[r])),await x.wait(t),o()};o()}class w{static createPublicClient(t){return b.createPublicClient({chain:S.VIEM_CHAINS[t.chain],transport:w.extractTransportConfig(t)})}static createWalletClient(t){return b.createWalletClient({chain:S.VIEM_CHAINS[t.chain],transport:w.extractTransportConfig(t)})}static extractTransportConfig(t){return"rpcUrls"in t?P(t.rpcUrls.map(u=>b.http(u))):M(t.provider,t.config)}}exports.PufferClientHelpers=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("../constants-BcPRVxdH.cjs"),g=require("../createWalletClient-Di5of07E.cjs"),E=require("../writeContract-BatuNuTe.cjs");function M(s,t={}){const{key:p="custom",methods:d,name:y="Custom Provider",retryDelay:b}=t;return({retryCount:m})=>g.createTransport({key:p,methods:d,name:y,request:s.request.bind(s),retryCount:t.retryCount??m,retryDelay:b,type:"custom"})}function S(s,t={}){const{key:p="fallback",name:d="Fallback",rank:y=!1,retryCount:b,retryDelay:m}=t;return({chain:h,pollingInterval:q=4e3,timeout:x,...l})=>{let o=s,w=()=>{};const _=g.createTransport({key:p,name:d,async request({method:e,params:r}){let n;const f=async(i=0)=>{const u=o[i]({...l,chain:h,retryCount:0,timeout:x});try{const a=await u.request({method:e,params:r});return w({method:e,params:r,response:a,transport:u,status:"success"}),a}catch(a){if(w({error:a,method:e,params:r,transport:u,status:"error"}),v(a)||i===o.length-1||(n??(n=o.slice(i+1).some(T=>{const{include:c,exclude:C}=T({chain:h}).config.methods||{};return c?c.includes(e):C?!C.includes(e):!0})),!n))throw a;return f(i+1)}};return f()},retryCount:b,retryDelay:m,type:"fallback"},{onResponse:e=>w=e,transports:o.map(e=>e({chain:h,retryCount:0}))});if(y){const e=typeof y=="object"?y:{};P({chain:h,interval:e.interval??q,onTransports:r=>o=r,ping:e.ping,sampleCount:e.sampleCount,timeout:e.timeout,transports:o,weights:e.weights})}return _}}function v(s){return!!("code"in s&&typeof s.code=="number"&&(s.code===E.TransactionRejectedRpcError.code||s.code===E.UserRejectedRequestError.code||R.ExecutionRevertedError.nodeMessage.test(s.message)||s.code===5e3))}function P({chain:s,interval:t=4e3,onTransports:p,ping:d,sampleCount:y=10,timeout:b=1e3,transports:m,weights:h={}}){const{stability:q=.7,latency:x=.3}=h,l=[],o=async()=>{const w=await Promise.all(m.map(async r=>{const n=r({chain:s,retryCount:0,timeout:b}),f=Date.now();let i,u;try{await(d?d({transport:n}):n.request({method:"net_listening"})),u=1}catch{u=0}finally{i=Date.now()}return{latency:i-f,success:u}}));l.push(w),l.length>y&&l.shift();const _=Math.max(...l.map(r=>Math.max(...r.map(({latency:n})=>n)))),e=m.map((r,n)=>{const f=l.map(c=>c[n].latency),u=1-f.reduce((c,C)=>c+C,0)/f.length/_,a=l.map(c=>c[n].success),T=a.reduce((c,C)=>c+C,0)/a.length;return T===0?[0,n]:[x*u+q*T,n]}).sort((r,n)=>n[0]-r[0]);p(e.map(([,r])=>m[r])),await E.wait(t),o()};o()}class k{static createPublicClient(t){return g.createPublicClient({chain:R.VIEM_CHAINS[t.chain],transport:k.extractTransportConfig(t)})}static createWalletClient(t){return g.createWalletClient({chain:R.VIEM_CHAINS[t.chain],transport:k.extractTransportConfig(t)})}static extractTransportConfig(t){return"rpcUrls"in t?S(t.rpcUrls.map(p=>g.http(p))):M(t.provider,t.config)}}exports.PufferClientHelpers=k;
2
2
  //# sourceMappingURL=puffer-client-helpers.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"puffer-client-helpers.cjs","sources":["../../node_modules/.pnpm/viem@2.21.55_typescript@5.7.2_zod@3.24.1/node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/.pnpm/viem@2.21.55_typescript@5.7.2_zod@3.24.1/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 ping: rankOptions.ping,\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, ping, 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 (ping\n ? ping({ transport: transport_ })\n : 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","ping","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]}
1
+ {"version":3,"file":"puffer-client-helpers.cjs","sources":["../../node_modules/.pnpm/viem@2.23.6_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/.pnpm/viem@2.23.6_typescript@5.8.2_zod@3.24.2/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', methods, name = 'Custom Provider', retryDelay, } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n methods,\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 { ExecutionRevertedError } from '../../errors/node.js';\nimport { 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 let includes;\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 // Check if at least one other transport includes the method\n includes ??= transports.slice(i + 1).some((transport) => {\n const { include, exclude } = transport({ chain }).config.methods || {};\n if (include)\n return include.includes(method);\n if (exclude)\n return !exclude.includes(method);\n return true;\n });\n if (!includes)\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 ping: rankOptions.ping,\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 ExecutionRevertedError.nodeMessage.test(error.message) ||\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, ping, 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 (ping\n ? ping({ transport: transport_ })\n : 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","methods","name","retryDelay","defaultRetryCount","createTransport","fallback","transports_","rank","retryCount","chain","pollingInterval","timeout","rest","transports","onResponse","transport","method","params","includes","fetch","response","err","shouldThrow","include","exclude","fn","rankOptions","rankTransports","error","TransactionRejectedRpcError","UserRejectedRequestError","ExecutionRevertedError","interval","onTransports","ping","sampleCount","weights","stabilityWeight","latencyWeight","samples","rankTransports_","sample","transport_","start","end","success","maxLatency","latency","scores","_","i","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]}
@@ -1,71 +1,76 @@
1
- import { V as R } from "../constants-BjRNQpT2.js";
2
- import { b as _, a as D, c as U, h as W } from "../createWalletClient-DNcW-ENe.js";
3
- import { T as j, U as v, l as E } from "../writeContract-ChuHpJLC.js";
1
+ import { E as _, V as q } from "../constants-CH7Tz5jz.js";
2
+ import { b as E, a as v, c as D, h as M } from "../createWalletClient-DNLhBkOd.js";
3
+ import { l as U, T as W, U as j } from "../writeContract-CjcOEtWX.js";
4
4
  function L(s, t = {}) {
5
- const { key: u = "custom", name: m = "Custom Provider", retryDelay: i } = t;
6
- return ({ retryCount: h }) => _({
7
- key: u,
8
- name: m,
5
+ const { key: p = "custom", methods: h, name: y = "Custom Provider", retryDelay: b } = t;
6
+ return ({ retryCount: m }) => E({
7
+ key: p,
8
+ methods: h,
9
+ name: y,
9
10
  request: s.request.bind(s),
10
- retryCount: t.retryCount ?? h,
11
- retryDelay: i,
11
+ retryCount: t.retryCount ?? m,
12
+ retryDelay: b,
12
13
  type: "custom"
13
14
  });
14
15
  }
15
- function M(s, t = {}) {
16
- const { key: u = "fallback", name: m = "Fallback", rank: i = !1, retryCount: h, retryDelay: f } = t;
17
- return ({ chain: C, pollingInterval: b = 4e3, timeout: w, ...c }) => {
18
- let o = s, d = () => {
16
+ function P(s, t = {}) {
17
+ const { key: p = "fallback", name: h = "Fallback", rank: y = !1, retryCount: b, retryDelay: m } = t;
18
+ return ({ chain: d, pollingInterval: k = 4e3, timeout: T, ...l }) => {
19
+ let o = s, w = () => {
19
20
  };
20
- const k = _({
21
- key: u,
22
- name: m,
21
+ const x = E({
22
+ key: p,
23
+ name: h,
23
24
  async request({ method: e, params: r }) {
24
- const n = async (l = 0) => {
25
- const p = o[l]({
26
- ...c,
27
- chain: C,
25
+ let n;
26
+ const f = async (i = 0) => {
27
+ const u = o[i]({
28
+ ...l,
29
+ chain: d,
28
30
  retryCount: 0,
29
- timeout: w
31
+ timeout: T
30
32
  });
31
33
  try {
32
- const a = await p.request({
34
+ const a = await u.request({
33
35
  method: e,
34
36
  params: r
35
37
  });
36
- return d({
38
+ return w({
37
39
  method: e,
38
40
  params: r,
39
41
  response: a,
40
- transport: p,
42
+ transport: u,
41
43
  status: "success"
42
44
  }), a;
43
45
  } catch (a) {
44
- if (d({
46
+ if (w({
45
47
  error: a,
46
48
  method: e,
47
49
  params: r,
48
- transport: p,
50
+ transport: u,
49
51
  status: "error"
50
- }), P(a) || l === o.length - 1)
52
+ }), S(a) || i === o.length - 1 || (n ?? (n = o.slice(i + 1).some((g) => {
53
+ const { include: c, exclude: C } = g({ chain: d }).config.methods || {};
54
+ return c ? c.includes(e) : C ? !C.includes(e) : !0;
55
+ })), !n))
51
56
  throw a;
52
- return n(l + 1);
57
+ return f(i + 1);
53
58
  }
54
59
  };
55
- return n();
60
+ return f();
56
61
  },
57
- retryCount: h,
58
- retryDelay: f,
62
+ retryCount: b,
63
+ retryDelay: m,
59
64
  type: "fallback"
60
65
  }, {
61
- onResponse: (e) => d = e,
62
- transports: o.map((e) => e({ chain: C, retryCount: 0 }))
66
+ onResponse: (e) => w = e,
67
+ transports: o.map((e) => e({ chain: d, retryCount: 0 }))
63
68
  });
64
- if (i) {
65
- const e = typeof i == "object" ? i : {};
66
- S({
67
- chain: C,
68
- interval: e.interval ?? b,
69
+ if (y) {
70
+ const e = typeof y == "object" ? y : {};
71
+ I({
72
+ chain: d,
73
+ interval: e.interval ?? k,
69
74
  onTransports: (r) => o = r,
70
75
  ping: e.ping,
71
76
  sampleCount: e.sampleCount,
@@ -74,39 +79,39 @@ function M(s, t = {}) {
74
79
  weights: e.weights
75
80
  });
76
81
  }
77
- return k;
82
+ return x;
78
83
  };
79
84
  }
80
- function P(s) {
81
- return "code" in s && typeof s.code == "number" && (s.code === j.code || s.code === v.code || s.code === 5e3);
85
+ function S(s) {
86
+ return !!("code" in s && typeof s.code == "number" && (s.code === W.code || s.code === j.code || _.nodeMessage.test(s.message) || s.code === 5e3));
82
87
  }
83
- function S({ chain: s, interval: t = 4e3, onTransports: u, ping: m, sampleCount: i = 10, timeout: h = 1e3, transports: f, weights: C = {} }) {
84
- const { stability: b = 0.7, latency: w = 0.3 } = C, c = [], o = async () => {
85
- const d = await Promise.all(f.map(async (r) => {
86
- const n = r({ chain: s, retryCount: 0, timeout: h }), l = Date.now();
87
- let p, a;
88
+ function I({ chain: s, interval: t = 4e3, onTransports: p, ping: h, sampleCount: y = 10, timeout: b = 1e3, transports: m, weights: d = {} }) {
89
+ const { stability: k = 0.7, latency: T = 0.3 } = d, l = [], o = async () => {
90
+ const w = await Promise.all(m.map(async (r) => {
91
+ const n = r({ chain: s, retryCount: 0, timeout: b }), f = Date.now();
92
+ let i, u;
88
93
  try {
89
- await (m ? m({ transport: n }) : n.request({ method: "net_listening" })), a = 1;
94
+ await (h ? h({ transport: n }) : n.request({ method: "net_listening" })), u = 1;
90
95
  } catch {
91
- a = 0;
96
+ u = 0;
92
97
  } finally {
93
- p = Date.now();
98
+ i = Date.now();
94
99
  }
95
- return { latency: p - l, success: a };
100
+ return { latency: i - f, success: u };
96
101
  }));
97
- c.push(d), c.length > i && c.shift();
98
- const k = Math.max(...c.map((r) => Math.max(...r.map(({ latency: n }) => n)))), e = f.map((r, n) => {
99
- const l = c.map((y) => y[n].latency), a = 1 - l.reduce((y, g) => y + g, 0) / l.length / k, T = c.map((y) => y[n].success), q = T.reduce((y, g) => y + g, 0) / T.length;
100
- return q === 0 ? [0, n] : [
101
- w * a + b * q,
102
+ l.push(w), l.length > y && l.shift();
103
+ const x = Math.max(...l.map((r) => Math.max(...r.map(({ latency: n }) => n)))), e = m.map((r, n) => {
104
+ const f = l.map((c) => c[n].latency), u = 1 - f.reduce((c, C) => c + C, 0) / f.length / x, a = l.map((c) => c[n].success), g = a.reduce((c, C) => c + C, 0) / a.length;
105
+ return g === 0 ? [0, n] : [
106
+ T * u + k * g,
102
107
  n
103
108
  ];
104
109
  }).sort((r, n) => n[0] - r[0]);
105
- u(e.map(([, r]) => f[r])), await E(t), o();
110
+ p(e.map(([, r]) => m[r])), await U(t), o();
106
111
  };
107
112
  o();
108
113
  }
109
- class x {
114
+ class R {
110
115
  /**
111
116
  * Helper method for creating a public client based on the
112
117
  * configuration
@@ -115,9 +120,9 @@ class x {
115
120
  * @returns The public client created with viem.
116
121
  */
117
122
  static createPublicClient(t) {
118
- return D({
119
- chain: R[t.chain],
120
- transport: x.extractTransportConfig(t)
123
+ return v({
124
+ chain: q[t.chain],
125
+ transport: R.extractTransportConfig(t)
121
126
  });
122
127
  }
123
128
  /**
@@ -128,16 +133,16 @@ class x {
128
133
  * @returns The wallet client created with viem.
129
134
  */
130
135
  static createWalletClient(t) {
131
- return U({
132
- chain: R[t.chain],
133
- transport: x.extractTransportConfig(t)
136
+ return D({
137
+ chain: q[t.chain],
138
+ transport: R.extractTransportConfig(t)
134
139
  });
135
140
  }
136
141
  static extractTransportConfig(t) {
137
- return "rpcUrls" in t ? M(t.rpcUrls.map((u) => W(u))) : L(t.provider, t.config);
142
+ return "rpcUrls" in t ? P(t.rpcUrls.map((p) => M(p))) : L(t.provider, t.config);
138
143
  }
139
144
  }
140
145
  export {
141
- x as PufferClientHelpers
146
+ R as PufferClientHelpers
142
147
  };
143
148
  //# sourceMappingURL=puffer-client-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"puffer-client-helpers.js","sources":["../../node_modules/.pnpm/viem@2.21.55_typescript@5.7.2_zod@3.24.1/node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/.pnpm/viem@2.21.55_typescript@5.7.2_zod@3.24.1/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 ping: rankOptions.ping,\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, ping, 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 (ping\n ? ping({ transport: transport_ })\n : 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","ping","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]}
1
+ {"version":3,"file":"puffer-client-helpers.js","sources":["../../node_modules/.pnpm/viem@2.23.6_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/.pnpm/viem@2.23.6_typescript@5.8.2_zod@3.24.2/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', methods, name = 'Custom Provider', retryDelay, } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n methods,\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 { ExecutionRevertedError } from '../../errors/node.js';\nimport { 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 let includes;\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 // Check if at least one other transport includes the method\n includes ??= transports.slice(i + 1).some((transport) => {\n const { include, exclude } = transport({ chain }).config.methods || {};\n if (include)\n return include.includes(method);\n if (exclude)\n return !exclude.includes(method);\n return true;\n });\n if (!includes)\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 ping: rankOptions.ping,\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 ExecutionRevertedError.nodeMessage.test(error.message) ||\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, ping, 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 (ping\n ? ping({ transport: transport_ })\n : 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","methods","name","retryDelay","defaultRetryCount","createTransport","fallback","transports_","rank","retryCount","chain","pollingInterval","timeout","rest","transports","onResponse","transport","method","params","includes","fetch","response","err","shouldThrow","include","exclude","fn","rankOptions","rankTransports","error","TransactionRejectedRpcError","UserRejectedRequestError","ExecutionRevertedError","interval","onTransports","ping","sampleCount","weights","stabilityWeight","latencyWeight","samples","rankTransports_","sample","transport_","start","end","success","maxLatency","latency","scores","_","i","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]}
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var u=(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)=>u(r,typeof e!="symbol"?e+"":e,l);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../constants-DA2xUb9r.cjs"),o=require("../contracts/handlers/puffer-vault-handler.cjs"),d=require("../contracts/handlers/puffer-depositor-handler.cjs"),h=require("../contracts/handlers/puffer-l2-depositor-handler.cjs"),w=require("../contracts/handlers/erc20-permit-handler.cjs"),C=require("../contracts/handlers/puf-locker-handler.cjs"),p=require("../contracts/handlers/l2-reward-manager-handler.cjs"),_=require("../contracts/handlers/l1-reward-manager-handler.cjs"),f=require("../contracts/handlers/puffer-withdrawal-manager-handler.cjs"),H=require("../contracts/handlers/nucleus-boring-vault-handler.cjs"),g=require("../contracts/handlers/nucleus-teller-handler.cjs"),b=require("../contracts/handlers/nucleus-accountant-handler.cjs"),q=require("../contracts/handlers/nucleus-atomic-queue-handler.cjs"),M=require("../contracts/handlers/mtw-carrot-handler.cjs"),m=require("../contracts/handlers/carrot-staking-handler.cjs"),n=require("../createWalletClient-BuLYysrp.cjs");class P{constructor(e,l,i){t(this,"walletClient");t(this,"publicClient");t(this,"erc20Permit");t(this,"vault");t(this,"depositor");t(this,"l2Depositor");t(this,"pufLocker");t(this,"l2RewardManager");t(this,"l1RewardManager");t(this,"pufferWithdrawalManager");t(this,"nucleusBoringVault");t(this,"nucleusTeller");t(this,"nucleusAccountant");t(this,"nucleusAtomicQueue");t(this,"mtwCarrot");t(this,"carrotStaker");const a=c.VIEM_CHAINS[e];this.walletClient=l??n.createWalletClient({chain:a,transport:n.http()}),this.publicClient=i??n.createPublicClient({chain:a,transport:n.http()}),this.erc20Permit=new w.ERC20PermitHandler(e,this.walletClient,this.publicClient),this.vault=new o.PufferVaultHandler(e,this.walletClient,this.publicClient),this.depositor=new d.PufferDepositorHandler(e,this.walletClient,this.publicClient),this.l2Depositor=new h.PufferL2DepositorHandler(e,this.walletClient,this.publicClient),this.pufLocker=new C.PufLockerHandler(e,this.walletClient,this.publicClient),this.l2RewardManager=new p.L2RewardManagerHandler(e,this.walletClient,this.publicClient),this.l1RewardManager=new _.L1RewardManagerHandler(e,this.walletClient,this.publicClient),this.pufferWithdrawalManager=new f.PufferWithdrawalManagerHandler(e,this.walletClient,this.publicClient),this.nucleusBoringVault=new H.NucleusBoringVaultHandler(e,this.walletClient,this.publicClient),this.nucleusTeller=new g.NucleusTellerHandler(e,this.walletClient,this.publicClient),this.nucleusAccountant=new b.NucleusAccountantHandler(e,this.walletClient,this.publicClient),this.nucleusAtomicQueue=new q.NucleusAtomicQueueHandler(e,this.walletClient,this.publicClient),this.mtwCarrot=new M.MtwCarrotHandler(e,this.walletClient,this.publicClient),this.carrotStaker=new m.CarrotStakingHandler(e,this.walletClient,this.publicClient)}async requestAddresses(){return await this.walletClient.requestAddresses()}}exports.PufferClient=P;
1
+ "use strict";var s=Object.defineProperty;var u=(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)=>u(r,typeof e!="symbol"?e+"":e,l);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../constants-BcPRVxdH.cjs"),o=require("../contracts/handlers/puffer-vault-handler.cjs"),d=require("../contracts/handlers/puffer-depositor-handler.cjs"),h=require("../contracts/handlers/puffer-l2-depositor-handler.cjs"),w=require("../contracts/handlers/erc20-permit-handler.cjs"),C=require("../contracts/handlers/puf-locker-handler.cjs"),p=require("../contracts/handlers/l2-reward-manager-handler.cjs"),_=require("../contracts/handlers/l1-reward-manager-handler.cjs"),H=require("../contracts/handlers/puffer-withdrawal-manager-handler.cjs"),f=require("../contracts/handlers/nucleus-boring-vault-handler.cjs"),b=require("../contracts/handlers/nucleus-teller-handler.cjs"),g=require("../contracts/handlers/nucleus-accountant-handler.cjs"),q=require("../contracts/handlers/nucleus-atomic-queue-handler.cjs"),M=require("../contracts/handlers/mtw-carrot-handler.cjs"),m=require("../contracts/handlers/carrot-staking-handler.cjs"),P=require("../contracts/handlers/distributor-handler.cjs"),n=require("../createWalletClient-Di5of07E.cjs");class A{constructor(e,l,a){t(this,"walletClient");t(this,"publicClient");t(this,"erc20Permit");t(this,"vault");t(this,"depositor");t(this,"l2Depositor");t(this,"pufLocker");t(this,"l2RewardManager");t(this,"l1RewardManager");t(this,"pufferWithdrawalManager");t(this,"nucleusBoringVault");t(this,"nucleusTeller");t(this,"nucleusAccountant");t(this,"nucleusAtomicQueue");t(this,"mtwCarrot");t(this,"carrotStaker");t(this,"distributor");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 w.ERC20PermitHandler(e,this.walletClient,this.publicClient),this.vault=new o.PufferVaultHandler(e,this.walletClient,this.publicClient),this.depositor=new d.PufferDepositorHandler(e,this.walletClient,this.publicClient),this.l2Depositor=new h.PufferL2DepositorHandler(e,this.walletClient,this.publicClient),this.pufLocker=new C.PufLockerHandler(e,this.walletClient,this.publicClient),this.l2RewardManager=new p.L2RewardManagerHandler(e,this.walletClient,this.publicClient),this.l1RewardManager=new _.L1RewardManagerHandler(e,this.walletClient,this.publicClient),this.pufferWithdrawalManager=new H.PufferWithdrawalManagerHandler(e,this.walletClient,this.publicClient),this.nucleusBoringVault=new f.NucleusBoringVaultHandler(e,this.walletClient,this.publicClient),this.nucleusTeller=new b.NucleusTellerHandler(e,this.walletClient,this.publicClient),this.nucleusAccountant=new g.NucleusAccountantHandler(e,this.walletClient,this.publicClient),this.nucleusAtomicQueue=new q.NucleusAtomicQueueHandler(e,this.walletClient,this.publicClient),this.mtwCarrot=new M.MtwCarrotHandler(e,this.walletClient,this.publicClient),this.carrotStaker=new m.CarrotStakingHandler(e,this.walletClient,this.publicClient),this.distributor=new P.DistributorHandler(e,this.walletClient,this.publicClient)}async requestAddresses(){return await this.walletClient.requestAddresses()}}exports.PufferClient=A;
2
2
  //# sourceMappingURL=puffer-client.cjs.map
@@ -1 +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 { 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';\nimport { PufferWithdrawalManagerHandler } from '../contracts/handlers/puffer-withdrawal-manager-handler';\nimport { NucleusBoringVaultHandler } from '../contracts/handlers/nucleus-boring-vault-handler';\nimport { NucleusTellerHandler } from '../contracts/handlers/nucleus-teller-handler';\nimport { NucleusAccountantHandler } from '../contracts/handlers/nucleus-accountant-handler';\nimport { NucleusAtomicQueueHandler } from '../contracts/handlers/nucleus-atomic-queue-handler';\nimport { MtwCarrotHandler } from '../contracts/handlers/mtw-carrot-handler';\nimport { CarrotStakingHandler } from '../contracts/handlers/carrot-staking-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 `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 /** Handler for the `PufferWithdrawalManager` contract. */\n public pufferWithdrawalManager: PufferWithdrawalManagerHandler;\n /** Handler for the `NucleusBoringVault` contract. */\n public nucleusBoringVault: NucleusBoringVaultHandler;\n /** Handler for the `NucleusTeller` contract. */\n public nucleusTeller: NucleusTellerHandler;\n /** Handler for the `NucleusAccountant` contract. */\n public nucleusAccountant: NucleusAccountantHandler;\n /** Handler for the `NucleusAtomicQueue` contract. */\n public nucleusAtomicQueue: NucleusAtomicQueueHandler;\n /** Handler for the `mtwCARROT` (Merkl Token Wrapper) contract. */\n public mtwCarrot: MtwCarrotHandler;\n /** Handler for the `CarrotStaker` contract. */\n public carrotStaker: CarrotStakingHandler;\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.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 this.pufferWithdrawalManager = new PufferWithdrawalManagerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusBoringVault = new NucleusBoringVaultHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusTeller = new NucleusTellerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusAccountant = new NucleusAccountantHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusAtomicQueue = new NucleusAtomicQueueHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.mtwCarrot = new MtwCarrotHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.carrotStaker = new CarrotStakingHandler(\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","PufferL2DepositorHandler","PufLockerHandler","L2RewardManagerHandler","L1RewardManagerHandler","PufferWithdrawalManagerHandler","NucleusBoringVaultHandler","NucleusTellerHandler","NucleusAccountantHandler","NucleusAtomicQueueHandler","MtwCarrotHandler","CarrotStakingHandler"],"mappings":"itCA0BO,MAAMA,CAAa,CA2CxB,YACEC,EACAC,EACAC,EACA,CA9CMC,EAAA,qBACAA,EAAA,qBAIDA,EAAA,oBAEAA,EAAA,cAEAA,EAAA,kBAEAA,EAAA,oBAEAA,EAAA,kBAEAA,EAAA,wBAEAA,EAAA,wBAEAA,EAAA,gCAEAA,EAAA,2BAEAA,EAAA,sBAEAA,EAAA,0BAEAA,EAAA,2BAEAA,EAAA,kBAEAA,EAAA,qBAgBC,MAAAC,EAAYC,cAAYL,CAAK,EAG9B,KAAA,aACHC,GACAK,qBAAmB,CACjB,MAAOF,EACP,UAAWG,EAAK,KAAA,CAAA,CACjB,EACE,KAAA,aACHL,GACAM,qBAAmB,CACjB,MAAOJ,EACP,UAAWG,EAAK,KAAA,CAAA,CACjB,EAEH,KAAK,YAAc,IAAIE,EAAA,mBACrBT,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,MAAQ,IAAIU,EAAA,mBACfV,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,UAAY,IAAIW,EAAA,uBACnBX,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,YAAc,IAAIY,EAAA,yBACrBZ,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,UAAY,IAAIa,EAAA,iBACnBb,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,gBAAkB,IAAIc,EAAA,uBACzBd,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,gBAAkB,IAAIe,EAAA,uBACzBf,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,wBAA0B,IAAIgB,EAAA,+BACjChB,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,mBAAqB,IAAIiB,EAAA,0BAC5BjB,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,cAAgB,IAAIkB,EAAA,qBACvBlB,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,kBAAoB,IAAImB,EAAA,yBAC3BnB,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,mBAAqB,IAAIoB,EAAA,0BAC5BpB,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,UAAY,IAAIqB,EAAA,iBACnBrB,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,aAAe,IAAIsB,EAAA,qBACtBtB,EACA,KAAK,aACL,KAAK,YACP,CAAA,CAQF,MAAa,kBAAmB,CACvB,OAAA,MAAM,KAAK,aAAa,iBAAiB,CAAA,CAEpD"}
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 { 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';\nimport { PufferWithdrawalManagerHandler } from '../contracts/handlers/puffer-withdrawal-manager-handler';\nimport { NucleusBoringVaultHandler } from '../contracts/handlers/nucleus-boring-vault-handler';\nimport { NucleusTellerHandler } from '../contracts/handlers/nucleus-teller-handler';\nimport { NucleusAccountantHandler } from '../contracts/handlers/nucleus-accountant-handler';\nimport { NucleusAtomicQueueHandler } from '../contracts/handlers/nucleus-atomic-queue-handler';\nimport { MtwCarrotHandler } from '../contracts/handlers/mtw-carrot-handler';\nimport { CarrotStakingHandler } from '../contracts/handlers/carrot-staking-handler';\nimport { DistributorHandler } from '../contracts/handlers/distributor-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 `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 /** Handler for the `PufferWithdrawalManager` contract. */\n public pufferWithdrawalManager: PufferWithdrawalManagerHandler;\n /** Handler for the `NucleusBoringVault` contract. */\n public nucleusBoringVault: NucleusBoringVaultHandler;\n /** Handler for the `NucleusTeller` contract. */\n public nucleusTeller: NucleusTellerHandler;\n /** Handler for the `NucleusAccountant` contract. */\n public nucleusAccountant: NucleusAccountantHandler;\n /** Handler for the `NucleusAtomicQueue` contract. */\n public nucleusAtomicQueue: NucleusAtomicQueueHandler;\n /** Handler for the `mtwCARROT` (Merkl Token Wrapper) contract. */\n public mtwCarrot: MtwCarrotHandler;\n /** Handler for the `CarrotStaker` contract. */\n public carrotStaker: CarrotStakingHandler;\n /** Handler for the `Distributor` contract. */\n public distributor: DistributorHandler;\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.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 this.pufferWithdrawalManager = new PufferWithdrawalManagerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusBoringVault = new NucleusBoringVaultHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusTeller = new NucleusTellerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusAccountant = new NucleusAccountantHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusAtomicQueue = new NucleusAtomicQueueHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.mtwCarrot = new MtwCarrotHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.carrotStaker = new CarrotStakingHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.distributor = new DistributorHandler(\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","PufferL2DepositorHandler","PufLockerHandler","L2RewardManagerHandler","L1RewardManagerHandler","PufferWithdrawalManagerHandler","NucleusBoringVaultHandler","NucleusTellerHandler","NucleusAccountantHandler","NucleusAtomicQueueHandler","MtwCarrotHandler","CarrotStakingHandler","DistributorHandler"],"mappings":"4wCA2BO,MAAMA,CAAa,CA6CxB,YACEC,EACAC,EACAC,EACA,CAhDMC,EAAA,qBACAA,EAAA,qBAIDA,EAAA,oBAEAA,EAAA,cAEAA,EAAA,kBAEAA,EAAA,oBAEAA,EAAA,kBAEAA,EAAA,wBAEAA,EAAA,wBAEAA,EAAA,gCAEAA,EAAA,2BAEAA,EAAA,sBAEAA,EAAA,0BAEAA,EAAA,2BAEAA,EAAA,kBAEAA,EAAA,qBAEAA,EAAA,oBAgBC,MAAAC,EAAYC,cAAYL,CAAK,EAG9B,KAAA,aACHC,GACAK,qBAAmB,CACjB,MAAOF,EACP,UAAWG,EAAK,KAAA,CAAA,CACjB,EACE,KAAA,aACHL,GACAM,qBAAmB,CACjB,MAAOJ,EACP,UAAWG,EAAK,KAAA,CAAA,CACjB,EAEH,KAAK,YAAc,IAAIE,EAAA,mBACrBT,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,MAAQ,IAAIU,EAAA,mBACfV,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,UAAY,IAAIW,EAAA,uBACnBX,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,YAAc,IAAIY,EAAA,yBACrBZ,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,UAAY,IAAIa,EAAA,iBACnBb,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,gBAAkB,IAAIc,EAAA,uBACzBd,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,gBAAkB,IAAIe,EAAA,uBACzBf,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,wBAA0B,IAAIgB,EAAA,+BACjChB,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,mBAAqB,IAAIiB,EAAA,0BAC5BjB,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,cAAgB,IAAIkB,EAAA,qBACvBlB,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,kBAAoB,IAAImB,EAAA,yBAC3BnB,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,mBAAqB,IAAIoB,EAAA,0BAC5BpB,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,UAAY,IAAIqB,EAAA,iBACnBrB,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,aAAe,IAAIsB,EAAA,qBACtBtB,EACA,KAAK,aACL,KAAK,YACP,EACA,KAAK,YAAc,IAAIuB,EAAA,mBACrBvB,EACA,KAAK,aACL,KAAK,YACP,CAAA,CAQF,MAAa,kBAAmB,CACvB,OAAA,MAAM,KAAK,aAAa,iBAAiB,CAAA,CAEpD"}
@@ -14,6 +14,7 @@ import { NucleusAccountantHandler } from '../contracts/handlers/nucleus-accounta
14
14
  import { NucleusAtomicQueueHandler } from '../contracts/handlers/nucleus-atomic-queue-handler';
15
15
  import { MtwCarrotHandler } from '../contracts/handlers/mtw-carrot-handler';
16
16
  import { CarrotStakingHandler } from '../contracts/handlers/carrot-staking-handler';
17
+ import { DistributorHandler } from '../contracts/handlers/distributor-handler';
17
18
  /**
18
19
  * The core class and the main entry point of the Puffer SDK.
19
20
  */
@@ -48,6 +49,8 @@ export declare class PufferClient {
48
49
  mtwCarrot: MtwCarrotHandler;
49
50
  /** Handler for the `CarrotStaker` contract. */
50
51
  carrotStaker: CarrotStakingHandler;
52
+ /** Handler for the `Distributor` contract. */
53
+ distributor: DistributorHandler;
51
54
  /**
52
55
  * Create the Puffer Client.
53
56
  *
@@ -1,12 +1,12 @@
1
- var s = Object.defineProperty;
2
- var u = (l, t, i) => t in l ? s(l, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : l[t] = i;
1
+ var a = Object.defineProperty;
2
+ var u = (l, t, i) => t in l ? a(l, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : l[t] = i;
3
3
  var e = (l, t, i) => u(l, typeof t != "symbol" ? t + "" : t, i);
4
- import { V as o } from "../constants-BjRNQpT2.js";
4
+ import { V as o } from "../constants-CH7Tz5jz.js";
5
5
  import { PufferVaultHandler as p } from "../contracts/handlers/puffer-vault-handler.js";
6
6
  import { PufferDepositorHandler as w } from "../contracts/handlers/puffer-depositor-handler.js";
7
7
  import { PufferL2DepositorHandler as C } from "../contracts/handlers/puffer-l2-depositor-handler.js";
8
- import { ERC20PermitHandler as c } from "../contracts/handlers/erc20-permit-handler.js";
9
- import { PufLockerHandler as m } from "../contracts/handlers/puf-locker-handler.js";
8
+ import { ERC20PermitHandler as m } from "../contracts/handlers/erc20-permit-handler.js";
9
+ import { PufLockerHandler as c } from "../contracts/handlers/puf-locker-handler.js";
10
10
  import { L2RewardManagerHandler as h } from "../contracts/handlers/l2-reward-manager-handler.js";
11
11
  import { L1RewardManagerHandler as f } from "../contracts/handlers/l1-reward-manager-handler.js";
12
12
  import { PufferWithdrawalManagerHandler as d } from "../contracts/handlers/puffer-withdrawal-manager-handler.js";
@@ -16,8 +16,9 @@ import { NucleusAccountantHandler as g } from "../contracts/handlers/nucleus-acc
16
16
  import { NucleusAtomicQueueHandler as M } from "../contracts/handlers/nucleus-atomic-queue-handler.js";
17
17
  import { MtwCarrotHandler as P } from "../contracts/handlers/mtw-carrot-handler.js";
18
18
  import { CarrotStakingHandler as A } from "../contracts/handlers/carrot-staking-handler.js";
19
- import { c as R, a as k, h as n } from "../createWalletClient-DNcW-ENe.js";
20
- class z {
19
+ import { DistributorHandler as R } from "../contracts/handlers/distributor-handler.js";
20
+ import { c as k, h as n, a as L } from "../createWalletClient-DNLhBkOd.js";
21
+ class G {
21
22
  /**
22
23
  * Create the Puffer Client.
23
24
  *
@@ -27,7 +28,7 @@ class z {
27
28
  * @param publicClient The public client to use for public
28
29
  * interactions.
29
30
  */
30
- constructor(t, i, a) {
31
+ constructor(t, i, s) {
31
32
  e(this, "walletClient");
32
33
  e(this, "publicClient");
33
34
  // Contract Handlers
@@ -59,14 +60,16 @@ class z {
59
60
  e(this, "mtwCarrot");
60
61
  /** Handler for the `CarrotStaker` contract. */
61
62
  e(this, "carrotStaker");
63
+ /** Handler for the `Distributor` contract. */
64
+ e(this, "distributor");
62
65
  const r = o[t];
63
- this.walletClient = i ?? R({
66
+ this.walletClient = i ?? k({
64
67
  chain: r,
65
68
  transport: n()
66
- }), this.publicClient = a ?? k({
69
+ }), this.publicClient = s ?? L({
67
70
  chain: r,
68
71
  transport: n()
69
- }), this.erc20Permit = new c(
72
+ }), this.erc20Permit = new m(
70
73
  t,
71
74
  this.walletClient,
72
75
  this.publicClient
@@ -82,7 +85,7 @@ class z {
82
85
  t,
83
86
  this.walletClient,
84
87
  this.publicClient
85
- ), this.pufLocker = new m(
88
+ ), this.pufLocker = new c(
86
89
  t,
87
90
  this.walletClient,
88
91
  this.publicClient
@@ -122,6 +125,10 @@ class z {
122
125
  t,
123
126
  this.walletClient,
124
127
  this.publicClient
128
+ ), this.distributor = new R(
129
+ t,
130
+ this.walletClient,
131
+ this.publicClient
125
132
  );
126
133
  }
127
134
  /**
@@ -134,6 +141,6 @@ class z {
134
141
  }
135
142
  }
136
143
  export {
137
- z as PufferClient
144
+ G as PufferClient
138
145
  };
139
146
  //# sourceMappingURL=puffer-client.js.map
@@ -1 +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 { 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';\nimport { PufferWithdrawalManagerHandler } from '../contracts/handlers/puffer-withdrawal-manager-handler';\nimport { NucleusBoringVaultHandler } from '../contracts/handlers/nucleus-boring-vault-handler';\nimport { NucleusTellerHandler } from '../contracts/handlers/nucleus-teller-handler';\nimport { NucleusAccountantHandler } from '../contracts/handlers/nucleus-accountant-handler';\nimport { NucleusAtomicQueueHandler } from '../contracts/handlers/nucleus-atomic-queue-handler';\nimport { MtwCarrotHandler } from '../contracts/handlers/mtw-carrot-handler';\nimport { CarrotStakingHandler } from '../contracts/handlers/carrot-staking-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 `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 /** Handler for the `PufferWithdrawalManager` contract. */\n public pufferWithdrawalManager: PufferWithdrawalManagerHandler;\n /** Handler for the `NucleusBoringVault` contract. */\n public nucleusBoringVault: NucleusBoringVaultHandler;\n /** Handler for the `NucleusTeller` contract. */\n public nucleusTeller: NucleusTellerHandler;\n /** Handler for the `NucleusAccountant` contract. */\n public nucleusAccountant: NucleusAccountantHandler;\n /** Handler for the `NucleusAtomicQueue` contract. */\n public nucleusAtomicQueue: NucleusAtomicQueueHandler;\n /** Handler for the `mtwCARROT` (Merkl Token Wrapper) contract. */\n public mtwCarrot: MtwCarrotHandler;\n /** Handler for the `CarrotStaker` contract. */\n public carrotStaker: CarrotStakingHandler;\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.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 this.pufferWithdrawalManager = new PufferWithdrawalManagerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusBoringVault = new NucleusBoringVaultHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusTeller = new NucleusTellerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusAccountant = new NucleusAccountantHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusAtomicQueue = new NucleusAtomicQueueHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.mtwCarrot = new MtwCarrotHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.carrotStaker = new CarrotStakingHandler(\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","PufferL2DepositorHandler","PufLockerHandler","L2RewardManagerHandler","L1RewardManagerHandler","PufferWithdrawalManagerHandler","NucleusBoringVaultHandler","NucleusTellerHandler","NucleusAccountantHandler","NucleusAtomicQueueHandler","MtwCarrotHandler","CarrotStakingHandler"],"mappings":";;;;;;;;;;;;;;;;;;;AA0BO,MAAMA,EAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA2CxB,YACEC,GACAC,GACAC,GACA;AA9CM,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;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,IACP,GACA,KAAK,QAAQ,IAAIU;AAAA,MACfV;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,YAAY,IAAIW;AAAA,MACnBX;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,cAAc,IAAIY;AAAA,MACrBZ;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,YAAY,IAAIa;AAAA,MACnBb;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,kBAAkB,IAAIc;AAAA,MACzBd;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,kBAAkB,IAAIe;AAAA,MACzBf;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,0BAA0B,IAAIgB;AAAA,MACjChB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,qBAAqB,IAAIiB;AAAA,MAC5BjB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,gBAAgB,IAAIkB;AAAA,MACvBlB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,oBAAoB,IAAImB;AAAA,MAC3BnB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,qBAAqB,IAAIoB;AAAA,MAC5BpB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,YAAY,IAAIqB;AAAA,MACnBrB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,eAAe,IAAIsB;AAAA,MACtBtB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQF,MAAa,mBAAmB;AACvB,WAAA,MAAM,KAAK,aAAa,iBAAiB;AAAA,EAAA;AAEpD;"}
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 { 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';\nimport { PufferWithdrawalManagerHandler } from '../contracts/handlers/puffer-withdrawal-manager-handler';\nimport { NucleusBoringVaultHandler } from '../contracts/handlers/nucleus-boring-vault-handler';\nimport { NucleusTellerHandler } from '../contracts/handlers/nucleus-teller-handler';\nimport { NucleusAccountantHandler } from '../contracts/handlers/nucleus-accountant-handler';\nimport { NucleusAtomicQueueHandler } from '../contracts/handlers/nucleus-atomic-queue-handler';\nimport { MtwCarrotHandler } from '../contracts/handlers/mtw-carrot-handler';\nimport { CarrotStakingHandler } from '../contracts/handlers/carrot-staking-handler';\nimport { DistributorHandler } from '../contracts/handlers/distributor-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 `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 /** Handler for the `PufferWithdrawalManager` contract. */\n public pufferWithdrawalManager: PufferWithdrawalManagerHandler;\n /** Handler for the `NucleusBoringVault` contract. */\n public nucleusBoringVault: NucleusBoringVaultHandler;\n /** Handler for the `NucleusTeller` contract. */\n public nucleusTeller: NucleusTellerHandler;\n /** Handler for the `NucleusAccountant` contract. */\n public nucleusAccountant: NucleusAccountantHandler;\n /** Handler for the `NucleusAtomicQueue` contract. */\n public nucleusAtomicQueue: NucleusAtomicQueueHandler;\n /** Handler for the `mtwCARROT` (Merkl Token Wrapper) contract. */\n public mtwCarrot: MtwCarrotHandler;\n /** Handler for the `CarrotStaker` contract. */\n public carrotStaker: CarrotStakingHandler;\n /** Handler for the `Distributor` contract. */\n public distributor: DistributorHandler;\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.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 this.pufferWithdrawalManager = new PufferWithdrawalManagerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusBoringVault = new NucleusBoringVaultHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusTeller = new NucleusTellerHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusAccountant = new NucleusAccountantHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.nucleusAtomicQueue = new NucleusAtomicQueueHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.mtwCarrot = new MtwCarrotHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.carrotStaker = new CarrotStakingHandler(\n chain,\n this.walletClient,\n this.publicClient,\n );\n this.distributor = new DistributorHandler(\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","PufferL2DepositorHandler","PufLockerHandler","L2RewardManagerHandler","L1RewardManagerHandler","PufferWithdrawalManagerHandler","NucleusBoringVaultHandler","NucleusTellerHandler","NucleusAccountantHandler","NucleusAtomicQueueHandler","MtwCarrotHandler","CarrotStakingHandler","DistributorHandler"],"mappings":";;;;;;;;;;;;;;;;;;;;AA2BO,MAAMA,EAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6CxB,YACEC,GACAC,GACAC,GACA;AAhDM,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;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,IACP,GACA,KAAK,QAAQ,IAAIU;AAAA,MACfV;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,YAAY,IAAIW;AAAA,MACnBX;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,cAAc,IAAIY;AAAA,MACrBZ;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,YAAY,IAAIa;AAAA,MACnBb;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,kBAAkB,IAAIc;AAAA,MACzBd;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,kBAAkB,IAAIe;AAAA,MACzBf;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,0BAA0B,IAAIgB;AAAA,MACjChB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,qBAAqB,IAAIiB;AAAA,MAC5BjB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,gBAAgB,IAAIkB;AAAA,MACvBlB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,oBAAoB,IAAImB;AAAA,MAC3BnB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,qBAAqB,IAAIoB;AAAA,MAC5BpB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,YAAY,IAAIqB;AAAA,MACnBrB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,eAAe,IAAIsB;AAAA,MACtBtB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP,GACA,KAAK,cAAc,IAAIuB;AAAA,MACrBvB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQF,MAAa,mBAAmB;AACvB,WAAA,MAAM,KAAK,aAAa,iBAAiB;AAAA,EAAA;AAEpD;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./writeContract-D97dSJQe.cjs"),p=require("./constants-DA2xUb9r.cjs");class k extends p.BaseError{constructor({callbackSelector:s,cause:t,data:n,extraData:f,sender:u,urls:a}){var c;super(t.shortMessage||"An error occurred while fetching for an offchain result.",{cause:t,metaMessages:[...t.metaMessages||[],(c=t.metaMessages)!=null&&c.length?"":[],"Offchain Gateway Call:",a&&[" Gateway URL(s):",...a.map(d=>` ${o.getUrl(d)}`)],` Sender: ${u}`,` Data: ${n}`,` Callback selector: ${s}`,` Extra data: ${f}`].flat(),name:"OffchainLookupError"})}}class b extends p.BaseError{constructor({result:s,url:t}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${o.getUrl(t)}`,`Response: ${o.stringify(s)}`],name:"OffchainLookupResponseMalformedError"})}}class E extends p.BaseError{constructor({sender:s,to:t}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${t}`,`OffchainLookup sender address: ${s}`],name:"OffchainLookupSenderMismatchError"})}}const L="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 O(i,{blockNumber:s,blockTag:t,data:n,to:f}){const{args:u}=o.decodeErrorResult({data:n,abi:[y]}),[a,c,d,l,r]=u,{ccipRead:e}=i,g=e&&typeof(e==null?void 0:e.request)=="function"?e.request:m;try{if(!o.isAddressEqual(f,a))throw new E({sender:a,to:f});const h=await g({data:d,sender:a,urls:c}),{data:w}=await o.call(i,{blockNumber:s,blockTag:t,data:p.concat([l,o.encodeAbiParameters([{type:"bytes"},{type:"bytes"}],[h,r])]),to:f});return w}catch(h){throw new k({callbackSelector:l,cause:h,data:n,extraData:r,sender:a,urls:c})}}async function m({data:i,sender:s,urls:t}){var f;let n=new Error("An unknown error occurred.");for(let u=0;u<t.length;u++){const a=t[u],c=a.includes("{data}")?"GET":"POST",d=c==="POST"?{data:i,sender:s}:void 0,l=c==="POST"?{"Content-Type":"application/json"}:{};try{const r=await fetch(a.replace("{sender}",s).replace("{data}",i),{body:JSON.stringify(d),headers:l,method:c});let e;if((f=r.headers.get("Content-Type"))!=null&&f.startsWith("application/json")?e=(await r.json()).data:e=await r.text(),!r.ok){n=new o.HttpRequestError({body:d,details:e!=null&&e.error?o.stringify(e.error):r.statusText,headers:r.headers,status:r.status,url:a});continue}if(!p.isHex(e)){n=new b({result:e,url:a});continue}return e}catch(r){n=new o.HttpRequestError({body:d,details:r.message,url:a})}}throw n}exports.ccipRequest=m;exports.offchainLookup=O;exports.offchainLookupAbiItem=y;exports.offchainLookupSignature=L;
2
- //# sourceMappingURL=ccip-BO_b9tFc.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./writeContract-BatuNuTe.cjs"),p=require("./constants-BcPRVxdH.cjs");class k extends p.BaseError{constructor({callbackSelector:s,cause:t,data:n,extraData:f,sender:u,urls:a}){var c;super(t.shortMessage||"An error occurred while fetching for an offchain result.",{cause:t,metaMessages:[...t.metaMessages||[],(c=t.metaMessages)!=null&&c.length?"":[],"Offchain Gateway Call:",a&&[" Gateway URL(s):",...a.map(d=>` ${o.getUrl(d)}`)],` Sender: ${u}`,` Data: ${n}`,` Callback selector: ${s}`,` Extra data: ${f}`].flat(),name:"OffchainLookupError"})}}class b extends p.BaseError{constructor({result:s,url:t}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${o.getUrl(t)}`,`Response: ${o.stringify(s)}`],name:"OffchainLookupResponseMalformedError"})}}class E extends p.BaseError{constructor({sender:s,to:t}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${t}`,`OffchainLookup sender address: ${s}`],name:"OffchainLookupSenderMismatchError"})}}const L="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 O(i,{blockNumber:s,blockTag:t,data:n,to:f}){const{args:u}=o.decodeErrorResult({data:n,abi:[y]}),[a,c,d,l,r]=u,{ccipRead:e}=i,g=e&&typeof(e==null?void 0:e.request)=="function"?e.request:m;try{if(!o.isAddressEqual(f,a))throw new E({sender:a,to:f});const h=await g({data:d,sender:a,urls:c}),{data:w}=await o.call(i,{blockNumber:s,blockTag:t,data:p.concat([l,o.encodeAbiParameters([{type:"bytes"},{type:"bytes"}],[h,r])]),to:f});return w}catch(h){throw new k({callbackSelector:l,cause:h,data:n,extraData:r,sender:a,urls:c})}}async function m({data:i,sender:s,urls:t}){var f;let n=new Error("An unknown error occurred.");for(let u=0;u<t.length;u++){const a=t[u],c=a.includes("{data}")?"GET":"POST",d=c==="POST"?{data:i,sender:s}:void 0,l=c==="POST"?{"Content-Type":"application/json"}:{};try{const r=await fetch(a.replace("{sender}",s).replace("{data}",i),{body:JSON.stringify(d),headers:l,method:c});let e;if((f=r.headers.get("Content-Type"))!=null&&f.startsWith("application/json")?e=(await r.json()).data:e=await r.text(),!r.ok){n=new o.HttpRequestError({body:d,details:e!=null&&e.error?o.stringify(e.error):r.statusText,headers:r.headers,status:r.status,url:a});continue}if(!p.isHex(e)){n=new b({result:e,url:a});continue}return e}catch(r){n=new o.HttpRequestError({body:d,details:r.message,url:a})}}throw n}exports.ccipRequest=m;exports.offchainLookup=O;exports.offchainLookupAbiItem=y;exports.offchainLookupSignature=L;
2
+ //# sourceMappingURL=ccip-C0xwQhXU.cjs.map