Settings

Blockchain
Network
Unit
Language
Theme
Sound New Block

Transaction

ca7f78dc0bb6e46a20e9f01310aa46932d07ba0ebb16b78a05d2ea43701b3212
Timestamp (utc)
2022-02-06 08:11:11
Fee Paid
0.00003279 BSV
(
20.97577405 BSV
-
20.97574126 BSV
)
Fee Rate
500.2 sat/KB
Version
1
Confirmations
257,447
Size Stats
6,555 B

6 Outputs

Total Output:
20.97574126 BSV
  • jrunLoUM¦{"in":1,"ref":["native://Jig","f97d4ac2a3d6f5ed09fad4a4f341619dc5a3773d9844ff95c99c5d4f8388de2f_o1"],"out":["1e6761bbf1d816de61c00b38797a4af6575845ab2857aefc829fd2c28b7cefba","aba5245838c0b04a29a062ddc5fc7b432fd4c15b4527f8e5a2de1d18568f4354","b40656f3fb6a99c24dd42eb392938763ae0a7dc3862ec225f706ee05d6e9b3bf","17b0317e0725c3275f23eda4af4b17afa3ae13d400b0e86454c738ea56bc4cdc"],"del":[],"cre":["n1V6mVgHLLoZMkzsqgpeAv5SatrA5BGM4G","n1V6mVgHLLoZMkzsqgpeAv5SatrA5BGM4G","n1V6mVgHLLoZMkzsqgpeAv5SatrA5BGM4G"],"exec":[{"op":"DEPLOY","data":["class GameCardStateJig extends Jig {\n init(owner, initialDefinitionSig, initialZone) {\n this.owner = owner;\n this.defSig = initialDefinitionSig;\n this.zone = initialZone;\n this.controllingPlayerId = owner;\n this.LVL1_ZONES = [GZone.Battlefield, GZone.Stack, GZone.Discard, GZone.Trash];\n this.LVL2_ZONES = [GZone.Hand, GZone.Sideboard];\n this.LVL3_ZONES = [GZone.Deck];\n }\n _validateZoneDefSig(zone, defSig) {\n if (this.LVL1_ZONES.includes(zone) && !/^[A-Z]/.test(defSig)) {\n throw new Error(`Card defSig not level one for public zone ${zone}. ${defSig}`);\n }\n if (this.LVL2_ZONES.includes(zone) && !defSig.startsWith(\"2\")) {\n throw new Error(`Card defSig not level two for zone ${zone}. ${defSig}`);\n }\n if (this.LVL3_ZONES.includes(zone) && !defSig.startsWith(\"3\")) {\n throw new Error(`Card defSig not level three for zone ${zone}. ${defSig}`);\n }\n }\n setZone(zone, defSig) {\n if (zone === GZone.Stack) {\n throw new Error(\"Call addStack to add to stack\");\n }\n this.zone = zone;\n this.stackOrder = null;\n if (defSig) {\n this.defSig = defSig;\n }\n this._validateZoneDefSig(zone, this.defSig);\n }\n addToStack(defSig, game) {\n this._validateZoneDefSig(GZone.Stack, defSig);\n this.zone = GZone.Stack;\n this.defSig = defSig;\n this.stackOrder = game.players.flatMap(x => x.cardStates).filter(x => x.zone === GZone.Stack).length;\n }\n setDefSig(sig) {\n this._validateZoneDefSig(this.zone, sig);\n this.defSig = sig;\n }\n setTapped(isTapped) {\n this.isTapped = isTapped;\n }\n resetWithSig(sig, zone, isTapped) {\n if (zone === GZone.Stack) {\n throw new Error(\"Call addStack to add to stack\");\n }\n this._validateZoneDefSig(zone, sig);\n this.defSig = sig;\n this.zone = zone;\n this.isTapped = isTapped;\n this.controllingPlayerId = this.owner;\n this.stackOrder = null;\n }\n}",{"deps":{"GZone":{"Battlefield":"Battlefield","Deck":"Deck","Discard":"Discard","Hand":"Hand","Sideboard":"Sideboard","Stack":"Stack","Trash":"Trash"},"Jig":{"$jig":1}},"metadata":{"emoji":"🎴"}},"class GameDeckJig extends Jig {\n init(owner, locationSigs, cardHashes) {\n expect(locationSigs).toBeObject();\n expect(cardHashes).toBeArray();\n this.owner = owner;\n this.locationSigs = locationSigs;\n this.cardHashes = cardHashes;\n }\n}",{"deps":{"Jig":{"$dup":["1","deps","Jig"]},"expect":{"$jig":2}},"metadata":{"emoji":"🎴"}},"class PlayerJig extends Jig {\n init(owner, playerName) {\n this.owner = owner;\n this.playerName = playerName;\n }\n}",{"deps":{"Jig":{"$dup":["1","deps","Jig"]}},"metadata":{"emoji":"👨‍💻️"}}]},{"op":"UPGRADE","data":[{"$jig":0},"class GamePlayerJig extends Jig {\n init(player, startingLife, deck) {\n expect(deck).toBeInstanceOf(GameDeckJig);\n function isRealPlayer(obj) {\n return obj && \"owner\" in obj;\n }\n if (isRealPlayer(player)) {\n this.owner = player.owner;\n this.playerName = player.playerName;\n }\n else {\n this.owner = player.address;\n this.playerName = \"Computer\";\n this.isAI = true;\n this.aiPrivKeyEncr = player.privKeyEncrypted;\n }\n this.maxPermTreasuresPlayedPerTurn = 1;\n this.permTreasuresPlayedThisTurn = 0;\n this.life = startingLife;\n this.maxHandSize = 5;\n this._prevMaxHandSize = 5;\n this.isDead = false;\n this.floatingMana = {\n Yellow: 0,\n Black: 0,\n Red: 0,\n Blue: 0,\n Green: 0,\n Colorless: 0\n };\n // init(owner: string, initialDefinitionSig: string, initialZone: Zone)\n this.cardStates = deck.locationSigs.deck\n .map(x => new GameCardStateJig(this.owner, x, GZone.Deck))\n .concat(deck.locationSigs.sideboard.map(x => new GameCardStateJig(this.owner, x, GZone.Sideboard)));\n this.startingDeck = deck;\n }\n resetTreasuresPlayed() {\n this.permTreasuresPlayedThisTurn = 0;\n }\n setMaxHandSize(size) {\n this._prevMaxHandSize = this.maxHandSize;\n this.maxHandSize = size;\n }\n revertMaxHandSize(size) {\n this.maxHandSize = this._prevMaxHandSize;\n }\n setMana(floating) {\n this.floatingMana = floating;\n }\n addMana(color, amount) {\n this.floatingMana[color] += amount;\n }\n incrPermTreasuresPlayed() {\n this.permTreasuresPlayedThisTurn++;\n }\n incrLife(amount) {\n this.life += amount;\n }\n setMaxPermTreasures(value) {\n this.maxPermTreasuresPlayedPerTurn = value;\n }\n setDeckCards(newDeck) {\n // remove old deck cards and concat new ones\n this.cardStates = this.cardStates.filter(x => x.zone !== GZone.Deck).concat(newDeck);\n }\n}",{"deps":{"GZone":{"Battlefield":"Battlefield","Deck":"Deck","Discard":"Discard","Hand":"Hand","Sideboard":"Sideboard","Stack":"Stack","Trash":"Trash"},"GameCardStateJig":{"$jig":3},"GameDeckJig":{"$jig":4},"Jig":{"$jig":1},"PlayerJig":{"$jig":5},"expect":{"$jig":2}},"metadata":{"emoji":"🧙"}}]}]}
    https://whatsonchain.com/tx/ca7f78dc0bb6e46a20e9f01310aa46932d07ba0ebb16b78a05d2ea43701b3212
Total Output:
20.97574126 BSV