Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@delvtech/drift

Package Overview
Dependencies
Maintainers
1
Versions
73
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@delvtech/drift - npm Package Compare versions

Comparing version
0.9.1
to
0.10.0
+12
dist/chunk-UHHYMNQR.js
var xe=Object.defineProperty;var i=(a,e)=>xe(a,"name",{value:e,configurable:!0});function H(a,{abi:e,bytecode:t,args:n={},...r}){let s=a.encodeDeployData({abi:e,bytecode:t,args:n});return a.sendTransaction({data:s,...r})}i(H,"deploy");var A=class a extends Error{static prefix="\u2716 ";static name="Drift Error";constructor(e,t){let n;try{n=e?.message??String(e)}catch{throw e}super(n),this.name=t?.name??a.name;let r=e instanceof Error,s=t?.cause??e?.cause,o=e;r||(o=new Error,Error.captureStackTrace?.(o,new.target));let d=o.stack,T;e?.name&&e.name!=="Error"?T=e.name:r&&e.constructor.name!=="Error"&&(T=e.constructor.name),Object.defineProperty(this,"stack",{get(){let c=`${t?.prefix??a.prefix}${this.name}`;if(T&&(c+=` [${T}]`),this.message&&(c+=`: ${this.message}`.replaceAll(`
`,`
`)),d){let u=d.split(`
`).slice(1);this.message&&(u=u.filter(b=>!this.message.includes(b.trim()))),u.length&&(c+=`
${u.join(`
`)}`)}return s&&(c+=`
Caused by: ${s.stack||s}`.replaceAll(`
`,`
`)),c.trim()}})}};var Pe={type:"constructor",inputs:[],stateMutability:"nonpayable"};function F({abi:a,type:e,name:t,kind:n,value:r}){let s=a.filter(u=>u.type!==e||u.name!==t?!1:n in u);if(!s.length){if(e==="constructor")return{abiEntry:Pe,params:[]};throw new A(`No matching ABI entry for ${e} ${t} with ${n}`)}if(s.length===1){let u=s[0],b=u[n];return b.length?Q(r,b)?{abiEntry:u,params:[r]}:{abiEntry:u,params:b.map(({name:P},l)=>r?.[P||l])}:{abiEntry:u,params:[]}}let o=r&&typeof r=="object"?Object.keys(r).length:0,d=s[0],T=[],c=0;for(let u of s){let b=u[n];if(!b.length){if(!o)return{abiEntry:u,params:[]};continue}if(Q(r,b))return{abiEntry:u,params:[r]};let P=r||{},l=[],f=0;for(let[g,{name:h}]of b.entries()){let R=h||g;l.push(P[R]),R in P&&f++}f>c&&(d=u,T=l,c=f)}return{abiEntry:d,params:T}}i(F,"prepareParams");function Q(a,e){if(e.length!==1)return!1;if(!a)return!0;let{type:t,name:n}=e[0],r=t.match(/(\[\d*\])+$/)?.[0];if(!r)return typeof a!="object";if(!Array.isArray(a))return!1;if(n)return!0;let s=a;for(let o of r.match(/\[\d*]/g))s=a?.[0];return!Array.isArray(s)}i(Q,"isUnpacked");import{AbiFunction as ke}from"ox";function y(a){if(typeof a!="object")throw new A(a);let e={message:""},t;try{t=JSON.parse(a.details)}catch{}throw a.shortMessage&&(e.message+=a.shortMessage),t?.message&&(e.message+=`
${t.message}`),e.message+=`
${a.message.replace(a.shortMessage,"").trimStart()}`,e.message=e.message.trimStart(),new A(e)}i(y,"handleError");function Y(a){return x(a).data}i(Y,"encodeFunctionData");function x({abi:a,args:e,fn:t}){try{let{abiEntry:n,params:r}=F({abi:a,type:"function",name:t,kind:"inputs",value:e});return{abiFn:n,data:ke.encodeData(n,r)}}catch(n){y(n)}}i(x,"prepareFunctionData");var ee={name:"IMulticall3",abi:[{type:"function",name:"aggregate",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"returnData",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"aggregate3",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call3[]",components:[{name:"target",type:"address",internalType:"address"},{name:"allowFailure",type:"bool",internalType:"bool"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"aggregate3Value",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call3Value[]",components:[{name:"target",type:"address",internalType:"address"},{name:"allowFailure",type:"bool",internalType:"bool"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"blockAndAggregate",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"blockHash",type:"bytes32",internalType:"bytes32"},{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"getBasefee",inputs:[],outputs:[{name:"basefee",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getBlockHash",inputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"}],outputs:[{name:"blockHash",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getBlockNumber",inputs:[],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getChainId",inputs:[],outputs:[{name:"chainid",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockCoinbase",inputs:[],outputs:[{name:"coinbase",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockDifficulty",inputs:[],outputs:[{name:"difficulty",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockGasLimit",inputs:[],outputs:[{name:"gaslimit",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockTimestamp",inputs:[],outputs:[{name:"timestamp",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEthBalance",inputs:[{name:"addr",type:"address",internalType:"address"}],outputs:[{name:"balance",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getLastBlockHash",inputs:[],outputs:[{name:"blockHash",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"tryAggregate",inputs:[{name:"requireSuccess",type:"bool",internalType:"bool"},{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"tryBlockAndAggregate",inputs:[{name:"requireSuccess",type:"bool",internalType:"bool"},{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"blockHash",type:"bytes32",internalType:"bytes32"},{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"}],methodIdentifiers:{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"}};var q="0xcA11bde05977b3631167028862bE2a173976CA11";async function te(a,{calls:e,multicallAddress:t=q,allowFailure:n=!0,...r}){let s=[];return(await a.simulateWrite({abi:ee.abi,address:t,fn:"aggregate3",args:{calls:e.map(d=>{let{abiFn:T,data:c}=x({abi:d.abi,fn:d.fn,args:d.args});return s.push(T),{target:d.address,callData:c,allowFailure:n}})},...r})).map(({returnData:d,success:T},c)=>{let{fn:u}=e[c],b=s[c];return n===!1?a.decodeFunctionReturn({abi:[b],data:d,fn:u}):T?{success:T,value:a.decodeFunctionReturn({abi:[b],data:d,fn:u})}:{success:T,error:new A(Buffer.from(d.slice(10),"hex").toString())}})}i(te,"multicall");async function ne(a,{abi:e,address:t,fn:n,args:r={},block:s}){let{data:o,abiFn:d}=x({abi:e,fn:n,args:r}),T=await a.call({to:t,data:o,block:s});return a.decodeFunctionReturn({abi:[d],data:T,fn:n})}i(ne,"read");async function ae(a,{abi:e,fn:t,args:n={},from:r,address:s,...o}){let{abiFn:d,data:T}=x({abi:e,fn:t,args:n}),c=await a.call({data:T,from:r??await a.getSignerAddress?.().catch(()=>{}),to:s,...o});return a.decodeFunctionReturn({abi:[d],data:c,fn:t})}i(ae,"simulateWrite");function D(a,{abi:e,fn:t,args:n={},address:r,...s}){let o=a.encodeFunctionData({abi:e,fn:t,args:n});return a.sendTransaction({data:o,to:r,...s})}i(D,"write");import{AbiItem as ve}from"ox";function M({abi:a,name:e,kind:t,values:n}){let r=ve.fromAbi(a,e,{args:n});return!r||!(t in r)?{}:Object.fromEntries(r[t].map(({name:s},o)=>[s||o,n?.[o]]))}i(M,"arrayToObject");import{AbiFunction as Ce,AbiParameters as Ee,Hex as re}from"ox";function ie({abi:a,data:e}){try{let t=re.slice(e,0,4),n=re.slice(e,4),r=Ce.fromAbi(a,t),s=Ee.decode(r.inputs,n,{as:"Array",checksumAddress:!0}),o=r.name,d=M({abi:a,name:o,kind:"inputs",values:s});return{functionName:o,args:d}}catch(t){y(t)}}i(ie,"decodeFunctionData");function se({abi:a,name:e,kind:t,values:n}){let r=M({abi:a,name:e,kind:t,values:n}),s=Object.values(r);return s.length===1?s[0]:r}i(se,"arrayToSimplified");import{AbiFunction as oe}from"ox";function ce({abi:a,data:e,fn:t}){try{let n=oe.fromAbi(a,t),r=oe.decodeResult(n,e,{as:"Array"});return n.outputs.length===1?r:se({abi:a,name:n.name,kind:"outputs",values:r})}catch(n){y(n)}}i(ce,"decodeFunctionReturn");import{AbiConstructor as Re}from"ox";function pe(a){return we(a).data}i(pe,"encodeDeployData");function we({abi:a,args:e,bytecode:t}){try{let{abiEntry:n,params:r}=F({abi:a,type:"constructor",name:void 0,kind:"inputs",value:e});return{abiFn:n,data:Re.encode(n,{args:r,bytecode:t})}}catch(n){y(n)}}i(we,"prepareDeployData");import{AbiFunction as Be}from"ox";function me(a){return Se(a).data}i(me,"encodeFunctionReturn");function Se({abi:a,fn:e,value:t}){try{let{abiEntry:n,params:r}=F({abi:a,type:"function",name:e,kind:"outputs",value:t});return{abiFn:n,data:Be.encodeResult(n,r,{as:"Array"})}}catch(n){y(n)}}i(Se,"prepareFunctionReturn");var K=class{static{i(this,"AbiEncoder")}encodeDeployData(e){return pe(e)}encodeFunctionData(e){return Y(e)}encodeFunctionReturn(e){return me(e)}decodeFunctionData(e){return ie(e)}decodeFunctionReturn(e){return ce(e)}};var B=class a extends K{static{i(this,"BaseReadAdapter")}pollingInterval;pollingTimeout;multicallAddress;static DEFAULT_POLLING_INTERVAL=4e3;static DEFAULT_TIMEOUT=6e4;constructor({pollingInterval:e=a.DEFAULT_POLLING_INTERVAL,pollingTimeout:t=a.DEFAULT_TIMEOUT,multicallAddress:n=q}={}){super(),this.pollingInterval=e,this.pollingTimeout=t,this.multicallAddress=n}multicall({multicallAddress:e=this.multicallAddress,...t}){return te(this,{multicallAddress:e,...t})}read(e){return ne(this,e)}simulateWrite(e){return ae(this,e)}},de=class extends B{static{i(this,"BaseReadWriteAdapter")}deploy(e){return H(this,e)}async write(e){return D(this,e)}};import{AbiConstructor as ue}from"ox";var J={name:"CodeCaller",abi:[{type:"constructor",inputs:[{name:"bytecode",type:"bytes",internalType:"bytes"},{name:"callParams",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"},{type:"error",name:"BytecodeDeploymentFailed",inputs:[]}],bytecode:"0x608060405234801561000f575f80fd5b5060405161021c38038061021c83398101604081905261002e916101a1565b5f8251602084015ff090506001600160a01b038116158061005757506001600160a01b0381163b155b156100755760405163537574ad60e11b815260040160405180910390fd5b5f80826001600160a01b03168460405161008f9190610200565b5f604051808303815f865af19150503d805f81146100c8576040519150601f19603f3d011682016040523d82523d5f602084013e6100cd565b606091505b5091509150816100df57805160208201fd5b805160208201f35b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101155781810151838201526020016100fd565b50505f910152565b5f82601f83011261012c575f80fd5b81516001600160401b0380821115610146576101466100e7565b604051601f8301601f19908116603f0116810190828211818310171561016e5761016e6100e7565b81604052838152866020858801011115610186575f80fd5b6101978460208301602089016100fb565b9695505050505050565b5f80604083850312156101b2575f80fd5b82516001600160401b03808211156101c8575f80fd5b6101d48683870161011d565b935060208501519150808211156101e9575f80fd5b506101f68582860161011d565b9150509250929050565b5f82516102118184602087016100fb565b919091019291505056fe",methodIdentifiers:{}};function le(a,e){let t=ue.fromAbi(J.abi);return ue.encode(t,{bytecode:J.bytecode,args:[a,e]})}i(le,"encodeBytecodeCallData");function I(a,e,t){return e(a)?t(a):Array.isArray(a)?a.map(n=>I(n,e,t)):a&&typeof a=="object"?Object.fromEntries(Object.entries(a).map(([n,r])=>[n,I(r,e,t)])):a}i(I,"convert");var Oe=/^0x[0-9a-fA-F]*$/;function Te(a){return typeof a=="string"&&Oe.test(a)}i(Te,"isHexString");import{AbiEvent as ye,Address as He,Block as De,Provider as Me,RpcTransport as Ke,Transaction as Ie,TransactionReceipt as Ge}from"ox";var X=class extends B{static{i(this,"DefaultReadAdapter")}provider;constructor({rpcUrl:e,...t}={}){super(t);try{let n=e?Ke.fromHttp(e):globalThis.ethereum;if(!n)throw new A("No provider found");this.provider=Me.from(n)}catch(n){y(n)}}getChainId(){return this.provider.request({method:"eth_chainId"}).then(Number).catch(y)}getBlockNumber(){return this.provider.request({method:"eth_blockNumber"}).then(BigInt).catch(y)}getBlock(e){return this.provider.request(Te(e)?{method:"eth_getBlockByHash",params:[e,!1]}:{method:"eth_getBlockByNumber",params:[S(e),!1]}).then(De.fromRpc).then(t=>t?{...t,nonce:BigInt(t.nonce),transactions:t.transactions.slice()}:void 0).catch(y)}getBalance(e){return this.provider.request({method:"eth_getBalance",params:[e.address,S(e.block)]}).then(BigInt).catch(y)}getTransaction({hash:e}){return this.provider.request({method:"eth_getTransactionByHash",params:[e]}).then(t=>{if(!t)return;let{to:n,transactionIndex:r,...s}=Ie.fromRpc(t);return{...s,to:n||void 0,transactionIndex:BigInt(r),transactionHash:s.hash}}).catch(y)}waitForTransaction({hash:e,timeout:t=this.pollingTimeout}){return new Promise((n,r)=>{let s=i(()=>this.provider.request({method:"eth_getTransactionReceipt",params:[e]}).then(o=>{if(o){let{to:d,transactionIndex:T,contractAddress:c,...u}=Ge.fromRpc(o);n({...u,to:d||void 0,transactionIndex:BigInt(T),contractAddress:c||void 0})}else setTimeout(s,this.pollingInterval)}).catch(r),"getReceipt");s(),setTimeout(()=>n(void 0),t)}).catch(y)}sendRawTransaction(e){return this.provider.request({method:"eth_sendRawTransaction",params:[e]})}getEvents({abi:e,address:t,event:n,filter:r,fromBlock:s,toBlock:o}){let{abiEntry:d}=F({abi:e,type:"event",name:n,kind:"inputs",value:r});return this.provider.request({method:"eth_getLogs",params:[{address:t,fromBlock:S(s),toBlock:S(o),topics:ye.encode(d,r||{}).topics}]}).then(T=>T.map(c=>({args:ye.decode(d,c),blockNumber:BigInt(c.blockNumber),data:c.data,eventName:n,transactionHash:c.transactionHash}))).catch(y)}call({to:e,data:t,bytecode:n,block:r,...s}){return n&&t&&(t=le(n,t)),this.provider.request({method:"eth_call",params:[{to:e,data:t,...be(s)},S(r)]}).catch(y)}},G=class extends X{static{i(this,"DefaultAdapter")}getSignerAddress(){return this.provider.request({method:"eth_accounts"}).then(([e])=>{if(!e)throw new A("No signer address found");return He.checksum(e)}).catch(y)}async sendTransaction({data:e,to:t,from:n,onMined:r,...s}){return n??=await this.getSignerAddress().catch(y),this.provider.request({method:"eth_sendTransaction",params:[{data:e,to:t,from:n,...be(s)}]}).then(o=>(r&&this.waitForTransaction({hash:o}).then(r),o)).catch(y)}deploy(e){return H(this,e)}write(e){return D(this,e)}};function S(a){return a===void 0?"latest":typeof a=="bigint"?`0x${a.toString(16)}`:a}i(S,"prepareBlockParam");function be(a){return I(a,e=>typeof e=="bigint",e=>`0x${e.toString(16)}`)}i(be,"prepareTransactionOptions");import{LRUCache as We}from"lru-cache";var v=class extends We{static{i(this,"LruStore")}constructor(e={max:500}){super(e)}};async function N({store:a,key:e,fn:t}){if(e=await e,await a.has(e))return a.get(e);let n=await t();if(n===void 0)return n;let r=a.set(e,n);return r instanceof Promise?r.then(()=>n):n}i(N,"getOrSet");import je from"lodash.ismatch";async function C({store:a,matchKey:e}){e=await e;let t=JSON.parse(e),n=[];for await(let[r]of a.entries()){if(r===e){n.push(a.delete(r));continue}let s=JSON.parse(r);je(s,t)&&n.push(a.delete(r))}await Promise.all(n)}i(C,"deleteMatches");import Le from"safe-stable-stringify";function Ae(a,e){return Le(a,(t,n)=>typeof n=="bigint"?n.toString():n,e)}i(Ae,"stringifyKey");var E=class{static{i(this,"ClientCache")}namespace;store;constructor({namespace:e,store:t=new v}){this.namespace=e,this.store=t}async clear(){return this.store.clear()}async blockKey(e){return this.#a("block",{block:e})}async preloadBlock({value:e,block:t}){let n=await this.blockKey(t);return this.store.set(n,e)}async getBlock(e){let t=await this.blockKey(e);return this.store.get(t)}async invalidateBlock(e){let t=await this.blockKey(e);return this.store.delete(t)}async clearBlocks(){return C({store:this.store,matchKey:this.blockKey()})}#e({address:e,block:t}={}){return this.#a("balance",{address:e,block:t})}async balanceKey(e){return this.#e(e)}async preloadBalance({value:e,...t}){let n=await this.balanceKey(t);return this.store.set(n,e)}async getBalance(e){let t=await this.balanceKey(e);return this.store.get(t)}async invalidateBalance(e){let t=await this.balanceKey(e);return this.store.delete(t)}async clearBalances(){return C({store:this.store,matchKey:this.#e()})}#t({hash:e}={}){return this.#a("transaction",{hash:e})}async transactionKey({hash:e}){return this.#t({hash:e})}async preloadTransaction({value:e,...t}){let n=await this.transactionKey(t);return this.store.set(n,e)}async getTransaction(e){let t=await this.transactionKey(e);return this.store.get(t)}async invalidateTransaction(e){let t=await this.transactionKey(e);return this.store.delete(t)}async clearTransactions(){return C({store:this.store,matchKey:this.#t()})}async transactionReceiptKey({hash:e}){return this.#a("transactionReceipt",{hash:e})}async preloadTransactionReceipt({value:e,...t}){let n=await this.transactionReceiptKey(t);return this.store.set(n,e)}async getTransactionReceipt(e){let t=await this.transactionReceiptKey(e);return this.store.get(t)}#n({to:e,data:t,value:n,from:r,block:s,accessList:o,blobVersionedHashes:d,chainId:T,blobs:c,bytecode:u,nonce:b}={}){return this.#a("call",{to:e,data:t,value:n,from:r,block:s,accessList:o,blobVersionedHashes:d,chainId:T,blobs:c,bytecode:u,nonce:b})}async callKey(e){return this.#n(e)}async preloadCall({preloadValue:e,...t}){let n=await this.callKey(t);return this.store.set(n,e)}async getCall(e){let t=await this.callKey(e);return this.store.get(t)}async invalidateCall(e){let t=await this.callKey(e);return this.store.delete(t)}async invalidateCallsMatching(e){return C({store:this.store,matchKey:this.#n(e)})}async clearCalls(){return this.invalidateCallsMatching()}async eventsKey({address:e,event:t,filter:n,fromBlock:r="earliest",toBlock:s="latest"}){return this.#a("events",{address:e,event:t,filter:n,fromBlock:r,toBlock:s})}async preloadEvents({value:e,...t}){let n=await this.eventsKey(t);return this.store.set(n,e)}async getEvents(e){let t=await this.eventsKey(e);return this.store.get(t)}#r({address:e,args:t,block:n,fn:r}={}){return this.#a("read",{address:e,args:t,block:n,fn:r})}async readKey(e){return this.#r(e)}async preloadRead({value:e,...t}){let n=await this.readKey(t);return this.store.set(n,e)}async getRead(e){let t=await this.readKey(e);return this.store.get(t)}async invalidateRead(e){let t=await this.readKey(e);return this.store.delete(t)}async invalidateReadsMatching(e){return C({store:this.store,matchKey:this.#r(e)})}async clearReads(){return this.invalidateReadsMatching()}async#i(){return typeof this.namespace=="function"&&(this.namespace=await this.namespace()),this.namespace}async#a(...e){let t=await this.#i();return Ae([t,...e])}};var W=class extends A{static{i(this,"BlockNotFoundError")}constructor(e,t){super(`Block not found: ${e}`,t)}};var j=class{static{i(this,"HookRegistry")}#e={};on(e,t){this.#e[e]||=[],this.#e[e].push(t)}off(e,t){let n=!1,r=this.#e[e];return r&&(this.#e[e]=r.filter(s=>s===t?(n=!0,!1):!0)),n}once(e,t){let n=i(r=>{this.off(e,n),t(r)},"wrapped");this.on(e,n)}call(e,t){let n,r=this.#e[e];if(r)for(let s of r)n instanceof Promise?n=n.then(()=>s(t)):n=s(t);return n}};var L=class{static{i(this,"MethodInterceptor")}#e=new j;get hooks(){return this.#e}createProxy=i(e=>new Proxy(e,{get:i((t,n,r)=>{let s=Reflect.get(t,n,r);if(n==="constructor"||typeof s!="function")return s;let o=i((...d)=>this.#t({method:n,fn:s.bind(r),args:d}),"wrapped");return Object.defineProperty(o,"name",{get:i(()=>s.name,"get")}),o},"get")}),"createProxy");#t({method:e,fn:t,args:n}){let r=String(e),s=!1,o,d=this.#e.call(`before:${r}`,{get args(){return n},setArgs(...c){n=c},resolve(c){s||(s=!0,o=c)}}),T=i(()=>{s||(o=t(...n));let c=this.#e.call(`after:${r}`,{get args(){return n},get result(){return o},setResult(u){o=u}});return c instanceof Promise?c.then(()=>o):o},"wrappedAfterHooks");return d instanceof Promise?d.then(T):T()}};function Z(a={}){let{adapter:e,store:t,chainId:n,...r}=a,s=new L,o=e||new G(r),T=t&&"clear"in t?t:new v(t),c={...o,adapter:o,hooks:s.hooks,cache:new E({store:T,namespace:i(()=>c.getChainId(),"namespace")}),isReadWrite(){return typeof this.adapter.write=="function"},extend(l){return Object.assign(this,l)},async getChainId(){return n??=await o.getChainId(),n},async getBlock(l,f){let g=await N({store:this.cache.store,key:this.cache.blockKey(l),fn:i(()=>this.adapter.getBlock(l),"fn")});if(!g&&f?.throws)throw new W(l);return g},getBalance(l){return N({store:this.cache.store,key:this.cache.balanceKey(l),fn:i(()=>this.adapter.getBalance(l),"fn")})},getTransaction(l){return N({store:this.cache.store,key:this.cache.transactionKey(l),fn:i(()=>this.adapter.getTransaction(l),"fn")})},waitForTransaction(l){return N({store:this.cache.store,key:this.cache.transactionReceiptKey(l),fn:i(()=>this.adapter.waitForTransaction(l),"fn")})},call(l){return N({store:this.cache.store,key:this.cache.callKey(l),fn:i(()=>this.adapter.call(l),"fn")})},async multicall({calls:l,...f}){let g=new Map,h=[],R=await Promise.all(l.map(async(w,$)=>{let k=await this.cache.getRead({...w,block:f?.block});if(k!==void 0)return f.allowFailure===!1?k:{success:!0,value:k};g.set($,h.length),h.push(w)}));if(!h.length)return R;let fe=await this.adapter.multicall({calls:h,...f});return Promise.all(R.map(async(w,$)=>{if(w!==void 0)return w;let k=g.get($),{abi:he,address:ge,fn:Fe,args:Ne}=h[k],V=fe[k],O;return f.allowFailure===!1?O=V:O=V.value,O!==void 0&&await this.cache.preloadRead({abi:he,address:ge,fn:Fe,args:Ne,block:f?.block,value:O}),V}))},getEvents({fromBlock:l="earliest",toBlock:f="latest",...g}){let h={fromBlock:l,toBlock:f,...g};return N({store:this.cache.store,key:this.cache.eventsKey(h),fn:i(async()=>this.adapter.getEvents(h),"fn")})},read(l){return N({store:this.cache.store,key:this.cache.readKey(l),fn:i(()=>this.adapter.read(l),"fn")})}},u=Object.getPrototypeOf(o);function b(){}i(b,"Client"),Object.defineProperties(b,{name:{value:`Client<${o.constructor.name}>`,enumerable:!1,writable:!1,configurable:!0}}),b.prototype=Object.create(u,{constructor:{value:b,enumerable:!1,writable:!0,configurable:!0},[Symbol.toStringTag]:{value:b.name,enumerable:!1,writable:!0,configurable:!0}});let P=Object.create(b.prototype,Object.getOwnPropertyDescriptors(c));return s.createProxy(P)}i(Z,"createClient");var U=class{static{i(this,"ContractCache")}#e;#t;#n;constructor({abi:e,address:t,...n}){let r=n.clientCache?n.clientCache:new E(n);this.#e=e,this.#t=t,this.#n=r}get store(){return this.#n.store}clear(){return this.#n.clear()}eventsKey(e,t){return this.#n.eventsKey({abi:this.#e,address:this.#t,event:e,...t})}preloadEvents(e){return this.#n.preloadEvents({abi:this.#e,address:this.#t,...e})}getEvents(e,t){return this.#n.getEvents({abi:this.#e,address:this.#t,event:e,...t})}readKey(...[e,t,n]){return this.#n.readKey({abi:this.#e,address:this.#t,fn:e,args:t,...n})}preloadRead(e){return this.#n.preloadRead({abi:this.#e,address:this.#t,...e})}getRead(...[e,t,n]){return this.#n.getRead({abi:this.#e,address:this.#t,fn:e,args:t,...n})}invalidateRead(...[e,t,n]){return this.#n.invalidateRead({abi:this.#e,address:this.#t,fn:e,args:t,...n})}invalidateReadsMatching(e,t,n){return this.#n.invalidateReadsMatching({abi:this.#e,address:this.#t,fn:e,args:t,...n})}async clearReads(){return this.#n.invalidateReadsMatching({abi:this.#e,address:this.#t})}};var _=class{static{i(this,"ReadContract")}abi;address;client;cache;epochBlock;constructor({abi:e,address:t,epochBlock:n,client:r,...s}){this.abi=e,this.address=t,this.client=r??Z(s),this.cache=new U({abi:e,address:t,clientCache:this.client.cache}),this.epochBlock=n}isReadWrite(){return this.client.isReadWrite()}extend(e){return Object.assign(this,e)}encodeDeployData(...[e,t]){return this.client.encodeDeployData({abi:this.abi,bytecode:e,args:t})}encodeFunctionData(...[e,t]){return this.client.encodeFunctionData({abi:this.abi,fn:e,args:t})}encodeFunctionReturn(e,t){return this.client.encodeFunctionReturn({abi:this.abi,fn:e,value:t})}decodeFunctionData(e){return this.client.decodeFunctionData({abi:this.abi,data:e})}decodeFunctionReturn(e,t){return this.client.decodeFunctionReturn({abi:this.abi,fn:e,data:t})}getEvents(e,{fromBlock:t,...n}={}){return this.epochBlock&&(!t||t==="earliest"||typeof t=="bigint"&&t<this.epochBlock)&&(t=this.epochBlock),this.client.getEvents({abi:this.abi,address:this.address,event:e,fromBlock:t,...n})}async multicall({calls:e,...t}){return this.client.multicall({calls:e.map(n=>({abi:this.abi,address:this.address,...n})),...t})}read(...[e,t,n]){let{block:r,...s}=n||{};return this.epochBlock&&(r==="earliest"||typeof r=="bigint"&&r<this.epochBlock)&&(r=this.epochBlock),this.client.read({abi:this.abi,address:this.address,fn:e,args:t,block:r,...s})}simulateWrite(...[e,t,n]){return this.client.simulateWrite({abi:this.abi,address:this.address,fn:e,args:t,...n})}},z=class extends _{static{i(this,"ReadWriteContract")}getSignerAddress(){return this.client.getSignerAddress()}write(...[e,t,n]){return this.client.write({abi:this.abi,address:this.address,fn:e,args:t,...n})}};function Ua({abi:a,address:e,epochBlock:t,client:n,...r}){return n=n||Z(r),n.isReadWrite()?new z({abi:a,address:e,client:n,epochBlock:t}):new _({abi:a,address:e,client:n,epochBlock:t})}i(Ua,"createContract");var qa="0x0000000000000000000000000000000000000000";export{i as a,H as b,A as c,F as d,Y as e,x as f,ee as g,te as h,ne as i,ae as j,D as k,M as l,ie as m,se as n,ce as o,pe as p,we as q,me as r,Se as s,K as t,B as u,de as v,le as w,I as x,Oe as y,Te as z,X as A,G as B,v as C,N as D,C as E,Ae as F,E as G,W as H,L as I,Z as J,U as K,_ as L,z as M,Ua as N,qa as O};
//# sourceMappingURL=chunk-UHHYMNQR.js.map

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

+7
-7

@@ -1,12 +0,12 @@

"use strict";var _e=Object.create;var U=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var We=Object.getOwnPropertyNames;var je=Object.getPrototypeOf,Le=Object.prototype.hasOwnProperty;var i=(a,e)=>U(a,"name",{value:e,configurable:!0});var Ue=(a,e)=>{for(var t in e)U(a,t,{get:e[t],enumerable:!0})},Ae=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of We(e))!Le.call(a,r)&&r!==t&&U(a,r,{get:()=>e[r],enumerable:!(n=Ge(e,r))||n.enumerable});return a};var fe=(a,e,t)=>(t=a!=null?_e(je(a)):{},Ae(e||!a||!a.__esModule?U(t,"default",{value:a,enumerable:!0}):t,a)),$e=a=>Ae(U({},"__esModule",{value:!0}),a);var Xe={};Ue(Xe,{AbiEncoder:()=>M,BaseReadAdapter:()=>R,BaseReadWriteAdapter:()=>re,BlockNotFoundError:()=>K,ClientCache:()=>k,ContractCache:()=>G,DefaultAdapter:()=>I,DefaultReadAdapter:()=>V,DriftError:()=>b,HEX_REGEX:()=>be,LruStore:()=>P,MethodInterceptor:()=>_,ReadContract:()=>W,ReadWriteContract:()=>q,ZERO_ADDRESS:()=>Be,arrayToObject:()=>D,arrayToSimplified:()=>te,convert:()=>H,createClient:()=>E,createContract:()=>ce,createDrift:()=>Ee,decodeFunctionData:()=>ee,decodeFunctionReturn:()=>ne,deleteMatches:()=>v,deploy:()=>S,encodeBytecodeCallData:()=>ie,encodeFunctionData:()=>J,encodeFunctionReturn:()=>ae,erc1155:()=>Se,erc20:()=>we,erc721:()=>Oe,getOrSet:()=>F,isHexString:()=>se,multicall:()=>z,multicall3:()=>Z,prepareFunctionData:()=>N,prepareParams:()=>g,read:()=>Q,simulateWrite:()=>Y,stringifyKey:()=>oe,write:()=>B});module.exports=$e(Xe);function S(a,{abi:e,bytecode:t,args:n={},...r}){let s=a.encodeDeployData({abi:e,bytecode:t,args:n});return a.sendTransaction({data:s,...r})}i(S,"deploy");var ge=require("ox");var b=class a extends Error{static prefix="\u2716 ";static name="Drift Error";constructor(e,t){let n;try{n=e?.message??String(e)}catch{throw e}super(n),this.name=t?.name??a.name;let r=e instanceof Error,s=t?.cause??e?.cause,o=e;r||(o=new Error,Error.captureStackTrace?.(o,new.target));let d=o.stack,l;e?.name&&e.name!=="Error"?l=e.name:r&&e.constructor.name!=="Error"&&(l=e.constructor.name),Object.defineProperty(this,"stack",{get(){let c=`${t?.prefix??a.prefix}${this.name}`;if(l&&(c+=` [${l}]`),this.message&&(c+=`: ${this.message}`.replaceAll(`
"use strict";var je=Object.create;var U=Object.defineProperty;var Le=Object.getOwnPropertyDescriptor;var Ue=Object.getOwnPropertyNames;var $e=Object.getPrototypeOf,Ve=Object.prototype.hasOwnProperty;var i=(a,e)=>U(a,"name",{value:e,configurable:!0});var qe=(a,e)=>{for(var t in e)U(a,t,{get:e[t],enumerable:!0})},xe=(a,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ue(e))!Ve.call(a,r)&&r!==t&&U(a,r,{get:()=>e[r],enumerable:!(n=Le(e,r))||n.enumerable});return a};var Fe=(a,e,t)=>(t=a!=null?je($e(a)):{},xe(e||!a||!a.__esModule?U(t,"default",{value:a,enumerable:!0}):t,a)),Xe=a=>xe(U({},"__esModule",{value:!0}),a);var Ze={};qe(Ze,{AbiEncoder:()=>D,BaseReadAdapter:()=>R,BaseReadWriteAdapter:()=>ie,BlockNotFoundError:()=>K,ClientCache:()=>k,ContractCache:()=>W,DefaultAdapter:()=>I,DefaultReadAdapter:()=>V,DriftError:()=>b,HEX_REGEX:()=>he,LruStore:()=>N,MethodInterceptor:()=>_,ReadContract:()=>G,ReadWriteContract:()=>q,ZERO_ADDRESS:()=>He,arrayToObject:()=>B,arrayToSimplified:()=>te,convert:()=>H,createClient:()=>w,createContract:()=>ce,createDrift:()=>Oe,decodeFunctionData:()=>ee,decodeFunctionReturn:()=>ne,deleteMatches:()=>P,deploy:()=>S,encodeBytecodeCallData:()=>se,encodeDeployData:()=>ae,encodeFunctionData:()=>J,encodeFunctionReturn:()=>re,erc1155:()=>Be,erc20:()=>Se,erc4626:()=>De,erc721:()=>Me,getOrSet:()=>F,isHexString:()=>oe,multicall:()=>z,multicall3:()=>Z,prepareDeployData:()=>Te,prepareFunctionData:()=>v,prepareFunctionReturn:()=>be,prepareParams:()=>x,read:()=>Q,simulateWrite:()=>Y,stringifyKey:()=>pe,write:()=>M});module.exports=Xe(Ze);function S(a,{abi:e,bytecode:t,args:n={},...r}){let s=a.encodeDeployData({abi:e,bytecode:t,args:n});return a.sendTransaction({data:s,...r})}i(S,"deploy");var ve=require("ox");var b=class a extends Error{static prefix="\u2716 ";static name="Drift Error";constructor(e,t){let n;try{n=e?.message??String(e)}catch{throw e}super(n),this.name=t?.name??a.name;let r=e instanceof Error,s=t?.cause??e?.cause,o=e;r||(o=new Error,Error.captureStackTrace?.(o,new.target));let c=o.stack,l;e?.name&&e.name!=="Error"?l=e.name:r&&e.constructor.name!=="Error"&&(l=e.constructor.name),Object.defineProperty(this,"stack",{get(){let d=`${t?.prefix??a.prefix}${this.name}`;if(l&&(d+=` [${l}]`),this.message&&(d+=`: ${this.message}`.replaceAll(`
`,`
`)),d){let m=d.split(`
`).slice(1);this.message&&(m=m.filter(T=>!this.message.includes(T.trim()))),m.length&&(c+=`
${m.join(`
`)}`)}return s&&(c+=`
`)),c){let u=c.split(`
`).slice(1);this.message&&(u=u.filter(T=>!this.message.includes(T.trim()))),u.length&&(d+=`
${u.join(`
`)}`)}return s&&(d+=`
Caused by: ${s.stack||s}`.replaceAll(`
`,`
`)),c.trim()}})}};function y(a){if(typeof a!="object")throw new b(a);let e={message:""},t;try{t=JSON.parse(a.details)}catch{}throw a.shortMessage&&(e.message+=a.shortMessage),t?.message&&(e.message+=`
`)),d.trim()}})}};function y(a){if(typeof a!="object")throw new b(a);let e={message:""},t;try{t=JSON.parse(a.details)}catch{}throw a.shortMessage&&(e.message+=a.shortMessage),t?.message&&(e.message+=`
${t.message}`),e.message+=`
${a.message.replace(a.shortMessage,"").trimStart()}`,e.message=e.message.trimStart(),new b(e)}i(y,"handleError");var Ve={type:"constructor",inputs:[],stateMutability:"nonpayable"};function g({abi:a,type:e,name:t,kind:n,value:r}){let s=a.filter(m=>m.type!==e||m.name!==t?!1:n in m);if(!s.length){if(e==="constructor")return{abiEntry:Ve,params:[]};throw new b(`No matching ABI entry for ${e} ${t} with ${n}`)}if(s.length===1){let m=s[0],T=m[n];return T.length?he(r,T)?{abiEntry:m,params:[r]}:{abiEntry:m,params:T.map(({name:w},u)=>r?.[w||u])}:{abiEntry:m,params:[]}}let o=r&&typeof r=="object"?Object.keys(r).length:0,d=s[0],l=[],c=0;for(let m of s){let T=m[n];if(!T.length){if(!o)return{abiEntry:m,params:[]};continue}if(he(r,T))return{abiEntry:m,params:[r]};let w=r||{},u=[],f=0;for(let[x,{name:h}]of T.entries()){let j=h||x;u.push(w[j]),j in w&&f++}f>c&&(d=m,l=u,c=f)}return{abiEntry:d,params:l}}i(g,"prepareParams");function he(a,e){if(e.length!==1)return!1;if(!a)return!0;let{type:t,name:n}=e[0],r=t.match(/(\[\d*\])+$/)?.[0];if(!r)return typeof a!="object";if(!Array.isArray(a))return!1;if(n)return!0;let s=a;for(let o of r.match(/\[\d*]/g))s=a?.[0];return!Array.isArray(s)}i(he,"isUnpacked");function J({abi:a,fn:e,args:t}){let{data:n}=N({abi:a,fn:e,args:t});return n}i(J,"encodeFunctionData");function N({abi:a,args:e,fn:t}){try{let{abiEntry:n,params:r}=g({abi:a,type:"function",name:t,kind:"inputs",value:e});return{abiFn:n,data:ge.AbiFunction.encodeData(n,r)}}catch(n){y(n)}}i(N,"prepareFunctionData");var Z={name:"IMulticall3",abi:[{type:"function",name:"aggregate",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"returnData",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"aggregate3",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call3[]",components:[{name:"target",type:"address",internalType:"address"},{name:"allowFailure",type:"bool",internalType:"bool"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"aggregate3Value",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call3Value[]",components:[{name:"target",type:"address",internalType:"address"},{name:"allowFailure",type:"bool",internalType:"bool"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"blockAndAggregate",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"blockHash",type:"bytes32",internalType:"bytes32"},{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"getBasefee",inputs:[],outputs:[{name:"basefee",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getBlockHash",inputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"}],outputs:[{name:"blockHash",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getBlockNumber",inputs:[],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getChainId",inputs:[],outputs:[{name:"chainid",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockCoinbase",inputs:[],outputs:[{name:"coinbase",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockDifficulty",inputs:[],outputs:[{name:"difficulty",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockGasLimit",inputs:[],outputs:[{name:"gaslimit",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockTimestamp",inputs:[],outputs:[{name:"timestamp",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEthBalance",inputs:[{name:"addr",type:"address",internalType:"address"}],outputs:[{name:"balance",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getLastBlockHash",inputs:[],outputs:[{name:"blockHash",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"tryAggregate",inputs:[{name:"requireSuccess",type:"bool",internalType:"bool"},{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"tryBlockAndAggregate",inputs:[{name:"requireSuccess",type:"bool",internalType:"bool"},{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"blockHash",type:"bytes32",internalType:"bytes32"},{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"}],methodIdentifiers:{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"}};var ue="0xcA11bde05977b3631167028862bE2a173976CA11";async function z(a,{calls:e,multicallAddress:t=ue,allowFailure:n=!0,...r}){let s=[];return(await a.simulateWrite({abi:Z.abi,address:t,fn:"aggregate3",args:{calls:e.map(d=>{let{abiFn:l,data:c}=N({abi:d.abi,fn:d.fn,args:d.args});return s.push(l),{target:d.address,callData:c,allowFailure:n}})},...r})).map(({returnData:d,success:l},c)=>{let{fn:m}=e[c],T=s[c];return n===!1?a.decodeFunctionReturn({abi:[T],data:d,fn:m}):l?{success:l,value:a.decodeFunctionReturn({abi:[T],data:d,fn:m})}:{success:l,error:new b(Buffer.from(d.slice(10),"hex").toString())}})}i(z,"multicall");async function Q(a,{abi:e,address:t,fn:n,args:r={},block:s}){let{data:o,abiFn:d}=N({abi:e,fn:n,args:r}),l=await a.call({to:t,data:o,block:s});return a.decodeFunctionReturn({abi:[d],data:l,fn:n})}i(Q,"read");async function Y(a,{abi:e,fn:t,args:n={},from:r,address:s,...o}){let{abiFn:d,data:l}=N({abi:e,fn:t,args:n}),c=await a.call({data:l,from:r??await a.getSignerAddress?.().catch(()=>{}),to:s,...o});return a.decodeFunctionReturn({abi:[d],data:c,fn:t})}i(Y,"simulateWrite");function B(a,{abi:e,fn:t,args:n={},address:r,...s}){let o=a.encodeFunctionData({abi:e,fn:t,args:n});return a.sendTransaction({data:o,to:r,...s})}i(B,"write");var C=require("ox");var Fe=require("ox");function D({abi:a,name:e,kind:t,values:n}){let r=Fe.AbiItem.fromAbi(a,e,{args:n});return!r||!(t in r)?{}:Object.fromEntries(r[t].map(({name:s},o)=>[s||o,n?.[o]]))}i(D,"arrayToObject");function ee({abi:a,data:e}){try{let t=C.Hex.slice(e,0,4),n=C.Hex.slice(e,4),r=C.AbiFunction.fromAbi(a,t),s=C.AbiParameters.decode(r.inputs,n,{as:"Array",checksumAddress:!0}),o=r.name,d=D({abi:a,name:o,kind:"inputs",values:s});return{functionName:o,args:d}}catch(t){y(t)}}i(ee,"decodeFunctionData");var le=require("ox");function te({abi:a,name:e,kind:t,values:n}){let r=D({abi:a,name:e,kind:t,values:n}),s=Object.values(r);return s.length===1?s[0]:r}i(te,"arrayToSimplified");function ne({abi:a,data:e,fn:t}){try{let n=le.AbiFunction.fromAbi(a,t),r=le.AbiFunction.decodeResult(n,e,{as:"Array"});return n.outputs.length===1?r:te({abi:a,name:n.name,kind:"outputs",values:r})}catch(n){y(n)}}i(ne,"decodeFunctionReturn");var xe=require("ox");function Ne({abi:a,bytecode:e,args:t}){let{data:n}=qe({abi:a,bytecode:e,args:t});return n}i(Ne,"encodeDeployData");function qe({abi:a,args:e,bytecode:t}){try{let{abiEntry:n,params:r}=g({abi:a,type:"constructor",name:void 0,kind:"inputs",value:e});return{abiFn:n,data:xe.AbiConstructor.encode(n,{args:r,bytecode:t})}}catch(n){y(n)}}i(qe,"prepareDeployData");var Pe=require("ox");function ae({abi:a,fn:e,value:t}){try{let{abiEntry:n,params:r}=g({abi:a,type:"function",name:e,kind:"outputs",value:t});return Pe.AbiFunction.encodeResult(n,r,{as:"Array"})}catch(n){y(n)}}i(ae,"encodeFunctionReturn");var M=class{static{i(this,"AbiEncoder")}encodeDeployData(e){return Ne(e)}encodeFunctionData(e){return J(e)}encodeFunctionReturn(e){return ae(e)}decodeFunctionData(e){return ee(e)}decodeFunctionReturn(e){return ne(e)}};var R=class a extends M{static{i(this,"BaseReadAdapter")}pollingInterval;pollingTimeout;multicallAddress;static DEFAULT_POLLING_INTERVAL=4e3;static DEFAULT_TIMEOUT=6e4;constructor({pollingInterval:e=a.DEFAULT_POLLING_INTERVAL,pollingTimeout:t=a.DEFAULT_TIMEOUT,multicallAddress:n=ue}={}){super(),this.pollingInterval=e,this.pollingTimeout=t,this.multicallAddress=n}multicall({multicallAddress:e=this.multicallAddress,...t}){return z(this,{multicallAddress:e,...t})}read(e){return Q(this,e)}simulateWrite(e){return Y(this,e)}},re=class extends R{static{i(this,"BaseReadWriteAdapter")}deploy(e){return S(this,e)}async write(e){return B(this,e)}};var A=require("ox");var Te=require("ox");var ye={name:"CodeCaller",abi:[{type:"constructor",inputs:[{name:"bytecode",type:"bytes",internalType:"bytes"},{name:"callParams",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"},{type:"error",name:"BytecodeDeploymentFailed",inputs:[]}],bytecode:"0x608060405234801561000f575f80fd5b5060405161021c38038061021c83398101604081905261002e916101a1565b5f8251602084015ff090506001600160a01b038116158061005757506001600160a01b0381163b155b156100755760405163537574ad60e11b815260040160405180910390fd5b5f80826001600160a01b03168460405161008f9190610200565b5f604051808303815f865af19150503d805f81146100c8576040519150601f19603f3d011682016040523d82523d5f602084013e6100cd565b606091505b5091509150816100df57805160208201fd5b805160208201f35b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101155781810151838201526020016100fd565b50505f910152565b5f82601f83011261012c575f80fd5b81516001600160401b0380821115610146576101466100e7565b604051601f8301601f19908116603f0116810190828211818310171561016e5761016e6100e7565b81604052838152866020858801011115610186575f80fd5b6101978460208301602089016100fb565b9695505050505050565b5f80604083850312156101b2575f80fd5b82516001600160401b03808211156101c8575f80fd5b6101d48683870161011d565b935060208501519150808211156101e9575f80fd5b506101f68582860161011d565b9150509250929050565b5f82516102118184602087016100fb565b919091019291505056fe",methodIdentifiers:{}};function ie(a,e){let t=Te.AbiConstructor.fromAbi(ye.abi);return Te.AbiConstructor.encode(t,{bytecode:ye.bytecode,args:[a,e]})}i(ie,"encodeBytecodeCallData");function H(a,e,t){return e(a)?t(a):Array.isArray(a)?a.map(n=>H(n,e,t)):a&&typeof a=="object"?Object.fromEntries(Object.entries(a).map(([n,r])=>[n,H(r,e,t)])):a}i(H,"convert");var be=/^0x[0-9a-fA-F]*$/;function se(a){return typeof a=="string"&&be.test(a)}i(se,"isHexString");var V=class extends R{static{i(this,"DefaultReadAdapter")}provider;constructor({rpcUrl:e,...t}={}){super(t);try{let n=e?A.RpcTransport.fromHttp(e):globalThis.ethereum;if(!n)throw new b("No provider found");this.provider=A.Provider.from(n)}catch(n){y(n)}}getChainId(){return this.provider.request({method:"eth_chainId"}).then(Number).catch(y)}getBlockNumber(){return this.provider.request({method:"eth_blockNumber"}).then(BigInt).catch(y)}getBlock(e){return this.provider.request(se(e)?{method:"eth_getBlockByHash",params:[e,!1]}:{method:"eth_getBlockByNumber",params:[$(e),!1]}).then(A.Block.fromRpc).then(t=>t?{...t,nonce:BigInt(t.nonce),transactions:t.transactions.slice()}:void 0).catch(y)}getBalance(e){return this.provider.request({method:"eth_getBalance",params:[e.address,$(e.block)]}).then(BigInt).catch(y)}getTransaction({hash:e}){return this.provider.request({method:"eth_getTransactionByHash",params:[e]}).then(t=>{if(!t)return;let{to:n,transactionIndex:r,...s}=A.Transaction.fromRpc(t);return{...s,to:n||void 0,transactionIndex:BigInt(r),transactionHash:s.hash}}).catch(y)}waitForTransaction({hash:e,timeout:t=this.pollingTimeout}){return new Promise((n,r)=>{let s=i(()=>this.provider.request({method:"eth_getTransactionReceipt",params:[e]}).then(o=>{if(o){let{to:d,transactionIndex:l,contractAddress:c,...m}=A.TransactionReceipt.fromRpc(o);n({...m,to:d||void 0,transactionIndex:BigInt(l),contractAddress:c||void 0})}else setTimeout(s,this.pollingInterval)}).catch(r),"getReceipt");s(),setTimeout(()=>n(void 0),t)}).catch(y)}sendRawTransaction(e){return this.provider.request({method:"eth_sendRawTransaction",params:[e]})}getEvents({abi:e,address:t,event:n,filter:r,fromBlock:s,toBlock:o}){let{abiEntry:d}=g({abi:e,type:"event",name:n,kind:"inputs",value:r});return this.provider.request({method:"eth_getLogs",params:[{address:t,fromBlock:$(s),toBlock:$(o),topics:A.AbiEvent.encode(d,r||{}).topics}]}).then(l=>l.map(c=>({args:A.AbiEvent.decode(d,c),blockNumber:BigInt(c.blockNumber),data:c.data,eventName:n,transactionHash:c.transactionHash}))).catch(y)}call({to:e,data:t,bytecode:n,block:r,...s}){return n&&t&&(t=ie(n,t)),this.provider.request({method:"eth_call",params:[{to:e,data:t,...ve(s)},$(r)]}).catch(y)}},I=class extends V{static{i(this,"DefaultAdapter")}getSignerAddress(){return this.provider.request({method:"eth_accounts"}).then(([e])=>{if(!e)throw new b("No signer address found");return A.Address.checksum(e)}).catch(y)}async sendTransaction({data:e,to:t,from:n,onMined:r,...s}){return n??=await this.getSignerAddress().catch(y),this.provider.request({method:"eth_sendTransaction",params:[{data:e,to:t,from:n,...ve(s)}]}).then(o=>(r&&this.waitForTransaction({hash:o}).then(r),o)).catch(y)}deploy(e){return S(this,e)}write(e){return B(this,e)}};function $(a){return a===void 0?"latest":typeof a=="bigint"?`0x${a.toString(16)}`:a}i($,"prepareBlockParam");function ve(a){return H(a,e=>typeof e=="bigint",e=>`0x${e.toString(16)}`)}i(ve,"prepareTransactionOptions");var ke=require("lru-cache");var P=class extends ke.LRUCache{static{i(this,"LruStore")}constructor(e={max:500}){super(e)}};async function F({store:a,key:e,fn:t}){if(e=await e,await a.has(e))return a.get(e);let n=await t();if(n===void 0)return n;let r=a.set(e,n);return r instanceof Promise?r.then(()=>n):n}i(F,"getOrSet");var Ce=fe(require("lodash.ismatch"),1);async function v({store:a,matchKey:e}){e=await e;let t=JSON.parse(e),n=[];for await(let[r]of a.entries()){if(r===e){n.push(a.delete(r));continue}let s=JSON.parse(r);(0,Ce.default)(s,t)&&n.push(a.delete(r))}await Promise.all(n)}i(v,"deleteMatches");var Re=fe(require("safe-stable-stringify"),1);function oe(a,e){return(0,Re.default)(a,(t,n)=>typeof n=="bigint"?n.toString():n,e)}i(oe,"stringifyKey");var k=class{static{i(this,"ClientCache")}namespace;store;constructor({namespace:e,store:t=new P}){this.namespace=e,this.store=t}async clear(){return this.store.clear()}async blockKey(e){return this.#a("block",{block:e})}async preloadBlock({value:e,block:t}){let n=await this.blockKey(t);return this.store.set(n,e)}async getBlock(e){let t=await this.blockKey(e);return this.store.get(t)}async invalidateBlock(e){let t=await this.blockKey(e);return this.store.delete(t)}async clearBlocks(){return v({store:this.store,matchKey:this.blockKey()})}#e({address:e,block:t}={}){return this.#a("balance",{address:e,block:t})}async balanceKey(e){return this.#e(e)}async preloadBalance({value:e,...t}){let n=await this.balanceKey(t);return this.store.set(n,e)}async getBalance(e){let t=await this.balanceKey(e);return this.store.get(t)}async invalidateBalance(e){let t=await this.balanceKey(e);return this.store.delete(t)}async clearBalances(){return v({store:this.store,matchKey:this.#e()})}#t({hash:e}={}){return this.#a("transaction",{hash:e})}async transactionKey({hash:e}){return this.#t({hash:e})}async preloadTransaction({value:e,...t}){let n=await this.transactionKey(t);return this.store.set(n,e)}async getTransaction(e){let t=await this.transactionKey(e);return this.store.get(t)}async invalidateTransaction(e){let t=await this.transactionKey(e);return this.store.delete(t)}async clearTransactions(){return v({store:this.store,matchKey:this.#t()})}async transactionReceiptKey({hash:e}){return this.#a("transactionReceipt",{hash:e})}async preloadTransactionReceipt({value:e,...t}){let n=await this.transactionReceiptKey(t);return this.store.set(n,e)}async getTransactionReceipt(e){let t=await this.transactionReceiptKey(e);return this.store.get(t)}#n({to:e,data:t,value:n,from:r,block:s,accessList:o,blobVersionedHashes:d,chainId:l,blobs:c,bytecode:m,nonce:T}={}){return this.#a("call",{to:e,data:t,value:n,from:r,block:s,accessList:o,blobVersionedHashes:d,chainId:l,blobs:c,bytecode:m,nonce:T})}async callKey(e){return this.#n(e)}async preloadCall({preloadValue:e,...t}){let n=await this.callKey(t);return this.store.set(n,e)}async getCall(e){let t=await this.callKey(e);return this.store.get(t)}async invalidateCall(e){let t=await this.callKey(e);return this.store.delete(t)}async invalidateCallsMatching(e){return v({store:this.store,matchKey:this.#n(e)})}async clearCalls(){return this.invalidateCallsMatching()}async eventsKey({address:e,event:t,filter:n,fromBlock:r="earliest",toBlock:s="latest"}){return this.#a("events",{address:e,event:t,filter:n,fromBlock:r,toBlock:s})}async preloadEvents({value:e,...t}){let n=await this.eventsKey(t);return this.store.set(n,e)}async getEvents(e){let t=await this.eventsKey(e);return this.store.get(t)}#r({address:e,args:t,block:n,fn:r}={}){return this.#a("read",{address:e,args:t,block:n,fn:r})}async readKey(e){return this.#r(e)}async preloadRead({value:e,...t}){let n=await this.readKey(t);return this.store.set(n,e)}async getRead(e){let t=await this.readKey(e);return this.store.get(t)}async invalidateRead(e){let t=await this.readKey(e);return this.store.delete(t)}async invalidateReadsMatching(e){return v({store:this.store,matchKey:this.#r(e)})}async clearReads(){return this.invalidateReadsMatching()}async#i(){return typeof this.namespace=="function"&&(this.namespace=await this.namespace()),this.namespace}async#a(...e){let t=await this.#i();return oe([t,...e])}};var K=class extends b{static{i(this,"BlockNotFoundError")}constructor(e,t){super(`Block not found: ${e}`,t)}};var pe=class{static{i(this,"HookRegistry")}#e={};on(e,t){this.#e[e]||=[],this.#e[e].push(t)}off(e,t){let n=!1,r=this.#e[e];return r&&(this.#e[e]=r.filter(s=>s===t?(n=!0,!1):!0)),n}once(e,t){let n=i(r=>{this.off(e,n),t(r)},"wrapped");this.on(e,n)}call(e,t){let n,r=this.#e[e];if(r)for(let s of r)n instanceof Promise?n=n.then(()=>s(t)):n=s(t);return n}};var _=class{static{i(this,"MethodInterceptor")}#e=new pe;get hooks(){return this.#e}createProxy=i(e=>new Proxy(e,{get:i((t,n,r)=>{let s=Reflect.get(t,n,r);if(n==="constructor"||typeof s!="function")return s;let o=i((...d)=>this.#t({method:n,fn:s.bind(r),args:d}),"wrapped");return Object.defineProperty(o,"name",{get:i(()=>s.name,"get")}),o},"get")}),"createProxy");#t({method:e,fn:t,args:n}){let r=String(e),s=!1,o,d=this.#e.call(`before:${r}`,{get args(){return n},setArgs(...c){n=c},resolve(c){s||(s=!0,o=c)}}),l=i(()=>{s||(o=t(...n));let c=this.#e.call(`after:${r}`,{get args(){return n},get result(){return o},setResult(m){o=m}});return c instanceof Promise?c.then(()=>o):o},"wrappedAfterHooks");return d instanceof Promise?d.then(l):l()}};function E(a={}){let{adapter:e,store:t,chainId:n,...r}=a,s=new _,o=e||new I(r),l=t&&"clear"in t?t:new P(t),c={...o,adapter:o,hooks:s.hooks,cache:new k({store:l,namespace:i(()=>c.getChainId(),"namespace")}),isReadWrite(){return typeof this.adapter.write=="function"},extend(u){return Object.assign(this,u)},async getChainId(){return n??=await o.getChainId(),n},async getBlock(u,f){let x=await F({store:this.cache.store,key:this.cache.blockKey(u),fn:i(()=>this.adapter.getBlock(u),"fn")});if(!x&&f?.throws)throw new K(u);return x},getBalance(u){return F({store:this.cache.store,key:this.cache.balanceKey(u),fn:i(()=>this.adapter.getBalance(u),"fn")})},getTransaction(u){return F({store:this.cache.store,key:this.cache.transactionKey(u),fn:i(()=>this.adapter.getTransaction(u),"fn")})},waitForTransaction(u){return F({store:this.cache.store,key:this.cache.transactionReceiptKey(u),fn:i(()=>this.adapter.waitForTransaction(u),"fn")})},call(u){return F({store:this.cache.store,key:this.cache.callKey(u),fn:i(()=>this.adapter.call(u),"fn")})},async multicall({calls:u,...f}){let x=new Map,h=[],j=await Promise.all(u.map(async(L,de)=>{let O=await this.cache.getRead({...L,block:f?.block});if(O!==void 0)return f.allowFailure===!1?O:{success:!0,value:O};x.set(de,h.length),h.push(L)}));if(!h.length)return j;let De=await this.adapter.multicall({calls:h,...f});return Promise.all(j.map(async(L,de)=>{if(L!==void 0)return L;let O=x.get(de),{abi:Me,address:He,fn:Ie,args:Ke}=h[O],me=De[O],X;return f.allowFailure===!1?X=me:X=me.value,X!==void 0&&await this.cache.preloadRead({abi:Me,address:He,fn:Ie,args:Ke,block:f?.block,value:X}),me}))},getEvents({fromBlock:u="earliest",toBlock:f="latest",...x}){let h={fromBlock:u,toBlock:f,...x};return F({store:this.cache.store,key:this.cache.eventsKey(h),fn:i(async()=>this.adapter.getEvents(h),"fn")})},read(u){return F({store:this.cache.store,key:this.cache.readKey(u),fn:i(()=>this.adapter.read(u),"fn")})}},m=Object.getPrototypeOf(o);function T(){}i(T,"Client"),Object.defineProperties(T,{name:{value:`Client<${o.constructor.name}>`,enumerable:!1,writable:!1,configurable:!0}}),T.prototype=Object.create(m,{constructor:{value:T,enumerable:!1,writable:!0,configurable:!0},[Symbol.toStringTag]:{value:T.name,enumerable:!1,writable:!0,configurable:!0}});let w=Object.create(T.prototype,Object.getOwnPropertyDescriptors(c));return s.createProxy(w)}i(E,"createClient");var G=class{static{i(this,"ContractCache")}#e;#t;#n;constructor({abi:e,address:t,...n}){let r=n.clientCache?n.clientCache:new k(n);this.#e=e,this.#t=t,this.#n=r}get store(){return this.#n.store}clear(){return this.#n.clear()}eventsKey(e,t){return this.#n.eventsKey({abi:this.#e,address:this.#t,event:e,...t})}preloadEvents(e){return this.#n.preloadEvents({abi:this.#e,address:this.#t,...e})}getEvents(e,t){return this.#n.getEvents({abi:this.#e,address:this.#t,event:e,...t})}readKey(...[e,t,n]){return this.#n.readKey({abi:this.#e,address:this.#t,fn:e,args:t,...n})}preloadRead(e){return this.#n.preloadRead({abi:this.#e,address:this.#t,...e})}getRead(...[e,t,n]){return this.#n.getRead({abi:this.#e,address:this.#t,fn:e,args:t,...n})}invalidateRead(...[e,t,n]){return this.#n.invalidateRead({abi:this.#e,address:this.#t,fn:e,args:t,...n})}invalidateReadsMatching(e,t,n){return this.#n.invalidateReadsMatching({abi:this.#e,address:this.#t,fn:e,args:t,...n})}async clearReads(){return this.#n.invalidateReadsMatching({abi:this.#e,address:this.#t})}};var W=class{static{i(this,"ReadContract")}abi;address;client;cache;epochBlock;constructor({abi:e,address:t,epochBlock:n,client:r,...s}){this.abi=e,this.address=t,this.client=r??E(s),this.cache=new G({abi:e,address:t,clientCache:this.client.cache}),this.epochBlock=n}isReadWrite(){return this.client.isReadWrite()}extend(e){return Object.assign(this,e)}encodeDeployData(...[e,t]){return this.client.encodeDeployData({abi:this.abi,bytecode:e,args:t})}encodeFunctionData(...[e,t]){return this.client.encodeFunctionData({abi:this.abi,fn:e,args:t})}encodeFunctionReturn(e,t){return this.client.encodeFunctionReturn({abi:this.abi,fn:e,value:t})}decodeFunctionData(e){return this.client.decodeFunctionData({abi:this.abi,data:e})}decodeFunctionReturn(e,t){return this.client.decodeFunctionReturn({abi:this.abi,fn:e,data:t})}getEvents(e,{fromBlock:t,...n}={}){return this.epochBlock&&(!t||t==="earliest"||typeof t=="bigint"&&t<this.epochBlock)&&(t=this.epochBlock),this.client.getEvents({abi:this.abi,address:this.address,event:e,fromBlock:t,...n})}async multicall({calls:e,...t}){return this.client.multicall({calls:e.map(n=>({abi:this.abi,address:this.address,...n})),...t})}read(...[e,t,n]){let{block:r,...s}=n||{};return this.epochBlock&&(r==="earliest"||typeof r=="bigint"&&r<this.epochBlock)&&(r=this.epochBlock),this.client.read({abi:this.abi,address:this.address,fn:e,args:t,block:r,...s})}simulateWrite(...[e,t,n]){return this.client.simulateWrite({abi:this.abi,address:this.address,fn:e,args:t,...n})}},q=class extends W{static{i(this,"ReadWriteContract")}getSignerAddress(){return this.client.getSignerAddress()}write(...[e,t,n]){return this.client.write({abi:this.abi,address:this.address,fn:e,args:t,...n})}};function ce({abi:a,address:e,epochBlock:t,client:n,...r}){return n=n||E(r),n.isReadWrite()?new q({abi:a,address:e,client:n,epochBlock:t}):new W({abi:a,address:e,client:n,epochBlock:t})}i(ce,"createContract");function Ee(a={}){return E(a).extend({contract(e){return ce({...e,client:this})}})}i(Ee,"createDrift");var we={name:"IERC20",abi:[{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}};var Oe={name:"IERC721",abi:[{type:"function",name:"approve",inputs:[{name:"_approved",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"function",name:"balanceOf",inputs:[{name:"_owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getApproved",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"isApprovedForAll",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"setApprovalForAll",inputs:[{name:"_operator",type:"address",internalType:"address"},{name:"_approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceID",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"event",name:"Approval",inputs:[{name:"_owner",type:"address",indexed:!0,internalType:"address"},{name:"_approved",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ApprovalForAll",inputs:[{name:"_owner",type:"address",indexed:!0,internalType:"address"},{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"_from",type:"address",indexed:!0,internalType:"address"},{name:"_to",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}};var Se={name:"IERC1155",abi:[{type:"function",name:"balanceOf",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_id",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"balanceOfBatch",inputs:[{name:"_owners",type:"address[]",internalType:"address[]"},{name:"_ids",type:"uint256[]",internalType:"uint256[]"}],outputs:[{name:"",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"isApprovedForAll",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"safeBatchTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_ids",type:"uint256[]",internalType:"uint256[]"},{name:"_values",type:"uint256[]",internalType:"uint256[]"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_id",type:"uint256",internalType:"uint256"},{name:"_value",type:"uint256",internalType:"uint256"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setApprovalForAll",inputs:[{name:"_operator",type:"address",internalType:"address"},{name:"_approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceID",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"ApprovalForAll",inputs:[{name:"_owner",type:"address",indexed:!0,internalType:"address"},{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"TransferBatch",inputs:[{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_from",type:"address",indexed:!0,internalType:"address"},{name:"_to",type:"address",indexed:!0,internalType:"address"},{name:"_ids",type:"uint256[]",indexed:!1,internalType:"uint256[]"},{name:"_values",type:"uint256[]",indexed:!1,internalType:"uint256[]"}],anonymous:!1},{type:"event",name:"TransferSingle",inputs:[{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_from",type:"address",indexed:!0,internalType:"address"},{name:"_to",type:"address",indexed:!0,internalType:"address"},{name:"_id",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"URI",inputs:[{name:"_value",type:"string",indexed:!1,internalType:"string"},{name:"_id",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7"}};var Be="0x0000000000000000000000000000000000000000";0&&(module.exports={AbiEncoder,BaseReadAdapter,BaseReadWriteAdapter,BlockNotFoundError,ClientCache,ContractCache,DefaultAdapter,DefaultReadAdapter,DriftError,HEX_REGEX,LruStore,MethodInterceptor,ReadContract,ReadWriteContract,ZERO_ADDRESS,arrayToObject,arrayToSimplified,convert,createClient,createContract,createDrift,decodeFunctionData,decodeFunctionReturn,deleteMatches,deploy,encodeBytecodeCallData,encodeFunctionData,encodeFunctionReturn,erc1155,erc20,erc721,getOrSet,isHexString,multicall,multicall3,prepareFunctionData,prepareParams,read,simulateWrite,stringifyKey,write});
${a.message.replace(a.shortMessage,"").trimStart()}`,e.message=e.message.trimStart(),new b(e)}i(y,"handleError");var Je={type:"constructor",inputs:[],stateMutability:"nonpayable"};function x({abi:a,type:e,name:t,kind:n,value:r}){let s=a.filter(u=>u.type!==e||u.name!==t?!1:n in u);if(!s.length){if(e==="constructor")return{abiEntry:Je,params:[]};throw new b(`No matching ABI entry for ${e} ${t} with ${n}`)}if(s.length===1){let u=s[0],T=u[n];return T.length?ge(r,T)?{abiEntry:u,params:[r]}:{abiEntry:u,params:T.map(({name:E},m)=>r?.[E||m])}:{abiEntry:u,params:[]}}let o=r&&typeof r=="object"?Object.keys(r).length:0,c=s[0],l=[],d=0;for(let u of s){let T=u[n];if(!T.length){if(!o)return{abiEntry:u,params:[]};continue}if(ge(r,T))return{abiEntry:u,params:[r]};let E=r||{},m=[],f=0;for(let[g,{name:h}]of T.entries()){let j=h||g;m.push(E[j]),j in E&&f++}f>d&&(c=u,l=m,d=f)}return{abiEntry:c,params:l}}i(x,"prepareParams");function ge(a,e){if(e.length!==1)return!1;if(!a)return!0;let{type:t,name:n}=e[0],r=t.match(/(\[\d*\])+$/)?.[0];if(!r)return typeof a!="object";if(!Array.isArray(a))return!1;if(n)return!0;let s=a;for(let o of r.match(/\[\d*]/g))s=a?.[0];return!Array.isArray(s)}i(ge,"isUnpacked");function J(a){return v(a).data}i(J,"encodeFunctionData");function v({abi:a,args:e,fn:t}){try{let{abiEntry:n,params:r}=x({abi:a,type:"function",name:t,kind:"inputs",value:e});return{abiFn:n,data:ve.AbiFunction.encodeData(n,r)}}catch(n){y(n)}}i(v,"prepareFunctionData");var Z={name:"IMulticall3",abi:[{type:"function",name:"aggregate",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"returnData",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"aggregate3",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call3[]",components:[{name:"target",type:"address",internalType:"address"},{name:"allowFailure",type:"bool",internalType:"bool"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"aggregate3Value",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call3Value[]",components:[{name:"target",type:"address",internalType:"address"},{name:"allowFailure",type:"bool",internalType:"bool"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"blockAndAggregate",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"blockHash",type:"bytes32",internalType:"bytes32"},{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"getBasefee",inputs:[],outputs:[{name:"basefee",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getBlockHash",inputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"}],outputs:[{name:"blockHash",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getBlockNumber",inputs:[],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getChainId",inputs:[],outputs:[{name:"chainid",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockCoinbase",inputs:[],outputs:[{name:"coinbase",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockDifficulty",inputs:[],outputs:[{name:"difficulty",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockGasLimit",inputs:[],outputs:[{name:"gaslimit",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockTimestamp",inputs:[],outputs:[{name:"timestamp",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEthBalance",inputs:[{name:"addr",type:"address",internalType:"address"}],outputs:[{name:"balance",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getLastBlockHash",inputs:[],outputs:[{name:"blockHash",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"tryAggregate",inputs:[{name:"requireSuccess",type:"bool",internalType:"bool"},{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"tryBlockAndAggregate",inputs:[{name:"requireSuccess",type:"bool",internalType:"bool"},{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"blockHash",type:"bytes32",internalType:"bytes32"},{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"}],methodIdentifiers:{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"}};var le="0xcA11bde05977b3631167028862bE2a173976CA11";async function z(a,{calls:e,multicallAddress:t=le,allowFailure:n=!0,...r}){let s=[];return(await a.simulateWrite({abi:Z.abi,address:t,fn:"aggregate3",args:{calls:e.map(c=>{let{abiFn:l,data:d}=v({abi:c.abi,fn:c.fn,args:c.args});return s.push(l),{target:c.address,callData:d,allowFailure:n}})},...r})).map(({returnData:c,success:l},d)=>{let{fn:u}=e[d],T=s[d];return n===!1?a.decodeFunctionReturn({abi:[T],data:c,fn:u}):l?{success:l,value:a.decodeFunctionReturn({abi:[T],data:c,fn:u})}:{success:l,error:new b(Buffer.from(c.slice(10),"hex").toString())}})}i(z,"multicall");async function Q(a,{abi:e,address:t,fn:n,args:r={},block:s}){let{data:o,abiFn:c}=v({abi:e,fn:n,args:r}),l=await a.call({to:t,data:o,block:s});return a.decodeFunctionReturn({abi:[c],data:l,fn:n})}i(Q,"read");async function Y(a,{abi:e,fn:t,args:n={},from:r,address:s,...o}){let{abiFn:c,data:l}=v({abi:e,fn:t,args:n}),d=await a.call({data:l,from:r??await a.getSignerAddress?.().catch(()=>{}),to:s,...o});return a.decodeFunctionReturn({abi:[c],data:d,fn:t})}i(Y,"simulateWrite");function M(a,{abi:e,fn:t,args:n={},address:r,...s}){let o=a.encodeFunctionData({abi:e,fn:t,args:n});return a.sendTransaction({data:o,to:r,...s})}i(M,"write");var C=require("ox");var Ne=require("ox");function B({abi:a,name:e,kind:t,values:n}){let r=Ne.AbiItem.fromAbi(a,e,{args:n});return!r||!(t in r)?{}:Object.fromEntries(r[t].map(({name:s},o)=>[s||o,n?.[o]]))}i(B,"arrayToObject");function ee({abi:a,data:e}){try{let t=C.Hex.slice(e,0,4),n=C.Hex.slice(e,4),r=C.AbiFunction.fromAbi(a,t),s=C.AbiParameters.decode(r.inputs,n,{as:"Array",checksumAddress:!0}),o=r.name,c=B({abi:a,name:o,kind:"inputs",values:s});return{functionName:o,args:c}}catch(t){y(t)}}i(ee,"decodeFunctionData");var ye=require("ox");function te({abi:a,name:e,kind:t,values:n}){let r=B({abi:a,name:e,kind:t,values:n}),s=Object.values(r);return s.length===1?s[0]:r}i(te,"arrayToSimplified");function ne({abi:a,data:e,fn:t}){try{let n=ye.AbiFunction.fromAbi(a,t),r=ye.AbiFunction.decodeResult(n,e,{as:"Array"});return n.outputs.length===1?r:te({abi:a,name:n.name,kind:"outputs",values:r})}catch(n){y(n)}}i(ne,"decodeFunctionReturn");var Pe=require("ox");function ae(a){return Te(a).data}i(ae,"encodeDeployData");function Te({abi:a,args:e,bytecode:t}){try{let{abiEntry:n,params:r}=x({abi:a,type:"constructor",name:void 0,kind:"inputs",value:e});return{abiFn:n,data:Pe.AbiConstructor.encode(n,{args:r,bytecode:t})}}catch(n){y(n)}}i(Te,"prepareDeployData");var ke=require("ox");function re(a){return be(a).data}i(re,"encodeFunctionReturn");function be({abi:a,fn:e,value:t}){try{let{abiEntry:n,params:r}=x({abi:a,type:"function",name:e,kind:"outputs",value:t});return{abiFn:n,data:ke.AbiFunction.encodeResult(n,r,{as:"Array"})}}catch(n){y(n)}}i(be,"prepareFunctionReturn");var D=class{static{i(this,"AbiEncoder")}encodeDeployData(e){return ae(e)}encodeFunctionData(e){return J(e)}encodeFunctionReturn(e){return re(e)}decodeFunctionData(e){return ee(e)}decodeFunctionReturn(e){return ne(e)}};var R=class a extends D{static{i(this,"BaseReadAdapter")}pollingInterval;pollingTimeout;multicallAddress;static DEFAULT_POLLING_INTERVAL=4e3;static DEFAULT_TIMEOUT=6e4;constructor({pollingInterval:e=a.DEFAULT_POLLING_INTERVAL,pollingTimeout:t=a.DEFAULT_TIMEOUT,multicallAddress:n=le}={}){super(),this.pollingInterval=e,this.pollingTimeout=t,this.multicallAddress=n}multicall({multicallAddress:e=this.multicallAddress,...t}){return z(this,{multicallAddress:e,...t})}read(e){return Q(this,e)}simulateWrite(e){return Y(this,e)}},ie=class extends R{static{i(this,"BaseReadWriteAdapter")}deploy(e){return S(this,e)}async write(e){return M(this,e)}};var A=require("ox");var fe=require("ox");var Ae={name:"CodeCaller",abi:[{type:"constructor",inputs:[{name:"bytecode",type:"bytes",internalType:"bytes"},{name:"callParams",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"},{type:"error",name:"BytecodeDeploymentFailed",inputs:[]}],bytecode:"0x608060405234801561000f575f80fd5b5060405161021c38038061021c83398101604081905261002e916101a1565b5f8251602084015ff090506001600160a01b038116158061005757506001600160a01b0381163b155b156100755760405163537574ad60e11b815260040160405180910390fd5b5f80826001600160a01b03168460405161008f9190610200565b5f604051808303815f865af19150503d805f81146100c8576040519150601f19603f3d011682016040523d82523d5f602084013e6100cd565b606091505b5091509150816100df57805160208201fd5b805160208201f35b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101155781810151838201526020016100fd565b50505f910152565b5f82601f83011261012c575f80fd5b81516001600160401b0380821115610146576101466100e7565b604051601f8301601f19908116603f0116810190828211818310171561016e5761016e6100e7565b81604052838152866020858801011115610186575f80fd5b6101978460208301602089016100fb565b9695505050505050565b5f80604083850312156101b2575f80fd5b82516001600160401b03808211156101c8575f80fd5b6101d48683870161011d565b935060208501519150808211156101e9575f80fd5b506101f68582860161011d565b9150509250929050565b5f82516102118184602087016100fb565b919091019291505056fe",methodIdentifiers:{}};function se(a,e){let t=fe.AbiConstructor.fromAbi(Ae.abi);return fe.AbiConstructor.encode(t,{bytecode:Ae.bytecode,args:[a,e]})}i(se,"encodeBytecodeCallData");function H(a,e,t){return e(a)?t(a):Array.isArray(a)?a.map(n=>H(n,e,t)):a&&typeof a=="object"?Object.fromEntries(Object.entries(a).map(([n,r])=>[n,H(r,e,t)])):a}i(H,"convert");var he=/^0x[0-9a-fA-F]*$/;function oe(a){return typeof a=="string"&&he.test(a)}i(oe,"isHexString");var V=class extends R{static{i(this,"DefaultReadAdapter")}provider;constructor({rpcUrl:e,...t}={}){super(t);try{let n=e?A.RpcTransport.fromHttp(e):globalThis.ethereum;if(!n)throw new b("No provider found");this.provider=A.Provider.from(n)}catch(n){y(n)}}getChainId(){return this.provider.request({method:"eth_chainId"}).then(Number).catch(y)}getBlockNumber(){return this.provider.request({method:"eth_blockNumber"}).then(BigInt).catch(y)}getBlock(e){return this.provider.request(oe(e)?{method:"eth_getBlockByHash",params:[e,!1]}:{method:"eth_getBlockByNumber",params:[$(e),!1]}).then(A.Block.fromRpc).then(t=>t?{...t,nonce:BigInt(t.nonce),transactions:t.transactions.slice()}:void 0).catch(y)}getBalance(e){return this.provider.request({method:"eth_getBalance",params:[e.address,$(e.block)]}).then(BigInt).catch(y)}getTransaction({hash:e}){return this.provider.request({method:"eth_getTransactionByHash",params:[e]}).then(t=>{if(!t)return;let{to:n,transactionIndex:r,...s}=A.Transaction.fromRpc(t);return{...s,to:n||void 0,transactionIndex:BigInt(r),transactionHash:s.hash}}).catch(y)}waitForTransaction({hash:e,timeout:t=this.pollingTimeout}){return new Promise((n,r)=>{let s=i(()=>this.provider.request({method:"eth_getTransactionReceipt",params:[e]}).then(o=>{if(o){let{to:c,transactionIndex:l,contractAddress:d,...u}=A.TransactionReceipt.fromRpc(o);n({...u,to:c||void 0,transactionIndex:BigInt(l),contractAddress:d||void 0})}else setTimeout(s,this.pollingInterval)}).catch(r),"getReceipt");s(),setTimeout(()=>n(void 0),t)}).catch(y)}sendRawTransaction(e){return this.provider.request({method:"eth_sendRawTransaction",params:[e]})}getEvents({abi:e,address:t,event:n,filter:r,fromBlock:s,toBlock:o}){let{abiEntry:c}=x({abi:e,type:"event",name:n,kind:"inputs",value:r});return this.provider.request({method:"eth_getLogs",params:[{address:t,fromBlock:$(s),toBlock:$(o),topics:A.AbiEvent.encode(c,r||{}).topics}]}).then(l=>l.map(d=>({args:A.AbiEvent.decode(c,d),blockNumber:BigInt(d.blockNumber),data:d.data,eventName:n,transactionHash:d.transactionHash}))).catch(y)}call({to:e,data:t,bytecode:n,block:r,...s}){return n&&t&&(t=se(n,t)),this.provider.request({method:"eth_call",params:[{to:e,data:t,...Ce(s)},$(r)]}).catch(y)}},I=class extends V{static{i(this,"DefaultAdapter")}getSignerAddress(){return this.provider.request({method:"eth_accounts"}).then(([e])=>{if(!e)throw new b("No signer address found");return A.Address.checksum(e)}).catch(y)}async sendTransaction({data:e,to:t,from:n,onMined:r,...s}){return n??=await this.getSignerAddress().catch(y),this.provider.request({method:"eth_sendTransaction",params:[{data:e,to:t,from:n,...Ce(s)}]}).then(o=>(r&&this.waitForTransaction({hash:o}).then(r),o)).catch(y)}deploy(e){return S(this,e)}write(e){return M(this,e)}};function $(a){return a===void 0?"latest":typeof a=="bigint"?`0x${a.toString(16)}`:a}i($,"prepareBlockParam");function Ce(a){return H(a,e=>typeof e=="bigint",e=>`0x${e.toString(16)}`)}i(Ce,"prepareTransactionOptions");var Re=require("lru-cache");var N=class extends Re.LRUCache{static{i(this,"LruStore")}constructor(e={max:500}){super(e)}};async function F({store:a,key:e,fn:t}){if(e=await e,await a.has(e))return a.get(e);let n=await t();if(n===void 0)return n;let r=a.set(e,n);return r instanceof Promise?r.then(()=>n):n}i(F,"getOrSet");var we=Fe(require("lodash.ismatch"),1);async function P({store:a,matchKey:e}){e=await e;let t=JSON.parse(e),n=[];for await(let[r]of a.entries()){if(r===e){n.push(a.delete(r));continue}let s=JSON.parse(r);(0,we.default)(s,t)&&n.push(a.delete(r))}await Promise.all(n)}i(P,"deleteMatches");var Ee=Fe(require("safe-stable-stringify"),1);function pe(a,e){return(0,Ee.default)(a,(t,n)=>typeof n=="bigint"?n.toString():n,e)}i(pe,"stringifyKey");var k=class{static{i(this,"ClientCache")}namespace;store;constructor({namespace:e,store:t=new N}){this.namespace=e,this.store=t}async clear(){return this.store.clear()}async blockKey(e){return this.#a("block",{block:e})}async preloadBlock({value:e,block:t}){let n=await this.blockKey(t);return this.store.set(n,e)}async getBlock(e){let t=await this.blockKey(e);return this.store.get(t)}async invalidateBlock(e){let t=await this.blockKey(e);return this.store.delete(t)}async clearBlocks(){return P({store:this.store,matchKey:this.blockKey()})}#e({address:e,block:t}={}){return this.#a("balance",{address:e,block:t})}async balanceKey(e){return this.#e(e)}async preloadBalance({value:e,...t}){let n=await this.balanceKey(t);return this.store.set(n,e)}async getBalance(e){let t=await this.balanceKey(e);return this.store.get(t)}async invalidateBalance(e){let t=await this.balanceKey(e);return this.store.delete(t)}async clearBalances(){return P({store:this.store,matchKey:this.#e()})}#t({hash:e}={}){return this.#a("transaction",{hash:e})}async transactionKey({hash:e}){return this.#t({hash:e})}async preloadTransaction({value:e,...t}){let n=await this.transactionKey(t);return this.store.set(n,e)}async getTransaction(e){let t=await this.transactionKey(e);return this.store.get(t)}async invalidateTransaction(e){let t=await this.transactionKey(e);return this.store.delete(t)}async clearTransactions(){return P({store:this.store,matchKey:this.#t()})}async transactionReceiptKey({hash:e}){return this.#a("transactionReceipt",{hash:e})}async preloadTransactionReceipt({value:e,...t}){let n=await this.transactionReceiptKey(t);return this.store.set(n,e)}async getTransactionReceipt(e){let t=await this.transactionReceiptKey(e);return this.store.get(t)}#n({to:e,data:t,value:n,from:r,block:s,accessList:o,blobVersionedHashes:c,chainId:l,blobs:d,bytecode:u,nonce:T}={}){return this.#a("call",{to:e,data:t,value:n,from:r,block:s,accessList:o,blobVersionedHashes:c,chainId:l,blobs:d,bytecode:u,nonce:T})}async callKey(e){return this.#n(e)}async preloadCall({preloadValue:e,...t}){let n=await this.callKey(t);return this.store.set(n,e)}async getCall(e){let t=await this.callKey(e);return this.store.get(t)}async invalidateCall(e){let t=await this.callKey(e);return this.store.delete(t)}async invalidateCallsMatching(e){return P({store:this.store,matchKey:this.#n(e)})}async clearCalls(){return this.invalidateCallsMatching()}async eventsKey({address:e,event:t,filter:n,fromBlock:r="earliest",toBlock:s="latest"}){return this.#a("events",{address:e,event:t,filter:n,fromBlock:r,toBlock:s})}async preloadEvents({value:e,...t}){let n=await this.eventsKey(t);return this.store.set(n,e)}async getEvents(e){let t=await this.eventsKey(e);return this.store.get(t)}#r({address:e,args:t,block:n,fn:r}={}){return this.#a("read",{address:e,args:t,block:n,fn:r})}async readKey(e){return this.#r(e)}async preloadRead({value:e,...t}){let n=await this.readKey(t);return this.store.set(n,e)}async getRead(e){let t=await this.readKey(e);return this.store.get(t)}async invalidateRead(e){let t=await this.readKey(e);return this.store.delete(t)}async invalidateReadsMatching(e){return P({store:this.store,matchKey:this.#r(e)})}async clearReads(){return this.invalidateReadsMatching()}async#i(){return typeof this.namespace=="function"&&(this.namespace=await this.namespace()),this.namespace}async#a(...e){let t=await this.#i();return pe([t,...e])}};var K=class extends b{static{i(this,"BlockNotFoundError")}constructor(e,t){super(`Block not found: ${e}`,t)}};var de=class{static{i(this,"HookRegistry")}#e={};on(e,t){this.#e[e]||=[],this.#e[e].push(t)}off(e,t){let n=!1,r=this.#e[e];return r&&(this.#e[e]=r.filter(s=>s===t?(n=!0,!1):!0)),n}once(e,t){let n=i(r=>{this.off(e,n),t(r)},"wrapped");this.on(e,n)}call(e,t){let n,r=this.#e[e];if(r)for(let s of r)n instanceof Promise?n=n.then(()=>s(t)):n=s(t);return n}};var _=class{static{i(this,"MethodInterceptor")}#e=new de;get hooks(){return this.#e}createProxy=i(e=>new Proxy(e,{get:i((t,n,r)=>{let s=Reflect.get(t,n,r);if(n==="constructor"||typeof s!="function")return s;let o=i((...c)=>this.#t({method:n,fn:s.bind(r),args:c}),"wrapped");return Object.defineProperty(o,"name",{get:i(()=>s.name,"get")}),o},"get")}),"createProxy");#t({method:e,fn:t,args:n}){let r=String(e),s=!1,o,c=this.#e.call(`before:${r}`,{get args(){return n},setArgs(...d){n=d},resolve(d){s||(s=!0,o=d)}}),l=i(()=>{s||(o=t(...n));let d=this.#e.call(`after:${r}`,{get args(){return n},get result(){return o},setResult(u){o=u}});return d instanceof Promise?d.then(()=>o):o},"wrappedAfterHooks");return c instanceof Promise?c.then(l):l()}};function w(a={}){let{adapter:e,store:t,chainId:n,...r}=a,s=new _,o=e||new I(r),l=t&&"clear"in t?t:new N(t),d={...o,adapter:o,hooks:s.hooks,cache:new k({store:l,namespace:i(()=>d.getChainId(),"namespace")}),isReadWrite(){return typeof this.adapter.write=="function"},extend(m){return Object.assign(this,m)},async getChainId(){return n??=await o.getChainId(),n},async getBlock(m,f){let g=await F({store:this.cache.store,key:this.cache.blockKey(m),fn:i(()=>this.adapter.getBlock(m),"fn")});if(!g&&f?.throws)throw new K(m);return g},getBalance(m){return F({store:this.cache.store,key:this.cache.balanceKey(m),fn:i(()=>this.adapter.getBalance(m),"fn")})},getTransaction(m){return F({store:this.cache.store,key:this.cache.transactionKey(m),fn:i(()=>this.adapter.getTransaction(m),"fn")})},waitForTransaction(m){return F({store:this.cache.store,key:this.cache.transactionReceiptKey(m),fn:i(()=>this.adapter.waitForTransaction(m),"fn")})},call(m){return F({store:this.cache.store,key:this.cache.callKey(m),fn:i(()=>this.adapter.call(m),"fn")})},async multicall({calls:m,...f}){let g=new Map,h=[],j=await Promise.all(m.map(async(L,ue)=>{let O=await this.cache.getRead({...L,block:f?.block});if(O!==void 0)return f.allowFailure===!1?O:{success:!0,value:O};g.set(ue,h.length),h.push(L)}));if(!h.length)return j;let Ie=await this.adapter.multicall({calls:h,...f});return Promise.all(j.map(async(L,ue)=>{if(L!==void 0)return L;let O=g.get(ue),{abi:Ke,address:_e,fn:We,args:Ge}=h[O],me=Ie[O],X;return f.allowFailure===!1?X=me:X=me.value,X!==void 0&&await this.cache.preloadRead({abi:Ke,address:_e,fn:We,args:Ge,block:f?.block,value:X}),me}))},getEvents({fromBlock:m="earliest",toBlock:f="latest",...g}){let h={fromBlock:m,toBlock:f,...g};return F({store:this.cache.store,key:this.cache.eventsKey(h),fn:i(async()=>this.adapter.getEvents(h),"fn")})},read(m){return F({store:this.cache.store,key:this.cache.readKey(m),fn:i(()=>this.adapter.read(m),"fn")})}},u=Object.getPrototypeOf(o);function T(){}i(T,"Client"),Object.defineProperties(T,{name:{value:`Client<${o.constructor.name}>`,enumerable:!1,writable:!1,configurable:!0}}),T.prototype=Object.create(u,{constructor:{value:T,enumerable:!1,writable:!0,configurable:!0},[Symbol.toStringTag]:{value:T.name,enumerable:!1,writable:!0,configurable:!0}});let E=Object.create(T.prototype,Object.getOwnPropertyDescriptors(d));return s.createProxy(E)}i(w,"createClient");var W=class{static{i(this,"ContractCache")}#e;#t;#n;constructor({abi:e,address:t,...n}){let r=n.clientCache?n.clientCache:new k(n);this.#e=e,this.#t=t,this.#n=r}get store(){return this.#n.store}clear(){return this.#n.clear()}eventsKey(e,t){return this.#n.eventsKey({abi:this.#e,address:this.#t,event:e,...t})}preloadEvents(e){return this.#n.preloadEvents({abi:this.#e,address:this.#t,...e})}getEvents(e,t){return this.#n.getEvents({abi:this.#e,address:this.#t,event:e,...t})}readKey(...[e,t,n]){return this.#n.readKey({abi:this.#e,address:this.#t,fn:e,args:t,...n})}preloadRead(e){return this.#n.preloadRead({abi:this.#e,address:this.#t,...e})}getRead(...[e,t,n]){return this.#n.getRead({abi:this.#e,address:this.#t,fn:e,args:t,...n})}invalidateRead(...[e,t,n]){return this.#n.invalidateRead({abi:this.#e,address:this.#t,fn:e,args:t,...n})}invalidateReadsMatching(e,t,n){return this.#n.invalidateReadsMatching({abi:this.#e,address:this.#t,fn:e,args:t,...n})}async clearReads(){return this.#n.invalidateReadsMatching({abi:this.#e,address:this.#t})}};var G=class{static{i(this,"ReadContract")}abi;address;client;cache;epochBlock;constructor({abi:e,address:t,epochBlock:n,client:r,...s}){this.abi=e,this.address=t,this.client=r??w(s),this.cache=new W({abi:e,address:t,clientCache:this.client.cache}),this.epochBlock=n}isReadWrite(){return this.client.isReadWrite()}extend(e){return Object.assign(this,e)}encodeDeployData(...[e,t]){return this.client.encodeDeployData({abi:this.abi,bytecode:e,args:t})}encodeFunctionData(...[e,t]){return this.client.encodeFunctionData({abi:this.abi,fn:e,args:t})}encodeFunctionReturn(e,t){return this.client.encodeFunctionReturn({abi:this.abi,fn:e,value:t})}decodeFunctionData(e){return this.client.decodeFunctionData({abi:this.abi,data:e})}decodeFunctionReturn(e,t){return this.client.decodeFunctionReturn({abi:this.abi,fn:e,data:t})}getEvents(e,{fromBlock:t,...n}={}){return this.epochBlock&&(!t||t==="earliest"||typeof t=="bigint"&&t<this.epochBlock)&&(t=this.epochBlock),this.client.getEvents({abi:this.abi,address:this.address,event:e,fromBlock:t,...n})}async multicall({calls:e,...t}){return this.client.multicall({calls:e.map(n=>({abi:this.abi,address:this.address,...n})),...t})}read(...[e,t,n]){let{block:r,...s}=n||{};return this.epochBlock&&(r==="earliest"||typeof r=="bigint"&&r<this.epochBlock)&&(r=this.epochBlock),this.client.read({abi:this.abi,address:this.address,fn:e,args:t,block:r,...s})}simulateWrite(...[e,t,n]){return this.client.simulateWrite({abi:this.abi,address:this.address,fn:e,args:t,...n})}},q=class extends G{static{i(this,"ReadWriteContract")}getSignerAddress(){return this.client.getSignerAddress()}write(...[e,t,n]){return this.client.write({abi:this.abi,address:this.address,fn:e,args:t,...n})}};function ce({abi:a,address:e,epochBlock:t,client:n,...r}){return n=n||w(r),n.isReadWrite()?new q({abi:a,address:e,client:n,epochBlock:t}):new G({abi:a,address:e,client:n,epochBlock:t})}i(ce,"createContract");function Oe(a={}){return w(a).extend({contract(e){return ce({...e,client:this})}})}i(Oe,"createDrift");var Se={name:"IERC20",abi:[{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}};var Me={name:"IERC721",abi:[{type:"function",name:"approve",inputs:[{name:"_approved",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"function",name:"balanceOf",inputs:[{name:"_owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getApproved",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"isApprovedForAll",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"setApprovalForAll",inputs:[{name:"_operator",type:"address",internalType:"address"},{name:"_approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceID",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"event",name:"Approval",inputs:[{name:"_owner",type:"address",indexed:!0,internalType:"address"},{name:"_approved",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ApprovalForAll",inputs:[{name:"_owner",type:"address",indexed:!0,internalType:"address"},{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"_from",type:"address",indexed:!0,internalType:"address"},{name:"_to",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}};var Be={name:"IERC1155",abi:[{type:"function",name:"balanceOf",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_id",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"balanceOfBatch",inputs:[{name:"_owners",type:"address[]",internalType:"address[]"},{name:"_ids",type:"uint256[]",internalType:"uint256[]"}],outputs:[{name:"",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"isApprovedForAll",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"safeBatchTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_ids",type:"uint256[]",internalType:"uint256[]"},{name:"_values",type:"uint256[]",internalType:"uint256[]"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_id",type:"uint256",internalType:"uint256"},{name:"_value",type:"uint256",internalType:"uint256"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setApprovalForAll",inputs:[{name:"_operator",type:"address",internalType:"address"},{name:"_approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceID",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"ApprovalForAll",inputs:[{name:"_owner",type:"address",indexed:!0,internalType:"address"},{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"TransferBatch",inputs:[{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_from",type:"address",indexed:!0,internalType:"address"},{name:"_to",type:"address",indexed:!0,internalType:"address"},{name:"_ids",type:"uint256[]",indexed:!1,internalType:"uint256[]"},{name:"_values",type:"uint256[]",indexed:!1,internalType:"uint256[]"}],anonymous:!1},{type:"event",name:"TransferSingle",inputs:[{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_from",type:"address",indexed:!0,internalType:"address"},{name:"_to",type:"address",indexed:!0,internalType:"address"},{name:"_id",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"URI",inputs:[{name:"_value",type:"string",indexed:!1,internalType:"string"},{name:"_id",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7"}};var De={name:"IERC4626",abi:[{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"asset",inputs:[],outputs:[{name:"assetTokenAddress",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"convertToAssets",inputs:[{name:"shares",type:"uint256",internalType:"uint256"}],outputs:[{name:"assets",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"convertToShares",inputs:[{name:"assets",type:"uint256",internalType:"uint256"}],outputs:[{name:"shares",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"deposit",inputs:[{name:"assets",type:"uint256",internalType:"uint256"},{name:"receiver",type:"address",internalType:"address"}],outputs:[{name:"shares",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"maxDeposit",inputs:[{name:"receiver",type:"address",internalType:"address"}],outputs:[{name:"maxAssets",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"maxMint",inputs:[{name:"receiver",type:"address",internalType:"address"}],outputs:[{name:"maxShares",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"maxRedeem",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"maxShares",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"maxWithdraw",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"maxAssets",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"mint",inputs:[{name:"shares",type:"uint256",internalType:"uint256"},{name:"receiver",type:"address",internalType:"address"}],outputs:[{name:"assets",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"previewDeposit",inputs:[{name:"assets",type:"uint256",internalType:"uint256"}],outputs:[{name:"shares",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"previewMint",inputs:[{name:"shares",type:"uint256",internalType:"uint256"}],outputs:[{name:"assets",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"previewRedeem",inputs:[{name:"shares",type:"uint256",internalType:"uint256"}],outputs:[{name:"assets",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"previewWithdraw",inputs:[{name:"assets",type:"uint256",internalType:"uint256"}],outputs:[{name:"shares",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"redeem",inputs:[{name:"shares",type:"uint256",internalType:"uint256"},{name:"receiver",type:"address",internalType:"address"},{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"assets",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalAssets",inputs:[],outputs:[{name:"totalManagedAssets",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"withdraw",inputs:[{name:"assets",type:"uint256",internalType:"uint256"},{name:"receiver",type:"address",internalType:"address"},{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"shares",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Deposit",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"assets",type:"uint256",indexed:!1,internalType:"uint256"},{name:"shares",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Withdraw",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"receiver",type:"address",indexed:!0,internalType:"address"},{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"assets",type:"uint256",indexed:!1,internalType:"uint256"},{name:"shares",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"}};var He="0x0000000000000000000000000000000000000000";0&&(module.exports={AbiEncoder,BaseReadAdapter,BaseReadWriteAdapter,BlockNotFoundError,ClientCache,ContractCache,DefaultAdapter,DefaultReadAdapter,DriftError,HEX_REGEX,LruStore,MethodInterceptor,ReadContract,ReadWriteContract,ZERO_ADDRESS,arrayToObject,arrayToSimplified,convert,createClient,createContract,createDrift,decodeFunctionData,decodeFunctionReturn,deleteMatches,deploy,encodeBytecodeCallData,encodeDeployData,encodeFunctionData,encodeFunctionReturn,erc1155,erc20,erc4626,erc721,getOrSet,isHexString,multicall,multicall3,prepareDeployData,prepareFunctionData,prepareFunctionReturn,prepareParams,read,simulateWrite,stringifyKey,write});
//# sourceMappingURL=index.cjs.map

@@ -1,2 +0,2 @@

import{A as B,B as I,C as h,D as g,E as P,F as W,G as n,H,I as G,J as N,K as a,L,a as r,b as o,c as i,d,e as y,f as l,g as u,h as m,i as c,j as f,k as T,l as b,m as x,n as A,o as v,p as _,q as C,r as O,s as F,t as M,u as R,v as D,w as S,x as E,y as k,z as w}from"./chunk-BP3Y6ILU.js";function j(s={}){return n(s).extend({contract(p){return a({...p,client:this})}})}r(j,"createDrift");var K={name:"IERC20",abi:[{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}};var U={name:"IERC721",abi:[{type:"function",name:"approve",inputs:[{name:"_approved",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"function",name:"balanceOf",inputs:[{name:"_owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getApproved",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"isApprovedForAll",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"setApprovalForAll",inputs:[{name:"_operator",type:"address",internalType:"address"},{name:"_approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceID",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"event",name:"Approval",inputs:[{name:"_owner",type:"address",indexed:!0,internalType:"address"},{name:"_approved",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ApprovalForAll",inputs:[{name:"_owner",type:"address",indexed:!0,internalType:"address"},{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"_from",type:"address",indexed:!0,internalType:"address"},{name:"_to",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}};var X={name:"IERC1155",abi:[{type:"function",name:"balanceOf",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_id",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"balanceOfBatch",inputs:[{name:"_owners",type:"address[]",internalType:"address[]"},{name:"_ids",type:"uint256[]",internalType:"uint256[]"}],outputs:[{name:"",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"isApprovedForAll",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"safeBatchTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_ids",type:"uint256[]",internalType:"uint256[]"},{name:"_values",type:"uint256[]",internalType:"uint256[]"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_id",type:"uint256",internalType:"uint256"},{name:"_value",type:"uint256",internalType:"uint256"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setApprovalForAll",inputs:[{name:"_operator",type:"address",internalType:"address"},{name:"_approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceID",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"ApprovalForAll",inputs:[{name:"_owner",type:"address",indexed:!0,internalType:"address"},{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"TransferBatch",inputs:[{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_from",type:"address",indexed:!0,internalType:"address"},{name:"_to",type:"address",indexed:!0,internalType:"address"},{name:"_ids",type:"uint256[]",indexed:!1,internalType:"uint256[]"},{name:"_values",type:"uint256[]",indexed:!1,internalType:"uint256[]"}],anonymous:!1},{type:"event",name:"TransferSingle",inputs:[{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_from",type:"address",indexed:!0,internalType:"address"},{name:"_to",type:"address",indexed:!0,internalType:"address"},{name:"_id",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"URI",inputs:[{name:"_value",type:"string",indexed:!1,internalType:"string"},{name:"_id",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7"}};export{C as AbiEncoder,O as BaseReadAdapter,F as BaseReadWriteAdapter,P as BlockNotFoundError,g as ClientCache,H as ContractCache,k as DefaultAdapter,E as DefaultReadAdapter,i as DriftError,D as HEX_REGEX,w as LruStore,W as MethodInterceptor,G as ReadContract,N as ReadWriteContract,L as ZERO_ADDRESS,b as arrayToObject,A as arrayToSimplified,R as convert,n as createClient,a as createContract,j as createDrift,x as decodeFunctionData,v as decodeFunctionReturn,I as deleteMatches,o as deploy,M as encodeBytecodeCallData,y as encodeFunctionData,_ as encodeFunctionReturn,X as erc1155,K as erc20,U as erc721,B as getOrSet,S as isHexString,m as multicall,u as multicall3,l as prepareFunctionData,d as prepareParams,c as read,f as simulateWrite,h as stringifyKey,T as write};
import{A as E,B as I,C as g,D as B,E as P,F as W,G as H,H as G,I as N,J as n,K as L,L as j,M as K,N as a,O as q,a as r,b as p,c as o,d,e as y,f as u,g as l,h as m,i as c,j as f,k as T,l as b,m as x,n as v,o as A,p as w,q as M,r as _,s as C,t as h,u as R,v as O,w as D,x as F,y as S,z as k}from"./chunk-UHHYMNQR.js";function U(s={}){return n(s).extend({contract(i){return a({...i,client:this})}})}r(U,"createDrift");var X={name:"IERC20",abi:[{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}};var V={name:"IERC721",abi:[{type:"function",name:"approve",inputs:[{name:"_approved",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"function",name:"balanceOf",inputs:[{name:"_owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getApproved",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"isApprovedForAll",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"setApprovalForAll",inputs:[{name:"_operator",type:"address",internalType:"address"},{name:"_approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceID",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"event",name:"Approval",inputs:[{name:"_owner",type:"address",indexed:!0,internalType:"address"},{name:"_approved",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ApprovalForAll",inputs:[{name:"_owner",type:"address",indexed:!0,internalType:"address"},{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"_from",type:"address",indexed:!0,internalType:"address"},{name:"_to",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}};var Z={name:"IERC1155",abi:[{type:"function",name:"balanceOf",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_id",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"balanceOfBatch",inputs:[{name:"_owners",type:"address[]",internalType:"address[]"},{name:"_ids",type:"uint256[]",internalType:"uint256[]"}],outputs:[{name:"",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"isApprovedForAll",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"safeBatchTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_ids",type:"uint256[]",internalType:"uint256[]"},{name:"_values",type:"uint256[]",internalType:"uint256[]"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"_from",type:"address",internalType:"address"},{name:"_to",type:"address",internalType:"address"},{name:"_id",type:"uint256",internalType:"uint256"},{name:"_value",type:"uint256",internalType:"uint256"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setApprovalForAll",inputs:[{name:"_operator",type:"address",internalType:"address"},{name:"_approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceID",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"ApprovalForAll",inputs:[{name:"_owner",type:"address",indexed:!0,internalType:"address"},{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"TransferBatch",inputs:[{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_from",type:"address",indexed:!0,internalType:"address"},{name:"_to",type:"address",indexed:!0,internalType:"address"},{name:"_ids",type:"uint256[]",indexed:!1,internalType:"uint256[]"},{name:"_values",type:"uint256[]",indexed:!1,internalType:"uint256[]"}],anonymous:!1},{type:"event",name:"TransferSingle",inputs:[{name:"_operator",type:"address",indexed:!0,internalType:"address"},{name:"_from",type:"address",indexed:!0,internalType:"address"},{name:"_to",type:"address",indexed:!0,internalType:"address"},{name:"_id",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"URI",inputs:[{name:"_value",type:"string",indexed:!1,internalType:"string"},{name:"_id",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7"}};var z={name:"IERC4626",abi:[{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"asset",inputs:[],outputs:[{name:"assetTokenAddress",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"convertToAssets",inputs:[{name:"shares",type:"uint256",internalType:"uint256"}],outputs:[{name:"assets",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"convertToShares",inputs:[{name:"assets",type:"uint256",internalType:"uint256"}],outputs:[{name:"shares",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"deposit",inputs:[{name:"assets",type:"uint256",internalType:"uint256"},{name:"receiver",type:"address",internalType:"address"}],outputs:[{name:"shares",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"maxDeposit",inputs:[{name:"receiver",type:"address",internalType:"address"}],outputs:[{name:"maxAssets",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"maxMint",inputs:[{name:"receiver",type:"address",internalType:"address"}],outputs:[{name:"maxShares",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"maxRedeem",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"maxShares",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"maxWithdraw",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"maxAssets",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"mint",inputs:[{name:"shares",type:"uint256",internalType:"uint256"},{name:"receiver",type:"address",internalType:"address"}],outputs:[{name:"assets",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"previewDeposit",inputs:[{name:"assets",type:"uint256",internalType:"uint256"}],outputs:[{name:"shares",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"previewMint",inputs:[{name:"shares",type:"uint256",internalType:"uint256"}],outputs:[{name:"assets",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"previewRedeem",inputs:[{name:"shares",type:"uint256",internalType:"uint256"}],outputs:[{name:"assets",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"previewWithdraw",inputs:[{name:"assets",type:"uint256",internalType:"uint256"}],outputs:[{name:"shares",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"redeem",inputs:[{name:"shares",type:"uint256",internalType:"uint256"},{name:"receiver",type:"address",internalType:"address"},{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"assets",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalAssets",inputs:[],outputs:[{name:"totalManagedAssets",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"withdraw",inputs:[{name:"assets",type:"uint256",internalType:"uint256"},{name:"receiver",type:"address",internalType:"address"},{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"shares",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Deposit",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"assets",type:"uint256",indexed:!1,internalType:"uint256"},{name:"shares",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Withdraw",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"receiver",type:"address",indexed:!0,internalType:"address"},{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"assets",type:"uint256",indexed:!1,internalType:"uint256"},{name:"shares",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],methodIdentifiers:{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"}};export{h as AbiEncoder,R as BaseReadAdapter,O as BaseReadWriteAdapter,G as BlockNotFoundError,H as ClientCache,L as ContractCache,I as DefaultAdapter,E as DefaultReadAdapter,o as DriftError,S as HEX_REGEX,g as LruStore,N as MethodInterceptor,j as ReadContract,K as ReadWriteContract,q as ZERO_ADDRESS,b as arrayToObject,v as arrayToSimplified,F as convert,n as createClient,a as createContract,U as createDrift,x as decodeFunctionData,A as decodeFunctionReturn,P as deleteMatches,p as deploy,D as encodeBytecodeCallData,w as encodeDeployData,y as encodeFunctionData,_ as encodeFunctionReturn,Z as erc1155,X as erc20,z as erc4626,V as erc721,B as getOrSet,k as isHexString,m as multicall,l as multicall3,M as prepareDeployData,u as prepareFunctionData,C as prepareFunctionReturn,d as prepareParams,c as read,f as simulateWrite,W as stringifyKey,T as write};
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/client/Drift.ts","../src/artifacts/IERC20.ts","../src/artifacts/IERC721.ts","../src/artifacts/IERC1155.ts"],"sourcesContent":["import type { DefaultAdapter } from \"src/adapter/DefaultAdapter\";\nimport type { Abi } from \"src/adapter/types/Abi\";\nimport type { Adapter } from \"src/adapter/types/Adapter\";\nimport {\n type Client,\n type ClientOptions,\n createClient,\n} from \"src/client/Client\";\nimport type { ClientCache } from \"src/client/cache/ClientCache\";\nimport {\n type Contract,\n type ContractBaseOptions,\n createContract,\n} from \"src/client/contract/Contract\";\nimport type { HookRegistry } from \"src/client/hooks/HookRegistry\";\nimport type { LruStore } from \"src/store/LruStore\";\nimport type { Store } from \"src/store/Store\";\n\n/**\n * A client for interacting with an Ethereum network through an\n * {@linkcode Adapter} with {@link ClientCache caching} and\n * {@link HookRegistry hooks}.\n *\n * Streamlined clients for interacting with specific contracts can be created\n * using the {@linkcode Drift.contract} method.\n */\nexport type Drift<\n TAdapter extends Adapter = Adapter,\n TStore extends Store = Store,\n> = Client<\n TAdapter,\n TStore,\n {\n contract<TAbi extends Abi, TThis extends Drift<TAdapter, TStore>>(\n this: TThis,\n options: ContractBaseOptions<TAbi>,\n ): Contract<TAbi, TThis[\"adapter\"], TThis[\"cache\"][\"store\"], TThis>;\n }\n>;\n\nexport type DriftOptions<\n TAdapter extends Adapter = Adapter,\n TStore extends Store = Store,\n> = ClientOptions<TAdapter, TStore>;\n\nexport function createDrift<\n TAdapter extends Adapter = DefaultAdapter,\n TStore extends Store = LruStore,\n>(options: DriftOptions<TAdapter, TStore> = {}): Drift<TAdapter, TStore> {\n return createClient(options).extend({\n contract(options) {\n return createContract({\n ...options,\n client: this,\n });\n },\n });\n}\n","export const IERC20 = {\n name: 'IERC20' as const,\n abi: [{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}] as const,\n methodIdentifiers: {\"allowance(address,address)\":\"dd62ed3e\",\"approve(address,uint256)\":\"095ea7b3\",\"balanceOf(address)\":\"70a08231\",\"decimals()\":\"313ce567\",\"name()\":\"06fdde03\",\"symbol()\":\"95d89b41\",\"totalSupply()\":\"18160ddd\",\"transfer(address,uint256)\":\"a9059cbb\",\"transferFrom(address,address,uint256)\":\"23b872dd\"} as const,\n};\n","export const IERC721 = {\n name: 'IERC721' as const,\n abi: [{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"_approved\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApproved\",\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isApprovedForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ownerOf\",\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setApprovalForAll\",\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ApprovalForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false}] as const,\n methodIdentifiers: {\"approve(address,uint256)\":\"095ea7b3\",\"balanceOf(address)\":\"70a08231\",\"getApproved(uint256)\":\"081812fc\",\"isApprovedForAll(address,address)\":\"e985e9c5\",\"ownerOf(uint256)\":\"6352211e\",\"safeTransferFrom(address,address,uint256)\":\"42842e0e\",\"safeTransferFrom(address,address,uint256,bytes)\":\"b88d4fde\",\"setApprovalForAll(address,bool)\":\"a22cb465\",\"supportsInterface(bytes4)\":\"01ffc9a7\",\"transferFrom(address,address,uint256)\":\"23b872dd\"} as const,\n};\n","export const IERC1155 = {\n name: 'IERC1155' as const,\n abi: [{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_id\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"balanceOfBatch\",\"inputs\":[{\"name\":\"_owners\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"_ids\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isApprovedForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"safeBatchTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_ids\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"_values\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"_data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_id\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_value\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setApprovalForAll\",\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"ApprovalForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TransferBatch\",\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_ids\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"_values\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TransferSingle\",\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_id\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"_value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"URI\",\"inputs\":[{\"name\":\"_value\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"_id\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false}] as const,\n methodIdentifiers: {\"balanceOf(address,uint256)\":\"00fdd58e\",\"balanceOfBatch(address[],uint256[])\":\"4e1273f4\",\"isApprovedForAll(address,address)\":\"e985e9c5\",\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":\"2eb2c2d6\",\"safeTransferFrom(address,address,uint256,uint256,bytes)\":\"f242432a\",\"setApprovalForAll(address,bool)\":\"a22cb465\",\"supportsInterface(bytes4)\":\"01ffc9a7\"} as const,\n};\n"],"mappings":"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","names":["createDrift","options","createClient","createContract","__name","IERC20","IERC721","IERC1155"]}
{"version":3,"sources":["../src/client/Drift.ts","../src/artifacts/IERC20.ts","../src/artifacts/IERC721.ts","../src/artifacts/IERC1155.ts","../src/artifacts/IERC4626.ts"],"sourcesContent":["import type { DefaultAdapter } from \"src/adapter/DefaultAdapter\";\nimport type { Abi } from \"src/adapter/types/Abi\";\nimport type { Adapter } from \"src/adapter/types/Adapter\";\nimport {\n type Client,\n type ClientOptions,\n createClient,\n} from \"src/client/Client\";\nimport type { ClientCache } from \"src/client/cache/ClientCache\";\nimport {\n type Contract,\n type ContractBaseOptions,\n createContract,\n} from \"src/client/contract/Contract\";\nimport type { HookRegistry } from \"src/client/hooks/HookRegistry\";\nimport type { LruStore } from \"src/store/LruStore\";\nimport type { Store } from \"src/store/Store\";\n\n/**\n * A client for interacting with an Ethereum network through an\n * {@linkcode Adapter} with {@link ClientCache caching} and\n * {@link HookRegistry hooks}.\n *\n * Streamlined clients for interacting with specific contracts can be created\n * using the {@linkcode Drift.contract} method.\n */\nexport type Drift<\n TAdapter extends Adapter = Adapter,\n TStore extends Store = Store,\n> = Client<\n TAdapter,\n TStore,\n {\n contract<TAbi extends Abi, TThis extends Drift<TAdapter, TStore>>(\n this: TThis,\n options: ContractBaseOptions<TAbi>,\n ): Contract<TAbi, TThis[\"adapter\"], TThis[\"cache\"][\"store\"], TThis>;\n }\n>;\n\nexport type DriftOptions<\n TAdapter extends Adapter = Adapter,\n TStore extends Store = Store,\n> = ClientOptions<TAdapter, TStore>;\n\nexport function createDrift<\n TAdapter extends Adapter = DefaultAdapter,\n TStore extends Store = LruStore,\n>(options: DriftOptions<TAdapter, TStore> = {}): Drift<TAdapter, TStore> {\n return createClient(options).extend({\n contract(options) {\n return createContract({\n ...options,\n client: this,\n });\n },\n });\n}\n","export const IERC20 = {\n name: 'IERC20' as const,\n abi: [{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}] as const,\n methodIdentifiers: {\"allowance(address,address)\":\"dd62ed3e\",\"approve(address,uint256)\":\"095ea7b3\",\"balanceOf(address)\":\"70a08231\",\"decimals()\":\"313ce567\",\"name()\":\"06fdde03\",\"symbol()\":\"95d89b41\",\"totalSupply()\":\"18160ddd\",\"transfer(address,uint256)\":\"a9059cbb\",\"transferFrom(address,address,uint256)\":\"23b872dd\"} as const,\n};\n","export const IERC721 = {\n name: 'IERC721' as const,\n abi: [{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"_approved\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getApproved\",\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isApprovedForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"ownerOf\",\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setApprovalForAll\",\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ApprovalForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false}] as const,\n methodIdentifiers: {\"approve(address,uint256)\":\"095ea7b3\",\"balanceOf(address)\":\"70a08231\",\"getApproved(uint256)\":\"081812fc\",\"isApprovedForAll(address,address)\":\"e985e9c5\",\"ownerOf(uint256)\":\"6352211e\",\"safeTransferFrom(address,address,uint256)\":\"42842e0e\",\"safeTransferFrom(address,address,uint256,bytes)\":\"b88d4fde\",\"setApprovalForAll(address,bool)\":\"a22cb465\",\"supportsInterface(bytes4)\":\"01ffc9a7\",\"transferFrom(address,address,uint256)\":\"23b872dd\"} as const,\n};\n","export const IERC1155 = {\n name: 'IERC1155' as const,\n abi: [{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_id\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"balanceOfBatch\",\"inputs\":[{\"name\":\"_owners\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"_ids\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isApprovedForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"safeBatchTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_ids\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"_values\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"_data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"safeTransferFrom\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_id\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_value\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setApprovalForAll\",\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"ApprovalForAll\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TransferBatch\",\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_ids\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"_values\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TransferSingle\",\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"_id\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"_value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"URI\",\"inputs\":[{\"name\":\"_value\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"_id\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"}],\"anonymous\":false}] as const,\n methodIdentifiers: {\"balanceOf(address,uint256)\":\"00fdd58e\",\"balanceOfBatch(address[],uint256[])\":\"4e1273f4\",\"isApprovedForAll(address,address)\":\"e985e9c5\",\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":\"2eb2c2d6\",\"safeTransferFrom(address,address,uint256,uint256,bytes)\":\"f242432a\",\"setApprovalForAll(address,bool)\":\"a22cb465\",\"supportsInterface(bytes4)\":\"01ffc9a7\"} as const,\n};\n","export const IERC4626 = {\n name: 'IERC4626' as const,\n abi: [{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"asset\",\"inputs\":[],\"outputs\":[{\"name\":\"assetTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"convertToAssets\",\"inputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"assets\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"convertToShares\",\"inputs\":[{\"name\":\"assets\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"assets\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"maxDeposit\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"maxAssets\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxMint\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"maxShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxRedeem\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"maxShares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxWithdraw\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"maxAssets\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"assets\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"previewDeposit\",\"inputs\":[{\"name\":\"assets\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"previewMint\",\"inputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"assets\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"previewRedeem\",\"inputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"assets\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"previewWithdraw\",\"inputs\":[{\"name\":\"assets\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"redeem\",\"inputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"assets\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalAssets\",\"inputs\":[],\"outputs\":[{\"name\":\"totalManagedAssets\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"assets\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"assets\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdraw\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"assets\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"shares\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}] as const,\n methodIdentifiers: {\"allowance(address,address)\":\"dd62ed3e\",\"approve(address,uint256)\":\"095ea7b3\",\"asset()\":\"38d52e0f\",\"balanceOf(address)\":\"70a08231\",\"convertToAssets(uint256)\":\"07a2d13a\",\"convertToShares(uint256)\":\"c6e6f592\",\"decimals()\":\"313ce567\",\"deposit(uint256,address)\":\"6e553f65\",\"maxDeposit(address)\":\"402d267d\",\"maxMint(address)\":\"c63d75b6\",\"maxRedeem(address)\":\"d905777e\",\"maxWithdraw(address)\":\"ce96cb77\",\"mint(uint256,address)\":\"94bf804d\",\"name()\":\"06fdde03\",\"previewDeposit(uint256)\":\"ef8b30f7\",\"previewMint(uint256)\":\"b3d7f6b9\",\"previewRedeem(uint256)\":\"4cdad506\",\"previewWithdraw(uint256)\":\"0a28a477\",\"redeem(uint256,address,address)\":\"ba087652\",\"symbol()\":\"95d89b41\",\"totalAssets()\":\"01e1d114\",\"totalSupply()\":\"18160ddd\",\"transfer(address,uint256)\":\"a9059cbb\",\"transferFrom(address,address,uint256)\":\"23b872dd\",\"withdraw(uint256,address,address)\":\"b460af94\"} as const,\n};\n"],"mappings":"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","names":["createDrift","options","createClient","createContract","__name","IERC20","IERC721","IERC1155","IERC4626"]}

@@ -1,2 +0,2 @@

"use strict";var at=Object.create;var W=Object.defineProperty;var nt=Object.getOwnPropertyDescriptor;var rt=Object.getOwnPropertyNames;var it=Object.getPrototypeOf,st=Object.prototype.hasOwnProperty;var i=(n,e)=>W(n,"name",{value:e,configurable:!0});var ot=(n,e)=>{for(var t in e)W(n,t,{get:e[t],enumerable:!0})},le=(n,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of rt(e))!st.call(n,r)&&r!==t&&W(n,r,{get:()=>e[r],enumerable:!(a=nt(e,r))||a.enumerable});return n};var U=(n,e,t)=>(t=n!=null?at(it(n)):{},le(e||!n||!n.__esModule?W(t,"default",{value:n,enumerable:!0}):t,n)),ct=n=>le(W({},"__esModule",{value:!0}),n);var lt={};ot(lt,{ALICE:()=>Je,BOB:()=>ze,MockAdapter:()=>M,MockContract:()=>D,NANCY:()=>Xe,NotImplementedError:()=>E,createMockClient:()=>H,createMockDrift:()=>Ue,createStubBlock:()=>Ee,createStubEvent:()=>ce,createStubEvents:()=>Re,createStubTransaction:()=>we,createStubTransactionReceipt:()=>Me,mockErc20:()=>Ve,randomAddress:()=>x,randomHex:()=>f,randomInt:()=>j,testToken:()=>qe});module.exports=ct(lt);var C=require("ox");var Te=require("ox");function V({abi:n,name:e,kind:t,values:a}){let r=Te.AbiItem.fromAbi(n,e,{args:a});return!r||!(t in r)?{}:Object.fromEntries(r[t].map(({name:s},o)=>[s||o,a?.[o]]))}i(V,"arrayToObject");var y=class n extends Error{static prefix="\u2716 ";static name="Drift Error";constructor(e,t){let a;try{a=e?.message??String(e)}catch{throw e}super(a),this.name=t?.name??n.name;let r=e instanceof Error,s=t?.cause??e?.cause,o=e;r||(o=new Error,Error.captureStackTrace?.(o,new.target));let c=o.stack,b;e?.name&&e.name!=="Error"?b=e.name:r&&e.constructor.name!=="Error"&&(b=e.constructor.name),Object.defineProperty(this,"stack",{get(){let p=`${t?.prefix??n.prefix}${this.name}`;if(b&&(p+=` [${b}]`),this.message&&(p+=`: ${this.message}`.replaceAll(`
"use strict";var at=Object.create;var G=Object.defineProperty;var nt=Object.getOwnPropertyDescriptor;var rt=Object.getOwnPropertyNames;var it=Object.getPrototypeOf,st=Object.prototype.hasOwnProperty;var i=(n,e)=>G(n,"name",{value:e,configurable:!0});var ot=(n,e)=>{for(var t in e)G(n,t,{get:e[t],enumerable:!0})},le=(n,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of rt(e))!st.call(n,r)&&r!==t&&G(n,r,{get:()=>e[r],enumerable:!(a=nt(e,r))||a.enumerable});return n};var U=(n,e,t)=>(t=n!=null?at(it(n)):{},le(e||!n||!n.__esModule?G(t,"default",{value:n,enumerable:!0}):t,n)),ct=n=>le(G({},"__esModule",{value:!0}),n);var Tt={};ot(Tt,{ALICE:()=>Je,BOB:()=>ze,MissingStubError:()=>E,MockAdapter:()=>M,MockContract:()=>D,NANCY:()=>Xe,createMockClient:()=>H,createMockDrift:()=>Ue,createStubBlock:()=>Ee,createStubEvent:()=>ce,createStubEvents:()=>Re,createStubTransaction:()=>we,createStubTransactionReceipt:()=>Me,mockErc20:()=>Ve,randomAddress:()=>x,randomHex:()=>f,randomInt:()=>j,testToken:()=>qe});module.exports=ct(Tt);var C=require("ox");var Te=require("ox");function V({abi:n,name:e,kind:t,values:a}){let r=Te.AbiItem.fromAbi(n,e,{args:a});return!r||!(t in r)?{}:Object.fromEntries(r[t].map(({name:s},o)=>[s||o,a?.[o]]))}i(V,"arrayToObject");var y=class n extends Error{static prefix="\u2716 ";static name="Drift Error";constructor(e,t){let a;try{a=e?.message??String(e)}catch{throw e}super(a),this.name=t?.name??n.name;let r=e instanceof Error,s=t?.cause??e?.cause,o=e;r||(o=new Error,Error.captureStackTrace?.(o,new.target));let c=o.stack,b;e?.name&&e.name!=="Error"?b=e.name:r&&e.constructor.name!=="Error"&&(b=e.constructor.name),Object.defineProperty(this,"stack",{get(){let p=`${t?.prefix??n.prefix}${this.name}`;if(b&&(p+=` [${b}]`),this.message&&(p+=`: ${this.message}`.replaceAll(`
`,`

@@ -11,3 +11,3 @@ `)),c){let u=c.split(`

${t.message}`),e.message+=`
${n.message.replace(n.shortMessage,"").trimStart()}`,e.message=e.message.trimStart(),new y(e)}i(T,"handleError");function fe({abi:n,data:e}){try{let t=C.Hex.slice(e,0,4),a=C.Hex.slice(e,4),r=C.AbiFunction.fromAbi(n,t),s=C.AbiParameters.decode(r.inputs,a,{as:"Array",checksumAddress:!0}),o=r.name,c=V({abi:n,name:o,kind:"inputs",values:s});return{functionName:o,args:c}}catch(t){T(t)}}i(fe,"decodeFunctionData");var ie=require("ox");function ye({abi:n,name:e,kind:t,values:a}){let r=V({abi:n,name:e,kind:t,values:a}),s=Object.values(r);return s.length===1?s[0]:r}i(ye,"arrayToSimplified");function Ae({abi:n,data:e,fn:t}){try{let a=ie.AbiFunction.fromAbi(n,t),r=ie.AbiFunction.decodeResult(a,e,{as:"Array"});return a.outputs.length===1?r:ye({abi:n,name:a.name,kind:"outputs",values:r})}catch(a){T(a)}}i(Ae,"decodeFunctionReturn");var ge=require("ox");var dt={type:"constructor",inputs:[],stateMutability:"nonpayable"};function N({abi:n,type:e,name:t,kind:a,value:r}){let s=n.filter(u=>u.type!==e||u.name!==t?!1:a in u);if(!s.length){if(e==="constructor")return{abiEntry:dt,params:[]};throw new y(`No matching ABI entry for ${e} ${t} with ${a}`)}if(s.length===1){let u=s[0],l=u[a];return l.length?he(r,l)?{abiEntry:u,params:[r]}:{abiEntry:u,params:l.map(({name:g},m)=>r?.[g||m])}:{abiEntry:u,params:[]}}let o=r&&typeof r=="object"?Object.keys(r).length:0,c=s[0],b=[],p=0;for(let u of s){let l=u[a];if(!l.length){if(!o)return{abiEntry:u,params:[]};continue}if(he(r,l))return{abiEntry:u,params:[r]};let g=r||{},m=[],h=0;for(let[P,{name:F}]of l.entries()){let I=F||P;m.push(g[I]),I in g&&h++}h>p&&(c=u,b=m,p=h)}return{abiEntry:c,params:b}}i(N,"prepareParams");function he(n,e){if(e.length!==1)return!1;if(!n)return!0;let{type:t,name:a}=e[0],r=t.match(/(\[\d*\])+$/)?.[0];if(!r)return typeof n!="object";if(!Array.isArray(n))return!1;if(a)return!0;let s=n;for(let o of r.match(/\[\d*]/g))s=n?.[0];return!Array.isArray(s)}i(he,"isUnpacked");function Fe({abi:n,bytecode:e,args:t}){let{data:a}=pt({abi:n,bytecode:e,args:t});return a}i(Fe,"encodeDeployData");function pt({abi:n,args:e,bytecode:t}){try{let{abiEntry:a,params:r}=N({abi:n,type:"constructor",name:void 0,kind:"inputs",value:e});return{abiFn:a,data:ge.AbiConstructor.encode(a,{args:r,bytecode:t})}}catch(a){T(a)}}i(pt,"prepareDeployData");var xe=require("ox");function Pe({abi:n,fn:e,args:t}){let{data:a}=S({abi:n,fn:e,args:t});return a}i(Pe,"encodeFunctionData");function S({abi:n,args:e,fn:t}){try{let{abiEntry:a,params:r}=N({abi:n,type:"function",name:t,kind:"inputs",value:e});return{abiFn:a,data:xe.AbiFunction.encodeData(a,r)}}catch(a){T(a)}}i(S,"prepareFunctionData");var Ne=require("ox");function ke({abi:n,fn:e,value:t}){try{let{abiEntry:a,params:r}=N({abi:n,type:"function",name:e,kind:"outputs",value:t});return Ne.AbiFunction.encodeResult(a,r,{as:"Array"})}catch(a){T(a)}}i(ke,"encodeFunctionReturn");var w=class{static{i(this,"AbiEncoder")}encodeDeployData(e){return Fe(e)}encodeFunctionData(e){return Pe(e)}encodeFunctionReturn(e){return ke(e)}decodeFunctionData(e){return fe(e)}decodeFunctionReturn(e){return Ae(e)}};function k(n,e,t){return e(n)?t(n):Array.isArray(n)?n.map(a=>k(a,e,t)):n&&typeof n=="object"?Object.fromEntries(Object.entries(n).map(([a,r])=>[a,k(r,e,t)])):n}i(k,"convert");var ve=U(require("safe-stable-stringify"),1);function q(n,e){return(0,ve.default)(n,(t,a)=>typeof a=="bigint"?a.toString():a,e)}i(q,"stringifyKey");var oe=U(require("lodash.ismatch"),1),Se=require("sinon");var se=U(require("safe-stable-stringify"),1);function Ce(n,e=!0){return e&&(n=k(n,a=>a&&typeof a=="object"&&"abi"in a,({abi:a,...r})=>({abi:(0,se.default)(a)?.replace(/(?<=.{100}).+/,"...]"),...r}))),(0,se.default)(n,bt,2)?.replaceAll('\\"','"')?.replace(/"([^"]+)"(:)|"(\d+n)"/g,"$1$2$3")?.replace(/"(\[.*?\])"/g,"$1")}i(Ce,"formatArgsForDisplay");function bt(n,e){return typeof e=="bigint"?`${e}n`:e}i(bt,"bigintReplacer");var z=class{static{i(this,"StubStore")}#e=new Map;reset(e){return e?this.#e.delete(e):this.#e.clear()}has(e){let{method:t,key:a,matchPartial:r}=e,s=this.#e.get(t);if(!s)return!1;if(!a||s.keyedStubs.has(a))return!0;if(!r)return!1;let o=JSON.parse(a);for(let c of s.keyedStubs.keys())if((0,oe.default)(o,JSON.parse(c)))return!0;return!!s.defaultStub}get(e){let{method:t,key:a,matchPartial:r,create:s}=e,o=String(t),c=this.#e.get(t);if(!c&&(c={defaultStub:void 0,keyedStubs:new Map},this.#e.set(t,c),s)){let p=s(L(o));return a?c.keyedStubs.set(a,p):c.defaultStub=p,p}if(!a)return c.defaultStub||=s?s(L(o)):L(o),c.defaultStub;if(c.keyedStubs.has(a))return c.keyedStubs.get(a);if(r){let p=c.defaultStub;if(c.keyedStubs.size){let u=JSON.parse(a),l="";for(let[g,m]of c.keyedStubs.entries())(0,oe.default)(u,JSON.parse(g))&&g.length>l.length&&(p=m,l=g)}if(p)return p}let b=s?s(L(o)):L(o);return c.keyedStubs.set(a,b),b}},E=class extends y{static{i(this,"NotImplementedError")}constructor({method:e,args:t}){super(ut(e,t),{name:"NotImplementedError"})}};function L(n){return(0,Se.stub)().callsFake((...e)=>{throw new E({method:n,args:e})})}i(L,"createDefaultStub");function ut(n,e){let t=`Missing stub for mock method call.
${n.message.replace(n.shortMessage,"").trimStart()}`,e.message=e.message.trimStart(),new y(e)}i(T,"handleError");function fe({abi:n,data:e}){try{let t=C.Hex.slice(e,0,4),a=C.Hex.slice(e,4),r=C.AbiFunction.fromAbi(n,t),s=C.AbiParameters.decode(r.inputs,a,{as:"Array",checksumAddress:!0}),o=r.name,c=V({abi:n,name:o,kind:"inputs",values:s});return{functionName:o,args:c}}catch(t){T(t)}}i(fe,"decodeFunctionData");var ie=require("ox");function ye({abi:n,name:e,kind:t,values:a}){let r=V({abi:n,name:e,kind:t,values:a}),s=Object.values(r);return s.length===1?s[0]:r}i(ye,"arrayToSimplified");function Ae({abi:n,data:e,fn:t}){try{let a=ie.AbiFunction.fromAbi(n,t),r=ie.AbiFunction.decodeResult(a,e,{as:"Array"});return a.outputs.length===1?r:ye({abi:n,name:a.name,kind:"outputs",values:r})}catch(a){T(a)}}i(Ae,"decodeFunctionReturn");var ge=require("ox");var dt={type:"constructor",inputs:[],stateMutability:"nonpayable"};function N({abi:n,type:e,name:t,kind:a,value:r}){let s=n.filter(u=>u.type!==e||u.name!==t?!1:a in u);if(!s.length){if(e==="constructor")return{abiEntry:dt,params:[]};throw new y(`No matching ABI entry for ${e} ${t} with ${a}`)}if(s.length===1){let u=s[0],l=u[a];return l.length?he(r,l)?{abiEntry:u,params:[r]}:{abiEntry:u,params:l.map(({name:g},m)=>r?.[g||m])}:{abiEntry:u,params:[]}}let o=r&&typeof r=="object"?Object.keys(r).length:0,c=s[0],b=[],p=0;for(let u of s){let l=u[a];if(!l.length){if(!o)return{abiEntry:u,params:[]};continue}if(he(r,l))return{abiEntry:u,params:[r]};let g=r||{},m=[],h=0;for(let[P,{name:F}]of l.entries()){let I=F||P;m.push(g[I]),I in g&&h++}h>p&&(c=u,b=m,p=h)}return{abiEntry:c,params:b}}i(N,"prepareParams");function he(n,e){if(e.length!==1)return!1;if(!n)return!0;let{type:t,name:a}=e[0],r=t.match(/(\[\d*\])+$/)?.[0];if(!r)return typeof n!="object";if(!Array.isArray(n))return!1;if(a)return!0;let s=n;for(let o of r.match(/\[\d*]/g))s=n?.[0];return!Array.isArray(s)}i(he,"isUnpacked");function Fe(n){return pt(n).data}i(Fe,"encodeDeployData");function pt({abi:n,args:e,bytecode:t}){try{let{abiEntry:a,params:r}=N({abi:n,type:"constructor",name:void 0,kind:"inputs",value:e});return{abiFn:a,data:ge.AbiConstructor.encode(a,{args:r,bytecode:t})}}catch(a){T(a)}}i(pt,"prepareDeployData");var xe=require("ox");function Pe(n){return S(n).data}i(Pe,"encodeFunctionData");function S({abi:n,args:e,fn:t}){try{let{abiEntry:a,params:r}=N({abi:n,type:"function",name:t,kind:"inputs",value:e});return{abiFn:a,data:xe.AbiFunction.encodeData(a,r)}}catch(a){T(a)}}i(S,"prepareFunctionData");var Ne=require("ox");function ke(n){return bt(n).data}i(ke,"encodeFunctionReturn");function bt({abi:n,fn:e,value:t}){try{let{abiEntry:a,params:r}=N({abi:n,type:"function",name:e,kind:"outputs",value:t});return{abiFn:a,data:Ne.AbiFunction.encodeResult(a,r,{as:"Array"})}}catch(a){T(a)}}i(bt,"prepareFunctionReturn");var w=class{static{i(this,"AbiEncoder")}encodeDeployData(e){return Fe(e)}encodeFunctionData(e){return Pe(e)}encodeFunctionReturn(e){return ke(e)}decodeFunctionData(e){return fe(e)}decodeFunctionReturn(e){return Ae(e)}};function k(n,e,t){return e(n)?t(n):Array.isArray(n)?n.map(a=>k(a,e,t)):n&&typeof n=="object"?Object.fromEntries(Object.entries(n).map(([a,r])=>[a,k(r,e,t)])):n}i(k,"convert");var ve=U(require("safe-stable-stringify"),1);function q(n,e){return(0,ve.default)(n,(t,a)=>typeof a=="bigint"?a.toString():a,e)}i(q,"stringifyKey");var oe=U(require("lodash.ismatch"),1),Se=require("sinon");var se=U(require("safe-stable-stringify"),1);function Ce(n,e=!0){return e&&(n=k(n,a=>a&&typeof a=="object"&&"abi"in a,({abi:a,...r})=>({abi:(0,se.default)(a)?.replace(/(?<=.{100}).+/,"...]"),...r}))),(0,se.default)(n,ut,2)?.replaceAll('\\"','"')?.replace(/"([^"]+)"(:)|"(\d+n)"/g,"$1$2$3")?.replace(/"(\[.*?\])"/g,"$1")}i(Ce,"formatArgsForDisplay");function ut(n,e){return typeof e=="bigint"?`${e}n`:e}i(ut,"bigintReplacer");var z=class{static{i(this,"StubStore")}#e=new Map;reset(e){return e?this.#e.delete(e):this.#e.clear()}has(e){let{method:t,key:a,matchPartial:r}=e,s=this.#e.get(t);if(!s)return!1;if(!a)return!!s.defaultStub;if(s.keyedStubs.has(a))return!0;if(!r)return!1;if(s.defaultStub)return!0;if(!s.keyedStubs.size)return!1;let o=JSON.parse(a);for(let c of s.keyedStubs.keys())if((0,oe.default)(o,JSON.parse(c)))return!0;return!1}get(e){let{method:t,key:a,matchPartial:r,create:s}=e,o=String(t),c=this.#e.get(t);if(!c&&(c={defaultStub:void 0,keyedStubs:new Map},this.#e.set(t,c),s)){let p=s(L(o));return a?c.keyedStubs.set(a,p):c.defaultStub=p,p}if(!a)return c.defaultStub||=s?s(L(o)):L(o),c.defaultStub;if(c.keyedStubs.has(a))return c.keyedStubs.get(a);if(r){let p=c.defaultStub;if(c.keyedStubs.size){let u=JSON.parse(a),l="";for(let[g,m]of c.keyedStubs.entries())g.length>l.length&&(0,oe.default)(u,JSON.parse(g))&&(p=m,l=g)}if(p)return p}let b=s?s(L(o)):L(o);return c.keyedStubs.set(a,b),b}},E=class extends y{static{i(this,"MissingStubError")}constructor({method:e,args:t}){super(mt(e,t),{name:"MissingStubError"})}};function L(n){return(0,Se.stub)().callsFake((...e)=>{throw new E({method:n,args:e})})}i(L,"createDefaultStub");function mt(n,e){let t=`Missing stub for mock method call.
method: "${n}"`;e&&(t+=`

@@ -24,3 +24,3 @@ args: ${Ce(e)?.replaceAll(`

});
`}i(ut,"createMissingStubMessage");var M=class extends w{static{i(this,"MockAdapter")}stubs=new z;reset(e){return this.stubs.reset(e)}createKey(e){if(!e)return;let t=k(e,r=>r&&typeof r=="object"&&"abi"in r,({abi:r,...s})=>s);return q(t)}onGetChainId(){return this.stubs.get({method:"getChainId"})}async getChainId(){return this.stubs.get({method:"getChainId"})()}onGetBlockNumber(){return this.stubs.get({method:"getBlockNumber"})}async getBlockNumber(){return this.stubs.get({method:"getBlockNumber"})()}onGetBlock(e){return this.stubs.get({method:"getBlock",key:e===void 0?void 0:this.createKey({block:e})})}async getBlock(e){return this.stubs.get({method:"getBlock",key:e===void 0?void 0:this.createKey({block:e}),matchPartial:!0})(e)}onGetBalance(e){return this.stubs.get({method:"getBalance",key:this.createKey(e)})}async getBalance(e){return this.stubs.get({method:"getBalance",key:this.createKey(e),matchPartial:!0})(e)}onGetTransaction(e){return this.stubs.get({method:"getTransaction",key:this.createKey(e),create:i(t=>t.resolves(void 0),"create")})}async getTransaction(e){return this.stubs.get({method:"getTransaction",key:this.createKey(e),matchPartial:!0,create:i(t=>t.resolves(void 0),"create")})(e)}onWaitForTransaction(e){return this.stubs.get({method:"waitForTransaction",key:this.createKey(e),create:i(t=>t.resolves(void 0),"create")})}async waitForTransaction(e){return this.stubs.get({method:"waitForTransaction",key:this.createKey(e),matchPartial:!0,create:i(t=>t.resolves(void 0),"create")})(e)}onCall(e){return this.stubs.get({method:"call",key:this.createKey(e)})}async call(e){return this.stubs.get({method:"call",key:this.createKey(e),matchPartial:!0})(e)}onMulticall(e){return this.stubs.get({method:"multicall",key:this.createKey(e)})}async multicall(e){try{return this.stubs.get({method:"multicall",key:this.createKey(e),matchPartial:!0})(e)}catch(t){if(!(t instanceof E))throw t;let{calls:a,...r}=e,s=[];for(let o of a){if(this.stubs.has({method:"read",key:this.createKey({...o,block:r.block}),matchPartial:!0})){s.push(this.read({...o,block:r.block}));continue}if(this.stubs.has({method:"simulateWrite",key:this.createKey({...o,...r}),matchPartial:!0})){s.push(this.simulateWrite({...o,...r}));continue}if(r.allowFailure===!1)throw t;s.push(Promise.resolve(t))}return Promise.all(s.map(async o=>{let c=await o;return r.allowFailure===!1?c:c instanceof Error?{success:!1,error:c}:{success:!0,value:c}}))}}onSendRawTransaction(e){return this.stubs.get({method:"sendRawTransaction",key:e===void 0?void 0:this.createKey({transaction:e})})}async sendRawTransaction(e){return this.stubs.get({method:"sendRawTransaction",key:e===void 0?void 0:this.createKey({transaction:e}),matchPartial:!0})(e)}onGetEvents(e){return this.stubs.get({method:"getEvents",key:this.createKey(e)})}async getEvents(e){return this.stubs.get({method:"getEvents",key:this.createKey(e),matchPartial:!0})(e)}onRead(e){return this.stubs.get({method:"read",key:this.createKey(e)})}async read(e){return this.stubs.get({method:"read",key:this.createKey(e),matchPartial:!0})(e)}onSimulateWrite(e){return this.stubs.get({method:"simulateWrite",key:this.createKey(e)})}async simulateWrite(e){return this.stubs.get({method:"simulateWrite",key:this.createKey(e),matchPartial:!0})(e)}onWrite(e){return this.stubs.get({method:"write",key:this.createKey(e)})}async write(e){let t=await this.stubs.get({method:"write",key:this.createKey(e),matchPartial:!0})(e);return e.onMined&&this.waitForTransaction({hash:t}).then(e.onMined),t}onGetSignerAddress(){return this.stubs.get({method:"getSignerAddress"})}async getSignerAddress(){return this.stubs.get({method:"getSignerAddress"})()}onDeploy(e){return this.stubs.get({method:"deploy",key:this.createKey(e)})}async deploy(e){let t=await Promise.resolve(this.stubs.get({method:"deploy",key:this.createKey(e),matchPartial:!0})(e));return e.onMined&&this.waitForTransaction({hash:t}).then(e.onMined),t}onSendTransaction(e){return this.stubs.get({method:"sendTransaction",key:this.createKey(e)})}async sendTransaction(e){let t=await this.stubs.get({method:"sendTransaction",key:this.createKey(e),matchPartial:!0})(e);return e.onMined&&this.waitForTransaction({hash:t}).then(e.onMined),t}};function f(n=32,e=""){let t=e.length%2?`${e}0`:e;if(t.length/2>n)return`0x${t.slice(0,n*2)}`;let a=new Uint8Array(n-t.length/2);crypto.getRandomValues(a);let r=Array.from(a,s=>s.toString(16).padStart(2,"0")).join("");return`0x${t}${r}`}i(f,"randomHex");function x(n=""){return f(20,n)}i(x,"randomAddress");function Ee(n={}){return{extraData:"0x",gasLimit:30000000n,gasUsed:108000000n,hash:f(),logsBloom:"0x0",miner:x(),mixHash:f(),nonce:1n,number:1n,parentHash:f(),receiptsRoot:f(),sha3Uncles:f(),size:100000n,stateRoot:f(),timestamp:BigInt(Date.now())/1000n,transactions:[],transactionsRoot:f(),...n}}i(Ee,"createStubBlock");function ce(n){let{abi:e,...t}=n;return{blockNumber:1n,data:f(),transactionHash:f(),...t}}i(ce,"createStubEvent");function Re(n){let{abi:e,eventName:t,events:a}=n;return a.map(r=>ce({abi:e,eventName:t,...r}))}i(Re,"createStubEvents");function j(n=0,e=Number.MAX_SAFE_INTEGER){return Math.floor(Math.random()*(e-n+1)+n)}i(j,"randomInt");function we(n={}){return{blockHash:f(),blockNumber:1n,chainId:1,from:x(),gas:BigInt(j(21e3,21e4)),gasPrice:BigInt(j(1e8,1e10)),input:"0x",nonce:1n,to:x(),transactionHash:f(),transactionIndex:0n,type:"0x02",value:0n,...n}}i(we,"createStubTransaction");function Me(n={}){return{blockHash:f(),blockNumber:1n,contractAddress:x(),cumulativeGasUsed:0n,effectiveGasPrice:0n,from:f(),gasUsed:0n,logsBloom:f(),status:"success",to:x(),transactionHash:f(),transactionIndex:0n,...n}}i(Me,"createStubTransactionReceipt");var A=require("ox");function Oe(n,{abi:e,bytecode:t,args:a={},...r}){let s=n.encodeDeployData({abi:e,bytecode:t,args:a});return n.sendTransaction({data:s,...r})}i(Oe,"deploy");var Be={name:"IMulticall3",abi:[{type:"function",name:"aggregate",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"returnData",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"aggregate3",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call3[]",components:[{name:"target",type:"address",internalType:"address"},{name:"allowFailure",type:"bool",internalType:"bool"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"aggregate3Value",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call3Value[]",components:[{name:"target",type:"address",internalType:"address"},{name:"allowFailure",type:"bool",internalType:"bool"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"blockAndAggregate",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"blockHash",type:"bytes32",internalType:"bytes32"},{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"getBasefee",inputs:[],outputs:[{name:"basefee",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getBlockHash",inputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"}],outputs:[{name:"blockHash",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getBlockNumber",inputs:[],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getChainId",inputs:[],outputs:[{name:"chainid",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockCoinbase",inputs:[],outputs:[{name:"coinbase",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockDifficulty",inputs:[],outputs:[{name:"difficulty",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockGasLimit",inputs:[],outputs:[{name:"gaslimit",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockTimestamp",inputs:[],outputs:[{name:"timestamp",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEthBalance",inputs:[{name:"addr",type:"address",internalType:"address"}],outputs:[{name:"balance",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getLastBlockHash",inputs:[],outputs:[{name:"blockHash",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"tryAggregate",inputs:[{name:"requireSuccess",type:"bool",internalType:"bool"},{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"tryBlockAndAggregate",inputs:[{name:"requireSuccess",type:"bool",internalType:"bool"},{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"blockHash",type:"bytes32",internalType:"bytes32"},{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"}],methodIdentifiers:{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"}};var de="0xcA11bde05977b3631167028862bE2a173976CA11";async function Ke(n,{calls:e,multicallAddress:t=de,allowFailure:a=!0,...r}){let s=[];return(await n.simulateWrite({abi:Be.abi,address:t,fn:"aggregate3",args:{calls:e.map(c=>{let{abiFn:b,data:p}=S({abi:c.abi,fn:c.fn,args:c.args});return s.push(b),{target:c.address,callData:p,allowFailure:a}})},...r})).map(({returnData:c,success:b},p)=>{let{fn:u}=e[p],l=s[p];return a===!1?n.decodeFunctionReturn({abi:[l],data:c,fn:u}):b?{success:b,value:n.decodeFunctionReturn({abi:[l],data:c,fn:u})}:{success:b,error:new y(Buffer.from(c.slice(10),"hex").toString())}})}i(Ke,"multicall");async function He(n,{abi:e,address:t,fn:a,args:r={},block:s}){let{data:o,abiFn:c}=S({abi:e,fn:a,args:r}),b=await n.call({to:t,data:o,block:s});return n.decodeFunctionReturn({abi:[c],data:b,fn:a})}i(He,"read");async function De(n,{abi:e,fn:t,args:a={},from:r,address:s,...o}){let{abiFn:c,data:b}=S({abi:e,fn:t,args:a}),p=await n.call({data:b,from:r??await n.getSignerAddress?.().catch(()=>{}),to:s,...o});return n.decodeFunctionReturn({abi:[c],data:p,fn:t})}i(De,"simulateWrite");function Ie(n,{abi:e,fn:t,args:a={},address:r,...s}){let o=n.encodeFunctionData({abi:e,fn:t,args:a});return n.sendTransaction({data:o,to:r,...s})}i(Ie,"write");var J=class n extends w{static{i(this,"BaseReadAdapter")}pollingInterval;pollingTimeout;multicallAddress;static DEFAULT_POLLING_INTERVAL=4e3;static DEFAULT_TIMEOUT=6e4;constructor({pollingInterval:e=n.DEFAULT_POLLING_INTERVAL,pollingTimeout:t=n.DEFAULT_TIMEOUT,multicallAddress:a=de}={}){super(),this.pollingInterval=e,this.pollingTimeout=t,this.multicallAddress=a}multicall({multicallAddress:e=this.multicallAddress,...t}){return Ke(this,{multicallAddress:e,...t})}read(e){return He(this,e)}simulateWrite(e){return De(this,e)}};var be=require("ox");var pe={name:"CodeCaller",abi:[{type:"constructor",inputs:[{name:"bytecode",type:"bytes",internalType:"bytes"},{name:"callParams",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"},{type:"error",name:"BytecodeDeploymentFailed",inputs:[]}],bytecode:"0x608060405234801561000f575f80fd5b5060405161021c38038061021c83398101604081905261002e916101a1565b5f8251602084015ff090506001600160a01b038116158061005757506001600160a01b0381163b155b156100755760405163537574ad60e11b815260040160405180910390fd5b5f80826001600160a01b03168460405161008f9190610200565b5f604051808303815f865af19150503d805f81146100c8576040519150601f19603f3d011682016040523d82523d5f602084013e6100cd565b606091505b5091509150816100df57805160208201fd5b805160208201f35b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101155781810151838201526020016100fd565b50505f910152565b5f82601f83011261012c575f80fd5b81516001600160401b0380821115610146576101466100e7565b604051601f8301601f19908116603f0116810190828211818310171561016e5761016e6100e7565b81604052838152866020858801011115610186575f80fd5b6101978460208301602089016100fb565b9695505050505050565b5f80604083850312156101b2575f80fd5b82516001600160401b03808211156101c8575f80fd5b6101d48683870161011d565b935060208501519150808211156101e9575f80fd5b506101f68582860161011d565b9150509250929050565b5f82516102118184602087016100fb565b919091019291505056fe",methodIdentifiers:{}};function Ge(n,e){let t=be.AbiConstructor.fromAbi(pe.abi);return be.AbiConstructor.encode(t,{bytecode:pe.bytecode,args:[n,e]})}i(Ge,"encodeBytecodeCallData");var mt=/^0x[0-9a-fA-F]*$/;function We(n){return typeof n=="string"&&mt.test(n)}i(We,"isHexString");var ue=class extends J{static{i(this,"DefaultReadAdapter")}provider;constructor({rpcUrl:e,...t}={}){super(t);try{let a=e?A.RpcTransport.fromHttp(e):globalThis.ethereum;if(!a)throw new y("No provider found");this.provider=A.Provider.from(a)}catch(a){T(a)}}getChainId(){return this.provider.request({method:"eth_chainId"}).then(Number).catch(T)}getBlockNumber(){return this.provider.request({method:"eth_blockNumber"}).then(BigInt).catch(T)}getBlock(e){return this.provider.request(We(e)?{method:"eth_getBlockByHash",params:[e,!1]}:{method:"eth_getBlockByNumber",params:[_(e),!1]}).then(A.Block.fromRpc).then(t=>t?{...t,nonce:BigInt(t.nonce),transactions:t.transactions.slice()}:void 0).catch(T)}getBalance(e){return this.provider.request({method:"eth_getBalance",params:[e.address,_(e.block)]}).then(BigInt).catch(T)}getTransaction({hash:e}){return this.provider.request({method:"eth_getTransactionByHash",params:[e]}).then(t=>{if(!t)return;let{to:a,transactionIndex:r,...s}=A.Transaction.fromRpc(t);return{...s,to:a||void 0,transactionIndex:BigInt(r),transactionHash:s.hash}}).catch(T)}waitForTransaction({hash:e,timeout:t=this.pollingTimeout}){return new Promise((a,r)=>{let s=i(()=>this.provider.request({method:"eth_getTransactionReceipt",params:[e]}).then(o=>{if(o){let{to:c,transactionIndex:b,contractAddress:p,...u}=A.TransactionReceipt.fromRpc(o);a({...u,to:c||void 0,transactionIndex:BigInt(b),contractAddress:p||void 0})}else setTimeout(s,this.pollingInterval)}).catch(r),"getReceipt");s(),setTimeout(()=>a(void 0),t)}).catch(T)}sendRawTransaction(e){return this.provider.request({method:"eth_sendRawTransaction",params:[e]})}getEvents({abi:e,address:t,event:a,filter:r,fromBlock:s,toBlock:o}){let{abiEntry:c}=N({abi:e,type:"event",name:a,kind:"inputs",value:r});return this.provider.request({method:"eth_getLogs",params:[{address:t,fromBlock:_(s),toBlock:_(o),topics:A.AbiEvent.encode(c,r||{}).topics}]}).then(b=>b.map(p=>({args:A.AbiEvent.decode(c,p),blockNumber:BigInt(p.blockNumber),data:p.data,eventName:a,transactionHash:p.transactionHash}))).catch(T)}call({to:e,data:t,bytecode:a,block:r,...s}){return a&&t&&(t=Ge(a,t)),this.provider.request({method:"eth_call",params:[{to:e,data:t,...Le(s)},_(r)]}).catch(T)}},X=class extends ue{static{i(this,"DefaultAdapter")}getSignerAddress(){return this.provider.request({method:"eth_accounts"}).then(([e])=>{if(!e)throw new y("No signer address found");return A.Address.checksum(e)}).catch(T)}async sendTransaction({data:e,to:t,from:a,onMined:r,...s}){return a??=await this.getSignerAddress().catch(T),this.provider.request({method:"eth_sendTransaction",params:[{data:e,to:t,from:a,...Le(s)}]}).then(o=>(r&&this.waitForTransaction({hash:o}).then(r),o)).catch(T)}deploy(e){return Oe(this,e)}write(e){return Ie(this,e)}};function _(n){return n===void 0?"latest":typeof n=="bigint"?`0x${n.toString(16)}`:n}i(_,"prepareBlockParam");function Le(n){return k(n,e=>typeof e=="bigint",e=>`0x${e.toString(16)}`)}i(Le,"prepareTransactionOptions");var je=require("lru-cache");var O=class extends je.LRUCache{static{i(this,"LruStore")}constructor(e={max:500}){super(e)}};var _e=U(require("lodash.ismatch"),1);async function B({store:n,matchKey:e}){e=await e;let t=JSON.parse(e),a=[];for await(let[r]of n.entries()){if(r===e){a.push(n.delete(r));continue}let s=JSON.parse(r);(0,_e.default)(s,t)&&a.push(n.delete(r))}await Promise.all(a)}i(B,"deleteMatches");var K=class{static{i(this,"ClientCache")}namespace;store;constructor({namespace:e,store:t=new O}){this.namespace=e,this.store=t}async clear(){return this.store.clear()}async blockKey(e){return this.#n("block",{block:e})}async preloadBlock({value:e,block:t}){let a=await this.blockKey(t);return this.store.set(a,e)}async getBlock(e){let t=await this.blockKey(e);return this.store.get(t)}async invalidateBlock(e){let t=await this.blockKey(e);return this.store.delete(t)}async clearBlocks(){return B({store:this.store,matchKey:this.blockKey()})}#e({address:e,block:t}={}){return this.#n("balance",{address:e,block:t})}async balanceKey(e){return this.#e(e)}async preloadBalance({value:e,...t}){let a=await this.balanceKey(t);return this.store.set(a,e)}async getBalance(e){let t=await this.balanceKey(e);return this.store.get(t)}async invalidateBalance(e){let t=await this.balanceKey(e);return this.store.delete(t)}async clearBalances(){return B({store:this.store,matchKey:this.#e()})}#t({hash:e}={}){return this.#n("transaction",{hash:e})}async transactionKey({hash:e}){return this.#t({hash:e})}async preloadTransaction({value:e,...t}){let a=await this.transactionKey(t);return this.store.set(a,e)}async getTransaction(e){let t=await this.transactionKey(e);return this.store.get(t)}async invalidateTransaction(e){let t=await this.transactionKey(e);return this.store.delete(t)}async clearTransactions(){return B({store:this.store,matchKey:this.#t()})}async transactionReceiptKey({hash:e}){return this.#n("transactionReceipt",{hash:e})}async preloadTransactionReceipt({value:e,...t}){let a=await this.transactionReceiptKey(t);return this.store.set(a,e)}async getTransactionReceipt(e){let t=await this.transactionReceiptKey(e);return this.store.get(t)}#a({to:e,data:t,value:a,from:r,block:s,accessList:o,blobVersionedHashes:c,chainId:b,blobs:p,bytecode:u,nonce:l}={}){return this.#n("call",{to:e,data:t,value:a,from:r,block:s,accessList:o,blobVersionedHashes:c,chainId:b,blobs:p,bytecode:u,nonce:l})}async callKey(e){return this.#a(e)}async preloadCall({preloadValue:e,...t}){let a=await this.callKey(t);return this.store.set(a,e)}async getCall(e){let t=await this.callKey(e);return this.store.get(t)}async invalidateCall(e){let t=await this.callKey(e);return this.store.delete(t)}async invalidateCallsMatching(e){return B({store:this.store,matchKey:this.#a(e)})}async clearCalls(){return this.invalidateCallsMatching()}async eventsKey({address:e,event:t,filter:a,fromBlock:r="earliest",toBlock:s="latest"}){return this.#n("events",{address:e,event:t,filter:a,fromBlock:r,toBlock:s})}async preloadEvents({value:e,...t}){let a=await this.eventsKey(t);return this.store.set(a,e)}async getEvents(e){let t=await this.eventsKey(e);return this.store.get(t)}#r({address:e,args:t,block:a,fn:r}={}){return this.#n("read",{address:e,args:t,block:a,fn:r})}async readKey(e){return this.#r(e)}async preloadRead({value:e,...t}){let a=await this.readKey(t);return this.store.set(a,e)}async getRead(e){let t=await this.readKey(e);return this.store.get(t)}async invalidateRead(e){let t=await this.readKey(e);return this.store.delete(t)}async invalidateReadsMatching(e){return B({store:this.store,matchKey:this.#r(e)})}async clearReads(){return this.invalidateReadsMatching()}async#i(){return typeof this.namespace=="function"&&(this.namespace=await this.namespace()),this.namespace}async#n(...e){let t=await this.#i();return q([t,...e])}};var Y=class extends y{static{i(this,"BlockNotFoundError")}constructor(e,t){super(`Block not found: ${e}`,t)}};var Z=class{static{i(this,"HookRegistry")}#e={};on(e,t){this.#e[e]||=[],this.#e[e].push(t)}off(e,t){let a=!1,r=this.#e[e];return r&&(this.#e[e]=r.filter(s=>s===t?(a=!0,!1):!0)),a}once(e,t){let a=i(r=>{this.off(e,a),t(r)},"wrapped");this.on(e,a)}call(e,t){let a,r=this.#e[e];if(r)for(let s of r)a instanceof Promise?a=a.then(()=>s(t)):a=s(t);return a}};var Q=class{static{i(this,"MethodInterceptor")}#e=new Z;get hooks(){return this.#e}createProxy=i(e=>new Proxy(e,{get:i((t,a,r)=>{let s=Reflect.get(t,a,r);if(a==="constructor"||typeof s!="function")return s;let o=i((...c)=>this.#t({method:a,fn:s.bind(r),args:c}),"wrapped");return Object.defineProperty(o,"name",{get:i(()=>s.name,"get")}),o},"get")}),"createProxy");#t({method:e,fn:t,args:a}){let r=String(e),s=!1,o,c=this.#e.call(`before:${r}`,{get args(){return a},setArgs(...p){a=p},resolve(p){s||(s=!0,o=p)}}),b=i(()=>{s||(o=t(...a));let p=this.#e.call(`after:${r}`,{get args(){return a},get result(){return o},setResult(u){o=u}});return p instanceof Promise?p.then(()=>o):o},"wrappedAfterHooks");return c instanceof Promise?c.then(b):b()}};async function v({store:n,key:e,fn:t}){if(e=await e,await n.has(e))return n.get(e);let a=await t();if(a===void 0)return a;let r=n.set(e,a);return r instanceof Promise?r.then(()=>a):a}i(v,"getOrSet");function ee(n={}){let{adapter:e,store:t,chainId:a,...r}=n,s=new Q,o=e||new X(r),b=t&&"clear"in t?t:new O(t),p={...o,adapter:o,hooks:s.hooks,cache:new K({store:b,namespace:i(()=>p.getChainId(),"namespace")}),isReadWrite(){return typeof this.adapter.write=="function"},extend(m){return Object.assign(this,m)},async getChainId(){return a??=await o.getChainId(),a},async getBlock(m,h){let P=await v({store:this.cache.store,key:this.cache.blockKey(m),fn:i(()=>this.adapter.getBlock(m),"fn")});if(!P&&h?.throws)throw new Y(m);return P},getBalance(m){return v({store:this.cache.store,key:this.cache.balanceKey(m),fn:i(()=>this.adapter.getBalance(m),"fn")})},getTransaction(m){return v({store:this.cache.store,key:this.cache.transactionKey(m),fn:i(()=>this.adapter.getTransaction(m),"fn")})},waitForTransaction(m){return v({store:this.cache.store,key:this.cache.transactionReceiptKey(m),fn:i(()=>this.adapter.waitForTransaction(m),"fn")})},call(m){return v({store:this.cache.store,key:this.cache.callKey(m),fn:i(()=>this.adapter.call(m),"fn")})},async multicall({calls:m,...h}){let P=new Map,F=[],I=await Promise.all(m.map(async(G,ne)=>{let R=await this.cache.getRead({...G,block:h?.block});if(R!==void 0)return h.allowFailure===!1?R:{success:!0,value:R};P.set(ne,F.length),F.push(G)}));if(!F.length)return I;let Ye=await this.adapter.multicall({calls:F,...h});return Promise.all(I.map(async(G,ne)=>{if(G!==void 0)return G;let R=P.get(ne),{abi:Ze,address:Qe,fn:et,args:tt}=F[R],re=Ye[R],$;return h.allowFailure===!1?$=re:$=re.value,$!==void 0&&await this.cache.preloadRead({abi:Ze,address:Qe,fn:et,args:tt,block:h?.block,value:$}),re}))},getEvents({fromBlock:m="earliest",toBlock:h="latest",...P}){let F={fromBlock:m,toBlock:h,...P};return v({store:this.cache.store,key:this.cache.eventsKey(F),fn:i(async()=>this.adapter.getEvents(F),"fn")})},read(m){return v({store:this.cache.store,key:this.cache.readKey(m),fn:i(()=>this.adapter.read(m),"fn")})}},u=Object.getPrototypeOf(o);function l(){}i(l,"Client"),Object.defineProperties(l,{name:{value:`Client<${o.constructor.name}>`,enumerable:!1,writable:!1,configurable:!0}}),l.prototype=Object.create(u,{constructor:{value:l,enumerable:!1,writable:!0,configurable:!0},[Symbol.toStringTag]:{value:l.name,enumerable:!1,writable:!0,configurable:!0}});let g=Object.create(l.prototype,Object.getOwnPropertyDescriptors(p));return s.createProxy(g)}i(ee,"createClient");function H(n={}){let{adapter:e=new M,chainId:t,...a}=n;return e.stubs.has({method:"getChainId"})||e.onGetChainId().resolves(t??0),ee({adapter:e,chainId:t,...a})}i(H,"createMockClient");var te=class{static{i(this,"ContractCache")}#e;#t;#a;constructor({abi:e,address:t,...a}){let r=a.clientCache?a.clientCache:new K(a);this.#e=e,this.#t=t,this.#a=r}get store(){return this.#a.store}clear(){return this.#a.clear()}eventsKey(e,t){return this.#a.eventsKey({abi:this.#e,address:this.#t,event:e,...t})}preloadEvents(e){return this.#a.preloadEvents({abi:this.#e,address:this.#t,...e})}getEvents(e,t){return this.#a.getEvents({abi:this.#e,address:this.#t,event:e,...t})}readKey(...[e,t,a]){return this.#a.readKey({abi:this.#e,address:this.#t,fn:e,args:t,...a})}preloadRead(e){return this.#a.preloadRead({abi:this.#e,address:this.#t,...e})}getRead(...[e,t,a]){return this.#a.getRead({abi:this.#e,address:this.#t,fn:e,args:t,...a})}invalidateRead(...[e,t,a]){return this.#a.invalidateRead({abi:this.#e,address:this.#t,fn:e,args:t,...a})}invalidateReadsMatching(e,t,a){return this.#a.invalidateReadsMatching({abi:this.#e,address:this.#t,fn:e,args:t,...a})}async clearReads(){return this.#a.invalidateReadsMatching({abi:this.#e,address:this.#t})}};var me=class{static{i(this,"ReadContract")}abi;address;client;cache;epochBlock;constructor({abi:e,address:t,epochBlock:a,client:r,...s}){this.abi=e,this.address=t,this.client=r??ee(s),this.cache=new te({abi:e,address:t,clientCache:this.client.cache}),this.epochBlock=a}isReadWrite(){return this.client.isReadWrite()}extend(e){return Object.assign(this,e)}encodeDeployData(...[e,t]){return this.client.encodeDeployData({abi:this.abi,bytecode:e,args:t})}encodeFunctionData(...[e,t]){return this.client.encodeFunctionData({abi:this.abi,fn:e,args:t})}encodeFunctionReturn(e,t){return this.client.encodeFunctionReturn({abi:this.abi,fn:e,value:t})}decodeFunctionData(e){return this.client.decodeFunctionData({abi:this.abi,data:e})}decodeFunctionReturn(e,t){return this.client.decodeFunctionReturn({abi:this.abi,fn:e,data:t})}getEvents(e,{fromBlock:t,...a}={}){return this.epochBlock&&(!t||t==="earliest"||typeof t=="bigint"&&t<this.epochBlock)&&(t=this.epochBlock),this.client.getEvents({abi:this.abi,address:this.address,event:e,fromBlock:t,...a})}async multicall({calls:e,...t}){return this.client.multicall({calls:e.map(a=>({abi:this.abi,address:this.address,...a})),...t})}read(...[e,t,a]){let{block:r,...s}=a||{};return this.epochBlock&&(r==="earliest"||typeof r=="bigint"&&r<this.epochBlock)&&(r=this.epochBlock),this.client.read({abi:this.abi,address:this.address,fn:e,args:t,block:r,...s})}simulateWrite(...[e,t,a]){return this.client.simulateWrite({abi:this.abi,address:this.address,fn:e,args:t,...a})}},ae=class extends me{static{i(this,"ReadWriteContract")}getSignerAddress(){return this.client.getSignerAddress()}write(...[e,t,a]){return this.client.write({abi:this.abi,address:this.address,fn:e,args:t,...a})}};var $e="0x0000000000000000000000000000000000000000";var D=class extends ae{static{i(this,"MockContract")}constructor({abi:e=[],address:t=$e,epochBlock:a,client:r,...s}={}){super({abi:e,address:t,epochBlock:a,client:r??H(s)})}get adapter(){return this.client.adapter}reset(e){return this.adapter.reset(e)}onMulticall({calls:e,...t}){return this.adapter.onMulticall({calls:e?.map(a=>({abi:this.abi,address:this.address,...a})),...t})}onGetEvents(e,t){return this.adapter.onGetEvents({abi:this.abi,address:this.address,event:e,...t})}onRead(e,t,a){return this.adapter.onRead({abi:this.abi,address:this.address,fn:e,args:t,...a})}onSimulateWrite(e,t,a){return this.adapter.onSimulateWrite({abi:this.abi,address:this.address,fn:e,args:t,...a})}onGetSignerAddress(){return this.adapter.onGetSignerAddress()}onWrite(e,t,a){return this.adapter.onWrite({abi:this.abi,address:this.address,fn:e,args:t,...a})}};function Ue(n={}){return H(n).extend({contract(e){return new D({...e,client:this})}})}i(Ue,"createMockDrift");var Ve={name:"MockERC20",abi:[{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"name_",type:"string",internalType:"string"},{name:"symbol_",type:"string",internalType:"string"},{name:"decimals_",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nonces",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permit",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],bytecode:"0x608060405234801561000f575f80fd5b50610e2a8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80633644e5151161008857806395d89b411161006357806395d89b41146101ae578063a9059cbb146101b6578063d505accf146101c9578063dd62ed3e146101dc575f80fd5b80633644e5151461015f57806370a08231146101675780637ecebe001461018f575f80fd5b806306fdde03146100cf578063095ea7b3146100ed5780631624f6c61461011057806318160ddd1461012557806323b872dd14610137578063313ce5671461014a575b5f80fd5b6100d7610214565b6040516100e49190610959565b60405180910390f35b6101006100fb3660046109c0565b6102a3565b60405190151581526020016100e4565b61012361011e366004610a95565b61030f565b005b6003545b6040519081526020016100e4565b610100610145366004610b04565b6103ad565b60025460405160ff90911681526020016100e4565b6101296104bc565b610129610175366004610b3d565b6001600160a01b03165f9081526004602052604090205490565b61012961019d366004610b3d565b60086020525f908152604090205481565b6100d76104e1565b6101006101c43660046109c0565b6104f0565b6101236101d7366004610b56565b610584565b6101296101ea366004610bbb565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461022290610bec565b80601f016020809104026020016040519081016040528092919081815260200182805461024e90610bec565b80156102995780601f1061027057610100808354040283529160200191610299565b820191905f5260205f20905b81548152906001019060200180831161027c57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102fd9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561035d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b5f6103688482610c70565b5060016103758382610c70565b506002805460ff191660ff831617905561038d6107dc565b6006556103986107f4565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f198114610406576103e28184610895565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f908152600460205260409020546104289084610895565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461045690846108f7565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104a99087815260200190565b60405180910390a3506001949350505050565b5f6006546104c86107dc565b146104da576104d56107f4565b905090565b5060075490565b60606001805461022290610bec565b335f908152600460205260408120546105099083610895565b335f90815260046020526040808220929092556001600160a01b0385168152205461053490836108f7565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102fd9086815260200190565b428410156105d45760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610354565b5f60016105df6104bc565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061062c83610d44565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106a592919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610700573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906107365750876001600160a01b0316816001600160a01b0316145b6107735760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610354565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b5f610955806107ed63ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516108249190610d5c565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108556107dc565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156108e65760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610354565b6108f08284610dce565b9392505050565b5f806109038385610de1565b9050838110156108f05760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401610354565b4690565b5f602080835283518060208501525f5b8181101561098557858101830151858201604001528201610969565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109bb575f80fd5b919050565b5f80604083850312156109d1575f80fd5b6109da836109a5565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610a0b575f80fd5b813567ffffffffffffffff80821115610a2657610a266109e8565b604051601f8301601f19908116603f01168101908282118183101715610a4e57610a4e6109e8565b81604052838152866020858801011115610a66575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff811681146109bb575f80fd5b5f805f60608486031215610aa7575f80fd5b833567ffffffffffffffff80821115610abe575f80fd5b610aca878388016109fc565b94506020860135915080821115610adf575f80fd5b50610aec868287016109fc565b925050610afb60408501610a85565b90509250925092565b5f805f60608486031215610b16575f80fd5b610b1f846109a5565b9250610b2d602085016109a5565b9150604084013590509250925092565b5f60208284031215610b4d575f80fd5b6108f0826109a5565b5f805f805f805f60e0888a031215610b6c575f80fd5b610b75886109a5565b9650610b83602089016109a5565b95506040880135945060608801359350610b9f60808901610a85565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215610bcc575f80fd5b610bd5836109a5565b9150610be3602084016109a5565b90509250929050565b600181811c90821680610c0057607f821691505b602082108103610c1e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610c6b57805f5260205f20601f840160051c81016020851015610c495750805b601f840160051c820191505b81811015610c68575f8155600101610c55565b50505b505050565b815167ffffffffffffffff811115610c8a57610c8a6109e8565b610c9e81610c988454610bec565b84610c24565b602080601f831160018114610cd1575f8415610cba5750858301515b5f19600386901b1c1916600185901b178555610d28565b5f85815260208120601f198616915b82811015610cff57888601518255948401946001909101908401610ce0565b5085821015610d1c57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d5557610d55610d30565b5060010190565b5f808354610d6981610bec565b60018281168015610d815760018114610d9657610dc2565b60ff1984168752821515830287019450610dc2565b875f526020805f205f5b85811015610db95781548a820152908401908201610da0565b50505082870194505b50929695505050505050565b8181038181111561030957610309610d30565b8082018082111561030957610309610d3056fea2646970667358221220efde3a9674d92b42f79838e701b698504e43ae8230b493ba14b6be288d6cae8864736f6c63430008180033",methodIdentifiers:{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}};var qe={name:"TestToken",abi:[{type:"constructor",inputs:[{name:"initialSupply",type:"uint256",internalType:"uint256"},{name:"decimals_",type:"uint8",internalType:"uint8"}],stateMutability:"nonpayable"},{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"name_",type:"string",internalType:"string"},{name:"symbol_",type:"string",internalType:"string"},{name:"decimals_",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nonces",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permit",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],bytecode:"0x608060405234801562000010575f80fd5b50604051620013a3380380620013a3833981016040819052620000339162000314565b620000846040518060400160405280600a8152602001692a32b9ba102a37b5b2b760b11b81525060405180604001604052806004815260200163151154d560e21b815250836200009860201b60201c565b62000090338362000149565b50506200054d565b60095460ff1615620000f15760405162461bcd60e51b815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b5f620000fe8482620003e7565b5060016200010d8382620003e7565b506002805460ff191660ff831617905562000127620001dc565b60065562000134620001ff565b60075550506009805460ff1916600117905550565b600354620001589082620002a5565b6003556001600160a01b0382165f908152600460205260409020546200017f9082620002a5565b6001600160a01b0383165f818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001d09085815260200190565b60405180910390a35050565b5f62000310602090811b620007dc17908190620001f89082901c565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051620002319190620004b3565b6040519081900390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc662000265620001dc565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f80620002b383856200052d565b905083811015620003075760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401620000e8565b90505b92915050565b4690565b5f806040838503121562000326575f80fd5b82519150602083015160ff811681146200033e575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200037257607f821691505b6020821081036200039157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620003e257805f5260205f20601f840160051c81016020851015620003be5750805b601f840160051c820191505b81811015620003df575f8155600101620003ca565b50505b505050565b81516001600160401b0381111562000403576200040362000349565b6200041b816200041484546200035d565b8462000397565b602080601f83116001811462000451575f8415620004395750858301515b5f19600386901b1c1916600185901b178555620004ab565b5f85815260208120601f198616915b82811015620004815788860151825594840194600190910190840162000460565b50858210156200049f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f808354620004c2816200035d565b60018281168015620004dd5760018114620004f35762000521565b60ff198416875282151583028701945062000521565b875f526020805f205f5b85811015620005185781548a820152908401908201620004fd565b50505082870194505b50929695505050505050565b808201808211156200030a57634e487b7160e01b5f52601160045260245ffd5b610e48806200055b5f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80633644e5151161008857806395d89b411161006357806395d89b41146101ae578063a9059cbb146101b6578063d505accf146101c9578063dd62ed3e146101dc575f80fd5b80633644e5151461015f57806370a08231146101675780637ecebe001461018f575f80fd5b806306fdde03146100cf578063095ea7b3146100ed5780631624f6c61461011057806318160ddd1461012557806323b872dd14610137578063313ce5671461014a575b5f80fd5b6100d7610214565b6040516100e49190610963565b60405180910390f35b6101006100fb3660046109ca565b6102a3565b60405190151581526020016100e4565b61012361011e366004610a9f565b61030f565b005b6003545b6040519081526020016100e4565b610100610145366004610b0e565b6103ad565b60025460405160ff90911681526020016100e4565b6101296104bc565b610129610175366004610b47565b6001600160a01b03165f9081526004602052604090205490565b61012961019d366004610b47565b60086020525f908152604090205481565b6100d76104e1565b6101006101c43660046109ca565b6104f0565b6101236101d7366004610b60565b610584565b6101296101ea366004610bc5565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461022290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461024e90610bf6565b80156102995780601f1061027057610100808354040283529160200191610299565b820191905f5260205f20905b81548152906001019060200180831161027c57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102fd9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561035d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b5f6103688482610c7a565b5060016103758382610c7a565b506002805460ff191660ff831617905561038d6107e0565b6006556103986107f8565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f198114610406576103e28184610899565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f908152600460205260409020546104289084610899565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461045690846108fb565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104a99087815260200190565b60405180910390a3506001949350505050565b5f6006546104c86107e0565b146104da576104d56107f8565b905090565b5060075490565b60606001805461022290610bf6565b335f908152600460205260408120546105099083610899565b335f90815260046020526040808220929092556001600160a01b0385168152205461053490836108fb565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102fd9086815260200190565b428410156105d45760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610354565b5f60016105df6104bc565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061062c83610d4e565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106a592919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610700573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906107365750876001600160a01b0316816001600160a01b0316145b6107735760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610354565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b4690565b5f6107dc806107f163ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516108289190610d66565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108596107e0565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156108ea5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610354565b6108f48284610dd8565b9392505050565b5f806109078385610deb565b9050838110156108f45760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401610354565b610961610dfe565b565b5f602080835283518060208501525f5b8181101561098f57858101830151858201604001528201610973565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109c5575f80fd5b919050565b5f80604083850312156109db575f80fd5b6109e4836109af565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610a15575f80fd5b813567ffffffffffffffff80821115610a3057610a306109f2565b604051601f8301601f19908116603f01168101908282118183101715610a5857610a586109f2565b81604052838152866020858801011115610a70575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff811681146109c5575f80fd5b5f805f60608486031215610ab1575f80fd5b833567ffffffffffffffff80821115610ac8575f80fd5b610ad487838801610a06565b94506020860135915080821115610ae9575f80fd5b50610af686828701610a06565b925050610b0560408501610a8f565b90509250925092565b5f805f60608486031215610b20575f80fd5b610b29846109af565b9250610b37602085016109af565b9150604084013590509250925092565b5f60208284031215610b57575f80fd5b6108f4826109af565b5f805f805f805f60e0888a031215610b76575f80fd5b610b7f886109af565b9650610b8d602089016109af565b95506040880135945060608801359350610ba960808901610a8f565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215610bd6575f80fd5b610bdf836109af565b9150610bed602084016109af565b90509250929050565b600181811c90821680610c0a57607f821691505b602082108103610c2857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610c7557805f5260205f20601f840160051c81016020851015610c535750805b601f840160051c820191505b81811015610c72575f8155600101610c5f565b50505b505050565b815167ffffffffffffffff811115610c9457610c946109f2565b610ca881610ca28454610bf6565b84610c2e565b602080601f831160018114610cdb575f8415610cc45750858301515b5f19600386901b1c1916600185901b178555610d32565b5f85815260208120601f198616915b82811015610d0957888601518255948401946001909101908401610cea565b5085821015610d2657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d5f57610d5f610d3a565b5060010190565b5f808354610d7381610bf6565b60018281168015610d8b5760018114610da057610dcc565b60ff1984168752821515830287019450610dcc565b875f526020805f205f5b85811015610dc35781548a820152908401908201610daa565b50505082870194505b50929695505050505050565b8181038181111561030957610309610d3a565b8082018082111561030957610309610d3a565b634e487b7160e01b5f52605160045260245ffdfea2646970667358221220a1bf89b04cafa4c37afa7db47b1064cf6df6cb244d523f43980b1df74c49469464736f6c63430008180033",methodIdentifiers:{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}};var ze="0xBob0000000000000000000000000000000000000",Je="0xAlice00000000000000000000000000000000000",Xe="0xNancy00000000000000000000000000000000000";0&&(module.exports={ALICE,BOB,MockAdapter,MockContract,NANCY,NotImplementedError,createMockClient,createMockDrift,createStubBlock,createStubEvent,createStubEvents,createStubTransaction,createStubTransactionReceipt,mockErc20,randomAddress,randomHex,randomInt,testToken});
`}i(mt,"createMissingStubMessage");var M=class extends w{static{i(this,"MockAdapter")}stubs=new z;reset(e){return this.stubs.reset(e)}createKey(e){if(!e)return;let t=k(e,r=>r&&typeof r=="object"&&"abi"in r,({abi:r,...s})=>s);return q(t)}onGetChainId(){return this.stubs.get({method:"getChainId"})}async getChainId(){return this.onGetChainId()()}onGetBlockNumber(){return this.stubs.get({method:"getBlockNumber"})}async getBlockNumber(){return this.onGetBlockNumber()()}onGetBlock(e){return this.stubs.get({method:"getBlock",key:e===void 0?void 0:this.createKey({block:e})})}async getBlock(e){return this.stubs.get({method:"getBlock",key:e===void 0?void 0:this.createKey({block:e}),matchPartial:!0})(e)}onGetBalance(e){return this.stubs.get({method:"getBalance",key:this.createKey(e)})}async getBalance(e){return this.stubs.get({method:"getBalance",key:this.createKey(e),matchPartial:!0})(e)}onGetTransaction(e){return this.stubs.get({method:"getTransaction",key:this.createKey(e),create:i(t=>t.resolves(void 0),"create")})}async getTransaction(e){return this.stubs.get({method:"getTransaction",key:this.createKey(e),matchPartial:!0,create:i(t=>t.resolves(void 0),"create")})(e)}onWaitForTransaction(e){return this.stubs.get({method:"waitForTransaction",key:this.createKey(e),create:i(t=>t.resolves(void 0),"create")})}async waitForTransaction(e){return this.stubs.get({method:"waitForTransaction",key:this.createKey(e),matchPartial:!0,create:i(t=>t.resolves(void 0),"create")})(e)}onCall(e){return this.stubs.get({method:"call",key:this.createKey(e)})}async call(e){return this.stubs.get({method:"call",key:this.createKey(e),matchPartial:!0})(e)}onMulticall(e){return this.stubs.get({method:"multicall",key:this.createKey(e)})}async multicall(e){try{return this.stubs.get({method:"multicall",key:this.createKey(e),matchPartial:!0})(e)}catch(t){if(!(t instanceof E))throw t;let{calls:a,...r}=e,s=[];for(let o of a){let c={...o,block:r.block};if(this.stubs.has({method:"read",key:this.createKey(c),matchPartial:!0})){s.push(this.read(c));continue}let b={...o,...r};if(this.stubs.has({method:"simulateWrite",key:this.createKey(b),matchPartial:!0})){s.push(this.simulateWrite(b));continue}if(r.allowFailure===!1)throw t;s.push(Promise.resolve(t))}return Promise.all(s.map(async o=>{let c=await o;return r.allowFailure===!1?c:c instanceof Error?{success:!1,error:c}:{success:!0,value:c}}))}}onSendRawTransaction(e){return this.stubs.get({method:"sendRawTransaction",key:e===void 0?void 0:this.createKey({transaction:e})})}async sendRawTransaction(e){return this.stubs.get({method:"sendRawTransaction",key:e===void 0?void 0:this.createKey({transaction:e}),matchPartial:!0})(e)}onGetEvents(e){return this.stubs.get({method:"getEvents",key:this.createKey(e)})}async getEvents(e){return this.stubs.get({method:"getEvents",key:this.createKey(e),matchPartial:!0})(e)}onRead(e){return this.stubs.get({method:"read",key:this.createKey(e)})}async read(e){return this.stubs.get({method:"read",key:this.createKey(e),matchPartial:!0})(e)}onSimulateWrite(e){return this.stubs.get({method:"simulateWrite",key:this.createKey(e)})}async simulateWrite(e){return this.stubs.get({method:"simulateWrite",key:this.createKey(e),matchPartial:!0})(e)}onWrite(e){return this.stubs.get({method:"write",key:this.createKey(e)})}async write(e){let t=await this.stubs.get({method:"write",key:this.createKey(e),matchPartial:!0})(e);return e.onMined&&this.waitForTransaction({hash:t}).then(e.onMined),t}onGetSignerAddress(){return this.stubs.get({method:"getSignerAddress"})}async getSignerAddress(){return this.stubs.get({method:"getSignerAddress"})()}onDeploy(e){return this.stubs.get({method:"deploy",key:this.createKey(e)})}async deploy(e){let t=await Promise.resolve(this.stubs.get({method:"deploy",key:this.createKey(e),matchPartial:!0})(e));return e.onMined&&this.waitForTransaction({hash:t}).then(e.onMined),t}onSendTransaction(e){return this.stubs.get({method:"sendTransaction",key:this.createKey(e)})}async sendTransaction(e){let t=await this.stubs.get({method:"sendTransaction",key:this.createKey(e),matchPartial:!0})(e);return e.onMined&&this.waitForTransaction({hash:t}).then(e.onMined),t}};function f(n=32,e=""){let t=e.length%2?`${e}0`:e;if(t.length/2>n)return`0x${t.slice(0,n*2)}`;let a=new Uint8Array(n-t.length/2);crypto.getRandomValues(a);let r=Array.from(a,s=>s.toString(16).padStart(2,"0")).join("");return`0x${t}${r}`}i(f,"randomHex");function x(n=""){return f(20,n)}i(x,"randomAddress");function Ee(n={}){return{extraData:"0x",gasLimit:30000000n,gasUsed:108000000n,hash:f(),logsBloom:"0x0",miner:x(),mixHash:f(),nonce:1n,number:1n,parentHash:f(),receiptsRoot:f(),sha3Uncles:f(),size:100000n,stateRoot:f(),timestamp:BigInt(Date.now())/1000n,transactions:[],transactionsRoot:f(),...n}}i(Ee,"createStubBlock");function ce(n){let{abi:e,...t}=n;return{blockNumber:1n,data:f(),transactionHash:f(),...t}}i(ce,"createStubEvent");function Re(n){let{abi:e,eventName:t,events:a}=n;return a.map(r=>ce({abi:e,eventName:t,...r}))}i(Re,"createStubEvents");function j(n=0,e=Number.MAX_SAFE_INTEGER){return Math.floor(Math.random()*(e-n+1)+n)}i(j,"randomInt");function we(n={}){return{blockHash:f(),blockNumber:1n,chainId:1,from:x(),gas:BigInt(j(21e3,21e4)),gasPrice:BigInt(j(1e8,1e10)),input:"0x",nonce:1n,to:x(),transactionHash:f(),transactionIndex:0n,type:"0x02",value:0n,...n}}i(we,"createStubTransaction");function Me(n={}){return{blockHash:f(),blockNumber:1n,contractAddress:x(),cumulativeGasUsed:0n,effectiveGasPrice:0n,from:f(),gasUsed:0n,logsBloom:f(),status:"success",to:x(),transactionHash:f(),transactionIndex:0n,...n}}i(Me,"createStubTransactionReceipt");var A=require("ox");function Oe(n,{abi:e,bytecode:t,args:a={},...r}){let s=n.encodeDeployData({abi:e,bytecode:t,args:a});return n.sendTransaction({data:s,...r})}i(Oe,"deploy");var Be={name:"IMulticall3",abi:[{type:"function",name:"aggregate",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"returnData",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"aggregate3",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call3[]",components:[{name:"target",type:"address",internalType:"address"},{name:"allowFailure",type:"bool",internalType:"bool"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"aggregate3Value",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call3Value[]",components:[{name:"target",type:"address",internalType:"address"},{name:"allowFailure",type:"bool",internalType:"bool"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"blockAndAggregate",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"blockHash",type:"bytes32",internalType:"bytes32"},{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"getBasefee",inputs:[],outputs:[{name:"basefee",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getBlockHash",inputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"}],outputs:[{name:"blockHash",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getBlockNumber",inputs:[],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getChainId",inputs:[],outputs:[{name:"chainid",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockCoinbase",inputs:[],outputs:[{name:"coinbase",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockDifficulty",inputs:[],outputs:[{name:"difficulty",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockGasLimit",inputs:[],outputs:[{name:"gaslimit",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockTimestamp",inputs:[],outputs:[{name:"timestamp",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEthBalance",inputs:[{name:"addr",type:"address",internalType:"address"}],outputs:[{name:"balance",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getLastBlockHash",inputs:[],outputs:[{name:"blockHash",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"tryAggregate",inputs:[{name:"requireSuccess",type:"bool",internalType:"bool"},{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"tryBlockAndAggregate",inputs:[{name:"requireSuccess",type:"bool",internalType:"bool"},{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"blockHash",type:"bytes32",internalType:"bytes32"},{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"}],methodIdentifiers:{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"}};var de="0xcA11bde05977b3631167028862bE2a173976CA11";async function Ke(n,{calls:e,multicallAddress:t=de,allowFailure:a=!0,...r}){let s=[];return(await n.simulateWrite({abi:Be.abi,address:t,fn:"aggregate3",args:{calls:e.map(c=>{let{abiFn:b,data:p}=S({abi:c.abi,fn:c.fn,args:c.args});return s.push(b),{target:c.address,callData:p,allowFailure:a}})},...r})).map(({returnData:c,success:b},p)=>{let{fn:u}=e[p],l=s[p];return a===!1?n.decodeFunctionReturn({abi:[l],data:c,fn:u}):b?{success:b,value:n.decodeFunctionReturn({abi:[l],data:c,fn:u})}:{success:b,error:new y(Buffer.from(c.slice(10),"hex").toString())}})}i(Ke,"multicall");async function He(n,{abi:e,address:t,fn:a,args:r={},block:s}){let{data:o,abiFn:c}=S({abi:e,fn:a,args:r}),b=await n.call({to:t,data:o,block:s});return n.decodeFunctionReturn({abi:[c],data:b,fn:a})}i(He,"read");async function De(n,{abi:e,fn:t,args:a={},from:r,address:s,...o}){let{abiFn:c,data:b}=S({abi:e,fn:t,args:a}),p=await n.call({data:b,from:r??await n.getSignerAddress?.().catch(()=>{}),to:s,...o});return n.decodeFunctionReturn({abi:[c],data:p,fn:t})}i(De,"simulateWrite");function Ie(n,{abi:e,fn:t,args:a={},address:r,...s}){let o=n.encodeFunctionData({abi:e,fn:t,args:a});return n.sendTransaction({data:o,to:r,...s})}i(Ie,"write");var J=class n extends w{static{i(this,"BaseReadAdapter")}pollingInterval;pollingTimeout;multicallAddress;static DEFAULT_POLLING_INTERVAL=4e3;static DEFAULT_TIMEOUT=6e4;constructor({pollingInterval:e=n.DEFAULT_POLLING_INTERVAL,pollingTimeout:t=n.DEFAULT_TIMEOUT,multicallAddress:a=de}={}){super(),this.pollingInterval=e,this.pollingTimeout=t,this.multicallAddress=a}multicall({multicallAddress:e=this.multicallAddress,...t}){return Ke(this,{multicallAddress:e,...t})}read(e){return He(this,e)}simulateWrite(e){return De(this,e)}};var be=require("ox");var pe={name:"CodeCaller",abi:[{type:"constructor",inputs:[{name:"bytecode",type:"bytes",internalType:"bytes"},{name:"callParams",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"},{type:"error",name:"BytecodeDeploymentFailed",inputs:[]}],bytecode:"0x608060405234801561000f575f80fd5b5060405161021c38038061021c83398101604081905261002e916101a1565b5f8251602084015ff090506001600160a01b038116158061005757506001600160a01b0381163b155b156100755760405163537574ad60e11b815260040160405180910390fd5b5f80826001600160a01b03168460405161008f9190610200565b5f604051808303815f865af19150503d805f81146100c8576040519150601f19603f3d011682016040523d82523d5f602084013e6100cd565b606091505b5091509150816100df57805160208201fd5b805160208201f35b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101155781810151838201526020016100fd565b50505f910152565b5f82601f83011261012c575f80fd5b81516001600160401b0380821115610146576101466100e7565b604051601f8301601f19908116603f0116810190828211818310171561016e5761016e6100e7565b81604052838152866020858801011115610186575f80fd5b6101978460208301602089016100fb565b9695505050505050565b5f80604083850312156101b2575f80fd5b82516001600160401b03808211156101c8575f80fd5b6101d48683870161011d565b935060208501519150808211156101e9575f80fd5b506101f68582860161011d565b9150509250929050565b5f82516102118184602087016100fb565b919091019291505056fe",methodIdentifiers:{}};function We(n,e){let t=be.AbiConstructor.fromAbi(pe.abi);return be.AbiConstructor.encode(t,{bytecode:pe.bytecode,args:[n,e]})}i(We,"encodeBytecodeCallData");var lt=/^0x[0-9a-fA-F]*$/;function Ge(n){return typeof n=="string"&&lt.test(n)}i(Ge,"isHexString");var ue=class extends J{static{i(this,"DefaultReadAdapter")}provider;constructor({rpcUrl:e,...t}={}){super(t);try{let a=e?A.RpcTransport.fromHttp(e):globalThis.ethereum;if(!a)throw new y("No provider found");this.provider=A.Provider.from(a)}catch(a){T(a)}}getChainId(){return this.provider.request({method:"eth_chainId"}).then(Number).catch(T)}getBlockNumber(){return this.provider.request({method:"eth_blockNumber"}).then(BigInt).catch(T)}getBlock(e){return this.provider.request(Ge(e)?{method:"eth_getBlockByHash",params:[e,!1]}:{method:"eth_getBlockByNumber",params:[_(e),!1]}).then(A.Block.fromRpc).then(t=>t?{...t,nonce:BigInt(t.nonce),transactions:t.transactions.slice()}:void 0).catch(T)}getBalance(e){return this.provider.request({method:"eth_getBalance",params:[e.address,_(e.block)]}).then(BigInt).catch(T)}getTransaction({hash:e}){return this.provider.request({method:"eth_getTransactionByHash",params:[e]}).then(t=>{if(!t)return;let{to:a,transactionIndex:r,...s}=A.Transaction.fromRpc(t);return{...s,to:a||void 0,transactionIndex:BigInt(r),transactionHash:s.hash}}).catch(T)}waitForTransaction({hash:e,timeout:t=this.pollingTimeout}){return new Promise((a,r)=>{let s=i(()=>this.provider.request({method:"eth_getTransactionReceipt",params:[e]}).then(o=>{if(o){let{to:c,transactionIndex:b,contractAddress:p,...u}=A.TransactionReceipt.fromRpc(o);a({...u,to:c||void 0,transactionIndex:BigInt(b),contractAddress:p||void 0})}else setTimeout(s,this.pollingInterval)}).catch(r),"getReceipt");s(),setTimeout(()=>a(void 0),t)}).catch(T)}sendRawTransaction(e){return this.provider.request({method:"eth_sendRawTransaction",params:[e]})}getEvents({abi:e,address:t,event:a,filter:r,fromBlock:s,toBlock:o}){let{abiEntry:c}=N({abi:e,type:"event",name:a,kind:"inputs",value:r});return this.provider.request({method:"eth_getLogs",params:[{address:t,fromBlock:_(s),toBlock:_(o),topics:A.AbiEvent.encode(c,r||{}).topics}]}).then(b=>b.map(p=>({args:A.AbiEvent.decode(c,p),blockNumber:BigInt(p.blockNumber),data:p.data,eventName:a,transactionHash:p.transactionHash}))).catch(T)}call({to:e,data:t,bytecode:a,block:r,...s}){return a&&t&&(t=We(a,t)),this.provider.request({method:"eth_call",params:[{to:e,data:t,...Le(s)},_(r)]}).catch(T)}},X=class extends ue{static{i(this,"DefaultAdapter")}getSignerAddress(){return this.provider.request({method:"eth_accounts"}).then(([e])=>{if(!e)throw new y("No signer address found");return A.Address.checksum(e)}).catch(T)}async sendTransaction({data:e,to:t,from:a,onMined:r,...s}){return a??=await this.getSignerAddress().catch(T),this.provider.request({method:"eth_sendTransaction",params:[{data:e,to:t,from:a,...Le(s)}]}).then(o=>(r&&this.waitForTransaction({hash:o}).then(r),o)).catch(T)}deploy(e){return Oe(this,e)}write(e){return Ie(this,e)}};function _(n){return n===void 0?"latest":typeof n=="bigint"?`0x${n.toString(16)}`:n}i(_,"prepareBlockParam");function Le(n){return k(n,e=>typeof e=="bigint",e=>`0x${e.toString(16)}`)}i(Le,"prepareTransactionOptions");var je=require("lru-cache");var O=class extends je.LRUCache{static{i(this,"LruStore")}constructor(e={max:500}){super(e)}};var _e=U(require("lodash.ismatch"),1);async function B({store:n,matchKey:e}){e=await e;let t=JSON.parse(e),a=[];for await(let[r]of n.entries()){if(r===e){a.push(n.delete(r));continue}let s=JSON.parse(r);(0,_e.default)(s,t)&&a.push(n.delete(r))}await Promise.all(a)}i(B,"deleteMatches");var K=class{static{i(this,"ClientCache")}namespace;store;constructor({namespace:e,store:t=new O}){this.namespace=e,this.store=t}async clear(){return this.store.clear()}async blockKey(e){return this.#n("block",{block:e})}async preloadBlock({value:e,block:t}){let a=await this.blockKey(t);return this.store.set(a,e)}async getBlock(e){let t=await this.blockKey(e);return this.store.get(t)}async invalidateBlock(e){let t=await this.blockKey(e);return this.store.delete(t)}async clearBlocks(){return B({store:this.store,matchKey:this.blockKey()})}#e({address:e,block:t}={}){return this.#n("balance",{address:e,block:t})}async balanceKey(e){return this.#e(e)}async preloadBalance({value:e,...t}){let a=await this.balanceKey(t);return this.store.set(a,e)}async getBalance(e){let t=await this.balanceKey(e);return this.store.get(t)}async invalidateBalance(e){let t=await this.balanceKey(e);return this.store.delete(t)}async clearBalances(){return B({store:this.store,matchKey:this.#e()})}#t({hash:e}={}){return this.#n("transaction",{hash:e})}async transactionKey({hash:e}){return this.#t({hash:e})}async preloadTransaction({value:e,...t}){let a=await this.transactionKey(t);return this.store.set(a,e)}async getTransaction(e){let t=await this.transactionKey(e);return this.store.get(t)}async invalidateTransaction(e){let t=await this.transactionKey(e);return this.store.delete(t)}async clearTransactions(){return B({store:this.store,matchKey:this.#t()})}async transactionReceiptKey({hash:e}){return this.#n("transactionReceipt",{hash:e})}async preloadTransactionReceipt({value:e,...t}){let a=await this.transactionReceiptKey(t);return this.store.set(a,e)}async getTransactionReceipt(e){let t=await this.transactionReceiptKey(e);return this.store.get(t)}#a({to:e,data:t,value:a,from:r,block:s,accessList:o,blobVersionedHashes:c,chainId:b,blobs:p,bytecode:u,nonce:l}={}){return this.#n("call",{to:e,data:t,value:a,from:r,block:s,accessList:o,blobVersionedHashes:c,chainId:b,blobs:p,bytecode:u,nonce:l})}async callKey(e){return this.#a(e)}async preloadCall({preloadValue:e,...t}){let a=await this.callKey(t);return this.store.set(a,e)}async getCall(e){let t=await this.callKey(e);return this.store.get(t)}async invalidateCall(e){let t=await this.callKey(e);return this.store.delete(t)}async invalidateCallsMatching(e){return B({store:this.store,matchKey:this.#a(e)})}async clearCalls(){return this.invalidateCallsMatching()}async eventsKey({address:e,event:t,filter:a,fromBlock:r="earliest",toBlock:s="latest"}){return this.#n("events",{address:e,event:t,filter:a,fromBlock:r,toBlock:s})}async preloadEvents({value:e,...t}){let a=await this.eventsKey(t);return this.store.set(a,e)}async getEvents(e){let t=await this.eventsKey(e);return this.store.get(t)}#r({address:e,args:t,block:a,fn:r}={}){return this.#n("read",{address:e,args:t,block:a,fn:r})}async readKey(e){return this.#r(e)}async preloadRead({value:e,...t}){let a=await this.readKey(t);return this.store.set(a,e)}async getRead(e){let t=await this.readKey(e);return this.store.get(t)}async invalidateRead(e){let t=await this.readKey(e);return this.store.delete(t)}async invalidateReadsMatching(e){return B({store:this.store,matchKey:this.#r(e)})}async clearReads(){return this.invalidateReadsMatching()}async#i(){return typeof this.namespace=="function"&&(this.namespace=await this.namespace()),this.namespace}async#n(...e){let t=await this.#i();return q([t,...e])}};var Y=class extends y{static{i(this,"BlockNotFoundError")}constructor(e,t){super(`Block not found: ${e}`,t)}};var Z=class{static{i(this,"HookRegistry")}#e={};on(e,t){this.#e[e]||=[],this.#e[e].push(t)}off(e,t){let a=!1,r=this.#e[e];return r&&(this.#e[e]=r.filter(s=>s===t?(a=!0,!1):!0)),a}once(e,t){let a=i(r=>{this.off(e,a),t(r)},"wrapped");this.on(e,a)}call(e,t){let a,r=this.#e[e];if(r)for(let s of r)a instanceof Promise?a=a.then(()=>s(t)):a=s(t);return a}};var Q=class{static{i(this,"MethodInterceptor")}#e=new Z;get hooks(){return this.#e}createProxy=i(e=>new Proxy(e,{get:i((t,a,r)=>{let s=Reflect.get(t,a,r);if(a==="constructor"||typeof s!="function")return s;let o=i((...c)=>this.#t({method:a,fn:s.bind(r),args:c}),"wrapped");return Object.defineProperty(o,"name",{get:i(()=>s.name,"get")}),o},"get")}),"createProxy");#t({method:e,fn:t,args:a}){let r=String(e),s=!1,o,c=this.#e.call(`before:${r}`,{get args(){return a},setArgs(...p){a=p},resolve(p){s||(s=!0,o=p)}}),b=i(()=>{s||(o=t(...a));let p=this.#e.call(`after:${r}`,{get args(){return a},get result(){return o},setResult(u){o=u}});return p instanceof Promise?p.then(()=>o):o},"wrappedAfterHooks");return c instanceof Promise?c.then(b):b()}};async function v({store:n,key:e,fn:t}){if(e=await e,await n.has(e))return n.get(e);let a=await t();if(a===void 0)return a;let r=n.set(e,a);return r instanceof Promise?r.then(()=>a):a}i(v,"getOrSet");function ee(n={}){let{adapter:e,store:t,chainId:a,...r}=n,s=new Q,o=e||new X(r),b=t&&"clear"in t?t:new O(t),p={...o,adapter:o,hooks:s.hooks,cache:new K({store:b,namespace:i(()=>p.getChainId(),"namespace")}),isReadWrite(){return typeof this.adapter.write=="function"},extend(m){return Object.assign(this,m)},async getChainId(){return a??=await o.getChainId(),a},async getBlock(m,h){let P=await v({store:this.cache.store,key:this.cache.blockKey(m),fn:i(()=>this.adapter.getBlock(m),"fn")});if(!P&&h?.throws)throw new Y(m);return P},getBalance(m){return v({store:this.cache.store,key:this.cache.balanceKey(m),fn:i(()=>this.adapter.getBalance(m),"fn")})},getTransaction(m){return v({store:this.cache.store,key:this.cache.transactionKey(m),fn:i(()=>this.adapter.getTransaction(m),"fn")})},waitForTransaction(m){return v({store:this.cache.store,key:this.cache.transactionReceiptKey(m),fn:i(()=>this.adapter.waitForTransaction(m),"fn")})},call(m){return v({store:this.cache.store,key:this.cache.callKey(m),fn:i(()=>this.adapter.call(m),"fn")})},async multicall({calls:m,...h}){let P=new Map,F=[],I=await Promise.all(m.map(async(W,ne)=>{let R=await this.cache.getRead({...W,block:h?.block});if(R!==void 0)return h.allowFailure===!1?R:{success:!0,value:R};P.set(ne,F.length),F.push(W)}));if(!F.length)return I;let Ye=await this.adapter.multicall({calls:F,...h});return Promise.all(I.map(async(W,ne)=>{if(W!==void 0)return W;let R=P.get(ne),{abi:Ze,address:Qe,fn:et,args:tt}=F[R],re=Ye[R],$;return h.allowFailure===!1?$=re:$=re.value,$!==void 0&&await this.cache.preloadRead({abi:Ze,address:Qe,fn:et,args:tt,block:h?.block,value:$}),re}))},getEvents({fromBlock:m="earliest",toBlock:h="latest",...P}){let F={fromBlock:m,toBlock:h,...P};return v({store:this.cache.store,key:this.cache.eventsKey(F),fn:i(async()=>this.adapter.getEvents(F),"fn")})},read(m){return v({store:this.cache.store,key:this.cache.readKey(m),fn:i(()=>this.adapter.read(m),"fn")})}},u=Object.getPrototypeOf(o);function l(){}i(l,"Client"),Object.defineProperties(l,{name:{value:`Client<${o.constructor.name}>`,enumerable:!1,writable:!1,configurable:!0}}),l.prototype=Object.create(u,{constructor:{value:l,enumerable:!1,writable:!0,configurable:!0},[Symbol.toStringTag]:{value:l.name,enumerable:!1,writable:!0,configurable:!0}});let g=Object.create(l.prototype,Object.getOwnPropertyDescriptors(p));return s.createProxy(g)}i(ee,"createClient");function H(n={}){let{adapter:e=new M,chainId:t,...a}=n;return e.stubs.has({method:"getChainId"})||e.onGetChainId().resolves(t??0),ee({adapter:e,chainId:t,...a})}i(H,"createMockClient");var te=class{static{i(this,"ContractCache")}#e;#t;#a;constructor({abi:e,address:t,...a}){let r=a.clientCache?a.clientCache:new K(a);this.#e=e,this.#t=t,this.#a=r}get store(){return this.#a.store}clear(){return this.#a.clear()}eventsKey(e,t){return this.#a.eventsKey({abi:this.#e,address:this.#t,event:e,...t})}preloadEvents(e){return this.#a.preloadEvents({abi:this.#e,address:this.#t,...e})}getEvents(e,t){return this.#a.getEvents({abi:this.#e,address:this.#t,event:e,...t})}readKey(...[e,t,a]){return this.#a.readKey({abi:this.#e,address:this.#t,fn:e,args:t,...a})}preloadRead(e){return this.#a.preloadRead({abi:this.#e,address:this.#t,...e})}getRead(...[e,t,a]){return this.#a.getRead({abi:this.#e,address:this.#t,fn:e,args:t,...a})}invalidateRead(...[e,t,a]){return this.#a.invalidateRead({abi:this.#e,address:this.#t,fn:e,args:t,...a})}invalidateReadsMatching(e,t,a){return this.#a.invalidateReadsMatching({abi:this.#e,address:this.#t,fn:e,args:t,...a})}async clearReads(){return this.#a.invalidateReadsMatching({abi:this.#e,address:this.#t})}};var me=class{static{i(this,"ReadContract")}abi;address;client;cache;epochBlock;constructor({abi:e,address:t,epochBlock:a,client:r,...s}){this.abi=e,this.address=t,this.client=r??ee(s),this.cache=new te({abi:e,address:t,clientCache:this.client.cache}),this.epochBlock=a}isReadWrite(){return this.client.isReadWrite()}extend(e){return Object.assign(this,e)}encodeDeployData(...[e,t]){return this.client.encodeDeployData({abi:this.abi,bytecode:e,args:t})}encodeFunctionData(...[e,t]){return this.client.encodeFunctionData({abi:this.abi,fn:e,args:t})}encodeFunctionReturn(e,t){return this.client.encodeFunctionReturn({abi:this.abi,fn:e,value:t})}decodeFunctionData(e){return this.client.decodeFunctionData({abi:this.abi,data:e})}decodeFunctionReturn(e,t){return this.client.decodeFunctionReturn({abi:this.abi,fn:e,data:t})}getEvents(e,{fromBlock:t,...a}={}){return this.epochBlock&&(!t||t==="earliest"||typeof t=="bigint"&&t<this.epochBlock)&&(t=this.epochBlock),this.client.getEvents({abi:this.abi,address:this.address,event:e,fromBlock:t,...a})}async multicall({calls:e,...t}){return this.client.multicall({calls:e.map(a=>({abi:this.abi,address:this.address,...a})),...t})}read(...[e,t,a]){let{block:r,...s}=a||{};return this.epochBlock&&(r==="earliest"||typeof r=="bigint"&&r<this.epochBlock)&&(r=this.epochBlock),this.client.read({abi:this.abi,address:this.address,fn:e,args:t,block:r,...s})}simulateWrite(...[e,t,a]){return this.client.simulateWrite({abi:this.abi,address:this.address,fn:e,args:t,...a})}},ae=class extends me{static{i(this,"ReadWriteContract")}getSignerAddress(){return this.client.getSignerAddress()}write(...[e,t,a]){return this.client.write({abi:this.abi,address:this.address,fn:e,args:t,...a})}};var $e="0x0000000000000000000000000000000000000000";var D=class extends ae{static{i(this,"MockContract")}constructor({abi:e=[],address:t=$e,epochBlock:a,client:r,...s}={}){super({abi:e,address:t,epochBlock:a,client:r??H(s)})}get adapter(){return this.client.adapter}reset(e){return this.adapter.reset(e)}onMulticall({calls:e,...t}){return this.adapter.onMulticall({calls:e?.map(a=>({abi:this.abi,address:this.address,...a})),...t})}onGetEvents(e,t){return this.adapter.onGetEvents({abi:this.abi,address:this.address,event:e,...t})}onRead(e,t,a){return this.adapter.onRead({abi:this.abi,address:this.address,fn:e,args:t,...a})}onSimulateWrite(e,t,a){return this.adapter.onSimulateWrite({abi:this.abi,address:this.address,fn:e,args:t,...a})}onGetSignerAddress(){return this.adapter.onGetSignerAddress()}onWrite(e,t,a){return this.adapter.onWrite({abi:this.abi,address:this.address,fn:e,args:t,...a})}};function Ue(n={}){return H(n).extend({contract(e){return new D({...e,client:this})}})}i(Ue,"createMockDrift");var Ve={name:"MockERC20",abi:[{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"name_",type:"string",internalType:"string"},{name:"symbol_",type:"string",internalType:"string"},{name:"decimals_",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nonces",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permit",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],bytecode:"0x608060405234801561000f575f80fd5b50610e2a8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80633644e5151161008857806395d89b411161006357806395d89b41146101ae578063a9059cbb146101b6578063d505accf146101c9578063dd62ed3e146101dc575f80fd5b80633644e5151461015f57806370a08231146101675780637ecebe001461018f575f80fd5b806306fdde03146100cf578063095ea7b3146100ed5780631624f6c61461011057806318160ddd1461012557806323b872dd14610137578063313ce5671461014a575b5f80fd5b6100d7610214565b6040516100e49190610959565b60405180910390f35b6101006100fb3660046109c0565b6102a3565b60405190151581526020016100e4565b61012361011e366004610a95565b61030f565b005b6003545b6040519081526020016100e4565b610100610145366004610b04565b6103ad565b60025460405160ff90911681526020016100e4565b6101296104bc565b610129610175366004610b3d565b6001600160a01b03165f9081526004602052604090205490565b61012961019d366004610b3d565b60086020525f908152604090205481565b6100d76104e1565b6101006101c43660046109c0565b6104f0565b6101236101d7366004610b56565b610584565b6101296101ea366004610bbb565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461022290610bec565b80601f016020809104026020016040519081016040528092919081815260200182805461024e90610bec565b80156102995780601f1061027057610100808354040283529160200191610299565b820191905f5260205f20905b81548152906001019060200180831161027c57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102fd9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561035d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b5f6103688482610c70565b5060016103758382610c70565b506002805460ff191660ff831617905561038d6107dc565b6006556103986107f4565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f198114610406576103e28184610895565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f908152600460205260409020546104289084610895565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461045690846108f7565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104a99087815260200190565b60405180910390a3506001949350505050565b5f6006546104c86107dc565b146104da576104d56107f4565b905090565b5060075490565b60606001805461022290610bec565b335f908152600460205260408120546105099083610895565b335f90815260046020526040808220929092556001600160a01b0385168152205461053490836108f7565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102fd9086815260200190565b428410156105d45760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610354565b5f60016105df6104bc565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061062c83610d44565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106a592919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610700573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906107365750876001600160a01b0316816001600160a01b0316145b6107735760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610354565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b5f610955806107ed63ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516108249190610d5c565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108556107dc565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156108e65760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610354565b6108f08284610dce565b9392505050565b5f806109038385610de1565b9050838110156108f05760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401610354565b4690565b5f602080835283518060208501525f5b8181101561098557858101830151858201604001528201610969565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109bb575f80fd5b919050565b5f80604083850312156109d1575f80fd5b6109da836109a5565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610a0b575f80fd5b813567ffffffffffffffff80821115610a2657610a266109e8565b604051601f8301601f19908116603f01168101908282118183101715610a4e57610a4e6109e8565b81604052838152866020858801011115610a66575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff811681146109bb575f80fd5b5f805f60608486031215610aa7575f80fd5b833567ffffffffffffffff80821115610abe575f80fd5b610aca878388016109fc565b94506020860135915080821115610adf575f80fd5b50610aec868287016109fc565b925050610afb60408501610a85565b90509250925092565b5f805f60608486031215610b16575f80fd5b610b1f846109a5565b9250610b2d602085016109a5565b9150604084013590509250925092565b5f60208284031215610b4d575f80fd5b6108f0826109a5565b5f805f805f805f60e0888a031215610b6c575f80fd5b610b75886109a5565b9650610b83602089016109a5565b95506040880135945060608801359350610b9f60808901610a85565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215610bcc575f80fd5b610bd5836109a5565b9150610be3602084016109a5565b90509250929050565b600181811c90821680610c0057607f821691505b602082108103610c1e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610c6b57805f5260205f20601f840160051c81016020851015610c495750805b601f840160051c820191505b81811015610c68575f8155600101610c55565b50505b505050565b815167ffffffffffffffff811115610c8a57610c8a6109e8565b610c9e81610c988454610bec565b84610c24565b602080601f831160018114610cd1575f8415610cba5750858301515b5f19600386901b1c1916600185901b178555610d28565b5f85815260208120601f198616915b82811015610cff57888601518255948401946001909101908401610ce0565b5085821015610d1c57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d5557610d55610d30565b5060010190565b5f808354610d6981610bec565b60018281168015610d815760018114610d9657610dc2565b60ff1984168752821515830287019450610dc2565b875f526020805f205f5b85811015610db95781548a820152908401908201610da0565b50505082870194505b50929695505050505050565b8181038181111561030957610309610d30565b8082018082111561030957610309610d3056fea2646970667358221220efde3a9674d92b42f79838e701b698504e43ae8230b493ba14b6be288d6cae8864736f6c63430008180033",methodIdentifiers:{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}};var qe={name:"TestToken",abi:[{type:"constructor",inputs:[{name:"initialSupply",type:"uint256",internalType:"uint256"},{name:"decimals_",type:"uint8",internalType:"uint8"}],stateMutability:"nonpayable"},{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"name_",type:"string",internalType:"string"},{name:"symbol_",type:"string",internalType:"string"},{name:"decimals_",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nonces",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permit",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],bytecode:"0x608060405234801562000010575f80fd5b50604051620013a3380380620013a3833981016040819052620000339162000314565b620000846040518060400160405280600a8152602001692a32b9ba102a37b5b2b760b11b81525060405180604001604052806004815260200163151154d560e21b815250836200009860201b60201c565b62000090338362000149565b50506200054d565b60095460ff1615620000f15760405162461bcd60e51b815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b5f620000fe8482620003e7565b5060016200010d8382620003e7565b506002805460ff191660ff831617905562000127620001dc565b60065562000134620001ff565b60075550506009805460ff1916600117905550565b600354620001589082620002a5565b6003556001600160a01b0382165f908152600460205260409020546200017f9082620002a5565b6001600160a01b0383165f818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001d09085815260200190565b60405180910390a35050565b5f62000310602090811b620007dc17908190620001f89082901c565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051620002319190620004b3565b6040519081900390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc662000265620001dc565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f80620002b383856200052d565b905083811015620003075760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401620000e8565b90505b92915050565b4690565b5f806040838503121562000326575f80fd5b82519150602083015160ff811681146200033e575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200037257607f821691505b6020821081036200039157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620003e257805f5260205f20601f840160051c81016020851015620003be5750805b601f840160051c820191505b81811015620003df575f8155600101620003ca565b50505b505050565b81516001600160401b0381111562000403576200040362000349565b6200041b816200041484546200035d565b8462000397565b602080601f83116001811462000451575f8415620004395750858301515b5f19600386901b1c1916600185901b178555620004ab565b5f85815260208120601f198616915b82811015620004815788860151825594840194600190910190840162000460565b50858210156200049f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f808354620004c2816200035d565b60018281168015620004dd5760018114620004f35762000521565b60ff198416875282151583028701945062000521565b875f526020805f205f5b85811015620005185781548a820152908401908201620004fd565b50505082870194505b50929695505050505050565b808201808211156200030a57634e487b7160e01b5f52601160045260245ffd5b610e48806200055b5f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80633644e5151161008857806395d89b411161006357806395d89b41146101ae578063a9059cbb146101b6578063d505accf146101c9578063dd62ed3e146101dc575f80fd5b80633644e5151461015f57806370a08231146101675780637ecebe001461018f575f80fd5b806306fdde03146100cf578063095ea7b3146100ed5780631624f6c61461011057806318160ddd1461012557806323b872dd14610137578063313ce5671461014a575b5f80fd5b6100d7610214565b6040516100e49190610963565b60405180910390f35b6101006100fb3660046109ca565b6102a3565b60405190151581526020016100e4565b61012361011e366004610a9f565b61030f565b005b6003545b6040519081526020016100e4565b610100610145366004610b0e565b6103ad565b60025460405160ff90911681526020016100e4565b6101296104bc565b610129610175366004610b47565b6001600160a01b03165f9081526004602052604090205490565b61012961019d366004610b47565b60086020525f908152604090205481565b6100d76104e1565b6101006101c43660046109ca565b6104f0565b6101236101d7366004610b60565b610584565b6101296101ea366004610bc5565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461022290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461024e90610bf6565b80156102995780601f1061027057610100808354040283529160200191610299565b820191905f5260205f20905b81548152906001019060200180831161027c57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102fd9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561035d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b5f6103688482610c7a565b5060016103758382610c7a565b506002805460ff191660ff831617905561038d6107e0565b6006556103986107f8565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f198114610406576103e28184610899565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f908152600460205260409020546104289084610899565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461045690846108fb565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104a99087815260200190565b60405180910390a3506001949350505050565b5f6006546104c86107e0565b146104da576104d56107f8565b905090565b5060075490565b60606001805461022290610bf6565b335f908152600460205260408120546105099083610899565b335f90815260046020526040808220929092556001600160a01b0385168152205461053490836108fb565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102fd9086815260200190565b428410156105d45760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610354565b5f60016105df6104bc565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061062c83610d4e565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106a592919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610700573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906107365750876001600160a01b0316816001600160a01b0316145b6107735760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610354565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b4690565b5f6107dc806107f163ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516108289190610d66565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108596107e0565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156108ea5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610354565b6108f48284610dd8565b9392505050565b5f806109078385610deb565b9050838110156108f45760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401610354565b610961610dfe565b565b5f602080835283518060208501525f5b8181101561098f57858101830151858201604001528201610973565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109c5575f80fd5b919050565b5f80604083850312156109db575f80fd5b6109e4836109af565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610a15575f80fd5b813567ffffffffffffffff80821115610a3057610a306109f2565b604051601f8301601f19908116603f01168101908282118183101715610a5857610a586109f2565b81604052838152866020858801011115610a70575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff811681146109c5575f80fd5b5f805f60608486031215610ab1575f80fd5b833567ffffffffffffffff80821115610ac8575f80fd5b610ad487838801610a06565b94506020860135915080821115610ae9575f80fd5b50610af686828701610a06565b925050610b0560408501610a8f565b90509250925092565b5f805f60608486031215610b20575f80fd5b610b29846109af565b9250610b37602085016109af565b9150604084013590509250925092565b5f60208284031215610b57575f80fd5b6108f4826109af565b5f805f805f805f60e0888a031215610b76575f80fd5b610b7f886109af565b9650610b8d602089016109af565b95506040880135945060608801359350610ba960808901610a8f565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215610bd6575f80fd5b610bdf836109af565b9150610bed602084016109af565b90509250929050565b600181811c90821680610c0a57607f821691505b602082108103610c2857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610c7557805f5260205f20601f840160051c81016020851015610c535750805b601f840160051c820191505b81811015610c72575f8155600101610c5f565b50505b505050565b815167ffffffffffffffff811115610c9457610c946109f2565b610ca881610ca28454610bf6565b84610c2e565b602080601f831160018114610cdb575f8415610cc45750858301515b5f19600386901b1c1916600185901b178555610d32565b5f85815260208120601f198616915b82811015610d0957888601518255948401946001909101908401610cea565b5085821015610d2657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d5f57610d5f610d3a565b5060010190565b5f808354610d7381610bf6565b60018281168015610d8b5760018114610da057610dcc565b60ff1984168752821515830287019450610dcc565b875f526020805f205f5b85811015610dc35781548a820152908401908201610daa565b50505082870194505b50929695505050505050565b8181038181111561030957610309610d3a565b8082018082111561030957610309610d3a565b634e487b7160e01b5f52605160045260245ffdfea2646970667358221220a1bf89b04cafa4c37afa7db47b1064cf6df6cb244d523f43980b1df74c49469464736f6c63430008180033",methodIdentifiers:{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}};var ze="0xBob0000000000000000000000000000000000000",Je="0xAlice00000000000000000000000000000000000",Xe="0xNancy00000000000000000000000000000000000";0&&(module.exports={ALICE,BOB,MissingStubError,MockAdapter,MockContract,NANCY,createMockClient,createMockDrift,createStubBlock,createStubEvent,createStubEvents,createStubTransaction,createStubTransactionReceipt,mockErc20,randomAddress,randomHex,randomInt,testToken});
//# sourceMappingURL=testing.cjs.map
import * as sinon from 'sinon';
import { SinonStub } from 'sinon';
import { b0 as FunctionKey, x as DriftError, as as AbiEncoder, R as ReadWriteAdapter, aY as AnyObject, y as BlockIdentifier, ai as GetBlockReturn, ah as GetBalanceParams, aj as GetTransactionParams, ao as Transaction, al as WaitForTransactionParams, ar as TransactionReceipt, O as CallParams, A as Abi, F as FunctionName, b4 as Replace, b7 as FunctionCall, ag as FunctionArgs, Y as MulticallOptions, M as MulticallParams, b as MulticallReturn, B as Bytes, ae as EventName, U as GetEventsParams, ab as EventLog, c as ReadParams, d as FunctionReturn, S as SimulateWriteParams, W as WriteParams, D as DeployParams, af as ConstructorArgs, a0 as SendTransactionParams, a5 as Block, a_ as Eval, b8 as Writable, b3 as PartialBy, r as Store, L as LruStore, ay as LruStoreOptions, u as Client, aG as ReadWriteContract, v as ContractBaseOptions, b2 as OneOf, T as GetEventsOptions, $ as ReadOptions, g as AbiSimplifiedType, aq as TransactionOptions, a3 as WriteOptions, I as Address, p as HexString } from './DriftError-BVIHLsi9.cjs';
import { b6 as FunctionKey, y as DriftError, at as AbiEncoder, R as ReadWriteAdapter, b1 as AnyObject, z as BlockIdentifier, aj as GetBlockReturn, ai as GetBalanceParams, ak as GetTransactionParams, ap as Transaction, am as WaitForTransactionParams, as as TransactionReceipt, P as CallParams, A as Abi, F as FunctionName, ba as Replace, T as FunctionCallParams, ah as FunctionArgs, Z as MulticallOptions, M as MulticallParams, b as MulticallReturn, B as Bytes, af as EventName, V as GetEventsParams, ac as EventLog, c as ReadParams, d as FunctionReturn, S as SimulateWriteParams, W as WriteParams, D as DeployParams, ag as ConstructorArgs, a1 as SendTransactionParams, a6 as Block, b4 as Eval, be as Writable, b9 as PartialBy, s as Store, L as LruStore, az as LruStoreOptions, v as Client, aH as ReadWriteContract, w as ContractBaseOptions, b8 as OneOf, U as GetEventsOptions, a0 as ReadOptions, g as AbiSimplifiedType, ar as TransactionOptions, a4 as WriteOptions, J as Address, m as HexString } from './DriftError-Dqc6l9RP.cjs';
import * as abitype from 'abitype';

@@ -30,3 +30,3 @@ import 'ox';

* const balance = await aliceBalanceStub();
* // ✖ NotImplementedError
* // ✖ MissingStubError
*

@@ -40,5 +40,5 @@ * aliceBalanceStub.resolves(100n);

}
interface GetStubParams<T, TArgs extends any[] = any[], TReturnType = any> {
interface HasStubParams<T> {
/**
* The method to get a stub for.
* The method on `T` the stub is for.
*/

@@ -51,3 +51,3 @@ method: FunctionKey<T>;

* ```ts
* const aliceBalanceStub = mock.stubs.get<[GetBalanceParams], Promise<bigint>>({
* const hasAliceStub = mock.stubs.has({
* method: "getBalance",

@@ -57,3 +57,3 @@ * key: "alice",

*
* const bobBalanceStub = mock.stubs.get<[GetBalanceParams], Promise<bigint>>({
* const hasBobStub = mock.stubs.has({
* method: "getBalance",

@@ -66,10 +66,13 @@ * key: "bob",

/**
* Whether to allow partial matching of the key. If `true`, the stub with the
* closest matching key will be returned. This has no effect if `key` is not
* provided.
* Whether to allow partial matching of the key. If `true`, the store will be
* searched for the stub with the closest matching key.
*
* **Note**: This has no effect if `key` is not provided.
*/
matchPartial?: boolean;
}
interface GetStubParams<T, TArgs extends any[] = any[], TReturnType = any> extends HasStubParams<T> {
/**
* A function to create the stub if it doesn't exist. A new stub which throws
* a {@linkcode NotImplementedError} by default will be passed to this
* a {@linkcode MissingStubError} by default will be passed to this
* function. The function should return the actual stub to be used.

@@ -90,4 +93,3 @@ *

}
type HasStubParams<T> = Omit<GetStubParams<T>, "create">;
declare class NotImplementedError extends DriftError {
declare class MissingStubError extends DriftError {
constructor({ method, args }: {

@@ -160,3 +162,3 @@ method: string;

fn?: infer TFunctionName extends TFns[K]["fn"];
} ? Replace<Partial<FunctionCall<TAbi, TFunctionName>>, {
} ? Replace<Partial<FunctionCallParams<TAbi, TFunctionName>>, {
args?: Partial<FunctionArgs<TAbi, TFunctionName>>;

@@ -202,4 +204,4 @@ fn?: TFns[K] extends {

type CreateStubEventParams<TAbi extends Abi, TEventName extends EventName<TAbi>> = Eval<{
abi: TAbi;
type CreateStubEventParams<TAbi extends Abi = Abi, TEventName extends EventName<TAbi> = EventName<TAbi>> = Eval<{
abi?: TAbi;
eventName: TEventName;

@@ -210,4 +212,4 @@ } & PartialBy<EventLog<TAbi, TEventName>, "blockNumber" | "data" | "transactionHash">>;

*/
declare function createStubEvent<TAbi extends Abi, TEventName extends EventName<TAbi>>(params: CreateStubEventParams<TAbi, TEventName>): EventLog<TAbi, TEventName>;
type CreateStubEventsParams<TAbi extends Abi, TEventName extends EventName<TAbi>> = Eval<{
declare function createStubEvent<TAbi extends Abi, TEventName extends EventName<TAbi> = EventName<TAbi>>(params: CreateStubEventParams<TAbi, TEventName>): EventLog<TAbi, TEventName>;
type CreateStubEventsParams<TAbi extends Abi = Abi, TEventName extends EventName<TAbi> = EventName<TAbi>> = Eval<{
abi: TAbi;

@@ -220,3 +222,3 @@ eventName: TEventName;

*/
declare function createStubEvents<TAbi extends Abi, TEventName extends EventName<TAbi>>(params: CreateStubEventsParams<TAbi, TEventName>): EventLog<TAbi, TEventName>[];
declare function createStubEvents<TAbi extends Abi, TEventName extends EventName<TAbi> = EventName<TAbi>>(params: CreateStubEventsParams<TAbi, TEventName>): EventLog<TAbi, TEventName>[];

@@ -858,2 +860,2 @@ /**

export { ALICE, BOB, MockAdapter, type MockClient, type MockClientOptions, MockContract, type MockContractClientOptions, type MockContractOptions, type MockDrift, NANCY, NotImplementedError, createMockClient, createMockDrift, createStubBlock, createStubEvent, createStubEvents, createStubTransaction, createStubTransactionReceipt, MockERC20 as mockErc20, randomAddress, randomHex, randomInt, TestToken as testToken };
export { ALICE, BOB, MissingStubError, MockAdapter, type MockClient, type MockClientOptions, MockContract, type MockContractClientOptions, type MockContractOptions, type MockDrift, NANCY, createMockClient, createMockDrift, createStubBlock, createStubEvent, createStubEvents, createStubTransaction, createStubTransactionReceipt, MockERC20 as mockErc20, randomAddress, randomHex, randomInt, TestToken as testToken };
import * as sinon from 'sinon';
import { SinonStub } from 'sinon';
import { b0 as FunctionKey, x as DriftError, as as AbiEncoder, R as ReadWriteAdapter, aY as AnyObject, y as BlockIdentifier, ai as GetBlockReturn, ah as GetBalanceParams, aj as GetTransactionParams, ao as Transaction, al as WaitForTransactionParams, ar as TransactionReceipt, O as CallParams, A as Abi, F as FunctionName, b4 as Replace, b7 as FunctionCall, ag as FunctionArgs, Y as MulticallOptions, M as MulticallParams, b as MulticallReturn, B as Bytes, ae as EventName, U as GetEventsParams, ab as EventLog, c as ReadParams, d as FunctionReturn, S as SimulateWriteParams, W as WriteParams, D as DeployParams, af as ConstructorArgs, a0 as SendTransactionParams, a5 as Block, a_ as Eval, b8 as Writable, b3 as PartialBy, r as Store, L as LruStore, ay as LruStoreOptions, u as Client, aG as ReadWriteContract, v as ContractBaseOptions, b2 as OneOf, T as GetEventsOptions, $ as ReadOptions, g as AbiSimplifiedType, aq as TransactionOptions, a3 as WriteOptions, I as Address, p as HexString } from './DriftError-BVIHLsi9.js';
import { b6 as FunctionKey, y as DriftError, at as AbiEncoder, R as ReadWriteAdapter, b1 as AnyObject, z as BlockIdentifier, aj as GetBlockReturn, ai as GetBalanceParams, ak as GetTransactionParams, ap as Transaction, am as WaitForTransactionParams, as as TransactionReceipt, P as CallParams, A as Abi, F as FunctionName, ba as Replace, T as FunctionCallParams, ah as FunctionArgs, Z as MulticallOptions, M as MulticallParams, b as MulticallReturn, B as Bytes, af as EventName, V as GetEventsParams, ac as EventLog, c as ReadParams, d as FunctionReturn, S as SimulateWriteParams, W as WriteParams, D as DeployParams, ag as ConstructorArgs, a1 as SendTransactionParams, a6 as Block, b4 as Eval, be as Writable, b9 as PartialBy, s as Store, L as LruStore, az as LruStoreOptions, v as Client, aH as ReadWriteContract, w as ContractBaseOptions, b8 as OneOf, U as GetEventsOptions, a0 as ReadOptions, g as AbiSimplifiedType, ar as TransactionOptions, a4 as WriteOptions, J as Address, m as HexString } from './DriftError-Dqc6l9RP.js';
import * as abitype from 'abitype';

@@ -30,3 +30,3 @@ import 'ox';

* const balance = await aliceBalanceStub();
* // ✖ NotImplementedError
* // ✖ MissingStubError
*

@@ -40,5 +40,5 @@ * aliceBalanceStub.resolves(100n);

}
interface GetStubParams<T, TArgs extends any[] = any[], TReturnType = any> {
interface HasStubParams<T> {
/**
* The method to get a stub for.
* The method on `T` the stub is for.
*/

@@ -51,3 +51,3 @@ method: FunctionKey<T>;

* ```ts
* const aliceBalanceStub = mock.stubs.get<[GetBalanceParams], Promise<bigint>>({
* const hasAliceStub = mock.stubs.has({
* method: "getBalance",

@@ -57,3 +57,3 @@ * key: "alice",

*
* const bobBalanceStub = mock.stubs.get<[GetBalanceParams], Promise<bigint>>({
* const hasBobStub = mock.stubs.has({
* method: "getBalance",

@@ -66,10 +66,13 @@ * key: "bob",

/**
* Whether to allow partial matching of the key. If `true`, the stub with the
* closest matching key will be returned. This has no effect if `key` is not
* provided.
* Whether to allow partial matching of the key. If `true`, the store will be
* searched for the stub with the closest matching key.
*
* **Note**: This has no effect if `key` is not provided.
*/
matchPartial?: boolean;
}
interface GetStubParams<T, TArgs extends any[] = any[], TReturnType = any> extends HasStubParams<T> {
/**
* A function to create the stub if it doesn't exist. A new stub which throws
* a {@linkcode NotImplementedError} by default will be passed to this
* a {@linkcode MissingStubError} by default will be passed to this
* function. The function should return the actual stub to be used.

@@ -90,4 +93,3 @@ *

}
type HasStubParams<T> = Omit<GetStubParams<T>, "create">;
declare class NotImplementedError extends DriftError {
declare class MissingStubError extends DriftError {
constructor({ method, args }: {

@@ -160,3 +162,3 @@ method: string;

fn?: infer TFunctionName extends TFns[K]["fn"];
} ? Replace<Partial<FunctionCall<TAbi, TFunctionName>>, {
} ? Replace<Partial<FunctionCallParams<TAbi, TFunctionName>>, {
args?: Partial<FunctionArgs<TAbi, TFunctionName>>;

@@ -202,4 +204,4 @@ fn?: TFns[K] extends {

type CreateStubEventParams<TAbi extends Abi, TEventName extends EventName<TAbi>> = Eval<{
abi: TAbi;
type CreateStubEventParams<TAbi extends Abi = Abi, TEventName extends EventName<TAbi> = EventName<TAbi>> = Eval<{
abi?: TAbi;
eventName: TEventName;

@@ -210,4 +212,4 @@ } & PartialBy<EventLog<TAbi, TEventName>, "blockNumber" | "data" | "transactionHash">>;

*/
declare function createStubEvent<TAbi extends Abi, TEventName extends EventName<TAbi>>(params: CreateStubEventParams<TAbi, TEventName>): EventLog<TAbi, TEventName>;
type CreateStubEventsParams<TAbi extends Abi, TEventName extends EventName<TAbi>> = Eval<{
declare function createStubEvent<TAbi extends Abi, TEventName extends EventName<TAbi> = EventName<TAbi>>(params: CreateStubEventParams<TAbi, TEventName>): EventLog<TAbi, TEventName>;
type CreateStubEventsParams<TAbi extends Abi = Abi, TEventName extends EventName<TAbi> = EventName<TAbi>> = Eval<{
abi: TAbi;

@@ -220,3 +222,3 @@ eventName: TEventName;

*/
declare function createStubEvents<TAbi extends Abi, TEventName extends EventName<TAbi>>(params: CreateStubEventsParams<TAbi, TEventName>): EventLog<TAbi, TEventName>[];
declare function createStubEvents<TAbi extends Abi, TEventName extends EventName<TAbi> = EventName<TAbi>>(params: CreateStubEventsParams<TAbi, TEventName>): EventLog<TAbi, TEventName>[];

@@ -858,2 +860,2 @@ /**

export { ALICE, BOB, MockAdapter, type MockClient, type MockClientOptions, MockContract, type MockContractClientOptions, type MockContractOptions, type MockDrift, NANCY, NotImplementedError, createMockClient, createMockDrift, createStubBlock, createStubEvent, createStubEvents, createStubTransaction, createStubTransactionReceipt, MockERC20 as mockErc20, randomAddress, randomHex, randomInt, TestToken as testToken };
export { ALICE, BOB, MissingStubError, MockAdapter, type MockClient, type MockClientOptions, MockContract, type MockContractClientOptions, type MockContractOptions, type MockDrift, NANCY, createMockClient, createMockDrift, createStubBlock, createStubEvent, createStubEvents, createStubTransaction, createStubTransactionReceipt, MockERC20 as mockErc20, randomAddress, randomHex, randomInt, TestToken as testToken };

@@ -1,6 +0,6 @@

import{C as M,G as v,J as C,L as E,a as r,c as F,q as N,u as h}from"./chunk-BP3Y6ILU.js";import O from"lodash.ismatch";import{stub as I}from"sinon";import w from"safe-stable-stringify";function R(n,e=!0){return e&&(n=h(n,a=>a&&typeof a=="object"&&"abi"in a,({abi:a,...i})=>({abi:w(a)?.replace(/(?<=.{100}).+/,"...]"),...i}))),w(n,G,2)?.replaceAll('\\"','"')?.replace(/"([^"]+)"(:)|"(\d+n)"/g,"$1$2$3")?.replace(/"(\[.*?\])"/g,"$1")}r(R,"formatArgsForDisplay");function G(n,e){return typeof e=="bigint"?`${e}n`:e}r(G,"bigintReplacer");var x=class{static{r(this,"StubStore")}#e=new Map;reset(e){return e?this.#e.delete(e):this.#e.clear()}has(e){let{method:t,key:a,matchPartial:i}=e,s=this.#e.get(t);if(!s)return!1;if(!a||s.keyedStubs.has(a))return!0;if(!i)return!1;let c=JSON.parse(a);for(let o of s.keyedStubs.keys())if(O(c,JSON.parse(o)))return!0;return!!s.defaultStub}get(e){let{method:t,key:a,matchPartial:i,create:s}=e,c=String(t),o=this.#e.get(t);if(!o&&(o={defaultStub:void 0,keyedStubs:new Map},this.#e.set(t,o),s)){let p=s(m(c));return a?o.keyedStubs.set(a,p):o.defaultStub=p,p}if(!a)return o.defaultStub||=s?s(m(c)):m(c),o.defaultStub;if(o.keyedStubs.has(a))return o.keyedStubs.get(a);if(i){let p=o.defaultStub;if(o.keyedStubs.size){let B=JSON.parse(a),k="";for(let[S,W]of o.keyedStubs.entries())O(B,JSON.parse(S))&&S.length>k.length&&(p=W,k=S)}if(p)return p}let P=s?s(m(c)):m(c);return o.keyedStubs.set(a,P),P}},l=class extends F{static{r(this,"NotImplementedError")}constructor({method:e,args:t}){super(D(e,t),{name:"NotImplementedError"})}};function m(n){return I().callsFake((...e)=>{throw new l({method:n,args:e})})}r(m,"createDefaultStub");function D(n,e){let t=`Missing stub for mock method call.
import{F as M,J as v,M as C,O as E,a as r,c as F,t as N,x}from"./chunk-UHHYMNQR.js";import O from"lodash.ismatch";import{stub as H}from"sinon";import R from"safe-stable-stringify";function w(n,e=!0){return e&&(n=x(n,a=>a&&typeof a=="object"&&"abi"in a,({abi:a,...s})=>({abi:R(a)?.replace(/(?<=.{100}).+/,"...]"),...s}))),R(n,G,2)?.replaceAll('\\"','"')?.replace(/"([^"]+)"(:)|"(\d+n)"/g,"$1$2$3")?.replace(/"(\[.*?\])"/g,"$1")}r(w,"formatArgsForDisplay");function G(n,e){return typeof e=="bigint"?`${e}n`:e}r(G,"bigintReplacer");var S=class{static{r(this,"StubStore")}#e=new Map;reset(e){return e?this.#e.delete(e):this.#e.clear()}has(e){let{method:t,key:a,matchPartial:s}=e,i=this.#e.get(t);if(!i)return!1;if(!a)return!!i.defaultStub;if(i.keyedStubs.has(a))return!0;if(!s)return!1;if(i.defaultStub)return!0;if(!i.keyedStubs.size)return!1;let c=JSON.parse(a);for(let b of i.keyedStubs.keys())if(O(c,JSON.parse(b)))return!0;return!1}get(e){let{method:t,key:a,matchPartial:s,create:i}=e,c=String(t),b=this.#e.get(t);if(!b&&(b={defaultStub:void 0,keyedStubs:new Map},this.#e.set(t,b),i)){let p=i(y(c));return a?b.keyedStubs.set(a,p):b.defaultStub=p,p}if(!a)return b.defaultStub||=i?i(y(c)):y(c),b.defaultStub;if(b.keyedStubs.has(a))return b.keyedStubs.get(a);if(s){let p=b.defaultStub;if(b.keyedStubs.size){let B=JSON.parse(a),k="";for(let[g,W]of b.keyedStubs.entries())g.length>k.length&&O(B,JSON.parse(g))&&(p=W,k=g)}if(p)return p}let m=i?i(y(c)):y(c);return b.keyedStubs.set(a,m),m}},l=class extends F{static{r(this,"MissingStubError")}constructor({method:e,args:t}){super(D(e,t),{name:"MissingStubError"})}};function y(n){return H().callsFake((...e)=>{throw new l({method:n,args:e})})}r(y,"createDefaultStub");function D(n,e){let t=`Missing stub for mock method call.
method: "${n}"`;e&&(t+=`
args: ${R(e)?.replaceAll(`
args: ${w(e)?.replaceAll(`
`,`
`)}`);let a=n.replace(/^./,i=>i.toUpperCase());return`${t}
`)}`);let a=n.replace(/^./,s=>s.toUpperCase());return`${t}

@@ -13,3 +13,3 @@ The value must be stubbed first. For example:

});
`}r(D,"createMissingStubMessage");var y=class extends N{static{r(this,"MockAdapter")}stubs=new x;reset(e){return this.stubs.reset(e)}createKey(e){if(!e)return;let t=h(e,i=>i&&typeof i=="object"&&"abi"in i,({abi:i,...s})=>s);return M(t)}onGetChainId(){return this.stubs.get({method:"getChainId"})}async getChainId(){return this.stubs.get({method:"getChainId"})()}onGetBlockNumber(){return this.stubs.get({method:"getBlockNumber"})}async getBlockNumber(){return this.stubs.get({method:"getBlockNumber"})()}onGetBlock(e){return this.stubs.get({method:"getBlock",key:e===void 0?void 0:this.createKey({block:e})})}async getBlock(e){return this.stubs.get({method:"getBlock",key:e===void 0?void 0:this.createKey({block:e}),matchPartial:!0})(e)}onGetBalance(e){return this.stubs.get({method:"getBalance",key:this.createKey(e)})}async getBalance(e){return this.stubs.get({method:"getBalance",key:this.createKey(e),matchPartial:!0})(e)}onGetTransaction(e){return this.stubs.get({method:"getTransaction",key:this.createKey(e),create:r(t=>t.resolves(void 0),"create")})}async getTransaction(e){return this.stubs.get({method:"getTransaction",key:this.createKey(e),matchPartial:!0,create:r(t=>t.resolves(void 0),"create")})(e)}onWaitForTransaction(e){return this.stubs.get({method:"waitForTransaction",key:this.createKey(e),create:r(t=>t.resolves(void 0),"create")})}async waitForTransaction(e){return this.stubs.get({method:"waitForTransaction",key:this.createKey(e),matchPartial:!0,create:r(t=>t.resolves(void 0),"create")})(e)}onCall(e){return this.stubs.get({method:"call",key:this.createKey(e)})}async call(e){return this.stubs.get({method:"call",key:this.createKey(e),matchPartial:!0})(e)}onMulticall(e){return this.stubs.get({method:"multicall",key:this.createKey(e)})}async multicall(e){try{return this.stubs.get({method:"multicall",key:this.createKey(e),matchPartial:!0})(e)}catch(t){if(!(t instanceof l))throw t;let{calls:a,...i}=e,s=[];for(let c of a){if(this.stubs.has({method:"read",key:this.createKey({...c,block:i.block}),matchPartial:!0})){s.push(this.read({...c,block:i.block}));continue}if(this.stubs.has({method:"simulateWrite",key:this.createKey({...c,...i}),matchPartial:!0})){s.push(this.simulateWrite({...c,...i}));continue}if(i.allowFailure===!1)throw t;s.push(Promise.resolve(t))}return Promise.all(s.map(async c=>{let o=await c;return i.allowFailure===!1?o:o instanceof Error?{success:!1,error:o}:{success:!0,value:o}}))}}onSendRawTransaction(e){return this.stubs.get({method:"sendRawTransaction",key:e===void 0?void 0:this.createKey({transaction:e})})}async sendRawTransaction(e){return this.stubs.get({method:"sendRawTransaction",key:e===void 0?void 0:this.createKey({transaction:e}),matchPartial:!0})(e)}onGetEvents(e){return this.stubs.get({method:"getEvents",key:this.createKey(e)})}async getEvents(e){return this.stubs.get({method:"getEvents",key:this.createKey(e),matchPartial:!0})(e)}onRead(e){return this.stubs.get({method:"read",key:this.createKey(e)})}async read(e){return this.stubs.get({method:"read",key:this.createKey(e),matchPartial:!0})(e)}onSimulateWrite(e){return this.stubs.get({method:"simulateWrite",key:this.createKey(e)})}async simulateWrite(e){return this.stubs.get({method:"simulateWrite",key:this.createKey(e),matchPartial:!0})(e)}onWrite(e){return this.stubs.get({method:"write",key:this.createKey(e)})}async write(e){let t=await this.stubs.get({method:"write",key:this.createKey(e),matchPartial:!0})(e);return e.onMined&&this.waitForTransaction({hash:t}).then(e.onMined),t}onGetSignerAddress(){return this.stubs.get({method:"getSignerAddress"})}async getSignerAddress(){return this.stubs.get({method:"getSignerAddress"})()}onDeploy(e){return this.stubs.get({method:"deploy",key:this.createKey(e)})}async deploy(e){let t=await Promise.resolve(this.stubs.get({method:"deploy",key:this.createKey(e),matchPartial:!0})(e));return e.onMined&&this.waitForTransaction({hash:t}).then(e.onMined),t}onSendTransaction(e){return this.stubs.get({method:"sendTransaction",key:this.createKey(e)})}async sendTransaction(e){let t=await this.stubs.get({method:"sendTransaction",key:this.createKey(e),matchPartial:!0})(e);return e.onMined&&this.waitForTransaction({hash:t}).then(e.onMined),t}};function b(n=32,e=""){let t=e.length%2?`${e}0`:e;if(t.length/2>n)return`0x${t.slice(0,n*2)}`;let a=new Uint8Array(n-t.length/2);crypto.getRandomValues(a);let i=Array.from(a,s=>s.toString(16).padStart(2,"0")).join("");return`0x${t}${i}`}r(b,"randomHex");function u(n=""){return b(20,n)}r(u,"randomAddress");function H(n={}){return{extraData:"0x",gasLimit:30000000n,gasUsed:108000000n,hash:b(),logsBloom:"0x0",miner:u(),mixHash:b(),nonce:1n,number:1n,parentHash:b(),receiptsRoot:b(),sha3Uncles:b(),size:100000n,stateRoot:b(),timestamp:BigInt(Date.now())/1000n,transactions:[],transactionsRoot:b(),...n}}r(H,"createStubBlock");function K(n){let{abi:e,...t}=n;return{blockNumber:1n,data:b(),transactionHash:b(),...t}}r(K,"createStubEvent");function L(n){let{abi:e,eventName:t,events:a}=n;return a.map(i=>K({abi:e,eventName:t,...i}))}r(L,"createStubEvents");function g(n=0,e=Number.MAX_SAFE_INTEGER){return Math.floor(Math.random()*(e-n+1)+n)}r(g,"randomInt");function _(n={}){return{blockHash:b(),blockNumber:1n,chainId:1,from:u(),gas:BigInt(g(21e3,21e4)),gasPrice:BigInt(g(1e8,1e10)),input:"0x",nonce:1n,to:u(),transactionHash:b(),transactionIndex:0n,type:"0x02",value:0n,...n}}r(_,"createStubTransaction");function $(n={}){return{blockHash:b(),blockNumber:1n,contractAddress:u(),cumulativeGasUsed:0n,effectiveGasPrice:0n,from:b(),gasUsed:0n,logsBloom:b(),status:"success",to:u(),transactionHash:b(),transactionIndex:0n,...n}}r($,"createStubTransactionReceipt");function T(n={}){let{adapter:e=new y,chainId:t,...a}=n;return e.stubs.has({method:"getChainId"})||e.onGetChainId().resolves(t??0),v({adapter:e,chainId:t,...a})}r(T,"createMockClient");var A=class extends C{static{r(this,"MockContract")}constructor({abi:e=[],address:t=E,epochBlock:a,client:i,...s}={}){super({abi:e,address:t,epochBlock:a,client:i??T(s)})}get adapter(){return this.client.adapter}reset(e){return this.adapter.reset(e)}onMulticall({calls:e,...t}){return this.adapter.onMulticall({calls:e?.map(a=>({abi:this.abi,address:this.address,...a})),...t})}onGetEvents(e,t){return this.adapter.onGetEvents({abi:this.abi,address:this.address,event:e,...t})}onRead(e,t,a){return this.adapter.onRead({abi:this.abi,address:this.address,fn:e,args:t,...a})}onSimulateWrite(e,t,a){return this.adapter.onSimulateWrite({abi:this.abi,address:this.address,fn:e,args:t,...a})}onGetSignerAddress(){return this.adapter.onGetSignerAddress()}onWrite(e,t,a){return this.adapter.onWrite({abi:this.abi,address:this.address,fn:e,args:t,...a})}};function z(n={}){return T(n).extend({contract(e){return new A({...e,client:this})}})}r(z,"createMockDrift");var U={name:"MockERC20",abi:[{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"name_",type:"string",internalType:"string"},{name:"symbol_",type:"string",internalType:"string"},{name:"decimals_",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nonces",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permit",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],bytecode:"0x608060405234801561000f575f80fd5b50610e2a8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80633644e5151161008857806395d89b411161006357806395d89b41146101ae578063a9059cbb146101b6578063d505accf146101c9578063dd62ed3e146101dc575f80fd5b80633644e5151461015f57806370a08231146101675780637ecebe001461018f575f80fd5b806306fdde03146100cf578063095ea7b3146100ed5780631624f6c61461011057806318160ddd1461012557806323b872dd14610137578063313ce5671461014a575b5f80fd5b6100d7610214565b6040516100e49190610959565b60405180910390f35b6101006100fb3660046109c0565b6102a3565b60405190151581526020016100e4565b61012361011e366004610a95565b61030f565b005b6003545b6040519081526020016100e4565b610100610145366004610b04565b6103ad565b60025460405160ff90911681526020016100e4565b6101296104bc565b610129610175366004610b3d565b6001600160a01b03165f9081526004602052604090205490565b61012961019d366004610b3d565b60086020525f908152604090205481565b6100d76104e1565b6101006101c43660046109c0565b6104f0565b6101236101d7366004610b56565b610584565b6101296101ea366004610bbb565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461022290610bec565b80601f016020809104026020016040519081016040528092919081815260200182805461024e90610bec565b80156102995780601f1061027057610100808354040283529160200191610299565b820191905f5260205f20905b81548152906001019060200180831161027c57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102fd9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561035d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b5f6103688482610c70565b5060016103758382610c70565b506002805460ff191660ff831617905561038d6107dc565b6006556103986107f4565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f198114610406576103e28184610895565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f908152600460205260409020546104289084610895565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461045690846108f7565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104a99087815260200190565b60405180910390a3506001949350505050565b5f6006546104c86107dc565b146104da576104d56107f4565b905090565b5060075490565b60606001805461022290610bec565b335f908152600460205260408120546105099083610895565b335f90815260046020526040808220929092556001600160a01b0385168152205461053490836108f7565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102fd9086815260200190565b428410156105d45760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610354565b5f60016105df6104bc565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061062c83610d44565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106a592919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610700573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906107365750876001600160a01b0316816001600160a01b0316145b6107735760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610354565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b5f610955806107ed63ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516108249190610d5c565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108556107dc565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156108e65760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610354565b6108f08284610dce565b9392505050565b5f806109038385610de1565b9050838110156108f05760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401610354565b4690565b5f602080835283518060208501525f5b8181101561098557858101830151858201604001528201610969565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109bb575f80fd5b919050565b5f80604083850312156109d1575f80fd5b6109da836109a5565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610a0b575f80fd5b813567ffffffffffffffff80821115610a2657610a266109e8565b604051601f8301601f19908116603f01168101908282118183101715610a4e57610a4e6109e8565b81604052838152866020858801011115610a66575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff811681146109bb575f80fd5b5f805f60608486031215610aa7575f80fd5b833567ffffffffffffffff80821115610abe575f80fd5b610aca878388016109fc565b94506020860135915080821115610adf575f80fd5b50610aec868287016109fc565b925050610afb60408501610a85565b90509250925092565b5f805f60608486031215610b16575f80fd5b610b1f846109a5565b9250610b2d602085016109a5565b9150604084013590509250925092565b5f60208284031215610b4d575f80fd5b6108f0826109a5565b5f805f805f805f60e0888a031215610b6c575f80fd5b610b75886109a5565b9650610b83602089016109a5565b95506040880135945060608801359350610b9f60808901610a85565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215610bcc575f80fd5b610bd5836109a5565b9150610be3602084016109a5565b90509250929050565b600181811c90821680610c0057607f821691505b602082108103610c1e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610c6b57805f5260205f20601f840160051c81016020851015610c495750805b601f840160051c820191505b81811015610c68575f8155600101610c55565b50505b505050565b815167ffffffffffffffff811115610c8a57610c8a6109e8565b610c9e81610c988454610bec565b84610c24565b602080601f831160018114610cd1575f8415610cba5750858301515b5f19600386901b1c1916600185901b178555610d28565b5f85815260208120601f198616915b82811015610cff57888601518255948401946001909101908401610ce0565b5085821015610d1c57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d5557610d55610d30565b5060010190565b5f808354610d6981610bec565b60018281168015610d815760018114610d9657610dc2565b60ff1984168752821515830287019450610dc2565b875f526020805f205f5b85811015610db95781548a820152908401908201610da0565b50505082870194505b50929695505050505050565b8181038181111561030957610309610d30565b8082018082111561030957610309610d3056fea2646970667358221220efde3a9674d92b42f79838e701b698504e43ae8230b493ba14b6be288d6cae8864736f6c63430008180033",methodIdentifiers:{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}};var j={name:"TestToken",abi:[{type:"constructor",inputs:[{name:"initialSupply",type:"uint256",internalType:"uint256"},{name:"decimals_",type:"uint8",internalType:"uint8"}],stateMutability:"nonpayable"},{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"name_",type:"string",internalType:"string"},{name:"symbol_",type:"string",internalType:"string"},{name:"decimals_",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nonces",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permit",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],bytecode:"0x608060405234801562000010575f80fd5b50604051620013a3380380620013a3833981016040819052620000339162000314565b620000846040518060400160405280600a8152602001692a32b9ba102a37b5b2b760b11b81525060405180604001604052806004815260200163151154d560e21b815250836200009860201b60201c565b62000090338362000149565b50506200054d565b60095460ff1615620000f15760405162461bcd60e51b815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b5f620000fe8482620003e7565b5060016200010d8382620003e7565b506002805460ff191660ff831617905562000127620001dc565b60065562000134620001ff565b60075550506009805460ff1916600117905550565b600354620001589082620002a5565b6003556001600160a01b0382165f908152600460205260409020546200017f9082620002a5565b6001600160a01b0383165f818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001d09085815260200190565b60405180910390a35050565b5f62000310602090811b620007dc17908190620001f89082901c565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051620002319190620004b3565b6040519081900390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc662000265620001dc565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f80620002b383856200052d565b905083811015620003075760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401620000e8565b90505b92915050565b4690565b5f806040838503121562000326575f80fd5b82519150602083015160ff811681146200033e575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200037257607f821691505b6020821081036200039157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620003e257805f5260205f20601f840160051c81016020851015620003be5750805b601f840160051c820191505b81811015620003df575f8155600101620003ca565b50505b505050565b81516001600160401b0381111562000403576200040362000349565b6200041b816200041484546200035d565b8462000397565b602080601f83116001811462000451575f8415620004395750858301515b5f19600386901b1c1916600185901b178555620004ab565b5f85815260208120601f198616915b82811015620004815788860151825594840194600190910190840162000460565b50858210156200049f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f808354620004c2816200035d565b60018281168015620004dd5760018114620004f35762000521565b60ff198416875282151583028701945062000521565b875f526020805f205f5b85811015620005185781548a820152908401908201620004fd565b50505082870194505b50929695505050505050565b808201808211156200030a57634e487b7160e01b5f52601160045260245ffd5b610e48806200055b5f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80633644e5151161008857806395d89b411161006357806395d89b41146101ae578063a9059cbb146101b6578063d505accf146101c9578063dd62ed3e146101dc575f80fd5b80633644e5151461015f57806370a08231146101675780637ecebe001461018f575f80fd5b806306fdde03146100cf578063095ea7b3146100ed5780631624f6c61461011057806318160ddd1461012557806323b872dd14610137578063313ce5671461014a575b5f80fd5b6100d7610214565b6040516100e49190610963565b60405180910390f35b6101006100fb3660046109ca565b6102a3565b60405190151581526020016100e4565b61012361011e366004610a9f565b61030f565b005b6003545b6040519081526020016100e4565b610100610145366004610b0e565b6103ad565b60025460405160ff90911681526020016100e4565b6101296104bc565b610129610175366004610b47565b6001600160a01b03165f9081526004602052604090205490565b61012961019d366004610b47565b60086020525f908152604090205481565b6100d76104e1565b6101006101c43660046109ca565b6104f0565b6101236101d7366004610b60565b610584565b6101296101ea366004610bc5565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461022290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461024e90610bf6565b80156102995780601f1061027057610100808354040283529160200191610299565b820191905f5260205f20905b81548152906001019060200180831161027c57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102fd9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561035d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b5f6103688482610c7a565b5060016103758382610c7a565b506002805460ff191660ff831617905561038d6107e0565b6006556103986107f8565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f198114610406576103e28184610899565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f908152600460205260409020546104289084610899565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461045690846108fb565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104a99087815260200190565b60405180910390a3506001949350505050565b5f6006546104c86107e0565b146104da576104d56107f8565b905090565b5060075490565b60606001805461022290610bf6565b335f908152600460205260408120546105099083610899565b335f90815260046020526040808220929092556001600160a01b0385168152205461053490836108fb565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102fd9086815260200190565b428410156105d45760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610354565b5f60016105df6104bc565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061062c83610d4e565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106a592919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610700573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906107365750876001600160a01b0316816001600160a01b0316145b6107735760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610354565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b4690565b5f6107dc806107f163ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516108289190610d66565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108596107e0565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156108ea5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610354565b6108f48284610dd8565b9392505050565b5f806109078385610deb565b9050838110156108f45760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401610354565b610961610dfe565b565b5f602080835283518060208501525f5b8181101561098f57858101830151858201604001528201610973565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109c5575f80fd5b919050565b5f80604083850312156109db575f80fd5b6109e4836109af565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610a15575f80fd5b813567ffffffffffffffff80821115610a3057610a306109f2565b604051601f8301601f19908116603f01168101908282118183101715610a5857610a586109f2565b81604052838152866020858801011115610a70575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff811681146109c5575f80fd5b5f805f60608486031215610ab1575f80fd5b833567ffffffffffffffff80821115610ac8575f80fd5b610ad487838801610a06565b94506020860135915080821115610ae9575f80fd5b50610af686828701610a06565b925050610b0560408501610a8f565b90509250925092565b5f805f60608486031215610b20575f80fd5b610b29846109af565b9250610b37602085016109af565b9150604084013590509250925092565b5f60208284031215610b57575f80fd5b6108f4826109af565b5f805f805f805f60e0888a031215610b76575f80fd5b610b7f886109af565b9650610b8d602089016109af565b95506040880135945060608801359350610ba960808901610a8f565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215610bd6575f80fd5b610bdf836109af565b9150610bed602084016109af565b90509250929050565b600181811c90821680610c0a57607f821691505b602082108103610c2857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610c7557805f5260205f20601f840160051c81016020851015610c535750805b601f840160051c820191505b81811015610c72575f8155600101610c5f565b50505b505050565b815167ffffffffffffffff811115610c9457610c946109f2565b610ca881610ca28454610bf6565b84610c2e565b602080601f831160018114610cdb575f8415610cc45750858301515b5f19600386901b1c1916600185901b178555610d32565b5f85815260208120601f198616915b82811015610d0957888601518255948401946001909101908401610cea565b5085821015610d2657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d5f57610d5f610d3a565b5060010190565b5f808354610d7381610bf6565b60018281168015610d8b5760018114610da057610dcc565b60ff1984168752821515830287019450610dcc565b875f526020805f205f5b85811015610dc35781548a820152908401908201610daa565b50505082870194505b50929695505050505050565b8181038181111561030957610309610d3a565b8082018082111561030957610309610d3a565b634e487b7160e01b5f52605160045260245ffdfea2646970667358221220a1bf89b04cafa4c37afa7db47b1064cf6df6cb244d523f43980b1df74c49469464736f6c63430008180033",methodIdentifiers:{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}};var J="0xBob0000000000000000000000000000000000000",Y="0xAlice00000000000000000000000000000000000",V="0xNancy00000000000000000000000000000000000";export{Y as ALICE,J as BOB,y as MockAdapter,A as MockContract,V as NANCY,l as NotImplementedError,T as createMockClient,z as createMockDrift,H as createStubBlock,K as createStubEvent,L as createStubEvents,_ as createStubTransaction,$ as createStubTransactionReceipt,U as mockErc20,u as randomAddress,b as randomHex,g as randomInt,j as testToken};
`}r(D,"createMissingStubMessage");var T=class extends N{static{r(this,"MockAdapter")}stubs=new S;reset(e){return this.stubs.reset(e)}createKey(e){if(!e)return;let t=x(e,s=>s&&typeof s=="object"&&"abi"in s,({abi:s,...i})=>i);return M(t)}onGetChainId(){return this.stubs.get({method:"getChainId"})}async getChainId(){return this.onGetChainId()()}onGetBlockNumber(){return this.stubs.get({method:"getBlockNumber"})}async getBlockNumber(){return this.onGetBlockNumber()()}onGetBlock(e){return this.stubs.get({method:"getBlock",key:e===void 0?void 0:this.createKey({block:e})})}async getBlock(e){return this.stubs.get({method:"getBlock",key:e===void 0?void 0:this.createKey({block:e}),matchPartial:!0})(e)}onGetBalance(e){return this.stubs.get({method:"getBalance",key:this.createKey(e)})}async getBalance(e){return this.stubs.get({method:"getBalance",key:this.createKey(e),matchPartial:!0})(e)}onGetTransaction(e){return this.stubs.get({method:"getTransaction",key:this.createKey(e),create:r(t=>t.resolves(void 0),"create")})}async getTransaction(e){return this.stubs.get({method:"getTransaction",key:this.createKey(e),matchPartial:!0,create:r(t=>t.resolves(void 0),"create")})(e)}onWaitForTransaction(e){return this.stubs.get({method:"waitForTransaction",key:this.createKey(e),create:r(t=>t.resolves(void 0),"create")})}async waitForTransaction(e){return this.stubs.get({method:"waitForTransaction",key:this.createKey(e),matchPartial:!0,create:r(t=>t.resolves(void 0),"create")})(e)}onCall(e){return this.stubs.get({method:"call",key:this.createKey(e)})}async call(e){return this.stubs.get({method:"call",key:this.createKey(e),matchPartial:!0})(e)}onMulticall(e){return this.stubs.get({method:"multicall",key:this.createKey(e)})}async multicall(e){try{return this.stubs.get({method:"multicall",key:this.createKey(e),matchPartial:!0})(e)}catch(t){if(!(t instanceof l))throw t;let{calls:a,...s}=e,i=[];for(let c of a){let b={...c,block:s.block};if(this.stubs.has({method:"read",key:this.createKey(b),matchPartial:!0})){i.push(this.read(b));continue}let m={...c,...s};if(this.stubs.has({method:"simulateWrite",key:this.createKey(m),matchPartial:!0})){i.push(this.simulateWrite(m));continue}if(s.allowFailure===!1)throw t;i.push(Promise.resolve(t))}return Promise.all(i.map(async c=>{let b=await c;return s.allowFailure===!1?b:b instanceof Error?{success:!1,error:b}:{success:!0,value:b}}))}}onSendRawTransaction(e){return this.stubs.get({method:"sendRawTransaction",key:e===void 0?void 0:this.createKey({transaction:e})})}async sendRawTransaction(e){return this.stubs.get({method:"sendRawTransaction",key:e===void 0?void 0:this.createKey({transaction:e}),matchPartial:!0})(e)}onGetEvents(e){return this.stubs.get({method:"getEvents",key:this.createKey(e)})}async getEvents(e){return this.stubs.get({method:"getEvents",key:this.createKey(e),matchPartial:!0})(e)}onRead(e){return this.stubs.get({method:"read",key:this.createKey(e)})}async read(e){return this.stubs.get({method:"read",key:this.createKey(e),matchPartial:!0})(e)}onSimulateWrite(e){return this.stubs.get({method:"simulateWrite",key:this.createKey(e)})}async simulateWrite(e){return this.stubs.get({method:"simulateWrite",key:this.createKey(e),matchPartial:!0})(e)}onWrite(e){return this.stubs.get({method:"write",key:this.createKey(e)})}async write(e){let t=await this.stubs.get({method:"write",key:this.createKey(e),matchPartial:!0})(e);return e.onMined&&this.waitForTransaction({hash:t}).then(e.onMined),t}onGetSignerAddress(){return this.stubs.get({method:"getSignerAddress"})}async getSignerAddress(){return this.stubs.get({method:"getSignerAddress"})()}onDeploy(e){return this.stubs.get({method:"deploy",key:this.createKey(e)})}async deploy(e){let t=await Promise.resolve(this.stubs.get({method:"deploy",key:this.createKey(e),matchPartial:!0})(e));return e.onMined&&this.waitForTransaction({hash:t}).then(e.onMined),t}onSendTransaction(e){return this.stubs.get({method:"sendTransaction",key:this.createKey(e)})}async sendTransaction(e){let t=await this.stubs.get({method:"sendTransaction",key:this.createKey(e),matchPartial:!0})(e);return e.onMined&&this.waitForTransaction({hash:t}).then(e.onMined),t}};function o(n=32,e=""){let t=e.length%2?`${e}0`:e;if(t.length/2>n)return`0x${t.slice(0,n*2)}`;let a=new Uint8Array(n-t.length/2);crypto.getRandomValues(a);let s=Array.from(a,i=>i.toString(16).padStart(2,"0")).join("");return`0x${t}${s}`}r(o,"randomHex");function u(n=""){return o(20,n)}r(u,"randomAddress");function I(n={}){return{extraData:"0x",gasLimit:30000000n,gasUsed:108000000n,hash:o(),logsBloom:"0x0",miner:u(),mixHash:o(),nonce:1n,number:1n,parentHash:o(),receiptsRoot:o(),sha3Uncles:o(),size:100000n,stateRoot:o(),timestamp:BigInt(Date.now())/1000n,transactions:[],transactionsRoot:o(),...n}}r(I,"createStubBlock");function K(n){let{abi:e,...t}=n;return{blockNumber:1n,data:o(),transactionHash:o(),...t}}r(K,"createStubEvent");function L(n){let{abi:e,eventName:t,events:a}=n;return a.map(s=>K({abi:e,eventName:t,...s}))}r(L,"createStubEvents");function P(n=0,e=Number.MAX_SAFE_INTEGER){return Math.floor(Math.random()*(e-n+1)+n)}r(P,"randomInt");function _(n={}){return{blockHash:o(),blockNumber:1n,chainId:1,from:u(),gas:BigInt(P(21e3,21e4)),gasPrice:BigInt(P(1e8,1e10)),input:"0x",nonce:1n,to:u(),transactionHash:o(),transactionIndex:0n,type:"0x02",value:0n,...n}}r(_,"createStubTransaction");function $(n={}){return{blockHash:o(),blockNumber:1n,contractAddress:u(),cumulativeGasUsed:0n,effectiveGasPrice:0n,from:o(),gasUsed:0n,logsBloom:o(),status:"success",to:u(),transactionHash:o(),transactionIndex:0n,...n}}r($,"createStubTransactionReceipt");function A(n={}){let{adapter:e=new T,chainId:t,...a}=n;return e.stubs.has({method:"getChainId"})||e.onGetChainId().resolves(t??0),v({adapter:e,chainId:t,...a})}r(A,"createMockClient");var h=class extends C{static{r(this,"MockContract")}constructor({abi:e=[],address:t=E,epochBlock:a,client:s,...i}={}){super({abi:e,address:t,epochBlock:a,client:s??A(i)})}get adapter(){return this.client.adapter}reset(e){return this.adapter.reset(e)}onMulticall({calls:e,...t}){return this.adapter.onMulticall({calls:e?.map(a=>({abi:this.abi,address:this.address,...a})),...t})}onGetEvents(e,t){return this.adapter.onGetEvents({abi:this.abi,address:this.address,event:e,...t})}onRead(e,t,a){return this.adapter.onRead({abi:this.abi,address:this.address,fn:e,args:t,...a})}onSimulateWrite(e,t,a){return this.adapter.onSimulateWrite({abi:this.abi,address:this.address,fn:e,args:t,...a})}onGetSignerAddress(){return this.adapter.onGetSignerAddress()}onWrite(e,t,a){return this.adapter.onWrite({abi:this.abi,address:this.address,fn:e,args:t,...a})}};function z(n={}){return A(n).extend({contract(e){return new h({...e,client:this})}})}r(z,"createMockDrift");var U={name:"MockERC20",abi:[{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"name_",type:"string",internalType:"string"},{name:"symbol_",type:"string",internalType:"string"},{name:"decimals_",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nonces",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permit",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],bytecode:"0x608060405234801561000f575f80fd5b50610e2a8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80633644e5151161008857806395d89b411161006357806395d89b41146101ae578063a9059cbb146101b6578063d505accf146101c9578063dd62ed3e146101dc575f80fd5b80633644e5151461015f57806370a08231146101675780637ecebe001461018f575f80fd5b806306fdde03146100cf578063095ea7b3146100ed5780631624f6c61461011057806318160ddd1461012557806323b872dd14610137578063313ce5671461014a575b5f80fd5b6100d7610214565b6040516100e49190610959565b60405180910390f35b6101006100fb3660046109c0565b6102a3565b60405190151581526020016100e4565b61012361011e366004610a95565b61030f565b005b6003545b6040519081526020016100e4565b610100610145366004610b04565b6103ad565b60025460405160ff90911681526020016100e4565b6101296104bc565b610129610175366004610b3d565b6001600160a01b03165f9081526004602052604090205490565b61012961019d366004610b3d565b60086020525f908152604090205481565b6100d76104e1565b6101006101c43660046109c0565b6104f0565b6101236101d7366004610b56565b610584565b6101296101ea366004610bbb565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461022290610bec565b80601f016020809104026020016040519081016040528092919081815260200182805461024e90610bec565b80156102995780601f1061027057610100808354040283529160200191610299565b820191905f5260205f20905b81548152906001019060200180831161027c57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102fd9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561035d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b5f6103688482610c70565b5060016103758382610c70565b506002805460ff191660ff831617905561038d6107dc565b6006556103986107f4565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f198114610406576103e28184610895565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f908152600460205260409020546104289084610895565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461045690846108f7565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104a99087815260200190565b60405180910390a3506001949350505050565b5f6006546104c86107dc565b146104da576104d56107f4565b905090565b5060075490565b60606001805461022290610bec565b335f908152600460205260408120546105099083610895565b335f90815260046020526040808220929092556001600160a01b0385168152205461053490836108f7565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102fd9086815260200190565b428410156105d45760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610354565b5f60016105df6104bc565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061062c83610d44565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106a592919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610700573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906107365750876001600160a01b0316816001600160a01b0316145b6107735760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610354565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b5f610955806107ed63ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516108249190610d5c565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108556107dc565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156108e65760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610354565b6108f08284610dce565b9392505050565b5f806109038385610de1565b9050838110156108f05760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401610354565b4690565b5f602080835283518060208501525f5b8181101561098557858101830151858201604001528201610969565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109bb575f80fd5b919050565b5f80604083850312156109d1575f80fd5b6109da836109a5565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610a0b575f80fd5b813567ffffffffffffffff80821115610a2657610a266109e8565b604051601f8301601f19908116603f01168101908282118183101715610a4e57610a4e6109e8565b81604052838152866020858801011115610a66575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff811681146109bb575f80fd5b5f805f60608486031215610aa7575f80fd5b833567ffffffffffffffff80821115610abe575f80fd5b610aca878388016109fc565b94506020860135915080821115610adf575f80fd5b50610aec868287016109fc565b925050610afb60408501610a85565b90509250925092565b5f805f60608486031215610b16575f80fd5b610b1f846109a5565b9250610b2d602085016109a5565b9150604084013590509250925092565b5f60208284031215610b4d575f80fd5b6108f0826109a5565b5f805f805f805f60e0888a031215610b6c575f80fd5b610b75886109a5565b9650610b83602089016109a5565b95506040880135945060608801359350610b9f60808901610a85565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215610bcc575f80fd5b610bd5836109a5565b9150610be3602084016109a5565b90509250929050565b600181811c90821680610c0057607f821691505b602082108103610c1e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610c6b57805f5260205f20601f840160051c81016020851015610c495750805b601f840160051c820191505b81811015610c68575f8155600101610c55565b50505b505050565b815167ffffffffffffffff811115610c8a57610c8a6109e8565b610c9e81610c988454610bec565b84610c24565b602080601f831160018114610cd1575f8415610cba5750858301515b5f19600386901b1c1916600185901b178555610d28565b5f85815260208120601f198616915b82811015610cff57888601518255948401946001909101908401610ce0565b5085821015610d1c57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d5557610d55610d30565b5060010190565b5f808354610d6981610bec565b60018281168015610d815760018114610d9657610dc2565b60ff1984168752821515830287019450610dc2565b875f526020805f205f5b85811015610db95781548a820152908401908201610da0565b50505082870194505b50929695505050505050565b8181038181111561030957610309610d30565b8082018082111561030957610309610d3056fea2646970667358221220efde3a9674d92b42f79838e701b698504e43ae8230b493ba14b6be288d6cae8864736f6c63430008180033",methodIdentifiers:{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}};var j={name:"TestToken",abi:[{type:"constructor",inputs:[{name:"initialSupply",type:"uint256",internalType:"uint256"},{name:"decimals_",type:"uint8",internalType:"uint8"}],stateMutability:"nonpayable"},{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"name_",type:"string",internalType:"string"},{name:"symbol_",type:"string",internalType:"string"},{name:"decimals_",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nonces",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permit",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],bytecode:"0x608060405234801562000010575f80fd5b50604051620013a3380380620013a3833981016040819052620000339162000314565b620000846040518060400160405280600a8152602001692a32b9ba102a37b5b2b760b11b81525060405180604001604052806004815260200163151154d560e21b815250836200009860201b60201c565b62000090338362000149565b50506200054d565b60095460ff1615620000f15760405162461bcd60e51b815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b5f620000fe8482620003e7565b5060016200010d8382620003e7565b506002805460ff191660ff831617905562000127620001dc565b60065562000134620001ff565b60075550506009805460ff1916600117905550565b600354620001589082620002a5565b6003556001600160a01b0382165f908152600460205260409020546200017f9082620002a5565b6001600160a01b0383165f818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001d09085815260200190565b60405180910390a35050565b5f62000310602090811b620007dc17908190620001f89082901c565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051620002319190620004b3565b6040519081900390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc662000265620001dc565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f80620002b383856200052d565b905083811015620003075760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401620000e8565b90505b92915050565b4690565b5f806040838503121562000326575f80fd5b82519150602083015160ff811681146200033e575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200037257607f821691505b6020821081036200039157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620003e257805f5260205f20601f840160051c81016020851015620003be5750805b601f840160051c820191505b81811015620003df575f8155600101620003ca565b50505b505050565b81516001600160401b0381111562000403576200040362000349565b6200041b816200041484546200035d565b8462000397565b602080601f83116001811462000451575f8415620004395750858301515b5f19600386901b1c1916600185901b178555620004ab565b5f85815260208120601f198616915b82811015620004815788860151825594840194600190910190840162000460565b50858210156200049f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f808354620004c2816200035d565b60018281168015620004dd5760018114620004f35762000521565b60ff198416875282151583028701945062000521565b875f526020805f205f5b85811015620005185781548a820152908401908201620004fd565b50505082870194505b50929695505050505050565b808201808211156200030a57634e487b7160e01b5f52601160045260245ffd5b610e48806200055b5f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c80633644e5151161008857806395d89b411161006357806395d89b41146101ae578063a9059cbb146101b6578063d505accf146101c9578063dd62ed3e146101dc575f80fd5b80633644e5151461015f57806370a08231146101675780637ecebe001461018f575f80fd5b806306fdde03146100cf578063095ea7b3146100ed5780631624f6c61461011057806318160ddd1461012557806323b872dd14610137578063313ce5671461014a575b5f80fd5b6100d7610214565b6040516100e49190610963565b60405180910390f35b6101006100fb3660046109ca565b6102a3565b60405190151581526020016100e4565b61012361011e366004610a9f565b61030f565b005b6003545b6040519081526020016100e4565b610100610145366004610b0e565b6103ad565b60025460405160ff90911681526020016100e4565b6101296104bc565b610129610175366004610b47565b6001600160a01b03165f9081526004602052604090205490565b61012961019d366004610b47565b60086020525f908152604090205481565b6100d76104e1565b6101006101c43660046109ca565b6104f0565b6101236101d7366004610b60565b610584565b6101296101ea366004610bc5565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461022290610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461024e90610bf6565b80156102995780601f1061027057610100808354040283529160200191610299565b820191905f5260205f20905b81548152906001019060200180831161027c57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102fd9086815260200190565b60405180910390a35060015b92915050565b60095460ff161561035d5760405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b60448201526064015b60405180910390fd5b5f6103688482610c7a565b5060016103758382610c7a565b506002805460ff191660ff831617905561038d6107e0565b6006556103986107f8565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f198114610406576103e28184610899565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f908152600460205260409020546104289084610899565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461045690846108fb565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104a99087815260200190565b60405180910390a3506001949350505050565b5f6006546104c86107e0565b146104da576104d56107f8565b905090565b5060075490565b60606001805461022290610bf6565b335f908152600460205260408120546105099083610899565b335f90815260046020526040808220929092556001600160a01b0385168152205461053490836108fb565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906102fd9086815260200190565b428410156105d45760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610354565b5f60016105df6104bc565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061062c83610d4e565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106a592919061190160f01b81526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610700573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906107365750876001600160a01b0316816001600160a01b0316145b6107735760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610354565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b4690565b5f6107dc806107f163ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516108289190610d66565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108596107e0565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156108ea5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606401610354565b6108f48284610dd8565b9392505050565b5f806109078385610deb565b9050838110156108f45760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606401610354565b610961610dfe565b565b5f602080835283518060208501525f5b8181101561098f57858101830151858201604001528201610973565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109c5575f80fd5b919050565b5f80604083850312156109db575f80fd5b6109e4836109af565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610a15575f80fd5b813567ffffffffffffffff80821115610a3057610a306109f2565b604051601f8301601f19908116603f01168101908282118183101715610a5857610a586109f2565b81604052838152866020858801011115610a70575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff811681146109c5575f80fd5b5f805f60608486031215610ab1575f80fd5b833567ffffffffffffffff80821115610ac8575f80fd5b610ad487838801610a06565b94506020860135915080821115610ae9575f80fd5b50610af686828701610a06565b925050610b0560408501610a8f565b90509250925092565b5f805f60608486031215610b20575f80fd5b610b29846109af565b9250610b37602085016109af565b9150604084013590509250925092565b5f60208284031215610b57575f80fd5b6108f4826109af565b5f805f805f805f60e0888a031215610b76575f80fd5b610b7f886109af565b9650610b8d602089016109af565b95506040880135945060608801359350610ba960808901610a8f565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215610bd6575f80fd5b610bdf836109af565b9150610bed602084016109af565b90509250929050565b600181811c90821680610c0a57607f821691505b602082108103610c2857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610c7557805f5260205f20601f840160051c81016020851015610c535750805b601f840160051c820191505b81811015610c72575f8155600101610c5f565b50505b505050565b815167ffffffffffffffff811115610c9457610c946109f2565b610ca881610ca28454610bf6565b84610c2e565b602080601f831160018114610cdb575f8415610cc45750858301515b5f19600386901b1c1916600185901b178555610d32565b5f85815260208120601f198616915b82811015610d0957888601518255948401946001909101908401610cea565b5085821015610d2657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d5f57610d5f610d3a565b5060010190565b5f808354610d7381610bf6565b60018281168015610d8b5760018114610da057610dcc565b60ff1984168752821515830287019450610dcc565b875f526020805f205f5b85811015610dc35781548a820152908401908201610daa565b50505082870194505b50929695505050505050565b8181038181111561030957610309610d3a565b8082018082111561030957610309610d3a565b634e487b7160e01b5f52605160045260245ffdfea2646970667358221220a1bf89b04cafa4c37afa7db47b1064cf6df6cb244d523f43980b1df74c49469464736f6c63430008180033",methodIdentifiers:{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}};var J="0xBob0000000000000000000000000000000000000",Y="0xAlice00000000000000000000000000000000000",V="0xNancy00000000000000000000000000000000000";export{Y as ALICE,J as BOB,l as MissingStubError,T as MockAdapter,h as MockContract,V as NANCY,A as createMockClient,z as createMockDrift,I as createStubBlock,K as createStubEvent,L as createStubEvents,_ as createStubTransaction,$ as createStubTransactionReceipt,U as mockErc20,u as randomAddress,o as randomHex,P as randomInt,j as testToken};
//# sourceMappingURL=testing.js.map
{
"name": "@delvtech/drift",
"description": "Effortless ethereum development across Web3 libraries",
"version": "0.9.1",
"version": "0.10.0",
"license": "Apache-2.0",

@@ -35,8 +35,4 @@ "type": "module",

"*": {
".": [
"./dist/index.d.ts"
],
"testing": [
"./dist/testing.d.ts"
]
".": ["./dist/index.d.ts"],
"testing": ["./dist/testing.d.ts"]
}

@@ -95,5 +91,3 @@ },

},
"files": [
"dist"
]
"files": ["dist"]
}
var xe=Object.defineProperty;var i=(a,e)=>xe(a,"name",{value:e,configurable:!0});function H(a,{abi:e,bytecode:t,args:n={},...r}){let s=a.encodeDeployData({abi:e,bytecode:t,args:n});return a.sendTransaction({data:s,...r})}i(H,"deploy");var A=class a extends Error{static prefix="\u2716 ";static name="Drift Error";constructor(e,t){let n;try{n=e?.message??String(e)}catch{throw e}super(n),this.name=t?.name??a.name;let r=e instanceof Error,s=t?.cause??e?.cause,o=e;r||(o=new Error,Error.captureStackTrace?.(o,new.target));let u=o.stack,T;e?.name&&e.name!=="Error"?T=e.name:r&&e.constructor.name!=="Error"&&(T=e.constructor.name),Object.defineProperty(this,"stack",{get(){let c=`${t?.prefix??a.prefix}${this.name}`;if(T&&(c+=` [${T}]`),this.message&&(c+=`: ${this.message}`.replaceAll(`
`,`
`)),u){let d=u.split(`
`).slice(1);this.message&&(d=d.filter(b=>!this.message.includes(b.trim()))),d.length&&(c+=`
${d.join(`
`)}`)}return s&&(c+=`
Caused by: ${s.stack||s}`.replaceAll(`
`,`
`)),c.trim()}})}};var Pe={type:"constructor",inputs:[],stateMutability:"nonpayable"};function F({abi:a,type:e,name:t,kind:n,value:r}){let s=a.filter(d=>d.type!==e||d.name!==t?!1:n in d);if(!s.length){if(e==="constructor")return{abiEntry:Pe,params:[]};throw new A(`No matching ABI entry for ${e} ${t} with ${n}`)}if(s.length===1){let d=s[0],b=d[n];return b.length?Q(r,b)?{abiEntry:d,params:[r]}:{abiEntry:d,params:b.map(({name:P},l)=>r?.[P||l])}:{abiEntry:d,params:[]}}let o=r&&typeof r=="object"?Object.keys(r).length:0,u=s[0],T=[],c=0;for(let d of s){let b=d[n];if(!b.length){if(!o)return{abiEntry:d,params:[]};continue}if(Q(r,b))return{abiEntry:d,params:[r]};let P=r||{},l=[],f=0;for(let[g,{name:h}]of b.entries()){let R=h||g;l.push(P[R]),R in P&&f++}f>c&&(u=d,T=l,c=f)}return{abiEntry:u,params:T}}i(F,"prepareParams");function Q(a,e){if(e.length!==1)return!1;if(!a)return!0;let{type:t,name:n}=e[0],r=t.match(/(\[\d*\])+$/)?.[0];if(!r)return typeof a!="object";if(!Array.isArray(a))return!1;if(n)return!0;let s=a;for(let o of r.match(/\[\d*]/g))s=a?.[0];return!Array.isArray(s)}i(Q,"isUnpacked");import{AbiFunction as ke}from"ox";function y(a){if(typeof a!="object")throw new A(a);let e={message:""},t;try{t=JSON.parse(a.details)}catch{}throw a.shortMessage&&(e.message+=a.shortMessage),t?.message&&(e.message+=`
${t.message}`),e.message+=`
${a.message.replace(a.shortMessage,"").trimStart()}`,e.message=e.message.trimStart(),new A(e)}i(y,"handleError");function Y({abi:a,fn:e,args:t}){let{data:n}=x({abi:a,fn:e,args:t});return n}i(Y,"encodeFunctionData");function x({abi:a,args:e,fn:t}){try{let{abiEntry:n,params:r}=F({abi:a,type:"function",name:t,kind:"inputs",value:e});return{abiFn:n,data:ke.encodeData(n,r)}}catch(n){y(n)}}i(x,"prepareFunctionData");var ee={name:"IMulticall3",abi:[{type:"function",name:"aggregate",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"returnData",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"aggregate3",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call3[]",components:[{name:"target",type:"address",internalType:"address"},{name:"allowFailure",type:"bool",internalType:"bool"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"aggregate3Value",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call3Value[]",components:[{name:"target",type:"address",internalType:"address"},{name:"allowFailure",type:"bool",internalType:"bool"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"blockAndAggregate",inputs:[{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"blockHash",type:"bytes32",internalType:"bytes32"},{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"getBasefee",inputs:[],outputs:[{name:"basefee",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getBlockHash",inputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"}],outputs:[{name:"blockHash",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getBlockNumber",inputs:[],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getChainId",inputs:[],outputs:[{name:"chainid",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockCoinbase",inputs:[],outputs:[{name:"coinbase",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockDifficulty",inputs:[],outputs:[{name:"difficulty",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockGasLimit",inputs:[],outputs:[{name:"gaslimit",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCurrentBlockTimestamp",inputs:[],outputs:[{name:"timestamp",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEthBalance",inputs:[{name:"addr",type:"address",internalType:"address"}],outputs:[{name:"balance",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getLastBlockHash",inputs:[],outputs:[{name:"blockHash",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"tryAggregate",inputs:[{name:"requireSuccess",type:"bool",internalType:"bool"},{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"},{type:"function",name:"tryBlockAndAggregate",inputs:[{name:"requireSuccess",type:"bool",internalType:"bool"},{name:"calls",type:"tuple[]",internalType:"struct IMulticall3.Call[]",components:[{name:"target",type:"address",internalType:"address"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"blockHash",type:"bytes32",internalType:"bytes32"},{name:"returnData",type:"tuple[]",internalType:"struct IMulticall3.Result[]",components:[{name:"success",type:"bool",internalType:"bool"},{name:"returnData",type:"bytes",internalType:"bytes"}]}],stateMutability:"payable"}],methodIdentifiers:{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"}};var q="0xcA11bde05977b3631167028862bE2a173976CA11";async function te(a,{calls:e,multicallAddress:t=q,allowFailure:n=!0,...r}){let s=[];return(await a.simulateWrite({abi:ee.abi,address:t,fn:"aggregate3",args:{calls:e.map(u=>{let{abiFn:T,data:c}=x({abi:u.abi,fn:u.fn,args:u.args});return s.push(T),{target:u.address,callData:c,allowFailure:n}})},...r})).map(({returnData:u,success:T},c)=>{let{fn:d}=e[c],b=s[c];return n===!1?a.decodeFunctionReturn({abi:[b],data:u,fn:d}):T?{success:T,value:a.decodeFunctionReturn({abi:[b],data:u,fn:d})}:{success:T,error:new A(Buffer.from(u.slice(10),"hex").toString())}})}i(te,"multicall");async function ne(a,{abi:e,address:t,fn:n,args:r={},block:s}){let{data:o,abiFn:u}=x({abi:e,fn:n,args:r}),T=await a.call({to:t,data:o,block:s});return a.decodeFunctionReturn({abi:[u],data:T,fn:n})}i(ne,"read");async function ae(a,{abi:e,fn:t,args:n={},from:r,address:s,...o}){let{abiFn:u,data:T}=x({abi:e,fn:t,args:n}),c=await a.call({data:T,from:r??await a.getSignerAddress?.().catch(()=>{}),to:s,...o});return a.decodeFunctionReturn({abi:[u],data:c,fn:t})}i(ae,"simulateWrite");function D(a,{abi:e,fn:t,args:n={},address:r,...s}){let o=a.encodeFunctionData({abi:e,fn:t,args:n});return a.sendTransaction({data:o,to:r,...s})}i(D,"write");import{AbiItem as ve}from"ox";function M({abi:a,name:e,kind:t,values:n}){let r=ve.fromAbi(a,e,{args:n});return!r||!(t in r)?{}:Object.fromEntries(r[t].map(({name:s},o)=>[s||o,n?.[o]]))}i(M,"arrayToObject");import{AbiFunction as Ce,AbiParameters as Ee,Hex as re}from"ox";function ie({abi:a,data:e}){try{let t=re.slice(e,0,4),n=re.slice(e,4),r=Ce.fromAbi(a,t),s=Ee.decode(r.inputs,n,{as:"Array",checksumAddress:!0}),o=r.name,u=M({abi:a,name:o,kind:"inputs",values:s});return{functionName:o,args:u}}catch(t){y(t)}}i(ie,"decodeFunctionData");function se({abi:a,name:e,kind:t,values:n}){let r=M({abi:a,name:e,kind:t,values:n}),s=Object.values(r);return s.length===1?s[0]:r}i(se,"arrayToSimplified");import{AbiFunction as oe}from"ox";function ce({abi:a,data:e,fn:t}){try{let n=oe.fromAbi(a,t),r=oe.decodeResult(n,e,{as:"Array"});return n.outputs.length===1?r:se({abi:a,name:n.name,kind:"outputs",values:r})}catch(n){y(n)}}i(ce,"decodeFunctionReturn");import{AbiFunction as Re}from"ox";function pe({abi:a,fn:e,value:t}){try{let{abiEntry:n,params:r}=F({abi:a,type:"function",name:e,kind:"outputs",value:t});return Re.encodeResult(n,r,{as:"Array"})}catch(n){y(n)}}i(pe,"encodeFunctionReturn");import{AbiConstructor as we}from"ox";function me({abi:a,bytecode:e,args:t}){let{data:n}=Be({abi:a,bytecode:e,args:t});return n}i(me,"encodeDeployData");function Be({abi:a,args:e,bytecode:t}){try{let{abiEntry:n,params:r}=F({abi:a,type:"constructor",name:void 0,kind:"inputs",value:e});return{abiFn:n,data:we.encode(n,{args:r,bytecode:t})}}catch(n){y(n)}}i(Be,"prepareDeployData");var K=class{static{i(this,"AbiEncoder")}encodeDeployData(e){return me(e)}encodeFunctionData(e){return Y(e)}encodeFunctionReturn(e){return pe(e)}decodeFunctionData(e){return ie(e)}decodeFunctionReturn(e){return ce(e)}};var B=class a extends K{static{i(this,"BaseReadAdapter")}pollingInterval;pollingTimeout;multicallAddress;static DEFAULT_POLLING_INTERVAL=4e3;static DEFAULT_TIMEOUT=6e4;constructor({pollingInterval:e=a.DEFAULT_POLLING_INTERVAL,pollingTimeout:t=a.DEFAULT_TIMEOUT,multicallAddress:n=q}={}){super(),this.pollingInterval=e,this.pollingTimeout=t,this.multicallAddress=n}multicall({multicallAddress:e=this.multicallAddress,...t}){return te(this,{multicallAddress:e,...t})}read(e){return ne(this,e)}simulateWrite(e){return ae(this,e)}},ue=class extends B{static{i(this,"BaseReadWriteAdapter")}deploy(e){return H(this,e)}async write(e){return D(this,e)}};import{AbiConstructor as de}from"ox";var J={name:"CodeCaller",abi:[{type:"constructor",inputs:[{name:"bytecode",type:"bytes",internalType:"bytes"},{name:"callParams",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"},{type:"error",name:"BytecodeDeploymentFailed",inputs:[]}],bytecode:"0x608060405234801561000f575f80fd5b5060405161021c38038061021c83398101604081905261002e916101a1565b5f8251602084015ff090506001600160a01b038116158061005757506001600160a01b0381163b155b156100755760405163537574ad60e11b815260040160405180910390fd5b5f80826001600160a01b03168460405161008f9190610200565b5f604051808303815f865af19150503d805f81146100c8576040519150601f19603f3d011682016040523d82523d5f602084013e6100cd565b606091505b5091509150816100df57805160208201fd5b805160208201f35b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101155781810151838201526020016100fd565b50505f910152565b5f82601f83011261012c575f80fd5b81516001600160401b0380821115610146576101466100e7565b604051601f8301601f19908116603f0116810190828211818310171561016e5761016e6100e7565b81604052838152866020858801011115610186575f80fd5b6101978460208301602089016100fb565b9695505050505050565b5f80604083850312156101b2575f80fd5b82516001600160401b03808211156101c8575f80fd5b6101d48683870161011d565b935060208501519150808211156101e9575f80fd5b506101f68582860161011d565b9150509250929050565b5f82516102118184602087016100fb565b919091019291505056fe",methodIdentifiers:{}};function le(a,e){let t=de.fromAbi(J.abi);return de.encode(t,{bytecode:J.bytecode,args:[a,e]})}i(le,"encodeBytecodeCallData");function I(a,e,t){return e(a)?t(a):Array.isArray(a)?a.map(n=>I(n,e,t)):a&&typeof a=="object"?Object.fromEntries(Object.entries(a).map(([n,r])=>[n,I(r,e,t)])):a}i(I,"convert");var Se=/^0x[0-9a-fA-F]*$/;function Te(a){return typeof a=="string"&&Se.test(a)}i(Te,"isHexString");import{AbiEvent as ye,Address as Oe,Block as He,Provider as De,RpcTransport as Me,Transaction as Ke,TransactionReceipt as Ie}from"ox";var X=class extends B{static{i(this,"DefaultReadAdapter")}provider;constructor({rpcUrl:e,...t}={}){super(t);try{let n=e?Me.fromHttp(e):globalThis.ethereum;if(!n)throw new A("No provider found");this.provider=De.from(n)}catch(n){y(n)}}getChainId(){return this.provider.request({method:"eth_chainId"}).then(Number).catch(y)}getBlockNumber(){return this.provider.request({method:"eth_blockNumber"}).then(BigInt).catch(y)}getBlock(e){return this.provider.request(Te(e)?{method:"eth_getBlockByHash",params:[e,!1]}:{method:"eth_getBlockByNumber",params:[S(e),!1]}).then(He.fromRpc).then(t=>t?{...t,nonce:BigInt(t.nonce),transactions:t.transactions.slice()}:void 0).catch(y)}getBalance(e){return this.provider.request({method:"eth_getBalance",params:[e.address,S(e.block)]}).then(BigInt).catch(y)}getTransaction({hash:e}){return this.provider.request({method:"eth_getTransactionByHash",params:[e]}).then(t=>{if(!t)return;let{to:n,transactionIndex:r,...s}=Ke.fromRpc(t);return{...s,to:n||void 0,transactionIndex:BigInt(r),transactionHash:s.hash}}).catch(y)}waitForTransaction({hash:e,timeout:t=this.pollingTimeout}){return new Promise((n,r)=>{let s=i(()=>this.provider.request({method:"eth_getTransactionReceipt",params:[e]}).then(o=>{if(o){let{to:u,transactionIndex:T,contractAddress:c,...d}=Ie.fromRpc(o);n({...d,to:u||void 0,transactionIndex:BigInt(T),contractAddress:c||void 0})}else setTimeout(s,this.pollingInterval)}).catch(r),"getReceipt");s(),setTimeout(()=>n(void 0),t)}).catch(y)}sendRawTransaction(e){return this.provider.request({method:"eth_sendRawTransaction",params:[e]})}getEvents({abi:e,address:t,event:n,filter:r,fromBlock:s,toBlock:o}){let{abiEntry:u}=F({abi:e,type:"event",name:n,kind:"inputs",value:r});return this.provider.request({method:"eth_getLogs",params:[{address:t,fromBlock:S(s),toBlock:S(o),topics:ye.encode(u,r||{}).topics}]}).then(T=>T.map(c=>({args:ye.decode(u,c),blockNumber:BigInt(c.blockNumber),data:c.data,eventName:n,transactionHash:c.transactionHash}))).catch(y)}call({to:e,data:t,bytecode:n,block:r,...s}){return n&&t&&(t=le(n,t)),this.provider.request({method:"eth_call",params:[{to:e,data:t,...be(s)},S(r)]}).catch(y)}},G=class extends X{static{i(this,"DefaultAdapter")}getSignerAddress(){return this.provider.request({method:"eth_accounts"}).then(([e])=>{if(!e)throw new A("No signer address found");return Oe.checksum(e)}).catch(y)}async sendTransaction({data:e,to:t,from:n,onMined:r,...s}){return n??=await this.getSignerAddress().catch(y),this.provider.request({method:"eth_sendTransaction",params:[{data:e,to:t,from:n,...be(s)}]}).then(o=>(r&&this.waitForTransaction({hash:o}).then(r),o)).catch(y)}deploy(e){return H(this,e)}write(e){return D(this,e)}};function S(a){return a===void 0?"latest":typeof a=="bigint"?`0x${a.toString(16)}`:a}i(S,"prepareBlockParam");function be(a){return I(a,e=>typeof e=="bigint",e=>`0x${e.toString(16)}`)}i(be,"prepareTransactionOptions");import{LRUCache as Ge}from"lru-cache";var v=class extends Ge{static{i(this,"LruStore")}constructor(e={max:500}){super(e)}};async function N({store:a,key:e,fn:t}){if(e=await e,await a.has(e))return a.get(e);let n=await t();if(n===void 0)return n;let r=a.set(e,n);return r instanceof Promise?r.then(()=>n):n}i(N,"getOrSet");import We from"lodash.ismatch";async function C({store:a,matchKey:e}){e=await e;let t=JSON.parse(e),n=[];for await(let[r]of a.entries()){if(r===e){n.push(a.delete(r));continue}let s=JSON.parse(r);We(s,t)&&n.push(a.delete(r))}await Promise.all(n)}i(C,"deleteMatches");import je from"safe-stable-stringify";function Ae(a,e){return je(a,(t,n)=>typeof n=="bigint"?n.toString():n,e)}i(Ae,"stringifyKey");var E=class{static{i(this,"ClientCache")}namespace;store;constructor({namespace:e,store:t=new v}){this.namespace=e,this.store=t}async clear(){return this.store.clear()}async blockKey(e){return this.#a("block",{block:e})}async preloadBlock({value:e,block:t}){let n=await this.blockKey(t);return this.store.set(n,e)}async getBlock(e){let t=await this.blockKey(e);return this.store.get(t)}async invalidateBlock(e){let t=await this.blockKey(e);return this.store.delete(t)}async clearBlocks(){return C({store:this.store,matchKey:this.blockKey()})}#e({address:e,block:t}={}){return this.#a("balance",{address:e,block:t})}async balanceKey(e){return this.#e(e)}async preloadBalance({value:e,...t}){let n=await this.balanceKey(t);return this.store.set(n,e)}async getBalance(e){let t=await this.balanceKey(e);return this.store.get(t)}async invalidateBalance(e){let t=await this.balanceKey(e);return this.store.delete(t)}async clearBalances(){return C({store:this.store,matchKey:this.#e()})}#t({hash:e}={}){return this.#a("transaction",{hash:e})}async transactionKey({hash:e}){return this.#t({hash:e})}async preloadTransaction({value:e,...t}){let n=await this.transactionKey(t);return this.store.set(n,e)}async getTransaction(e){let t=await this.transactionKey(e);return this.store.get(t)}async invalidateTransaction(e){let t=await this.transactionKey(e);return this.store.delete(t)}async clearTransactions(){return C({store:this.store,matchKey:this.#t()})}async transactionReceiptKey({hash:e}){return this.#a("transactionReceipt",{hash:e})}async preloadTransactionReceipt({value:e,...t}){let n=await this.transactionReceiptKey(t);return this.store.set(n,e)}async getTransactionReceipt(e){let t=await this.transactionReceiptKey(e);return this.store.get(t)}#n({to:e,data:t,value:n,from:r,block:s,accessList:o,blobVersionedHashes:u,chainId:T,blobs:c,bytecode:d,nonce:b}={}){return this.#a("call",{to:e,data:t,value:n,from:r,block:s,accessList:o,blobVersionedHashes:u,chainId:T,blobs:c,bytecode:d,nonce:b})}async callKey(e){return this.#n(e)}async preloadCall({preloadValue:e,...t}){let n=await this.callKey(t);return this.store.set(n,e)}async getCall(e){let t=await this.callKey(e);return this.store.get(t)}async invalidateCall(e){let t=await this.callKey(e);return this.store.delete(t)}async invalidateCallsMatching(e){return C({store:this.store,matchKey:this.#n(e)})}async clearCalls(){return this.invalidateCallsMatching()}async eventsKey({address:e,event:t,filter:n,fromBlock:r="earliest",toBlock:s="latest"}){return this.#a("events",{address:e,event:t,filter:n,fromBlock:r,toBlock:s})}async preloadEvents({value:e,...t}){let n=await this.eventsKey(t);return this.store.set(n,e)}async getEvents(e){let t=await this.eventsKey(e);return this.store.get(t)}#r({address:e,args:t,block:n,fn:r}={}){return this.#a("read",{address:e,args:t,block:n,fn:r})}async readKey(e){return this.#r(e)}async preloadRead({value:e,...t}){let n=await this.readKey(t);return this.store.set(n,e)}async getRead(e){let t=await this.readKey(e);return this.store.get(t)}async invalidateRead(e){let t=await this.readKey(e);return this.store.delete(t)}async invalidateReadsMatching(e){return C({store:this.store,matchKey:this.#r(e)})}async clearReads(){return this.invalidateReadsMatching()}async#i(){return typeof this.namespace=="function"&&(this.namespace=await this.namespace()),this.namespace}async#a(...e){let t=await this.#i();return Ae([t,...e])}};var W=class extends A{static{i(this,"BlockNotFoundError")}constructor(e,t){super(`Block not found: ${e}`,t)}};var j=class{static{i(this,"HookRegistry")}#e={};on(e,t){this.#e[e]||=[],this.#e[e].push(t)}off(e,t){let n=!1,r=this.#e[e];return r&&(this.#e[e]=r.filter(s=>s===t?(n=!0,!1):!0)),n}once(e,t){let n=i(r=>{this.off(e,n),t(r)},"wrapped");this.on(e,n)}call(e,t){let n,r=this.#e[e];if(r)for(let s of r)n instanceof Promise?n=n.then(()=>s(t)):n=s(t);return n}};var L=class{static{i(this,"MethodInterceptor")}#e=new j;get hooks(){return this.#e}createProxy=i(e=>new Proxy(e,{get:i((t,n,r)=>{let s=Reflect.get(t,n,r);if(n==="constructor"||typeof s!="function")return s;let o=i((...u)=>this.#t({method:n,fn:s.bind(r),args:u}),"wrapped");return Object.defineProperty(o,"name",{get:i(()=>s.name,"get")}),o},"get")}),"createProxy");#t({method:e,fn:t,args:n}){let r=String(e),s=!1,o,u=this.#e.call(`before:${r}`,{get args(){return n},setArgs(...c){n=c},resolve(c){s||(s=!0,o=c)}}),T=i(()=>{s||(o=t(...n));let c=this.#e.call(`after:${r}`,{get args(){return n},get result(){return o},setResult(d){o=d}});return c instanceof Promise?c.then(()=>o):o},"wrappedAfterHooks");return u instanceof Promise?u.then(T):T()}};function Z(a={}){let{adapter:e,store:t,chainId:n,...r}=a,s=new L,o=e||new G(r),T=t&&"clear"in t?t:new v(t),c={...o,adapter:o,hooks:s.hooks,cache:new E({store:T,namespace:i(()=>c.getChainId(),"namespace")}),isReadWrite(){return typeof this.adapter.write=="function"},extend(l){return Object.assign(this,l)},async getChainId(){return n??=await o.getChainId(),n},async getBlock(l,f){let g=await N({store:this.cache.store,key:this.cache.blockKey(l),fn:i(()=>this.adapter.getBlock(l),"fn")});if(!g&&f?.throws)throw new W(l);return g},getBalance(l){return N({store:this.cache.store,key:this.cache.balanceKey(l),fn:i(()=>this.adapter.getBalance(l),"fn")})},getTransaction(l){return N({store:this.cache.store,key:this.cache.transactionKey(l),fn:i(()=>this.adapter.getTransaction(l),"fn")})},waitForTransaction(l){return N({store:this.cache.store,key:this.cache.transactionReceiptKey(l),fn:i(()=>this.adapter.waitForTransaction(l),"fn")})},call(l){return N({store:this.cache.store,key:this.cache.callKey(l),fn:i(()=>this.adapter.call(l),"fn")})},async multicall({calls:l,...f}){let g=new Map,h=[],R=await Promise.all(l.map(async(w,$)=>{let k=await this.cache.getRead({...w,block:f?.block});if(k!==void 0)return f.allowFailure===!1?k:{success:!0,value:k};g.set($,h.length),h.push(w)}));if(!h.length)return R;let fe=await this.adapter.multicall({calls:h,...f});return Promise.all(R.map(async(w,$)=>{if(w!==void 0)return w;let k=g.get($),{abi:he,address:ge,fn:Fe,args:Ne}=h[k],V=fe[k],O;return f.allowFailure===!1?O=V:O=V.value,O!==void 0&&await this.cache.preloadRead({abi:he,address:ge,fn:Fe,args:Ne,block:f?.block,value:O}),V}))},getEvents({fromBlock:l="earliest",toBlock:f="latest",...g}){let h={fromBlock:l,toBlock:f,...g};return N({store:this.cache.store,key:this.cache.eventsKey(h),fn:i(async()=>this.adapter.getEvents(h),"fn")})},read(l){return N({store:this.cache.store,key:this.cache.readKey(l),fn:i(()=>this.adapter.read(l),"fn")})}},d=Object.getPrototypeOf(o);function b(){}i(b,"Client"),Object.defineProperties(b,{name:{value:`Client<${o.constructor.name}>`,enumerable:!1,writable:!1,configurable:!0}}),b.prototype=Object.create(d,{constructor:{value:b,enumerable:!1,writable:!0,configurable:!0},[Symbol.toStringTag]:{value:b.name,enumerable:!1,writable:!0,configurable:!0}});let P=Object.create(b.prototype,Object.getOwnPropertyDescriptors(c));return s.createProxy(P)}i(Z,"createClient");var U=class{static{i(this,"ContractCache")}#e;#t;#n;constructor({abi:e,address:t,...n}){let r=n.clientCache?n.clientCache:new E(n);this.#e=e,this.#t=t,this.#n=r}get store(){return this.#n.store}clear(){return this.#n.clear()}eventsKey(e,t){return this.#n.eventsKey({abi:this.#e,address:this.#t,event:e,...t})}preloadEvents(e){return this.#n.preloadEvents({abi:this.#e,address:this.#t,...e})}getEvents(e,t){return this.#n.getEvents({abi:this.#e,address:this.#t,event:e,...t})}readKey(...[e,t,n]){return this.#n.readKey({abi:this.#e,address:this.#t,fn:e,args:t,...n})}preloadRead(e){return this.#n.preloadRead({abi:this.#e,address:this.#t,...e})}getRead(...[e,t,n]){return this.#n.getRead({abi:this.#e,address:this.#t,fn:e,args:t,...n})}invalidateRead(...[e,t,n]){return this.#n.invalidateRead({abi:this.#e,address:this.#t,fn:e,args:t,...n})}invalidateReadsMatching(e,t,n){return this.#n.invalidateReadsMatching({abi:this.#e,address:this.#t,fn:e,args:t,...n})}async clearReads(){return this.#n.invalidateReadsMatching({abi:this.#e,address:this.#t})}};var _=class{static{i(this,"ReadContract")}abi;address;client;cache;epochBlock;constructor({abi:e,address:t,epochBlock:n,client:r,...s}){this.abi=e,this.address=t,this.client=r??Z(s),this.cache=new U({abi:e,address:t,clientCache:this.client.cache}),this.epochBlock=n}isReadWrite(){return this.client.isReadWrite()}extend(e){return Object.assign(this,e)}encodeDeployData(...[e,t]){return this.client.encodeDeployData({abi:this.abi,bytecode:e,args:t})}encodeFunctionData(...[e,t]){return this.client.encodeFunctionData({abi:this.abi,fn:e,args:t})}encodeFunctionReturn(e,t){return this.client.encodeFunctionReturn({abi:this.abi,fn:e,value:t})}decodeFunctionData(e){return this.client.decodeFunctionData({abi:this.abi,data:e})}decodeFunctionReturn(e,t){return this.client.decodeFunctionReturn({abi:this.abi,fn:e,data:t})}getEvents(e,{fromBlock:t,...n}={}){return this.epochBlock&&(!t||t==="earliest"||typeof t=="bigint"&&t<this.epochBlock)&&(t=this.epochBlock),this.client.getEvents({abi:this.abi,address:this.address,event:e,fromBlock:t,...n})}async multicall({calls:e,...t}){return this.client.multicall({calls:e.map(n=>({abi:this.abi,address:this.address,...n})),...t})}read(...[e,t,n]){let{block:r,...s}=n||{};return this.epochBlock&&(r==="earliest"||typeof r=="bigint"&&r<this.epochBlock)&&(r=this.epochBlock),this.client.read({abi:this.abi,address:this.address,fn:e,args:t,block:r,...s})}simulateWrite(...[e,t,n]){return this.client.simulateWrite({abi:this.abi,address:this.address,fn:e,args:t,...n})}},z=class extends _{static{i(this,"ReadWriteContract")}getSignerAddress(){return this.client.getSignerAddress()}write(...[e,t,n]){return this.client.write({abi:this.abi,address:this.address,fn:e,args:t,...n})}};function La({abi:a,address:e,epochBlock:t,client:n,...r}){return n=n||Z(r),n.isReadWrite()?new z({abi:a,address:e,client:n,epochBlock:t}):new _({abi:a,address:e,client:n,epochBlock:t})}i(La,"createContract");var Va="0x0000000000000000000000000000000000000000";export{i as a,H as b,A as c,F as d,Y as e,x as f,ee as g,te as h,ne as i,ae as j,D as k,M as l,ie as m,se as n,ce as o,pe as p,K as q,B as r,ue as s,le as t,I as u,Se as v,Te as w,X as x,G as y,v as z,N as A,C as B,Ae as C,E as D,W as E,L as F,Z as G,U as H,_ as I,z as J,La as K,Va as L};
//# sourceMappingURL=chunk-BP3Y6ILU.js.map

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display