0x7f5a0a68…e37csent to0xa7d8d9ef…d270·#12,438,154·view on Etherscan
const hashPairs=[];for(let e=0;e<32;e++)hashPairs.push(tokenData.hash.slice(2+2*e,4+2*e));const decPairs=hashPairs.map(e=>parseInt(e,16));var div,canvas,pad,gap,cycleSeed,bgColor,DEFAULT_SIZE=1024,DIM=Math.min(window.innerWidth,window.innerHeight),M=1,segments=new Array,shapes=new Array,frameOffset=0,coruscating=!1,canCoruscate=!1;let cVal,dTVal,cBVal,dz,solid,cB,dT;function setup(){canvas=createCanvas(DIM,DIM),pixelDensity(2),div=createDiv("").size(200,100),strokeCap(PROJECT),colorMode(HSB,300,100,100),bgColor=color(0,0,0),pad=(DEFAULT_SIZE-DEFAULT_SIZE/16)/6,gap=DEFAULT_SIZE/32,segments=new Array,cVal=decPairs[3]+decPairs[4]+decPairs[5],dTVal=decPairs[6]+decPairs[7]+decPairs[8],cBVal=decPairs[0]+decPairs[2]+decPairs[4]+decPairs[6]+decPairs[8]+decPairs[10],dz=cVal<300,solid=620<cVal,cB=cBVal<350,dT=620<dTVal,(cB||solid)&&strokeCap(ROUND);var e=floor(decPairs[0]/256*4)+1,s=floor(decPairs[1]/256*4)+1,a=round(DIM/e),e=round(DIM/s),s=Math.min(a,e);let r=new Array;noStroke();let t=2*(2+floor(decPairs[0]/256*6)),o=1;r[0]=new Array,r[1]=new Array,r[2]=new Array,r[3]=new Array;for(let e=o;e<t+o;e+=2){var c=validateNode(floor(decPairs[e]/256*7),r[0],7),n=floor(decPairs[e+1]/256*7);r[0].push(new Array(c,n)),nodeExists(n,r[2])||r[2].push(new Array(n,c))}o+=t,t=2*(2+floor(decPairs[o]/256*4)),o++;for(let e=o;e<t+o;e+=2){var l=validateNode(floor(decPairs[e]/256*5),r[3],5),i=floor(decPairs[e+1]/256*5);r[3].push(new Array(l,i)),nodeExists(i,r[1])||r[1].push(new Array(i,l))}let h=new Array;for(let s=0;s<r.length;s++)if(r[s].sort(),1<s&&r[s].reverse(),0==(new Array).length)for(let e=0;e<r[s].length;e++)h.push(mapSideToPos(s,r[s][e]));for(let s=0;s<h.length;s++){var p=h[s];let a=new Array;a.push(p[0]);for(let e=0;e<h.length;e++)if(s!=e){var g=intersection(p,h[e]);if(null!=g&&!compareVec(p[0],g)&&!compareVec(p[1],g)){let s=!0;for(let e=0;e<a.length;e++)if(compareVec(g,a[e])){s=!1;break}s&&a.push(g)}}a.push(p[1]),segments.push(a)}rescale()}function draw(){let h=floor(decPairs[1]/255*4)+1;!cB&&!solid&&dz||(h=1);let p=0;(cB||200<decPairs[22])&&(bgColor=color(0,0,100));var e=h*segments.length;bgColor=color((floor(decPairs[0]/2*4)+e*(decPairs[0]/128+2))%300,70,10),1!=h||solid||(bgColor=color((floor(decPairs[0]/2*4)+e*(decPairs[0]/128+2))%300,20,90)),dz&&(bgColor=color((floor(decPairs[0]/2*4)+e*(decPairs[0]/128+2))%300,70,10)),dT&&dTVal<700?bgColor=color(0,0,0):dT&&dTVal<768&&(bgColor=color(0,0,100)),cB&&(bgColor=color(0,0,100)),background(bgColor);for(let i=0;i<h;i++){cycleSeed=decPairs[i];let l=floor(cycleSeed/256*(cycleSeed/64))+1;solid&&(l=1);var g=floor(cycleSeed/256*(segments.length-1));for(let n=0;n<segments.length;n++){var d=(g+n)%segments.length,f=segments[d],u=(d+l)%segments.length,y=segments[u],x=valFromRange(0,f.length-2,decPairs[d]),m=valFromRange(x+1,f.length-1,(decPairs[d]+decPairs[d])%255),d=valFromRange(0,y.length-2,decPairs[u]),b=valFromRange(d+1,y.length-1,(decPairs[u]+decPairs[u])%255);let s=new Array;for(let e=x;e<=m;e++)s.push(f[e]);let a=new Array;for(let e=d;e<=b;e++)a.push(y[e]);getSharedPoint(s,a);let e=(floor(decPairs[0]/2*4)+p*(decPairs[0]/128+2))%300;30<e&&e;let r=90,t=40+cycleSeed*n;dz?(t%=100,t=max(80,min(100,t)),1==h&&(t=max(90,min(100,t)))):(t%=80,t=max(20,min(85,t)),t);let o=max(.1,min(.8,cycleSeed/400));if(dz?1==h&&(o=max(.4,min(.8,cycleSeed/400))):o=.1+cycleSeed/512+(1-n/segments.length),e,dT?(e=(floor(cycleSeed/2*4)+n*(cycleSeed/128+2))%300,r=0,t=20+cycleSeed*n%100,o=(floor(cycleSeed/256*5)+5)/10):!cB&&solid?(t=90,r=100,e+=cycleSeed/256*i+p,e=max(0,min(300,e)),o=1):cB&&(r=0,t=100,o=1),1==frameCount)shapes.push({baseBright:t,baseHue:e,baseSat:r,baseOpacity:o,bright:t,hue:e,sat:r,opacity:o,sDir:1,bDir:-1,oDir:128<cycleSeed?-1:1,frameToStartCoruscation:frameCount-frameOffset+5*p,coruscationTicker:0,isCoruscating:!1});else if(canCoruscate)if(shapes[p].isCoruscating||frameCount-frameOffset!=shapes[p].frameToStartCoruscation||(shapes[p].hue=shapes[p].baseHue,shapes[p].bright=dT?shapes[p].bright:100,shapes[p].sat=0,shapes[p].isCoruscating=!0,shapes[p].coruscationTicker=0),shapes[p].isCoruscating){if(shapes[p].coruscationTicker++,15<shapes[p].coruscationTicker||cB||dT){shapes[p].bright+=2*shapes[p].bDir,shapes[p].sat+=2*shapes[p].sDir;let e=0;dT&&(shapes[p].hue+=1,shapes[p].hue=shapes[p].hue%360),cB||dT?(shapes[p].bright<70&&(shapes[p].bright=70,shapes[p].bDir=1),shapes[p].bright>=shapes[p].baseBright&&(shapes[p].bright=shapes[p].baseBright,e++),90<shapes[p].sat&&(shapes[p].sat=90,shapes[p].sDir=-1),shapes[p].sat<=shapes[p].baseSat&&(shapes[p].sat=shapes[p].baseSat,e++),2==e&&(shapes[p].bright=shapes[p].baseBright,shapes[p].sat=shapes[p].baseSat,shapes[p].frameToStartCoruscation=-1,shapes[p].isCoruscating=!1,p+1==shapes.length&&(coruscating=!1))):(shapes[p].bright<shapes[p].baseBright&&(e++,shapes[p].bright=shapes[p].baseBright),shapes[p].sat>shapes[p].baseSat&&(e++,shapes[p].sat=shapes[p].baseSat),2==e&&(shapes[p].frameToStartCoruscation=-1,shapes[p].isCoruscating=!1,p+1==shapes.length&&(coruscating=!1)))}}else shapes[p].bright=shapes[p].baseBright,shapes[p].sat=shapes[p].baseSat;e=shapes[p].hue,r=shapes[p].sat,t=shapes[p].bright,o=shapes[p].opacity,fill(e,r,t,o);decPairs[0],decPairs[1],decPairs[2];let c=new Array;cB||solid,cB||solid?128<decPairs[30]&&(cB||solid)?(beginShape(),vertex(f[0].x,f[0].y),vertex(y[0].x,y[0].y),vertex(y[1].x,y[1].y),vertex(f[1].x,f[1].y),endShape(),c.push(createVector(f[0].x,f[0].y)),c.push(createVector(y[0].x,y[0].y)),c.push(createVector(y[1].x,y[1].y)),c.push(createVector(f[1].x,f[1].y))):(beginShape(),vertex(f[0].x,f[0].y),vertex(f[f.length-1].x,f[f.length-1].y),vertex(y[y.length-1].x,y[y.length-1].y),vertex(y[0].x,y[0].y),endShape(),c.push(createVector(f[0].x,f[0].y)),c.push(createVector(f[f.length-1].x,f[f.length-1].y)),c.push(createVector(y[y.length-1].x,y[y.length-1].y)),c.push(createVector(y[0].x,y[0].y))):cB||solid?(beginShape(),vertex(f[0].x,f[0].y),vertex(y[0].x,y[0].y),vertex(y[1].x,y[1].y),vertex(f[1].x,f[1].y),endShape(),c.push(createVector(f[0].x,f[0].y)),c.push(createVector(y[0].x,y[0].y)),c.push(createVector(y[1].x,y[1].y)),c.push(createVector(f[1].x,f[1].y))):(beginShape(),vertex(s[0].x,s[0].y),vertex(s[s.length-1].x,s[s.length-1].y),vertex(a[a.length-1].x,a[a.length-1].y),vertex(a[0].x,a[0].y),endShape(),c.push(createVector(s[0].x,s[0].y)),c.push(createVector(s[s.length-1].x,s[s.length-1].y)),c.push(createVector(a[a.length-1].x,a[a.length-1].y)),c.push(createVector(a[0].x,a[0].y)));d=round(M*(10*floor(decPairs[6]/256*2)+4));if(strokeWeight(d),stroke(bgColor),cB&&(strokeWeight(round(14*M)),stroke(0,0,0)),cB||solid)for(let s=0;s<c.length;s++){var P=c[s];let e;e=s+1==c.length?c[0]:c[s+1],line(P.x,P.y,e.x,e.y)}else line(f[0].x,f[0].y,f[f.length-1].x,f[f.length-1].y),line(y[0].x,y[0].y,y[y.length-1].x,y[y.length-1].y);noStroke(),p++}}}function getSharedPoint(a,r){for(let s=0;s<a.length;s++)for(let e=0;e<r.length;e++)if(compareVec(a[s],r[e]))return a[s];return null}function mapSideToPos(e,s){let a=createVector(),r=createVector();switch(e){case 0:a.set(fM(M,gap)+fM(s[0],pad),fM(M,gap)),r.set(fM(M,gap)+fM(s[1],pad),fM(M,gap)+fM(6,pad));break;case 1:a.set(fM(M,gap)+fM(6,pad),fM(M,gap)+fM(s[0]+1,pad)),r.set(fM(M,gap),fM(M,gap)+fM(s[1]+1,pad));break;case 2:a.set(fM(M,gap)+fM(s[0],pad),fM(M,gap)+fM(6,pad)),r.set(fM(M,gap)+fM(s[1],pad),fM(M,gap));break;case 3:a.set(fM(M,gap),fM(M,gap)+fM(s[0]+1,pad)),r.set(fM(M,gap)+fM(6,pad),fM(M,gap)+fM(s[1]+1,pad))}return a.set(floor(a.x),floor(a.y)),r.set(floor(r.x),floor(r.y)),new Array(a,r)}function fM(e,s){return floor(e*s)}function nodeExists(s,a){for(let e=0;e<a.length;e++)if(a[e][0]==s)return!0;return!1}function validateNode(e,s,a){for(var r=e;;){let e=!1;for(var t=0;t<s.length;t++)if(r==s[t][0]){e=!0;break}if(!e)return r;r=(r+1)%a}}function valFromRange(e,s,a){return floor(a/255*(s-e))+e}function compareVec(e,s){return e.x==s.x&&e.y==s.y}function rescale(){M=DIM/DEFAULT_SIZE;for(let s=0;s<segments.length;s++)for(let e=0;e<segments[s].length;e++)segments[s][e].x*=M,segments[s][e].y*=M,segments[s][e].x=floor(segments[s][e].x),segments[s][e].y=floor(segments[s][e].y)}function intersection(e,s){var a=(s[1].y-s[0].y)*(e[1].x-e[0].x)-(s[1].x-s[0].x)*(e[1].y-e[0].y),r=(s[1].x-s[0].x)*(e[0].y-s[0].y)-(s[1].y-s[0].y)*(e[0].x-s[0].x),s=(s[1].x-e[0].x)*(e[0].y-s[0].y)-(s[1].y-e[0].y)*(e[0].x-s[0].x);if(0==a)return null;r/=a,a=s/a;if(0<=r&&r<=1&&0<=a&&a<=1){a=createVector();return a.x=e[0].x+r*(e[1].x-e[0].x),a.y=e[0].y+r*(e[1].y-e[0].y),a}return null}function countInRange(e,s,a){return((e-s)%(a-s)+(a-s))%(a-s)+s}function coruscate(){if(canCoruscate=!0,!coruscating){coruscating=!0,frameOffset=frameCount;for(let e=0;e<shapes.length;e++)shapes[e].sDir=1,shapes[e].bDir=-1,shapes[e].frameToStartCoruscation=frameCount-frameOffset+5*e+5}}function keyPressed(){coruscate()}function mouseClicked(){coruscate()}