Settings

Blockchain
Network
Unit
Language
Theme
Sound New Block

Transaction

f52a272bad5a19ad5c368d2c3c395056c6c175f010351651420f87cdbfc60d01
Timestamp (utc)
2020-09-21 22:56:59
Fee Paid
0.00001963 BSV
(
0.00311991 BSV
-
0.00310028 BSV
)
Fee Rate
500.5 sat/KB
Version
1
Confirmations
347,426
Size Stats
3,922 B

4 Outputs

Total Output:
0.00310028 BSV
  • jrunM¥ {"in":0,"ref":["native://Jig","248b1c0f961eb05203123a4ffeb7fb0e03b0b044d00fb3a1bece0b681a3fab4c_o2"],"out":["be1715bed18bc993c8c50679ce4f2f901a668e08f23fd0f7700a55fa9dca0bc5"],"del":[],"cre":["mop1HxhZsnC6pCupyXyP9vdjt9qAUCGd3C"],"exec":[{"op":"DEPLOY","data":["class MultList extends Jig {\n init(timestamp) {\n this.classname = \"MultList: \";\n const function_id = this.classname + \" init(): \";\n if (!timestamp) throw function_id + \"timestamp missing: \" + timestamp;\n\n this._checkTimestamp(timestamp);\n\n this.list = [];\n this.timestamps = [];\n this.list_action_numbers = []; //init with a 1.0 value to make it easier to use\n //this.publish(1.0, timestamp) // BEWARE THIS WILL NOT WORK because this isn't deployed yet (no owner & location) so you need to do it step-by-step in init() too\n\n this.list.push(1.0);\n this.timestamps.push(timestamp);\n this.action_count = 0;\n this.list_action_numbers.push(this.action_count);\n }\n\n linkAdminCounter(admincounter) {\n /* this should be done right after creation, we need it separate from init() because we first need to link multlist to the tokencontract and then the other way */\n if (this.admincounter) throw this.classname + \": already an admincounter linked \" + this.admincounter;\n this.admincounter = admincounter;\n }\n\n publish(newmult, timestamp) {\n const function_id = this.classname + \"publish(): \";\n expect(this.owner).toBe(this.constructor.owner, function_id + \": Only \" + this.classname + \"'s owner may publish\");\n if (!timestamp) throw this.classname + \": publish: timestamp missing: \" + timestamp;\n\n this._checkTimestamp(timestamp);\n\n this._checkNum(newmult); //now test if float that is not NaN nor Infinite\n\n\n if (!isNaN(newmult) && isFinite(newmult)) {\n if (!this.admincounter) {\n throw function_id + \" no admincounter contract found, please link one before publishing\";\n } else {\n //this.action_count = this.admincounter.get_count() // for run 0.5\n this.admincounter.auth(); //ensures only the tokencontract owner can publish // for run 0.6\n\n this.action_count = this.admincounter.nonce; // for run 0.6\n }\n\n this.list_action_numbers.push(this.action_count); // as an array for practicality\n\n this.list.push(newmult);\n this.timestamps.push(timestamp);\n } else {\n throw this.classname + \": Error: newmult is NaN or Infinite\";\n }\n }\n\n _checkNum(number) {\n const function_id = this.classname + \": _checkNum(): \"; //expect(number).toBeNumber(this.classname+': _checkNum: not a number : '+number)\n\n if (typeof amount !== 'number') throw function_id + 'amount is not a number';\n expect(number).toBeGreaterThan(0, function_id + ' number must be positive : ' + number);\n expect(number).toBeLessThanOrEqualTo(Number.MAX_SAFE_INTEGER, function_id + ' number too large : ' + number);\n }\n\n _checkTimestamp(timestamp) {\n const function_id = this.classname + \": _checkTimestamp(): \";\n\n try {\n this._checkNum(timestamp); // applies as well to timestamp\n\n } catch (e) {\n throw function_id + e;\n }\n\n expect(timestamp).toBeInteger(function_id + ': timestamp must be an integer : ' + timestamp);\n expect(timestamp).toBeGreaterThan(1593026831, function_id + ': timestamp must be older than 1593026831 : ' + timestamp);\n }\n\n}",{"deps":{"expect":{"$jig":1},"Jig":{"$jig":0}}}]}]}
    https://whatsonchain.com/tx/f52a272bad5a19ad5c368d2c3c395056c6c175f010351651420f87cdbfc60d01