Settings

Blockchain
Network
Unit
Language
Theme
Sound New Block

Transaction

8274e9df5e9eecd7521765fb31b91c903cf6c1e35824db61c37735c06f520a4a
Timestamp (utc)
2021-05-08 23:01:24
Fee Paid
0.00002557 BSV
(
0.01000000 BSV
-
0.00997443 BSV
)
Fee Rate
565.5 sat/KB
Version
1
Confirmations
301,182
Size Stats
4,521 B

3 Outputs

Total Output:
0.00997443 BSV
  • jrunfyxM­{"in":0,"ref":["6312d4b5d360b80ff2724bd22355f4929353de865b66c5df313b11ddfb36bb0b_o1","b6bd42104afa8669284e0e600b01d65752ed45010bbac4366eb8cf68ad21df2c_o1","3804f0268973ca6b38d9594211c9662133ca9e53a743c3fdfa9080344e660c04_o1"],"out":["8e0e6b0faf6ffc98f4776fe2481bfe7c3365322e6af58670867a90cead69c9dd"],"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/8274e9df5e9eecd7521765fb31b91c903cf6c1e35824db61c37735c06f520a4a