EVMSEALEDEVM
@▫?*██╱▒&*▪○◆▒╲%╲◆▪░^█╱^&▒▓○~░~■▓!○%╱#□╲*~◆○#▫%╳~^~▓%□&╱░▒#▒◇■■~
Transaction ID
Execution Fee
0.00494 FLOWTransaction Summary
EVMCalled EVM
EVM Hashes
Contracts
Script Arguments
0hexEncodedTxs[String]
[ "f909ef82011c8504e5f667808304baa294bb7684cc5408f4dd0921e5c2cadd547b8f1ad57380b90984f87343020000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000740000000000000000000000000000000000000000000000000000000000000006d0a148d50a024b2f5593605d3ce8183ca8969226fcbf81214f29a32073c35f228144f3d4b787d76f47ed3771f1a05174274d41c2214f29a32073c35f228144f3d4b787d76f47ed3771f280132204b1163475dc3203c42547e349377c6f631d99429ae6cf0f2c86f33637ceecadb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000000412ecd287ec567280fc72ebc5c9293fede8dea300429aa5eaa1dd78dac609edf2027b896ae91fc52363674d1296a3914f37521b7fe6c0c727aeaf1568668c3e8cc1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041b1234d9884218163951f3f1e4b93aff21ee2e7fd3123cc1781c4e5f2a9adcf0b73af16d3c8d43a064465b0d355a62589e030d0ac2041d8d6bd74539afc68800a1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041ff42a5f40e769d3c32ca10ff2ba64af0e5972abb1b3c868449a3e417147601bd22d645e41a07bf357e54cc3bac241f1a8df7ea58308a2fbe0f8f852b40feea451b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041cdea2b925a91eb2a7a57c07c7350ff7b4937721fd2b3012d9b9ab868952a56cc10e7de35053c49d59bf27ced0b9dfb6aca7cb1eacc8ab942047911181cb090321c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041861b5bb0e2636c4efe22a36164cef844b896466f3d587981b5cc8eefaf5bcedb64d2f7b361361289b1246d962f9a0fdad845863017b882f6361cc10aa1b256961c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000411a040a235a432b568c391d7b4b9665f84bc1c69abf61f6a15317639dde24351a434b3cbe9ac4247695f214a7ce3ab4c6bb763eaf66a3674b1fba8b1ff814ede11b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000241a100333eefa2efc389ec836a6ff619fc1c644000000000000000000000000273035e10f106499eface385dba07135e7cc8e5400000000000000000000000055f4a1bfc655cf55ed325f2338a1dee84f754df200000000000000000000000057c96a00f9ff7b25cb5cf964f1a191be9321b8c8000000000000000000000000954adc74481634b4d278c459853b4e6cc17ae8d200000000000000000000000098e9d288743839e96a8005a6b51c770bbf7788c00000000000000000000000009a66644084108a1bc23a9ccd50d6d63e53098db60000000000000000000000009ac5279013edfec74c5c2976fc831ad0527402e00000000000000000000000009cd5006e1bff785dad5869efd81a2c42545c9d9b000000000000000000000000a73b339c3fae27bedf7cb72d9d000b08fc899609000000000000000000000000bfa2f68bf9ad60dc3cfb1cef04730eb7fa251424000000000000000000000000c74acab8c0a340f585d008cb521d64d2554171a8000000000000000000000000cf12dd34d7597d06ff98f85d2b9483d9d5f7d952000000000000000000000000d10c833f4305e1053a64bc738c550381f48104ca000000000000000000000000f4151eebfa1b9c87dd92c8243a18b1baef8c1813000000000000000000000000f5ad7f3782e8a67bffa297684e27cf9fcc781be1000000000000000000000000f6e93eb288658de5e2e982f99d2b378b22959d1500000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000002f25b573035c03c12700000000000000000000000000000000000000000000000202ba9d99482cbd53c00000000000000000000000000000000000000000000027a11a53a071e5b751000000000000000000000000000000000000000000000053188971f883c66f6400000000000000000000000000000000000000000000002b73f2342a8fefae320000000000000000000000000000000000000000000000e7969819f718692188c000000000000000000000000000000000000000000000f7ebcb79a91af99fcbe6c500000000000000000000000000000000000000000039175b3de214c7626e00000000000000000000000000000000000000000000006a55c45fba8062acd10000000000000000000000000000000000000000000000071f4370dd019439adf800000000000000000000000000000000000000000000bdddba513ee21c17a26b0000000000000000000000000000000000000000000091a0d3c23a6e4e194a00000000000000000000000000000000000000000000003bcbef031eefd3beab00000000000000000000000000000000000000000000008ad0d52b22bee5ebc800000000000000000000000000000000000000000000004329eae996f400d80f0000000000000000000000000000000000000000000000001efc44a3bf778504000000000000000000000000000000000000000000000000043c33c19375648000008205faa01f4498e93b6ddf11d1d1e679c2a824f770a18d03f6bfa6dbcb64574976932c98a012fd151bed05e76c2da48186265dd2cd33167c41dee9469e174db4d8101d47a1" ]
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}