@latticexyz/explorer 2.2.15-main-d542357350b85654bc65f3befad22a3509c4ddb6 → 2.2.15-main-88b9daf1e01bd8675e31c455155759a3ef2af4f8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.next/standalone/packages/explorer/.next/BUILD_ID +1 -1
  2. package/.next/standalone/packages/explorer/.next/app-build-manifest.json +33 -33
  3. package/.next/standalone/packages/explorer/.next/app-path-routes-manifest.json +1 -1
  4. package/.next/standalone/packages/explorer/.next/build-manifest.json +2 -2
  5. package/.next/standalone/packages/explorer/.next/prerender-manifest.json +1 -1
  6. package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/page.js +1 -1
  7. package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/explore/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/interact/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/observe/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/page.js +2 -2
  13. package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/packages/explorer/.next/server/app/(explorer)/api/world-abi/route.js +1 -1
  15. package/.next/standalone/packages/explorer/.next/server/app/(explorer)/page.js +1 -1
  16. package/.next/standalone/packages/explorer/.next/server/app/(explorer)/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/packages/explorer/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/packages/explorer/.next/server/app/_not-found.html +1 -1
  19. package/.next/standalone/packages/explorer/.next/server/app/_not-found.rsc +1 -1
  20. package/.next/standalone/packages/explorer/.next/server/app/internal/observer-relay/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/packages/explorer/.next/server/app/internal/observer-relay.html +1 -1
  22. package/.next/standalone/packages/explorer/.next/server/app/internal/observer-relay.rsc +1 -1
  23. package/.next/standalone/packages/explorer/.next/server/app-paths-manifest.json +2 -2
  24. package/.next/standalone/packages/explorer/.next/server/chunks/3883.js +1 -1
  25. package/.next/standalone/packages/explorer/.next/server/chunks/9490.js +1 -1
  26. package/.next/standalone/packages/explorer/.next/server/middleware-build-manifest.js +1 -1
  27. package/.next/standalone/packages/explorer/.next/server/pages/404.html +1 -1
  28. package/.next/standalone/packages/explorer/.next/server/pages/500.html +1 -1
  29. package/.next/standalone/packages/explorer/.next/server/server-reference-manifest.js +1 -1
  30. package/.next/standalone/packages/explorer/.next/server/server-reference-manifest.json +1 -1
  31. package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/[chainName]/layout-0f633b7a79b40ee1.js +1 -0
  32. package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/[chainName]/worlds/[worldAddress]/explore/{page-926ecf9293f76faa.js → page-b1c7048e940d0c1b.js} +1 -1
  33. package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/[chainName]/worlds/[worldAddress]/interact/page-494f444b2d61adad.js +1 -0
  34. package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/[chainName]/worlds/[worldAddress]/layout-27e0d5e0110b6168.js +1 -0
  35. package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/[chainName]/worlds/[worldAddress]/observe/{page-e9b1ddafd1d927ee.js → page-68e31dceaa643854.js} +2 -2
  36. package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/layout-6a1f0687506a185c.js +1 -0
  37. package/dist/exports/observer.d.ts +1 -1
  38. package/dist/exports/observer.js +85 -78
  39. package/dist/exports/observer.js.map +1 -1
  40. package/package.json +10 -10
  41. package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/[chainName]/layout-9f489448fa14a85f.js +0 -1
  42. package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/[chainName]/worlds/[worldAddress]/interact/page-984dda96e00e39c3.js +0 -1
  43. package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/[chainName]/worlds/[worldAddress]/layout-1b78d0d640461acf.js +0 -1
  44. package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/layout-6951af4abdb84b18.js +0 -1
  45. /package/.next/standalone/packages/explorer/.next/static/{BQ_8YgIMmp3OV-kp6AuFr → FZL22nL54UmKT7CnYdkIU}/_buildManifest.js +0 -0
  46. /package/.next/standalone/packages/explorer/.next/static/{BQ_8YgIMmp3OV-kp6AuFr → FZL22nL54UmKT7CnYdkIU}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1667],{10958:function(e,t,n){Promise.resolve().then(n.bind(n,60809))},60809:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return eN}});var r=n(75536),a=n(6270),s=n(84367),i=n(97554),c=n(45215),o=n(23638),l=n(63643),d=n(11362),u=n(35605),f=n(68347);function p(){let{id:e}=(0,u.A)(),{data:t}=(0,d.O)({watch:!0,chainId:e,query:{refetchInterval:1e3}});return(0,r.jsx)("div",{className:"inline-block w-[50px]",children:t?(0,r.jsxs)("div",{className:"flex items-center justify-end gap-x-2 text-xs font-extrabold text-green-600",children:[(0,r.jsx)("span",{className:"inline-block h-[8px] w-[8px] animate-pulse rounded-full bg-success"}),(0,r.jsx)("span",{className:"opacity-70",children:t.toString()})]}):(0,r.jsx)(f.O,{className:"h-[10px]"})})}var m=n(35431),h=n(66585),x=n(52616),b=n(1372),v=n(79617),y=n(1839),g=n(92463),j=n(91062),w=n(31848),N=n(3343),k=n(36792),O=n(89702),C=n(5739),z=n(63322),E=n(19389);let I=["0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80","0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d","0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a","0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6","0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a","0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba","0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e","0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356","0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97","0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6"].map(e=>(0,z.L)(e)),Z=e=>{let t=e!==v.O.id;return I.map((e,n)=>(function(e){let{id:t,name:n,accounts:r,disabled:a}=e;if(!r.length)throw Error("missing accounts");let s=!1;return(0,E.K)(()=>({id:t,name:n,type:"anvil",accounts:r,connect:async()=>(s=!0,{accounts:r.map(e=>e.address),chainId:v.O.id}),async disconnect(){s=!1},getAccounts:async()=>r.map(e=>e.address),getChainId:async()=>v.O.id,getProvider:async()=>(0,C.d)()({chain:v.O}),async isAuthorized(){return!a&&!!s&&!!(await this.getAccounts()).length},async onAccountsChanged(){},async onDisconnect(){},onChainChanged(){}}))})({id:"anvil-".concat(n),name:"Anvil #".concat(n+1),accounts:[e],disabled:t}))};function _(e){return"anvil"===e.type}var A=n(85723),R=n(55823),U=n(19362),S=n(51550),F=n(93715);let K=F.fC;F.ZA;let M=F.B4,B=O.forwardRef((e,t)=>{let{className:n,children:a,...s}=e;return(0,r.jsxs)(F.xz,{ref:t,className:(0,h.cn)("flex h-10 w-full items-center justify-between px-3 py-2 text-sm","rounded-md border border-input bg-background ring-offset-background","placeholder:text-muted-foreground","focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",n),...s,children:[a,(0,r.jsx)(F.JO,{asChild:!0,children:(0,r.jsx)(R.Z,{className:"h-4 w-4 opacity-50"})})]})});B.displayName=F.xz.displayName;let P=O.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)(F.u_,{ref:t,className:(0,h.cn)("flex cursor-default items-center justify-center py-1",n),...a,children:(0,r.jsx)(U.Z,{className:"h-4 w-4"})})});P.displayName=F.u_.displayName;let D=O.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)(F.$G,{ref:t,className:(0,h.cn)("flex cursor-default items-center justify-center py-1",n),...a,children:(0,r.jsx)(R.Z,{className:"h-4 w-4"})})});D.displayName=F.$G.displayName;let T=O.forwardRef((e,t)=>{let{className:n,children:a,position:s="popper",...i}=e;return(0,r.jsx)(F.h_,{children:(0,r.jsxs)(F.VY,{ref:t,className:(0,h.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden","rounded-md border bg-popover text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0","data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2","data-[side=top]:slide-in-from-bottom-2","popper"===s&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",n),position:s,...i,children:[(0,r.jsx)(P,{}),(0,r.jsx)(F.l_,{className:(0,h.cn)("p-1","popper"===s&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:a}),(0,r.jsx)(D,{})]})})});T.displayName=F.VY.displayName,O.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)(F.__,{ref:t,className:(0,h.cn)("py-1.5 pl-8 pr-2 text-sm font-semibold",n),...a})}).displayName=F.__.displayName;let W=O.forwardRef((e,t)=>{let{className:n,children:a,...s}=e;return(0,r.jsxs)(F.ck,{ref:t,className:(0,h.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",n),...s,children:[(0,r.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,r.jsx)(F.wU,{children:(0,r.jsx)(S.Z,{className:"h-4 w-4"})})}),(0,r.jsx)(F.eT,{children:a})]})});W.displayName=F.ck.displayName,O.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)(F.Z0,{ref:t,className:(0,h.cn)("-mx-1 my-1 h-px bg-muted",n),...a})}).displayName=F.Z0.displayName;var H=n(71118);function L(e){var t;let{connector:n}=e,a=null===(t=n.accounts[0])||void 0===t?void 0:t.address,{data:s}=(0,j.K)({address:a,query:{refetchInterval:15e3,select:e=>null==e?void 0:e.value,enabled:!!a}});return(0,r.jsxs)(W,{value:n.id,className:"font-mono",children:[n.name,void 0!==s&&" (".concat((0,h.az)(s)," ETH)")," ",a&&(0,r.jsxs)("span",{className:"opacity-70",children:["(",(0,r.jsx)(H.a,{hex:a}),")"]})]},a)}function q(){let[e,t]=(0,O.useState)(!1),{connector:n}=(0,w.m)(),{connect:a}=(0,N.$)(),{openConnectModal:s}=(0,y.We)(),i=[...(0,k.Y)().filter(_)];return(0,r.jsxs)(K,{open:e,onOpenChange:t,value:null==n?void 0:n.id,onValueChange:e=>{let t=i.find(t=>t.id===e);t&&a({connector:t})},children:[(0,r.jsx)(A.z,{size:"sm",asChild:!0,children:(0,r.jsxs)(B,{children:[(0,r.jsx)(x.Z,{className:"mr-2 inline-block h-4 w-4"}),(0,r.jsx)(M,{placeholder:"Connect"})]})}),(0,r.jsxs)(T,{children:[i.map(e=>(0,r.jsx)(L,{connector:e},e.id)),(0,r.jsxs)(A.z,{size:"sm",className:"mt-2 w-full font-mono",onClick:()=>{t(!1),null==s||s()},children:[(0,r.jsx)(g.Z,{className:"mr-2 inline-block h-4 w-4"}),"Add wallet"]})]})]})}function V(){let{id:e}=(0,u.A)();return(0,r.jsx)(y.NL.Custom,{children:t=>{let{account:n,chain:a,openAccountModal:s,openChainModal:i,openConnectModal:c,mounted:o}=t;return(0,r.jsx)("div",{className:(0,h.cn)({"pointer-events-none select-none opacity-0":!o}),children:o&&n&&a?a.unsupported?(0,r.jsxs)(A.z,{type:"button",size:"sm",onClick:i,children:[(0,r.jsx)(b.Z,{className:"mr-2 inline-block h-4 w-4"}),"Wrong network"]}):(0,r.jsx)("div",{className:"flex-wrap gap-2",children:(0,r.jsxs)(A.z,{type:"button",size:"sm",onClick:s,variant:"secondary",children:[(0,r.jsx)(x.Z,{className:"mr-2 inline-block h-4 w-4"}),n.displayName,(0,r.jsx)("span",{className:"ml-2 font-normal opacity-70",children:n.displayBalance?" (".concat(n.displayBalance,")"):""})]})}):e===v.O.id?(0,r.jsx)(q,{}):(0,r.jsxs)(A.z,{type:"button",size:"sm",onClick:c,children:[(0,r.jsx)(x.Z,{className:"mr-2 inline-block h-4 w-4"})," Connect"]})})}})}function Y(e){let{href:t,children:n}=e,s=(0,a.usePathname)(),i=(0,o.g)();return(0,r.jsx)(c.default,{href:i(t),className:"group px-3 text-sm font-semibold uppercase",children:(0,r.jsx)("span",{className:(0,h.cn)("flex border-b-4 border-transparent pb-3 pt-4 transition group-hover:border-orange-500/30",s===i(t)?"border-orange-500 group-hover:border-orange-400":null),children:n})})}function G(){let{data:e,isFetched:t}=(0,l.b)();return(0,r.jsxs)("div",{className:"pb-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"-mx-3 flex",children:[(0,r.jsx)(Y,{href:"explore",children:"Explore"}),(0,r.jsx)(Y,{href:"interact",children:"Interact"}),(0,r.jsx)(Y,{href:"observe",children:"Observe"})]}),t&&!(null==e?void 0:e.isWorldDeployed)&&(0,r.jsxs)("h4",{className:"font-mono text-sm font-bold uppercase opacity-70",children:["Waiting for world deploy ",(0,r.jsx)(i.Z,{className:"inline-block h-4 w-4 animate-spin"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-x-4",children:[(0,r.jsx)(p,{}),(0,r.jsx)(V,{})]})]}),(0,r.jsx)(m.Z,{})]})}var $=n(84511),J=n(1405),Q=n(90067),X=n(43240),ee=n(82226),et=n(2451);n(64612);var en=n(91004),er=n(50693);let ea=new en.S;function es(e){let{children:t}=e,n=(0,u.A)(),a=(0,O.useMemo)(()=>(0,$._)({chains:[n],connectors:[(0,Q.L)(),(0,X.O)({dappMetadata:{name:"World Explorer"}}),(0,ee.T)(),...Z(n.id)],transports:{[n.id]:(0,C.d)()},ssr:!0}),[n]);return(0,r.jsx)(J.F,{config:a,children:(0,r.jsx)(er.aH,{client:ea,children:(0,r.jsx)(y.pj,{theme:(0,et.$)(),children:t})})})}var ei=n(12565),ec=n(95483),eo=n(55024),el=n(88873),ed=n(4876),eu=n(62886),ef=n(97869),ep=n(64236),em=n(8218),eh=n(2913),ex=n(25779),eb=n(60188),ev=n(57253),ey=n(50011);let eg={type:"event",name:"UserOperationEvent",inputs:[{type:"bytes32",name:"userOpHash",indexed:!0},{type:"address",name:"sender",indexed:!0},{type:"address",name:"paymaster",indexed:!0},{type:"uint256",name:"nonce",indexed:!1},{type:"bool",name:"success",indexed:!1},{type:"uint256",name:"actualGasCost",indexed:!1},{type:"uint256",name:"actualGasUsed",indexed:!1}]};function ej(e){let t,n,r,{abi:a,target:s,data:i,value:c}=e;try{let e=(0,ei.p)({abi:a,data:i});if(t=e.functionName,n=e.args,"callFrom"===t){let[e,,s]=n,i=(0,ei.p)({abi:a,data:s});t=i.functionName,n=i.args,r=e}}catch(e){t=i.length>10?i.slice(0,10):"unknown"}return{to:s,from:r,functionName:t,args:n,value:c}}function ew(){let{id:e}=(0,u.A)(),{worldAddress:t}=(0,a.useParams)(),n=(0,ef.Z)(),{data:r}=(0,l.b)(),s=null==r?void 0:r.abi,{transactions:i,setTransaction:c,updateTransaction:o}=(0,eb.oR)(ey.h),d=(0,eb.oR)(ev.store,e=>e.writes),f=(0,O.useCallback)(e=>{var n,r;let{hash:a,writeId:i,timestamp:o,receipt:l,transaction:d,userOperation:u}=e;if(!s)return;let{functionName:f,args:p}=(0,ei.p)({abi:(0,ec.V)(["function execute(address target, uint256 value, bytes calldata data)","function executeBatch((address target,uint256 value,bytes data)[])"]),data:u.callData}),m=(function(e){let{abi:t,functionName:n,decodedArgs:r}=e;if("execute"===n){let e=r[0],n=r[1];return[ej({abi:t,target:e,data:r[2],value:n})]}return"executeBatch"===n?r[0].map(e=>{let{target:n,data:r,value:a}=e;return ej({abi:t,target:n,data:r,value:a})}):[]})({abi:s,functionName:f,decodedArgs:p}).filter(e=>{let{to:n}=e;return n&&(0,eo.K)(n)===(0,eo.K)(t)});if(0===m.length)return;let h=(0,el.h)({abi:[...s,eg],logs:l.logs}),x=h.find(e=>{let{eventName:t}=e;return"UserOperationEvent"===t});c({hash:a,writeId:null!=i?i:a,from:null!==(r=null===(n=m[0])||void 0===n?void 0:n.from)&&void 0!==r?r:d.from,timestamp:o,transaction:d,calls:m,receipt:l,logs:h,value:d.value,status:(null==x?void 0:x.args.success)?"success":"reverted"})},[s,c,t]),p=(0,O.useCallback)(async e=>{let{writeId:t,timestamp:r,transaction:a}=e;if(!s)return;let i=a.hash,c=await (0,em.e)(n,{hash:a.hash});for(let e of(0,ei.p)({abi:ed.i,data:a.input}).args[0])f({hash:i,writeId:t,timestamp:r,receipt:c,transaction:a,userOperation:e})},[s,f,n]),m=(0,O.useCallback)(async e=>{let r,a,i,l,{writeId:d,hash:u,timestamp:f,transaction:p}=e;if(!s||!p.to)return;try{let e=(0,ei.p)({abi:s,data:p.input});r=e.functionName,a=e.args}catch(e){i=e,r=p.input.length>10?p.input.slice(0,10):"unknown"}c({hash:u,writeId:null!=d?d:u,from:p.from,timestamp:f,transaction:p,status:"pending",calls:[{to:p.to,functionName:r,args:a}],value:p.value});try{l=await (0,em.e)(n,{hash:u})}catch(e){console.error("Failed to fetch transaction receipt. Transaction hash: ".concat(u))}if(l&&"reverted"===l.status&&r)try{await (0,eh.a)(n,{account:p.from,address:t,abi:s,value:p.value,blockNumber:l.blockNumber,functionName:r,args:a})}catch(e){i=e}let m=l?l.status:"unknown",h=(0,el.h)({abi:s,logs:(null==l?void 0:l.logs)||[]});o(u,{receipt:l,logs:h,status:m,error:i})},[s,n,t,c,o]),h=(0,O.useCallback)(async e=>{let{hash:r,writeId:a,timestamp:i}=e;if(!s)return;let c=await (0,ex.f)(n,{hash:r});c.to&&(0,eo.K)(c.to)===(0,eo.K)(eu.V)?p({writeId:a,timestamp:i,transaction:c}):c.to&&(0,eo.K)(c.to)===(0,eo.K)(t)&&m({hash:r,writeId:a,timestamp:i,transaction:c})},[s,n,t,p,m]);return(0,O.useEffect)(()=>{for(let{hash:e,writeId:t,time:n}of Object.values(d))e&&!i.find(t=>t.hash===e)&&h({hash:e,writeId:t,timestamp:BigInt(n)/1000n})},[h,d,i,t]),(0,ep.C)({onBlock(e){for(let t of e.transactions)i.find(e=>e.hash===t)||h({hash:t,timestamp:e.timestamp})},chainId:e,pollingInterval:e===v.O.id?10:500}),null}function eN(e){let{params:{chainName:t},children:n}=e;return(0,s.oK)(t)?(0,r.jsxs)(es,{children:[(0,r.jsxs)("div",{className:"flex h-screen flex-col",children:[(0,r.jsx)(G,{}),n]}),(0,r.jsx)(ew,{})]}):(0,a.notFound)()}},50011:function(e,t,n){"use strict";n.d(t,{h:function(){return r}});let r=(0,n(30521).M)()(e=>({transactions:[],setTransaction:t=>e(e=>({transactions:[...e.transactions,t]})),updateTransaction:(t,n)=>e(e=>({transactions:e.transactions.map(e=>e.hash===t?{...e,...n}:e)}))}))},35605:function(e,t,n){"use strict";n.d(t,{A:function(){return s}});var r=n(6270),a=n(84367);function s(){let{chainName:e}=(0,r.useParams)();return(0,a.Yx)(e),a.df[e]}},23638:function(e,t,n){"use strict";n.d(t,{g:function(){return s}});var r=n(6270),a=n(39723);function s(){let{chainName:e,worldAddress:t}=(0,r.useParams)();return n=>"".concat((0,a.m)(e,t),"/").concat(n)}},63643:function(e,t,n){"use strict";n.d(t,{b:function(){return i}});var r=n(6270),a=n(95951),s=n(84367);function i(){let{chainName:e,worldAddress:t}=(0,r.useParams)();(0,s.Yx)(e);let{id:n}=s.df[e];return(0,a.a)({queryKey:["worldAbi",e,t],queryFn:async()=>{let e=await fetch("/api/world-abi?".concat(new URLSearchParams({chainId:n.toString(),worldAddress:t})));return await e.json()},select:e=>({abi:e.abi||[],isWorldDeployed:e.isWorldDeployed}),refetchInterval:15e3})}},39723:function(e,t,n){"use strict";function r(e,t){return"/".concat(e,"/worlds/").concat(t)}n.d(t,{m:function(){return r}})},84367:function(e,t,n){"use strict";n.d(t,{is:function(){return m},M0:function(){return f},oK:function(){return h},df:function(){return p},wG:function(){return x},Yx:function(){return b}});var r=n(79617),a=n(53103),s=n(20536),i=n(49249),c=n(76271);({...a.t});var o={...s.g,iconUrls:["https://redstone.xyz/chain-icons/redstone.png"],indexerUrl:"https://indexer.mud.redstonechain.com"},l={...i.T,iconUrls:["https://redstone.xyz/chain-icons/garnet.png"],indexerUrl:"https://indexer.mud.garnetchain.com"},d={http:["https://rpc.rhodolitechain.com"],webSocket:["wss://rpc.rhodolitechain.com"]},u={...c.i,name:"Rhodolite Devnet",testnet:!0,id:17420,sourceId:17001,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:d,bundler:d,quarryPassIssuer:d,wiresaw:d},contracts:{...c.i.contracts,quarryPaymaster:{address:"0x61f22c3827d90c390e0e2aaf220971524ac0a68d",blockCreated:11262}},blockExplorers:{default:{name:"Blockscout",url:"https://explorer.rhodolitechain.com"},worldsExplorer:{name:"MUD Worlds Explorer",url:"https://explorer.mud.dev/rhodolite/worlds"}},iconUrls:["https://redstone.xyz/chain-icons/rhodolite.png"],indexerUrl:"https://indexer.mud.rhodolitechain.com"};let f=["world","store","metadata","puppet","erc20-puppet","erc721-puppet"],p={anvil:r.O,rhodolite:u,garnet:l,redstone:o},m=Object.fromEntries(Object.entries(p).map(e=>{let[t,n]=e;return[n.id,t]}));function h(e){return"string"==typeof e&&e in p}function x(e){if(!("number"==typeof e&&e in m))throw Error("Invalid chain ID. Supported chains are: ".concat(Object.keys(m).join(", "),"."))}function b(e){if(!h(e))throw Error("Invalid chain name. Supported chains are: ".concat(Object.keys(p).join(", "),"."))}},85723:function(e,t,n){"use strict";n.d(t,{z:function(){return l}});var r=n(75536),a=n(67157),s=n(89702),i=n(14292),c=n(66585);let o=(0,a.j)((0,c.cn)("inline-flex items-center justify-center rounded-md","whitespace-nowrap text-sm font-medium","ring-offset-background transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:pointer-events-none disabled:opacity-50"),{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),l=s.forwardRef((e,t)=>{let{className:n,variant:a,size:s,type:l="button",asChild:d=!1,...u}=e,f=d?i.g7:"button";return(0,r.jsx)(f,{className:(0,c.cn)(o({variant:a,size:s,className:n})),ref:t,type:l,...u})});l.displayName="Button"},35431:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(75536),a=n(89702),s=n(80967),i=n(66585);let c=a.forwardRef((e,t)=>{let{className:n,orientation:a="horizontal",decorative:c=!0,...o}=e;return(0,r.jsx)(s.f,{ref:t,decorative:c,orientation:a,className:(0,i.cn)("shrink-0 bg-border","horizontal"===a?"h-[1px] w-full":"h-full w-[1px]",n),...o})});c.displayName=s.f.displayName},68347:function(e,t,n){"use strict";n.d(t,{O:function(){return s}});var r=n(75536),a=n(66585);function s(e){let{className:t,...n}=e;return(0,r.jsx)("div",{className:(0,a.cn)("animate-pulse rounded-md bg-muted",t),...n})}},71118:function(e,t,n){"use strict";n.d(t,{a:function(){return a}});var r=n(75536);function a(e){let{hex:t}=e;return t.length<=10?(0,r.jsx)("span",{children:t}):(0,r.jsxs)("span",{children:[(0,r.jsx)("span",{className:"after:select-none after:content-['…']",children:t.slice(0,6)}),(0,r.jsx)("span",{className:"tracking-[-1ch] text-transparent",children:t.slice(6,-4)}),t.slice(-4)]})}},83966:function(e,t,n){"use strict";n.d(t,{M:function(){return r}});let r="explorer/observer"},41374:function(e,t,n){"use strict";n.d(t,{f:function(){return a}});var r=n(95674);let a=n.n(r)()("mud:explorer").extend("observer")},57253:function(e,t,n){"use strict";n.d(t,{store:function(){return c}});var r=n(30521),a=n(66585),s=n(83966),i=n(41374);let c=(0,r.M)(()=>({writes:{}}));(0,i.f)("listening for relayed messages",s.M);let o=[];new BroadcastChannel(s.M).addEventListener("message",e=>{"ping"!==e.data.type&&o.push(e)}),setInterval(function(){0!==o.length&&c.setState(e=>{let t=e;for(let{data:e}of o){if("ping"===e.type)continue;let n="write"===e.type?{...e,events:[]}:t.writes[e.writeId];if(!n)continue;let r=n.hash;"waitForTransactionReceipt"===e.type?r=e.hash:"waitForUserOperationReceipt:result"===e.type&&(0,a.r8)(e)&&(r=e.value.receipt.transactionHash),t={...t,writes:{...t.writes,[e.writeId]:{...n,type:e.type,hash:r,userOpHash:"waitForUserOperationReceipt"===e.type?e.userOpHash:n.userOpHash,events:[...n.events,e]}}}}return o.length=0,t})},100)},66585:function(e,t,n){"use strict";n.d(t,{az:function(){return o},cn:function(){return i},fu:function(){return c},r8:function(){return l}});var r=n(84141),a=n(88014),s=n(47228);function i(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,s.m)((0,a.W)(t))}function c(e){return e.replace(/[A-Z]/g,e=>"_".concat(e.toLowerCase())).replace(/^_/,"")}function o(e){let t=(0,r.d)(e),n=Math.floor(parseFloat(t)).toString().length;return parseFloat(t).toLocaleString("en-US",{maximumFractionDigits:Math.max(0,6-n)})}function l(e){return"fulfilled"===e.status}}},function(e){e.O(0,[2387,7027,6095,3388,855,9726,5674,6658,8685,5401,426,5215,9001,4636,9213,8474,1744],function(){return e(e.s=10958)}),_N_E=e.O()}]);
@@ -13,9 +13,9 @@
13
13
  *
14
14
  * This source code is licensed under the ISC license.
15
15
  * See the LICENSE file in the root directory of this source tree.
16
- */let a=(0,s.Z)("Box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]),i=(0,s.Z)("UserPen",[["path",{d:"M11.5 15H7a4 4 0 0 0-4 4v2",key:"15lzij"}],["path",{d:"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1817ys"}],["circle",{cx:"10",cy:"7",r:"4",key:"e45bow"}]]),l=(0,s.Z)("CheckCheck",[["path",{d:"M18 6 7 17l-5-5",key:"116fxf"}],["path",{d:"m22 10-7.5 7.5L13 16",key:"ke71qq"}]]);var c=r(11471);/**
16
+ */let a=(0,s.Z)("Box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]),i=(0,s.Z)("UserPen",[["path",{d:"M11.5 15H7a4 4 0 0 0-4 4v2",key:"15lzij"}],["path",{d:"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1817ys"}],["circle",{cx:"10",cy:"7",r:"4",key:"e45bow"}]]),l=(0,s.Z)("CheckCheck",[["path",{d:"M18 6 7 17l-5-5",key:"116fxf"}],["path",{d:"m22 10-7.5 7.5L13 16",key:"ke71qq"}]]);var o=r(11471);/**
17
17
  * @license lucide-react v0.408.0 - ISC
18
18
  *
19
19
  * This source code is licensed under the ISC license.
20
20
  * See the LICENSE file in the root directory of this source tree.
21
- */let o=(0,s.Z)("ReceiptText",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M14 8H8",key:"1l3xfs"}],["path",{d:"M16 12H8",key:"1fr5h0"}],["path",{d:"M13 16H8",key:"wsln4y"}]]);var u=r(89702),d=r(46721),h=r(96917),p=r(67157),m=r(66585);let f=(0,p.j)((0,m.cn)("inline-flex items-center px-2.5 py-0.5","rounded-md border","text-xs font-semibold transition-colors","focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2"),{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",tertiary:"border-transparent bg-tertiary text-tertiary-foreground hover:bg-tertiary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function x(e){let{className:t,variant:r,...s}=e;return(0,n.jsx)("div",{className:(0,m.cn)(f({variant:r}),t),...s})}var g=r(68347),b=r(34431),j=r(71118),v=r(35605),w=r(84367);function y(e){let{hash:t,children:r}=e,{id:s}=(0,v.A)(),a=function(e){var t;let{hash:r,chainId:n}=e;if(!r)return;(0,w.wG)(n);let s=w.is[n],a=w.df[s],i="blockExplorers"in a&&(null===(t=a.blockExplorers)||void 0===t?void 0:t.default.url);if(i)return"".concat(i,"/tx/").concat(r)}({chainId:s,hash:t});return a?(0,n.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"flex hover:underline",children:r}):r}function N(e){let t=Math.floor(Date.now()/1e3)-Number(e);for(let e of[{name:"y",limit:31536e3,inSeconds:31536e3},{name:"mth",limit:2592e3,inSeconds:2592e3},{name:"d",limit:86400,inSeconds:86400},{name:"h",limit:3600,inSeconds:3600},{name:"m",limit:60,inSeconds:60},{name:"s",limit:1,inSeconds:1}])if(t>=e.limit){let r=Math.floor(t/e.inSeconds);return"".concat(r).concat(e.name," ago")}return"0s ago"}function k(e){let{timestamp:t}=e,[r,s]=(0,u.useState)(()=>N(t));return(0,u.useEffect)(()=>{let e=setInterval(()=>{s(N(t))},1e3);return()=>clearInterval(e)},[t]),(0,n.jsx)("span",{className:"inline-block min-w-[60px] text-white/60",title:new Date(1e3*Number(t)).toISOString(),children:r})}var S=r(32858);let R={write:{priority:1,label:"write"},"write:result":{priority:2},waitForTransaction:{priority:3,label:"state update"},"waitForTransaction:result":{priority:4},waitForTransactionReceipt:{priority:5,label:"transaction receipt"},"waitForTransactionReceipt:result":{priority:6},waitForUserOperationReceipt:{priority:5,label:"user operation receipt"},"waitForUserOperationReceipt:result":{priority:6}};function T(e){let{time:t,events:r}=e,n=Math.max(...r.map(e=>e.time-t));return Object.values(r).sort((e,t)=>{var r,n;return(null===(r=R[e.type])||void 0===r?void 0:r.priority)-(null===(n=R[t.type])||void 0===n?void 0:n.priority)}).map(e=>{var s;let a=e.type;if(a.endsWith(":result"))return;let i=r.find(e=>e.type==="".concat(a,":result")),l=(null!==(s=null==i?void 0:i.time)&&void 0!==s?s:e.time)-e.time,c=e.time-t,o=R[a];return{type:a,label:"label"in o?o.label:a,duration:l,startPercentage:c/n*100,widthPercentage:l/n*100}}).filter(S.$K)}function O(e){let t=T(e);return(0,n.jsx)("div",{className:"ml-4 inline-block h-full w-14 grayscale lg:-mr-8 lg:ml-8 xl:-mr-16 xl:ml-16",children:t.map(e=>(0,n.jsx)("div",{title:e.label,className:(0,m.cn)("h-1",{"bg-[#5c9af6]":"write"===e.type,"mt-0.5 bg-[#4d7cc0]":"waitForTransaction"===e.type,"mt-0.5 bg-[#3d5c8a]":"waitForTransactionReceipt"===e.type||"waitForUserOperationReceipt"===e.type}),style:{width:"".concat(e.widthPercentage,"%"),marginLeft:"".concat(e.startPercentage,"%")}},e.label))})}var M=r(19362),E=r(55823),C=r(84141),F=r(35431),I=r(79701),Z=r(37979),U=r(33586),A=r(42473),H=r(368),P=r(97869);function z(e){let{hash:t}=e,{id:r}=(0,v.A)(),{data:s}=function(){var e,t;let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{hash:n,transactionReceipt:s,query:a={}}=r,i=(0,P.Z)(r),l=(0,H.x)({config:i}),c=function(e,t={}){return{async queryFn({queryKey:t}){let{hash:r,transactionReceipt:n,scopeKey:s,...a}=t[1];if(!r&&!n)throw Error("hash or transactionReceipt is required");return await function(e,t){let{chainId:r,...n}=t,s=e.getClient({chainId:r});return(0,Z.s)(s,I.a,"getTransactionConfirmations")(n)}(e,{hash:r,transactionReceipt:n,...a})??null},queryKey:function(e={}){return["transactionConfirmations",(0,U.OP)(e)]}(t)}}(i,{...r,chainId:null!==(e=r.chainId)&&void 0!==e?e:l}),o=!!(!(n&&s)&&(n||s)&&(null===(t=a.enabled)||void 0===t||t));return(0,A.aM)({...a,...c,enabled:o})}({hash:t,chainId:r,query:{refetchInterval:1e3,enabled:!!t}});return s?(0,n.jsxs)("span",{className:"flex items-center text-xs font-extrabold text-green-600",children:[(0,n.jsx)("span",{className:"mr-2 inline-block h-2 w-2 animate-pulse rounded-full bg-success"}),(0,n.jsx)("span",{className:"opacity-70",children:s.toString()})]}):(0,n.jsx)(g.O,{className:"h-4 w-[50px]"})}function D(e){let t=T(e);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(F.Z,{className:"my-5"}),(0,n.jsxs)("div",{className:"flex items-start gap-x-4 pb-2",children:[(0,n.jsx)("h3",{className:"inline-block w-[45px] pb-2 text-2xs font-bold uppercase",children:"Timing"}),(0,n.jsx)("div",{className:"w-full border border-white/20 p-2 pb-3",children:(0,n.jsx)("div",{className:"grid grid-cols-[auto_1fr_auto] items-center gap-x-4 gap-y-1",children:t.map(e=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("span",{className:"text-xs",children:[e.label,":"]}),(0,n.jsx)("span",{className:(0,m.cn)("h-1",{"bg-[#5c9af6]":"write"===e.type,"bg-[#4d7cc0]":"waitForTransaction"===e.type,"bg-[#3d5c8a]":"waitForTransactionReceipt"===e.type||"waitForUserOperationReceipt"===e.type}),style:{width:"".concat(e.widthPercentage,"%"),marginLeft:"".concat(e.startPercentage,"%")}}),(0,n.jsxs)("span",{className:"text-right text-xs",children:[e.duration,"ms"]})]}))})})]})]})}function V(e){let{label:t,status:r,children:s}=e;return(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{className:"text-2xs font-bold uppercase text-white/60",children:t}),(0,n.jsx)("p",{className:"pt-1 text-xs uppercase",children:null!=s?s:"rejected"===r?(0,n.jsx)("span",{className:"text-white/60",children:"N/A"}):(0,n.jsx)(g.O,{className:"h-4 w-[100px]"})})]})}function _(e){var t;let{row:r}=e,s=null==r?void 0:r.original,a=s.status,i=null==s?void 0:s.logs,l=null==s?void 0:s.receipt;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(b.SC,{className:(0,m.cn)("relative cursor-pointer",{"bg-muted/50":r.getIsExpanded()}),onClick:()=>r.toggleExpanded(),children:[r.getVisibleCells().map(e=>(0,n.jsx)(b.pj,{children:(0,d.ie)(e.column.columnDef.cell,e.getContext())},e.id)),r.getIsExpanded()?(0,n.jsx)(M.Z,{className:"absolute right-4 top-1/2 h-4 w-4 -translate-y-1/2 text-white/60"}):(0,n.jsx)(E.Z,{className:"absolute right-4 top-1/2 h-4 w-4 -translate-y-1/2 text-white/60"})]}),r.getIsExpanded()&&(0,n.jsx)(b.SC,{className:"border-b-white/20 bg-muted/50 hover:bg-muted/50",children:(0,n.jsx)(b.pj,{colSpan:$.length,children:s&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-x-2 gap-y-5 sm:grid-cols-4 md:grid-cols-5",children:[(0,n.jsx)(V,{label:"Confirmations",status:a,children:"rejected"!==a?(0,n.jsx)(z,{hash:null===(t=s.transaction)||void 0===t?void 0:t.hash}):null}),(0,n.jsxs)(V,{label:"Tx value",status:a,children:[s.value?(0,C.d)(s.value):0," ETH"]}),(0,n.jsx)(V,{label:"Gas used",status:a,children:null==l?void 0:l.gasUsed.toString()}),(0,n.jsx)(V,{label:"Gas price",status:a,children:null==l?void 0:l.effectiveGasPrice.toString()}),(0,n.jsx)(V,{label:"Tx cost",status:a,children:l?"".concat((0,C.d)(l.gasUsed*l.effectiveGasPrice)," ETH"):null})]}),(0,n.jsx)(F.Z,{className:"my-5"}),(0,n.jsxs)("div",{className:"flex items-start gap-x-4",children:[(0,n.jsx)("h3",{className:"w-[45px] flex-shrink-0 text-2xs font-bold uppercase",children:"Inputs"}),s.calls.length>0?(0,n.jsx)("div",{className:"flex w-full flex-col gap-y-4",children:s.calls.map((e,t)=>{var r;return(0,n.jsxs)("div",{className:"min-w-0 flex-grow border border-white/20 p-2 pt-1",children:[(0,n.jsxs)("span",{className:"text-xs",children:[e.functionName,":"]}),null===(r=e.args)||void 0===r?void 0:r.map((e,t)=>(0,n.jsxs)("div",{className:"flex",children:[(0,n.jsxs)("span",{className:"flex-shrink-0 text-xs text-white/60",children:["arg ",t+1,":"]}),(0,n.jsx)("span",{className:"ml-2 break-all text-xs",children:"object"==typeof e&&null!==e?JSON.stringify(e,null,2):String(e)})]},t)),e.value&&e.value>0n?(0,n.jsxs)("div",{className:"text-xs text-white/60",children:["value: ",(0,C.d)(e.value)," ETH"]}):null]},t)})}):(0,n.jsx)("p",{className:"text-2xs uppercase text-white/60",children:"No inputs"})]}),s.error?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(F.Z,{className:"my-5"}),(0,n.jsxs)("div",{className:"flex items-start gap-x-4",children:[(0,n.jsx)("h3",{className:"w-[45px] flex-shrink-0 text-2xs font-bold uppercase",children:"Error"}),(0,n.jsx)("div",{className:"flex-grow whitespace-pre-wrap border border-red-500 p-2 font-mono text-xs",children:s.error.message})]})]}):null,s.error?null:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(F.Z,{className:"my-5"}),(0,n.jsxs)("div",{className:"flex items-start gap-x-4",children:[(0,n.jsx)("h3",{className:"inline-block w-[45px] flex-shrink-0 text-2xs font-bold uppercase",children:"Logs"}),Array.isArray(i)&&i.length>0?(0,n.jsx)("div",{className:"flex-grow break-all border border-white/20 p-2 pb-3",children:(0,n.jsx)("ul",{children:i.map((e,t)=>{let r="eventName"in e?e.eventName:null,s="args"in e?e.args:null;return(0,n.jsxs)("li",{children:[!!r&&(0,n.jsxs)("span",{className:"text-xs",children:[null==r?void 0:r.toString(),":"]}),s&&(0,n.jsx)("ul",{className:"list-inside",children:Object.entries(s).map(e=>{let[t,r]=e;return(0,n.jsxs)("li",{className:"mt-1 flex",children:[(0,n.jsxs)("span",{className:"flex-shrink-0 text-xs text-white/60",children:[t,": "]}),(0,n.jsx)("span",{className:"ml-2 break-all text-xs",children:String(r)})]},t)})}),t<i.length-1&&(0,n.jsx)(F.Z,{className:"my-4"})]},t)})})}):"pending"===a?(0,n.jsx)(g.O,{className:"h-4 w-full"}):(0,n.jsx)("p",{className:"text-2xs uppercase text-white/60",children:"No logs"})]})]}),s.write&&(0,n.jsx)(D,{...s.write})]})})})]})}var q=r(6270),G=r(55024),K=r(60188),L=r(57253),B=r(50011);let W=(0,h.Cl)(),$=[W.accessor("receipt.blockNumber",{header:"Block",cell:e=>{if("rejected"===e.row.original.status)return(0,n.jsx)("span",{className:"text-white/60",children:"N/A"});let t=e.getValue();return t?(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)(a,{className:"mr-1 h-3 w-3"}),t.toString()]}):(0,n.jsx)(g.O,{className:"h-4 w-full"})}}),W.accessor("from",{header:"From",cell:e=>{let t=e.getValue();return t?(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)(i,{className:"mr-1 h-3 w-3"}),(0,n.jsx)(j.a,{hex:t})]}):(0,n.jsx)(g.O,{className:"h-4 w-full"})}}),W.accessor("calls",{header:"Function(s)",cell:e=>{let t=e.getValue(),r=e.row.original.status;return(0,n.jsxs)("div",{className:"flex items-center",children:[(0,n.jsx)("div",{className:"flex gap-2",children:t.map((e,t)=>{let{functionName:r}=e;return(0,n.jsx)(x,{variant:"secondary",children:r},t)})}),"pending"===r&&(0,n.jsx)(l,{className:"ml-2 h-4 w-4 text-white/60"}),"success"===r&&(0,n.jsx)(l,{className:"ml-2 h-4 w-4 text-green-400"}),("reverted"===r||"rejected"===r)&&(0,n.jsx)(c.Z,{className:"ml-2 h-4 w-4 text-red-400"})]})}}),W.accessor("hash",{header:"Tx hash",cell:e=>{if("rejected"===e.row.original.status)return(0,n.jsx)("span",{className:"text-white/60",children:"N/A"});let t=e.getValue();return t?(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)(o,{className:"mr-1 h-3 w-3"}),(0,n.jsx)(y,{hash:t,children:(0,n.jsx)(j.a,{hex:t})})]}):(0,n.jsx)(g.O,{className:"h-4 w-full"})}}),W.accessor("timestamp",{header:"Time",cell:e=>{let t=e.getValue(),r=e.row.original.write;return(0,n.jsxs)(n.Fragment,{children:[t?(0,n.jsx)(k,{timestamp:t}):(0,n.jsx)(g.O,{className:"h-4 w-14"}),r&&(0,n.jsx)(O,{...r})]})}})];function Y(){var e;let t=function(){let{worldAddress:e}=(0,q.useParams)(),t=(0,K.oR)(B.h,e=>e.transactions),r=(0,K.oR)(L.store,e=>e.writes),n=(0,u.useMemo)(()=>Object.values(r).map(t=>({...t,calls:t.calls.filter(t=>t.to&&(0,G.K)(t.to)===(0,G.K)(e))})).filter(e=>{let{calls:t}=e;return t.length>0}),[r,e]);return(0,u.useMemo)(()=>{let r=new Map;for(let t of n){let n=t.events.find(e=>"write:result"===e.type);r.set(t.hash||t.writeId,{hash:t.hash,writeId:t.writeId,from:t.from,status:(null==n?void 0:n.status)==="rejected"?"rejected":"pending",timestamp:BigInt(t.time)/1000n,calls:t.calls.filter(t=>t.to===e),error:n&&"reason"in n?n.reason:void 0,write:t})}for(let e of t){let t=r.get(e.hash);t?r.set(e.hash,{...e,write:t.write}):r.set(e.hash,{...e})}return Array.from(r.values()).sort((e,t)=>{var r,n;return Number(null!==(r=t.timestamp)&&void 0!==r?r:0n)-Number(null!==(n=e.timestamp)&&void 0!==n?n:0n)})},[t,n,e])}(),[r,s]=(0,u.useState)({}),a=(0,d.b7)({data:t,columns:$,state:{expanded:r},getRowId:e=>e.writeId,onExpandedChange:s,getCoreRowModel:(0,h.sC)(),getExpandedRowModel:(0,h.rV)()});return(0,n.jsxs)(b.iA,{children:[(0,n.jsx)(b.xD,{className:"sticky top-0 z-10 bg-[var(--color-background)]",children:a.getHeaderGroups().map(e=>(0,n.jsx)(b.SC,{children:e.headers.map(e=>(0,n.jsx)(b.ss,{className:"text-xs uppercase",children:e.isPlaceholder?null:(0,d.ie)(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,n.jsx)(b.RM,{children:(null===(e=a.getRowModel().rows)||void 0===e?void 0:e.length)?a.getRowModel().rows.map(e=>(0,n.jsx)(_,{row:e},e.id)):(0,n.jsx)(b.SC,{children:(0,n.jsx)(b.pj,{colSpan:$.length,children:(0,n.jsxs)("p",{className:"flex items-center justify-center gap-3 py-4 font-mono text-xs font-bold uppercase text-muted-foreground",children:[(0,n.jsx)("span",{className:"inline-block h-1.5 w-1.5 animate-ping rounded-full bg-muted-foreground"})," Waiting for transactions…"]})})})})]})}},50011:function(e,t,r){"use strict";r.d(t,{h:function(){return n}});let n=(0,r(30521).M)()(e=>({transactions:[],setTransaction:t=>e(e=>({transactions:[...e.transactions,t]})),updateTransaction:(t,r)=>e(e=>({transactions:e.transactions.map(e=>e.hash===t?{...e,...r}:e)}))}))},35605:function(e,t,r){"use strict";r.d(t,{A:function(){return a}});var n=r(6270),s=r(84367);function a(){let{chainName:e}=(0,n.useParams)();return(0,s.Yx)(e),s.df[e]}},84367:function(e,t,r){"use strict";r.d(t,{is:function(){return p},M0:function(){return d},oK:function(){return m},df:function(){return h},wG:function(){return f},Yx:function(){return x}});var n=r(79617),s=r(53103),a=r(20536),i=r(49249),l=r(76271);({...s.t});var c={...a.g,iconUrls:["https://redstone.xyz/chain-icons/redstone.png"],indexerUrl:"https://indexer.mud.redstonechain.com"},o={...i.T,iconUrls:["https://redstone.xyz/chain-icons/garnet.png"],indexerUrl:"https://indexer.mud.garnetchain.com"},u={...l.i,name:"Rhodolite Devnet",testnet:!0,id:17420,sourceId:17001,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.rhodolitechain.com"],webSocket:["wss://rpc.rhodolitechain.com"]}},iconUrls:["https://redstone.xyz/chain-icons/rhodolite.png"],indexerUrl:"https://indexer.mud.rhodolitechain.com"};let d=["world","store","metadata","puppet","erc20-puppet","erc721-puppet"],h={anvil:n.O,rhodolite:u,garnet:o,redstone:c},p=Object.fromEntries(Object.entries(h).map(e=>{let[t,r]=e;return[r.id,t]}));function m(e){return"string"==typeof e&&e in h}function f(e){if(!("number"==typeof e&&e in p))throw Error("Invalid chain ID. Supported chains are: ".concat(Object.keys(p).join(", "),"."))}function x(e){if(!m(e))throw Error("Invalid chain name. Supported chains are: ".concat(Object.keys(h).join(", "),"."))}},35431:function(e,t,r){"use strict";r.d(t,{Z:function(){return l}});var n=r(75536),s=r(89702),a=r(80967),i=r(66585);let l=s.forwardRef((e,t)=>{let{className:r,orientation:s="horizontal",decorative:l=!0,...c}=e;return(0,n.jsx)(a.f,{ref:t,decorative:l,orientation:s,className:(0,i.cn)("shrink-0 bg-border","horizontal"===s?"h-[1px] w-full":"h-full w-[1px]",r),...c})});l.displayName=a.f.displayName},68347:function(e,t,r){"use strict";r.d(t,{O:function(){return a}});var n=r(75536),s=r(66585);function a(e){let{className:t,...r}=e;return(0,n.jsx)("div",{className:(0,s.cn)("animate-pulse rounded-md bg-muted",t),...r})}},34431:function(e,t,r){"use strict";r.d(t,{RM:function(){return c},SC:function(){return o},iA:function(){return i},pj:function(){return d},ss:function(){return u},xD:function(){return l}});var n=r(75536),s=r(89702),a=r(66585);let i=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("table",{ref:t,className:(0,a.cn)("w-full caption-bottom text-sm",r),...s})});i.displayName="Table";let l=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("thead",{ref:t,className:(0,a.cn)("[&_tr]:border-b",r),...s})});l.displayName="TableHeader";let c=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("tbody",{ref:t,className:(0,a.cn)("[&_tr:last-child]:border-0",r),...s})});c.displayName="TableBody",s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("tfoot",{ref:t,className:(0,a.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",r),...s})}).displayName="TableFooter";let o=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("tr",{ref:t,className:(0,a.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",r),...s})});o.displayName="TableRow";let u=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("th",{ref:t,className:(0,a.cn)("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",r),...s})});u.displayName="TableHead";let d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("td",{ref:t,className:(0,a.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0",r),...s})});d.displayName="TableCell",s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("caption",{ref:t,className:(0,a.cn)("mt-4 text-sm text-muted-foreground",r),...s})}).displayName="TableCaption"},71118:function(e,t,r){"use strict";r.d(t,{a:function(){return s}});var n=r(75536);function s(e){let{hex:t}=e;return t.length<=10?(0,n.jsx)("span",{children:t}):(0,n.jsxs)("span",{children:[(0,n.jsx)("span",{className:"after:select-none after:content-['…']",children:t.slice(0,6)}),(0,n.jsx)("span",{className:"tracking-[-1ch] text-transparent",children:t.slice(6,-4)}),t.slice(-4)]})}},83966:function(e,t,r){"use strict";r.d(t,{M:function(){return n}});let n="explorer/observer"},41374:function(e,t,r){"use strict";r.d(t,{f:function(){return s}});var n=r(95674);let s=r.n(n)()("mud:explorer").extend("observer")},57253:function(e,t,r){"use strict";r.d(t,{store:function(){return l}});var n=r(30521),s=r(66585),a=r(83966),i=r(41374);let l=(0,n.M)(()=>({writes:{}}));(0,i.f)("listening for relayed messages",a.M),new BroadcastChannel(a.M).addEventListener("message",e=>{let{data:t}=e;"ping"!==t.type&&l.setState(e=>{let r="write"===t.type?{...t,events:[]}:e.writes[t.writeId];if(!r)return e;let n=r.hash;return"waitForTransactionReceipt"===t.type?n=t.hash:"waitForUserOperationReceipt:result"===t.type&&(0,s.r8)(t)&&(n=t.value.receipt.transactionHash),{...e,writes:{...e.writes,[t.writeId]:{...r,type:t.type,hash:n,userOpHash:"waitForUserOperationReceipt"===t.type?t.userOpHash:r.userOpHash,events:[...r.events,t]}}}})})},66585:function(e,t,r){"use strict";r.d(t,{az:function(){return c},cn:function(){return i},fu:function(){return l},r8:function(){return o}});var n=r(84141),s=r(88014),a=r(47228);function i(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,a.m)((0,s.W)(t))}function l(e){return e.replace(/[A-Z]/g,e=>"_".concat(e.toLowerCase())).replace(/^_/,"")}function c(e){let t=(0,n.d)(e),r=Math.floor(parseFloat(t)).toString().length;return parseFloat(t).toLocaleString("en-US",{maximumFractionDigits:Math.max(0,6-r)})}function o(e){return"fulfilled"===e.status}},91502:function(e,t,r){"use strict";r.d(t,{WV:function(){return l},jH:function(){return c}});var n=r(89702),s=r(3020),a=r(14292),i=r(75536),l=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let r=n.forwardRef((e,r)=>{let{asChild:n,...s}=e,l=n?a.g7:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,i.jsx)(l,{...s,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function c(e,t){e&&s.flushSync(()=>e.dispatchEvent(t))}},80967:function(e,t,r){"use strict";r.d(t,{f:function(){return o}});var n=r(89702),s=r(91502),a=r(75536),i="horizontal",l=["horizontal","vertical"],c=n.forwardRef((e,t)=>{let{decorative:r,orientation:n=i,...c}=e,o=l.includes(n)?n:i;return(0,a.jsx)(s.WV.div,{"data-orientation":o,...r?{role:"none"}:{"aria-orientation":"vertical"===o?o:void 0,role:"separator"},...c,ref:t})});c.displayName="Separator";var o=c},60188:function(e,t,r){"use strict";r.d(t,{oR:function(){return a}});var n=r(89702);let{useSyncExternalStoreWithSelector:s}=r(44666);function a(e,t=e.getState,r){let a=s(e.subscribe,e.getState,e.getServerState||e.getState,t,r);return(0,n.useDebugValue)(a),a}},30521:function(e,t,r){"use strict";r.d(t,{M:function(){return s}});let n=e=>{let t;let r=new Set,n=(e,n)=>{let s="function"==typeof e?e(t):e;if(!Object.is(s,t)){let e=t;t=(null!=n?n:"object"!=typeof s)?s:Object.assign({},t,s),r.forEach(r=>r(t,e))}},s=()=>t,a={setState:n,getState:s,subscribe:e=>(r.add(e),()=>r.delete(e)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}};return t=e(n,s,a),a},s=e=>e?n(e):n},32858:function(e,t,r){"use strict";function n(e,t){return e<t?-1:e>t?1:0}function s(e,t){let r=new Map;for(let n of e){let e=t(n);r.has(e)||r.set(e,[]),r.get(e).push(n)}return r}function a(e){return void 0!==e}function i(e,t){return Object.fromEntries(Object.entries(e).map(e=>{let[r,n]=e;return[r,t(n,r)]}))}r.d(t,{$K:function(){return a},Xc:function(){return i},iN:function(){return n},vM:function(){return s}})}},function(e){e.O(0,[6095,3388,855,5674,6658,1461,9213,8474,1744],function(){return e(e.s=42981)}),_N_E=e.O()}]);
21
+ */let c=(0,s.Z)("ReceiptText",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M14 8H8",key:"1l3xfs"}],["path",{d:"M16 12H8",key:"1fr5h0"}],["path",{d:"M13 16H8",key:"wsln4y"}]]);var u=r(89702),d=r(46721),p=r(96917),h=r(67157),f=r(66585);let m=(0,h.j)((0,f.cn)("inline-flex items-center px-2.5 py-0.5","rounded-md border","text-xs font-semibold transition-colors","focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2"),{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",tertiary:"border-transparent bg-tertiary text-tertiary-foreground hover:bg-tertiary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function x(e){let{className:t,variant:r,...s}=e;return(0,n.jsx)("div",{className:(0,f.cn)(m({variant:r}),t),...s})}var g=r(68347),b=r(34431),j=r(71118),v=r(35605),w=r(84367);function y(e){let{hash:t,children:r}=e,{id:s}=(0,v.A)(),a=function(e){var t;let{hash:r,chainId:n}=e;if(!r)return;(0,w.wG)(n);let s=w.is[n],a=w.df[s],i="blockExplorers"in a&&(null===(t=a.blockExplorers)||void 0===t?void 0:t.default.url);if(i)return"".concat(i,"/tx/").concat(r)}({chainId:s,hash:t});return a?(0,n.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"flex hover:underline",children:r}):r}function N(e){let t=Math.floor(Date.now()/1e3)-Number(e);for(let e of[{name:"y",limit:31536e3,inSeconds:31536e3},{name:"mth",limit:2592e3,inSeconds:2592e3},{name:"d",limit:86400,inSeconds:86400},{name:"h",limit:3600,inSeconds:3600},{name:"m",limit:60,inSeconds:60},{name:"s",limit:1,inSeconds:1}])if(t>=e.limit){let r=Math.floor(t/e.inSeconds);return"".concat(r).concat(e.name," ago")}return"0s ago"}function k(e){let{timestamp:t}=e,[r,s]=(0,u.useState)(()=>N(t));return(0,u.useEffect)(()=>{let e=setInterval(()=>{s(N(t))},1e3);return()=>clearInterval(e)},[t]),(0,n.jsx)("span",{className:"inline-block min-w-[60px] text-white/60",title:new Date(1e3*Number(t)).toISOString(),children:r})}var S=r(32858);let R={write:{priority:1,label:"write"},"write:result":{priority:2},waitForTransaction:{priority:3,label:"state update"},"waitForTransaction:result":{priority:4},waitForTransactionReceipt:{priority:5,label:"transaction receipt"},"waitForTransactionReceipt:result":{priority:6},waitForUserOperationReceipt:{priority:5,label:"user operation receipt"},"waitForUserOperationReceipt:result":{priority:6}};function T(e){let{time:t,events:r}=e,n=Math.max(...r.map(e=>e.time-t));return Object.values(r).sort((e,t)=>{var r,n;return(null===(r=R[e.type])||void 0===r?void 0:r.priority)-(null===(n=R[t.type])||void 0===n?void 0:n.priority)}).map(e=>{var s;let a=e.type;if(a.endsWith(":result"))return;let i=r.find(e=>e.type==="".concat(a,":result")),l=(null!==(s=null==i?void 0:i.time)&&void 0!==s?s:e.time)-e.time,o=e.time-t,c=R[a];return{type:a,label:"label"in c?c.label:a,duration:l,startPercentage:o/n*100,widthPercentage:l/n*100}}).filter(S.$K)}function M(e){let t=T(e);return(0,n.jsx)("div",{className:"ml-4 inline-block h-full w-14 grayscale lg:-mr-8 lg:ml-8 xl:-mr-16 xl:ml-16",children:t.map(e=>(0,n.jsx)("div",{title:e.label,className:(0,f.cn)("h-1",{"bg-[#5c9af6]":"write"===e.type,"mt-0.5 bg-[#4d7cc0]":"waitForTransaction"===e.type,"mt-0.5 bg-[#3d5c8a]":"waitForTransactionReceipt"===e.type||"waitForUserOperationReceipt"===e.type}),style:{width:"".concat(e.widthPercentage,"%"),marginLeft:"".concat(e.startPercentage,"%")}},e.label))})}var O=r(19362),E=r(55823),C=r(84141),F=r(35431),I=r(79701),Z=r(37979),U=r(33586),P=r(42473),A=r(368),H=r(97869);function z(e){let{hash:t}=e,{id:r}=(0,v.A)(),{data:s}=function(){var e,t;let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{hash:n,transactionReceipt:s,query:a={}}=r,i=(0,H.Z)(r),l=(0,A.x)({config:i}),o=function(e,t={}){return{async queryFn({queryKey:t}){let{hash:r,transactionReceipt:n,scopeKey:s,...a}=t[1];if(!r&&!n)throw Error("hash or transactionReceipt is required");return await function(e,t){let{chainId:r,...n}=t,s=e.getClient({chainId:r});return(0,Z.s)(s,I.a,"getTransactionConfirmations")(n)}(e,{hash:r,transactionReceipt:n,...a})??null},queryKey:function(e={}){return["transactionConfirmations",(0,U.OP)(e)]}(t)}}(i,{...r,chainId:null!==(e=r.chainId)&&void 0!==e?e:l}),c=!!(!(n&&s)&&(n||s)&&(null===(t=a.enabled)||void 0===t||t));return(0,P.aM)({...a,...o,enabled:c})}({hash:t,chainId:r,query:{refetchInterval:1e3,enabled:!!t}});return s?(0,n.jsxs)("span",{className:"flex items-center text-xs font-extrabold text-green-600",children:[(0,n.jsx)("span",{className:"mr-2 inline-block h-2 w-2 animate-pulse rounded-full bg-success"}),(0,n.jsx)("span",{className:"opacity-70",children:s.toString()})]}):(0,n.jsx)(g.O,{className:"h-4 w-[50px]"})}function D(e){let t=T(e);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(F.Z,{className:"my-5"}),(0,n.jsxs)("div",{className:"flex items-start gap-x-4 pb-2",children:[(0,n.jsx)("h3",{className:"inline-block w-[45px] pb-2 text-2xs font-bold uppercase",children:"Timing"}),(0,n.jsx)("div",{className:"w-full border border-white/20 p-2 pb-3",children:(0,n.jsx)("div",{className:"grid grid-cols-[auto_1fr_auto] items-center gap-x-4 gap-y-1",children:t.map(e=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("span",{className:"text-xs",children:[e.label,":"]}),(0,n.jsx)("span",{className:(0,f.cn)("h-1",{"bg-[#5c9af6]":"write"===e.type,"bg-[#4d7cc0]":"waitForTransaction"===e.type,"bg-[#3d5c8a]":"waitForTransactionReceipt"===e.type||"waitForUserOperationReceipt"===e.type}),style:{width:"".concat(e.widthPercentage,"%"),marginLeft:"".concat(e.startPercentage,"%")}}),(0,n.jsxs)("span",{className:"text-right text-xs",children:[e.duration,"ms"]})]}))})})]})]})}function V(e){let{label:t,status:r,children:s}=e;return(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{className:"text-2xs font-bold uppercase text-white/60",children:t}),(0,n.jsx)("p",{className:"pt-1 text-xs uppercase",children:null!=s?s:"rejected"===r?(0,n.jsx)("span",{className:"text-white/60",children:"N/A"}):(0,n.jsx)(g.O,{className:"h-4 w-[100px]"})})]})}function _(e){var t;let{row:r}=e,s=null==r?void 0:r.original,a=s.status,i=null==s?void 0:s.logs,l=null==s?void 0:s.receipt;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(b.SC,{className:(0,f.cn)("relative cursor-pointer",{"bg-muted/50":r.getIsExpanded()}),onClick:()=>r.toggleExpanded(),children:[r.getVisibleCells().map(e=>(0,n.jsx)(b.pj,{children:(0,d.ie)(e.column.columnDef.cell,e.getContext())},e.id)),r.getIsExpanded()?(0,n.jsx)(O.Z,{className:"absolute right-4 top-1/2 h-4 w-4 -translate-y-1/2 text-white/60"}):(0,n.jsx)(E.Z,{className:"absolute right-4 top-1/2 h-4 w-4 -translate-y-1/2 text-white/60"})]}),r.getIsExpanded()&&(0,n.jsx)(b.SC,{className:"border-b-white/20 bg-muted/50 hover:bg-muted/50",children:(0,n.jsx)(b.pj,{colSpan:$.length,children:s&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-x-2 gap-y-5 sm:grid-cols-4 md:grid-cols-5",children:[(0,n.jsx)(V,{label:"Confirmations",status:a,children:"rejected"!==a?(0,n.jsx)(z,{hash:null===(t=s.transaction)||void 0===t?void 0:t.hash}):null}),(0,n.jsxs)(V,{label:"Tx value",status:a,children:[s.value?(0,C.d)(s.value):0," ETH"]}),(0,n.jsx)(V,{label:"Gas used",status:a,children:null==l?void 0:l.gasUsed.toString()}),(0,n.jsx)(V,{label:"Gas price",status:a,children:null==l?void 0:l.effectiveGasPrice.toString()}),(0,n.jsx)(V,{label:"Tx cost",status:a,children:l?"".concat((0,C.d)(l.gasUsed*l.effectiveGasPrice)," ETH"):null})]}),(0,n.jsx)(F.Z,{className:"my-5"}),(0,n.jsxs)("div",{className:"flex items-start gap-x-4",children:[(0,n.jsx)("h3",{className:"w-[45px] flex-shrink-0 text-2xs font-bold uppercase",children:"Inputs"}),s.calls.length>0?(0,n.jsx)("div",{className:"flex w-full flex-col gap-y-4",children:s.calls.map((e,t)=>{var r;return(0,n.jsxs)("div",{className:"min-w-0 flex-grow border border-white/20 p-2 pt-1",children:[(0,n.jsxs)("span",{className:"text-xs",children:[e.functionName,":"]}),null===(r=e.args)||void 0===r?void 0:r.map((e,t)=>(0,n.jsxs)("div",{className:"flex",children:[(0,n.jsxs)("span",{className:"flex-shrink-0 text-xs text-white/60",children:["arg ",t+1,":"]}),(0,n.jsx)("span",{className:"ml-2 break-all text-xs",children:"object"==typeof e&&null!==e?JSON.stringify(e,null,2):String(e)})]},t)),e.value&&e.value>0n?(0,n.jsxs)("div",{className:"text-xs text-white/60",children:["value: ",(0,C.d)(e.value)," ETH"]}):null]},t)})}):(0,n.jsx)("p",{className:"text-2xs uppercase text-white/60",children:"No inputs"})]}),s.error?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(F.Z,{className:"my-5"}),(0,n.jsxs)("div",{className:"flex items-start gap-x-4",children:[(0,n.jsx)("h3",{className:"w-[45px] flex-shrink-0 text-2xs font-bold uppercase",children:"Error"}),(0,n.jsx)("div",{className:"flex-grow whitespace-pre-wrap border border-red-500 p-2 font-mono text-xs",children:s.error.message})]})]}):null,s.error?null:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(F.Z,{className:"my-5"}),(0,n.jsxs)("div",{className:"flex items-start gap-x-4",children:[(0,n.jsx)("h3",{className:"inline-block w-[45px] flex-shrink-0 text-2xs font-bold uppercase",children:"Logs"}),Array.isArray(i)&&i.length>0?(0,n.jsx)("div",{className:"flex-grow break-all border border-white/20 p-2 pb-3",children:(0,n.jsx)("ul",{children:i.map((e,t)=>{let r="eventName"in e?e.eventName:null,s="args"in e?e.args:null;return(0,n.jsxs)("li",{children:[!!r&&(0,n.jsxs)("span",{className:"text-xs",children:[null==r?void 0:r.toString(),":"]}),s&&(0,n.jsx)("ul",{className:"list-inside",children:Object.entries(s).map(e=>{let[t,r]=e;return(0,n.jsxs)("li",{className:"mt-1 flex",children:[(0,n.jsxs)("span",{className:"flex-shrink-0 text-xs text-white/60",children:[t,": "]}),(0,n.jsx)("span",{className:"ml-2 break-all text-xs",children:String(r)})]},t)})}),t<i.length-1&&(0,n.jsx)(F.Z,{className:"my-4"})]},t)})})}):"pending"===a?(0,n.jsx)(g.O,{className:"h-4 w-full"}):(0,n.jsx)("p",{className:"text-2xs uppercase text-white/60",children:"No logs"})]})]}),s.write&&(0,n.jsx)(D,{...s.write})]})})})]})}var q=r(6270),G=r(55024),K=r(60188),L=r(57253),B=r(50011);let W=(0,p.Cl)(),$=[W.accessor("receipt.blockNumber",{header:"Block",cell:e=>{if("rejected"===e.row.original.status)return(0,n.jsx)("span",{className:"text-white/60",children:"N/A"});let t=e.getValue();return t?(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)(a,{className:"mr-1 h-3 w-3"}),t.toString()]}):(0,n.jsx)(g.O,{className:"h-4 w-full"})}}),W.accessor("from",{header:"From",cell:e=>{let t=e.getValue();return t?(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)(i,{className:"mr-1 h-3 w-3"}),(0,n.jsx)(j.a,{hex:t})]}):(0,n.jsx)(g.O,{className:"h-4 w-full"})}}),W.accessor("calls",{header:"Function(s)",cell:e=>{let t=e.getValue(),r=e.row.original.status;return(0,n.jsxs)("div",{className:"flex items-center",children:[(0,n.jsx)("div",{className:"flex gap-2",children:t.map((e,t)=>{let{functionName:r}=e;return(0,n.jsx)(x,{variant:"secondary",children:r},t)})}),"pending"===r&&(0,n.jsx)(l,{className:"ml-2 h-4 w-4 text-white/60"}),"success"===r&&(0,n.jsx)(l,{className:"ml-2 h-4 w-4 text-green-400"}),("reverted"===r||"rejected"===r)&&(0,n.jsx)(o.Z,{className:"ml-2 h-4 w-4 text-red-400"})]})}}),W.accessor("hash",{header:"Tx hash",cell:e=>{if("rejected"===e.row.original.status)return(0,n.jsx)("span",{className:"text-white/60",children:"N/A"});let t=e.getValue();return t?(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)(c,{className:"mr-1 h-3 w-3"}),(0,n.jsx)(y,{hash:t,children:(0,n.jsx)(j.a,{hex:t})})]}):(0,n.jsx)(g.O,{className:"h-4 w-full"})}}),W.accessor("timestamp",{header:"Time",cell:e=>{let t=e.getValue(),r=e.row.original.write;return(0,n.jsxs)(n.Fragment,{children:[t?(0,n.jsx)(k,{timestamp:t}):(0,n.jsx)(g.O,{className:"h-4 w-14"}),r&&(0,n.jsx)(M,{...r})]})}})];function Y(){var e;let t=function(){let{worldAddress:e}=(0,q.useParams)(),t=(0,K.oR)(B.h,e=>e.transactions),r=(0,K.oR)(L.store,e=>e.writes),n=(0,u.useMemo)(()=>Object.values(r).map(t=>({...t,calls:t.calls.filter(t=>t.to&&(0,G.K)(t.to)===(0,G.K)(e))})).filter(e=>{let{calls:t}=e;return t.length>0}),[r,e]);return(0,u.useMemo)(()=>{let r=new Map;for(let t of n){let n=t.events.find(e=>"write:result"===e.type);r.set(t.hash||t.writeId,{hash:t.hash,writeId:t.writeId,from:t.from,status:(null==n?void 0:n.status)==="rejected"?"rejected":"pending",timestamp:BigInt(t.time)/1000n,calls:t.calls.filter(t=>t.to===e),error:n&&"reason"in n?n.reason:void 0,write:t})}for(let e of t){let t=r.get(e.hash);t?r.set(e.hash,{...e,write:t.write}):r.set(e.hash,{...e})}return Array.from(r.values()).sort((e,t)=>{var r,n;return Number(null!==(r=t.timestamp)&&void 0!==r?r:0n)-Number(null!==(n=e.timestamp)&&void 0!==n?n:0n)})},[t,n,e])}(),[r,s]=(0,u.useState)({}),a=(0,d.b7)({data:t,columns:$,state:{expanded:r},getRowId:e=>e.writeId,onExpandedChange:s,getCoreRowModel:(0,p.sC)(),getExpandedRowModel:(0,p.rV)()});return(0,n.jsxs)(b.iA,{children:[(0,n.jsx)(b.xD,{className:"sticky top-0 z-10 bg-[var(--color-background)]",children:a.getHeaderGroups().map(e=>(0,n.jsx)(b.SC,{children:e.headers.map(e=>(0,n.jsx)(b.ss,{className:"text-xs uppercase",children:e.isPlaceholder?null:(0,d.ie)(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,n.jsx)(b.RM,{children:(null===(e=a.getRowModel().rows)||void 0===e?void 0:e.length)?a.getRowModel().rows.map(e=>(0,n.jsx)(_,{row:e},e.id)):(0,n.jsx)(b.SC,{children:(0,n.jsx)(b.pj,{colSpan:$.length,children:(0,n.jsxs)("p",{className:"flex items-center justify-center gap-3 py-4 font-mono text-xs font-bold uppercase text-muted-foreground",children:[(0,n.jsx)("span",{className:"inline-block h-1.5 w-1.5 animate-ping rounded-full bg-muted-foreground"})," Waiting for transactions…"]})})})})]})}},50011:function(e,t,r){"use strict";r.d(t,{h:function(){return n}});let n=(0,r(30521).M)()(e=>({transactions:[],setTransaction:t=>e(e=>({transactions:[...e.transactions,t]})),updateTransaction:(t,r)=>e(e=>({transactions:e.transactions.map(e=>e.hash===t?{...e,...r}:e)}))}))},35605:function(e,t,r){"use strict";r.d(t,{A:function(){return a}});var n=r(6270),s=r(84367);function a(){let{chainName:e}=(0,n.useParams)();return(0,s.Yx)(e),s.df[e]}},84367:function(e,t,r){"use strict";r.d(t,{is:function(){return f},M0:function(){return p},oK:function(){return m},df:function(){return h},wG:function(){return x},Yx:function(){return g}});var n=r(79617),s=r(53103),a=r(20536),i=r(49249),l=r(76271);({...s.t});var o={...a.g,iconUrls:["https://redstone.xyz/chain-icons/redstone.png"],indexerUrl:"https://indexer.mud.redstonechain.com"},c={...i.T,iconUrls:["https://redstone.xyz/chain-icons/garnet.png"],indexerUrl:"https://indexer.mud.garnetchain.com"},u={http:["https://rpc.rhodolitechain.com"],webSocket:["wss://rpc.rhodolitechain.com"]},d={...l.i,name:"Rhodolite Devnet",testnet:!0,id:17420,sourceId:17001,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:u,bundler:u,quarryPassIssuer:u,wiresaw:u},contracts:{...l.i.contracts,quarryPaymaster:{address:"0x61f22c3827d90c390e0e2aaf220971524ac0a68d",blockCreated:11262}},blockExplorers:{default:{name:"Blockscout",url:"https://explorer.rhodolitechain.com"},worldsExplorer:{name:"MUD Worlds Explorer",url:"https://explorer.mud.dev/rhodolite/worlds"}},iconUrls:["https://redstone.xyz/chain-icons/rhodolite.png"],indexerUrl:"https://indexer.mud.rhodolitechain.com"};let p=["world","store","metadata","puppet","erc20-puppet","erc721-puppet"],h={anvil:n.O,rhodolite:d,garnet:c,redstone:o},f=Object.fromEntries(Object.entries(h).map(e=>{let[t,r]=e;return[r.id,t]}));function m(e){return"string"==typeof e&&e in h}function x(e){if(!("number"==typeof e&&e in f))throw Error("Invalid chain ID. Supported chains are: ".concat(Object.keys(f).join(", "),"."))}function g(e){if(!m(e))throw Error("Invalid chain name. Supported chains are: ".concat(Object.keys(h).join(", "),"."))}},35431:function(e,t,r){"use strict";r.d(t,{Z:function(){return l}});var n=r(75536),s=r(89702),a=r(80967),i=r(66585);let l=s.forwardRef((e,t)=>{let{className:r,orientation:s="horizontal",decorative:l=!0,...o}=e;return(0,n.jsx)(a.f,{ref:t,decorative:l,orientation:s,className:(0,i.cn)("shrink-0 bg-border","horizontal"===s?"h-[1px] w-full":"h-full w-[1px]",r),...o})});l.displayName=a.f.displayName},68347:function(e,t,r){"use strict";r.d(t,{O:function(){return a}});var n=r(75536),s=r(66585);function a(e){let{className:t,...r}=e;return(0,n.jsx)("div",{className:(0,s.cn)("animate-pulse rounded-md bg-muted",t),...r})}},34431:function(e,t,r){"use strict";r.d(t,{RM:function(){return o},SC:function(){return c},iA:function(){return i},pj:function(){return d},ss:function(){return u},xD:function(){return l}});var n=r(75536),s=r(89702),a=r(66585);let i=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("table",{ref:t,className:(0,a.cn)("w-full caption-bottom text-sm",r),...s})});i.displayName="Table";let l=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("thead",{ref:t,className:(0,a.cn)("[&_tr]:border-b",r),...s})});l.displayName="TableHeader";let o=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("tbody",{ref:t,className:(0,a.cn)("[&_tr:last-child]:border-0",r),...s})});o.displayName="TableBody",s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("tfoot",{ref:t,className:(0,a.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",r),...s})}).displayName="TableFooter";let c=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("tr",{ref:t,className:(0,a.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",r),...s})});c.displayName="TableRow";let u=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("th",{ref:t,className:(0,a.cn)("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",r),...s})});u.displayName="TableHead";let d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("td",{ref:t,className:(0,a.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0",r),...s})});d.displayName="TableCell",s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)("caption",{ref:t,className:(0,a.cn)("mt-4 text-sm text-muted-foreground",r),...s})}).displayName="TableCaption"},71118:function(e,t,r){"use strict";r.d(t,{a:function(){return s}});var n=r(75536);function s(e){let{hex:t}=e;return t.length<=10?(0,n.jsx)("span",{children:t}):(0,n.jsxs)("span",{children:[(0,n.jsx)("span",{className:"after:select-none after:content-['…']",children:t.slice(0,6)}),(0,n.jsx)("span",{className:"tracking-[-1ch] text-transparent",children:t.slice(6,-4)}),t.slice(-4)]})}},83966:function(e,t,r){"use strict";r.d(t,{M:function(){return n}});let n="explorer/observer"},41374:function(e,t,r){"use strict";r.d(t,{f:function(){return s}});var n=r(95674);let s=r.n(n)()("mud:explorer").extend("observer")},57253:function(e,t,r){"use strict";r.d(t,{store:function(){return l}});var n=r(30521),s=r(66585),a=r(83966),i=r(41374);let l=(0,n.M)(()=>({writes:{}}));(0,i.f)("listening for relayed messages",a.M);let o=[];new BroadcastChannel(a.M).addEventListener("message",e=>{"ping"!==e.data.type&&o.push(e)}),setInterval(function(){0!==o.length&&l.setState(e=>{let t=e;for(let{data:e}of o){if("ping"===e.type)continue;let r="write"===e.type?{...e,events:[]}:t.writes[e.writeId];if(!r)continue;let n=r.hash;"waitForTransactionReceipt"===e.type?n=e.hash:"waitForUserOperationReceipt:result"===e.type&&(0,s.r8)(e)&&(n=e.value.receipt.transactionHash),t={...t,writes:{...t.writes,[e.writeId]:{...r,type:e.type,hash:n,userOpHash:"waitForUserOperationReceipt"===e.type?e.userOpHash:r.userOpHash,events:[...r.events,e]}}}}return o.length=0,t})},100)},66585:function(e,t,r){"use strict";r.d(t,{az:function(){return o},cn:function(){return i},fu:function(){return l},r8:function(){return c}});var n=r(84141),s=r(88014),a=r(47228);function i(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,a.m)((0,s.W)(t))}function l(e){return e.replace(/[A-Z]/g,e=>"_".concat(e.toLowerCase())).replace(/^_/,"")}function o(e){let t=(0,n.d)(e),r=Math.floor(parseFloat(t)).toString().length;return parseFloat(t).toLocaleString("en-US",{maximumFractionDigits:Math.max(0,6-r)})}function c(e){return"fulfilled"===e.status}},91502:function(e,t,r){"use strict";r.d(t,{WV:function(){return l},jH:function(){return o}});var n=r(89702),s=r(3020),a=r(14292),i=r(75536),l=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let r=n.forwardRef((e,r)=>{let{asChild:n,...s}=e,l=n?a.g7:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,i.jsx)(l,{...s,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function o(e,t){e&&s.flushSync(()=>e.dispatchEvent(t))}},80967:function(e,t,r){"use strict";r.d(t,{f:function(){return c}});var n=r(89702),s=r(91502),a=r(75536),i="horizontal",l=["horizontal","vertical"],o=n.forwardRef((e,t)=>{let{decorative:r,orientation:n=i,...o}=e,c=l.includes(n)?n:i;return(0,a.jsx)(s.WV.div,{"data-orientation":c,...r?{role:"none"}:{"aria-orientation":"vertical"===c?c:void 0,role:"separator"},...o,ref:t})});o.displayName="Separator";var c=o},60188:function(e,t,r){"use strict";r.d(t,{oR:function(){return a}});var n=r(89702);let{useSyncExternalStoreWithSelector:s}=r(44666);function a(e,t=e.getState,r){let a=s(e.subscribe,e.getState,e.getServerState||e.getState,t,r);return(0,n.useDebugValue)(a),a}},30521:function(e,t,r){"use strict";r.d(t,{M:function(){return s}});let n=e=>{let t;let r=new Set,n=(e,n)=>{let s="function"==typeof e?e(t):e;if(!Object.is(s,t)){let e=t;t=(null!=n?n:"object"!=typeof s)?s:Object.assign({},t,s),r.forEach(r=>r(t,e))}},s=()=>t,a={setState:n,getState:s,subscribe:e=>(r.add(e),()=>r.delete(e)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}};return t=e(n,s,a),a},s=e=>e?n(e):n},32858:function(e,t,r){"use strict";function n(e,t){return e<t?-1:e>t?1:0}function s(e,t){let r=new Map;for(let n of e){let e=t(n);r.has(e)||r.set(e,[]),r.get(e).push(n)}return r}function a(e){return void 0!==e}function i(e,t){return Object.fromEntries(Object.entries(e).map(e=>{let[r,n]=e;return[r,t(n,r)]}))}r.d(t,{$K:function(){return a},Xc:function(){return i},iN:function(){return n},vM:function(){return s}})}},function(e){e.O(0,[6095,3388,855,5674,6658,1461,9213,8474,1744],function(){return e(e.s=42981)}),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5004],{33924:function(e,n,r){Promise.resolve().then(r.bind(r,13048)),Promise.resolve().then(r.bind(r,87907)),Promise.resolve().then(r.bind(r,80379)),Promise.resolve().then(r.bind(r,99401)),Promise.resolve().then(r.bind(r,58631)),Promise.resolve().then(r.bind(r,90900)),Promise.resolve().then(r.bind(r,79121)),Promise.resolve().then(r.bind(r,67241)),Promise.resolve().then(r.bind(r,82771)),Promise.resolve().then(r.bind(r,98785)),Promise.resolve().then(r.bind(r,24420)),Promise.resolve().then(r.bind(r,82638)),Promise.resolve().then(r.bind(r,9593)),Promise.resolve().then(r.bind(r,37092)),Promise.resolve().then(r.bind(r,46271)),Promise.resolve().then(r.bind(r,23852)),Promise.resolve().then(r.bind(r,78756)),Promise.resolve().then(r.bind(r,79861)),Promise.resolve().then(r.bind(r,94393)),Promise.resolve().then(r.bind(r,39658)),Promise.resolve().then(r.bind(r,50260)),Promise.resolve().then(r.bind(r,13822)),Promise.resolve().then(r.bind(r,76694)),Promise.resolve().then(r.bind(r,38304)),Promise.resolve().then(r.bind(r,77150)),Promise.resolve().then(r.bind(r,50447)),Promise.resolve().then(r.bind(r,83422)),Promise.resolve().then(r.t.bind(r,80950,23)),Promise.resolve().then(r.t.bind(r,99960,23)),Promise.resolve().then(r.t.bind(r,1887,23)),Promise.resolve().then(r.bind(r,29576)),Promise.resolve().then(r.t.bind(r,80385,23)),Promise.resolve().then(r.bind(r,57253))},83966:function(e,n,r){"use strict";r.d(n,{M:function(){return t}});let t="explorer/observer"},41374:function(e,n,r){"use strict";r.d(n,{f:function(){return i}});var t=r(95674);let i=r.n(t)()("mud:explorer").extend("observer")},57253:function(e,n,r){"use strict";r.d(n,{store:function(){return l}});var t=r(30521),i=r(66585),s=r(83966),o=r(41374);let l=(0,t.M)(()=>({writes:{}}));(0,o.f)("listening for relayed messages",s.M);let u=[];new BroadcastChannel(s.M).addEventListener("message",e=>{"ping"!==e.data.type&&u.push(e)}),setInterval(function(){0!==u.length&&l.setState(e=>{let n=e;for(let{data:e}of u){if("ping"===e.type)continue;let r="write"===e.type?{...e,events:[]}:n.writes[e.writeId];if(!r)continue;let t=r.hash;"waitForTransactionReceipt"===e.type?t=e.hash:"waitForUserOperationReceipt:result"===e.type&&(0,i.r8)(e)&&(t=e.value.receipt.transactionHash),n={...n,writes:{...n.writes,[e.writeId]:{...r,type:e.type,hash:t,userOpHash:"waitForUserOperationReceipt"===e.type?e.userOpHash:r.userOpHash,events:[...r.events,e]}}}}return u.length=0,n})},100)},66585:function(e,n,r){"use strict";r.d(n,{az:function(){return u},cn:function(){return o},fu:function(){return l},r8:function(){return h}});var t=r(84141),i=r(88014),s=r(47228);function o(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];return(0,s.m)((0,i.W)(n))}function l(e){return e.replace(/[A-Z]/g,e=>"_".concat(e.toLowerCase())).replace(/^_/,"")}function u(e){let n=(0,t.d)(e),r=Math.floor(parseFloat(n)).toString().length;return parseFloat(n).toLocaleString("en-US",{maximumFractionDigits:Math.max(0,6-r)})}function h(e){return"fulfilled"===e.status}},80385:function(){}},function(e){e.O(0,[8917,1889,1366,6095,9726,5674,8685,426,9576,7907,9001,2252,9213,8474,1744],function(){return e(e.s=33924)}),_N_E=e.O()}]);
@@ -57,6 +57,6 @@ type ObserverOptions = {
57
57
  explorerUrl?: string;
58
58
  waitForTransaction?: WaitForTransaction;
59
59
  };
60
- declare function observer({ explorerUrl, waitForTransaction }?: ObserverOptions): <transport extends Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined>(client: Client<transport, chain, account>) => Pick<WalletActions<chain, account>, "writeContract"> & Pick<BundlerActions, "sendUserOperation">;
60
+ declare function observer({ explorerUrl: initialExplorerUrl, waitForTransaction }?: ObserverOptions): <transport extends Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined>(client: Client<transport, chain, account>) => Pick<WalletActions<chain, account>, "writeContract"> & Pick<BundlerActions, "sendUserOperation">;
61
61
 
62
62
  export { CreateBridgeOpts, EmitMessage, MessageType, Messages, ObserverOptions, WaitForTransaction, createBridge, observer };
@@ -72,92 +72,99 @@ import { waitForTransactionReceipt, writeContract } from "viem/actions";
72
72
  import { getAction } from "viem/utils";
73
73
  import { isDefined } from "@latticexyz/common/utils";
74
74
  var writeCounter = 0;
75
- function observer({ explorerUrl = "http://localhost:13690", waitForTransaction } = {}) {
76
- const emit = createBridge({ url: `${explorerUrl}/internal/observer-relay` });
77
- return (client) => ({
78
- async sendUserOperation(args) {
79
- const writeId = `${client.uid}-${++writeCounter}`;
80
- const write = getAction(client, sendUserOperation, "sendUserOperation")(args);
81
- if (!("calls" in args) || !args.calls)
82
- return write;
83
- const calls = args.calls.map((call) => {
84
- if (!call || typeof call !== "object")
85
- return void 0;
86
- if (!("to" in call) || typeof call.to !== "string")
87
- return void 0;
88
- if (!("functionName" in call) || typeof call.functionName !== "string")
89
- return void 0;
90
- if (!("args" in call) || !Array.isArray(call.args))
91
- return void 0;
92
- return {
93
- to: call.to,
94
- functionName: call.functionName,
95
- args: call.args,
96
- ..."value" in call && typeof call.value === "bigint" && { value: call.value }
97
- };
98
- }).filter(isDefined);
99
- if (calls.length === 0)
75
+ function observer({ explorerUrl: initialExplorerUrl, waitForTransaction } = {}) {
76
+ return (client) => {
77
+ const explorerUrl = initialExplorerUrl ?? client.chain?.blockExplorers?.worldsExplorer?.url;
78
+ if (!explorerUrl)
79
+ return {};
80
+ const emit = createBridge({ url: new URL("/internal/observer-relay", explorerUrl).toString() });
81
+ return {
82
+ async sendUserOperation(args) {
83
+ const writeId = `${client.uid}-${++writeCounter}`;
84
+ const write = getAction(client, sendUserOperation, "sendUserOperation")(args);
85
+ if (!("calls" in args) || !args.calls)
86
+ return write;
87
+ const calls = args.calls.map((call) => {
88
+ if (!call || typeof call !== "object")
89
+ return void 0;
90
+ if (!("to" in call) || typeof call.to !== "string")
91
+ return void 0;
92
+ if (!("functionName" in call) || typeof call.functionName !== "string")
93
+ return void 0;
94
+ if (!("args" in call) || !Array.isArray(call.args))
95
+ return void 0;
96
+ return {
97
+ to: call.to,
98
+ functionName: call.functionName,
99
+ args: call.args,
100
+ ..."value" in call && typeof call.value === "bigint" && { value: call.value }
101
+ };
102
+ }).filter(isDefined);
103
+ if (calls.length === 0)
104
+ return write;
105
+ emit("write", {
106
+ writeId,
107
+ // TODO: type as SessionClient once available from entrykit
108
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
109
+ from: client.userAddress ?? client.account.address,
110
+ calls
111
+ });
112
+ Promise.allSettled([write]).then(([result]) => {
113
+ emit("write:result", { ...result, writeId });
114
+ });
115
+ write.then((userOpHash) => {
116
+ const receipt = getAction(
117
+ client,
118
+ waitForUserOperationReceipt,
119
+ "waitForUserOperationReceipt"
120
+ )({ hash: userOpHash });
121
+ emit("waitForUserOperationReceipt", { writeId, userOpHash });
122
+ Promise.allSettled([receipt]).then(([result]) => {
123
+ emit("waitForUserOperationReceipt:result", { ...result, writeId });
124
+ });
125
+ });
100
126
  return write;
101
- emit("write", {
102
- writeId,
103
- // TODO: type as SessionClient once available from entrykit
104
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
105
- from: client.userAddress ?? client.account.address,
106
- calls
107
- });
108
- Promise.allSettled([write]).then(([result]) => {
109
- emit("write:result", { ...result, writeId });
110
- });
111
- write.then((userOpHash) => {
112
- const receipt = getAction(
113
- client,
114
- waitForUserOperationReceipt,
115
- "waitForUserOperationReceipt"
116
- )({ hash: userOpHash });
117
- emit("waitForUserOperationReceipt", { writeId, userOpHash });
118
- Promise.allSettled([receipt]).then(([result]) => {
119
- emit("waitForUserOperationReceipt:result", { ...result, writeId });
127
+ },
128
+ async writeContract(args) {
129
+ const writeId = `${client.uid}-${++writeCounter}`;
130
+ const write = getAction(client, writeContract, "writeContract")(args);
131
+ emit("write", {
132
+ writeId,
133
+ // TODO: type as SessionClient once available from entrykit
134
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
135
+ from: client.userAddress ?? client.account.address,
136
+ calls: [
137
+ {
138
+ to: args.address,
139
+ functionName: args.functionName,
140
+ args: args.args ?? [],
141
+ ...args.value && { value: args.value }
142
+ }
143
+ ]
120
144
  });
121
- });
122
- return write;
123
- },
124
- async writeContract(args) {
125
- const writeId = `${client.uid}-${++writeCounter}`;
126
- const write = getAction(client, writeContract, "writeContract")(args);
127
- emit("write", {
128
- writeId,
129
- from: client.account.address,
130
- calls: [
131
- {
132
- to: args.address,
133
- functionName: args.functionName,
134
- args: args.args ?? [],
135
- ...args.value && { value: args.value }
136
- }
137
- ]
138
- });
139
- Promise.allSettled([write]).then(([result]) => {
140
- emit("write:result", { ...result, writeId });
141
- });
142
- write.then((hash) => {
143
- const receipt = getAction(client, waitForTransactionReceipt, "waitForTransactionReceipt")({ hash });
144
- emit("waitForTransactionReceipt", { writeId, hash });
145
- Promise.allSettled([receipt]).then(([result]) => {
146
- emit("waitForTransactionReceipt:result", { ...result, writeId });
145
+ Promise.allSettled([write]).then(([result]) => {
146
+ emit("write:result", { ...result, writeId });
147
147
  });
148
- });
149
- if (waitForTransaction) {
150
148
  write.then((hash) => {
151
- const receipt = waitForTransaction(hash);
152
- emit("waitForTransaction", { writeId });
149
+ const receipt = getAction(client, waitForTransactionReceipt, "waitForTransactionReceipt")({ hash });
150
+ emit("waitForTransactionReceipt", { writeId, hash });
153
151
  Promise.allSettled([receipt]).then(([result]) => {
154
- emit("waitForTransaction:result", { ...result, writeId });
152
+ emit("waitForTransactionReceipt:result", { ...result, writeId });
155
153
  });
156
154
  });
155
+ if (waitForTransaction) {
156
+ write.then((hash) => {
157
+ const receipt = waitForTransaction(hash);
158
+ emit("waitForTransaction", { writeId });
159
+ Promise.allSettled([receipt]).then(([result]) => {
160
+ emit("waitForTransaction:result", { ...result, writeId });
161
+ });
162
+ });
163
+ }
164
+ return write;
157
165
  }
158
- return write;
159
- }
160
- });
166
+ };
167
+ };
161
168
  }
162
169
  export {
163
170
  createBridge,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/observer/bridge.ts","../../src/debug.ts","../../src/observer/debug.ts","../../src/observer/decorator.ts"],"sourcesContent":["\"use client\";\n\nimport { wait } from \"@latticexyz/common/utils\";\nimport { debug } from \"./debug\";\nimport { EmitMessage } from \"./messages\";\n\nexport type BridgeEnvelope = { mud: \"explorer/observer\"; data: unknown };\n\nexport function isBridgeEnvelope(input: unknown): input is BridgeEnvelope {\n return (\n typeof input === \"object\" &&\n input !== null &&\n \"mud\" in input &&\n input.mud === \"explorer/observer\" &&\n \"data\" in input\n );\n}\n\nexport function wrapMessage(data: unknown): BridgeEnvelope {\n return { mud: \"explorer/observer\", data };\n}\n\nexport type CreateBridgeOpts = {\n url: string;\n timeout?: number;\n};\n\nexport function createBridge({ url, timeout = 10_000 }: CreateBridgeOpts): EmitMessage {\n const bridge = new Promise<HTMLIFrameElement>((resolve, reject) => {\n const iframe =\n Array.from(document.querySelectorAll(\"iframe[data-bridge][src]\"))\n .filter((el): el is HTMLIFrameElement => true)\n .find((el) => el.src === url) ?? document.createElement(\"iframe\");\n\n if (iframe.dataset.bridge === \"ready\") {\n debug(\"reusing observer iframe\", iframe.src);\n return resolve(iframe);\n }\n\n Promise.race([\n new Promise<void>((resolve, reject) => {\n iframe.addEventListener(\"load\", () => resolve(), { once: true });\n iframe.addEventListener(\"error\", (error) => reject(error), { once: true });\n }),\n wait(timeout).then(() => {\n throw new Error(\"Timed out waiting for observer iframe to load.\");\n }),\n ]).then(\n () => {\n debug(\"observer iframe ready\", iframe.src);\n iframe.dataset.bridge = \"ready\";\n resolve(iframe);\n },\n (error) => {\n debug(\"observer iframe error\", error);\n iframe.remove();\n reject(error);\n },\n );\n\n if (iframe.dataset.bridge !== \"loading\") {\n iframe.tabIndex = -1;\n iframe.ariaHidden = \"true\";\n iframe.style.position = \"absolute\";\n iframe.style.border = \"0\";\n iframe.style.width = \"0\";\n iframe.style.height = \"0\";\n iframe.dataset.bridge = \"loading\";\n iframe.src = url;\n debug(\"mounting observer iframe\", url);\n parent.document.body.appendChild(iframe);\n }\n });\n\n return (type, data) => {\n debug(\"got message for bridge\", type, data);\n bridge.then(\n (iframe) => {\n debug(\"posting message to bridge\", type, data);\n const message = wrapMessage({ type, time: Date.now(), ...data });\n iframe.contentWindow!.postMessage(message, \"*\");\n },\n (error) => debug(\"could not deliver message\", type, data, error),\n );\n };\n}\n","import createDebug from \"debug\";\n\nexport const debug = createDebug(\"mud:explorer\");\n","import { debug as parentDebug } from \"../debug\";\n\nexport const debug = parentDebug.extend(\"observer\");\n","import { Account, Address, Chain, Client, Hex, Transport, WalletActions } from \"viem\";\nimport { BundlerActions, sendUserOperation, waitForUserOperationReceipt } from \"viem/account-abstraction\";\nimport { waitForTransactionReceipt, writeContract } from \"viem/actions\";\nimport { getAction } from \"viem/utils\";\nimport { isDefined } from \"@latticexyz/common/utils\";\nimport { createBridge } from \"./bridge\";\nimport { ReceiptSummary } from \"./common\";\n\nexport type WaitForTransaction = (hash: Hex) => Promise<ReceiptSummary>;\n\nexport type ObserverOptions = {\n explorerUrl?: string;\n waitForTransaction?: WaitForTransaction;\n};\n\nlet writeCounter = 0;\n\nexport function observer({ explorerUrl = \"http://localhost:13690\", waitForTransaction }: ObserverOptions = {}): <\n transport extends Transport,\n chain extends Chain | undefined = Chain | undefined,\n account extends Account | undefined = Account | undefined,\n>(\n client: Client<transport, chain, account>,\n) => Pick<WalletActions<chain, account>, \"writeContract\"> & Pick<BundlerActions, \"sendUserOperation\"> {\n const emit = createBridge({ url: `${explorerUrl}/internal/observer-relay` });\n\n return (client) => ({\n async sendUserOperation(args) {\n const writeId = `${client.uid}-${++writeCounter}`;\n const write = getAction(client, sendUserOperation, \"sendUserOperation\")(args);\n if (!(\"calls\" in args) || !args.calls) return write;\n\n const calls = args.calls\n .map((call) => {\n if (!call || typeof call !== \"object\") return undefined;\n if (!(\"to\" in call) || typeof call.to !== \"string\") return undefined;\n if (!(\"functionName\" in call) || typeof call.functionName !== \"string\") return undefined;\n if (!(\"args\" in call) || !Array.isArray(call.args)) return undefined;\n\n return {\n to: call.to as Address,\n functionName: call.functionName,\n args: call.args,\n ...(\"value\" in call && typeof call.value === \"bigint\" && { value: call.value }),\n };\n })\n .filter(isDefined);\n if (calls.length === 0) return write;\n\n emit(\"write\", {\n writeId,\n // TODO: type as SessionClient once available from entrykit\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n from: (client as any).userAddress ?? client.account!.address,\n calls,\n });\n Promise.allSettled([write]).then(([result]) => {\n emit(\"write:result\", { ...result, writeId });\n });\n\n write.then((userOpHash) => {\n const receipt = getAction(\n client,\n waitForUserOperationReceipt,\n \"waitForUserOperationReceipt\",\n )({ hash: userOpHash });\n\n emit(\"waitForUserOperationReceipt\", { writeId, userOpHash });\n Promise.allSettled([receipt]).then(([result]) => {\n emit(\"waitForUserOperationReceipt:result\", { ...result, writeId });\n });\n });\n\n return write;\n },\n\n async writeContract(args) {\n const writeId = `${client.uid}-${++writeCounter}`;\n const write = getAction(client, writeContract, \"writeContract\")(args);\n\n emit(\"write\", {\n writeId,\n from: client.account!.address,\n calls: [\n {\n to: args.address,\n functionName: args.functionName,\n args: (args.args ?? []) as never,\n ...(args.value && { value: args.value }),\n },\n ],\n });\n Promise.allSettled([write]).then(([result]) => {\n emit(\"write:result\", { ...result, writeId });\n });\n\n write.then((hash) => {\n const receipt = getAction(client, waitForTransactionReceipt, \"waitForTransactionReceipt\")({ hash });\n\n emit(\"waitForTransactionReceipt\", { writeId, hash });\n Promise.allSettled([receipt]).then(([result]) => {\n emit(\"waitForTransactionReceipt:result\", { ...result, writeId });\n });\n });\n\n if (waitForTransaction) {\n write.then((hash) => {\n const receipt = waitForTransaction(hash);\n\n emit(\"waitForTransaction\", { writeId });\n Promise.allSettled([receipt]).then(([result]) => {\n emit(\"waitForTransaction:result\", { ...result, writeId });\n });\n });\n }\n\n return write;\n },\n });\n}\n"],"mappings":"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","names":["debug","debug","resolve","reject"]}
1
+ {"version":3,"sources":["../../src/observer/bridge.ts","../../src/debug.ts","../../src/observer/debug.ts","../../src/observer/decorator.ts"],"sourcesContent":["\"use client\";\n\nimport { wait } from \"@latticexyz/common/utils\";\nimport { debug } from \"./debug\";\nimport { EmitMessage } from \"./messages\";\n\nexport type BridgeEnvelope = { mud: \"explorer/observer\"; data: unknown };\n\nexport function isBridgeEnvelope(input: unknown): input is BridgeEnvelope {\n return (\n typeof input === \"object\" &&\n input !== null &&\n \"mud\" in input &&\n input.mud === \"explorer/observer\" &&\n \"data\" in input\n );\n}\n\nexport function wrapMessage(data: unknown): BridgeEnvelope {\n return { mud: \"explorer/observer\", data };\n}\n\nexport type CreateBridgeOpts = {\n url: string;\n timeout?: number;\n};\n\nexport function createBridge({ url, timeout = 10_000 }: CreateBridgeOpts): EmitMessage {\n const bridge = new Promise<HTMLIFrameElement>((resolve, reject) => {\n const iframe =\n Array.from(document.querySelectorAll(\"iframe[data-bridge][src]\"))\n .filter((el): el is HTMLIFrameElement => true)\n .find((el) => el.src === url) ?? document.createElement(\"iframe\");\n\n if (iframe.dataset.bridge === \"ready\") {\n debug(\"reusing observer iframe\", iframe.src);\n return resolve(iframe);\n }\n\n Promise.race([\n new Promise<void>((resolve, reject) => {\n iframe.addEventListener(\"load\", () => resolve(), { once: true });\n iframe.addEventListener(\"error\", (error) => reject(error), { once: true });\n }),\n wait(timeout).then(() => {\n throw new Error(\"Timed out waiting for observer iframe to load.\");\n }),\n ]).then(\n () => {\n debug(\"observer iframe ready\", iframe.src);\n iframe.dataset.bridge = \"ready\";\n resolve(iframe);\n },\n (error) => {\n debug(\"observer iframe error\", error);\n iframe.remove();\n reject(error);\n },\n );\n\n if (iframe.dataset.bridge !== \"loading\") {\n iframe.tabIndex = -1;\n iframe.ariaHidden = \"true\";\n iframe.style.position = \"absolute\";\n iframe.style.border = \"0\";\n iframe.style.width = \"0\";\n iframe.style.height = \"0\";\n iframe.dataset.bridge = \"loading\";\n iframe.src = url;\n debug(\"mounting observer iframe\", url);\n parent.document.body.appendChild(iframe);\n }\n });\n\n return (type, data) => {\n debug(\"got message for bridge\", type, data);\n bridge.then(\n (iframe) => {\n debug(\"posting message to bridge\", type, data);\n const message = wrapMessage({ type, time: Date.now(), ...data });\n iframe.contentWindow!.postMessage(message, \"*\");\n },\n (error) => debug(\"could not deliver message\", type, data, error),\n );\n };\n}\n","import createDebug from \"debug\";\n\nexport const debug = createDebug(\"mud:explorer\");\n","import { debug as parentDebug } from \"../debug\";\n\nexport const debug = parentDebug.extend(\"observer\");\n","import { Account, Address, Chain, Client, Hex, Transport, WalletActions } from \"viem\";\nimport { BundlerActions, sendUserOperation, waitForUserOperationReceipt } from \"viem/account-abstraction\";\nimport { waitForTransactionReceipt, writeContract } from \"viem/actions\";\nimport { getAction } from \"viem/utils\";\nimport { isDefined } from \"@latticexyz/common/utils\";\nimport { createBridge } from \"./bridge\";\nimport { ReceiptSummary } from \"./common\";\n\nexport type WaitForTransaction = (hash: Hex) => Promise<ReceiptSummary>;\n\nexport type ObserverOptions = {\n explorerUrl?: string;\n waitForTransaction?: WaitForTransaction;\n};\n\nlet writeCounter = 0;\n\nexport function observer({ explorerUrl: initialExplorerUrl, waitForTransaction }: ObserverOptions = {}): <\n transport extends Transport,\n chain extends Chain | undefined = Chain | undefined,\n account extends Account | undefined = Account | undefined,\n>(\n client: Client<transport, chain, account>,\n) => Pick<WalletActions<chain, account>, \"writeContract\"> & Pick<BundlerActions, \"sendUserOperation\"> {\n return (client) => {\n const explorerUrl = initialExplorerUrl ?? client.chain?.blockExplorers?.worldsExplorer?.url;\n if (!explorerUrl) return {} as never;\n\n const emit = createBridge({ url: new URL(\"/internal/observer-relay\", explorerUrl).toString() });\n\n return {\n async sendUserOperation(args) {\n const writeId = `${client.uid}-${++writeCounter}`;\n const write = getAction(client, sendUserOperation, \"sendUserOperation\")(args);\n if (!(\"calls\" in args) || !args.calls) return write;\n\n const calls = args.calls\n .map((call) => {\n if (!call || typeof call !== \"object\") return undefined;\n if (!(\"to\" in call) || typeof call.to !== \"string\") return undefined;\n if (!(\"functionName\" in call) || typeof call.functionName !== \"string\") return undefined;\n if (!(\"args\" in call) || !Array.isArray(call.args)) return undefined;\n\n return {\n to: call.to as Address,\n functionName: call.functionName,\n args: call.args,\n ...(\"value\" in call && typeof call.value === \"bigint\" && { value: call.value }),\n };\n })\n .filter(isDefined);\n if (calls.length === 0) return write;\n\n emit(\"write\", {\n writeId,\n // TODO: type as SessionClient once available from entrykit\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n from: (client as any).userAddress ?? client.account!.address,\n calls,\n });\n Promise.allSettled([write]).then(([result]) => {\n emit(\"write:result\", { ...result, writeId });\n });\n\n write.then((userOpHash) => {\n const receipt = getAction(\n client,\n waitForUserOperationReceipt,\n \"waitForUserOperationReceipt\",\n )({ hash: userOpHash });\n\n emit(\"waitForUserOperationReceipt\", { writeId, userOpHash });\n Promise.allSettled([receipt]).then(([result]) => {\n emit(\"waitForUserOperationReceipt:result\", { ...result, writeId });\n });\n });\n\n return write;\n },\n\n async writeContract(args) {\n const writeId = `${client.uid}-${++writeCounter}`;\n const write = getAction(client, writeContract, \"writeContract\")(args);\n\n emit(\"write\", {\n writeId,\n // TODO: type as SessionClient once available from entrykit\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n from: (client as any).userAddress ?? client.account!.address,\n calls: [\n {\n to: args.address,\n functionName: args.functionName,\n args: (args.args ?? []) as never,\n ...(args.value && { value: args.value }),\n },\n ],\n });\n Promise.allSettled([write]).then(([result]) => {\n emit(\"write:result\", { ...result, writeId });\n });\n\n write.then((hash) => {\n const receipt = getAction(client, waitForTransactionReceipt, \"waitForTransactionReceipt\")({ hash });\n\n emit(\"waitForTransactionReceipt\", { writeId, hash });\n Promise.allSettled([receipt]).then(([result]) => {\n emit(\"waitForTransactionReceipt:result\", { ...result, writeId });\n });\n });\n\n if (waitForTransaction) {\n write.then((hash) => {\n const receipt = waitForTransaction(hash);\n\n emit(\"waitForTransaction\", { writeId });\n Promise.allSettled([receipt]).then(([result]) => {\n emit(\"waitForTransaction:result\", { ...result, writeId });\n });\n });\n }\n\n return write;\n },\n };\n };\n}\n"],"mappings":"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","names":["debug","debug","resolve","reject"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@latticexyz/explorer",
3
- "version": "2.2.15-main-d542357350b85654bc65f3befad22a3509c4ddb6",
3
+ "version": "2.2.15-main-88b9daf1e01bd8675e31c455155759a3ef2af4f8",
4
4
  "description": "World Explorer is a tool for visually exploring and manipulating the state of worlds",
5
5
  "type": "module",
6
6
  "exports": {
@@ -58,15 +58,15 @@
58
58
  "yargs": "^17.7.1",
59
59
  "zod": "3.23.8",
60
60
  "zustand": "^4.3.7",
61
- "@latticexyz/block-logs-stream": "2.2.15-main-d542357350b85654bc65f3befad22a3509c4ddb6",
62
- "@latticexyz/common": "2.2.15-main-d542357350b85654bc65f3befad22a3509c4ddb6",
63
- "@latticexyz/config": "2.2.15-main-d542357350b85654bc65f3befad22a3509c4ddb6",
64
- "@latticexyz/protocol-parser": "2.2.15-main-d542357350b85654bc65f3befad22a3509c4ddb6",
65
- "@latticexyz/schema-type": "2.2.15-main-d542357350b85654bc65f3befad22a3509c4ddb6",
66
- "@latticexyz/store": "2.2.15-main-d542357350b85654bc65f3befad22a3509c4ddb6",
67
- "@latticexyz/store-indexer": "2.2.15-main-d542357350b85654bc65f3befad22a3509c4ddb6",
68
- "@latticexyz/store-sync": "2.2.15-main-d542357350b85654bc65f3befad22a3509c4ddb6",
69
- "@latticexyz/world": "2.2.15-main-d542357350b85654bc65f3befad22a3509c4ddb6"
61
+ "@latticexyz/block-logs-stream": "2.2.15-main-88b9daf1e01bd8675e31c455155759a3ef2af4f8",
62
+ "@latticexyz/common": "2.2.15-main-88b9daf1e01bd8675e31c455155759a3ef2af4f8",
63
+ "@latticexyz/config": "2.2.15-main-88b9daf1e01bd8675e31c455155759a3ef2af4f8",
64
+ "@latticexyz/protocol-parser": "2.2.15-main-88b9daf1e01bd8675e31c455155759a3ef2af4f8",
65
+ "@latticexyz/schema-type": "2.2.15-main-88b9daf1e01bd8675e31c455155759a3ef2af4f8",
66
+ "@latticexyz/store": "2.2.15-main-88b9daf1e01bd8675e31c455155759a3ef2af4f8",
67
+ "@latticexyz/store-indexer": "2.2.15-main-88b9daf1e01bd8675e31c455155759a3ef2af4f8",
68
+ "@latticexyz/store-sync": "2.2.15-main-88b9daf1e01bd8675e31c455155759a3ef2af4f8",
69
+ "@latticexyz/world": "2.2.15-main-88b9daf1e01bd8675e31c455155759a3ef2af4f8"
70
70
  },
71
71
  "devDependencies": {
72
72
  "@trivago/prettier-plugin-sort-imports": "^4.3.0",
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2838],{11426:function(n,t,e){Promise.resolve().then(e.bind(e,94200))},94200:function(n,t,e){"use strict";e.r(t),e.d(t,{default:function(){return o}});var r=e(6270),i=e(84367);function o(n){let{params:{chainName:t},children:e}=n;return(0,i.oK)(t)?e:(0,r.notFound)()}},84367:function(n,t,e){"use strict";e.d(t,{is:function(){return l},M0:function(){return h},oK:function(){return p},df:function(){return f},wG:function(){return m},Yx:function(){return g}});var r=e(79617),i=e(53103),o=e(20536),c=e(49249),u=e(76271);({...i.t});var s={...o.g,iconUrls:["https://redstone.xyz/chain-icons/redstone.png"],indexerUrl:"https://indexer.mud.redstonechain.com"},a={...c.T,iconUrls:["https://redstone.xyz/chain-icons/garnet.png"],indexerUrl:"https://indexer.mud.garnetchain.com"},d={...u.i,name:"Rhodolite Devnet",testnet:!0,id:17420,sourceId:17001,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.rhodolitechain.com"],webSocket:["wss://rpc.rhodolitechain.com"]}},iconUrls:["https://redstone.xyz/chain-icons/rhodolite.png"],indexerUrl:"https://indexer.mud.rhodolitechain.com"};let h=["world","store","metadata","puppet","erc20-puppet","erc721-puppet"],f={anvil:r.O,rhodolite:d,garnet:a,redstone:s},l=Object.fromEntries(Object.entries(f).map(n=>{let[t,e]=n;return[e.id,t]}));function p(n){return"string"==typeof n&&n in f}function m(n){if(!("number"==typeof n&&n in l))throw Error("Invalid chain ID. Supported chains are: ".concat(Object.keys(l).join(", "),"."))}function g(n){if(!p(n))throw Error("Invalid chain name. Supported chains are: ".concat(Object.keys(f).join(", "),"."))}},84897:function(n,t,e){"use strict";e.d(t,{Bd:function(){return o},Zn:function(){return i},ez:function(){return r}});let r={gwei:9,wei:18},i={ether:-9,wei:9},o={ether:-18,gwei:-9}},84141:function(n,t,e){"use strict";e.d(t,{d:function(){return o}});var r=e(84897),i=e(18583);function o(n,t="wei"){return(0,i.b)(n,r.ez[t])}},18583:function(n,t,e){"use strict";function r(n,t){let e=n.toString(),r=e.startsWith("-");r&&(e=e.slice(1));let[i,o]=[(e=e.padStart(t,"0")).slice(0,e.length-t),e.slice(e.length-t)];return o=o.replace(/(0+)$/,""),`${r?"-":""}${i||"0"}${o?`.${o}`:""}`}e.d(t,{b:function(){return r}})}},function(n){n.O(0,[3388,855,9213,8474,1744],function(){return n(n.s=11426)}),_N_E=n.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3027],{55677:function(e,t,n){Promise.resolve().then(n.bind(n,25313))},25313:function(e,t,n){"use strict";n.d(t,{InteractForm:function(){return C}});var r,a,i=n(75536),s=n(34724),o=n(68344),l=n(55507),c=n(30671),u=n(89702),d=n(33929),m=n(35431),f=n(68347),p=n(66585),h=n(6270),x=n(92996),b=n(63643),y=n(31848),v=n(94302),g=n(59201),j=n(3092),w=n(1839),N=n(85723),I=n(29438),E=n(29576),M=n(97869),R=n(64029),k=n(96948),F=n(8218),z=n(50693),S=n(53440),A=n(35605);(r=a||(a={}))[r.READ=0]="READ",r[r.WRITE=1]="WRITE";let O=v.z.object({inputs:v.z.array(v.z.string()),value:v.z.string().optional()});function Z(e){let{worldAbi:t,functionAbi:n}=e,r="view"===n.stateMutability||"pure"===n.stateMutability?0:1,[c,f]=(0,u.useState)(null),{openConnectModal:p}=(0,w.We)(),x=function(e){let{worldAbi:t,functionAbi:n,operationType:r}=e,{worldAddress:i}=(0,h.useParams)(),{id:s}=(0,A.A)(),o=(0,z.NL)(),l=(0,M.Z)(),c=(0,y.m)();return(0,S.D)({mutationFn:async e=>{let{inputs:o,value:c}=e;if(r===a.READ)return{result:await (0,R.L)(l,{abi:t,address:i,functionName:n.name,args:o,chainId:s})};{let e=await (0,k.n)(l,{abi:t,address:i,functionName:n.name,args:o,...c&&{value:BigInt(c)},chainId:s}),r=await (0,F.e)(l,{hash:e,pollingInterval:100});return{txHash:e,receipt:r}}},onMutate:()=>{if(r===a.WRITE)return{toastId:E.A.loading("Transaction submitted")}},onSuccess:(e,t,n)=>{r===a.WRITE&&"txHash"in e&&E.A.success("Transaction successful with hash: ".concat(e.txHash),{id:null==n?void 0:n.toastId}),o.invalidateQueries({queryKey:["balance",{address:c,chainId:s}]})},onError:(e,t,n)=>{console.error("Error:",e),E.A.error(e.message||"Something went wrong. Please try again.",{id:null==n?void 0:n.toastId})}})}({worldAbi:t,functionAbi:n,operationType:r}),b=(0,y.m)(),v=(0,g.cI)({resolver:(0,j.F)(O),defaultValues:{inputs:[]}});async function Z(e){if(!b.isConnected)return null==p?void 0:p();let t=await x.mutateAsync({inputs:e.inputs,value:e.value});0===r&&"result"in t&&f(JSON.stringify(t.result,null,2))}let C=null==n?void 0:n.inputs.map(e=>e.type).join(", ");return(0,i.jsxs)(I.l0,{...v,children:[(0,i.jsxs)("form",{onSubmit:v.handleSubmit(Z),id:n.name,className:"space-y-4 pb-4",children:[(0,i.jsxs)("h3",{className:"pt-4 font-semibold",children:[(0,i.jsx)("span",{className:"text-orange-500",children:null==n?void 0:n.name}),(0,i.jsx)("span",{className:"opacity-50",children:C&&" (".concat(C,")")}),(0,i.jsxs)("span",{className:"ml-2 opacity-50",children:["payable"===n.stateMutability&&(0,i.jsx)(s.Z,{className:"mr-2 inline-block h-4 w-4"}),("view"===n.stateMutability||"pure"===n.stateMutability)&&(0,i.jsx)(o.Z,{className:"mr-2 inline-block h-4 w-4"}),"nonpayable"===n.stateMutability&&(0,i.jsx)(l.Z,{className:"mr-2 inline-block h-4 w-4"})]})]}),null==n?void 0:n.inputs.map((e,t)=>(0,i.jsx)(I.Wi,{control:v.control,name:"inputs.".concat(t),render:t=>{let{field:n}=t;return(0,i.jsxs)(I.xJ,{children:[(0,i.jsx)(I.lX,{children:e.name}),(0,i.jsx)(I.NI,{children:(0,i.jsx)(d.I,{placeholder:e.type,...n})}),(0,i.jsx)(I.zG,{})]})}},t)),"payable"===n.stateMutability&&(0,i.jsx)(I.Wi,{control:v.control,name:"value",render:e=>{let{field:t}=e;return(0,i.jsxs)(I.xJ,{children:[(0,i.jsx)(I.lX,{children:"ETH value"}),(0,i.jsx)(I.NI,{children:(0,i.jsx)(d.I,{placeholder:"uint256",...t})}),(0,i.jsx)(I.zG,{})]})}}),(0,i.jsxs)(N.z,{type:"submit",disabled:x.isPending,children:[("view"===n.stateMutability||"pure"===n.stateMutability)&&"Read",("payable"===n.stateMutability||"nonpayable"===n.stateMutability)&&"Write"]}),c&&(0,i.jsx)("pre",{className:"text-md rounded border p-3 text-sm",children:c})]}),(0,i.jsx)(m.Z,{})]})}function C(){let[e]=function(){let e=(0,u.useMemo)(()=>()=>window.location.hash.replace(/^#!?/,""),[]),t=(0,h.useRouter)(),n=(0,h.useParams)(),[r,a]=(0,u.useState)(e());(0,u.useEffect)(()=>{a(e())},[n]);let i=()=>{a(e())};return(0,u.useEffect)(()=>(window.addEventListener("hashchange",i),()=>{window.removeEventListener("hashchange",i)}),[]),[r,e=>{var n;let r=window.location.href;r=x.Z.stringifyUrl({url:null!==(n=r.split("#")[0])&&void 0!==n?n:"",fragmentIdentifier:e}),a(e),t.replace(r)}]}(),{data:t,isFetched:n}=(0,b.b)(),[r,a]=(0,c.v1)("function",{defaultValue:""}),y=(0,u.useDeferredValue)(r),v=(0,u.useMemo)(()=>(null==t?void 0:t.abi)?t.abi.filter(e=>"function"===e.type&&e.name.toLowerCase().includes(y.toLowerCase())):[],[null==t?void 0:t.abi,y]);return(0,i.jsx)(i.Fragment,{children:(0,i.jsxs)("div",{className:"-mr-1g -ml-1 flex gap-x-4 overflow-y-hidden",children:[(0,i.jsxs)("div",{className:"w-[320px] flex-shrink-0 overflow-y-auto border-r pl-1",children:[(0,i.jsxs)("div",{className:"pr-4",children:[(0,i.jsx)("h4",{className:"py-4 text-xs font-semibold uppercase opacity-70",children:"Jump to:"}),(0,i.jsx)(d.I,{type:"text",placeholder:"Filter functions...",value:y,onChange:e=>{a(e.target.value)}})]}),(0,i.jsxs)("ul",{className:"mt-4 max-h-max space-y-2 overflow-y-auto pb-4",children:[!n&&Array.from({length:10}).map((e,t)=>(0,i.jsx)("li",{className:"pt-2",children:(0,i.jsx)(f.O,{className:"h-[25px]"})},t)),null==v?void 0:v.map((t,n)=>(0,i.jsx)("li",{children:(0,i.jsxs)("a",{href:"#".concat(t.name),className:(0,p.cn)("whitespace-nowrap text-sm hover:text-orange-500 hover:underline",t.name===e?"text-orange-500":null),children:[(0,i.jsxs)("span",{className:"opacity-50",children:["payable"===t.stateMutability&&(0,i.jsx)(s.Z,{className:"mr-2 inline-block h-4 w-4"}),("view"===t.stateMutability||"pure"===t.stateMutability)&&(0,i.jsx)(o.Z,{className:"mr-2 inline-block h-4 w-4"}),"nonpayable"===t.stateMutability&&(0,i.jsx)(l.Z,{className:"mr-2 inline-block h-4 w-4"})]}),(0,i.jsx)("span",{children:t.name}),t.inputs.length>0&&(0,i.jsxs)("span",{className:"opacity-50",children:[" (",t.inputs.length,")"]})]})},n))]})]}),(0,i.jsxs)("div",{className:"w-full overflow-y-auto pl-1 pr-1",children:[!n&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(f.O,{className:"h-[100px]"}),(0,i.jsx)(m.Z,{className:"my-4"}),(0,i.jsx)(f.O,{className:"h-[100px]"}),(0,i.jsx)(m.Z,{className:"my-4"}),(0,i.jsx)(f.O,{className:"h-[100px]"}),(0,i.jsx)(m.Z,{className:"my-4"}),(0,i.jsx)(f.O,{className:"h-[100px]"})]}),(null==t?void 0:t.abi)&&v.map(e=>(0,i.jsx)(Z,{worldAbi:t.abi,functionAbi:e},JSON.stringify(e)))]})]})})}},35605:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(6270),a=n(84367);function i(){let{chainName:e}=(0,r.useParams)();return(0,a.Yx)(e),a.df[e]}},63643:function(e,t,n){"use strict";n.d(t,{b:function(){return s}});var r=n(6270),a=n(95951),i=n(84367);function s(){let{chainName:e,worldAddress:t}=(0,r.useParams)();(0,i.Yx)(e);let{id:n}=i.df[e];return(0,a.a)({queryKey:["worldAbi",e,t],queryFn:async()=>{let e=await fetch("/api/world-abi?".concat(new URLSearchParams({chainId:n.toString(),worldAddress:t})));return await e.json()},select:e=>({abi:e.abi||[],isWorldDeployed:e.isWorldDeployed}),refetchInterval:15e3})}},84367:function(e,t,n){"use strict";n.d(t,{is:function(){return f},M0:function(){return d},oK:function(){return p},df:function(){return m},wG:function(){return h},Yx:function(){return x}});var r=n(79617),a=n(53103),i=n(20536),s=n(49249),o=n(76271);({...a.t});var l={...i.g,iconUrls:["https://redstone.xyz/chain-icons/redstone.png"],indexerUrl:"https://indexer.mud.redstonechain.com"},c={...s.T,iconUrls:["https://redstone.xyz/chain-icons/garnet.png"],indexerUrl:"https://indexer.mud.garnetchain.com"},u={...o.i,name:"Rhodolite Devnet",testnet:!0,id:17420,sourceId:17001,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.rhodolitechain.com"],webSocket:["wss://rpc.rhodolitechain.com"]}},iconUrls:["https://redstone.xyz/chain-icons/rhodolite.png"],indexerUrl:"https://indexer.mud.rhodolitechain.com"};let d=["world","store","metadata","puppet","erc20-puppet","erc721-puppet"],m={anvil:r.O,rhodolite:u,garnet:c,redstone:l},f=Object.fromEntries(Object.entries(m).map(e=>{let[t,n]=e;return[n.id,t]}));function p(e){return"string"==typeof e&&e in m}function h(e){if(!("number"==typeof e&&e in f))throw Error("Invalid chain ID. Supported chains are: ".concat(Object.keys(f).join(", "),"."))}function x(e){if(!p(e))throw Error("Invalid chain name. Supported chains are: ".concat(Object.keys(m).join(", "),"."))}},85723:function(e,t,n){"use strict";n.d(t,{z:function(){return c}});var r=n(75536),a=n(67157),i=n(89702),s=n(14292),o=n(66585);let l=(0,a.j)((0,o.cn)("inline-flex items-center justify-center rounded-md","whitespace-nowrap text-sm font-medium","ring-offset-background transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:pointer-events-none disabled:opacity-50"),{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),c=i.forwardRef((e,t)=>{let{className:n,variant:a,size:i,type:c="button",asChild:u=!1,...d}=e,m=u?s.g7:"button";return(0,r.jsx)(m,{className:(0,o.cn)(l({variant:a,size:i,className:n})),ref:t,type:c,...d})});c.displayName="Button"},29438:function(e,t,n){"use strict";n.d(t,{l0:function(){return m},NI:function(){return v},Wi:function(){return p},xJ:function(){return b},lX:function(){return y},zG:function(){return g}});var r=n(75536),a=n(89702),i=n(59201),s=n(14292),o=n(67157),l=n(69213),c=n(66585);let u=(0,o.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=a.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)(l.f,{ref:t,className:(0,c.cn)(u(),n),...a})});d.displayName=l.f.displayName;let m=i.RV,f=a.createContext({}),p=e=>{let{...t}=e;return(0,r.jsx)(f.Provider,{value:{name:t.name},children:(0,r.jsx)(i.Qr,{...t})})},h=()=>{let e=a.useContext(f),t=a.useContext(x),{getFieldState:n,formState:r}=(0,i.Gc)(),s=n(e.name,r);if(!e)throw Error("useFormField should be used within <FormField>");let{id:o}=t;return{id:o,name:e.name,formItemId:"".concat(o,"-form-item"),formDescriptionId:"".concat(o,"-form-item-description"),formMessageId:"".concat(o,"-form-item-message"),...s}},x=a.createContext({}),b=a.forwardRef((e,t)=>{let{className:n,...i}=e,s=a.useId();return(0,r.jsx)(x.Provider,{value:{id:s},children:(0,r.jsx)("div",{ref:t,className:(0,c.cn)("space-y-2",n),...i})})});b.displayName="FormItem";let y=a.forwardRef((e,t)=>{let{className:n,...a}=e,{error:i,formItemId:s}=h();return(0,r.jsx)(d,{ref:t,className:(0,c.cn)(i&&"text-destructive",n),htmlFor:s,...a})});y.displayName="FormLabel";let v=a.forwardRef((e,t)=>{let{...n}=e,{error:a,formItemId:i,formDescriptionId:o,formMessageId:l}=h();return(0,r.jsx)(s.g7,{ref:t,id:i,"aria-describedby":a?"".concat(o," ").concat(l):"".concat(o),"aria-invalid":!!a,...n})});v.displayName="FormControl",a.forwardRef((e,t)=>{let{className:n,...a}=e,{formDescriptionId:i}=h();return(0,r.jsx)("p",{ref:t,id:i,className:(0,c.cn)("text-sm text-muted-foreground",n),...a})}).displayName="FormDescription";let g=a.forwardRef((e,t)=>{let{className:n,children:a,...i}=e,{error:s,formMessageId:o}=h(),l=s?String(null==s?void 0:s.message):a;return l?(0,r.jsx)("p",{ref:t,id:o,className:(0,c.cn)("text-sm font-medium text-destructive",n),...i,children:l}):null});g.displayName="FormMessage"},33929:function(e,t,n){"use strict";n.d(t,{I:function(){return s}});var r=n(75536),a=n(89702),i=n(66585);let s=a.forwardRef((e,t)=>{let{className:n,type:a,...s}=e;return(0,r.jsx)("input",{type:a,className:(0,i.cn)("flex h-10 w-full rounded-md px-3 py-2 text-sm","border border-input bg-background ring-offset-background","file:border-0 file:bg-transparent file:text-sm file:font-medium","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50",n),ref:t,...s})});s.displayName="Input"},35431:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(75536),a=n(89702),i=n(80967),s=n(66585);let o=a.forwardRef((e,t)=>{let{className:n,orientation:a="horizontal",decorative:o=!0,...l}=e;return(0,r.jsx)(i.f,{ref:t,decorative:o,orientation:a,className:(0,s.cn)("shrink-0 bg-border","horizontal"===a?"h-[1px] w-full":"h-full w-[1px]",n),...l})});o.displayName=i.f.displayName},68347:function(e,t,n){"use strict";n.d(t,{O:function(){return i}});var r=n(75536),a=n(66585);function i(e){let{className:t,...n}=e;return(0,r.jsx)("div",{className:(0,a.cn)("animate-pulse rounded-md bg-muted",t),...n})}},66585:function(e,t,n){"use strict";n.d(t,{az:function(){return l},cn:function(){return s},fu:function(){return o},r8:function(){return c}});var r=n(84141),a=n(88014),i=n(47228);function s(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,i.m)((0,a.W)(t))}function o(e){return e.replace(/[A-Z]/g,e=>"_".concat(e.toLowerCase())).replace(/^_/,"")}function l(e){let t=(0,r.d)(e),n=Math.floor(parseFloat(t)).toString().length;return parseFloat(t).toLocaleString("en-US",{maximumFractionDigits:Math.max(0,6-n)})}function c(e){return"fulfilled"===e.status}}},function(e){e.O(0,[7027,6095,3388,855,9726,6658,5401,5846,9576,6045,7583,9213,8474,1744],function(){return e(e.s=55677)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1667],{10958:function(e,t,n){Promise.resolve().then(n.bind(n,60809))},60809:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return eN}});var a=n(75536),r=n(6270),s=n(84367),i=n(97554),c=n(45215),o=n(23638),l=n(63643),d=n(11362),u=n(35605),f=n(68347);function p(){let{id:e}=(0,u.A)(),{data:t}=(0,d.O)({watch:!0,chainId:e,query:{refetchInterval:1e3}});return(0,a.jsx)("div",{className:"inline-block w-[50px]",children:t?(0,a.jsxs)("div",{className:"flex items-center justify-end gap-x-2 text-xs font-extrabold text-green-600",children:[(0,a.jsx)("span",{className:"inline-block h-[8px] w-[8px] animate-pulse rounded-full bg-success"}),(0,a.jsx)("span",{className:"opacity-70",children:t.toString()})]}):(0,a.jsx)(f.O,{className:"h-[10px]"})})}var m=n(35431),h=n(66585),x=n(52616),b=n(1372),v=n(79617),g=n(1839),y=n(92463),j=n(91062),w=n(31848),N=n(3343),k=n(36792),O=n(89702),C=n(5739),z=n(63322),I=n(19389);let Z=["0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80","0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d","0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a","0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6","0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a","0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba","0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e","0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356","0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97","0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6"].map(e=>(0,z.L)(e)),_=e=>{let t=e!==v.O.id;return Z.map((e,n)=>(function(e){let{id:t,name:n,accounts:a,disabled:r}=e;if(!a.length)throw Error("missing accounts");let s=!1;return(0,I.K)(()=>({id:t,name:n,type:"anvil",accounts:a,connect:async()=>(s=!0,{accounts:a.map(e=>e.address),chainId:v.O.id}),async disconnect(){s=!1},getAccounts:async()=>a.map(e=>e.address),getChainId:async()=>v.O.id,getProvider:async()=>(0,C.d)()({chain:v.O}),async isAuthorized(){return!r&&!!s&&!!(await this.getAccounts()).length},async onAccountsChanged(){},async onDisconnect(){},onChainChanged(){}}))})({id:"anvil-".concat(n),name:"Anvil #".concat(n+1),accounts:[e],disabled:t}))};function A(e){return"anvil"===e.type}var E=n(85723),R=n(55823),U=n(19362),S=n(51550),F=n(93715);let K=F.fC;F.ZA;let M=F.B4,B=O.forwardRef((e,t)=>{let{className:n,children:r,...s}=e;return(0,a.jsxs)(F.xz,{ref:t,className:(0,h.cn)("flex h-10 w-full items-center justify-between px-3 py-2 text-sm","rounded-md border border-input bg-background ring-offset-background","placeholder:text-muted-foreground","focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",n),...s,children:[r,(0,a.jsx)(F.JO,{asChild:!0,children:(0,a.jsx)(R.Z,{className:"h-4 w-4 opacity-50"})})]})});B.displayName=F.xz.displayName;let T=O.forwardRef((e,t)=>{let{className:n,...r}=e;return(0,a.jsx)(F.u_,{ref:t,className:(0,h.cn)("flex cursor-default items-center justify-center py-1",n),...r,children:(0,a.jsx)(U.Z,{className:"h-4 w-4"})})});T.displayName=F.u_.displayName;let D=O.forwardRef((e,t)=>{let{className:n,...r}=e;return(0,a.jsx)(F.$G,{ref:t,className:(0,h.cn)("flex cursor-default items-center justify-center py-1",n),...r,children:(0,a.jsx)(R.Z,{className:"h-4 w-4"})})});D.displayName=F.$G.displayName;let H=O.forwardRef((e,t)=>{let{className:n,children:r,position:s="popper",...i}=e;return(0,a.jsx)(F.h_,{children:(0,a.jsxs)(F.VY,{ref:t,className:(0,h.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden","rounded-md border bg-popover text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0","data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2","data-[side=top]:slide-in-from-bottom-2","popper"===s&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",n),position:s,...i,children:[(0,a.jsx)(T,{}),(0,a.jsx)(F.l_,{className:(0,h.cn)("p-1","popper"===s&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:r}),(0,a.jsx)(D,{})]})})});H.displayName=F.VY.displayName,O.forwardRef((e,t)=>{let{className:n,...r}=e;return(0,a.jsx)(F.__,{ref:t,className:(0,h.cn)("py-1.5 pl-8 pr-2 text-sm font-semibold",n),...r})}).displayName=F.__.displayName;let P=O.forwardRef((e,t)=>{let{className:n,children:r,...s}=e;return(0,a.jsxs)(F.ck,{ref:t,className:(0,h.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",n),...s,children:[(0,a.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,a.jsx)(F.wU,{children:(0,a.jsx)(S.Z,{className:"h-4 w-4"})})}),(0,a.jsx)(F.eT,{children:r})]})});P.displayName=F.ck.displayName,O.forwardRef((e,t)=>{let{className:n,...r}=e;return(0,a.jsx)(F.Z0,{ref:t,className:(0,h.cn)("-mx-1 my-1 h-px bg-muted",n),...r})}).displayName=F.Z0.displayName;var W=n(71118);function L(e){var t;let{connector:n}=e,r=null===(t=n.accounts[0])||void 0===t?void 0:t.address,{data:s}=(0,j.K)({address:r,query:{refetchInterval:15e3,select:e=>null==e?void 0:e.value,enabled:!!r}});return(0,a.jsxs)(P,{value:n.id,className:"font-mono",children:[n.name,void 0!==s&&" (".concat((0,h.az)(s)," ETH)")," ",r&&(0,a.jsxs)("span",{className:"opacity-70",children:["(",(0,a.jsx)(W.a,{hex:r}),")"]})]},r)}function V(){let[e,t]=(0,O.useState)(!1),{connector:n}=(0,w.m)(),{connect:r}=(0,N.$)(),{openConnectModal:s}=(0,g.We)(),i=[...(0,k.Y)().filter(A)];return(0,a.jsxs)(K,{open:e,onOpenChange:t,value:null==n?void 0:n.id,onValueChange:e=>{let t=i.find(t=>t.id===e);t&&r({connector:t})},children:[(0,a.jsx)(E.z,{size:"sm",asChild:!0,children:(0,a.jsxs)(B,{children:[(0,a.jsx)(x.Z,{className:"mr-2 inline-block h-4 w-4"}),(0,a.jsx)(M,{placeholder:"Connect"})]})}),(0,a.jsxs)(H,{children:[i.map(e=>(0,a.jsx)(L,{connector:e},e.id)),(0,a.jsxs)(E.z,{size:"sm",className:"mt-2 w-full font-mono",onClick:()=>{t(!1),null==s||s()},children:[(0,a.jsx)(y.Z,{className:"mr-2 inline-block h-4 w-4"}),"Add wallet"]})]})]})}function Y(){let{id:e}=(0,u.A)();return(0,a.jsx)(g.NL.Custom,{children:t=>{let{account:n,chain:r,openAccountModal:s,openChainModal:i,openConnectModal:c,mounted:o}=t;return(0,a.jsx)("div",{className:(0,h.cn)({"pointer-events-none select-none opacity-0":!o}),children:o&&n&&r?r.unsupported?(0,a.jsxs)(E.z,{type:"button",size:"sm",onClick:i,children:[(0,a.jsx)(b.Z,{className:"mr-2 inline-block h-4 w-4"}),"Wrong network"]}):(0,a.jsx)("div",{className:"flex-wrap gap-2",children:(0,a.jsxs)(E.z,{type:"button",size:"sm",onClick:s,variant:"secondary",children:[(0,a.jsx)(x.Z,{className:"mr-2 inline-block h-4 w-4"}),n.displayName,(0,a.jsx)("span",{className:"ml-2 font-normal opacity-70",children:n.displayBalance?" (".concat(n.displayBalance,")"):""})]})}):e===v.O.id?(0,a.jsx)(V,{}):(0,a.jsxs)(E.z,{type:"button",size:"sm",onClick:c,children:[(0,a.jsx)(x.Z,{className:"mr-2 inline-block h-4 w-4"})," Connect"]})})}})}function G(e){let{href:t,children:n}=e,s=(0,r.usePathname)(),i=(0,o.g)();return(0,a.jsx)(c.default,{href:i(t),className:"group px-3 text-sm font-semibold uppercase",children:(0,a.jsx)("span",{className:(0,h.cn)("flex border-b-4 border-transparent pb-3 pt-4 transition group-hover:border-orange-500/30",s===i(t)?"border-orange-500 group-hover:border-orange-400":null),children:n})})}function q(){let{data:e,isFetched:t}=(0,l.b)();return(0,a.jsxs)("div",{className:"pb-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"-mx-3 flex",children:[(0,a.jsx)(G,{href:"explore",children:"Explore"}),(0,a.jsx)(G,{href:"interact",children:"Interact"}),(0,a.jsx)(G,{href:"observe",children:"Observe"})]}),t&&!(null==e?void 0:e.isWorldDeployed)&&(0,a.jsxs)("h4",{className:"font-mono text-sm font-bold uppercase opacity-70",children:["Waiting for world deploy ",(0,a.jsx)(i.Z,{className:"inline-block h-4 w-4 animate-spin"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-x-4",children:[(0,a.jsx)(p,{}),(0,a.jsx)(Y,{})]})]}),(0,a.jsx)(m.Z,{})]})}var $=n(84511),J=n(1405),Q=n(90067),X=n(43240),ee=n(82226),et=n(2451);n(64612);var en=n(91004),ea=n(50693);let er=new en.S;function es(e){let{children:t}=e,n=(0,u.A)(),r=(0,O.useMemo)(()=>(0,$._)({chains:[n],connectors:[(0,Q.L)(),(0,X.O)({dappMetadata:{name:"World Explorer"}}),(0,ee.T)(),..._(n.id)],transports:{[n.id]:(0,C.d)()},ssr:!0}),[n]);return(0,a.jsx)(J.F,{config:r,children:(0,a.jsx)(ea.aH,{client:er,children:(0,a.jsx)(g.pj,{theme:(0,et.$)(),children:t})})})}var ei=n(12565),ec=n(95483),eo=n(55024),el=n(88873),ed=n(4876),eu=n(62886),ef=n(97869),ep=n(64236),em=n(8218),eh=n(2913),ex=n(25779),eb=n(60188),ev=n(57253),eg=n(50011);let ey={type:"event",name:"UserOperationEvent",inputs:[{type:"bytes32",name:"userOpHash",indexed:!0},{type:"address",name:"sender",indexed:!0},{type:"address",name:"paymaster",indexed:!0},{type:"uint256",name:"nonce",indexed:!1},{type:"bool",name:"success",indexed:!1},{type:"uint256",name:"actualGasCost",indexed:!1},{type:"uint256",name:"actualGasUsed",indexed:!1}]};function ej(e){let t,n,a,{abi:r,target:s,data:i,value:c}=e;try{let e=(0,ei.p)({abi:r,data:i});if(t=e.functionName,n=e.args,"callFrom"===t){let[e,,s]=n,i=(0,ei.p)({abi:r,data:s});t=i.functionName,n=i.args,a=e}}catch(e){t=i.length>10?i.slice(0,10):"unknown"}return{to:s,from:a,functionName:t,args:n,value:c}}function ew(){let{id:e}=(0,u.A)(),{worldAddress:t}=(0,r.useParams)(),n=(0,ef.Z)(),{data:a}=(0,l.b)(),s=null==a?void 0:a.abi,{transactions:i,setTransaction:c,updateTransaction:o}=(0,eb.oR)(eg.h),d=(0,eb.oR)(ev.store,e=>e.writes),f=(0,O.useCallback)(e=>{var n,a;let{hash:r,writeId:i,timestamp:o,receipt:l,transaction:d,userOperation:u}=e;if(!s)return;let{functionName:f,args:p}=(0,ei.p)({abi:(0,ec.V)(["function execute(address target, uint256 value, bytes calldata data)","function executeBatch((address target,uint256 value,bytes data)[])"]),data:u.callData}),m=(function(e){let{abi:t,functionName:n,decodedArgs:a}=e;if("execute"===n){let e=a[0],n=a[1];return[ej({abi:t,target:e,data:a[2],value:n})]}return"executeBatch"===n?a[0].map(e=>{let{target:n,data:a,value:r}=e;return ej({abi:t,target:n,data:a,value:r})}):[]})({abi:s,functionName:f,decodedArgs:p}).filter(e=>{let{to:n}=e;return n&&(0,eo.K)(n)===(0,eo.K)(t)});if(0===m.length)return;let h=(0,el.h)({abi:[...s,ey],logs:l.logs}),x=h.find(e=>{let{eventName:t}=e;return"UserOperationEvent"===t});c({hash:r,writeId:null!=i?i:r,from:null!==(a=null===(n=m[0])||void 0===n?void 0:n.from)&&void 0!==a?a:d.from,timestamp:o,transaction:d,calls:m,receipt:l,logs:h,value:d.value,status:(null==x?void 0:x.args.success)?"success":"reverted"})},[s,c,t]),p=(0,O.useCallback)(async e=>{let{writeId:t,timestamp:a,transaction:r}=e;if(!s)return;let i=r.hash,c=await (0,em.e)(n,{hash:r.hash});for(let e of(0,ei.p)({abi:ed.i,data:r.input}).args[0])f({hash:i,writeId:t,timestamp:a,receipt:c,transaction:r,userOperation:e})},[s,f,n]),m=(0,O.useCallback)(async e=>{let a,r,i,l,{writeId:d,hash:u,timestamp:f,transaction:p}=e;if(!s||!p.to)return;try{let e=(0,ei.p)({abi:s,data:p.input});a=e.functionName,r=e.args}catch(e){i=e,a=p.input.length>10?p.input.slice(0,10):"unknown"}c({hash:u,writeId:null!=d?d:u,from:p.from,timestamp:f,transaction:p,status:"pending",calls:[{to:p.to,functionName:a,args:r}],value:p.value});try{l=await (0,em.e)(n,{hash:u})}catch(e){console.error("Failed to fetch transaction receipt. Transaction hash: ".concat(u))}if(l&&"reverted"===l.status&&a)try{await (0,eh.a)(n,{account:p.from,address:t,abi:s,value:p.value,blockNumber:l.blockNumber,functionName:a,args:r})}catch(e){i=e}let m=l?l.status:"unknown",h=(0,el.h)({abi:s,logs:(null==l?void 0:l.logs)||[]});o(u,{receipt:l,logs:h,status:m,error:i})},[s,n,t,c,o]),h=(0,O.useCallback)(async e=>{let{hash:a,writeId:r,timestamp:i}=e;if(!s)return;let c=await (0,ex.f)(n,{hash:a});c.to&&(0,eo.K)(c.to)===(0,eo.K)(eu.V)?p({writeId:r,timestamp:i,transaction:c}):c.to&&(0,eo.K)(c.to)===(0,eo.K)(t)&&m({hash:a,writeId:r,timestamp:i,transaction:c})},[s,n,t,p,m]);return(0,O.useEffect)(()=>{for(let{hash:e,writeId:t,time:n}of Object.values(d))e&&!i.find(t=>t.hash===e)&&h({hash:e,writeId:t,timestamp:BigInt(n)/1000n})},[h,d,i,t]),(0,ep.C)({onBlock(e){for(let t of e.transactions)i.find(e=>e.hash===t)||h({hash:t,timestamp:e.timestamp})},chainId:e,pollingInterval:500}),null}function eN(e){let{params:{chainName:t},children:n}=e;return(0,s.oK)(t)?(0,a.jsxs)(es,{children:[(0,a.jsxs)("div",{className:"flex h-screen flex-col",children:[(0,a.jsx)(q,{}),n]}),(0,a.jsx)(ew,{})]}):(0,r.notFound)()}},50011:function(e,t,n){"use strict";n.d(t,{h:function(){return a}});let a=(0,n(30521).M)()(e=>({transactions:[],setTransaction:t=>e(e=>({transactions:[...e.transactions,t]})),updateTransaction:(t,n)=>e(e=>({transactions:e.transactions.map(e=>e.hash===t?{...e,...n}:e)}))}))},35605:function(e,t,n){"use strict";n.d(t,{A:function(){return s}});var a=n(6270),r=n(84367);function s(){let{chainName:e}=(0,a.useParams)();return(0,r.Yx)(e),r.df[e]}},23638:function(e,t,n){"use strict";n.d(t,{g:function(){return s}});var a=n(6270),r=n(39723);function s(){let{chainName:e,worldAddress:t}=(0,a.useParams)();return n=>"".concat((0,r.m)(e,t),"/").concat(n)}},63643:function(e,t,n){"use strict";n.d(t,{b:function(){return i}});var a=n(6270),r=n(95951),s=n(84367);function i(){let{chainName:e,worldAddress:t}=(0,a.useParams)();(0,s.Yx)(e);let{id:n}=s.df[e];return(0,r.a)({queryKey:["worldAbi",e,t],queryFn:async()=>{let e=await fetch("/api/world-abi?".concat(new URLSearchParams({chainId:n.toString(),worldAddress:t})));return await e.json()},select:e=>({abi:e.abi||[],isWorldDeployed:e.isWorldDeployed}),refetchInterval:15e3})}},39723:function(e,t,n){"use strict";function a(e,t){return"/".concat(e,"/worlds/").concat(t)}n.d(t,{m:function(){return a}})},84367:function(e,t,n){"use strict";n.d(t,{is:function(){return p},M0:function(){return u},oK:function(){return m},df:function(){return f},wG:function(){return h},Yx:function(){return x}});var a=n(79617),r=n(53103),s=n(20536),i=n(49249),c=n(76271);({...r.t});var o={...s.g,iconUrls:["https://redstone.xyz/chain-icons/redstone.png"],indexerUrl:"https://indexer.mud.redstonechain.com"},l={...i.T,iconUrls:["https://redstone.xyz/chain-icons/garnet.png"],indexerUrl:"https://indexer.mud.garnetchain.com"},d={...c.i,name:"Rhodolite Devnet",testnet:!0,id:17420,sourceId:17001,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.rhodolitechain.com"],webSocket:["wss://rpc.rhodolitechain.com"]}},iconUrls:["https://redstone.xyz/chain-icons/rhodolite.png"],indexerUrl:"https://indexer.mud.rhodolitechain.com"};let u=["world","store","metadata","puppet","erc20-puppet","erc721-puppet"],f={anvil:a.O,rhodolite:d,garnet:l,redstone:o},p=Object.fromEntries(Object.entries(f).map(e=>{let[t,n]=e;return[n.id,t]}));function m(e){return"string"==typeof e&&e in f}function h(e){if(!("number"==typeof e&&e in p))throw Error("Invalid chain ID. Supported chains are: ".concat(Object.keys(p).join(", "),"."))}function x(e){if(!m(e))throw Error("Invalid chain name. Supported chains are: ".concat(Object.keys(f).join(", "),"."))}},85723:function(e,t,n){"use strict";n.d(t,{z:function(){return l}});var a=n(75536),r=n(67157),s=n(89702),i=n(14292),c=n(66585);let o=(0,r.j)((0,c.cn)("inline-flex items-center justify-center rounded-md","whitespace-nowrap text-sm font-medium","ring-offset-background transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:pointer-events-none disabled:opacity-50"),{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),l=s.forwardRef((e,t)=>{let{className:n,variant:r,size:s,type:l="button",asChild:d=!1,...u}=e,f=d?i.g7:"button";return(0,a.jsx)(f,{className:(0,c.cn)(o({variant:r,size:s,className:n})),ref:t,type:l,...u})});l.displayName="Button"},35431:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var a=n(75536),r=n(89702),s=n(80967),i=n(66585);let c=r.forwardRef((e,t)=>{let{className:n,orientation:r="horizontal",decorative:c=!0,...o}=e;return(0,a.jsx)(s.f,{ref:t,decorative:c,orientation:r,className:(0,i.cn)("shrink-0 bg-border","horizontal"===r?"h-[1px] w-full":"h-full w-[1px]",n),...o})});c.displayName=s.f.displayName},68347:function(e,t,n){"use strict";n.d(t,{O:function(){return s}});var a=n(75536),r=n(66585);function s(e){let{className:t,...n}=e;return(0,a.jsx)("div",{className:(0,r.cn)("animate-pulse rounded-md bg-muted",t),...n})}},71118:function(e,t,n){"use strict";n.d(t,{a:function(){return r}});var a=n(75536);function r(e){let{hex:t}=e;return t.length<=10?(0,a.jsx)("span",{children:t}):(0,a.jsxs)("span",{children:[(0,a.jsx)("span",{className:"after:select-none after:content-['…']",children:t.slice(0,6)}),(0,a.jsx)("span",{className:"tracking-[-1ch] text-transparent",children:t.slice(6,-4)}),t.slice(-4)]})}},83966:function(e,t,n){"use strict";n.d(t,{M:function(){return a}});let a="explorer/observer"},41374:function(e,t,n){"use strict";n.d(t,{f:function(){return r}});var a=n(95674);let r=n.n(a)()("mud:explorer").extend("observer")},57253:function(e,t,n){"use strict";n.d(t,{store:function(){return c}});var a=n(30521),r=n(66585),s=n(83966),i=n(41374);let c=(0,a.M)(()=>({writes:{}}));(0,i.f)("listening for relayed messages",s.M),new BroadcastChannel(s.M).addEventListener("message",e=>{let{data:t}=e;"ping"!==t.type&&c.setState(e=>{let n="write"===t.type?{...t,events:[]}:e.writes[t.writeId];if(!n)return e;let a=n.hash;return"waitForTransactionReceipt"===t.type?a=t.hash:"waitForUserOperationReceipt:result"===t.type&&(0,r.r8)(t)&&(a=t.value.receipt.transactionHash),{...e,writes:{...e.writes,[t.writeId]:{...n,type:t.type,hash:a,userOpHash:"waitForUserOperationReceipt"===t.type?t.userOpHash:n.userOpHash,events:[...n.events,t]}}}})})},66585:function(e,t,n){"use strict";n.d(t,{az:function(){return o},cn:function(){return i},fu:function(){return c},r8:function(){return l}});var a=n(84141),r=n(88014),s=n(47228);function i(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,s.m)((0,r.W)(t))}function c(e){return e.replace(/[A-Z]/g,e=>"_".concat(e.toLowerCase())).replace(/^_/,"")}function o(e){let t=(0,a.d)(e),n=Math.floor(parseFloat(t)).toString().length;return parseFloat(t).toLocaleString("en-US",{maximumFractionDigits:Math.max(0,6-n)})}function l(e){return"fulfilled"===e.status}}},function(e){e.O(0,[2387,7027,6095,3388,855,9726,5674,6658,8685,5401,426,5215,9001,4636,9213,8474,1744],function(){return e(e.s=10958)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5004],{33924:function(e,r,n){Promise.resolve().then(n.bind(n,13048)),Promise.resolve().then(n.bind(n,87907)),Promise.resolve().then(n.bind(n,80379)),Promise.resolve().then(n.bind(n,99401)),Promise.resolve().then(n.bind(n,58631)),Promise.resolve().then(n.bind(n,90900)),Promise.resolve().then(n.bind(n,79121)),Promise.resolve().then(n.bind(n,67241)),Promise.resolve().then(n.bind(n,82771)),Promise.resolve().then(n.bind(n,98785)),Promise.resolve().then(n.bind(n,24420)),Promise.resolve().then(n.bind(n,82638)),Promise.resolve().then(n.bind(n,9593)),Promise.resolve().then(n.bind(n,37092)),Promise.resolve().then(n.bind(n,46271)),Promise.resolve().then(n.bind(n,23852)),Promise.resolve().then(n.bind(n,78756)),Promise.resolve().then(n.bind(n,79861)),Promise.resolve().then(n.bind(n,94393)),Promise.resolve().then(n.bind(n,39658)),Promise.resolve().then(n.bind(n,50260)),Promise.resolve().then(n.bind(n,13822)),Promise.resolve().then(n.bind(n,76694)),Promise.resolve().then(n.bind(n,38304)),Promise.resolve().then(n.bind(n,77150)),Promise.resolve().then(n.bind(n,50447)),Promise.resolve().then(n.bind(n,83422)),Promise.resolve().then(n.t.bind(n,80950,23)),Promise.resolve().then(n.t.bind(n,99960,23)),Promise.resolve().then(n.t.bind(n,1887,23)),Promise.resolve().then(n.bind(n,29576)),Promise.resolve().then(n.t.bind(n,80385,23)),Promise.resolve().then(n.bind(n,57253))},83966:function(e,r,n){"use strict";n.d(r,{M:function(){return t}});let t="explorer/observer"},41374:function(e,r,n){"use strict";n.d(r,{f:function(){return i}});var t=n(95674);let i=n.n(t)()("mud:explorer").extend("observer")},57253:function(e,r,n){"use strict";n.d(r,{store:function(){return l}});var t=n(30521),i=n(66585),s=n(83966),o=n(41374);let l=(0,t.M)(()=>({writes:{}}));(0,o.f)("listening for relayed messages",s.M),new BroadcastChannel(s.M).addEventListener("message",e=>{let{data:r}=e;"ping"!==r.type&&l.setState(e=>{let n="write"===r.type?{...r,events:[]}:e.writes[r.writeId];if(!n)return e;let t=n.hash;return"waitForTransactionReceipt"===r.type?t=r.hash:"waitForUserOperationReceipt:result"===r.type&&(0,i.r8)(r)&&(t=r.value.receipt.transactionHash),{...e,writes:{...e.writes,[r.writeId]:{...n,type:r.type,hash:t,userOpHash:"waitForUserOperationReceipt"===r.type?r.userOpHash:n.userOpHash,events:[...n.events,r]}}}})})},66585:function(e,r,n){"use strict";n.d(r,{az:function(){return u},cn:function(){return o},fu:function(){return l},r8:function(){return h}});var t=n(84141),i=n(88014),s=n(47228);function o(){for(var e=arguments.length,r=Array(e),n=0;n<e;n++)r[n]=arguments[n];return(0,s.m)((0,i.W)(r))}function l(e){return e.replace(/[A-Z]/g,e=>"_".concat(e.toLowerCase())).replace(/^_/,"")}function u(e){let r=(0,t.d)(e),n=Math.floor(parseFloat(r)).toString().length;return parseFloat(r).toLocaleString("en-US",{maximumFractionDigits:Math.max(0,6-n)})}function h(e){return"fulfilled"===e.status}},80385:function(){}},function(e){e.O(0,[8917,1889,1366,6095,9726,5674,8685,426,9576,7907,9001,2252,9213,8474,1744],function(){return e(e.s=33924)}),_N_E=e.O()}]);