0x51582e2c…1802sent to0x499f4943…3001·#15,151,791·view on Etherscan
```
// ----------------------- CODE STARTS HERE -------------------------- //
let TX;
let TXN;
let EID;
let DIM;
let WIDTH;
let HEIGHT;
let decPairs;
let perlinSeed;
let metadataObj = {};
getHashData = (transactionID) => {
let transactions = [TX];
let transactionForTokenId = transactionID - 1;
let tokenData = { hash: transactions[transactionForTokenId] };
decPairs = [];
for (let i = 0; i < 32; i++) {
decPairs.push(parseInt(tokenData.hash.substr(2 * i + 2, 2), 16));
}
console.log("decPairs :", decPairs);
}
printMetadata = () => {
metadataObj.traitName1 = "Change traitName and put your value here";
metadataObj.traitName2 = "Change traitName and put your value here";
metadataObj.traitName3 = "Change traitName and put your value here";
metadataObj.transactionHash = TX;
console.log("metadata: ", metadataObj);
}
//----------------- ARTIST STARTS CUSTOM FUNCTIONS HERE -----------------//
let HW = Math.min(window.innerWidth, window.innerHeight);
let tShader;
let SCALE;
let wHW;
let sGreen;
let vShader, fShader;
//------------------ ARTIST ENDS CUSTOM FUNCTIONS HERE ------------------//
p.myCustomRedrawAccordingToNewPropsHandler = (props) => {
if (props.transactionHash && props.square) {
TX = props.transactionHash;
TXN = props.tokenId;
EID = props.editionId;
WIDTH = window.innerWidth / props.square * 0.8;
HEIGHT = window.innerHeight / props.square * 0.8;
DIM = Math.min(WIDTH, HEIGHT);
getHashData(1);
// SEEDING
p.randomSeed(+props.transactionHash.substr(0, 10));
perlinSeed = p.random(0, 255);
p.noiseSeed(perlinSeed);
console.log("randomSeed: ", +props.transactionHash.substr(0, 10));
console.log("noiseSeed: ", perlinSeed);
console.log("transaction: ", TX);
//--------------------- ARTIST STARTS SETUP HERE -----------------------//
vShader = `
attribute vec3 aPosition;
attribute vec2 aTexCoord;
varying vec2 vTexCoord;
uniform float u_frame2;
void main() {
vTexCoord = aTexCoord;
vec4 positionVec4 = vec4(aPosition, 1.0);
positionVec4.xy = positionVec4.xy * ${p.random() * 10 + 2} -1.;
gl_Position = positionVec4;
}
`;
fShader = `
precision mediump float;
varying vec2 vTexCoord;
uniform float u_frame;
uniform vec2 u_resolution;
void main() {
vec2 coord = gl_FragCoord.xy/u_resolution.xy;
coord ${p.random() > 0.5 ? "*" : "/"}= coord / ${p.random() * 10.0} -1.*${p.random() > 0.5 ? "sin" : "cos"}(u_frame*0.1);
coord ${p.random() > 0.5 ? "*" : "+"}= vec2(${p.random() > 0.5 ? "sin" : "cos"}(u_frame)*10.1, -1. + ${p.random() > 0.5 ? "sin" : "cos"}(u_frame));
float dd = distance(coord, vec2(cos(coord.y), ${p.random() > 0.5 ? "sin" : "cos"}(coord.x)));
float dd2 = distance(coord, vec2(cos(dd), ${p.random() > 0.5 ? "sin" : "cos"}(dd)));
float dd3 = distance(coord, vec2(u_frame, ${p.random() > 0.5 ? "sin" : "cos"}(u_frame)));
coord ${p.random() > 0.5 ? "*" : "+"}= vec2(${p.random() > 0.5 ? "sin" : "cos"}(u_frame)) / dd3;
float dd4 = distance(coord, vec2(1, ${p.random() > 0.5 ? "sin" : "cos"}(u_frame)));
float dd5 = smoothstep(u_frame, fract(dd3*dd2), ${p.random() > 0.5 ? "sin" : "cos"}(dd4));
dd ${p.random() > 0.5 ? "*" : "+"}= dd2 * dd3 / dd4*dd5;
float ddf = mix(${p.random()}, ${p.random()}, dd5);
vec3 df = vec3(${p.random() > 0.5 ? "sin" : "cos"}(fract(dd5)), ${p.random() > 0.5 ? "sin" : "cos"}(fract(${p.random() > 0.5 ? "dd2" : "dd3"})), ${p.random() > 0.5 ? "sin" : "cos"}(fract(dd3*0.1)));
ddf ${p.random() > 0.5 ? "*" : "+"}= mix(${p.random()}, ${p.random() > 0.5 ? "sin" : "cos"}(u_frame), df.x);
coord ${p.random() > 0.5 ? "*" : "+"}= vec2(${p.random() > 0.5 ? "df.y" : "df.z"}, df.z);
coord ${p.random() > 0.5 ? "*" : "+"}= smoothstep(u_frame, df.x, ${p.random() > 0.5 ? "sin" : "cos"}(u_frame));
df ${p.random() > 0.5 ? "*" : "+"}= mix(sin(u_frame)*${p.random()}, ${p.random()}, ${p.random() > 0.5 ? "sin" : "cos"}(u_frame));
dd5 ${p.random() > 0.5 ? "*" : "+"}= dot(${p.random() > 0.5 ? "dd" : "dd2"}, ${p.random() > 0.5 ? "sin" : "cos"}(u_frame));
coord ${p.random() > 0.5 ? "*" : "+"}= mix(${p.random() > 0.5 ? "dd2" : "dd5"}, ${p.random() > 0.5 ? "sin" : "cos"}(u_frame), dd5);
gl_FragColor = vec4(${p.random() > 0.5 ? "df.b" : "df.r"},fract(${p.random() > 0.5 ? "coord.x" : "coord.y"}/${p.random() > 0.5 ? "dd5" : "dd4"}),${p.random() > 0.5 ? "sin" : "cos"}(${p.random() > 0.5 ? "df.b" : "df.g"}*${p.random() > 0.5 ? "u_frame" : p.random()}),1./${p.random()});
}
`;
p.createCanvas(HW, HW, p.WEBGL);
const gl = p.canvas.getContext('webgl')
gl.disable(gl.DEPTH_TEST)
p.frameRate(30);
SCALE = HW / 400;
wHW = 400
sGreen = (p.random()*1000)+500
tShader = p.createShader(vShader, fShader);
p.pixelDensity(1)
p.background(sGreen)
//----------------------------------------------------------------------//
printMetadata();
}
p.redraw();
};
p.draw = () => {
//-------------------- ARTIST STARTS DRAWING HERE ----------------------//
//if (frameCount == 75) noLoop();
p.push();
p.translate(-HW / 2, -HW / 2);
p.scale(SCALE);
p.pop();
tShader.setUniform('u_resolution', [HW, HW]);
tShader.setUniform('u_frame', (sGreen+p.frameCount)*0.005);
p.shader(tShader);
p.square(0, 0, wHW);
p.resetShadep.random();
//----------------------------------------------------------------------//
}
// ------------------------- CODE ENDS HERE --------------------------- //
```