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