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