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