EVMSEALEDEVM
$╳▪$○●▓□◆╳█□░▫▓█@■█◆■&◇?*%╱^■░╳^◆▓@╳▒╲▫*◇▒◆^░▒~#◆■@╳?*%██%▪%░■╱◇
Transaction ID
Execution Fee
0.00362 FLOWTransaction Summary
EVMCalled EVM
EVM Hashes
Contracts
Script Arguments
0hexEncodedTxs[String]
[ "f8cf83020fba8504edd7018083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e000000000000000000000000000000000000000000000000000000000000769a00000000000000000000000000000000000000000000000002473b4f2a7095bc0000000000000000000000000000000000000000000000000289ee362d8b56808205faa0da3308c2ed1a03b184c1cf8ee0f0b92c12b88b832d688a3eb98a0b6556722474a05fedf8e8450ae60424be568c9a8f0069c16143ca73fea40efb6fa36d003720b2", "f8cf83020fbc85047b208d0083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e00000000000000000000000000000000000000000000000000000000000076970000000000000000000000000000000000000000000000000d1f069af322a559000000000000000000000000000000000000000000000000ac37db6ab17857858205f9a08938575b3fb92d7d942544a1d043ae32762e08b2a0fd7a853e0678452e16926da00dc50bf9637eb0fb6a51ee1adbef47528cf40be66fb98fde5fe019134173751a", "f8cf83020fc085047b208d0083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e00000000000000000000000000000000000000000000000000000000000075960000000000000000000000000000000000000000000000000780870a50da3275000000000000000000000000000000000000000000000003541b11fcf36abd8c8205f9a0eff393277ede2debbfe2211ffd36f2e3c00caa88f2dae5fdd1626e156524b9f7a04b3ecca3af547491a7320f66920005002d1c6c355d641a0745f2bd9689fa63fc", "f8cf83020fc485047b208d0083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e00000000000000000000000000000000000000000000000000000000000076b900000000000000000000000000000000000000000000000002651cd99a9cf438000000000000000000000000000000000000000000000000f5e7b9b77fe4a6be8205faa0fd4cc823414b3c32c90c949c3d10ee6242e863c85075a862a8c496bbbfd4802da07b6fae88a110691ae2903ca7a94a6db2e9e764fb467ca145c68e8ab2523c03ae", "f8cf83020fc585047b208d0083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e00000000000000000000000000000000000000000000000000000000000075e800000000000000000000000000000000000000000000000006be41f64046188e0000000000000000000000000000000000000000000000002f789352e3bc14e18205faa0fa825343f3454bfe1e058f11990e5c8ef6141925d4101d4ceaf623341c6591f2a06e2d6ed9133e02253dc49a7912ae03bf840595c2aa76edbb84a2bb149e2d8ccf", "f8cf83020fc685047b208d0083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e000000000000000000000000000000000000000000000000000000000000759e00000000000000000000000000000000000000000000000008dffa9800c2e0ba00000000000000000000000000000000000000000000000011550a7277b142038205faa0b121460ff7ee4ab63aeadbd261e92accf8bc2c2ea5acb5a97cf9048405500f83a029857cac6b1ac3252a77eb5391a8682ca9f79cc1bd4d11c22857118fffea1d7b", "f8cf83020fc885047b208d0083056d109445a01e4e04f14f7a4a6702c74187c5f6222033cd80b8642b28b34e00000000000000000000000000000000000000000000000000000000000076b000000000000000000000000000000000000000000000000002473b7548c8cab200000000000000000000000000000000000000000000000002496a38539f1a398205faa0614d43107c8dc2df02297304571df7fe7c733c61a36fa07ae02a4ea4ab238791a06f185c01fb1f7e63072f0fd6471259c2daf45dcb5ef0d00402cdd1e50e804d5b" ]
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}