Settings

Blockchain
Network
Unit
Language
Theme
Sound New Block

Transaction

a494435e1c8e7efc2fc3ae1e52ae5b71c51b23ef71dafe136fdc4b77a747f5f2
Timestamp (utc)
2021-04-15 14:03:32
Fee Paid
0.00002346 BSV
(
0.09992449 BSV
-
0.09990103 BSV
)
Fee Rate
500.2 sat/KB
Version
1
Confirmations
307,439
Size Stats
4,690 B

4 Outputs

Total Output:
0.09990103 BSV
  • jrunM8{"in":0,"ref":["native://Jig"],"out":["0075b8e68995d622eed91696bb07c5db73aee2c959ffb4acb5dc1c389424e1b1","410977309b9c4532570eff588d1bbcedc9ec3f935332c36fa4e5974aafac79b1"],"del":[],"cre":["mzXGPBW15L2tR8sFwfkuM6os6UwUkvspRw","mzXGPBW15L2tR8sFwfkuM6os6UwUkvspRw"],"exec":[{"op":"DEPLOY","data":["class BurtTest2 extends Jig {\n init (amount, owner) {\n this._checkAmount(amount)\n\n // The base Token class cannot be created on its own\n const extended = this.constructor !== Token\n if (!extended) throw new Error('Token must be extended')\n\n // Make sure we are calling from ourself\n const minting = caller === this.constructor\n const sending = caller && caller.constructor === this.constructor\n if (!minting && !sending) throw new Error('Must create token using mint()')\n\n this.sender = sending ? caller.owner : null\n this.amount = amount\n if (owner) this.owner = owner\n }\n\n static mint (amount, owner) {\n this.supply += amount\n return new this(amount, owner)\n }\n\n send (to, amount = this.amount) {\n this._checkAmount(amount)\n\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\n return new this.constructor(amount, to)\n }\n\n combine (...tokens) {\n // If no tokens to combine, nothing to do\n if (!tokens.length) return this\n\n // Each token to combine must all be of this type\n const all = tokens.concat(this)\n if (all.some(token => token.constructor !== this.constructor)) {\n throw new Error('Cannot combine different token classes')\n }\n\n // Check for duplicate tokens in the array\n const countOf = token => all.reduce((count, next) => next === token ? count + 1 : count, 0)\n if (all.some(token => countOf(token) > 1)) throw new Error('Cannot combine duplicate tokens')\n\n // Destroy each token, absorbing it into this one\n tokens.forEach(token => {\n this.amount += token.amount\n token.destroy()\n })\n\n // There is no sender for combined tokens\n this.sender = null\n\n // Make sure our new amount is within safe range\n this._checkAmount(this.amount)\n\n return this\n }\n\n destroy () {\n super.destroy()\n\n this.amount = 0\n this.sender = null\n }\n\n _checkAmount (amount) {\n if (typeof amount !== 'number') throw new Error('amount is not a number')\n if (!Number.isInteger(amount)) throw new Error('amount must be an integer')\n if (amount <= 0) throw new Error('amount must be positive')\n if (amount > Number.MAX_SAFE_INTEGER) throw new Error('amount too large')\n }\n}",{"decimals":2,"dep":{"OrderLock2":{"$jig":2}},"deps":{"Jig":{"$jig":0}},"metadata":{"emoji":"⚛️️"},"symbol":"BRTC","total":21000000},"class OrderLock2 { constructor(address, satoshis) {\n if (typeof address !== \"string\" || address.length < 27) {\n throw new TypeError(\"Invalid address\");\n }\n if (typeof satoshis !== \"number\" || !Number.isInteger(satoshis)) {\n throw new Error(\"Invalid satoshis\");\n }\n if (satoshis > Number.MAX_SAFE_INTEGER) {\n throw new Error(\"Invalid. Max: \" + Number.MAX_SAFE_INTEGER);\n }\n if (satoshis < 546) {\n throw new Error(\"Dust\");\n }\n this.address = address;\n this.satoshis = satoshis;\n }\n script() {\n const output = this.serializeOutput(this.address, this.satoshis);\n const hashOutput = this.sha256sha256(output);\n return ( OrderLock.scriptTemplate.slice(0, 2) + hashOutput + OrderLock.scriptTemplate.slice(66) );\n }\n serializeOutput(address, satoshis) {\n const satoshisHex = this.serializeSatoshis(satoshis); \n const satoshisHexBytes = Hex.stringToBytes(satoshisHex);\n const outputScriptBytes = Hex.stringToBytes(this.getP2PKHScript(address));\n const lengthBytes = [25]; return satoshisHexBytes.concat(lengthBytes, outputScriptBytes);\n }\n serializeSatoshis(satoshis) {\n let numberHex = (\"0000000000000000\" + satoshis.toString(16)).slice(-16);\n return numberHex .match(/[a-fA-F0-9]{2}/g) .reverse() .join(\"\");\n }\n getP2PKHScript(address) {\n const decoded = Base58.decode(address);\n const hex = Hex.bytesToString(decoded);\n return asm(`OP_DUP OP_HASH160 ${hex} OP_EQUALVERIFY OP_CHECKSIG`);\n } sha256sha256(output) {\n return Hex.bytesToString(sha256(sha256(output)));\n }\n domain() { \n return 0; }\n }",{"deps":{}}]}]}
    https://whatsonchain.com/tx/a494435e1c8e7efc2fc3ae1e52ae5b71c51b23ef71dafe136fdc4b77a747f5f2