@pufferfinance/puffer-sdk 1.28.5 → 1.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) 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 +3 -3
  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.js +2 -2
  7. package/dist/{ccip-LIGR3N1A.cjs → ccip-Dv8Z-tXr.cjs} +2 -2
  8. package/dist/{ccip-LIGR3N1A.cjs.map → ccip-Dv8Z-tXr.cjs.map} +1 -1
  9. package/dist/{ccip-78YM988s.js → ccip-dYaIZXTj.js} +4 -4
  10. package/dist/{ccip-78YM988s.js.map → ccip-dYaIZXTj.js.map} +1 -1
  11. package/dist/chains/constants.cjs +1 -1
  12. package/dist/chains/constants.js +1 -1
  13. package/dist/constants-4-ehn8UI.cjs +9 -0
  14. package/dist/constants-4-ehn8UI.cjs.map +1 -0
  15. package/dist/{constants-CuIEh_ZS.js → constants-BO_Dvglw.js} +163 -143
  16. package/dist/constants-BO_Dvglw.js.map +1 -0
  17. package/dist/contracts/abis/mainnet/CarrotVesting.cjs +1 -1
  18. package/dist/contracts/abis/mainnet/CarrotVesting.cjs.map +1 -1
  19. package/dist/contracts/abis/mainnet/CarrotVesting.d.ts +30 -0
  20. package/dist/contracts/abis/mainnet/CarrotVesting.js +21 -0
  21. package/dist/contracts/abis/mainnet/CarrotVesting.js.map +1 -1
  22. package/dist/contracts/addresses.cjs +1 -1
  23. package/dist/contracts/addresses.js +1 -1
  24. package/dist/contracts/handlers/carrot-staking-handler.cjs +1 -1
  25. package/dist/contracts/handlers/carrot-staking-handler.d.ts +18 -0
  26. package/dist/contracts/handlers/carrot-staking-handler.js +2 -2
  27. package/dist/contracts/handlers/carrot-vesting-handler.cjs +1 -1
  28. package/dist/contracts/handlers/carrot-vesting-handler.cjs.map +1 -1
  29. package/dist/contracts/handlers/carrot-vesting-handler.d.ts +39 -0
  30. package/dist/contracts/handlers/carrot-vesting-handler.js +32 -5
  31. package/dist/contracts/handlers/carrot-vesting-handler.js.map +1 -1
  32. package/dist/contracts/handlers/concrete-vault-handler.cjs +1 -1
  33. package/dist/contracts/handlers/concrete-vault-handler.d.ts +18 -0
  34. package/dist/contracts/handlers/concrete-vault-handler.js +2 -2
  35. package/dist/contracts/handlers/distributor-handler.cjs +1 -1
  36. package/dist/contracts/handlers/distributor-handler.d.ts +18 -0
  37. package/dist/contracts/handlers/distributor-handler.js +2 -2
  38. package/dist/contracts/handlers/erc20-permit-handler.cjs +1 -1
  39. package/dist/contracts/handlers/erc20-permit-handler.cjs.map +1 -1
  40. package/dist/contracts/handlers/erc20-permit-handler.d.ts +18 -0
  41. package/dist/contracts/handlers/erc20-permit-handler.js +3 -3
  42. package/dist/contracts/handlers/erc20-permit-handler.js.map +1 -1
  43. package/dist/contracts/handlers/gauge-registry-handler.cjs +1 -1
  44. package/dist/contracts/handlers/gauge-registry-handler.d.ts +18 -0
  45. package/dist/contracts/handlers/gauge-registry-handler.js +2 -2
  46. package/dist/contracts/handlers/guardian-module-handler.cjs +1 -1
  47. package/dist/contracts/handlers/guardian-module-handler.d.ts +18 -0
  48. package/dist/contracts/handlers/guardian-module-handler.js +2 -2
  49. package/dist/contracts/handlers/institutional-access-manager-handler.cjs +1 -1
  50. package/dist/contracts/handlers/institutional-access-manager-handler.d.ts +18 -0
  51. package/dist/contracts/handlers/institutional-access-manager-handler.js +3 -3
  52. package/dist/contracts/handlers/institutional-vault-handler.cjs +1 -1
  53. package/dist/contracts/handlers/institutional-vault-handler.d.ts +18 -0
  54. package/dist/contracts/handlers/institutional-vault-handler.js +2 -2
  55. package/dist/contracts/handlers/l1-reward-manager-handler.cjs +1 -1
  56. package/dist/contracts/handlers/l1-reward-manager-handler.d.ts +18 -0
  57. package/dist/contracts/handlers/l1-reward-manager-handler.js +2 -2
  58. package/dist/contracts/handlers/l2-reward-manager-handler.cjs +1 -1
  59. package/dist/contracts/handlers/l2-reward-manager-handler.d.ts +18 -0
  60. package/dist/contracts/handlers/l2-reward-manager-handler.js +2 -2
  61. package/dist/contracts/handlers/lagoon-vault-handler.cjs +1 -1
  62. package/dist/contracts/handlers/lagoon-vault-handler.d.ts +18 -0
  63. package/dist/contracts/handlers/lagoon-vault-handler.js +2 -2
  64. package/dist/contracts/handlers/mtw-carrot-handler.cjs +1 -1
  65. package/dist/contracts/handlers/mtw-carrot-handler.d.ts +18 -0
  66. package/dist/contracts/handlers/mtw-carrot-handler.js +2 -2
  67. package/dist/contracts/handlers/nucleus-accountant-handler.cjs +1 -1
  68. package/dist/contracts/handlers/nucleus-accountant-handler.d.ts +18 -0
  69. package/dist/contracts/handlers/nucleus-accountant-handler.js +1 -1
  70. package/dist/contracts/handlers/nucleus-atomic-queue-handler.cjs +1 -1
  71. package/dist/contracts/handlers/nucleus-atomic-queue-handler.d.ts +18 -0
  72. package/dist/contracts/handlers/nucleus-atomic-queue-handler.js +2 -2
  73. package/dist/contracts/handlers/nucleus-boring-vault-handler.cjs +1 -1
  74. package/dist/contracts/handlers/nucleus-boring-vault-handler.d.ts +18 -0
  75. package/dist/contracts/handlers/nucleus-boring-vault-handler.js +2 -2
  76. package/dist/contracts/handlers/nucleus-teller-handler.cjs +1 -1
  77. package/dist/contracts/handlers/nucleus-teller-handler.d.ts +18 -0
  78. package/dist/contracts/handlers/nucleus-teller-handler.js +2 -2
  79. package/dist/contracts/handlers/puf-locker-handler.cjs +1 -1
  80. package/dist/contracts/handlers/puf-locker-handler.d.ts +18 -0
  81. package/dist/contracts/handlers/puf-locker-handler.js +2 -2
  82. package/dist/contracts/handlers/puffer-depositor-handler.cjs +1 -1
  83. package/dist/contracts/handlers/puffer-depositor-handler.d.ts +18 -0
  84. package/dist/contracts/handlers/puffer-depositor-handler.js +2 -2
  85. package/dist/contracts/handlers/puffer-l2-depositor-handler.cjs +1 -1
  86. package/dist/contracts/handlers/puffer-l2-depositor-handler.d.ts +18 -0
  87. package/dist/contracts/handlers/puffer-l2-depositor-handler.js +2 -2
  88. package/dist/contracts/handlers/puffer-oracle-v2-handler.cjs +1 -1
  89. package/dist/contracts/handlers/puffer-oracle-v2-handler.d.ts +18 -0
  90. package/dist/contracts/handlers/puffer-oracle-v2-handler.js +2 -2
  91. package/dist/contracts/handlers/puffer-protocol-handler.cjs +1 -1
  92. package/dist/contracts/handlers/puffer-protocol-handler.d.ts +18 -0
  93. package/dist/contracts/handlers/puffer-protocol-handler.js +2 -2
  94. package/dist/contracts/handlers/puffer-vault-handler.cjs +1 -1
  95. package/dist/contracts/handlers/puffer-vault-handler.d.ts +18 -0
  96. package/dist/contracts/handlers/puffer-vault-handler.js +2 -2
  97. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.cjs +1 -1
  98. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.d.ts +18 -0
  99. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.js +2 -2
  100. package/dist/contracts/handlers/validator-ticket-handler.cjs +1 -1
  101. package/dist/contracts/handlers/validator-ticket-handler.d.ts +18 -0
  102. package/dist/contracts/handlers/validator-ticket-handler.js +2 -2
  103. package/dist/contracts/handlers/vl-puffer-handler.cjs +1 -1
  104. package/dist/contracts/handlers/vl-puffer-handler.d.ts +18 -0
  105. package/dist/contracts/handlers/vl-puffer-handler.js +2 -2
  106. package/dist/contracts/tokens.cjs +1 -1
  107. package/dist/contracts/tokens.js +1 -1
  108. package/dist/contracts/vaults-addresses.cjs +1 -1
  109. package/dist/contracts/vaults-addresses.js +1 -1
  110. package/dist/{getContract-D4_SEfqa.cjs → getContract-C6a8L2Jd.cjs} +2 -2
  111. package/dist/{getContract-D4_SEfqa.cjs.map → getContract-C6a8L2Jd.cjs.map} +1 -1
  112. package/dist/{getContract-DQN7VDBo.js → getContract-DRjKmuyC.js} +2 -2
  113. package/dist/{getContract-DQN7VDBo.js.map → getContract-DRjKmuyC.js.map} +1 -1
  114. package/dist/http-CRYDzx7w.cjs +5 -0
  115. package/dist/http-CRYDzx7w.cjs.map +1 -0
  116. package/dist/{http-CajzXkt4.js → http-ZcKHvn9V.js} +1313 -1116
  117. package/dist/http-ZcKHvn9V.js.map +1 -0
  118. package/dist/{localBatchGatewayRequest-C7zYTS2c.cjs → localBatchGatewayRequest-BTy8p6qj.cjs} +2 -2
  119. package/dist/{localBatchGatewayRequest-C7zYTS2c.cjs.map → localBatchGatewayRequest-BTy8p6qj.cjs.map} +1 -1
  120. package/dist/{localBatchGatewayRequest-DtOvBmA9.js → localBatchGatewayRequest-Cb0QKL0s.js} +3 -3
  121. package/dist/{localBatchGatewayRequest-DtOvBmA9.js.map → localBatchGatewayRequest-Cb0QKL0s.js.map} +1 -1
  122. package/dist/main.cjs +1 -1
  123. package/dist/main.js +1 -1
  124. package/dist/{secp256k1-CMP_u7qb.cjs → secp256k1-CzsL7iVx.cjs} +2 -2
  125. package/dist/{secp256k1-CMP_u7qb.cjs.map → secp256k1-CzsL7iVx.cjs.map} +1 -1
  126. package/dist/{secp256k1-DCMgMsfV.js → secp256k1-Dx1prb1E.js} +2 -2
  127. package/dist/{secp256k1-DCMgMsfV.js.map → secp256k1-Dx1prb1E.js.map} +1 -1
  128. package/dist/utils/version.cjs +1 -1
  129. package/dist/utils/version.js +1 -1
  130. package/dist/{writeContract-DYAfDrRz.js → writeContract-BFxyLFA9.js} +881 -902
  131. package/dist/writeContract-BFxyLFA9.js.map +1 -0
  132. package/dist/{writeContract-BnmmOPwy.cjs → writeContract-HBsqM_Od.cjs} +22 -22
  133. package/dist/writeContract-HBsqM_Od.cjs.map +1 -0
  134. package/package.json +12 -12
  135. package/dist/constants-6kuRTsbU.cjs +0 -9
  136. package/dist/constants-6kuRTsbU.cjs.map +0 -1
  137. package/dist/constants-CuIEh_ZS.js.map +0 -1
  138. package/dist/http-CajzXkt4.js.map +0 -1
  139. package/dist/http-qhIDc8Dn.cjs +0 -5
  140. package/dist/http-qhIDc8Dn.cjs.map +0 -1
  141. package/dist/writeContract-BnmmOPwy.cjs.map +0 -1
  142. package/dist/writeContract-DYAfDrRz.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("../constants-6kuRTsbU.cjs"),g=require("../http-qhIDc8Dn.cjs"),E=require("../writeContract-BnmmOPwy.cjs");function S(n,e={}){const{key:l="custom",methods:h,name:i="Custom Provider",retryDelay:w}=e;return({retryCount:p})=>g.createTransport({key:l,methods:h,name:i,request:n.request.bind(n),retryCount:e.retryCount??p,retryDelay:w,type:"custom"})}function v(n,e={}){const{key:l="fallback",name:h="Fallback",rank:i=!1,shouldThrow:w=P,retryCount:p,retryDelay:q}=e;return(({chain:d,pollingInterval:_=4e3,timeout:o,...T})=>{let u=n,b=()=>{};const x=g.createTransport({key:l,name:h,async request({method:t,params:r}){let y;const f=async(a=0)=>{const m=u[a]({...T,chain:d,retryCount:0,timeout:o});try{const s=await m.request({method:t,params:r});return b({method:t,params:r,response:s,transport:m,status:"success"}),s}catch(s){if(b({error:s,method:t,params:r,transport:m,status:"error"}),w(s)||a===u.length-1||(y??=u.slice(a+1).some(c=>{const{include:C,exclude:M}=c({chain:d}).config.methods||{};return C?C.includes(t):M?!M.includes(t):!0}),!y))throw s;return f(a+1)}};return f()},retryCount:p,retryDelay:q,type:"fallback"},{onResponse:t=>b=t,transports:u.map(t=>t({chain:d,retryCount:0}))});if(i){const t=typeof i=="object"?i:{};j({chain:d,interval:t.interval??_,onTransports:r=>u=r,ping:t.ping,sampleCount:t.sampleCount,timeout:t.timeout,transports:u,weights:t.weights})}return x})}function P(n){return!!("code"in n&&typeof n.code=="number"&&(n.code===E.TransactionRejectedRpcError.code||n.code===E.UserRejectedRequestError.code||R.ExecutionRevertedError.nodeMessage.test(n.message)||n.code===5e3))}function j({chain:n,interval:e=4e3,onTransports:l,ping:h,sampleCount:i=10,timeout:w=1e3,transports:p,weights:q={}}){const{stability:d=.7,latency:_=.3}=q,o=[],T=async()=>{const u=await Promise.all(p.map(async t=>{const r=t({chain:n,retryCount:0,timeout:w}),y=Date.now();let f,a;try{await(h?h({transport:r}):r.request({method:"net_listening"})),a=1}catch{a=0}finally{f=Date.now()}return{latency:f-y,success:a}}));o.push(u),o.length>i&&o.shift();const b=Math.max(...o.map(t=>Math.max(...t.map(({latency:r})=>r)))),x=p.map((t,r)=>{const y=o.map(c=>c[r].latency),a=1-y.reduce((c,C)=>c+C,0)/y.length/b,m=o.map(c=>c[r].success),s=m.reduce((c,C)=>c+C,0)/m.length;return s===0?[0,r]:[_*a+d*s,r]}).sort((t,r)=>r[0]-t[0]);l(x.map(([,t])=>p[t])),await E.wait(e),T()};T()}class k{static createPublicClient(e){return g.createPublicClient({chain:R.VIEM_CHAINS[e.chain],transport:k.extractTransportConfig(e)})}static createWalletClient(e){return g.createWalletClient({chain:R.VIEM_CHAINS[e.chain],transport:k.extractTransportConfig(e)})}static extractTransportConfig(e){return"rpcUrls"in e?v(e.rpcUrls.map(l=>g.http(l))):S(e.provider,e.config)}}exports.PufferClientHelpers=k;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("../constants-4-ehn8UI.cjs"),g=require("../http-CRYDzx7w.cjs"),E=require("../writeContract-HBsqM_Od.cjs");function S(n,e={}){const{key:l="custom",methods:h,name:i="Custom Provider",retryDelay:w}=e;return({retryCount:p})=>g.createTransport({key:l,methods:h,name:i,request:n.request.bind(n),retryCount:e.retryCount??p,retryDelay:w,type:"custom"})}function v(n,e={}){const{key:l="fallback",name:h="Fallback",rank:i=!1,shouldThrow:w=P,retryCount:p,retryDelay:q}=e;return(({chain:d,pollingInterval:_=4e3,timeout:o,...T})=>{let u=n,b=()=>{};const x=g.createTransport({key:l,name:h,async request({method:t,params:r}){let y;const f=async(a=0)=>{const m=u[a]({...T,chain:d,retryCount:0,timeout:o});try{const s=await m.request({method:t,params:r});return b({method:t,params:r,response:s,transport:m,status:"success"}),s}catch(s){if(b({error:s,method:t,params:r,transport:m,status:"error"}),w(s)||a===u.length-1||(y??=u.slice(a+1).some(c=>{const{include:C,exclude:M}=c({chain:d}).config.methods||{};return C?C.includes(t):M?!M.includes(t):!0}),!y))throw s;return f(a+1)}};return f()},retryCount:p,retryDelay:q,type:"fallback"},{onResponse:t=>b=t,transports:u.map(t=>t({chain:d,retryCount:0}))});if(i){const t=typeof i=="object"?i:{};j({chain:d,interval:t.interval??_,onTransports:r=>u=r,ping:t.ping,sampleCount:t.sampleCount,timeout:t.timeout,transports:u,weights:t.weights})}return x})}function P(n){return!!("code"in n&&typeof n.code=="number"&&(n.code===E.TransactionRejectedRpcError.code||n.code===E.UserRejectedRequestError.code||R.ExecutionRevertedError.nodeMessage.test(n.message)||n.code===5e3))}function j({chain:n,interval:e=4e3,onTransports:l,ping:h,sampleCount:i=10,timeout:w=1e3,transports:p,weights:q={}}){const{stability:d=.7,latency:_=.3}=q,o=[],T=async()=>{const u=await Promise.all(p.map(async t=>{const r=t({chain:n,retryCount:0,timeout:w}),y=Date.now();let f,a;try{await(h?h({transport:r}):r.request({method:"net_listening"})),a=1}catch{a=0}finally{f=Date.now()}return{latency:f-y,success:a}}));o.push(u),o.length>i&&o.shift();const b=Math.max(...o.map(t=>Math.max(...t.map(({latency:r})=>r)))),x=p.map((t,r)=>{const y=o.map(c=>c[r].latency),a=1-y.reduce((c,C)=>c+C,0)/y.length/b,m=o.map(c=>c[r].success),s=m.reduce((c,C)=>c+C,0)/m.length;return s===0?[0,r]:[_*a+d*s,r]}).sort((t,r)=>r[0]-t[0]);l(x.map(([,t])=>p[t])),await E.wait(e),T()};T()}class k{static createPublicClient(e){return g.createPublicClient({chain:R.VIEM_CHAINS[e.chain],transport:k.extractTransportConfig(e)})}static createWalletClient(e){return g.createWalletClient({chain:R.VIEM_CHAINS[e.chain],transport:k.extractTransportConfig(e)})}static extractTransportConfig(e){return"rpcUrls"in e?v(e.rpcUrls.map(l=>g.http(l))):S(e.provider,e.config)}}exports.PufferClientHelpers=k;
2
2
  //# sourceMappingURL=puffer-client-helpers.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"puffer-client-helpers.cjs","sources":["../../node_modules/.pnpm/viem@2.37.6_typescript@5.9.2_zod@3.24.2/node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/.pnpm/viem@2.37.6_typescript@5.9.2_zod@3.24.2/node_modules/viem/_esm/clients/transports/fallback.js","../../lib/api/puffer-client-helpers.ts"],"sourcesContent":["import { createTransport, } from './createTransport.js';\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom(provider, config = {}) {\n const { key = 'custom', methods, name = 'Custom Provider', retryDelay, } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n methods,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n });\n}\n//# sourceMappingURL=custom.js.map","import { ExecutionRevertedError } from '../../errors/node.js';\nimport { TransactionRejectedRpcError, UserRejectedRequestError, } from '../../errors/rpc.js';\nimport { wait } from '../../utils/wait.js';\nimport { createTransport, } from './createTransport.js';\nexport function fallback(transports_, config = {}) {\n const { key = 'fallback', name = 'Fallback', rank = false, shouldThrow: shouldThrow_ = shouldThrow, retryCount, retryDelay, } = config;\n return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {\n let transports = transports_;\n let onResponse = () => { };\n const transport = createTransport({\n key,\n name,\n async request({ method, params }) {\n let includes;\n const fetch = async (i = 0) => {\n const transport = transports[i]({\n ...rest,\n chain,\n retryCount: 0,\n timeout,\n });\n try {\n const response = await transport.request({\n method,\n params,\n });\n onResponse({\n method,\n params: params,\n response,\n transport,\n status: 'success',\n });\n return response;\n }\n catch (err) {\n onResponse({\n error: err,\n method,\n params: params,\n transport,\n status: 'error',\n });\n if (shouldThrow_(err))\n throw err;\n // If we've reached the end of the fallbacks, throw the error.\n if (i === transports.length - 1)\n throw err;\n // Check if at least one other transport includes the method\n includes ??= transports.slice(i + 1).some((transport) => {\n const { include, exclude } = transport({ chain }).config.methods || {};\n if (include)\n return include.includes(method);\n if (exclude)\n return !exclude.includes(method);\n return true;\n });\n if (!includes)\n throw err;\n // Otherwise, try the next fallback.\n return fetch(i + 1);\n }\n };\n return fetch();\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n }, {\n onResponse: (fn) => (onResponse = fn),\n transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n });\n if (rank) {\n const rankOptions = (typeof rank === 'object' ? rank : {});\n rankTransports({\n chain,\n interval: rankOptions.interval ?? pollingInterval,\n onTransports: (transports_) => (transports = transports_),\n ping: rankOptions.ping,\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n });\n }\n return transport;\n });\n}\nexport function shouldThrow(error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === TransactionRejectedRpcError.code ||\n error.code === UserRejectedRequestError.code ||\n ExecutionRevertedError.nodeMessage.test(error.message) ||\n error.code === 5000 // CAIP UserRejectedRequestError\n )\n return true;\n }\n return false;\n}\n/** @internal */\nexport function rankTransports({ chain, interval = 4_000, onTransports, ping, sampleCount = 10, timeout = 1_000, transports, weights = {}, }) {\n const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } = weights;\n const samples = [];\n const rankTransports_ = async () => {\n // 1. Take a sample from each Transport.\n const sample = await Promise.all(transports.map(async (transport) => {\n const transport_ = transport({ chain, retryCount: 0, timeout });\n const start = Date.now();\n let end;\n let success;\n try {\n await (ping\n ? ping({ transport: transport_ })\n : transport_.request({ method: 'net_listening' }));\n success = 1;\n }\n catch {\n success = 0;\n }\n finally {\n end = Date.now();\n }\n const latency = end - start;\n return { latency, success };\n }));\n // 2. Store the sample. If we have more than `sampleCount` samples, remove\n // the oldest sample.\n samples.push(sample);\n if (samples.length > sampleCount)\n samples.shift();\n // 3. Calculate the max latency from samples.\n const maxLatency = Math.max(...samples.map((sample) => Math.max(...sample.map(({ latency }) => latency))));\n // 4. Calculate the score for each Transport.\n const scores = transports\n .map((_, i) => {\n const latencies = samples.map((sample) => sample[i].latency);\n const meanLatency = latencies.reduce((acc, latency) => acc + latency, 0) /\n latencies.length;\n const latencyScore = 1 - meanLatency / maxLatency;\n const successes = samples.map((sample) => sample[i].success);\n const stabilityScore = successes.reduce((acc, success) => acc + success, 0) /\n successes.length;\n if (stabilityScore === 0)\n return [0, i];\n return [\n latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n i,\n ];\n })\n .sort((a, b) => b[0] - a[0]);\n // 5. Sort the Transports by score.\n onTransports(scores.map(([, i]) => transports[i]));\n // 6. Wait, and then rank again.\n await wait(interval);\n rankTransports_();\n };\n rankTransports_();\n}\n//# sourceMappingURL=fallback.js.map","import {\n CustomTransportConfig,\n createPublicClient as createPublicClientViem,\n createWalletClient as createWalletClientViem,\n http,\n fallback,\n custom,\n Transport,\n PublicClient,\n WalletClient,\n} from 'viem';\nimport { Chain, VIEM_CHAINS } from '../chains/constants';\nimport { TransportProvider } from '../utils/types';\n\nexport type ClientConfig = {\n chain: Chain;\n} & (\n | { rpcUrls: string[] }\n | { provider: TransportProvider; config?: CustomTransportConfig }\n);\n\n/**\n * Helper methods for the main `PufferClient`.\n */\nexport class PufferClientHelpers {\n /**\n * Helper method for creating a public client based on the\n * configuration\n *\n * @param config Configuration for the public client.\n * @returns The public client created with viem.\n */\n public static createPublicClient(config: ClientConfig): PublicClient {\n return createPublicClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n /**\n * Helper method for creating a wallet client based on the\n * configuration\n *\n * @param config Configuration for the wallet client.\n * @returns The wallet client created with viem.\n */\n public static createWalletClient(config: ClientConfig): WalletClient {\n return createWalletClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n private static extractTransportConfig(config: ClientConfig): Transport {\n if ('rpcUrls' in config) {\n return fallback(config.rpcUrls.map((url) => http(url)));\n } else {\n return custom(config.provider, config.config);\n }\n }\n}\n"],"names":["custom","provider","config","key","methods","name","retryDelay","defaultRetryCount","createTransport","fallback","transports_","rank","shouldThrow_","shouldThrow","retryCount","chain","pollingInterval","timeout","rest","transports","onResponse","transport","method","params","includes","fetch","i","response","err","include","exclude","fn","rankOptions","rankTransports","error","TransactionRejectedRpcError","UserRejectedRequestError","ExecutionRevertedError","interval","onTransports","ping","sampleCount","weights","stabilityWeight","latencyWeight","samples","rankTransports_","sample","transport_","start","end","success","maxLatency","latency","scores","_","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.38.5_typescript@5.9.3_zod@4.1.12/node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/.pnpm/viem@2.38.5_typescript@5.9.3_zod@4.1.12/node_modules/viem/_esm/clients/transports/fallback.js","../../lib/api/puffer-client-helpers.ts"],"sourcesContent":["import { createTransport, } from './createTransport.js';\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom(provider, config = {}) {\n const { key = 'custom', methods, name = 'Custom Provider', retryDelay, } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n methods,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n });\n}\n//# sourceMappingURL=custom.js.map","import { ExecutionRevertedError } from '../../errors/node.js';\nimport { TransactionRejectedRpcError, UserRejectedRequestError, } from '../../errors/rpc.js';\nimport { wait } from '../../utils/wait.js';\nimport { createTransport, } from './createTransport.js';\nexport function fallback(transports_, config = {}) {\n const { key = 'fallback', name = 'Fallback', rank = false, shouldThrow: shouldThrow_ = shouldThrow, retryCount, retryDelay, } = config;\n return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {\n let transports = transports_;\n let onResponse = () => { };\n const transport = createTransport({\n key,\n name,\n async request({ method, params }) {\n let includes;\n const fetch = async (i = 0) => {\n const transport = transports[i]({\n ...rest,\n chain,\n retryCount: 0,\n timeout,\n });\n try {\n const response = await transport.request({\n method,\n params,\n });\n onResponse({\n method,\n params: params,\n response,\n transport,\n status: 'success',\n });\n return response;\n }\n catch (err) {\n onResponse({\n error: err,\n method,\n params: params,\n transport,\n status: 'error',\n });\n if (shouldThrow_(err))\n throw err;\n // If we've reached the end of the fallbacks, throw the error.\n if (i === transports.length - 1)\n throw err;\n // Check if at least one other transport includes the method\n includes ??= transports.slice(i + 1).some((transport) => {\n const { include, exclude } = transport({ chain }).config.methods || {};\n if (include)\n return include.includes(method);\n if (exclude)\n return !exclude.includes(method);\n return true;\n });\n if (!includes)\n throw err;\n // Otherwise, try the next fallback.\n return fetch(i + 1);\n }\n };\n return fetch();\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n }, {\n onResponse: (fn) => (onResponse = fn),\n transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n });\n if (rank) {\n const rankOptions = (typeof rank === 'object' ? rank : {});\n rankTransports({\n chain,\n interval: rankOptions.interval ?? pollingInterval,\n onTransports: (transports_) => (transports = transports_),\n ping: rankOptions.ping,\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n });\n }\n return transport;\n });\n}\nexport function shouldThrow(error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === TransactionRejectedRpcError.code ||\n error.code === UserRejectedRequestError.code ||\n ExecutionRevertedError.nodeMessage.test(error.message) ||\n error.code === 5000 // CAIP UserRejectedRequestError\n )\n return true;\n }\n return false;\n}\n/** @internal */\nexport function rankTransports({ chain, interval = 4_000, onTransports, ping, sampleCount = 10, timeout = 1_000, transports, weights = {}, }) {\n const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } = weights;\n const samples = [];\n const rankTransports_ = async () => {\n // 1. Take a sample from each Transport.\n const sample = await Promise.all(transports.map(async (transport) => {\n const transport_ = transport({ chain, retryCount: 0, timeout });\n const start = Date.now();\n let end;\n let success;\n try {\n await (ping\n ? ping({ transport: transport_ })\n : transport_.request({ method: 'net_listening' }));\n success = 1;\n }\n catch {\n success = 0;\n }\n finally {\n end = Date.now();\n }\n const latency = end - start;\n return { latency, success };\n }));\n // 2. Store the sample. If we have more than `sampleCount` samples, remove\n // the oldest sample.\n samples.push(sample);\n if (samples.length > sampleCount)\n samples.shift();\n // 3. Calculate the max latency from samples.\n const maxLatency = Math.max(...samples.map((sample) => Math.max(...sample.map(({ latency }) => latency))));\n // 4. Calculate the score for each Transport.\n const scores = transports\n .map((_, i) => {\n const latencies = samples.map((sample) => sample[i].latency);\n const meanLatency = latencies.reduce((acc, latency) => acc + latency, 0) /\n latencies.length;\n const latencyScore = 1 - meanLatency / maxLatency;\n const successes = samples.map((sample) => sample[i].success);\n const stabilityScore = successes.reduce((acc, success) => acc + success, 0) /\n successes.length;\n if (stabilityScore === 0)\n return [0, i];\n return [\n latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n i,\n ];\n })\n .sort((a, b) => b[0] - a[0]);\n // 5. Sort the Transports by score.\n onTransports(scores.map(([, i]) => transports[i]));\n // 6. Wait, and then rank again.\n await wait(interval);\n rankTransports_();\n };\n rankTransports_();\n}\n//# sourceMappingURL=fallback.js.map","import {\n CustomTransportConfig,\n createPublicClient as createPublicClientViem,\n createWalletClient as createWalletClientViem,\n http,\n fallback,\n custom,\n Transport,\n PublicClient,\n WalletClient,\n} from 'viem';\nimport { Chain, VIEM_CHAINS } from '../chains/constants';\nimport { TransportProvider } from '../utils/types';\n\nexport type ClientConfig = {\n chain: Chain;\n} & (\n | { rpcUrls: string[] }\n | { provider: TransportProvider; config?: CustomTransportConfig }\n);\n\n/**\n * Helper methods for the main `PufferClient`.\n */\nexport class PufferClientHelpers {\n /**\n * Helper method for creating a public client based on the\n * configuration\n *\n * @param config Configuration for the public client.\n * @returns The public client created with viem.\n */\n public static createPublicClient(config: ClientConfig): PublicClient {\n return createPublicClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n /**\n * Helper method for creating a wallet client based on the\n * configuration\n *\n * @param config Configuration for the wallet client.\n * @returns The wallet client created with viem.\n */\n public static createWalletClient(config: ClientConfig): WalletClient {\n return createWalletClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n private static extractTransportConfig(config: ClientConfig): Transport {\n if ('rpcUrls' in config) {\n return fallback(config.rpcUrls.map((url) => http(url)));\n } else {\n return custom(config.provider, config.config);\n }\n }\n}\n"],"names":["custom","provider","config","key","methods","name","retryDelay","defaultRetryCount","createTransport","fallback","transports_","rank","shouldThrow_","shouldThrow","retryCount","chain","pollingInterval","timeout","rest","transports","onResponse","transport","method","params","includes","fetch","i","response","err","include","exclude","fn","rankOptions","rankTransports","error","TransactionRejectedRpcError","UserRejectedRequestError","ExecutionRevertedError","interval","onTransports","ping","sampleCount","weights","stabilityWeight","latencyWeight","samples","rankTransports_","sample","transport_","start","end","success","maxLatency","latency","scores","_","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,6 +1,6 @@
1
- import { E as v, V as q } from "../constants-CuIEh_ZS.js";
2
- import { b as E, a as D, c as M, h as U } from "../http-CajzXkt4.js";
3
- import { T as W, U as j, m as L } from "../writeContract-DYAfDrRz.js";
1
+ import { E as v, V as q } from "../constants-BO_Dvglw.js";
2
+ import { b as E, a as D, c as M, h as U } from "../http-ZcKHvn9V.js";
3
+ import { T as W, U as j, m as L } from "../writeContract-BFxyLFA9.js";
4
4
  function P(s, e = {}) {
5
5
  const { key: l = "custom", methods: h, name: i = "Custom Provider", retryDelay: w } = e;
6
6
  return ({ retryCount: p }) => E({
@@ -1 +1 @@
1
- {"version":3,"file":"puffer-client-helpers.js","sources":["../../node_modules/.pnpm/viem@2.37.6_typescript@5.9.2_zod@3.24.2/node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/.pnpm/viem@2.37.6_typescript@5.9.2_zod@3.24.2/node_modules/viem/_esm/clients/transports/fallback.js","../../lib/api/puffer-client-helpers.ts"],"sourcesContent":["import { createTransport, } from './createTransport.js';\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom(provider, config = {}) {\n const { key = 'custom', methods, name = 'Custom Provider', retryDelay, } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n methods,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n });\n}\n//# sourceMappingURL=custom.js.map","import { ExecutionRevertedError } from '../../errors/node.js';\nimport { TransactionRejectedRpcError, UserRejectedRequestError, } from '../../errors/rpc.js';\nimport { wait } from '../../utils/wait.js';\nimport { createTransport, } from './createTransport.js';\nexport function fallback(transports_, config = {}) {\n const { key = 'fallback', name = 'Fallback', rank = false, shouldThrow: shouldThrow_ = shouldThrow, retryCount, retryDelay, } = config;\n return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {\n let transports = transports_;\n let onResponse = () => { };\n const transport = createTransport({\n key,\n name,\n async request({ method, params }) {\n let includes;\n const fetch = async (i = 0) => {\n const transport = transports[i]({\n ...rest,\n chain,\n retryCount: 0,\n timeout,\n });\n try {\n const response = await transport.request({\n method,\n params,\n });\n onResponse({\n method,\n params: params,\n response,\n transport,\n status: 'success',\n });\n return response;\n }\n catch (err) {\n onResponse({\n error: err,\n method,\n params: params,\n transport,\n status: 'error',\n });\n if (shouldThrow_(err))\n throw err;\n // If we've reached the end of the fallbacks, throw the error.\n if (i === transports.length - 1)\n throw err;\n // Check if at least one other transport includes the method\n includes ??= transports.slice(i + 1).some((transport) => {\n const { include, exclude } = transport({ chain }).config.methods || {};\n if (include)\n return include.includes(method);\n if (exclude)\n return !exclude.includes(method);\n return true;\n });\n if (!includes)\n throw err;\n // Otherwise, try the next fallback.\n return fetch(i + 1);\n }\n };\n return fetch();\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n }, {\n onResponse: (fn) => (onResponse = fn),\n transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n });\n if (rank) {\n const rankOptions = (typeof rank === 'object' ? rank : {});\n rankTransports({\n chain,\n interval: rankOptions.interval ?? pollingInterval,\n onTransports: (transports_) => (transports = transports_),\n ping: rankOptions.ping,\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n });\n }\n return transport;\n });\n}\nexport function shouldThrow(error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === TransactionRejectedRpcError.code ||\n error.code === UserRejectedRequestError.code ||\n ExecutionRevertedError.nodeMessage.test(error.message) ||\n error.code === 5000 // CAIP UserRejectedRequestError\n )\n return true;\n }\n return false;\n}\n/** @internal */\nexport function rankTransports({ chain, interval = 4_000, onTransports, ping, sampleCount = 10, timeout = 1_000, transports, weights = {}, }) {\n const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } = weights;\n const samples = [];\n const rankTransports_ = async () => {\n // 1. Take a sample from each Transport.\n const sample = await Promise.all(transports.map(async (transport) => {\n const transport_ = transport({ chain, retryCount: 0, timeout });\n const start = Date.now();\n let end;\n let success;\n try {\n await (ping\n ? ping({ transport: transport_ })\n : transport_.request({ method: 'net_listening' }));\n success = 1;\n }\n catch {\n success = 0;\n }\n finally {\n end = Date.now();\n }\n const latency = end - start;\n return { latency, success };\n }));\n // 2. Store the sample. If we have more than `sampleCount` samples, remove\n // the oldest sample.\n samples.push(sample);\n if (samples.length > sampleCount)\n samples.shift();\n // 3. Calculate the max latency from samples.\n const maxLatency = Math.max(...samples.map((sample) => Math.max(...sample.map(({ latency }) => latency))));\n // 4. Calculate the score for each Transport.\n const scores = transports\n .map((_, i) => {\n const latencies = samples.map((sample) => sample[i].latency);\n const meanLatency = latencies.reduce((acc, latency) => acc + latency, 0) /\n latencies.length;\n const latencyScore = 1 - meanLatency / maxLatency;\n const successes = samples.map((sample) => sample[i].success);\n const stabilityScore = successes.reduce((acc, success) => acc + success, 0) /\n successes.length;\n if (stabilityScore === 0)\n return [0, i];\n return [\n latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n i,\n ];\n })\n .sort((a, b) => b[0] - a[0]);\n // 5. Sort the Transports by score.\n onTransports(scores.map(([, i]) => transports[i]));\n // 6. Wait, and then rank again.\n await wait(interval);\n rankTransports_();\n };\n rankTransports_();\n}\n//# sourceMappingURL=fallback.js.map","import {\n CustomTransportConfig,\n createPublicClient as createPublicClientViem,\n createWalletClient as createWalletClientViem,\n http,\n fallback,\n custom,\n Transport,\n PublicClient,\n WalletClient,\n} from 'viem';\nimport { Chain, VIEM_CHAINS } from '../chains/constants';\nimport { TransportProvider } from '../utils/types';\n\nexport type ClientConfig = {\n chain: Chain;\n} & (\n | { rpcUrls: string[] }\n | { provider: TransportProvider; config?: CustomTransportConfig }\n);\n\n/**\n * Helper methods for the main `PufferClient`.\n */\nexport class PufferClientHelpers {\n /**\n * Helper method for creating a public client based on the\n * configuration\n *\n * @param config Configuration for the public client.\n * @returns The public client created with viem.\n */\n public static createPublicClient(config: ClientConfig): PublicClient {\n return createPublicClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n /**\n * Helper method for creating a wallet client based on the\n * configuration\n *\n * @param config Configuration for the wallet client.\n * @returns The wallet client created with viem.\n */\n public static createWalletClient(config: ClientConfig): WalletClient {\n return createWalletClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n private static extractTransportConfig(config: ClientConfig): Transport {\n if ('rpcUrls' in config) {\n return fallback(config.rpcUrls.map((url) => http(url)));\n } else {\n return custom(config.provider, config.config);\n }\n }\n}\n"],"names":["custom","provider","config","key","methods","name","retryDelay","defaultRetryCount","createTransport","fallback","transports_","rank","shouldThrow_","shouldThrow","retryCount","chain","pollingInterval","timeout","rest","transports","onResponse","transport","method","params","includes","fetch","i","response","err","include","exclude","fn","rankOptions","rankTransports","error","TransactionRejectedRpcError","UserRejectedRequestError","ExecutionRevertedError","interval","onTransports","ping","sampleCount","weights","stabilityWeight","latencyWeight","samples","rankTransports_","sample","transport_","start","end","success","maxLatency","latency","scores","_","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.38.5_typescript@5.9.3_zod@4.1.12/node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/.pnpm/viem@2.38.5_typescript@5.9.3_zod@4.1.12/node_modules/viem/_esm/clients/transports/fallback.js","../../lib/api/puffer-client-helpers.ts"],"sourcesContent":["import { createTransport, } from './createTransport.js';\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom(provider, config = {}) {\n const { key = 'custom', methods, name = 'Custom Provider', retryDelay, } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n methods,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n });\n}\n//# sourceMappingURL=custom.js.map","import { ExecutionRevertedError } from '../../errors/node.js';\nimport { TransactionRejectedRpcError, UserRejectedRequestError, } from '../../errors/rpc.js';\nimport { wait } from '../../utils/wait.js';\nimport { createTransport, } from './createTransport.js';\nexport function fallback(transports_, config = {}) {\n const { key = 'fallback', name = 'Fallback', rank = false, shouldThrow: shouldThrow_ = shouldThrow, retryCount, retryDelay, } = config;\n return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {\n let transports = transports_;\n let onResponse = () => { };\n const transport = createTransport({\n key,\n name,\n async request({ method, params }) {\n let includes;\n const fetch = async (i = 0) => {\n const transport = transports[i]({\n ...rest,\n chain,\n retryCount: 0,\n timeout,\n });\n try {\n const response = await transport.request({\n method,\n params,\n });\n onResponse({\n method,\n params: params,\n response,\n transport,\n status: 'success',\n });\n return response;\n }\n catch (err) {\n onResponse({\n error: err,\n method,\n params: params,\n transport,\n status: 'error',\n });\n if (shouldThrow_(err))\n throw err;\n // If we've reached the end of the fallbacks, throw the error.\n if (i === transports.length - 1)\n throw err;\n // Check if at least one other transport includes the method\n includes ??= transports.slice(i + 1).some((transport) => {\n const { include, exclude } = transport({ chain }).config.methods || {};\n if (include)\n return include.includes(method);\n if (exclude)\n return !exclude.includes(method);\n return true;\n });\n if (!includes)\n throw err;\n // Otherwise, try the next fallback.\n return fetch(i + 1);\n }\n };\n return fetch();\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n }, {\n onResponse: (fn) => (onResponse = fn),\n transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n });\n if (rank) {\n const rankOptions = (typeof rank === 'object' ? rank : {});\n rankTransports({\n chain,\n interval: rankOptions.interval ?? pollingInterval,\n onTransports: (transports_) => (transports = transports_),\n ping: rankOptions.ping,\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n });\n }\n return transport;\n });\n}\nexport function shouldThrow(error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === TransactionRejectedRpcError.code ||\n error.code === UserRejectedRequestError.code ||\n ExecutionRevertedError.nodeMessage.test(error.message) ||\n error.code === 5000 // CAIP UserRejectedRequestError\n )\n return true;\n }\n return false;\n}\n/** @internal */\nexport function rankTransports({ chain, interval = 4_000, onTransports, ping, sampleCount = 10, timeout = 1_000, transports, weights = {}, }) {\n const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } = weights;\n const samples = [];\n const rankTransports_ = async () => {\n // 1. Take a sample from each Transport.\n const sample = await Promise.all(transports.map(async (transport) => {\n const transport_ = transport({ chain, retryCount: 0, timeout });\n const start = Date.now();\n let end;\n let success;\n try {\n await (ping\n ? ping({ transport: transport_ })\n : transport_.request({ method: 'net_listening' }));\n success = 1;\n }\n catch {\n success = 0;\n }\n finally {\n end = Date.now();\n }\n const latency = end - start;\n return { latency, success };\n }));\n // 2. Store the sample. If we have more than `sampleCount` samples, remove\n // the oldest sample.\n samples.push(sample);\n if (samples.length > sampleCount)\n samples.shift();\n // 3. Calculate the max latency from samples.\n const maxLatency = Math.max(...samples.map((sample) => Math.max(...sample.map(({ latency }) => latency))));\n // 4. Calculate the score for each Transport.\n const scores = transports\n .map((_, i) => {\n const latencies = samples.map((sample) => sample[i].latency);\n const meanLatency = latencies.reduce((acc, latency) => acc + latency, 0) /\n latencies.length;\n const latencyScore = 1 - meanLatency / maxLatency;\n const successes = samples.map((sample) => sample[i].success);\n const stabilityScore = successes.reduce((acc, success) => acc + success, 0) /\n successes.length;\n if (stabilityScore === 0)\n return [0, i];\n return [\n latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n i,\n ];\n })\n .sort((a, b) => b[0] - a[0]);\n // 5. Sort the Transports by score.\n onTransports(scores.map(([, i]) => transports[i]));\n // 6. Wait, and then rank again.\n await wait(interval);\n rankTransports_();\n };\n rankTransports_();\n}\n//# sourceMappingURL=fallback.js.map","import {\n CustomTransportConfig,\n createPublicClient as createPublicClientViem,\n createWalletClient as createWalletClientViem,\n http,\n fallback,\n custom,\n Transport,\n PublicClient,\n WalletClient,\n} from 'viem';\nimport { Chain, VIEM_CHAINS } from '../chains/constants';\nimport { TransportProvider } from '../utils/types';\n\nexport type ClientConfig = {\n chain: Chain;\n} & (\n | { rpcUrls: string[] }\n | { provider: TransportProvider; config?: CustomTransportConfig }\n);\n\n/**\n * Helper methods for the main `PufferClient`.\n */\nexport class PufferClientHelpers {\n /**\n * Helper method for creating a public client based on the\n * configuration\n *\n * @param config Configuration for the public client.\n * @returns The public client created with viem.\n */\n public static createPublicClient(config: ClientConfig): PublicClient {\n return createPublicClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n /**\n * Helper method for creating a wallet client based on the\n * configuration\n *\n * @param config Configuration for the wallet client.\n * @returns The wallet client created with viem.\n */\n public static createWalletClient(config: ClientConfig): WalletClient {\n return createWalletClientViem({\n chain: VIEM_CHAINS[config.chain],\n transport: PufferClientHelpers.extractTransportConfig(config),\n });\n }\n\n private static extractTransportConfig(config: ClientConfig): Transport {\n if ('rpcUrls' in config) {\n return fallback(config.rpcUrls.map((url) => http(url)));\n } else {\n return custom(config.provider, config.config);\n }\n }\n}\n"],"names":["custom","provider","config","key","methods","name","retryDelay","defaultRetryCount","createTransport","fallback","transports_","rank","shouldThrow_","shouldThrow","retryCount","chain","pollingInterval","timeout","rest","transports","onResponse","transport","method","params","includes","fetch","i","response","err","include","exclude","fn","rankOptions","rankTransports","error","TransactionRejectedRpcError","UserRejectedRequestError","ExecutionRevertedError","interval","onTransports","ping","sampleCount","weights","stabilityWeight","latencyWeight","samples","rankTransports_","sample","transport_","start","end","success","maxLatency","latency","scores","_","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";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../constants-6kuRTsbU.cjs"),a=require("../contracts/handlers/puffer-vault-handler.cjs"),s=require("../contracts/handlers/puffer-depositor-handler.cjs"),u=require("../contracts/handlers/puffer-l2-depositor-handler.cjs"),c=require("../contracts/handlers/erc20-permit-handler.cjs"),o=require("../contracts/handlers/puf-locker-handler.cjs"),d=require("../contracts/handlers/l2-reward-manager-handler.cjs"),h=require("../contracts/handlers/l1-reward-manager-handler.cjs"),w=require("../contracts/handlers/puffer-withdrawal-manager-handler.cjs"),C=require("../contracts/handlers/nucleus-boring-vault-handler.cjs"),p=require("../contracts/handlers/nucleus-teller-handler.cjs"),_=require("../contracts/handlers/nucleus-accountant-handler.cjs"),f=require("../contracts/handlers/nucleus-atomic-queue-handler.cjs"),H=require("../contracts/handlers/mtw-carrot-handler.cjs"),g=require("../contracts/handlers/carrot-staking-handler.cjs"),b=require("../contracts/handlers/distributor-handler.cjs"),q=require("../contracts/handlers/concrete-vault-handler.cjs"),V=require("../contracts/handlers/validator-ticket-handler.cjs"),M=require("../contracts/handlers/puffer-oracle-v2-handler.cjs"),P=require("../contracts/handlers/puffer-protocol-handler.cjs"),A=require("../contracts/handlers/guardian-module-handler.cjs"),m=require("../contracts/handlers/institutional-vault-handler.cjs"),R=require("../contracts/handlers/institutional-access-manager-handler.cjs"),k=require("../contracts/handlers/lagoon-vault-handler.cjs"),v=require("../contracts/handlers/vl-puffer-handler.cjs"),L=require("../contracts/handlers/gauge-registry-handler.cjs"),T=require("../contracts/handlers/carrot-vesting-handler.cjs"),t=require("../http-qhIDc8Dn.cjs");class y{walletClient;publicClient;erc20Permit;vault;depositor;l2Depositor;pufLocker;l2RewardManager;l1RewardManager;pufferWithdrawalManager;nucleusBoringVault;nucleusTeller;nucleusAccountant;nucleusAtomicQueue;mtwCarrot;carrotStaker;distributor;concreteVault;validatorTicket;pufferOracleV2;pufferProtocol;guardianModule;institutionalVault;institutionalAccessManager;lagoonVault;vlPuffer;gaugeRegistry;carrotVesting;constructor(e,r,n){const l=i.VIEM_CHAINS[e];this.walletClient=r??t.createWalletClient({chain:l,transport:t.http()}),this.publicClient=n??t.createPublicClient({chain:l,transport:t.http()}),this.erc20Permit=new c.ERC20PermitHandler(e,this.walletClient,this.publicClient),this.vault=new a.PufferVaultHandler(e,this.walletClient,this.publicClient),this.depositor=new s.PufferDepositorHandler(e,this.walletClient,this.publicClient),this.l2Depositor=new u.PufferL2DepositorHandler(e,this.walletClient,this.publicClient),this.pufLocker=new o.PufLockerHandler(e,this.walletClient,this.publicClient),this.l2RewardManager=new d.L2RewardManagerHandler(e,this.walletClient,this.publicClient),this.l1RewardManager=new h.L1RewardManagerHandler(e,this.walletClient,this.publicClient),this.pufferWithdrawalManager=new w.PufferWithdrawalManagerHandler(e,this.walletClient,this.publicClient),this.nucleusBoringVault=new C.NucleusBoringVaultHandler(e,this.walletClient,this.publicClient),this.nucleusTeller=new p.NucleusTellerHandler(e,this.walletClient,this.publicClient),this.nucleusAccountant=new _.NucleusAccountantHandler(e,this.walletClient,this.publicClient),this.nucleusAtomicQueue=new f.NucleusAtomicQueueHandler(e,this.walletClient,this.publicClient),this.mtwCarrot=new H.MtwCarrotHandler(e,this.walletClient,this.publicClient),this.carrotStaker=new g.CarrotStakingHandler(e,this.walletClient,this.publicClient),this.distributor=new b.DistributorHandler(e,this.walletClient,this.publicClient),this.concreteVault=new q.ConcreteVaultHandler(e,this.walletClient,this.publicClient),this.validatorTicket=new V.ValidatorTicketHandler(e,this.walletClient,this.publicClient),this.pufferOracleV2=new M.PufferOracleV2Handler(e,this.walletClient,this.publicClient),this.pufferProtocol=new P.PufferProtocolHandler(e,this.walletClient,this.publicClient),this.guardianModule=new A.GuardianModuleHandler(e,this.walletClient,this.publicClient),this.institutionalVault=new m.InstitutionalVaultHandler(e,this.walletClient,this.publicClient),this.institutionalAccessManager=new R.InstitutionalAccessManagerHandler(e,this.walletClient,this.publicClient),this.lagoonVault=new k.LagoonVaultHandler(e,this.walletClient,this.publicClient),this.vlPuffer=new v.VLPufferHandler(e,this.walletClient,this.publicClient),this.gaugeRegistry=new L.GaugeRegistryHandler(e,this.walletClient,this.publicClient),this.carrotVesting=new T.CarrotVestingHandler(e,this.walletClient,this.publicClient)}async requestAddresses(){return await this.walletClient.requestAddresses()}}exports.PufferClient=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../constants-4-ehn8UI.cjs"),a=require("../contracts/handlers/puffer-vault-handler.cjs"),s=require("../contracts/handlers/puffer-depositor-handler.cjs"),u=require("../contracts/handlers/puffer-l2-depositor-handler.cjs"),c=require("../contracts/handlers/erc20-permit-handler.cjs"),o=require("../contracts/handlers/puf-locker-handler.cjs"),d=require("../contracts/handlers/l2-reward-manager-handler.cjs"),h=require("../contracts/handlers/l1-reward-manager-handler.cjs"),w=require("../contracts/handlers/puffer-withdrawal-manager-handler.cjs"),C=require("../contracts/handlers/nucleus-boring-vault-handler.cjs"),p=require("../contracts/handlers/nucleus-teller-handler.cjs"),_=require("../contracts/handlers/nucleus-accountant-handler.cjs"),f=require("../contracts/handlers/nucleus-atomic-queue-handler.cjs"),H=require("../contracts/handlers/mtw-carrot-handler.cjs"),g=require("../contracts/handlers/carrot-staking-handler.cjs"),b=require("../contracts/handlers/distributor-handler.cjs"),q=require("../contracts/handlers/concrete-vault-handler.cjs"),V=require("../contracts/handlers/validator-ticket-handler.cjs"),M=require("../contracts/handlers/puffer-oracle-v2-handler.cjs"),P=require("../contracts/handlers/puffer-protocol-handler.cjs"),A=require("../contracts/handlers/guardian-module-handler.cjs"),m=require("../contracts/handlers/institutional-vault-handler.cjs"),R=require("../contracts/handlers/institutional-access-manager-handler.cjs"),k=require("../contracts/handlers/lagoon-vault-handler.cjs"),v=require("../contracts/handlers/vl-puffer-handler.cjs"),L=require("../contracts/handlers/gauge-registry-handler.cjs"),T=require("../contracts/handlers/carrot-vesting-handler.cjs"),t=require("../http-CRYDzx7w.cjs");class y{walletClient;publicClient;erc20Permit;vault;depositor;l2Depositor;pufLocker;l2RewardManager;l1RewardManager;pufferWithdrawalManager;nucleusBoringVault;nucleusTeller;nucleusAccountant;nucleusAtomicQueue;mtwCarrot;carrotStaker;distributor;concreteVault;validatorTicket;pufferOracleV2;pufferProtocol;guardianModule;institutionalVault;institutionalAccessManager;lagoonVault;vlPuffer;gaugeRegistry;carrotVesting;constructor(e,r,n){const l=i.VIEM_CHAINS[e];this.walletClient=r??t.createWalletClient({chain:l,transport:t.http()}),this.publicClient=n??t.createPublicClient({chain:l,transport:t.http()}),this.erc20Permit=new c.ERC20PermitHandler(e,this.walletClient,this.publicClient),this.vault=new a.PufferVaultHandler(e,this.walletClient,this.publicClient),this.depositor=new s.PufferDepositorHandler(e,this.walletClient,this.publicClient),this.l2Depositor=new u.PufferL2DepositorHandler(e,this.walletClient,this.publicClient),this.pufLocker=new o.PufLockerHandler(e,this.walletClient,this.publicClient),this.l2RewardManager=new d.L2RewardManagerHandler(e,this.walletClient,this.publicClient),this.l1RewardManager=new h.L1RewardManagerHandler(e,this.walletClient,this.publicClient),this.pufferWithdrawalManager=new w.PufferWithdrawalManagerHandler(e,this.walletClient,this.publicClient),this.nucleusBoringVault=new C.NucleusBoringVaultHandler(e,this.walletClient,this.publicClient),this.nucleusTeller=new p.NucleusTellerHandler(e,this.walletClient,this.publicClient),this.nucleusAccountant=new _.NucleusAccountantHandler(e,this.walletClient,this.publicClient),this.nucleusAtomicQueue=new f.NucleusAtomicQueueHandler(e,this.walletClient,this.publicClient),this.mtwCarrot=new H.MtwCarrotHandler(e,this.walletClient,this.publicClient),this.carrotStaker=new g.CarrotStakingHandler(e,this.walletClient,this.publicClient),this.distributor=new b.DistributorHandler(e,this.walletClient,this.publicClient),this.concreteVault=new q.ConcreteVaultHandler(e,this.walletClient,this.publicClient),this.validatorTicket=new V.ValidatorTicketHandler(e,this.walletClient,this.publicClient),this.pufferOracleV2=new M.PufferOracleV2Handler(e,this.walletClient,this.publicClient),this.pufferProtocol=new P.PufferProtocolHandler(e,this.walletClient,this.publicClient),this.guardianModule=new A.GuardianModuleHandler(e,this.walletClient,this.publicClient),this.institutionalVault=new m.InstitutionalVaultHandler(e,this.walletClient,this.publicClient),this.institutionalAccessManager=new R.InstitutionalAccessManagerHandler(e,this.walletClient,this.publicClient),this.lagoonVault=new k.LagoonVaultHandler(e,this.walletClient,this.publicClient),this.vlPuffer=new v.VLPufferHandler(e,this.walletClient,this.publicClient),this.gaugeRegistry=new L.GaugeRegistryHandler(e,this.walletClient,this.publicClient),this.carrotVesting=new T.CarrotVestingHandler(e,this.walletClient,this.publicClient)}async requestAddresses(){return await this.walletClient.requestAddresses()}}exports.PufferClient=y;
2
2
  //# sourceMappingURL=puffer-client.cjs.map
@@ -1,4 +1,4 @@
1
- import { V as n } from "../constants-CuIEh_ZS.js";
1
+ import { V as n } from "../constants-BO_Dvglw.js";
2
2
  import { PufferVaultHandler as a } from "../contracts/handlers/puffer-vault-handler.js";
3
3
  import { PufferDepositorHandler as s } from "../contracts/handlers/puffer-depositor-handler.js";
4
4
  import { PufferL2DepositorHandler as o } from "../contracts/handlers/puffer-l2-depositor-handler.js";
@@ -25,7 +25,7 @@ import { LagoonVaultHandler as v } from "../contracts/handlers/lagoon-vault-hand
25
25
  import { VLPufferHandler as T } from "../contracts/handlers/vl-puffer-handler.js";
26
26
  import { GaugeRegistryHandler as D } from "../contracts/handlers/gauge-registry-handler.js";
27
27
  import { CarrotVestingHandler as N } from "../contracts/handlers/carrot-vesting-handler.js";
28
- import { c as y, h as l, a as I } from "../http-CajzXkt4.js";
28
+ import { c as y, h as l, a as I } from "../http-ZcKHvn9V.js";
29
29
  class ut {
30
30
  walletClient;
31
31
  publicClient;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./writeContract-BnmmOPwy.cjs"),f=require("./constants-6kuRTsbU.cjs"),m=require("./localBatchGatewayRequest-C7zYTS2c.cjs");class b extends f.BaseError{constructor({callbackSelector:r,cause:e,data:n,extraData:c,sender:i,urls:a}){super(e.shortMessage||"An error occurred while fetching for an offchain result.",{cause:e,metaMessages:[...e.metaMessages||[],e.metaMessages?.length?"":[],"Offchain Gateway Call:",a&&[" Gateway URL(s):",...a.map(u=>` ${o.getUrl(u)}`)],` Sender: ${i}`,` Data: ${n}`,` Callback selector: ${r}`,` Extra data: ${c}`].flat(),name:"OffchainLookupError"})}}class L extends f.BaseError{constructor({result:r,url:e}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${o.getUrl(e)}`,`Response: ${o.stringify(r)}`],name:"OffchainLookupResponseMalformedError"})}}class R extends f.BaseError{constructor({sender:r,to:e}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${e}`,`OffchainLookup sender address: ${r}`],name:"OffchainLookupSenderMismatchError"})}}const E="0x556f1830",w={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(d,{blockNumber:r,blockTag:e,data:n,to:c}){const{args:i}=o.decodeErrorResult({data:n,abi:[w]}),[a,u,l,t,s]=i,{ccipRead:p}=d,y=p&&typeof p?.request=="function"?p.request:g;try{if(!o.isAddressEqual(c,a))throw new R({sender:a,to:c});const h=u.includes(m.localBatchGatewayUrl)?await m.localBatchGatewayRequest({data:l,ccipRequest:y}):await y({data:l,sender:a,urls:u}),{data:k}=await o.call(d,{blockNumber:r,blockTag:e,data:f.concat([t,o.encodeAbiParameters([{type:"bytes"},{type:"bytes"}],[h,s])]),to:c});return k}catch(h){throw new b({callbackSelector:t,cause:h,data:n,extraData:s,sender:a,urls:u})}}async function g({data:d,sender:r,urls:e}){let n=new Error("An unknown error occurred.");for(let c=0;c<e.length;c++){const i=e[c],a=i.includes("{data}")?"GET":"POST",u=a==="POST"?{data:d,sender:r}:void 0,l=a==="POST"?{"Content-Type":"application/json"}:{};try{const t=await fetch(i.replace("{sender}",r.toLowerCase()).replace("{data}",d),{body:JSON.stringify(u),headers:l,method:a});let s;if(t.headers.get("Content-Type")?.startsWith("application/json")?s=(await t.json()).data:s=await t.text(),!t.ok){n=new o.HttpRequestError({body:u,details:s?.error?o.stringify(s.error):t.statusText,headers:t.headers,status:t.status,url:i});continue}if(!f.isHex(s)){n=new L({result:s,url:i});continue}return s}catch(t){n=new o.HttpRequestError({body:u,details:t.message,url:i})}}throw n}exports.ccipRequest=g;exports.offchainLookup=O;exports.offchainLookupAbiItem=w;exports.offchainLookupSignature=E;
2
- //# sourceMappingURL=ccip-LIGR3N1A.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./writeContract-HBsqM_Od.cjs"),f=require("./constants-4-ehn8UI.cjs"),m=require("./localBatchGatewayRequest-BTy8p6qj.cjs");class b extends f.BaseError{constructor({callbackSelector:r,cause:e,data:n,extraData:c,sender:i,urls:a}){super(e.shortMessage||"An error occurred while fetching for an offchain result.",{cause:e,metaMessages:[...e.metaMessages||[],e.metaMessages?.length?"":[],"Offchain Gateway Call:",a&&[" Gateway URL(s):",...a.map(u=>` ${o.getUrl(u)}`)],` Sender: ${i}`,` Data: ${n}`,` Callback selector: ${r}`,` Extra data: ${c}`].flat(),name:"OffchainLookupError"})}}class L extends f.BaseError{constructor({result:r,url:e}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${o.getUrl(e)}`,`Response: ${o.stringify(r)}`],name:"OffchainLookupResponseMalformedError"})}}class R extends f.BaseError{constructor({sender:r,to:e}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${e}`,`OffchainLookup sender address: ${r}`],name:"OffchainLookupSenderMismatchError"})}}const E="0x556f1830",w={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(d,{blockNumber:r,blockTag:e,data:n,to:c}){const{args:i}=o.decodeErrorResult({data:n,abi:[w]}),[a,u,l,t,s]=i,{ccipRead:p}=d,y=p&&typeof p?.request=="function"?p.request:g;try{if(!o.isAddressEqual(c,a))throw new R({sender:a,to:c});const h=u.includes(m.localBatchGatewayUrl)?await m.localBatchGatewayRequest({data:l,ccipRequest:y}):await y({data:l,sender:a,urls:u}),{data:k}=await o.call(d,{blockNumber:r,blockTag:e,data:f.concat([t,o.encodeAbiParameters([{type:"bytes"},{type:"bytes"}],[h,s])]),to:c});return k}catch(h){throw new b({callbackSelector:t,cause:h,data:n,extraData:s,sender:a,urls:u})}}async function g({data:d,sender:r,urls:e}){let n=new Error("An unknown error occurred.");for(let c=0;c<e.length;c++){const i=e[c],a=i.includes("{data}")?"GET":"POST",u=a==="POST"?{data:d,sender:r}:void 0,l=a==="POST"?{"Content-Type":"application/json"}:{};try{const t=await fetch(i.replace("{sender}",r.toLowerCase()).replace("{data}",d),{body:JSON.stringify(u),headers:l,method:a});let s;if(t.headers.get("Content-Type")?.startsWith("application/json")?s=(await t.json()).data:s=await t.text(),!t.ok){n=new o.HttpRequestError({body:u,details:s?.error?o.stringify(s.error):t.statusText,headers:t.headers,status:t.status,url:i});continue}if(!f.isHex(s)){n=new L({result:s,url:i});continue}return s}catch(t){n=new o.HttpRequestError({body:u,details:t.message,url:i})}}throw n}exports.ccipRequest=g;exports.offchainLookup=O;exports.offchainLookupAbiItem=w;exports.offchainLookupSignature=E;
2
+ //# sourceMappingURL=ccip-Dv8Z-tXr.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ccip-LIGR3N1A.cjs","sources":["../node_modules/.pnpm/viem@2.37.6_typescript@5.9.2_zod@3.24.2/node_modules/viem/_esm/errors/ccip.js","../node_modules/.pnpm/viem@2.37.6_typescript@5.9.2_zod@3.24.2/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 { localBatchGatewayRequest, localBatchGatewayUrl, } from './ens/localBatchGatewayRequest.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 = urls.includes(localBatchGatewayUrl)\n ? await localBatchGatewayRequest({\n data: callData,\n ccipRequest: ccipRequest_,\n })\n : 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.toLowerCase()).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","url","getUrl","OffchainLookupResponseMalformedError","result","stringify","OffchainLookupSenderMismatchError","to","offchainLookupSignature","offchainLookupAbiItem","offchainLookup","client","blockNumber","blockTag","args","decodeErrorResult","callData","ccipRead","ccipRequest_","ccipRequest","isAddressEqual","localBatchGatewayUrl","localBatchGatewayRequest","data_","call","concat","encodeAbiParameters","err","error","i","method","body","headers","response","HttpRequestError","isHex"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"ccip-Dv8Z-tXr.cjs","sources":["../node_modules/.pnpm/viem@2.38.5_typescript@5.9.3_zod@4.1.12/node_modules/viem/_esm/errors/ccip.js","../node_modules/.pnpm/viem@2.38.5_typescript@5.9.3_zod@4.1.12/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 { localBatchGatewayRequest, localBatchGatewayUrl, } from './ens/localBatchGatewayRequest.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 = urls.includes(localBatchGatewayUrl)\n ? await localBatchGatewayRequest({\n data: callData,\n ccipRequest: ccipRequest_,\n })\n : 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.toLowerCase()).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","url","getUrl","OffchainLookupResponseMalformedError","result","stringify","OffchainLookupSenderMismatchError","to","offchainLookupSignature","offchainLookupAbiItem","offchainLookup","client","blockNumber","blockTag","args","decodeErrorResult","callData","ccipRead","ccipRequest_","ccipRequest","isAddressEqual","localBatchGatewayUrl","localBatchGatewayRequest","data_","call","concat","encodeAbiParameters","err","error","i","method","body","headers","response","HttpRequestError","isHex"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,6 +1,6 @@
1
- import { f as y, h as w, i as k, j as b, k as L, l as O, H as m } from "./writeContract-DYAfDrRz.js";
2
- import { B as p, c as R, i as E } from "./constants-CuIEh_ZS.js";
3
- import { l as x, a as M } from "./localBatchGatewayRequest-DtOvBmA9.js";
1
+ import { f as y, h as w, i as k, j as b, k as L, l as O, H as m } from "./writeContract-BFxyLFA9.js";
2
+ import { B as p, c as R, i as E } from "./constants-BO_Dvglw.js";
3
+ import { l as x, a as M } from "./localBatchGatewayRequest-Cb0QKL0s.js";
4
4
  class S extends p {
5
5
  constructor({ callbackSelector: s, cause: e, data: o, extraData: n, sender: c, urls: t }) {
6
6
  super(e.shortMessage || "An error occurred while fetching for an offchain result.", {
@@ -147,4 +147,4 @@ export {
147
147
  T as offchainLookupAbiItem,
148
148
  j as offchainLookupSignature
149
149
  };
150
- //# sourceMappingURL=ccip-78YM988s.js.map
150
+ //# sourceMappingURL=ccip-dYaIZXTj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ccip-78YM988s.js","sources":["../node_modules/.pnpm/viem@2.37.6_typescript@5.9.2_zod@3.24.2/node_modules/viem/_esm/errors/ccip.js","../node_modules/.pnpm/viem@2.37.6_typescript@5.9.2_zod@3.24.2/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 { localBatchGatewayRequest, localBatchGatewayUrl, } from './ens/localBatchGatewayRequest.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 = urls.includes(localBatchGatewayUrl)\n ? await localBatchGatewayRequest({\n data: callData,\n ccipRequest: ccipRequest_,\n })\n : 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.toLowerCase()).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","url","getUrl","OffchainLookupResponseMalformedError","result","stringify","OffchainLookupSenderMismatchError","to","offchainLookupSignature","offchainLookupAbiItem","offchainLookup","client","blockNumber","blockTag","args","decodeErrorResult","callData","ccipRead","ccipRequest_","ccipRequest","isAddressEqual","localBatchGatewayUrl","localBatchGatewayRequest","data_","call","concat","encodeAbiParameters","err","error","i","method","body","headers","response","HttpRequestError","isHex"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"ccip-dYaIZXTj.js","sources":["../node_modules/.pnpm/viem@2.38.5_typescript@5.9.3_zod@4.1.12/node_modules/viem/_esm/errors/ccip.js","../node_modules/.pnpm/viem@2.38.5_typescript@5.9.3_zod@4.1.12/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 { localBatchGatewayRequest, localBatchGatewayUrl, } from './ens/localBatchGatewayRequest.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 = urls.includes(localBatchGatewayUrl)\n ? await localBatchGatewayRequest({\n data: callData,\n ccipRequest: ccipRequest_,\n })\n : 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.toLowerCase()).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","url","getUrl","OffchainLookupResponseMalformedError","result","stringify","OffchainLookupSenderMismatchError","to","offchainLookupSignature","offchainLookupAbiItem","offchainLookup","client","blockNumber","blockTag","args","decodeErrorResult","callData","ccipRead","ccipRequest_","ccipRequest","isAddressEqual","localBatchGatewayUrl","localBatchGatewayRequest","data_","call","concat","encodeAbiParameters","err","error","i","method","body","headers","response","HttpRequestError","isHex"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../constants-6kuRTsbU.cjs");exports.Chain=e.Chain;exports.VIEM_CHAINS=e.VIEM_CHAINS;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../constants-4-ehn8UI.cjs");exports.Chain=e.Chain;exports.VIEM_CHAINS=e.VIEM_CHAINS;
2
2
  //# sourceMappingURL=constants.cjs.map
@@ -1,4 +1,4 @@
1
- import { C as o, V as r } from "../constants-CuIEh_ZS.js";
1
+ import { C as o, V as r } from "../constants-BO_Dvglw.js";
2
2
  export {
3
3
  o as Chain,
4
4
  r as VIEM_CHAINS
@@ -0,0 +1,9 @@
1
+ "use strict";function M(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}function w(e){return M(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}const Ne="2.38.5";let ce={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,version:`viem@${Ne}`};class u extends Error{constructor(t,n={}){const s=n.cause instanceof u?n.cause.details:n.cause?.message?n.cause.message:n.details,r=n.cause instanceof u&&n.cause.docsPath||n.docsPath,i=ce.getDocsUrl?.({...n,docsPath:r}),o=[t||"An error occurred.","",...n.metaMessages?[...n.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...s?[`Details: ${s}`]:[],...ce.version?[`Version: ${ce.version}`]:[]].join(`
2
+ `);super(o,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=s,this.docsPath=r,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=t,this.version=Ne}walk(t){return Me(this,t)}}function Me(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?Me(e.cause,t):t?null:e}class _e extends u{constructor({offset:t,position:n,size:s}){super(`Slice ${n==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${s}).`,{name:"SliceOffsetOutOfBoundsError"})}}class Ve extends u{constructor({size:t,targetSize:n,type:s}){super(`${s.charAt(0).toUpperCase()}${s.slice(1).toLowerCase()} size (${t}) exceeds padding size (${n}).`,{name:"SizeExceedsPaddingSizeError"})}}class Kt extends u{constructor({size:t,targetSize:n,type:s}){super(`${s.charAt(0).toUpperCase()}${s.slice(1).toLowerCase()} is expected to be ${n} ${s} long, but is ${t} ${s} long.`,{name:"InvalidBytesLengthError"})}}function _(e,{dir:t,size:n=32}={}){return typeof e=="string"?Re(e,{dir:t,size:n}):Wt(e,{dir:t,size:n})}function Re(e,{dir:t,size:n=32}={}){if(n===null)return e;const s=e.replace("0x","");if(s.length>n*2)throw new Ve({size:Math.ceil(s.length/2),targetSize:n,type:"hex"});return`0x${s[t==="right"?"padEnd":"padStart"](n*2,"0")}`}function Wt(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new Ve({size:e.length,targetSize:n,type:"bytes"});const s=new Uint8Array(n);for(let r=0;r<n;r++){const i=t==="right";s[i?r:n-r-1]=e[i?r:e.length-r-1]}return s}class De extends u{constructor({max:t,min:n,signed:s,size:r,value:i}){super(`Number "${i}" is not in safe ${r?`${r*8}-bit ${s?"signed":"unsigned"} `:""}integer range ${t?`(${n} to ${t})`:`(above ${n})`}`,{name:"IntegerOutOfRangeError"})}}class Xt extends u{constructor(t){super(`Bytes value "${t}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}}class Zt extends u{constructor(t){super(`Hex value "${t}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:"InvalidHexBooleanError"})}}class qt extends u{constructor({givenSize:t,maxSize:n}){super(`Size cannot exceed ${n} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}function A(e,{dir:t="left"}={}){let n=typeof e=="string"?e.replace("0x",""):e,s=0;for(let r=0;r<n.length-1&&n[t==="left"?r:n.length-r-1].toString()==="0";r++)s++;return n=t==="left"?n.slice(s):n.slice(0,n.length-s),typeof e=="string"?(n.length===1&&t==="right"&&(n=`${n}0`),`0x${n.length%2===1?`0${n}`:n}`):n}function U(e,{size:t}){if(w(e)>t)throw new qt({givenSize:w(e),maxSize:t})}function z(e,t={}){const{signed:n}=t;t.size&&U(e,{size:t.size});const s=BigInt(e);if(!n)return s;const r=(e.length-2)/2,i=(1n<<BigInt(r)*8n-1n)-1n;return s<=i?s:s-BigInt(`0x${"f".padStart(r*2,"f")}`)-1n}function Yt(e,t={}){let n=e;if(t.size&&(U(n,{size:t.size}),n=A(n)),A(n)==="0x00")return!1;if(A(n)==="0x01")return!0;throw new Zt(n)}function q(e,t={}){return Number(z(e,t))}const Jt=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function S(e,t={}){return typeof e=="number"||typeof e=="bigint"?f(e,t):typeof e=="string"?Ke(e,t):typeof e=="boolean"?je(e,t):v(e,t)}function je(e,t={}){const n=`0x${Number(e)}`;return typeof t.size=="number"?(U(n,{size:t.size}),_(n,{size:t.size})):n}function v(e,t={}){let n="";for(let r=0;r<e.length;r++)n+=Jt[e[r]];const s=`0x${n}`;return typeof t.size=="number"?(U(s,{size:t.size}),_(s,{dir:"right",size:t.size})):s}function f(e,t={}){const{signed:n,size:s}=t,r=BigInt(e);let i;s?n?i=(1n<<BigInt(s)*8n-1n)-1n:i=2n**(BigInt(s)*8n)-1n:typeof e=="number"&&(i=BigInt(Number.MAX_SAFE_INTEGER));const o=typeof i=="bigint"&&n?-i-1n:0;if(i&&r>i||r<o){const c=typeof e=="bigint"?"n":"";throw new De({max:i?`${i}${c}`:void 0,min:`${o}${c}`,signed:n,size:s,value:`${e}${c}`})}const a=`0x${(n&&r<0?(1n<<BigInt(s*8))+BigInt(r):r).toString(16)}`;return s?_(a,{size:s}):a}const Qt=new TextEncoder;function Ke(e,t={}){const n=Qt.encode(e);return v(n,t)}const en=new TextEncoder;function he(e,t={}){return typeof e=="number"||typeof e=="bigint"?nn(e,t):typeof e=="boolean"?tn(e,t):M(e)?C(e,t):pe(e,t)}function tn(e,t={}){const n=new Uint8Array(1);return n[0]=Number(e),typeof t.size=="number"?(U(n,{size:t.size}),_(n,{size:t.size})):n}const y={zero:48,nine:57,A:65,F:70,a:97,f:102};function Ue(e){if(e>=y.zero&&e<=y.nine)return e-y.zero;if(e>=y.A&&e<=y.F)return e-(y.A-10);if(e>=y.a&&e<=y.f)return e-(y.a-10)}function C(e,t={}){let n=e;t.size&&(U(n,{size:t.size}),n=_(n,{dir:"right",size:t.size}));let s=n.slice(2);s.length%2&&(s=`0${s}`);const r=s.length/2,i=new Uint8Array(r);for(let o=0,a=0;o<r;o++){const c=Ue(s.charCodeAt(a++)),l=Ue(s.charCodeAt(a++));if(c===void 0||l===void 0)throw new u(`Invalid byte sequence ("${s[a-2]}${s[a-1]}" in "${s}").`);i[o]=c*16+l}return i}function nn(e,t){const n=f(e,t);return C(n)}function pe(e,t={}){const n=en.encode(e);return typeof t.size=="number"?(U(n,{size:t.size}),_(n,{dir:"right",size:t.size})):n}const ne=BigInt(2**32-1),ke=BigInt(32);function sn(e,t=!1){return t?{h:Number(e&ne),l:Number(e>>ke&ne)}:{h:Number(e>>ke&ne)|0,l:Number(e&ne)|0}}function rn(e,t=!1){const n=e.length;let s=new Uint32Array(n),r=new Uint32Array(n);for(let i=0;i<n;i++){const{h:o,l:a}=sn(e[i],t);[s[i],r[i]]=[o,a]}return[s,r]}const on=(e,t,n)=>e<<n|t>>>32-n,an=(e,t,n)=>t<<n|e>>>32-n,cn=(e,t,n)=>t<<n-32|e>>>64-n,un=(e,t,n)=>e<<n-32|t>>>64-n,O=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ln(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Y(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function H(e,...t){if(!ln(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function dn(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");Y(e.outputLen),Y(e.blockLen)}function J(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function We(e,t){H(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function fn(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function N(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function ue(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function g(e,t){return e<<32-t|e>>>t}const hn=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function pn(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function bn(e){for(let t=0;t<e.length;t++)e[t]=pn(e[t]);return e}const ze=hn?e=>e:bn;function mn(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function se(e){return typeof e=="string"&&(e=mn(e)),H(e),e}function xn(...e){let t=0;for(let s=0;s<e.length;s++){const r=e[s];H(r),t+=r.length}const n=new Uint8Array(t);for(let s=0,r=0;s<e.length;s++){const i=e[s];n.set(i,r),r+=i.length}return n}class be{}function Xe(e){const t=s=>e().update(se(s)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function gn(e=32){if(O&&typeof O.getRandomValues=="function")return O.getRandomValues(new Uint8Array(e));if(O&&typeof O.randomBytes=="function")return Uint8Array.from(O.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}const yn=BigInt(0),j=BigInt(1),wn=BigInt(2),En=BigInt(7),Bn=BigInt(256),Tn=BigInt(113),Ze=[],qe=[],Ye=[];for(let e=0,t=j,n=1,s=0;e<24;e++){[n,s]=[s,(2*n+3*s)%5],Ze.push(2*(5*s+n)),qe.push((e+1)*(e+2)/2%64);let r=yn;for(let i=0;i<7;i++)t=(t<<j^(t>>En)*Tn)%Bn,t&wn&&(r^=j<<(j<<BigInt(i))-j);Ye.push(r)}const Je=rn(Ye,!0),vn=Je[0],In=Je[1],Se=(e,t,n)=>n>32?cn(e,t,n):on(e,t,n),He=(e,t,n)=>n>32?un(e,t,n):an(e,t,n);function Pn(e,t=24){const n=new Uint32Array(10);for(let s=24-t;s<24;s++){for(let o=0;o<10;o++)n[o]=e[o]^e[o+10]^e[o+20]^e[o+30]^e[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,c=(o+2)%10,l=n[c],h=n[c+1],d=Se(l,h,1)^n[a],b=He(l,h,1)^n[a+1];for(let p=0;p<50;p+=10)e[o+p]^=d,e[o+p+1]^=b}let r=e[2],i=e[3];for(let o=0;o<24;o++){const a=qe[o],c=Se(r,i,a),l=He(r,i,a),h=Ze[o];r=e[h],i=e[h+1],e[h]=c,e[h+1]=l}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)n[a]=e[o+a];for(let a=0;a<10;a++)e[o+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=vn[s],e[1]^=In[s]}N(n)}class me extends be{constructor(t,n,s,r=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=n,this.outputLen=s,this.enableXOF=r,this.rounds=i,Y(s),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=fn(this.state)}clone(){return this._cloneInto()}keccak(){ze(this.state32),Pn(this.state32,this.rounds),ze(this.state32),this.posOut=0,this.pos=0}update(t){J(this),t=se(t),H(t);const{blockLen:n,state:s}=this,r=t.length;for(let i=0;i<r;){const o=Math.min(n-this.pos,r-i);for(let a=0;a<o;a++)s[this.pos++]^=t[i++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:n,pos:s,blockLen:r}=this;t[s]^=n,(n&128)!==0&&s===r-1&&this.keccak(),t[r-1]^=128,this.keccak()}writeInto(t){J(this,!1),H(t),this.finish();const n=this.state,{blockLen:s}=this;for(let r=0,i=t.length;r<i;){this.posOut>=s&&this.keccak();const o=Math.min(s-this.posOut,i-r);t.set(n.subarray(this.posOut,this.posOut+o),r),this.posOut+=o,r+=o}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Y(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(We(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,N(this.state)}_cloneInto(t){const{blockLen:n,suffix:s,outputLen:r,rounds:i,enableXOF:o}=this;return t||(t=new me(n,s,r,o,i)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=i,t.suffix=s,t.outputLen=r,t.enableXOF=o,t.destroyed=this.destroyed,t}}const An=(e,t,n)=>Xe(()=>new me(t,e,n)),Qe=An(1,136,256/8);function et(e,t){const n=t||"hex",s=Qe(M(e,{strict:!1})?he(e):e);return n==="bytes"?s:S(s)}class E extends u{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}class xe extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){const n=super.get(t);return super.has(t)&&n!==void 0&&(this.delete(t),super.set(t,n)),n}set(t,n){if(super.set(t,n),this.maxSize&&this.size>this.maxSize){const s=this.keys().next().value;s&&this.delete(s)}return this}}const le=new xe(8192);function ge(e,t){if(le.has(`${e}.${t}`))return le.get(`${e}.${t}`);const n=e.substring(2).toLowerCase(),s=et(pe(n),"bytes"),r=n.split("");for(let o=0;o<40;o+=2)s[o>>1]>>4>=8&&r[o]&&(r[o]=r[o].toUpperCase()),(s[o>>1]&15)>=8&&r[o+1]&&(r[o+1]=r[o+1].toUpperCase());const i=`0x${r.join("")}`;return le.set(`${e}.${t}`,i),i}function $n(e,t){if(!B(e,{strict:!1}))throw new E({address:e});return ge(e,t)}const Cn=/^0x[a-fA-F0-9]{40}$/,de=new xe(8192);function B(e,t){const{strict:n=!0}=t??{},s=`${e}.${n}`;if(de.has(s))return de.get(s);const r=Cn.test(e)?e.toLowerCase()===e?!0:n?ge(e)===e:!0:!1;return de.set(s,r),r}function Fn(e){return typeof e[0]=="string"?L(e):Un(e)}function Un(e){let t=0;for(const r of e)t+=r.length;const n=new Uint8Array(t);let s=0;for(const r of e)n.set(r,s),s+=r.length;return n}function L(e){return`0x${e.reduce((t,n)=>t+n.replace("0x",""),"")}`}function tt(e,t,n,{strict:s}={}){return M(e,{strict:!1})?it(e,t,n,{strict:s}):rt(e,t,n,{strict:s})}function nt(e,t){if(typeof t=="number"&&t>0&&t>w(e)-1)throw new _e({offset:t,position:"start",size:w(e)})}function st(e,t,n){if(typeof t=="number"&&typeof n=="number"&&w(e)!==n-t)throw new _e({offset:n,position:"end",size:w(e)})}function rt(e,t,n,{strict:s}={}){nt(e,t);const r=e.slice(t,n);return s&&st(r,t,n),r}function it(e,t,n,{strict:s}={}){nt(e,t);const r=`0x${e.replace("0x","").slice((t??0)*2,(n??e.length)*2)}`;return s&&st(r,t,n),r}class Le extends u{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class ot extends u{constructor({length:t,position:n}){super(`Position \`${n}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}}class kn extends u{constructor({count:t,limit:n}){super(`Recursive read limit of \`${n}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}const zn={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new kn({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new ot({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Le({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new Le({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function ye(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(zn);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}const Sn={gwei:9,wei:18},Hn={ether:-9,wei:9};function at(e,t){let n=e.toString();const s=n.startsWith("-");s&&(n=n.slice(1)),n=n.padStart(t,"0");let[r,i]=[n.slice(0,n.length-t),n.slice(n.length-t)];return i=i.replace(/(0+)$/,""),`${s?"-":""}${r||"0"}${i?`.${i}`:""}`}function ct(e,t="wei"){return at(e,Sn[t])}function $(e,t="wei"){return at(e,Hn[t])}function we(e){const t=Object.entries(e).map(([s,r])=>r===void 0||r===!1?null:[s,r]).filter(Boolean),n=t.reduce((s,[r])=>Math.max(s,r.length),0);return t.map(([s,r])=>` ${`${s}:`.padEnd(n+1)} ${r}`).join(`
3
+ `)}class Ln extends u{constructor(){super(["Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.","Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others."].join(`
4
+ `),{name:"FeeConflictError"})}}class Gn extends u{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class On extends u{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",we(t),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class Nn extends u{constructor({storageKey:t}){super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}class Mn extends u{constructor(t,{account:n,docsPath:s,chain:r,data:i,gas:o,gasPrice:a,maxFeePerGas:c,maxPriorityFeePerGas:l,nonce:h,to:d,value:b}){const p=we({chain:r&&`${r?.name} (id: ${r?.id})`,from:n?.address,to:d,value:typeof b<"u"&&`${ct(b)} ${r?.nativeCurrency?.symbol||"ETH"}`,data:i,gas:o,gasPrice:typeof a<"u"&&`${$(a)} gwei`,maxFeePerGas:typeof c<"u"&&`${$(c)} gwei`,maxPriorityFeePerGas:typeof l<"u"&&`${$(l)} gwei`,nonce:h});super(t.shortMessage,{cause:t,docsPath:s,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Request Arguments:",p].filter(Boolean),name:"TransactionExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}}class _n extends u{constructor({blockHash:t,blockNumber:n,blockTag:s,hash:r,index:i}){let o="Transaction";s&&i!==void 0&&(o=`Transaction at block time "${s}" at index "${i}"`),t&&i!==void 0&&(o=`Transaction at block hash "${t}" at index "${i}"`),n&&i!==void 0&&(o=`Transaction at block number "${n}" at index "${i}"`),r&&(o=`Transaction with hash "${r}"`),super(`${o} could not be found.`,{name:"TransactionNotFoundError"})}}class Vn extends u{constructor({hash:t}){super(`Transaction receipt with hash "${t}" could not be found. The Transaction may not be processed on a block yet.`,{name:"TransactionReceiptNotFoundError"})}}class Rn extends u{constructor({receipt:t}){super(`Transaction with hash "${t.transactionHash}" reverted.`,{metaMessages:['The receipt marked the transaction as "reverted". This could mean that the function on the contract you are trying to call threw an error.'," ","You can attempt to extract the revert reason by:","- calling the `simulateContract` or `simulateCalls` Action with the `abi` and `functionName` of the contract","- using the `call` Action with raw `data`"],name:"TransactionReceiptRevertedError"}),Object.defineProperty(this,"receipt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.receipt=t}}class Dn extends u{constructor({hash:t}){super(`Timed out while waiting for transaction with hash "${t}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}function F(e,t="hex"){const n=ut(e),s=ye(new Uint8Array(n.length));return n.encode(s),t==="hex"?v(s.bytes):s.bytes}function ut(e){return Array.isArray(e)?jn(e.map(t=>ut(t))):Kn(e)}function jn(e){const t=e.reduce((r,i)=>r+i.length,0),n=lt(t);return{length:t<=55?1+t:1+n+t,encode(r){t<=55?r.pushByte(192+t):(r.pushByte(247+n),n===1?r.pushUint8(t):n===2?r.pushUint16(t):n===3?r.pushUint24(t):r.pushUint32(t));for(const{encode:i}of e)i(r)}}}function Kn(e){const t=typeof e=="string"?C(e):e,n=lt(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length,encode(r){t.length===1&&t[0]<128?r.pushBytes(t):t.length<=55?(r.pushByte(128+t.length),r.pushBytes(t)):(r.pushByte(183+n),n===1?r.pushUint8(t.length):n===2?r.pushUint16(t.length):n===3?r.pushUint24(t.length):r.pushUint32(t.length),r.pushBytes(t))}}}function lt(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new u("Length is too large.")}class Ee extends u{constructor({cause:t,message:n}={}){const s=n?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${s?`with reason: ${s}`:"for an unknown reason"}.`,{cause:t,name:"ExecutionRevertedError"})}}Object.defineProperty(Ee,"code",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(Ee,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});class Q extends u{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${$(n)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}}Object.defineProperty(Q,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class dt extends u{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${$(n)}`:""} gwei) cannot be lower than the block base fee.`,{cause:t,name:"FeeCapTooLowError"})}}Object.defineProperty(dt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class ft extends u{constructor({cause:t,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:""}is higher than the next one expected.`,{cause:t,name:"NonceTooHighError"})}}Object.defineProperty(ft,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class ht extends u{constructor({cause:t,nonce:n}={}){super([`Nonce provided for the transaction ${n?`(${n}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(`
5
+ `),{cause:t,name:"NonceTooLowError"})}}Object.defineProperty(ht,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class pt extends u{constructor({cause:t,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:""}exceeds the maximum allowed nonce.`,{cause:t,name:"NonceMaxValueError"})}}Object.defineProperty(pt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class bt extends u{constructor({cause:t}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(`
6
+ `),{cause:t,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}}Object.defineProperty(bt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});class mt extends u{constructor({cause:t,gas:n}={}){super(`The amount of gas ${n?`(${n}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:t,name:"IntrinsicGasTooHighError"})}}Object.defineProperty(mt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class xt extends u{constructor({cause:t,gas:n}={}){super(`The amount of gas ${n?`(${n}) `:""}provided for the transaction is too low.`,{cause:t,name:"IntrinsicGasTooLowError"})}}Object.defineProperty(xt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class gt extends u{constructor({cause:t}){super("The transaction type is not supported for this chain.",{cause:t,name:"TransactionTypeNotSupportedError"})}}Object.defineProperty(gt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class Be extends u{constructor({cause:t,maxPriorityFeePerGas:n,maxFeePerGas:s}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${n?` = ${$(n)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${s?` = ${$(s)} gwei`:""}).`].join(`
7
+ `),{cause:t,name:"TipAboveFeeCapError"})}}Object.defineProperty(Be,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class Wn extends u{constructor({cause:t}){super(`An error occurred while executing: ${t?.shortMessage}`,{cause:t,name:"UnknownNodeError"})}}function Te(e,t){return({exclude:n,format:s})=>({exclude:n,format:(r,i)=>{const o=t(r,i);if(n)for(const a of n)delete o[a];return{...o,...s(r,i)}},type:e})}const re=2n**256n-1n,yt={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function ie(e,t){const n={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?q(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?q(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?yt[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(n.authorizationList=Zn(e.authorizationList)),n.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof n.v=="bigint"){if(n.v===0n||n.v===27n)return 0;if(n.v===1n||n.v===28n)return 1;if(n.v>=35n)return n.v%2n===0n?1:0}})(),n.type==="legacy"&&(delete n.accessList,delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.yParity),n.type==="eip2930"&&(delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas),n.type==="eip1559"&&delete n.maxFeePerBlobGas,n}const Xn=Te("transaction",ie);function Zn(e){return e.map(t=>({address:t.address,chainId:Number(t.chainId),nonce:Number(t.nonce),r:t.r,s:t.s,yParity:Number(t.yParity)}))}function wt(e,t){const n=(e.transactions??[]).map(s=>typeof s=="string"?s:ie(s));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:n,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const qn=Te("block",wt);function ve(e){const{kzg:t}=e,n=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),s=typeof e.blobs[0]=="string"?e.blobs.map(i=>C(i)):e.blobs,r=[];for(const i of s)r.push(Uint8Array.from(t.blobToKzgCommitment(i)));return n==="bytes"?r:r.map(i=>v(i))}function Ie(e){const{kzg:t}=e,n=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),s=typeof e.blobs[0]=="string"?e.blobs.map(o=>C(o)):e.blobs,r=typeof e.commitments[0]=="string"?e.commitments.map(o=>C(o)):e.commitments,i=[];for(let o=0;o<s.length;o++){const a=s[o],c=r[o];i.push(Uint8Array.from(t.computeBlobKzgProof(a,c)))}return n==="bytes"?i:i.map(o=>v(o))}function Yn(e,t,n,s){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,s);const r=BigInt(32),i=BigInt(4294967295),o=Number(n>>r&i),a=Number(n&i),c=s?4:0,l=s?0:4;e.setUint32(t+c,o,s),e.setUint32(t+l,a,s)}function Jn(e,t,n){return e&t^~e&n}function Qn(e,t,n){return e&t^e&n^t&n}class es extends be{constructor(t,n,s,r){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=n,this.padOffset=s,this.isLE=r,this.buffer=new Uint8Array(t),this.view=ue(this.buffer)}update(t){J(this),t=se(t),H(t);const{view:n,buffer:s,blockLen:r}=this,i=t.length;for(let o=0;o<i;){const a=Math.min(r-this.pos,i-o);if(a===r){const c=ue(t);for(;r<=i-o;o+=r)this.process(c,o);continue}s.set(t.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===r&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){J(this),We(t,this),this.finished=!0;const{buffer:n,view:s,blockLen:r,isLE:i}=this;let{pos:o}=this;n[o++]=128,N(this.buffer.subarray(o)),this.padOffset>r-o&&(this.process(s,0),o=0);for(let d=o;d<r;d++)n[d]=0;Yn(s,r-8,BigInt(this.length*8),i),this.process(s,0);const a=ue(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=c/4,h=this.get();if(l>h.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<l;d++)a.setUint32(4*d,h[d],i)}digest(){const{buffer:t,outputLen:n}=this;this.digestInto(t);const s=t.slice(0,n);return this.destroy(),s}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:n,buffer:s,length:r,finished:i,destroyed:o,pos:a}=this;return t.destroyed=o,t.finished=i,t.length=r,t.pos=a,r%n&&t.buffer.set(s),t}clone(){return this._cloneInto()}}const I=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ts=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),P=new Uint32Array(64);class ns extends es{constructor(t=32){super(64,t,8,!1),this.A=I[0]|0,this.B=I[1]|0,this.C=I[2]|0,this.D=I[3]|0,this.E=I[4]|0,this.F=I[5]|0,this.G=I[6]|0,this.H=I[7]|0}get(){const{A:t,B:n,C:s,D:r,E:i,F:o,G:a,H:c}=this;return[t,n,s,r,i,o,a,c]}set(t,n,s,r,i,o,a,c){this.A=t|0,this.B=n|0,this.C=s|0,this.D=r|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(t,n){for(let d=0;d<16;d++,n+=4)P[d]=t.getUint32(n,!1);for(let d=16;d<64;d++){const b=P[d-15],p=P[d-2],V=g(b,7)^g(b,18)^b>>>3,G=g(p,17)^g(p,19)^p>>>10;P[d]=G+P[d-7]+V+P[d-16]|0}let{A:s,B:r,C:i,D:o,E:a,F:c,G:l,H:h}=this;for(let d=0;d<64;d++){const b=g(a,6)^g(a,11)^g(a,25),p=h+b+Jn(a,c,l)+ts[d]+P[d]|0,G=(g(s,2)^g(s,13)^g(s,22))+Qn(s,r,i)|0;h=l,l=c,c=a,a=o+p|0,o=i,i=r,r=s,s=p+G|0}s=s+this.A|0,r=r+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,l=l+this.G|0,h=h+this.H|0,this.set(s,r,i,o,a,c,l,h)}roundClean(){N(P)}destroy(){this.set(0,0,0,0,0,0,0,0),N(this.buffer)}}const Et=Xe(()=>new ns),ss=Et;function rs(e,t){return ss(M(e,{strict:!1})?he(e):e)}function is(e){const{commitment:t,version:n=1}=e,s=e.to??(typeof t=="string"?"hex":"bytes"),r=rs(t);return r.set([n],0),s==="bytes"?r:v(r)}function Bt(e){const{commitments:t,version:n}=e,s=e.to??(typeof t[0]=="string"?"hex":"bytes"),r=[];for(const i of t)r.push(is({commitment:i,to:s,version:n}));return r}const Ge=6,Tt=32,Pe=4096,vt=Tt*Pe,Oe=vt*Ge-1-1*Pe*Ge,It=1;class os extends u{constructor({maxSize:t,size:n}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${n} bytes`],name:"BlobSizeTooLargeError"})}}class Pt extends u{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class as extends u{constructor({hash:t,size:n}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${n}`],name:"InvalidVersionedHashSizeError"})}}class cs extends u{constructor({hash:t,version:n}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${It}`,`Received: ${n}`],name:"InvalidVersionedHashVersionError"})}}function us(e){const t=e.to??(typeof e.data=="string"?"hex":"bytes"),n=typeof e.data=="string"?C(e.data):e.data,s=w(n);if(!s)throw new Pt;if(s>Oe)throw new os({maxSize:Oe,size:s});const r=[];let i=!0,o=0;for(;i;){const a=ye(new Uint8Array(vt));let c=0;for(;c<Pe;){const l=n.slice(o,o+(Tt-1));if(a.pushByte(0),a.pushBytes(l),l.length<31){a.pushByte(128),i=!1;break}c++,o+=31}r.push(a)}return t==="bytes"?r.map(a=>a.bytes):r.map(a=>v(a.bytes))}function At(e){const{data:t,kzg:n,to:s}=e,r=e.blobs??us({data:t,to:s}),i=e.commitments??ve({blobs:r,kzg:n,to:s}),o=e.proofs??Ie({blobs:r,commitments:i,kzg:n,to:s}),a=[];for(let c=0;c<r.length;c++)a.push({blob:r[c],commitment:i[c],proof:o[c]});return a}function $t(e){if(e.type)return e.type;if(typeof e.authorizationList<"u")return"eip7702";if(typeof e.blobs<"u"||typeof e.blobVersionedHashes<"u"||typeof e.maxFeePerBlobGas<"u"||typeof e.sidecars<"u")return"eip4844";if(typeof e.maxFeePerGas<"u"||typeof e.maxPriorityFeePerGas<"u")return"eip1559";if(typeof e.gasPrice<"u")return typeof e.accessList<"u"?"eip2930":"legacy";throw new On({transaction:e})}function Ct(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}class ls extends u{constructor({blockNumber:t,chain:n,contract:s}){super(`Chain "${n.name}" does not support contract "${s.name}".`,{metaMessages:["This could be due to any of the following:",...t&&s.blockCreated&&s.blockCreated>t?[`- The contract "${s.name}" was not deployed until block ${s.blockCreated} (current block ${t}).`]:[`- The chain does not have the contract "${s.name}" configured.`]],name:"ChainDoesNotSupportContract"})}}class ds extends u{constructor({chain:t,currentChainId:n}){super(`The current chain of the wallet (id: ${n}) does not match the target chain for the transaction (id: ${t.id} – ${t.name}).`,{metaMessages:[`Current Chain ID: ${n}`,`Expected Chain ID: ${t.id} – ${t.name}`],name:"ChainMismatchError"})}}class fs extends u{constructor(){super(["No chain was provided to the request.","Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient."].join(`
8
+ `),{name:"ChainNotFoundError"})}}class hs extends u{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}}class oe extends u{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}const Ft={"0x0":"reverted","0x1":"success"};function Ut(e,t){const n={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(s=>Ct(s)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?q(e.transactionIndex):null,status:e.status?Ft[e.status]:null,type:e.type?yt[e.type]||e.type:null};return e.blobGasPrice&&(n.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(n.blobGasUsed=BigInt(e.blobGasUsed)),n}const ps=Te("transactionReceipt",Ut);function bs(e){const{authorizationList:t}=e;if(t)for(const n of t){const{chainId:s}=n,r=n.address;if(!B(r))throw new E({address:r});if(s<0)throw new oe({chainId:s})}Ae(e)}function ms(e){const{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Pt;for(const n of t){const s=w(n),r=q(tt(n,0,1));if(s!==32)throw new as({hash:n,size:s});if(r!==It)throw new cs({hash:n,version:r})}}Ae(e)}function Ae(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:s,to:r}=e;if(t<=0)throw new oe({chainId:t});if(r&&!B(r))throw new E({address:r});if(s&&s>re)throw new Q({maxFeePerGas:s});if(n&&s&&n>s)throw new Be({maxFeePerGas:s,maxPriorityFeePerGas:n})}function xs(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:s,maxFeePerGas:r,to:i}=e;if(t<=0)throw new oe({chainId:t});if(i&&!B(i))throw new E({address:i});if(n||r)throw new u("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(s&&s>re)throw new Q({maxFeePerGas:s})}function gs(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:s,maxFeePerGas:r,to:i}=e;if(i&&!B(i))throw new E({address:i});if(typeof t<"u"&&t<=0)throw new oe({chainId:t});if(n||r)throw new u("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(s&&s>re)throw new Q({maxFeePerGas:s})}function ae(e){if(!e||e.length===0)return[];const t=[];for(let n=0;n<e.length;n++){const{address:s,storageKeys:r}=e[n];for(let i=0;i<r.length;i++)if(r[i].length-2!==64)throw new Nn({storageKey:r[i]});if(!B(s,{strict:!1}))throw new E({address:s});t.push([s,r])}return t}function ys(e,t){const n=$t(e);return n==="eip1559"?Bs(e,t):n==="eip2930"?Ts(e,t):n==="eip4844"?Es(e,t):n==="eip7702"?ws(e,t):vs(e,t)}function ws(e,t){const{authorizationList:n,chainId:s,gas:r,nonce:i,to:o,value:a,maxFeePerGas:c,maxPriorityFeePerGas:l,accessList:h,data:d}=e;bs(e);const b=ae(h),p=Is(n);return L(["0x04",F([f(s),i?f(i):"0x",l?f(l):"0x",c?f(c):"0x",r?f(r):"0x",o??"0x",a?f(a):"0x",d??"0x",b,p,...ee(e,t)])])}function Es(e,t){const{chainId:n,gas:s,nonce:r,to:i,value:o,maxFeePerBlobGas:a,maxFeePerGas:c,maxPriorityFeePerGas:l,accessList:h,data:d}=e;ms(e);let b=e.blobVersionedHashes,p=e.sidecars;if(e.blobs&&(typeof b>"u"||typeof p>"u")){const k=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(D=>v(D)),te=e.kzg,R=ve({blobs:k,kzg:te});if(typeof b>"u"&&(b=Bt({commitments:R})),typeof p>"u"){const D=Ie({blobs:k,commitments:R,kzg:te});p=At({blobs:k,commitments:R,proofs:D})}}const V=ae(h),G=[f(n),r?f(r):"0x",l?f(l):"0x",c?f(c):"0x",s?f(s):"0x",i??"0x",o?f(o):"0x",d??"0x",V,a?f(a):"0x",b??[],...ee(e,t)],$e=[],Ce=[],Fe=[];if(p)for(let k=0;k<p.length;k++){const{blob:te,commitment:R,proof:D}=p[k];$e.push(te),Ce.push(R),Fe.push(D)}return L(["0x03",F(p?[G,$e,Ce,Fe]:G)])}function Bs(e,t){const{chainId:n,gas:s,nonce:r,to:i,value:o,maxFeePerGas:a,maxPriorityFeePerGas:c,accessList:l,data:h}=e;Ae(e);const d=ae(l),b=[f(n),r?f(r):"0x",c?f(c):"0x",a?f(a):"0x",s?f(s):"0x",i??"0x",o?f(o):"0x",h??"0x",d,...ee(e,t)];return L(["0x02",F(b)])}function Ts(e,t){const{chainId:n,gas:s,data:r,nonce:i,to:o,value:a,accessList:c,gasPrice:l}=e;xs(e);const h=ae(c),d=[f(n),i?f(i):"0x",l?f(l):"0x",s?f(s):"0x",o??"0x",a?f(a):"0x",r??"0x",h,...ee(e,t)];return L(["0x01",F(d)])}function vs(e,t){const{chainId:n=0,gas:s,data:r,nonce:i,to:o,value:a,gasPrice:c}=e;gs(e);let l=[i?f(i):"0x",c?f(c):"0x",s?f(s):"0x",o??"0x",a?f(a):"0x",r??"0x"];if(t){const h=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(n>0)return BigInt(n*2)+BigInt(35n+t.v-27n);const p=27n+(t.v===27n?0n:1n);if(t.v!==p)throw new Gn({v:t.v});return p})(),d=A(t.r),b=A(t.s);l=[...l,f(h),d==="0x00"?"0x":d,b==="0x00"?"0x":b]}else n>0&&(l=[...l,f(n),"0x","0x"]);return F(l)}function ee(e,t){const n=t??e,{v:s,yParity:r}=n;if(typeof n.r>"u")return[];if(typeof n.s>"u")return[];if(typeof s>"u"&&typeof r>"u")return[];const i=A(n.r),o=A(n.s);return[typeof r=="number"?r?f(1):"0x":s===0n?"0x":s===1n?f(1):s===27n?"0x":f(1),i==="0x00"?"0x":i,o==="0x00"?"0x":o]}function Is(e){if(!e||e.length===0)return[];const t=[];for(const n of e){const{chainId:s,nonce:r,...i}=n,o=n.address;t.push([s?S(s):"0x",o,r?S(r):"0x",...ee({},i)])}return t}function x(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const Ps={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},As={block:qn({format(e){return{transactions:e.transactions?.map(n=>{if(typeof n=="string")return n;const s=ie(n);return s.typeHex==="0x7e"&&(s.isSystemTx=n.isSystemTx,s.mint=n.mint?z(n.mint):void 0,s.sourceHash=n.sourceHash,s.type="deposit"),s}),stateRoot:e.stateRoot}}}),transaction:Xn({format(e){const t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?z(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:ps({format(e){return{l1GasPrice:e.l1GasPrice?z(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?z(e.l1GasUsed):null,l1Fee:e.l1Fee?z(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};function $s(e,t){return Us(e)?Fs(e):ys(e,t)}const Cs={transaction:$s};function Fs(e){ks(e);const{sourceHash:t,data:n,from:s,gas:r,isSystemTx:i,mint:o,to:a,value:c}=e,l=[t,s,a??"0x",o?S(o):"0x",c?S(c):"0x",r?S(r):"0x",i?"0x1":"0x",n??"0x"];return L(["0x7e",F(l)])}function Us(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function ks(e){const{from:t,to:n}=e;if(t&&!B(t))throw new E({address:t});if(n&&!B(n))throw new E({address:n})}const T={blockTime:2e3,contracts:Ps,formatters:As,serializers:Cs},zs=42161,kt=x({id:33139,name:"Ape Chain",nativeCurrency:{name:"ApeCoin",symbol:"APE",decimals:18},rpcUrls:{default:{http:["https://rpc.apechain.com/http"],webSocket:["wss://rpc.apechain.com/ws"]}},blockExplorers:{default:{name:"Apescan",url:"https://apescan.io",apiUrl:"https://api.apescan.io/api"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:20889}},sourceId:zs}),zt=x({id:42161,name:"Arbitrum One",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:250,rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://arbiscan.io",apiUrl:"https://api.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}}}),K=1,St=x({...T,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...T.contracts,disputeGameFactory:{[K]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[K]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[K]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[K]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:K}),W=11155111,Ht=x({...T,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{...T.contracts,disputeGameFactory:{[W]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[W]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[W]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[W]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:W}),Lt=x({id:80094,name:"Berachain",blockTime:2e3,nativeCurrency:{decimals:18,name:"BERA Token",symbol:"BERA"},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:0},ensRegistry:{address:"0x5b22280886a2f5e09a49bea7e320eab0e5320e28",blockCreated:877007},ensUniversalResolver:{address:"0x4D41762915F83c76EcaF6776d9b08076aA32b492",blockCreated:9310021}},rpcUrls:{default:{http:["https://rpc.berachain.com"]}},blockExplorers:{default:{name:"Berascan",url:"https://berascan.com"}},ensTlds:[".bera"],testnet:!1}),Gt=x({id:56,name:"BNB Smart Chain",blockTime:750,nativeCurrency:{decimals:18,name:"BNB",symbol:"BNB"},rpcUrls:{default:{http:["https://56.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"BscScan",url:"https://bscscan.com",apiUrl:"https://api.bscscan.com/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:15921452}}}),Ot=x({id:17e3,name:"Holesky",nativeCurrency:{name:"Holesky Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://ethereum-holesky-rpc.publicnode.com"]}},blockExplorers:{default:{name:"Etherscan",url:"https://holesky.etherscan.io",apiUrl:"https://api-holesky.etherscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:77},ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:4295055}},testnet:!0}),Nt=x({id:560048,name:"Hoodi",nativeCurrency:{name:"Hoodi Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.hoodi.ethpandaops.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://hoodi.etherscan.io"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:2589}},testnet:!0}),Mt=x({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},blockTime:12e3,rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:23085558},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),X=11155111,_t=x({...T,id:11155420,name:"OP Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.optimism.io"]}},blockExplorers:{default:{name:"Blockscout",url:"https://optimism-sepolia.blockscout.com",apiUrl:"https://optimism-sepolia.blockscout.com/api"}},contracts:{...T.contracts,disputeGameFactory:{[X]:{address:"0x05F9613aDB30026FFd634f38e5C4dFd30a197Fa1"}},l2OutputOracle:{[X]:{address:"0x90E9c4f8a994a250F6aEfd61CAFb4F2e895D458F"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1620204},portal:{[X]:{address:"0x16Fc5058F25648194471939df75CF27A2fdC48BC"}},l1StandardBridge:{[X]:{address:"0xFBb0621E0B23b5478B630BD55a5f21f67730B0F1"}}},testnet:!0,sourceId:X}),Vt=x({id:11155111,name:"Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://11155111.rpc.thirdweb.com"]}},blockExplorers:{default:{name:"Etherscan",url:"https://sepolia.etherscan.io",apiUrl:"https://api-sepolia.etherscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensUniversalResolver:{address:"0xeeeeeeee14d718c2b47d9923deab1335e144eeee",blockCreated:8928790}},testnet:!0}),Z=1,Rt=x({...T,id:1868,name:"Soneium Mainnet",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.soneium.org"]}},blockExplorers:{default:{name:"Blockscout",url:"https://soneium.blockscout.com",apiUrl:"https://soneium.blockscout.com/api"}},contracts:{...T.contracts,disputeGameFactory:{[Z]:{address:"0x512a3d2c7a43bd9261d2b8e8c9c70d4bd4d503c0"}},l2OutputOracle:{[Z]:{address:"0x0000000000000000000000000000000000000000"}},portal:{[Z]:{address:"0x88e529a6ccd302c948689cd5156c83d4614fae92",blockCreated:7061266}},l1StandardBridge:{[Z]:{address:"0xeb9bf100225c214efc3e7c651ebbadcf85177607",blockCreated:7061266}},multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:1}},sourceId:Z}),Dt=x({id:239,name:"TAC",nativeCurrency:{name:"TAC",symbol:"TAC",decimals:18},rpcUrls:{default:{http:["https://rpc.ankr.com/tac"]}},blockExplorers:{default:{name:"Blockscout",url:"https://tac.blockscout.com",apiUrl:"https://tac.blockscout.com/api"},native:{name:"TAC Explorer",url:"https://explorer.tac.build",apiUrl:"https://explorer.tac.build/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:0}}}),fe=1,jt=x({...T,id:48900,name:"Zircuit Mainnet",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://mainnet.zircuit.com","https://zircuit1-mainnet.liquify.com","https://zircuit1-mainnet.p2pify.com","https://zircuit-mainnet.drpc.org"]}},blockExplorers:{default:{name:"Zircuit Explorer",url:"https://explorer.zircuit.com"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11"},l2OutputOracle:{[fe]:{address:"0x92Ef6Af472b39F1b363da45E35530c24619245A4"}},portal:{[fe]:{address:"0x17bfAfA932d2e23Bd9B909Fd5B4D2e2a27043fb1"}},l1StandardBridge:{[fe]:{address:"0x386B76D9cA5F5Fb150B6BFB35CF5379B22B26dd8"}}},testnet:!1});var m=(e=>(e[e.Mainnet=Mt.id]="Mainnet",e[e.Holesky=Ot.id]="Holesky",e[e.Base=St.id]="Base",e[e.Bsc=Gt.id]="Bsc",e[e.Arbitrum=zt.id]="Arbitrum",e[e.ApeChain=kt.id]="ApeChain",e[e.Soneium=Rt.id]="Soneium",e[e.Sepolia=Vt.id]="Sepolia",e[e.OptimismSepolia=_t.id]="OptimismSepolia",e[e.BaseSepolia=Ht.id]="BaseSepolia",e[e.Zircuit=jt.id]="Zircuit",e[e.Berachain=Lt.id]="Berachain",e[e.Hoodi=Nt.id]="Hoodi",e[e.TAC=Dt.id]="TAC",e))(m||{});const Ss={[m.Mainnet]:Mt,[m.Holesky]:Ot,[m.Base]:St,[m.Bsc]:Gt,[m.Arbitrum]:zt,[m.ApeChain]:kt,[m.Soneium]:Rt,[m.Sepolia]:Vt,[m.OptimismSepolia]:_t,[m.BaseSepolia]:Ht,[m.Zircuit]:jt,[m.Berachain]:Lt,[m.Hoodi]:Nt,[m.TAC]:Dt};exports.BaseError=u;exports.Chain=m;exports.ChainDoesNotSupportContract=ls;exports.ChainMismatchError=ds;exports.ChainNotFoundError=fs;exports.ClientChainNotConfiguredError=hs;exports.ExecutionRevertedError=Ee;exports.FeeCapTooHighError=Q;exports.FeeCapTooLowError=dt;exports.FeeConflictError=Ln;exports.Hash=be;exports.InsufficientFundsError=bt;exports.IntegerOutOfRangeError=De;exports.IntrinsicGasTooHighError=mt;exports.IntrinsicGasTooLowError=xt;exports.InvalidAddressError=E;exports.InvalidBytesBooleanError=Xt;exports.InvalidBytesLengthError=Kt;exports.LruMap=xe;exports.NonceMaxValueError=pt;exports.NonceTooHighError=ft;exports.NonceTooLowError=ht;exports.PositionOutOfBoundsError=ot;exports.TipAboveFeeCapError=Be;exports.TransactionExecutionError=Mn;exports.TransactionNotFoundError=_n;exports.TransactionReceiptNotFoundError=Vn;exports.TransactionReceiptRevertedError=Rn;exports.TransactionTypeNotSupportedError=gt;exports.UnknownNodeError=Wn;exports.VIEM_CHAINS=Ss;exports.WaitForTransactionReceiptTimeoutError=Dn;exports.abytes=H;exports.aexists=J;exports.ahash=dn;exports.anumber=Y;exports.assertSize=U;exports.blobsToCommitments=ve;exports.blobsToProofs=Ie;exports.boolToHex=je;exports.bytesToHex=v;exports.checksumAddress=ge;exports.clean=N;exports.commitmentsToVersionedHashes=Bt;exports.concat=Fn;exports.concatBytes=xn;exports.concatHex=L;exports.createCursor=ye;exports.formatBlock=wt;exports.formatEther=ct;exports.formatGwei=$;exports.formatLog=Ct;exports.formatTransaction=ie;exports.formatTransactionReceipt=Ut;exports.getAddress=$n;exports.getTransactionType=$t;exports.hexToBigInt=z;exports.hexToBool=Yt;exports.hexToBytes=C;exports.hexToNumber=q;exports.isAddress=B;exports.isHex=M;exports.keccak256=et;exports.keccak_256=Qe;exports.maxUint256=re;exports.numberToHex=f;exports.padHex=Re;exports.prettyPrint=we;exports.randomBytes=gn;exports.receiptStatuses=Ft;exports.sha256=Et;exports.size=w;exports.slice=tt;exports.sliceBytes=rt;exports.sliceHex=it;exports.stringToBytes=pe;exports.stringToHex=Ke;exports.toBlobSidecars=At;exports.toBytes=he;exports.toBytes$1=se;exports.toHex=S;exports.toRlp=F;exports.trim=A;
9
+ //# sourceMappingURL=constants-4-ehn8UI.cjs.map