Settings

Blockchain
Network
Unit
Language
Theme
Sound New Block

Transaction

b08d48af3b3620afd877ba969c6a1e60a204e8456aa7e8ba7e8e68aa0d479561
Timestamp (utc)
2021-06-01 16:48:52
Fee Paid
0.00002410 BSV
(
0.00996278 BSV
-
0.00993868 BSV
)
Fee Rate
533 sat/KB
Version
1
Confirmations
296,812
Size Stats
4,521 B

3 Outputs

Total Output:
0.00993868 BSV
  • jrunfyxM­{"in":0,"ref":["b16d71294e5280eed849f51b2917097013975c6164e920448da39536397b5699_o1","42289e099b0bf4c28d36d7041004662c7413529905d0b1977fcef0602da4f33b_o1","870c20f2e1b5f421a3083f749776c059e5bf227d6b2d555f11ffda2306389c56_o1"],"out":["2d2d728fd577308c6a68a680f352e08469d412ef47d5f027cbc37ade277c15d4"],"del":[],"cre":["mvRVAvD9PafWVegCaPh4SUCLUuBay6QUz4"],"exec":[{"op":"DEPLOY","data":["class Agent extends EventEmitter {\n constructor(wallet, blockchain, storage, bsv, lib) {\n super();\n this.wallet = wallet;\n this.blockchain = blockchain;\n this.storage = storage;\n this.bsv = bsv;\n this.lib = lib;\n this.address = wallet.address;\n this.pubkey = wallet.pubkey;\n this.purse = wallet.purse;\n this.paymail = wallet.paymail;\n\n this.eventHandlers = new Map();\n this.jigHandlers = new Map();\n this.messageHandlers = new Map();\n this.kindSubHandlers = new Map();\n this.originSubHandlers = new Map();\n this.channelSubHandlers = new Map();\n this.queue = Promise.resolve();\n this.processCount = 0;\n\n this.handled = new Set();\n }\n\n addToQueue(process, label = 'process') {\n const processCount = this.processCount++;\n console.time(`${processCount}-${label}`);\n const queuePromise = this.queue.then(process);\n this.queue = queuePromise\n .catch(e => console.error('Queue error', label, e.message, e.stack))\n .then(() => console.timeEnd(`${processCount}-${label}`));\n\n return queuePromise;\n }\n\n init() { }\n async onJig(jigData) {\n if(this.handled.has(jigData.location)) return;\n this.handled.add(jigData.location);\n let handler = this.jigHandlers.get(jigData.kind);\n if (!handler) return;\n const label = `${this.processCount++}-jig-${jigData.type}-${jigData.location}`;\n try {\n console.time(label);\n const jig = await this.wallet.loadJig(jigData.location);\n if (!jig) {\n console.log(`JIG: ${jigData.type} ${jigData.location} missing`);\n return;\n }\n const [txid, vout] = jigData.location.split('o_');\n const spend = await this.blockchain.spends(txid, vout);\n if(spend) {\n console.log(`JIG: ${jigData.type} ${jigData.location} spent`);\n return;\n }\n // await jig.sync();\n // if (jig.location !== jigData.location) {\n // console.log(`JIG: ${jigData.type} ${jigData.location} spent`);\n // }\n await handler.bind(this)(jig);\n } finally {\n console.timeEnd(label);\n }\n }\n\n async onMessage(message, ipAddress) {\n if(this.handled.has(message.id)) return;\n this.handled.add(message.id);\n let handler = this.messageHandlers.get(message.subject);\n if (!handler) {\n console.log('No Handler:', message.subject);\n return;\n }\n const label = `${this.processCount++}-msg-${message.subject}-${message.id}`;\n try {\n console.time(label);\n const result = await handler.bind(this)(message, ipAddress);\n return result;\n } finally {\n console.timeEnd(label);\n }\n }\n\n async onEvent(event, payload) {\n let handler = this.eventHandlers.get(event);\n if (!handler) throw new Error('Invalid handler:', event);\n const label = `${this.processCount++}-event-${event}`;\n try {\n console.time(label);\n const result = await handler.bind(this)(payload);\n return result;\n } finally {\n console.timeEnd(label);\n }\n \n }\n\n static hexToBytes(hex) {\n let bytes = new Uint8Array(32);\n for (let i = 0; i < 64; i += 2) {\n bytes[i / 2] = parseInt(hex.slice(i, i + 2), 16);\n }\n return bytes;\n }\n}",{"deps":{"EventEmitter":{"$jig":0},"FyxError":{"$jig":1},"Sha256":{"$jig":2}},"hash":"2dea2c89baedf4a1d3b9ba8c1698491fd7bfe666b5f211be3b08c2a86635abf1","sealed":false}]}]}
    https://whatsonchain.com/tx/b08d48af3b3620afd877ba969c6a1e60a204e8456aa7e8ba7e8e68aa0d479561