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