EVMSEALEDEVM
?~○◆◇*◆▓*$!○#▒!!#░■▒▒█▓▒▓●◇▫%◆░*▫◇●▒□^█▒▫○$@&╲○?%~╱@▒#%▪●○╳*◆▓◇▫
Transaction ID
Execution Fee
0.00562 FLOWTransaction Summary
EVMCalled EVM
EVM Hashes
Contracts
Script Arguments
0hexEncodedTxs[String]
[ "f8cf83020fa485056c061b4083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e0000000000000000000000000000000000000000000000000000000000007648000000000000000000000000000000000000000000000000021242856a59a4710000000000000000000000000000000000000000000000000218f0a81b1c442b8205faa00eee2a0ec42b50cc8c6c878ee30e658f7c92fdb2ed9539eac426aead51291363a002babd965895687363607a6608de4047441c6144ab9edec26faa28894f51ff02", "f8cf83020fa58504edd7018083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e00000000000000000000000000000000000000000000000000000000000076ac00000000000000000000000000000000000000000000000003927a08427975590000000000000000000000000000000000000000000000000576668b87255b228205faa0b2cb759169f2bb7f48cbdc3c58fa88840750398bcea37e110325cd76d6c307f4a01c502965d4bcb0e8eec9f8a0b83358e45a6465697bc1cf28ae50afe0cf3d899a", "f8cf83020fa785047b208d0083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e000000000000000000000000000000000000000000000000000000000000767c0000000000000000000000000000000000000000000000000a4092e35cfcf7f7000000000000000000000000000000000000000000000000197a325c343c8c058205f9a0213afde5d55bf375a7ce2dad27d44e9bd88b1013030592f64707a446d3fc67f1a00aea2b5a8c7a60cb2d977c7b6f64959a0309b5b70835225822ca1cffae6e86cf", "f8cf83020fa885047b208d0083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e00000000000000000000000000000000000000000000000000000000000076bc000000000000000000000000000000000000000000000000652c6d80fd1628ca000000000000000000000000000000000000000000000003905743aa6c7189328205f9a0252b0b1925002d5157ee6e40d313a78ca3fa8c675f3600a91622bded0c123ac5a016b1a66848240008bdead1c8ad892e7fdae410cba921b8932bdc2cad3ed364a2", "f8cf83020fad85047b208d0083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e00000000000000000000000000000000000000000000000000000000000076ca0000000000000000000000000000000000000000000000000275ea4ba72172d50000000000000000000000000000000000000000000000000275ea4ba72172d58205faa0723fe3c2f1594f7a01931415357642398a5795b30ce44b02f455379f304a894da065c2f5b02838dae18c810b14f1107f32a84adfb749a1d23846c22baf673af89c", "f8cf83020faf85047b208d0083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e000000000000000000000000000000000000000000000000000000000000769d000000000000000000000000000000000000000000000000020e0499970b08a8000000000000000000000000000000000000000000000000023502a5d08fae578205f9a0db46619f55b89443b01c768cec4c0d41f6592ed46d901a9d3ef6cc1afa99d412a0421d12834ff06b5278bd62d450cdd9b9a648251b4d5d60f5ff34c24d3dde1cf0", "f8cf83020fb085047b208d0083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e000000000000000000000000000000000000000000000000000000000000767000000000000000000000000000000000000000000000000002323b1ec3aa4222000000000000000000000000000000000000000000000017a767d6e8607f14c18205f9a049c2698594d91e8e719f60a1e4853091bd9eec1efd6c398905dc66510e4a1b67a0581d5c4f3285e405821ae3cab1c9533100a86bf5b5b2178792c46cbbb2649d25", "f8cf83020fb185047b208d0083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e00000000000000000000000000000000000000000000000000000000000075f700000000000000000000000000000000000000000000000029ded4b79b6663be0000000000000000000000000000000000000000000000002faeb3e4245365af8205f9a04163bfb27f4a9cc9b9ac0f78ab5d4f78ff2d3d46ad492071e89801cbf10d606fa0728f9751c1a51962527a1f460278a405b05c76aa112ac9008c349e679a0113c5", "f901b883020fb285047b208d00830d1820949d1b1669c73b033dfe47ae5a0164ab96df25b944881c2a70e2eb077ab2b901447048515500000000000000000000000000000000000000000000000000000000000075c1000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000759a00000000000000000000000000000000000000000000000000000002129d18a90000000000000000000000000000000000000000000000000000002101a44ec18205faa0560a76c51e5b6739dc82192c5b77354e69dde708c10084b3f423a82f7eccd5a1a04618b91e8544b951e0f1abd4e204fa36fb0e5beccb81859e06a4dc98c557db69", "f901b883020fb385047b208d00830d1820949d1b1669c73b033dfe47ae5a0164ab96df25b94488084004227d5edabeb901447048515500000000000000000000000000000000000000000000000000000000000076a1000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000759600000000000000000000000000000000000000000000000000000003abee6eea00000000000000000000000000000000000000000000000000000046a969d5278205faa06febd7852804b3e9beeacd0ad14ce02ba477ed49f07e702a6914a97de0abfa59a01d50092d5b484e3de3271587b9fee188bf597173f4772df52b68b0c15855732c" ]
Cadence Script
1import EVM from 0xe467b9dd11fa00df
2
3transaction(hexEncodedTxs: [String], coinbase: String) {
4 execute {
5 let txs: [[UInt8]] = []
6 for tx in hexEncodedTxs {
7 txs.append(tx.decodeHex())
8 }
9
10 // If there's only one tx, use `EVM.run`.
11 // If there are more, then use `EVM.batchRun`
12 if txs.length == 1 {
13 let txResult = EVM.run(
14 tx: txs[0],
15 coinbase: EVM.addressFromString(coinbase)
16 )
17 assert(
18 txResult.status == EVM.Status.failed || txResult.status == EVM.Status.successful,
19 message: "evm_error=\(txResult.errorMessage);evm_error_code=\(txResult.errorCode)"
20 )
21 return
22 }
23
24 let txResults = EVM.batchRun(
25 txs: txs,
26 coinbase: EVM.addressFromString(coinbase)
27 )
28
29 // If at least one of the EVM transactions in the batch is either
30 // failed or successful, in other words not invalid, we let the
31 // Cadence transaction succeed.
32 for txResult in txResults {
33 if txResult.status == EVM.Status.failed || txResult.status == EVM.Status.successful {
34 return
35 }
36 }
37
38 // Otherwise, all EVM transactions are invalid txs and can't be
39 // executed (such as nonce too low).
40 // In this case, we fail the Cadence transaction with the error
41 // message from the first EVM transaction.
42 for txResult in txResults {
43 assert(
44 txResult.status == EVM.Status.failed || txResult.status == EVM.Status.successful,
45 message: "evm_error=\(txResult.errorMessage);evm_error_code=\(txResult.errorCode)"
46 )
47 }
48 }
49}