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