0xe0753cfc…0eb4sent to0xa7d8d9ef…d270·#13,811,163·view on Etherscan
class e{constructor(e){this.ptz=e}gTS(e,t,c,a=!0){let r=this.gI(t,c,a=a),n=r.arcs,o=r.connects;e.moveTo(n[0].start[0],n[0].start[1]);for(let t=0;t<n.length;t++){let c=n[t],a=o[t],r=Math.atan2(c.start[1]-c.cy,c.start[0]-c.cx),i=Math.atan2(c.end[1]-c.cy,c.end[0]-c.cx);r!=i&&e.absarc(c.cx,c.cy,c.r,r,i,!c.sweep),e.lineTo(a[2],a[3])}}gI(e,t,c=!0){let a,r=[],n=[];t?a=[t[0],t[1]]:(a=[0,0],this.ptz.forEach((e=>{a[0]+=e.cx,a[1]+=e.cy})),a=[a[0]/this.ptz.length,a[1]/this.ptz.length]),c&&this.ptz.sort(((e,t)=>{let c=Math.atan2(e.cy-a[1],e.cx-a[0])-Math.atan2(t.cy-a[1],t.cx-a[0]),r=-(this.dt(e.cx,e.cy,a[0],a[1])-this.dt(t.cx,t.cy,a[0],a[1]));return 0===c?r:c}));for(let e=0;e<this.ptz.length&&this.ptz.length>1;e+=1){let t=this.ptz[e-1<0?this.ptz.length-1:e-1],c=this.ptz[e];c.sortedOrder=e;let a=this.ptz[(e+1)%this.ptz.length],r=t.cx-c.cx,n=t.cy-c.cy,i=a.cx-c.cx,l=a.cy-c.cy;var o=Math.atan2(r*l-n*i,r*i+n*l);c.isCnc=o<0&&Math.abs(o)<=Math.PI||Math.abs(o)===Math.PI}for(let t=0;t<this.ptz.length&&this.ptz.length>1;t+=1){let c=this.ptz[t],a=this.ptz[(t+1)%this.ptz.length],r=this.gTs(c.cx,c.cy,c.r,a.cx,a.cy,a.r);e?c.isCnc&&a.isCnc?n.push(r[1]):c.isCnc&&!a.isCnc?n.push(r[3]):!c.isCnc&&a.isCnc?n.push(r[2]):n.push(r[0]):n.push(r[1])}for(let t=0;t<this.ptz.length&&this.ptz.length>1;t+=1){let c=t-1<0?this.ptz.length-1:t-1,a=(this.ptz.length,this.ptz[c],this.ptz[t]),o=n[t],i=n[c],l=[i[2],i[3]],s=[o[0],o[1]];if(e){let e,t=[i[0],i[1]],c=[o[2],o[3]],n=l[0]-t[0],d=l[1]-t[1],h=s[0]-c[0],f=s[1]-c[1],x=Math.atan2(n*f-d*h,n*h+d*f);e=Math.abs(x)<Math.PI/2&&(x<0&&!a.isCnc||x>0&&a.isCnc)?1:0,r.push({start:l,cx:a.cx,cy:a.cy,r:a.r,largeArc:e,sweep:a.isCnc?1:0,end:s,display:Math.abs(x)<Math.PI/1.2})}else r.push({start:l,cx:a.cx,cy:a.cy,r:a.r,largeArc:a.isCnc?0:1,sweep:1,end:s,display:!0})}return{arcs:r,connects:n}}dt(e,t,c,a){return Math.sqrt((c-e)*(c-e)+(a-t)*(a-t))}gTs(e,t,c,a,r,n){let o=(e-a)*(e-a)+(t-r)*(t-r);if(o<=(c-n)*(c-n))return[];let i=Math.sqrt(o),l=(a-e)/i,s=(r-t)/i,d=Array(4).fill(0).map((e=>Array(4).fill(0))),h=0;for(let o=1;o>=-1;o-=2){let f=(c-o*n)/i;if(f*f>1)continue;let x=Math.sqrt(Math.max(0,1-f*f));for(let i=1;i>=-1;i-=2){let v=l*f-i*x*s,p=s*f+i*x*l,y=d[h++];y[0]=e+c*v,y[1]=t+c*p,y[2]=a+o*n*v,y[3]=r+o*n*p}}return d.slice(0,h)}}let t="#f1f1f1",c=function(e){let t=[];for(let c=0;c<32;c++)t.push(e.hash.slice(2+2*c,4+2*c));return t.map((e=>parseInt(e,16)))}(tokenData),a=(r=tokenData,parseInt(r.hash.slice(0,16),16));var r;let n=_(c[1],[1,1,1,3,5,6,20,20]),o=20===n,i=c[8]>200,l=!o&&c[9]>180,s=_(c[7],o?[["#47485f","#be3441","#f0bc67","#5a89c5","#e28d64","#d6c5d1"],["#000","#914e72","#0078bf","#00a95c","#3255a4","#f15060","#3d5588","#765ba7","#00838a","#bb8b41","#407060","#ff665e","#925f52","#ffe800","#d2515e","#ff6c2f","#ff48b0","#88898a","#ac936e","#e45d50","#ff7477","#62a8e5","#4982cf","#0074a2","#235ba8","#484d7a","#435060","#d5e4c0","#a5aaa8","#70747c","#5f8289","#375e77","#5e695e","#00aa93","#19975d","#397e58","#516e5a","#4a635d","#68724d","#62c2b1","#67b346","#009da5","#169b62","#237e74","#2f6165","#9d7ad2","#aa60bf","#845991","#775d7a","#6c5d80","#f65058","#d2515e","#d1517a","#9e4c6e","#d1517a","#a75154","#e3ed55","#ffb511","#ffae3b","#f6a04d","#ee7f4b","#ff6f4c","#b49f29","#ba8032","#bd6439","#8e595a","#f2cdcf","#f984ca","#e6b5c9","#bd8ca6","#914e72","#928d88","#ffffff","#5ec8e5","#82d8d5","#ffe900","#ff4c65","#44d62c"],["#556b59","#7d9d89","#b1cbbf","#dfcbcf","#bc9ba1","#976e72","#424e77","#7e86b0","#c2cae1"],["#000","#222","#333"]]:[0,1,2]),d={background:o?c[10]>126?A(s):t:2===s&&1==n?j(!1):t,zm:1==n?.66:o?_(c[5],[8,5,3]):6==n?1.3:1,factor:o?1:_(c[2],0==s?i||l?[60,45]:[20,30]:[60,100]),sD:20,coloring:_(c[5],["row","col","field"]),gridDim:n,wraps:o,wild:i,blinds:l,divider:c[3]<200||o?2:n>1?100:2,tilt:c[11]>215,pal:s};console.log(d);let h=()=>Math.min(window.innerWidth,window.innerHeight),f={w:h(),h:h()},x=(()=>{let e=document.createElement("canvas");return e.height=f.h,e.width=f.w,document.body.appendChild(e),e})(),v=new THREE.Scene,p=(e,t)=>new THREE.ShaderMaterial({side:THREE.DoubleSide,uniforms:{power:{value:1.5},color:{value:new THREE.Color(e)},background:{value:new THREE.Color(t)}},vertexShader:"varying vec2 vUv;void main () {vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4(position.xyz, 1.0);}",fragmentShader:"varying vec2 vUv;uniform vec3 color;uniform vec3 background;uniform float power;\n// License : Copyright (C) 2011 Ashima Arts. All rights reserved. Distributed under the MIT License. https://github.com/ashima/webgl-noise\nvec3 mod289(vec3 x){return x - floor(x * (1.0 / 289.0)) * 289.0;}\nvec4 mod289(vec4 x){return x - floor(x * (1.0 / 289.0)) * 289.0;}\nvec4 permute(vec4 x){return mod289(((x*34.0)+1.0)*x);}\nvec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}\nfloat snoise(vec3 v) {const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);vec3 i = floor(v + dot(v, C.yyy));vec3 x0 = v - i + dot(i, C.xxx);\nvec3 g = step(x0.yzx, x0.xyz);vec3 l = 1.0 - g;vec3 i1 = min( g.xyz, l.zxy );vec3 i2 = max( g.xyz, l.zxy );vec3 x1 = x0 - i1 + C.xxx;vec3 x2 = x0 - i2 + C.yyy;vec3 x3 = x0 - D.yyy;i = mod289(i);\nvec4 p = permute(permute(permute(i.z + vec4(0.0, i1.z, i2.z, 1.0 ))+ i.y + vec4(0.0, i1.y, i2.y, 1.0 ))+ i.x + vec4(0.0, i1.x, i2.x, 1.0 ));float n_ = 0.142857142857;vec3 ns = n_ * D.wyz - D.xzx;vec4 j = p - 49.0 * floor(p * ns.z * ns.z); vec4 x_ = floor(j * ns.z);vec4 y_ = floor(j - 7.0 * x_);vec4 x = x_ *ns.x + ns.yyyy;vec4 y = y_ *ns.x + ns.yyyy;vec4 h = 1.0 - abs(x) - abs(y);\nvec4 b0 = vec4(x.xy, y.xy);vec4 b1 = vec4(x.zw, y.zw);vec4 s0 = floor(b0)*2.0 + 1.0;vec4 s1 = floor(b1)*2.0 + 1.0;vec4 sh = -step(h, vec4(0.0));\nvec4 a0 = b0.xzyw + s0.xzyw*sh.xxyy;vec4 a1 = b1.xzyw + s1.xzyw*sh.zzww;vec3 p0 = vec3(a0.xy,h.x);vec3 p1 = vec3(a0.zw,h.y);vec3 p2 = vec3(a1.xy,h.z);vec3 p3 = vec3(a1.zw,h.w);\nvec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));p0 *= norm.x;p1 *= norm.y;p2 *= norm.z;p3 *= norm.w;vec4 m = max(0.6 - vec4(dot(x0,x0), dot(x1,x1), dot(x2,x2), dot(x3,x3)), 0.0);m = m * m;return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1),dot(p2,x2), dot(p3,x3)));}\nvoid main () {float d = pow(abs(vUv.y), power);gl_FragColor = vec4(mix(background, color, d-(snoise(gl_FragCoord.xyz/(d*d)) * d/2.)), 1.);}"}),y=()=>{let e,t;for(e=j(!1),t=j(!1);e==t;)t=j(!1);return p(e,t)},u=e=>{let t,c;for(t=A(e),c=A(e);t==c;)c=A(e);return p(t,c)},b=(e,t)=>{let c=q([e,t]);return p(c[0],c[1])},g=d.gridDim,z=null;1===d.pal?z=j(!0):2===d.pal&&(z="#000");for(let c=0;c<g;c++)for(let a=0;a<g;a++){let r=[],n=.5,i=.2,l=i/2/d.divider;for(let e=-n;e<n;e+=i)for(let t=-n;t<n;t+=i)r.push({cx:e,cy:t,r:l});if(o&&H()<.45||!o){let n=new e((M=r,C=k(o?16:18,25),q(M).slice(0,C))),i=new THREE.Shape;n.gTS(i,d.wraps,!1);let l=.5/d.factor;var m=new THREE.ExtrudeGeometry(i,{curveSegments:40,depth:l,bevelEnabled:!1});let s=d.sD*d.factor,h=1===d.gridDim?0:o?(10===d.zm?4:2)+k(1,10):2,f=null;0===d.pal?f=null:1===d.pal?f=j(!0):2===d.pal&&(f="#000");let x=null;for(let e=0;e<s;e++){let r=null;if("field"===d.coloring)r=b(z,t);else if("col"===d.coloring)r=b(f,t);else for(r=0===d.pal?y():b(f,t);e<5&&r==x&&0===d.pal;)r=0===d.pal?y():b(f,t);x=r;var w=new THREE.Mesh(m,[o&&0==e?p("#2b2b2b","#f5f5f5"):null,o?u(d.pal):0===d.pal?y():r]);w.rotation.x=Math.PI/2,d.tilt&&3!==d.gridDim&&(w.rotation.z=Math.PI/4,100!=d.divider?(w.scale.x=.95,w.scale.y=.95):(w.scale.x=1.0666,w.scale.y=1.0666)),w.position.y=h-e*l,w.position.x=1.2*c,w.position.z=1.2*a,d.wild&&w.scale.multiplyScalar((s-e*e)/s),d.blinds&&e>=(d.factor>50?20:10)&&(w.scale.z=.5),v.add(w)}}}var M,C;let E=d.zm;const T=f.w/f.h,D=new THREE.OrthographicCamera(-E*T,E*T,E,-E,-100,100);var I,R;R=E,(I=D).position.set(R,R,R),I.lookAt(0,0,0),v.add(D);let S=new THREE.WebGLRenderer({canvas:x,antialias:!0});function H(){return a^=a<<13,a^=a>>17,a^=a<<5,(a<0?1+~a:a)%1e3/1e3}function _(e,t){return t[Math.max(0,Math.floor(e/255*t.length-1e-6))]}function P(e,t){return H()*(t-e)+e}function k(e,t){return Math.floor(P(e,t))}function A(e){return e[k(0,e.length)]}function q(e){for(var t,c,a=e.length,r=e.slice();a;)t=Math.floor(H()*a--),c=r[a],r[a]=r[t],r[t]=c;return r}function j(e){const c=["#292628","#2966a4","#edd035","#e8502f","#9a4e55","#3b9764","#68a5b9","#bb98c4","#86d052","#aa9f52"],a=P(0,100);return a>=0&&a<49.5?e?j(e):H()>.33?c[0]:t:a>=49.5&&a<61.3?c[1]:a>=61.3&&a<69.2?c[2]:a>=69.2&&a<77.1?c[3]:a>=77.1&&a<83.9?c[4]:a>=83.9&&a<90.2?c[5]:a>=90.2&&a<94.4?c[6]:a>=94.4&&a<97.6?c[7]:a>=97.6&&a<99.2?c[8]:a>=99.2?c[9]:void 0}S.setPixelRatio(Math.min(window.devicePixelRatio,2)),S.setSize(f.w,f.h),S.setClearColor(d.background),S.render(v,D);