0x5ba1…7ba9

All memos sent from and to 0x5ba1…7ba9.

0x5ba199a9…7ba9·#25,619,946·0x9f7449f5…9097c4
n:2rem 0 1rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}h3.svelte-2mvwa1{margin:1.6rem 0 .6rem}.ledger-wrap.svelte-2mvwa1{overflow-x:auto;border:1px solid var(--line);margin-top:.9rem}.ledger.svelte-2mvwa1{margin:0;min-width:46rem;background:var(--surface);font-family:var(--font-mono)}.ledger.svelte-2mvwa1 th:where(.svelte-2mvwa1){background:var(--ink);color:var(--bg);border-bottom:0;font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.ledger.svelte-2mvwa1 td:where(.svelte-2mvwa1){color:var(--ink);border-bottom:1px solid var(--line);font-size:.78rem;white-space:nowrap}.ledger.svelte-2mvwa1 tbody:where(.svelte-2mvwa1) tr:where(.svelte-2mvwa1):last-child td:where(.svelte-2mvwa1){border-bottom:0}.ledger.svelte-2mvwa1 tbody:where(.svelte-2mvwa1) tr:where(.svelte-2mvwa1):hover td:where(.svelte-2mvwa1){background:var(--bg)}.ledger.svelte-2mvwa1 .addr:where(.svelte-2mvwa1){color:var(--ink-2)}@media(max-width:640px){.detail-head.svelte-2mvwa1{grid-template-columns:1fr}.artwrap.svelte-2mvwa1{max-width:320px}}@media(max-width:560px){.orders.svelte-2mvwa1{padding:.85rem .9rem}.orders.svelte-2mvwa1 p:where(.svelte-2mvwa1){flex-wrap:wrap;gap:.15rem .85rem}.orders.svelte-2mvwa1 .ok:where(.svelte-2mvwa1){width:100%}.orders.svelte-2mvwa1 p:where(.svelte-2mvwa1) strong:where(.svelte-2mvwa1){white-space:nowrap}h2.svelte-2mvwa1{margin:1.6rem 0 .8rem}h3.svelte-2mvwa1{margin:1.2rem 0 .5rem}.unwrapped.svelte-2mvwa1{padding:1rem 1.05rem}dl.svelte-2mvwa1{gap:.5rem 1rem}}.orders.svelte-1p3nwux{list-style:none;margin:0;padding:0}.orders.svelte-1p3nwux li:where(.svelte-1p3nwux){display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.5rem 0;border-top:1px solid var(--line)}.orders.svelte-1p3nwux li:where(.svelte-1p3nwux):first-child{border-top:0}.orders.svelte-1p3nwux li:where(.svelte-1p3nwux)>span:where(.svelte-1p3nwux):first-child{display:flex;align-items:baseline;flex-wrap:wrap;gap:.6rem}.tag.svelte-1p3nwux{font-size:.64rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--accent-wash);padding:.05rem .45rem}.count.svelte-1p3nwux{margin:0 0 .9rem}.addr.svelte-1p3nwux{font-family:var(--font-mono);font-size:.9em;overflow-wrap:anywhere}@media(max-width:560px){.addr.svelte-1p3nwux{font-size:.8em}}.addr.svelte-1qq2otu{overflow-wrap:anywhere;min-width:0}@media(max-width:560px){.addr.svelte-1qq2otu{font-size:.8em}}.done.svelte-1qq2otu{display:flex;gap:1.1rem;align-items:center;border:1px solid var(--accent);background:var(--accent-wash);padding:1rem 1.15rem;margin-bottom:1.9rem;flex-wrap:wrap}.done.svelte-1qq2otu .thumb:where(.svelte-1qq2otu){display:block;line-height:0}.done.svelte-1qq2otu .txt:where(.svelte-1qq2otu) p:where(.svelte-1qq2otu){margin:0 0 .3rem}.done.svelte-1qq2otu .actions:where(.svelte-1qq2otu){display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.7rem}.cta.svelte-1qq2otu{display:inline-block;padding:.45rem 1rem;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);font-weight:550;font-size:.9rem}.cta.svelte-1qq2otu:hover{background:var(--accent-2);border-color:var(--accent-2);color:var(--on-accent);text-decoration:none}.stalled.svelte-1qq2otu{border:1px solid var(--line-2);background:var(--surface);padding:.9rem 1.15rem;margin-bottom:1.9rem}.stalled.svelte-1qq2otu p:where(.svelte-1qq2otu){margin:0 0 .4rem}.stalled.svelte-1qq2otu p:where(.svelte-1qq2otu):last-child{margin-bottom:0;margin-top:.7rem} </style> </head> <body> <div id="app"></div> </body> </html>
0x5ba199a9…7ba9·#25,619,944·0x32ac0cdd…2c8864
),Hs().then(N=>m(a,N,!0))):m(a,!1)}),ue(()=>{(n(s)||n(i))&&n(l)&&n(l).scrollIntoView({behavior:"smooth",block:"center"})});async function w(){try{m(r,await Hn(C.account),!0)}catch{}}const v=zt({}),y=zt({});async function I(N,P){if(!y[N]){v[N]=null,y[N]=!0;try{await P(),await w()}catch(J){v[N]=pe(J)}finally{y[N]=!1}}}const k=N=>BigInt(N),R=X(()=>n(r)&&!jt(n(r))),Y=N=>String(N??"").trim();function G(N){const P=Y(N);return P?/^\d+$/.test(P)?Number(P)>=1e4?`#${P} is a dust rock. Dust can't be wrapped, only absorbed into a rock you already own, from that rock's page.`:null:"Enter a whole rock id, 0 to 9999.":null}const D=X(()=>ya(n(f),0,Number.MAX_SAFE_INTEGER)),nt=X(()=>ke(n(f))&&!n(D)),B=X(()=>ya(n(b))),F=X(()=>ke(n(b))&&!n(B)),Z=X(()=>ya(n(p),0,Number.MAX_SAFE_INTEGER)),_t=X(()=>ke(n(p))&&!n(Z)),U=X(()=>G(n(c))),yt=X(()=>!!Y(n(c))&&!n(U)),mt=X(()=>G(n(u))),St=X(()=>!!Y(n(u))&&!n(mt));let Lt=A(null);ue(()=>{n(u),m(Lt,null)});async function se(N,P){const J=await Kn(N).catch(()=>null);return J&&C.account&&J.toLowerCase()===C.account.toLowerCase()?(m(s,{id:Number(N),how:P},!0),m(i,null),!0):(m(i,`Rock #${N} is not wrapped yet. If the raw rock already reached your warden, finish it with "Wrap only" under Advanced.`),m(s,null),!1)}async function tt(N){const P=await Ko(N)||"",J=Kt=>Kt&&P.toLowerCase()===Kt.toLowerCase();return J(C.account)?null:jt(P)?`Nobody holds raw rock #${N} on the v1 contract, so there is nothing to wrap yet.`:J(ut.rock)?`Rock #${N} is already wrapped here.`:J(n(r))?`Rock #${N} is already sitting in your warden. Finish it with "Wrap only" under Advanced.`:J(ut.wrapperSub100)||J(ut.wrapper10k)?`You don't hold raw rock #${N}: it is still wrapped in an old contract. Use "Migrate" below instead.`:`Raw rock #${N} belongs to ${P}, not you, so it cannot be wrapped from here.`}async function H(){if(y.wrap)return;const N=k(n(c));m(s,null),m(i,null),y.wrap=!0;try{v.wrap=null;const P=await tt(N);if(P){v.wrap=P;return}n(R)||await Li(),await zd(N),await se(N,"wrapped")&&m(c,"")}catch(P){v.wrap=pe(P)}finally{y.wrap=!1}await w()}async function ft(){if(y.migrate)return;const N=Y(n(u)),P=k(N);m(s,null),m(i,null),m(Lt,null),v.migrate=null,y.migrate=!0;try{const J=await Wd(P,C.account);J?(await Dd(J,P),await se(P,"migrated")&&m(u,"")):m(Lt,`You don't hold #${N} in either old wrapper. If you hold the raw 2017 rock, use "Wrap a raw rock" above.`)}catch(J){v.migrate=pe(J)}finally{y.migrate=!1}await w()}async function wt(){if(y.wrapOnly)return;const N=k(n(b));m(s,null),m(i,null),y.wrapOnly=!0;try{v.wrapOnly=null,await Bd(N),await se(N,"wrapped")&&m(b,"")}catch(P){v.wrapOnly=pe(P)}finally{y.wrapOnly=!1}await w()}var oe=jv(),le=d(lt(oe),2);{var Cr=N=>{var P=Pv();h(N,P)},$t=N=>{var P=zv(),J=lt(P);{var Kt=O=>{var W=Wv(),Q=o(W),ge=o(Q);zs(ge,{get id(){return n(s).id},size:92});var He=d(Q,2),re=o(He),ne=o(re),Xe=o(ne),It=d(re,4),Wt=o(It),ie=o(Wt),Pe=d(Wt,2);Aa(W,ye=>m(l,ye),()=>n(l)),E(()=>{Gt(Q,"href","#/rock/"+n(s).id),g(Xe,`Rock #${n(s).id??""} is ${n(s).how??""}.`),Gt(Wt,"href","#/rock/"+n(s).id),g(ie,`View rock #${n(s).id??""} →`)}),ct("click",Pe,()=>m(s,null)),h(O,W)},ce=O=>{var W=Dv(),Q=d(o(W),2),ge=o(Q),He=d(Q,2),re=o(He);Aa(W,ne=>m(l,ne),()=>n(l)),E(()=>g(ge,n(i))),ct("click",re,()=>m(i,null)),h(O,W)};S(J,O=>{n(s)?O(Kt):n(i)&&O(ce,1)})}var te=d(J,4),Ne=d(o(te),2),de=o(Ne),qt=d(o(de)),me=o(qt),Zr=d(de,2);{var Or=O=>{var W=Fv(),Q=o(W),ge=o(Q);E(()=>{Q.disabled=y.warden,g(ge,y.warden?"creating…":"Create my warden")}),ct("click",Q,()=>I("warden",Li)),h(O,W)};S(Zr,O=>{n(R)||O(Or)})}var Kr=d(Ne,2);{var Rr=O=>{var W=mn(),Q=o(W);E(()=>g(Q,v.warden)),h(O,W)};S(Kr,O=>{v.warden&&O(Rr)})}var hr=d(te,4),Nr=d(o(hr),2),Ke=o(Nr),Br=o(Ke),Mr=d(o(Br)),pr=d(Ke,2),sr=o(pr),Hr=o(sr),Te=d(Nr,2);{var Pr=O=>{var W=jn(),Q=o(W);E(()=>g(Q,n(U))),h(O,W)};S(Te,O=>{n(U)&&O(Pr)})}var Xr=d(Te,2);{var ir=O=>{var W=mn(),Q=o(W);E(()=>g(Q,v.wrap)),h(O,W)};S(Xr,O=>{v.wrap&&O(ir)})}var _r=d(hr,4),T=d(o(_r),2),K=o(T),gt=o(K),M=d(o(gt)),$=d(K,2),bt=o($),Mt=o(bt),Ht=d(T,2);{var j=O=>{var W=jn(),Q=o(W);E(()=>g(Q,n(mt)??n(Lt))),h(O,W)};S(Ht,O=>{(n(mt)||n(Lt))&&O(j)})}var V=d(Ht,2);{var at=O=>{var W=mn(),Q=o(W);E(()=>g(Q,v.migrate)),h(O,W)};S(V,O=>{v.migrate&&O(at)})}var Tt=d(_r,2),Et=d(o(Tt),4),Rt=d(o(Et),2),xt=o(Rt),Nt=o(xt),Ut=d(o(Nt)),be=d(xt,2),fe=o(be),wr=o(fe),or=d(Rt,2);{var Qr=O=>{var W=jn(),Q=o(W);E(()=>g(Q,n(D))),h(O,W)};S(or,O=>{n(D)&&O(Qr)})}var Be=d(or,2);{var mr=O=>{var W=mn(),Q=o(W);E(()=>g(Q,v.gift)),h(O,W)};S(Be,O=>{v.gift&&O(mr)})}var ia=d(Et,2),oa=d(o(ia),2),la=o(oa),ca=o(la),Pa=d(o(ca)),Wa=d(la,2),un=o(Wa),Da=o(un),Pn=d(oa,2);{var Fa=O=>{var W=jn(),Q=o(W);E(()=>g(Q,n(B))),h(O,W)};S(Pn,O=>{n(B)&&O(Fa)})}var ua=d(Pn,2);{var za=O=>{var W=mn(),Q=o(W);E(()=>g(Q,v.wrapOnly)),h(O,W)};S(ua,O=>{v.wrapOnly&&O(za)})}var ja=d(ia,2),da=d(o(ja),2),fa=o(da),qa=o(fa),z=d(o(qa)),st=d(fa,2),Ct=o(st),Xt=o(Ct),At=d(da,2);{var Pt=O=>{var W=jn(),Q=o(W);E(()=>g(Q,n(Z))),h(O,W)};S(At,O=>{n(Z)&&O(Pt)})}var ee=d(At,2);{var Me=O=>{var W=mn(),Q=o(W);E(()=>g(Q,v.rescue)),h(O,W)};S(ee,O=>{v.rescue&&O(Me)})}E(()=>{g(me,n(R)?n(r):"none yet"),sr.disabled=!n(yt)||y.wrap,g(Hr,y.wrap?"wrapping…":"Gift & wrap"),bt.disabled=!n(St)||y.migrate,g(Mt,y.migrate?"migrating…":"Migrate"),fe.disabled=!n(nt)||y.gift,g(wr,y.gift?"gifting…":"giftRock"),un.disabled=!n(F)||y.wrapOnly,g(Da,y.wrapOnly?"wrapping…":"Wrap only"),Ct.disabled=!n(_t)||y.rescue,g(Xt,y.rescue?"rescuing…":"Rescue")}),Ce(Mr,()=>n(c),O=>m(c,O)),ct("click",sr,H),Ce(M,()=>n(u),O=>m(u,O)),ct("click",bt,ft),Ce(Ut,()=>n(f),O=>m(f,O)),ct("click",fe,()=>I("gift",()=>Nd(k(n(f))))),Ce(Pa,()=>n(b),O=>m(b,O)),ct("click",un,wt),Ce(z,()=>n(p),O=>m(p,O)),ct("click",Ct,()=>I("rescue",()=>Hd(k(n(p))))),h(N,P)};S(le,N=>{C.account?N($t,-1):N(Cr)})}h(t,oe),Ze()}Yr(["click"]);var Uv=x('<p>Not found. <a href="#/">Home</a></p>'),Vv=x("<!> <main><!></main>",1);function Yv(t,e){Ge(e,!0);const r=X(()=>Ru(gs.path));var a=Vv(),s=lt(a);nf(s,{});var i=d(s,2),l=o(i);{var c=v=>{cf(v)},u=v=>{Bf(v,{})},f=v=>{var y=Er(),I=lt(y);wu(I,()=>n(r).params.id,k=>{gv(k,{get id(){return n(r).params.id}})}),h(v,y)},b=v=>{Hv(v,{})},p=v=>{qv(v,{})},w=v=>{var y=Uv();h(v,y)};S(l,v=>{n(r).name==="home"?v(c):n(r).name==="market"?v(u,1):n(r).name==="rock"?v(f,2):n(r).name==="account"?v(b,3):n(r).name==="wrap"?v(p,4):v(w,-1)})}h(t,a),Ze()}C.discover();vu(Yv,{target:document.getElementById("app")}); </script> <style>:root{color-scheme:light;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--bg: #efeeea;--ink: #22231e;--accent: #282878;--ink-2: #70706c;--ink-3: #9d9d98;--line: #dad9d3;--line-2: #c3c2bc;--surface: #f6f5f1;--surface-2: #e7e6e0;--accent-2: #1b1b5e;--accent-wash: #e1e0ec;--on-accent: #f4f3ef;--radius: 0;--radius-sm: 0;--wrap: 76rem;--shadow-sm: 0 1px 2px rgba(34, 35, 30, .05);--shadow: 0 6px 22px -10px rgba(34, 35, 30, .22)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent-wash)}main{display:block;max-width:var(--wrap);margin:0 auto;padding:2.5rem 1.5rem 3.5rem}h1,h2,h3,h4{font-family:var(--font-sans);color:var(--ink);margin:0;text-wrap:balance}h1{font-size:clamp(1.9rem,1.4rem + 2vw,2.7rem);font-weight:700;letter-spacing:-.02em;line-height:1.05}h2{font-size:1.3rem;font-weight:650;letter-spacing:-.01em}h3{font-size:1.02rem;font-weight:650}p{margin:0 0 .9rem}small{font-size:.82rem;color:var(--ink-2)}strong{font-weight:650}hr{border:0;border-top:1px solid var(--line);margin:2rem 0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-2);text-decoration:underline;text-underline-offset:2px}code,kbd,samp{font-family:var(--font-mono);font-size:.9em}.eyebrow,dt,thead th{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button,input,select,textarea{font:inherit;color:var(--ink)}button{font-family:var(--font-sans);font-size:.9rem;font-weight:550;background:var(--surface);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--radius);padding:.45rem .85rem;cursor:pointer;transition:border-color .12s,background .12s,color .12s,transform .04s}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{background:#d8d7d0;color:#45443d;border-color:#c7c6bf;cursor:not-allowed;transform:none}.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.primary:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2);color:var(--on-accent)}input,select,textarea{font-family:var(--font-mono);font-size:.88rem;background:var(--surface);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:.4rem .55rem}input:hover,select:hover{border-color:var(--ink-3)}input:focus-visible,select:focus-visible{border-color:var(--accent)}input::placeholder{color:var(--ink-3)}table{border-collapse:collapse;width:100%}table[border]{border:0}th,td{padding:.6rem .7rem;text-align:left;vertical-align:middle;border-bottom:1px solid var(--line)}thead th{border-bottom:1.5px solid var(--line-2);white-space:nowrap}dl{margin:0}dd{margin:0;font-family:var(--font-mono)}details{border:1px solid var(--line);border-radius:var(--radius);padding:.6rem 1rem;margin:1rem 0;background:var(--surface)}summary{cursor:pointer;font-weight:600}summary:hover{color:var(--accent)}.action-card{border:1px solid var(--line);background:var(--surface);padding:.85rem 1.05rem;margin:0 0 .8rem}.action-card>:last-child{margin-bottom:0}.action-card .note{margin:0 0 .75rem;font-size:.82rem;color:var(--ink-2)}.action-card .note.bad{color:#b23a2a}.action-card .row{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1.25rem}.action-card .row+.note{margin:.65rem 0 0}.action-card .fields{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem}.action-card .fields label{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.4rem}.action-card .actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.action-card .fields+.actions{margin-left:auto}.failed{margin:.65rem 0 0;font-size:.82rem;color:#b23a2a;overflow-wrap:anywhere}.mono{font-family:var(--font-mono)}.muted{color:var(--ink-2)}.head{display:flex;align-items:center;justify-content:space-between;gap:1rem 1.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.head .controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.head .controls label{display:inline-flex;align-items:center;gap:.4rem}.rock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1.1rem}.pager{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2rem;flex-wrap:wrap}.pager .where{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-2)}@media(max-width:560px){main{padding:1.6rem 1.1rem 2.5rem}h2{font-size:1.2rem}.head{gap:.8rem;margin-bottom:1.15rem}.head .controls{width:100%;gap:.7rem 1rem}.action-card{padding:.8rem .9rem}.action-card .fields,.action-card .fields label{width:100%}.action-card .fields input:not([type=checkbox]),.action-card .fields select{flex:1 1 6rem;min-width:0;max-width:12rem}.action-card .fields+.actions{margin-left:0}.action-card .actions{width:100%}.action-card .actions button{flex:1 1 8rem}.rock-grid{grid-template-columns:repeat(2,1fr);gap:.7rem}.pager{gap:.6rem;margin-top:1.5rem}details{padding:.6rem .85rem}}@media(pointer:coarse){button{padding:.55rem .95rem}input,select,textarea{font-size:16px}summary{padding:.15rem 0}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}header.svelte-1jnx671{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}.bar.svelte-1jnx671{max-width:var(--wrap);margin:0 auto;padding:.65rem 1.5rem;display:flex;align-items:center;gap:1.25rem}.brand.svelte-1jnx671{display:inline-flex;align-items:center;line-height:0}.logo.svelte-1jnx671{display:block;transition:opacity .12s}.brand.svelte-1jnx671:hover .logo:where(.svelte-1jnx671){opacity:.75}.tabs.svelte-1jnx671{display:flex;gap:.15rem;flex-wrap:wrap}.tabs.svelte-1jnx671 a:where(.svelte-1jnx671){color:var(--ink-2);font-weight:550;font-size:.9rem;padding:.3rem .72rem;border-radius:var(--radius)}.tabs.svelte-1jnx671 a:where(.svelte-1jnx671):hover{color:var(--ink);background:var(--surface-2);text-decoration:none}.tabs.svelte-1jnx671 a.active:where(.svelte-1jnx671){color:var(--accent);background:var(--accent-wash)}.right.svelte-1jnx671{margin-left:auto;display:flex;align-items:center;gap:.6rem}.chip.svelte-1jnx671{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.9rem;font-weight:550;color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);padding:.45rem .85rem;cursor:pointer;transition:border-color .12s,background .12s,color .12s,transform .04s}.chip.svelte-1jnx671:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}.chip.svelte-1jnx671:active{transform:translateY(1px)}.chip.active.svelte-1jnx671{color:var(--accent);border-color:var(--accent);background:var(--accent-wash)}.dot.svelte-1jnx671{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}.who.svelte-1jnx671{max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip.warn.svelte-1jnx671 .dot:where(.svelte-1jnx671){background:#b23a2a}.netbar.svelte-1jnx671{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.4rem .75rem;background:var(--accent);color:var(--on-accent);text-align:center;font-size:.82rem;padding:.35rem 1rem}.netbar.bad.svelte-1jnx671{background:#b23a2a}.netbar.svelte-1jnx671 button:where(.svelte-1jnx671){font-size:.78rem;padding:.15rem .6rem;background:transparent;color:var(--on-accent);border-color:var(--on-accent)}.netbar.svelte-1jnx671 button:where(.svelte-1jnx671):hover:not(:disabled){background:var(--on-accent);color:var(--accent);border-color:var(--on-accent)}.netbar.svelte-1jnx671 button:where(.svelte-1jnx671):disabled{background:transparent;color:var(--on-accent);border-color:var(--on-accent);opacity:.7}.netbar.svelte-1jnx671 .why:where(.svelte-1jnx671){width:100%;opacity:.9}@media(max-width:620px){.bar.svelte-1jnx671{flex-wrap:wrap;gap:.6rem 1rem}.right.svelte-1jnx671{width:100%}}@media(max-width:560px){.bar.svelte-1jnx671{padding:.6rem 1.1rem}.tabs.svelte-1jnx671 a:where(.svelte-1jnx671){padding:.3rem .6rem}.chip.svelte-1jnx671{flex:1 1 auto;min-width:0}.who.svelte-1jnx671{max-width:none}.right.svelte-1jnx671>button:where(.svelte-1jnx671){flex:none}}.banner.svelte-e1tb7l{display:block;width:100%;height:auto;background:var(--surface)}.home.svelte-1nmp6pz{max-width:44rem;margin:0 auto}.home.svelte-1nmp6pz>h1:where(.svelte-1nmp6pz){text-align:center;margin:.45rem 0 1.4rem}.lede.svelte-1nmp6pz{font-size:1.12rem;color:var(--ink)}.story.svelte-1nmp6pz{margin-top:2rem}.story.svelte-1nmp6pz p:where(.svelte-1nmp6pz){color:var(--ink-2)}.story.svelte-1nmp6pz code:where(.svelte-1nmp6pz){font-size:.9em;background:var(--surface-2);padding:.05rem .35rem;color:var(--ink)}.cta.svelte-1nmp6pz{display:flex;justify-content:center;gap:.8rem;margin-top:2.25rem;flex-wrap:wrap}.btn.svelte-1nmp6pz{display:inline-block;padding:.62rem 1.3rem;border-radius:var(--radius);border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font-weight:550;text-decoration:none}.btn.svelte-1nmp6pz:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.btn.primary.svelte-1nmp6pz{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary.svelte-1nmp6pz:hover{background:var(--accent-2);border-color:var(--accent-2);color:var(--on-accent)}.art.svelte-m95sb2{display:block;image-rendering:pixelated;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius-sm)}.art--empty.svelte-m95sb2{display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-size:.72rem;text-align:center}.card.svelte-3ie79d{position:relative;border:1px solid var(--line);background:var(--surface);padding:.6rem;transition:border-color .12s,box-shadow .12s}.card.svelte-3ie79d:hover{border-color:var(--line-2);box-shadow:var(--shadow-sm)}.card.svelte-3ie79d .art:where(.svelte-3ie79d){display:block}.card.svelte-3ie79d .art:where(.svelte-3ie79d):after{content:"";position:absolute;inset:0}.meta.svelte-3ie79d{display:flex;align-items:center;justify-content:space-between;gap:.3rem .5rem;flex-wrap:wrap;margin:.6rem .15rem .4rem}.meta.svelte-3ie79d .id:where(.svelte-3ie79d){font-family:var(--font-mono);font-weight:650;color:var(--ink)}.meta.svelte-3ie79d .id:where(.svelte-3ie79d):hover,.card.svelte-3ie79d:hover .meta:where(.svelte-3ie79d) .id:where(.svelte-3ie79d){color:var(--accent);text-decoration:none}.meta.svelte-3ie79d .id:where(.svelte-3ie79d),.buy.svelte-3ie79d{position:relative;z-index:1}.tag.svelte-3ie79d{font-size:.64rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--accent-wash);padding:.05rem .45rem}.row.svelte-3ie79d{display:flex;align-items:center;justify-content:space-between;gap:.3rem .5rem;flex-wrap:wrap;padding:0 .15rem}.price.svelte-3ie79d{font-family:var(--font-mono);font-weight:650}.buy.svelte-3ie79d{font-size:.8rem;padding:.32rem .75rem}.sub2.svelte-3ie79d{margin-top:.4rem;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);min-height:1rem}.info.svelte-kuwzzo{position:relative;display:inline-flex;vertical-align:middle}.mark.svelte-kuwzzo{width:1.2rem;height:1.2rem;padding:0;line-height:1;font-family:var(--font-mono);font-size:.72rem;font-weight:700;font-style:italic;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line-2)}.mark.svelte-kuwzzo:hover{color:var(--accent);border-color:var(--accent);background:var(--surface-2)}.bubble.svelte-kuwzzo{position:absolute;left:0;top:calc(100% + 6px);z-index:40;width:max-content;max-width:min(78vw,22rem);background:var(--ink);color:var(--bg);font-family:var(--font-sans);font-weight:400;font-size:.78rem;font-style:normal;line-height:1.45;text-transform:none;letter-spacing:normal;padding:.6rem .75rem;border:1px solid var(--ink);box-shadow:var(--shadow);visibility:hidden;opacity:0;transition:opacity .12s}.bubble.right.svelte-kuwzzo{left:auto;right:0}@media(max-width:560px){.bubble.svelte-kuwzzo{left:auto;right:0}}.info.svelte-kuwzzo:hover .bubble:where(.svelte-kuwzzo),.info.svelte-kuwzzo:focus-within .bubble:where(.svelte-kuwzzo){visibility:visible;opacity:1}.refresh.svelte-1kspdzn{display:inline-flex;align-items:center;gap:.5rem}.check.svelte-1kspdzn{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;color:var(--ink-2);font-size:.85rem}.check.svelte-1kspdzn input:where(.svelte-1kspdzn){cursor:pointer}.said.svelte-1kspdzn{font-size:.78rem;color:var(--ink-2);min-width:4.2rem;text-align:right}@media(max-width:560px){.refresh.svelte-1kspdzn{flex:1 1 auto;justify-content:flex-end}.said.svelte-1kspdzn{min-width:0}}.jump.svelte-1r6myry{display:inline-flex;align-items:center;gap:.5rem}.statbar.svelte-1r6myry{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--surface);margin-bottom:1.25rem;overflow:hidden}.stat.svelte-1r6myry{padding:.9rem 1.1rem;border-left:1px solid var(--line)}.stat.svelte-1r6myry:first-child{border-left:0}.stat.svelte-1r6myry .v:where(.svelte-1r6myry){display:block;font-family:var(--font-mono);font-size:1.45rem;font-weight:650;line-height:1.2}.stat.svelte-1r6myry .v:where(.svelte-1r6myry) em:where(.svelte-1r6myry){font-style:normal;font-size:.6em;color:var(--ink-2)}.tabs.svelte-1r6myry{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.5rem}.tabs.svelte-1r6myry button:where(.svelte-1r6myry){font-size:.85rem}.tabs.svelte-1r6myry button.active:where(.svelte-1r6myry){background:var(--accent-wash);border-color:var(--accent);color:var(--accent)}@media(max-width:560px){.statbar.svelte-1r6myry{grid-template-columns:repeat(2,1fr)}.stat.svelte-1r6myry{padding:.75rem .9rem}.stat.svelte-1r6myry:nth-child(3){border-left:0}.stat.svelte-1r6myry:nth-child(3),.stat.svelte-1r6myry:nth-child(4){border-top:1px solid var(--line)}.jump.svelte-1r6myry{width:100%;flex-wrap:wrap}.jump.svelte-1r6myry label:where(.svelte-1r6myry){flex:1 1 8rem;min-width:0;white-space:nowrap}.jump.svelte-1r6myry input:where(.svelte-1r6myry){flex:1 1 4rem;min-width:0}.jump.svelte-1r6myry button:where(.svelte-1r6myry){flex:none}.tabs.svelte-1r6myry{gap:.35rem;margin-bottom:1.15rem}.tabs.svelte-1r6myry button:where(.svelte-1r6myry){font-size:.8rem;padding:.5rem .7rem}}.named.svelte-xraaj5{display:inline-flex;flex-direction:column;gap:.1rem;vertical-align:top}.nm.svelte-xraaj5{font-family:var(--font-mono)}.you.svelte-xraaj5 .nm:where(.svelte-xraaj5){font-family:inherit;font-style:italic;color:var(--accent)}.raw.svelte-xraaj5{font-family:var(--font-mono);font-size:.82em;color:var(--ink-3);overflow-wrap:anywhere}.raw.only.svelte-xraaj5{color:inherit;font-size:inherit}.backrow.svelte-2mvwa1{margin:0 0 1rem}.back.svelte-2mvwa1{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:550;color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);padding:.45rem .85rem;cursor:pointer;transition:border-color .12s,background .12s,color .12s,transform .04s}.back.svelte-2mvwa1:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}.back.svelte-2mvwa1:active{transform:translateY(1px)}.back.svelte-2mvwa1 svg:where(.svelte-2mvwa1){display:block;flex:none}@media(pointer:coarse){.back.svelte-2mvwa1{padding:.55rem .95rem}}.private.svelte-2mvwa1{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem}.check.svelte-2mvwa1{cursor:pointer;color:var(--ink-2)}.check.svelte-2mvwa1 input:where(.svelte-2mvwa1){cursor:pointer}.unwrapped.svelte-2mvwa1{max-width:42rem;border:1px solid var(--line);background:var(--surface);padding:1.25rem 1.4rem}.unwrapped.svelte-2mvwa1 p:where(.svelte-2mvwa1):last-child{margin-bottom:0}.cta.svelte-2mvwa1{display:inline-block;margin-top:.35rem;padding:.5rem 1.1rem;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);font-weight:550}.cta.svelte-2mvwa1:hover{background:var(--accent-2);border-color:var(--accent-2);color:var(--on-accent);text-decoration:none}.detail-head.svelte-2mvwa1{display:grid;grid-template-columns:280px 1fr;gap:1.5rem 2.25rem;align-items:start;margin-bottom:1.25rem}.facts.svelte-2mvwa1 h2:where(.svelte-2mvwa1){margin-top:0;margin-bottom:.9rem}dl.svelte-2mvwa1{display:grid;grid-template-columns:max-content 1fr;gap:.65rem 1.5rem;align-items:center}dl.svelte-2mvwa1 dd:where(.svelte-2mvwa1){font-size:.95rem;overflow-wrap:anywhere}.tag.svelte-2mvwa1{display:inline-block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em;padding:.12rem .55rem;background:var(--surface-2);border:1px solid var(--line-2);color:var(--ink-2)}.tag.defined.svelte-2mvwa1{background:var(--accent-wash);border-color:transparent;color:var(--accent)}.swatch.svelte-2mvwa1{display:inline-block;width:.8rem;height:.8rem;margin-right:.4rem;vertical-align:-.08rem;border:1px solid var(--line-2)}.orders.svelte-2mvwa1{display:grid;gap:.55rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.15rem}.orders.svelte-2mvwa1 p:where(.svelte-2mvwa1){margin:0;display:flex;gap:.85rem;align-items:baseline}.orders.svelte-2mvwa1 .ok:where(.svelte-2mvwa1){flex:none;width:5rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2)}h2.svelte-2mvwa1{margi
0x5ba199a9…7ba9·#25,619,943·0x64e2a1a3…56039c
and rocks 0-99 can never be burned. One of the two has to be 100 or above.`:null:`Rock #${T} isn't wrapped, so there is nothing there to merge.`}async function Or(){await ft("merge",async()=>{const T=BigInt(n(R)),K=await Zr(T).catch(()=>null);if(K)throw new Error(K);await Fd(wt(),T,BigInt(n(Y))),wt()>T&&m(U,Number(T),!0),m(R,"")})}async function Kr(T){const K=(C.account||"").toLowerCase(),[gt,M]=await Promise.all([Hn(C.account).catch(()=>null),Promise.all(T.map(Mt=>Ko(Mt).catch(()=>null)))]),$=(gt||"").toLowerCase(),bt=T.filter((Mt,Ht)=>{const j=(M[Ht]||"").toLowerCase();return j!==K&&j!==$});if(bt.length){const Mt=bt.slice(0,4).join(", #");return{issue:bt.length===1?`You don't hold raw dust rock #${Mt} on the v1 contract, so it cannot be absorbed.`:`${bt.length} of these are not yours on the v1 contract: #${Mt}${bt.length>4?", …":""}.`}}return{needGift:T.filter((Mt,Ht)=>(M[Ht]||"").toLowerCase()===K)}}async function Rr(){await ft("absorb",async()=>{const T=await Kr(n($t).ids).catch(()=>({needGift:n($t).ids}));if(T.issue)throw new Error(T.issue);await jd(n($t).ids,wt(),T.needGift),m(G,"")})}async function hr(){m(l,"loading…"),tt.history=null;try{m(l,await Id(wt()),!0)}catch(T){m(l,[],!0),tt.history=pe(T)}}async function Nr(){await D(),Array.isArray(n(l))&&await hr()}var Ke=bv(),Br=d(lt(Ke),2),Mr=o(Br),pr=o(Mr),sr=d(Mr,2),Hr=o(sr);js(Hr,{run:Nr,autoRun:D});var Te=d(Br,2);{var Pr=T=>{var K=Wf(),gt=o(K);E(M=>g(gt,M),[()=>Ro(n(a),{connected:!!C.account,endpoint:ut.rpcUrl})]),h(T,K)},Xr=T=>{var K=Ci();h(T,K)},ir=T=>{var K=Vf(),gt=o(K);{var M=j=>{var V=Df(),at=lt(V),Tt=o(at),Et=o(Tt);E(()=>g(Et,`Rock #${e.id??""} is dust.`)),h(j,V)},$=X(()=>Number(e.id)>=1e4),bt=j=>{var V=jf(),at=lt(V),Tt=o(at),Et=o(Tt),Rt=d(at,2);{var xt=Ut=>{var be=Ff(),fe=lt(be),wr=d(o(fe)),or=o(wr),Qr=d(fe,2),Be=o(Qr),mr=o(Be);E(()=>{Gt(wr,"href","#/rock/"+n(U)),g(or,`rock #${n(U)??""}`),Gt(Be,"href","#/rock/"+n(U)),g(mr,`View rock #${n(U)??""} →`)}),h(Ut,be)},Nt=Ut=>{var be=zf();h(Ut,be)};S(Rt,Ut=>{n(U)!=null?Ut(xt):Ut(Nt,-1)})}E(()=>g(Et,`Rock #${e.id??""} has been merged away.`)),h(j,V)},Mt=j=>{var V=qf(),at=lt(V),Tt=o(at),Et=o(Tt);E(()=>g(Et,`Rock #${e.id??""} is unwrapped.`)),h(j,V)},Ht=j=>{var V=Uf(),at=lt(V),Tt=o(at),Et=o(Tt);E(()=>g(Et,`Rock #${e.id??""} isn't wrapped yet.`)),h(j,V)};S(gt,j=>{n($)?j(M):n(r).rolled&&n(r).mass===0n?j(bt,1):n(r).rolled?j(Mt,2):j(Ht,-1)})}h(T,K)},_r=T=>{var K=mv(),gt=lt(K),M=o(gt),$=o(M);{let z=X(()=>n(r).meta?.image);zs($,{get id(){return e.id},fluid:!0,get src(){return n(z)}})}var bt=d(M,2),Mt=d(o(bt),2),Ht=o(Mt);{var j=z=>{var st=Er(),Ct=lt(st);Tr(Ct,17,()=>n(r).meta.attributes,Xt=>Xt.trait_type,(Xt,At)=>{var Pt=Zf(),ee=lt(Pt),Me=o(ee),O=d(ee,2),W=o(O);{var Q=re=>{var ne=Yf();let Xe;var It=o(ne);E(()=>{Xe=Ur(ne,1,"tag svelte-2mvwa1",null,Xe,{defined:n(At).value==="DEFINED"}),g(It,n(At).value)}),h(re,ne)},ge=re=>{var ne=Gf(),Xe=lt(ne),It=d(Xe),Wt=o(It);E(()=>{La(Xe,`background:${n(At).value??""}`),g(Wt,n(At).value)}),h(re,ne)},He=re=>{var ne=he();E(()=>g(ne,n(At).value)),h(re,ne)};S(W,re=>{n(At).trait_type==="Status"?re(Q):n(At).trait_type==="Color"?re(ge,1):re(He,-1)})}E(()=>g(Me,n(At).trait_type)),h(Xt,Pt)}),h(z,st)},V=z=>{var st=Kf(),Ct=d(lt(st)),Xt=o(Ct);let At;var Pt=o(Xt),ee=d(Ct,3),Me=o(ee),O=d(ee,3),W=o(O);E((Q,ge)=>{At=Ur(Xt,1,"tag svelte-2mvwa1",null,At,Q),g(Pt,ge),g(Me,n(r).mass),g(W,n(r).dust)},[()=>({defined:xi(e.id,1e4)==="DEFINED"}),()=>xi(e.id,1e4)]),h(z,st)};S(Ht,z=>{n(r).meta?z(j):z(V,-1)})}var at=d(Ht,3),Tt=o(at);{var Et=z=>{cs(z,{get address(){return n(r).owner},stacked:!0})},Rt=z=>{var st=he("not wrapped (no live token)");h(z,st)};S(Tt,z=>{n(r).owner?z(Et):z(Rt,-1)})}var xt=d(gt,4),Nt=o(xt),Ut=d(o(Nt),2);{var be=z=>{var st=Xf(),Ct=lt(st),Xt=o(Ct),At=d(Ct),Pt=d(At);{var ee=O=>{var W=he();E(Q=>g(W,`(private to ${Q??""})`),[()=>oe(n(r).listing.onlyTo)?"you":Ca(n(r).listing.onlyTo)]),h(O,W)},Me=X(()=>!jt(n(r).listing.onlyTo));S(Pt,O=>{n(Me)&&O(ee)})}E((O,W)=>{g(Xt,`${O??""} ETH`),g(At,` expires ${W??""} `)},[()=>_.formatEther(n(r).listing.price),()=>Bo(n(r).listing.expiry)]),h(z,st)},fe=z=>{var st=he("none");h(z,st)};S(Ut,z=>{n(F)?z(be):z(fe,-1)})}var wr=d(Nt,2),or=d(o(wr),2);{var Qr=z=>{var st=Oi(),Ct=lt(st),Xt=o(Ct),At=d(Ct);E((Pt,ee)=>{g(Xt,`${Pt??""} ETH`),g(At,` by ${ee??""}`)},[()=>_.formatEther(n(r).bid.amount),()=>oe(n(r).bid.bidder)?"you":Ca(n(r).bid.bidder)]),h(z,st)},Be=z=>{var st=he("none");h(z,st)};S(or,z=>{n(Z)?z(Qr):z(Be,-1)})}var mr=d(wr,2),ia=d(o(mr),2);{var oa=z=>{var st=Oi(),Ct=lt(st),Xt=o(Ct),At=d(Ct);E(Pt=>{g(Xt,`${Pt??""} ETH`),g(At,` (${n(r).sale.count??""} total)`)},[()=>_.formatEther(n(r).sale.price)]),h(z,st)},la=z=>{var st=he("never sold");h(z,st)};S(ia,z=>{n(r).sale.count>0n?z(oa):z(la,-1)})}var ca=d(xt,2);{var Pa=z=>{var st=Qf();h(z,st)},Wa=z=>{const st=It=>{var Wt=Er(),ie=lt(Wt);{var Pe=ye=>{var Qe=Er(),Ie=lt(Qe);{var br=We=>{var lr=he("Your wallet can batch, so this approves the market in the same confirmation.");h(We,lr)},gr=We=>{var lr=he("This asks you to approve the market first, so it is two confirmations.");h(We,lr)};S(Ie,We=>{n(i)?We(br):We(gr,-1)})}h(ye,Qe)};S(ie,ye=>{n(s)||ye(Pe)})}h(It,Wt)};var Ct=hv(),Xt=d(lt(Ct),2);{var At=It=>{var Wt=Jf(),ie=o(Wt),Pe=o(ie),ye=d(ie,2),Qe=o(ye),Ie=o(Qe),br=o(Ie),gr=d(ye,2);{var We=Le=>{var Je=Jr(),Wr=o(Je);E(()=>g(Wr,n(yt))),h(Le,Je)};S(gr,Le=>{n(yt)&&Le(We)})}var lr=d(gr,2);{var dn=Le=>{var Je=$e(),Wr=o(Je);E(()=>g(Wr,tt.buy)),h(Le,Je)};S(lr,Le=>{tt.buy&&Le(dn)})}E((Le,Je)=>{g(Pe,`Buys this rock for ${Le??""} ETH and sends it to your wallet.`),Ie.disabled=!!n(yt)||H.buy,g(br,Je)},[()=>_.formatEther(n(r).listing.price),()=>H.buy?"buying…":"Buy for "+_.formatEther(n(r).listing.price)+" ETH"]),ct("click",Ie,()=>ft("buy",()=>Qo(wt()))),h(It,Wt)};S(Xt,It=>{n(F)&&!n(B)&&It(At)})}var Pt=d(Xt,2);{var ee=It=>{var Wt=iv(),ie=o(Wt),Pe=d(o(ie),3);{var ye=it=>{var vt=$f(),Bt=lt(vt),ve=o(Bt),De=d(Bt);E((Wn,vn)=>{g(ve,`Your ${Wn??""} ETH is locked here now.`),g(De,` Raising your bid costs only the difference. Taking it back sends the whole ${vn??""} ETH to your wallet in one transaction.`)},[()=>_.formatEther(n(r).bid.amount),()=>_.formatEther(n(r).bid.amount)]),h(it,vt)},Qe=it=>{var vt=tv(),Bt=o(vt);E(ve=>g(Bt,`The current bid is ${ve??""} ETH, so yours has to beat it.`),[()=>_.formatEther(n(r).bid.amount)]),h(it,vt)};S(Pe,it=>{n(_t)?it(ye):n(Z)&&it(Qe,1)})}var Ie=d(ie,2),br=o(Ie);{var gr=it=>{var vt=ev(),Bt=o(vt),ve=d(o(Bt));Ce(ve,()=>n(c),De=>m(c,De)),h(it,vt)};S(br,it=>{n(B)||it(gr)})}var We=d(br,2),lr=o(We);{var dn=it=>{var vt=rv(),Bt=o(vt);E(ve=>{vt.disabled=ve,g(Bt,n(St)?"placing…":"Make / raise offer")},[()=>!ke(n(c))||!!n(mt)?.issue||n(St)||H.bid]),ct("click",vt,Lt),h(it,vt)};S(lr,it=>{n(B)||it(dn)})}var Le=d(lr,2);{var Je=it=>{var vt=Ri(),Bt=o(vt);E(()=>{vt.disabled=H.bid||n(St),g(Bt,H.bid?"withdrawing…":"Withdraw your bid")}),ct("click",vt,()=>ft("bid",()=>Jo(wt()))),h(it,vt)};S(Le,it=>{n(_t)&&it(Je)})}var Wr=d(Ie,2);{var Ua=it=>{var vt=Jr(),Bt=o(vt);E(()=>g(Bt,n(mt).issue)),h(it,vt)},fn=it=>{var vt=nv(),Bt=d(o(vt)),ve=o(Bt),De=d(Bt);E((Wn,vn)=>{g(ve,`${Wn??""} ETH`),g(De,`, since you already have ${vn??""} ETH locked up.`)},[()=>_.formatEther(n(mt).send),()=>_.formatEther(n(mt).now)]),h(it,vt)},Va=it=>{var vt=av(),Bt=d(o(vt)),ve=o(Bt);E(De=>g(ve,`${De??""} ETH`),[()=>_.formatEther(n(mt).total)]),h(it,vt)},Ya=it=>{var vt=sv(),Bt=d(o(vt)),ve=o(Bt);E(De=>g(ve,`${De??""} ETH`),[()=>_.formatEther(n(mt).total)]),h(it,vt)};S(Wr,it=>{n(mt)?.issue?it(Ua):n(mt)?.kind==="raise"?it(fn,1):n(mt)?.kind==="outbid"?it(Va,2):n(mt)?.kind==="first"&&it(Ya,3)})}var Ga=d(Wr,2);{var va=it=>{var vt=$e(),Bt=o(vt);E(()=>g(Bt,tt.bid)),h(it,vt)};S(Ga,it=>{tt.bid&&it(va)})}h(It,Wt)};S(Pt,It=>{(!n(B)||n(_t))&&It(ee)})}var Me=d(Pt,2);{var O=It=>{var Wt=vv(),ie=lt(Wt),Pe=o(ie),ye=d(o(Pe));st(ye);var Qe=d(Pe,2),Ie=o(Qe),br=o(Ie),gr=d(o(br)),We=d(gr,2),lr=d(br,2),dn=o(lr),Le=o(dn),Je=d(dn,2);{var Wr=L=>{var q=ov(),ot=d(o(q));Ce(ot,()=>n(p),Fe=>m(p,Fe)),h(L,q)};S(Je,L=>{n(b)&&L(Wr)})}var Ua=d(Ie,2),fn=o(Ua),Va=o(fn),Ya=d(fn,2);{var Ga=L=>{var q=Ri(),ot=o(q);E(()=>{q.disabled=H.cancel||H.list,g(ot,H.cancel?"cancelling…":"Cancel listing")}),ct("click",q,()=>ft("cancel",()=>Xo(wt()))),h(L,q)};S(Ya,L=>{n(F)&&L(Ga)})}var va=d(Qe,2);{var it=L=>{var q=Jr(),ot=o(q);E(()=>g(ot,n(te))),h(L,q)};S(va,L=>{n(te)&&L(it)})}var vt=d(va,2);{var Bt=L=>{var q=Er(),ot=lt(q);{var Fe=kt=>{var Vt=Ni();h(kt,Vt)},ze=kt=>{var Vt=lv(),hn=d(o(Vt)),Dn=o(hn);E(()=>g(Dn,n(w).address)),h(kt,Vt)},yr=kt=>{var Vt=Bi();h(kt,Vt)};S(ot,kt=>{n(v)?kt(Fe):n(w)?kt(ze,1):kt(yr,-1)})}h(L,q)},ve=X(()=>n(b)&&ke(n(p))&&!Fr(n(p).trim()));S(vt,L=>{n(ve)&&L(Bt)})}var De=d(vt,2);{var Wn=L=>{var q=Jr(),ot=o(q);E(()=>g(ot,n(J))),h(L,q)};S(De,L=>{n(J)&&L(Wn)})}var vn=d(De,2);{var nl=L=>{var q=$e(),ot=o(q);E(()=>g(ot,tt.list)),h(L,q)};S(vn,L=>{tt.list&&L(nl)})}var al=d(vn,2);{var sl=L=>{var q=$e(),ot=o(q);E(()=>g(ot,tt.cancel)),h(L,q)};S(al,L=>{tt.cancel&&L(sl)})}var qs=d(ie,2);{var il=L=>{var q=cv(),ot=o(q),Fe=o(ot),ze=d(Fe);{var yr=kr=>{var pn=he("and cancels your listing");h(kr,pn)},kt=X(()=>n(F)&&oe(n(r).listing.seller));S(ze,kr=>{n(kt)&&kr(yr)})}var Vt=d(ze,2);st(Vt);var hn=d(ot,2),Dn=o(hn),ts=o(Dn),Fl=o(ts),zl=d(hn,2);{var jl=kr=>{var pn=$e(),ql=o(pn);E(()=>g(ql,tt.accept)),h(kr,pn)};S(zl,kr=>{tt.accept&&kr(jl)})}E((kr,pn)=>{g(Fe,`Sells this rock to the current bidder for ${kr??""} ETH`),ts.disabled=H.accept,g(Fl,pn)},[()=>_.formatEther(n(r).bid.amount),()=>H.accept?"accepting…":"Accept "+_.formatEther(n(r).bid.amount)+" ETH"]),ct("click",ts,se),h(L,q)};S(qs,L=>{n(Z)&&L(il)})}var Us=d(qs,4),Vs=d(o(Us),2),Ys=o(Vs),Gs=o(Ys),ol=d(o(Gs)),ll=d(Gs,2),Zs=d(o(ll)),Za=o(Zs);Za.value=Za.__value="0";var Ka=d(Za);Ka.value=Ka.__value="1";var Ks=d(Ka);Ks.value=Ks.__value="2";var cl=d(Ys,2),Xa=o(cl),ul=o(Xa),Xs=d(Vs,2);{var dl=L=>{var q=Jr(),ot=o(q);E(()=>g(ot,n(le))),h(L,q)};S(Xs,L=>{n(le)&&L(dl)})}var fl=d(Xs,2);{var vl=L=>{var q=$e(),ot=o(q);E(()=>g(ot,tt.merge)),h(L,q)};S(fl,L=>{tt.merge&&L(vl)})}var Qs=d(Us,2),Js=o(Qs),hl=d(o(Js),2),$s=d(Js,2),ti=o($s),pl=o(ti),_l=d(o(pl)),wl=d(ti,2),Qa=o(wl),ml=o(Qa),ei=d($s,2);{var bl=L=>{var q=Jr(),ot=o(q);E(()=>g(ot,n($t).issue)),h(L,q)},gl=L=>{var q=uv(),ot=o(q),Fe=d(ot);{var ze=kt=>{var Vt=he("Your wallet can batch, so this is one confirmation.");h(kt,Vt)},yr=kt=>{var Vt=he();E(()=>g(Vt,`${n($t).ids.length*2} transactions, since your wallet cannot batch.`)),h(kt,Vt)};S(Fe,kt=>{n(i)?kt(ze):kt(yr,-1)})}E(kt=>g(ot,`${n($t).ids.length??""} dust ${n($t).ids.length===1?"rock":"rocks"}, taking this rock's Dust from ${n(r).dust??""} to ${kt??""}. `),[()=>n(r).dust+BigInt(n($t).ids.length)]),h(L,q)};S(ei,L=>{n($t).issue?L(bl):n($t).ids.length&&L(gl,1)})}var yl=d(ei,2);{var kl=L=>{var q=$e(),ot=o(q);E(()=>g(ot,tt.absorb)),h(L,q)};S(yl,L=>{tt.absorb&&L(kl)})}var ri=d(Qs,4),ni=d(o(ri),2),xl=o(ni),Ja=o(xl),El=o(Ja),Sl=d(ni,2);{var Tl=L=>{var q=$e(),ot=o(q);E(()=>g(ot,tt.unwrap)),h(L,q)};S(Sl,L=>{tt.unwrap&&L(Tl)})}var Il=d(ri,4),ai=o(Il),Ll=d(o(ai));{var Al=L=>{var q=dv(),ot=d(lt(q));{var Fe=ze=>{var yr=he(`, in a second transaction`);h(ze,yr)};S(ot,ze=>{n(i)||ze(Fe)})}h(L,q)},Cl=X(()=>n(F)&&oe(n(r).listing.seller));S(Ll,L=>{n(Cl)&&L(Al)})}var si=d(ai,2),ii=o(si),Ol=o(ii),Rl=d(o(Ol)),Nl=d(ii,2),$a=o(Nl),Bl=o($a),oi=d(si,2);{var Ml=L=>{var q=Er(),ot=lt(q);{var Fe=kt=>{var Vt=Ni();h(kt,Vt)},ze=kt=>{var Vt=fv(),hn=d(o(Vt)),Dn=o(hn);E(()=>g(Dn,n(I).address)),h(kt,Vt)},yr=kt=>{var Vt=Bi();h(kt,Vt)};S(ot,kt=>{n(k)?kt(Fe):n(I)?kt(ze,1):kt(yr,-1)})}h(L,q)},Hl=X(()=>ke(n(y))&&!Fr(n(y).trim()));S(oi,L=>{n(Hl)&&L(Ml)})}var li=d(oi,2);{var Pl=L=>{var q=Jr(),ot=o(q);E(()=>g(ot,n(qt))),h(L,q)};S(li,L=>{n(qt)&&L(Pl)})}var Wl=d(li,2);{var Dl=L=>{var q=$e(),ot=o(q);E(()=>g(ot,tt.transfer)),h(L,q)};S(Wl,L=>{tt.transfer&&L(Dl)})}E(L=>{fn.disabled=L,g(Va,H.list?"listing…":n(F)?"Update listing":n(b)?"List privately":"List"),Xa.disabled=!n(Cr)||H.merge,g(ul,H.merge?"merging…":"Merge"),g(hl,` (max ${No} at a time).`),Qa.disabled=!n(N)||H.absorb,g(ml,H.absorb?"absorbing…":"Absorb into #"+e.id),Ja.disabled=H.unwrap,g(El,H.unwrap?"unwrapping…":"Unwrap"),$a.disabled=!n(de)||!!n(qt)||H.transfer,g(Bl,H.transfer?"sending…":"Transfer")},[()=>!ke(n(u))||!!n(te)||!!n(J)||n(b)&&!n(P)||H.list||H.cancel]),Ce(gr,()=>n(u),L=>m(u,L)),Ce(We,()=>n(f),L=>m(f,L)),To(Le,()=>n(b),L=>m(b,L)),ct("click",fn,Ne),Ce(ol,()=>n(R),L=>m(R,L)),Bs(Zs,()=>n(Y),L=>m(Y,L)),ct("click",Xa,Or),Ce(_l,()=>n(G),L=>m(G,L)),ct("click",Qa,Rr),ct("click",Ja,()=>ft("unwrap",()=>Md(wt()))),Ce(Rl,()=>n(y),L=>m(y,L)),ct("click",$a,me),h(It,Wt)};S(Me,It=>{n(B)&&It(O)})}var W=d(Me,2),Q=d(o(W),2),ge=o(Q),He=o(ge),re=o(He),ne=d(Q,2);{var Xe=It=>{var Wt=$e(),ie=o(Wt);E(()=>g(ie,tt.prune)),h(It,Wt)};S(ne,It=>{tt.prune&&It(Xe)})}E(()=>{He.disabled=H.prune,g(re,H.prune?"pruning…":"Prune this listing")}),ct("click",He,()=>ft("prune",()=>Vd(wt()))),h(z,Ct)};S(ca,z=>{C.account?z(Wa,-1):z(Pa)})}var un=d(ca,2),Da=d(o(un));rl(Da,{text:"Every sale of this rock, newest first."});var Pn=d(un,2),Fa=o(Pn),ua=d(Pn,2);{var za=z=>{var st=$e(),Ct=o(st);E(()=>g(Ct,tt.history)),h(z,st)};S(ua,z=>{tt.history&&z(za)})}var ja=d(ua,2);{var da=z=>{var st=Ci();h(z,st)},fa=z=>{var st=Er(),Ct=lt(st);{var Xt=Pt=>{var ee=_v(),Me=o(ee),O=d(o(Me));Tr(O,21,()=>n(l),W=>W.block+":"+W.buyer,(W,Q)=>{var ge=pv(),He=o(ge),re=o(He),ne=d(He),Xe=o(ne),It=d(ne),Wt=o(It),ie=d(It),Pe=o(ie);cs(Pe,{get address(){return n(Q).seller}});var ye=d(ie),Qe=o(ye);cs(Qe,{get address(){return n(Q).buyer}}),E(Ie=>{g(re,n(Q).block),g(Xe,`${Ie??""} ETH`),g(Wt,n(Q).kind)},[()=>_.formatEther(n(Q).price)]),h(W,ge)}),h(Pt,ee)},At=Pt=>{var ee=wv();h(Pt,ee)};S(Ct,Pt=>{n(l).length?Pt(Xt):Pt(At,-1)})}h(z,st)},qa=X(()=>Array.isArray(n(l)));S(ja,z=>{n(l)==="loading…"?z(da):n(qa)&&z(fa,1)})}ct("click",Fa,hr),h(T,K)};S(Te,T=>{n(a)?T(Pr):n(r)?n(r).owner?T(_r,-1):T(ir,2):T(Xr,1)})}E(()=>g(pr,`Rock #${e.id??""}`)),h(t,Ke),Ze()}Yr(["click"]);var yv=x('<div class="controls"><!></div>'),kv=x("<p>Connect a wallet to see your rocks, orders, and proceeds.</p>"),xv=x("<p> </p>"),Ev=x('<span class="addr svelte-1p3nwux"> </span>'),wa=x('<p class="failed"> </p>'),Sv=x('<span class="tag svelte-1p3nwux">private</span>'),Tv=x('<li class="svelte-1p3nwux"><span class="svelte-1p3nwux"><a> </a> <span class="mono"> </span> <span class="muted"> </span> <!></span> <button type="button"> </button></li>'),Iv=x('<div class="action-card"><p class="note">Rocks you have up for sale right now. Cancelling takes one off the market.</p> <ul class="orders svelte-1p3nwux"></ul> <!></div>'),Mi=x("<p>none</p>"),Lv=x('<li class="svelte-1p3nwux"><span class="svelte-1p3nwux"><a> </a> <span class="mono"> </span></span> <button type="button"> </button></li>'),Av=x('<div class="action-card"><p class="note">Withdrawable ETH you have locked up as bids.</p> <ul class="orders svelte-1p3nwux"></ul> <!></div>'),Cv=x('<p class="muted">scanning…</p>'),Ov=x('<div class="pager"><button type="button">← Prev</button> <span class="where"> </span> <button type="button">Next →</button></div>'),Rv=x('<p class="muted count svelte-1p3nwux"> </p> <div class="rock-grid"></div> <!>',1),Nv=x('<p class="muted">no wrapped rocks found for this address</p>'),Bv=x('<p>Address: <span class="addr svelte-1p3nwux"> </span></p> <p>Warden: <!></p> <h2>Proceeds</h2> <div class="action-card"><p class="note">Withdrawable ETH the market owes you: rocks you sold, and bids you were outbid on.</p> <div class="row"><div class="fields">Owed to you: <strong> </strong></div> <div class="actions"><button type="button" class="primary"> </button></div></div> <!></div> <h2>Your listings</h2> <!> <h2>Your bids</h2> <!> <h2>Your rocks</h2> <div class="action-card"><p class="note">Finds every rock this address holds. This can take some time.</p> <div class="row"><div class="actions"><button type="button"> </button></div></div> <!></div> <!>',1),Mv=x('<div class="head"><h1>Account</h1> <!></div> <!>',1);function Hv(t,e){Ge(e,!0);let r=A(null),a=A(null),s=A(zt([])),i=A(zt([])),l=A(null),c=A(!1),u=A(null);const f="0x0000000000000000000000000000000000000000";ue(()=>{C.account,C.account&&b()});async function b(){m(u,null);try{const H=C.account.toLowerCase(),[ft,wt,oe]=await Promise.all([Ed(C.account),Hn(C.account),Td()]);m(r,ft,!0),m(a,wt,!0),m(s,oe.filter(le=>le.listing&&le.listing.seller.toLowerCase()===H),!0),m(i,oe.filter(le=>le.bid&&le.bid.amount>0n&&le.bid.bidder.toLowerCase()===H),!0)}catch(H){m(u,H.message,!0)}}const p=zt({});let w=A(!1);async function v(){if(!n(w)){p.withdraw=null,m(w,!0);try{await Ud(),await b()}catch(H){p.withdraw=pe(H)}finally{m(w,!1)}}}let y=A(null);async function I(H){p.bid=null,m(y,H,!0);try{await Jo(BigInt(H)),await b()}catch(ft){p.bid=pe(ft)}m(y,null)}let k=A(null);async function R(H){p.listing=null,m(k,H,!0);try{await Xo(BigInt(H)),await b()}catch(ft){p.listing=pe(ft)}m(k,null)}async function Y(){m(c,!0),p.rocks=null;try{m(l,await Cd(C.account),!0)}catch(H){m(l,[],!0),p.rocks=pe(H)}m(c,!1),m(nt,0)}async function G(){$o(),await b(),n(l)!==null&&await Y()}const D=48;let nt=A(0),B=A(zt([]));const F=X(()=>n(l)?Math.max(1,Math.ceil(n(l).length/D)):1),Z=X(()=>n(l)?n(l).slice(n(nt)*D,(n(nt)+1)*D):[]);ue(()=>{const H=n(Z);let ft=!0;if(!H.length){m(B,[],!0);return}return Zo(H).then(wt=>{ft&&m(B,wt,!0)}).catch(()=>{}),()=>{ft=!1}});var _t=Mv(),U=lt(_t),yt=d(o(U),2);{var mt=H=>{var ft=yv(),wt=o(ft);js(wt,{run:G,autoRun:b}),h(H,ft)};S(yt,H=>{C.account&&H(mt)})}var St=d(U,2);{var Lt=H=>{var ft=kv();h(H,ft)},se=H=>{var ft=xv(),wt=o(ft);E(()=>g(wt,`Couldn't load: ${n(u)??""}`)),h(H,ft)},tt=H=>{var ft=Bv(),wt=lt(ft),oe=d(o(wt)),le=o(oe),Cr=d(wt,2),$t=d(o(Cr));{var N=M=>{var $=Ev(),bt=o($);E(()=>g(bt,n(a))),h(M,$)},P=X(()=>n(a)&&!jt(n(a))),J=M=>{var $=he("none yet (create one on the Wrap page)");h(M,$)};S($t,M=>{n(P)?M(N):M(J,-1)})}var Kt=d(Cr,4),ce=d(o(Kt),2),te=o(ce),Ne=d(o(te)),de=o(Ne),qt=d(te,2),me=o(qt),Zr=o(me),Or=d(ce,2);{var Kr=M=>{var $=wa(),bt=o($);E(()=>g(bt,p.withdraw)),h(M,$)};S(Or,M=>{p.withdraw&&M(Kr)})}var Rr=d(Kt,4);{var hr=M=>{var $=Iv(),bt=d(o($),2);Tr(bt,21,()=>n(s),j=>j.id,(j,V)=>{var at=Tv(),Tt=o(at),Et=o(Tt),Rt=o(Et),xt=d(Et,2),Nt=o(xt),Ut=d(xt,2),be=o(Ut),fe=d(Ut,2);{var wr=Be=>{var mr=Sv();h(Be,mr)};S(fe,Be=>{n(V).listing.onlyTo&&n(V).listing.onlyTo!==f&&Be(wr)})}var or=d(Tt,2),Qr=o(or);E((Be,mr)=>{Gt(Et,"href","#/rock/"+n(V).id),g(Rt,`#${n(V).id??""}`),g(Nt,`${Be??""} ETH`),g(be,`expires ${mr??""}`),or.disabled=n(k)===n(V).id,g(Qr,n(k)===n(V).id?"cancelling…":"Cancel listing")},[()=>_.formatEther(n(V).listing.price),()=>Bo(n(V).listing.expiry)]),ct("click",or,()=>R(n(V).id)),h(j,at)});var Mt=d(bt,2);{var Ht=j=>{var V=wa(),at=o(V);E(()=>g(at,p.listing)),h(j,V)};S(Mt,j=>{p.listing&&j(Ht)})}h(M,$)},Nr=M=>{var $=Mi();h(M,$)};S(Rr,M=>{n(s).length?M(hr):M(Nr,-1)})}var Ke=d(Rr,4);{var Br=M=>{var $=Av(),bt=d(o($),2);Tr(bt,21,()=>n(i),j=>j.id,(j,V)=>{var at=Lv(),Tt=o(at),Et=o(Tt),Rt=o(Et),xt=d(Et,2),Nt=o(xt),Ut=d(Tt,2),be=o(Ut);E(fe=>{Gt(Et,"href","#/rock/"+n(V).id),g(Rt,`#${n(V).id??""}`),g(Nt,`${fe??""} ETH`),Ut.disabled=n(y)===n(V).id,g(be,n(y)===n(V).id?"withdrawing…":"Withdraw bid")},[()=>_.formatEther(n(V).bid.amount)]),ct("click",Ut,()=>I(n(V).id)),h(j,at)});var Mt=d(bt,2);{var Ht=j=>{var V=wa(),at=o(V);E(()=>g(at,p.bid)),h(j,V)};S(Mt,j=>{p.bid&&j(Ht)})}h(M,$)},Mr=M=>{var $=Mi();h(M,$)};S(Ke,M=>{n(i).length?M(Br):M(Mr,-1)})}var pr=d(Ke,4),sr=d(o(pr),2),Hr=o(sr),Te=o(Hr),Pr=o(Te),Xr=d(sr,2);{var ir=M=>{var $=wa(),bt=o($);E(()=>g(bt,p.rocks)),h(M,$)};S(Xr,M=>{p.rocks&&M(ir)})}var _r=d(pr,2);{var T=M=>{var $=Cv();h(M,$)},K=M=>{var $=Rv(),bt=lt($),Mt=o(bt),Ht=d(bt,2);Tr(Ht,21,()=>n(B),at=>at.id,(at,Tt)=>{el(at,{get row(){return n(Tt)}})});var j=d(Ht,2);{var V=at=>{var Tt=Ov(),Et=o(Tt),Rt=d(Et,2),xt=o(Rt),Nt=d(Rt,2);E(()=>{Et.disabled=n(nt)===0,g(xt,`Page ${n(nt)+1} of ${n(F)??""} · ${n(l).length??""} rocks`),Nt.disabled=n(nt)>=n(F)-1}),ct("click",Et,()=>m(nt,Math.max(0,n(nt)-1),!0)),ct("click",Nt,()=>m(nt,Math.min(n(F)-1,n(nt)+1),!0)),h(at,Tt)};S(j,at=>{n(F)>1&&at(V)})}E(()=>g(Mt,`${n(l).length??""} rock${n(l).length===1?"":"s"} held by this address.`)),h(M,$)},gt=M=>{var $=Nv();h(M,$)};S(_r,M=>{n(c)?M(T):n(l)&&n(l).length?M(K,1):n(l)&&M(gt,2)})}E(M=>{g(le,C.account),g(de,M),me.disabled=n(w)||!n(r)||n(r)===0n,g(Zr,n(w)?"withdrawing…":"Withdraw"),Te.disabled=n(c),g(Pr,n(c)?"scanning…":n(l)===null?"Load my rocks":"Reload")},[()=>n(r)!=null?_.formatEther(n(r))+" ETH":"…"]),ct("click",me,v),ct("click",Te,Y),h(H,ft)};S(St,H=>{C.account?n(u)?H(se,1):H(tt,-1):H(Lt)})}h(t,_t),Ze()}Yr(["click"]);var Pv=x("<p>Connect a wallet to wrap a rock or migrate one from an old wrapper.</p>"),Wv=x('<div class="done svelte-1qq2otu"><a class="thumb svelte-1qq2otu"><!></a> <div class="txt svelte-1qq2otu"><p class="svelte-1qq2otu"><strong> </strong></p> <p class="muted svelte-1qq2otu">It is a live token now: you can list it, accept bids on it, or merge it.</p> <div class="actions svelte-1qq2otu"><a class="cta svelte-1qq2otu"> </a> <button type="button">Wrap another</button></div></div></div>'),Dv=x('<div class="stalled svelte-1qq2otu"><p class="svelte-1qq2otu"><strong>Not finished.</strong></p> <p class="muted svelte-1qq2otu"> </p> <p class="svelte-1qq2otu"><button type="button">Dismiss</button></p></div>'),Fv=x('<div class="actions"><button type="button" class="primary"> </button></div>'),mn=x('<p class="failed"> </p>'),jn=x('<p class="note bad"> </p>'),zv=x(`<!> <h2>1. Your warden</h2> <div class="action-card"><p class="note">Think of it as a safe, which rocks pass through on the way to being wrapped. You only need to create it once.</p> <div class="row"><div class="fields">Warden: <span class="mono addr svelte-1qq2otu"> </span></div> <!></div> <!></div> <h2>2. Wrap a raw rock</h2> <div class="action-card"><p class="note">Turns a 2017 rock you own into a token. Type its id, 0 to 9999.</p> <div class="row"><div class="fields"><label>Wrap rock #<input type="number" min="0" max="9999" size="6"/></label></div> <div class="actions"><button type="button" class="primary"> </button></div></div> <!> <!></div> <h2>Or migrate from an old wrapper</h2> <div class="action-card"><p class="note">Moves a rock from an old GenesisRocks wrapper into this one.</p> <div class="row"><div class="fields"><label>Migrate rock #<input type="number" min="0" max="9999" size="6"/></label></div> <div class="actions"><button type="button" class="primary"> </button></div></div> <!> <!></div> <details><summary>Advanced / recovery</summary> <p><small>Individual steps, for when a combined action stopped halfway or a rock is stuck in your warden.</small></p> <div class="action-card"><p class="note">Sends a raw 2017 rock you own into your warden without wrapping it. Use this if a wrap stopped after the price step.</p> <div class="row"><div class="fields"><label>Gift raw rock #<input type="number" min="0" size="6"/></label> into warden</div> <div class="actions"><button type="button"> </button></div></div> <!> <!></div> <div class="action-card"><p class="note">Makes the token for a rock that already reached your warden. Use this if a wrap stopped after the rock was sent.</p> <div class="row"><div class="fields"><label>Wrap a rock already in your warden #<input type="number" min="0" max="9999" size="6"/></label></div> <div class="actions"><button type="button"> </button></div></div> <!> <!></div> <div class="action-card"><p class="note">Sends a rock back out of your warden to your own address, if one ended up stuck there unwrapped.</p> <div class="row"><div class="fields"><label>Rescue a rock stuck in your warden #<input type="number" min="0" size="6"/></label></div> <div class="actions"><button type="button"> </button></div></div> <!> <!></div></details>`,1),jv=x("<h1>Wrap</h1> <!>",1);function qv(t,e){Ge(e,!0);let r=A(null),a=A(!1),s=A(null),i=A(null),l=A(null),c=A(""),u=A(""),f=A(""),b=A(""),p=A("");ue(()=>{C.account,C.account?(w(
0x5ba199a9…7ba9·#25,619,942·0x45f043ad…0bfe77
st Oa=new Map,gn=new Map;let ks=null;function hf(){if(ks=null,!gn.size)return;const t=[...gn.keys()],e=t.map(r=>gn.get(r));gn.clear(),yd(t).then(r=>{t.forEach((a,s)=>{const i=r[a]??null;vf(a,i),e[s].forEach(l=>l(i))})}).catch(()=>t.forEach((r,a)=>e[a].forEach(s=>s(null))))}function tl(t,e){const r=gn.get(t)??new Set;r.add(e),gn.set(t,r),clearTimeout(ks),ks=setTimeout(hf,df)}function pf(){return zn||(zn=new IntersectionObserver(t=>{for(const e of t){if(!e.isIntersecting)continue;const r=Oa.get(e.target);r&&(zn.unobserve(e.target),Oa.delete(e.target),tl(r.id,r.deliver))}},{rootMargin:uf}),zn)}function _f(t,e,r){if(en.has(e))return r(en.get(e)),()=>{};if(typeof IntersectionObserver>"u")return tl(e,r),()=>{};const a=pf();return Oa.set(t,{id:e,deliver:r}),a.observe(t),()=>{Oa.delete(t),a.unobserve(t)}}var wf=x('<img class="art svelte-m95sb2"/>'),mf=x('<span class="art art--empty svelte-m95sb2"> </span>');function zs(t,e){Ge(e,!0);let r=dr(e,"size",3,128),a=dr(e,"fluid",3,!1),s=dr(e,"src",3,null),i=A(null),l=A(null),c=A("loading…"),u=null;ue(()=>{const y=s()??"#"+e.id;if(y===u)return;if(s()){u=y,m(l,s());return}if(!n(i))return;u=y;let I=!0;m(l,null),m(c,"loading…");const k=_f(n(i),e.id,R=>{if(I){if(R){m(l,R,!0);return}zo(BigInt(e.id)).then(Y=>{I&&m(l,JSON.parse(atob(Y.slice(Y.indexOf(",")+1))).image,!0)}).catch(()=>{I&&m(c,"no art")})}});return()=>{I=!1,k()}});const f=X(()=>a()?"width:100%;aspect-ratio:1":`width:${r()}px;height:${r()}px`);var b=Er(),p=lt(b);{var w=y=>{var I=wf();E(()=>{Gt(I,"src",n(l)),Gt(I,"alt","Rock #"+e.id),La(I,n(f))}),h(y,I)},v=y=>{var I=mf(),k=o(I);Aa(I,R=>m(i,R),()=>n(i)),E(()=>{La(I,n(f)),g(k,n(c))}),h(y,I)};S(p,y=>{n(l)?y(w):y(v,-1)})}h(t,b),Ze()}var bf=x('<span class="tag svelte-3ie79d">private</span>'),gf=x('<button type="button" class="primary buy svelte-3ie79d"> </button>'),yf=x('<div class="card svelte-3ie79d"><a class="art svelte-3ie79d"><!></a> <div class="meta svelte-3ie79d"><a class="id svelte-3ie79d"> </a> <!></div> <div class="row svelte-3ie79d"><span class="price svelte-3ie79d"> </span> <!></div> <div class="row sub2 svelte-3ie79d"><span> </span> <span> </span></div></div>');function el(t,e){Ge(e,!0);let r=dr(e,"buy",3,null);const a=X(()=>!!(e.row.listing&&e.row.listing.price>0n)),s=X(()=>!!(e.row.listing&&!jt(e.row.listing.onlyTo))),i=X(()=>C.account?Oo(e.row.listing,C.account):"Connect a wallet to buy.");let l=A(!1);async function c(){if(!(n(l)||!r())){m(l,!0);try{await r()(e.row.id)}finally{m(l,!1)}}}var u=yf(),f=o(u),b=o(f);zs(b,{get id(){return e.row.id},fluid:!0});var p=d(f,2),w=o(p),v=o(w),y=d(w,2);{var I=U=>{var yt=bf();h(U,yt)};S(y,U=>{n(s)&&U(I)})}var k=d(p,2),R=o(k),Y=o(R),G=d(R,2);{var D=U=>{var yt=gf(),mt=o(yt);E(()=>{yt.disabled=!!n(i)||n(l),Gt(yt,"title",n(i)??""),g(mt,n(l)?"buying…":"Buy")}),ct("click",yt,c),h(U,yt)};S(G,U=>{n(a)&&r()&&U(D)})}var nt=d(k,2),B=o(nt),F=o(B),Z=d(B,2),_t=o(Z);E((U,yt,mt)=>{Gt(f,"href","#/rock/"+e.row.id),Gt(f,"aria-label","Rock #"+e.row.id),Gt(w,"href","#/rock/"+e.row.id),g(v,`#${e.row.id??""}`),g(Y,U),g(F,yt),g(_t,mt)},[()=>n(a)?_.formatEther(e.row.listing.price)+" ETH":"–",()=>e.row.bid&&e.row.bid.amount>0n?"bid "+_.formatEther(e.row.bid.amount)+" ETH":"",()=>n(a)?"exp "+nd(e.row.listing.expiry):""]),h(t,u),Ze()}Yr(["click"]);var kf=x('<span class="info svelte-kuwzzo"><button type="button" class="mark svelte-kuwzzo">i</button> <span role="tooltip"> </span></span>');function rl(t,e){Ge(e,!0);let r=dr(e,"label",3,"More information"),a=dr(e,"align",3,"left"),s,i=A(0);function l(){if(!s)return;const w=s.getBoundingClientRect(),v=w.left-n(i),y=w.right-n(i),I=document.documentElement.clientWidth,k=8;let R=0;v<k?R=Math.round(k-v):y>I-k&&(R=Math.round(I-k-y)),R!==n(i)&&m(i,R,!0)}ue(()=>{e.text,a(),l(),addEventListener("resize",l);const w=new ResizeObserver(l);return w.observe(document.body),()=>{removeEventListener("resize",l),w.disconnect()}});var c=kf(),u=o(c),f=d(u,2);let b;var p=o(f);Aa(f,w=>s=w,()=>s),E(()=>{Gt(u,"aria-label",r()),b=Ur(f,1,"bubble svelte-kuwzzo",null,b,{right:a()==="right"}),La(f,n(i)?`translate: ${n(i)}px`:""),g(p,e.text)}),yo("pointerenter",c,l),ct("focusin",c,l),h(t,c),Ze()}Yr(["focusin"]);class xf{#t=A(!1);get on(){return n(this.#t)}set on(e){m(this.#t,e,!0)}seconds=15}const wn=new xf;var Ef=x('<span class="refresh svelte-1kspdzn"><label class="check svelte-1kspdzn"><input type="checkbox" class="svelte-1kspdzn"/> Auto-refresh</label> <!> <span class="said svelte-1kspdzn" role="status"> </span> <button type="button"> </button></span>');function js(t,e){Ge(e,!0);let r=dr(e,"autoRun",19,()=>e.run),a=dr(e,"label",3,"Refresh"),s=A(!1),i=A(!1),l;function c(){m(i,!0),clearTimeout(l),l=setTimeout(()=>m(i,!1),2e3)}async function u(){m(s,!0),m(i,!1);try{await e.run(),c()}finally{m(s,!1)}}const f="Updates this page every "+wn.seconds+" seconds, so new bids and sales show up without you reloading.";ue(()=>{if(!wn.on)return;let Y=!0,G,D=0,nt=null;async function B(){if(!Y)return;let F=wn.seconds*1e3;try{if((C.current||ut.rpcUrl)&&document.visibilityState==="visible"&&!n(s)){const _t=await Gr("eth_blockNumber",[]);_t!==nt&&(nt=_t,await r()(),c())}D=0}catch{D+=1,F=Math.min(F*2**D,12e4)}Y&&(G=setTimeout(B,F))}return G=setTimeout(B,wn.seconds*1e3),()=>{Y=!1,clearTimeout(G)}});var b=Ef(),p=o(b),w=o(p),v=d(p,2);rl(v,{get text(){return f},label:"What auto-refresh does",align:"right"});var y=d(v,2),I=o(y),k=d(y,2),R=o(k);E(()=>{g(I,n(i)?"Updated":""),k.disabled=n(s),g(R,n(s)?"Refreshing…":a())}),To(w,()=>wn.on,Y=>wn.on=Y),ct("click",k,u),h(t,b),Ze()}Yr(["click"]);var Sf=x('<p class="muted"> </p>'),Tf=x('<p class="failed"> </p>'),If=x('<p class="muted">Loading…</p>'),Lf=x('No rocks wrapped yet. <a href="#/wrap">Wrap one →</a>',1),Af=x('<p class="muted"><!></p>'),Cf=x('<div class="pager"><button type="button">← Prev</button> <span class="where"> </span> <button type="button">Next →</button></div>'),Of=x('<div class="rock-grid"></div> <!>',1),Rf=x('<div class="statbar svelte-1r6myry"><div class="stat svelte-1r6myry"><span class="v svelte-1r6myry"> </span><span class="eyebrow">For sale</span></div> <div class="stat svelte-1r6myry"><span class="v svelte-1r6myry"> <em class="svelte-1r6myry"> </em></span><span class="eyebrow">Floor</span></div> <div class="stat svelte-1r6myry"><span class="v svelte-1r6myry"> </span><span class="eyebrow">Supply</span></div> <div class="stat svelte-1r6myry"><span class="v svelte-1r6myry"> <em class="svelte-1r6myry"> </em></span><span class="eyebrow">Volume</span></div></div> <!> <div class="tabs svelte-1r6myry"><button type="button"> </button> <button type="button"> </button> <button type="button"> </button></div> <!>',1),Nf=x('<div class="head"><h1>Market</h1> <div class="controls"><form class="jump svelte-1r6myry"><label class="eyebrow svelte-1r6myry">Go to rock <input type="number" min="0" placeholder="1234" size="6" class="svelte-1r6myry"/></label> <button type="submit" class="svelte-1r6myry">Open</button></form> <label class="eyebrow">Sort <select><option>Id</option><option>Price</option></select></label> <!></div></div> <!>',1);function Bf(t,e){Ge(e,!0);let r=A(zt([])),a=A(zt([])),s=A(zt([])),i=A(zt({})),l=A(null),c=A(null),u=A(null),f=A(null),b=A(!1),p=A("all"),w=A("id"),v=A(0),y=A(zt([])),I=A("");const k=48;ue(()=>{C.current,R()});async function R(){m(b,!0),m(f,null),$o();try{const[N,P,J,Kt,ce]=await Promise.all([xd(),Uo(),Vo(),kd().catch(()=>null),Sd().catch(()=>null)]);m(r,N,!0),m(a,P,!0),m(s,J,!0),m(l,Kt,!0),m(c,ce,!0);const te=P.length?await Fs(P):[],Ne={};P.forEach((qt,me)=>Ne[qt]=te[me]),m(i,Ne,!0);const de=te.map(qt=>qt.price).filter(qt=>qt>0n);m(u,de.length?de.reduce((qt,me)=>me<qt?me:qt):null,!0),m(v,0)}catch(N){m(f,N.message,!0)}finally{m(b,!1)}}const Y=X(()=>n(p)==="sale"?n(a):n(p)==="bids"?n(s):n(r)),G=X(()=>{const N=[...n(Y)];if(n(w)==="price"){const P=J=>n(i)[J]&&n(i)[J].price>0n?n(i)[J].price:2n**200n;N.sort((J,Kt)=>{const ce=P(J),te=P(Kt);return ce<te?-1:ce>te?1:J-Kt})}else N.sort((P,J)=>P-J);return N}),D=X(()=>Math.max(1,Math.ceil(n(G).length/k))),nt=X(()=>n(G).slice(n(v)*k,(n(v)+1)*k));ue(()=>{const N=n(nt);let P=!0;if(!N.length){m(y,[],!0);return}return Zo(N).then(J=>{P&&m(y,J,!0)}).catch(()=>{}),()=>{P=!1}});function B(N){m(p,N,!0),m(v,0)}function F(N){N.preventDefault();const P=String(n(I)).trim();P!==""&&(Ou("/rock/"+Number(P)),m(I,""))}let Z=A(null);async function _t(N){m(Z,null);try{await Qo(BigInt(N)),await R()}catch(P){m(Z,"#"+N+": "+pe(P))}}var U=Nf(),yt=lt(U),mt=d(o(yt),2),St=o(mt),Lt=o(St),se=d(o(Lt)),tt=d(St,2),H=d(o(tt)),ft=o(H);ft.value=ft.__value="id";var wt=d(ft);wt.value=wt.__value="price";var oe=d(tt,2);js(oe,{run:R});var le=d(yt,2);{var Cr=N=>{var P=Sf(),J=o(P);E(Kt=>g(J,Kt),[()=>Ro(n(f),{connected:!!C.account,endpoint:ut.rpcUrl})]),h(N,P)},$t=N=>{var P=Rf(),J=lt(P),Kt=o(J),ce=o(Kt),te=o(ce),Ne=d(Kt,2),de=o(Ne),qt=o(de),me=d(qt),Zr=o(me),Or=d(Ne,2),Kr=o(Or),Rr=o(Kr),hr=d(Or,2),Nr=o(hr),Ke=o(Nr),Br=d(Ke),Mr=o(Br),pr=d(J,2);{var sr=j=>{var V=Tf(),at=o(V);E(()=>g(at,n(Z))),h(j,V)};S(pr,j=>{n(Z)&&j(sr)})}var Hr=d(pr,2),Te=o(Hr);let Pr;var Xr=o(Te),ir=d(Te,2);let _r;var T=o(ir),K=d(ir,2);let gt;var M=o(K),$=d(Hr,2);{var bt=j=>{var V=If();h(j,V)},Mt=j=>{var V=Af(),at=o(V);{var Tt=xt=>{var Nt=he("Nothing is listed right now.");h(xt,Nt)},Et=xt=>{var Nt=he("No standing bids right now.");h(xt,Nt)},Rt=xt=>{var Nt=Lf();h(xt,Nt)};S(at,xt=>{n(p)==="sale"?xt(Tt):n(p)==="bids"?xt(Et,1):xt(Rt,-1)})}h(j,V)},Ht=j=>{var V=Of(),at=lt(V);Tr(at,21,()=>n(y),Rt=>Rt.id,(Rt,xt)=>{el(Rt,{get row(){return n(xt)},buy:_t})});var Tt=d(at,2);{var Et=Rt=>{var xt=Cf(),Nt=o(xt),Ut=d(Nt,2),be=o(Ut),fe=d(Ut,2);E(()=>{Nt.disabled=n(v)===0,g(be,`Page ${n(v)+1} of ${n(D)??""} · ${n(G).length??""} rocks`),fe.disabled=n(v)>=n(D)-1}),ct("click",Nt,()=>m(v,Math.max(0,n(v)-1),!0)),ct("click",fe,()=>m(v,Math.min(n(D)-1,n(v)+1),!0)),h(Rt,xt)};S(Tt,Rt=>{n(D)>1&&Rt(Et)})}h(j,V)};S($,j=>{n(b)&&!n(r).length?j(bt):n(G).length?j(Ht,-1):j(Mt,1)})}E((j,V)=>{g(te,n(a).length),g(qt,j),g(Zr,n(u)!=null?" ETH":""),g(Rr,n(l)??"–"),g(Ke,V),g(Mr,n(c)!=null?" ETH":""),Pr=Ur(Te,1,"svelte-1r6myry",null,Pr,{active:n(p)==="all"}),g(Xr,`All (${n(r).length??""})`),_r=Ur(ir,1,"svelte-1r6myry",null,_r,{active:n(p)==="sale"}),g(T,`For sale (${n(a).length??""})`),gt=Ur(K,1,"svelte-1r6myry",null,gt,{active:n(p)==="bids"}),g(M,`With bids (${n(s).length??""})`)},[()=>n(u)!=null?_.formatEther(n(u)):"–",()=>n(c)!=null?_.formatEther(n(c)):"–"]),ct("click",Te,()=>B("all")),ct("click",ir,()=>B("sale")),ct("click",K,()=>B("bids")),h(N,P)};S(le,N=>{n(f)?N(Cr):N($t,-1)})}yo("submit",St,F),Ce(se,()=>n(I),N=>m(I,N)),Bs(H,()=>n(w),N=>m(w,N)),h(t,U),Ze()}Yr(["click"]);var Ai=x('<span class="raw svelte-xraaj5"> </span>'),Mf=x('<span class="named you svelte-xraaj5"><span class="nm svelte-xraaj5">you</span> <!></span>'),Hf=x('<span class="named svelte-xraaj5"><span class="nm svelte-xraaj5"> </span> <!></span>'),Pf=x('<span class="raw only svelte-xraaj5"> </span>');function cs(t,e){Ge(e,!0);let r=dr(e,"stacked",3,!1),a=dr(e,"you",3,!0),s=A(null);const i=X(()=>a()&&!!e.address&&!!C.account&&e.address.toLowerCase()===C.account.toLowerCase());ue(()=>{let p=!0;m(s,null);const w=e.address;return w&&qo(w).then(v=>{p&&m(s,v,!0)}).catch(()=>{}),()=>{p=!1}});var l=Er(),c=lt(l);{var u=p=>{var w=Mf(),v=d(o(w),2);{var y=I=>{var k=Ai(),R=o(k);E(()=>g(R,e.address)),h(I,k)};S(v,I=>{r()&&I(y)})}E(()=>Gt(w,"title",n(s)??e.address)),h(p,w)},f=p=>{var w=Hf(),v=o(w),y=o(v),I=d(v,2);{var k=R=>{var Y=Ai(),G=o(Y);E(()=>g(G,e.address)),h(R,Y)};S(I,R=>{r()&&R(k)})}E(()=>{Gt(w,"title",e.address),g(y,n(s))}),h(p,w)},b=p=>{var w=Pf(),v=o(w);E(()=>{Gt(w,"title",e.address),g(v,e.address)}),h(p,w)};S(c,p=>{n(i)?p(u):n(s)?p(f,1):p(b,-1)})}h(t,l),Ze()}var Wf=x('<p class="muted"> </p>'),Ci=x('<p class="muted">loading…</p>'),Df=x(`<p class="svelte-2mvwa1"><strong> </strong></p> <p class="muted svelte-2mvwa1">Rocks above id 9999 can't be wrapped. They can only be absorbed into a rock you own, adding +1 Dust to it.</p> <p class="svelte-2mvwa1"><a class="cta svelte-2mvwa1" href="#/wrap">Go to wrap →</a></p>`,1),Ff=x(`<p class="muted svelte-2mvwa1">You just merged it into <a> </a>. Its mass and dust are there now, and this id can never be wrapped again.</p> <p class="svelte-2mvwa1"><a class="cta svelte-2mvwa1"> </a></p>`,1),zf=x('<p class="muted svelte-2mvwa1">Its mass and dust went to a lower id. This id can never be wrapped again.</p> <p class="svelte-2mvwa1"><a class="cta svelte-2mvwa1" href="#/market">Browse the market →</a></p>',1),jf=x('<p class="svelte-2mvwa1"><strong> </strong></p> <!>',1),qf=x(`<p class="svelte-2mvwa1"><strong> </strong></p> <p class="muted svelte-2mvwa1">Someone holds the raw 2017 rock right now. Wrapping it again brings back this exact rock, with the same art, mass and dust.</p> <p class="svelte-2mvwa1"><a class="cta svelte-2mvwa1" href="#/wrap">Wrap a rock →</a></p>`,1),Uf=x(`<p class="svelte-2mvwa1"><strong> </strong></p> <p class="muted svelte-2mvwa1">There's no token for this id yet, so it can't be bought or bid on. If you hold the raw 2017 rock, wrap it and it becomes tradeable here.</p> <p class="svelte-2mvwa1"><a class="cta svelte-2mvwa1" href="#/wrap">Wrap a rock →</a></p>`,1),Vf=x('<div class="unwrapped svelte-2mvwa1"><!></div>'),Yf=x("<span> </span>"),Gf=x('<span class="swatch svelte-2mvwa1"></span><span class="mono"> </span>',1),Zf=x('<dt> </dt> <dd class="svelte-2mvwa1"><!></dd>',1),Kf=x('<dt>Status</dt><dd class="svelte-2mvwa1"><span> </span></dd> <dt>Mass</dt><dd class="svelte-2mvwa1"> </dd> <dt>Dust</dt><dd class="svelte-2mvwa1"> </dd>',1),Xf=x('<strong class="svelte-2mvwa1"> </strong> <!>',1),Oi=x('<strong class="svelte-2mvwa1"> </strong> ',1),Qf=x("<p><em>Connect a wallet to trade.</em></p>"),Jr=x('<p class="note bad"> </p>'),$e=x('<p class="failed"> </p>'),Jf=x('<div class="action-card"><p class="note"> </p> <div class="row"><div class="actions"><button type="button" class="primary"> </button></div></div> <!> <!></div>'),$f=x("<strong> </strong> ",1),tv=x("<strong> </strong>"),ev=x('<div class="fields"><label>Bid <input type="text" placeholder="0.5" size="8"/> ETH</label></div>'),rv=x('<button type="button" class="primary"> </button>'),Ri=x('<button type="button"> </button>'),nv=x('<p class="note">Costs you <strong> </strong> </p>'),av=x('<p class="note">Locks up the full <strong> </strong>.</p>'),sv=x(`<p class="note">Locks up <strong> </strong> until the owner accepts it or you take it back.</p>`),iv=x(`<div class="action-card"><p class="note">Locks up ETH as a bid. If the owner accepts it the rock is yours, and if not you can take your ETH back at any time. Enter the <strong>total</strong> you want your bid to be. <!></p> <div class="row"><!> <div class="actions"><!> <!></div></div> <!> <!></div>`),ov=x('<label>Sell only to <input type="text" placeholder="0x… or name.gwei" size="20"/></label>'),Ni=x('<p class="note">Resolving name…</p>'),lv=x('<p class="note">Lists to <span class="mono"> </span></p>'),Bi=x('<p class="note bad">No address is registered for that name. Check the spelling, or enter an address.</p>'),cv=x('<div class="action-card"><p class="note"> <!>. <!></p> <div class="row"><div class="actions"><button type="button" class="primary"> </button></div></div> <!></div>'),uv=x('<p class="note"> <!></p>'),dv=x("It is listed, so the transfer cancels that listing too<!>.",1),fv=x('<p class="note">Sends to <span class="mono"> </span></p>'),vv=x(`<div class="action-card"><p class="note">Puts this rock up for sale at a price you set. Anyone can buy it until the listing expires, or just one address if you make it a private sale. Listing again updates the current listing. <!></p> <div class="row"><div class="fields"><label>List at <input type="text" placeholder="1.5" size="8"/> ETH for <input type="number" min="1" size="4"/> days</label> <div class="private svelte-2mvwa1"><label class="check svelte-2mvwa1"><input type="checkbox" class="svelte-2mvwa1"/> Private sale (one address only)</label> <!></div></div> <div class="actions"><button type="button" class="primary"> </button> <!></div></div> <!> <!> <!> <!> <!></div> <!> <h3 class="svelte-2mvwa1">Consolidate</h3> <div class="action-card"><p class="note">Combines two rocks you own into one. The lower id survives with both rocks' mass and dust, and the higher id is burned. You pick which art it keeps.</p> <div class="row"><div class="fields"><label>Merge with #<input type="number" min="0" size="6"/></label> <label>keep <select><option>this rock's look</option><option>the other's look</option><option>reroll</option></select></label></div> <div class="actions"><button type="button" class="primary"> </button></div></div> <!> <!></div> <div class="action-card"><p class="note">Burns rocks above id 9999 that you own, each one adding +1 Dust to this rock. Type the ids, or a range like <span class="mono">10001-10005</span> </p> <div class="row"><div class="fields"><label>Absorb dust <input type="text" size="20" placeholder="10001, 10004-10006"/></label></div> <div class="actions"><button type="button" class="primary"> </button></div></div> <!> <!></div> <h3 class="svelte-2mvwa1">Unwrap</h3> <div class="action-card"><p class="note">Turns this token back into the raw 2017 rock.</p> <div class="row"><div class="actions"><button type="button" class="primary"> </button></div></div> <!></div> <h3 class="svelte-2mvwa1">Transfer</h3> <div class="action-card"><p class="note">Gifts this rock to an address or .gwei name. <!></p> <div class="row"><div class="fields"><label>Send to <input type="text" placeholder="0x… or name.gwei" size="20"/></label></div> <div class="actions"><button type="button" class="primary"> </button></div></div> <!> <!> <!></div>`,1),hv=x('<h2 class="svelte-2mvwa1">Actions</h2> <!> <!> <!> <div class="action-card"><p class="note">Removes a listing that can no longer be bought, like an expired one.</p> <div class="row"><div class="actions"><button type="button" class="primary"> </button></div></div> <!></div>',1),pv=x('<tr class="svelte-2mvwa1"><td class="svelte-2mvwa1"> </td><td class="svelte-2mvwa1"> </td><td class="svelte-2mvwa1"> </td><td class="addr svelte-2mvwa1"><!></td><td class="addr svelte-2mvwa1"><!></td></tr>'),_v=x('<div class="ledger-wrap svelte-2mvwa1"><table class="ledger svelte-2mvwa1"><thead><tr><th class="svelte-2mvwa1">Block</th><th class="svelte-2mvwa1">Price</th><th class="svelte-2mvwa1">Kind</th><th class="svelte-2mvwa1">Seller</th><th class="svelte-2mvwa1">Buyer</th></tr></thead><tbody class="svelte-2mvwa1"></tbody></table></div>'),wv=x('<p class="muted">No sales yet.</p>'),mv=x('<div class="detail-head svelte-2mvwa1"><div class="artwrap svelte-2mvwa1"><!></div> <div class="facts svelte-2mvwa1"><h2 class="svelte-2mvwa1">Traits</h2> <dl class="svelte-2mvwa1"><!> <dt>Owner</dt><dd class="svelte-2mvwa1"><!></dd></dl></div></div> <h2 class="svelte-2mvwa1">Orders</h2> <div class="orders svelte-2mvwa1"><p class="svelte-2mvwa1"><span class="ok svelte-2mvwa1">Listing</span> <!></p> <p class="svelte-2mvwa1"><span class="ok svelte-2mvwa1">Top bid</span> <!></p> <p class="svelte-2mvwa1"><span class="ok svelte-2mvwa1">Last sale</span> <!></p></div> <!> <h2 class="svelte-2mvwa1">Price history <!></h2> <p><button type="button">Load history</button></p> <!> <!>',1),bv=x('<p class="backrow svelte-2mvwa1"><a class="back svelte-2mvwa1" href="#/market"><svg viewBox="0 0 16 16" width="13" height="13" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter" class="svelte-2mvwa1"><path d="M10 3 L5 8 L10 13"></path></svg> Market</a></p> <div class="head"><h1> </h1> <div class="controls"><!></div></div> <!>',1);function gv(t,e){Ge(e,!0);let r=A(null),a=A(null),s=A(!1),i=A(!1),l=A(null),c=A(""),u=A(""),f=A("30"),b=A(!1),p=A(""),w=A(null),v=A(!1),y=A(""),I=A(null),k=A(!1),R=A(""),Y=A("0"),G=A("");ue(()=>{C.current,C.account,e.id,D(),nt()});async function D(){m(a,null);try{const T=BigInt(e.id),[K,gt,M,$,bt,Mt,Ht,j]=await Promise.all([Kn(T),wd(T),md(T),Ws(T),is(T),jo(T),gd(T).catch(()=>null),bd(T).catch(()=>!1)]);m(r,{owner:K,mass:gt,dust:M,listing:$,bid:bt,sale:Mt,meta:Ht,rolled:j},!0),C.account&&m(s,await Ps(C.account).catch(()=>!1),!0)}catch(T){m(a,T.message,!0)}}async function nt(){m(i,C.account?await Hs():!1,!0)}const B=X(()=>n(r)&&n(r).owner&&C.account&&n(r).owner.toLowerCase()===C.account.toLowerCase()),F=X(()=>n(r)&&n(r).listing&&!jt(n(r).listing.seller)),Z=X(()=>n(r)&&n(r).bid&&n(r).bid.amount>0n),_t=X(()=>n(Z)&&C.account&&n(r).bid.bidder.toLowerCase()===C.account.toLowerCase());let U=A(null);const yt=X(()=>n(F)&&!n(B)?Oo(n(r).listing,C.account):null),mt=X(()=>{if(!ke(n(c)))return null;let T=null;try{T=_.parseEther(n(c).trim())}catch{T=null}return ki(T,n(Z)?n(r).bid.amount:0n,!!n(_t))});let St=A(!1);async function Lt(){if(tt.bid=null,n(mt)?.issue){tt.bid=n(mt).issue;return}m(St,!0);try{const T=_.parseEther(n(c).trim()),K=await is(wt()),gt=K.amount>0n?K.amount:0n,M=gt>0n&&!!C.account&&K.bidder.toLowerCase()===C.account.toLowerCase(),$=ki(T,gt,M);if($.issue){tt.bid=$.issue,await D();return}await qd(wt(),$.send),m(c,""),await D()}catch(T){tt.bid=pe(T)}finally{m(St,!1)}}async function se(){await ft("accept",async()=>{const T=n(r).bid.amount,K=await is(wt());if(K.amount<T)throw await D(),new Error(K.amount===0n?"That bid has been withdrawn.":`The bid dropped to ${_.formatEther(K.amount)} ETH. Accept again if you still want it.`);await Gd(wt(),T)})}const tt=zt({}),H=zt({});async function ft(T,K){if(!H[T]){tt[T]=null,H[T]=!0;try{await K(),await D()}catch(gt){tt[T]=pe(gt)}finally{H[T]=!1}}}const wt=()=>BigInt(e.id),oe=T=>!!C.account&&!!T&&T.toLowerCase()===C.account.toLowerCase(),le=X(()=>ya(n(R))??(ke(n(R))&&Number(n(R))===Number(e.id)?"A rock can't merge with itself.":null)),Cr=X(()=>ke(n(R))&&!n(le)),$t=X(()=>rd(n(G))),N=X(()=>n($t).ids.length>0&&!n($t).issue);ue(()=>{const T=n(p).trim();if(m(w,null),m(v,!1),!n(b)||!T||Fr(T))return;let K=!0;m(v,!0);const gt=setTimeout(async()=>{const M=await Si(T).catch(()=>null);K&&(m(w,M?{name:T,address:M}:null,!0),m(v,!1))},350);return()=>{K=!1,clearTimeout(gt)}});const P=X(()=>n(b)?Fr(n(p).trim())?n(p).trim():n(w)?.address??null:null),J=X(()=>{if(!n(b))return null;const T=n(p).trim();return ke(T)?!Fr(T)&&(n(v)||!n(w))?null:n(P)&&oe(n(P))?"That's your own address. Name someone else, or turn off private sale.":null:"Enter the address or .gwei name allowed to buy, or turn off private sale."}),Kt=(1n<<96n)-1n,ce=X(()=>{const T=n(u).trim();if(!T)return null;try{return _.parseEther(T)}catch{return null}}),te=X(()=>ke(n(u))?n(ce)==null?"Enter a price in ETH, like 1.5.":n(ce)===0n?"A listing needs a price above 0 ETH. You can't give a rock away by listing at 0; that sale would fail.":n(ce)>Kt?"That price is larger than a listing can hold.":null:null);async function Ne(){!ke(n(u))||n(te)||n(J)||n(b)&&!n(P)||await ft("list",async()=>{const{time:T}=await Wo(),K=T+Number(n(f)||"30")*86400,gt=n(b)?n(P):null;await Yd(wt(),n(ce),K,gt)})}ue(()=>{const T=n(y).trim();if(m(I,null),m(k,!1),!T||Fr(T))return;let K=!0;m(k,!0);const gt=setTimeout(async()=>{const M=await Si(T).catch(()=>null);K&&(m(I,M?{name:T,address:M}:null,!0),m(k,!1))},350);return()=>{K=!1,clearTimeout(gt)}});const de=X(()=>Fr(n(y).trim())?n(y).trim():n(I)?.address??null),qt=X(()=>{const T=n(y).trim();return!ke(T)||!Fr(T)&&(n(k)||!n(I))?null:n(de)&&oe(n(de))?"That's your own address. A transfer sends the rock to someone else.":null});async function me(){n(qt)||!n(de)||await ft("transfer",async()=>{await Pd(wt(),n(de)),m(y,"")})}async function Zr(T){const K=(C.account||"").toLowerCase(),[gt,M]=await Promise.all([Kn(wt()),Kn(T)]);return M?M.toLowerCase()!==K?`You don't own rock #${T}. A merge needs both rocks in one wallet.`:!gt||gt.toLowerCase()!==K?`You no longer own rock #${e.id}.`:(T>wt()?T:wt())<100n?`#${e.id} and #${T} are both under 100,
0x5ba199a9…7ba9·#25,619,941·0x2b12e9d9…1a60a8
wardens:"0xabd5aa7d",mass:"0x501473bd",dust:"0xfd7fa2df",seed:"0x95564837",rolled:"0x2baf3df3",ownerOf:"0x6352211e",tokenURI:"0xc87b56dd",tokenURIBatch:"0x8d38e365",totalSupply:"0x18160ddd",wrappedBitmap:"0xd5499b96",tokensOfOwner:"0x8462151c",tokensOfOwnerIn:"0x99a2557a",isApprovedForAll:"0xe985e9c5",getApproved:"0x081812fc",MAX_ID:"0x17bac052",list:"0xf2d00a83",listTo:"0xc44c462d",cancelListing:"0x305a67a8",buy:"0xd96a094a",makeOffer:"0x9a2f6474",withdrawOffer:"0x8610f045",acceptOffer:"0xb01b193e",withdraw:"0x3ccfd60b",pruneListing:"0xb31f038e",listings:"0xde74e57b",bids:"0x4423c5f1",lastSale:"0xb6934afb",pendingWithdrawals:"0xf3f43703",totalVolume:"0x5f81a57c",listedBitmap:"0x889ed178",bidBitmap:"0xcd6ef21c",getListings:"0x0373c0bf",getBids:"0x35d6d214",getLastSales:"0x258d08bf",giftRock:"0x1b3e2002",sellRock:"0xc6caa959",reverseResolve:"0x9af8b7aa",rocks:"0x676cfec6",computeId:"0xfb021939",resolveById:"0x4f896d4f",resolveByName:"0x461a4478"},Xu={Listed:"0x9fd0e01e4cd41e8c101afb7fa962570335be73654fdb8a3fec862197742383ea",Unlisted:"0x398bd90ce129393b9155d48dccffb325e671f45c4250de457462a019268ff1f0",Bought:"0x8d92a13553f6d328e8e2f8d787835eadb96d99c4eae8ce1adab6441beb35c74d",Offered:"0x518fd790da45a5acbd08fd96a76218561c8278a0772a5cb9a537bb8ccfe1e36b",OfferWithdrawn:"0x60c7613a8b8ce872a461e88b0f376098063e67e4df6d0aa6a55790fe81acdb58",OfferAccepted:"0x7bc7d23e5aeba58dbde35bee1ac5d5ffe45557827f7ae6b35255586d1ff97652",Withdrawn:"0x7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5",Transfer:"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"},Qu=[["seller","address"],["price","uint"],["onlyTo","address"],["expiry","uint"],["massSnap","uint"],["burnSnap","uint"]],Ju=[["bidder","address"],["amount","uint"]],$u=[["price","uint"],["time","uint"],["blockNum","uint"],["count","uint"]],_={strip:Ha,uintWord:xn,addrWord:Bu,boolWord:Mu,words:cn,wBig:Mn,wNum:nr,wAddr:Io,wBool:Lo,encodeCall:Hu,encodeUintArrayCall:Pu,encodeStringCall:Wu,decodeFixedUintArray:Du,decodeUintArray:Fu,decodeStruct:zu,decodeStructArray:ju,decodeString:qu,decodeStringArray:Uu,hexToBytes:Co,hexToUtf8:Ms,parseEther:Vu,formatEther:Yu,hexQuantity:Gu,bitsOf:Zu,SEL:Ku,TOPIC:Xu,LISTING:Qu,BID:Ju,SALEINFO:$u},td="0x0000000000000000000000000000000000000000",jt=t=>!t||t.toLowerCase()===td,Ca=t=>t&&!jt(t)?t.slice(0,6)+"…"+t.slice(-4):"–";function Oo(t,e){return!t||jt(t.onlyTo)||e&&t.onlyTo.toLowerCase()===String(e).toLowerCase()?null:"Private sale: only "+Ca(t.onlyTo)+" can buy this rock."}function Ro(t,{connected:e,endpoint:r}={}){if(e)return"Couldn't load: "+pe(t);const a="Connect a wallet to read the chain.";return r?a+" This build also has a fallback endpoint set ("+r+") and it is not answering.":a}const ed=2n**96n-1n;function ki(t,e,r){const a=e??0n;return t==null?{issue:"Enter an amount in ETH, like 0.5."}:t<=0n?{issue:"Enter an amount above zero."}:t>ed?{issue:"That is larger than a single bid can hold."}:r?t<=a?{issue:"Enter the total you want your bid to be, above the "+_.formatEther(a)+" ETH you already have in."}:{kind:"raise",total:t,now:a,send:t-a}:a>0n&&t<=a?{issue:"The standing bid is "+_.formatEther(a)+" ETH. Yours has to beat it, not match it."}:{kind:a>0n?"outbid":"first",total:t,now:a,send:t}}const pe=t=>t&&t.message?t.message:String(t),ke=t=>String(t??"").trim()!=="",Fr=t=>/^0x[0-9a-fA-F]{40}$/.test(String(t??"").trim());function ya(t,e=0,r=9999){const a=String(t??"").trim();if(!a)return null;if(!/^\d+$/.test(a))return"Enter a whole rock id.";const s=Number(a);return s<e?`Enter an id of ${e} or above.`:s>r?`Enter an id of ${r} or below.`:null}const No=25;function rd(t,e=No){const r=String(t??"").trim();if(!r)return{ids:[],issue:null};const a=c=>({ids:[],issue:c}),s=[];for(const c of r.split(/[\s,]+/).filter(Boolean)){const u=c.match(/^(\d+)-(\d+)$/);if(u){const[f,b]=[BigInt(u[1]),BigInt(u[2])];if(b<f)return a(`The range ${c} runs backwards.`);if(b-f>=BigInt(e))return a(`${c} is more than ${e} rocks. Absorb them in batches.`);for(let p=f;p<=b;p++)s.push(p);continue}if(!/^\d+$/.test(c))return a(`"${c}" is not a rock id. Use ids, commas, or a range like 10001-10005.`);s.push(BigInt(c))}const i=s.find(c=>c<10000n);if(i!==void 0)return a(`#${i} is not dust. Only rocks above id 9999 can be absorbed.`);const l=[...new Set(s)];return l.length!==s.length?a("That list names the same rock twice."):l.length>e?a(`That is ${l.length} rocks. Absorb up to ${e} at a time.`):{ids:l,issue:null}}const Bo=t=>t&&Number(t)>0?new Date(Number(t)*1e3).toLocaleString():"–",nd=t=>t&&Number(t)>0?new Date(Number(t)*1e3).toLocaleDateString():"–";function xi(t,e){const r=BigInt(t);return r<100n?"DEFINED":r<BigInt(e)?"UNDEFINED":"DUST"}async function Gr(t,e){if(C.current)return C.current.request({method:t,params:e});throw new Error("connect a wallet to read the chain")}async function Re(t,e){if(jt(t))throw new Error("contract address not configured (edit src/config.js)");return Gr("eth_call",[{to:t,data:e},"latest"])}function Mo(){if(C.chainId!=null&&C.chainId!==ut.chainId)throw new Error("Wrong network: your wallet is on chain "+C.chainId+" and this app is on chain "+ut.chainId+". Switch networks and try again.")}async function we(t,e,r){if(!C.account)throw new Error("connect a wallet first");if(Mo(),jt(t))throw new Error("contract address not configured (edit src/config.js)");const a={from:C.account,to:t,data:e};r&&r>0n&&(a.value=_.hexQuantity(r));const s=await Gr("eth_sendTransaction",[a]),i=await ad(s);if(i&&i.status!=="0x1")throw new Error("transaction reverted: "+s);return i&&await Po(i.blockNumber),i}const Ho=t=>new Promise(e=>setTimeout(e,t));async function ad(t){for(let e=0;e<180;e++){const r=await Gr("eth_getTransactionReceipt",[t]);if(r)return r;await Ho(1e3)}return null}async function Po(t){if(!t)return;let e;try{e=BigInt(t)}catch{return}for(let r=0;r<20;r++){try{if(BigInt(await Gr("eth_blockNumber",[]))>=e)return}catch{}await Ho(600)}}async function Wo(){const t=await Gr("eth_getBlockByNumber",["latest",!1]);return{number:Number(BigInt(t.number)),time:Number(BigInt(t.timestamp))}}function sd(t,e,r){return[{version:"2.0.0",from:t,chainId:e,atomicRequired:!0,calls:r.map(a=>{const s={to:a.to,data:a.data||"0x"};return a.value&&a.value>0n&&(s.value=_.hexQuantity(a.value)),s})}]}function id(t,e,r){if(!t||typeof t!="object")return!1;const a=String(e).toLowerCase();let s=null;for(const l of Object.keys(t))if(String(l).toLowerCase()===a||Number(l)===r){s=t[l];break}const i=s&&s.atomic&&s.atomic.status;return i==="supported"||i==="ready"}function od(t){if(!t)return"pending";const e=t.status;if(typeof e=="string"){const r=e.toUpperCase();return r==="CONFIRMED"||r==="SUCCESS"?"confirmed":r==="FAILED"||r==="REVERTED"?"failed":"pending"}return typeof e=="number"?e===1?"confirmed":e===2?"failed":e===0||e===100?"pending":e>=200&&e<400?"confirmed":e>=400?"failed":"pending":Array.isArray(t.receipts)&&t.receipts.length?"confirmed":"pending"}function ld(t){return!t||!Array.isArray(t.receipts)||!t.receipts.length?null:t.receipts[t.receipts.length-1]}const cd=t=>new Promise(e=>setTimeout(e,t)),ys=()=>_.hexQuantity(BigInt(ut.chainId));let _a=null;async function Hs(){const t=C.current;if(!t||!C.account)return!1;const e=C.account+":"+ut.chainId;if(_a&&_a.key===e)return _a.atomic;let r=!1;try{const a=await t.request({method:"wallet_getCapabilities",params:[C.account,[ys()]]});r=id(a,ys(),ut.chainId)}catch{r=!1}return _a={key:e,atomic:r},r}async function aa(t,e){if(!C.account)throw new Error("connect a wallet first");if(Mo(),t.length===1)return we(t[0].to,t[0].data,t[0].value||0n);if(await Hs())try{return await ud(t,e)}catch(r){if(fd(r))throw r}return dd(t)}async function ud(t,e){const r=C.current,a=await r.request({method:"wallet_sendCalls",params:sd(C.account,ys(),t)}),s=typeof a=="string"?a:a&&a.id;if(!s)throw new Error("wallet_sendCalls returned no id");for(let i=0;i<180;i++){let l;try{l=await r.request({method:"wallet_getCallsStatus",params:[s]})}catch{break}const c=od(l);if(c==="confirmed"){const u=ld(l);return u&&await Po(u.blockNumber),u||{status:"0x1"}}if(c==="failed")throw new Error((e?e+": ":"")+"batch reverted");await cd(1e3)}return null}async function dd(t){let e=null;for(const r of t)e=await we(r.to,r.data,r.value||0n);return e}function fd(t){return(t&&(t.code||t.data&&t.data.code))===4001||/reject|denied|cancell?ed/i.test(t&&t.message||"")}const Do=(t,e)=>({to:t,data:_.encodeCall(_.SEL.setApprovalForAll,[_.addrWord(e),_.boolWord(!0)])}),vd=(t,e,r,a)=>({to:t,data:_.encodeCall(_.SEL.list,[_.uintWord(e),_.uintWord(r),_.uintWord(a)])}),hd=(t,e,r,a,s)=>({to:t,data:_.encodeCall(_.SEL.listTo,[_.uintWord(e),_.uintWord(r),_.uintWord(a),_.addrWord(s)])}),pd=(t,e,r)=>({to:t,data:_.encodeCall(_.SEL.acceptOffer,[_.uintWord(e),_.uintWord(r)])}),Fo=(t,e,r)=>t?[r]:[e,r],Ot=()=>ut.rock,Ft=()=>ut.market,rt=(t,...e)=>_.encodeCall(t,e),_d=(1n<<256n)-1n,pt=t=>_.uintWord(t),Se=t=>_.addrWord(t),fr=async(t,e)=>_.words(await Re(t,e))[0],sa=async(t,e)=>_.wBig(await fr(t,e));async function Kn(t){try{return _.wAddr(await fr(Ot(),rt(_.SEL.ownerOf,pt(t))))}catch{return null}}const wd=t=>sa(Ot(),rt(_.SEL.mass,pt(t))),md=t=>sa(Ot(),rt(_.SEL.dust,pt(t))),bd=async t=>_.wBool(await fr(Ot(),rt(_.SEL.rolled,pt(t)))),zo=async t=>_.decodeString(await Re(Ot(),rt(_.SEL.tokenURI,pt(t)))),gd=async t=>{const e=await zo(t);return JSON.parse(atob(e.slice(e.indexOf(",")+1)))},Ei=12;async function yd(t){const e={};for(let r=0;r<t.length;r+=Ei){const a=t.slice(r,r+Ei).map(BigInt);_.decodeStringArray(await Re(Ot(),_.encodeUintArrayCall(_.SEL.tokenURIBatch,a))).forEach((i,l)=>{if(i)try{e[Number(a[l])]=JSON.parse(atob(i.slice(i.indexOf(",")+1))).image}catch{}})}return e}const kd=()=>sa(Ot(),rt(_.SEL.totalSupply)),xd=async()=>_.bitsOf(_.decodeFixedUintArray(await Re(Ot(),_.SEL.wrappedBitmap),40)),Hn=async t=>_.wAddr(await fr(Ot(),rt(_.SEL.wardens,Se(t)))),Ps=async t=>_.wBool(await fr(Ot(),rt(_.SEL.isApprovedForAll,Se(t),Se(Ft())))),Ws=async t=>_.decodeStruct(await Re(Ft(),rt(_.SEL.listings,pt(t))),_.LISTING),is=async t=>_.decodeStruct(await Re(Ft(),rt(_.SEL.bids,pt(t))),_.BID),jo=async t=>_.decodeStruct(await Re(Ft(),rt(_.SEL.lastSale,pt(t))),_.SALEINFO),Ed=async t=>sa(Ft(),rt(_.SEL.pendingWithdrawals,Se(t))),Sd=()=>sa(Ft(),rt(_.SEL.totalVolume)),os=new Map;async function qo(t){if(!t||jt(t)||jt(ut.gns))return null;const e=t.toLowerCase();if(os.has(e))return os.get(e);let r=null;try{const a=_.decodeString(await Re(ut.gns,rt(_.SEL.reverseResolve,Se(t))));r=a&&a.length?a:null}catch{r=null}return os.set(e,r),r}async function Si(t){const e=String(t??"").trim();if(!e||jt(ut.gns))return null;try{const r=_.wBig(await fr(ut.gns,_.encodeStringCall(_.SEL.computeId,e)));if(r!==0n){const a=_.wAddr(await fr(ut.gns,rt(_.SEL.resolveById,pt(r))));if(!jt(a))return a}}catch{}try{const r=_.wAddr(await fr(ut.gns,_.encodeStringCall(_.SEL.resolveByName,e)));if(!jt(r))return r}catch{}return null}const Uo=async()=>_.bitsOf(_.decodeFixedUintArray(await Re(Ft(),_.SEL.listedBitmap),40)),Vo=async()=>_.bitsOf(_.decodeFixedUintArray(await Re(Ft(),_.SEL.bidBitmap),40)),Ti=500;async function Ds(t,e,r){const a=[];for(let s=0;s<t.length;s+=Ti){const i=t.slice(s,s+Ti).map(BigInt),l=await Re(Ft(),_.encodeUintArrayCall(e,i));a.push(..._.decodeStructArray(l,r))}return a}async function Fs(t){return t.length?Ds(t,_.SEL.getListings,_.LISTING):[]}async function Yo(t){return t.length?Ds(t,_.SEL.getBids,_.BID):[]}async function Go(t){return t.length?Ds(t,_.SEL.getLastSales,_.SALEINFO):[]}async function Td(){const[t,e]=await Promise.all([Uo(),Vo()]),r=Array.from(new Set([...t,...e])).sort((c,u)=>c-u),[a,s,i]=await Promise.all([Fs(t),Yo(e),Go(r)]),l={};for(const c of r)l[c]={id:c};return t.forEach((c,u)=>l[c].listing=a[u]),e.forEach((c,u)=>l[c].bid=s[u]),r.forEach((c,u)=>l[c].sale=i[u]),r.map(c=>l[c])}async function Zo(t){if(!t.length)return[];const[e,r,a]=await Promise.all([Fs(t),Yo(t),Go(t)]);return t.map((s,i)=>({id:s,listing:e[i],bid:r[i],sale:a[i]}))}async function Id(t){const e=await jo(t);if(!e.count||e.count===0n)return[];const r=[],a="0x"+_.uintWord(t);let s=Number(e.blockNum),i=0;for(;s>0&&i<4096;){i++;const l=await Gr("eth_getLogs",[{address:Ft(),fromBlock:_.hexQuantity(s),toBlock:_.hexQuantity(s),topics:[[_.TOPIC.Bought,_.TOPIC.OfferAccepted],a]}]);if(!l.length)break;let c=0;for(const u of l){const f=u.topics[0].toLowerCase()===_.TOPIC.Bought,b=_.wAddr(_.strip(f?u.topics[3]:u.topics[2])),p=_.wAddr(_.strip(f?u.topics[2]:u.topics[3])),w=_.words(u.data);r.push({block:Number(BigInt(u.blockNumber)),price:_.wBig(w[0]),seller:b,buyer:p,kind:f?"buy":"accept"});const v=_.wNum(w[1]);(c===0||v<c)&&(c=v)}s=c}return r.sort((l,c)=>c.block-l.block),r}const ls=9e3,Ld=t=>/range|limit|exceed|too many|too large|too wide|more than|response size|block range/i.test(String(t?.message??t?.data?.message??t));async function Ad(t,e,r){const a=[];let s=e,i=ls;for(;s<=r;){const l=Math.min(s+i-1,r);try{const c=await Gr("eth_getLogs",[{...t,fromBlock:_.hexQuantity(s),toBlock:_.hexQuantity(l)}]);a.push(...c),s=l+1,i<ls&&(i=Math.min(ls,i*2))}catch(c){if(i<=1||!Ld(c))throw c;i=Math.max(1,Math.floor(i/2))}}return a}async function Cd(t){try{return _.decodeUintArray(await Re(Ot(),rt(_.SEL.tokensOfOwner,Se(t)))).map(Number).sort((r,a)=>r-a)}catch{}try{return await Od(t)}catch{return Rd(t)}}const Ii=1e3;async function Od(t){const e=Number(ut.maxId)||1e4,r=[];for(let a=0;a<e;a+=Ii){const s=Math.min(a+Ii,e),i=rt(_.SEL.tokensOfOwnerIn,Se(t),pt(a),pt(s));r.push(..._.decodeUintArray(await Re(Ot(),i)).map(Number))}return r.sort((a,s)=>a-s)}async function Rd(t){const e="0x"+_.addrWord(t),r=(await Wo()).number,a=Number(ut.deployBlock)||0,s=await Ad({address:Ot(),topics:[_.TOPIC.Transfer,null,e]},a,r),i=Array.from(new Set(s.map(c=>_.wNum(_.strip(c.topics[3]))))).sort((c,u)=>c-u),l=[];for(const c of i){const u=await Kn(BigInt(c));u&&u.toLowerCase()===t.toLowerCase()&&l.push(c)}return l}const Li=()=>we(Ot(),rt(_.SEL.createWarden));async function Nd(t){const e=await Hn(C.account);if(jt(e))throw new Error("create your warden first");return we(ut.v1,rt(_.SEL.giftRock,pt(t),Se(e)))}const Bd=t=>we(Ot(),rt(_.SEL.wrap,pt(t))),Md=t=>we(Ot(),rt(_.SEL.unwrap,pt(t))),Hd=t=>we(Ot(),rt(_.SEL.rescue,pt(t)));async function Pd(t,e){const r=C.account,a={to:Ot(),data:rt(_.SEL.safeTransferFrom,Se(r),Se(e),pt(t))},s=await Ws(t),l=!jt(s.seller)&&s.seller.toLowerCase()===String(r).toLowerCase()?[{to:Ft(),data:rt(_.SEL.cancelListing,pt(t))},a]:[a];return aa(l,"transfer #"+t)}const Ko=async t=>_.wAddr(await fr(ut.v1,rt(_.SEL.rocks,pt(t))));async function Wd(t,e){const r=async i=>{if(jt(i)||!e)return!1;try{const l=_.wAddr(await fr(i,rt(_.SEL.ownerOf,pt(t))));return!!l&&l.toLowerCase()===e.toLowerCase()}catch{return!1}},[a,s]=await Promise.all([r(ut.wrapperSub100),r(ut.wrapper10k)]);return a?"sub100":s?"tenk":null}function Dd(t,e){const r=t==="tenk"?ut.wrapper10k:ut.wrapperSub100;return we(r,rt(_.SEL.safeTransferFrom,Se(C.account),Se(Ot()),pt(e)))}const Fd=(t,e,r)=>we(Ot(),rt(_.SEL.merge,pt(t),pt(e),pt(r)));async function zd(t){const e=await Hn(C.account);if(jt(e))throw new Error("create your warden first");return aa([{to:ut.v1,data:rt(_.SEL.sellRock,pt(t),pt(_d))},{to:ut.v1,data:rt(_.SEL.giftRock,pt(t),Se(e))},{to:Ot(),data:rt(_.SEL.wrap,pt(t))}],"wrap #"+t)}async function jd(t,e,r=null){const a=await Hn(C.account);if(jt(a))throw new Error("create your warden first");const s=Array.isArray(t)?t:[t];if(!s.length)throw new Error("no dust rocks given");const i=r===null?null:new Set(r.map(String)),l=s.flatMap(u=>[...i===null||i.has(String(u))?[{to:ut.v1,data:rt(_.SEL.giftRock,pt(u),Se(a))}]:[],{to:Ot(),data:rt(_.SEL.absorb,pt(u),pt(e))}]),c=s.length===1?"#"+s[0]:s.length+" dust rocks";return aa(l,`absorb ${c} into #${e}`)}const Xo=t=>we(Ft(),rt(_.SEL.cancelListing,pt(t)));async function Qo(t){const e=await Ws(t);if(jt(e.seller))throw new Error("not listed");return we(Ft(),rt(_.SEL.buy,pt(t)),e.price)}const qd=(t,e)=>we(Ft(),rt(_.SEL.makeOffer,pt(t)),e),Jo=t=>we(Ft(),rt(_.SEL.withdrawOffer,pt(t))),Ud=()=>we(Ft(),rt(_.SEL.withdraw)),Vd=t=>we(Ft(),rt(_.SEL.pruneListing,pt(t)));async function Yd(t,e,r,a=null){const s=await Ps(C.account),i=a?hd(Ft(),t,e,r,a):vd(Ft(),t,e,r),l=(a?"private list #":"list #")+t;return aa(Fo(s,Do(Ot(),Ft()),i),l)}async function Gd(t,e){const r=await Ps(C.account);return aa(Fo(r,Do(Ot(),Ft()),pd(Ft(),t,e)),"accept offer on #"+t)}var Zd=x("<a> </a>"),Kd=x('<a href="#/account"><span class="dot svelte-1jnx671"></span><span class="who svelte-1jnx671"> </span></a> <button type="button" class="svelte-1jnx671">Disconnect</button>',1),Xd=x("<option> </option>"),Qd=x("<option>no wallet</option>"),Jd=x('<select aria-label="Choose wallet"><!><!></select> <button type="button" class="primary svelte-1jnx671">Connect</button>',1),$d=x('<span class="why svelte-1jnx671"> </span>'),tf=x('<div class="netbar svelte-1jnx671"><span> </span> <button type="button" class="svelte-1jnx671"> </button> <!></div>'),ef=x('<div class="netbar bad svelte-1jnx671"> </div>'),rf=x('<header class="svelte-1jnx671"><div class="bar svelte-1jnx671"><a class="brand svelte-1jnx671" href="#/" aria-label="EthereumRock home"><svg class="logo svelte-1jnx671" viewBox="0 0 8 8" shape-rendering="crispEdges" width="27" height="27" aria-hidden="true"><path fill="#78746b" d="M3 1H4V2H5V3H6V7H3V6H2V3H3Z"></path><path fill="#000" fill-opacity="0.902" d="M3 1H4V2H3ZM3 6H4V7H3Z"></path><path fill="#fff" fill-opacity="0.251" d="M4 2H5V3H4Z"></path><path fill="#000" fill-opacity="0.502" d="M2 3H3V5H2ZM5 6H6V7H5Z"></path><path fill="#000" fill-opacity="0.251" d="M5 4H6V6H5Z"></path><path fill="#000" fill-opacity="0.749" d="M2 5H3V6H2ZM4 6H5V7H4Z"></path></svg></a> <nav class="tabs svelte-1jnx671"></nav> <div class="right svelte-1jnx671"><!></div></div> <!> <!></header>');function nf(t,e){Ge(e,!0);let r=A("");ue(()=>{const B=C.providers;B.length&&!B.some(F=>F.info.uuid===n(r))&&m(r,B[0].info.uuid,!0)});let a=A(null);ue(()=>{const B=C.account;if(m(a,null),!B)return;let F=!0;return qo(B).then(Z=>{F&&m(a,Z,!0)}).catch(()=>{}),()=>{F=!1}});let s=A(null);async function i(){m(s,null);try{await C.connect(n(r))}catch(B){m(s,pe(B),!0)}}let l=A(!1),c=A(null);async function u(){m(c,null),m(l,!0);try{await C.switchChain(ut.chainId,{rpcUrl:ut.rpcUrl,chainName:ut.chainId===31337?"Hardhat (31337)":"Chain "+ut.chainId})}catch(B){m(c,pe(B),!0)}m(l,!1)}const f=[{href:"#/",path:"/",label:"Home"},{href:"#/market",path:"/market",label:"Market"},{href:"#/wrap",path:"/wrap",label:"Wrap"}],b=B=>B==="/"?gs.path==="/":gs.path.startsWith(B);var p=rf(),w=o(p),v=d(o(w),2);Tr(v,21,()=>f,B=>B.path,(B,F)=>{var Z=Zd();let _t;var U=o(Z);E(yt=>{Gt(Z,"href",n(F).href),_t=Ur(Z,1,"svelte-1jnx671",null,_t,yt),g(U,n(F).label)},[()=>({active:b(n(F).path)})]),h(B,Z)});var y=d(v,2),I=o(y);{var k=B=>{var F=Kd(),Z=lt(F);let _t;var U=d(o(Z)),yt=o(U),mt=d(Z,2);E((St,Lt)=>{_t=Ur(Z,1,"chip svelte-1jnx671",null,_t,St),Gt(Z,"title","Your account · "+C.account),g(yt,Lt)},[()=>({warn:C.chainId!==ut.chainId,active:b("/account")}),()=>n(a)??Ca(C.account)]),ct("click",mt,()=>C.disconnect()),h(B,F)},R=B=>{var F=Jd(),Z=lt(F),_t=o(Z);Tr(_t,17,()=>C.providers,St=>St.info.uuid,(St,Lt)=>{var se=Xd(),tt=o(se),H={};E(()=>{g(tt,n(Lt).info.name),H!==(H=n(Lt).info.uuid)&&(se.value=(se.__value=n(Lt).info.uuid)??"")}),h(St,se)});var U=d(_t);{var yt=St=>{var Lt=Qd();Lt.value=Lt.__value="",h(St,Lt)};S(U,St=>{C.providers.length||St(yt)})}var mt=d(Z,2);Bs(Z,()=>n(r),St=>m(r,St)),ct("click",mt,i),h(B,F)};S(I,B=>{C.account?B(k):B(R,-1)})}var Y=d(w,2);{var G=B=>{var F=tf(),Z=o(F),_t=o(Z),U=d(Z,2),yt=o(U),mt=d(U,2);{var St=Lt=>{var se=$d(),tt=o(se);E(()=>g(tt,n(c))),h(Lt,se)};S(mt,Lt=>{n(c)&&Lt(St)})}E(()=>{g(_t,`Wrong network. This app is on chain ${ut.chainId}, your wallet is on ${C.chainId??"another chain"??""}.`),U.disabled=n(l),g(yt,n(l)?"switching…":"Switch network")}),ct("click",U,u),h(B,F)};S(Y,B=>{C.account&&C.chainId!==ut.chainId&&B(G)})}var D=d(Y,2);{var nt=B=>{var F=ef(),Z=o(F);E(()=>g(Z,n(s))),h(B,F)};S(D,B=>{n(s)&&!C.account&&B(nt)})}h(t,p),Ze()}Yr(["click"]);Ac();var af=xo('<g><path d="M3 1H4V2H5V3H6V7H3V6H2V3H3Z"></path><path fill="#000" fill-opacity="0.90" d="M3 1H4V2H3ZM3 6H4V7H3Z"></path><path fill="#fff" fill-opacity="0.25" d="M4 2H5V3H4Z"></path><path fill="#000" fill-opacity="0.50" d="M2 3H3V5H2ZM5 6H6V7H5Z"></path><path fill="#000" fill-opacity="0.25" d="M5 4H6V6H5Z"></path><path fill="#000" fill-opacity="0.75" d="M2 5H3V6H2ZM4 6H5V7H4Z"></path></g>'),sf=xo('<svg class="banner svelte-e1tb7l" viewBox="0 0 33 7.6" shape-rendering="crispEdges" aria-hidden="true"></svg>');function of(t){const e=[{x:3.5,scale:.88,h:26,s:10,l:38},{x:8.7,scale:1,h:190,s:74,l:52},{x:13.9,scale:.74,h:30,s:34,l:58},{x:19.1,scale:.94,h:46,s:24,l:76},{x:24.3,scale:.67,h:20,s:22,l:46},{x:29.5,scale:.9,h:348,s:62,l:56}];var r=sf();Tr(r,5,()=>e,mu,(a,s)=>{var i=af(),l=o(i);E(()=>{Gt(i,"transform",`translate(${n(s).x??""} 6.8) scale(${n(s).scale??""}) translate(-4 -7)`),Gt(l,"fill",`hsl(${n(s).h??""},${n(s).s??""}%,${n(s).l??""}%)`)}),h(a,i)}),h(t,r)}var lf=x(`<div class="home svelte-1nmp6pz"><h1 class="svelte-1nmp6pz">EthereumRock</h1> <!> <article class="story svelte-1nmp6pz"><p class="lede svelte-1nmp6pz">On 12/26/2017 the EtherRock project launched, cementing itself as one of the first NFTs on Ethereum mainnet. What most people do not know is that there was a precursor, seventeen hours earlier. The same developer had already deployed a version of the smart contract with some bugs in it and replaced it the next morning. Let's call that one EtherRock v1.</p> <p class="svelte-1nmp6pz">The collection was meant to be a hundred pet rocks. A single mistyped <code class="svelte-1nmp6pz">=</code> in <code class="svelte-1nmp6pz">buyRock</code> left every rock permanently "for sale" at whatever price it had stored and rocks above 100 had <code class="svelte-1nmp6pz">0</code> stored, so anyone could claim those for the cost of gas.</p> <p class="svelte-1nmp6pz">Both EtherRock contracts predate the ERC-721 standard, so nothing can list them without a proper wrapper. 2021 brought the first attempt at one for v1, which put the buyRock bug out of reach and arrived as two contracts: "Genesis Rocks" and "Genesis Rocks: 100-9999", effectively splitting the collectors into the elite hundred and everyone else. The EtherRock developer had publicly disowned v1 by then and its collection was delisted, and between the split and the disowning the whole thing was abandoned (again).</p> <p class="svelte-1nmp6pz">EthereumRock is a new shot at this, a better and CROPS aligned one. It is an experiment for the first 10k rocks: merge two you own and the higher number burns into the lower, so the supply can shrink back to the 100 originally intended. The collectors have full control over whether it does.</p> <p class="svelte-1nmp6pz">The art carries the same lineage. EtherRock used royalty-free clip art. Genesis Rocks pixelated it and pinned the result to IPFS, where the whole 100-9999 set shares the same hundred images. EthereumRock draws every rock on chain from its own seed, so each one is its own picture and there is nothing left to pin.</p> <p class="svelte-1nmp6pz">The other mistake worth not repeating is a single point of failure, so everything here is on chain. The art and the metadata are on chain. The marketplace is on chain and takes zero fees. Even this website is on chain and can be read straight out of the smart contract. All of it should outlive me, for as long as Ethereum is up and running.</p> <div class="cta svelte-1nmp6pz"><a class="btn primary svelte-1nmp6pz" href="#/market">Browse the market</a> <a class="btn svelte-1nmp6pz" href="#/wrap">Wrap a rock</a></div></article></div>`);function cf(t){var e=lf(),r=d(o(e),2);of(r),h(t,e)}const uf="400px 0px",df=50,ff=200,en=new Map;function vf(t,e){for(en.set(t,e);en.size>ff;)en.delete(en.keys().next().value)}function $o(){en.clear()}let zn=null;con
0x5ba199a9…7ba9·#25,619,940·0xe3103e04…08cf44
(a)}}}function Rs(t,e=!1){var r=t.first;for(t.first=t.last=null;r!==null;){const s=r.ac;s!==null&&Nn(()=>{s.abort($n)});var a=r.next;(r.f&Ir)!==0?r.parent=null:Ee(r,e),r=a}}function ru(t){for(var e=t.first;e!==null;){var r=e.next;(e.f&Ve)===0&&Ee(e),e=r}}function Ee(t,e=!0){var r=!1;(e||(t.f&Ql)!==0)&&t.nodes!==null&&t.nodes.end!==null&&(nu(t.nodes.start,t.nodes.end),r=!0),t.f|=ds,Rs(t,e&&!r),Qn(t,0);var a=t.nodes&&t.nodes.t;if(a!==null)for(const i of a)i.stop();lo(t),t.f^=ds,t.f|=Oe;var s=t.parent;s!==null&&s.first!==null&&co(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes=t.ac=t.b=null}function nu(t,e){for(;t!==null;){var r=t===e?null:ea(t);t.remove(),t=r}}function co(t){var e=t.parent,r=t.prev,a=t.next;r!==null&&(r.next=a),a!==null&&(a.prev=r),e!==null&&(e.first===t&&(e.first=a),e.last===t&&(e.last=r))}function an(t,e,r=!0){var a=[];uo(t,a,!0);var s=()=>{r&&Ee(t),e&&e()},i=a.length;if(i>0){var l=()=>--i||s();for(var c of a)c.out(l)}else s()}function uo(t,e,r){if((t.f&_e)===0){t.f^=_e;var a=t.nodes&&t.nodes.t;if(a!==null)for(const c of a)(c.is_global||r)&&e.push(c);for(var s=t.first;s!==null;){var i=s.next;if((s.f&Ir)===0){var l=(s.f&Sn)!==0||(s.f&Ve)!==0&&(t.f&tr)!==0;uo(s,e,l?r:!1)}s=i}}}function Ia(t){fo(t,!0)}function fo(t,e){if((t.f&_e)!==0){t.f^=_e,(t.f&Jt)===0&&(Dt(t,Yt),Vr.ensure().schedule(t));for(var r=t.first;r!==null;){var a=r.next,s=(r.f&Sn)!==0||(r.f&Ve)!==0;fo(r,s?e:!1),r=a}var i=t.nodes&&t.nodes.t;if(i!==null)for(const l of i)(l.is_global||e)&&l.in()}}function Ns(t,e){if(t.nodes)for(var r=t.nodes.start,a=t.nodes.end;r!==null;){var s=r===a?null:ea(r);e.append(r),r=s}}let ga=!1,Lr=!1;function pi(t){Lr=t}let ht=null,rr=!1;function Ye(t){ht=t}let dt=null;function vr(t){dt=t}let ur=null;function vo(t){ht!==null&&(ur??=new Set).add(t)}let xe=null,Ae=0,je=null;function au(t){je=t}let ho=1,tn=0,sn=tn;function _i(t){sn=t}function po(){return++ho}function ra(t){var e=t.f;if((e&Yt)!==0)return!0;if(e&ae&&(t.f&=~on),(e&ar)!==0){for(var r=t.deps,a=r.length,s=0;s<a;s++){var i=r[s];if(ra(i)&&Ki(i),i.wv>t.wv)return!0}(e&Ue)!==0&&er===null&&Dt(t,Jt)}return!1}function _o(t,e,r=!0){var a=t.reactions;if(a!==null&&!(ur!==null&&ur.has(t)))for(var s=0;s<a.length;s++){var i=a[s];(i.f&ae)!==0?_o(i,e,!1):e===i&&(r?Dt(i,Yt):(i.f&Jt)!==0&&Dt(i,ar),As(i))}}function wo(t){var e=xe,r=Ae,a=je,s=ht,i=ur,l=Zt,c=rr,u=sn,f=t.f;xe=null,Ae=0,je=null,ht=(f&(Ve|Ir))===0?t:null,ur=null,Tn(t.ctx),rr=!1,sn=++tn,t.ac!==null&&(Nn(()=>{t.ac.abort($n)}),t.ac=null);try{t.f|=Ea;var b=t.fn,p=b();t.f|=Cn;var w=t.deps,v=et?.is_fork;if(xe!==null){var y;if(v||Qn(t,Ae),w!==null&&Ae>0)for(w.length=Ae+xe.length,y=0;y<xe.length;y++)w[Ae+y]=xe[y];else t.deps=w=xe;if(Cs()&&(t.f&Ue)!==0)for(y=Ae;y<w.length;y++)(w[y].reactions??=[]).push(t)}else!v&&w!==null&&Ae<w.length&&(Qn(t,Ae),w.length=Ae);if(Rn()&&je!==null&&!rr&&w!==null&&(t.f&(ae|ar|Yt))===0)for(y=0;y<je.length;y++)_o(je[y],t);if(s!==null&&s!==t){if(tn++,s.deps!==null)for(let I=0;I<r;I+=1)s.deps[I].rv=tn;if(e!==null)for(const I of e)I.rv=tn;je!==null&&(a===null?a=je:a.push(...je))}return(t.f&jr)!==0&&(t.f^=jr),p}catch(I){return Vi(I)}finally{t.f^=Ea,xe=e,Ae=r,je=a,ht=s,ur=i,Tn(l),rr=c,sn=u}}function su(t,e){let r=e.reactions;if(r!==null){var a=Ul.call(r,t);if(a!==-1){var s=r.length-1;s===0?r=e.reactions=null:(r[a]=r[s],r.pop())}}if(r===null&&(e.f&ae)!==0&&(xe===null||!ka.call(xe,e))){var i=e;(i.f&Ue)!==0&&(i.f^=Ue,i.f&=~on),i.v!==Qt&&Es(i),i.ac!==null&&Nn(()=>{i.ac.abort($n),i.ac=null,Dt(i,Yt)}),jc(i),Qn(i,0)}}function Qn(t,e){var r=t.deps;if(r!==null)for(var a=e;a<r.length;a++)su(t,r[a])}function An(t){var e=t.f;if((e&Oe)===0){Dt(t,Jt);var r=dt,a=ga;dt=t,ga=(e&(Ve|Ir))===0;try{(e&(tr|Di))!==0?ru(t):Rs(t),lo(t);var s=wo(t);t.teardown=typeof s=="function"?s:null,t.wv=ho;var i;Hi&&Lc&&(t.f&Yt)!==0&&t.deps}finally{ga=a,dt=r}}}async function iu(){await Promise.resolve(),Uc()}function n(t){var e=t.f,r=(e&ae)!==0;if(ht!==null&&!rr){var a=dt!==null&&(dt.f&Oe)!==0;if(!a&&(ur===null||!ur.has(t))){var s=ht.deps;if((ht.f&Ea)!==0)t.rv<tn&&(t.rv=tn,xe===null&&s!==null&&s[Ae]===t?Ae++:xe===null?xe=[t]:xe.push(t));else{ht.deps??=[],ka.call(ht.deps,t)||ht.deps.push(t);var i=t.reactions;i===null?t.reactions=[ht]:ka.call(i,ht)||i.push(ht)}}}if(Lr&&nn.has(t))return nn.get(t);if(r){var l=t;if(Lr){var c=l.v;return((l.f&Jt)===0&&l.reactions!==null||bo(l))&&(c=Is(l)),nn.set(l,c),c}var u=(l.f&Ue)===0&&!rr&&ht!==null&&(ga||(ht.f&Ue)!==0),f=(l.f&Cn)===0;ra(l)&&(u&&(l.f|=Ue),Ki(l)),u&&!f&&(Xi(l),mo(l))}if(er?.has(t))return er.get(t);if((t.f&jr)!==0)throw t.v;return t.v}function mo(t){if(t.f|=Ue,t.deps!==null)for(const e of t.deps)(e.reactions??=[]).push(t),(e.f&ae)!==0&&(e.f&Ue)===0&&(Xi(e),mo(e))}function bo(t){if(t.v===Qt)return!0;if(t.deps===null)return!1;for(const e of t.deps)if(nn.has(e)||(e.f&ae)!==0&&bo(e))return!0;return!1}function na(t){var e=rr;try{return rr=!0,t()}finally{rr=e}}const ou=["touchstart","touchmove"];function lu(t){return ou.includes(t)}const Un=Symbol("events"),go=new Set,ws=new Set;function cu(t,e,r,a={}){function s(i){if(a.capture||ms.call(e,i),!i.cancelBubble)return Nn(()=>r?.call(this,i))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?qr(()=>{e.addEventListener(t,s,a)}):e.addEventListener(t,s,a),s}function yo(t,e,r,a,s){var i={capture:a,passive:s},l=cu(t,e,r,i);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&Os(()=>{e.removeEventListener(t,l,i)})}function ct(t,e,r){(e[Un]??={})[t]=r}function Yr(t){for(var e=0;e<t.length;e++)go.add(t[e]);for(var r of ws)r(t)}let wi=null;function ms(t){var e=this,r=e.ownerDocument,a=t.type,s=t.composedPath?.()||[],i=s[0]||t.target;wi=t;var l=0,c=wi===t&&t[Un];if(c){var u=s.indexOf(c);if(u!==-1&&(e===document||e===window)){t[Un]=e;return}var f=s.indexOf(e);if(f===-1)return;u<=f&&(l=u)}if(i=s[l]||t.target,i!==e){Vl(t,"currentTarget",{configurable:!0,get(){return i||r}});var b=ht,p=dt;Ye(null),vr(null);try{for(var w,v=[];i!==null&&i!==e;){try{var y=i[Un]?.[a];y!=null&&(!i.disabled||t.target===i)&&y.call(i,t)}catch(I){w?v.push(I):w=I}if(t.cancelBubble)break;l++,i=l<s.length?s[l]:null}if(w){for(let I of v)queueMicrotask(()=>{throw I});throw w}}finally{t[Un]=e,delete t.currentTarget,Ye(b),vr(p)}}}const uu=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:t=>t});function du(t){return uu?.createHTML(t)??t}function ko(t){var e=Qc("template");return e.innerHTML=du(t.replaceAll("<!>","<!---->")),e.content}function Jn(t,e){var r=dt;r.nodes===null&&(r.nodes={start:t,end:e,a:null,t:null})}function x(t,e){var r=(e&yc)!==0,a=(e&kc)!==0,s,i=!t.startsWith("<!>");return()=>{s===void 0&&(s=ko(i?t:"<!>"+t),r||(s=Ln(s)));var l=a||ro?document.importNode(s,!0):s.cloneNode(!0);if(r){var c=Ln(l),u=l.lastChild;Jn(c,u)}else Jn(l,l);return l}}function fu(t,e,r="svg"){var a=!t.startsWith("<!>"),s=`<${r}>${a?t:"<!>"+t}</${r}>`,i;return()=>{if(!i){var l=ko(s),c=Ln(l);i=Ln(c)}var u=i.cloneNode(!0);return Jn(u,u),u}}function xo(t,e){return fu(t,e,"svg")}function he(t=""){{var e=Sr(t+"");return Jn(e,e),e}}function Er(){var t=document.createDocumentFragment(),e=document.createComment(""),r=Sr();return t.append(e,r),Jn(e,r),t}function h(t,e){t!==null&&t.before(e)}function g(t,e){var r=e==null?"":typeof e=="object"?`${e}`:e;r!==(t[hs]??=t.nodeValue)&&(t[hs]=r,t.nodeValue=`${r}`)}function vu(t,e){return hu(t,e)}const pa=new Map;function hu(t,{target:e,anchor:r,props:a={},events:s,context:i,intro:l=!0,transformError:c}){Kc();var u=void 0,f=tu(()=>{var b=r??e.appendChild(Sr());Hc(b,{pending:()=>{}},v=>{Ge({});var y=Zt;i&&(y.c=i),s&&(a.$$events=s),u=t(v,a)||{},Ze()},c);var p=new Set,w=v=>{for(var y=0;y<v.length;y++){var I=v[y];if(!p.has(I)){p.add(I);var k=lu(I);for(const G of[e,document]){var R=pa.get(G);R===void 0&&(R=new Map,pa.set(G,R));var Y=R.get(I);Y===void 0?(G.addEventListener(I,ms,{passive:k}),R.set(I,1)):R.set(I,Y+1)}}}};return w(Ra(go)),ws.add(w),()=>{for(var v of p)for(const k of[e,document]){var y=pa.get(k),I=y.get(v);--I==0?(k.removeEventListener(v,ms),y.delete(v),y.size===0&&pa.delete(k)):y.set(v,I)}ws.delete(w),b!==r&&b.parentNode?.removeChild(b)}});return pu.set(u,f),u}let pu=new WeakMap;class Eo{anchor;#t=new Map;#s=new Map;#e=new Map;#i=new Set;#n=!0;constructor(e,r=!0){this.anchor=e,this.#n=r}#o=e=>{if(this.#t.has(e)){var r=this.#t.get(e),a=this.#s.get(r);if(a)Ia(a),this.#i.delete(r);else{var s=this.#e.get(r);s&&(Ia(s.effect),this.#s.set(r,s.effect),this.#e.delete(r),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),a=s.effect)}for(const[i,l]of this.#t){if(this.#t.delete(i),i===e)break;const c=this.#e.get(l);c&&(Ee(c.effect),this.#e.delete(l))}for(const[i,l]of this.#s){if(i===r||this.#i.has(i))continue;const c=()=>{if(Array.from(this.#t.values()).includes(i)){var f=document.createDocumentFragment();Ns(l,f),f.append(Sr()),this.#e.set(i,{effect:l,fragment:f})}else Ee(l);this.#i.delete(i),this.#s.delete(i)};this.#n||!a?(this.#i.add(i),an(l,c,!1)):c()}}};#r=e=>{this.#t.delete(e);const r=Array.from(this.#t.values());for(const[a,s]of this.#e)r.includes(a)||(Ee(s.effect),this.#e.delete(a))};ensure(e,r){var a=et,s=so();if(r&&!this.#s.has(e)&&!this.#e.has(e))if(s){var i=document.createDocumentFragment(),l=Sr();i.append(l),this.#e.set(e,{effect:qe(()=>r(l)),fragment:i})}else this.#s.set(e,qe(()=>r(this.anchor)));if(this.#t.set(a,e),s){for(const[c,u]of this.#s)c===e?a.unskip_effect(u):a.skip_effect(u);for(const[c,u]of this.#e)c===e?a.unskip_effect(u.effect):a.skip_effect(u.effect);a.oncommit(this.#o),a.ondiscard(this.#r)}else this.#o(a)}}function S(t,e,r=!1){var a=new Eo(t),s=r?Sn:0;function i(l,c){a.ensure(l,c)}Ma(()=>{var l=!1;e((c,u=0)=>{l=!0,i(u,c)}),l||i(-1,null)},s)}const _u=Symbol("NaN");function wu(t,e,r){var a=new Eo(t),s=!Rn();Ma(()=>{var i=e();i!==i&&(i=_u),s&&i!==null&&typeof i=="object"&&(i={}),a.ensure(i,r)})}function mu(t,e){return e}function bu(t,e,r){for(var a=[],s=e.length,i,l=e.length,c=0;c<s;c++){let p=e[c];an(p,()=>{if(i){if(i.pending.delete(p),i.done.add(p),i.pending.size===0){var w=t.outrogroups;bs(t,Ra(i.done)),w.delete(i),w.size===0&&(t.outrogroups=null)}}else l-=1},!1)}if(l===0){var u=a.length===0&&r!==null;if(u){var f=r,b=f.parentNode;Xc(b),b.append(f),t.items.clear()}bs(t,e,!u)}else i={pending:new Set(e),done:new Set},(t.outrogroups??=new Set).add(i)}function bs(t,e,r=!0){var a;if(t.pending.size>0){a=new Set;for(const l of t.pending.values())for(const c of l)a.add(t.items.get(c).e)}for(var s=0;s<e.length;s++){var i=e[s];if(a?.has(i)){i.f|=cr;const l=document.createDocumentFragment();Ns(i,l)}else Ee(e[s],r)}}var mi;function Tr(t,e,r,a,s,i=null){var l=t,c=new Map,u=(e&zi)!==0;if(u){var f=t;l=f.appendChild(Sr())}var b=null,p=Ts(()=>{var G=r();return xs(G)?G:G==null?[]:Ra(G)}),w,v=new Map,y=!0;function I(G){(Y.effect.f&Oe)===0&&(Y.pending.delete(G),Y.fallback=b,gu(Y,w,l,e,a),b!==null&&(w.length===0?(b.f&cr)===0?Ia(b):(b.f^=cr,Vn(b,null,l)):an(b,()=>{b=null})))}function k(G){Y.pending.delete(G)}var R=Ma(()=>{w=n(p);for(var G=w.length,D=new Set,nt=et,B=so(),F=0;F<G;F+=1){var Z=w[F],_t=a(Z,F),U=y?null:c.get(_t);U?(U.v&&In(U.v,Z),U.i&&In(U.i,F),B&&nt.unskip_effect(U.e)):(U=yu(c,y?l:mi??=Sr(),Z,_t,F,s,e,r),y||(U.e.f|=cr),c.set(_t,U)),D.add(_t)}if(G===0&&i&&!b&&(y?b=qe(()=>i(l)):(b=qe(()=>i(mi??=Sr())),b.f|=cr)),G>D.size&&rc(),!y)if(v.set(nt,D),B){for(const[yt,mt]of c)D.has(yt)||nt.skip_effect(mt.e);nt.oncommit(I),nt.ondiscard(k)}else I(nt);n(p)}),Y={effect:R,items:c,pending:v,outrogroups:null,fallback:b};y=!1}function Fn(t){for(;t!==null&&(t.f&Ve)===0;)t=t.next;return t}function gu(t,e,r,a,s){var i=(a&hc)!==0,l=e.length,c=t.items,u=Fn(t.effect.first),f,b=null,p,w=[],v=[],y,I,k,R;if(i)for(R=0;R<l;R+=1)y=e[R],I=s(y,R),k=c.get(I).e,(k.f&cr)===0&&(k.nodes?.a?.measure(),(p??=new Set).add(k));for(R=0;R<l;R+=1){if(y=e[R],I=s(y,R),k=c.get(I).e,t.outrogroups!==null)for(const U of t.outrogroups)U.pending.delete(k),U.done.delete(k);if((k.f&_e)!==0&&(Ia(k),i&&(k.nodes?.a?.unfix(),(p??=new Set).delete(k))),(k.f&cr)!==0)if(k.f^=cr,k===u)Vn(k,null,r);else{var Y=b?b.next:u;k===t.effect.last&&(t.effect.last=k.prev),k.prev&&(k.prev.next=k.next),k.next&&(k.next.prev=k.prev),Dr(t,b,k),Dr(t,k,Y),Vn(k,Y,r),b=k,w=[],v=[],u=Fn(b.next);continue}if(k!==u){if(f!==void 0&&f.has(k)){if(w.length<v.length){var G=v[0],D;b=G.prev;var nt=w[0],B=w[w.length-1];for(D=0;D<w.length;D+=1)Vn(w[D],G,r);for(D=0;D<v.length;D+=1)f.delete(v[D]);Dr(t,nt.prev,B.next),Dr(t,b,nt),Dr(t,B,G),u=G,b=B,R-=1,w=[],v=[]}else f.delete(k),Vn(k,u,r),Dr(t,k.prev,k.next),Dr(t,k,b===null?t.effect.first:b.next),Dr(t,b,k),b=k;continue}for(w=[],v=[];u!==null&&u!==k;)(f??=new Set).add(u),v.push(u),u=Fn(u.next);if(u===null)continue}(k.f&cr)===0&&w.push(k),b=k,u=Fn(k.next)}if(t.outrogroups!==null){for(const U of t.outrogroups)U.pending.size===0&&(bs(t,Ra(U.done)),t.outrogroups?.delete(U));t.outrogroups.size===0&&(t.outrogroups=null)}if(u!==null||f!==void 0){var F=[];if(f!==void 0)for(k of f)(k.f&_e)===0&&F.push(k);for(;u!==null;)(u.f&_e)===0&&u!==t.fallback&&F.push(u),u=Fn(u.next);var Z=F.length;if(Z>0){var _t=(a&zi)!==0&&l===0?r:null;if(i){for(R=0;R<Z;R+=1)F[R].nodes?.a?.measure();for(R=0;R<Z;R+=1)F[R].nodes?.a?.fix()}bu(t,F,_t)}}i&&qr(()=>{if(p!==void 0)for(k of p)k.nodes?.a?.apply()})}function yu(t,e,r,a,s,i,l,c){var u=(l&fc)!==0?(l&pc)===0?Yc(r,!1,!1):ln(r):null,f=(l&vc)!==0?ln(s):null;return{v:u,i:f,e:qe(()=>(i(e,u??r,f??s,c),()=>{t.delete(a)}))}}function Vn(t,e,r){if(t.nodes)for(var a=t.nodes.start,s=t.nodes.end,i=e&&(e.f&cr)===0?e.nodes.start:r;a!==null;){var l=ea(a);if(i.before(a),a===s)return;a=l}}function Dr(t,e,r){e===null?t.effect.first=r:e.next=r,r===null?t.effect.last=e:r.prev=e}const bi=[...` \r\f \v\uFEFF`];function ku(t,e,r){var a=t==null?"":""+t;if(r){for(var s of Object.keys(r))if(r[s])a=a?a+" "+s:s;else if(a.length)for(var i=s.length,l=0;(l=a.indexOf(s,l))>=0;){var c=l+i;(l===0||bi.includes(a[l-1]))&&(c===a.length||bi.includes(a[c]))?a=(l===0?"":a.substring(0,l))+a.substring(c+1):l=c}}return a===""?null:a}function xu(t,e){return t==null?null:String(t)}function Ur(t,e,r,a,s,i){var l=t[fs];if(l!==r||l===void 0){var c=ku(r,a,i);c==null?t.removeAttribute("class"):t.className=c,t[fs]=r}else if(i&&s!==i)for(var u in i){var f=!!i[u];(s==null||f!==!!s[u])&&t.classList.toggle(u,f)}return i}function La(t,e,r,a){var s=t[vs];if(s!==e){var i=xu(e);i==null?t.removeAttribute("style"):t.style.cssText=i,t[vs]=e}return a}function So(t,e,r=!1){if(t.multiple){if(e==null)return;if(!xs(e))return Sc();for(var a of t.options)a.selected=e.includes(Zn(a));return}for(a of t.options){var s=Zn(a);if(Zc(s,e)){a.selected=!0;return}}(!r||e!==void 0)&&(t.selectedIndex=-1)}function Eu(t){var e=new MutationObserver(()=>{So(t,t.__value)});e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Os(()=>{e.disconnect()})}function Bs(t,e,r=e){var a=new WeakSet,s=!0;Ss(t,"change",i=>{var l=i?"[selected]":":checked",c;if(t.multiple)c=[].map.call(t.querySelectorAll(l),Zn);else{var u=t.querySelector(l)??t.querySelector("option:not([disabled])");c=u&&Zn(u)}r(c),t.__value=c,et!==null&&a.add(et)}),oo(()=>{var i=e();if(t===document.activeElement){var l=et;if(a.has(l))return}if(So(t,i,s),s&&i===void 0){var c=t.querySelector(":checked");c!==null&&(i=Zn(c),r(i))}t.__value=i,s=!1}),Eu(t)}function Zn(t){return"__value"in t?t.__value:t.value}const Su=Symbol("is custom element"),Tu=Symbol("is html");function Gt(t,e,r,a){var s=Iu(t);s[e]!==(s[e]=r)&&(e==="loading"&&(t[tc]=r),r==null?t.removeAttribute(e):typeof r!="string"&&Lu(t).includes(e)?t[e]=r:t.setAttribute(e,r))}function Iu(t){return t[Fi]??={[Su]:t.nodeName.includes("-"),[Tu]:t.namespaceURI===xc}}var gi=new Map;function Lu(t){var e=t.getAttribute("is")||t.nodeName,r=gi.get(e);if(r)return r;gi.set(e,r=[]);for(var a,s=t,i=Element.prototype;i!==s;){a=Yl(s);for(var l in a)a[l].set&&l!=="innerHTML"&&l!=="textContent"&&l!=="innerText"&&r.push(l);s=Pi(s)}return r}function Ce(t,e,r=e){var a=new WeakSet;Ss(t,"input",async s=>{var i=s?t.defaultValue:t.value;if(i=ns(t)?as(i):i,r(i),et!==null&&a.add(et),await iu(),i!==(i=e())){var l=t.selectionStart,c=t.selectionEnd,u=t.value.length;if(t.value=i??"",c!==null){var f=t.value.length;l===c&&c===u&&f>u?(t.selectionStart=f,t.selectionEnd=f):(t.selectionStart=l,t.selectionEnd=Math.min(c,f))}}}),na(e)==null&&t.value&&(r(ns(t)?as(t.value):t.value),et!==null&&a.add(et)),Ba(()=>{var s=e();if(t===document.activeElement){var i=et;if(a.has(i))return}ns(t)&&s===as(t.value)||t.type==="date"&&!s&&!t.value||s!==t.value&&(t.value=s??"")})}function To(t,e,r=e){Ss(t,"change",a=>{var s=a?t.defaultChecked:t.checked;r(s)}),na(e)==null&&r(t.checked),Ba(()=>{var a=e();t.checked=!!a})}function ns(t){var e=t.type;return e==="number"||e==="range"}function as(t){return t===""?null:+t}function ss(t,e){return t===e||t?.[rn]===e}function Aa(t={},e,r,a){var s=Zt.r,i=dt;return oo(()=>{var l,c;return Ba(()=>{l=c,c=[],na(()=>{ss(r(...c),t)||(e(t,...c),l&&ss(r(...l),t)&&e(null,...l))})}),()=>{let u=i;for(;u!==s&&u.parent!==null&&u.parent.f&ds;)u=u.parent;const f=()=>{c&&ss(r(...c),t)&&e(null,...c)},b=u.teardown;u.teardown=()=>{f(),b?.()}}}),t}function dr(t,e,r,a){var s=!ta||(r&wc)!==0,i=(r&bc)!==0,l=(r&gc)!==0,c=a,u=!0,f=void 0,b=()=>l&&s?(f??=Xn(a),n(f)):(u&&(u=!1,c=l?na(a):a),c);let p;if(i){var w=rn in t||$l in t;p=yn(t,e)?.set??(w&&e in t?D=>t[e]=D:void 0)}var v,y=!1;i?[v,y]=Rc(()=>t[e]):v=t[e],v===void 0&&a!==void 0&&(v=b(),p&&(s&&oc(),p(v)));var I;if(s?I=()=>{var D=t[e];return D===void 0?b():(u=!0,D)}:I=()=>{var D=t[e];return D!==void 0&&(c=void 0),D===void 0?c:D},s&&(r&mc)===0)return I;if(p){var k=t.$$legacy;return(function(D,nt){return arguments.length>0?((!s||!nt||k||y)&&p(nt?I():D),D):I()})}var R=!1,Y=((r&_c)!==0?Xn:Ts)(()=>(R=!1,I()));i&&n(Y);var G=dt;return(function(D,nt){if(arguments.length>0){const B=nt?n(Y):s&&i?zt(D):D;return m(Y,B),R=!0,c!==void 0&&(c=B),D}return Lr&&R||(G.f&Oe)!==0?Y.v:n(Y)})}const Au="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(Au);function yi(){const t=location.hash.replace(/^#/,"");return t.startsWith("/")?t:"/"+t}class Cu{#t=A(zt(yi()));get path(){return n(this.#t)}set path(e){m(this.#t,e,!0)}constructor(){typeof window<"u"&&(addEventListener("hashchange",()=>{this.path=yi()}),location.hash||(location.hash="/"))}}const gs=new Cu;function Ou(t){location.hash=t}function Ru(t){if(t==="/"||t==="")return{name:"home",params:{}};if(t==="/market")return{name:"market",params:{}};if(t==="/account")return{name:"account",params:{}};if(t==="/wrap")return{name:"wrap",params:{}};const e=t.match(/^\/rock\/(\d+)$/);return e?{name:"rock",params:{id:e[1]}}:{name:"notfound",params:{}}}class Nu{#t=A(zt([]));get providers(){return n(this.#t)}set providers(e){m(this.#t,e,!0)}#s=A(null);get current(){return n(this.#s)}set current(e){m(this.#s,e,!0)}#e=A(null);get account(){return n(this.#e)}set account(e){m(this.#e,e,!0)}#i=A(null);get chainId(){return n(this.#i)}set chainId(e){m(this.#i,e,!0)}discover(){typeof window>"u"||(addEventListener("eip6963:announceProvider",e=>{const r=e.detail;this.providers.some(a=>a.info.uuid===r.info.uuid)||(this.providers=[...this.providers,r])}),dispatchEvent(new Event("eip6963:requestProvider")),setTimeout(()=>{!this.providers.length&&globalThis.ethereum&&(this.providers=[{info:{uuid:"injected",name:"Injected wallet"},provider:globalThis.ethereum}])},400))}async connect(e){const r=e&&this.providers.find(i=>i.info.uuid===e)||this.providers[0];if(!r)throw new Error("no injected wallet found");const a=r.provider,s=await a.request({method:"eth_requestAccounts"});this.current=a,this.account=s[0]||null,this.chainId=Number(BigInt(await a.request({method:"eth_chainId"}))),a.on&&a.on("accountsChanged",i=>{this.account=i[0]||null}),a.on&&a.on("chainChanged",i=>{this.chainId=Number(BigInt(i))})}async switchChain(e,{rpcUrl:r="",chainName:a=""}={}){const s=this.current;if(!s)throw new Error("connect a wallet first");const i="0x"+Number(e).toString(16);try{await s.request({method:"wallet_switchEthereumChain",params:[{chainId:i}]})}catch(l){if((l?.code??l?.data?.originalError?.code)!==4902)throw l;if(!r)throw new Error("your wallet doesn't know chain "+e+". Add it manually, then try again.");await s.request({method:"wallet_addEthereumChain",params:[{chainId:i,chainName:a||"Chain "+e,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:[r]}]}),await s.request({method:"wallet_switchEthereumChain",params:[{chainId:i}]})}this.chainId=Number(BigInt(await s.request({method:"eth_chainId"})))}disconnect(){this.current=null,this.account=null,this.chainId=null}}const C=new Nu,ut={chainId:1,rpcUrl:"",rock:"0x225Fa3Fa8e8f4C2a692a906C262FADf31aBFd732",market:"0xEc41811f709711eC846173974EF0b058813c85d7",v1:"0x37504AE0282f5f334ED29b4548646f887977b7cC",wrapperSub100:"0xb895cAffECb62B5E49828c9d64116Fd07Dd33DEF",wrapper10k:"0x39b780E8062CE299ab60ed3D48F447e97511a2eD",gns:"0x9D51D507BC7264d4fE8Ad1cf7Fe191933A0a81d6",deployBlock:25619887,maxId:1e4};function Ha(t){return t.startsWith("0x")||t.startsWith("0X")?t.slice(2):t}function Bn(t){if(t.length>64)throw new Error("word overflow: "+t);return"0".repeat(64-t.length)+t}function xn(t){const e=typeof t=="bigint"?t:BigInt(t);if(e<0n)throw new Error("negative uint");if(e>=1n<<256n)throw new Error("uint exceeds 256 bits");return Bn(e.toString(16))}function Bu(t){const e=Ha(t).toLowerCase();if(e.length!==40||/[^0-9a-f]/.test(e))throw new Error("bad address: "+t);return Bn(e)}function Mu(t){return Bn(t?"1":"0")}function cn(t){const e=Ha(t),r=[];for(let a=0;a<e.length;a+=64)r.push(e.slice(a,a+64));return r}function Mn(t){return t?BigInt("0x"+t):0n}function nr(t){return Number(Mn(t))}function Io(t){return"0x"+t.slice(24)}function Lo(t){return Mn(t)!==0n}function Hu(t,e){return t+(e||[]).join("")}function Pu(t,e){const r=e.map(xn);return t+xn(32)+xn(r.length)+r.join("")}function Wu(t,e){const r=new TextEncoder().encode(String(e??""));let a="";for(const i of r)a+=i.toString(16).padStart(2,"0");const s=(64-a.length%64)%64;return t+xn(32)+xn(r.length)+a+"0".repeat(s)}function Du(t,e){const r=cn(t),a=[];for(let s=0;s<e;s++)a.push(Mn(r[s]||Bn("0")));return a}function Fu(t){const e=cn(t);if(e.length===0)return[];const r=nr(e[0])/32,a=nr(e[r]),s=[];for(let i=0;i<a;i++)s.push(Mn(e[r+1+i]||Bn("0")));return s}function Ao(t,e,r,a=r.length){const s={};for(let i=0;i<r.length;i++){const l=i<a&&t[e+i]||Bn("0"),c=r[i][1];s[r[i][0]]=c==="address"?Io(l):c==="bool"?Lo(l):Mn(l)}return s}function zu(t,e){return Ao(cn(t),0,e)}function ju(t,e){const r=cn(t);if(r.length===0)return[];const a=nr(r[0])/32,s=nr(r[a]),i=a+1,l=s>0?Math.floor((r.length-i)/s):e.length,c=[];for(let u=0;u<s;u++)c.push(Ao(r,i+u*l,e,l));return c}function qu(t){const e=cn(t),r=nr(e[0])/32,a=nr(e[r]),s=e.slice(r+1).join("").slice(0,a*2);return Ms(s)}function Uu(t){const e=cn(t);if(e.length===0)return[];const r=nr(e[0])/32,a=nr(e[r]),s=r+1,i=[];for(let l=0;l<a;l++){const c=s+nr(e[s+l])/32,u=nr(e[c]);i.push(Ms(e.slice(c+1).join("").slice(0,u*2)))}return i}function Co(t){const e=Ha(t),r=new Uint8Array(e.length/2);for(let a=0;a<r.length;a++)r[a]=parseInt(e.substr(a*2,2),16);return r}function Ms(t){return new TextDecoder().decode(Co(t))}function Vu(t){const e=String(t).trim();if(!/^\d*\.?\d*$/.test(e)||e===""||e===".")throw new Error("bad amount: "+t);const[r,a=""]=e.split("."),s=(a+"0".repeat(18)).slice(0,18);return BigInt(r||"0")*10n**18n+BigInt(s||"0")}function Yu(t){const e=typeof t=="bigint"?t:BigInt(t),r=e<0n,a=r?-e:e,s=a/10n**18n,i=(a%10n**18n).toString().padStart(18,"0").replace(/0+$/,"");return(r?"-":"")+s.toString()+(i?"."+i:"")}function Gu(t){return"0x"+(typeof t=="bigint"?t:BigInt(t)).toString(16)}function Zu(t){const e=[];for(let r=0;r<t.length;r++){let a=typeof t[r]=="bigint"?t[r]:BigInt(t[r]),s=0;for(;a>0n;)a&1n&&e.push(r*256+s),a>>=1n,s++}return e}const Ku={createWarden:"0xa77041dd",wrap:"0xea598cb0",unwrap:"0xde0e9a3e",rescue:"0x6ac053ad",merge:"0x8ced7b17",absorb:"0x396b30e7",setApprovalForAll:"0xa22cb465",approve:"0x095ea7b3",safeTransferFrom:"0x42842e0e",
0x5ba199a9…7ba9·#25,619,939·0xa7110fe8…fd2041
<meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="icon" type="image/svg+xml" href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgZmlsbD0iI2VmZWVlYSIvPjxwYXRoIGZpbGw9IiM3ODc0NmIiIGQ9Ik0zIDFINFYySDVWM0g2VjdIM1Y2SDJWM0gzWiIvPjxwYXRoIGZpbGw9IiMwMDAiIGZpbGwtb3BhY2l0eT0iMC45MDIiIGQ9Ik0zIDFINFYySDNaTTMgNkg0VjdIM1oiLz48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9IjAuMjUxIiBkPSJNNCAySDVWM0g0WiIvPjxwYXRoIGZpbGw9IiMwMDAiIGZpbGwtb3BhY2l0eT0iMC41MDIiIGQ9Ik0yIDNIM1Y1SDJaTTUgNkg2VjdINVoiLz48cGF0aCBmaWxsPSIjMDAwIiBmaWxsLW9wYWNpdHk9IjAuMjUxIiBkPSJNNSA0SDZWNkg1WiIvPjxwYXRoIGZpbGw9IiMwMDAiIGZpbGwtb3BhY2l0eT0iMC43NDkiIGQ9Ik0yIDVIM1Y2SDJaTTQgNkg1VjdINFoiLz48L3N2Zz4=" /> <title>EthereumRock</title> <!-- Unfurl tags. No og:image and no og:url on purpose; see "Link previews" in README.md. Comments here are stored on chain at 200 gas a byte, so keep this short. --> <meta name="description" content="EthereumRock is the wrapper for the v1 rock contract, deployed one day before the EtherRock project itself. No owner, no fees, fully CROPS-aligned." /> <meta property="og:type" content="website" /> <meta property="og:title" content="EthereumRock" /> <meta property="og:description" content="EthereumRock is the wrapper for the v1 rock contract, deployed one day before the EtherRock project itself. No owner, no fees, fully CROPS-aligned." /> <meta name="twitter:card" content="summary" /> <meta name="twitter:title" content="EthereumRock" /> <meta name="twitter:description" content="EthereumRock is the wrapper for the v1 rock contract, deployed one day before the EtherRock project itself. No owner, no fees, fully CROPS-aligned." /> <script type="module">(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))a(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&a(l)}).observe(document,{childList:!0,subtree:!0});function r(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function a(s){if(s.ep)return;s.ep=!0;const i=r(s);fetch(s.href,i)}})();const Hi=!1;var xs=Array.isArray,Ul=Array.prototype.indexOf,ka=Array.prototype.includes,Ra=Array.from,Vl=Object.defineProperty,yn=Object.getOwnPropertyDescriptor,Yl=Object.getOwnPropertyDescriptors,Gl=Object.prototype,Zl=Array.prototype,Pi=Object.getPrototypeOf,ci=Object.isExtensible;const Kl=()=>{};function Xl(t){for(var e=0;e<t.length;e++)t[e]()}function Wi(){var t,e,r=new Promise((a,s)=>{t=a,e=s});return{promise:r,resolve:t,reject:e}}const ae=2,En=4,Na=8,Di=1<<24,tr=16,Ve=32,Ir=64,us=128,Ue=512,Jt=1024,Yt=2048,ar=4096,_e=8192,Oe=16384,Cn=32768,ds=1<<25,Sn=65536,xa=1<<17,Ql=1<<18,On=1<<19,Jl=1<<20,cr=1<<25,on=65536,Ea=1<<21,kn=1<<22,jr=1<<23,rn=Symbol("$state"),$l=Symbol("legacy props"),tc=Symbol(""),Fi=Symbol("attributes"),fs=Symbol("class"),vs=Symbol("style"),hs=Symbol("text"),ma=Symbol("form reset"),$n=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"};function ec(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function rc(t,e,r){throw new Error("https://svelte.dev/e/each_key_duplicate")}function nc(t){throw new Error("https://svelte.dev/e/effect_in_teardown")}function ac(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function sc(t){throw new Error("https://svelte.dev/e/effect_orphan")}function ic(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function oc(t){throw new Error("https://svelte.dev/e/props_invalid_value")}function lc(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function cc(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function uc(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function dc(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const fc=1,vc=2,zi=4,hc=8,pc=16,_c=1,wc=2,mc=4,bc=8,gc=16,yc=1,kc=2,Qt=Symbol("uninitialized"),xc="http://www.w3.org/1999/xhtml";function Ec(){console.warn("https://svelte.dev/e/derived_inert")}function Sc(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Tc(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function ji(t){return t===this.v}function Ic(t,e){return t!=t?e==e:t!==e||t!==null&&typeof t=="object"||typeof t=="function"}function qi(t){return!Ic(t,this.v)}let ta=!1,Lc=!1;function Ac(){ta=!0}let Zt=null;function Tn(t){Zt=t}function Ge(t,e=!1,r){Zt={p:Zt,i:!1,c:null,e:null,s:t,x:null,r:dt,l:ta&&!e?{s:null,u:null,$:[]}:null}}function Ze(t){var e=Zt,r=e.e;if(r!==null){e.e=null;for(var a of r)io(a)}return e.i=!0,Zt=e.p,{}}function Rn(){return!ta||Zt!==null&&Zt.l===null}let $r=[];function Ui(){var t=$r;$r=[],Xl(t)}function qr(t){if($r.length===0&&!Yn){var e=$r;queueMicrotask(()=>{e===$r&&Ui()})}$r.push(t)}function Cc(){for(;$r.length>0;)Ui()}function Vi(t){var e=dt;if(e===null)return ht.f|=jr,t;if((e.f&Cn)===0&&(e.f&En)===0)throw t;zr(t,e)}function zr(t,e){if(!(e!==null&&(e.f&Oe)!==0)){for(;e!==null;){if((e.f&us)!==0){if((e.f&Cn)===0)throw t;try{e.b.error(t);return}catch(r){t=r}}e=e.parent}throw t}}const Oc=-7169;function Dt(t,e){t.f=t.f&Oc|e}function Es(t){(t.f&Ue)!==0||t.deps===null?Dt(t,Jt):Dt(t,ar)}function Yi(t){if(t!==null)for(const e of t)(e.f&ae)===0||(e.f&on)===0||(e.f^=on,Yi(e.deps))}function Gi(t,e,r){(t.f&Yt)!==0?e.add(t):(t.f&ar)!==0&&r.add(t),Yi(t.deps),Dt(t,Jt)}let ha=!1;function Rc(t){var e=ha;try{return ha=!1,[t(),ha]}finally{ha=e}}let ui=!1;function Nc(){ui||(ui=!0,document.addEventListener("reset",t=>{Promise.resolve().then(()=>{if(!t.defaultPrevented)for(const e of t.target.elements)e[ma]?.()})},{capture:!0}))}function Nn(t){var e=ht,r=dt;Ye(null),vr(null);try{return t()}finally{Ye(e),vr(r)}}function Ss(t,e,r,a=r){t.addEventListener(e,()=>Nn(r));const s=t[ma];s?t[ma]=()=>{s(),a(!0)}:t[ma]=()=>a(!0),Nc()}function Bc(t){let e=0,r=ln(0),a;return()=>{Cs()&&(n(r),Ba(()=>(e===0&&(a=na(()=>t(()=>Gn(r)))),e+=1,()=>{qr(()=>{e-=1,e===0&&(a?.(),a=void 0,Gn(r))})})))}}var Mc=Sn|On;function Hc(t,e,r,a){new Pc(t,e,r,a)}class Pc{parent;is_pending=!1;transform_error;#t;#s=null;#e;#i;#n;#o=null;#r=null;#l=null;#a=null;#h=0;#c=0;#u=!1;#f=new Set;#_=new Set;#d=null;#m=Bc(()=>(this.#d=ln(this.#h),()=>{this.#d=null}));constructor(e,r,a,s){this.#t=e,this.#e=r,this.#i=i=>{var l=dt;l.b=this,l.f|=us,a(i)},this.parent=dt.b,this.transform_error=s??this.parent?.transform_error??(i=>i),this.#n=Ma(()=>{this.#b()},Mc)}#w(){try{this.#o=qe(()=>this.#i(this.#t))}catch(e){this.error(e)}}#y(e){const r=this.#e.failed;r&&(this.#l=qe(()=>{r(this.#t,()=>e,()=>()=>{})}))}#k(){const e=this.#e.pending;e&&(this.is_pending=!0,this.#r=qe(()=>e(this.#t)),qr(()=>{var r=this.#a=document.createDocumentFragment(),a=Sr();r.append(a),this.#o=this.#g(()=>qe(()=>this.#i(a))),this.#c===0&&(this.#t.before(r),this.#a=null,an(this.#r,()=>{this.#r=null}),this.#v(et))}))}#b(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#h=0,this.#o=qe(()=>{this.#i(this.#t)}),this.#c>0){var e=this.#a=document.createDocumentFragment();Ns(this.#o,e);const r=this.#e.pending;this.#r=qe(()=>r(this.#t))}else this.#v(et)}catch(r){this.error(r)}}#v(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#_)}defer_effect(e){Gi(e,this.#f,this.#_)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#e.pending}#g(e){var r=dt,a=ht,s=Zt;vr(this.#n),Ye(this.#n),Tn(this.#n.ctx);try{return Vr.ensure(),e()}catch(i){return Vi(i),null}finally{vr(r),Ye(a),Tn(s)}}#p(e,r){if(!this.has_pending_snippet()){this.parent&&this.parent.#p(e,r);return}this.#c+=e,this.#c===0&&(this.#v(r),this.#r&&an(this.#r,()=>{this.#r=null}),this.#a&&(this.#t.before(this.#a),this.#a=null))}update_pending_count(e,r){this.#p(e,r),this.#h+=e,!(!this.#d||this.#u)&&(this.#u=!0,qr(()=>{this.#u=!1,this.#d&&In(this.#d,this.#h)}))}get_effect_pending(){return this.#m(),n(this.#d)}error(e){if(!this.#e.onerror&&!this.#e.failed)throw e;et?.is_fork?(this.#o&&et.skip_effect(this.#o),this.#r&&et.skip_effect(this.#r),this.#l&&et.skip_effect(this.#l),et.oncommit(()=>{this.#x(e)})):this.#x(e)}#x(e){this.#o&&(Ee(this.#o),this.#o=null),this.#r&&(Ee(this.#r),this.#r=null),this.#l&&(Ee(this.#l),this.#l=null);var r=this.#e.onerror;let a=this.#e.failed;var s=!1,i=!1;const l=()=>{if(s){Tc();return}s=!0,i&&dc(),this.#l!==null&&an(this.#l,()=>{this.#l=null}),this.#g(()=>{this.#b()})},c=u=>{try{i=!0,r?.(u,l),i=!1}catch(f){zr(f,this.#n&&this.#n.parent)}a&&(this.#l=this.#g(()=>{try{return qe(()=>{var f=dt;f.b=this,f.f|=us,a(this.#t,()=>u,()=>l)})}catch(f){return zr(f,this.#n.parent),null}}))};qr(()=>{var u;try{u=this.transform_error(e)}catch(f){zr(f,this.#n&&this.#n.parent);return}u!==null&&typeof u=="object"&&typeof u.then=="function"?u.then(c,f=>zr(f,this.#n&&this.#n.parent)):c(u)})}}function Wc(t,e,r,a){const s=Rn()?Xn:Ts;var i=t.filter(v=>!v.settled),l=e.map(s);if(r.length===0&&i.length===0){a(l);return}var c=dt,u=Dc(),f=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(v=>v.promise)):null;function b(v){if((c.f&Oe)===0){u();try{a([...l,...v])}catch(y){zr(y,c)}Sa()}}var p=Zi();if(r.length===0){f.then(()=>b([])).finally(p);return}function w(){Promise.all(r.map(v=>Fc(v))).then(b).catch(v=>zr(v,c)).finally(p)}f?f.then(()=>{u(),w(),Sa()}):w()}function Dc(){var t=dt,e=ht,r=Zt,a=et;return function(i=!0){vr(t),Ye(e),Tn(r),i&&(t.f&Oe)===0&&(a?.activate(),a?.apply())}}function Sa(t=!0){vr(null),Ye(null),Tn(null),t&&et?.deactivate()}function Zi(){var t=dt,e=t.b,r=et,a=!!e?.is_rendered();return e?.update_pending_count(1,r),r.increment(a,t),()=>{e?.update_pending_count(-1,r),r.decrement(a,t)}}function Xn(t){var e=ae|Yt;return dt!==null&&(dt.f|=On),{ctx:Zt,deps:null,effects:null,equals:ji,f:e,fn:t,reactions:null,rv:0,v:Qt,wv:0,parent:dt,ac:null}}const qn=Symbol("obsolete");function Fc(t,e,r){let a=dt;a===null&&ec();var s=void 0,i=ln(Qt),l=!ht,c=new Set;return eu(()=>{var u=dt,f=Wi();s=f.promise;try{Promise.resolve(t()).then(f.resolve,v=>{v!==$n&&f.reject(v)}).finally(Sa)}catch(v){f.reject(v),Sa()}var b=et;if(l){if((u.f&Cn)!==0)var p=Zi();if(a.b?.is_rendered())b.async_deriveds.get(u)?.reject(qn);else for(const v of c.values())v.reject(qn);c.add(f),b.async_deriveds.set(u,f)}const w=(v,y=void 0)=>{p?.(),c.delete(f),y!==qn&&(b.activate(),y?(i.f|=jr,In(i,y)):((i.f&jr)!==0&&(i.f^=jr),In(i,v)),b.deactivate())};f.promise.then(w,v=>w(null,v||"unknown"))}),Os(()=>{for(const u of c)u.reject(qn)}),new Promise(u=>{function f(b){function p(){b===s?u(i):f(s)}b.then(p,p)}f(s)})}function X(t){const e=Xn(t);return vo(e),e}function Ts(t){const e=Xn(t);return e.equals=qi,e}function zc(t){var e=t.effects;if(e!==null){t.effects=null;for(var r=0;r<e.length;r+=1)Ee(e[r])}}function Is(t){var e,r=dt,a=t.parent;if(!Lr&&a!==null&&t.v!==Qt&&(a.f&(Oe|_e))!==0)return Ec(),t.v;vr(a);try{t.f&=~on,zc(t),e=wo(t)}finally{vr(r)}return e}function Ki(t){var e=Is(t);if(!t.equals(e)&&(t.wv=po(),(!et?.is_fork||t.deps===null)&&(et!==null?(et.capture(t,e,!0),ps?.capture(t,e,!0)):t.v=e,t.deps===null))){Dt(t,Jt);return}Lr||(er!==null?(Cs()||et?.is_fork)&&er.set(t,e):Es(t))}function jc(t){if(t.effects!==null)for(const e of t.effects)(e.teardown||e.ac)&&(e.teardown?.(),e.ac!==null&&Nn(()=>{e.ac.abort($n),e.ac=null}),e.fn!==null&&(e.teardown=Kl),Qn(e,0),Rs(e))}function Xi(t){if(t.effects!==null)for(const e of t.effects)e.teardown&&e.fn!==null&&An(e)}let es=null,_n=null,et=null,ps=null,er=null,_s=null,Yn=!1,rs=!1,bn=null,ba=null;var di=0;let qc=1;class Vr{id=qc++;#t=!1;linked=!0;#s=null;#e=null;async_deriveds=new Map;current=new Map;previous=new Map;#i=new Set;#n=new Set;#o=0;#r=new Map;#l=null;#a=[];#h=[];#c=new Set;#u=new Set;#f=new Map;#_=new Set;is_fork=!1;#d=!1;constructor(){_n===null?es=_n=this:(_n.#e=this,this.#s=_n),_n=this}#m(){if(this.is_fork)return!0;for(const a of this.#r.keys()){for(var e=a,r=!1;e.parent!==null;){if(this.#f.has(e)){r=!0;break}e=e.parent}if(!r)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#_.delete(e)}unskip_effect(e,r=a=>this.schedule(a)){var a=this.#f.get(e);if(a){this.#f.delete(e);for(var s of a.d)Dt(s,Yt),r(s);for(s of a.m)Dt(s,ar),r(s)}this.#_.add(e)}#w(){this.#t=!0,di++>1e3&&(this.#p(),Vc());for(const u of this.#c)this.#u.delete(u),Dt(u,Yt),this.schedule(u);for(const u of this.#u)Dt(u,ar),this.schedule(u);const e=this.#a;this.#a=[],this.apply();var r=bn=[],a=[],s=ba=[];for(const u of e)try{this.#y(u,r,a)}catch(f){throw $i(u),this.#m()||this.discard(),f}if(et=null,s.length>0){var i=Vr.ensure();for(const u of s)i.schedule(u)}if(bn=null,ba=null,this.#m()){this.#v(a),this.#v(r);for(const[u,f]of this.#f)Ji(u,f);s.length>0&&et.#w();return}const l=this.#k();if(l){this.#v(a),this.#v(r),l.#b(this);return}this.#c.clear(),this.#u.clear();for(const u of this.#i)u(this);this.#i.clear(),ps=this,fi(a),fi(r),ps=null,this.#l?.resolve();var c=et;if(this.#o===0&&(this.#a.length===0||c!==null)&&this.#p(),this.#a.length>0)if(c!==null){const u=c;u.#a.push(...this.#a.filter(f=>!u.#a.includes(f)))}else c=this;c!==null&&c.#w()}#y(e,r,a){e.f^=Jt;for(var s=e.first;s!==null;){var i=s.f,l=(i&(Ve|Ir))!==0,c=l&&(i&Jt)!==0,u=c||(i&_e)!==0||this.#f.has(s);if(!u&&s.fn!==null){l?s.f^=Jt:(i&En)!==0?r.push(s):ra(s)&&((i&tr)!==0&&this.#u.add(s),An(s));var f=s.first;if(f!==null){s=f;continue}}for(;s!==null;){var b=s.next;if(b!==null){s=b;break}s=s.parent}}}#k(){for(var e=this.#s;e!==null;){if(!e.is_fork){for(const[r,[,a]]of this.current)if(e.current.has(r)&&!a)return e}e=e.#s}return null}#b(e){for(const[a,s]of e.current)!this.previous.has(a)&&e.previous.has(a)&&this.previous.set(a,e.previous.get(a)),this.current.set(a,s);for(const[a,s]of e.async_deriveds){const i=this.async_deriveds.get(a);i&&s.promise.then(i.resolve).catch(i.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#c,e.#u);const r=a=>{var s=a.reactions;if(s!==null&&!((a.f&ae)!==0&&(a.f&(Yt|ar))===0))for(const c of s){var i=c.f;if((i&ae)!==0)r(c);else{var l=c;i&(kn|tr)&&!this.async_deriveds.has(l)&&(this.#u.delete(l),Dt(l,Yt),this.schedule(l))}}};for(const a of this.current.keys())r(a);this.oncommit(()=>e.discard()),e.#p(),et=this,this.#w()}#v(e){for(var r=0;r<e.length;r+=1)Gi(e[r],this.#c,this.#u)}capture(e,r,a=!1){e.v!==Qt&&!this.previous.has(e)&&this.previous.set(e,e.v),(e.f&jr)===0&&(this.current.set(e,[r,a]),er?.set(e,r)),this.is_fork||(e.v=r)}activate(){et=this}deactivate(){et=null,er=null}flush(){try{rs=!0,et=this,this.#w()}finally{di=0,_s=null,bn=null,ba=null,rs=!1,et=null,er=null,nn.clear()}}discard(){for(const e of this.#n)e(this);this.#n.clear();for(const e of this.async_deriveds.values())e.reject(qn);this.#p(),this.#l?.resolve()}register_created_effect(e){this.#h.push(e)}#g(){for(let p=es;p!==null;p=p.#e){var e=p.id<this.id,r=[];for(const[w,[v,y]]of this.current){if(p.current.has(w)){var a=p.current.get(w)[0];if(e&&v!==a)p.current.set(w,[v,y]);else continue}r.push(w)}if(e)for(const[w,v]of this.async_deriveds){const y=p.async_deriveds.get(w);y&&v.promise.then(y.resolve).catch(y.reject)}var s=[...p.current.keys()].filter(w=>!p.current.get(w)[1]);if(!(!p.#t||s.length===0)){var i=s.filter(w=>!this.current.has(w));if(i.length===0)e&&p.discard();else if(r.length>0){if(e)for(const w of this.#_)p.unskip_effect(w,v=>{(v.f&(tr|kn))!==0?p.schedule(v):p.#v([v])});p.activate();var l=new Set,c=new Map;for(var u of r)Qi(u,i,l,c);c=new Map;var f=[...p.current].filter(([w,v])=>{const y=this.current.get(w);return y?y[0]!==v[0]||y[1]!==v[1]:!0}).map(([w])=>w);if(f.length>0)for(const w of this.#h)(w.f&(Oe|_e|xa))===0&&Ls(w,f,c)&&((w.f&(kn|tr))!==0?(Dt(w,Yt),p.schedule(w)):p.#c.add(w));if(p.#a.length>0&&!p.#d){p.apply();for(var b of p.#a)p.#y(b,[],[]);p.#a=[]}p.deactivate()}}}}increment(e,r){if(this.#o+=1,e){let a=this.#r.get(r)??0;this.#r.set(r,a+1)}}decrement(e,r){if(this.#o-=1,e){let a=this.#r.get(r)??0;a===1?this.#r.delete(r):this.#r.set(r,a-1)}this.#d||(this.#d=!0,qr(()=>{this.#d=!1,this.linked&&this.flush()}))}transfer_effects(e,r){for(const a of e)this.#c.add(a);for(const a of r)this.#u.add(a);e.clear(),r.clear()}oncommit(e){this.#i.add(e)}ondiscard(e){this.#n.add(e)}settled(){return(this.#l??=Wi()).promise}static ensure(){if(et===null){const e=et=new Vr;!rs&&!Yn&&qr(()=>{e.#t||e.flush()})}return et}apply(){{er=null;return}}schedule(e){if(_s=e,e.b?.is_pending&&(e.f&(En|Na|Di))!==0&&(e.f&Cn)===0){e.b.defer_effect(e);return}for(var r=e;r.parent!==null;){r=r.parent;var a=r.f;if(bn!==null&&r===dt&&(ht===null||(ht.f&ae)===0))return;if((a&(Ir|Ve))!==0){if((a&Jt)===0)return;r.f^=Jt}}this.#a.push(r)}#p(){if(this.linked){var e=this.#s,r=this.#e;e===null?es=r:e.#e=r,r===null?_n=e:r.#s=e,this.linked=!1}}}function Uc(t){var e=Yn;Yn=!0;try{for(var r;;){if(Cc(),et===null)return r;et.flush()}}finally{Yn=e}}function Vc(){try{ic()}catch(t){zr(t,_s)}}let xr=null;function fi(t){var e=t.length;if(e!==0){for(var r=0;r<e;){var a=t[r++];if((a.f&(Oe|_e))===0&&ra(a)&&(xr=new Set,An(a),a.deps===null&&a.first===null&&a.nodes===null&&a.teardown===null&&a.ac===null&&co(a),xr?.size>0)){nn.clear();for(const s of xr){if((s.f&(Oe|_e))!==0)continue;const i=[s];let l=s.parent;for(;l!==null;)xr.has(l)&&(xr.delete(l),i.push(l)),l=l.parent;for(let c=i.length-1;c>=0;c--){const u=i[c];(u.f&(Oe|_e))===0&&An(u)}}xr.clear()}}xr=null}}function Qi(t,e,r,a){if(!r.has(t)&&(r.add(t),t.reactions!==null))for(const s of t.reactions){const i=s.f;(i&ae)!==0?Qi(s,e,r,a):(i&(kn|tr))!==0&&(i&Yt)===0&&Ls(s,e,a)&&(Dt(s,Yt),As(s))}}function Ls(t,e,r){const a=r.get(t);if(a!==void 0)return a;if(t.deps!==null)for(const s of t.deps){if(ka.call(e,s))return!0;if((s.f&ae)!==0&&Ls(s,e,r))return r.set(s,!0),!0}return r.set(t,!1),!1}function As(t){et.schedule(t)}function Ji(t,e){if(!((t.f&Ve)!==0&&(t.f&Jt)!==0)){(t.f&Yt)!==0?e.d.push(t):(t.f&ar)!==0&&e.m.push(t),Dt(t,Jt);for(var r=t.first;r!==null;)Ji(r,e),r=r.next}}function $i(t){Dt(t,Jt);for(var e=t.first;e!==null;)$i(e),e=e.next}let Ta=new Set;const nn=new Map;let to=!1;function ln(t,e){var r={f:0,v:t,reactions:null,equals:ji,rv:0,wv:0};return r}function A(t,e){const r=ln(t);return vo(r),r}function Yc(t,e=!1,r=!0){const a=ln(t);return e||(a.equals=qi),ta&&r&&Zt!==null&&Zt.l!==null&&(Zt.l.s??=[]).push(a),a}function m(t,e,r=!1){ht!==null&&(!rr||(ht.f&xa)!==0)&&Rn()&&(ht.f&(ae|tr|kn|xa))!==0&&(ur===null||!ur.has(t))&&uc();let a=r?zt(e):e;return In(t,a,ba)}function In(t,e,r=null){if(!t.equals(e)){nn.set(t,Lr?e:t.v);var a=Vr.ensure();if(a.capture(t,e),(t.f&ae)!==0){const s=t;(t.f&Yt)!==0&&Is(s),er===null&&Es(s)}t.wv=po(),eo(t,Yt,r),Rn()&&dt!==null&&(dt.f&Jt)!==0&&(dt.f&(Ve|Ir))===0&&(je===null?au([t]):je.push(t)),!a.is_fork&&Ta.size>0&&!to&&Gc()}return e}function Gc(){to=!1;for(const t of Ta){(t.f&Jt)!==0&&Dt(t,ar);let e;try{e=ra(t)}catch{e=!0}e&&An(t)}Ta.clear()}function Gn(t){m(t,t.v+1)}function eo(t,e,r){var a=t.reactions;if(a!==null)for(var s=Rn(),i=a.length,l=0;l<i;l++){var c=a[l],u=c.f;if(!(!s&&c===dt)){var f=(u&Yt)===0;if(f&&Dt(c,e),(u&xa)!==0)Ta.add(c);else if((u&ae)!==0){var b=c;er?.delete(b),(u&on)===0&&(u&Ue&&(dt===null||(dt.f&Ea)===0)&&(c.f|=on),eo(b,ar,r))}else if(f){var p=c;(u&tr)!==0&&xr!==null&&xr.add(p),r!==null?r.push(p):As(p)}}}}function zt(t){if(typeof t!="object"||t===null||rn in t)return t;const e=Pi(t);if(e!==Gl&&e!==Zl)return t;var r=new Map,a=xs(t),s=A(0),i=sn,l=c=>{if(sn===i)return c();var u=ht,f=sn;Ye(null),_i(i);var b=c();return Ye(u),_i(f),b};return a&&r.set("length",A(t.length)),new Proxy(t,{defineProperty(c,u,f){(!("value"in f)||f.configurable===!1||f.enumerable===!1||f.writable===!1)&&lc();var b=r.get(u);return b===void 0?l(()=>{var p=A(f.value);return r.set(u,p),p}):m(b,f.value,!0),!0},deleteProperty(c,u){var f=r.get(u);if(f===void 0){if(u in c){const b=l(()=>A(Qt));r.set(u,b),Gn(s)}}else m(f,Qt),Gn(s);return!0},get(c,u,f){if(u===rn)return t;var b=r.get(u),p=u in c;if(b===void 0&&(!p||yn(c,u)?.writable)&&(b=l(()=>{var v=zt(p?c[u]:Qt),y=A(v);return y}),r.set(u,b)),b!==void 0){var w=n(b);return w===Qt?void 0:w}return Reflect.get(c,u,f)},getOwnPropertyDescriptor(c,u){var f=Reflect.getOwnPropertyDescriptor(c,u);if(f&&"value"in f){var b=r.get(u);b&&(f.value=n(b))}else if(f===void 0){var p=r.get(u),w=p?.v;if(p!==void 0&&w!==Qt)return{enumerable:!0,configurable:!0,value:w,writable:!0}}return f},has(c,u){if(u===rn)return!0;var f=r.get(u),b=f!==void 0&&f.v!==Qt||Reflect.has(c,u);if(f!==void 0||dt!==null&&(!b||yn(c,u)?.writable)){f===void 0&&(f=l(()=>{var w=b?zt(c[u]):Qt,v=A(w);return v}),r.set(u,f));var p=n(f);if(p===Qt)return!1}return b},set(c,u,f,b){var p=r.get(u),w=u in c;if(a&&u==="length")for(var v=f;v<p.v;v+=1){var y=r.get(v+"");y!==void 0?m(y,Qt):v in c&&(y=l(()=>A(Qt)),r.set(v+"",y))}if(p===void 0)(!w||yn(c,u)?.writable)&&(p=l(()=>A(void 0)),m(p,zt(f)),r.set(u,p));else{w=p.v!==Qt;var I=l(()=>zt(f));m(p,I)}var k=Reflect.getOwnPropertyDescriptor(c,u);if(k?.set&&k.set.call(b,f),!w){if(a&&typeof u=="string"){var R=r.get("length"),Y=Number(u);Number.isInteger(Y)&&Y>=R.v&&m(R,Y+1)}Gn(s)}return!0},ownKeys(c){n(s);var u=Reflect.ownKeys(c).filter(p=>{var w=r.get(p);return w===void 0||w.v!==Qt});for(var[f,b]of r)b.v!==Qt&&!(f in c)&&u.push(f);return u},setPrototypeOf(){cc()}})}function vi(t){try{if(t!==null&&typeof t=="object"&&rn in t)return t[rn]}catch{}return t}function Zc(t,e){return Object.is(vi(t),vi(e))}var hi,ro,no,ao;function Kc(){if(hi===void 0){hi=window,ro=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,r=Text.prototype;no=yn(e,"firstChild").get,ao=yn(e,"nextSibling").get,ci(t)&&(t[fs]=void 0,t[Fi]=null,t[vs]=void 0,t.__e=void 0),ci(r)&&(r[hs]=void 0)}}function Sr(t=""){return document.createTextNode(t)}function Ln(t){return no.call(t)}function ea(t){return ao.call(t)}function o(t,e){return Ln(t)}function lt(t,e=!1){{var r=Ln(t);return r instanceof Comment&&r.data===""?ea(r):r}}function d(t,e=1,r=!1){let a=t;for(;e--;)a=ea(a);return a}function Xc(t){t.textContent=""}function so(){return!1}function Qc(t,e,r){return r?document.createElement(t,{is:r}):document.createElement(t)}function Jc(t){dt===null&&(ht===null&&sc(),ac()),Lr&&nc()}function $c(t,e){var r=e.last;r===null?e.last=e.first=t:(r.next=t,t.prev=r,e.last=t)}function Ar(t,e){var r=dt;r!==null&&(r.f&_e)!==0&&(t|=_e);var a={ctx:Zt,deps:null,nodes:null,f:t|Yt|Ue,first:null,fn:e,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};et?.register_created_effect(a);var s=a;if((t&En)!==0)bn!==null?bn.push(a):Vr.ensure().schedule(a);else if(e!==null){try{An(a)}catch(l){throw Ee(a),l}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&(s.f&On)===0&&(s=s.first,(t&tr)!==0&&(t&Sn)!==0&&s!==null&&(s.f|=Sn))}if(s!==null&&(s.parent=r,r!==null&&$c(s,r),ht!==null&&(ht.f&ae)!==0&&(t&Ir)===0)){var i=ht;(i.effects??=[]).push(s)}return a}function Cs(){return ht!==null&&!rr}function Os(t){const e=Ar(Na,null);return Dt(e,Jt),e.teardown=t,e}function ue(t){Jc();var e=dt.f,r=!ht&&(e&Ve)!==0&&Zt!==null&&!Zt.i;if(r){var a=Zt;(a.e??=[]).push(t)}else return io(t)}function io(t){return Ar(En|Jl,t)}function tu(t){Vr.ensure();const e=Ar(Ir|On,t);return(r={})=>new Promise(a=>{r.outro?an(e,()=>{Ee(e),a(void 0)}):(Ee(e),a(void 0))})}function oo(t){return Ar(En,t)}function eu(t){return Ar(kn|On,t)}function Ba(t,e=0){return Ar(Na|e,t)}function E(t,e=[],r=[],a=[]){Wc(a,e,r,s=>{Ar(Na,()=>{t(...s.map(n))})})}function Ma(t,e=0){var r=Ar(tr|e,t);return r}function qe(t){return Ar(Ve|On,t)}function lo(t){var e=t.teardown;if(e!==null){const r=Lr,a=ht;pi(!0),Ye(null);try{e.call(null)}finally{pi(r),Ye
0x5ba199a9…7ba9·#25,619,882·0x5dd51f16…46ee67
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef`ghijklmnopqrstuvwxyz0123456789+/M3 1H4V2H5V3H6V7H3V6H2V3H3Zdata:application/json;base64,{"name":"EthereumRock #","description":"The very first Rock NFT collectible. Created De` cember 25th, 2017. This is the h`@istoric original EtherRock contr``act, now wrapped into an ownerle`ss, immutable and credibly neutr`,"image":"data:image/svg+xml;bas{"trait_type":"Status","value":{"trait_type":"Color","value":"<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 8" shape-` rendering="crispEdges"><g transform="translate(4 4) sca) translate(-4 -4)"><path fill="{"display_type":"number","trait_<rect width="8" height="8" fill="#efeee9"/><path fill="#000" fill-opacity="0.90" d="M3 1H4V2H3ZM3 6H4V7H3Z"/><path fill="#fff" fill-opacity="0.25" d="M4 2H5V3H4Z"/><path fill="#000" fill-opacity="0.50" d="M2 3H3V5H2ZM5 6H6V7H5Z"/><path fill="#000" fill-opacity="0.25" d="M5 4H6V6H5Z"/><path fill="#000" fill-opacity="0.75" d="M2 5H3V6H2ZM4 6H5V7H4Z"/>