Settings

Blockchain
Network
Unit
Language
Theme
Sound New Block

Transaction

e12c26cd5d0465f3072a131a9e8553c6b7006917b987990d0c5a888fe76c8013
Timestamp (utc)
2020-09-13 16:44:45
Fee Paid
0.00002463 BSV
(
0.00019359 BSV
-
0.00016896 BSV
)
Fee Rate
500.2 sat/KB
Version
1
Confirmations
345,501
Size Stats
4,924 B

5 Outputs

Total Output:
0.00016896 BSV
  • jrunMÿ{"in":0,"ref":["native://Jig"],"out":["01d3577cea9fb84f98d809ee4e3509d51ab902bca12695a26498328b292f23e5","dad6e97b0f6b49c7fb9f4ca66212bc5ef05863258830babd08ea02a0a9b9fa98","0dcfcc5e0ae10ab181fb4a88c00d4f13c44de2adbc3757d17625f4164293bc5f"],"del":[],"cre":["mge9PJwnAno5Z3pehdqqUF7CEekHmFvfYu","mge9PJwnAno5Z3pehdqqUF7CEekHmFvfYu","mge9PJwnAno5Z3pehdqqUF7CEekHmFvfYu"],"exec":[{"op":"DEPLOY","data":["class Blacklist extends Jig {\n init() {\n this.list = [];\n this.list_action_numbers = [];\n this.classname = \"Blacklist: \"; //for freeze\n\n this.is_frozen = false;\n }\n\n linkAdminCounter(admincounter) {\n if (this.admincounter) throw this.classname + \": already an admincounter linked \" + this.admincounter;\n this.admincounter = admincounter;\n }\n\n add(address) {\n const function_id = this.classname + \"add(): \"; // checks\n\n expect(this.owner).toBe(this.constructor.owner, function_id + \" Only \" + this.classname + \"'s owner may manage blacklist\");\n expect(address).toBeString(function_id + ': address to blacklist must be a string');\n if (address == this.owner) throw function_id + \": you cannot blacklist your own administration address\";\n if (this.list.includes(address)) throw function_id + \": address is already in blacklist\";\n\n if (!this.admincounter) {\n this.action_count = 0;\n console.log(function_id + \" no admincounter contract found, will set action# to 0 by default\"); // TODO MAKE THIS A THROW ONCE IT WORKS\n } else {\n this.action_count = this.admincounter.get_count();\n }\n\n this.list_action_numbers.push(this.action_count); // doublon for practicality\n\n this.list.push(address);\n } // allowing remove introduces a security breach if an hacker can unblacklist his address and send some of his tokens to others\n //remove(address){\n // expect(address).toBeString(this.classname+': address to blacklist must be a string')\n // if(!this.list.has(address)) throw this.classname+\": address to remove is not in blacklist\" \n // this.list.delete(address)\n //}\n\n\n freeze() {\n if (this.is_frozen == true) throw this.classname + \"freeze(): contract already frozen\"; // freezes all coins but doesn't give a new contract to exchange to\n // useful to end the network and/or reissue tokens on a new protocol after freezing it\n\n this.is_frozen = true;\n }\n\n}",{"deps":{"expect":{"$jig":2},"Jig":{"$jig":0}}},"function expect(t){let e=!1;const n=t=>{if(\"object\"!=typeof t||!t)return t;try{return JSON.stringify(t)}catch(e){return t.toString()}};function r(r,o,i){if(e?r:!r)throw new Error(i||`expected value${e?\" not\":\"\"} to be ${o} but was ${n(t)}`)}return{get not(){return e=!e,this},toBe:(e,o)=>r(t===e,\"\"+n(e),o),toEqual:(e,o)=>r(function t(e,n){return typeof e==typeof n&&(\"object\"==typeof e&&\"object\"==typeof n?null===e&&null===n||null!==e&&null!==n&&Object.keys(e).length===Object.keys(n).length&&Object.keys(e).every(r=>t(e[r],n[r])):e===n)}(t,e),\"equal to \"+n(e),o),toBeInstanceOf:(e,n)=>r(t&&t instanceof e,\"an instance of \"+e.name,n),toBeDefined:e=>r(void 0!==t,\"defined\",e),toBeNull:e=>r(null===t,\"null\",e),toBeNumber:e=>r(\"number\"==typeof t,\"a number\",e),toBeInteger:e=>r(Number.isInteger(t),\"an integer\",e),toBeLessThan:(e,n)=>r(t<e&&\"number\"==typeof t&&\"number\"==typeof e,\"less than \"+e,n),toBeLessThanOrEqualTo:(e,n)=>r(t<=e&&\"number\"==typeof t&&\"number\"==typeof e,\"less than or equal to \"+e,n),toBeGreaterThan:(e,n)=>r(t>e&&\"number\"==typeof t&&\"number\"==typeof e,\"greater than \"+e,n),toBeGreaterThanOrEqualTo:(e,n)=>r(t>=e&&\"number\"==typeof t&&\"number\"==typeof e,\"greater than or equal to \"+e,n),toBeBoolean:e=>r(\"boolean\"==typeof t,\"a boolean\",e),toBeString:e=>r(\"string\"==typeof t,\"a string\",e),toBeObject:e=>r(t&&\"object\"==typeof t,\"an object\",e),toBeArray:e=>r(Array.isArray(t),\"an array\",e),toBeClass:e=>r(\"function\"==typeof t&&t.toString().startsWith(\"class\"),\"a class\",e),toBeFunction:e=>r(\"function\"==typeof t&&!t.toString().startsWith(\"class\"),\"a function\",e)}}",{"originMainnet":"b6cd82f20242845ebef6867e05fd048c7763edf966cc3f8bc236a9e221843ce0_o3","locationMainnet":"b6cd82f20242845ebef6867e05fd048c7763edf966cc3f8bc236a9e221843ce0_o3","ownerMainnet":"13B8kvB8i2ka8JUKQYa3B1x33AZx5n7cXw","originTestnet":"6d626438e7a4fdbad1855b6656bb1abf74d0e2e500cc46b47ee79083838b429f_o3","locationTestnet":"6d626438e7a4fdbad1855b6656bb1abf74d0e2e500cc46b47ee79083838b429f_o3","ownerTestnet":"mzHqorB2BvtguytBnC65v325cTH9b6qSgb"}]},{"op":"NEW","data":[{"$jig":1},[]]}]}
    https://whatsonchain.com/tx/e12c26cd5d0465f3072a131a9e8553c6b7006917b987990d0c5a888fe76c8013