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