1(globalThis["webpackChunk_umbra_frontend"]=globalThis["webpackChunk_umbra_frontend"]||[]).push([[64],{36179:(f,e,t)=>{"use strict";t.d(e,{ZP:()=>z,hy:()=>q,i$:()=>G,jH:()=>V});var n=t(77071);if(143==t.j)var a=t(5008);var r=t(57665),i=t(99975),s=t(55007),d=t(38732),o=t(33622),c=t(23160),u=t(57153),l=t(92300),b=t(83149);if(143==t.j)var p=t(44557);if(143==t.j)var y=t(55978);if(143==t.j)var m=t(80644);if(143==t.j)var h=t(60413);var v=t(81893),g=t(12804),w=t(51158),x=t(40247),A=t(65458),C=t(87258),P=t(35422);const E=(0,i.ZP)(),B=(0,s.Z)({projectId:"3b03b2dede05a799065c0c70e82dce0a",version:2}),T=(0,d.Z)(),k=(0,o.Z)({email:"[email protected]",appUrl:"https://app.umbra.cash/"}),_=(0,n.iH)(!1),F=(0,n.iH)(),D=(0,n.iH)(),K=(0,n.iH)(),S=(0,n.iH)(),H=(0,n.iH)(),I=(0,n.iH)(),O=(0,n.iH)(),M=(0,n.iH)(),R=(0,n.iH)(),$=(0,n.iH)(),U=(0,n.iH)({}),N=(0,n.iH)(),j=(0,n.iH)(!1),L=(0,n.iH)(),Z=(0,n.iH)(!1),W=(0,n.iH)(),X=(0,n.iH)("");let G=D.value,q=N.value,V=143==t.j?[]:null;function z(){const{lastWallet:f,setLastWallet:e}=(0,x.Z)();async function t(){if(!D.value)throw new Error("Provider not connected");if(!N.value){const f=rf.value?.nativeCurrency.symbol?rf.value?.nativeCurrency.symbol:"native token";(0,w.br)("error",`Cannot connect to token relayer/API.. only ${f} transfers available.`)}const f=new p.CH(b.nU,b.jr,D.value),e=cf.value.map((e=>{const{address:t}=e;if(t===rf.value?.nativeCurrency.address)return{target:b.nU,callData:f.interface.encodeFunctionData("getEthBalance",[S.value])};{const f=new p.CH(t,b.RB,K.value);return{target:t,callData:f.interface.encodeFunctionData("balanceOf",[S.value])}}})),t=await f.callStatic.aggregate(e),n=t.returnData;cf.value.forEach(((f,e)=>{U.value[f.address]=y.O$.from("0x"===n[e]?0:n[e])}))}function i(f){F.value=(0,n.Xl)(f)}function s(f){_.value=f}async function d(){try{if(_.value||!L.value)return;let t;if(s(!0),f.value?[t]=await L.value.connectWallet({autoSelect:f?.value}):[t]=await L.value.connectWallet(),!t)return void s(!1);i(t.provider),t.label&&e(t.label),await o()}catch(t){throw ef(),s(!1),t}}async function o(){try{if(ef(),s(!0),!F.value)return void s(!1);D.value=(0,n.Xl)(new m.Q(F.value,"any")),G=D.value,K.value=(0,n.Xl)(D.value.getSigner());const[e,a]=await Promise.all([K.value.getAddress(),D.value.getNetwork()]);let r;await c.P6.assertSupportedAddress(e);try{r=await v.P.create(D.value)}catch(f){P.log("couldn't create relayer",f),r=void 0}if(e===S.value&&a.chainId===af.value)return void s(!1);const i=D.value.network.chainId;if(!u.KC.includes(a.chainId))return I.value=a,void s(!1);O.value=(0,n.Xl)(new c.MI(D.value,(0,b.kW)(i))),M.value=(0,n.Xl)(new c.WA(K.value));const d={address:1===i?"0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8":"0xF230cF8980BaDA094720C01308319eF192F0F311",abi:["function isArgentWallet(address) external view returns (bool)"]},o=new p.CH(d.address,d.abi,D.value),[y,h,g]=await Promise.all([(0,l.CP)(e,b.P0),J(e,D.value),!![1,3].includes(i)&&o.isArgentWallet(e)]),w=null!==h;"string"===typeof y&&b.P0.getAvatar(y).then((f=>X.value=f)).catch((f=>window.logger.warn(f))),N.value=r,q=N.value,S.value=e,H.value=y,I.value=a,j.value=w,Z.value=g,W.value=w?h:null,t(),s(!1)}catch(f){throw ef(),s(!1),f}}async function z(){if(_.value||!L.value)return;const[f]=L.value.state.get().wallets;await L.value.disconnectWallet({label:f.label}),ef(),e(null)}function Q(f){L.value&&L.value.state.actions.setLocale(f)}async function Y(){if(!K.value)throw new Error("No signer connected");if(!O.value)throw new Error("No Umbra instance available. Please make sure you are on a supported network");if(R.value&&$.value)return"success";try{const f=await O.value.generatePrivateKeys(K.value);return R.value=f.spendingKeyPair,$.value=f.viewingKeyPair,"success"}catch(f){return P.error(f),"denied"}}async function ff(f){if(s(!0),D.value)try{await(D.value?.send("wallet_switchEthereumChain",[{chainId:f.chainId}]))}catch(e){const{code:n}=e;if(4902===n)try{const{nativeCurrency:e,logoURI:t,iconUrls:n,blockExplorerUrls:a,rpcUrls:r,...i}={...f};if(!a)throw new Error("blockExplorerUrls is missing");const{address:s,logoURI:d,...o}=e,c={nativeCurrency:o,blockExplorerUrls:[...a],rpcUrls:[...r],...i};await(D.value?.send("wallet_addEthereumChain",[c]))}catch(t){P.log(t),s(!1)}else P.log(e),s(!1)}else s(!1)}function ef(){D.value=void 0,G=void 0,K.value=void 0,S.value=void 0,H.value=void 0,I.value=void 0,O.value=void 0,M.value=void 0,R.value=void 0,$.value=void 0,U.value={},N.value=void 0,q=void 0,j.value=!1,Z.value=!1,W.value=void 0}function tf(f){j.value=f}function nf(){W.value={spendingPublicKey:R.value?.publicKeyHex,viewingPublicKey:$.value?.publicKeyHex}}(0,a.bv)((()=>
1{if(!L.value){L.value=(0,r.Z)({wallets:[E,B,T,k],chains:u.df.map((f=>({id:f.chainId,token:f.nativeCurrency.symbol,label:f.chainName,rpcUrl:f.rpcUrls[0],icon:f.logoURI}))),accountCenter:{desktop:{enabled:!1},mobile:{enabled:!1}},i18n:{"en-US":{connect:A.connect,modals:A.modals,accountCenter:A.accountCenter,notify:A.notify},"zh-CN":{connect:C.connect,modals:C.modals,accountCenter:C.accountCenter,notify:C.notify}},appMetadata:{name:"Umbra",icon:"/icons/favicon-128x128.svg",logo:"/icons/favicon-128x128.svg",description:"Send stealth payments.",explore:"https://app.umbra.cash/faq"}});const f=L.value.state.select("wallets");f.subscribe((f=>{f.map((f=>{f.provider.on("accountsChanged",(()=>{window.location.reload()})),f.provider.on("chainChanged",(()=>{window.location.reload()}))}))}))}})),(0,a.YP)(f,(async()=>{if(f.value&&!S.value){if("MetaMask"===f.value){const f=await window.ethereum._metamask.isUnlocked();if(!f)return void s(!1)}await d()}}));const af=(0,a.Fl)((()=>I.value?.chainId)),rf=(0,a.Fl)((()=>(0,g.xz)(af.value||1))),sf=(0,a.Fl)((()=>!I.value||!af.value||u.KC.includes(af.value))),df=f=>{switch(f){case 137:return(0,h.vz)("0.15","ether").toString();default:return(0,h.vz)("0.02","ether").toString()}},of=(0,a.Fl)((()=>{const f=df(af.value);return{...rf.value?.nativeCurrency,minSendAmount:N.value?.nativeTokenMinSendAmount||f,chainId:af.value}})),cf=(0,a.Fl)((()=>{const f=N.value?.tokens||[];let e=f.sort(((f,e)=>f.address==u.K8?-5:e.address==u.K8?5:f.symbol.localeCompare(e.symbol)));return e.length&&e[0].address===u.K8||(e=[of.value,...e]),V=e,e})),uf=(0,a.Fl)((()=>H.value?H.value:S.value?(0,l.Ls)(S.value):void 0)),lf=(0,a.Fl)((()=>W.value&&R.value&&$.value?W.value.spendingPublicKey!==R.value.publicKeyHex||W.value.viewingPublicKey!==$.value.publicKeyHex?(window.logger.warn("KEYS DO NOT MATCH:"),window.logger.warn("spendingPublicKey (found): ",W.value.spendingPublicKey),window.logger.warn("spendingPublicKey (expected): ",R.value.publicKeyHex),window.logger.warn("viewingPublicKey (found): ",W.value.viewingPublicKey),window.logger.warn("viewingPublicKey (expected): ",$.value.publicKeyHex),!1):(window.logger.debug("stealthKeys.value.spendingPublicKey: ",W.value.spendingPublicKey),window.logger.debug("stealthKeys.value.viewingPublicKey: ",W.value.viewingPublicKey),!0):null));return{configureProvider:o,connectWallet:d,disconnectWallet:z,getPrivateKeys:Y,getTokenBalances:t,setIsAccountSetup:tf,setLanguage:Q,setProvider:i,setNetwork:ff,syncStealthKeys:nf,balances:(0,a.Fl)((()=>U.value)),stealthKeyRegistry:(0,a.Fl)((()=>M.value)),hasKeys:(0,a.Fl)((()=>!!R.value?.privateKeyHex&&!!$.value?.privateKeyHex)),network:(0,a.Fl)((()=>I.value)),isAccountSetup:(0,a.Fl)((()=>j.value)),isLoading:(0,a.Fl)((()=>_.value)),isArgent:(0,a.Fl)((()=>Z.value)),provider:(0,a.Fl)((()=>D.value)),avatar:(0,a.Fl)((()=>X.value)),relayer:(0,a.Fl)((()=>N.value)),signer:(0,a.Fl)((()=>K.value)),spendingKeyPair:(0,a.Fl)((()=>R.value)),umbra:(0,a.Fl)((()=>O.value)),userAddress:(0,a.Fl)((()=>S.value)),viewingKeyPair:(0,a.Fl)((()=>$.value)),chainId:af,currentChain:rf,isSupportedNetwork:(0,a.Fl)((()=>sf.value)),keysMatch:lf,NATIVE_TOKEN:(0,a.Fl)((()=>of.value)),tokens:(0,a.Fl)((()=>cf.value)),userDisplayName:(0,a.Fl)((()=>uf.value)),connectedWalletLabel:(0,a.Fl)((()=>f)),needSignature:(0,a.Fl)((()=>!R.value?.privateKeyHex||!$.value?.privateKeyHex))}}async function J(f,e){const{setRegisteredBlockNumber:t}=(0,x.Z)();try{const n=await c.P6.lookupRecipient(f,e);return t(Number(n.block)),n}catch(n){return window.logger.warn(n),null}}},38833:(f,e,t)=>{"use strict";t.d(e,{Az:()=>m,eX:()=>h,ov:()=>v});var n=t(2281),a=t.n(n),r=t(23160);if(143==t.j)var i=t(47789);if(143==t.j)var s=t(55978);if(143==t.j)var d=t(42560);if(143==t.j)var o=t(6272);var c=t(92300),u=t(83149),l=t(78970);const b=({recipientAddress:f,advancedMode:e,pubKey:t,usePublicKeyChecked:n})=>{(0,l.B3)(f,"Invalid recipient address"),(0,l.k9)(t),f=(0,i.Kn)(f).slice(2);const a=e?"1":"0",r=n?"1":"0",d=11,o=t.slice(4,2*d+4),c=`${f}${a}${r}${o}`;if(64!==c.length)throw new Error(`Data to encrypt is not the correct length: foun
1d ${c.length}, expected 64`);return s.O$.from(`0x${c.toLowerCase()}`)},p=(f,e)=>{const{recipientAddress:t,advancedMode:n,usePublicKeyChecked:a,pubKey:r}=f,{encryptionCount:i,viewingPrivateKey:c}=e;(0,l.B3)(t,"Invalid recipient address"),(0,l.ZO)(i),(0,l.X2)(c,32,"Invalid viewing key"),(0,l.k9)(r);const u=(0,d.$m)(s.O$.from(e.encryptionCount).toHexString(),32),p=(0,o.w)(`${c}${u.slice(2)}`),y=b({recipientAddress:t,advancedMode:n,usePublicKeyChecked:a,pubKey:r}),m=y.xor(p);return(0,d.$m)(m.toHexString(),32)},y=(f,e)=>{const{viewingPrivateKey:t,encryptionCount:n}=e;(0,l.X2)(t,32,"Invalid viewing key"),(0,l.X2)(f,32,"Invalid ciphertext"),(0,l.ZO)(n,"Invalid count for decryption");const a=(0,d.$m)(e.encryptionCount.toHexString(),32),r=(0,o.w)(`${t}${a.slice(2)}`),c=s.O$.from(f).xor(r),u=(0,d.$m)(c.toHexString(),32),b=u.slice(44),p=u.slice(42,43),y=u.slice(43,44);return{advancedMode:"1"===p,usePublicKeyChecked:"1"===y,address:(0,i.Kn)(u.slice(0,42)),pubKey:`0x99${b}`}},m=async(f,e,t)=>{const n=Array.isArray(t)?t:[t];for(const i of n){const{amount:t,tokenAddress:n,txHash:d,senderAddress:o}=i.unencryptedAccountSendData,{recipientAddress:b,advancedMode:y,usePublicKeyChecked:m,pubKey:h}=i.accountDataToEncrypt;(0,l.B3)(o,"Invalid sender address"),(0,l.B3)(n,"Invalid token address"),(0,l.X2)(e,32,"Invalid viewing key"),(0,l.X2)(d,32,"Transaction hash"),(0,l.k9)(h);const v=`${u.fU}-${o}-${f}`;let g=await a().getItem(`${u.fU}-count-${o}-${f}`),w=await a().getItem(v)||[];g&&0!==w.length||(g=(new r.Og).value.toString(),await a().setItem(`${u.fU}-count-${o}-${f}`,g.toString()),await a().setItem(v,[]),w=[]);const x=await(0,c.Hc)(b,u.P0),A=s.O$.from(g);(0,l.B3)(x,"Invalid recipient address"),(0,l.ZO)(A);const C={encryptionCount:A.add(w.length),viewingPrivateKey:e},P={recipientAddress:x,advancedMode:y,usePublicKeyChecked:m,pubKey:h},E=p(P,C);await a().setItem(v,[...w,{accountSendCiphertext:E,amount:t,tokenAddress:n,dateSent:new Date,txHash:d,senderAddress:o}])}},h=async({address:f,viewingPrivateKey:e,chainId:t})=>{const n=`${u.fU}-${f}-${t}`,r=await a().getItem(n)||[],i=`${u.fU}-count-${f}-${t}`,d=await a().getItem(i);let o=[];const l=[];if(void 0===d||null===d)return await a().removeItem(n),window.logger.warn("Initial encryption count was not set. Clearing current values",r),[];for(const[a,c]of r.entries()){const f=y(c.accountSendCiphertext,{viewingPrivateKey:e,encryptionCount:s.O$.from(d).add(a)});window.logger.debug(`Partial PubKey: ${f.pubKey} for send ${a}`),o.push({recipientId:f.address,recipientAddress:f.address,advancedMode:f.advancedMode,usePublicKeyChecked:f.usePublicKeyChecked,amount:c.amount,tokenAddress:c.tokenAddress,dateSent:c.dateSent,senderAddress:c.senderAddress,txHash:c.txHash,pubKey:f.pubKey}),l.push(f.address)}const b=await(0,c.Jk)(l,u.P0);return o=o.map(((f,e)=>({...f,recipientId:b[e]}))),o.reverse()},v=async(f,e)=>{const t=`${u.fU}-${f}-${e}`,n=`${u.fU}-count-${f}-${e}`;await Promise.all([a().removeItem(t),a().removeItem(n)])}},78970:(f,e,t)=>{"use strict";if(t.d(e,{B3:()=>d,X2:()=>u,ZO:()=>c,Zs:()=>l,k9:()=>o}),143==t.j)var n=t(47789);if(143==t.j)var a=t(42560);if(143==t.j)var r=t(44084);var i=t(31538),s=t(35422);const d=(f,e)=>{if(!f.startsWith("0x")||!(0,n.UJ)(f))throw new Error(e||"Invalid address")},o=(f,e)=>{if(!f.startsWith("0x04")||132!==f.length||!(0,a.A7)(f))throw new Error(e||"Invalid public key");try{(0,r.db)(f)}catch{throw new Error(e||"Invalid public key")}},c=(f,e)=>{if(f.lt(0))throw new Error(e||"Invalid count provided for encryption")},u=(f,e,t)=>{if(!(0,a.A7)(f,e))throw new Error(t||"Invalid hex string was provided")},l=f=>{try{(0,i.Q6)(f)}catch(e){throw s.log(e?.message),new Error(`The given ENS name is invalid due to: ${e?.message.split(":").slice(1).join("")} in the ENS name. Check the ENS name in order to avoid a potential scam.`)}}},85977:(f,e,t)=>{"use strict";t(87707),t(72981),Object.defineProperty(e,"__esModule",{value:!0}),e.KeyPair=void 0;const n=t(99639),a=t(33452),r=t(25433),i=t(54137),s=t(79115),d=["0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"];function o(f){if(!(f instanceof r.RandomNumber)&&"string"!==typeof f)throw new Error("Input must be instance of RandomNumber or string");if("string"===typeof f&&!(0,a.isHexString)(f))throw new Error("Strings must be in hex form with 0x prefix");return(0,a.isHexString)(f)?BigInt(f):BigInt(f.asHex)}class c{constructor(f){if(this.privateKeyHex=null,this.publicPointCache=null,this.prec
1omputedPublicPointCache=null,"string"!==typeof f||!(0,a.isHexString)(f))throw new Error("Key must be a string in hex format with 0x prefix");if(d.includes(f))throw new Error("Cannot initialize KeyPair with the provided key");if(f.length===i.lengths.privateKey){(0,i.assertValidPrivateKey)(f),this.privateKeyHex=f;const e=(0,n.getPublicKey)(this.privateKeyHexSlim);this.publicKeyHex=`0x${n.utils.bytesToHex(e)}`}else{if(f.length!==i.lengths.publicKey)throw new Error("Key must be a 66 character hex private key or a 132 character hex public key");(0,i.assertValidPoint)(f),this.publicKeyHex=f}}get privateKeyHexSlim(){return this.privateKeyHex?this.privateKeyHex.slice(2):null}get publicKeyHexSlim(){return this.publicKeyHex.slice(2)}get address(){return(0,a.computeAddress)(this.publicKeyHex)}getPublicPoint(){return this.publicPointCache||(this.publicPointCache=n.Point.fromHex(this.publicKeyHexSlim)),this.publicPointCache}getPrecomputedPublicPoint(){return this.precomputedPublicPointCache||(this.precomputedPublicPointCache=n.utils.precompute(8,n.Point.fromHex(this.publicKeyHexSlim))),this.prec
1omputedPublicPointCache}encrypt(f){if(!(f instanceof r.RandomNumber))throw new Error("Must provide instance of RandomNumber");const e=n.utils.randomPrivateKey(),t=n.Point.fromPrivateKey(e),i=`0x${n.utils.bytesToHex(e)}`,d=`0x${t.toHex()}`,o=(0,s.getSharedSecretHash)(i,this.publicKeyHex),c=f.value.xor(o),u=(0,a.hexZeroPad)(c.toHexString(),32);return{ephemeralPublicKey:d,ciphertext:u}}decrypt(f){const{ephemeralPublicKey:e,ciphertext:t}=f;if(!e||!t)throw new Error("Input must be of type EncryptedPayload to decrypt");if(!this.privateKeyHex)throw new Error("KeyPair has no associated private key to decrypt with");const n=(0,s.getSharedSecretHash)(this.privateKeyHex,e),r=a.BigNumber.from(t).xor(n);return(0,a.hexZeroPad)(r.toHexString(),32)}mulPublicKey(f){const e=o(f),t=this.getPublicPoint().multiply(e);return new c(`0x${t.toHex()}`)}mulPublicKeyToAddress(f){const e=o(f),t=this.getPrecomputedPublicPoint().multiply(e);return(0,a.computeAddress)(`0x${t.toHex()}`)}mulPrivateKey(f){if(!this.privateKeyHex)throw new Error("KeyPair has no associated private key");const e=o(f),t=BigInt(this.privateKeyHex)*e%n.CURVE.n,r=(0,a.hexZeroPad)(a.BigNumber.from(t).toHexString(),32);return new c(r)}static async instanceFromTransaction(f,e){if("string"!==typeof f||f.length!==i.lengths.txHash)throw new Error("Invalid transaction hash provided");const t=await(0,i.recoverPublicKeyFromTransaction)(f,e);return new c(t)}static compressPublicKey(f){(0,i.assertValidPoint)(f);const e=n.Point.fromHex(f.slice(2)).toHex(!0);return{prefix:Number(e[1]),pubKeyXCoordinate:`0x${e.slice(2)}`}}static getUncompressedFromX(f,e){f=a.BigNumber.from(f);const t=(0,a.hexZeroPad)(a.BigNumber.from(f).toHexString(),32).slice(2);if(!e)return`0x${n.Point.fromHex(`02${t}`).toHex()}`;const r=`0${Number(e)}${t}`;return`0x${n.Point.fromHex(r).toHex()}`}}e.KeyPair=c},25433:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RandomNumber=void 0;const n=t(33452),a=t(99639);class r{constructor(){this.sizeInBytes=32;const f=a.utils.randomPrivateKey();this.value=n.BigNumber.from(f)}get asHex(){return(0,n.hexZeroPad)(this.value.toHexString(),this.sizeInBytes)}get asHexSlim(){return(0,n.hexZeroPad)(this.asHex,this.sizeInBytes).slice(2)}}e.RandomNumber=r},54375:(f,e,t)=>{"use strict";t(87707),Object.defineProperty(e,"__esModule",{value:!0}),e.StealthKeyRegistry=void 0;const n=t(85977),a=t(33452),r="0x31fe56609C65Cd0C510E7125f051D440424D38f3",i=["event StealthKeyChanged(address indexed registrant, uint256 spendingPubKeyPrefix, uint256 spendingPubKey, uint256 viewingPubKeyPrefix, uint256 viewingPubKey)","function DOMAIN_SEPARATOR() view returns (bytes32)","function STEALTHKEYS_TYPEHASH() view returns (bytes32)","function setStealthKeys(uint256 spendingPubKeyPrefix, uint256 spendingPubKey, uint256 viewingPubKeyPrefix, uint256 viewingPubKey)","function setStealthKeysOnBehalf(address registrant, uint256 spendingPubKeyPrefix, uint256 spendingPubKey, uint256 viewingPubKeyPrefix, uint256 viewingPubKey, uint8 v, bytes32 r, bytes32 s)","function stealthKeys(address registrant) view returns (uint256 spendingPubKeyPrefix, uint256 spendingPubKey, uint256 viewingPubKeyPrefix, uint256 viewingPubKey)"];class s{constructor(f){this._registry=new a.Contract(r,i,f)}async getStealthKeys(f){const e=await this._registry.stealthKeys(f),{spendingPubKeyPrefix:t,spendingPubKey:a,viewingPubKeyPrefix:r,viewingPubKey:i}=e;if(t.eq(0)||a.eq(0)||r.eq(0)||i.eq(0))throw new Error(`Address ${f} has not registered stealth keys. Please ask them to setup their Umbra account`);const s=n.KeyPair.getUncompressedFromX(a,t.toNumber()),d=n.KeyPair.getUncompressedFromX(i,r.toNumber());return{spendingPublicKey:s,viewingPublicKey:d}}async setStealthKeys(f,e,t){let a=this._registry;t&&(a=this._registry.connect(t));const{prefix:r,pubKeyXCoordinate:i}=n.KeyPair.compressPublicKey(f),{prefix:s,pubKeyXCoordinate:d}=n.KeyPair.compressPublicKey(e);return a.setStealthKeys(r,i,s,d)}}e.StealthKeyRegistry=s},78826:(f,e,t)=>{"use strict";t(87707),Object.defineProperty(e,"__esModule",{value:!0}),e.TxHistoryProvider=void 0;const n=t(33452);let a=!1;class r extends n.EtherscanProvider{constructor(f,e){const t=n.BigNumber.from(f).toNumber();e||(a=!0);const r="VSE7DN8M6M71UPRMW3KANZ2UDDS1XE1G3H";let i;switch(t){case 1:i=r;break;case 10:i="XUY64B315YXV4QV9WCAUF1RPUR5PVKIN3Q";break;case 137:i="FMTPYH9WBC6R5FHD2CH7X7M5NBI5IQ7I79";break;case 42161:i="D8YZZZMTQFSZIPTMSXY5KFBWWN6SJ6FSKV";break;case 11155111:i=r;break;default:throw new Error(`Unsupported chain ID ${t}`)}super(t,e||i)}getBaseUrl(){return"https://api.etherscan.io"}getUrl(f,e){const t=Object.keys(e).reduce(((f,t)=>{const n=e[t];return null!=n&&(f+=`&${t}=${n}`),f}),""),a=this.apiKey?`&apikey=${this.apiKey}`:"",r=n.BigNumber.from(this.network.chainId).toNumber();return`${this.baseUrl}/v2/api?chainid=${r}&module=${f}${t}${a}`}isCommunityResource(){return a}}
1e.TxHistoryProvider=r},70675:(f,e,t)=>{"use strict";var n=t(8050),a=t(35422);t(87707),t(72981),t(35061),Object.defineProperty(e,"__esModule",{value:!0}),e.parseOverrides=e.assertValidStealthAddress=e.assertSufficientBalance=e.Umbra=e.parseChainConfig=void 0;const r=t(33452),i=t(85977),s=t(25433),d=t(54137),o=t(2843),c=t(84857),u=t(79115),l="0xFb2dc580Eed955B528407b4d36FfaFe3da685401",b="0xDbD0f5EBAdA6632Dde7d47713ea200a7C2ff91EB",p=f=>{const e=n.env[f];return!!(e&&e.length>0)&&e},y=p("PONDER_SUBGRAPH_URL"),m={1:p("MAINNET_SUBGRAPH_URL"),10:p("OPTIMISM_SUBGRAPH_URL"),137:p("POLYGON_SUBGRAPH_URL"),8453:p("BASE_SUBGRAPH_URL"),42161:p("ARBITRUM_ONE_SUBGRAPH_URL"),11155111:p("SEPOLIA_SUBGRAPH_URL")},h=f=>y||m[f]||!1,v=f=>({amount:String(f.amount),block:String(f.blockNumber),ciphertext:String(f.ciphertext),from:String(f.from),id:String(f.id),pkx:String(f.pkx),receiver:String(f.receiver),timestamp:String(f.timestamp),token:String(f.token),txHash:String(f.txHash)}),g={1:{chainId:1,umbraAddress:l,batchSendAddress:b,startBlock:12343914,subgraphUrl:h(1)},10:{chainId:10,umbraAddress:l,batchSendAddress:b,startBlock:4069556,subgraphUrl:h(10)},137:{chainId:137,umbraAddress:l,batchSendAddress:b,startBlock:20717318,subgraphUrl:h(137)},1337:{chainId:1337,umbraAddress:l,batchSendAddress:b,startBlock:8505089,subgraphUrl:!1},8453:{chainId:8453,umbraAddress:l,batchSendAddress:b,startBlock:10761374,subgraphUrl:h(8453)},42161:{chainId:42161,umbraAddress:l,batchSendAddress:b,startBlock:7285883,subgraphUrl:h(42161)},11155111:{chainId:11155111,umbraAddress:l,batchSendAddress:b,startBlock:3590825,subgraphUrl:h(11155111)}},w=f=>{if(!f)throw new Error("chainConfig not provided");if("number"===typeof f){const e=Object.keys(g);if(e.includes(String(f)))return g[f];throw new Error("Unsupported chain ID provided")}const{chainId:e,startBlock:t,subgraphUrl:n,umbraAddress:a,batchSendAddress:i}=f,s="number"===typeof t&&t>=0;if(!s)throw new Error(`Invalid start block provided in chainConfig. Got '${t}'`);if("number"!==typeof e||!Number.isInteger(e))throw new Error(`Invalid chainId provided in chainConfig. Got '${e}'`);if(!1!==n&&"string"!==typeof n)throw new Error(`Invalid subgraphUrl provided in chainConfig. Got '${String(n)}'`);let d=null;return i&&(d=(0,r.getAddress)(i)),{umbraAddress:(0,r.getAddress)(a),batchSendAddress:d,startBlock:t,chainId:e,subgraphUrl:n}};e.parseChainConfig=w;const x=f=>"ETH"===f||(0,r.getAddress)(f)===c.ETH_ADDRESS,A=f=>{if(f=r.BigNumber.from(f).toNumber(),1===f||1337===f)return String("https://eth-mainnet.g.alchemy.com/v2/fJF5mTKV7gEQQG5ZCWTD3pq7XkyeFlsN");if(10===f)return String("https://opt-mainnet.g.alchemy.com/v2/F0NyqxjzgsBgYzQ2YJGLnGKILb9n8lcJ");if(137===f)return String("https://polygon-mainnet.g.alchemy.com/v2/IqzJI92OZkPYl7t4GJ2AIReyrKHtXhvB");if(8453===f)return String("https://base-mainnet.g.alchemy.com/v2/FrCFk4H4jox1ImUVbW3EdE8thln_9mLZ");if(42161===f)return String("https://arb-mainnet.g.alchemy.com/v2/pkiWEvLUbGO2ilrNUX44cllLr09aQ_4H");if(11155111===f)return String("https://eth-sepolia.g.alchemy.com/v2/un-lolQt1PFJXflNiG1TRos5RSviXJn0");throw new Error(`No RPC URL for chainId ${f}.`)};class C{constructor(f,t){this.provider=f,this.chainConfig=(0,e.parseChainConfig)(t),this.umbraContract=o.Umbra__factory.connect(this.chainConfig.umbraAddress,f),this.chainConfig.batchSendAddress&&(this.batchSendContract=new r.Contract(this.chainConfig.batchSendAddress,c.UMBRA_BATCH_SEND_ABI,f)),this.fallbackProvider=new r.StaticJsonRpcProvider(A(this.chainConfig.chainId))}getConnectedSigner(f){return f.provider?f:f.connect(this.provider)}async send(f,e,t,n,a){await(0,d.assertSupportedAddress)(n),await E(f,e,r.BigNumber.from(t));const i=await this.umbraContract.toll(),{localOverrides:s,lookupOverrides:o}=T(a),{stealthKeyPair:c,pubKeyXCoordinate:u,encrypted:l}=await this.prepareSend(n,o);B(c.address);const b=this.getConnectedSigner(f);let p;if(x(e)){const f={...s,value:i.add(t)};p=await this.umbraContract.connect(b).sendEth(c.address,i,u,l.ciphertext,f)}else{const f={...s,value:i};p=await this.umbraContract.connect(b).sendToken(c.address,e,t,u,l.ciphertext,f)}return{tx:p,stealthKeyPair:c}}async batchSend(f,e,t){var n;if(!this.batchSendContract)throw new Error("Batch send is not supported on this network");const a=new Set(e.map((f=>f.address)));await Promise.all([...a].map(d.assertSupportedAddress));const i=new Map;for(const d of e){const f=d.token,e=r.BigNumber.from(d.amount);i.set(f,(null===(n=i.get(f))||void 0===n?void 0:n.add(e))||e)}await Promise.all([...i.keys()].map((e=>E(f,e,i.get(e)))));const s=await this.umbraContract.toll(),{localOverrides:o,lookupOverrides:u}=T(t),l=await Promise.all(e.map((f=>this.prepareSend(f.address,u)))),b=s.mul(l.length).add(i.get(c.ETH_ADDRESS)||r.Zero),p=l.map(((f,t)=>{const n=f.stealthKeyPair.address,a=e[t].token,i=r.BigNumber.from(e[t].amount);return B(n),{receiver:n,tokenAddr:a,amount:i,pkx:f.pubKeyXCoordinate,ciphertext:f.encrypted.ciphertext}})),y=p.sort(((f,e)=>f.tokenAddr.localeCompare(e.tokenAddr))),m={...o,value:b},h=await this.batchSendContract.connect(this.getConnectedSigner(f)).batchSend(s,y,m);return{tx:h,stealthKeyPairs:l.map((f=>f.stealthKeyPair))}}async withdraw(f,e,t,n){const i=void 0===n?{}:n;t=(0,r.getAddress)(t),await(0,d.assertSupportedAddress)(t);const s=new r.Wallet(f),o=this.getConnectedSigner(s);if(!x(e))return await this.umbraContract.connect(o).withdrawToken(t,e,i);try{return await P(o,await o.getAddress(),t,i)}catch(c){a.error("Withdrawal with wallet's provider failed, see error below. Retrying with a fallback provider."),a.error(c);const f=s.connect(this.fallbackProvider);return await P(f,await o.getAddress(),t,i)}}async withdrawOnBehalf(f,e,t,n,a,i,s,o,c,u){let l={};void 0!==u&&(l=u),e=(0,r.getAddress)(e),t=(0,r.getAddress)(t),n=(0,r.getAddress)(n),a=(0,r.getAddress)(a),await(0,d.assertSupportedAddress)(t);const b=this.getConnectedSigner(f);return await this.umbraContract.connect(b).withdrawTokenOnBehalf(e,t,n,a,i,s,o,c,l)}async relayWithdrawOnBehalf(){}async*fetchAllAnnouncements(f){const e=void 0===f?{}:f,t=e.startBlock||this.chainConfig.startBlock,n=e.endBlock||"latest",i=async f=>{const e=f.map((f=>[f.receiver,f.from])).flat(),t=await(0,d.checkSupportedAddresses)(e),n=new Set([...e.filter(((f,e)=>t[e]))]),a=f.map((f=>{const e=n.has(f.receiver),t=n.has(f.from);return e&&t?f:null}));return a.filter((f=>null!==f))};if(this.chainConfig.subgraphUrl)try{for await(const f of this.fetchAllAnnouncementsFromSubgraph(t,n)){const e=f.map((f=>({...f,amount:r.BigNumber.from(f.amount),from:(0,r.getAddress)(f.from),receiver:(0,r.getAddress)(f.receiver),token:(0,r.getAddress)(f.token)})));yield await i(e)}}catch(s){a.error("Umbra subgraph announcement fetch failed; falling back to RPC logs.",{chainId:this.chainConfig.chainId,subgraphUrl:this.chainConfig.subgraphUrl,startBlock:t,endBlock:n,error:s
1instanceof Error?s.message:String(s)}),s instanceof Error&&s.stack&&a.error(s.stack);const f=await this.fetchAllAnnouncementFromLogs(t,n);yield await i(f)}else{a.warn("Umbra subgraph URL is not configured; falling back to RPC logs.",{chainId:this.chainConfig.chainId,startBlock:t,endBlock:n});const f=await this.fetchAllAnnouncementFromLogs(t,n);yield await i(f)}}async*fetchSomeAnnouncements(f,e,t,n){const a=void 0===n?{}:n,r=f||await(0,d.getBlockNumberUserRegistered)(t,e.provider,this.chainConfig),i=a.startBlock||r||this.chainConfig.startBlock,s=a.endBlock||"latest";for await(const d of this.fetchAllAnnouncements({startBlock:i,endBlock:s}))yield d}async*fetchAllAnnouncementsFromSubgraph(f,e){const t=this.chainConfig.subgraphUrl;if(!t)throw new Error("Subgraph URL must be defined to fetch via subgraph");for await(const n of(0,d.recursiveCompatibleGraphFetch)(t,{chainId:this.chainConfig.chainId,legacy:{key:"announcementEntities",query:f=>`{\n announcementEntities(${f}) {\n amount\n block\n ciphertext\n from\n id\n pkx\n receiver\n timestamp\n token\n txHash\n }\n }`},ponder:{key:"announcements",orderBy:"blockNumber",selection:"\n amount\n blockNumber\n ciphertext\n from\n id\n pkx\n receiver\n timestamp\n token\n txHash\n ",normalize:v}},{startBlock:f,endBlock:e}))yield n}async fetchAllAnnouncementFromLogs(f,e){const t=f=>`Cannot fetch Announcements from logs on ${f}, please try again later`;if(10===this.chainConfig.chainId)throw new Error(t("Optimism"));if(137===this.chainConfig.chainId)throw new Error(t("Polygon"));if(8453===this.chainConfig.chainId)throw new Error(t("Base"));const n=this.umbraContract.filters.Announcement(null,null,null,null,null),a=await this.umbraContract.queryFilter(n,f,e),i=await Promise.all(a.map((async f=>{const e=f.args,{receiver:t,amount:n,token:a,ciphertext:i,pkx:s}=e,[d,o]=await Promise.all([f.getBlock(),f.getTransaction()]);return{amount:n,block:d.number.toString(),ciphertext:i,from:(0,r.getAddress)(o.from),receiver:(0,r.getAddress)(t),pkx:s,timestamp:String(d.timestamp),token:(0,r.getAddress)(a),txHash:f.transactionHash}})));return i}async scan(f,e,t){const n=void 0===t?{}:t,a=new i.KeyPair(f),r=new i.KeyPair(e),s=[];for await(const i of this.fetchAllAnnouncements(n))for(const f of i){const{amount:e,from:t,receiver:n,timestamp:i,token:d,txHash:o}=f,{isForUser:c,randomNumber:u}=C.isAnnouncementForUser(a,r,f),l=!1;c&&s.push({randomNumber:u,receiver:n,amount:e,token:d,from:t,txHash:o,timestamp:i,isWithdrawn:l})}return{userAnnouncements:s}}static isAnnouncementForUser(f,e,t){if(f instanceof i.KeyPair&&e instanceof i.KeyPair)return C.matchAnnouncementForUser(f,e,t);try{const n=f instanceof i.KeyPair?f:new i.KeyPair(f),a=e instanceof i.KeyPair?e:new i.KeyPair(e);return C.matchAnnouncementForUser(n,a,t)}catch(n){return{isForUser:!1,randomNumber:""}}}static matchAnnouncementForUser(f,e,t){try{const{receiver:n,pkx:a,ciphertext:r}=t,i={ephemeralPublicKey:(0,u.compressedPublicKeyFromX)(a),ciphertext:r},s=e.decrypt(i),d=f.mulPublicKeyToAddress(s);return{isForUser:d.toLowerCase()===n.toLowerCase(),randomNumber:s}}catch(n){return{isForUser:!1,randomNumber:""}}}async generatePrivateKeys(f){const e="Sign this message to access your Umbra account.\n\nOnly sign this message for a trusted client!",{chainId:t}=await this.provider.getNetwork(),n=1===t?e:`${e}\n\nChain ID: ${t}`,a=await f.getAddress(),s=(0,r.hexlify)((0,r.toUtf8Bytes)(n)),d=String(await this.provider.send("personal_sign",[s,a.toLowerCase()])),o=f=>(0,r.isHexString)(f)&&132===f.length;if(!o(d))throw new Error(`Invalid signature: ${d}`);const c=2,u=64,l=d.slice(c,c+u),b=d.slice(c+u,c+u+u),p=d.slice(d.length-2);if(`0x${l}${b}${p}`!==d)throw new Error("Signature incorrectly generated or parsed");const y=(0,r.sha256)(`0x${l}`),m=(0,r.sha256)(`0x${b}`),h=new i.KeyPair(y),v=new i.KeyPair(m);return{spendingKeyPair:h,viewingKeyPair:v}}async prepareSend(f,e){const t=void 0===e?{}:e,{spendingPublicKey:n,viewingPublicKey:a}=await(0,d.lookupRecipient)(f,this.provider,t);if(!n||!a)throw new Error(`Could not retrieve public keys for recipient ID ${f}`);const r=new i.KeyPair(n),o=new i.KeyPair(a),c=new s.RandomNumber,u=o.encrypt
1(c),{pubKeyXCoordinate:l}=i.KeyPair.compressPublicKey(u.ephemeralPublicKey),b=r.mulPublicKey(c);return{stealthKeyPair:b,pubKeyXCoordinate:l,encrypted:u}}static computeStealthPrivateKey(f,e){const t=new i.KeyPair(f),n=t.mulPrivateKey(e);if(!n.privateKeyHex)throw new Error("Stealth key pair must have a private key: this should never occur");return n.privateKeyHex}static async signWithdraw(f,e,t,n,a,i,s,d,o){const c=void 0===d?r.AddressZero:d,u=void 0===o?"0x":o;t=(0,r.getAddress)(t),n=(0,r.getAddress)(n),i=(0,r.getAddress)(i),a=(0,r.getAddress)(a);const l=(0,r.getAddress)(c);if("number"!==typeof e||!Number.isInteger(e))throw new Error(`Invalid chainId provided in chainConfig. Got '${e}'`);if("string"!==typeof u||!(0,r.isHexString)(u))throw new Error("Data string must be null or in hex format with 0x prefix");const b=new r.Wallet(f),p=(0,r.keccak256)(r.defaultAbiCoder.encode(["uint256","address","address","address","address","uint256","address","bytes"],[e,t,n,a,i,s,l,u])),y=await b.signMessage((0,r.arrayify)(p));return(0,r.splitSignature)(y)}}async function P(f,e,t,n,r){const i=void 0===n?{}:n,s=void 0===r?0:r;try{if(20===s)throw new Error("Failed to estimate Optimism's L1 Fee, please try again later");const n=await(0,d.getEthSweepGasInfo)(e,t,f.provider,i),{gasPrice:a,gasLimit:r,txCost:o,fromBalance:c,ethToSend:u,chainId:l}=n;if(o.gt(c))throw new Error("Stealth address ETH balance is not enough to pay for withdrawal gas cost");let b=u;if(10===l||8453===l){const f=o.mul(100+Math.min(s,20)).div(100);b=b.sub(f)}const p=await f.sendTransaction({to:t,value:b,gasPrice:a,gasLimit:r});return p}catch(o){if(!o.stack.includes("insufficient funds"))throw o;return a.log("e",o),a.warn(`failed with "insufficient funds for gas * price + value", retry attempt ${s}...`),await P(f,e,t,i,s+1)}}async function E(f,e,t){if(!x(e)){const n=o.ERC20__factory.connect(e,f),a=await n.balanceOf(await f.getAddress());if(a.lt(t)){const f=t.toString(),e=`Has ${a.toString()} tokens, tried to send ${f} tokens.`;throw new Error(`Insufficient balance to complete transfer. ${e}`)}}return!0}function B(f){if(d.invalidStealthAddresses.includes(f))throw new Error(`Invalid stealth address: ${f}`)}function T(f){const e=void 0===f?{}:f,t={...e},n=(null===t||void 0===t?void 0:t.advanced)||!1,a=(null===t||void 0===t?void 0:t.supportPubKey)||!1,r=(null===t||void 0===t?void 0:t.supportTxHash)||!1,i={advanced:n,supportPubKey:a,supportTxHash:r};return delete t.advanced,delete t.supportPubKey,delete t.supportTxHash,{localOverrides:t,lookupOverrides:i}}e.Umbra=C,e.assertSufficientBalance=E,e.assertValidStealthAddress=B,e.parseOverrides=T},33452:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Wallet=e.serialize=e.computeAddress=e.toUtf8Bytes=e.sha256=e.Web3Provider=e.StaticJsonRpcProvider=e.JsonRpcSigner=e.EtherscanProvider=e.resolveProperties=e.keccak256=e.namehash=e.Contract=e.Zero=e.HashZero=e.AddressZero=e.splitSignature=e.isHexString=e.hexZeroPad=e.hexlify=e.arrayify=e.BigNumber=e.getAddress=e.defaultAbiCoder=void 0;var n=t(96684);Object.defineProperty(e,"defaultAbiCoder",{enumerable:!0,get:function(){return n.defaultAbiCoder}});var a=t(11398);Object.defineProperty(e,"getAddress",{enumerable:!0,get:function(){return a.getAddress}});var r=t(69443);Object.defineProperty(e,"BigNumber",{enumerable:!0,get:function(){return r.BigNumber}});var i=t(26579);Object.defineProperty(e,"arrayify",{enumerable:!0,get:function(){return i.arrayify}}),Object.defineProperty(e,"hexlify",{enumerable:!0,get:function(){return i.hexlify}}),Object.defineProperty(e,"hexZeroPad",{enumerable:!0,get:function(){return i.hexZeroPad}}),Object.defineProperty(e,"isHexString",{enumerable:!0,get:function(){return i.isHexString}}),Object.defineProperty(e,"splitSignature",{enumerable:!0,get:function(){return i.splitSignature}});var s=t(63286);Object.defineProperty(e,"AddressZero",{enumerable:!0,get:function(){return s.AddressZero}}),Object.defineProperty(e,"HashZero",{enumerable:!0,get:function(){return s.HashZero}}),Object.defineProperty(e,"Zero",{enumerable:!0,get:function(){return s.Zero}});var d=t(27367);Object.defineProperty(e,"Contract",{enumerable:!0,get:function(){return d.Contract}});var o=t(77360);Object.defineProperty(e,"namehash",{enumerable:!0,get:function(){return o.namehash}});var c=t(16926);Object.defineProperty(e,"keccak256",{enumerable:!0,get:function(){return c.keccak256}});var u=t(36901);Object.defineProperty(e,"resolveProperties",{enumerable:!0,get:function(){return u.resolveProperties}});
1var l=t(7183);Object.defineProperty(e,"EtherscanProvider",{enumerable:!0,get:function(){return l.EtherscanProvider}}),Object.defineProperty(e,"JsonRpcSigner",{enumerable:!0,get:function(){return l.JsonRpcSigner}}),Object.defineProperty(e,"StaticJsonRpcProvider",{enumerable:!0,get:function(){return l.StaticJsonRpcProvider}}),Object.defineProperty(e,"Web3Provider",{enumerable:!0,get:function(){return l.Web3Provider}});var b=t(29403);Object.defineProperty(e,"sha256",{enumerable:!0,get:function(){return b.sha256}});var p=t(38077);Object.defineProperty(e,"toUtf8Bytes",{enumerable:!0,get:function(){return p.toUtf8Bytes}});var y=t(43763);Object.defineProperty(e,"computeAddress",{enumerable:!0,get:function(){return y.computeAddress}}),Object.defineProperty(e,"serialize",{enumerable:!0,get:function(){return y.serialize}});var m=t(97892);Object.defineProperty(e,"Wallet",{enumerable:!0,get:function(){return m.Wallet}})},21769:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Ownable__factory=void 0;const n=t(74253),a=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];class r{static createInterface(){return new n.utils.Interface(a)}static connect(f,e){return new n.Contract(f,a,e)}}e.Ownable__factory=r,r.abi=a},87967:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Ownable__factory=void 0;var n=t(21769);Object.defineProperty(e,"Ownable__factory",{enumerable:!0,get:function(){return n.Ownable__factory}})},64087:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.token=e.access=void 0,e.access=t(87967),e.token=t(42227)},20297:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ERC20__factory=void 0;const n=t(74253),a=[{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],r="0x60806040523480156200001157600080fd5b5060405162000e9738038062000e97833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b5060405250508251620001b491506003906020850190620001e0565b508051620001ca906004906020840190620001e0565b50506005805460ff19166012179055506200028c565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000218576000855562000263565b82601f106200023357805160ff191683800117855562000263565b8280016001018555821562000263579182015b828111156200026357825182559160200191906001019062000246565b506200027192915062000275565b5090565b5b8082111
1562000271576000815560010162000276565b610bfb806200029c6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610287578063a9059cbb146102c0578063dd62ed3e146102f9576100c9565b8063395093511461021357806370a082311461024c57806395d89b411461027f576100c9565b806318160ddd116100b257806318160ddd1461019857806323b872dd146101b2578063313ce567146101f5576100c9565b806306fdde03146100ce578063095ea7b31461014b575b600080fd5b6100d6610334565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101105781810151838201526020016100f8565b50505050905090810190601f16801561013d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101846004803603604081101561016157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103e8565b604080519115158252519081900360200190f35b6101a0610405565b60408051918252519081900360200190f35b610184600480360360608110156101c857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561040b565b6101fd6104ac565b6040805160ff9092168252519081900360200190f35b6101846004803603604081101561022957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356104b5565b6101a06004803603602081101561026257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610510565b6100d6610538565b6101846004803603604081101561029d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356105b7565b610184600480360360408110156102d657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561062c565b6101a06004803603604081101561030f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610640565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103de5780601f106103b3576101008083540402835291602001916103de565b820191906000526020600020905b8154815290600101906020018083116103c157829003601f168201915b5050505050905090565b60006103fc6103f5610678565b848461067c565b50600192915050565b60025490565b60006104188484846107c3565b6104a284610424610678565b61049d85604051806060016040528060288152602001610b306028913973ffffffffffffffffffffffffffffffffffffffff8a1660009081526001602052604081209061046f610678565b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020549190610993565b61067c565b5060019392505050565b60055460ff1690565b60006103fc6104c2610678565b8461049d85600160006104d3610678565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c168152925290205490610a44565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103de5780601f106103b3576101008083540402835291602001916103de565b60006103fc6105c4610678565b8461049d85604051806060016040528060258152602001610ba160259139600160006105ee610678565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d16815292529020549190610993565b60006103fc610639610678565b84846107c3565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b3390565b73ffffffffffffffffffffffffffffffffffffffff83166106e8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610b7d6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610754576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610ae86022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff831661082f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610b586025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661089b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610ac56023913960400191505060405180910390fd5b6108a6838383610abf565b6108f081604051806060016040528060268152602001610b0a6026913973ffffffffffffffffffffffffffffffffffffffff86166000908152602081905260409020549190610993565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220939093559084168152205461092c9082610a44565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111
15610a3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a015781810151838201526020016109e9565b50505050905090810190601f168015610a2e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610ab857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220043dd4ed5dd3ce53c78271e4c8d829decd06997c8b5beb0b4fe5cd90dda7294a64736f6c63430007060033",i=f=>f.length>1;class s extends n.ContractFactory{constructor(...f){i(f)?super(...f):super(a,r,f[0])}deploy(f,e,t){return super.deploy(f,e,t||{})}getDeployTransaction(f,e,t){return super.getDeployTransaction(f,e,t||{})}attach(f){return super.attach(f)}connect(f){return super.connect(f)}static createInterface(){return new n.utils.Interface(a)}static connect(f,e){return new n.Contract(f,a,e)}}e.ERC20__factory=s,s.bytecode=r,s.abi=a},65243:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IERC20__factory=void 0;const n=t(74253),a=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];class r{static createInterface(){return new n.utils.Interface(a)}static connect(f,e){return new n.Contract(f,a,e)}}e.IERC20__factory=r,r.abi=a},52123:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IERC20__factory=e.ERC20__factory=void 0;var n=t(20297);Object.defineProperty(e,"ERC20__factory",{enumerable:!0,get:function(){return n.ERC20__factory}});var a=t(65243);Object.defineProperty(e,"IERC20__factory",{enumerable:!0,get:function(){return a.IERC20__factory}})},42227:(f,e,t)=>{"use strict";
1Object.defineProperty(e,"__esModule",{value:!0}),e.erc20=void 0,e.erc20=t(52123)},40562:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.contracts=void 0,e.contracts=t(64087)},65333:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IUmbraHookReceiver__factory=void 0;const n=t(74253),a=[{inputs:[{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address",name:"_stealthAddr",type:"address"},{internalType:"address",name:"_acceptor",type:"address"},{internalType:"address",name:"_tokenAddr",type:"address"},{internalType:"address",name:"_sponsor",type:"address"},{internalType:"uint256",name:"_sponsorFee",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"tokensWithdrawn",outputs:[],stateMutability:"nonpayable",type:"function"}];class r{static createInterface(){return new n.utils.Interface(a)}static connect(f,e){return new n.Contract(f,a,e)}}e.IUmbraHookReceiver__factory=r,r.abi=a},91557:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MockHook__factory=void 0;const n=t(74253),a=[{inputs:[],name:"lastCallData",outputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"stealthAddr",type:"address"},{internalType:"address",name:"acceptor",type:"address"},{internalType:"address",name:"tokenAddr",type:"address"},{internalType:"address",name:"sponsor",type:"address"},{internalType:"uint256",name:"sponsorFee",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"address",name:"_stealthAddr",type:"address"},{internalType:"address",name:"_acceptor",type:"address"},{internalType:"address",name:"_tokenAddr",type:"address"},{internalType:"address",name:"_sponsor",type:"address"},{internalType:"uint256",name:"_sponsorFee",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"tokensWithdrawn",outputs:[],stateMutability:"nonpayable",type:"function"}],r="0x608060405234801561001057600080fd5b506104c0806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063579073de1461003b57806372a853b114610124575b600080fd5b610122600480360360e081101561005157600080fd5b81359173ffffffffffffffffffffffffffffffffffffffff6020820135811692604083013582169260608101358316926080820135169160a0820135919081019060e0810160c08201356401000000008111156100ad57600080fd5b8201836020820111156100bf57600080fd5b803590602001918460018302840111640100000000831117156100e157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610226945050505050565b005b61012c6102fa565b604051808881526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156101e55781810151838201526020016101cd565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b6040805160e08101825288815273ffffffffffffffffffffffffffffffffffffffff8089166020808401829052898316948401859052888316606085018190529288166080850181905260a0850188905260c0850187905260008d8155600180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081169095179055600280548516909717909655600380548416909417909355600480549092169092179055600585905583519192916102ee91600691908601906103e9565b50505050505050505050565b600080546001805460028054600354600454600554600680546040805160206101009b8416159b909b027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190921697909704601f81018a90048a0282018a01909752868152989973ffffffffffffffffffffffffffffffffffffffff97881699958816989488169790931695919492939091908301828280156103df5780601f106103b4576101008083540402835291602001916103df565b820191906000526020600020905b8154815290600101906020018083116103c257829003601f168201915b5050505050905087565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261041f5760008555610465565b82601f1061043857805160ff1916838001178555610465565b82800160010185558215610465579182015b8281111561046557825182559160200191906001019061044a565b50610471929150610475565b5090565b5b8082111
15610471576000815560010161047656fea2646970667358221220cd6f44aa433bfa28f715c08fbe58c5ad5174134e365b5a327463cd682993f12e64736f6c63430007060033",i=f=>f.length>1;class s extends n.ContractFactory{constructor(...f){i(f)?super(...f):super(a,r,f[0])}deploy(f){return super.deploy(f||{})}getDeployTransaction(f){return super.getDeployTransaction(f||{})}attach(f){return super.attach(f)}connect(f){return super.connect(f)}static createInterface(){return new n.utils.Interface(a)}static connect(f,e){return new n.Contract(f,a,e)}}e.MockHook__factory=s,s.bytecode=r,s.abi=a},95558:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StealthKeyRegistry__factory=void 0;const n=t(74253),a=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"registrant",type:"address"},{indexed:!1,internalType:"uint256",name:"spendingPubKeyPrefix",type:"uint256"},{indexed:!1,internalType:"uint256",name:"spendingPubKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"viewingPubKeyPrefix",type:"uint256"},{indexed:!1,internalType:"uint256",name:"viewingPubKey",type:"uint256"}],name:"StealthKeyChanged",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"STEALTHKEYS_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_spendingPubKeyPrefix",type:"uint256"},{internalType:"uint256",name:"_spendingPubKey",type:"uint256"},{internalType:"uint256",name:"_viewingPubKeyPrefix",type:"uint256"},{internalType:"uint256",name:"_viewingPubKey",type:"uint256"}],name:"setStealthKeys",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_registrant",type:"address"},{internalType:"uint256",name:"_spendingPubKeyPrefix",type:"uint256"},{internalType:"uint256",name:"_spendingPubKey",type:"uint256"},{internalType:"uint256",name:"_viewingPubKeyPrefix",type:"uint256"},{internalType:"uint256",name:"_viewingPubKey",type:"uint256"},{internalType:"uint8",name:"_v",type:"uint8"},{internalType:"bytes32",name:"_r",type:"bytes32"},{internalType:"bytes32",name:"_s",type:"bytes32"}],name:"setStealthKeysOnBehalf",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_registrant",type:"address"}],name:"stealthKeys",outputs:[{internalType:"uint256",name:"spendingPubKeyPrefix",type:"uint256"},{internalType:"uint256",name:"spendingPubKey",type:"uint256"},{internalType:"uint256",name:"viewingPubKeyPrefix",type:"uint256"},{internalType:"uint256",name:"viewingPubKey",type:"uint256"}],stateMutability:"view",type:"function"}],r="0x60a060405234801561001057600080fd5b50604080518082018252601a81527f556d62726120537465616c7468204b65792052656769737472790000000000006020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527f4baf469995623d4e8baaebc31ddb114fbc90e91c717e133da2fb936309b41eb9918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160408051601f1981840301815291905280516020909101206080526080516107fd61011c60003960008181608601526101b301526107fd6000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806367eaa7ac1161005057806367eaa7ac146100bb578063bb8f257b146100e2578063cec2a787146100f557600080fd5b8063100dcc531461006c5780633644e51514610081575b600080fd5b61007f61007a3660046106e2565b610128565b005b6100a87f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100a87fab73c83a21fb894c20095a8f28177984b02f6284c760e4c1ac2f82c3d34b79c181565b61007f6100f0366004610757565b610352565b6101086101033660046106c0565b610365565b6040805194855260208501939093529183015260608201526080016100b2565b604080517fab73c83a21fb894c20095a8f28177984b02f6284c760e4c1ac2f82c3d34b79c16020808301919091528183018a9052606082018990526080820188905260a08083018890528351808403909101815260c0830190935282519201919091207f190100000000000000000000000000000000000000000000000000000000000060e08301527f000000000000000000000000000000000000000000000000000000000000000060e283015261010282015260009061012201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa15801561026d573d6000803e3d6000fd5b5050506020604051035190508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f537465616c74684b657952656769737472793a20496e76616c6964205369676e60448201527f617475726500000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103468a8a8a8a8a6104b8565b50505050505050505050565b61035f33858585856104b8565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260208181526040808320838052909152812054819081908190156103d95773ffffffffffffffffffffffffffffffffffffffff8516600090815260208181526040808320838052909152902054600294509250610410565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260208181526040808320600184529091529020546003945092505b73ffffffffffffffffffffffffffffffffffffffff8516600090815260208181526040808320600284529091529020541561047d57505073ffffffffffffffffffffffffffffffffffffffff831660009081526020818152604080832060028085529252909120546104b1565b505073ffffffffffffffffffffffffffffffffffffffff831660009081526020818152604080832060038085529252909120545b9193509193565b83600214806104c75750836003145b80156104dd575081600214806104dd5750816003145b610569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f537465616c74684b657952656769737472793a20496e76616c6964205072656660448201527f69780000000000000000000000000000000000000000000000000000000000006064820152608401610330565b60408051858152602081018590529081018390526060810182905273ffffffffffffffffffffffffffffffffffffffff8616907fe879dede910dd3b22239a11044df83c95adcd4b54003516f42866cc1fe4f0a199060800160405180910390a26105d4600285610789565b73ffffffffffffffffffffffffffffffffffffffff86166000908152602081905260408120919550610607866001610789565b81526020808201929092526040908101600090812081905573ffffffffffffffffffffffffffffffffffffffff881681529182905281209061064a846005610789565b81526020808201929092526040908101600090812081905573ffffffffffffffffffffffffffffffffffffffff979097168752868252808720958752949052838520929092558352912055565b803573ffffffffffffffffffffffffffffffffffffffff811681146106bb57600080fd5b919050565b6000602082840312156106d257600080fd5b6106db82610697565b9392505050565b600080600080600080600080610100898b0312156106ff57600080fd5b61070889610697565b97506020890135965060408901359550606089013594506080890135935060a089013560ff8116811461073a57600080fd5b979a969950949793969295929450505060c08201359160e0013590565b6000806000806080858703121561076d57600080fd5b5050823594602084013594506040840135936060013592509050565b6000828210156107c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50039056fea264697066735822122019870f8b68c2a38dd8e08e0d8a59cc5dc5dff5338d8558eb989712ca985661e664736f6c63430008070033",i=f=>f.length>1;class s extends n.ContractFactory{constructor(...f){i(f)?super(...f):super(a,r,f[0])}deploy(f){return super.deploy(f||{})}getDeployTransaction(f){return super.getDeployTransaction(f||{})}attach(f){return super.attach(f)}connect(f){return super.connect(f)}static createInterface(){return new n.utils.Interface(a)}static connect(f,e){return new n.Contract(f,a,e)}}e.StealthKeyRegistry__factory=s,s.bytecode=r,s.abi=a},38081:(f,e,t)=>{"use strict";
1Object.defineProperty(e,"__esModule",{value:!0}),e.TestToken__factory=void 0;const n=t(74253),a=[{inputs:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],r="0x60806040523480156200001157600080fd5b506040516200102338038062001023833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604052505082518391508290620001b8906003906020850190620001e7565b508051620001ce906004906020840190620001e7565b50506005805460ff191660121790555062000293915050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200021f57600085556200026a565b82601f106200023a57805160ff19168380011785556200026a565b828001600101855582156200026a579182015b828111156200026a5782518255916020019190600101906200024d565b50620002789291506200027c565b5090565b5b8082111
156200027857600081556001016200027d565b610d8080620002a36000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806340c10f1911610081578063a457c2d71161005b578063a457c2d7146102cd578063a9059cbb14610306578063dd62ed3e1461033f576100d4565b806340c10f191461025757806370a082311461029257806395d89b41146102c5576100d4565b806323b872dd116100b257806323b872dd146101bd578063313ce56714610200578063395093511461021e576100d4565b806306fdde03146100d9578063095ea7b31461015657806318160ddd146101a3575b600080fd5b6100e161037a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011b578181015183820152602001610103565b50505050905090810190601f1680156101485780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61018f6004803603604081101561016c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561042e565b604080519115158252519081900360200190f35b6101ab61044b565b60408051918252519081900360200190f35b61018f600480360360608110156101d357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610451565b6102086104f2565b6040805160ff9092168252519081900360200190f35b61018f6004803603604081101561023457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356104fb565b6102906004803603604081101561026d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610556565b005b6101ab600480360360208110156102a857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610564565b6100e161058c565b61018f600480360360408110156102e357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561060b565b61018f6004803603604081101561031c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610680565b6101ab6004803603604081101561035557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610694565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104245780601f106103f957610100808354040283529160200191610424565b820191906000526020600020905b81548152906001019060200180831161040757829003601f168201915b5050505050905090565b600061044261043b6106cc565b84846106d0565b50600192915050565b60025490565b600061045e848484610817565b6104e88461046a6106cc565b6104e385604051806060016040528060288152602001610cb56028913973ffffffffffffffffffffffffffffffffffffffff8a166000908152600160205260408120906104b56106cc565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000205491906109e7565b6106d0565b5060019392505050565b60055460ff1690565b60006104426105086106cc565b846104e385600160006105196106cc565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c168152925290205490610a98565b6105608282610b13565b5050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104245780601f106103f957610100808354040283529160200191610424565b60006104426106186106cc565b846104e385604051806060016040528060258152602001610d2660259139600160006106426106cc565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d168152925290205491906109e7565b600061044261068d6106cc565b8484610817565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b3390565b73ffffffffffffffffffffffffffffffffffffffff831661073c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610d026024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166107a8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610c6d6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529482529182902085905581518581529
11517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610883576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610cdd6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166108ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610c4a6023913960400191505060405180910390fd5b6108fa838383610c44565b61094481604051806060016040528060268152602001610c8f6026913973ffffffffffffffffffffffffffffffffffffffff861660009081526020819052604090205491906109e7565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526020819052604080822093909355908416815220546109809082610a98565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610a90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a55578181015183820152602001610a3d565b50505050905090810190601f168015610a825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610b0c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216610b9557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610ba160008383610c44565b600254610bae9082610a98565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054610be19082610a98565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209345144d62bac34450acc616c83a436ee071b6c3992f95d5f567bfdd0bd3ecea64736f6c63430007060033",i=f=>f.length>1;class s extends n.ContractFactory{constructor(...f){i(f)?super(...f):super(a,r,f[0])}deploy(f,e,t){return super.deploy(f,e,t||{})}getDeployTransaction(f,e,t){return super.getDeployTransaction(f,e,t||{})}attach(f){return super.attach(f)}connect(f){return super.connect(f)}static createInterface(){return new n.utils.Interface(a)}static connect(f,e){return new n.Contract(f,a,e)}}e.TestToken__factory=s,s.bytecode=r,s.abi=a},22487:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Umbra__factory=void 0;const n=t(74253),a=[{inputs:[{internalType:"uint256",name:"_toll",type:"uint256"},{internalType:"address",name:"_tollCollector",type:"address"},{internalType:"address payable",name:"_tollReceiver",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"bytes32",name:"pkx",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"ciphertext",type:"bytes32"}],name:"Announcement",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!0,internalType:"address",name:"acceptor",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!0,internalType:"address",name:"token",type:"address"}],name:"TokenWithdrawal",type:"event"},{inputs:[],name:"collectTolls",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_receiver",type:"address"},{internalType:"uint256",name:"_tollCommitment",type:"uint256"},{internalType:"bytes32",name:"_pkx",type:"bytes32"},{internalType:"bytes32",name:"_ciphertext",type:"bytes32"}],name:"sendEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_receiver",type:"address"},{internalType:"address",name:"_tokenAddr",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes32",name:"_pkx",type:"bytes32"},{internalType:"bytes32",name:"_ciphertext",type:"bytes32"}],name:"sendToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_newToll",type:"uint256"}],name:"setToll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_newTollCollector",type:"address"}],name:"setTollCollector",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_newTollReceiver",type:"address"}],name:"setTollReceiver",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"tokenPayments",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"toll",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"tollCollector",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"tollReceiver",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_acceptor",type:"address"},{internalType:"address",name:"_tokenAddr",type:"address"}],name:"withdrawToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_acceptor",type:"address"},{internalType:"address",name:"_tokenAddr",type:"address"},{internalType:"contract IUmbraHookReceiver",name:"_hook",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"withdrawTokenAndCall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_stealthAddr",type:"address"},{internalType:"address",name:"_acceptor",type:"address"},{internalType:"address",name:"_tokenAddr",type:"address"},{internalType:"address",name:"_sponsor",type:"address"},{internalType:"uint256",name:"_sponsorFee",type:"uint256"},{internalType:"contract IUmbraHookReceiver",name:"_hook",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"},{internalType:"uint8",name:"_v",type:"uint8"},{internalType:"bytes32",name:"_r",type:"bytes32"},{internalType:"bytes32",name:"_s",type:"bytes32"}],name:"withdrawTokenAndCallOnBehalf",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_stealthAddr",type:"address"},{internalType:"address",name:"_acceptor",type:"address"},{internalType:"address",name:"_tokenAddr",type:"address"},{internalType:"address",name:"_sponsor",type:"address"},{internalType:"uint256",name:"_sponsorFee",type:"uint256"},{internalType:"uint8",name:"_v",type:"uint8"},{internalType:"bytes32",name:"_r",type:"bytes32"},{internalType:"bytes32",name:"_s",type:"bytes32"}],name:"withdrawTokenOnBehalf",outputs:[],stateMutability:"nonpayable",type:"function"}],r="0x608060405234801561001057600080fd5b50604051611ca8380380611ca88339818101604052606081101561003357600080fd5b5080516020820151604090920151909190600061004e6100cf565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600192909255600280546001600160a01b039283166001600160a01b031991821617909155600380549290931691161790556100d3565b3390565b611bc6806100e26000396000f3fe60806040526004361061010e5760003560e01c806381ab0fcd116100a5578063b400ee4611610074578063beb9addf11610059578063beb9addf14610574578063c0b9b4ea146105b9578063f2fde38b146105f95761010e565b8063b400ee4614610510578063b9bfabe1146105255761010e565b806381ab0fcd146104135780638da5cb5b146104895780638ef490b01461049e578063a3dace5d146104e65761010e565b8063285aaa20116100e1578063285aaa20146103515780633aeac4e114610378578063715018a6146103c05780637e8c2f94146103d55761010e565b8063059ca2f5146101135780630c6b7067146101f6578063185ad0a51461023657806323d0e7a11461024b575b600080fd5b34801561011f57600080fd5b506101f46004803603608081101561013657600080fd5b73ffffffffffffffffffffffffffffffffffffffff8235811692602081013582169260408201359092169181019060808101606082013564010000000081111561017f57600080fd5b820183
160208201111561019157600080fd5b803590602001918460018302840111640100000000831117156101b357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610639945050505050565b005b34801561020257600080fd5b506101f46004803603602081101561021957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661064f565b34801561024257600080fd5b506101f461073e565b34801561025757600080fd5b506101f4600480360361014081101561026f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101358216926040820135831692606083013581169260808101359260a08201359092169181019060e0810160c08201356401000000008111156102ce57600080fd5b8201836020820111156102e057600080fd5b8035906020019184600183028401116401000000008311171561030257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505060ff833516935050506020810135906040013561080d565b34801561035d57600080fd5b5061036661083a565b60408051918252519081900360200190f35b34801561038457600080fd5b506101f46004803603604081101561039b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610840565b3480156103cc57600080fd5b506101f4610864565b3480156103e157600080fd5b506103ea61097b565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561041f57600080fd5b506101f4600480360361010081101561043757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060ff60a0820135169060c08101359060e00135610997565b34801561049557600080fd5b506103ea6109e2565b3480156104aa57600080fd5b50610366600480360360408110156104c157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166109fe565b3480156104f257600080fd5b506101f46004803603602081101561050957600080fd5b5035610a1b565b34801561051c57600080fd5b506103ea610ac8565b6101f4600480360360a081101561053b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060800135610ae4565b6101f46004803603608081101561058a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060408101359060600135610c66565b3480156105c557600080fd5b506101f4600480360360208110156105dc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610dde565b34801561060557600080fd5b506101f46004803603602081101561061c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ecd565b610649338585600080878761106e565b50505050565b610657611307565b73ffffffffffffffffffffffffffffffffffffffff166106756109e2565b73ffffffffffffffffffffffffffffffffffffffff16146106f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60025473ffffffffffffffffffffffffffffffffffffffff1633146107c457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f556d6272613a204e6f7420746f6c6c20636f6c6c6563746f7200000000000000604482015290519081900360640190fd5b60035460405173ffffffffffffffffffffffffffffffffffffffff909116904780156108fc02916000818181858888f1935050505015801561080a573d6000803e3d6000fd5b50565b61081f8a8a8a8a8a8a8a8a8a8a61130b565b61082e8a8a8a8a8a8a8a61106e565b50505050505050505050565b60015481565b61086033838360008060006040518060200160405280600081525061106e565b5050565b61086c611307565b73ffffffffffffffffffffffffffffffffffffffff1661088a6109e2565b73ffffffffffffffffffffffffffffffffffffffff161461090c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b6109b988888888886000604051806020016040528060008152508a8a8a61130b565b6109d8888888888860006040518060200160405280600081525061106e565b5050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b600460209081526000928352604080842090915290825290205481565b610a23611307565b73ffffffffffffffffffffffffffffffffffffffff16610a416109e2565b73ffffffffffffffffffffffffffffffffffffffff1614610ac357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201529
10519081900360640190fd5b600155565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6001543414610b5457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556d6272613a204d757374207061792074686520657861637420746f6c6c0000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff80861660009081526004602090815260408083209388168352929052205415610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180611b366031913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808616600081815260046020908152604080832094891680845294825291829020879055815187815290810186905280820185905290517f29877766fa2bfe3b90008d6d92f965eca91cbc5757ed775740e460799fb922199181900360600190a3610c5f843330866115d3565b5050505050565b6001548314610cc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611ae6602a913960400191505060405180910390fd5b6001543411610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611a6a6022913960400191505060405180910390fd5b600154604080513492909203808352602083018590528282018490529051909173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9173ffffffffffffffffffffffffffffffffffffffff8816917f29877766fa2bfe3b90008d6d92f965eca91cbc5757ed775740e460799fb92219919081900360600190a360405173ffffffffffffffffffffffffffffffffffffffff86169082156108fc029083906000818181858888f19350505050158015610dd6573d6000803e3d6000fd5b505050505050565b610de6611307565b73ffffffffffffffffffffffffffffffffffffffff16610e046109e2565b73ffffffffffffffffffffffffffffffffffffffff1614610e8657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610ed5611307565b73ffffffffffffffffffffffffffffffffffffffff16610ef36109e2565b73ffffffffffffffffffffffffffffffffffffffff1614610f7557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611a8c6026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152600460209081526040808320938916835292905220548381116110f9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180611ab26034913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208b8616808552908352818420939093558051898703808252915191959394938d1693927f30eb3583ad09933b693a45452ab07512244cdbc5868701aa004c27b7b267c24992918290030190a4611179878983611668565b841561118a5761118a878787611668565b73ffffffffffffffffffffffffffffffffffffffff8416156112fc578373ffffffffffffffffffffffffffffffffffffffff1663579073de828b8b8b8b8b8a6040518863ffffffff1660e01b8152600401808881526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611291578181015183820152602001611279565b50505050905090810190601f1680156112be5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b1580156112e357600080fd5b505af11580156112f7573d6000803e3d6000fd5b505050505b505050505050505050565b3390565b6000469050600081308c8c8c8c8c8c604051602001808981526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156113f25781810151838201526020016113da565b50505050905090810190601f16801561141f5780820380516001836020036101000a031916815260200191505b5099505050505050505050506040516020818303038152906040528051906020012060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050600060018287878760405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114ed573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061156857508c73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6112f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556d6272613a20496e76616c6964205369676e6174757265000000000000000060448201529
10519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff80861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526106499085906116fa565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526116f59084906116fa565b505050565b600061175c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166117d29092919063ffffffff16565b8051909150156116f55780806020019051602081101561177b57600080fd5b50516116f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611b67602a913960400191505060405180910390fd5b60606117e184846000856117eb565b90505b9392505050565b606082471015611846576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611b106026913960400191505060405180910390fd5b61184f856119a5565b6118ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b6020831061192357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016118e6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611985576040519150601f19603f3d011682016040523d82523d6000602084013e61198a565b606091505b509150915061199a8282866119ab565b979650505050505050565b3b151590565b606083156119ba5750816117e4565b8251156119ca5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a2e578181015183820152602001611a16565b50505050905090810190601f168015611a5b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe556d6272613a204d75737420706179206d6f7265207468616e2074686520746f6c6c4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373556d6272613a204e6f2062616c616e636520746f207769746864726177206f722066656520657863656564732062616c616e6365556d6272613a20496e76616c6964206f72206f7574646174656420746f6c6c20636f6d6d69746d656e74416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c556d6272613a2043616e6e6f742073656e64206d6f726520746f6b656e7320746f20737465616c746820616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212201a0a013d9849ad63662db54a18c4fb3bf986c1b8376369f935e842aae2f1586b64736f6c63430007060033",i=f=>f.length>1;class s extends n.ContractFactory{constructor(...f){i(f)?super(...f):super(a,r,f[0])}deploy(f,e,t,n){return super.deploy(f,e,t,n||{})}getDeployTransaction(f,e,t,n){return super.getDeployTransaction(f,e,t,n||{})}attach(f){return super.attach(f)}connect(f){return super.connect(f)}static createInterface(){return new n.utils.Interface(a)}static connect(f,e){return new n.Contract(f,a,e)}}e.Umbra__factory=s,s.bytecode=r,s.abi=a},94629:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Umbra__factory=e.TestToken__factory=e.StealthKeyRegistry__factory=e.MockHook__factory=e.IUmbraHookReceiver__factory=void 0;var n=t(65333);Object.defineProperty(e,"IUmbraHookReceiver__factory",{enumerable:!0,get:function(){return n.IUmbraHookReceiver__factory}});var a=t(91557);Object.defineProperty(e,"MockHook__factory",{enumerable:!0,get:function(){return a.MockHook__factory}});var r=t(95558);Object.defineProperty(e,"StealthKeyRegistry__factory",{enumerable:!0,get:function(){return r.StealthKeyRegistry__factory}});var i=t(38081);Object.defineProperty(e,"TestToken__factory",{enumerable:!0,get:function(){return i.TestToken__factory}});var s=t(22487);Object.defineProperty(e,"Umbra__factory",{enumerable:!0,get:function(){return s.Umbra__factory}})},69273:(f,e,t)=>{"use strict";
1Object.defineProperty(e,"__esModule",{value:!0}),e.contracts=e.openzeppelin=void 0,e.openzeppelin=t(40562),e.contracts=t(94629)},2843:(f,e,t)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Umbra__factory=e.TestToken__factory=e.StealthKeyRegistry__factory=e.MockHook__factory=e.IUmbraHookReceiver__factory=e.IERC20__factory=e.ERC20__factory=e.Ownable__factory=e.factories=void 0,e.factories=t(69273);var n=t(21769);Object.defineProperty(e,"Ownable__factory",{enumerable:!0,get:function(){return n.Ownable__factory}});var a=t(20297);Object.defineProperty(e,"ERC20__factory",{enumerable:!0,get:function(){return a.ERC20__factory}});var r=t(65243);Object.defineProperty(e,"IERC20__factory",{enumerable:!0,get:function(){return r.IERC20__factory}});var i=t(65333);Object.defineProperty(e,"IUmbraHookReceiver__factory",{enumerable:!0,get:function(){return i.IUmbraHookReceiver__factory}});var s=t(91557);Object.defineProperty(e,"MockHook__factory",{enumerable:!0,get:function(){return s.MockHook__factory}});var d=t(95558);Object.defineProperty(e,"StealthKeyRegistry__factory",{enumerable:!0,get:function(){return d.StealthKeyRegistry__factory}});var o=t(38081);Object.defineProperty(e,"TestToken__factory",{enumerable:!0,get:function(){return o.TestToken__factory}});var c=t(22487);Object.defineProperty(e,"Umbra__factory",{enumerable:!0,get:function(){return c.Umbra__factory}})},84857:(f,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ERC20_ABI=e.UMBRA_BATCH_SEND_ABI=e.UMBRA_ABI=e.ETH_ADDRESS=void 0,e.ETH_ADDRESS="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",e.UMBRA_ABI=["constructor(uint256 toll, address tollCollector, address tollReceiver)","event Announcement(address indexed receiver, uint256 amount, address indexed token, bytes32 pkx, bytes32 ciphertext)","event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)","event TokenWithdrawal(address indexed receiver, address indexed acceptor, uint256 amount, address indexed token)","function collectTolls()","function owner() view returns (address)","function renounceOwnership()","function sendEth(address receiver, uint256 tollCommitment, bytes32 pkx, bytes32 ciphertext) payable","function sendToken(address receiver, address tokenAddr, uint256 amount, bytes32 pkx, bytes32 ciphertext) payable","function setToll(uint256 newToll)","function setTollCollector(address newTollCollector)","function setTollReceiver(address newTollReceiver)","function tokenPayments(address, address) view returns (uint256)","function toll() view returns (uint256)","function tollCollector() view returns (address)","function tollReceiver() view returns (address)","function transferOwnership(address newOwner)","function withdrawToken(address acceptor, address tokenAddr)","function withdrawTokenAndCall(address acceptor, address tokenAddr, address hook, bytes data)","function withdrawTokenAndCallOnBehalf(address stealthAddr, address acceptor, address tokenAddr, address sponsor, uint256 sponsorFee, address hook, bytes data, uint8 v, bytes32 r, bytes32 s)","function withdrawTokenOnBehalf(address stealthAddr, address acceptor, address tokenAddr, address sponsor, uint256 sponsorFee, uint8 v, bytes32 r, bytes32 s)"],e.UMBRA_BATCH_SEND_ABI=["constructor(address _umbra)","error NotSorted()","error TooMuchEthSent()","event BatchSendExecuted(address indexed sender)","event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)","function approveToken(address _token)","function batchSend(uint256 _tollCommitment, tuple(address receiver, address tokenAddr, uint256 amount, bytes32 pkx, bytes32 ciphertext)[] _data) payable","function owner() view returns (address)","function renounceOwnership()","function transferOwnership(address newOwner)"],e.ERC20_ABI=["function name() view returns (string)","function approve(address spender, uint256 value) returns (bool)","function totalSupply() view returns (uint256)","function transferFrom(address from, address to, uint256 value) returns (bool)","function decimals() view returns (uint8)","function balanceOf(address owner) view returns (uint256 balance)","function symbol() view returns (string)","function transfer(address to, uint256 value) returns (bool)","function allowance(address owner, address spender) view returns (uint256)","event Approval(address indexed owner, address indexed spender, uint256 value)","event Transfer(address indexed from, address indexed to, uint256 value)"]},79115:(f,e,t)=>{"use strict";
1t(87707),Object.defineProperty(e,"__esModule",{value:!0}),e.getSharedSecretHash=e.compressedPublicKeyFromX=void 0;const n=t(99639),a=t(33452),r=66,i=130,s=64;function d(f){if("string"!==typeof f||!(0,a.isHexString)(f))throw new Error("Invalid public key");const e=f.startsWith("0x")?f.slice(2):f,t=e.length===r,s=e.length===i;if(!t&&!s)throw new Error("Invalid public key");const d=n.Point.fromHex(e);return d.assertValidity(),e}function o(f){if("string"!==typeof f||!(0,a.isHexString)(f)||f.length!==s+2)throw new Error("Invalid private key");const e=f.slice(2);if(!n.utils.isValidPrivateKey(e))throw new Error("Invalid private key");return e}function c(f,e=2){const t=Number(e);if(2!==t&&3!==t)throw new Error("Invalid public key prefix");const n=(0,a.hexZeroPad)(a.BigNumber.from(f).toHexString(),32).slice(2);return`0x0${t}${n}`}function u(f,e){const t=o(f),r=d(e),i=(0,n.getSharedSecret)(t,r,!0),s=n.utils.bytesToHex(i);return(0,a.sha256)(`0x${s.slice(2)}`)}e.compressedPublicKeyFromX=c,e.getSharedSecretHash=u},54137:(f,e,t)=>{"use strict";var n=t(35422);t(87707),t(72981),Object.defineProperty(e,"__esModule",{value:!0}),e.checkSupportedAddresses=e.assertSupportedAddress=e.getEthSweepGasInfo=e.isDomain=e.assertValidPrivateKey=e.assertValidPoint=e.sortStealthKeyLogs=e.recursiveGraphFetch=e.recursiveCompatibleGraphFetch=e.getPonderNetworkName=e.getMostRecentSubgraphStealthKeyChangedEventFromAddress=e.getBlockNumberUserRegistered=e.lookupRecipient=e.toAddress=e.getSentTransaction=e.recoverPublicKeyFromTransaction=e.invalidStealthAddresses=e.lengths=void 0;const a=t(33452),r=t(99639),i=t(54375),s=t(78826),d=t(85977),o=t(70675);e.lengths={address:42,txHash:66,privateKey:66,publicKey:132}
1,e.invalidStealthAddresses=[a.AddressZero,"0xdcc703c0E500B653Ca82273B7BFAd8045D85a470","0x59274E3aE531285c24e3cf57C11771ecBf72d9bf"].map(a.getAddress);const c={1:"mainnet",10:"optimism",137:"polygon",8453:"base",42161:"arbitrumOne",11155111:"sepolia"},u=new Map;async function l(f,t){if("string"!==typeof f||f.length!==e.lengths.txHash)throw new Error("Invalid transaction hash provided");const n=await D(f,t);if(!n)throw new Error("Transaction not found. Are the provider and transaction hash on the same network?");const i={};if(i.type=n.type,i.nonce=n.nonce,i.gasLimit=n.gasLimit,i.to=n.to,i.value=n.value,i.data=n.data,n.chainId&&(i.chainId=n.chainId),0!==n.type&&n.type)if(42161===n.chainId&&120===n.type)i.gasPrice=n.gasPrice,i.type=0;else if(1===n.type)i.gasPrice=n.gasPrice,i.accessList=n.accessList;else{if(2!==n.type)throw new Error(`Unsupported transaction type: ${n.type}`);i.accessList=n.accessList,i.maxPriorityFeePerGas=n.maxPriorityFeePerGas,i.maxFeePerGas=n.maxFeePerGas}else i.gasPrice=n.gasPrice;const s=await(0,a.resolveProperties)(i),d=(0,a.serialize)(s),o=(0,a.keccak256)(d),c=new r.Signature(BigInt(n.r),BigInt(n.s));c.assertValidity();const u=(0,a.splitSignature)({r:n.r,s:n.s,v:n.v}).recoveryParam,l=r.Point.fromSignature(o.slice(2),c,u);l.assertValidity();const b=`0x${l.toHex()}`;if((0,a.computeAddress)(b)!==n.from)throw new Error("Public key not recovered properly");return b}async function b(f,e){f=(0,a.getAddress)(f);const{chainId:t}=await e.getNetwork(),n=new s.TxHistoryProvider(t),r=await n.getHistory(f);let i;for(let s=0;s<r.length;s+=1){const n=r[s];if(n.from===f){if(42161===t){const f=await D(n.hash,e),t=f.r!==a.HashZero&&f.s!==a.HashZero;if(!t)continue}i=n.hash;break}}return i}async function p(f,t){if(f.length===e.lengths.address&&(0,a.isHexString)(f))return(0,a.getAddress)(f);const n=await _(f,t);if(n)return n;throw new Error(`Please verify the provided name or address of '${f}' is correct. If providing an ENS name, ensure it is registered, and has a valid address record.`)}async function y(f,e,t){let r,s,c;t&&(r=t.advanced,s=t.supportPubKey,c=t.supportTxHash);const u=(await e.getNetwork()).chainId,y=132===f.length&&(0,a.isHexString)(f);if(s&&y)return B(f),{spendingPublicKey:f,viewingPublicKey:f};const m=66===f.length&&(0,a.isHexString)(f);if(c&&m){const t=await l(f,e);return B(t),{spendingPublicKey:t,viewingPublicKey:t}}const v=await p(f,e);if(!r)try{const f=new i.StealthKeyRegistry(e),{spendingPublicKey:t,viewingPublicKey:n}=await f.getStealthKeys(v);return{spendingPublicKey:t,viewingPublicKey:n}}catch(x){x instanceof Error?n.log("StrealthKey Registry fetch error: ",x.message):n.log("An unknown error occurred: ",x),n.log("Error using Registry contract to lookup receipient stealth keys, will query subgraph");const f=(0,o.parseChainConfig)(u),e=await h(v,f),t=d.KeyPair.getUncompressedFromX(e.spendingPubKey,e.spendingPubKeyPrefix.toString()),a=d.KeyPair.getUncompressedFromX(e.viewingPubKey,e.viewingPubKeyPrefix.toString());return{spendingPublicKey:t,viewingPublicKey:a,block:e.block}}const g=await b(v,e);if(!g)throw new Error("Could not get public key because the provided account has not sent any transactions");const w=await l(g,e);return B(w),{spendingPublicKey:w,viewingPublicKey:w}}async function m(f,e,t){var r;f=(0,a.getAddress)(f);try{n.log("Using subgraph to get block number when user registered");const e=await h(f,t);return n.log(`stealthKeyChangedEvent.block: ${e.block}`),e.block}catch(s){n.log("Error using subgraph to get block number when user registered, will query registry contract");const t=new i.StealthKeyRegistry(e),a=t._registry.filters.StealthKeyChanged(f,null,null,null,null);try{const f=f=>new Promise((e=>setTimeout((()=>e(new Error("timeout"))),f))),e=t._registry.queryFilter(a),n=await Promise.race([e,f(3e3)]),i=(null===(r=E(n)[0])||void 0===r?void 0:r.blockNumber)||void 0;return i}catch(d){return}}}async function h(f,e,t){const a=void 0===t?{}:t,r=a.startBlock||e.startBlock,i=a.endBlock||"latest",s=C(r,i,f,e);let d;try{for await(const e of s)for(let t=0;t<e.length;t++)d?n.log(`We found a previous StealthKeyChangedEvent for address ${f} in the subgraph at block ${e[t].block} with transaction hash ${e[t].txHash}`):(d=e[t],n.log(`We found a StealthKeyChangedEvent for address ${f} in the subgraph at block ${e[t].block} with transaction hash ${e[t].txHash}`))}catch(o){throw new Error(`Address ${f} has not registered stealth keys. Please ask them to setup their Umbra account`)}if(!d)throw n.log(`Searched the subgraph, but found no StealthKeyChangedEvents for address ${f}`),new Error(`Address ${f} has not registered stealth keys. Please ask them to setup their Umbra account`);return d}function v(f){return c[f]||null}async function g(f,e){var t;const n=await fetch(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e})});if(!n.ok)throw new Error(`GraphQL request failed with status ${n.status}`);const a=await n.json();if(null===(t=a.errors)||void 0===t?void 0:t.length)throw new Error(a.errors.map((f=>f.message)).join("; "));if(!a.data)throw new Error("GraphQL request returned no data");return a.data}function w(f,e){const t=f instanceof Error?f.message:String(f);return t.includes(`Cannot query field "${e}"`)}async function*x(f,e,t,n){const a=(null===n||void 0===n?void 0:n.startBlock)?n.startBlock.toString():"",r=(null===n||void 0===n?void 0:n.endBlock)?n.endBlock.toString():"",i=(null===n||void 0===n?void 0:n.registrant)?n.registrant.toLowerCase():"";let s="";while(1){const n=s?`after: "${s}"`:"",d=a?`blockNumber_gte: "${a}"`:"",o=r&&"latest"!==r?`blockNumber_lte: "${r}"`:"",c=i?`registrant: "${i}"`:"",u=await g(f,`{\n ${t.key}
1(\n where: {\n network: "${e}"\n ${d}\n ${o}\n ${c}\n }\n orderBy: "${t.orderBy}"\n orderDirection: "desc"\n limit: 1000\n ${n}\n ) {\n items {\n ${t.selection}\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }`),l=u[t.key];if(!l)throw new Error(`Missing Ponder field in response: ${t.key}`);if(yield l.items.map(t.normalize),!l.pageInfo.hasNextPage)return;if(!l.pageInfo.endCursor)throw new Error(`Missing Ponder end cursor for field ${t.key}`);s=l.pageInfo.endCursor}}async function*A(f,e,t){const n=v(e.chainId),a=u.get(f);if(n&&"legacy"!==a)if("ponder"!==a)try{let a=!1;for await(const r of x(f,n,e.ponder,t))a||(u.set(f,"ponder"),a=!0),yield r;return void(a||u.set(f,"ponder"))}catch(r){if(!w(r,e.ponder.key))throw r;u.set(f,"legacy"),yield*P(f,e.legacy.key,e.legacy.query,[],t)}else yield*x(f,n,e.ponder,t);else yield*P(f,e.legacy.key,e.legacy.query,[],t)}async function*C(f,e,t,r){if(!r.subgraphUrl)throw n.log("throwing error because subgraphUrl is not defined"),new Error("Subgraph URL must be defined to fetch via subgraph");for await(const n of A(r.subgraphUrl,{chainId:r.chainId,legacy:{key:"stealthKeyChangedEntities",query:f=>`{\n stealthKeyChangedEntities(${f}) {\n block\n from\n id\n registrant\n spendingPubKey\n spendingPubKeyPrefix\n timestamp\n txHash\n viewingPubKey\n viewingPubKeyPrefix\n }\n }`},ponder:{key:"stealthKeyChanges",orderBy:"blockNumber",selection:"\n blockNumber\n from\n id\n registrant\n spendingPubKey\n spendingPubKeyPrefix\n timestamp\n txHash\n viewingPubKey\n viewingPubKeyPrefix\n ",normalize:f=>({block:String(f.blockNumber),from:String(f.from),id:String(f.id),registrant:String(f.registrant),spendingPubKey:a.BigNumber.from(String(f.spendingPubKey)),spendingPubKeyPrefix:a.BigNumber.from(String(f.spendingPubKeyPrefix)),timestamp:String(f.timestamp),txHash:String(f.txHash),viewingPubKey:a.BigNumber.from(String(f.viewingPubKey)),viewingPubKeyPrefix:a.BigNumber.from(String(f.viewingPubKeyPrefix))})}},{startBlock:f,endBlock:e,registrant:t}))yield n}async function*P(f,e,t,n,a){const r=void 0===n?[]:n,i=!!r.length&&r[r.length-1].id;let s="",d="",o="";const c=(null===a||void 0===a?void 0:a.startBlock)?a.startBlock.toString():"",u=(null===a||void 0===a?void 0:a.endBlock)?null===a||void 0===a?void 0:a.endBlock.toString():"",l=(null===a||void 0===a?void 0:a.registrant)?'registrant: "'+a.registrant.toLowerCase()+'"':"";c&&(s=`block_gte: "${c}",`),u&&"latest"!==u&&(d=`block_lte: "${u}",`),i&&(o=`id_lt: "${i}",`);const b=await fetch(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:t(`\n first: 1000,\n orderBy: id,\n orderDirection: desc,\n where: {\n ${o}\n ${s}\n ${d}\n ${l}\n }\n `)})}),p=await b.json();p.data[e].length&&(yield p.data[e],yield*P(f,e,t,[...r,...p.data[e]],a))}function E(f){return f.sort((function(f,e){return f.blockNumber-e.blockNumber}))}function B(f){const e=130===f.length||132===f.length,t="string"===typeof f&&e;
1if(!t)throw new Error("Must provide uncompressed public key as hex string");const n=r.Point.fromHex(130===f.length?f:f.slice(2));n.assertValidity()}function T(f){const e=64===f.length||66===f.length,t="string"===typeof f&&e;if(!t)throw new Error("Must provide private key as hex string");if(66===f.length&&(f=f.slice(2)),!r.utils.isValidPrivateKey(f))throw new Error("Invalid private key")}function k(f){const e=/^([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+$/;return e.test(f)}async function _(f,e){try{const{chainId:t}=await e.getNetwork();1!==t&&(e=new a.StaticJsonRpcProvider(String("https://eth-mainnet.g.alchemy.com/v2/fJF5mTKV7gEQQG5ZCWTD3pq7XkyeFlsN")));const n=await e.resolveName(f);return n||null}catch(t){return null}}async function F(f,e,t,n){const r=void 0===n?{}:n,i=[1,4,5,10,137,1337,11155111],s=[10,42161],[d,o,c,u,l]=await Promise.all([t.getCode(e),t.getNetwork(),t.getBalance(f),t.getBlock("latest"),t.getGasPrice()]),b="0x"===d,{chainId:p}=o;let y;y=r.gasLimit?a.BigNumber.from(await r.gasLimit):b&&i.includes(p)?a.BigNumber.from("21000"):await t.estimateGas({gasPrice:0,to:e,from:f,value:c});let m=l;s.includes(p)||(m=a.BigNumber.from(await r.gasPrice||l));const h=((null===u||void 0===u?void 0:u.baseFeePerGas)||a.BigNumber.from("0")).mul("1125").div("1000");let v;switch(m.lt(h)&&(m=h),p){case 42161:v="110";break;default:v="105"}m=m.mul(v).div("100");let g=m.mul(y);if(10===p){const n=await t.getTransactionCount(f),r=["function getL1Fee(bytes memory _data) public view returns (uint256)"],i=new a.Contract("0x420000000000000000000000000000000000000F",r,t);let s=await i.getL1Fee((0,a.serialize)({to:e,value:c,data:"0x",gasLimit:y,gasPrice:m,nonce:n}));s=s.mul("170").div("100"),g=g.add(s)}return{gasPrice:m,gasLimit:y,txCost:g,fromBalance:c,ethToSend:c.sub(g),chainId:p}}async function D(f,e){const t={transactionHash:e.formatter.hash(f,!0)},n=await e.perform("getTransaction",t);if(!n)throw new Error("Transaction hash not found. Are the provider and transaction hash on the same network?");const r=e.formatter.transactionResponse(n),i=new Set(["gas"]),s=new Set(["arbSubType","arbType","indexInParent","l1BlockNumber","index","l1BlockNumber","l1Timestamp","queueIndex"]),d={...r},o=new Set(Object.keys(d));return Object.keys(n).forEach((f=>{o.has(f)||(i.has("key")?d.gas=n[f]?a.BigNumber.from(n[f]):null:s.has(f)?d[f]=n[f]?a.BigNumber.from(n[f]).toNumber():null:d[f]=n[f])})),d}async function K(f){const[e]=await S([f]);if(!e)throw new Error("Address is invalid or unavailable")}async function S(f){f=f.map((f=>(0,a.isHexString)(f)&&132==f.length?(0,a.computeAddress)(f):f));const t=new a.StaticJsonRpcProvider(String("https://eth-mainnet.g.alchemy.com/v2/fJF5mTKV7gEQQG5ZCWTD3pq7XkyeFlsN")),n=await Promise.all(f.map((f=>p(f,t)))),r=n.map((f=>!0)),i=["0x01e2919679362dFBC9ee1644Ba9C6da6D6245BB1","0x03893a7c7463AE47D46bc7f091665f1893656003","0x04DBA1194ee10112fE6C3207C0687DEf0e78baCf","0x05E0b5B40B7b66098C2161A5EE11C5740A3A7C45","0x07687e702b410Fa43f4cB4Af7FA097918ffD2730","0x0836222F2B2B24A3F36f98668Ed8F0B38D1a872f","0x08723392Ed15743cc38513C4925f5e6be5c17243","0x08b2eFdcdB8822EfE5ad0Eae55517cf5DC544251","0x09193888b3f38C82dEdfda55259A82C0E7De875E","0x098B716B8Aaf21512996dC57EB0615e2383E2f96","0x0E3A09dDA6B20aFbB34aC7cD4A6881493f3E7bf7","0x0Ee5067b06776A89CcC7dC8Ee369984AD7Db5e06","0x12D66f87A04A9E220743712cE6d9bB1B5616B8Fc","0x1356c899D8C9467C7f71C195612F8A395aBf2f0a","0x169AD27A470D064DEDE56a2D3ff727986b15D52B","0x178169B423a011fff22B9e3F3abeA13414dDD0F1","0x179f48c78f57a3a78f0608cc9197b8972921d1d2","0x1967d8af5bd86a497fb3dd7899a020e47560daaf","0x19aa5fe80d33a56d56c78e82ea5e50e5d80b4dff","0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD","0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a","0x22aaA7720ddd5388A3c0A3333430953C68f1849b","0x23173fE8b96A4Ad8d2E17fB83EA5dcccdCa1Ae52","0x23773E65ed146A459791799d01336DB287f25334","0x242654336ca2205714071898f67E254EB49ACdCe","0x2573BAc39EBe2901B4389CD468F2872cF7767FAF","0x26903a5a198D571422b2b4EA08b56a37cbD68c89","0x2717c5e28cf931547B621a5dddb772Ab6A35B701","0x2FC93484614a34f26F7970CBB94615bA109BB4bf","0x2f389ce8bd8ff92de3402ffce4691d17fc4f6535","0x2f50508a8a3d323b91336fa3ea6ae50e55f32185","0x308ed4b7b49797e1a98d3818bff6fe5385410370","0x330bdFADE01eE9bF63C209Ee33102DD334618e0a","0x35fB6f6DB4fb05e6A4cE86f2C93691425626d4b1","0x39D908dac893CBCB53Cc86e0ECc369aA4DeF1A29","0x3AD9dB589d201A710Ed237c829c7860Ba86510Fc","0x3Cffd56B47B7b41c56258D9C7731ABaDc360E073","0x3aac1cC67c2ec5Db4eA850957b967Ba153aD6279","0x3cbded43efdaf0fc77b9c55f6fc9988fcc9b757d","0x3e37627dEAA754090fBFbb8bd226c1CE66D255e9","0x3efa30704d2b8bbac821307230376556cf8cc39e","0x407CcEeaA7c95d2FE2250Bf9F2c105aA7AAFB512","0
1x43fa21d92141BA9db43052492E0DeEE5aa5f0A93","0x4736dCf1b7A3d580672CcE6E7c65cd5cc9cFBa9D","0x47CE0C6eD5B0Ce3d3A51fdb1C52DC66a7c3c2936","0x48549a34ae37b12f6a30566245176994e17c6b4a","0x4f47bc496083c727c5fbe3ce9cdf2b0f6496270c","0x502371699497d08D5339c870851898D6D72521Dd","0x527653eA119F3E6a1F5BD18fbF4714081D7B31ce","0x538Ab61E8A9fc1b2f93b3dd9011d662d89bE6FE6","0x53b6936513e738f44FB50d2b9476730C0Ab3Bfc1","0x5512d943ed1f7c8a43f3435c85f7ab68b30121b0","0x57b2B8c82F065de8Ef5573f9730fC1449B403C9f","0x58E8dCC13BE9780fC42E8723D8EaD4CF46943dF2","0x5A14E72060c11313E38738009254a90968F58f51","0x5a7a51bfb49f190e5a6060a5bc6052ac14a3b59f","0x5cab7692D4E94096462119ab7bF57319726Eed2A","0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce","0x5f48c2a71b2cc96e3f0ccae4e39318ff0dc375b2","0x5f6c97C6AD7bdd0AE7E0Dd4ca33A4ED3fDabD4D7","0x610B717796ad172B316836AC95a2ffad065CeaB4","0x653477c392c16b0765603074f157314Cc4f40c32","0x67d40EE1A85bf4a4Bb7Ffae16De985e8427B6b45","0x6Bf694a291DF3FeC1f7e69701E3ab6c592435Ae7","0x6acdfba02d390b97ac2b2d42a63e85293bcc160e","0x6be0ae71e6c41f2f9d0d1a3b8d0f75e6f6a0b46e","0x6f1ca141a28907f78ebaa64fb83a9088b02a8352","0x722122dF12D4e14e13Ac3b6895a86e84145b6967","0x723B78e67497E85279CB204544566F4dC5d2acA0","0x72a5843cc08275C8171E582972Aa4fDa8C397B2A","0x743494b60097A2230018079c02fe21a7B687EAA5","0x746aebc06d2ae31b71ac51429a19d54e797878e9","0x756C4628E57F7e7f8a459EC2752968360Cf4D1AA","0x76D85B4C0Fc497EeCc38902397aC608000A06607","0x776198CCF446DFa168347089d7338879273172cF","0x77777feddddffc19ff86db637967013e6c6a116c","0x797d7ae72ebddcdea2a346c1834e04d1f8df102b","0x7Db418b5D567A4e0E8c59Ad71BE1FcE48f3E6107","0x7F19720A857F834887FC9A7bC0a0fBe7Fc7f8102","0x7F367cC41522cE07553e823bf3be79A889DEbe1B","0x7FF9cFad3877F21d41Da833E2F775dB0569eE3D9","0x8281Aa6795aDE17C8973e1aedcA380258Bc124F9","0x833481186f16Cece3f1Eeea1a694c42034c3a0dB","0x83E5bC4Ffa856BB84Bb88581f5Dd62A433A25e0D","0x84443CFd09A48AF6eF360C6976C5392aC5023a1F","0x8576acc5c05d6ce88f4e49bf65bdf0c62f91353c","0x8589427373D6D84E98730D7795D8f6f8731FDA16","0x88fd245fEdeC4A936e700f9173454D1931B4C307","0x901bb9583b24d97e995513c6778dc6888ab6870e","0x910Cbd523D972eb0a6f4cAe4618aD62622b39DbF","0x931546D9e66836AbF687d2bc64B30407bAc8C568","0x94A1B5CdB22c43faab4AbEb5c74999895464Ddaf","0x94Be88213a387E992Dd87DE56950a9aef34b9448","0x94C92F096437ab9958fC0A37F09348f30389Ae79","0x97b1043abd9e6fc31681635166d430a458d14f9c","0x9AD122c22B14202B4490eDAf288FDb3C7cb3ff5E","0x9f4cda013e354b8fc285bf4b9a60460cee7f7ea9","0xA160cdAB225685dA1d56aa342Ad8841c3b53f291","0xA60C772958a3eD56c1F15dD055bA37AC8e523a0D","0xB20c66C4DE72433F3cE747b58B86830c459CA911","0xBA214C1c1928a32Bffe790263E38B4Af9bFCD659","0xCC84179FFD19A1627E79F8648d09e095252Bc418","0xCEe71753C9820f063b38FDbE4cFDAf1d3D928A80","0xD21be7248e0197Ee08E0c20D4a96DEBdaC3D20Af","0xD4B88Df4D29F5CedD6857912842cff3b20C8Cfa3","0xD5d6f8D9e784d0e26222ad3834500801a68D027D","0xD691F27f38B395864Ea86CfC7253969B409c362d","0xD692Fd2D0b2Fbd2e52CFa5B5b9424bC981C30696","0xD82ed8786D7c69DC7e052F7A542AB047971E73d2","0xDD4c48C0B24039969fC16D1cdF626eaB821d3384","0xDF3A408c53E5078af6e8fb2A85088D46Ee09A61b","0xEFE301d259F525cA1ba74A7977b80D5b060B3ccA","0xF60dD140cFf0706bAE9Cd734Ac3ae76AD9eBC32A","0xF67721A2D8F736E75a49FdD7FAd2e31D8676542a","0xF7B31119c2682c88d88D455dBb9d5932c65Cf1bE","0xFD8610d20aA15b7B2E3Be39B396a1bC3516c7144","0xa0e1c89Ef1a489c9C7dE96311eD5Ce5D32c20E4B","0xa5C2254e4253490C54cef0a4347fddb8f75A4998","0xa7e5d5a720f06526557c513402f2e6b5fa20b008","0xaEaaC358560e11f52454D997AAFF2c5731B6f8a6","0xaf4c0B70B2Ea9FB7487C7CbB37aDa259579fe040","0xaf8d1839c3c67cf571aa74B5c12398d4901147B3","0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4","0xb1C8094B234DcE6e03f10a5b673c1d8C69739A00","0xb541fc07bC7619fD4062A54d96268525cBC6FfEF","0xb6f5ec1a0a9cd1526536d3f0426c429529471f40","0xbB93e510BbCD0B7beb5A853875f9eC60275CF498","0xc2a3829F459B3Edd87791c74cD45402BA0a20Be3","0xc455f7fd3e0e12afd51fba5c106909934d8a0e4a","0xca0840578f57fe71599d29375e16783424023357","0xd0975b32cea532eadddfc9c60481976e39db3472","0xd47438C816c9E7f2E2888E060936a499Af9582b3","0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b","0xd8D7DE3349ccaA0Fde6298fe6D7b7d0d34586193","0xd90e2f925DA726b50C4Ed8D0Fb90Ad053324F31b","0xd96f2B1c14Db8458374d9Aca76E26c3D18364307","0xdcbEfFBECcE100cCE9E4b153C4e15cB885643193","0xdf231d99Ff8b6c6CBF4E9B9a945CBAcEF9339178","0xe7aa314c77f4233c18c6cc84384a9247c0cf367b","0xeDC5d01286f99A066559F60a585406f3878a033e","0
1xed6e0a7e4ac94d976eebfb82ccf777a3c6bad921","0xf4B067dD14e95Bab89Be928c07Cb22E3c94E0DAA","0xffbac21a641dcfe4552920138d90f3638b3c9fba"].map(a.getAddress),s=["0x3403c5350ea5f3Ded181aB3Ee645a2ba61FA8DB3","0x364f4A48B60b3b6ff74e67779469c4aAf33F759f","0x5ce083C55A1a9a47191f345e535EC23f4A94724A","0xC7f981cd39E11Cc9C6546b5c16aE7D325B55134c","0x364f4A48B60b3b6ff74e67779469c4aAf33F759f","0x4213cb07DFF4C89E1bE81BEac1Fe0A0691f4FC63","0x98a9B1C6b14e3D78235B3A0e51dABc639f059D79","0x364f4A48B60b3b6ff74e67779469c4aAf33F759f","0x2f76ab8517269Bf2fef0beDEFAB8A0C0007dA562","0xE29028e7E90DD4B63FA37Ff82D239B1bE1a910a3","0x364f4A48B60b3b6ff74e67779469c4aAf33F759f","0xc8203da14165FB0E3eEB07f4bf979D9Ec8265c84","0x7978d0C1EdB080970896FE76A8D9e5b4cfb8b7e7","0x364f4A48B60b3b6ff74e67779469c4aAf33F759f","0x3Cb93bed276bD9Abc1de303639f79043339482d3","0xDBBaAF70Ef98b9acE1cf1C6aA3E724c6Bd1fea01","0x35CC67Db02f7f8321Caf1E5eAA35b975b137badc","0x953C50782BC1836A10164FC40c08567ae8Aeb006","0xf7a9929D5abCdb3b68A1fE32506d4D1F1940630D","0x35CC67Db02f7f8321Caf1E5eAA35b975b137badc","0x94FFE01165A8682c8aF3792C0E231376E50543c7","0x1dCc9919bfB8CCbc6e766c3EB02cB9d5b46Fb41b","0x35CC67Db02f7f8321Caf1E5eAA35b975b137badc","0xDF6F51ee7805110d1e05C9eE6A26589e4AF0C0Fd","0x7c136ceA8392A2906E93678a779989Bb6235D37c","0x35CC67Db02f7f8321Caf1E5eAA35b975b137badc","0x643858712CeBa695bD9D10530723a6203FD5AAB8","0x03Dd9FD27d9bBd69c30d966A2477e51762994fF8","0x35CC67Db02f7f8321Caf1E5eAA35b975b137badc","0x3Cb9204cE00B310E7d107AE1fa178e855053afBc","0xD327f5BfeEd20e3d4Ee6c3da4656915DeF571Cab","0x35CC67Db02f7f8321Caf1E5eAA35b975b137badc","0xE5E8C6e17AA0F6Bb03f71292694DF5405e7f538c","0x0cca7ca23E42ef8A00E86320a27a1572EfCDB845","0x35CC67Db02f7f8321Caf1E5eAA35b975b137badc","0x5b2dFE20E048e0D743E3B288210b4c86Ba1Ca169","0xb939C0399CA409a4E29150699fa19021e6Ebd9DE","0x35CC67Db02f7f8321Caf1E5eAA35b975b137badc","0x57e7E577015468386afbAb747e4360711E30aC2D","0x95E386B792077956d835C6FD1490Aba5c4A51A5b","0x35CC67Db02f7f8321Caf1E5eAA35b975b137badc","0xBB3Ae0a27B128B3e74021023bcA12BF3288E4DEE","0x446726030A2506DE3624BEd2A34359cb083f1421","0x35CC67Db02f7f8321Caf1E5eAA35b975b137badc","0xD0274c0aa26f9d1AF3DFE56775B8CF2c25d20DF0","0xfC2c94d415759E70f99CC88217DDc665c3052933","0x35CC67Db02f7f8321Caf1E5eAA35b975b137badc","0x1Fe6edE4887F85d97BE73b57b06BFa33d7bA87ee","0xF00e4884315483B91dF011904F9De055D3626Ff5","0x24c49e3f26b6c9b58A0c80D868874823A491b40d","0x3011eFbb225D46CeAD862037258F0bffaAe9133C","0xF00e4884315483B91dF011904F9De055D3626Ff5","0x459e9d5305dD9a6416dD2CEA46c7aD28580150Ca","0x6C87fa24A2456cf2682F9327DF02620Ca9c50249","0xF00e4884315483B91dF011904F9De055D3626Ff5","0x0205804cDcd66cB035c5dD5E71e798A68CDF0f6E","0x9A250278313cdD32030bd681e2131FDe93B31055","0xF00e4884315483B91dF011904F9De055D3626Ff5","0x2d74721794A5626FbaEDdd8191d14563071dce02","0xeD0c19785bAF777991820Fb1368247f9Cc326cf8","0x5bB166Ff6580Ceb03972a3AfE62bE8AFa9148103","0x3632d3f193E8047d2102224c60C279BC159703c2","0xcad7aEfe7c83786030B2f0b5090d989edF7f54E2","0x5bB166Ff6580Ceb03972a3AfE62bE8AFa9148103","0x3632d3f193E8047d2102224c60C279BC159703c2","0xa1ea284631D3FE00B2Da2131E9edF2556389308e","0x5bB166Ff6580Ceb03972a3AfE62bE8AFa9148103","0x3632d3f193E8047d2102224c60C279BC159703c2"].map(a.getAddress),d=new Set([...e.invalidStealthAddresses,...i,...s]);if(n.forEach(((f,e)=>{d.has((0,a.getAddress)(f))&&(r[e]=!1)})),1===f.length){const f=["function isSanctioned(address addr) external view returns (bool)"],e=new a.Contract("0x40C57923924B5c5c5455c48D93317139ADDaC8fb",f,t);await e.isSanctioned(n[0])&&(r[0]=!1)}return r}e.recoverPublicKeyFromTransaction=l,e.getSentTransaction=b,e.toAddress=p,e.lookupRecipient=y,e.getBlockNumberUserRegistered=m,e.getMostRecentSubgraphStealthKeyChangedEventFromAddress=h,e.getPonderNetworkName=v,e.recursiveCompatibleGraphFetch=A,e.recursiveGraphFetch=P,e.sortStealthKeyLogs=E,e.assertValidPoint=B,e.assertValidPrivateKey=T,e.isDomain=k,e.getEthSweepGasInfo=F,e.assertSupportedAddress=K,e.checkSupportedAddresses=S},24058:(f,e,t)=>{"use strict";t.d(e,{Z:()=>p});var n=t(5008),a=t(66594);function r(f,e,t,r,i,s){const d=(0,n.up)("q-item"),o=(0,n.up)("q-btn-dropdown");return(0,n.wg)(),(0,n.j4)(o,{onMouseover:e[0]||(e[0]=e=>f.isShown=!0),onMouseleave:f.onRootMouseLeave,ref:"rootRef",modelValue:f.isShown,"onUpdate:modelValue":e[1]||(e[1]=e=>f.isShown=e),"dropdown-icon":f.icon,label:f.label,"menu-anchor":"bottom middle","menu-self":"top middle","no-icon-animation":!0,padding:"0",flat:"",ripple:!1,size:f.size,unelevated:!0,class:(0,a.C_)([{"without-icon":" "===f.icon},"dark-toggle"])},{default:(0,n.w5)((()=>[(0,n.Wm)(d,{onMouseleave:f.onTooltipMouseLeave,ref:"tooltipRef",class:"bg-muted dark-toggle shadow-2 q-pa-md",style:{"max-width":"14rem","font-size":"10px",display:"inline-block"}},{default:(0,n.w5)((()=>[(0,n.WI)(f.$slots,"default")])),_:3},8,["onMouseleave"])])),_:3},8,["onMouseleave","modelValue","dropdown-icon","label","size","class"])}var i=t(77071);const s=(0,n.aZ)({name:"BaseTooltip",props:{label:{type:String,required:!1,default:""},icon:{type:String,required:!1,default:" "},size:{type:String,required:!1,default:"xs"}},setup(){const f=(0,i.iH)(!1),e=(0,i.iH)(null),t=(0,i.iH)(null),n=e=>{t.value?.$el!==e.relatedTarget&&(f.value=!1)},a=t=>{e.value?.$el?.contains(t.relatedTarget)||(f.value=!1)};return{isShown:f,rootRef:e,tooltipRef:t,onRootMouseLeave:n,onTooltipMouseLeave:a}}});var d=t(40446),o=t(95812),c=t(91297),u=t(41288),l=t.n(u);const b=(0,d.Z)(s,[["render",r]]),p=b;l()(s,"components",{QBtnDropdown:o.Z,QItem:c.Z}
1)},21208:(f,e,t)=>{"use strict";t.d(e,{Z:()=>l});var n=t(5008);function a(f,e,t,a,r,i){return(0,n.wg)(),(0,n.iD)("div",{onClick:e[0]||(e[0]=(...e)=>f.connectWalletWithRedirect&&f.connectWalletWithRedirect(...e))},[(0,n.WI)(f.$slots,"default")])}var r=t(57324),i=t(36179),s=t(12804);function d(f,e,t){const{connectWallet:n,userAddress:a}=(0,i.ZP)();async function d(){const i=(0,r.yj)(),d=(0,s.sz)(new URLSearchParams(t||"").entries());a.value&&e?await f.push({name:e,query:d}):a.value||(await n(),e&&await f.push({name:e||i.path,query:d}))}return{connectWalletWithRedirect:d}}const o=(0,n.aZ)({name:"ConnectWallet",props:{to:{type:String,required:!1,default:void 0},params:{type:String,required:!1,default:void 0}},setup(f){const e=(0,r.tv)();return{...d(e,f.to,f.params)}}});var c=t(40446);const u=(0,c.Z)(o,[["render",a]]),l=u},48405:()=>{},38873:()=>{},32296:()=>{},45545:()=>{},46047:()=>{},78028:()=>{},50695:()=>{},84215:()=>{},47021:()=>{},40280:()=>{},50471:()=>{},71632:()=>{},26829:()=>{}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.