@latticexyz/explorer 2.2.17-452d3e53db2768f2e296ea7560c9bdd6560cd797 → 2.2.17-56e65f64186741cf38a7dc0bf62e2d22bbe8fed2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/packages/explorer/.next/BUILD_ID +1 -1
- package/.next/standalone/packages/explorer/.next/app-build-manifest.json +33 -33
- package/.next/standalone/packages/explorer/.next/app-path-routes-manifest.json +1 -1
- package/.next/standalone/packages/explorer/.next/build-manifest.json +2 -2
- package/.next/standalone/packages/explorer/.next/prerender-manifest.json +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/explore/page.js +5 -5
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/explore/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/interact/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/observe/page.js +2 -2
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/observe/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/api/world-abi/route.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/internal/observer-relay/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/internal/observer-relay.html +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/internal/observer-relay.rsc +1 -1
- package/.next/standalone/packages/explorer/.next/server/app-paths-manifest.json +2 -2
- package/.next/standalone/packages/explorer/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/pages/404.html +1 -1
- package/.next/standalone/packages/explorer/.next/server/pages/500.html +1 -1
- package/.next/standalone/packages/explorer/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/packages/explorer/.next/static/chunks/{9154-0a5af17bac14be88.js → 9154-f4682040f04bc0eb.js} +2 -2
- package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/[chainName]/worlds/[worldAddress]/explore/{page-cda56b07e438ca0f.js → page-b7494f5b36ab5348.js} +1 -1
- package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/[chainName]/worlds/[worldAddress]/observe/{page-48c19538e7b3b15f.js → page-35ac1690de80f649.js} +1 -1
- package/dist/bin/explorer.js +9 -2
- package/dist/bin/explorer.js.map +1 -1
- package/package.json +10 -10
- /package/.next/standalone/packages/explorer/.next/static/{chULj1ffdu4T8Ff2K7-HD → U0oZ_oHBEgQ3QofwGaGuY}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/explorer/.next/static/{chULj1ffdu4T8Ff2K7-HD → U0oZ_oHBEgQ3QofwGaGuY}/_ssgManifest.js +0 -0
|
@@ -23,4 +23,4 @@
|
|
|
23
23
|
*
|
|
24
24
|
* This source code is licensed under the ISC license.
|
|
25
25
|
* See the LICENSE file in the root directory of this source tree.
|
|
26
|
-
*/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(46760),d=r(89783),f=r(70760),h=r(4460),p=r(26559);let m=(0,h.j)((0,p.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,p.cn)(m({variant:r}),t),...s})}var g=r(71874),v=r(18126),b=r(39482),j=r(24869),w=r(85685);function y(e){let{hash:t,children:r}=e,{id:s}=(0,j.A)(),a=(0,w.U)({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(56856);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,p.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 E=r(76081),C=r(84321),O=r(73662),F=r(49476),I=r(14942),Z=r(15579),z=r(92911),P=r(84151),U=r(24339),H=r(73380),A=r(90925),V=r(55212);function _(e){let{hash:t}=e,{id:r}=(0,j.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,V.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,P.s)(s,z.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,H.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 q(e){let t=T(e);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(Z.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,p.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 D(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 B(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,o=null==s?void 0:s.calls.filter(e=>e.args&&e.args.length>0);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(v.SC,{className:(0,p.cn)("relative cursor-pointer",{"bg-muted/50":r.getIsExpanded()}),onClick:()=>r.toggleExpanded(),children:[r.getVisibleCells().map(e=>(0,n.jsx)(v.pj,{children:(0,d.ie)(e.column.columnDef.cell,e.getContext())},e.id)),r.getIsExpanded()?(0,n.jsx)(E.Z,{className:"absolute right-4 top-1/2 h-4 w-4 -translate-y-1/2 text-white/60"}):(0,n.jsx)(C.Z,{className:"absolute right-4 top-1/2 h-4 w-4 -translate-y-1/2 text-white/60"})]}),r.getIsExpanded()&&(0,n.jsx)(v.SC,{className:"border-b-white/20 bg-muted/50 hover:bg-muted/50",children:(0,n.jsx)(v.pj,{colSpan:X.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)(D,{label:"Confirmations",status:a,children:"rejected"!==a?(0,n.jsx)(_,{hash:null===(t=s.transaction)||void 0===t?void 0:t.hash}):null}),(0,n.jsxs)(D,{label:"Tx value",status:a,children:[s.value?(0,O.d)(s.value):0," ETH"]}),(0,n.jsx)(D,{label:"Gas used",status:a,children:null==l?void 0:l.gasUsed.toString()}),(0,n.jsx)(D,{label:"Gas price",status:a,children:null==l?void 0:l.effectiveGasPrice.toString()}),(0,n.jsx)(D,{label:"Tx cost",status:a,children:l?"".concat((0,O.d)(l.gasUsed*l.effectiveGasPrice)," ETH"):null})]}),o.length>0?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(Z.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"}),(0,n.jsxs)("div",{className:"relative flex w-full flex-col gap-y-4",children:[o.map((e,t)=>{var r;return e.args&&0!==e.args.length?(0,n.jsxs)("div",{className:"min-w-0 flex-grow rounded 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?(0,F.P)(e,null,2):String(e)})]},t)),e.value&&e.value>0n?(0,n.jsxs)("div",{className:"text-xs text-white/60",children:["value: ",(0,O.d)(e.value)," ETH"]}):null]},t):null}),(0,n.jsx)(I.q,{value:(0,F.P)(s.calls,null,2),className:"absolute right-1.5 top-1.5"})]})]})]}):null,s.error?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(Z.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 rounded 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)(Z.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.jsxs)("div",{className:"relative flex-grow break-all rounded 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)(Z.Z,{className:"my-4"})]},t)})}),(0,n.jsx)(I.q,{value:(0,F.P)(i,null,2),className:"absolute right-1.5 top-1.5"})]}):"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)(q,{...s.write})]})})})]})}var G=r(34219),K=r(46812),L=r(88620),W=r(87182),$=r(51049);let Y=(0,f.Cl)(),X=[Y.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"})}}),Y.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)(b.a,{hex:t})]}):(0,n.jsx)(g.O,{className:"h-4 w-full"})}}),Y.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"})]})}}),Y.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)(b.a,{hex:t})})]}):(0,n.jsx)(g.O,{className:"h-4 w-full"})}}),Y.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 J(){var e;let t=function(){let{worldAddress:e}=(0,G.useParams)(),t=(0,L.oR)($.h,e=>e.transactions),r=(0,L.oR)(W.store,e=>e.writes),n=(0,u.useMemo)(()=>Object.values(r).map(t=>({...t,calls:t.calls.filter(t=>t.to&&(0,K.K)(t.to)===(0,K.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:X,state:{expanded:r},getRowId:e=>e.writeId,onExpandedChange:s,getCoreRowModel:(0,f.sC)(),getExpandedRowModel:(0,f.rV)()});return(0,n.jsxs)(v.iA,{children:[(0,n.jsx)(v.xD,{className:"sticky top-0 z-10 bg-[var(--color-background)]",children:a.getHeaderGroups().map(e=>(0,n.jsx)(v.SC,{children:e.headers.map(e=>(0,n.jsx)(v.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)(v.RM,{children:(null===(e=a.getRowModel().rows)||void 0===e?void 0:e.length)?a.getRowModel().rows.map(e=>(0,n.jsx)(B,{row:e},e.id)):(0,n.jsx)(v.SC,{children:(0,n.jsx)(v.pj,{colSpan:X.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…"]})})})})]})}},51049:function(e,t,r){"use strict";r.d(t,{h:function(){return n}});let n=(0,r(82178).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)}))}))},24869:function(e,t,r){"use strict";r.d(t,{A:function(){return a}});var n=r(34219),s=r(7867);function a(){let{chainName:e}=(0,n.useParams)();return(0,s.Yx)(e),s.df[e]}},85685:function(e,t,r){"use strict";r.d(t,{U:function(){return s}});var n=r(7867);function s(e){var t;let{hash:r,chainId:s}=e;if(!r)return;(0,n.wG)(s);let a=n.is[s],i=n.df[a],l="blockExplorers"in i&&(null===(t=i.blockExplorers)||void 0===t?void 0:t.default.url);if(l)return"".concat(l,"/tx/").concat(r)}},7867:function(e,t,r){"use strict";r.d(t,{is:function(){return p},M0:function(){return f},oK:function(){return m},df:function(){return h},wG:function(){return x},Yx:function(){return g}});var n=r(40975),s=r(48010),a=r(30246),i=r(90337),l=r(39994);({...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 f=["world","store","metadata","puppet","erc20-puppet","erc721-puppet"],h={anvil:n.O,rhodolite:d,garnet:c,redstone:o},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 x(e){if(!("number"==typeof e&&e in p))throw Error("Invalid chain ID. Supported chains are: ".concat(Object.keys(p).join(", "),"."))}function g(e){if(!m(e))throw Error("Invalid chain name. Supported chains are: ".concat(Object.keys(h).join(", "),"."))}},14942:function(e,t,r){"use strict";r.d(t,{q:function(){return c}});var n=r(25418),s=r(41766),a=r(29039),i=r(46760),l=r(26559),o=r(97617);function c(e){let{className:t,variant:r="outline",value:c,...u}=e,[d,f]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{d&&setTimeout(()=>{f(!1)},2e3)},[d]),(0,n.jsxs)(o.z,{size:"icon",variant:r,className:(0,l.cn)("relative z-10 h-6 w-6 border-white/15 bg-transparent text-zinc-50 hover:bg-secondary hover:text-zinc-50 [&_svg]:h-3 [&_svg]:w-3",t),onClick:()=>{navigator.clipboard.writeText(c),f(!0)},...u,children:[(0,n.jsx)("span",{className:"sr-only",children:"Copy"}),d?(0,n.jsx)(s.Z,{}):(0,n.jsx)(a.Z,{})]})}},97617:function(e,t,r){"use strict";r.d(t,{z:function(){return c}});var n=r(25418),s=r(4460),a=r(46760),i=r(85767),l=r(26559);let o=(0,s.j)((0,l.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=a.forwardRef((e,t)=>{let{className:r,variant:s,size:a,type:c="button",asChild:u=!1,...d}=e,f=u?i.g7:"button";return(0,n.jsx)(f,{className:(0,l.cn)(o({variant:s,size:a,className:r})),ref:t,type:c,...d})});c.displayName="Button"},15579:function(e,t,r){"use strict";r.d(t,{Z:function(){return l}});var n=r(25418),s=r(46760),a=r(32525),i=r(26559);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},71874:function(e,t,r){"use strict";r.d(t,{O:function(){return a}});var n=r(25418),s=r(26559);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})}},18126: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(25418),s=r(46760),a=r(26559);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"},39482:function(e,t,r){"use strict";r.d(t,{a:function(){return s}});var n=r(25418);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)]})}},18141:function(e,t,r){"use strict";r.d(t,{M:function(){return n}});let n="explorer/observer"},21598:function(e,t,r){"use strict";r.d(t,{f:function(){return s}});var n=r(64303);let s=r.n(n)()("mud:explorer").extend("observer")},87182:function(e,t,r){"use strict";r.d(t,{store:function(){return l}});var n=r(82178),s=r(26559),a=r(18141),i=r(21598);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)},26559: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(73662),s=r(22830),a=r(95359);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}},38098:function(e,t,r){"use strict";r.d(t,{WV:function(){return l},jH:function(){return o}});var n=r(46760),s=r(49938),a=r(85767),i=r(25418),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))}},32525:function(e,t,r){"use strict";r.d(t,{f:function(){return c}});var n=r(46760),s=r(38098),a=r(25418),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},88620:function(e,t,r){"use strict";r.d(t,{oR:function(){return a}});var n=r(46760);let{useSyncExternalStoreWithSelector:s}=r(23064);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}},82178: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},56856: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,[8866,3823,8444,4303,3622,937,2710,8781,1744],function(){return e(e.s=91375)}),_N_E=e.O()}]);
|
|
26
|
+
*/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(46760),d=r(89783),f=r(70760),h=r(4460),p=r(26559);let m=(0,h.j)((0,p.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,p.cn)(m({variant:r}),t),...s})}var g=r(71874),v=r(22569),b=r(39482),j=r(24869),w=r(85685);function y(e){let{hash:t,children:r}=e,{id:s}=(0,j.A)(),a=(0,w.U)({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(56856);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,p.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 E=r(76081),C=r(84321),O=r(73662),F=r(49476),I=r(14942),Z=r(15579),z=r(92911),P=r(84151),U=r(24339),H=r(73380),A=r(90925),V=r(55212);function _(e){let{hash:t}=e,{id:r}=(0,j.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,V.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,P.s)(s,z.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,H.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 q(e){let t=T(e);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(Z.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,p.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 D(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 B(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,o=null==s?void 0:s.calls.filter(e=>e.args&&e.args.length>0);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(v.SC,{className:(0,p.cn)("relative cursor-pointer",{"bg-muted/50":r.getIsExpanded()}),onClick:()=>r.toggleExpanded(),children:[r.getVisibleCells().map(e=>(0,n.jsx)(v.pj,{children:(0,d.ie)(e.column.columnDef.cell,e.getContext())},e.id)),r.getIsExpanded()?(0,n.jsx)(E.Z,{className:"absolute right-4 top-1/2 h-4 w-4 -translate-y-1/2 text-white/60"}):(0,n.jsx)(C.Z,{className:"absolute right-4 top-1/2 h-4 w-4 -translate-y-1/2 text-white/60"})]}),r.getIsExpanded()&&(0,n.jsx)(v.SC,{className:"border-b-white/20 bg-muted/50 hover:bg-muted/50",children:(0,n.jsx)(v.pj,{colSpan:X.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)(D,{label:"Confirmations",status:a,children:"rejected"!==a?(0,n.jsx)(_,{hash:null===(t=s.transaction)||void 0===t?void 0:t.hash}):null}),(0,n.jsxs)(D,{label:"Tx value",status:a,children:[s.value?(0,O.d)(s.value):0," ETH"]}),(0,n.jsx)(D,{label:"Gas used",status:a,children:null==l?void 0:l.gasUsed.toString()}),(0,n.jsx)(D,{label:"Gas price",status:a,children:null==l?void 0:l.effectiveGasPrice.toString()}),(0,n.jsx)(D,{label:"Tx cost",status:a,children:l?"".concat((0,O.d)(l.gasUsed*l.effectiveGasPrice)," ETH"):null})]}),o.length>0?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(Z.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"}),(0,n.jsxs)("div",{className:"relative flex w-full flex-col gap-y-4",children:[o.map((e,t)=>{var r;return e.args&&0!==e.args.length?(0,n.jsxs)("div",{className:"min-w-0 flex-grow rounded 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?(0,F.P)(e,null,2):String(e)})]},t)),e.value&&e.value>0n?(0,n.jsxs)("div",{className:"text-xs text-white/60",children:["value: ",(0,O.d)(e.value)," ETH"]}):null]},t):null}),(0,n.jsx)(I.q,{value:(0,F.P)(s.calls,null,2),className:"absolute right-1.5 top-1.5"})]})]})]}):null,s.error?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(Z.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 rounded 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)(Z.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.jsxs)("div",{className:"relative flex-grow break-all rounded 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)(Z.Z,{className:"my-4"})]},t)})}),(0,n.jsx)(I.q,{value:(0,F.P)(i,null,2),className:"absolute right-1.5 top-1.5"})]}):"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)(q,{...s.write})]})})})]})}var G=r(34219),K=r(46812),L=r(88620),W=r(87182),$=r(51049);let Y=(0,f.Cl)(),X=[Y.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"})}}),Y.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)(b.a,{hex:t})]}):(0,n.jsx)(g.O,{className:"h-4 w-full"})}}),Y.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"})]})}}),Y.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)(b.a,{hex:t})})]}):(0,n.jsx)(g.O,{className:"h-4 w-full"})}}),Y.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 J(){var e;let t=function(){let{worldAddress:e}=(0,G.useParams)(),t=(0,L.oR)($.h,e=>e.transactions),r=(0,L.oR)(W.store,e=>e.writes),n=(0,u.useMemo)(()=>Object.values(r).map(t=>({...t,calls:t.calls.filter(t=>t.to&&(0,K.K)(t.to)===(0,K.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:X,state:{expanded:r},getRowId:e=>e.writeId,onExpandedChange:s,getCoreRowModel:(0,f.sC)(),getExpandedRowModel:(0,f.rV)()});return(0,n.jsxs)(v.iA,{children:[(0,n.jsx)(v.xD,{className:"sticky top-0 z-10 bg-[var(--color-background)]",children:a.getHeaderGroups().map(e=>(0,n.jsx)(v.SC,{children:e.headers.map(e=>(0,n.jsx)(v.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)(v.RM,{children:(null===(e=a.getRowModel().rows)||void 0===e?void 0:e.length)?a.getRowModel().rows.map(e=>(0,n.jsx)(B,{row:e},e.id)):(0,n.jsx)(v.SC,{children:(0,n.jsx)(v.pj,{colSpan:X.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…"]})})})})]})}},51049:function(e,t,r){"use strict";r.d(t,{h:function(){return n}});let n=(0,r(82178).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)}))}))},24869:function(e,t,r){"use strict";r.d(t,{A:function(){return a}});var n=r(34219),s=r(7867);function a(){let{chainName:e}=(0,n.useParams)();return(0,s.Yx)(e),s.df[e]}},85685:function(e,t,r){"use strict";r.d(t,{U:function(){return s}});var n=r(7867);function s(e){var t;let{hash:r,chainId:s}=e;if(!r)return;(0,n.wG)(s);let a=n.is[s],i=n.df[a],l="blockExplorers"in i&&(null===(t=i.blockExplorers)||void 0===t?void 0:t.default.url);if(l)return"".concat(l,"/tx/").concat(r)}},7867:function(e,t,r){"use strict";r.d(t,{is:function(){return p},M0:function(){return f},oK:function(){return m},df:function(){return h},wG:function(){return x},Yx:function(){return g}});var n=r(40975),s=r(48010),a=r(30246),i=r(90337),l=r(39994);({...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 f=["world","store","metadata","puppet","erc20-puppet","erc721-puppet"],h={anvil:n.O,rhodolite:d,garnet:c,redstone:o},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 x(e){if(!("number"==typeof e&&e in p))throw Error("Invalid chain ID. Supported chains are: ".concat(Object.keys(p).join(", "),"."))}function g(e){if(!m(e))throw Error("Invalid chain name. Supported chains are: ".concat(Object.keys(h).join(", "),"."))}},14942:function(e,t,r){"use strict";r.d(t,{q:function(){return c}});var n=r(25418),s=r(41766),a=r(29039),i=r(46760),l=r(26559),o=r(97617);function c(e){let{className:t,variant:r="outline",value:c,...u}=e,[d,f]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{d&&setTimeout(()=>{f(!1)},2e3)},[d]),(0,n.jsxs)(o.z,{size:"icon",variant:r,className:(0,l.cn)("relative z-10 h-6 w-6 border-white/15 bg-transparent text-zinc-50 hover:bg-secondary hover:text-zinc-50 [&_svg]:h-3 [&_svg]:w-3",t),onClick:()=>{navigator.clipboard.writeText(c),f(!0)},...u,children:[(0,n.jsx)("span",{className:"sr-only",children:"Copy"}),d?(0,n.jsx)(s.Z,{}):(0,n.jsx)(a.Z,{})]})}},97617:function(e,t,r){"use strict";r.d(t,{z:function(){return c}});var n=r(25418),s=r(4460),a=r(46760),i=r(85767),l=r(26559);let o=(0,s.j)((0,l.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=a.forwardRef((e,t)=>{let{className:r,variant:s,size:a,type:c="button",asChild:u=!1,...d}=e,f=u?i.g7:"button";return(0,n.jsx)(f,{className:(0,l.cn)(o({variant:s,size:a,className:r})),ref:t,type:c,...d})});c.displayName="Button"},15579:function(e,t,r){"use strict";r.d(t,{Z:function(){return l}});var n=r(25418),s=r(46760),a=r(32525),i=r(26559);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},71874:function(e,t,r){"use strict";r.d(t,{O:function(){return a}});var n=r(25418),s=r(26559);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})}},22569: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(25418),s=r(46760),a=r(26559);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"},39482:function(e,t,r){"use strict";r.d(t,{a:function(){return s}});var n=r(25418);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)]})}},18141:function(e,t,r){"use strict";r.d(t,{M:function(){return n}});let n="explorer/observer"},21598:function(e,t,r){"use strict";r.d(t,{f:function(){return s}});var n=r(64303);let s=r.n(n)()("mud:explorer").extend("observer")},87182:function(e,t,r){"use strict";r.d(t,{store:function(){return l}});var n=r(82178),s=r(26559),a=r(18141),i=r(21598);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)},26559: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(73662),s=r(22830),a=r(95359);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}},38098:function(e,t,r){"use strict";r.d(t,{WV:function(){return l},jH:function(){return o}});var n=r(46760),s=r(49938),a=r(85767),i=r(25418),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))}},32525:function(e,t,r){"use strict";r.d(t,{f:function(){return c}});var n=r(46760),s=r(38098),a=r(25418),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},88620:function(e,t,r){"use strict";r.d(t,{oR:function(){return a}});var n=r(46760);let{useSyncExternalStoreWithSelector:s}=r(23064);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}},82178: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},56856: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,[8866,3823,8444,4303,3622,937,2710,8781,1744],function(){return e(e.s=91375)}),_N_E=e.O()}]);
|
package/dist/bin/explorer.js
CHANGED
|
@@ -36,6 +36,12 @@ var argv = yargs(process.argv.slice(2)).options({
|
|
|
36
36
|
type: "number",
|
|
37
37
|
default: process.env.PORT || 13690
|
|
38
38
|
},
|
|
39
|
+
indexerPort: {
|
|
40
|
+
alias: "pi",
|
|
41
|
+
description: "Port number for the indexer",
|
|
42
|
+
type: "number",
|
|
43
|
+
default: process.env.INDEXER_PORT || 3001
|
|
44
|
+
},
|
|
39
45
|
hostname: {
|
|
40
46
|
alias: "H",
|
|
41
47
|
description: "Host for the server",
|
|
@@ -63,7 +69,7 @@ var argv = yargs(process.argv.slice(2)).options({
|
|
|
63
69
|
validateChainId(Number(argv2.chainId));
|
|
64
70
|
return true;
|
|
65
71
|
}).parseSync();
|
|
66
|
-
var { port, hostname, chainId, indexerDatabase, dev } = argv;
|
|
72
|
+
var { port, indexerPort, hostname, chainId, indexerDatabase, dev } = argv;
|
|
67
73
|
var indexerDatabasePath = path.join(packageRoot, indexerDatabase);
|
|
68
74
|
var explorerProcess;
|
|
69
75
|
var indexerProcess;
|
|
@@ -110,7 +116,8 @@ async function startStoreIndexer() {
|
|
|
110
116
|
RPC_HTTP_URL: "http://127.0.0.1:8545",
|
|
111
117
|
FOLLOW_BLOCK_TAG: "latest",
|
|
112
118
|
SQLITE_FILENAME: indexerDatabase,
|
|
113
|
-
...process.env
|
|
119
|
+
...process.env,
|
|
120
|
+
PORT: indexerPort.toString()
|
|
114
121
|
}
|
|
115
122
|
});
|
|
116
123
|
}
|
package/dist/bin/explorer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bin/explorer.ts","../../src/common.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { rm } from \"fs/promises\";\nimport path from \"path\";\nimport process from \"process\";\nimport { fileURLToPath } from \"url\";\nimport { anvil } from \"viem/chains\";\nimport yargs from \"yargs\";\nimport { ChildProcess, spawn } from \"child_process\";\nimport { validateChainId } from \"../common\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\nconst packageRoot = path.join(__dirname, \"..\", \"..\");\n\nconst argv = yargs(process.argv.slice(2))\n .options({\n port: {\n alias: \"p\",\n description: \"Port number for the server\",\n type: \"number\",\n default: process.env.PORT || 13690,\n },\n hostname: {\n alias: \"H\",\n description: \"Host for the server\",\n type: \"string\",\n },\n chainId: {\n alias: \"c\",\n description: \"Chain ID\",\n type: \"number\",\n default: process.env.CHAIN_ID || 31337,\n },\n indexerDatabase: {\n alias: \"i\",\n description: \"Path to the indexer database\",\n type: \"string\",\n default: process.env.INDEXER_DATABASE || \"indexer.db\",\n },\n dev: {\n alias: \"D\",\n description: \"Run in development mode\",\n type: \"boolean\",\n default: false,\n },\n })\n .check((argv) => {\n validateChainId(Number(argv.chainId));\n return true;\n })\n .parseSync();\n\nconst { port, hostname, chainId, indexerDatabase, dev } = argv;\nconst indexerDatabasePath = path.join(packageRoot, indexerDatabase);\n\nlet explorerProcess: ChildProcess;\nlet indexerProcess: ChildProcess;\n\nasync function startExplorer() {\n const env = {\n ...process.env,\n CHAIN_ID: chainId.toString(),\n INDEXER_DATABASE: indexerDatabasePath,\n };\n\n if (dev) {\n explorerProcess = spawn(\n \"node_modules/.bin/next\",\n [\"dev\", \"--port\", port.toString(), ...(hostname ? [\"--hostname\", hostname] : [])],\n {\n cwd: packageRoot,\n stdio: \"inherit\",\n env,\n },\n );\n } else {\n explorerProcess = spawn(\"node\", [\".next/standalone/packages/explorer/server.js\"], {\n cwd: packageRoot,\n stdio: \"inherit\",\n env: {\n ...env,\n PORT: port.toString(),\n HOSTNAME: hostname,\n },\n });\n }\n}\n\nasync function startStoreIndexer() {\n if (chainId !== anvil.id) {\n console.log(\"Skipping SQLite indexer for non-anvil chain ID\", chainId);\n return;\n }\n\n await rm(indexerDatabasePath, { recursive: true, force: true });\n\n console.log(\"Running SQLite indexer for anvil...\");\n indexerProcess = spawn(\"sh\", [\"node_modules/.bin/sqlite-indexer\"], {\n cwd: packageRoot,\n stdio: \"inherit\",\n env: {\n DEBUG: \"mud:*\",\n RPC_HTTP_URL: \"http://127.0.0.1:8545\",\n FOLLOW_BLOCK_TAG: \"latest\",\n SQLITE_FILENAME: indexerDatabase,\n ...process.env,\n },\n });\n}\n\nprocess.on(\"exit\", () => {\n indexerProcess?.kill();\n explorerProcess?.kill();\n});\n\nasync function main() {\n await startStoreIndexer();\n await startExplorer();\n}\n\nmain().catch(console.error);\n","import { anvil } from \"viem/chains\";\nimport { garnet, redstone, rhodolite } from \"@latticexyz/common/chains\";\n\nexport const internalNamespaces = [\"world\", \"store\", \"metadata\", \"puppet\", \"erc20-puppet\", \"erc721-puppet\"];\n\nexport const supportedChains = { anvil, rhodolite, garnet, redstone } as const;\nexport type supportedChains = typeof supportedChains;\n\nexport type supportedChainName = keyof supportedChains;\nexport type supportedChainId = supportedChains[supportedChainName][\"id\"];\n\nexport const chainIdToName = Object.fromEntries(\n Object.entries(supportedChains).map(([chainName, chain]) => [chain.id, chainName]),\n) as Record<supportedChainId, supportedChainName>;\n\nexport function isValidChainId(chainId: unknown): chainId is supportedChainId {\n return typeof chainId === \"number\" && chainId in chainIdToName;\n}\n\nexport function isValidChainName(name: unknown): name is supportedChainName {\n return typeof name === \"string\" && name in supportedChains;\n}\n\nexport function validateChainId(chainId: unknown): asserts chainId is supportedChainId {\n if (!isValidChainId(chainId)) {\n throw new Error(`Invalid chain ID. Supported chains are: ${Object.keys(chainIdToName).join(\", \")}.`);\n }\n}\n\nexport function validateChainName(name: unknown): asserts name is supportedChainName {\n if (!isValidChainName(name)) {\n throw new Error(`Invalid chain name. Supported chains are: ${Object.keys(supportedChains).join(\", \")}.`);\n }\n}\n"],"mappings":";;;AACA,SAAS,UAAU;AACnB,OAAO,UAAU;AACjB,OAAO,aAAa;AACpB,SAAS,qBAAqB;AAC9B,SAAS,SAAAA,cAAa;AACtB,OAAO,WAAW;AAClB,SAAuB,aAAa;;;ACPpC,SAAS,aAAa;AACtB,SAAS,QAAQ,UAAU,iBAAiB;AAIrC,IAAM,kBAAkB,EAAE,OAAO,WAAW,QAAQ,SAAS;AAM7D,IAAM,gBAAgB,OAAO;AAAA,EAClC,OAAO,QAAQ,eAAe,EAAE,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC;AACnF;AAEO,SAAS,eAAeC,UAA+C;AAC5E,SAAO,OAAOA,aAAY,YAAYA,YAAW;AACnD;AAMO,SAAS,gBAAgBC,UAAuD;AACrF,MAAI,CAAC,eAAeA,QAAO,GAAG;AAC5B,UAAM,IAAI,MAAM,2CAA2C,OAAO,KAAK,aAAa,EAAE,KAAK,IAAI,CAAC,GAAG;AAAA,EACrG;AACF;;;ADjBA,IAAM,aAAa,cAAc,YAAY,GAAG;AAChD,IAAM,YAAY,KAAK,QAAQ,UAAU;AACzC,IAAM,cAAc,KAAK,KAAK,WAAW,MAAM,IAAI;AAEnD,IAAM,OAAO,MAAM,QAAQ,KAAK,MAAM,CAAC,CAAC,EACrC,QAAQ;AAAA,EACP,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS,QAAQ,IAAI,QAAQ;AAAA,EAC/B;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,EACR;AAAA,EACA,SAAS;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS,QAAQ,IAAI,YAAY;AAAA,EACnC;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS,QAAQ,IAAI,oBAAoB;AAAA,EAC3C;AAAA,EACA,KAAK;AAAA,IACH,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF,CAAC,EACA,MAAM,CAACC,UAAS;AACf,kBAAgB,OAAOA,MAAK,OAAO,CAAC;AACpC,SAAO;AACT,CAAC,EACA,UAAU;AAEb,IAAM,EAAE,MAAM,UAAU,SAAS,iBAAiB,IAAI,IAAI;
|
|
1
|
+
{"version":3,"sources":["../../src/bin/explorer.ts","../../src/common.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { rm } from \"fs/promises\";\nimport path from \"path\";\nimport process from \"process\";\nimport { fileURLToPath } from \"url\";\nimport { anvil } from \"viem/chains\";\nimport yargs from \"yargs\";\nimport { ChildProcess, spawn } from \"child_process\";\nimport { validateChainId } from \"../common\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\nconst packageRoot = path.join(__dirname, \"..\", \"..\");\n\nconst argv = yargs(process.argv.slice(2))\n .options({\n port: {\n alias: \"p\",\n description: \"Port number for the server\",\n type: \"number\",\n default: process.env.PORT || 13690,\n },\n indexerPort: {\n alias: \"pi\",\n description: \"Port number for the indexer\",\n type: \"number\",\n default: process.env.INDEXER_PORT || 3001,\n },\n hostname: {\n alias: \"H\",\n description: \"Host for the server\",\n type: \"string\",\n },\n chainId: {\n alias: \"c\",\n description: \"Chain ID\",\n type: \"number\",\n default: process.env.CHAIN_ID || 31337,\n },\n indexerDatabase: {\n alias: \"i\",\n description: \"Path to the indexer database\",\n type: \"string\",\n default: process.env.INDEXER_DATABASE || \"indexer.db\",\n },\n dev: {\n alias: \"D\",\n description: \"Run in development mode\",\n type: \"boolean\",\n default: false,\n },\n })\n .check((argv) => {\n validateChainId(Number(argv.chainId));\n return true;\n })\n .parseSync();\n\nconst { port, indexerPort, hostname, chainId, indexerDatabase, dev } = argv;\nconst indexerDatabasePath = path.join(packageRoot, indexerDatabase);\n\nlet explorerProcess: ChildProcess;\nlet indexerProcess: ChildProcess;\n\nasync function startExplorer() {\n const env = {\n ...process.env,\n CHAIN_ID: chainId.toString(),\n INDEXER_DATABASE: indexerDatabasePath,\n };\n\n if (dev) {\n explorerProcess = spawn(\n \"node_modules/.bin/next\",\n [\"dev\", \"--port\", port.toString(), ...(hostname ? [\"--hostname\", hostname] : [])],\n {\n cwd: packageRoot,\n stdio: \"inherit\",\n env,\n },\n );\n } else {\n explorerProcess = spawn(\"node\", [\".next/standalone/packages/explorer/server.js\"], {\n cwd: packageRoot,\n stdio: \"inherit\",\n env: {\n ...env,\n PORT: port.toString(),\n HOSTNAME: hostname,\n },\n });\n }\n}\n\nasync function startStoreIndexer() {\n if (chainId !== anvil.id) {\n console.log(\"Skipping SQLite indexer for non-anvil chain ID\", chainId);\n return;\n }\n\n await rm(indexerDatabasePath, { recursive: true, force: true });\n\n console.log(\"Running SQLite indexer for anvil...\");\n indexerProcess = spawn(\"sh\", [\"node_modules/.bin/sqlite-indexer\"], {\n cwd: packageRoot,\n stdio: \"inherit\",\n env: {\n DEBUG: \"mud:*\",\n RPC_HTTP_URL: \"http://127.0.0.1:8545\",\n FOLLOW_BLOCK_TAG: \"latest\",\n SQLITE_FILENAME: indexerDatabase,\n ...process.env,\n PORT: indexerPort.toString(),\n },\n });\n}\n\nprocess.on(\"exit\", () => {\n indexerProcess?.kill();\n explorerProcess?.kill();\n});\n\nasync function main() {\n await startStoreIndexer();\n await startExplorer();\n}\n\nmain().catch(console.error);\n","import { anvil } from \"viem/chains\";\nimport { garnet, redstone, rhodolite } from \"@latticexyz/common/chains\";\n\nexport const internalNamespaces = [\"world\", \"store\", \"metadata\", \"puppet\", \"erc20-puppet\", \"erc721-puppet\"];\n\nexport const supportedChains = { anvil, rhodolite, garnet, redstone } as const;\nexport type supportedChains = typeof supportedChains;\n\nexport type supportedChainName = keyof supportedChains;\nexport type supportedChainId = supportedChains[supportedChainName][\"id\"];\n\nexport const chainIdToName = Object.fromEntries(\n Object.entries(supportedChains).map(([chainName, chain]) => [chain.id, chainName]),\n) as Record<supportedChainId, supportedChainName>;\n\nexport function isValidChainId(chainId: unknown): chainId is supportedChainId {\n return typeof chainId === \"number\" && chainId in chainIdToName;\n}\n\nexport function isValidChainName(name: unknown): name is supportedChainName {\n return typeof name === \"string\" && name in supportedChains;\n}\n\nexport function validateChainId(chainId: unknown): asserts chainId is supportedChainId {\n if (!isValidChainId(chainId)) {\n throw new Error(`Invalid chain ID. Supported chains are: ${Object.keys(chainIdToName).join(\", \")}.`);\n }\n}\n\nexport function validateChainName(name: unknown): asserts name is supportedChainName {\n if (!isValidChainName(name)) {\n throw new Error(`Invalid chain name. Supported chains are: ${Object.keys(supportedChains).join(\", \")}.`);\n }\n}\n"],"mappings":";;;AACA,SAAS,UAAU;AACnB,OAAO,UAAU;AACjB,OAAO,aAAa;AACpB,SAAS,qBAAqB;AAC9B,SAAS,SAAAA,cAAa;AACtB,OAAO,WAAW;AAClB,SAAuB,aAAa;;;ACPpC,SAAS,aAAa;AACtB,SAAS,QAAQ,UAAU,iBAAiB;AAIrC,IAAM,kBAAkB,EAAE,OAAO,WAAW,QAAQ,SAAS;AAM7D,IAAM,gBAAgB,OAAO;AAAA,EAClC,OAAO,QAAQ,eAAe,EAAE,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC;AACnF;AAEO,SAAS,eAAeC,UAA+C;AAC5E,SAAO,OAAOA,aAAY,YAAYA,YAAW;AACnD;AAMO,SAAS,gBAAgBC,UAAuD;AACrF,MAAI,CAAC,eAAeA,QAAO,GAAG;AAC5B,UAAM,IAAI,MAAM,2CAA2C,OAAO,KAAK,aAAa,EAAE,KAAK,IAAI,CAAC,GAAG;AAAA,EACrG;AACF;;;ADjBA,IAAM,aAAa,cAAc,YAAY,GAAG;AAChD,IAAM,YAAY,KAAK,QAAQ,UAAU;AACzC,IAAM,cAAc,KAAK,KAAK,WAAW,MAAM,IAAI;AAEnD,IAAM,OAAO,MAAM,QAAQ,KAAK,MAAM,CAAC,CAAC,EACrC,QAAQ;AAAA,EACP,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS,QAAQ,IAAI,QAAQ;AAAA,EAC/B;AAAA,EACA,aAAa;AAAA,IACX,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS,QAAQ,IAAI,gBAAgB;AAAA,EACvC;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,EACR;AAAA,EACA,SAAS;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS,QAAQ,IAAI,YAAY;AAAA,EACnC;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS,QAAQ,IAAI,oBAAoB;AAAA,EAC3C;AAAA,EACA,KAAK;AAAA,IACH,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF,CAAC,EACA,MAAM,CAACC,UAAS;AACf,kBAAgB,OAAOA,MAAK,OAAO,CAAC;AACpC,SAAO;AACT,CAAC,EACA,UAAU;AAEb,IAAM,EAAE,MAAM,aAAa,UAAU,SAAS,iBAAiB,IAAI,IAAI;AACvE,IAAM,sBAAsB,KAAK,KAAK,aAAa,eAAe;AAElE,IAAI;AACJ,IAAI;AAEJ,eAAe,gBAAgB;AAC7B,QAAM,MAAM;AAAA,IACV,GAAG,QAAQ;AAAA,IACX,UAAU,QAAQ,SAAS;AAAA,IAC3B,kBAAkB;AAAA,EACpB;AAEA,MAAI,KAAK;AACP,sBAAkB;AAAA,MAChB;AAAA,MACA,CAAC,OAAO,UAAU,KAAK,SAAS,GAAG,GAAI,WAAW,CAAC,cAAc,QAAQ,IAAI,CAAC,CAAE;AAAA,MAChF;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP;AAAA,MACF;AAAA,IACF;AAAA,EACF,OAAO;AACL,sBAAkB,MAAM,QAAQ,CAAC,8CAA8C,GAAG;AAAA,MAChF,KAAK;AAAA,MACL,OAAO;AAAA,MACP,KAAK;AAAA,QACH,GAAG;AAAA,QACH,MAAM,KAAK,SAAS;AAAA,QACpB,UAAU;AAAA,MACZ;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEA,eAAe,oBAAoB;AACjC,MAAI,YAAYC,OAAM,IAAI;AACxB,YAAQ,IAAI,kDAAkD,OAAO;AACrE;AAAA,EACF;AAEA,QAAM,GAAG,qBAAqB,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAE9D,UAAQ,IAAI,qCAAqC;AACjD,mBAAiB,MAAM,MAAM,CAAC,kCAAkC,GAAG;AAAA,IACjE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,KAAK;AAAA,MACH,OAAO;AAAA,MACP,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,MACjB,GAAG,QAAQ;AAAA,MACX,MAAM,YAAY,SAAS;AAAA,IAC7B;AAAA,EACF,CAAC;AACH;AAEA,QAAQ,GAAG,QAAQ,MAAM;AACvB,kBAAgB,KAAK;AACrB,mBAAiB,KAAK;AACxB,CAAC;AAED,eAAe,OAAO;AACpB,QAAM,kBAAkB;AACxB,QAAM,cAAc;AACtB;AAEA,KAAK,EAAE,MAAM,QAAQ,KAAK;","names":["anvil","chainId","chainId","argv","anvil"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@latticexyz/explorer",
|
|
3
|
-
"version": "2.2.17-
|
|
3
|
+
"version": "2.2.17-56e65f64186741cf38a7dc0bf62e2d22bbe8fed2",
|
|
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.17-
|
|
62
|
-
"@latticexyz/common": "2.2.17-
|
|
63
|
-
"@latticexyz/config": "2.2.17-
|
|
64
|
-
"@latticexyz/protocol-parser": "2.2.17-
|
|
65
|
-
"@latticexyz/schema-type": "2.2.17-
|
|
66
|
-
"@latticexyz/store": "2.2.17-
|
|
67
|
-
"@latticexyz/store-
|
|
68
|
-
"@latticexyz/store-
|
|
69
|
-
"@latticexyz/world": "2.2.17-
|
|
61
|
+
"@latticexyz/block-logs-stream": "2.2.17-56e65f64186741cf38a7dc0bf62e2d22bbe8fed2",
|
|
62
|
+
"@latticexyz/common": "2.2.17-56e65f64186741cf38a7dc0bf62e2d22bbe8fed2",
|
|
63
|
+
"@latticexyz/config": "2.2.17-56e65f64186741cf38a7dc0bf62e2d22bbe8fed2",
|
|
64
|
+
"@latticexyz/protocol-parser": "2.2.17-56e65f64186741cf38a7dc0bf62e2d22bbe8fed2",
|
|
65
|
+
"@latticexyz/schema-type": "2.2.17-56e65f64186741cf38a7dc0bf62e2d22bbe8fed2",
|
|
66
|
+
"@latticexyz/store": "2.2.17-56e65f64186741cf38a7dc0bf62e2d22bbe8fed2",
|
|
67
|
+
"@latticexyz/store-indexer": "2.2.17-56e65f64186741cf38a7dc0bf62e2d22bbe8fed2",
|
|
68
|
+
"@latticexyz/store-sync": "2.2.17-56e65f64186741cf38a7dc0bf62e2d22bbe8fed2",
|
|
69
|
+
"@latticexyz/world": "2.2.17-56e65f64186741cf38a7dc0bf62e2d22bbe8fed2"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
|
File without changes
|