Transaction bab9be825dbb2114521389ae0acf91c47d21e144e32b0ce509e3afb24b9e4f5b

1 Input
  • a38d4ee1965f510593bd569d1a1ee32c184deee4d00cf094f187f1c380d3d044:0
    OP_DATA_32(32) 4849894405be7568956713aa378960ba14f262cdfccc99dcce049d2a97a0d22a
    OP_CHECKSIG(172)
    OP_0(0)
    OP_IF(99)
    OP_DATA_3(3) ord
    OP_DATA_1(1) 
    OP_DATA_23(23) text/html;charset=utf-8
    OP_0(0)
    OP_PUSHDATA2(77) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Desaturated Abstraction by SMLDMS</title> <script id="snippet-random-code" type="text/javascript"> // DO NOT EDIT THIS SECTION let seed = window.location.href.split('/').find(t => t.includes('i0')); if (seed == null) { const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz"; seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => a
    OP_PUSHDATA2(77) lphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0"; } else { let pattern = "seed="; for (let i = 0; i < seed.length - pattern.length; ++i) { if (seed.substring(i, i + pattern.length) == pattern) { seed = seed.substring(i + pattern.length); break; } } } function cyrb128($) { let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
    OP_PUSHDATA2(77) for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179); return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0] } function sfc32($, _, u, i) {
    OP_PUSHDATA2(77) return function () { u >>>= 0, i >>>= 0; var l = ($ >>>= 0) + (_ >>>= 0) | 0; return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296 } } let mathRand = sfc32(...cyrb128(seed)); </script> <style> html, body { position: fixed; top: 0; right: 0; bottom: 0;
    OP_PUSHDATA2(77) left: 0; color: rgb(255, 255, 255); background-color: rgb(255, 255, 255); display: flex; justify-content: center; align-items: center; margin: 0; padding: 0; font-size: 0.8em; } canvas { object-fit: contain; max-height: 100%; max-width: 100%; } #fullScreen { display: flex; position: fixed; top:
    OP_PUSHDATA2(77) 0; right: 0; bottom: 0; left: 0; justify-content: center; align-items: center; } #fullScreen canvas { object-fit: contain; max-height: 100%; max-width: 100%; } </style> </head> <body> <canvas id="cnv"> <div id="fullScreen"> </div> </canvas> <script defer src="https://static.cloudflareinsights.com/beacon.min.js/v2b4487d741ca48dcbadcaf954e159fc616
    OP_PUSHDATA2(77) 80799950996" integrity="sha512-D/jdE0CypeVxFadTejKGTzmwyV10c1pxZk/AqjJuZbaJwGMyNHY3q/mTPWqMUnFACfCTunhZUVcd4cV78dK1pQ==" data-cf-beacon='{"rayId":"7b638b9d4878a222","version":"2023.3.0","b":1,"token":"6c07c178c94442f695e7a0a2aaee641a","si":100}' crossorigin="anonymous"></script> </body> <script type="text/javascript"> window.devicePixelRatio = 2; const canvas = document.getElementById('cnv'); const ctx = cnv.getContext('2d'); let mode = { n: mathRand(), name: "",
    OP_PUSHDATA2(77) val: 0, } if (mode.n < 0.33) { mode.val = 1.618; mode.name = 'SLOW' } else if (mode.n < 0.66) { mode.val = 3.14; mode.name = 'NORMAL' } else { mode.val = 4.758; mode.name = 'FAST' } let postRect = { n: mathRand(), name: "", val: 0, } if (postRect.n < 0.25) { postRect.val = true; postRect.name = 'On' } else { postRect.val = false; postR
    OP_PUSHDATA2(77) ect.name = 'Off' } let bgc = { n: mathRand(), name: "", val: 0, } if (bgc.n < 0.5) { bgc.val = 95; bgc.name = 'LIGHT' } else { bgc.val = 5; bgc.name = 'DARK' } let lum = { n: mathRand(), name: "", val: 0, } if (lum.n < 0.5) { lum.val = 95; lum.name = 'LIGHT' } else { lum.val = 5; lum.name = 'DARK' } let shad =
    OP_PUSHDATA2(77) { n: mathRand(), name: "", val: 0, } if (shad.n < 0.5) { shad.val = -mathRand() * 10; shad.name = 'UP' } else { shad.val = mathRand() * 10; shad.name = 'DOWN' } window.$generativeTraits = { "Mode": mode.name, "Add Rectangles": postRect.name, "Bg": bgc.name, "Frame": lum.name, } ////////////////////// let myTitle = "Desaturated Abstraction" console.log(myTitle + "
    OP_PUSHDATA2(77) | smldms 2023.03") console.log(window.$generativeTraits) let startClr = 180 + mathRand() * 360; let ngone = Math.floor(mathRand() * 8 + 2); let inRadius = mathRandBetween(1.1618, 0.314); let nRect = Math.floor(mathRandBetween(10, 25)) let globalSize = 1920; let count = 0; cnv.width = globalSize; cnv.height = globalSize * 1.4142; bg(); frame(mathRandBetween(cnv.width * 0.1618, cnv.width * 0.314)); class Root { constructor(x, y, o) {
    OP_PUSHDATA2(77) this.x = x; this.y = y; this.speedX = mathRand() * 4 - 2; this.speedY = mathRand() * 2 + o; this.maxSize = mathRand() * cnv.height / 5 + cnv.width / 18 this.size = mathRand() * cnv.height / 10 + cnv.height / 50; // this.size = mathRand() * cnv.height / 25 + cnv.height / 10; this.angle = mathRand() * 0.618; this.velo = mathRand() * 0.25 + 0.125; this.veloAngle = mathRand() * 0.0314 - 0.01618;
    OP_PUSHDATA2(77) } update() { ctx.save() this.x += this.speedX + Math.sin(this.angle); this.y += this.speedY + Math.sin(this.angle); this.size -= this.velo; this.angle += this.veloAngle; if (this.size < this.maxSize && this.size > cnv.height / 250) { if (mathRand() < 0.25) { ctx.shadowColor = 'hsl(' + startClr + ',' + mapRange(this.size, 0, this.maxSize, 50, 5) + '%,10%)'; ctx.shadowOff
    OP_PUSHDATA2(77) setY = shad.val; ctx.shadowBlur = mapRange(this.size, 0, this.maxSize, 100, 10); } else { ctx.shadowColor = 'hsl(' + startClr + ',50%,50%)'; ctx.shadowOffsetY = 0; ctx.shadowBlur = 5; } ctx.shadowColor = "black"; ctx.shadowOffsetY = shad.val; ctx.shadowBlur = 10; ctx.strokeStyle = 'hsl(' + mapRange(this.size, this
    OP_PUSHDATA2(77) .maxSize, startClr, startClr + 18, 0) + ',0%,100%)'; ctx.fillStyle = 'hsl(' + mapRange(this.size, this.maxSize, startClr, startClr + 18, 0) + ',0%,100%)'; ctx.save() ctx.translate(this.x, this.y) ctx.rotate(this.angle * 0.5) abstract(0, 0, this.size, inRadius, ngone) ctx.restore() requestAnimationFrame(this.update.bind(this)); } else { console.log(sprout
    OP_PUSHDATA2(77) ) count++; if (count == sprout * 2) { if (postRect.val == true) { // ctx.fillStyle = 'hsl(' + startClr + ',100%,50%'; ctx.globalCompositeOperation = 'overlay'; ctx.save() for (let i = 0; i < nRect; i++) { ctx.rect(mathRand() * cnv.width, mathRand() * cnv.height, mathRand() * cnv.width / 50, mathRand() * cnv.height)
    OP_PUSHDATA2(77) ctx.fill(); ctx.strokeStyle = "rgba(1, 1, 1, 0)"; } } ctx.restore() addGrain(cnv, globalSize / 25) } } } } let sprout = Math.floor(mathRandBetween(10, 23)) let marge = mathRandBetween(0.1618, 0.314) for (let i = 0; i < sprout; i++) { const root = new Root(mathRandBetween(cnv.width * marge, cnv.width * (1 - marge)), mathRa
    OP_PUSHDATA2(77) ndBetween(cnv.height * (0.1 + marge * 0.618), cnv.height * (0.9 - marge * 0.618)), mode.val); root.update(); }; for (let i = 0; i < sprout; i++) { const root = new Root(mathRandBetween(cnv.width * marge, cnv.width * (1 - marge)), mathRandBetween(cnv.height * (0.1 + marge * 0.618), cnv.height * (0.9 - marge * 0.618)), -mode.val); root.update(); }; function mapRange(value, inputMin, inputMax, outputMin, outputMax) { return ((value - inputMin) * (outputMax -
    OP_PUSHDATA2(77) outputMin)) / (inputMax - inputMin) + outputMin; } function bg() { ctx.save() ctx.fillStyle = 'hsl(' + startClr + ',00%,' + bgc.val + '%)'; ctx.rect(0, 0, cnv.width, cnv.height) ctx.fill(); ctx.restore() } function abstract(x, y, radius, inset, n) { ctx.save() ctx.beginPath(); ctx.translate(x, y) ctx.moveTo(0, 0 - radius); ctx.globalCompositeOperation = 'xor'; for (let i = 0; i < n; i++) {
    OP_PUSHDATA2(77) ctx.rotate(Math.PI / n) ctx.lineTo(0, 0 - (radius * inset)); ctx.rotate(Math.PI / n) ctx.lineTo(0, 0 - (radius)); } ctx.restore() ctx.closePath() ctx.stroke(); ctx.fill(); } function frame(s) { ctx.save(); ctx.strokeStyle = 'hsl(' + startClr + ',5%,' + lum.val + '%)'; ctx.lineWidth = s; ctx.stroke() ctx.rect(0, 0, cnv.width, cnv.height) ctx.restore() }
    OP_PUSHDATA2(77) function addGrain(canvas, graininess) { const ctx = canvas.getContext('2d'); const width = canvas.width; const height = canvas.height; const pixels = ctx.getImageData(0, 0, width, height); for (let i = 0; i < pixels.data.length; i += 4) { const r = pixels.data[i]; const g = pixels.data[i + 1]; const b = pixels.data[i + 2]; const alpha = pixels.data[i + 3]; const random = mathRand(); c
    OP_PUSHDATA2(77) onst offset = (random - 0.5) * graininess; pixels.data[i] = Math.max(0, Math.min(255, r + offset)); pixels.data[i + 1] = Math.max(0, Math.min(255, g + offset)); pixels.data[i + 2] = Math.max(0, Math.min(255, b + offset)); pixels.data[i + 3] = alpha; } ctx.putImageData(pixels, 0, 0); } function mathRandBetween(a, b) { if (!b) { return mathRand() * a } return mathRand() * (b - a) + a }
    OP_PUSHDATA2(77) function saveCanvasAsPNG(canvas) { document.addEventListener('keydown', function (event) { if (event.key === 's' || event.key === 'S' || event.key === 'd' || event.key === 'D') { const ctx = canvas.getContext('2d'); const width = canvas.width; const height = canvas.height; const pixelRatio = (event.key === 'd' || event.key === 'D') ? window.devicePixelRatio * 4 : window.devicePixelRatio; const canvasCopy
    OP_PUSHDATA2(77) = document.createElement('canvas'); canvasCopy.width = width * pixelRatio; canvasCopy.height = height * pixelRatio; const ctxCopy = canvasCopy.getContext('2d'); ctxCopy.imageSmoothingEnabled = false; ctxCopy.drawImage(canvas, 0, 0, width, height, 0, 0, width * pixelRatio, height * pixelRatio); const url = canvasCopy.toDataURL('image/png'); const link = document.createElement('a');
    OP_PUSHDATA2(77) link.download = 'canvas.png'; link.href = url; link.click(); } }); } saveCanvasAsPNG(cnv); function timer(t) { setTimeout(function () { location.reload(true); }, t); } </script> </html>
    OP_ENDIF(104)
1 Outputs
  • bab9be825dbb2114521389ae0acf91c47d21e144e32b0ce509e3afb24b9e4f5b:0
  • value  10000
    address  bc1pcw4me600kwa8u5gvwxup3934ewsuqde0hgch87xum7w9ktt2uyys2q6kk4