Settings

Blockchain
Network
Unit
Language
Theme
Sound New Block

Transaction

88bf4c37b18ca89509128eac8ea9a30d9cdde19b9fdb2f4610857f1a01312910
Timestamp (utc)
2021-01-02 23:57:09
Fee Paid
0.00003213 BSV
(
0.01280825 BSV
-
0.01277612 BSV
)
Fee Rate
500.1 sat/KB
Version
1
Confirmations
327,930
Size Stats
6,424 B

6 Outputs

Total Output:
0.01277612 BSV
  • jrunM¹{"in":0,"ref":["7d14c868fe39439edffe6982b669e7b4d3eb2729eee7c262ec2494ee3e310e99_o1","1f0abf8d94477b1cb57629d861376616f6e1d7b78aba23a19da3e6169caf489e_o1"],"out":["ba001d0f0ad17991eecb5cb454a5e08b22df243c52f2ac2df05cf47be7049574","1fe31cf4cec6c21bb56c956ff83953c3b575ecc0f81cbe470e82f9097e1a437e","9841b51aad45d8a3a4f3fd61aa98808fd387b71797b98689c0c3ae0be59b7f83","85a3da4350e5944745f516131b61255bcb958f5ec43a3edb7d74212c40c9bdc3"],"del":[],"cre":["mjsxvTLNM5sQn8yj3qdmpbsa1W6PYoSu5v","mjsxvTLNM5sQn8yj3qdmpbsa1W6PYoSu5v","mjsxvTLNM5sQn8yj3qdmpbsa1W6PYoSu5v","mjsxvTLNM5sQn8yj3qdmpbsa1W6PYoSu5v"],"exec":[{"op":"DEPLOY","data":["class Lillypad extends Token {\n init(amount, owner) {\n const extended = this.constructor !== Lillypad\n if (!extended) throw new Error('Lillypad must be extended')\n super.init(amount, owner);\n if (caller === this.constructor) this.satoshis = caller.satoshis;\n }\n\n static mint(hashes, satoshis) {\n if(Array.isArray(hashes) === false) throw new Error(\"hashes must be an array.\");\n if (typeof satoshis !== \"number\") throw new Error(\"satoshis must be number.\");\n if (this.totalSupply !== 0) {\n if ((this.supply + this.mintAmount) > this.totalSupply) throw new Error(\"Cannot exceed total supply.\");\n let left = this.totalSupply-(this.supply+(this.mintAmount*hashes.length));\n if (left < hashes.length) hashes = hashes.slice(left/this.mintAmount);\n }\n \n this.satoshis = satoshis;\n\n let tokens = [];\n for (let i = 0; i < hashes.length; i++) {\n this.supply += this.mintAmount\n let target = this.getTarget(\"21e8\", this.getDifficulty());\n tokens.push(new this(this.mintAmount, new Lock21e8MS(hashes[i], target)));\n }\n this.satoshis = 0;\n return tokens;\n }\n\n drop(amount, sha256, target) {\n this.calcAmount(amount);\n return new this.constructor(amount, new Lock21e8MS(sha256, target));\n }\n\n send(to, amount = this.amount) {\n this.calcAmount(amount);\n return new this.constructor(amount, new Lock1404(to));\n }\n\n calcAmount(amount) {\n this._checkAmount(amount);\n if (this.amount === amount) {\n this.destroy();\n } else if (this.amount > amount) {\n this.amount -= amount;\n } else {\n throw new Error('Not enough funds');\n }\n this.satoshis = 0;\n }\n\n static getDifficulty() {\n let count = this.supply/this.mintAmount;\n let diff = 0;\n if (count >= 1000 && count < 10000) {\n diff = 1;\n } else if (count >= 10000 && count < 100000) {\n diff = 2;\n } else if (count >= 100000 && count < 1000000) {\n diff = 3;\n } else if (count >= 1000000 && count < 10000000) {\n diff = 4;\n } else if (count >= 10000000) {\n diff = 5;\n }\n return diff;\n }\n\n static getTarget(magicnumber, diff) {\n for (let i = 0; i < diff; i++) {\n if (diff === 0)\n break;\n magicnumber = magicnumber.concat(\"00\");\n }\n return magicnumber;\n }\n\n static changeIcon(o = { emoji: null }) {\n this.icon = o;\n }\n\n static changeSymbol(s = \"\") {\n this.symbol = s;\n }\n}",{"deps":{"Lock1404":{"$jig":3},"Lock21e8MS":{"$jig":5},"Token":{"$jig":0}},"mintAmount":0,"totalSupply":0,"version":3},"class Lock1404 {\n constructor(to) {\n let reHex = /^[0-9a-fA-F]+$/;\n if (reHex.test(to) !== true) throw new Error(\"Address must be in hex format.\");\n if (to.length === 42) to = to.slice(2);\n if (to.length !== 40) throw new Error('Invalid Address Length.');\n this.to = to;\n }\n\n script() {\n let script = `OP_DUP OP_HASH160 ${this.to} OP_EQUALVERIFY OP_3 OP_SWAP `;\n const pubkeys = ms.validators.map(a => a.pubkey);\n for (let i = 0; i < pubkeys.length; i++) {\n script += `${pubkeys[i]} `;\n }\n script += `OP_${pubkeys.length} OP_CHECKMULTISIG`;\n return asm(script);\n }\n\n domain() {\n return 1 + 73 + 1 + 73 + 1 + 73 + 1 + 32;\n }\n}",{"deps":{"asm":{"$jig":1},"ms":{"$jig":4}}},"class ms { }",{"deps":{},"validators":[{"pubkey":"02692bdd3fbc53a708384439f5dee0892c689ec1980745236282ca162d7c6c3d9b","url":"http://test.com/sign"},{"pubkey":"033da5ecc716be0d07bd856353141b3c343be577f7d9863c171d92e6336673614c","url":"http://test.com/sign"},{"pubkey":"02fedaf896f820325a3e85392e53d68b456607c427688aaf2275d5975fae08e75b","url":"http://test.com/sign"},{"pubkey":"022a2152dc979c454e71a2f9b218c2fea3def88441eb348ba3e53a020a762c80e9","url":"http://test.com/sign"},{"pubkey":"0221974dba34636753f21e8aa5c7532d556dc5021a35d6822b52c74ace5f804d99","url":"http://test.com/sign"}]},"class Lock21e8MS {\n constructor(sha256, target) {\n let reHex = /^[0-9a-fA-F]+$/;\n //check for length and verify it's hex.\n if (sha256.length !== 64) throw new Error('sha256 is invalid length');\n if (reHex.test(sha256) !== true) throw new Error('sha256 is not hex');\n if (target.length % 2 !== 0) throw new Error('target is invalid');\n if (reHex.test(target) !== true) throw new Error('target is not hex');\n this.sha256 = sha256;\n this.target = target;\n }\n\n script() {\n const pubkeys = ms.validators.map(a => a.pubkey);\n let script = `${this.sha256} ${this.target} OP_SIZE OP_6 OP_PICK OP_SHA256 OP_SWAP OP_SPLIT OP_DROP OP_EQUALVERIFY OP_DROP OP_3 OP_SWAP `;\n for (let i = 0; i < pubkeys.length; i++) {\n script += `${pubkeys[i]} `;\n }\n script += `OP_${pubkeys.length + 1} OP_CHECKMULTISIG`;\n return asm(script);\n }\n\n domain() {\n return 1 + 73 + 1 + 73 + 1 + 73 + 1 + 32;\n }\n}",{"deps":{"asm":{"$dup":["3","deps","asm"]},"ms":{"$dup":["3","deps","ms"]}}}]}]}
    https://whatsonchain.com/tx/88bf4c37b18ca89509128eac8ea9a30d9cdde19b9fdb2f4610857f1a01312910
Total Output:
0.01277612 BSV