@pufferfinance/puffer-sdk 1.9.0 → 1.9.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 (190) 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 +82 -81
  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.js +2 -2
  8. package/dist/api/puffer-client.js.map +1 -1
  9. package/dist/ccip-BO_b9tFc.cjs +2 -0
  10. package/dist/ccip-BO_b9tFc.cjs.map +1 -0
  11. package/dist/ccip-DLDO0_x2.js +148 -0
  12. package/dist/ccip-DLDO0_x2.js.map +1 -0
  13. package/dist/chains/constants.cjs +1 -1
  14. package/dist/chains/constants.js +1 -1
  15. package/dist/constants-BjRNQpT2.js +1997 -0
  16. package/dist/constants-BjRNQpT2.js.map +1 -0
  17. package/dist/constants-DA2xUb9r.cjs +9 -0
  18. package/dist/constants-DA2xUb9r.cjs.map +1 -0
  19. package/dist/contracts/abis/holesky/PufferDepositor.cjs.map +1 -1
  20. package/dist/contracts/abis/holesky/PufferDepositor.js.map +1 -1
  21. package/dist/contracts/abis/holesky/PufferVaultV2.cjs.map +1 -1
  22. package/dist/contracts/abis/holesky/PufferVaultV2.js.map +1 -1
  23. package/dist/contracts/abis/l1-reward-manager-abis.cjs +1 -1
  24. package/dist/contracts/abis/l1-reward-manager-abis.cjs.map +1 -1
  25. package/dist/contracts/abis/l1-reward-manager-abis.js +1 -1
  26. package/dist/contracts/abis/l2-reward-manager-abis.cjs +1 -1
  27. package/dist/contracts/abis/l2-reward-manager-abis.cjs.map +1 -1
  28. package/dist/contracts/abis/l2-reward-manager-abis.js +1 -1
  29. package/dist/contracts/abis/mainnet/Accountant.cjs.map +1 -1
  30. package/dist/contracts/abis/mainnet/Accountant.js.map +1 -1
  31. package/dist/contracts/abis/mainnet/AtomicQueue.cjs.map +1 -1
  32. package/dist/contracts/abis/mainnet/AtomicQueue.js.map +1 -1
  33. package/dist/contracts/abis/mainnet/BoringVault.cjs.map +1 -1
  34. package/dist/contracts/abis/mainnet/BoringVault.js.map +1 -1
  35. package/dist/contracts/abis/mainnet/ERC20Permit.cjs.map +1 -1
  36. package/dist/contracts/abis/mainnet/ERC20Permit.js.map +1 -1
  37. package/dist/contracts/abis/mainnet/L1RewardManager.cjs.map +1 -1
  38. package/dist/contracts/abis/mainnet/L1RewardManager.js.map +1 -1
  39. package/dist/contracts/abis/mainnet/L2RewardManager.cjs.map +1 -1
  40. package/dist/contracts/abis/mainnet/L2RewardManager.js.map +1 -1
  41. package/dist/contracts/abis/mainnet/PufLocker.cjs.map +1 -1
  42. package/dist/contracts/abis/mainnet/PufLocker.js.map +1 -1
  43. package/dist/contracts/abis/mainnet/PufferDepositor.cjs.map +1 -1
  44. package/dist/contracts/abis/mainnet/PufferDepositor.js.map +1 -1
  45. package/dist/contracts/abis/mainnet/PufferL2Depositor.cjs.map +1 -1
  46. package/dist/contracts/abis/mainnet/PufferL2Depositor.js.map +1 -1
  47. package/dist/contracts/abis/mainnet/PufferVaultV2.cjs.map +1 -1
  48. package/dist/contracts/abis/mainnet/PufferVaultV2.js.map +1 -1
  49. package/dist/contracts/abis/mainnet/PufferWithdrawalManager.cjs.map +1 -1
  50. package/dist/contracts/abis/mainnet/PufferWithdrawalManager.js.map +1 -1
  51. package/dist/contracts/abis/mainnet/Teller.cjs.map +1 -1
  52. package/dist/contracts/abis/mainnet/Teller.js.map +1 -1
  53. package/dist/contracts/abis/nucleus-accountant-abis.cjs +1 -1
  54. package/dist/contracts/abis/nucleus-accountant-abis.cjs.map +1 -1
  55. package/dist/contracts/abis/nucleus-accountant-abis.js +1 -1
  56. package/dist/contracts/abis/nucleus-atomic-queue-abis.cjs +1 -1
  57. package/dist/contracts/abis/nucleus-atomic-queue-abis.cjs.map +1 -1
  58. package/dist/contracts/abis/nucleus-atomic-queue-abis.js +1 -1
  59. package/dist/contracts/abis/nucleus-boring-vault-abis.cjs +1 -1
  60. package/dist/contracts/abis/nucleus-boring-vault-abis.cjs.map +1 -1
  61. package/dist/contracts/abis/nucleus-boring-vault-abis.js +1 -1
  62. package/dist/contracts/abis/nucleus-teller-abis.cjs +1 -1
  63. package/dist/contracts/abis/nucleus-teller-abis.cjs.map +1 -1
  64. package/dist/contracts/abis/nucleus-teller-abis.js +1 -1
  65. package/dist/contracts/abis/puf-locker-abis.cjs +1 -1
  66. package/dist/contracts/abis/puf-locker-abis.cjs.map +1 -1
  67. package/dist/contracts/abis/puf-locker-abis.js +1 -1
  68. package/dist/contracts/abis/puffer-depositor-abis.cjs +1 -1
  69. package/dist/contracts/abis/puffer-depositor-abis.cjs.map +1 -1
  70. package/dist/contracts/abis/puffer-depositor-abis.js +1 -1
  71. package/dist/contracts/abis/puffer-depositor-abis.js.map +1 -1
  72. package/dist/contracts/abis/puffer-vault-abis.cjs +1 -1
  73. package/dist/contracts/abis/puffer-vault-abis.cjs.map +1 -1
  74. package/dist/contracts/abis/puffer-vault-abis.js +1 -1
  75. package/dist/contracts/abis/puffer-vault-abis.js.map +1 -1
  76. package/dist/contracts/abis/puffer-withdrawal-manager-abis.cjs +1 -1
  77. package/dist/contracts/abis/puffer-withdrawal-manager-abis.cjs.map +1 -1
  78. package/dist/contracts/abis/puffer-withdrawal-manager-abis.js +1 -1
  79. package/dist/contracts/addresses.cjs +1 -1
  80. package/dist/contracts/addresses.cjs.map +1 -1
  81. package/dist/contracts/addresses.js +1 -1
  82. package/dist/contracts/addresses.js.map +1 -1
  83. package/dist/contracts/handlers/erc20-permit-handler.cjs +1 -1
  84. package/dist/contracts/handlers/erc20-permit-handler.cjs.map +1 -1
  85. package/dist/contracts/handlers/erc20-permit-handler.d.ts +11128 -2714
  86. package/dist/contracts/handlers/erc20-permit-handler.js +3 -3
  87. package/dist/contracts/handlers/erc20-permit-handler.js.map +1 -1
  88. package/dist/contracts/handlers/l1-reward-manager-handler.cjs +1 -1
  89. package/dist/contracts/handlers/l1-reward-manager-handler.cjs.map +1 -1
  90. package/dist/contracts/handlers/l1-reward-manager-handler.d.ts +11128 -2714
  91. package/dist/contracts/handlers/l1-reward-manager-handler.js +2 -2
  92. package/dist/contracts/handlers/l1-reward-manager-handler.js.map +1 -1
  93. package/dist/contracts/handlers/l2-reward-manager-handler.cjs +1 -1
  94. package/dist/contracts/handlers/l2-reward-manager-handler.cjs.map +1 -1
  95. package/dist/contracts/handlers/l2-reward-manager-handler.d.ts +11128 -2714
  96. package/dist/contracts/handlers/l2-reward-manager-handler.js +2 -2
  97. package/dist/contracts/handlers/l2-reward-manager-handler.js.map +1 -1
  98. package/dist/contracts/handlers/nucleus-accountant-handler.cjs +1 -1
  99. package/dist/contracts/handlers/nucleus-accountant-handler.cjs.map +1 -1
  100. package/dist/contracts/handlers/nucleus-accountant-handler.d.ts +11128 -2714
  101. package/dist/contracts/handlers/nucleus-accountant-handler.js +1 -1
  102. package/dist/contracts/handlers/nucleus-accountant-handler.js.map +1 -1
  103. package/dist/contracts/handlers/nucleus-atomic-queue-handler.cjs +1 -1
  104. package/dist/contracts/handlers/nucleus-atomic-queue-handler.cjs.map +1 -1
  105. package/dist/contracts/handlers/nucleus-atomic-queue-handler.d.ts +11128 -2714
  106. package/dist/contracts/handlers/nucleus-atomic-queue-handler.js +2 -2
  107. package/dist/contracts/handlers/nucleus-atomic-queue-handler.js.map +1 -1
  108. package/dist/contracts/handlers/nucleus-boring-vault-handler.cjs +1 -1
  109. package/dist/contracts/handlers/nucleus-boring-vault-handler.cjs.map +1 -1
  110. package/dist/contracts/handlers/nucleus-boring-vault-handler.d.ts +11128 -2714
  111. package/dist/contracts/handlers/nucleus-boring-vault-handler.js +2 -2
  112. package/dist/contracts/handlers/nucleus-boring-vault-handler.js.map +1 -1
  113. package/dist/contracts/handlers/nucleus-teller-handler.cjs +1 -1
  114. package/dist/contracts/handlers/nucleus-teller-handler.cjs.map +1 -1
  115. package/dist/contracts/handlers/nucleus-teller-handler.d.ts +11128 -2714
  116. package/dist/contracts/handlers/nucleus-teller-handler.js +2 -2
  117. package/dist/contracts/handlers/nucleus-teller-handler.js.map +1 -1
  118. package/dist/contracts/handlers/puf-locker-handler.cjs +1 -1
  119. package/dist/contracts/handlers/puf-locker-handler.cjs.map +1 -1
  120. package/dist/contracts/handlers/puf-locker-handler.d.ts +11128 -2714
  121. package/dist/contracts/handlers/puf-locker-handler.js +2 -2
  122. package/dist/contracts/handlers/puf-locker-handler.js.map +1 -1
  123. package/dist/contracts/handlers/puffer-depositor-handler.cjs +1 -1
  124. package/dist/contracts/handlers/puffer-depositor-handler.cjs.map +1 -1
  125. package/dist/contracts/handlers/puffer-depositor-handler.d.ts +11128 -2714
  126. package/dist/contracts/handlers/puffer-depositor-handler.js +2 -2
  127. package/dist/contracts/handlers/puffer-depositor-handler.js.map +1 -1
  128. package/dist/contracts/handlers/puffer-l2-depositor-handler.cjs +1 -1
  129. package/dist/contracts/handlers/puffer-l2-depositor-handler.cjs.map +1 -1
  130. package/dist/contracts/handlers/puffer-l2-depositor-handler.d.ts +11128 -2714
  131. package/dist/contracts/handlers/puffer-l2-depositor-handler.js +2 -2
  132. package/dist/contracts/handlers/puffer-l2-depositor-handler.js.map +1 -1
  133. package/dist/contracts/handlers/puffer-vault-handler.cjs +1 -1
  134. package/dist/contracts/handlers/puffer-vault-handler.cjs.map +1 -1
  135. package/dist/contracts/handlers/puffer-vault-handler.d.ts +11128 -2714
  136. package/dist/contracts/handlers/puffer-vault-handler.js +2 -2
  137. package/dist/contracts/handlers/puffer-vault-handler.js.map +1 -1
  138. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.cjs +1 -1
  139. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.cjs.map +1 -1
  140. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.d.ts +11128 -2714
  141. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.js +2 -2
  142. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.js.map +1 -1
  143. package/dist/contracts/tokens.cjs +1 -1
  144. package/dist/contracts/tokens.cjs.map +1 -1
  145. package/dist/contracts/tokens.js +1 -1
  146. package/dist/contracts/tokens.js.map +1 -1
  147. package/dist/createWalletClient-BuLYysrp.cjs +4 -0
  148. package/dist/createWalletClient-BuLYysrp.cjs.map +1 -0
  149. package/dist/createWalletClient-DNcW-ENe.js +2028 -0
  150. package/dist/createWalletClient-DNcW-ENe.js.map +1 -0
  151. package/dist/errors/base-error.cjs.map +1 -1
  152. package/dist/errors/base-error.js.map +1 -1
  153. package/dist/{getContract-MrPLx6gp.cjs → getContract-3QbyfZBF.cjs} +2 -2
  154. package/dist/getContract-3QbyfZBF.cjs.map +1 -0
  155. package/dist/{getContract-B3Spz0SO.js → getContract-CezEyDf-.js} +2 -2
  156. package/dist/{getContract-MrPLx6gp.cjs.map → getContract-CezEyDf-.js.map} +1 -1
  157. package/dist/main.cjs +1 -1
  158. package/dist/main.js +1 -1
  159. package/dist/secp256k1-3OC5y4qp.js +1579 -0
  160. package/dist/secp256k1-3OC5y4qp.js.map +1 -0
  161. package/dist/secp256k1-bcahnPX9.cjs +2 -0
  162. package/dist/secp256k1-bcahnPX9.cjs.map +1 -0
  163. package/dist/utils/version.cjs +1 -1
  164. package/dist/utils/version.js +1 -1
  165. package/dist/writeContract-ChuHpJLC.js +3799 -0
  166. package/dist/writeContract-ChuHpJLC.js.map +1 -0
  167. package/dist/writeContract-D97dSJQe.cjs +32 -0
  168. package/dist/writeContract-D97dSJQe.cjs.map +1 -0
  169. package/package.json +13 -13
  170. package/dist/ccip-D4klNwCt.js +0 -159
  171. package/dist/ccip-D4klNwCt.js.map +0 -1
  172. package/dist/ccip-DLDqFodf.cjs +0 -2
  173. package/dist/ccip-DLDqFodf.cjs.map +0 -1
  174. package/dist/constants-BvU-JhfL.cjs +0 -9
  175. package/dist/constants-BvU-JhfL.cjs.map +0 -1
  176. package/dist/constants-rWWWhxR_.js +0 -2099
  177. package/dist/constants-rWWWhxR_.js.map +0 -1
  178. package/dist/createWalletClient-Bmopj8MM.cjs +0 -4
  179. package/dist/createWalletClient-Bmopj8MM.cjs.map +0 -1
  180. package/dist/createWalletClient-DKcpswHR.js +0 -2007
  181. package/dist/createWalletClient-DKcpswHR.js.map +0 -1
  182. package/dist/getContract-B3Spz0SO.js.map +0 -1
  183. package/dist/secp256k1-BLbXMlpX.js +0 -1172
  184. package/dist/secp256k1-BLbXMlpX.js.map +0 -1
  185. package/dist/secp256k1-CFnFaJ0H.cjs +0 -2
  186. package/dist/secp256k1-CFnFaJ0H.cjs.map +0 -1
  187. package/dist/writeContract-BBHpAss8.cjs +0 -32
  188. package/dist/writeContract-BBHpAss8.cjs.map +0 -1
  189. package/dist/writeContract-RluxM31W.js +0 -3833
  190. package/dist/writeContract-RluxM31W.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("../constants-BvU-JhfL.cjs"),d=require("../createWalletClient-Bmopj8MM.cjs"),_=require("../writeContract-BBHpAss8.cjs");function S(n,e={}){const{key:o="custom",name:h="Custom Provider",retryDelay:l}=e;return({retryCount:u})=>d.createTransport({key:o,name:h,request:n.request.bind(n),retryCount:e.retryCount??u,retryDelay:l,type:"custom"})}function M(n,e={}){const{key:o="fallback",name:h="Fallback",rank:l=!1,retryCount:u,retryDelay:T}=e;return({chain:f,pollingInterval:k=4e3,timeout:c,...b})=>{let i=n,C=()=>{};const g=d.createTransport({key:o,name:h,async request({method:t,params:r}){const p=async(y=0)=>{const a=i[y]({...b,chain:f,retryCount:0,timeout:c});try{const s=await a.request({method:t,params:r});return C({method:t,params:r,response:s,transport:a,status:"success"}),s}catch(s){if(C({error:s,method:t,params:r,transport:a,status:"error"}),P(s)||y===i.length-1)throw s;return p(y+1)}};return p()},retryCount:u,retryDelay:T,type:"fallback"},{onResponse:t=>C=t,transports:i.map(t=>t({chain:f,retryCount:0}))});if(l){const t=typeof l=="object"?l:{};W({chain:f,interval:t.interval??k,onTransports:r=>i=r,sampleCount:t.sampleCount,timeout:t.timeout,transports:i,weights:t.weights})}return g}}function P(n){return"code"in n&&typeof n.code=="number"&&(n.code===_.TransactionRejectedRpcError.code||n.code===_.UserRejectedRequestError.code||n.code===5e3)}function W({chain:n,interval:e=4e3,onTransports:o,sampleCount:h=10,timeout:l=1e3,transports:u,weights:T={}}){const{stability:f=.7,latency:k=.3}=T,c=[],b=async()=>{const i=await Promise.all(u.map(async t=>{const r=t({chain:n,retryCount:0,timeout:l}),p=Date.now();let y,a;try{await r.request({method:"net_listening"}),a=1}catch{a=0}finally{y=Date.now()}return{latency:y-p,success:a}}));c.push(i),c.length>h&&c.shift();const C=Math.max(...c.map(t=>Math.max(...t.map(({latency:r})=>r)))),g=u.map((t,r)=>{const p=c.map(m=>m[r].latency),a=1-p.reduce((m,q)=>m+q,0)/p.length/C,s=c.map(m=>m[r].success),x=s.reduce((m,q)=>m+q,0)/s.length;return x===0?[0,r]:[k*a+f*x,r]}).sort((t,r)=>r[0]-t[0]);o(g.map(([,t])=>u[t])),await _.wait(e),b()};b()}class w{static createPublicClient(e){return d.createPublicClient({chain:R.VIEM_CHAINS[e.chain],transport:w.extractTransportConfig(e)})}static createWalletClient(e){return d.createWalletClient({chain:R.VIEM_CHAINS[e.chain],transport:w.extractTransportConfig(e)})}static extractTransportConfig(e){return"rpcUrls"in e?M(e.rpcUrls.map(o=>d.http(o))):S(e.provider,e.config)}}exports.PufferClientHelpers=w;
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;
2
2
  //# sourceMappingURL=puffer-client-helpers.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"puffer-client-helpers.cjs","sources":["../../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/clients/transports/fallback.js","../../lib/api/puffer-client-helpers.ts"],"sourcesContent":["import { createTransport, } from './createTransport.js';\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom(provider, config = {}) {\n const { key = 'custom', name = 'Custom Provider', retryDelay } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n });\n}\n//# sourceMappingURL=custom.js.map","import { TransactionRejectedRpcError, UserRejectedRequestError, } from '../../errors/rpc.js';\nimport { wait } from '../../utils/wait.js';\nimport { createTransport, } from './createTransport.js';\nexport function fallback(transports_, config = {}) {\n const { key = 'fallback', name = 'Fallback', rank = false, retryCount, retryDelay, } = config;\n return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {\n let transports = transports_;\n let onResponse = () => { };\n const transport = createTransport({\n key,\n name,\n async request({ method, params }) {\n const fetch = async (i = 0) => {\n const transport = transports[i]({\n ...rest,\n chain,\n retryCount: 0,\n timeout,\n });\n try {\n const response = await transport.request({\n method,\n params,\n });\n onResponse({\n method,\n params: params,\n response,\n transport,\n status: 'success',\n });\n return response;\n }\n catch (err) {\n onResponse({\n error: err,\n method,\n params: params,\n transport,\n status: 'error',\n });\n if (shouldThrow(err))\n throw err;\n // If we've reached the end of the fallbacks, throw the error.\n if (i === transports.length - 1)\n throw err;\n // Otherwise, try the next fallback.\n return fetch(i + 1);\n }\n };\n return fetch();\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n }, {\n onResponse: (fn) => (onResponse = fn),\n transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n });\n if (rank) {\n const rankOptions = (typeof rank === 'object' ? rank : {});\n rankTransports({\n chain,\n interval: rankOptions.interval ?? pollingInterval,\n onTransports: (transports_) => (transports = transports_),\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n });\n }\n return transport;\n });\n}\nfunction shouldThrow(error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === TransactionRejectedRpcError.code ||\n error.code === UserRejectedRequestError.code ||\n error.code === 5000 // CAIP UserRejectedRequestError\n )\n return true;\n }\n return false;\n}\n/** @internal */\nexport function rankTransports({ chain, interval = 4_000, onTransports, sampleCount = 10, timeout = 1_000, transports, weights = {}, }) {\n const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } = weights;\n const samples = [];\n const rankTransports_ = async () => {\n // 1. Take a sample from each Transport.\n const sample = await Promise.all(transports.map(async (transport) => {\n const transport_ = transport({ chain, retryCount: 0, timeout });\n const start = Date.now();\n let end;\n let success;\n try {\n await transport_.request({ method: 'net_listening' });\n success = 1;\n }\n catch {\n success = 0;\n }\n finally {\n end = Date.now();\n }\n const latency = end - start;\n return { latency, success };\n }));\n // 2. Store the sample. If we have more than `sampleCount` samples, remove\n // the oldest sample.\n samples.push(sample);\n if (samples.length > sampleCount)\n samples.shift();\n // 3. Calculate the max latency from samples.\n const maxLatency = Math.max(...samples.map((sample) => Math.max(...sample.map(({ latency }) => latency))));\n // 4. Calculate the score for each Transport.\n const scores = transports\n .map((_, i) => {\n const latencies = samples.map((sample) => sample[i].latency);\n const meanLatency = latencies.reduce((acc, latency) => acc + latency, 0) /\n latencies.length;\n const latencyScore = 1 - meanLatency / maxLatency;\n const successes = samples.map((sample) => sample[i].success);\n const stabilityScore = successes.reduce((acc, success) => acc + success, 0) /\n successes.length;\n if (stabilityScore === 0)\n return [0, i];\n return [\n latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n i,\n ];\n })\n .sort((a, b) => b[0] - a[0]);\n // 5. Sort the Transports by score.\n onTransports(scores.map(([, i]) => transports[i]));\n // 6. Wait, and then rank again.\n await wait(interval);\n rankTransports_();\n };\n rankTransports_();\n}\n//# sourceMappingURL=fallback.js.map","import {\n CustomTransportConfig,\n createPublicClient as createPublicClientViem,\n createWalletClient as createWalletClientViem,\n http,\n fallback,\n custom,\n Transport,\n PublicClient,\n WalletClient,\n} from 'viem';\nimport { Chain, VIEM_CHAINS } from '../chains/constants';\nimport { TransportProvider } from '../utils/types';\n\nexport type ClientConfig = {\n chain: Chain;\n} & (\n | { rpcUrls: string[] }\n | { provider: TransportProvider; config?: CustomTransportConfig }\n);\n\n/**\n * Helper methods for the main `PufferClient`.\n */\nexport class PufferClientHelpers {\n /**\n * Helper method for creating a public client based on the\n * configuration\n *\n * @param config Configuration for the public client.\n * @returns The public client created with viem.\n */\n public static createPublicClient(config: ClientConfig): PublicClient {\n return createPublicClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n /**\n * Helper method for creating a wallet client based on the\n * configuration\n *\n * @param config Configuration for the wallet client.\n * @returns The wallet client created with viem.\n */\n public static createWalletClient(config: ClientConfig): WalletClient {\n return createWalletClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n private static extractTransportConfig(config: ClientConfig): Transport {\n if ('rpcUrls' in config) {\n return fallback(config.rpcUrls.map((url) => http(url)));\n } else {\n return custom(config.provider, config.config);\n }\n }\n}\n"],"names":["custom","provider","config","key","name","retryDelay","defaultRetryCount","createTransport","fallback","transports_","rank","retryCount","chain","pollingInterval","timeout","rest","transports","onResponse","transport","method","params","fetch","i","response","err","shouldThrow","fn","rankOptions","rankTransports","error","TransactionRejectedRpcError","UserRejectedRequestError","interval","onTransports","sampleCount","weights","stabilityWeight","latencyWeight","samples","rankTransports_","sample","transport_","start","end","success","maxLatency","latency","scores","_","latencies","latencyScore","acc","successes","stabilityScore","a","b","wait","PufferClientHelpers","createPublicClientViem","VIEM_CHAINS","createWalletClientViem","url","http"],"mappings":"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","x_google_ignoreList":[0,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,111 +1,112 @@
1
- import { V as q } from "../constants-rWWWhxR_.js";
2
- import { b as R, a as _, c as D, h as U } from "../createWalletClient-DKcpswHR.js";
3
- import { T as W, U as j, k as v } from "../writeContract-RluxM31W.js";
4
- function E(n, e = {}) {
5
- const { key: o = "custom", name: h = "Custom Provider", retryDelay: l } = e;
6
- return ({ retryCount: u }) => R({
7
- key: o,
8
- name: h,
9
- request: n.request.bind(n),
10
- retryCount: e.retryCount ?? u,
11
- retryDelay: l,
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";
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,
9
+ request: s.request.bind(s),
10
+ retryCount: t.retryCount ?? h,
11
+ retryDelay: i,
12
12
  type: "custom"
13
13
  });
14
14
  }
15
- function L(n, e = {}) {
16
- const { key: o = "fallback", name: h = "Fallback", rank: l = !1, retryCount: u, retryDelay: b } = e;
17
- return ({ chain: f, pollingInterval: w = 4e3, timeout: c, ...d }) => {
18
- let i = n, C = () => {
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 = () => {
19
19
  };
20
- const k = R({
21
- key: o,
22
- name: h,
23
- async request({ method: t, params: r }) {
24
- const p = async (y = 0) => {
25
- const s = i[y]({
26
- ...d,
27
- chain: f,
20
+ const k = _({
21
+ key: u,
22
+ name: m,
23
+ async request({ method: e, params: r }) {
24
+ const n = async (l = 0) => {
25
+ const p = o[l]({
26
+ ...c,
27
+ chain: C,
28
28
  retryCount: 0,
29
- timeout: c
29
+ timeout: w
30
30
  });
31
31
  try {
32
- const a = await s.request({
33
- method: t,
32
+ const a = await p.request({
33
+ method: e,
34
34
  params: r
35
35
  });
36
- return C({
37
- method: t,
36
+ return d({
37
+ method: e,
38
38
  params: r,
39
39
  response: a,
40
- transport: s,
40
+ transport: p,
41
41
  status: "success"
42
42
  }), a;
43
43
  } catch (a) {
44
- if (C({
44
+ if (d({
45
45
  error: a,
46
- method: t,
46
+ method: e,
47
47
  params: r,
48
- transport: s,
48
+ transport: p,
49
49
  status: "error"
50
- }), M(a) || y === i.length - 1)
50
+ }), P(a) || l === o.length - 1)
51
51
  throw a;
52
- return p(y + 1);
52
+ return n(l + 1);
53
53
  }
54
54
  };
55
- return p();
55
+ return n();
56
56
  },
57
- retryCount: u,
58
- retryDelay: b,
57
+ retryCount: h,
58
+ retryDelay: f,
59
59
  type: "fallback"
60
60
  }, {
61
- onResponse: (t) => C = t,
62
- transports: i.map((t) => t({ chain: f, retryCount: 0 }))
61
+ onResponse: (e) => d = e,
62
+ transports: o.map((e) => e({ chain: C, retryCount: 0 }))
63
63
  });
64
- if (l) {
65
- const t = typeof l == "object" ? l : {};
66
- P({
67
- chain: f,
68
- interval: t.interval ?? w,
69
- onTransports: (r) => i = r,
70
- sampleCount: t.sampleCount,
71
- timeout: t.timeout,
72
- transports: i,
73
- weights: t.weights
64
+ if (i) {
65
+ const e = typeof i == "object" ? i : {};
66
+ S({
67
+ chain: C,
68
+ interval: e.interval ?? b,
69
+ onTransports: (r) => o = r,
70
+ ping: e.ping,
71
+ sampleCount: e.sampleCount,
72
+ timeout: e.timeout,
73
+ transports: o,
74
+ weights: e.weights
74
75
  });
75
76
  }
76
77
  return k;
77
78
  };
78
79
  }
79
- function M(n) {
80
- return "code" in n && typeof n.code == "number" && (n.code === W.code || n.code === j.code || n.code === 5e3);
80
+ function P(s) {
81
+ return "code" in s && typeof s.code == "number" && (s.code === j.code || s.code === v.code || s.code === 5e3);
81
82
  }
82
- function P({ chain: n, interval: e = 4e3, onTransports: o, sampleCount: h = 10, timeout: l = 1e3, transports: u, weights: b = {} }) {
83
- const { stability: f = 0.7, latency: w = 0.3 } = b, c = [], d = async () => {
84
- const i = await Promise.all(u.map(async (t) => {
85
- const r = t({ chain: n, retryCount: 0, timeout: l }), p = Date.now();
86
- let y, s;
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;
87
88
  try {
88
- await r.request({ method: "net_listening" }), s = 1;
89
+ await (m ? m({ transport: n }) : n.request({ method: "net_listening" })), a = 1;
89
90
  } catch {
90
- s = 0;
91
+ a = 0;
91
92
  } finally {
92
- y = Date.now();
93
+ p = Date.now();
93
94
  }
94
- return { latency: y - p, success: s };
95
+ return { latency: p - l, success: a };
95
96
  }));
96
- c.push(i), c.length > h && c.shift();
97
- const C = Math.max(...c.map((t) => Math.max(...t.map(({ latency: r }) => r)))), k = u.map((t, r) => {
98
- const p = c.map((m) => m[r].latency), s = 1 - p.reduce((m, T) => m + T, 0) / p.length / C, a = c.map((m) => m[r].success), x = a.reduce((m, T) => m + T, 0) / a.length;
99
- return x === 0 ? [0, r] : [
100
- w * s + f * x,
101
- r
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
+ n
102
103
  ];
103
- }).sort((t, r) => r[0] - t[0]);
104
- o(k.map(([, t]) => u[t])), await v(e), d();
104
+ }).sort((r, n) => n[0] - r[0]);
105
+ u(e.map(([, r]) => f[r])), await E(t), o();
105
106
  };
106
- d();
107
+ o();
107
108
  }
108
- class g {
109
+ class x {
109
110
  /**
110
111
  * Helper method for creating a public client based on the
111
112
  * configuration
@@ -113,10 +114,10 @@ class g {
113
114
  * @param config Configuration for the public client.
114
115
  * @returns The public client created with viem.
115
116
  */
116
- static createPublicClient(e) {
117
- return _({
118
- chain: q[e.chain],
119
- transport: g.extractTransportConfig(e)
117
+ static createPublicClient(t) {
118
+ return D({
119
+ chain: R[t.chain],
120
+ transport: x.extractTransportConfig(t)
120
121
  });
121
122
  }
122
123
  /**
@@ -126,17 +127,17 @@ class g {
126
127
  * @param config Configuration for the wallet client.
127
128
  * @returns The wallet client created with viem.
128
129
  */
129
- static createWalletClient(e) {
130
- return D({
131
- chain: q[e.chain],
132
- transport: g.extractTransportConfig(e)
130
+ static createWalletClient(t) {
131
+ return U({
132
+ chain: R[t.chain],
133
+ transport: x.extractTransportConfig(t)
133
134
  });
134
135
  }
135
- static extractTransportConfig(e) {
136
- return "rpcUrls" in e ? L(e.rpcUrls.map((o) => U(o))) : E(e.provider, e.config);
136
+ static extractTransportConfig(t) {
137
+ return "rpcUrls" in t ? M(t.rpcUrls.map((u) => W(u))) : L(t.provider, t.config);
137
138
  }
138
139
  }
139
140
  export {
140
- g as PufferClientHelpers
141
+ x as PufferClientHelpers
141
142
  };
142
143
  //# sourceMappingURL=puffer-client-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"puffer-client-helpers.js","sources":["../../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/.pnpm/viem@2.18.8_typescript@5.5.4_zod@3.23.8/node_modules/viem/_esm/clients/transports/fallback.js","../../lib/api/puffer-client-helpers.ts"],"sourcesContent":["import { createTransport, } from './createTransport.js';\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom(provider, config = {}) {\n const { key = 'custom', name = 'Custom Provider', retryDelay } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n });\n}\n//# sourceMappingURL=custom.js.map","import { TransactionRejectedRpcError, UserRejectedRequestError, } from '../../errors/rpc.js';\nimport { wait } from '../../utils/wait.js';\nimport { createTransport, } from './createTransport.js';\nexport function fallback(transports_, config = {}) {\n const { key = 'fallback', name = 'Fallback', rank = false, retryCount, retryDelay, } = config;\n return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {\n let transports = transports_;\n let onResponse = () => { };\n const transport = createTransport({\n key,\n name,\n async request({ method, params }) {\n const fetch = async (i = 0) => {\n const transport = transports[i]({\n ...rest,\n chain,\n retryCount: 0,\n timeout,\n });\n try {\n const response = await transport.request({\n method,\n params,\n });\n onResponse({\n method,\n params: params,\n response,\n transport,\n status: 'success',\n });\n return response;\n }\n catch (err) {\n onResponse({\n error: err,\n method,\n params: params,\n transport,\n status: 'error',\n });\n if (shouldThrow(err))\n throw err;\n // If we've reached the end of the fallbacks, throw the error.\n if (i === transports.length - 1)\n throw err;\n // Otherwise, try the next fallback.\n return fetch(i + 1);\n }\n };\n return fetch();\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n }, {\n onResponse: (fn) => (onResponse = fn),\n transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n });\n if (rank) {\n const rankOptions = (typeof rank === 'object' ? rank : {});\n rankTransports({\n chain,\n interval: rankOptions.interval ?? pollingInterval,\n onTransports: (transports_) => (transports = transports_),\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n });\n }\n return transport;\n });\n}\nfunction shouldThrow(error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === TransactionRejectedRpcError.code ||\n error.code === UserRejectedRequestError.code ||\n error.code === 5000 // CAIP UserRejectedRequestError\n )\n return true;\n }\n return false;\n}\n/** @internal */\nexport function rankTransports({ chain, interval = 4_000, onTransports, sampleCount = 10, timeout = 1_000, transports, weights = {}, }) {\n const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } = weights;\n const samples = [];\n const rankTransports_ = async () => {\n // 1. Take a sample from each Transport.\n const sample = await Promise.all(transports.map(async (transport) => {\n const transport_ = transport({ chain, retryCount: 0, timeout });\n const start = Date.now();\n let end;\n let success;\n try {\n await transport_.request({ method: 'net_listening' });\n success = 1;\n }\n catch {\n success = 0;\n }\n finally {\n end = Date.now();\n }\n const latency = end - start;\n return { latency, success };\n }));\n // 2. Store the sample. If we have more than `sampleCount` samples, remove\n // the oldest sample.\n samples.push(sample);\n if (samples.length > sampleCount)\n samples.shift();\n // 3. Calculate the max latency from samples.\n const maxLatency = Math.max(...samples.map((sample) => Math.max(...sample.map(({ latency }) => latency))));\n // 4. Calculate the score for each Transport.\n const scores = transports\n .map((_, i) => {\n const latencies = samples.map((sample) => sample[i].latency);\n const meanLatency = latencies.reduce((acc, latency) => acc + latency, 0) /\n latencies.length;\n const latencyScore = 1 - meanLatency / maxLatency;\n const successes = samples.map((sample) => sample[i].success);\n const stabilityScore = successes.reduce((acc, success) => acc + success, 0) /\n successes.length;\n if (stabilityScore === 0)\n return [0, i];\n return [\n latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n i,\n ];\n })\n .sort((a, b) => b[0] - a[0]);\n // 5. Sort the Transports by score.\n onTransports(scores.map(([, i]) => transports[i]));\n // 6. Wait, and then rank again.\n await wait(interval);\n rankTransports_();\n };\n rankTransports_();\n}\n//# sourceMappingURL=fallback.js.map","import {\n CustomTransportConfig,\n createPublicClient as createPublicClientViem,\n createWalletClient as createWalletClientViem,\n http,\n fallback,\n custom,\n Transport,\n PublicClient,\n WalletClient,\n} from 'viem';\nimport { Chain, VIEM_CHAINS } from '../chains/constants';\nimport { TransportProvider } from '../utils/types';\n\nexport type ClientConfig = {\n chain: Chain;\n} & (\n | { rpcUrls: string[] }\n | { provider: TransportProvider; config?: CustomTransportConfig }\n);\n\n/**\n * Helper methods for the main `PufferClient`.\n */\nexport class PufferClientHelpers {\n /**\n * Helper method for creating a public client based on the\n * configuration\n *\n * @param config Configuration for the public client.\n * @returns The public client created with viem.\n */\n public static createPublicClient(config: ClientConfig): PublicClient {\n return createPublicClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n /**\n * Helper method for creating a wallet client based on the\n * configuration\n *\n * @param config Configuration for the wallet client.\n * @returns The wallet client created with viem.\n */\n public static createWalletClient(config: ClientConfig): WalletClient {\n return createWalletClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n private static extractTransportConfig(config: ClientConfig): Transport {\n if ('rpcUrls' in config) {\n return fallback(config.rpcUrls.map((url) => http(url)));\n } else {\n return custom(config.provider, config.config);\n }\n }\n}\n"],"names":["custom","provider","config","key","name","retryDelay","defaultRetryCount","createTransport","fallback","transports_","rank","retryCount","chain","pollingInterval","timeout","rest","transports","onResponse","transport","method","params","fetch","i","response","err","shouldThrow","fn","rankOptions","rankTransports","error","TransactionRejectedRpcError","UserRejectedRequestError","interval","onTransports","sampleCount","weights","stabilityWeight","latencyWeight","samples","rankTransports_","sample","transport_","start","end","success","maxLatency","latency","scores","_","latencies","latencyScore","acc","successes","stabilityScore","a","b","wait","PufferClientHelpers","createPublicClientViem","VIEM_CHAINS","createWalletClientViem","url","http"],"mappings":"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","x_google_ignoreList":[0,1]}
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,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var u=(l,e,r)=>e in l?s(l,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):l[e]=r;var t=(l,e,r)=>u(l,typeof e!="symbol"?e+"":e,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../constants-BvU-JhfL.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"),f=require("../contracts/handlers/l1-reward-manager-handler.cjs"),_=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"),n=require("../createWalletClient-Bmopj8MM.cjs");class M{constructor(e,r,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");const i=c.VIEM_CHAINS[e];this.walletClient=r??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 f.L1RewardManagerHandler(e,this.walletClient,this.publicClient),this.pufferWithdrawalManager=new _.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)}async requestAddresses(){return await this.walletClient.requestAddresses()}}exports.PufferClient=M;
1
+ "use strict";var s=Object.defineProperty;var u=(l,e,r)=>e in l?s(l,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):l[e]=r;var t=(l,e,r)=>u(l,typeof e!="symbol"?e+"":e,r);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"),f=require("../contracts/handlers/l1-reward-manager-handler.cjs"),_=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"),n=require("../createWalletClient-BuLYysrp.cjs");class M{constructor(e,r,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");const i=c.VIEM_CHAINS[e];this.walletClient=r??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 f.L1RewardManagerHandler(e,this.walletClient,this.publicClient),this.pufferWithdrawalManager=new _.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)}async requestAddresses(){return await this.walletClient.requestAddresses()}}exports.PufferClient=M;
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';\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\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 }\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"],"mappings":"ylCAwBO,MAAMA,CAAa,CAuCxB,YACEC,EACAC,EACAC,EACA,CA1CMC,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,2BAgBC,MAAAC,EAAYC,cAAYL,CAAK,EAG9B,KAAA,aACHC,GACAK,qBAAmB,CACjB,MAAOF,EACP,UAAWG,EAAAA,KAAK,CAAA,CACjB,EACE,KAAA,aACHL,GACAM,qBAAmB,CACjB,MAAOJ,EACP,UAAWG,EAAAA,KAAK,CAAA,CACjB,EAEH,KAAK,YAAc,IAAIE,EAAA,mBACrBT,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,MAAQ,IAAIU,EAAA,mBACfV,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,UAAY,IAAIW,EAAA,uBACnBX,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,YAAc,IAAIY,EAAA,yBACrBZ,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,UAAY,IAAIa,EAAA,iBACnBb,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,gBAAkB,IAAIc,EAAA,uBACzBd,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,gBAAkB,IAAIe,EAAA,uBACzBf,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,wBAA0B,IAAIgB,EAAA,+BACjChB,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,mBAAqB,IAAIiB,EAAA,0BAC5BjB,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,cAAgB,IAAIkB,EAAA,qBACvBlB,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,kBAAoB,IAAImB,EAAA,yBAC3BnB,EACA,KAAK,aACL,KAAK,YAAA,EAEP,KAAK,mBAAqB,IAAIoB,EAAA,0BAC5BpB,EACA,KAAK,aACL,KAAK,YAAA,CAET,CAOA,MAAa,kBAAmB,CACvB,OAAA,MAAM,KAAK,aAAa,kBACjC,CACF"}
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';\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\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 }\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"],"mappings":"ylCAwBO,MAAMA,CAAa,CAuCxB,YACEC,EACAC,EACAC,EACA,CA1CMC,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,2BAgBC,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,CAAA,CAQF,MAAa,kBAAmB,CACvB,OAAA,MAAM,KAAK,aAAa,iBAAiB,CAAA,CAEpD"}
@@ -1,7 +1,7 @@
1
1
  var a = Object.defineProperty;
2
2
  var u = (l, e, i) => e in l ? a(l, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : l[e] = i;
3
3
  var t = (l, e, i) => u(l, typeof e != "symbol" ? e + "" : e, i);
4
- import { V as o } from "../constants-rWWWhxR_.js";
4
+ import { V as o } from "../constants-BjRNQpT2.js";
5
5
  import { PufferVaultHandler as p } from "../contracts/handlers/puffer-vault-handler.js";
6
6
  import { PufferDepositorHandler as c } from "../contracts/handlers/puffer-depositor-handler.js";
7
7
  import { PufferL2DepositorHandler as w } from "../contracts/handlers/puffer-l2-depositor-handler.js";
@@ -14,7 +14,7 @@ import { NucleusBoringVaultHandler as b } from "../contracts/handlers/nucleus-bo
14
14
  import { NucleusTellerHandler as H } from "../contracts/handlers/nucleus-teller-handler.js";
15
15
  import { NucleusAccountantHandler as g } from "../contracts/handlers/nucleus-accountant-handler.js";
16
16
  import { NucleusAtomicQueueHandler as M } from "../contracts/handlers/nucleus-atomic-queue-handler.js";
17
- import { c as P, a as A, h as n } from "../createWalletClient-DKcpswHR.js";
17
+ import { c as P, a as A, h as n } from "../createWalletClient-DNcW-ENe.js";
18
18
  class y {
19
19
  /**
20
20
  * Create the Puffer Client.
@@ -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';\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\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 }\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"],"mappings":";;;;;;;;;;;;;;;;;AAwBO,MAAMA,EAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuCxB,YACEC,GACAC,GACAC,GACA;AA1CM,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;AAgBC,UAAAC,IAAYC,EAAYL,CAAK;AAG9B,SAAA,eACHC,KACAK,EAAmB;AAAA,MACjB,OAAOF;AAAA,MACP,WAAWG,EAAK;AAAA,IAAA,CACjB,GACE,KAAA,eACHL,KACAM,EAAmB;AAAA,MACjB,OAAOJ;AAAA,MACP,WAAWG,EAAK;AAAA,IAAA,CACjB,GAEH,KAAK,cAAc,IAAIE;AAAA,MACrBT;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,QAAQ,IAAIU;AAAA,MACfV;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,YAAY,IAAIW;AAAA,MACnBX;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,cAAc,IAAIY;AAAA,MACrBZ;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,YAAY,IAAIa;AAAA,MACnBb;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,kBAAkB,IAAIc;AAAA,MACzBd;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,kBAAkB,IAAIe;AAAA,MACzBf;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,0BAA0B,IAAIgB;AAAA,MACjChB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,qBAAqB,IAAIiB;AAAA,MAC5BjB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,gBAAgB,IAAIkB;AAAA,MACvBlB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,oBAAoB,IAAImB;AAAA,MAC3BnB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA,GAEP,KAAK,qBAAqB,IAAIoB;AAAA,MAC5BpB;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAET;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAa,mBAAmB;AACvB,WAAA,MAAM,KAAK,aAAa;EACjC;AACF;"}
1
+ {"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';\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\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 }\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"],"mappings":";;;;;;;;;;;;;;;;;AAwBO,MAAMA,EAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuCxB,YACEC,GACAC,GACAC,GACA;AA1CM,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;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;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQF,MAAa,mBAAmB;AACvB,WAAA,MAAM,KAAK,aAAa,iBAAiB;AAAA,EAAA;AAEpD;"}
@@ -0,0 +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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ccip-BO_b9tFc.cjs","sources":["../node_modules/.pnpm/viem@2.21.55_typescript@5.7.2_zod@3.24.1/node_modules/viem/_esm/errors/ccip.js","../node_modules/.pnpm/viem@2.21.55_typescript@5.7.2_zod@3.24.1/node_modules/viem/_esm/utils/ccip.js"],"sourcesContent":["import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class OffchainLookupError extends BaseError {\n constructor({ callbackSelector, cause, data, extraData, sender, urls, }) {\n super(cause.shortMessage ||\n 'An error occurred while fetching for an offchain result.', {\n cause,\n metaMessages: [\n ...(cause.metaMessages || []),\n cause.metaMessages?.length ? '' : [],\n 'Offchain Gateway Call:',\n urls && [\n ' Gateway URL(s):',\n ...urls.map((url) => ` ${getUrl(url)}`),\n ],\n ` Sender: ${sender}`,\n ` Data: ${data}`,\n ` Callback selector: ${callbackSelector}`,\n ` Extra data: ${extraData}`,\n ].flat(),\n name: 'OffchainLookupError',\n });\n }\n}\nexport class OffchainLookupResponseMalformedError extends BaseError {\n constructor({ result, url }) {\n super('Offchain gateway response is malformed. Response data must be a hex value.', {\n metaMessages: [\n `Gateway URL: ${getUrl(url)}`,\n `Response: ${stringify(result)}`,\n ],\n name: 'OffchainLookupResponseMalformedError',\n });\n }\n}\nexport class OffchainLookupSenderMismatchError extends BaseError {\n constructor({ sender, to }) {\n super('Reverted sender address does not match target contract address (`to`).', {\n metaMessages: [\n `Contract address: ${to}`,\n `OffchainLookup sender address: ${sender}`,\n ],\n name: 'OffchainLookupSenderMismatchError',\n });\n }\n}\n//# sourceMappingURL=ccip.js.map","import { call } from '../actions/public/call.js';\nimport { OffchainLookupError, OffchainLookupResponseMalformedError, OffchainLookupSenderMismatchError, } from '../errors/ccip.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { decodeErrorResult } from './abi/decodeErrorResult.js';\nimport { encodeAbiParameters } from './abi/encodeAbiParameters.js';\nimport { isAddressEqual } from './address/isAddressEqual.js';\nimport { concat } from './data/concat.js';\nimport { isHex } from './data/isHex.js';\nimport { stringify } from './stringify.js';\nexport const offchainLookupSignature = '0x556f1830';\nexport const offchainLookupAbiItem = {\n name: 'OffchainLookup',\n type: 'error',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'urls',\n type: 'string[]',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n {\n name: 'callbackFunction',\n type: 'bytes4',\n },\n {\n name: 'extraData',\n type: 'bytes',\n },\n ],\n};\nexport async function offchainLookup(client, { blockNumber, blockTag, data, to, }) {\n const { args } = decodeErrorResult({\n data,\n abi: [offchainLookupAbiItem],\n });\n const [sender, urls, callData, callbackSelector, extraData] = args;\n const { ccipRead } = client;\n const ccipRequest_ = ccipRead && typeof ccipRead?.request === 'function'\n ? ccipRead.request\n : ccipRequest;\n try {\n if (!isAddressEqual(to, sender))\n throw new OffchainLookupSenderMismatchError({ sender, to });\n const result = await ccipRequest_({ data: callData, sender, urls });\n const { data: data_ } = await call(client, {\n blockNumber,\n blockTag,\n data: concat([\n callbackSelector,\n encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }], [result, extraData]),\n ]),\n to,\n });\n return data_;\n }\n catch (err) {\n throw new OffchainLookupError({\n callbackSelector,\n cause: err,\n data,\n extraData,\n sender,\n urls,\n });\n }\n}\nexport async function ccipRequest({ data, sender, urls, }) {\n let error = new Error('An unknown error occurred.');\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n const method = url.includes('{data}') ? 'GET' : 'POST';\n const body = method === 'POST' ? { data, sender } : undefined;\n const headers = method === 'POST' ? { 'Content-Type': 'application/json' } : {};\n try {\n const response = await fetch(url.replace('{sender}', sender).replace('{data}', data), {\n body: JSON.stringify(body),\n headers,\n method,\n });\n let result;\n if (response.headers.get('Content-Type')?.startsWith('application/json')) {\n result = (await response.json()).data;\n }\n else {\n result = (await response.text());\n }\n if (!response.ok) {\n error = new HttpRequestError({\n body,\n details: result?.error\n ? stringify(result.error)\n : response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n continue;\n }\n if (!isHex(result)) {\n error = new OffchainLookupResponseMalformedError({\n result,\n url,\n });\n continue;\n }\n return result;\n }\n catch (err) {\n error = new HttpRequestError({\n body,\n details: err.message,\n url,\n });\n }\n }\n throw error;\n}\n//# sourceMappingURL=ccip.js.map"],"names":["OffchainLookupError","BaseError","callbackSelector","cause","data","extraData","sender","urls","_a","url","getUrl","OffchainLookupResponseMalformedError","result","stringify","OffchainLookupSenderMismatchError","to","offchainLookupSignature","offchainLookupAbiItem","offchainLookup","client","blockNumber","blockTag","args","decodeErrorResult","callData","ccipRead","ccipRequest_","ccipRequest","isAddressEqual","data_","call","concat","encodeAbiParameters","err","error","i","method","body","headers","response","HttpRequestError","isHex"],"mappings":"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","x_google_ignoreList":[0,1]}