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