Settings

Blockchain
Network
Unit
Language
Theme
Sound New Block

Transaction

8cf5a0db2ed9580f6c80fd9cfd4f10f398800fd821ac5c75b3a53b2d0d32678f
Timestamp (utc)
2021-02-20 00:11:23
Fee Paid
0.00003782 BSV
(
0.00954045 BSV
-
0.00950263 BSV
)
Fee Rate
973.9 sat/KB
Version
1
Confirmations
320,669
Size Stats
3,883 B

3 Outputs

Total Output:
0.00950263 BSV
  • jrun cryptofightsM'{"in":0,"ref":["c343df9e2f24586b4042d682f56f917e14020933b707569d2aa999ed8184b459_o1","162058b016ec64fff953ada13768b32a77c23b76abb7b72abebd8f0fe642948a_o1","20af650ed493f124361af75c0d2131238266d3cb9098e1b819ca9ef176ed2c1c_o1","438bfb5abc25e9bd04217610b78df75d748f3a63153084f9b33bd871172cb492_o1","b9fb2a2a5640ff1c769ce78bafb0950d79cb6a506b72fa63081f7c318ed9d7c1_o1","f97d4ac2a3d6f5ed09fad4a4f341619dc5a3773d9844ff95c99c5d4f8388de2f_o1"],"out":["b904f38ce212e3e7056817033f0a2feaf89fbd918f449a9b1e9f99d4c7f0229b"],"del":[],"cre":["n2Bd4cWhEQK1aVjb1R7EBGV9mrw3etvSdC"],"exec":[{"op":"DEPLOY","data":["class BotValidatorAgent extends ValidatorAgent {\n async _buildPlayers([message]) {\n return Promise.all([\n this.constructor.loadPlayer(message, this.wallet),\n this.loadBot()\n ]);\n }\n\n async loadBot() {\n console.time('loadBot');\n const [fighter, items, skills] = await Promise.all([\n this._selectFighter(),\n this._selectItems(),\n this._selectSkills()\n ]);\n\n console.timeEnd('loadBot');\n return {\n pubkey: this.pubkey,\n owner: this.address,\n fighter,\n items,\n skills,\n coins: [],\n tags: ['bot']\n };\n }\n\n async _selectFighter() {\n // TODO: We are filtering fighters by name because at the fighter level we don't know which lobby the bot\n // fighter belongs to. We should be able to do this at the agent level (we have different agents per bot)\n const tierToDisplayNameMap = {\n 1 : 'Boggart',\n 2 : 'Gnoll',\n 3 : 'Quasit',\n 4 : 'Ogre',\n 5 : 'Doppelganger',\n 6 : 'Orc War Chief',\n };\n const fighters = await this.wallet.loadJigIndex({\n criteria: {\n kind: BotFighter.origin, \n 'value.displayName': tierToDisplayNameMap[this.constructor.lobby]\n },\n projection: {value: false}\n });\n console.log('Fighters:', fighters.length);\n const fighter = await this.pickAndLock(fighters, 120);\n if (!fighter) throw new Error('no bot fighters');\n return fighter;\n }\n\n async _selectItems() {\n return [];\n }\n\n async _selectSkills() {\n return [Attack];\n }\n\n async _selectAction() {\n return 0;\n }\n\n async updateBattle() {\n await super.updateBattle();\n console.log('BOT: Update Battle');\n const { id, actor, status, turnCount } = this.battle;\n if (status === Constants.Status.Open && actor === this.pubkey) {\n const actionIndex = await this._selectAction(this.battle);\n console.time(`BotAction - ${actionIndex}`);\n const random = await this.storage.lindex(`hash:${id}`, turnCount);\n const timestamp = this.wallet.now;\n this.battle.resolve(\n random, \n timestamp, \n timestamp + this.constructor.timeout,\n actionIndex\n );\n await this.battle.sync();\n console.timeEnd(`BotAction - ${actionIndex}`);\n await this.updateBattle();\n }\n }\n}",{"deps":{"Attack":{"$jig":0},"BotFighter":{"$jig":1},"Constants":{"$jig":2},"KronoItem":{"$jig":3},"ValidatorAgent":{"$jig":4},"expect":{"$jig":5}},"fee":0,"hash":"4de5714bc7eebf2c426f51f82dc1df13da081cc283bd24da510f65eac398dca7","lobby":0,"playerCount":1,"reward":0,"sealed":false,"tier":0}]}]}
    https://whatsonchain.com/tx/8cf5a0db2ed9580f6c80fd9cfd4f10f398800fd821ac5c75b3a53b2d0d32678f