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