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