Resolc version: 0.1.0-dev.12+commit.76f4cf7.llvm-18.1.8
Description: emit ev(42, new uint16 ); causes execution to fail. However, following the commented method does not result in failure. Both solc+evm and zksolc+zkvm execute successfully.
contract C {
event ev(uint8, uint16[]);
bytes s;
function f() public {
emit ev(42, new uint16[](63));
// uint[] memory dynamicArray;
// dynamicArray = new uint[](63);
}
}
Run with resolc
I have set up an execution environment that can directly execute the bytecode generated by revive compilation.
compile
resolc --solc solc test.sol --combined-json hashes,bin,abi -o /tmp/tmpdh_0t_pr --overwrite
execute
revive/target/debug/revive-runner 50564d00005b14000000000000010700c13000c000400320b75821f3f2ed3c936f3881f8d9142adff8b91d6404755d67f09242eb6260808e04808207000000000e0000001c0000002a00000037000000420000005400000063616c6c5f646174615f636f707963616c6c5f646174615f6c6f616463616c6c5f646174615f73697a656465706f7369745f6576656e747365616c5f72657475726e7365745f696d6d757461626c655f6461746176616c75655f7472616e7366657272656405110291140463616c6c911b066465706c6f790693871d0291246500330189018e01a80139024e0273027f02a3028303ec04ee058b06a106e2079c080809510a930ee00e3810671084108e10fb1004111b1123118b791052093b3309010001ae9833c8780883881f8488e0553801000128390a200002ae8a123d082000023308300002c8870732003308300002c88707320000009511d87b10207b15187b161082897b19088289087b1982851082861883773308205010029f6f686f59821a6faa821b086fbb787b18787a10787908787898bc38787c1f98bc30787c1e98bc28787c1d98bc20787c1c98bc18787c1b98bc10787c1a98bb08787b1998ab38787b1798ab30787b1698ab28787b1598ab20787b1498ab18787b1398ab10787b1298aa08787a11989a38787a0f989a30787a0e989a28787a0d989a20787a0c989a18787a0b989a10787a0a989908787909988938787907988930787906988928787905988920787904988918787903988910787902988808787801821020821518821610951128320082186f888219086f99821a106faa821b186fbb7b1b387b1a307b19287b18208379831720330801646a0a039551a082105882155082164895116032009511f07b10087b158475010a02013d0724000251050750100609501008f6009511c07b10387b15309515408411e033074033082050100a5dfe46171f800046171e46171d46171c46171b46171a46171946171846171746171646171546171446171346171246171146171046170f46170e46170d46170c46170b46170a4617094617084617074617064617054617044617034617024617014607491118490149110849111083170a0601821710821818821908821ad49808d4a707d487075107163307330850100cccfd837833070133090a040133078000330850100eb7fd8377330833090a01390828000251080d330730000383770a050133078000330850101092fd8378330733093300120a0401951180fe7b1078017b1570017b166801951580018411e0641633074033082050101462fd46171f800046171e46171d46171c46171b46171a46171946171846171746171646171546171446171346171246171146171046170f46170e46170d46170c46170b46170a461709461708461707461703330824000246170246170146077b68d80039082400024617064617054617045318041d0d8367400133080a010180675c01977720140800000000f01f1226ab87fe0c9517e08477e07b67d0006471491718491710491708490783770a0601826ad00082a71082a81882a90882aad49808d4a707d487075207c60c8267d8008177541703bc0c33074033082050101682fc7c78097c79087c7a0a7c7b0b978808d4980897aa1097bb18d4ba0ad4a8087c790d7c7a0c7c7b0e7c7c0f979908d4a90997bb1097cc18d4cb0bd4b909979920d489027c79017c7a7c7b027c7c03979908d4a90997bb1097cc18d4cb0bd4b9097c7a057c7b047c7c067c780797aa08d4ba0a97cc10978818d4c808d4a808978820d498037c78197c7a187c7b1a7c7c1b978808d4a80897bb1097cc18d4cb0bd4b8087c7a1d7c7b1c7c7c1e7c791f97aa08d4ba0a97cc10979918d4c909d4a909979920d4890a7c78117c79107c7b127c7c13978808d4980897bb1097cc18d4cb0bd4b8087c79157c7b147c7c167c7717979908d4b90997cc10977718d4c707d49707977720d487076f786fab6f396f2ad49a0c88b700f894877b6ca00094c75107a10b95b7ff079577017b67d000d8b707c8780c7b6cc8007b68b000d88c08da7708c8a8087b68c000d8a807c897077b67b8003307403308207b6990007b6a98007b6ba80050101819fb8268b8006f888269c0006f99826ac8006faa826bd0006fbb787b1898bc38787c1f98bc30787c1e98bc28787c1d98bc20787c1c98bc18787c1b98bc10787c1a98bb08787b19787a1098ab38787b1798ab30787b1698ab28787b1598ab20787b1498ab18787b1398ab10787b128262a80098aa08787a11787908989a38787a0f989a30787a0e989a28787a0d989a20787a0c989a18787a0b989a10787a0a9899087879097878988938787907988930787906988928787905988920787904988918787903988910787902988808826c9800d4c209826ab000826b9000d4ba0ad4a909989920d4ca0a97aa20d4a9097878015209520a83273308207b67d00050101a17fa8269a80046171f3f46171e46171d46171c46171b46171a46171946171846171746171646171546171446171346171246171146171046170f46170e46170d46170c46170b46170a4617094617084617074617064617054617044617034617024617011408e0ffffff00000000d88908826ab00094a8826aa00094a846075108c3098267d80081777b67d8009597207b67b80083773308e00750101c7af983773308e0078269d8000a33074033082050101e64f97c78197c79187c7a1a7c7b1b978808d4980897aa1097bb18d4ba0ad4a8087c791d7c7a1c7c7b1e7c7c1f979908d4a90997bb1097cc18d4cb0bd4b909979920d489027c79117c7a107c7b127c7c13979908d4a90997bb1097cc18d4cb0bd4b9097c7a157c7b147c7c167c781797aa08d4ba0a97cc10978818d4c808d4a808978820d498037c78097c7a087c7b0a7c7c0b978808d4a80897bb1097cc18d4cb0bd4b8087c7a0d7c7b0c7c7c0e7c790f97aa08d4ba0a97cc10979918d4c909d4a909979920d4890a7c78017c797c7b027c7c03978808d4980897bb1097cc18d4cb0bd4b8087c79057c7b047c7c067c7707979908d4b90997cc10977718d4c707d49707977720d487076f7b6fac6f3a6f29d4ba07d4c908d47808988820d4c707977720d487075207690883973308207b67487b69607b6a587b6b507b6c6850102023f8826c68826250826b58826a6046171f2ad42c091408e0ffffff00000000d88a0894b8949846171e46171d46171c46171b46171a46171946171846171746171646171546171446171346171246171146171046170f46170e46170d46170c46170b46170a46170946170846170746170646170546170446170346170246170146075108cc0795a7407b67c800d8a707c87b087b68d800d8b808da7708c8c8087b68a000d8c807c827077b67c00082674883772033082050102269f746171f4046171e46171d46171c46171b46171a46171946171846171746171646171546171446171346171246171146171046170f46170e46170d46170c46170b46170a46170946170846170746170646170546170446170346170246170146073308208267d000501024fdf68262c800826aa000d4a2088269d800826bc000d4b909d49808988820d4a909979920d49808520801077c78197c79187c7a1a7c7b1b978808d4980897aa1097bb18d4ba0ad4a8087c791d7c7a1c7c7b1e7c7c1f979908d4a90997bb1097cc18d4cb0bd4b909979920d498087b68787c78117c79107c7a127c7b13978808d4980897aa1097bb18d4ba0ad4a8087c79157c7a147c7b167c7c17979908d4a90997bb1097cc18d4cb0bd4b909979920d498087b6888007c78097c79087c7a0a7c7b0b978808d4980897aa1097bb18d4ba0ad4a8087c790d7c7a0c7c7b0e7c7c0f979908d4a90997bb1097cc18d4cb0bd4b909979920d498087b68a0007c78017c797c7a027c7b03978808d4980897aa1097bb18d4ba0ad4a8087c79057c7a047c7b067c7707979908d4a90997bb10977718d4b707d49707977720d487077b6780008327330820501026b4f5826b7882698800787910826aa00098a83878780f98a83078780e98a82878780d98a82078780c98a81878780b98a81078780a98a808787809787a08826380009838387878079838307878069838287878059838207878049838187878039838107878029838087878017873787b18989838787817989830787816989828787815989820787814989818787813989810787812989808649478781198b83878781f98b83078781e98b82878781d98b82078781c98b81878781b98b81078781a98b808787819826c6095c7607b67d800d8c707826a58c87a02d8a208da7708826968c88900d443078268a000d4b808d48707d89008826950c889047b64d00052070e8263d80064246409287b04826788006f786fb7330a016479da8a09e4a70adb890a826980006f9c7b6c80008269a0006f997b62c0008e937b69788ecbdac30b93b701d49c0cdaca077b678800648793b7dac8077b677014080000000001000000826cd80064c7826bc000dab807e48c09dbb7098e078e4ada470adbac08d44007da790864b993a9da7b09826760c9780a95a2bfd8a20ad87808826758c9790bc98b0cc8ac0b95bbffd3cb03d8cb0cda3a0cd3790ad87909daa8097b6930640a934ada400a826768c97a077b6728c997077b67389577ff7b6740c8c7077b672097773b98bc057b60c800d47c0097bb3b982705d4b7077b67a0008268a80098872064898e788267b0008e7cda780cc88702140bffffffff00000000c99b0b98bb0597283bc98b0b9a28988805826798009a72c9c2097b691097993bd498087b6818d38009d880078268a000d8b803db9703826730826828d87808826968d89a09826750c9740ac99a0ac98a0a826738887701c97a0a826920826740d87907c8a707989905977a3bd4a904d8c208826998008e9a82699000c89a0ac88a0a82681098880597ac3bc9c80c9872059aa7987a05d8c409d3a208d8a207da8907d3c409d49808da83078269a000da7b097b69a000826818da7800da7c04da7a0282688800888701826c70c97c039587ff7b6740d30308d8030ad8970bdb8a0b826a7864a8826980009398da9a08649a82698800d4c909889901c9980cd89808c98a08d32809d8280ad84c07db9a07d34c0ad4a909db970bdbb802dbbc04dbb3008268a000826740dbb70898873b6489970805d48707979805826c58c87c0a826760c8870bd87b08c88a03d3c309d8c307da9807826ab8008268a800d88a088269b000c8890c7b6ca000d89c09da880982689800c889097b69b000d8890882699000c898087b68a80098083b974905d4980898493b972205d49209826c50c8c909826c68c8c808d8c80cc8c909c88707d88708c8890495b880007b688800d8b808c883097b698000d83909826ca000826ba8008262c000da8809c879097b6978d87907c847077b67708267b000016479d4a707d4bc08d487079877207b69b000d49808978820d487075207b9017b6ca0007b6ba80083a73308207b6ab8007b62c00050102872f1826cc8008262c000826bd800d4cb08826ad000d4a209d49808988820d4c909979920d49808520876017c781e7b6898007c771f7b67900083b73308207b6ad0007b6bd8007b6cc80050102a25f18268900078781f8268980078781e46171d46171c46171b46171a46171946171846171746171646171546171446171346171246171146171046170f46170e46170d46170c46170b46170a46170946170846170746170646170546170446170346170246170146078267d800957320d873098267c000c89704d8740ada990a8267c800c8a709d8790a8262d000c8a2028267b800957a20d87a0b8267a000c8b70cd87c07dabb078268b000c88707d887087b68d800826b78d39b0b82688800d38308d4b8007b62d000826870d3820b82688000d38408d4b808d48000826ba8008268d800c88b0b7b63d80064427b69c80052008afe826060d80307826b58d3b408d8b40ada870a826c68c9c908d8c9097b69d800826c508269d000c9c902d8a80c8269d800c8c909c9920cc9a809c9b408c97807c90308d4c707d4980ad47a0ad4970798aa20977720d4a70751076e003307330850102ccdef837833070133090a0401492610014926080149260001140700000000717b484e956800017b671801330750102edeef4926f8004926f0004926e000413307049568e0004926e800501030c1ef330824330750103277ef83783307013309240a04013a070000027b6738013a070800023a091000023a0a1800027b6730017b692801956920017b6a20018267483300349511a07b10587b15507b16489515608411e0829a7b1a18829a087b1a10829a107b1a088299187b198377838664683300042808ef3307330850103601ef8378330733090a043307330038285ef0330750103859f033070150103a51f00049489220248414d249525252a22a252949922449922449922449922449922449922449922449aa945292945492a4a43424429224092149922449922449922449925252939424154a8d427548a851a8d288884849084992244992244992240949119284a8910022899254234949220a4948922449922449922425499224499224499224499224499224499224499224499254258a22124944924822898810455194244992244992244992249124499224499292244992249188244912254244922449922449922449922401248a8a281245286212922449922449922449922449922449922449922449922449929424499224499224554992244a92242449248054922449922449922449922445228924914492104992244992244992244992940811894892249224499224499224499224499224499224912449922449922449a42449922449922489121289244992244912499224499294244992244949922449922489244992489244a21295924411452949a29200a2485249524992244992244925499224492449442a4a024892122549924892244992244992248a24495292244924922492244992a2144992244992249294244992241189441289442249922449924424918848922496249124224a4488884492249148948808914892244992244992244992a448224924914822492491441249248948149124499248249124499224c90aa5464400118588908890424943841022229224494a92a42aa9505552480800 26121ff0
thread 'main' panicked at crates/runner/src/main.rs:169:9:
assertion `left == right` failed: contract execution result mismatch: Exec { result: ContractResult { gas_consumed: Weight { ref_time: 142027609, proof_size: 5211 }, gas_required: Weight { ref_time: 142027609, proof_size: 5211 }, storage_deposit: StorageDeposit::Charge(0), result: Err(Module(ModuleError { index: 3, error: [11, 0, 0, 0], message: Some("ValueTooLarge") })) }, wall_time: 3.123437ms }
left: true
right: false
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Resolc version: 0.1.0-dev.12+commit.76f4cf7.llvm-18.1.8
Description: emit ev(42, new uint16 ); causes execution to fail. However, following the commented method does not result in failure. Both solc+evm and zksolc+zkvm execute successfully.
Run with resolc
I have set up an execution environment that can directly execute the bytecode generated by revive compilation.
compile
execute