multicoyn-sdk 0.1.9 → 0.1.10

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-DqlG-QlC.cjs");function k(r){const{abi:n,data:a}=r,o=e.slice(a,0,4),t=n.find(s=>s.type==="function"&&o===e.toFunctionSelector(e.formatAbiItem(s)));if(!t)throw new e.AbiFunctionSignatureNotFoundError(o,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:t.name,args:"inputs"in t&&t.inputs&&t.inputs.length>0?e.decodeAbiParameters(t.inputs,e.slice(a,4)):void 0}}const h="/docs/contract/encodeErrorResult";function y(r){const{abi:n,errorName:a,args:o}=r;let t=n[0];if(a){const f=e.getAbiItem({abi:n,args:o,name:a});if(!f)throw new e.AbiErrorNotFoundError(a,{docsPath:h});t=f}if(t.type!=="error")throw new e.AbiErrorNotFoundError(void 0,{docsPath:h});const s=e.formatAbiItem(t),c=e.toFunctionSelector(s);let i="0x";if(o&&o.length>0){if(!t.inputs)throw new e.AbiErrorInputsNotFoundError(t.name,{docsPath:h});i=e.encodeAbiParameters(t.inputs,o)}return e.concatHex([c,i])}const m="/docs/contract/encodeFunctionResult";function L(r){const{abi:n,functionName:a,result:o}=r;let t=n[0];if(a){const c=e.getAbiItem({abi:n,name:a});if(!c)throw new e.AbiFunctionNotFoundError(a,{docsPath:m});t=c}if(t.type!=="function")throw new e.AbiFunctionNotFoundError(void 0,{docsPath:m});if(!t.outputs)throw new e.AbiFunctionOutputsNotFoundError(t.name,{docsPath:m});const s=(()=>{if(t.outputs.length===0)return[];if(t.outputs.length===1)return[o];if(Array.isArray(o))return o;throw new e.InvalidArrayError(o)})();return e.encodeAbiParameters(t.outputs,s)}const b="x-batch-gateway:true";async function g(r){const{data:n,ccipRequest:a}=r,{args:[o]}=k({abi:e.batchGatewayAbi,data:n}),t=[],s=[];return await Promise.all(o.map(async(c,i)=>{try{s[i]=c.urls.includes(b)?await g({data:c.data,ccipRequest:a}):await a(c),t[i]=!1}catch(f){t[i]=!0,s[i]=F(f)}})),L({abi:e.batchGatewayAbi,functionName:"query",result:[t,s]})}function F(r){return r.name==="HttpRequestError"&&r.status?y({abi:e.batchGatewayAbi,errorName:"HttpError",args:[r.status,r.shortMessage]}):y({abi:[e.solidityError],errorName:"Error",args:["shortMessage"in r?r.shortMessage:r.message]})}function O(r,n){if(!e.isAddress(r,{strict:!1}))throw new e.InvalidAddressError({address:r});if(!e.isAddress(n,{strict:!1}))throw new e.InvalidAddressError({address:n});return r.toLowerCase()===n.toLowerCase()}class P extends e.BaseError{constructor({callbackSelector:n,cause:a,data:o,extraData:t,sender:s,urls:c}){super(a.shortMessage||"An error occurred while fetching for an offchain result.",{cause:a,metaMessages:[...a.metaMessages||[],a.metaMessages?.length?"":[],"Offchain Gateway Call:",c&&[" Gateway URL(s):",...c.map(i=>` ${e.getUrl(i)}`)],` Sender: ${s}`,` Data: ${o}`,` Callback selector: ${n}`,` Extra data: ${t}`].flat(),name:"OffchainLookupError"})}}class S extends e.BaseError{constructor({result:n,url:a}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${e.getUrl(a)}`,`Response: ${e.stringify(n)}`],name:"OffchainLookupResponseMalformedError"})}}class x extends e.BaseError{constructor({sender:n,to:a}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${a}`,`OffchainLookup sender address: ${n}`],name:"OffchainLookupSenderMismatchError"})}}const M="0x556f1830",E={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 N(r,{blockNumber:n,blockTag:a,data:o,to:t}){const{args:s}=e.decodeErrorResult({data:o,abi:[E]}),[c,i,f,u,d]=s,{ccipRead:l}=r,w=l&&typeof l?.request=="function"?l.request:A;try{if(!O(t,c))throw new x({sender:c,to:t});const p=i.includes(b)?await g({data:f,ccipRequest:w}):await w({data:f,sender:c,urls:i}),{data:R}=await e.call(r,{blockNumber:n,blockTag:a,data:e.concat([u,e.encodeAbiParameters([{type:"bytes"},{type:"bytes"}],[p,d])]),to:t});return R}catch(p){throw new P({callbackSelector:u,cause:p,data:o,extraData:d,sender:c,urls:i})}}async function A({data:r,sender:n,urls:a}){let o=new Error("An unknown error occurred.");for(let t=0;t<a.length;t++){const s=a[t],c=s.includes("{data}")?"GET":"POST",i=c==="POST"?{data:r,sender:n}:void 0,f=c==="POST"?{"Content-Type":"application/json"}:{};try{const u=await fetch(s.replace("{sender}",n.toLowerCase()).replace("{data}",r),{body:JSON.stringify(i),headers:f,method:c});let d;if(u.headers.get("Content-Type")?.startsWith("application/json")?d=(await u.json()).data:d=await u.text(),!u.ok){o=new e.HttpRequestError({body:i,details:d?.error?e.stringify(d.error):u.statusText,headers:u.headers,status:u.status,url:s});continue}if(!e.isHex(d)){o=new S({result:d,url:s});continue}return d}catch(u){o=new e.HttpRequestError({body:i,details:u.message,url:s})}}throw o}exports.ccipRequest=A;exports.offchainLookup=N;exports.offchainLookupAbiItem=E;exports.offchainLookupSignature=M;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-BYCRbJsO.cjs");function k(r){const{abi:n,data:a}=r,o=e.slice(a,0,4),t=n.find(s=>s.type==="function"&&o===e.toFunctionSelector(e.formatAbiItem(s)));if(!t)throw new e.AbiFunctionSignatureNotFoundError(o,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:t.name,args:"inputs"in t&&t.inputs&&t.inputs.length>0?e.decodeAbiParameters(t.inputs,e.slice(a,4)):void 0}}const h="/docs/contract/encodeErrorResult";function y(r){const{abi:n,errorName:a,args:o}=r;let t=n[0];if(a){const f=e.getAbiItem({abi:n,args:o,name:a});if(!f)throw new e.AbiErrorNotFoundError(a,{docsPath:h});t=f}if(t.type!=="error")throw new e.AbiErrorNotFoundError(void 0,{docsPath:h});const s=e.formatAbiItem(t),c=e.toFunctionSelector(s);let i="0x";if(o&&o.length>0){if(!t.inputs)throw new e.AbiErrorInputsNotFoundError(t.name,{docsPath:h});i=e.encodeAbiParameters(t.inputs,o)}return e.concatHex([c,i])}const m="/docs/contract/encodeFunctionResult";function L(r){const{abi:n,functionName:a,result:o}=r;let t=n[0];if(a){const c=e.getAbiItem({abi:n,name:a});if(!c)throw new e.AbiFunctionNotFoundError(a,{docsPath:m});t=c}if(t.type!=="function")throw new e.AbiFunctionNotFoundError(void 0,{docsPath:m});if(!t.outputs)throw new e.AbiFunctionOutputsNotFoundError(t.name,{docsPath:m});const s=(()=>{if(t.outputs.length===0)return[];if(t.outputs.length===1)return[o];if(Array.isArray(o))return o;throw new e.InvalidArrayError(o)})();return e.encodeAbiParameters(t.outputs,s)}const b="x-batch-gateway:true";async function g(r){const{data:n,ccipRequest:a}=r,{args:[o]}=k({abi:e.batchGatewayAbi,data:n}),t=[],s=[];return await Promise.all(o.map(async(c,i)=>{try{s[i]=c.urls.includes(b)?await g({data:c.data,ccipRequest:a}):await a(c),t[i]=!1}catch(f){t[i]=!0,s[i]=F(f)}})),L({abi:e.batchGatewayAbi,functionName:"query",result:[t,s]})}function F(r){return r.name==="HttpRequestError"&&r.status?y({abi:e.batchGatewayAbi,errorName:"HttpError",args:[r.status,r.shortMessage]}):y({abi:[e.solidityError],errorName:"Error",args:["shortMessage"in r?r.shortMessage:r.message]})}function O(r,n){if(!e.isAddress(r,{strict:!1}))throw new e.InvalidAddressError({address:r});if(!e.isAddress(n,{strict:!1}))throw new e.InvalidAddressError({address:n});return r.toLowerCase()===n.toLowerCase()}class P extends e.BaseError{constructor({callbackSelector:n,cause:a,data:o,extraData:t,sender:s,urls:c}){super(a.shortMessage||"An error occurred while fetching for an offchain result.",{cause:a,metaMessages:[...a.metaMessages||[],a.metaMessages?.length?"":[],"Offchain Gateway Call:",c&&[" Gateway URL(s):",...c.map(i=>` ${e.getUrl(i)}`)],` Sender: ${s}`,` Data: ${o}`,` Callback selector: ${n}`,` Extra data: ${t}`].flat(),name:"OffchainLookupError"})}}class S extends e.BaseError{constructor({result:n,url:a}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${e.getUrl(a)}`,`Response: ${e.stringify(n)}`],name:"OffchainLookupResponseMalformedError"})}}class x extends e.BaseError{constructor({sender:n,to:a}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${a}`,`OffchainLookup sender address: ${n}`],name:"OffchainLookupSenderMismatchError"})}}const M="0x556f1830",E={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 N(r,{blockNumber:n,blockTag:a,data:o,to:t}){const{args:s}=e.decodeErrorResult({data:o,abi:[E]}),[c,i,f,u,d]=s,{ccipRead:l}=r,w=l&&typeof l?.request=="function"?l.request:A;try{if(!O(t,c))throw new x({sender:c,to:t});const p=i.includes(b)?await g({data:f,ccipRequest:w}):await w({data:f,sender:c,urls:i}),{data:R}=await e.call(r,{blockNumber:n,blockTag:a,data:e.concat([u,e.encodeAbiParameters([{type:"bytes"},{type:"bytes"}],[p,d])]),to:t});return R}catch(p){throw new P({callbackSelector:u,cause:p,data:o,extraData:d,sender:c,urls:i})}}async function A({data:r,sender:n,urls:a}){let o=new Error("An unknown error occurred.");for(let t=0;t<a.length;t++){const s=a[t],c=s.includes("{data}")?"GET":"POST",i=c==="POST"?{data:r,sender:n}:void 0,f=c==="POST"?{"Content-Type":"application/json"}:{};try{const u=await fetch(s.replace("{sender}",n.toLowerCase()).replace("{data}",r),{body:JSON.stringify(i),headers:f,method:c});let d;if(u.headers.get("Content-Type")?.startsWith("application/json")?d=(await u.json()).data:d=await u.text(),!u.ok){o=new e.HttpRequestError({body:i,details:d?.error?e.stringify(d.error):u.statusText,headers:u.headers,status:u.status,url:s});continue}if(!e.isHex(d)){o=new S({result:d,url:s});continue}return d}catch(u){o=new e.HttpRequestError({body:i,details:u.message,url:s})}}throw o}exports.ccipRequest=A;exports.offchainLookup=N;exports.offchainLookupAbiItem=E;exports.offchainLookupSignature=M;
@@ -1,4 +1,4 @@
1
- import { s as b, t as x, f as F, A as I, d as C, g as M, a as E, b as D, e as w, c as G, h as A, i as T, I as H, j as m, k as v, l as R, m as k, B as y, n as N, o as P, p as j, q as B, r as U, H as L, u as _ } from "./index-BqTi7WKI.js";
1
+ import { s as b, t as x, f as F, A as I, d as C, g as M, a as E, b as D, e as w, c as G, h as A, i as T, I as H, j as m, k as v, l as R, m as k, B as y, n as N, o as P, p as j, q as B, r as U, H as L, u as _ } from "./index-CKIs5Pi7.js";
2
2
  function J(e) {
3
3
  const { abi: s, data: a } = e, r = b(a, 0, 4), t = s.find((n) => n.type === "function" && r === x(F(n)));
4
4
  if (!t)
@@ -11,7 +11,8 @@ interface PaymentModalProps {
11
11
  transactionHash?: string;
12
12
  isProcessing?: boolean;
13
13
  isSuccess?: boolean;
14
+ isError?: boolean;
14
15
  conversionRate?: number;
15
16
  }
16
- export declare function PaymentModal({ isOpen, onClose, totalAmount, currency, items, tokens: initialTokens, onPaymentSubmit, fee, transactionHash, isProcessing: externalIsProcessing, isSuccess: externalIsSuccess, conversionRate, }: PaymentModalProps): import("react").ReactPortal | null;
17
+ export declare function PaymentModal({ isOpen, onClose, totalAmount, currency, items, tokens: initialTokens, onPaymentSubmit, fee, transactionHash, isProcessing: externalIsProcessing, isSuccess: externalIsSuccess, isError: externalIsError, conversionRate, }: PaymentModalProps): import("react").ReactPortal | null;
17
18
  export {};
@@ -9,30 +9,36 @@ export declare const TOKEN_METADATA: {
9
9
  readonly symbol: "ETH";
10
10
  readonly decimals: 18;
11
11
  readonly name: "Ether";
12
+ readonly logo: "https://cryptologos.cc/logos/ethereum-eth-logo.svg";
12
13
  };
13
14
  readonly USDC: {
14
15
  readonly symbol: "USDC";
15
16
  readonly decimals: 6;
16
17
  readonly name: "USD Coin";
18
+ readonly logo: "https://cryptologos.cc/logos/usd-coin-usdc-logo.svg";
17
19
  };
18
20
  readonly USDT: {
19
21
  readonly symbol: "USDT";
20
22
  readonly decimals: 6;
21
23
  readonly name: "Tether USD";
24
+ readonly logo: "https://cryptologos.cc/logos/tether-usdt-logo.svg";
22
25
  };
23
26
  readonly DAI: {
24
27
  readonly symbol: "DAI";
25
28
  readonly decimals: 18;
26
29
  readonly name: "Dai Stablecoin";
30
+ readonly logo: "https://cryptologos.cc/logos/multi-collateral-dai-dai-logo.svg";
27
31
  };
28
32
  readonly WBTC: {
29
33
  readonly symbol: "WBTC";
30
34
  readonly decimals: 8;
31
35
  readonly name: "Wrapped Bitcoin";
36
+ readonly logo: "https://cryptologos.cc/logos/wrapped-bitcoin-wbtc-logo.svg";
32
37
  };
33
38
  readonly IDRX: {
34
39
  readonly symbol: "IDRX";
35
40
  readonly decimals: 18;
36
41
  readonly name: "Indonesian Rupiah";
42
+ readonly logo: "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/info/logo.png";
37
43
  };
38
44
  };
@@ -0,0 +1,34 @@
1
+ "use strict";const c=require("react/jsx-runtime"),j=require("react"),A=require("wagmi"),Pr=require("react-dom"),fe=require("viem"),qt=require("@tanstack/react-query"),en=require("@rainbow-me/rainbowkit"),O={PAYMENT_ROUTER:"0x73Dbc7447E3B097cFc8b08ee7896a9D27D67e2B4",TOKEN_REGISTRY:"0x1d2C6dfB2f127d6F3c14859c9E54cbc27bd7FcCE"},T={NATIVE:"0x0000000000000000000000000000000000000000",USDC:"0x0Ff0aED4862e168086FD8BC38a4c27cE1830228b",USDT:"0xBc63b0cf19b757c2a6Ef646027f8CeA7Af2c3e7F",DAI:"0xd2aAa24D5C305B7968e955A89F0bf4E7776E7078",WBTC:"0x1BEC7ec7F995B9bcd93F411B2cE7d289C6b05f03",IDRX:"0x39B9205cDC53114c0B0F22F04C1215A13197b4d9"},Sr=JSON.parse('[{"inputs":[{"internalType":"address","name":"_tokenRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"CashbackSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"}],"name":"CollectedTokensWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"}],"name":"EmergencyPoolWithdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"merchant","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MerchantSettled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"newMinimum","type":"uint256"}],"name":"MinimumPoolBalanceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"paymentId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"merchant","type":"address"},{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":false,"internalType":"uint256","name":"totalPaidUSD","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"productPriceUSD","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeUSD","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"excessUSD","type":"uint256"},{"indexed":false,"internalType":"bool","name":"settleInIDR","type":"bool"},{"indexed":false,"internalType":"uint256","name":"settlementAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"cashbackAmount","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"tokens","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"bool","name":"externalCallSuccess","type":"bool"}],"name":"PaymentExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SettlementPoolFunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"idrx","type":"address"},{"indexed":true,"internalType":"address","name":"usdt","type":"address"}],"name":"SettlementTokensUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"FEE_BASIS_POINTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IDRX_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_CASHBACK_USD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDT_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"calculateTotalValue","outputs":[{"internalType":"uint256","name":"totalUSD","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateUSDValue","outputs":[{"internalType":"uint256","name":"usdValue","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"collectedBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emergencyWithdrawPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundSettlementPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getCollectedBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"paymentId","type":"bytes32"}],"name":"getPayment","outputs":[{"components":[{"internalType":"address","name":"merchant","type":"address"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"uint256","name":"totalPaidUSD","type":"uint256"},{"internalType":"uint256","name":"productPriceUSD","type":"uint256"},{"internalType":"uint256","name":"feeUSD","type":"uint256"},{"internalType":"uint256","name":"excessUSD","type":"uint256"},{"internalType":"bool","name":"settleInIDR","type":"bool"},{"internalType":"uint256","name":"settlementAmount","type":"uint256"},{"internalType":"uint256","name":"cashbackAmount","type":"uint256"},{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct IPaymentRouter.Payment","name":"payment","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getSettlementPoolBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minimumPoolBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"merchantAddress","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256","name":"productPriceUSD","type":"uint256"},{"internalType":"bool","name":"settleInIDR","type":"bool"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"name":"pay","outputs":[{"internalType":"bytes32","name":"paymentId","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"minimum","type":"uint256"}],"name":"setMinimumPoolBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_idrx","type":"address"},{"internalType":"address","name":"_usdt","type":"address"}],"name":"setSettlementTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"settlementPools","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenRegistry","outputs":[{"internalType":"contract ITokenRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256","name":"expectedUSD","type":"uint256"}],"name":"validatePayment","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"uint256","name":"actualUSD","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawCollectedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]'),Ar=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"bool",name:"enabled",type:"bool"}],name:"TokenEnabled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"priceFeed",type:"address"}],name:"TokenRegistered",type:"event"},{inputs:[],name:"ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_PRICE_STALENESS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_TOKEN",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getRegisteredTokenCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getRegisteredTokens",outputs:[{internalType:"address[]",name:"",type:"address[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"getTokenConfig",outputs:[{components:[{internalType:"bool",name:"enabled",type:"bool"},{internalType:"address",name:"priceFeed",type:"address"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"uint256",name:"minPaymentAmount",type:"uint256"}],internalType:"struct ITokenRegistry.TokenConfig",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"getTokenPriceUSD",outputs:[{internalType:"uint256",name:"price",type:"uint256"},{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isTokenEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"priceFeed",type:"address"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"uint256",name:"minPaymentAmount",type:"uint256"}],name:"registerToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setTokenEnabled",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"priceFeed",type:"address"}],name:"updatePriceFeed",outputs:[],stateMutability:"nonpayable",type:"function"}],$r=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"allowance",type:"uint256"},{internalType:"uint256",name:"needed",type:"uint256"}],name:"ERC20InsufficientAllowance",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"balance",type:"uint256"},{internalType:"uint256",name:"needed",type:"uint256"}],name:"ERC20InsufficientBalance",type:"error"},{inputs:[{internalType:"address",name:"approver",type:"address"}],name:"ERC20InvalidApprover",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"ERC20InvalidReceiver",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"}],name:"ERC20InvalidSender",type:"error"},{inputs:[{internalType:"address",name:"spender",type:"address"}],name:"ERC20InvalidSpender",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"faucet",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}],Be=Sr,X=Ar,Q=$r;function _e(){const{writeContract:e,data:t,isPending:n,error:r}=A.useWriteContract(),{isLoading:s,isSuccess:i}=A.useWaitForTransactionReceipt({hash:t});return{registerToken:(h,g,P,I)=>{e({address:O.TOKEN_REGISTRY,abi:X,functionName:"registerToken",args:[h,g,P,I]})},setTokenEnabled:(h,g)=>{e({address:O.TOKEN_REGISTRY,abi:X,functionName:"setTokenEnabled",args:[h,g]})},updatePriceFeed:(h,g)=>{e({address:O.TOKEN_REGISTRY,abi:X,functionName:"updatePriceFeed",args:[h,g]})},setMinPaymentAmount:(h,g)=>{e({address:O.TOKEN_REGISTRY,abi:X,functionName:"setMinPaymentAmount",args:[h,g]})},grantRole:(h,g)=>{e({address:O.TOKEN_REGISTRY,abi:X,functionName:"grantRole",args:[h,g]})},revokeRole:(h,g)=>{e({address:O.TOKEN_REGISTRY,abi:X,functionName:"revokeRole",args:[h,g]})},useGetTokenConfig:h=>A.useReadContract({address:O.TOKEN_REGISTRY,abi:X,functionName:"getTokenConfig",args:[h]}),useGetTokenPrice:h=>A.useReadContract({address:O.TOKEN_REGISTRY,abi:X,functionName:"getTokenPriceUSD",args:[h]}),useGetRegisteredTokens:()=>A.useReadContract({address:O.TOKEN_REGISTRY,abi:X,functionName:"getRegisteredTokens"}),useGetRegisteredTokenCount:()=>A.useReadContract({address:O.TOKEN_REGISTRY,abi:X,functionName:"getRegisteredTokenCount"}),useIsTokenEnabled:h=>A.useReadContract({address:O.TOKEN_REGISTRY,abi:X,functionName:"isTokenEnabled",args:[h]}),useHasRole:(h,g)=>A.useReadContract({address:O.TOKEN_REGISTRY,abi:X,functionName:"hasRole",args:[h,g]}),hash:t,isPending:n,isConfirming:s,isConfirmed:i,error:r}}const Cr=30,kr=.003,Ir=5,tn=8,nn=10**tn,jr=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),M={ETH:{symbol:"ETH",decimals:18,name:"Ether",logo:"https://cryptologos.cc/logos/ethereum-eth-logo.svg"},USDC:{symbol:"USDC",decimals:6,name:"USD Coin",logo:"https://cryptologos.cc/logos/usd-coin-usdc-logo.svg"},USDT:{symbol:"USDT",decimals:6,name:"Tether USD",logo:"https://cryptologos.cc/logos/tether-usdt-logo.svg"},DAI:{symbol:"DAI",decimals:18,name:"Dai Stablecoin",logo:"https://cryptologos.cc/logos/multi-collateral-dai-dai-logo.svg"},WBTC:{symbol:"WBTC",decimals:8,name:"Wrapped Bitcoin",logo:"https://cryptologos.cc/logos/wrapped-bitcoin-wbtc-logo.svg"},IDRX:{symbol:"IDRX",decimals:18,name:"Indonesian Rupiah",logo:"https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/info/logo.png"}};function vt(e){if(!e)return"USDT";switch(e.toUpperCase()){case"IDR":return"IDRX";case"USD":return"USDT";default:return e.toUpperCase()}}function he(e,t=2){const n=e.toFixed(t),[r,s]=n.split("."),i=r.replace(/\B(?=(\d{3})+(?!\d))/g,",");return s?`${i}.${s}`:i}function Nr({size:e=26,className:t=""}){return c.jsx("svg",{width:e,height:e,viewBox:"0 0 26 26",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:t,children:c.jsx("path",{d:"M6.5 6.5L19.5 19.5M6.5 19.5L19.5 6.5",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function Rr({size:e=16,className:t=""}){return c.jsxs("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:t,children:[c.jsx("path",{d:"M7.33333 12.6667C10.2789 12.6667 12.6667 10.2789 12.6667 7.33333C12.6667 4.38781 10.2789 2 7.33333 2C4.38781 2 2 4.38781 2 7.33333C2 10.2789 4.38781 12.6667 7.33333 12.6667Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M14 14L11.1 11.1",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function Mr({size:e=16,className:t=""}){return c.jsxs("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:t,children:[c.jsx("path",{d:"M8 14.6667C11.6819 14.6667 14.6667 11.6819 14.6667 8C14.6667 4.3181 11.6819 1.33333 8 1.33333C4.3181 1.33333 1.33333 4.3181 1.33333 8C1.33333 11.6819 4.3181 14.6667 8 14.6667Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M8 10.6667V8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("path",{d:"M8 5.33333H8.00667",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}function Dr({size:e=134,className:t=""}){return c.jsxs("svg",{width:e,height:e,viewBox:"0 0 134 132",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:t,children:[c.jsx("circle",{cx:"67",cy:"66",r:"55",fill:"#5EEAD4",fillOpacity:"0.2"}),c.jsx("circle",{cx:"67",cy:"66",r:"45",fill:"#5EEAD4",fillOpacity:"0.3"}),c.jsx("rect",{x:"35",y:"30",width:"45",height:"72",rx:"4",fill:"#14B8A6"}),c.jsx("rect",{x:"38",y:"35",width:"39",height:"55",rx:"2",fill:"#0D9488"}),c.jsxs("g",{className:"animate-pulse",children:[c.jsx("rect",{x:"55",y:"50",width:"50",height:"32",rx:"3",fill:"#1E293B"}),c.jsx("rect",{x:"60",y:"56",width:"20",height:"3",rx:"1",fill:"#475569"}),c.jsx("rect",{x:"60",y:"62",width:"30",height:"2",rx:"1",fill:"#475569"}),c.jsx("rect",{x:"60",y:"68",width:"15",height:"2",rx:"1",fill:"#475569"})]}),c.jsx("ellipse",{cx:"95",cy:"85",rx:"12",ry:"8",fill:"#FCD9BD"}),c.jsx("rect",{x:"88",y:"78",width:"8",height:"20",rx:"4",fill:"#FCD9BD"}),c.jsx("circle",{cx:"20",cy:"25",r:"8",fill:"#FCD34D"}),c.jsx("text",{x:"20",y:"29",textAnchor:"middle",fontSize:"10",fill:"#92400E",children:"$"}),c.jsx("circle",{cx:"115",cy:"35",r:"6",fill:"#FCD34D"}),c.jsx("text",{x:"115",y:"38",textAnchor:"middle",fontSize:"8",fill:"#92400E",children:"$"}),c.jsx("circle",{cx:"110",cy:"20",r:"5",fill:"#FCD34D",fillOpacity:"0.6"})]})}function Or({size:e=95,className:t=""}){return c.jsxs("svg",{width:e*2.1,height:e,viewBox:"0 0 200 95",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:t,children:[c.jsx("circle",{cx:"30",cy:"20",r:"3",fill:"#FCD34D"}),c.jsx("circle",{cx:"170",cy:"25",r:"4",fill:"#5EEAD4"}),c.jsx("circle",{cx:"25",cy:"70",r:"2",fill:"#A78BFA"}),c.jsx("circle",{cx:"175",cy:"65",r:"3",fill:"#F472B6"}),c.jsx("circle",{cx:"50",cy:"85",r:"2",fill:"#60A5FA"}),c.jsx("circle",{cx:"150",cy:"80",r:"2",fill:"#FCD34D"}),c.jsx("path",{d:"M45 30L46 33L49 33L47 35L48 38L45 36L42 38L43 35L41 33L44 33Z",fill:"#FCD34D"}),c.jsx("path",{d:"M160 45L161 47L163 47L161.5 48.5L162 51L160 49.5L158 51L158.5 48.5L157 47L159 47Z",fill:"#FCD34D"}),c.jsx("circle",{cx:"100",cy:"47",r:"35",fill:"url(#successGradient)"}),c.jsx("circle",{cx:"100",cy:"47",r:"30",fill:"#22C55E"}),c.jsx("path",{d:"M85 47L95 57L115 37",stroke:"white",strokeWidth:"5",strokeLinecap:"round",strokeLinejoin:"round"}),c.jsx("circle",{cx:"100",cy:"47",r:"38",stroke:"#22C55E",strokeWidth:"2",strokeOpacity:"0.3"}),c.jsx("circle",{cx:"100",cy:"47",r:"42",stroke:"#22C55E",strokeWidth:"1",strokeOpacity:"0.2"}),c.jsx("defs",{children:c.jsxs("linearGradient",{id:"successGradient",x1:"65",y1:"12",x2:"135",y2:"82",gradientUnits:"userSpaceOnUse",children:[c.jsx("stop",{stopColor:"#4ADE80"}),c.jsx("stop",{offset:"1",stopColor:"#16A34A"})]})})]})}function rn({items:e,fee:t=.3,currency:n}){const s=e.reduce((a,o)=>a+o.price,0)+t,i=vt(n);return c.jsxs("div",{className:"mc:bg-dark-4 mc:rounded-md mc:p-3 mc:flex mc:flex-col mc:gap-3 mc:w-full",children:[c.jsx("p",{className:"mc:font-medium mc:text-sm mc:sm:text-base mc:text-white mc:break-words",children:"Payment Summary"}),e.map((a,o)=>c.jsxs("div",{className:"mc:flex mc:items-center mc:justify-between mc:text-xs mc:text-white mc:gap-2",children:[c.jsx("span",{className:"mc:flex-1 mc:min-w-0 mc:break-words",children:a.name}),c.jsxs("span",{className:"mc:text-right mc:flex-shrink-0",children:[he(a.price)," ",i]})]},o)),c.jsxs("div",{className:"mc:flex mc:items-center mc:justify-between mc:text-xs mc:text-white mc:gap-2",children:[c.jsx("span",{className:"mc:flex-1",children:"Fee"}),c.jsxs("span",{className:"mc:text-right mc:flex-shrink-0",children:[he(t)," ",i]})]}),c.jsx("div",{className:"mc:h-px mc:bg-white/20"}),c.jsxs("div",{className:"mc:flex mc:items-center mc:justify-between mc:text-white mc:gap-2",children:[c.jsx("span",{className:"mc:text-xs",children:"Total Payment"}),c.jsxs("span",{className:"mc:text-sm mc:sm:text-base mc:font-semibold mc:text-right mc:break-words",children:[he(s)," ",i]})]})]})}function Br({token:e,onChange:t,totalAmount:n,displayAmount:r,currency:s,disabled:i=!1}){const a=b=>{t(Number(b.target.value))},o=n*e.percentage/100,u=e.priceUSD>0?o/e.priceUSD:0,d=u<=e.amount,l=e.priceUSD>0,m=vt(s),p=(r??n)*e.percentage/100;return c.jsxs("div",{className:"mc:flex mc:items-center mc:gap-1.5 mc:sm:gap-2 mc:w-full mc:flex-wrap",children:[c.jsxs("div",{className:"mc:flex mc:items-center mc:gap-2 mc:sm:gap-3 mc:min-w-0 mc:flex-1 mc:sm:flex-initial",children:[c.jsxs("div",{className:"mc:relative mc:size-[30px] mc:shrink-0",children:[c.jsx("div",{className:`mc:size-[30px] mc:rounded-full mc:bg-dark-4 mc:overflow-hidden mc:flex mc:items-center mc:justify-center ${l?"":"mc:opacity-50"}`,children:e.tokenIcon?c.jsx("img",{src:e.tokenIcon,alt:e.name,className:"mc:size-full mc:object-contain"}):c.jsx("span",{className:"mc:text-xs mc:font-semibold mc:text-white",children:e.symbol.slice(0,2)})}),c.jsx("div",{className:"mc:absolute mc:right-[-2px] mc:bottom-[-2px] mc:size-[12px] mc:rounded-full mc:bg-dark-3 mc:border mc:border-dark-2 mc:overflow-hidden mc:flex mc:items-center mc:justify-center",children:e.chainIcon?c.jsx("img",{src:e.chainIcon,alt:e.chain,className:"mc:size-full mc:object-cover"}):c.jsx("span",{className:"mc:text-[6px] mc:font-semibold mc:text-white",children:e.chain.slice(0,1)})})]}),c.jsxs("div",{className:"mc:flex mc:flex-col mc:gap-1 mc:text-xs mc:text-white mc:min-w-0",children:[c.jsx("span",{className:"mc:font-semibold mc:wrap-break-word",children:e.name}),c.jsxs("span",{className:"mc:font-normal mc:opacity-75 mc:wrap-break-word",children:[e.amount.toFixed(4)," ",e.symbol]}),c.jsx("span",{className:`mc:text-[10px] mc:wrap-break-word ${l?"mc:text-white/50":"mc:text-yellow-500"}`,children:l?`$${e.priceUSD.toFixed(2)}/${e.symbol}`:"Price loading..."})]})]}),c.jsxs("div",{className:`mc:flex-1 mc:relative mc:h-1.5 mc:min-w-[100px] ${i?"mc:opacity-50":""}`,children:[c.jsx("div",{className:"mc:absolute mc:inset-0 mc:bg-white/40 mc:rounded-full"}),c.jsx("div",{className:"mc:absolute mc:left-0 mc:top-0 mc:h-full mc:bg-secondary mc:rounded-full mc:transition-all",style:{width:`${e.percentage}%`}}),c.jsx("input",{type:"range",min:"0",max:"100",value:e.percentage,onChange:a,className:`mc:absolute mc:inset-0 mc:w-full mc:h-full mc:opacity-0 ${i?"mc:cursor-not-allowed":"mc:cursor-pointer"}`,disabled:i||e.amount===0||!l})]}),c.jsxs("div",{className:"mc:flex mc:flex-col mc:items-end mc:gap-0.5 mc:min-w-0 mc:w-full mc:sm:w-auto",children:[c.jsxs("span",{className:"mc:text-xs mc:font-semibold mc:text-white mc:text-right mc:wrap-break-word",children:[e.percentage,"% = ",he(p)," ",m]}),e.percentage>0&&c.jsxs("span",{className:`mc:text-[10px] mc:text-right mc:wrap-break-word ${d?"mc:text-white/60":"mc:text-red-500"}`,children:[he(u,4)," ",e.symbol,!d&&" ⚠️"]})]})]})}const Ur=1e8;function Fr({isOpen:e,onClose:t,totalAmount:n,currency:r="USD",items:s,tokens:i,onPaymentSubmit:a,fee:o=.003,transactionHash:u,isProcessing:d,isSuccess:l,isError:m,conversionRate:y=1}){const p=_e(),{data:b}=p.useGetTokenPrice(T.NATIVE),{data:v}=p.useGetTokenPrice(T.USDC),{data:E}=p.useGetTokenPrice(T.USDT),{data:w}=p.useGetTokenPrice(T.DAI),{data:h}=p.useGetTokenPrice(T.WBTC),[g,P]=j.useState([]),[I,Y]=j.useState(""),[B,de]=j.useState(!0),[H,_]=j.useState("form"),[ee,W]=j.useState(0),[$,U]=j.useState(""),[N,V]=j.useState([]),[ne,F]=j.useState("Preparing payment..."),ye=j.useMemo(()=>JSON.stringify(i.map(x=>({id:x.id,amount:x.amount,priceUSD:x.priceUSD}))),[i]),re=x=>{if(!x)return 0;if(Array.isArray(x)&&x.length>=1){const S=x[0];if(typeof S=="bigint")return Number(S)/Ur}return 0};j.useEffect(()=>{if(e&&i.length>0){const x=i.map(S=>{let R=S.priceUSD;return S.address===T.NATIVE&&b?R=re(b):S.address===T.USDC&&v?R=re(v):S.address===T.USDT&&E?R=re(E):S.address===T.DAI&&w?R=re(w):S.address===T.WBTC&&h&&(R=re(h)),{...S,priceUSD:R}});if(B){x.forEach(C=>{C.percentage=0});const S=n+o*n,R=x.filter(C=>(C.address===T.USDC||C.address===T.USDT||C.address===T.DAI)&&C.amount>0&&C.priceUSD>0),K=x.filter(C=>C.address!==T.USDC&&C.address!==T.USDT&&C.address!==T.DAI&&C.amount>0&&C.priceUSD>0),ve=R.reduce((C,Z)=>C+Z.amount*Z.priceUSD,0);if(R.length>0&&ve>=S){const C=Math.floor(100/R.length),Z=100-C*R.length;R.forEach((Oe,be)=>{Oe.percentage=C+(be===0?Z:0)})}else if(R.length>0){const C=ve/S*100,Z=Math.floor(C/R.length);R.forEach(le=>{le.percentage=Z});const be=100-R.reduce((le,qe)=>le+qe.percentage,0);if(K.length>0&&be>0){const le=Math.floor(be/K.length),qe=be-le*K.length;K.forEach((vr,Er)=>{vr.percentage=le+(Er===0?qe:0)})}}else{const C=x.filter(Z=>Z.amount>0&&Z.priceUSD>0);if(C.length>0){const Z=Math.floor(100/C.length),Oe=100-Z*C.length;C.forEach((be,le)=>{be.percentage=Z+(le===0?Oe:0)})}}}P(x)}},[e,ye,b,v,E,w,h,B]),j.useEffect(()=>{e||(_("form"),W(0),U(""))},[e]),j.useEffect(()=>{l&&u?(W(100),U(u),_("success"),F("Payment completed!")):d?(W(80),F("Confirming transaction...")):m&&(_("form"),W(0),F("Preparing payment..."),V([]))},[l,d,m,u]);const D=g.reduce((x,S)=>x+S.percentage,0),z=vt(r),De=r==="IDR"?1/y:1,pr=s.map(x=>({...x,price:x.price})),Dt=o*n,Ze=n+Dt,mr=Dt*De,Xe=Ze*De,Je=g.some(x=>x.percentage===0?!1:!x.priceUSD||x.priceUSD<=0),Qe=g.some(x=>{if(x.percentage===0)return!1;const S=Ze*x.percentage/100;return(x.priceUSD>0?S/x.priceUSD:0)>x.amount}),yr=(x,S)=>{P(R=>R.map(K=>K.id===x?{...K,percentage:S}:K))},br=()=>{if(!B){const x=g.filter(K=>K.amount>0&&K.priceUSD>0),S=Math.floor(100/x.length),R=100-S*x.length;P(K=>K.map((ve,C)=>({...ve,percentage:ve.amount>0&&ve.priceUSD>0?S+(C===0?R:0):0})))}de(!B)},hr=g.filter(x=>x.amount>0&&(x.name.toLowerCase().includes(I.toLowerCase())||x.symbol.toLowerCase().includes(I.toLowerCase())||x.chain.toLowerCase().includes(I.toLowerCase()))),gr=async()=>{_("processing"),W(10),F("Checking token approvals...");const x=g.filter(S=>S.percentage>0&&S.address!==T.NATIVE);x.length>0&&(F(`Requesting approval for ${x.length} token(s)...`),V(x.map(S=>S.symbol))),W(30),F("Processing payment..."),a(g),W(60)},xr=()=>{t()},wr=()=>new Date().toLocaleDateString("en-US",{day:"numeric",month:"long",year:"numeric"});if(!e)return null;const Tr=c.jsxs("div",{className:"multicoyn-sdk mc:fixed mc:inset-0 mc:z-9999 mc:flex mc:items-center mc:justify-center",children:[c.jsx("div",{className:"mc:absolute mc:inset-0 mc:bg-black/60 mc:backdrop-blur-sm",onClick:H==="form"?t:void 0}),H==="processing"&&c.jsxs("div",{className:"mc:relative mc:bg-dark-2 mc:border mc:border-border mc:rounded-xl mc:p-4 mc:flex mc:flex-col mc:gap-5 mc:items-center mc:justify-center mc:w-full mc:max-w-[400px] mc:min-h-[280px] mc:mx-4 animate-slide-in-right",children:[c.jsx(Dr,{size:134}),c.jsxs("div",{className:"mc:flex mc:flex-col mc:gap-3 mc:items-center mc:w-full mc:max-w-[300px] mc:px-2",children:[c.jsxs("div",{className:"mc:relative mc:w-full mc:max-w-[234px] mc:h-1.5",children:[c.jsx("div",{className:"mc:absolute mc:inset-0 mc:bg-dark-4 mc:rounded-full"}),c.jsx("div",{className:"mc:absolute mc:left-0 mc:top-0 mc:h-full mc:bg-secondary mc:rounded-full mc:transition-all mc:duration-300",style:{width:`${Math.min(ee,100)}%`}})]}),c.jsx("p",{className:"mc:text-sm mc:text-white mc:text-center mc:wrap-break-word mc:px-2",children:ne}),N.length>0&&c.jsxs("div",{className:"mc:text-xs mc:text-white/60 mc:text-center mc:wrap-break-word mc:px-2",children:["Approving: ",N.join(", ")]})]})]}),H==="success"&&c.jsxs("div",{className:"mc:relative mc:bg-dark-2 mc:border mc:border-border mc:rounded-xl mc:p-4 mc:flex mc:flex-col mc:gap-8 mc:items-start mc:w-full mc:max-w-[380px] mc:mx-4 animate-slide-in-right",children:[c.jsxs("div",{className:"mc:flex mc:flex-col mc:gap-6 mc:items-center mc:w-full",children:[c.jsx(Or,{size:95}),c.jsx("div",{className:"mc:flex mc:flex-col mc:items-center mc:justify-center mc:w-full",children:c.jsxs("div",{className:"mc:flex mc:flex-col mc:gap-1 mc:items-center mc:text-white mc:px-2",children:[c.jsx("p",{className:"mc:text-lg mc:font-semibold mc:text-center",children:"Payment Success"}),c.jsx("p",{className:"mc:text-sm mc:text-center",children:"Your payment has been successfully done."})]})}),c.jsx("div",{className:"mc:bg-dark-4 mc:border mc:border-white/10 mc:rounded-lg mc:py-3 mc:px-4 mc:w-full mc:max-w-[348px] mc:flex mc:flex-col mc:items-center",children:c.jsxs("div",{className:"mc:flex mc:flex-col mc:gap-2 mc:w-full",children:[c.jsx("p",{className:"mc:text-xs mc:text-white",children:"Order Details:"}),c.jsxs("div",{className:"mc:flex mc:items-center mc:gap-4 mc:sm:gap-8 mc:text-sm mc:text-white mc:w-full",children:[c.jsx("span",{className:"mc:min-w-[85px] mc:shrink-0",children:"Item"}),c.jsx("span",{className:"mc:flex-1 mc:text-right mc:wrap-break-word",children:s[0]?.name||"Item"})]}),c.jsxs("div",{className:"mc:flex mc:items-center mc:gap-4 mc:sm:gap-8 mc:text-white mc:w-full",children:[c.jsx("span",{className:"mc:text-sm mc:min-w-[106px] mc:shrink-0",children:"Total Payment"}),c.jsxs("span",{className:"mc:flex-1 mc:text-base mc:font-semibold mc:text-right mc:wrap-break-word",children:[he(Xe)," ",z]})]})]})})]}),c.jsx("div",{className:"mc:h-px mc:w-full mc:max-w-[320px] mc:bg-white/20"}),c.jsxs("div",{className:"mc:flex mc:flex-col mc:gap-2 mc:items-center mc:justify-center mc:w-full mc:text-xs mc:text-white mc:px-5",children:[c.jsx("p",{className:"mc:text-center",children:wr()}),$&&c.jsx("a",{href:`https://sepolia-blockscout.lisk.com/tx/${$}`,target:"_blank",rel:"noopener noreferrer",className:"mc:text-cyan hover:mc:underline mc:text-center mc:break-all",children:"View Transaction"})]}),c.jsx("button",{onClick:xr,className:"mc:w-full mc:h-[42px] mc:bg-secondary hover:mc:bg-secondary/90 mc:rounded-lg mc:flex mc:items-center mc:justify-center mc:text-sm mc:font-semibold mc:text-white mc:transition-all",children:"Back to Home"})]}),H==="form"&&c.jsxs("div",{className:"mc:relative mc:bg-dark-2 mc:border mc:border-border mc:rounded-xl mc:p-4 mc:flex mc:flex-col mc:gap-5 mc:max-w-[1000px] mc:w-full mc:mx-4 mc:max-h-[90vh] mc:overflow-y-auto animate-slide-in-right",children:[c.jsxs("div",{className:"mc:flex mc:items-center mc:gap-4",children:[c.jsxs("div",{className:"mc:flex-1 mc:flex mc:flex-col mc:gap-1 mc:min-w-0",children:[c.jsx("h2",{className:"mc:text-lg mc:sm:text-xl mc:text-white mc:font-normal mc:wrap-break-word",children:"Complete Payment"}),c.jsx("p",{className:"mc:text-sm mc:sm:text-base mc:text-white/70 mc:wrap-break-word",children:"Choose how you want to pay (supports multi-token for wallets)"})]}),c.jsx("button",{onClick:t,className:"mc:text-white/60 hover:mc:text-white mc:transition-colors mc:shrink-0",children:c.jsx(Nr,{size:26})})]}),c.jsxs("div",{className:"mc:flex mc:gap-5 mc:flex-col mc:lg:flex-row",children:[c.jsxs("div",{className:"mc:flex-1 mc:flex mc:flex-col mc:gap-5",children:[c.jsxs("div",{className:"mc:bg-dark-4 mc:rounded-md mc:p-4 mc:flex mc:items-center mc:gap-3 mc:sm:gap-5 mc:flex-col mc:md:flex-row",children:[c.jsx("span",{className:"mc:text-sm mc:sm:text-base mc:text-white/60 mc:min-w-[120px] mc:shrink-0",children:"Total Required"}),c.jsxs("span",{className:"mc:text-lg mc:sm:text-xl mc:font-bold mc:text-white mc:text-right mc:flex-1 mc:min-w-0 mc:wrap-break-word",children:[he(Xe)," ",z]})]}),c.jsxs("div",{className:"mc:flex mc:items-center mc:gap-3 mc:sm:gap-5 mc:flex-wrap",children:[c.jsx("span",{className:"mc:text-sm mc:sm:text-base mc:text-white mc:flex-1 mc:min-w-0",children:"Use your tokens"}),c.jsxs("div",{className:"mc:bg-dark-4 mc:rounded-md mc:px-3 mc:py-2 mc:flex mc:items-center mc:gap-2 mc:flex-1 mc:sm:flex-initial mc:min-w-0",children:[c.jsx(Rr,{size:16,className:"mc:text-white/60 mc:shrink-0"}),c.jsx("input",{type:"text",placeholder:"Search token or chain..",value:I,onChange:x=>Y(x.target.value),className:"mc:bg-transparent mc:border-none mc:outline-none mc:text-sm mc:sm:text-base mc:text-white/60 placeholder:mc:text-white/60 mc:w-full mc:min-w-0"})]})]}),c.jsxs("div",{className:"mc:bg-dark-3 mc:rounded-md mc:p-3 mc:flex mc:flex-col mc:gap-4",children:[c.jsxs("div",{className:"mc:flex mc:items-center mc:gap-3 mc:sm:gap-6 mc:flex-col mc:md:flex-row",children:[c.jsxs("div",{className:"mc:flex-1 mc:flex mc:items-center mc:gap-2 mc:min-w-0 mc:flex-wrap",children:[c.jsx(Mr,{size:16,className:"mc:text-white/60 mc:shrink-0"}),c.jsx("span",{className:"mc:text-xs mc:sm:text-sm mc:italic mc:text-white mc:wrap-break-word",children:"Set the coins amount until 100%"}),c.jsxs("span",{className:`mc:bg-dark-4 mc:rounded-full mc:px-2 mc:py-1 mc:text-xs mc:font-semibold mc:shrink-0 ${D===100?"mc:text-cyan":"mc:text-warning"}`,children:[D,"/100%"]})]}),c.jsxs("div",{className:"mc:flex mc:items-center mc:gap-2 mc:shrink-0",children:[c.jsx("span",{className:"mc:text-xs mc:sm:text-sm mc:text-white",children:"Auto Optimize"}),c.jsx("button",{onClick:br,className:`mc:w-7 mc:h-4 mc:rounded-full mc:relative mc:transition-colors ${B?"mc:bg-cyan":"mc:bg-white/40"}`,children:c.jsx("div",{className:`mc:absolute mc:top-0.5 mc:size-3 mc:rounded-full mc:bg-white mc:transition-transform ${B?"mc:translate-x-3.5":"mc:translate-x-0.5"}`})})]})]}),hr.map(x=>c.jsx(Br,{token:x,totalAmount:Ze,displayAmount:Xe,currency:r,onChange:S=>yr(x.id,S),disabled:B},x.id))]})]}),c.jsx("div",{className:"mc:w-full mc:lg:w-[320px]",children:c.jsx(rn,{items:pr,fee:mr,currency:r})})]}),c.jsx("button",{onClick:gr,disabled:D!==100||Qe||Je,className:`mc:w-full mc:lg:w-[620px] mc:h-[42px] mc:rounded-lg mc:flex mc:items-center mc:justify-center mc:text-xs mc:sm:text-sm mc:font-semibold mc:text-white mc:transition-all mc:px-2 mc:wrap-break-word ${D===100&&!Qe&&!Je?"mc:bg-secondary hover:mc:bg-secondary/90":"mc:bg-secondary/50 mc:cursor-not-allowed"}`,children:c.jsx("span",{className:"mc:text-center",children:Je?"Price data unavailable - Please wait":Qe?"Insufficient Balance":D!==100?`Complete to 100% (${D}%)`:"Pay with MultiCoyn"})})]})]});return Pr.createPortal(Tr,document.body)}function Lr(){const[e,t]=j.useState(!1),[n,r]=j.useState("form");return{isOpen:e,view:n,open:()=>{t(!0),r("form")},close:()=>{t(!1),setTimeout(()=>r("form"),300)},showProcessing:()=>r("processing"),showSuccess:()=>r("success"),showForm:()=>r("form")}}const Ot=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"}],zr=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}];function xe(e,{includeName:t=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new es(e.type);return`${e.name}(${Et(e.inputs,{includeName:t})})`}function Et(e,{includeName:t=!1}={}){return e?e.map(n=>_r(n,{includeName:t})).join(t?", ":","):""}function _r(e,{includeName:t}){return e.type.startsWith("tuple")?`(${Et(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}function Se(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}function L(e){return Se(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}const sn="2.43.5";let et={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,version:`viem@${sn}`},f=class ot extends Error{constructor(t,n={}){const r=n.cause instanceof ot?n.cause.details:n.cause?.message?n.cause.message:n.details,s=n.cause instanceof ot&&n.cause.docsPath||n.docsPath,i=et.getDocsUrl?.({...n,docsPath:s}),a=[t||"An error occurred.","",...n.metaMessages?[...n.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...r?[`Details: ${r}`]:[],...et.version?[`Version: ${et.version}`]:[]].join(`
2
+ `);super(a,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=r,this.docsPath=s,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=t,this.version=sn}walk(t){return an(this,t)}};function an(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?an(e.cause,t):t?null:e}class Gr extends f{constructor({docsPath:t}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(`
3
+ `),{docsPath:t,name:"AbiConstructorNotFoundError"})}}class Bt extends f{constructor({docsPath:t}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join(`
4
+ `),{docsPath:t,name:"AbiConstructorParamsNotFoundError"})}}class Hr extends f{constructor({data:t,params:n,size:r}){super([`Data size of ${r} bytes is too small for given parameters.`].join(`
5
+ `),{metaMessages:[`Params: (${Et(n,{includeName:!0})})`,`Data: ${t} (${r} bytes)`],name:"AbiDecodingDataSizeTooSmallError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t,this.params=n,this.size=r}}class Pt extends f{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}}class Wr extends f{constructor({expectedLength:t,givenLength:n,type:r}){super([`ABI encoding array length mismatch for type ${r}.`,`Expected length: ${t}`,`Given length: ${n}`].join(`
6
+ `),{name:"AbiEncodingArrayLengthMismatchError"})}}class Vr extends f{constructor({expectedSize:t,value:n}){super(`Size of bytes "${n}" (bytes${L(n)}) does not match expected size (bytes${t}).`,{name:"AbiEncodingBytesSizeMismatchError"})}}class Kr extends f{constructor({expectedLength:t,givenLength:n}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${t}`,`Given length (values): ${n}`].join(`
7
+ `),{name:"AbiEncodingLengthMismatchError"})}}class Yr extends f{constructor(t,{docsPath:n}){super([`Arguments (\`args\`) were provided to "${t}", but "${t}" on the ABI does not contain any parameters (\`inputs\`).`,"Cannot encode error result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the inputs exist on it."].join(`
8
+ `),{docsPath:n,name:"AbiErrorInputsNotFoundError"})}}class Zr extends f{constructor(t,{docsPath:n}={}){super([`Error ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it."].join(`
9
+ `),{docsPath:n,name:"AbiErrorNotFoundError"})}}class on extends f{constructor(t,{docsPath:n}){super([`Encoded error signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${t}.`].join(`
10
+ `),{docsPath:n,name:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=t}}class je extends f{constructor(t,{docsPath:n}={}){super([`Function ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(`
11
+ `),{docsPath:n,name:"AbiFunctionNotFoundError"})}}class cn extends f{constructor(t,{docsPath:n}){super([`Function "${t}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join(`
12
+ `),{docsPath:n,name:"AbiFunctionOutputsNotFoundError"})}}class Xr extends f{constructor(t,{docsPath:n}){super([`Encoded function signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${t}.`].join(`
13
+ `),{docsPath:n,name:"AbiFunctionSignatureNotFoundError"})}}class Jr extends f{constructor(t,n){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${t.type}\` in \`${xe(t.abiItem)}\`, and`,`\`${n.type}\` in \`${xe(n.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}}class Qr extends f{constructor(t,{docsPath:n}){super([`Type "${t}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
14
+ `),{docsPath:n,name:"InvalidAbiEncodingType"})}}class qr extends f{constructor(t,{docsPath:n}){super([`Type "${t}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(`
15
+ `),{docsPath:n,name:"InvalidAbiDecodingType"})}}class un extends f{constructor(t){super([`Value "${t}" is not a valid array.`].join(`
16
+ `),{name:"InvalidArrayError"})}}class es extends f{constructor(t){super([`"${t}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
17
+ `),{name:"InvalidDefinitionTypeError"})}}class Ne extends f{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 dn extends f{constructor({offset:t,position:n,size:r}){super(`Slice ${n==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${r}).`,{name:"SliceOffsetOutOfBoundsError"})}}let ln=class extends f{constructor({size:t,targetSize:n,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (${t}) exceeds padding size (${n}).`,{name:"SizeExceedsPaddingSizeError"})}};class Ut extends f{constructor({size:t,targetSize:n,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} is expected to be ${n} ${r} long, but is ${t} ${r} long.`,{name:"InvalidBytesLengthError"})}}function Ae(e,{dir:t,size:n=32}={}){return typeof e=="string"?pe(e,{dir:t,size:n}):ts(e,{dir:t,size:n})}function pe(e,{dir:t,size:n=32}={}){if(n===null)return e;const r=e.replace("0x","");if(r.length>n*2)throw new ln({size:Math.ceil(r.length/2),targetSize:n,type:"hex"});return`0x${r[t==="right"?"padEnd":"padStart"](n*2,"0")}`}function ts(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new ln({size:e.length,targetSize:n,type:"bytes"});const r=new Uint8Array(n);for(let s=0;s<n;s++){const i=t==="right";r[i?s:n-s-1]=e[i?s:e.length-s-1]}return r}let fn=class extends f{constructor({max:t,min:n,signed:r,size:s,value:i}){super(`Number "${i}" is not in safe ${s?`${s*8}-bit ${r?"signed":"unsigned"} `:""}integer range ${t?`(${n} to ${t})`:`(above ${n})`}`,{name:"IntegerOutOfRangeError"})}};class ns extends f{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 rs extends f{constructor({givenSize:t,maxSize:n}){super(`Size cannot exceed ${n} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}function St(e,{dir:t="left"}={}){let n=typeof e=="string"?e.replace("0x",""):e,r=0;for(let s=0;s<n.length-1&&n[t==="left"?s:n.length-s-1].toString()==="0";s++)r++;return n=t==="left"?n.slice(r):n.slice(0,n.length-r),typeof e=="string"?(n.length===1&&t==="right"&&(n=`${n}0`),`0x${n.length%2===1?`0${n}`:n}`):n}function te(e,{size:t}){if(L(e)>t)throw new rs({givenSize:L(e),maxSize:t})}function pn(e,t={}){const{signed:n}=t;t.size&&te(e,{size:t.size});const r=BigInt(e);if(!n)return r;const s=(e.length-2)/2,i=(1n<<BigInt(s)*8n-1n)-1n;return r<=i?r:r-BigInt(`0x${"f".padStart(s*2,"f")}`)-1n}function ss(e,t={}){return Number(pn(e,t))}const is=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function as(e,t={}){return typeof e=="number"||typeof e=="bigint"?k(e,t):typeof e=="string"?yn(e,t):typeof e=="boolean"?mn(e,t):ce(e,t)}function mn(e,t={}){const n=`0x${Number(e)}`;return typeof t.size=="number"?(te(n,{size:t.size}),Ae(n,{size:t.size})):n}function ce(e,t={}){let n="";for(let s=0;s<e.length;s++)n+=is[e[s]];const r=`0x${n}`;return typeof t.size=="number"?(te(r,{size:t.size}),Ae(r,{dir:"right",size:t.size})):r}function k(e,t={}){const{signed:n,size:r}=t,s=BigInt(e);let i;r?n?i=(1n<<BigInt(r)*8n-1n)-1n:i=2n**(BigInt(r)*8n)-1n:typeof e=="number"&&(i=BigInt(Number.MAX_SAFE_INTEGER));const a=typeof i=="bigint"&&n?-i-1n:0;if(i&&s>i||s<a){const u=typeof e=="bigint"?"n":"";throw new fn({max:i?`${i}${u}`:void 0,min:`${a}${u}`,signed:n,size:r,value:`${e}${u}`})}const o=`0x${(n&&s<0?(1n<<BigInt(r*8))+BigInt(s):s).toString(16)}`;return r?Ae(o,{size:r}):o}const os=new TextEncoder;function yn(e,t={}){const n=os.encode(e);return ce(n,t)}const cs=new TextEncoder;function bn(e,t={}){return typeof e=="number"||typeof e=="bigint"?ds(e,t):typeof e=="boolean"?us(e,t):Se(e)?At(e,t):hn(e,t)}function us(e,t={}){const n=new Uint8Array(1);return n[0]=Number(e),typeof t.size=="number"?(te(n,{size:t.size}),Ae(n,{size:t.size})):n}const se={zero:48,nine:57,A:65,F:70,a:97,f:102};function Ft(e){if(e>=se.zero&&e<=se.nine)return e-se.zero;if(e>=se.A&&e<=se.F)return e-(se.A-10);if(e>=se.a&&e<=se.f)return e-(se.a-10)}function At(e,t={}){let n=e;t.size&&(te(n,{size:t.size}),n=Ae(n,{dir:"right",size:t.size}));let r=n.slice(2);r.length%2&&(r=`0${r}`);const s=r.length/2,i=new Uint8Array(s);for(let a=0,o=0;a<s;a++){const u=Ft(r.charCodeAt(o++)),d=Ft(r.charCodeAt(o++));if(u===void 0||d===void 0)throw new f(`Invalid byte sequence ("${r[o-2]}${r[o-1]}" in "${r}").`);i[a]=u*16+d}return i}function ds(e,t){const n=k(e,t);return At(n)}function hn(e,t={}){const n=cs.encode(e);return typeof t.size=="number"?(te(n,{size:t.size}),Ae(n,{dir:"right",size:t.size})):n}const Ue=BigInt(2**32-1),Lt=BigInt(32);function ls(e,t=!1){return t?{h:Number(e&Ue),l:Number(e>>Lt&Ue)}:{h:Number(e>>Lt&Ue)|0,l:Number(e&Ue)|0}}function fs(e,t=!1){const n=e.length;let r=new Uint32Array(n),s=new Uint32Array(n);for(let i=0;i<n;i++){const{h:a,l:o}=ls(e[i],t);[r[i],s[i]]=[a,o]}return[r,s]}const ps=(e,t,n)=>e<<n|t>>>32-n,ms=(e,t,n)=>t<<n|e>>>32-n,ys=(e,t,n)=>t<<n-32|e>>>64-n,bs=(e,t,n)=>e<<n-32|t>>>64-n;function hs(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function zt(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Fe(e,...t){if(!hs(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 _t(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 gs(e,t){Fe(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function xs(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function gn(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}const ws=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Ts(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function vs(e){for(let t=0;t<e.length;t++)e[t]=Ts(e[t]);return e}const Gt=ws?e=>e:vs;function Es(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function xn(e){return typeof e=="string"&&(e=Es(e)),Fe(e),e}class Ps{}function Ss(e){const t=r=>e().update(xn(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}const As=BigInt(0),Ce=BigInt(1),$s=BigInt(2),Cs=BigInt(7),ks=BigInt(256),Is=BigInt(113),wn=[],Tn=[],vn=[];for(let e=0,t=Ce,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],wn.push(2*(5*r+n)),Tn.push((e+1)*(e+2)/2%64);let s=As;for(let i=0;i<7;i++)t=(t<<Ce^(t>>Cs)*Is)%ks,t&$s&&(s^=Ce<<(Ce<<BigInt(i))-Ce);vn.push(s)}const En=fs(vn,!0),js=En[0],Ns=En[1],Ht=(e,t,n)=>n>32?ys(e,t,n):ps(e,t,n),Wt=(e,t,n)=>n>32?bs(e,t,n):ms(e,t,n);function Rs(e,t=24){const n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let a=0;a<10;a++)n[a]=e[a]^e[a+10]^e[a+20]^e[a+30]^e[a+40];for(let a=0;a<10;a+=2){const o=(a+8)%10,u=(a+2)%10,d=n[u],l=n[u+1],m=Ht(d,l,1)^n[o],y=Wt(d,l,1)^n[o+1];for(let p=0;p<50;p+=10)e[a+p]^=m,e[a+p+1]^=y}let s=e[2],i=e[3];for(let a=0;a<24;a++){const o=Tn[a],u=Ht(s,i,o),d=Wt(s,i,o),l=wn[a];s=e[l],i=e[l+1],e[l]=u,e[l+1]=d}for(let a=0;a<50;a+=10){for(let o=0;o<10;o++)n[o]=e[a+o];for(let o=0;o<10;o++)e[a+o]^=~n[(o+2)%10]&n[(o+4)%10]}e[0]^=js[r],e[1]^=Ns[r]}gn(n)}class $t extends Ps{constructor(t,n,r,s=!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=r,this.enableXOF=s,this.rounds=i,zt(r),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=xs(this.state)}clone(){return this._cloneInto()}keccak(){Gt(this.state32),Rs(this.state32,this.rounds),Gt(this.state32),this.posOut=0,this.pos=0}update(t){_t(this),t=xn(t),Fe(t);const{blockLen:n,state:r}=this,s=t.length;for(let i=0;i<s;){const a=Math.min(n-this.pos,s-i);for(let o=0;o<a;o++)r[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:r,blockLen:s}=this;t[r]^=n,(n&128)!==0&&r===s-1&&this.keccak(),t[s-1]^=128,this.keccak()}writeInto(t){_t(this,!1),Fe(t),this.finish();const n=this.state,{blockLen:r}=this;for(let s=0,i=t.length;s<i;){this.posOut>=r&&this.keccak();const a=Math.min(r-this.posOut,i-s);t.set(n.subarray(this.posOut,this.posOut+a),s),this.posOut+=a,s+=a}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return zt(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(gs(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,gn(this.state)}_cloneInto(t){const{blockLen:n,suffix:r,outputLen:s,rounds:i,enableXOF:a}=this;return t||(t=new $t(n,r,s,a,i)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=i,t.suffix=r,t.outputLen=s,t.enableXOF=a,t.destroyed=this.destroyed,t}}const Ms=(e,t,n)=>Ss(()=>new $t(t,e,n)),Ds=Ms(1,136,256/8);function Pn(e,t){const n=t||"hex",r=Ds(Se(e,{strict:!1})?bn(e):e);return n==="bytes"?r:as(r)}class Sn 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 r=this.keys().next().value;r&&this.delete(r)}return this}}const Os=/^0x[a-fA-F0-9]{40}$/,tt=new Sn(8192);function me(e,t){const{strict:n=!0}=t??{},r=`${e}.${n}`;if(tt.has(r))return tt.get(r);const s=Os.test(e)?e.toLowerCase()===e?!0:n?An(e)===e:!0:!1;return tt.set(r,s),s}const nt=new Sn(8192);function An(e,t){if(nt.has(`${e}.${t}`))return nt.get(`${e}.${t}`);const n=e.substring(2).toLowerCase(),r=Pn(hn(n),"bytes"),s=n.split("");for(let a=0;a<40;a+=2)r[a>>1]>>4>=8&&s[a]&&(s[a]=s[a].toUpperCase()),(r[a>>1]&15)>=8&&s[a+1]&&(s[a+1]=s[a+1].toUpperCase());const i=`0x${s.join("")}`;return nt.set(`${e}.${t}`,i),i}class Vt extends f{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class Bs extends f{constructor({length:t,position:n}){super(`Position \`${n}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}}class Us extends f{constructor({count:t,limit:n}){super(`Recursive read limit of \`${n}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}const Fs={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 Us({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new Bs({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Vt({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 Vt({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 Ls(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(Fs);return n.bytes=e,n.dataView=new DataView(e.buffer??e,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function Re(e,t,n,{strict:r}={}){return Se(e,{strict:!1})?zs(e,t,n,{strict:r}):kn(e,t,n,{strict:r})}function $n(e,t){if(typeof t=="number"&&t>0&&t>L(e)-1)throw new dn({offset:t,position:"start",size:L(e)})}function Cn(e,t,n){if(typeof t=="number"&&typeof n=="number"&&L(e)!==n-t)throw new dn({offset:n,position:"end",size:L(e)})}function kn(e,t,n,{strict:r}={}){$n(e,t);const s=e.slice(t,n);return r&&Cn(s,t,n),s}function zs(e,t,n,{strict:r}={}){$n(e,t);const s=`0x${e.replace("0x","").slice((t??0)*2,(n??e.length)*2)}`;return r&&Cn(s,t,n),s}function _s(e,t={}){typeof t.size<"u"&&te(e,{size:t.size});const n=ce(e,t);return pn(n,t)}function Gs(e,t={}){let n=e;if(typeof t.size<"u"&&(te(n,{size:t.size}),n=St(n)),n.length>1||n[0]>1)throw new ns(n);return!!n[0]}function oe(e,t={}){typeof t.size<"u"&&te(e,{size:t.size});const n=ce(e,t);return ss(n,t)}function Hs(e,t={}){let n=e;return typeof t.size<"u"&&(te(n,{size:t.size}),n=St(n,{dir:"right"})),new TextDecoder().decode(n)}function we(e){return typeof e[0]=="string"?Ge(e):Ws(e)}function Ws(e){let t=0;for(const s of e)t+=s.length;const n=new Uint8Array(t);let r=0;for(const s of e)n.set(s,r),r+=s.length;return n}function Ge(e){return`0x${e.reduce((t,n)=>t+n.replace("0x",""),"")}`}const Vs=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function Ct(e,t){if(e.length!==t.length)throw new Kr({expectedLength:e.length,givenLength:t.length});const n=Ks({params:e,values:t}),r=It(n);return r.length===0?"0x":r}function Ks({params:e,values:t}){const n=[];for(let r=0;r<e.length;r++)n.push(kt({param:e[r],value:t[r]}));return n}function kt({param:e,value:t}){const n=jt(e.type);if(n){const[r,s]=n;return Zs(t,{length:r,param:{...e,type:s}})}if(e.type==="tuple")return ei(t,{param:e});if(e.type==="address")return Ys(t);if(e.type==="bool")return Js(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){const r=e.type.startsWith("int"),[,,s="256"]=Vs.exec(e.type)??[];return Qs(t,{signed:r,size:Number(s)})}if(e.type.startsWith("bytes"))return Xs(t,{param:e});if(e.type==="string")return qs(t);throw new Qr(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function It(e){let t=0;for(let i=0;i<e.length;i++){const{dynamic:a,encoded:o}=e[i];a?t+=32:t+=L(o)}const n=[],r=[];let s=0;for(let i=0;i<e.length;i++){const{dynamic:a,encoded:o}=e[i];a?(n.push(k(t+s,{size:32})),r.push(o),s+=L(o)):n.push(o)}return we([...n,...r])}function Ys(e){if(!me(e))throw new Ne({address:e});return{dynamic:!1,encoded:pe(e.toLowerCase())}}function Zs(e,{length:t,param:n}){const r=t===null;if(!Array.isArray(e))throw new un(e);if(!r&&e.length!==t)throw new Wr({expectedLength:t,givenLength:e.length,type:`${n.type}[${t}]`});let s=!1;const i=[];for(let a=0;a<e.length;a++){const o=kt({param:n,value:e[a]});o.dynamic&&(s=!0),i.push(o)}if(r||s){const a=It(i);if(r){const o=k(i.length,{size:32});return{dynamic:!0,encoded:i.length>0?we([o,a]):o}}if(s)return{dynamic:!0,encoded:a}}return{dynamic:!1,encoded:we(i.map(({encoded:a})=>a))}}function Xs(e,{param:t}){const[,n]=t.type.split("bytes"),r=L(e);if(!n){let s=e;return r%32!==0&&(s=pe(s,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:we([pe(k(r,{size:32})),s])}}if(r!==Number.parseInt(n,10))throw new Vr({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:pe(e,{dir:"right"})}}function Js(e){if(typeof e!="boolean")throw new f(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:pe(mn(e))}}function Qs(e,{signed:t,size:n=256}){if(typeof n=="number"){const r=2n**(BigInt(n)-(t?1n:0n))-1n,s=t?-r-1n:0n;if(e>r||e<s)throw new fn({max:r.toString(),min:s.toString(),signed:t,size:n/8,value:e.toString()})}return{dynamic:!1,encoded:k(e,{size:32,signed:t})}}function qs(e){const t=yn(e),n=Math.ceil(L(t)/32),r=[];for(let s=0;s<n;s++)r.push(pe(Re(t,s*32,(s+1)*32),{dir:"right"}));return{dynamic:!0,encoded:we([pe(k(L(t),{size:32})),...r])}}function ei(e,{param:t}){let n=!1;const r=[];for(let s=0;s<t.components.length;s++){const i=t.components[s],a=Array.isArray(e)?s:i.name,o=kt({param:i,value:e[a]});r.push(o),o.dynamic&&(n=!0)}return{dynamic:n,encoded:n?It(r):we(r.map(({encoded:s})=>s))}}function jt(e){const t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}function Nt(e,t){const n=typeof t=="string"?At(t):t,r=Ls(n);if(L(n)===0&&e.length>0)throw new Pt;if(L(t)&&L(t)<32)throw new Hr({data:typeof t=="string"?t:ce(t),params:e,size:L(t)});let s=0;const i=[];for(let a=0;a<e.length;++a){const o=e[a];r.setPosition(s);const[u,d]=Pe(r,o,{staticPosition:0});s+=d,i.push(u)}return i}function Pe(e,t,{staticPosition:n}){const r=jt(t.type);if(r){const[s,i]=r;return ni(e,{...t,type:i},{length:s,staticPosition:n})}if(t.type==="tuple")return ai(e,t,{staticPosition:n});if(t.type==="address")return ti(e);if(t.type==="bool")return ri(e);if(t.type.startsWith("bytes"))return si(e,t,{staticPosition:n});if(t.type.startsWith("uint")||t.type.startsWith("int"))return ii(e,t);if(t.type==="string")return oi(e,{staticPosition:n});throw new qr(t.type,{docsPath:"/docs/contract/decodeAbiParameters"})}const Kt=32,ct=32;function ti(e){const t=e.readBytes(32);return[An(ce(kn(t,-20))),32]}function ni(e,t,{length:n,staticPosition:r}){if(!n){const a=oe(e.readBytes(ct)),o=r+a,u=o+Kt;e.setPosition(o);const d=oe(e.readBytes(Kt)),l=Me(t);let m=0;const y=[];for(let p=0;p<d;++p){e.setPosition(u+(l?p*32:m));const[b,v]=Pe(e,t,{staticPosition:u});m+=v,y.push(b)}return e.setPosition(r+32),[y,32]}if(Me(t)){const a=oe(e.readBytes(ct)),o=r+a,u=[];for(let d=0;d<n;++d){e.setPosition(o+d*32);const[l]=Pe(e,t,{staticPosition:o});u.push(l)}return e.setPosition(r+32),[u,32]}let s=0;const i=[];for(let a=0;a<n;++a){const[o,u]=Pe(e,t,{staticPosition:r+s});s+=u,i.push(o)}return[i,s]}function ri(e){return[Gs(e.readBytes(32),{size:32}),32]}function si(e,t,{staticPosition:n}){const[r,s]=t.type.split("bytes");if(!s){const a=oe(e.readBytes(32));e.setPosition(n+a);const o=oe(e.readBytes(32));if(o===0)return e.setPosition(n+32),["0x",32];const u=e.readBytes(o);return e.setPosition(n+32),[ce(u),32]}return[ce(e.readBytes(Number.parseInt(s,10),32)),32]}function ii(e,t){const n=t.type.startsWith("int"),r=Number.parseInt(t.type.split("int")[1]||"256",10),s=e.readBytes(32);return[r>48?_s(s,{signed:n}):oe(s,{signed:n}),32]}function ai(e,t,{staticPosition:n}){const r=t.components.length===0||t.components.some(({name:a})=>!a),s=r?[]:{};let i=0;if(Me(t)){const a=oe(e.readBytes(ct)),o=n+a;for(let u=0;u<t.components.length;++u){const d=t.components[u];e.setPosition(o+i);const[l,m]=Pe(e,d,{staticPosition:o});i+=m,s[r?u:d?.name]=l}return e.setPosition(n+32),[s,32]}for(let a=0;a<t.components.length;++a){const o=t.components[a],[u,d]=Pe(e,o,{staticPosition:n});s[r?a:o?.name]=u,i+=d}return[s,i]}function oi(e,{staticPosition:t}){const n=oe(e.readBytes(32)),r=t+n;e.setPosition(r);const s=oe(e.readBytes(32));if(s===0)return e.setPosition(t+32),["",32];const i=e.readBytes(s,32),a=Hs(St(i));return e.setPosition(t+32),[a,32]}function Me(e){const{type:t}=e;if(t==="string"||t==="bytes"||t.endsWith("[]"))return!0;if(t==="tuple")return e.components?.some(Me);const n=jt(e.type);return!!(n&&Me({...e,type:n[1]}))}const ci=e=>Pn(bn(e));function ui(e){return ci(e)}const di="1.2.3";let J=class ut extends Error{constructor(t,n={}){const r=n.cause instanceof ut?n.cause.details:n.cause?.message?n.cause.message:n.details,s=n.cause instanceof ut&&n.cause.docsPath||n.docsPath,i=[t||"An error occurred.","",...n.metaMessages?[...n.metaMessages,""]:[],...s?[`Docs: https://abitype.dev${s}`]:[],...r?[`Details: ${r}`]:[],`Version: abitype@${di}`].join(`
18
+ `);super(i),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,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),n.cause&&(this.cause=n.cause),this.details=r,this.docsPath=s,this.metaMessages=n.metaMessages,this.shortMessage=t}};function ue(e,t){return e.exec(t)?.groups}const In=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,jn=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Nn=/^\(.+?\).*?$/,Yt=/^tuple(?<array>(\[(\d*)\])*)$/;function dt(e){let t=e.type;if(Yt.test(e.type)&&"components"in e){t="(";const n=e.components.length;for(let s=0;s<n;s++){const i=e.components[s];t+=dt(i),s<n-1&&(t+=", ")}const r=ue(Yt,e.type);return t+=`)${r?.array||""}`,dt({...e,type:t})}return"indexed"in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}function ke(e){let t="";const n=e.length;for(let r=0;r<n;r++){const s=e[r];t+=dt(s),r!==n-1&&(t+=", ")}return t}function li(e){return e.type==="function"?`function ${e.name}(${ke(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${e.outputs?.length?` returns (${ke(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${ke(e.inputs)})`:e.type==="error"?`error ${e.name}(${ke(e.inputs)})`:e.type==="constructor"?`constructor(${ke(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}const Rn=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function fi(e){return Rn.test(e)}function pi(e){return ue(Rn,e)}const Mn=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function mi(e){return Mn.test(e)}function yi(e){return ue(Mn,e)}const Dn=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;function bi(e){return Dn.test(e)}function hi(e){return ue(Dn,e)}const On=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function Bn(e){return On.test(e)}function gi(e){return ue(On,e)}const Un=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;function xi(e){return Un.test(e)}function wi(e){return ue(Un,e)}const Fn=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;function Ti(e){return Fn.test(e)}function vi(e){return ue(Fn,e)}const Ei=/^receive\(\) external payable$/;function Pi(e){return Ei.test(e)}const Si=new Set(["indexed"]),lt=new Set(["calldata","memory","storage"]);class Ai extends J{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}}class $i extends J{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}class Ci extends J{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}}class ki extends J{constructor({param:t,name:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`"${n}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}}class Ii extends J{constructor({param:t,type:n,modifier:r}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${r}" not allowed${n?` in "${n}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}}class ji extends J{constructor({param:t,type:n,modifier:r}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${r}" not allowed${n?` in "${n}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${r}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}}class Ni extends J{constructor({abiParameter:t}){super("Invalid ABI parameter.",{details:JSON.stringify(t,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}class $e extends J{constructor({signature:t,type:n}){super(`Invalid ${n} signature.`,{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}}class Ri extends J{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}}class Mi extends J{constructor({signature:t}){super("Invalid struct signature.",{details:t,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}class Di extends J{constructor({type:t}){super("Circular reference detected.",{metaMessages:[`Struct "${t}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}class Oi extends J{constructor({current:t,depth:n}){super("Unbalanced parentheses.",{metaMessages:[`"${t.trim()}" has too many ${n>0?"opening":"closing"} parentheses.`],details:`Depth "${n}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}function Bi(e,t,n){let r="";if(n)for(const s of Object.entries(n)){if(!s)continue;let i="";for(const a of s[1])i+=`[${a.type}${a.name?`:${a.name}`:""}]`;r+=`(${s[0]}{${i}})`}return t?`${t}:${e}${r}`:`${e}${r}`}const rt=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]);function Ui(e,t={}){if(bi(e))return Fi(e,t);if(mi(e))return Li(e,t);if(fi(e))return zi(e,t);if(xi(e))return _i(e,t);if(Ti(e))return Gi(e);if(Pi(e))return{type:"receive",stateMutability:"payable"};throw new Ri({signature:e})}function Fi(e,t={}){const n=hi(e);if(!n)throw new $e({signature:e,type:"function"});const r=q(n.parameters),s=[],i=r.length;for(let o=0;o<i;o++)s.push(Te(r[o],{modifiers:lt,structs:t,type:"function"}));const a=[];if(n.returns){const o=q(n.returns),u=o.length;for(let d=0;d<u;d++)a.push(Te(o[d],{modifiers:lt,structs:t,type:"function"}))}return{name:n.name,type:"function",stateMutability:n.stateMutability??"nonpayable",inputs:s,outputs:a}}function Li(e,t={}){const n=yi(e);if(!n)throw new $e({signature:e,type:"event"});const r=q(n.parameters),s=[],i=r.length;for(let a=0;a<i;a++)s.push(Te(r[a],{modifiers:Si,structs:t,type:"event"}));return{name:n.name,type:"event",inputs:s}}function zi(e,t={}){const n=pi(e);if(!n)throw new $e({signature:e,type:"error"});const r=q(n.parameters),s=[],i=r.length;for(let a=0;a<i;a++)s.push(Te(r[a],{structs:t,type:"error"}));return{name:n.name,type:"error",inputs:s}}function _i(e,t={}){const n=wi(e);if(!n)throw new $e({signature:e,type:"constructor"});const r=q(n.parameters),s=[],i=r.length;for(let a=0;a<i;a++)s.push(Te(r[a],{structs:t,type:"constructor"}));return{type:"constructor",stateMutability:n.stateMutability??"nonpayable",inputs:s}}function Gi(e){const t=vi(e);if(!t)throw new $e({signature:e,type:"fallback"});return{type:"fallback",stateMutability:t.stateMutability??"nonpayable"}}const Hi=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,Wi=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,Vi=/^u?int$/;function Te(e,t){const n=Bi(e,t?.type,t?.structs);if(rt.has(n))return rt.get(n);const r=Nn.test(e),s=ue(r?Wi:Hi,e);if(!s)throw new Ci({param:e});if(s.name&&Yi(s.name))throw new ki({param:e,name:s.name});const i=s.name?{name:s.name}:{},a=s.modifier==="indexed"?{indexed:!0}:{},o=t?.structs??{};let u,d={};if(r){u="tuple";const m=q(s.type),y=[],p=m.length;for(let b=0;b<p;b++)y.push(Te(m[b],{structs:o}));d={components:y}}else if(s.type in o)u="tuple",d={components:o[s.type]};else if(Vi.test(s.type))u=`${s.type}256`;else if(s.type==="address payable")u="address";else if(u=s.type,t?.type!=="struct"&&!Ln(u))throw new $i({type:u});if(s.modifier){if(!t?.modifiers?.has?.(s.modifier))throw new Ii({param:e,type:t?.type,modifier:s.modifier});if(lt.has(s.modifier)&&!Zi(u,!!s.array))throw new ji({param:e,type:t?.type,modifier:s.modifier})}const l={type:`${u}${s.array??""}`,...i,...a,...d};return rt.set(n,l),l}function q(e,t=[],n="",r=0){const s=e.trim().length;for(let i=0;i<s;i++){const a=e[i],o=e.slice(i+1);switch(a){case",":return r===0?q(o,[...t,n.trim()]):q(o,t,`${n}${a}`,r);case"(":return q(o,t,`${n}${a}`,r+1);case")":return q(o,t,`${n}${a}`,r-1);default:return q(o,t,`${n}${a}`,r)}}if(n==="")return t;if(r!==0)throw new Oi({current:n,depth:r});return t.push(n.trim()),t}function Ln(e){return e==="address"||e==="bool"||e==="function"||e==="string"||In.test(e)||jn.test(e)}const Ki=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;function Yi(e){return e==="address"||e==="bool"||e==="function"||e==="string"||e==="tuple"||In.test(e)||jn.test(e)||Ki.test(e)}function Zi(e,t){return t||e==="bytes"||e==="string"||e==="tuple"}function Xi(e){const t={},n=e.length;for(let a=0;a<n;a++){const o=e[a];if(!Bn(o))continue;const u=gi(o);if(!u)throw new $e({signature:o,type:"struct"});const d=u.properties.split(";"),l=[],m=d.length;for(let y=0;y<m;y++){const b=d[y].trim();if(!b)continue;const v=Te(b,{type:"struct"});l.push(v)}if(!l.length)throw new Mi({signature:o});t[u.name]=l}const r={},s=Object.entries(t),i=s.length;for(let a=0;a<i;a++){const[o,u]=s[a];r[o]=zn(u,t)}return r}const Ji=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function zn(e=[],t={},n=new Set){const r=[],s=e.length;for(let i=0;i<s;i++){const a=e[i];if(Nn.test(a.type))r.push(a);else{const u=ue(Ji,a.type);if(!u?.type)throw new Ni({abiParameter:a});const{array:d,type:l}=u;if(l in t){if(n.has(l))throw new Di({type:l});r.push({...a,type:`tuple${d??""}`,components:zn(t[l],t,new Set([...n,l]))})}else if(Ln(l))r.push(a);else throw new Ai({type:l})}}return r}function _n(e){const t=Xi(e),n=[],r=e.length;for(let s=0;s<r;s++){const i=e[s];Bn(i)||n.push(Ui(i,t))}return n}function Qi(e){let t=!0,n="",r=0,s="",i=!1;for(let a=0;a<e.length;a++){const o=e[a];if(["(",")",","].includes(o)&&(t=!0),o==="("&&r++,o===")"&&r--,!!t){if(r===0){if(o===" "&&["event","function",""].includes(s))s="";else if(s+=o,o===")"){i=!0;break}continue}if(o===" "){e[a-1]!==","&&n!==","&&n!==",("&&(n="",t=!1);continue}s+=o,n+=o}}if(!i)throw new f("Unable to normalize signature.");return s}const qi=e=>{const t=typeof e=="string"?e:li(e);return Qi(t)};function Gn(e){return ui(qi(e))}const ea=Gn,He=e=>Re(Gn(e),0,4);function We(e){const{abi:t,args:n=[],name:r}=e,s=Se(r,{strict:!1}),i=t.filter(o=>s?o.type==="function"?He(o)===r:o.type==="event"?ea(o)===r:!1:"name"in o&&o.name===r);if(i.length===0)return;if(i.length===1)return i[0];let a;for(const o of i){if(!("inputs"in o))continue;if(!n||n.length===0){if(!o.inputs||o.inputs.length===0)return o;continue}if(!o.inputs||o.inputs.length===0||o.inputs.length!==n.length)continue;if(n.every((d,l)=>{const m="inputs"in o&&o.inputs[l];return m?ft(d,m):!1})){if(a&&"inputs"in a&&a.inputs){const d=Hn(o.inputs,a.inputs,n);if(d)throw new Jr({abiItem:o,type:d[0]},{abiItem:a,type:d[1]})}a=o}}return a||i[0]}function ft(e,t){const n=typeof e,r=t.type;switch(r){case"address":return me(e,{strict:!1});case"bool":return n==="boolean";case"function":return n==="string";case"string":return n==="string";default:return r==="tuple"&&"components"in t?Object.values(t.components).every((s,i)=>n==="object"&&ft(Object.values(e)[i],s)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(r)?n==="number"||n==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?n==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)?Array.isArray(e)&&e.every(s=>ft(s,{...t,type:r.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function Hn(e,t,n){for(const r in e){const s=e[r],i=t[r];if(s.type==="tuple"&&i.type==="tuple"&&"components"in s&&"components"in i)return Hn(s.components,i.components,n[r]);const a=[s.type,i.type];if(a.includes("address")&&a.includes("bytes20")?!0:a.includes("address")&&a.includes("string")?me(n[r],{strict:!1}):a.includes("address")&&a.includes("bytes")?me(n[r],{strict:!1}):!1)return a}}const st="/docs/contract/decodeFunctionResult";function Wn(e){const{abi:t,args:n,functionName:r,data:s}=e;let i=t[0];if(r){const o=We({abi:t,args:n,name:r});if(!o)throw new je(r,{docsPath:st});i=o}if(i.type!=="function")throw new je(void 0,{docsPath:st});if(!i.outputs)throw new cn(i.name,{docsPath:st});const a=Nt(i.outputs,s);if(a&&a.length>1)return a;if(a&&a.length===1)return a[0]}const Zt="/docs/contract/encodeFunctionData";function ta(e){const{abi:t,args:n,functionName:r}=e;let s=t[0];if(r){const i=We({abi:t,args:n,name:r});if(!i)throw new je(r,{docsPath:Zt});s=i}if(s.type!=="function")throw new je(void 0,{docsPath:Zt});return{abi:[s],functionName:He(xe(s))}}function Vn(e){const{args:t}=e,{abi:n,functionName:r}=e.abi.length===1&&e.functionName?.startsWith("0x")?e:ta(e),s=n[0],i=r,a="inputs"in s&&s.inputs?Ct(s.inputs,t??[]):void 0;return Ge([i,a??"0x"])}class pt extends f{constructor({blockNumber:t,chain:n,contract:r}){super(`Chain "${n.name}" does not support contract "${r.name}".`,{metaMessages:["This could be due to any of the following:",...t&&r.blockCreated&&r.blockCreated>t?[`- The contract "${r.name}" was not deployed until block ${r.blockCreated} (current block ${t}).`]:[`- The chain does not have the contract "${r.name}" configured.`]],name:"ChainDoesNotSupportContract"})}}class Kn extends f{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}}function na({blockNumber:e,chain:t,contract:n}){const r=t?.contracts?.[n];if(!r)throw new pt({chain:t,contract:{name:n}});if(e&&r.blockCreated&&r.blockCreated>e)throw new pt({blockNumber:e,chain:t,contract:{name:n,blockCreated:r.blockCreated}});return r.address}function Rt(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}const ra={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},Yn={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},sa={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"};function Zn(e){const{abi:t,data:n}=e,r=Re(n,0,4);if(r==="0x")throw new Pt;const i=[...t||[],Yn,sa].find(a=>a.type==="error"&&r===He(xe(a)));if(!i)throw new on(r,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:i,args:"inputs"in i&&i.inputs&&i.inputs.length>0?Nt(i.inputs,Re(n,4)):void 0,errorName:i.name}}const Ve=(e,t,n)=>JSON.stringify(e,(r,s)=>typeof s=="bigint"?s.toString():s,n);function Xn({abiItem:e,args:t,includeFunctionName:n=!0,includeName:r=!1}){if("name"in e&&"inputs"in e&&e.inputs)return`${n?e.name:""}(${e.inputs.map((s,i)=>`${r&&s.name?`${s.name}: `:""}${typeof t[i]=="object"?Ve(t[i]):t[i]}`).join(", ")})`}const ia={gwei:9,wei:18},aa={ether:-9,wei:9};function Jn(e,t){let n=e.toString();const r=n.startsWith("-");r&&(n=n.slice(1)),n=n.padStart(t,"0");let[s,i]=[n.slice(0,n.length-t),n.slice(n.length-t)];return i=i.replace(/(0+)$/,""),`${r?"-":""}${s||"0"}${i?`.${i}`:""}`}function oa(e,t="wei"){return Jn(e,ia[t])}function ge(e,t="wei"){return Jn(e,aa[t])}class ca extends f{constructor({address:t}){super(`State for account "${t}" is set multiple times.`,{name:"AccountStateConflictError"})}}class ua extends f{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}function Xt(e){return e.reduce((t,{slot:n,value:r})=>`${t} ${n}: ${r}
19
+ `,"")}function da(e){return e.reduce((t,{address:n,...r})=>{let s=`${t} ${n}:
20
+ `;return r.nonce&&(s+=` nonce: ${r.nonce}
21
+ `),r.balance&&(s+=` balance: ${r.balance}
22
+ `),r.code&&(s+=` code: ${r.code}
23
+ `),r.state&&(s+=` state:
24
+ `,s+=Xt(r.state)),r.stateDiff&&(s+=` stateDiff:
25
+ `,s+=Xt(r.stateDiff)),s},` State Override:
26
+ `).slice(0,-1)}function Qn(e){const t=Object.entries(e).map(([r,s])=>s===void 0||s===!1?null:[r,s]).filter(Boolean),n=t.reduce((r,[s])=>Math.max(r,s.length),0);return t.map(([r,s])=>` ${`${r}:`.padEnd(n+1)} ${s}`).join(`
27
+ `)}const la=e=>e,Mt=e=>e;class fa extends f{constructor(t,{account:n,docsPath:r,chain:s,data:i,gas:a,gasPrice:o,maxFeePerGas:u,maxPriorityFeePerGas:d,nonce:l,to:m,value:y,stateOverride:p}){const b=n?Rt(n):void 0;let v=Qn({from:b?.address,to:m,value:typeof y<"u"&&`${oa(y)} ${s?.nativeCurrency?.symbol||"ETH"}`,data:i,gas:a,gasPrice:typeof o<"u"&&`${ge(o)} gwei`,maxFeePerGas:typeof u<"u"&&`${ge(u)} gwei`,maxPriorityFeePerGas:typeof d<"u"&&`${ge(d)} gwei`,nonce:l});p&&(v+=`
28
+ ${da(p)}`),super(t.shortMessage,{cause:t,docsPath:r,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Raw Call Arguments:",v].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}}class pa extends f{constructor(t,{abi:n,args:r,contractAddress:s,docsPath:i,functionName:a,sender:o}){const u=We({abi:n,args:r,name:a}),d=u?Xn({abiItem:u,args:r,includeFunctionName:!1,includeName:!1}):void 0,l=u?xe(u,{includeName:!0}):void 0,m=Qn({address:s&&la(s),function:l,args:d&&d!=="()"&&`${[...Array(a?.length??0).keys()].map(()=>" ").join("")}${d}`,sender:o});super(t.shortMessage||`An unknown error occurred while executing the contract function "${a}".`,{cause:t,docsPath:i,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],m&&"Contract Call:",m].filter(Boolean),name:"ContractFunctionExecutionError"}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=n,this.args=r,this.cause=t,this.contractAddress=s,this.functionName=a,this.sender=o}}class ma extends f{constructor({abi:t,data:n,functionName:r,message:s}){let i,a,o,u;if(n&&n!=="0x")try{a=Zn({abi:t,data:n});const{abiItem:l,errorName:m,args:y}=a;if(m==="Error")u=y[0];else if(m==="Panic"){const[p]=y;u=ra[p]}else{const p=l?xe(l,{includeName:!0}):void 0,b=l&&y?Xn({abiItem:l,args:y,includeFunctionName:!1,includeName:!1}):void 0;o=[p?`Error: ${p}`:"",b&&b!=="()"?` ${[...Array(m?.length??0).keys()].map(()=>" ").join("")}${b}`:""]}}catch(l){i=l}else s&&(u=s);let d;i instanceof on&&(d=i.signature,o=[`Unable to decode signature "${d}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${d}.`]),super(u&&u!=="execution reverted"||d?[`The contract function "${r}" reverted with the following ${d?"signature":"reason"}:`,u||d].join(`
29
+ `):`The contract function "${r}" reverted.`,{cause:i,metaMessages:o,name:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=a,this.raw=n,this.reason=u,this.signature=d}}class ya extends f{constructor({functionName:t}){super(`The contract function "${t}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${t}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}}class ba extends f{constructor({factory:t}){super(`Deployment for counterfactual contract call failed${t?` for factory "${t}".`:""}`,{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}}class qn extends f{constructor({data:t,message:n}){super(n||"",{name:"RawContractError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t}}function ha(e,t,n){const r=e[t.name];if(typeof r=="function")return r;const s=e[n];return typeof s=="function"?s:i=>t(e,i)}class ga extends f{constructor({body:t,cause:n,details:r,headers:s,status:i,url:a}){super("HTTP request failed.",{cause:n,details:r,metaMessages:[i&&`Status: ${i}`,`URL: ${Mt(a)}`,t&&`Request body: ${Ve(t)}`].filter(Boolean),name:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=t,this.headers=s,this.status=i,this.url=a}}class er extends f{constructor({body:t,error:n,url:r}){super("RPC Request failed.",{cause:n,details:n.message,metaMessages:[`URL: ${Mt(r)}`,`Request body: ${Ve(t)}`],name:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=n.code,this.data=n.data,this.url=r}}const xa=-1;class tr extends f{constructor(t,{code:n,docsPath:r,metaMessages:s,name:i,shortMessage:a}){super(a,{cause:t,docsPath:r,metaMessages:s||t?.metaMessages,name:i||"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=i||t.name,this.code=t instanceof er?t.code:n??xa}}class Ke extends tr{constructor(t){super(t,{code:Ke.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}}Object.defineProperty(Ke,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});class Ye extends tr{constructor(t){super(t,{code:Ye.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(`
30
+ `)})}}Object.defineProperty(Ye,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});const wa=3;function Ta(e,{abi:t,address:n,args:r,docsPath:s,functionName:i,sender:a}){const o=e instanceof qn?e:e instanceof f?e.walk(b=>"data"in b)||e.walk():{},{code:u,data:d,details:l,message:m,shortMessage:y}=o,p=e instanceof Pt?new ya({functionName:i}):[wa,Ke.code].includes(u)&&(d||l||m||y)||u===Ye.code&&l==="execution reverted"&&d?new ma({abi:t,data:typeof d=="object"?d.data:d,functionName:i,message:o instanceof er?l:y??m}):e;return new pa(p,{abi:t,args:r,contractAddress:n,docsPath:s,functionName:i,sender:a})}const va="0.1.1";function Ea(){return va}class G extends Error{static setStaticOptions(t){G.prototype.docsOrigin=t.docsOrigin,G.prototype.showVersion=t.showVersion,G.prototype.version=t.version}constructor(t,n={}){const r=(()=>{if(n.cause instanceof G){if(n.cause.details)return n.cause.details;if(n.cause.shortMessage)return n.cause.shortMessage}return n.cause&&"details"in n.cause&&typeof n.cause.details=="string"?n.cause.details:n.cause?.message?n.cause.message:n.details})(),s=n.cause instanceof G&&n.cause.docsPath||n.docsPath,i=n.docsOrigin??G.prototype.docsOrigin,a=`${i}${s??""}`,o=!!(n.version??G.prototype.showVersion),u=n.version??G.prototype.version,d=[t||"An error occurred.",...n.metaMessages?["",...n.metaMessages]:[],...r||s||o?["",r?`Details: ${r}`:void 0,s?`See: ${a}`:void 0,o?`Version: ${u}`:void 0]:[]].filter(l=>typeof l=="string").join(`
31
+ `);super(d,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsOrigin",{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,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"showVersion",{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,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.cause=n.cause,this.details=r,this.docs=a,this.docsOrigin=i,this.docsPath=s,this.shortMessage=t,this.showVersion=o,this.version=u}walk(t){return nr(this,t)}}Object.defineProperty(G,"defaultStaticOptions",{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:"https://oxlib.sh",showVersion:!1,version:`ox@${Ea()}`}});G.setStaticOptions(G.defaultStaticOptions);function nr(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause?nr(e.cause,t):t?null:e}function Pa(e,t={}){const{dir:n,size:r=32}=t;if(r===0)return e;const s=e.replace("0x","");if(s.length>r*2)throw new $a({size:Math.ceil(s.length/2),targetSize:r,type:"Hex"});return`0x${s[n==="right"?"padEnd":"padStart"](r*2,"0")}`}function ae(e,t={}){const{signed:n,size:r}=t,s=BigInt(e);let i;r?n?i=(1n<<BigInt(r)*8n-1n)-1n:i=2n**(BigInt(r)*8n)-1n:typeof e=="number"&&(i=BigInt(Number.MAX_SAFE_INTEGER));const a=typeof i=="bigint"&&n?-i-1n:0;if(i&&s>i||s<a){const d=typeof e=="bigint"?"n":"";throw new Aa({max:i?`${i}${d}`:void 0,min:`${a}${d}`,signed:n,size:r,value:`${e}${d}`})}const u=`0x${(n&&s<0?BigInt.asUintN(r*8,BigInt(s)):s).toString(16)}`;return r?Sa(u,r):u}function Sa(e,t){return Pa(e,{dir:"left",size:t})}class Aa extends G{constructor({max:t,min:n,signed:r,size:s,value:i}){super(`Number \`${i}\` is not in safe${s?` ${s*8}-bit`:""}${r?" signed":" unsigned"} integer range ${t?`(\`${n}\` to \`${t}\`)`:`(above \`${n}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}class $a extends G{constructor({size:t,targetSize:n,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${t}\`) exceeds padding size (\`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}function Ca(e){return{address:e.address,amount:ae(e.amount),index:ae(e.index),validatorIndex:ae(e.validatorIndex)}}function ka(e){return{...typeof e.baseFeePerGas=="bigint"&&{baseFeePerGas:ae(e.baseFeePerGas)},...typeof e.blobBaseFee=="bigint"&&{blobBaseFee:ae(e.blobBaseFee)},...typeof e.feeRecipient=="string"&&{feeRecipient:e.feeRecipient},...typeof e.gasLimit=="bigint"&&{gasLimit:ae(e.gasLimit)},...typeof e.number=="bigint"&&{number:ae(e.number)},...typeof e.prevRandao=="bigint"&&{prevRandao:ae(e.prevRandao)},...typeof e.time=="bigint"&&{time:ae(e.time)},...e.withdrawals&&{withdrawals:e.withdrawals.map(Ca)}}}const Ia="0x82ad56cb",ja="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",Na="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",Ra="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033",it="/docs/contract/encodeDeployData";function rr(e){const{abi:t,args:n,bytecode:r}=e;if(!n||n.length===0)return r;const s=t.find(a=>"type"in a&&a.type==="constructor");if(!s)throw new Gr({docsPath:it});if(!("inputs"in s))throw new Bt({docsPath:it});if(!s.inputs||s.inputs.length===0)throw new Bt({docsPath:it});const i=Ct(s.inputs,n);return Ge([r,i])}class Ee extends f{constructor({cause:t,message:n}={}){const r=n?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${r?`with reason: ${r}`:"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|gas required exceeds allowance/});class Le extends f{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${ge(n)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}}Object.defineProperty(Le,"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 mt extends f{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${ge(n)}`:""} gwei) cannot be lower than the block base fee.`,{cause:t,name:"FeeCapTooLowError"})}}Object.defineProperty(mt,"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 yt extends f{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(yt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class bt extends f{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(`
32
+ `),{cause:t,name:"NonceTooLowError"})}}Object.defineProperty(bt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class ht extends f{constructor({cause:t,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:""}exceeds the maximum allowed nonce.`,{cause:t,name:"NonceMaxValueError"})}}Object.defineProperty(ht,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class gt extends f{constructor({cause:t}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(`
33
+ `),{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(gt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});class xt extends f{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(xt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class wt extends f{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(wt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class Tt extends f{constructor({cause:t}){super("The transaction type is not supported for this chain.",{cause:t,name:"TransactionTypeNotSupportedError"})}}Object.defineProperty(Tt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class ze extends f{constructor({cause:t,maxPriorityFeePerGas:n,maxFeePerGas:r}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${n?` = ${ge(n)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${r?` = ${ge(r)} gwei`:""}).`].join(`
34
+ `),{cause:t,name:"TipAboveFeeCapError"})}}Object.defineProperty(ze,"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 sr extends f{constructor({cause:t}){super(`An error occurred while executing: ${t?.shortMessage}`,{cause:t,name:"UnknownNodeError"})}}function Ma(e,t){const n=(e.details||"").toLowerCase(),r=e instanceof f?e.walk(s=>s?.code===Ee.code):e;return r instanceof f?new Ee({cause:e,message:r.details}):Ee.nodeMessage.test(n)?new Ee({cause:e,message:e.details}):Le.nodeMessage.test(n)?new Le({cause:e,maxFeePerGas:t?.maxFeePerGas}):mt.nodeMessage.test(n)?new mt({cause:e,maxFeePerGas:t?.maxFeePerGas}):yt.nodeMessage.test(n)?new yt({cause:e,nonce:t?.nonce}):bt.nodeMessage.test(n)?new bt({cause:e,nonce:t?.nonce}):ht.nodeMessage.test(n)?new ht({cause:e,nonce:t?.nonce}):gt.nodeMessage.test(n)?new gt({cause:e}):xt.nodeMessage.test(n)?new xt({cause:e,gas:t?.gas}):wt.nodeMessage.test(n)?new wt({cause:e,gas:t?.gas}):Tt.nodeMessage.test(n)?new Tt({cause:e}):ze.nodeMessage.test(n)?new ze({cause:e,maxFeePerGas:t?.maxFeePerGas,maxPriorityFeePerGas:t?.maxPriorityFeePerGas}):new sr({cause:e})}function Da(e,{docsPath:t,...n}){const r=(()=>{const s=Ma(e,n);return s instanceof sr?e:s})();return new fa(r,{docsPath:t,...n})}function Oa(e,{format:t}){if(!t)return{};const n={};function r(i){const a=Object.keys(i);for(const o of a)o in e&&(n[o]=e[o]),i[o]&&typeof i[o]=="object"&&!Array.isArray(i[o])&&r(i[o])}const s=t(e||{});return r(s),n}const Ba={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function Ua(e,t){const n={};return typeof e.authorizationList<"u"&&(n.authorizationList=Fa(e.authorizationList)),typeof e.accessList<"u"&&(n.accessList=e.accessList),typeof e.blobVersionedHashes<"u"&&(n.blobVersionedHashes=e.blobVersionedHashes),typeof e.blobs<"u"&&(typeof e.blobs[0]!="string"?n.blobs=e.blobs.map(r=>ce(r)):n.blobs=e.blobs),typeof e.data<"u"&&(n.data=e.data),e.account&&(n.from=e.account.address),typeof e.from<"u"&&(n.from=e.from),typeof e.gas<"u"&&(n.gas=k(e.gas)),typeof e.gasPrice<"u"&&(n.gasPrice=k(e.gasPrice)),typeof e.maxFeePerBlobGas<"u"&&(n.maxFeePerBlobGas=k(e.maxFeePerBlobGas)),typeof e.maxFeePerGas<"u"&&(n.maxFeePerGas=k(e.maxFeePerGas)),typeof e.maxPriorityFeePerGas<"u"&&(n.maxPriorityFeePerGas=k(e.maxPriorityFeePerGas)),typeof e.nonce<"u"&&(n.nonce=k(e.nonce)),typeof e.to<"u"&&(n.to=e.to),typeof e.type<"u"&&(n.type=Ba[e.type]),typeof e.value<"u"&&(n.value=k(e.value)),n}function Fa(e){return e.map(t=>({address:t.address,r:t.r?k(BigInt(t.r)):t.r,s:t.s?k(BigInt(t.s)):t.s,chainId:k(t.chainId),nonce:k(t.nonce),...typeof t.yParity<"u"?{yParity:k(t.yParity)}:{},...typeof t.v<"u"&&typeof t.yParity>"u"?{v:k(t.v)}:{}}))}function La(){let e=()=>{},t=()=>{};return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}const at=new Map;function za({fn:e,id:t,shouldSplitBatch:n,wait:r=0,sort:s}){const i=async()=>{const l=u();a();const m=l.map(({args:y})=>y);m.length!==0&&e(m).then(y=>{s&&Array.isArray(y)&&y.sort(s);for(let p=0;p<l.length;p++){const{resolve:b}=l[p];b?.([y[p],y])}}).catch(y=>{for(let p=0;p<l.length;p++){const{reject:b}=l[p];b?.(y)}})},a=()=>at.delete(t),o=()=>u().map(({args:l})=>l),u=()=>at.get(t)||[],d=l=>at.set(t,[...u(),l]);return{flush:a,async schedule(l){const{promise:m,resolve:y,reject:p}=La();return n?.([...o(),l])&&i(),u().length>0?(d({args:l,resolve:y,reject:p}),m):(d({args:l,resolve:y,reject:p}),setTimeout(i,r),m)}}}function Jt(e){if(!(!e||e.length===0))return e.reduce((t,{slot:n,value:r})=>{if(n.length!==66)throw new Ut({size:n.length,targetSize:66,type:"hex"});if(r.length!==66)throw new Ut({size:r.length,targetSize:66,type:"hex"});return t[n]=r,t},{})}function _a(e){const{balance:t,nonce:n,state:r,stateDiff:s,code:i}=e,a={};if(i!==void 0&&(a.code=i),t!==void 0&&(a.balance=k(t)),n!==void 0&&(a.nonce=k(n)),r!==void 0&&(a.state=Jt(r)),s!==void 0){if(a.state)throw new ua;a.stateDiff=Jt(s)}return a}function Ga(e){if(!e)return;const t={};for(const{address:n,...r}of e){if(!me(n,{strict:!1}))throw new Ne({address:n});if(t[n])throw new ca({address:n});t[n]=_a(r)}return t}const Ha=2n**256n-1n;function Wa(e){const{account:t,maxFeePerGas:n,maxPriorityFeePerGas:r,to:s}=e,i=t?Rt(t):void 0;if(i&&!me(i.address))throw new Ne({address:i.address});if(s&&!me(s))throw new Ne({address:s});if(n&&n>Ha)throw new Le({maxFeePerGas:n});if(r&&n&&r>n)throw new ze({maxFeePerGas:n,maxPriorityFeePerGas:r})}async function ir(e,t){const{account:n=e.account,authorizationList:r,batch:s=!!e.batch?.multicall,blockNumber:i,blockTag:a=e.experimental_blockTag??"latest",accessList:o,blobs:u,blockOverrides:d,code:l,data:m,factory:y,factoryData:p,gas:b,gasPrice:v,maxFeePerBlobGas:E,maxFeePerGas:w,maxPriorityFeePerGas:h,nonce:g,to:P,value:I,stateOverride:Y,...B}=t,de=n?Rt(n):void 0;if(l&&(y||p))throw new f("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(l&&P)throw new f("Cannot provide both `code` & `to` as parameters.");const H=l&&m,_=y&&p&&P&&m,ee=H||_,W=H?ar({code:l,data:m}):_?Ya({data:m,factory:y,factoryData:p,to:P}):m;try{Wa(t);const U=(typeof i=="bigint"?k(i):void 0)||a,N=d?ka(d):void 0,V=Ga(Y),ne=e.chain?.formatters?.transactionRequest?.format,ye=(ne||Ua)({...Oa(B,{format:ne}),accessList:o,account:de,authorizationList:r,blobs:u,data:W,gas:b,gasPrice:v,maxFeePerBlobGas:E,maxFeePerGas:w,maxPriorityFeePerGas:h,nonce:g,to:ee?void 0:P,value:I},"call");if(s&&Va({request:ye})&&!V&&!N)try{return await Ka(e,{...ye,blockNumber:i,blockTag:a})}catch(z){if(!(z instanceof Kn)&&!(z instanceof pt))throw z}const re=(()=>{const z=[ye,U];return V&&N?[...z,V,N]:V?[...z,V]:N?[...z,{},N]:z})(),D=await e.request({method:"eth_call",params:re});return D==="0x"?{data:void 0}:{data:D}}catch($){const U=Za($),{offchainLookup:N,offchainLookupSignature:V}=await Promise.resolve().then(()=>require("./ccip-C24Kx7fL.cjs"));if(e.ccipRead!==!1&&U?.slice(0,10)===V&&P)return{data:await N(e,{data:U,to:P})};throw ee&&U?.slice(0,10)==="0x101bb98d"?new ba({factory:y}):Da($,{...t,account:de,chain:e.chain})}}function Va({request:e}){const{data:t,to:n,...r}=e;return!(!t||t.startsWith(Ia)||!n||Object.values(r).filter(s=>typeof s<"u").length>0)}async function Ka(e,t){const{batchSize:n=1024,deployless:r=!1,wait:s=0}=typeof e.batch?.multicall=="object"?e.batch.multicall:{},{blockNumber:i,blockTag:a=e.experimental_blockTag??"latest",data:o,to:u}=t,d=(()=>{if(r)return null;if(t.multicallAddress)return t.multicallAddress;if(e.chain)return na({blockNumber:i,chain:e.chain,contract:"multicall3"});throw new Kn})(),m=(typeof i=="bigint"?k(i):void 0)||a,{schedule:y}=za({id:`${e.uid}.${m}`,wait:s,shouldSplitBatch(v){return v.reduce((w,{data:h})=>w+(h.length-2),0)>n*2},fn:async v=>{const E=v.map(g=>({allowFailure:!0,callData:g.data,target:g.to})),w=Vn({abi:Ot,args:[E],functionName:"aggregate3"}),h=await e.request({method:"eth_call",params:[{...d===null?{data:ar({code:Ra,data:w})}:{to:d,data:w}},m]});return Wn({abi:Ot,args:[E],functionName:"aggregate3",data:h||"0x"})}}),[{returnData:p,success:b}]=await y({data:o,to:u});if(!b)throw new qn({data:p});return p==="0x"?{data:void 0}:{data:p}}function ar(e){const{code:t,data:n}=e;return rr({abi:_n(["constructor(bytes, bytes)"]),bytecode:ja,args:[t,n]})}function Ya(e){const{data:t,factory:n,factoryData:r,to:s}=e;return rr({abi:_n(["constructor(address, bytes, address, bytes)"]),bytecode:Na,args:[s,t,n,r]})}function Za(e){if(!(e instanceof f))return;const t=e.walk();return typeof t?.data=="object"?t.data?.data:t.data}async function Xa(e,t){const{abi:n,address:r,args:s,functionName:i,...a}=t,o=Vn({abi:n,args:s,functionName:i});try{const{data:u}=await ha(e,ir,"call")({...a,data:o,to:r});return Wn({abi:n,args:s,functionName:i,data:u||"0x"})}catch(u){throw Ta(u,{abi:n,address:r,args:s,docsPath:"/docs/contract/readContract",functionName:i})}}function Ja(e,t,n){const r=e[t.name];if(typeof r=="function")return r;const s=e[n];return typeof s=="function"?s:i=>t(e,i)}function Qa(e,t){const{chainId:n,...r}=t,s=e.getClient({chainId:n});return Ja(s,Xa,"readContract")(r)}function or(){const{address:e}=A.useAccount(),t=A.useConfig(),{writeContractAsync:n,data:r,isPending:s,error:i}=A.useWriteContract(),{isLoading:a,isSuccess:o}=A.useWaitForTransactionReceipt({hash:r}),u=()=>A.useReadContract({address:O.PAYMENT_ROUTER,abi:Be,functionName:"tokenRegistry"}),d=()=>A.useReadContract({address:O.PAYMENT_ROUTER,abi:Be,functionName:"feePercentage"}),l=()=>A.useReadContract({address:O.PAYMENT_ROUTER,abi:Be,functionName:"paused"}),m=async(b,v)=>{try{return await Qa(t,{address:b,abi:Q,functionName:"allowance",args:[v,O.PAYMENT_ROUTER]})}catch(E){return console.error("Error checking allowance:",E),BigInt(0)}},y=async(b,v)=>{if(!e)throw new Error("Wallet not connected");if(b==="0x0000000000000000000000000000000000000000")return null;try{return await m(b,e)>=v?(console.log(`Sufficient allowance for ${b}, skipping approval`),null):(console.log(`Requesting infinite approval for ${b}`),await n({address:b,abi:Q,functionName:"approve",args:[O.PAYMENT_ROUTER,fe.maxUint256]}))}catch(E){throw console.error(`Error in approveToken for ${b}:`,E),E}};return{executePayment:async({merchantAddress:b,tokens:v,totalAmountUSD:E,settleInIDR:w,target:h,callData:g})=>{if(!e)throw new Error("Wallet not connected");const P=v.filter($=>$.percentage>0),I=[],Y=[];let B=BigInt(0);const de=E*.003,H=E+de;for(const $ of P){if(!$.priceUSD||$.priceUSD<=0)throw new Error(`Invalid price for ${$.symbol}. Price data may not be available yet. Please wait a moment and try again.`);const N=H*$.percentage/100/$.priceUSD;if(!isFinite(N)||N<=0)throw new Error(`Invalid amount calculated for ${$.symbol}`);const V=Math.min($.decimals+2,18),ne=N.toFixed(V);let F=fe.parseUnits(ne,$.decimals);F=F+BigInt(1),$.address==="0x0000000000000000000000000000000000000000"?(B=F,I.push($.address),Y.push(F)):(I.push($.address),Y.push(F))}for(let $=0;$<P.length;$++){const U=P[$];if(U.address!=="0x0000000000000000000000000000000000000000")try{await y(U.address,Y[$])&&console.log(`Approved infinite allowance for ${U.symbol}`)}catch(N){throw new Error(`Failed to approve ${U.symbol}: ${N}`)}}const _=BigInt(Math.floor(E*nn)),ee=h||"0x0000000000000000000000000000000000000000",W=g||"0x";return await n({address:O.PAYMENT_ROUTER,abi:Be,functionName:"pay",args:[b,I,Y,_,w,ee,W],value:B})},useTokenRegistry:u,useFeePercentage:d,usePaused:l,hash:r,isPending:s,isConfirming:a,isConfirmed:o,error:i}}function Ie(e){const{address:t}=A.useAccount(),{writeContract:n,data:r,isPending:s,error:i}=A.useWriteContract(),{isLoading:a,isSuccess:o}=A.useWaitForTransactionReceipt({hash:r});return{transfer:(w,h)=>{n({address:e,abi:Q,functionName:"transfer",args:[w,h]})},approve:(w,h)=>{n({address:e,abi:Q,functionName:"approve",args:[w,h]})},transferFrom:(w,h,g)=>{n({address:e,abi:Q,functionName:"transferFrom",args:[w,h,g]})},useName:()=>A.useReadContract({address:e,abi:Q,functionName:"name"}),useSymbol:()=>A.useReadContract({address:e,abi:Q,functionName:"symbol"}),useDecimals:()=>A.useReadContract({address:e,abi:Q,functionName:"decimals"}),useTotalSupply:()=>A.useReadContract({address:e,abi:Q,functionName:"totalSupply"}),useBalanceOf:w=>{const h=w||t;return A.useReadContract({address:e,abi:Q,functionName:"balanceOf",args:h?[h]:void 0,query:{enabled:!!h}})},useAllowance:(w,h)=>A.useReadContract({address:e,abi:Q,functionName:"allowance",args:w&&h?[w,h]:void 0,query:{enabled:!!(w&&h)}}),hash:r,isPending:s,isConfirming:a,isConfirmed:o,error:i}}function cr(){const{address:e}=A.useAccount(),{data:t,isLoading:n}=A.useBalance({address:e}),r=Ie(T.USDC),s=Ie(T.USDT),i=Ie(T.DAI),a=Ie(T.WBTC),{data:o,isLoading:u}=r.useBalanceOf(e),{data:d,isLoading:l}=s.useBalanceOf(e),{data:m,isLoading:y}=i.useBalanceOf(e),{data:p,isLoading:b}=a.useBalanceOf(e);return{balances:{ETH:t?parseFloat(fe.formatUnits(t.value,18)):0,USDC:o?parseFloat(fe.formatUnits(o,6)):0,USDT:d?parseFloat(fe.formatUnits(d,6)):0,DAI:m?parseFloat(fe.formatUnits(m,18)):0,WBTC:p?parseFloat(fe.formatUnits(p,8)):0},isLoading:!e||n||u||l||y||b}}function ur(){const e=_e(),{data:t,isLoading:n,error:r}=e.useGetTokenPrice(T.NATIVE),{data:s,isLoading:i,error:a}=e.useGetTokenPrice(T.USDC),{data:o,isLoading:u,error:d}=e.useGetTokenPrice(T.USDT),{data:l,isLoading:m,error:y}=e.useGetTokenPrice(T.DAI),{data:p,isLoading:b,error:v}=e.useGetTokenPrice(T.WBTC),E=1e8,w=g=>{if(!g)return 0;try{if(Array.isArray(g)&&g.length>=1){const P=g[0];if(typeof P=="bigint")return Number(P)/E;if(typeof P=="number")return P/E;if(typeof P=="string")return Number(P)/E}return typeof g=="bigint"?Number(g)/E:typeof g=="number"?g/E:0}catch(P){return console.error("Error converting price:",P),0}};r&&console.error("ETH price error:",r),a&&console.error("USDC price error:",a),d&&console.error("USDT price error:",d),y&&console.error("DAI price error:",y),v&&console.error("WBTC price error:",v);const h={ETH:w(t),USDC:w(s)||1,USDT:w(o)||1,DAI:w(l)||1,WBTC:w(p)};return console.log("Converted prices:",h),{prices:h,isLoading:n||i||u||m||b,errors:{ETH:r,USDC:a,USDT:d,DAI:y,WBTC:v}}}class ie extends Error{code;details;constructor(t,n,r){super(t),this.name="PaymentError",this.code=n,this.details=r}}function Qt(e){if(e instanceof Error){if(e.message.includes("User rejected")||e.message.includes("User denied"))return new ie("Transaction cancelled by user","USER_REJECTED",e);if(e.message.includes("Failed to approve"))return new ie(e.message,"APPROVAL_FAILED",e);if(e.message.includes("insufficient funds"))return new ie("Insufficient funds for gas","INSUFFICIENT_FUNDS",e);if(e.message.includes("Wallet not connected"))return new ie("Please connect your wallet","WALLET_NOT_CONNECTED",e);if(e.message.includes("network"))return new ie("Network error. Please check your connection","NETWORK_ERROR",e);if(e.message.includes("insufficient payment")||e.message.includes("PaymentRouter: insufficient"))return new ie("Payment amount is insufficient. This may be due to price fluctuation. Please try again.","INSUFFICIENT_PAYMENT",e);if(e.message.includes("execution reverted"))return new ie("Transaction failed. Please try again","CONTRACT_ERROR",e);if(e.message)return new ie(e.message,"ERROR",e)}return new ie("An unknown error occurred. Please try again","UNKNOWN",e)}const qa=1e8,eo=e=>e.reduce((t,n)=>t+n.price,0);function to({merchantAddress:e,items:t,config:n,onPaymentComplete:r,onPaymentError:s,className:i="",children:a}){const{isConnected:o}=A.useAccount(),{connect:u,connectors:d}=A.useConnect(),l=n?.currency??"USD",m=n?.target,y=n?.callData,p=eo(t),[b,v]=j.useState(!1),[E,w]=j.useState([]),h=_e(),{balances:g,isLoading:P}=cr(),{prices:I,isLoading:Y}=ur(),{data:B}=h.useGetTokenPrice(T.IDRX),{executePayment:de,isConfirmed:H,hash:_,error:ee,isPending:W,isConfirming:$}=or(),[U,N]=j.useState(!1),ne=(()=>{if(!B)return 1/15600;if(Array.isArray(B)&&B.length>=1){const D=B[0];if(typeof D=="bigint")return Number(D)/qa}return 1/15600})(),F=l==="IDR"?p*ne:p,ye=()=>{o?(N(!1),v(!0)):u({connector:d[0]})},re=async D=>{try{N(!1),await de({merchantAddress:e,tokens:D,totalAmountUSD:F,settleInIDR:l==="IDR",target:m,callData:y})}catch(z){N(!0);const De=Qt(z);s?.(De)}};return j.useEffect(()=>{if(!P&&!Y){const D=[{id:"eth",name:M.ETH.name,symbol:M.ETH.symbol,amount:g.ETH,chain:"Lisk Sepolia",percentage:0,address:T.NATIVE,decimals:M.ETH.decimals,priceUSD:I.ETH,tokenIcon:M.ETH.logo},{id:"usdc",name:M.USDC.name,symbol:M.USDC.symbol,amount:g.USDC,chain:"Lisk Sepolia",percentage:0,address:T.USDC,decimals:M.USDC.decimals,priceUSD:I.USDC,tokenIcon:M.USDC.logo},{id:"usdt",name:M.USDT.name,symbol:M.USDT.symbol,amount:g.USDT,chain:"Lisk Sepolia",percentage:0,address:T.USDT,decimals:M.USDT.decimals,priceUSD:I.USDT,tokenIcon:M.USDT.logo},{id:"dai",name:M.DAI.name,symbol:M.DAI.symbol,amount:g.DAI,chain:"Lisk Sepolia",percentage:0,address:T.DAI,decimals:M.DAI.decimals,priceUSD:I.DAI,tokenIcon:M.DAI.logo},{id:"wbtc",name:M.WBTC.name,symbol:M.WBTC.symbol,amount:g.WBTC,chain:"Lisk Sepolia",percentage:0,address:T.WBTC,decimals:M.WBTC.decimals,priceUSD:I.WBTC,tokenIcon:M.WBTC.logo}];w(D)}},[g.ETH,g.USDC,g.USDT,g.DAI,g.WBTC,I.ETH,I.USDC,I.USDT,I.DAI,I.WBTC,P,Y]),j.useEffect(()=>{if(H&&_){const D={success:!0,transactionId:_,tokens:E.filter(z=>z.percentage>0)};r?.(D)}},[H,_]),j.useEffect(()=>{if(ee){N(!0);const D=Qt(ee);s?.(D)}},[ee]),c.jsxs(c.Fragment,{children:[c.jsx("button",{onClick:ye,disabled:P||Y,className:`mc:bg-secondary hover:mc:bg-secondary/90 mc:text-white mc:font-semibold mc:py-3 mc:px-6 mc:rounded-lg mc:transition-all disabled:mc:opacity-50 disabled:mc:cursor-not-allowed ${i}`,children:a||(o?"Pay with MultiCoyn":"Connect Wallet to Pay")}),o&&c.jsx(Fr,{isOpen:b,onClose:()=>v(!1),totalAmount:F,currency:l,items:t,tokens:E,onPaymentSubmit:re,transactionHash:_,isProcessing:W||$,isSuccess:H,isError:U,conversionRate:ne})]})}const dr=fe.defineChain({id:4202,name:"Lisk Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.sepolia-api.lisk.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://sepolia-blockscout.lisk.com"}},testnet:!0}),lr=en.getDefaultConfig({appName:"MultiCoyn Payment SDK",projectId:"YOUR_PROJECT_ID",chains:[dr],ssr:!1}),no=new qt.QueryClient;function ro({children:e}){return c.jsx(A.WagmiProvider,{config:lr,children:c.jsx(qt.QueryClientProvider,{client:no,children:c.jsx(en.RainbowKitProvider,{children:e})})})}const fr=j.createContext(void 0);function so({children:e,initialConfig:t={}}){const[n,r]=j.useState(t),s=i=>{r(a=>({...a,...i}))};return c.jsx(fr.Provider,{value:{config:n,updateConfig:s},children:e})}function io(){const e=j.useContext(fr);if(!e)throw new Error("usePaymentConfig must be used within PaymentProvider");return e}exports.AbiErrorInputsNotFoundError=Yr;exports.AbiErrorNotFoundError=Zr;exports.AbiFunctionNotFoundError=je;exports.AbiFunctionOutputsNotFoundError=cn;exports.AbiFunctionSignatureNotFoundError=Xr;exports.BaseError=f;exports.CONTRACTS=O;exports.FEE_BASIS_POINTS=Cr;exports.FEE_PERCENTAGE=kr;exports.HttpRequestError=ga;exports.InvalidAddressError=Ne;exports.InvalidArrayError=un;exports.MAX_TOKENS_PER_PAYMENT=Ir;exports.MAX_UINT256=jr;exports.MulticoynButton=to;exports.PaymentProvider=so;exports.PaymentSummary=rn;exports.TOKENS=T;exports.TOKEN_METADATA=M;exports.USD_DECIMALS=tn;exports.USD_SCALE=nn;exports.Web3Provider=ro;exports.batchGatewayAbi=zr;exports.call=ir;exports.concat=we;exports.concatHex=Ge;exports.decodeAbiParameters=Nt;exports.decodeErrorResult=Zn;exports.encodeAbiParameters=Ct;exports.formatAbiItem=xe;exports.getAbiItem=We;exports.getUrl=Mt;exports.isAddress=me;exports.isHex=Se;exports.liskSepolia=dr;exports.slice=Re;exports.solidityError=Yn;exports.stringify=Ve;exports.toFunctionSelector=He;exports.useERC20=Ie;exports.useMultiTokenBalances=cr;exports.useMultiTokenPrices=ur;exports.usePaymentConfig=io;exports.usePaymentModal=Lr;exports.usePaymentRouter=or;exports.useTokenRegistry=_e;exports.wagmiConfig=lr;