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