@latticexyz/entrykit 2.2.15-entrykit-a55684bcea142bd25c23fc6791b7818621f350f6 → 2.2.15-entrykit-9f7c977a92973d8e7290aafb7ebf6f2d1d8f4b99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/tsup/internal.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Root as
|
|
1
|
+
import{Root as nn,DialogPortal as rn,DialogContent as on}from"@radix-ui/react-dialog";import{forwardRef as Xt,useEffect as jt,useRef as Ke,useState as ze}from"react";import $t from"react-dom";var Me=`*, ::before, ::after {
|
|
2
2
|
--tw-border-spacing-x: 0;
|
|
3
3
|
--tw-border-spacing-y: 0;
|
|
4
4
|
--tw-translate-x: 0;
|
|
@@ -1422,7 +1422,7 @@ video {
|
|
|
1422
1422
|
--tw-text-opacity: 1;
|
|
1423
1423
|
color: rgb(255 255 255 / var(--tw-text-opacity));
|
|
1424
1424
|
}
|
|
1425
|
-
`;import{useResizeObserver as jt}from"usehooks-ts";import{mergeRefs as Jt}from"react-merge-refs";import{createContext as Wt,useContext as Ut}from"react";import{jsx as qt}from"react/jsx-runtime";var Pe=Wt(null);function Me({frame:e,children:t}){if(Ut(Pe))throw new Error("`FrameProvider` can only be used once.");return qt(Pe.Provider,{value:{frame:e},children:t})}import{useMediaQuery as _t}from"usehooks-ts";import"@rainbow-me/rainbowkit/styles.css";import{createContext as Vt,useContext as Ee}from"react";import{RainbowKitProvider as Qt,lightTheme as Ie,midnightTheme as Ne}from"@rainbow-me/rainbowkit";import{jsx as Te}from"react/jsx-runtime";var ie=Vt(null);function He({config:e,children:t}){if(Ee(ie))throw new Error("`EntryKitProvider` can only be used once.");return Te(Qt,{initialChain:e.chainId,appInfo:{appName:e.appInfo?.name},theme:e.theme==="light"?Ie({borderRadius:"none"}):e.theme==="dark"?Ne({borderRadius:"none"}):{lightMode:Ie({borderRadius:"none"}),darkMode:Ne({borderRadius:"none"})},children:Te(ie.Provider,{value:e,children:t})})}function p(){let e=Ee(ie);if(!e)throw new Error("`useEntryKitConfig` can only be used within a `EntryKitProvider`.");return e}function Oe(){let{theme:e}=p(),t=_t("(prefers-color-scheme: dark)");return e??(t?"dark":"light")}import{jsx as N,jsxs as en}from"react/jsx-runtime";function Zt({onSize:e,...t}){let n=De(null);return jt({ref:n,onResize:e}),N("div",{ref:n,...t,style:{...t.style,display:"inline-grid"}})}var L=Yt(function({mode:t,children:n},r){let o=De(null),[s,i]=Re(!1),a=s?o.current:null,[l,c]=Re({width:void 0,height:void 0}),d=a?.contentDocument,u=Oe();Xt(()=>{d&&d.body.setAttribute("data-theme",u)},[d,u]);let f=t==="modal"?{all:"unset",display:"block",position:"fixed",inset:"0",width:"100%",height:"100%",zIndex:"2147483646"}:l.width&&l.height?{all:"unset",display:"inline-grid",width:`${l.width}px`,height:`${l.height}px`}:{all:"unset",display:"block",position:"fixed",inset:"0",width:"100%",height:"100%",opacity:0,pointerEvents:"none"};return N("iframe",{ref:Jt([r,o]),style:f,onLoad:()=>i(!0),srcDoc:"<!doctype html><title>\u2026</title>",children:d?$t.createPortal(en(Me,{frame:a,children:[N("div",{children:t==="modal"?n:N(Zt,{onSize:c,children:n})}),N("style",{dangerouslySetInnerHTML:{__html:Se}})]}),d.body):null})});import{twMerge as ze}from"tailwind-merge";import{jsx as k,jsxs as on}from"react/jsx-runtime";function Ke({open:e,onOpenChange:t,children:n}){return k(tn,{open:e,onOpenChange:t,children:k(nn,{children:on(L,{mode:"modal",children:[k("div",{className:ze("fixed inset-0","bg-neutral-800/85","animate-in animate-duration-300 fade-in")}),k("div",{className:ze("fixed inset-0","grid items-end sm:items-center","animate-in animate-duration-300 fade-in slide-in-from-bottom-16"),children:k("div",{children:k(rn,{className:"outline-none w-full max-w-[26rem] mx-auto","aria-describedby":void 0,onOpenAutoFocus:r=>{r.preventDefault()},children:n})})})]})})})}import{useCallback as se,useMemo as an}from"react";import{useStore as sn}from"zustand";import{createStore as cn}from"zustand/vanilla";var B=cn(()=>({open:!1}));function y(){let e=sn(B,o=>o.open),t=se(()=>{B.setState({open:!0})},[]),n=se(()=>{B.setState({open:!1})},[]),r=se(o=>{B.setState({open:o})},[]);return an(()=>({accountModalOpen:e,openAccountModal:t,closeAccountModal:n,toggleAccountModal:r}),[e,t,n,r])}import{twMerge as Nt}from"tailwind-merge";import{useConnectorClient as ro}from"wagmi";import{useAccount as sr}from"wagmi";import{twMerge as F}from"tailwind-merge";import{twMerge as dn}from"tailwind-merge";import{jsx as Le,jsxs as ln}from"react/jsx-runtime";function x({className:e,...t}){return ln("svg",{className:dn("-my-[0.125em] h-[1.25em] w-[1.25em] animate-spin",e),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",...t,children:[Le("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),Le("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}import{jsx as T,jsxs as un}from"react/jsx-runtime";var pn=({variant:e="primary"}={})=>F("group self-center leading-none outline-none border-4 border-transparent","transition hover:brightness-125 active:brightness-150","focus:border-orange-500","aria-disabled:pointer-events-none aria-busy:pointer-events-none","aria-disabled:opacity-50","p-[.75em] font-medium",{primary:F("bg-neutral-700 text-white"),secondary:F("bg-neutral-800 text-white")}[e]),g=({pending:e,variant:t,type:n,className:r,children:o,disabled:s,...i})=>T("button",{type:n||"button",className:F(pn({variant:t,pending:e}),r),"aria-busy":e,"aria-disabled":s,disabled:s||e,...i,children:un("span",{className:"grid grid-cols-[1fr_auto_1fr] gap-2",children:[T("span",{className:"flex items-center justify-end text-[.75em]",children:T("span",{className:"transition opacity-0 translate-x-2 group-aria-busy:opacity-100 group-aria-busy:translate-x-0 duration-100 group-aria-busy:duration-300",children:T(x,{})})}),T("span",{children:o})]})});import{useConnectModal as cr}from"@rainbow-me/rainbowkit";import{useMutation as Je}from"@tanstack/react-query";import{useConnectors as nr}from"wagmi";import{createClient as Yn,custom as Xn,getAddress as $n,numberToHex as Ye,SwitchChainError as jn}from"viem";import{ChainNotConfiguredError as Jn,createConnector as Zn}from"wagmi";import{createStore as mn}from"zustand/vanilla";import{persist as fn}from"zustand/middleware";var m=mn(fn(()=>({publicKeys:{},addresses:{},activeCredential:null}),{name:"mud:passkey:cache"}));function yn(e){e.key===m.persist.getOptions().name&&m.persist.rehydrate()}window.addEventListener("storage",yn);import{smartAccountActions as er}from"permissionless/clients";import{toWebAuthnAccount as Tn}from"viem/account-abstraction";import{BaseError as gn}from"abitype";import{pad as hn,encodeFunctionData as ce,hashMessage as wn,hashTypedData as Fe,encodeAbiParameters as Ge,stringToHex as bn,size as xn,encodePacked as vn,parseSignature as Cn}from"viem";import{entryPoint07Abi as kn,entryPoint07Address as An,getUserOperationHash as Sn,toSmartAccount as Pn}from"viem/account-abstraction";import{readContract as Be}from"viem/actions";import{parseSignature as Mn}from"webauthn-p256";async function U(e){let{client:t,owners:n,nonce:r=0n}=e,o=e.address,s={abi:kn,address:An,version:"0.7"},i={abi:Nn,address:"0x356336adA1619BeC1Ae4E6D94Dd9c0490DA414a8"};if(!n.length)throw new Error("`owners` must have at least one account.");function a(d){return d.type==="webAuthn"?d.publicKey:hn(d.address)}let l=e.signer??n[0],c=n.indexOf(l);if(c===-1)throw new Error("`signer` must be one of `owners`.");return Pn({client:t,entryPoint:s,extend:{__isCoinbaseSmartAccount:!0,abi:W,factory:i,signer:l},async encodeCalls(d){return d.length===1?ce({abi:W,functionName:"execute",args:[d[0].to,d[0].value??0n,d[0].data??"0x"]}):ce({abi:W,functionName:"executeBatch",args:[d.map(u=>({data:u.data??"0x",target:u.to,value:u.value??0n}))]})},async getAddress(){return o??=await Be(t,{...i,functionName:"getAddress",args:[n.map(a),r]}),o},async getFactoryArgs(){let d=ce({abi:i.abi,functionName:"createAccount",args:[n.map(a),r]});return{factory:i.address,factoryData:d}},async getStubSignature(){return l.type==="webAuthn"?"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000001949fc7c88032b9fcb5f6efc7a7b8c63668eae9871b765e23123bb473ff57aa831a7c0d9276168ebcc29f2875a0239cffdf2a9cd1c2007c5c77c071db9264df1d000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97630500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008a7b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a2273496a396e6164474850596759334b7156384f7a4a666c726275504b474f716d59576f4d57516869467773222c226f726967696e223a2268747470733a2f2f7369676e2e636f696e626173652e636f6d222c2263726f73734f726967696e223a66616c73657d00000000000000000000000000000000000000000000":E({signature:"0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c",ownerIndex:c})},async sign(d){let u=await this.getAddress(),f=de({address:u,chainId:t.chain.id,hash:d.hash}),h=await G({hash:f,owner:l});return E({signature:h,ownerIndex:c})},async signMessage(d){let{message:u}=d,f=await this.getAddress(),h=de({address:f,chainId:t.chain.id,hash:wn(u)}),I=await G({hash:h,owner:l});return E({signature:I,ownerIndex:c})},async signTypedData(d){let{domain:u,types:f,primaryType:h,message:I}=d,ae=await this.getAddress(),Bt=de({address:ae,chainId:t.chain.id,hash:Fe({domain:u,message:I,primaryType:h,types:f})}),Ft=await G({hash:Bt,owner:l});return E({signature:Ft,ownerIndex:c})},async signUserOperation(d){let{chainId:u=t.chain.id,...f}=d,h=await this.getAddress(),I=Sn({chainId:u,entryPointAddress:s.address,entryPointVersion:s.version,userOperation:{...f,sender:h}}),ae=await G({hash:I,owner:l});return E({signature:ae,ownerIndex:c})},userOperation:{async estimateGas(d){if(l.type==="webAuthn")return{verificationGasLimit:BigInt(Math.max(Number(d.verificationGasLimit??0n),8e5))}}},async isOwner(d){return await Be(t,{abi:W,address:await this.getAddress(),functionName:"isOwnerBytes",args:[a(d)]})}})}async function G({hash:e,owner:t}){if(t.type==="webAuthn"){let{signature:n,webauthn:r}=await t.sign({hash:e});return In({signature:n,webauthn:r})}if(t.sign)return t.sign({hash:e});throw new gn("`owner` does not support raw sign.")}function de({address:e,chainId:t,hash:n}){return Fe({domain:{chainId:t,name:"Coinbase Smart Wallet",verifyingContract:e,version:"1"},types:{CoinbaseSmartWalletMessage:[{name:"hash",type:"bytes32"}]},primaryType:"CoinbaseSmartWalletMessage",message:{hash:n}})}function In({webauthn:e,signature:t}){let{r:n,s:r}=Mn(t);return Ge([{components:[{name:"authenticatorData",type:"bytes"},{name:"clientDataJSON",type:"bytes"},{name:"challengeIndex",type:"uint256"},{name:"typeIndex",type:"uint256"},{name:"r",type:"uint256"},{name:"s",type:"uint256"}],type:"tuple"}],[{authenticatorData:e.authenticatorData,clientDataJSON:bn(e.clientDataJSON),challengeIndex:BigInt(e.challengeIndex),typeIndex:BigInt(e.typeIndex),r:n,s:r}])}function E(e){let{ownerIndex:t}=e,n=(()=>{if(xn(e.signature)!==65)return e.signature;let r=Cn(e.signature);return vn(["bytes32","bytes32","uint8"],[r.r,r.s,r.yParity===0?27:28])})();return Ge([{components:[{name:"ownerIndex",type:"uint8"},{name:"signatureData",type:"bytes"}],type:"tuple"}],[{ownerIndex:t,signatureData:n}])}var W=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"owner",type:"bytes"}],name:"AlreadyOwner",type:"error"},{inputs:[],name:"Initialized",type:"error"},{inputs:[{name:"owner",type:"bytes"}],name:"InvalidEthereumAddressOwner",type:"error"},{inputs:[{name:"key",type:"uint256"}],name:"InvalidNonceKey",type:"error"},{inputs:[{name:"owner",type:"bytes"}],name:"InvalidOwnerBytesLength",type:"error"},{inputs:[],name:"LastOwner",type:"error"},{inputs:[{name:"index",type:"uint256"}],name:"NoOwnerAtIndex",type:"error"},{inputs:[{name:"ownersRemaining",type:"uint256"}],name:"NotLastOwner",type:"error"},{inputs:[{name:"selector",type:"bytes4"}],name:"SelectorNotAllowed",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnauthorizedCallContext",type:"error"},{inputs:[],name:"UpgradeFailed",type:"error"},{inputs:[{name:"index",type:"uint256"},{name:"expectedOwner",type:"bytes"},{name:"actualOwner",type:"bytes"}],name:"WrongOwnerAtIndex",type:"error"},{anonymous:!1,inputs:[{indexed:!0,name:"index",type:"uint256"},{indexed:!1,name:"owner",type:"bytes"}],name:"AddOwner",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"index",type:"uint256"},{indexed:!1,name:"owner",type:"bytes"}],name:"RemoveOwner",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"REPLAYABLE_NONCE_KEY",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{name:"owner",type:"address"}],name:"addOwnerAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"x",type:"bytes32"},{name:"y",type:"bytes32"}],name:"addOwnerPublicKey",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"functionSelector",type:"bytes4"}],name:"canSkipChainIdValidation",outputs:[{name:"",type:"bool"}],stateMutability:"pure",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"entryPoint",outputs:[{name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{name:"target",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"}],name:"execute",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{name:"target",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"executeBatch",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{name:"calls",type:"bytes[]"}],name:"executeWithoutChainIdValidation",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{name:"sender",type:"address"},{name:"nonce",type:"uint256"},{name:"initCode",type:"bytes"},{name:"callData",type:"bytes"},{name:"callGasLimit",type:"uint256"},{name:"verificationGasLimit",type:"uint256"},{name:"preVerificationGas",type:"uint256"},{name:"maxFeePerGas",type:"uint256"},{name:"maxPriorityFeePerGas",type:"uint256"},{name:"paymasterAndData",type:"bytes"},{name:"signature",type:"bytes"}],name:"userOp",type:"tuple"}],name:"getUserOpHashWithoutChainId",outputs:[{name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{name:"$",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{name:"owners",type:"bytes[]"}],name:"initialize",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{name:"account",type:"address"}],name:"isOwnerAddress",outputs:[{name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{name:"account",type:"bytes"}],name:"isOwnerBytes",outputs:[{name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{name:"x",type:"bytes32"},{name:"y",type:"bytes32"}],name:"isOwnerPublicKey",outputs:[{name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],name:"isValidSignature",outputs:[{name:"result",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextOwnerIndex",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{name:"index",type:"uint256"}],name:"ownerAtIndex",outputs:[{name:"",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[],name:"ownerCount",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{name:"index",type:"uint256"},{name:"owner",type:"bytes"}],name:"removeLastOwner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"index",type:"uint256"},{name:"owner",type:"bytes"}],name:"removeOwnerAtIndex",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"removedOwnersCount",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{name:"hash",type:"bytes32"}],name:"replaySafeHash",outputs:[{name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{name:"newImplementation",type:"address"},{name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{name:"sender",type:"address"},{name:"nonce",type:"uint256"},{name:"initCode",type:"bytes"},{name:"callData",type:"bytes"},{name:"callGasLimit",type:"uint256"},{name:"verificationGasLimit",type:"uint256"},{name:"preVerificationGas",type:"uint256"},{name:"maxFeePerGas",type:"uint256"},{name:"maxPriorityFeePerGas",type:"uint256"},{name:"paymasterAndData",type:"bytes"},{name:"signature",type:"bytes"}],name:"userOp",type:"tuple"},{name:"userOpHash",type:"bytes32"},{name:"missingAccountFunds",type:"uint256"}],name:"validateUserOp",outputs:[{name:"validationData",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],Nn=[{inputs:[{name:"implementation_",type:"address"}],stateMutability:"payable",type:"constructor"},{inputs:[],name:"OwnerRequired",type:"error"},{inputs:[{name:"owners",type:"bytes[]"},{name:"nonce",type:"uint256"}],name:"createAccount",outputs:[{name:"account",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[{name:"owners",type:"bytes[]"},{name:"nonce",type:"uint256"}],name:"getAddress",outputs:[{name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"initCodeHash",outputs:[{name:"",type:"bytes32"}],stateMutability:"view",type:"function"}];async function H(e,t){let{publicKeys:n}=m.getState(),r=n[t];if(!r)throw new Error("No public key found for passkey credential.");let s=[Tn({credential:{id:t,publicKey:r}})];return await U({client:e,owners:s})}import{bytesToHex as Bn,hashMessage as Fn}from"viem";import{sign as Gn}from"webauthn-p256";import{bytesToHex as En,hexToBytes as We}from"webauthn-p256";import{concatBytes as Hn,utf8ToBytes as On}from"@noble/curves/abstract/utils";async function q(e){let{authenticatorData:t,challengeIndex:n,clientDataJSON:r,typeIndex:o,userVerificationRequired:s}=e,i=o||r.indexOf('"type"'),a=n||r.indexOf('"challenge"'),l=We(t);if(l.length<37)throw new Error("Invalid authenticatorData");let c=l[32];if((c&1)!==1)throw new Error("Invalid authenticatorData");if(s&&(c&4)!==4)throw new Error("Invalid authenticatorData");if((c&8)!==8&&(c&16)===16)throw new Error("Invalid authenticatorData");let d='"type":"webauthn.get"';if(d!==r.slice(Number(i),d.length+1))throw new Error("Invalid clientDataJSON");if(!r.slice(Number(a)).match(/^"challenge":"(.*?)"/))throw new Error("Invalid clientDataJSON");let f=new Uint8Array(await crypto.subtle.digest("SHA-256",On(r))),h=new Uint8Array(await crypto.subtle.digest("SHA-256",Hn(We(t),f)));return En(h)}import{sign as Dn}from"webauthn-p256";import{parseSignature as Rn,serializePublicKey as Ue}from"webauthn-p256";import{secp256r1 as qe}from"@noble/curves/p256";function le(e){let{r:t,s:n}=Rn(e.signatureHex),r=new qe.Signature(t,n).addRecoveryBit(1).recoverPublicKey(e.messageHash.slice(2)),o=new qe.Signature(t,n).addRecoveryBit(0).recoverPublicKey(e.messageHash.slice(2));return[Ue(r),Ue(o)]}import{hashMessage as zn}from"viem";function Kn([e,t]){return Ln([...le(e),...le(t)])}async function Ve(e){let t=zn(e.signatureHex),{signature:n,webauthn:r,raw:o}=await Dn({credentialId:e.credentialId,hash:t}),s=await q(r),i=Kn([e,{signatureHex:n,messageHash:s}]);if(i)return{publicKey:i,credential:o}}function Ln(e){let t=new Set;for(let n of e){if(t.has(n))return n;t.add(n)}}async function pe(){let e=Bn(crypto.getRandomValues(new Uint8Array(256))),t=Fn(e),{signature:n,webauthn:r,raw:o}=await Gn({hash:t}),s=await(async()=>{let i=m.getState().publicKeys[o.id];if(i)return i;let a=await q(r),l=await Ve({credentialId:o.id,messageHash:a,signatureHex:n});if(!l)throw new Error("recovery failed");if(l.credential.id!==o.id)throw new Error("wrong credential");return m.setState(c=>({publicKeys:{...c.publicKeys,[o.id]:l.publicKey}})),l.publicKey})();return console.log("recovered passkey",o.id,s),m.setState(()=>({activeCredential:o.id})),{id:o.id,publicKey:s,raw:o}}import{createCredential as Wn}from"webauthn-p256";async function Qe(){let e=await Wn({name:"MUD Account"});return console.log("created passkey",e),m.setState(t=>({activeCredential:e.id,publicKeys:{...t.publicKeys,[e.id]:e.publicKey}})),e}import{resourceToHex as Un}from"@latticexyz/common";import{parseAbi as qn}from"viem";import Vn from"@latticexyz/world/mud.config";var V={pollingInterval:250},O=Un({type:"system",namespace:"",name:"unlimited"}),_e=Vn.namespaces.world.tables,ue=qn(["function registerDelegation(address delegatee, bytes32 delegationControlId, bytes initCallData)"]);import{createBundlerClient as Qn}from"viem/account-abstraction";var _n=new Set([31337,17420,17069,690]);function Q({paymasterAddress:e,...t}){let n=t.chain??t.client?.chain;return Qn({...V,paymaster:{getPaymasterData:async()=>({paymaster:e,paymasterData:"0x"})},userOperation:{estimateFeesPerGas:n&&_n.has(n.id)?async()=>({maxFeePerGas:100000n,maxPriorityFeePerGas:0n}):void 0},...t})}import{observer as tr}from"@latticexyz/explorer/observer";A.type="passkey";function A({chainId:e,bundlerTransport:t,paymasterAddress:n,explorerUrl:r}){return Zn(o=>{if(!o.transports)throw new Error("Wagmi must be configured with transports to use the passkey connector.");let s=o.chains.find(c=>c.id===e);if(!s)throw new Error(`Could not find configured chain for chain ID ${e}.`);let i=o.transports[s.id];if(!i)throw new Error(`Could not find configured transport for chain ID ${e}.`);let a=Yn({...V,chain:s,transport:i}),l=m.getState().activeCredential!=null;return{id:"passkey",type:A.type,name:"Passkey",async createPasskey(){let{id:c}=await Qe(),d=await H(a,c);this.onAccountsChanged([d.address]),this.onConnect?.({chainId:Ye(e)})},async reusePasskey(){let{id:c}=await pe(),d=await H(a,c);this.onAccountsChanged([d.address]),this.onConnect?.({chainId:Ye(e)})},hasPasskey(){return Object.keys(m.getState().publicKeys).length>0},async connect(c){if(console.log("connect"),c?.chainId!=null&&c.chainId!==e)throw new Error(`Can't connect to chain ${c.chainId}. Passkey connector is bound to chain ${e}.`);!m.getState().activeCredential&&!c?.isReconnecting&&await pe();let d=await this.getAccounts();return l=d.length>0,{accounts:d,chainId:e}},async disconnect(){console.log("disconnect"),l=!1,m.setState({activeCredential:null})},async getAccounts(){console.log("getAccounts");let c=m.getState().activeCredential;if(!c)return[];try{console.log("getting account for credential",c);let d=await H(a,c);return console.log("got account",d),[d.address]}catch{console.log("could not get address for credential ID",c)}return[]},async getChainId(){return e},async isAuthorized(){return console.log("isAuthorized"),l?(await this.getAccounts()).length>0:!1},async switchChain(c){if(c.chainId!==e)throw new Error(`Can't connect to chain ${c.chainId}. Passkey connector is bound to chain ${e}.`);let d=o.chains.find(u=>u.id===c.chainId);if(!d)throw new jn(new Jn);return d},onAccountsChanged(c){console.log("onAccountsChanged"),c.length>0?o.emitter.emit("change",{accounts:c.map(d=>$n(d))}):this.onDisconnect()},onChainChanged(c){console.log("onChainChanged"),o.emitter.emit("change",{chainId:Number(c)})},async onConnect(c){console.log("onConnect");let d=await this.getAccounts();o.emitter.emit("connect",{accounts:d,chainId:e})},async onDisconnect(c){console.log("onDisconnect"),o.emitter.emit("disconnect"),l=!1},async getClient(c){console.log("passkeyConnector.getClient",c);let d=m.getState().activeCredential;if(!d)throw new Error("Not connected.");let u=await H(a,d);return Q({paymasterAddress:n,transport:t,client:a,account:u}).extend(er()).extend(f=>r?tr({explorerUrl:r})(f):{})},async getProvider(c){return Xn({request:a.transport.request})({retryCount:0})}}})}function Xe(){let t=nr().find(n=>n.type===A.type);if(!t)throw new Error("Could not find passkey connector. Did you configure Wagmi with the EntryKit passkey connector or passkey wallet?");return t}import{twMerge as rr}from"tailwind-merge";import{jsx as me,jsxs as or}from"react/jsx-runtime";function v({className:e,...t}){return or("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 8 8",fill:"currentColor",shapeRendering:"crispEdges",className:rr("-my-[0.125em] h-[1.25em] w-[1.25em]",e),...t,children:[me("path",{d:"M0 0h1v1H0zm0 1h1v1H0zm0 1h1v1H0zm0 1h1v1H0zm0 1h1v1H0zm0 1h1v1H0zm0 1h1v1H0zm0 1h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm2-1h1v1H7zm0 1h1v1H7zM6 7h1v1H6zm1-2h1v1H7zm0-1h1v1H7zm0-1h1v1H7z"}),me("path",{d:"M2 2h1v1H2zm0 1h1v1H2zm0 1h1v1H2zm0 1h1v1H2zm1-3h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm0 1h1v1H5zm0 1h1v1H5zm0 1h1v1H5zM4 5h1v1H4zM3 5h1v1H3z",opacity:".5"}),me("path",{d:"M7 2h1v1H7zm0-1h1v1H7zM1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7z"})]})}function $e(){let{appInfo:e}=p(),t=e?.name??document.title,n=location.host,r=e?.icon??document.querySelector("link[rel~='icon']")?.getAttribute("href")??"/favico.ico",o=e?.image;return{appName:t,appOrigin:n,appIcon:r,appImage:o}}import{useQuery as ar}from"@tanstack/react-query";function _(e){return ar({enabled:!!e,retry:!1,retryOnMount:!1,refetchOnMount:!1,refetchOnWindowFocus:!1,queryKey:[e],queryFn:()=>new Promise((t,n)=>{if(!e)throw new Error("usePreloadImage: Must provide `url` to preload image.");let r=new Image;r.onload=()=>t(r),r.onerror=()=>n(new Error(`usePreloadImage: Could not load image.
|
|
1425
|
+
`;import{useResizeObserver as Jt}from"usehooks-ts";import{mergeRefs as Zt}from"react-merge-refs";import{createContext as Ut,useContext as qt}from"react";import{jsx as Vt}from"react/jsx-runtime";var Ie=Ut(null);function Ne({frame:e,children:t}){if(qt(Ie))throw new Error("`FrameProvider` can only be used once.");return Vt(Ie.Provider,{value:{frame:e},children:t})}import{useMediaQuery as Yt}from"usehooks-ts";import"@rainbow-me/rainbowkit/styles.css";import{createContext as Qt,useContext as Oe}from"react";import{RainbowKitProvider as _t,lightTheme as Te,midnightTheme as Ee}from"@rainbow-me/rainbowkit";import{jsx as He}from"react/jsx-runtime";var le=Qt(null);function Re({config:e,children:t}){if(Oe(le))throw new Error("`EntryKitProvider` can only be used once.");return He(_t,{initialChain:e.chainId,appInfo:{appName:e.appInfo?.name},theme:e.theme==="light"?Te({borderRadius:"none"}):e.theme==="dark"?Ee({borderRadius:"none"}):{lightMode:Te({borderRadius:"none"}),darkMode:Ee({borderRadius:"none"})},children:He(le.Provider,{value:e,children:t})})}function p(){let e=Oe(le);if(!e)throw new Error("`useEntryKitConfig` can only be used within a `EntryKitProvider`.");return e}function De(){let{theme:e}=p(),t=Yt("(prefers-color-scheme: dark)");return e??(t?"dark":"light")}import{jsx as H,jsxs as tn}from"react/jsx-runtime";function en({onSize:e,...t}){let n=Ke(null);return Jt({ref:n,onResize:e}),H("div",{ref:n,...t,style:{...t.style,display:"inline-grid"}})}var G=Xt(function({mode:t,children:n},r){let o=Ke(null),[s,a]=ze(!1),d=s?o.current:null,[l,c]=ze({width:void 0,height:void 0}),i=d?.contentDocument,u=De();jt(()=>{i&&i.body.setAttribute("data-theme",u)},[i,u]);let y=t==="modal"?{all:"unset",display:"block",position:"fixed",inset:"0",width:"100%",height:"100%",zIndex:"2147483646"}:l.width&&l.height?{all:"unset",display:"inline-grid",width:`${l.width}px`,height:`${l.height}px`}:{all:"unset",display:"block",position:"fixed",inset:"0",width:"100%",height:"100%",opacity:0,pointerEvents:"none"};return H("iframe",{ref:Zt([r,o]),style:y,onLoad:()=>a(!0),srcDoc:"<!doctype html><title>\u2026</title>",children:i?$t.createPortal(tn(Ne,{frame:d,children:[H("div",{children:t==="modal"?n:H(en,{onSize:c,children:n})}),H("style",{dangerouslySetInnerHTML:{__html:Me}})]}),i.body):null})});import{twMerge as Le}from"tailwind-merge";import{jsx as P,jsxs as an}from"react/jsx-runtime";function Be({open:e,onOpenChange:t,children:n}){return P(nn,{open:e,onOpenChange:t,children:P(rn,{children:an(G,{mode:"modal",children:[P("div",{className:Le("fixed inset-0","bg-neutral-800/85","animate-in animate-duration-300 fade-in")}),P("div",{className:Le("fixed inset-0","grid items-end sm:items-center","animate-in animate-duration-300 fade-in slide-in-from-bottom-16"),children:P("div",{children:P(on,{className:"outline-none w-full max-w-[26rem] mx-auto","aria-describedby":void 0,onOpenAutoFocus:r=>{r.preventDefault()},children:n})})})]})})})}import{useCallback as pe,useMemo as sn}from"react";import{useStore as cn}from"zustand";import{createStore as dn}from"zustand/vanilla";var W=dn(()=>({open:!1}));function h(){let e=cn(W,o=>o.open),t=pe(()=>{W.setState({open:!0})},[]),n=pe(()=>{W.setState({open:!1})},[]),r=pe(o=>{W.setState({open:o})},[]);return sn(()=>({accountModalOpen:e,openAccountModal:t,closeAccountModal:n,toggleAccountModal:r}),[e,t,n,r])}import{twMerge as Tt}from"tailwind-merge";import{useAccount as co,useConnectorClient as lo}from"wagmi";import{useAccount as cr}from"wagmi";import{twMerge as U}from"tailwind-merge";import{twMerge as ln}from"tailwind-merge";import{jsx as Fe,jsxs as pn}from"react/jsx-runtime";function C({className:e,...t}){return pn("svg",{className:ln("-my-[0.125em] h-[1.25em] w-[1.25em] animate-spin",e),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",...t,children:[Fe("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),Fe("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}import{jsx as O,jsxs as mn}from"react/jsx-runtime";var un=({variant:e="primary"}={})=>U("group self-center leading-none outline-none border-4 border-transparent","transition hover:brightness-125 active:brightness-150","focus:border-orange-500","aria-disabled:pointer-events-none aria-busy:pointer-events-none","aria-disabled:opacity-50","p-[.75em] font-medium",{primary:U("bg-neutral-700 text-white"),secondary:U("bg-neutral-800 text-white")}[e]),w=({pending:e,variant:t,type:n,className:r,children:o,disabled:s,...a})=>O("button",{type:n||"button",className:U(un({variant:t,pending:e}),r),"aria-busy":e,"aria-disabled":s,disabled:s||e,...a,children:mn("span",{className:"grid grid-cols-[1fr_auto_1fr] gap-2",children:[O("span",{className:"flex items-center justify-end text-[.75em]",children:O("span",{className:"transition opacity-0 translate-x-2 group-aria-busy:opacity-100 group-aria-busy:translate-x-0 duration-100 group-aria-busy:duration-300",children:O(C,{})})}),O("span",{children:o})]})});import{useConnectModal as dr}from"@rainbow-me/rainbowkit";import{useMutation as et}from"@tanstack/react-query";import{useConnectors as rr}from"wagmi";import{createClient as Xn,custom as jn,getAddress as $n,numberToHex as je,SwitchChainError as Jn}from"viem";import{ChainNotConfiguredError as Zn,createConnector as er}from"wagmi";import{createStore as fn}from"zustand/vanilla";import{persist as yn}from"zustand/middleware";var f=fn(yn(()=>({publicKeys:{},addresses:{},activeCredential:null}),{name:"mud:passkey:cache"}));function gn(e){e.key===f.persist.getOptions().name&&f.persist.rehydrate()}window.addEventListener("storage",gn);import{smartAccountActions as tr}from"permissionless/clients";import{toWebAuthnAccount as En}from"viem/account-abstraction";import{BaseError as hn}from"abitype";import{pad as wn,encodeFunctionData as ue,hashMessage as bn,hashTypedData as We,encodeAbiParameters as Ue,stringToHex as xn,size as vn,encodePacked as Cn,parseSignature as An}from"viem";import{entryPoint07Abi as kn,entryPoint07Address as Sn,getUserOperationHash as Pn,toSmartAccount as Mn}from"viem/account-abstraction";import{readContract as Ge}from"viem/actions";import{parseSignature as In}from"webauthn-p256";async function Q(e){let{client:t,owners:n,nonce:r=0n}=e,o=e.address,s={abi:kn,address:Sn,version:"0.7"},a={abi:Tn,address:"0x356336adA1619BeC1Ae4E6D94Dd9c0490DA414a8"};if(!n.length)throw new Error("`owners` must have at least one account.");function d(i){return i.type==="webAuthn"?i.publicKey:wn(i.address)}let l=e.signer??n[0],c=n.indexOf(l);if(c===-1)throw new Error("`signer` must be one of `owners`.");return Mn({client:t,entryPoint:s,extend:{__isCoinbaseSmartAccount:!0,abi:V,factory:a,signer:l},async encodeCalls(i){return i.length===1?ue({abi:V,functionName:"execute",args:[i[0].to,i[0].value??0n,i[0].data??"0x"]}):ue({abi:V,functionName:"executeBatch",args:[i.map(u=>({data:u.data??"0x",target:u.to,value:u.value??0n}))]})},async getAddress(){return o??=await Ge(t,{...a,functionName:"getAddress",args:[n.map(d),r]}),o},async getFactoryArgs(){let i=ue({abi:a.abi,functionName:"createAccount",args:[n.map(d),r]});return{factory:a.address,factoryData:i}},async getStubSignature(){return l.type==="webAuthn"?"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000001949fc7c88032b9fcb5f6efc7a7b8c63668eae9871b765e23123bb473ff57aa831a7c0d9276168ebcc29f2875a0239cffdf2a9cd1c2007c5c77c071db9264df1d000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97630500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008a7b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a2273496a396e6164474850596759334b7156384f7a4a666c726275504b474f716d59576f4d57516869467773222c226f726967696e223a2268747470733a2f2f7369676e2e636f696e626173652e636f6d222c2263726f73734f726967696e223a66616c73657d00000000000000000000000000000000000000000000":R({signature:"0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c",ownerIndex:c})},async sign(i){let u=await this.getAddress(),y=me({address:u,chainId:t.chain.id,hash:i.hash}),g=await q({hash:y,owner:l});return R({signature:g,ownerIndex:c})},async signMessage(i){let{message:u}=i,y=await this.getAddress(),g=me({address:y,chainId:t.chain.id,hash:bn(u)}),b=await q({hash:g,owner:l});return R({signature:b,ownerIndex:c})},async signTypedData(i){let{domain:u,types:y,primaryType:g,message:b}=i,S=await this.getAddress(),m=me({address:S,chainId:t.chain.id,hash:We({domain:u,message:b,primaryType:g,types:y})}),ce=await q({hash:m,owner:l});return R({signature:ce,ownerIndex:c})},async signUserOperation(i){let{chainId:u=t.chain.id,...y}=i,g=await this.getAddress(),b=Pn({chainId:u,entryPointAddress:s.address,entryPointVersion:s.version,userOperation:{...y,sender:g}}),S=await q({hash:b,owner:l});return R({signature:S,ownerIndex:c})},userOperation:{async estimateGas(i){if(l.type==="webAuthn")return{verificationGasLimit:BigInt(Math.max(Number(i.verificationGasLimit??0n),8e5))}}},async isOwner(i){return await Ge(t,{abi:V,address:await this.getAddress(),functionName:"isOwnerBytes",args:[d(i)]})}})}async function q({hash:e,owner:t}){if(t.type==="webAuthn"){let{signature:n,webauthn:r}=await t.sign({hash:e});return Nn({signature:n,webauthn:r})}if(t.sign)return t.sign({hash:e});throw new hn("`owner` does not support raw sign.")}function me({address:e,chainId:t,hash:n}){return We({domain:{chainId:t,name:"Coinbase Smart Wallet",verifyingContract:e,version:"1"},types:{CoinbaseSmartWalletMessage:[{name:"hash",type:"bytes32"}]},primaryType:"CoinbaseSmartWalletMessage",message:{hash:n}})}function Nn({webauthn:e,signature:t}){let{r:n,s:r}=In(t);return Ue([{components:[{name:"authenticatorData",type:"bytes"},{name:"clientDataJSON",type:"bytes"},{name:"challengeIndex",type:"uint256"},{name:"typeIndex",type:"uint256"},{name:"r",type:"uint256"},{name:"s",type:"uint256"}],type:"tuple"}],[{authenticatorData:e.authenticatorData,clientDataJSON:xn(e.clientDataJSON),challengeIndex:BigInt(e.challengeIndex),typeIndex:BigInt(e.typeIndex),r:n,s:r}])}function R(e){let{ownerIndex:t}=e,n=(()=>{if(vn(e.signature)!==65)return e.signature;let r=An(e.signature);return Cn(["bytes32","bytes32","uint8"],[r.r,r.s,r.yParity===0?27:28])})();return Ue([{components:[{name:"ownerIndex",type:"uint8"},{name:"signatureData",type:"bytes"}],type:"tuple"}],[{ownerIndex:t,signatureData:n}])}var V=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"owner",type:"bytes"}],name:"AlreadyOwner",type:"error"},{inputs:[],name:"Initialized",type:"error"},{inputs:[{name:"owner",type:"bytes"}],name:"InvalidEthereumAddressOwner",type:"error"},{inputs:[{name:"key",type:"uint256"}],name:"InvalidNonceKey",type:"error"},{inputs:[{name:"owner",type:"bytes"}],name:"InvalidOwnerBytesLength",type:"error"},{inputs:[],name:"LastOwner",type:"error"},{inputs:[{name:"index",type:"uint256"}],name:"NoOwnerAtIndex",type:"error"},{inputs:[{name:"ownersRemaining",type:"uint256"}],name:"NotLastOwner",type:"error"},{inputs:[{name:"selector",type:"bytes4"}],name:"SelectorNotAllowed",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnauthorizedCallContext",type:"error"},{inputs:[],name:"UpgradeFailed",type:"error"},{inputs:[{name:"index",type:"uint256"},{name:"expectedOwner",type:"bytes"},{name:"actualOwner",type:"bytes"}],name:"WrongOwnerAtIndex",type:"error"},{anonymous:!1,inputs:[{indexed:!0,name:"index",type:"uint256"},{indexed:!1,name:"owner",type:"bytes"}],name:"AddOwner",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"index",type:"uint256"},{indexed:!1,name:"owner",type:"bytes"}],name:"RemoveOwner",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"REPLAYABLE_NONCE_KEY",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{name:"owner",type:"address"}],name:"addOwnerAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"x",type:"bytes32"},{name:"y",type:"bytes32"}],name:"addOwnerPublicKey",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"functionSelector",type:"bytes4"}],name:"canSkipChainIdValidation",outputs:[{name:"",type:"bool"}],stateMutability:"pure",type:"function"},{inputs:[],name:"domainSeparator",outputs:[{name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"entryPoint",outputs:[{name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{name:"target",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"}],name:"execute",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{name:"target",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"executeBatch",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{name:"calls",type:"bytes[]"}],name:"executeWithoutChainIdValidation",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{name:"sender",type:"address"},{name:"nonce",type:"uint256"},{name:"initCode",type:"bytes"},{name:"callData",type:"bytes"},{name:"callGasLimit",type:"uint256"},{name:"verificationGasLimit",type:"uint256"},{name:"preVerificationGas",type:"uint256"},{name:"maxFeePerGas",type:"uint256"},{name:"maxPriorityFeePerGas",type:"uint256"},{name:"paymasterAndData",type:"bytes"},{name:"signature",type:"bytes"}],name:"userOp",type:"tuple"}],name:"getUserOpHashWithoutChainId",outputs:[{name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{name:"$",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{name:"owners",type:"bytes[]"}],name:"initialize",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{name:"account",type:"address"}],name:"isOwnerAddress",outputs:[{name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{name:"account",type:"bytes"}],name:"isOwnerBytes",outputs:[{name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{name:"x",type:"bytes32"},{name:"y",type:"bytes32"}],name:"isOwnerPublicKey",outputs:[{name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],name:"isValidSignature",outputs:[{name:"result",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextOwnerIndex",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{name:"index",type:"uint256"}],name:"ownerAtIndex",outputs:[{name:"",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[],name:"ownerCount",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{name:"index",type:"uint256"},{name:"owner",type:"bytes"}],name:"removeLastOwner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"index",type:"uint256"},{name:"owner",type:"bytes"}],name:"removeOwnerAtIndex",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"removedOwnersCount",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{name:"hash",type:"bytes32"}],name:"replaySafeHash",outputs:[{name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{name:"newImplementation",type:"address"},{name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{name:"sender",type:"address"},{name:"nonce",type:"uint256"},{name:"initCode",type:"bytes"},{name:"callData",type:"bytes"},{name:"callGasLimit",type:"uint256"},{name:"verificationGasLimit",type:"uint256"},{name:"preVerificationGas",type:"uint256"},{name:"maxFeePerGas",type:"uint256"},{name:"maxPriorityFeePerGas",type:"uint256"},{name:"paymasterAndData",type:"bytes"},{name:"signature",type:"bytes"}],name:"userOp",type:"tuple"},{name:"userOpHash",type:"bytes32"},{name:"missingAccountFunds",type:"uint256"}],name:"validateUserOp",outputs:[{name:"validationData",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],Tn=[{inputs:[{name:"implementation_",type:"address"}],stateMutability:"payable",type:"constructor"},{inputs:[],name:"OwnerRequired",type:"error"},{inputs:[{name:"owners",type:"bytes[]"},{name:"nonce",type:"uint256"}],name:"createAccount",outputs:[{name:"account",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[{name:"owners",type:"bytes[]"},{name:"nonce",type:"uint256"}],name:"getAddress",outputs:[{name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"initCodeHash",outputs:[{name:"",type:"bytes32"}],stateMutability:"view",type:"function"}];async function D(e,t){let{publicKeys:n}=f.getState(),r=n[t];if(!r)throw new Error("No public key found for passkey credential.");let s=[En({credential:{id:t,publicKey:r}})];return await Q({client:e,owners:s})}import{bytesToHex as Fn,hashMessage as Gn}from"viem";import{sign as Wn}from"webauthn-p256";import{bytesToHex as Hn,hexToBytes as qe}from"webauthn-p256";import{concatBytes as On,utf8ToBytes as Rn}from"@noble/curves/abstract/utils";async function _(e){let{authenticatorData:t,challengeIndex:n,clientDataJSON:r,typeIndex:o,userVerificationRequired:s}=e,a=o||r.indexOf('"type"'),d=n||r.indexOf('"challenge"'),l=qe(t);if(l.length<37)throw new Error("Invalid authenticatorData");let c=l[32];if((c&1)!==1)throw new Error("Invalid authenticatorData");if(s&&(c&4)!==4)throw new Error("Invalid authenticatorData");if((c&8)!==8&&(c&16)===16)throw new Error("Invalid authenticatorData");let i='"type":"webauthn.get"';if(i!==r.slice(Number(a),i.length+1))throw new Error("Invalid clientDataJSON");if(!r.slice(Number(d)).match(/^"challenge":"(.*?)"/))throw new Error("Invalid clientDataJSON");let y=new Uint8Array(await crypto.subtle.digest("SHA-256",Rn(r))),g=new Uint8Array(await crypto.subtle.digest("SHA-256",On(qe(t),y)));return Hn(g)}import{sign as zn}from"webauthn-p256";import{parseSignature as Dn,serializePublicKey as Ve}from"webauthn-p256";import{secp256r1 as Qe}from"@noble/curves/p256";function fe(e){let{r:t,s:n}=Dn(e.signatureHex),r=new Qe.Signature(t,n).addRecoveryBit(1).recoverPublicKey(e.messageHash.slice(2)),o=new Qe.Signature(t,n).addRecoveryBit(0).recoverPublicKey(e.messageHash.slice(2));return[Ve(r),Ve(o)]}import{hashMessage as Kn}from"viem";function Ln([e,t]){return Bn([...fe(e),...fe(t)])}async function _e(e){let t=Kn(e.signatureHex),{signature:n,webauthn:r,raw:o}=await zn({credentialId:e.credentialId,hash:t}),s=await _(r),a=Ln([e,{signatureHex:n,messageHash:s}]);if(a)return{publicKey:a,credential:o}}function Bn(e){let t=new Set;for(let n of e){if(t.has(n))return n;t.add(n)}}async function ye(){let e=Fn(crypto.getRandomValues(new Uint8Array(256))),t=Gn(e),{signature:n,webauthn:r,raw:o}=await Wn({hash:t}),s=await(async()=>{let a=f.getState().publicKeys[o.id];if(a)return a;let d=await _(r),l=await _e({credentialId:o.id,messageHash:d,signatureHex:n});if(!l)throw new Error("recovery failed");if(l.credential.id!==o.id)throw new Error("wrong credential");return f.setState(c=>({publicKeys:{...c.publicKeys,[o.id]:l.publicKey}})),l.publicKey})();return console.log("recovered passkey",o.id,s),f.setState(()=>({activeCredential:o.id})),{id:o.id,publicKey:s,raw:o}}import{createCredential as Un}from"webauthn-p256";async function Ye(){let e=await Un({name:"MUD Account"});return console.log("created passkey",e),f.setState(t=>({activeCredential:e.id,publicKeys:{...t.publicKeys,[e.id]:e.publicKey}})),e}import{resourceToHex as qn}from"@latticexyz/common";import{parseAbi as Vn}from"viem";import Qn from"@latticexyz/world/mud.config";var Y={pollingInterval:250},z=qn({type:"system",namespace:"",name:"unlimited"}),Xe=Qn.namespaces.world.tables,ge=Vn(["function registerDelegation(address delegatee, bytes32 delegationControlId, bytes initCallData)"]);import{createBundlerClient as _n}from"viem/account-abstraction";var Yn=new Set([31337,17420,17069,690]);function X({paymasterAddress:e,...t}){let n=t.chain??t.client?.chain;return _n({...Y,paymaster:{getPaymasterData:async()=>({paymaster:e,paymasterData:"0x"})},userOperation:{estimateFeesPerGas:n&&Yn.has(n.id)?async()=>({maxFeePerGas:100000n,maxPriorityFeePerGas:0n}):void 0},...t})}import{observer as nr}from"@latticexyz/explorer/observer";M.type="passkey";function M({chainId:e,bundlerTransport:t,paymasterAddress:n,explorerUrl:r}){return er(o=>{if(!o.transports)throw new Error("Wagmi must be configured with transports to use the passkey connector.");let s=o.chains.find(c=>c.id===e);if(!s)throw new Error(`Could not find configured chain for chain ID ${e}.`);let a=o.transports[s.id];if(!a)throw new Error(`Could not find configured transport for chain ID ${e}.`);let d=Xn({...Y,chain:s,transport:a}),l=f.getState().activeCredential!=null;return{id:"passkey",type:M.type,name:"Passkey",async createPasskey(){let{id:c}=await Ye(),i=await D(d,c);this.onAccountsChanged([i.address]),this.onConnect?.({chainId:je(e)})},async reusePasskey(){let{id:c}=await ye(),i=await D(d,c);this.onAccountsChanged([i.address]),this.onConnect?.({chainId:je(e)})},hasPasskey(){return Object.keys(f.getState().publicKeys).length>0},async connect(c){if(console.log("connect"),c?.chainId!=null&&c.chainId!==e)throw new Error(`Can't connect to chain ${c.chainId}. Passkey connector is bound to chain ${e}.`);!f.getState().activeCredential&&!c?.isReconnecting&&await ye();let i=await this.getAccounts();return l=i.length>0,{accounts:i,chainId:e}},async disconnect(){console.log("disconnect"),l=!1,f.setState({activeCredential:null})},async getAccounts(){console.log("getAccounts");let c=f.getState().activeCredential;if(!c)return[];try{console.log("getting account for credential",c);let i=await D(d,c);return console.log("got account",i),[i.address]}catch{console.log("could not get address for credential ID",c)}return[]},async getChainId(){return e},async isAuthorized(){return console.log("isAuthorized"),l?(await this.getAccounts()).length>0:!1},async switchChain(c){if(c.chainId!==e)throw new Error(`Can't connect to chain ${c.chainId}. Passkey connector is bound to chain ${e}.`);let i=o.chains.find(u=>u.id===c.chainId);if(!i)throw new Jn(new Zn);return i},onAccountsChanged(c){console.log("onAccountsChanged"),c.length>0?o.emitter.emit("change",{accounts:c.map(i=>$n(i))}):this.onDisconnect()},onChainChanged(c){console.log("onChainChanged"),o.emitter.emit("change",{chainId:Number(c)})},async onConnect(c){console.log("onConnect");let i=await this.getAccounts();o.emitter.emit("connect",{accounts:i,chainId:e})},async onDisconnect(c){console.log("onDisconnect"),o.emitter.emit("disconnect"),l=!1},async getClient(c){console.log("passkeyConnector.getClient",c);let i=f.getState().activeCredential;if(!i)throw new Error("Not connected.");let u=await D(d,i);return X({paymasterAddress:n,transport:t,client:d,account:u}).extend(tr()).extend(y=>r?nr({explorerUrl:r})(y):{})},async getProvider(c){return jn({request:d.transport.request})({retryCount:0})}}})}function $e(){let t=rr().find(n=>n.type===M.type);if(!t)throw new Error("Could not find passkey connector. Did you configure Wagmi with the EntryKit passkey connector or passkey wallet?");return t}import{twMerge as or}from"tailwind-merge";import{jsx as he,jsxs as ar}from"react/jsx-runtime";function A({className:e,...t}){return ar("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 8 8",fill:"currentColor",shapeRendering:"crispEdges",className:or("-my-[0.125em] h-[1.25em] w-[1.25em]",e),...t,children:[he("path",{d:"M0 0h1v1H0zm0 1h1v1H0zm0 1h1v1H0zm0 1h1v1H0zm0 1h1v1H0zm0 1h1v1H0zm0 1h1v1H0zm0 1h1v1H0zm1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm2-1h1v1H7zm0 1h1v1H7zM6 7h1v1H6zm1-2h1v1H7zm0-1h1v1H7zm0-1h1v1H7z"}),he("path",{d:"M2 2h1v1H2zm0 1h1v1H2zm0 1h1v1H2zm0 1h1v1H2zm1-3h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm0 1h1v1H5zm0 1h1v1H5zm0 1h1v1H5zM4 5h1v1H4zM3 5h1v1H3z",opacity:".5"}),he("path",{d:"M7 2h1v1H7zm0-1h1v1H7zM1 0h1v1H1zm1 0h1v1H2zm1 0h1v1H3zm1 0h1v1H4zm1 0h1v1H5zm1 0h1v1H6zm1 0h1v1H7z"})]})}function Je(){let{appInfo:e}=p(),t=e?.name??document.title,n=location.host,r=e?.icon??document.querySelector("link[rel~='icon']")?.getAttribute("href")??"/favico.ico",o=e?.image;return{appName:t,appOrigin:n,appIcon:r,appImage:o}}import{useQuery as ir}from"@tanstack/react-query";function j(e){return ir({enabled:!!e,retry:!1,retryOnMount:!1,refetchOnMount:!1,refetchOnWindowFocus:!1,queryKey:[e],queryFn:()=>new Promise((t,n)=>{if(!e)throw new Error("usePreloadImage: Must provide `url` to preload image.");let r=new Image;r.onload=()=>t(r),r.onerror=()=>n(new Error(`usePreloadImage: Could not load image.
|
|
1426
1426
|
|
|
1427
|
-
URL: ${e}`)),r.src=e})})}import{jsx as Y,jsxs as ir}from"react/jsx-runtime";function je(){let{appName:e,appIcon:t}=$e(),{data:n,isLoading:r}=_(t);return ir("div",{className:"flex-grow flex flex-col items-center justify-center gap-2",children:[Y("div",{className:"w-16 h-16 m-2",children:r?null:n?Y("img",{src:t,className:"w-full h-full object-cover"}):Y(v,{className:"w-full h-full text-orange-500 dark:bg-neutral-800"})}),Y("div",{className:"text-2xl text-white text-center",children:e})]})}import{twMerge as dr}from"tailwind-merge";import{jsx as R,jsxs as Ze}from"react/jsx-runtime";function et(){let e=sr(),{accountModalOpen:t}=y(),{openConnectModal:n,connectModalOpen:r}=cr(),o=Xe(),s=Je({onError:c=>console.error(c),mutationKey:["createPasskey",o.id,t,r,e.status],mutationFn:()=>o.createPasskey()}),i=Je({onError:c=>console.error(c),mutationKey:["reusePasskey",o.id,t,r,e.status],mutationFn:()=>o.reusePasskey()}),a=o.hasPasskey(),l=[R(g,{variant:a?"secondary":"primary",className:"self-auto flex justify-center",pending:s.status==="pending",onClick:()=>s.mutate(),autoFocus:!a,children:"Create account"},"create"),R(g,{variant:a?"primary":"secondary",className:"self-auto flex justify-center",pending:i.status==="pending",onClick:()=>i.mutate(),autoFocus:a,children:"Sign in"},"signin")];return a&&l.reverse(),Ze("div",{className:dr("flex flex-col gap-6 p-6","animate-in animate-duration-300 fade-in slide-in-from-bottom-8"),children:[R("div",{className:"p-4",children:R(je,{})}),Ze("div",{className:"self-center flex flex-col gap-2 w-60",children:[l,R("button",{className:"text-sm self-center transition text-neutral-500 hover:text-white p-2",disabled:e.status==="connecting",onClick:n,children:"Already have a wallet?"})]})]})}import{useState as no}from"react";import{useMemo as to}from"react";import{useDisconnect as ur}from"wagmi";import{useQuery as lr}from"@tanstack/react-query";function X(e){let t=e?.toLowerCase();return lr({enabled:!!t,queryKey:["ens",t],initialData:{address:void 0,name:void 0,displayName:void 0,avatar:void 0},queryFn:async()=>{let n=await fetch(`https://api.ensideas.com/ens/resolve/${t}`).then(r=>r.json());return{address:n.address??void 0,name:n.name??void 0,displayName:n.displayName??void 0,avatar:n.avatar??void 0}}})}import{jsx as fe,jsxs as pr}from"react/jsx-runtime";function $({hex:e}){return e.length<=10?fe("span",{title:e,children:e}):pr("span",{title:e,children:[fe("span",{className:"after:select-none after:content-['\u2026']",children:e.slice(0,6)}),fe("span",{className:"tracking-[-1ch] text-transparent",children:e.slice(6,-4)}),e.slice(-4)]})}import{jsx as D,jsxs as ye}from"react/jsx-runtime";function tt({isActive:e,isExpanded:t,userAddress:n}){let{data:r}=X(n),{disconnect:o,isPending:s}=ur(),{closeAccountModal:i}=y();return ye("div",{className:"flex flex-col gap-4",children:[ye("div",{className:"flex justify-between gap-4",children:[ye("div",{children:[D("div",{children:"Account"}),D("div",{className:"font-mono text-white",children:r.name??D($,{hex:n})})]}),D(g,{variant:e?"primary":"secondary",className:"flex-shrink-0 text-sm p-1 w-28",pending:s,onClick:()=>{i(),o()},children:"Sign out"})]}),t?D("p",{className:"text-sm",children:"Each of your onchain actions in this app is associated with your account."}):null]})}import{useClient as kr}from"wagmi";import{queryOptions as Ar,useQuery as Sr}from"@tanstack/react-query";import{defineStore as mr}from"@latticexyz/store";import{parseAbi as fr}from"viem";var ge=fr(["error SpenderSystem_AlreadyRegistered(address spender, address user)","error SpenderSystem_HasOwnBalance(address spender)","function registerSpender(address spender)"]),yr=mr({namespaces:{root:{namespace:"",tables:{Allowance:{schema:{user:"address",allowance:"uint256"},key:["user"]},Grantor:{schema:{grantor:"address",allowance:"uint256"},key:["grantor"]},PassHolder:{schema:{user:"address",passId:"bytes32",lastRenewed:"uint256",lastClaimed:"uint256"},key:["user","passId"]},PassConfig:{schema:{passId:"bytes32",claimAmount:"uint256",claimInterval:"uint256",validityPeriod:"uint256",grantor:"address"},key:["passId"]},Spender:{schema:{spender:"address",user:"address"},key:["spender"]},SystemConfig:{schema:{entryPoint:"address"},key:[]}}}}}),j=yr.namespaces.root.tables;import{decodeValueArgs as gr,getKeyTuple as hr,getSchemaTypes as wr,getValueSchema as br}from"@latticexyz/protocol-parser/internal";import{readContract as xr}from"viem/actions";import{getAction as vr}from"viem/utils";async function S(e,{address:t,table:n,key:r,blockTag:o}){let[s,i,a]=await vr(e,xr,"readContract")({address:t,abi:Cr,functionName:"getRecord",args:[n.tableId,hr(n,r)],blockTag:o});return{...r,...gr(wr(br(n)),{staticData:s,encodedLengths:i,dynamicData:a})}}var Cr=[{type:"function",name:"getRecord",inputs:[{name:"tableId",type:"bytes32",internalType:"ResourceId"},{name:"keyTuple",type:"bytes32[]",internalType:"bytes32[]"}],outputs:[{name:"staticData",type:"bytes",internalType:"bytes"},{name:"encodedLengths",type:"bytes32",internalType:"EncodedLengths"},{name:"dynamicData",type:"bytes",internalType:"bytes"}],stateMutability:"view"}];async function nt({client:e,paymasterAddress:t,userAddress:n}){return(await S(e,{address:t,table:j.Allowance,key:{user:n}})).allowance}function he({client:e,paymasterAddress:t,userAddress:n}){let r=["getAllowance",e?.chain.id,t,n];return Ar(e&&n?{queryKey:r,queryFn:()=>nt({client:e,paymasterAddress:t,userAddress:n})}:{queryKey:r,enabled:!1})}function rt(e){let{chainId:t,paymasterAddress:n}=p(),r=kr({chainId:t});return Sr(he({client:r,paymasterAddress:n,userAddress:e}))}import{useMutation as Pr,useQueryClient as Mr}from"@tanstack/react-query";function ot(){let e=Mr(),{passIssuerTransport:t}=p();return Pr({onError:n=>console.error(n),mutationKey:["claimGasPass"],mutationFn:async n=>{let r=t({retryCount:0});await r.request({method:"quarry_issuePass",params:["0x01",n]}),await r.request({method:"quarry_claimAllowance",params:["0x01",n]}),await Promise.all([e.invalidateQueries({queryKey:["getAllowance"]}),e.invalidateQueries({queryKey:["getPrerequisites"]})])},retry:0})}import{twMerge as Ir}from"tailwind-merge";import{jsx as J,jsxs as Nr}from"react/jsx-runtime";function at({className:e,...t}){return Nr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 263 428",fill:"currentColor",className:Ir("w-[0.6em] h-[1em]",e),...t,children:[J("path",{d:"M132 321V428L263 243L132 321Z"}),J("path",{d:"M0 243L132 321V428",fillOpacity:"0.5"}),J("path",{d:"M132 0V296L263 218"}),J("path",{d:"M0 218L132 296V0L0 218Z",fillOpacity:"0.5"})]})}import{formatEther as Tr}from"viem";function it(e){let t=Tr(e),n=Math.floor(parseFloat(t)).toString().length;return parseFloat(t).toLocaleString("en-US",{maximumFractionDigits:Math.max(0,6-n)})}import{jsx as Er,jsxs as Hr}from"react/jsx-runtime";function st({wei:e}){return Hr("span",{className:"inline-flex items-center gap-1",children:[it(e)," ",Er(at,{})]})}import{useEffect as Rr}from"react";import{parseEther as Or}from"viem";var Z=Or("0.01");import{jsx as P,jsxs as we}from"react/jsx-runtime";function ct({isActive:e,isExpanded:t,userAddress:n}){let r=rt(n),o=ot();return Rr(()=>{e&&o.status==="idle"&&r.isSuccess&&r.data<Z&&o.mutate(n)},[r.data,r.isSuccess,o,e,n]),we("div",{className:"flex flex-col gap-4",children:[we("div",{className:"flex justify-between gap-4",children:[we("div",{children:[P("div",{children:"Allowance"}),P("div",{className:"font-mono text-white",children:r.data!=null?P(st,{wei:r.data}):P(x,{className:"text-sm"})})]}),P(g,{variant:e?"primary":"secondary",className:"flex-shrink-0 text-sm p-1 w-28",pending:o.status==="pending",onClick:()=>o.mutate(n),children:"Top up"})]}),t?P("p",{className:"text-sm",children:"Your allowance is used to pay for onchain computation."}):null]})}import{useMutation as Dr,useQueryClient as zr}from"@tanstack/react-query";import{getAction as ee}from"viem/utils";import{sendUserOperation as Kr,waitForUserOperationReceipt as Lr}from"viem/account-abstraction";import{writeContract as dt}from"viem/actions";function lt(){let{worldAddress:e,paymasterAddress:t}=p(),n=zr();return Dr({onError:r=>console.error(r),mutationKey:["setupSession"],mutationFn:async({userClient:r,sessionAddress:o,registerSpender:s,registerDelegation:i})=>{r.account.type!=="smart"&&(await ee(r,dt,"writeContract")({chain:r.chain,account:r.account,address:t,abi:ge,functionName:"registerSpender",args:[o]}),await ee(r,dt,"writeContract")({chain:r.chain,account:r.account,address:e,abi:ue,functionName:"registerDelegation",args:[o,O,"0x"]}));let a=[];if(s&&(console.log("registering spender"),a.push({to:t,abi:ge,functionName:"registerSpender",args:[o]})),i&&(console.log("registering delegation"),a.push({to:e,abi:ue,functionName:"registerDelegation",args:[o,O,"0x"]})),!a.length)return;console.log("setting up account with",a);let l=await ee(r,Kr,"sendUserOperation")({calls:a});console.log("got user op hash",l);let c=await ee(r,Lr,"waitForUserOperationReceipt")({hash:l});console.log("got user op receipt",c),c.success&&await Promise.all([n.invalidateQueries({queryKey:["getSpender"]}),n.invalidateQueries({queryKey:["getDelegation"]}),n.invalidateQueries({queryKey:["getPrerequisites"]})])}})}import{useEffect as _r}from"react";import{useClient as qr}from"wagmi";import{queryOptions as Vr,useQuery as Qr}from"@tanstack/react-query";import{createStore as Br}from"zustand/vanilla";import{persist as Fr}from"zustand/middleware";var z=Br(Fr(()=>({signers:{}}),{name:"mud:entrykit",partialize:({signers:e})=>({signers:e})}));function Gr(e){e.key===z.persist.getOptions().name&&z.persist.rehydrate()}window.addEventListener("storage",Gr);import{generatePrivateKey as Wr,privateKeyToAccount as Ur}from"viem/accounts";function pt(e){let t=z.getState().signers[e]??(()=>{let n=Wr();return z.setState(r=>({signers:{...r.signers,[e]:n}})),n})();return Ur(t)}async function ut({client:e,userAddress:t}){let n=pt(t);return await U({client:e,owners:[n]})}function be({client:e,userAddress:t}){let n=["getSessionAccount",e?.chain.id,t];return Vr(e&&t?{queryKey:n,queryFn:()=>ut({client:e,userAddress:t}),staleTime:1/0}:{queryKey:n,enabled:!1})}function te(e){let{chainId:t}=p(),n=qr({chainId:t});return Qr(be({userAddress:e,client:n}))}import{jsx as K,jsxs as xe}from"react/jsx-runtime";function mt({isActive:e,isExpanded:t,userClient:n,registerSpender:r,registerDelegation:o}){let{closeAccountModal:s}=y(),a=te(n.account.address).data?.address,l=lt(),c=!o&&!o;return _r(()=>{e&&l.status==="idle"&&a&&!c&&l.mutate({userClient:n,sessionAddress:a,registerSpender:r,registerDelegation:o},{onSuccess:s})},[s,e,c,o,r,a,l,n]),xe("div",{className:"flex flex-col gap-4",children:[xe("div",{className:"flex justify-between gap-4",children:[xe("div",{children:[K("div",{children:"Session"}),K("div",{className:"font-mono text-white",children:c?"Enabled":"Set up"})]}),c?K(g,{variant:e?"primary":"secondary",className:"flex-shrink-0 text-sm p-1 w-28",disabled:!0,children:"Disable"}):K(g,{variant:e?"primary":"secondary",className:"flex-shrink-0 text-sm p-1 w-28",pending:!a||l.status==="pending",onClick:a?()=>l.mutate({userClient:n,sessionAddress:a,registerSpender:r,registerDelegation:o},{onSuccess:s}):void 0,children:"Enable"})]}),t?K("p",{className:"text-sm",children:"You can perform actions in this app without interruptions for approvals."}):null]})}import{useClient as cd}from"wagmi";import{queryOptions as Yr,useQuery as ld}from"@tanstack/react-query";async function ft({client:e,paymasterAddress:t,userAddress:n,sessionAddress:r}){return(await S(e,{address:t,table:j.Spender,key:{spender:r}})).user.toLowerCase()===n.toLowerCase()}function yt({client:e,paymasterAddress:t,userAddress:n,sessionAddress:r}){let o=["getSpender",e?.chain.id,t,n,r];return Yr(e&&n&&r?{queryKey:o,queryFn:()=>ft({client:e,paymasterAddress:t,userAddress:n,sessionAddress:r})}:{queryKey:o,enabled:!1})}import{useClient as wd}from"wagmi";import{queryOptions as Xr,useQuery as xd}from"@tanstack/react-query";async function gt({client:e,worldAddress:t,userAddress:n,sessionAddress:r}){return(await S(e,{address:t,table:_e.UserDelegationControl,key:{delegator:n,delegatee:r}})).delegationControlId===O}function ht({client:e,worldAddress:t,userAddress:n,sessionAddress:r}){let o=["getDelegation",e?.chain.id,t,n,r];return Xr(e&&n&&r?{queryKey:o,queryFn:()=>gt({client:e,worldAddress:t,userAddress:n,sessionAddress:r})}:{queryKey:o,enabled:!1})}import{queryOptions as $r,useQuery as jr,useQueryClient as Jr}from"@tanstack/react-query";import{useClient as Zr}from"wagmi";function eo({queryClient:e,client:t,userAddress:n,paymasterAddress:r,worldAddress:o}){let s=["getPrerequisites",t?.chain.id,n];return $r(t&&n?{queryKey:s,queryFn:async()=>{let{address:i}=await e.fetchQuery(be({client:t,userAddress:n})),[a,l,c]=await Promise.all([e.fetchQuery(he({client:t,paymasterAddress:r,userAddress:n})),e.fetchQuery(yt({client:t,paymasterAddress:r,userAddress:n,sessionAddress:i})),e.fetchQuery(ht({client:t,worldAddress:o,userAddress:n,sessionAddress:i}))]),d=a>=Z;return{hasAllowance:d,isSpender:l,hasDelegation:c,complete:d&&l&&c}}}:{queryKey:s,enabled:!1})}function M(e){let t=Jr(),{chainId:n,paymasterAddress:r,worldAddress:o}=p(),s=Zr({chainId:n});return jr(eo({queryClient:t,client:s,userAddress:e,paymasterAddress:r,worldAddress:o}),t)}import{jsx as ve}from"react/jsx-runtime";function wt(e){let t=e?.account.address,n=M(t),{hasAllowance:r,isSpender:o,hasDelegation:s}=n.data??{};return to(()=>t?[{id:"wallet",label:"Sign in",isComplete:!0,content:i=>ve(tt,{...i,userAddress:t})},{id:"allowance",label:"Top up",isComplete:!!r,content:i=>ve(ct,{...i,userAddress:t})},{id:"session",label:"Set up account",isComplete:!!o&&!!s,content:i=>ve(mt,{...i,userClient:e,registerSpender:!o,registerDelegation:!s})}]:[{id:"wallet",label:"Sign in",isComplete:!1,content:()=>null}],[r,s,o,t,e])}import{twMerge as Ce}from"tailwind-merge";import{jsx as ke}from"react/jsx-runtime";function bt({userClient:e}){let t=wt(e),[n]=no(null),r=t.find(a=>a.content!=null&&!a.isComplete),o=t.filter(a=>a.isComplete),s=(n!=null?t.find(a=>a.id===n):null)??r??(o.length<t.length?o.at(-1):null),i=s?t.indexOf(s):-1;return ke("div",{className:Ce("min-h-[26rem] px-8 flex flex-col divide-y divide-neutral-800","animate-in animate-duration-300 fade-in slide-in-from-bottom-8"),children:t.map((a,l)=>{let c=a===s,d=c||o.length===t.length,u=!a.isComplete&&i!==-1&&l>i;return ke("div",{className:Ce("py-8 flex flex-col justify-center",c?"flex-grow":null),children:ke("div",{className:Ce("flex flex-col",u?"opacity-30 pointer-events-none":null),children:a.content({isActive:c,isExpanded:d})})},a.id)})})}import{jsx as xt}from"react/jsx-runtime";function vt(){let{chainId:e}=p(),t=ro({chainId:e});return t.status!=="success"?xt(et,{}):xt(bt,{userClient:t.data})}import{useState as co}from"react";import{ErrorBoundary as lo}from"react-error-boundary";import{twMerge as oo}from"tailwind-merge";import{BaseError as ao,UserRejectedRequestError as io}from"viem";import{jsx as Ct,jsxs as so}from"react/jsx-runtime";function kt({title:e,error:t}){if(!t||t instanceof ao&&t.walk(o=>o instanceof io)!=null)return null;let n=e??"Error",r=typeof t=="string"?t:t instanceof Error?String(t):"Something unexpected happened.";return so("div",{className:oo("text-sm border-l-4 border-red-500","bg-red-100 text-red-900","dark:bg-red-900 dark:text-red-50"),children:[Ct("div",{className:"p-3 font-semibold",children:n}),Ct("div",{className:"px-3 whitespace-break-spaces break-all max-h-32 overflow-y-scroll",children:r})]})}import{wait as po}from"@latticexyz/common/utils";import{twMerge as uo}from"tailwind-merge";import{useIsMounted as mo}from"usehooks-ts";import{jsx as ne,jsxs as At}from"react/jsx-runtime";function St({children:e}){let t=mo(),[n,r]=co(1);return ne(lo,{fallbackRender:({error:o,resetErrorBoundary:s})=>At("div",{className:uo("flex-grow flex flex-col justify-center p-5 gap-2"),children:[ne(kt,{error:o instanceof Error?o.stack??o.message:o}),n>0?At("button",{type:"button",onClick:async i=>{i.currentTarget.ariaBusy="true",await po(1e3),s(),t()&&(r(a=>a-1),i.currentTarget.ariaBusy=null)},className:"group aria-busy:pointer-events-none self-end flex items-center gap-1",children:[ne(x,{className:"transition opacity-0 group-aria-busy:opacity-100 text-xs text-neutral-500 dark:text-neutral-400"}),ne("span",{className:"text-sm text-neutral-500 dark:text-neutral-400 group-hover:text-black dark:group-hover:text-white",children:"Retry?"})]}):null]}),children:e})}import{DialogClose as go,DialogTitle as ho}from"@radix-ui/react-dialog";import{twMerge as fo}from"tailwind-merge";import{jsx as yo}from"react/jsx-runtime";function Pt({className:e,children:t,...n}){return yo("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:fo("-my-[0.125em] h-[1.25em] w-[1.25em]",e),...n,children:t})}import{jsx as Mt}from"react/jsx-runtime";function It(e){return Mt(Pt,{strokeWidth:"2",stroke:"currentColor",...e,children:Mt("path",{d:"M6 18L18 6M6 6L18 18",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}import{jsx as w,jsxs as Ae}from"react/jsx-runtime";function Tt(){let{accountModalOpen:e,toggleAccountModal:t}=y();return Ae(Ke,{open:e,onOpenChange:t,children:[w(ho,{className:"sr-only",children:"Connect with EntryKit"}),e?Ae("div",{className:Nt("relative py-2 ring-1","bg-neutral-900 text-neutral-400 ring-neutral-700/50 divide-neutral-700","links:font-medium links:underline links:underline-offset-4","links:text-white","links:decoration-neutral-500 hover:links:decoration-orange-500"),children:[w(St,{children:w(vt,{})}),Ae("a",{href:"https://mud.dev",target:"_blank",rel:"noreferrer noopener",className:"group self-center p-3 flex items-center justify-center gap-2 links-unset text-sm font-mono transition text-neutral-400 hover:text-white",children:[w("span",{className:"block w-4 h-4",children:w(v,{className:"w-full h-full text-orange-500 group-hover:rotate-90 transition duration-300"})}),w("span",{children:"Powered by MUD"})]}),w("div",{className:"absolute top-0 right-0",children:w(go,{className:Nt("pointer-events-auto leading-none p-2 transition","text-neutral-700 hover:text-neutral-500"),title:"Close",children:w(It,{className:"m-0"})})})]}):null]})}import{jsx as bo,jsxs as xo}from"react/jsx-runtime";function wo({config:e,children:t}){return xo(He,{config:e,children:[t,bo(Tt,{})]})}import{useAccount as Co}from"wagmi";import{twMerge as C}from"tailwind-merge";import{twMerge as Et}from"tailwind-merge";import{Fragment as vo,jsx as re,jsxs as Ht}from"react/jsx-runtime";function Ot({address:e}){let{data:t}=X(e),{isSuccess:n}=_(t.avatar);return Ht(vo,{children:[Ht("span",{className:"flex-shrink-0 w-6 h-6 -my-1 -mx-0.5 grid place-items-center",children:[re("img",{src:n?t.avatar:void 0,className:Et("col-start-1 row-start-1","inline-flex w-full h-full rounded-full bg-black/10 dark:bg-white/10 bg-cover bg-no-repeat bg-center",n?"opacity-100":"opacity-0")}),re(v,{className:Et("col-start-1 row-start-1 text-orange-500","transition duration-300",n?"opacity-0":"opacity-100")})]}),re("span",{className:"flex-grow",children:t.name??(e?re($,{hex:e}):null)})]})}import{jsx as b,jsxs as Dt}from"react/jsx-runtime";var Rt=C("w-48 inline-flex outline-none transition","border border-transparent","text-base leading-none"),ko=C("bg-neutral-100 border-neutral-300 text-black","dark:bg-neutral-800 dark:border-neutral-700 dark:text-white"),Ao=C("cursor-pointer outline-none hover:bg-neutral-200 data-[highlighted]:bg-neutral-200 dark:hover:bg-neutral-700");function So(){let{openAccountModal:e,accountModalOpen:t}=y(),{status:n,address:r}=Co(),o=M(r),s=n==="connected"||n==="reconnecting"&&r,i=o.isSuccess?o.data.complete:s,a=(()=>{if(o.isSuccess){if(!o.data.hasAllowance)return"Top up";if(!o.data.hasDelegation||!o.data.isSpender)return"Set up"}return"Sign in"})();return b(L,{mode:"child",children:i?b("button",{type:"button",className:C(Rt,ko,Ao,"p-3"),onClick:e,children:b("span",{className:"flex-grow inline-flex gap-2.5 items-center text-left font-medium",children:b(Ot,{address:r})})},"connected"):Dt("button",{type:"button",className:C(Rt,"group","items-center justify-center gap-2.5 p-3","bg-orange-500 text-white font-medium","hover:bg-orange-400","active:bg-orange-600"),"aria-busy":t,onClick:e,children:[Dt("span",{className:"pointer-events-none inline-grid place-items-center -ml-3",children:[b("span",{className:C("col-start-1 row-start-1 leading-none","scale-100 opacity-100 transition duration-300","group-aria-busy:scale-125 group-aria-busy:opacity-0"),children:b(v,{})}),b("span",{"aria-hidden":!0,className:C("col-start-1 row-start-1","scale-50 opacity-0 transition duration-300 delay-50","group-aria-busy:scale-100 group-aria-busy:opacity-100"),children:b(x,{})})]}),b("span",{className:"font-medium",children:a})]},"sign in")})}import{useConnectorClient as Oo}from"wagmi";import{useClient as No}from"wagmi";import{queryOptions as To,useQuery as Eo}from"@tanstack/react-query";import{smartAccountActions as Po}from"permissionless";import{callFrom as Mo}from"@latticexyz/world/internal";import{observer as Io}from"@latticexyz/explorer/observer";async function zt({sessionAccount:e,worldAddress:t,userAddress:n,client:r,bundlerTransport:o,paymasterAddress:s,explorerUrl:i}){return Q({paymasterAddress:s,transport:o,client:r,account:e}).extend(Po()).extend(Mo({worldAddress:t,delegatorAddress:n,publicClient:r})).extend(l=>i?Io({explorerUrl:i})(l):{}).extend(()=>({userAddress:n}))}function Ho({sessionAccount:e,client:t,userAddress:n,bundlerTransport:r,paymasterAddress:o,worldAddress:s,explorerUrl:i}){let a=["getSessionClient",t?.uid,n,e?.address,s,o,i];return To(t&&n&&e?{queryKey:a,queryFn:()=>zt({sessionAccount:e,client:t,userAddress:n,worldAddress:s,bundlerTransport:r,paymasterAddress:o,explorerUrl:i}),staleTime:1/0}:{queryKey:a,enabled:!1})}function Kt(e){let{chainId:t,bundlerTransport:n,paymasterAddress:r,worldAddress:o,explorerUrl:s}=p(),i=No({chainId:t}),{data:a}=te(e);return Eo(Ho({sessionAccount:a,userAddress:e,client:i,bundlerTransport:n,paymasterAddress:r,worldAddress:o,explorerUrl:s}))}function Ro(){let{chainId:e}=p(),t=Oo({chainId:e});t.error&&console.error("Error retrieving user client",t.error);let n=t.data?.account.address,r=M(n),o=Kt(n);return t.isSuccess?!r.isSuccess||!r.data.complete?{...r,data:void 0}:o:{...t,data:void 0}}import{connectorsForWallets as zo,getDefaultWallets as Ko}from"@rainbow-me/rainbowkit";import{createConfig as Lo}from"wagmi";var Do=`data:image/svg+xml;base64,${btoa('<svg xmlns="http://www.w3.org/2000/svg" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" width="512" height="512" viewBox="-64 -32 608 512"><path d="M6.206 425.469A6.202 6.202 0 010 419.263c0-1.771.235-3.517.663-5.245 9.95-78.847 57.22-96.006 100.964-107.256 21.008-5.412 62.901-26.489 57.822-53.668-10.596-9.819-21.113-23.39-22.946-43.63l-1.274.026c-2.932-.044-5.778-.716-8.422-2.217-5.848-3.325-9.051-9.697-10.596-16.958-3.238-22.186-4.058-33.515 7.768-38.464l.096-.035c-1.467-27.37 3.159-67.64-24.944-76.141C154.622 7.1 218.597-30.203 266.627 30.805c53.519 2.801 77.389 78.611 44.154 121.046h-1.405c11.826 4.949 10.045 17.674 7.767 38.464-1.544 7.261-4.747 13.633-10.595 16.958-2.645 1.501-5.481 2.173-8.422 2.217l-1.275-.026c-1.833 20.24-12.376 33.811-22.972 43.63-4.459 23.871 27.275 43.011 49.33 50.997a139.442 139.442 0 004.268 5.525c-7.2 9.941-8.771 22.797-4.564 34.038-17.002 8.763-24.255 29.334-16.479 46.86-11.966 7.55-18.258 21.305-16.609 34.955H6.206zm419.058-105.362a86.778 86.778 0 0019.446-1.641c29.36-5.822 53.152-27.467 62.657-55.823 3.596-10.544 5.071-21.663 4.521-33.341-1.179-23.46-12.193-46.633-29.631-62.369-17.107-15.361-38.342-23.574-61.383-23.042-22.841.507-45.359 11.216-60.187 28.593-14.977 17.551-22.003 39.144-20.921 62.133.585 11.661 3.482 23.016 8.737 34.074 7.741 16.303 19.934 29.735 35.391 39.048l-22.457 20.711 13.232 27.86-29.413 13.973 13.991 29.456-26.769 12.717 16.81 35.374 35.601-16.915 40.375-110.808zm15.239-129.364c13.685 4.869 20.824 19.908 15.954 33.593-4.87 13.685-19.908 20.833-33.593 15.963-13.685-4.87-20.834-19.917-15.963-33.602 4.87-13.685 19.917-20.825 33.602-15.954z"/></svg>')}`,oe=e=>()=>({id:"passkey",name:"Passkey",iconUrl:Do,iconBackground:"#fec",createConnector:t=>n=>({...A(e)(n),...t})});function Bo(e){let{wallets:t}=Ko(),n=[{groupName:"Recommended",wallets:[oe({chainId:e.chainId,bundlerTransport:e.bundlerTransport,paymasterAddress:e.paymasterAddress})]},...t],r=zo(n,{appName:e.appInfo.name,projectId:e.walletConnectProjectId});return Lo({connectors:r,chains:e.chains,transports:e.transports})}function xp(e){return e!=null&&"__isCoinbaseSmartAccount"in e&&e.__isCoinbaseSmartAccount===!0}var Cp=new Set([17420,31337]);function kp(e){return t=>{let{request:n,...r}=e(t),o=null,s=new Map;return{...r,async request(i){if(i.method==="eth_chainId")return o??(o=await n(i));if(i.method==="eth_call")return n({...i,method:"wiresaw_call"});if(i.method==="eth_getTransactionReceipt"){let a=i.params[0],l=s.get(a)??await n(i);return s.has(a)||s.set(a,l),l}if(i.method==="eth_sendUserOperation"){let a=await n({...i,method:"wiresaw_sendUserOperation"});return s.set(a.userOpHash,{success:!0,userOpHash:a.userOpHash,receipt:{transactionHash:a.txHash}}),a.userOpHash}if(i.method==="eth_getUserOperationReceipt"){let a=i.params[0],l=s.get(a)??await n(i);return s.has(a)||s.set(a,l),l}return n(i)}}}}import{connectorsForWallets as Go}from"@rainbow-me/rainbowkit";import{getDefaultWallets as Fo}from"@rainbow-me/rainbowkit";function Lt(e){let{wallets:t}=Fo();return[{groupName:"Recommended",wallets:[oe({chainId:e.chainId,bundlerTransport:e.bundlerTransport,paymasterAddress:e.paymasterAddress})]},...t]}function Hp({wallets:e,...t}){return Go(e??Lt(t),{appName:t.appInfo?.name??document.title,projectId:t.walletConnectProjectId})}export{So as AccountButton,wo as EntryKitProvider,W as abi,Bo as createWagmiConfig,Hp as getConnectors,Lt as getWallets,xp as isCoinbaseSmartAccount,A as passkeyConnector,oe as passkeyWallet,G as sign,U as toCoinbaseSmartAccount,de as toReplaySafeHash,In as toWebAuthnSignature,y as useAccountModal,p as useEntryKitConfig,Ro as useSessionClient,kp as wiresaw,Cp as wiresawChainIds,E as wrapSignature};
|
|
1427
|
+
URL: ${e}`)),r.src=e})})}import{jsx as $,jsxs as sr}from"react/jsx-runtime";function Ze(){let{appName:e,appIcon:t}=Je(),{data:n,isLoading:r}=j(t);return sr("div",{className:"flex-grow flex flex-col items-center justify-center gap-2",children:[$("div",{className:"w-16 h-16 m-2",children:r?null:n?$("img",{src:t,className:"w-full h-full object-cover"}):$(A,{className:"w-full h-full text-orange-500 dark:bg-neutral-800"})}),$("div",{className:"text-2xl text-white text-center",children:e})]})}import{twMerge as lr}from"tailwind-merge";import{jsx as K,jsxs as tt}from"react/jsx-runtime";function nt(){let e=cr(),{accountModalOpen:t}=h(),{openConnectModal:n,connectModalOpen:r}=dr(),o=$e(),s=et({onError:c=>console.error(c),mutationKey:["createPasskey",o.id,t,r,e.status],mutationFn:()=>o.createPasskey()}),a=et({onError:c=>console.error(c),mutationKey:["reusePasskey",o.id,t,r,e.status],mutationFn:()=>o.reusePasskey()}),d=o.hasPasskey(),l=[K(w,{variant:d?"secondary":"primary",className:"self-auto flex justify-center",pending:s.status==="pending",onClick:()=>s.mutate(),autoFocus:!d,children:"Create account"},"create"),K(w,{variant:d?"primary":"secondary",className:"self-auto flex justify-center",pending:a.status==="pending",onClick:()=>a.mutate(),autoFocus:d,children:"Sign in"},"signin")];return d&&l.reverse(),tt("div",{className:lr("flex flex-col gap-6 p-6","animate-in animate-duration-300 fade-in slide-in-from-bottom-8"),children:[K("div",{className:"p-4",children:K(Ze,{})}),tt("div",{className:"self-center flex flex-col gap-2 w-60",children:[l,K("button",{className:"text-sm self-center transition text-neutral-500 hover:text-white p-2",disabled:e.status==="connecting",onClick:n,children:"Already have a wallet?"})]})]})}import{useEffect as oo,useMemo as ao,useRef as io,useState as so}from"react";import{twMerge as Se}from"tailwind-merge";import{parseEther as pr}from"viem";var J=pr("0.01");import{useClient as Cr}from"wagmi";import{queryOptions as Ar,useQuery as kr}from"@tanstack/react-query";import{defineStore as ur}from"@latticexyz/store";import{parseAbi as mr}from"viem";var we=mr(["error SpenderSystem_AlreadyRegistered(address spender, address user)","error SpenderSystem_HasOwnBalance(address spender)","function registerSpender(address spender)"]),fr=ur({namespaces:{root:{namespace:"",tables:{Allowance:{schema:{user:"address",allowance:"uint256"},key:["user"]},Grantor:{schema:{grantor:"address",allowance:"uint256"},key:["grantor"]},PassHolder:{schema:{user:"address",passId:"bytes32",lastRenewed:"uint256",lastClaimed:"uint256"},key:["user","passId"]},PassConfig:{schema:{passId:"bytes32",claimAmount:"uint256",claimInterval:"uint256",validityPeriod:"uint256",grantor:"address"},key:["passId"]},Spender:{schema:{spender:"address",user:"address"},key:["spender"]},SystemConfig:{schema:{entryPoint:"address"},key:[]}}}}}),Z=fr.namespaces.root.tables;import{decodeValueArgs as yr,getKeyTuple as gr,getSchemaTypes as hr,getValueSchema as wr}from"@latticexyz/protocol-parser/internal";import{readContract as br}from"viem/actions";import{getAction as xr}from"viem/utils";async function I(e,{address:t,table:n,key:r,blockTag:o}){let[s,a,d]=await xr(e,br,"readContract")({address:t,abi:vr,functionName:"getRecord",args:[n.tableId,gr(n,r)],blockTag:o});return{...r,...yr(hr(wr(n)),{staticData:s,encodedLengths:a,dynamicData:d})}}var vr=[{type:"function",name:"getRecord",inputs:[{name:"tableId",type:"bytes32",internalType:"ResourceId"},{name:"keyTuple",type:"bytes32[]",internalType:"bytes32[]"}],outputs:[{name:"staticData",type:"bytes",internalType:"bytes"},{name:"encodedLengths",type:"bytes32",internalType:"EncodedLengths"},{name:"dynamicData",type:"bytes",internalType:"bytes"}],stateMutability:"view"}];async function rt({client:e,paymasterAddress:t,userAddress:n}){return(await I(e,{address:t,table:Z.Allowance,key:{user:n}})).allowance}function be({client:e,paymasterAddress:t,userAddress:n}){let r=["getAllowance",e?.chain.id,t,n];return Ar(e&&n?{queryKey:r,queryFn:()=>rt({client:e,paymasterAddress:t,userAddress:n})}:{queryKey:r,enabled:!1})}function ot(e){let{chainId:t,paymasterAddress:n}=p(),r=Cr({chainId:t});return kr(be({client:r,paymasterAddress:n,userAddress:e}))}import{useClient as ic}from"wagmi";import{queryOptions as Sr,useQuery as cc}from"@tanstack/react-query";async function at({client:e,paymasterAddress:t,userAddress:n,sessionAddress:r}){return(await I(e,{address:t,table:Z.Spender,key:{spender:r}})).user.toLowerCase()===n.toLowerCase()}function it({client:e,paymasterAddress:t,userAddress:n,sessionAddress:r}){let o=["getSpender",e?.chain.id,t,n,r];return Sr(e&&n&&r?{queryKey:o,queryFn:()=>at({client:e,paymasterAddress:t,userAddress:n,sessionAddress:r})}:{queryKey:o,enabled:!1})}import{useClient as gc}from"wagmi";import{queryOptions as Pr,useQuery as wc}from"@tanstack/react-query";async function st({client:e,worldAddress:t,userAddress:n,sessionAddress:r}){return(await I(e,{address:t,table:Xe.UserDelegationControl,key:{delegator:n,delegatee:r}})).delegationControlId===z}function ct({client:e,worldAddress:t,userAddress:n,sessionAddress:r}){let o=["getDelegation",e?.chain.id,t,n,r];return Pr(e&&n&&r?{queryKey:o,queryFn:()=>st({client:e,worldAddress:t,userAddress:n,sessionAddress:r})}:{queryKey:o,enabled:!1})}import{queryOptions as Dr,useQuery as zr,useQueryClient as Kr}from"@tanstack/react-query";import{useClient as Lr}from"wagmi";import{useClient as Hr}from"wagmi";import{queryOptions as Or,useQuery as Rr}from"@tanstack/react-query";import{createStore as Mr}from"zustand/vanilla";import{persist as Ir}from"zustand/middleware";var L=Mr(Ir(()=>({signers:{}}),{name:"mud:entrykit",partialize:({signers:e})=>({signers:e})}));function Nr(e){e.key===L.persist.getOptions().name&&L.persist.rehydrate()}window.addEventListener("storage",Nr);import{generatePrivateKey as Tr,privateKeyToAccount as Er}from"viem/accounts";function dt(e){let t=L.getState().signers[e]??(()=>{let n=Tr();return L.setState(r=>({signers:{...r.signers,[e]:n}})),n})();return Er(t)}async function lt({client:e,userAddress:t}){let n=dt(t);return await Q({client:e,owners:[n]})}function xe({client:e,userAddress:t}){let n=["getSessionAccount",e?.chain.id,t];return Or(e&&t?{queryKey:n,queryFn:()=>lt({client:e,userAddress:t}),staleTime:1/0}:{queryKey:n,enabled:!1})}function ee(e){let{chainId:t}=p(),n=Hr({chainId:t});return Rr(xe({userAddress:e,client:n}))}function Br({queryClient:e,client:t,userAddress:n,paymasterAddress:r,worldAddress:o}){let s=["getPrerequisites",t?.chain.id,n];return Dr(t&&n?{queryKey:s,queryFn:async()=>{let{address:a}=await e.fetchQuery(xe({client:t,userAddress:n})),[d,l,c]=await Promise.all([e.fetchQuery(be({client:t,paymasterAddress:r,userAddress:n})),e.fetchQuery(it({client:t,paymasterAddress:r,userAddress:n,sessionAddress:a})),e.fetchQuery(ct({client:t,worldAddress:o,userAddress:n,sessionAddress:a}))]),i=d>=J;return{hasAllowance:i,isSpender:l,hasDelegation:c,complete:i&&l&&c}}}:{queryKey:s,enabled:!1})}function N(e){let t=Kr(),{chainId:n,paymasterAddress:r,worldAddress:o}=p(),s=Lr({chainId:n});return zr(Br({queryClient:t,client:s,userAddress:e,paymasterAddress:r,worldAddress:o}),t)}import{useDisconnect as Wr}from"wagmi";import{useQuery as Fr}from"@tanstack/react-query";function te(e){let t=e?.toLowerCase();return Fr({enabled:!!t,queryKey:["ens",t],initialData:{address:void 0,name:void 0,displayName:void 0,avatar:void 0},queryFn:async()=>{let n=await fetch(`https://api.ensideas.com/ens/resolve/${t}`).then(r=>r.json());return{address:n.address??void 0,name:n.name??void 0,displayName:n.displayName??void 0,avatar:n.avatar??void 0}}})}import{jsx as ve,jsxs as Gr}from"react/jsx-runtime";function ne({hex:e}){return e.length<=10?ve("span",{title:e,children:e}):Gr("span",{title:e,children:[ve("span",{className:"after:select-none after:content-['\u2026']",children:e.slice(0,6)}),ve("span",{className:"tracking-[-1ch] text-transparent",children:e.slice(6,-4)}),e.slice(-4)]})}import{jsx as B,jsxs as Ce}from"react/jsx-runtime";function pt({isActive:e,isExpanded:t,userAddress:n}){let{data:r}=te(n),{disconnect:o,isPending:s}=Wr(),{closeAccountModal:a}=h();return Ce("div",{className:"flex flex-col gap-4",children:[Ce("div",{className:"flex justify-between gap-4",children:[Ce("div",{children:[B("div",{children:"Account"}),B("div",{className:"font-mono text-white",children:r.name??B(ne,{hex:n})})]}),B(w,{variant:e?"primary":"secondary",className:"flex-shrink-0 text-sm p-1 w-28",pending:s,onClick:()=>{a(),o()},children:"Sign out"})]}),t?B("p",{className:"text-sm",children:"Each of your onchain actions in this app is associated with your account."}):null]})}import{useMutation as Ur,useQueryClient as qr}from"@tanstack/react-query";function ut(){let e=qr(),{passIssuerTransport:t}=p();return Ur({mutationKey:["claimGasPass"],onError:r=>console.error(r),mutationFn:async r=>{let o=t({retryCount:0});await o.request({method:"quarry_issuePass",params:["0x01",r]}),await o.request({method:"quarry_claimAllowance",params:["0x01",r]}),await Promise.all([e.invalidateQueries({queryKey:["getAllowance"]}),e.invalidateQueries({queryKey:["getPrerequisites"]})])},retry:0})}import{twMerge as Vr}from"tailwind-merge";import{jsx as re,jsxs as Qr}from"react/jsx-runtime";function mt({className:e,...t}){return Qr("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 263 428",fill:"currentColor",className:Vr("w-[0.6em] h-[1em]",e),...t,children:[re("path",{d:"M132 321V428L263 243L132 321Z"}),re("path",{d:"M0 243L132 321V428",fillOpacity:"0.5"}),re("path",{d:"M132 0V296L263 218"}),re("path",{d:"M0 218L132 296V0L0 218Z",fillOpacity:"0.5"})]})}import{formatEther as _r}from"viem";function ft(e){let t=_r(e),n=Math.floor(parseFloat(t)).toString().length;return parseFloat(t).toLocaleString("en-US",{maximumFractionDigits:Math.max(0,6-n)})}import{jsx as Yr,jsxs as Xr}from"react/jsx-runtime";function yt({wei:e}){return Xr("span",{className:"inline-flex items-center gap-1",children:[ft(e)," ",Yr(mt,{})]})}import{useEffect as jr,useRef as $r}from"react";import{jsx as T,jsxs as Ae}from"react/jsx-runtime";function gt({isActive:e,isExpanded:t,userAddress:n}){let r=ot(n),o=ut(),s=$r(!1);return jr(()=>{e&&o.status==="idle"&&r.isSuccess&&r.data<J&&!s.current&&(s.current=!0,o.mutate(n,{onSettled:()=>s.current=!1}))},[r.data,r.isSuccess,o,e,n]),Ae("div",{className:"flex flex-col gap-4",children:[Ae("div",{className:"flex justify-between gap-4",children:[Ae("div",{children:[T("div",{children:"Allowance"}),T("div",{className:"font-mono text-white",children:r.data!=null?T(yt,{wei:r.data}):T(C,{className:"text-sm"})})]}),T(w,{variant:e?"primary":"secondary",className:"flex-shrink-0 text-sm p-1 w-28",pending:o.status==="pending",onClick:()=>o.mutate(n),children:"Top up"})]}),t?T("p",{className:"text-sm",children:"Your allowance is used to pay for onchain computation."}):null]})}import{useMutation as Jr,useQueryClient as Zr}from"@tanstack/react-query";import{getAction as oe}from"viem/utils";import{sendUserOperation as eo,waitForUserOperationReceipt as to}from"viem/account-abstraction";import{writeContract as ht}from"viem/actions";function wt(){let{worldAddress:e,paymasterAddress:t}=p(),n=Zr();return Jr({mutationKey:["setupSession"],onError:o=>console.error(o),mutationFn:async({userClient:o,sessionAddress:s,registerSpender:a,registerDelegation:d})=>{o.account.type!=="smart"&&(await oe(o,ht,"writeContract")({chain:o.chain,account:o.account,address:t,abi:we,functionName:"registerSpender",args:[s]}),await oe(o,ht,"writeContract")({chain:o.chain,account:o.account,address:e,abi:ge,functionName:"registerDelegation",args:[s,z,"0x"]}));let l=[];if(a&&(console.log("registering spender"),l.push({to:t,abi:we,functionName:"registerSpender",args:[s]})),d&&(console.log("registering delegation"),l.push({to:e,abi:ge,functionName:"registerDelegation",args:[s,z,"0x"]})),!l.length)return;console.log("setting up account with",l);let c=await oe(o,eo,"sendUserOperation")({calls:l});console.log("got user op hash",c);let i=await oe(o,to,"waitForUserOperationReceipt")({hash:c});console.log("got user op receipt",i),i.success&&await Promise.all([n.invalidateQueries({queryKey:["getSpender"]}),n.invalidateQueries({queryKey:["getDelegation"]}),n.invalidateQueries({queryKey:["getPrerequisites"]})])},retry:0})}import{useEffect as no,useRef as ro}from"react";import{jsx as F,jsxs as ke}from"react/jsx-runtime";function bt({isActive:e,isExpanded:t,userClient:n,registerSpender:r,registerDelegation:o}){let a=ee(n.account.address).data?.address,d=wt(),l=!o&&!o,c=ro(!1);return no(()=>{e&&d.status==="idle"&&a&&!l&&!c.current&&(c.current=!0,d.mutate({userClient:n,sessionAddress:a,registerSpender:r,registerDelegation:o},{onSettled:()=>c.current=!1}))},[e,l,o,r,a,d,n]),ke("div",{className:"flex flex-col gap-4",children:[ke("div",{className:"flex justify-between gap-4",children:[ke("div",{children:[F("div",{children:"Session"}),F("div",{className:"font-mono text-white",children:l?"Enabled":"Set up"})]}),l?F(w,{variant:e?"primary":"secondary",className:"flex-shrink-0 text-sm p-1 w-28",disabled:!0,children:"Disable"}):F(w,{variant:e?"primary":"secondary",className:"flex-shrink-0 text-sm p-1 w-28",pending:!a||d.status==="pending",onClick:a?()=>d.mutate({userClient:n,sessionAddress:a,registerSpender:r,registerDelegation:o}):void 0,children:"Enable"})]}),t?F("p",{className:"text-sm",children:"You can perform actions in this app without interruptions for approvals."}):null]})}import{jsx as E}from"react/jsx-runtime";function xt({userClient:e,initialAddress:t}){let n=e.account.address,{data:r}=N(n),{closeAccountModal:o}=h(),s=n!==t,a=io(r);oo(()=>{r!=null&&(a.current==null&&(a.current=r),r.complete&&(s||!a.current.complete)&&o())},[o,s,r]);let{hasAllowance:d,isSpender:l,hasDelegation:c}=r??{},i=ao(()=>n?[{id:"wallet",isComplete:!0,content:m=>E(pt,{...m,userAddress:n})},{id:"allowance",isComplete:!!d,content:m=>E(gt,{...m,userAddress:n})},{id:"session",isComplete:!!l&&!!c,content:m=>E(bt,{...m,userClient:e,registerSpender:!l,registerDelegation:!c})}]:[{id:"wallet",isComplete:!1,content:()=>null}],[d,c,l,n,e]),[u]=so(null),y=i.find(m=>m.content!=null&&!m.isComplete),g=i.filter(m=>m.isComplete),b=(u!=null?i.find(m=>m.id===u):null)??y??(g.length<i.length?g.at(-1):null),S=b?i.indexOf(b):-1;return E("div",{className:Se("min-h-[26rem] px-8 flex flex-col divide-y divide-neutral-800","animate-in animate-duration-300 fade-in slide-in-from-bottom-8"),children:i.map((m,ce)=>{let de=m===b,Ft=de||g.length===i.length,Gt=!m.isComplete&&S!==-1&&ce>S;return E("div",{className:Se("py-8 flex flex-col justify-center",de?"flex-grow":null),children:E("div",{className:Se("flex flex-col",Gt?"opacity-30 pointer-events-none":null),children:m.content({isActive:de,isExpanded:Ft})})},m.id)})})}import{useRef as po}from"react";import{jsx as vt}from"react/jsx-runtime";function Ct(){let{chainId:e}=p(),t=lo({chainId:e}),n=po(co().address);return t.status!=="success"?vt(nt,{}):vt(xt,{userClient:t.data,initialAddress:n.current})}import{useState as go}from"react";import{ErrorBoundary as ho}from"react-error-boundary";import{twMerge as uo}from"tailwind-merge";import{BaseError as mo,UserRejectedRequestError as fo}from"viem";import{jsx as At,jsxs as yo}from"react/jsx-runtime";function kt({title:e,error:t}){if(!t||t instanceof mo&&t.walk(o=>o instanceof fo)!=null)return null;let n=e??"Error",r=typeof t=="string"?t:t instanceof Error?String(t):"Something unexpected happened.";return yo("div",{className:uo("text-sm border-l-4 border-red-500","bg-red-100 text-red-900","dark:bg-red-900 dark:text-red-50"),children:[At("div",{className:"p-3 font-semibold",children:n}),At("div",{className:"px-3 whitespace-break-spaces break-all max-h-32 overflow-y-scroll",children:r})]})}import{wait as wo}from"@latticexyz/common/utils";import{twMerge as bo}from"tailwind-merge";import{useIsMounted as xo}from"usehooks-ts";import{jsx as ae,jsxs as St}from"react/jsx-runtime";function Pt({children:e}){let t=xo(),[n,r]=go(1);return ae(ho,{fallbackRender:({error:o,resetErrorBoundary:s})=>St("div",{className:bo("flex-grow flex flex-col justify-center p-5 gap-2"),children:[ae(kt,{error:o instanceof Error?o.stack??o.message:o}),n>0?St("button",{type:"button",onClick:async a=>{a.currentTarget.ariaBusy="true",await wo(1e3),s(),t()&&(r(d=>d-1),a.currentTarget.ariaBusy=null)},className:"group aria-busy:pointer-events-none self-end flex items-center gap-1",children:[ae(C,{className:"transition opacity-0 group-aria-busy:opacity-100 text-xs text-neutral-500 dark:text-neutral-400"}),ae("span",{className:"text-sm text-neutral-500 dark:text-neutral-400 group-hover:text-black dark:group-hover:text-white",children:"Retry?"})]}):null]}),children:e})}import{DialogClose as Ao,DialogTitle as ko}from"@radix-ui/react-dialog";import{twMerge as vo}from"tailwind-merge";import{jsx as Co}from"react/jsx-runtime";function Mt({className:e,children:t,...n}){return Co("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:vo("-my-[0.125em] h-[1.25em] w-[1.25em]",e),...n,children:t})}import{jsx as It}from"react/jsx-runtime";function Nt(e){return It(Mt,{strokeWidth:"2",stroke:"currentColor",...e,children:It("path",{d:"M6 18L18 6M6 6L18 18",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}import{jsx as x,jsxs as Pe}from"react/jsx-runtime";function Et(){let{accountModalOpen:e,toggleAccountModal:t}=h();return Pe(Be,{open:e,onOpenChange:t,children:[x(ko,{className:"sr-only",children:"Connect with EntryKit"}),e?Pe("div",{className:Tt("relative py-2 ring-1","bg-neutral-900 text-neutral-400 ring-neutral-700/50 divide-neutral-700","links:font-medium links:underline links:underline-offset-4","links:text-white","links:decoration-neutral-500 hover:links:decoration-orange-500"),children:[x(Pt,{children:x(Ct,{})}),Pe("a",{href:"https://mud.dev",target:"_blank",rel:"noreferrer noopener",className:"group self-center p-3 flex items-center justify-center gap-2 links-unset text-sm font-mono transition text-neutral-400 hover:text-white",children:[x("span",{className:"block w-4 h-4",children:x(A,{className:"w-full h-full text-orange-500 group-hover:rotate-90 transition duration-300"})}),x("span",{children:"Powered by MUD"})]}),x("div",{className:"absolute top-0 right-0",children:x(Ao,{className:Tt("pointer-events-auto leading-none p-2 transition","text-neutral-700 hover:text-neutral-500"),title:"Close",children:x(Nt,{className:"m-0"})})})]}):null]})}import{jsx as Po,jsxs as Mo}from"react/jsx-runtime";function So({config:e,children:t}){return Mo(Re,{config:e,children:[t,Po(Et,{})]})}import{useAccount as No}from"wagmi";import{twMerge as k}from"tailwind-merge";import{twMerge as Ht}from"tailwind-merge";import{Fragment as Io,jsx as ie,jsxs as Ot}from"react/jsx-runtime";function Rt({address:e}){let{data:t}=te(e),{isSuccess:n}=j(t.avatar);return Ot(Io,{children:[Ot("span",{className:"flex-shrink-0 w-6 h-6 -my-1 -mx-0.5 grid place-items-center",children:[ie("img",{src:n?t.avatar:void 0,className:Ht("col-start-1 row-start-1","inline-flex w-full h-full rounded-full bg-black/10 dark:bg-white/10 bg-cover bg-no-repeat bg-center",n?"opacity-100":"opacity-0")}),ie(A,{className:Ht("col-start-1 row-start-1 text-orange-500","transition duration-300",n?"opacity-0":"opacity-100")})]}),ie("span",{className:"flex-grow",children:t.name??(e?ie(ne,{hex:e}):null)})]})}import{jsx as v,jsxs as zt}from"react/jsx-runtime";var Dt=k("w-48 inline-flex outline-none transition","border border-transparent","text-base leading-none"),To=k("bg-neutral-100 border-neutral-300 text-black","dark:bg-neutral-800 dark:border-neutral-700 dark:text-white"),Eo=k("cursor-pointer outline-none hover:bg-neutral-200 data-[highlighted]:bg-neutral-200 dark:hover:bg-neutral-700");function Ho(){let{openAccountModal:e,accountModalOpen:t}=h(),{status:n,address:r}=No(),o=N(r),s=n==="connected"||n==="reconnecting"&&r,a=o.isSuccess?o.data.complete:s,d=(()=>{if(o.isSuccess){if(!o.data.hasAllowance)return"Top up";if(!o.data.hasDelegation||!o.data.isSpender)return"Set up"}return"Sign in"})();return v(G,{mode:"child",children:a?v("button",{type:"button",className:k(Dt,To,Eo,"p-3"),onClick:e,children:v("span",{className:"flex-grow inline-flex gap-2.5 items-center text-left font-medium",children:v(Rt,{address:r})})},"connected"):zt("button",{type:"button",className:k(Dt,"group","items-center justify-center gap-2.5 p-3","bg-orange-500 text-white font-medium","hover:bg-orange-400","active:bg-orange-600"),"aria-busy":t,onClick:e,children:[zt("span",{className:"pointer-events-none inline-grid place-items-center -ml-3",children:[v("span",{className:k("col-start-1 row-start-1 leading-none","scale-100 opacity-100 transition duration-300","group-aria-busy:scale-125 group-aria-busy:opacity-0"),children:v(A,{})}),v("span",{"aria-hidden":!0,className:k("col-start-1 row-start-1","scale-50 opacity-0 transition duration-300 delay-50","group-aria-busy:scale-100 group-aria-busy:opacity-100"),children:v(C,{})})]}),v("span",{className:"font-medium",children:d})]},"sign in")})}import{useConnectorClient as Fo}from"wagmi";import{useClient as zo}from"wagmi";import{queryOptions as Ko,useQuery as Lo}from"@tanstack/react-query";import{smartAccountActions as Oo}from"permissionless";import{callFrom as Ro}from"@latticexyz/world/internal";import{observer as Do}from"@latticexyz/explorer/observer";async function Kt({sessionAccount:e,worldAddress:t,userAddress:n,client:r,bundlerTransport:o,paymasterAddress:s,explorerUrl:a}){return X({paymasterAddress:s,transport:o,client:r,account:e}).extend(Oo()).extend(Ro({worldAddress:t,delegatorAddress:n,publicClient:r})).extend(l=>a?Do({explorerUrl:a})(l):{}).extend(()=>({userAddress:n}))}function Bo({sessionAccount:e,client:t,userAddress:n,bundlerTransport:r,paymasterAddress:o,worldAddress:s,explorerUrl:a}){let d=["getSessionClient",t?.uid,n,e?.address,s,o,a];return Ko(t&&n&&e?{queryKey:d,queryFn:()=>Kt({sessionAccount:e,client:t,userAddress:n,worldAddress:s,bundlerTransport:r,paymasterAddress:o,explorerUrl:a}),staleTime:1/0}:{queryKey:d,enabled:!1})}function Lt(e){let{chainId:t,bundlerTransport:n,paymasterAddress:r,worldAddress:o,explorerUrl:s}=p(),a=zo({chainId:t}),{data:d}=ee(e);return Lo(Bo({sessionAccount:d,userAddress:e,client:a,bundlerTransport:n,paymasterAddress:r,worldAddress:o,explorerUrl:s}))}function Go(){let{chainId:e}=p(),t=Fo({chainId:e});t.error&&console.error("Error retrieving user client",t.error);let n=t.data?.account.address,r=N(n),o=Lt(n);return t.isSuccess?!r.isSuccess||!r.data.complete?{...r,data:void 0}:o:{...t,data:void 0}}import{connectorsForWallets as Uo,getDefaultWallets as qo}from"@rainbow-me/rainbowkit";import{createConfig as Vo}from"wagmi";var Wo=`data:image/svg+xml;base64,${btoa('<svg xmlns="http://www.w3.org/2000/svg" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" width="512" height="512" viewBox="-64 -32 608 512"><path d="M6.206 425.469A6.202 6.202 0 010 419.263c0-1.771.235-3.517.663-5.245 9.95-78.847 57.22-96.006 100.964-107.256 21.008-5.412 62.901-26.489 57.822-53.668-10.596-9.819-21.113-23.39-22.946-43.63l-1.274.026c-2.932-.044-5.778-.716-8.422-2.217-5.848-3.325-9.051-9.697-10.596-16.958-3.238-22.186-4.058-33.515 7.768-38.464l.096-.035c-1.467-27.37 3.159-67.64-24.944-76.141C154.622 7.1 218.597-30.203 266.627 30.805c53.519 2.801 77.389 78.611 44.154 121.046h-1.405c11.826 4.949 10.045 17.674 7.767 38.464-1.544 7.261-4.747 13.633-10.595 16.958-2.645 1.501-5.481 2.173-8.422 2.217l-1.275-.026c-1.833 20.24-12.376 33.811-22.972 43.63-4.459 23.871 27.275 43.011 49.33 50.997a139.442 139.442 0 004.268 5.525c-7.2 9.941-8.771 22.797-4.564 34.038-17.002 8.763-24.255 29.334-16.479 46.86-11.966 7.55-18.258 21.305-16.609 34.955H6.206zm419.058-105.362a86.778 86.778 0 0019.446-1.641c29.36-5.822 53.152-27.467 62.657-55.823 3.596-10.544 5.071-21.663 4.521-33.341-1.179-23.46-12.193-46.633-29.631-62.369-17.107-15.361-38.342-23.574-61.383-23.042-22.841.507-45.359 11.216-60.187 28.593-14.977 17.551-22.003 39.144-20.921 62.133.585 11.661 3.482 23.016 8.737 34.074 7.741 16.303 19.934 29.735 35.391 39.048l-22.457 20.711 13.232 27.86-29.413 13.973 13.991 29.456-26.769 12.717 16.81 35.374 35.601-16.915 40.375-110.808zm15.239-129.364c13.685 4.869 20.824 19.908 15.954 33.593-4.87 13.685-19.908 20.833-33.593 15.963-13.685-4.87-20.834-19.917-15.963-33.602 4.87-13.685 19.917-20.825 33.602-15.954z"/></svg>')}`,se=e=>()=>({id:"passkey",name:"Passkey",iconUrl:Wo,iconBackground:"#fec",createConnector:t=>n=>({...M(e)(n),...t})});function Qo(e){let{wallets:t}=qo(),n=[{groupName:"Recommended",wallets:[se({chainId:e.chainId,bundlerTransport:e.bundlerTransport,paymasterAddress:e.paymasterAddress})]},...t],r=Uo(n,{appName:e.appInfo.name,projectId:e.walletConnectProjectId});return Vo({connectors:r,chains:e.chains,transports:e.transports})}function kp(e){return e!=null&&"__isCoinbaseSmartAccount"in e&&e.__isCoinbaseSmartAccount===!0}var Pp=new Set([17420,31337]);function Mp(e){return t=>{let{request:n,...r}=e(t),o=null,s=new Map;return{...r,async request(a){if(a.method==="eth_chainId")return o??(o=await n(a));if(a.method==="eth_call")return n({...a,method:"wiresaw_call"});if(a.method==="eth_getTransactionReceipt"){let d=a.params[0],l=s.get(d)??await n(a);return s.has(d)||s.set(d,l),l}if(a.method==="eth_sendUserOperation"){let d=await n({...a,method:"wiresaw_sendUserOperation"});return s.set(d.userOpHash,{success:!0,userOpHash:d.userOpHash,receipt:{transactionHash:d.txHash}}),d.userOpHash}if(a.method==="eth_getUserOperationReceipt"){let d=a.params[0],l=s.get(d)??await n(a);return s.has(d)||s.set(d,l),l}return n(a)}}}}import{connectorsForWallets as Yo}from"@rainbow-me/rainbowkit";import{getDefaultWallets as _o}from"@rainbow-me/rainbowkit";function Bt(e){let{wallets:t}=_o();return[{groupName:"Recommended",wallets:[se({chainId:e.chainId,bundlerTransport:e.bundlerTransport,paymasterAddress:e.paymasterAddress})]},...t]}function zp({wallets:e,...t}){return Yo(e??Bt(t),{appName:t.appInfo?.name??document.title,projectId:t.walletConnectProjectId})}export{Ho as AccountButton,So as EntryKitProvider,V as abi,Qo as createWagmiConfig,zp as getConnectors,Bt as getWallets,kp as isCoinbaseSmartAccount,M as passkeyConnector,se as passkeyWallet,q as sign,Q as toCoinbaseSmartAccount,me as toReplaySafeHash,Nn as toWebAuthnSignature,h as useAccountModal,p as useEntryKitConfig,Go as useSessionClient,Mp as wiresaw,Pp as wiresawChainIds,R as wrapSignature};
|
|
1428
1428
|
//# sourceMappingURL=internal.js.map
|