{"_id":"@ignored/evm","_rev":"14-67c9e8aba85fdb2ba2c8bb620a142524","name":"@ignored/evm","dist-tags":{"latest":"1.0.0-beta.6"},"versions":{"1.0.0-beta.3":{"name":"@ignored/evm","version":"1.0.0-beta.3","keywords":["ethereum","EVM","JavaScript","TypeScript"],"author":{"name":"EthereumJS"},"license":"MPL-2.0","_id":"@ignored/evm@1.0.0-beta.3","maintainers":[{"name":"fvictorio","email":"victorio.franco@gmail.com"},{"name":"alcuadrado","email":"email@patriciopalladino.com"}],"contributors":[{"name":"Alex Beregszaszi","email":"alex@rtfs.hu"}],"homepage":"https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/evm#readme","bugs":{"url":"https://github.com/ethereumjs/ethereumjs-monorepo/issues?q=is%3Aissue+label%3A%22package%3A+evm%22"},"dist":{"shasum":"829ac9d56ffba13ac64ccfb810d569b863817bb0","tarball":"https://registry.npmjs.org/@ignored/evm/-/evm-1.0.0-beta.3.tgz","fileCount":198,"integrity":"sha512-9QjM0afKpKRIrP9jtlgt1EPhDizVKMJxGOD8fxbHMInKLLxnIdUAYHd3/mAOfXJ6CIG6PUhMPd2qtORkae8jzg==","signatures":[{"sig":"MEUCIFcTswNxeTHeFmL68BKjKDqefTz9c3cKTOGhJBrw/rMMAiEAsA6klxiHcbjuQe57upKO4m3CTE8bA9b3udgTMlDGNG4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":756472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/QU3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr4OhAAkK2rCiHG5TjSgNQSOXaiGZ6A9TJgtygFilnadoCy6Ai0Po+M\r\nzlMvZqj2xqbcmCXcMsIC0XeWk83bKQUfDiXz7GVyp9xINsHAY9Q+DEIepWti\r\njvSmj8c9Xg/Vy9+FehKGuLJtH7Zxso9xVBz6wmfcoCjpLNLTq0eBcd2KI3I9\r\nwYWjkooNQqv9YHjcFZdkwbS10YyZBOwMl7gfLf5xXqj/GGChnvnB3mon80Iw\r\nH6zqpr8rpnnlMcupaw4q7TTBANKA/OasUFlPqnjVDrWqdfFqFz/QpR4ro8ta\r\nBhUZnmucjZEiVuGiryVfpIwidp/MaQgZeA5O3+m/33Fb52BEWbVuBIOEWmH5\r\n/RvamVzJ7zgajQOgC+cFrMD1tZo0fYnauzNxcFg+RnydYyoWjQQvdXwVK6JC\r\nR5zH+bDgT5r5KR+vj//S7xdSnJG4fQMzXlYrRWyAZEqmISaISH5ciQ4ter2e\r\nwNY1IFyak2Sm6IAChoDEjEx1mg9/nz+sKn+l3pYJmtt6U00wEVLbvu0GQ+EC\r\n5Rt4+cL6bIheASNK0I6M+QaX1RV7XfRViuJ4MSo+BI1iCJY+VXYMXtbA4GfS\r\nNFuzNdlu+NaZvjVaavt24MWgG+RddAZD76dCsY8l1ouawe+FS9Q1CrBvuQRb\r\nh9mM2o1JuTzGoTqdxPxwa4A55HtW/HhUBog=\r\n=edDZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e6cd90ad72ae51dc60e6f2b0b6d3e56312469bbb","scripts":{"tsc":"../../config/cli/ts-compile.sh","lint":"../../config/cli/lint.sh","tape":"tape -r ts-node/register --stack-size=1500","test":"npm run tape -- './tests/**/*.spec.ts'","build":"../../config/cli/ts-build.sh","clean":"../../config/cli/clean-package.sh","coverage":"nyc npm run coverage:test","examples":"ts-node ../../scripts/examples-runner.ts -- vm","lint:fix":"../../config/cli/lint-fix.sh","lint:diff":"../../config/cli/lint-diff.sh","profiling":"0x ./benchmarks/run.js profiling","docs:build":"typedoc --options typedoc.js","formatTest":"node ./scripts/formatTest","test:browser":"karma start karma.conf.js","coverage:test":"npm run test"},"_npmUser":{"name":"fvictorio","email":"victorio.franco@gmail.com"},"repository":{"url":"git+https://github.com/ethereumjs/ethereumjs-monorepo.git","type":"git"},"_npmVersion":"8.15.1","description":"JavaScript Ethereum Virtual Machine (EVM) implementation","directories":{},"_nodeVersion":"14.19.3","dependencies":{"debug":"^4.3.3","mcl-wasm":"^0.7.1","rustbn.js":"~0.2.0","@ignored/util":"8.0.0-beta.3","@ignored/common":"3.0.0-beta.3","async-eventemitter":"^0.2.4","ethereum-cryptography":"^1.1.2","@types/async-eventemitter":"^0.2.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","solc":"^0.8.1","tape":"^5.3.1","karma":"^6.3.2","level":"^8.0.0","eslint":"^8.0.0","ts-node":"^10.2.1","minimist":"^1.2.5","node-dir":"^0.1.17","standard":"^10.0.0","benchmark":"^2.1.4","karma-tap":"^4.2.0","typescript":"^4.4.2","@types/node":"^16.11.7","@types/tape":"^4.13.2","memory-level":"^1.0.0","@types/core-js":"^2.5.0","@types/minimist":"^1.2.2","@types/node-dir":"^0.0.34","@types/benchmark":"^1.0.33","@types/lru-cache":"^5.1.0","karma-typescript":"^5.5.3","@ethersproject/abi":"^5.0.12","@ignored/statemanager":"1.0.0-beta.3","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/evm_1.0.0-beta.3_1660749110931_0.6806950817108706","host":"s3://npm-registry-packages"}},"1.0.0-beta.4":{"name":"@ignored/evm","version":"1.0.0-beta.4","keywords":["ethereum","EVM","JavaScript","TypeScript"],"author":{"name":"EthereumJS"},"license":"MPL-2.0","_id":"@ignored/evm@1.0.0-beta.4","maintainers":[{"name":"fvictorio","email":"victorio.franco@gmail.com"},{"name":"alcuadrado","email":"email@patriciopalladino.com"}],"contributors":[{"name":"Alex Beregszaszi","email":"alex@rtfs.hu"}],"homepage":"https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/evm#readme","bugs":{"url":"https://github.com/ethereumjs/ethereumjs-monorepo/issues?q=is%3Aissue+label%3A%22package%3A+evm%22"},"dist":{"shasum":"32994deef2f4938c7f47a5fa0289e8ae3cc5761e","tarball":"https://registry.npmjs.org/@ignored/evm/-/evm-1.0.0-beta.4.tgz","fileCount":198,"integrity":"sha512-12FsHW66FaZC1Em+yj0arRQVWl9tWDgrlq1VmGTv5kbX4SBVY1grGD7RUn7d4VyF4be/papuHzOTNptoTrtv6w==","signatures":[{"sig":"MEYCIQDH6r3BOWxlnsrzz2M24+qtd++ib57iRlOlw9oDJPXsTAIhAJILnTbIYfKLU5SyFhfEwohuX70pHbRTl9UiOQmYZ5AK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":756394,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjAR64ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpW6g/+PoPqSjrkTR3k8LYW6im1AeezogNaR5/vIHt1RuEJhFlX+Z69\r\n040JtZXNoSIKeWyM7qRbTmptm6l9DnmBBoDGk0OrTqUecCsvfIBeMV2LVa1O\r\nDS2/nDNYLaqBluBlhA/mbwFnMcu2ZNPlQ3qI7mpdegTDOwPya1FVV4EjHWz4\r\np07Kom1AIiwrRPhValhHcEb/aTrhLTI7BHW3Mz2gjAJElJ/B7FLY+FxTn9tu\r\nU+f2OyfXqTbx2ZTaZ9EOWaqqaKA9dVjvQN5r5hV/L9Xd6Ww+UOxz49epe2wv\r\n2z+uQvSUcWzu5k6TyoQMQYDQYHTHr/Pexs23WZYbATG3alAsXj1Z50kc8nS7\r\nDSDseZgIt1E8zZrprsJ3ofnQVptwunU3OqCFPMT/cHf1P9jiAL1MqsamBh/W\r\nPESPm3jQqZKb9t+JB63/rVowRtH7tlInlKdk6mI49oRlzHHwNzcZw9CRpDVS\r\nhPajzLQkwzFNJGlqjCrP5gq+jJIKUkCtgaXR++BCX8zFSlBv4j/3HYmOC2W8\r\nPTJrpZdI2Fyl0iL1J4v88iEUsTQ4WyqVT0P61YYaRZ2yXO7LbJKpwyH3Whqk\r\nnvrp7Oj8gxGPmBazaMvto2oB091yDmdqzKUWoU/64fC3EsnGw4QUN/xulnX7\r\nNG/rSqGRLxezEFBXso7Vb+OjLqIyQzs6NFg=\r\n=8DoP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=14"},"gitHead":"38f7fe0088ea852ecb0a8a5b4b5bcd00e68b5b25","scripts":{"tsc":"../../config/cli/ts-compile.sh","lint":"../../config/cli/lint.sh","tape":"tape -r ts-node/register --stack-size=1500","test":"npm run tape -- './tests/**/*.spec.ts'","build":"../../config/cli/ts-build.sh","clean":"../../config/cli/clean-package.sh","coverage":"c8 --all --reporter=lcov --reporter=text --reporter=text-lcov npm run coverage:test","examples":"ts-node ../../scripts/examples-runner.ts -- vm","lint:fix":"../../config/cli/lint-fix.sh","lint:diff":"../../config/cli/lint-diff.sh","profiling":"0x ./benchmarks/run.js profiling","docs:build":"typedoc --options typedoc.js","formatTest":"node ./scripts/formatTest","test:browser":"karma start karma.conf.js","coverage:test":"npm run test; cd ../vm; npm run tester -- --state"},"_npmUser":{"name":"fvictorio","email":"victorio.franco@gmail.com"},"repository":{"url":"git+https://github.com/ethereumjs/ethereumjs-monorepo.git","type":"git"},"_npmVersion":"8.15.1","description":"JavaScript Ethereum Virtual Machine (EVM) implementation","directories":{},"_nodeVersion":"14.19.3","dependencies":{"debug":"^4.3.3","mcl-wasm":"^0.7.1","rustbn.js":"~0.2.0","@ignored/util":"8.0.0-beta.4","@ignored/common":"3.0.0-beta.4","async-eventemitter":"^0.2.4","ethereum-cryptography":"^1.1.2","@types/async-eventemitter":"^0.2.1"},"_hasShrinkwrap":false,"devDependencies":{"solc":"^0.8.1","level":"^8.0.0","minimist":"^1.2.5","node-dir":"^0.1.17","benchmark":"^2.1.4","memory-level":"^1.0.0","@types/core-js":"^2.5.0","@types/minimist":"^1.2.2","@types/node-dir":"^0.0.34","@types/benchmark":"^1.0.33","@types/lru-cache":"^5.1.0","@ethersproject/abi":"^5.0.12","@ignored/statemanager":"1.0.0-beta.4"},"_npmOperationalInternal":{"tmp":"tmp/evm_1.0.0-beta.4_1661017784123_0.2971135995950076","host":"s3://npm-registry-packages"}},"1.0.0-beta.5":{"name":"@ignored/evm","version":"1.0.0-beta.5","keywords":["ethereum","EVM","JavaScript","TypeScript"],"author":{"name":"EthereumJS"},"license":"MPL-2.0","_id":"@ignored/evm@1.0.0-beta.5","maintainers":[{"name":"fvictorio","email":"victorio.franco@gmail.com"},{"name":"alcuadrado","email":"email@patriciopalladino.com"}],"contributors":[{"name":"Alex Beregszaszi","email":"alex@rtfs.hu"}],"homepage":"https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/evm#readme","bugs":{"url":"https://github.com/ethereumjs/ethereumjs-monorepo/issues?q=is%3Aissue+label%3A%22package%3A+evm%22"},"dist":{"shasum":"0be784a18f3aa5b31ca09611b898bd93b6ac6239","tarball":"https://registry.npmjs.org/@ignored/evm/-/evm-1.0.0-beta.5.tgz","fileCount":198,"integrity":"sha512-ZH2ExwwGOd4NfzASnh5Eo4/2Sx5hLV8mdlTTpAnv/pRttqQufNwyIsKcCVaT+JD0oFeIL41Pw7BXEOjzsRTtVw==","signatures":[{"sig":"MEUCIHLJ4F4eKaydAfba3BkRyc5O7ubNcldiX43X7mrA3QCkAiEApzDMruTuAlZ7Xej/diKvFBoJVLjSPh4Ro8EQ0dGm+vI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":756394,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjASDaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp37RAAkn+os3hjHMwptNpMSEBdtnRKPb+cCN29FEz9gbAMTUviqi0z\r\n5VGGUH6P0xW+qC/sb7ioSR4hCiASJ9Q5gfhTc6CLxVZTo4uMv69WeTAnB1TF\r\n4wXmElDAmUQqnYgR/quJUziwE7FUYTIbeIYCOhE1QZlXEB01IEXBTSJsBtN3\r\nVwQZo2D4KmbUnl0QucsjlC6rlTQ3NSsdz5NXA20zVJuLcIJv09i1+igddgFd\r\n97UclBtkoIEvfqPPBuUfjtF6ix7GGdwmFa5XHHXXQ7FHToWB15I1Cwl85rOW\r\nLrgwigqBlotf8ktd/neB2Vw+iUlVk9lkhAbSu4CGzJIEUhYluCc8Yzp/p8Pb\r\nFvQ7r1MzhYn2f0JY0TWQKKgWXqIfLI16tOAavrY2oAkWgdozCVimsH1UcPyF\r\nkPNm5FLAY/owKAneVW2yYHR84zhHo54aCi4yhiiFp2+9jUjraLVm6DbayKZ7\r\nhn8dss89gmDHfimoopkkz0qtJxeyeVtz9rYNzIS5mjBh1EMrX4SqK9uXhDce\r\nBD+MRnF3yNi/oJB41a5rq3r+BW6zwC/RCBMukFoDIVH6GCQvwhBkka+zndpu\r\nyx50YKiOyAz1WM4HB6FjpN5jzh5GyUPB035+KYq4D+ihGx2/qtw3n30okbrj\r\nnywcKjgjn64YZklcWRvTwqd9zRvU+K/1bp0=\r\n=tGB3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=14"},"gitHead":"38f7fe0088ea852ecb0a8a5b4b5bcd00e68b5b25","scripts":{"tsc":"../../config/cli/ts-compile.sh","lint":"../../config/cli/lint.sh","tape":"tape -r ts-node/register --stack-size=1500","test":"npm run tape -- './tests/**/*.spec.ts'","build":"../../config/cli/ts-build.sh","clean":"../../config/cli/clean-package.sh","coverage":"c8 --all --reporter=lcov --reporter=text --reporter=text-lcov npm run coverage:test","examples":"ts-node ../../scripts/examples-runner.ts -- vm","lint:fix":"../../config/cli/lint-fix.sh","lint:diff":"../../config/cli/lint-diff.sh","profiling":"0x ./benchmarks/run.js profiling","docs:build":"typedoc --options typedoc.js","formatTest":"node ./scripts/formatTest","test:browser":"karma start karma.conf.js","coverage:test":"npm run test; cd ../vm; npm run tester -- --state"},"_npmUser":{"name":"fvictorio","email":"victorio.franco@gmail.com"},"repository":{"url":"git+https://github.com/ethereumjs/ethereumjs-monorepo.git","type":"git"},"_npmVersion":"8.15.1","description":"JavaScript Ethereum Virtual Machine (EVM) implementation","directories":{},"_nodeVersion":"14.19.3","dependencies":{"debug":"^4.3.3","mcl-wasm":"^0.7.1","rustbn.js":"~0.2.0","@ignored/util":"8.0.0-beta.5","@ignored/common":"3.0.0-beta.5","async-eventemitter":"^0.2.4","ethereum-cryptography":"^1.1.2","@types/async-eventemitter":"^0.2.1"},"_hasShrinkwrap":false,"devDependencies":{"solc":"^0.8.1","level":"^8.0.0","minimist":"^1.2.5","node-dir":"^0.1.17","benchmark":"^2.1.4","memory-level":"^1.0.0","@types/core-js":"^2.5.0","@types/minimist":"^1.2.2","@types/node-dir":"^0.0.34","@types/benchmark":"^1.0.33","@types/lru-cache":"^5.1.0","@ethersproject/abi":"^5.0.12","@ignored/statemanager":"1.0.0-beta.5"},"_npmOperationalInternal":{"tmp":"tmp/evm_1.0.0-beta.5_1661018330563_0.8696681852543195","host":"s3://npm-registry-packages"}},"1.0.0-beta.6":{"name":"@ignored/evm","version":"1.0.0-beta.6","keywords":["ethereum","EVM","JavaScript","TypeScript"],"author":{"name":"EthereumJS"},"license":"MPL-2.0","_id":"@ignored/evm@1.0.0-beta.6","maintainers":[{"name":"fvictorio","email":"victorio.franco@gmail.com"},{"name":"alcuadrado","email":"email@patriciopalladino.com"}],"contributors":[{"name":"Alex Beregszaszi","email":"alex@rtfs.hu"}],"homepage":"https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/evm#readme","bugs":{"url":"https://github.com/ethereumjs/ethereumjs-monorepo/issues?q=is%3Aissue+label%3A%22package%3A+evm%22"},"dist":{"shasum":"984865a7ce65291bc4622d013eacc2db2a3ed31b","tarball":"https://registry.npmjs.org/@ignored/evm/-/evm-1.0.0-beta.6.tgz","fileCount":198,"integrity":"sha512-tReqtUVFdLIx2mcRWdmKFZhFVIHy4oq3DAAnIEnOFX6/2+OJ74hjap2itgDGYsa0srrijmk2/PAKrkZYkbacIQ==","signatures":[{"sig":"MEUCICZWRagEdOd3I5x2r2qCpQsz5QJDHyfT0FTd45VpVUkhAiEA9iRRO2vXT8VSDeyAJdm7zI9x7ZZxMqDFN6W0IcGO+5k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":756039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjASOeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpPew//XDxUk5H9YS2SPGPYkj80ZxLXFYdvtr3O8BDQEHHTwZinZ1x5\r\nHHiu9+KTArYPlNKV0cjoPHWWvCZmh5qmV7e6aZ7DxuejtvRHjg+4k24sqyyS\r\n661CTvpE5WR9wAWaF68IGbOfULqB0fnUEZlrUpDYQ2uUSyrHyvqu3HfHEJtK\r\nkew0XCdsh+/DlNzlFU9S//kT3Xp6/qBEA+n4RyvIbxmm4Ecw9u2kdOKV1yV7\r\njR/IlTMq5kzbeb9CJQOB/OGuyBZsznuoULOra2xRl9k3vL2lV4VlcDw6YFYg\r\nL6efZH6rVVcPD58BGhrW8N3faOhc7vAy5mznQPPh3ADoc38A1yR7ZI8N9C44\r\nvSQ9P7k7eJaKLe4xt5UfhEZrRWzp2WhXp7SW194OXMoxEuprfU+MOIM6QTVP\r\ndanPr3ohL6URK7OFukxwyz6nSJBT6oQIfSIw+4V/wUm/IMcB1plOeC4/al+m\r\nb8zKQQgrKvLIAXDf77pNMCjfAmYDu1NkL81LXLmWhSWM+FeoY6ZDzjYoLzqO\r\n7w0KBlQKDwNPSnuQxvsgg4TcbYUFbnESooAzA8Lep5ToWDIpzcQaN+LsyCUT\r\nNF4WkoZ+66OelK9h1m8f0YFkoOF6DOLnogCz/1re/WMtIIMcfBiHNfxWZayj\r\nF2RhjP9TE1vJx9VMd0h+7kZgF6leGH+0mlw=\r\n=HaWD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=14"},"gitHead":"38f7fe0088ea852ecb0a8a5b4b5bcd00e68b5b25","scripts":{"tsc":"../../config/cli/ts-compile.sh","lint":"../../config/cli/lint.sh","tape":"tape -r ts-node/register --stack-size=1500","test":"npm run tape -- './tests/**/*.spec.ts'","build":"../../config/cli/ts-build.sh","clean":"../../config/cli/clean-package.sh","coverage":"c8 --all --reporter=lcov --reporter=text --reporter=text-lcov npm run coverage:test","examples":"ts-node ../../scripts/examples-runner.ts -- vm","lint:fix":"../../config/cli/lint-fix.sh","lint:diff":"../../config/cli/lint-diff.sh","profiling":"0x ./benchmarks/run.js profiling","docs:build":"typedoc --options typedoc.js","formatTest":"node ./scripts/formatTest","test:browser":"karma start karma.conf.js","coverage:test":"npm run test; cd ../vm; npm run tester -- --state"},"_npmUser":{"name":"fvictorio","email":"victorio.franco@gmail.com"},"repository":{"url":"git+https://github.com/ethereumjs/ethereumjs-monorepo.git","type":"git"},"_npmVersion":"8.15.1","description":"JavaScript Ethereum Virtual Machine (EVM) implementation","directories":{},"_nodeVersion":"14.19.3","dependencies":{"debug":"^4.3.3","mcl-wasm":"^0.7.1","rustbn.js":"~0.2.0","@ignored/util":"8.0.0-beta.6","@ignored/common":"3.0.0-beta.6","async-eventemitter":"^0.2.4","ethereum-cryptography":"^1.1.2","@types/async-eventemitter":"^0.2.1"},"_hasShrinkwrap":false,"devDependencies":{"solc":"^0.8.1","level":"^8.0.0","minimist":"^1.2.5","node-dir":"^0.1.17","benchmark":"^2.1.4","memory-level":"^1.0.0","@types/core-js":"^2.5.0","@types/minimist":"^1.2.2","@types/node-dir":"^0.0.34","@types/benchmark":"^1.0.33","@types/lru-cache":"^5.1.0","@ethersproject/abi":"^5.0.12","@ignored/statemanager":"1.0.0-beta.6"},"_npmOperationalInternal":{"tmp":"tmp/evm_1.0.0-beta.6_1661019038313_0.2505902126487076","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-08-17T15:11:50.870Z","modified":"2026-06-12T13:33:55.487Z","1.0.0-beta.3":"2022-08-17T15:11:51.148Z","1.0.0-beta.4":"2022-08-20T17:49:44.344Z","1.0.0-beta.5":"2022-08-20T17:58:50.760Z","1.0.0-beta.6":"2022-08-20T18:10:38.558Z"},"bugs":{"url":"https://github.com/ethereumjs/ethereumjs-monorepo/issues?q=is%3Aissue+label%3A%22package%3A+evm%22"},"author":{"name":"EthereumJS"},"license":"MPL-2.0","homepage":"https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/evm#readme","keywords":["ethereum","EVM","JavaScript","TypeScript"],"repository":{"url":"git+https://github.com/ethereumjs/ethereumjs-monorepo.git","type":"git"},"description":"JavaScript Ethereum Virtual Machine (EVM) implementation","contributors":[{"name":"Alex Beregszaszi","email":"alex@rtfs.hu"}],"maintainers":[{"email":"john@kanej.me","name":"kanej"},{"email":"email@patriciopalladino.com","name":"alcuadrado"}],"readme":"# @ethereumjs/evm\n\n[![NPM Package][evm-npm-badge]][evm-npm-link]\n[![GitHub Issues][evm-issues-badge]][evm-issues-link]\n[![Actions Status][evm-actions-badge]][evm-actions-link]\n[![Code Coverage][evm-coverage-badge]][evm-coverage-link]\n[![Discord][discord-badge]][discord-link]\n\n| TypeScript implementation of the Ethereum EVM. |\n| ---------------------------------------------- |\n\n## Installation\n\nTo obtain the latest version, simply require the project using `npm`:\n\n```shell\nnpm install @ethereumjs/evm\n```\n\nThis package provides the core Ethereum Virtual Machine (EVM) implementation which is capable of executing EVM-compatible bytecode. The package has been extracted from the [@ethereumjs/vm](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/vm) package along the VM `v6` release.\n\nNote that this package atm cannot be run in a standalone mode but needs to be executed via the `VM` package which provides an outer Ethereum `mainnet` compatible execution context. Standalone functionality will be added along a future non-breaking release.\n\n## Usage\n\n```typescript\nimport { Chain, Common, Hardfork } from '@ethereumjs/common'\nimport { Blockchain } from '@ethereumjs/blockchain'\nimport { EEI } from '@ethereumjs/vm'\nimport { EVM } from '@ethereumjs/evm'\nimport { DefaultStateManager } from '@ethereumjs/statemanager'\n\n// Note: in a future release there will be an EEI default implementation\n// which will ease standalone initialization\nconst common = new Common({ chain: Chain.Mainnet, hardfork: Hardfork.London })\nconst blockchain = await Blockchain.create({ common })\nconst stateManager = new DefaultStateManager({ common })\nconst eei = new EEI(stateManager, common, blockchain)\n\nconst evm = new EVM({\n  common,\n  blockchain,\n  eei,\n})\n\nconst STOP = '00'\nconst ADD = '01'\nconst PUSH1 = '60'\n\n// Note that numbers added are hex values, so '20' would be '32' as decimal e.g.\nconst code = [PUSH1, '03', PUSH1, '05', ADD, STOP]\n\nevm.on('step', function (data) {\n  // Note that data.stack is not immutable, i.e. it is a reference to the vm's internal stack object\n  console.log(`Opcode: ${data.opcode.name}\\tStack: ${data.stack}`)\n})\n\nevm\n  .runCode({\n    code: Buffer.from(code.join(''), 'hex'),\n    gasLimit: BigInt(0xffff),\n  })\n  .then((results) => {\n    console.log(`Returned: ${results.returnValue.toString('hex')}`)\n    console.log(`gasUsed : ${results.gasUsed.toString()}`)\n  })\n  .catch(console.error)\n```\n\n### Example\n\nThis projects contain the following examples:\n\n1. [./examples/decode-opcodes](./examples/decode-opcodes.ts): Decodes a binary EVM program into its opcodes.\n1. [./examples/run-code-browser](./examples/run-code-browser.js): Show how to use this library in a browser.\n\nAll of the examples have their own `README.md` explaining how to run them.\n\n## API\n\n### Docs\n\nFor documentation on `EVM` instantiation, exposed API and emitted `events` see generated [API docs](./docs/README.md).\n\n### BigInt Support\n\nStarting with v1 the usage of [BN.js](https://github.com/indutny/bn.js/) for big numbers has been removed from the library and replaced with the usage of the native JS [BigInt](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) data type (introduced in `ES2020`).\n\nPlease note that number-related API signatures have changed along with this version update and the minimal build target has been updated to `ES2020`.\n\n## Architecture\n\n### VM/EVM Relation\n\nThis package contains the inner Ethereum Virtual Machine core functionality which was included in the [@ethereumjs/vm](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/vm) package up till v5 and has been extracted along the v6 release.\n\nThis will make it easier to customize the inner EVM, which can now be passed as an optional argument to the outer `VM` instance.\n\nAt the moment the `EVM` package can not be run standalone and it is therefore recommended for most use cases to rather use the `VM` package and access `EVM` functionality through the `vm.evm` property.\n\n### Execution Environment (EEI) and State\n\nFor the EVM to properly work it needs access to a respective execution environment (to e.g. request on information like block hashes) as well as the connection to an outer account and contract state.\n\nTo ensure a unified interface the `EVM` provides a TypeScript `EEI` interface providing which includes the necessary function signatures for access to environmental parameters as well as the VM state.\n\nThe [@ethereumjs/vm](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/vm) provides a concrete implementation of this interface which can be used to instantiate the `EVM` within an Ethereum `mainnet` compatible execution context.\n\n## Browser\n\nTo build the EVM for standalone use in the browser, see: [Running the EVM in a browser](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/evm/examples/run-code-browser.js).\n\n## Setup\n\n### Hardfork Support\n\nThe EthereumJS EVM implements all hardforks from `Frontier` (`chainstart`) up to the latest active mainnet hardfork.\n\nCurrently the following hardfork rules are supported:\n\n- `chainstart` (a.k.a. Frontier)\n- `homestead`\n- `tangerineWhistle`\n- `spuriousDragon`\n- `byzantium`\n- `constantinople`\n- `petersburg`\n- `istanbul`\n- `muirGlacier` (only `mainnet` and `ropsten`)\n- `berlin` (`v5.2.0`+)\n- `london` (`v5.4.0`+)\n- `arrowGlacier` (only `mainnet`) (`v5.6.0`+)\n- `merge` (only `goerli`, `ropsten` and soon `mainnet`)\n\nDefault: `merge` (taken from `Common.DEFAULT_HARDFORK`)\n\nA specific hardfork EVM ruleset can be activated by passing in the hardfork\nalong the `Common` instance to the outer `@ethereumjs/vm` instance.\n\n### EIP Support\n\nIt is possible to individually activate EIP support in the EVM by instantiate the `Common` instance passed to the outer VM with the respective EIPs, e.g.:\n\n```typescript\nimport { Chain, Common } from '@ethereumjs/common'\nimport { VM } from '@ethereumjs/vm'\n\nconst common = new Common({ chain: Chain.Mainnet, eips: [2537] })\nconst vm = new VM({ common })\n```\n\nCurrently supported EIPs:\n\n- [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) - Fee Market (`london` EIP)\n- [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315) - Simple subroutines (`experimental`)\n- [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS precompiles (`experimental`)\n- [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565) - ModExp gas cost (`berlin` EIP)\n- [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) - Typed transactions (`berlin` EIP)\n- [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929) - Gas cost increases for state access opcodes (`berlin` EIP)\n- [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) - Optional Access Lists Typed Transactions (`berlin` EIP)\n- [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) - BASEFEE opcode (`london` EIP)\n- [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529) - Reduction in refunds (`london` EIP)\n- [EIP-3540](https://eips.ethereum.org/EIPS/eip-3541) - EVM Object Format (EOF) v1 (`experimental`)\n- [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) - Reject new contracts starting with the 0xEF byte (`london` EIP)\n- [EIP-3670](https://eips.ethereum.org/EIPS/eip-3670) - EOF - Code Validation (`experimental`)\n- [EIP-3855](https://eips.ethereum.org/EIPS/eip-3855) - PUSH0 instruction (`experimental`)\n- [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860) - Limit and meter initcode (`experimental`)\n- [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399) - Supplant DIFFICULTY opcode with PREVRANDAO (Merge) (`experimental`)\n\n### Tracing Events\n\nOur `TypeScript` EVM is implemented as an [AsyncEventEmitter](https://github.com/ahultgren/async-eventemitter) and events are submitted along major execution steps which you can listen to.\n\nYou can subscribe to the following events:\n\n- `beforeMessage`: Emits a `Message` right after running it.\n- `afterMessage`: Emits an `EVMResult` right after running a message.\n- `step`: Emits an `InterpreterStep` right before running an EVM step.\n- `newContract`: Emits a `NewContractEvent` right before creating a contract. This event contains the deployment code, not the deployed code, as the creation message may not return such a code.\n\nAn example for the `step` event can be found in the initial usage example in this `README`.\n\n#### Asynchronous event handlers\n\nYou can perform asynchronous operations from within an event handler\nand prevent the EVM to keep running until they finish.\n\nIn order to do that, your event handler has to accept two arguments.\nThe first one will be the event object, and the second one a function.\nThe EVM won't continue until you call this function.\n\nIf an exception is passed to that function, or thrown from within the\nhandler or a function called by it, the exception will bubble into the\nEVM and interrupt it, possibly corrupting its state. It's strongly\nrecommended not to do that.\n\n#### Synchronous event handlers\n\nIf you want to perform synchronous operations, you don't need\nto receive a function as the handler's second argument, nor call it.\n\nNote that if your event handler receives multiple arguments, the second\none will be the continuation function, and it must be called.\n\nIf an exception is thrown from withing the handler or a function called\nby it, the exception will bubble into the EVM and interrupt it, possibly\ncorrupting its state. It's strongly recommended not to throw from withing\nevent handlers.\n\n## Understanding the EVM\n\nIf you want to understand your EVM runs we have added a hierarchically structured list of debug loggers for your convenience which can be activated in arbitrary combinations. We also use these loggers internally for development and testing. These loggers use the [debug](https://github.com/visionmedia/debug) library and can be activated on the CL with `DEBUG=[Logger Selection] node [Your Script to Run].js` and produce output like the following:\n\n![EthereumJS EVM Debug Logger](./debug.png?raw=true)\n\nThe following loggers are currently available:\n\n| Logger                             | Description                                         |\n| ---------------------------------- | --------------------------------------------------- |\n| `evm`                              |  EVM control flow, CALL or CREATE message execution |\n| `evm:gas`                          |  EVM gas logger                                     |\n| `evm:eei:gas`                      |  EEI gas logger                                     |\n| `evm:ops`                          |  Opcode traces                                      |\n| `evm:ops:[Lower-case opcode name]` | Traces on a specific opcode                         |\n\nHere are some examples for useful logger combinations.\n\nRun one specific logger:\n\n```shell\nDEBUG=evm ts-node test.ts\n```\n\nRun all loggers currently available:\n\n```shell\nDEBUG=evm:*,evm:*:* ts-node test.ts\n```\n\nRun only the gas loggers:\n\n```shell\nDEBUG=evm:*:gas ts-node test.ts\n```\n\nExcluding the ops logger:\n\n```shell\nDEBUG=evm:*,evm:*:*,-evm:ops ts-node test.ts\n```\n\nRun some specific loggers including a logger specifically logging the `SSTORE` executions from the EVM (this is from the screenshot above):\n\n```shell\nDEBUG=evm,evm:ops:sstore,evm:*:gas ts-node test.ts\n```\n\n### Internal Structure\n\nThe EVM processes state changes at many levels.\n\n- **runCall**\n  - checkpoint state\n  - transfer value\n  - load code\n  - runCode\n  - materialize created contracts\n  - revert or commit checkpoint\n- **runCode**\n  - iterate over code\n  - run op codes\n  - track gas usage\n- **OpFns**\n  - run individual op code\n  - modify stack\n  - modify memory\n  - calculate fee\n\nThe opFns for `CREATE`, `CALL`, and `CALLCODE` call back up to `runCall`.\n\nTODO: this section likely needs an update.\n\n## Development\n\nSee [@ethereumjs/vm](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/vm) README.\n\n## EthereumJS\n\nSee our organizational [documentation](https://ethereumjs.readthedocs.io) for an introduction to `EthereumJS` as well as information on current standards and best practices. If you want to join for work or carry out improvements on the libraries, please review our [contribution guidelines](https://ethereumjs.readthedocs.io/en/latest/contributing.html) first.\n\n## License\n\n[MPL-2.0](<https://tldrlegal.com/license/mozilla-public-license-2.0-(mpl-2)>)\n\n[discord-badge]: https://img.shields.io/static/v1?logo=discord&label=discord&message=Join&color=blue\n[discord-link]: https://discord.gg/TNwARpR\n[evm-npm-badge]: https://img.shields.io/npm/v/@ethereumjs/evm.svg\n[evm-npm-link]: https://www.npmjs.com/package/@ethereumjs/evm\n[evm-issues-badge]: https://img.shields.io/github/issues/ethereumjs/ethereumjs-monorepo/package:%20evm?label=issues\n[evm-issues-link]: https://github.com/ethereumjs/ethereumjs-monorepo/issues?q=is%3Aopen+is%3Aissue+label%3A\"package%3A+evm\"\n[evm-actions-badge]: https://github.com/ethereumjs/ethereumjs-monorepo/workflows/EVM/badge.svg\n[evm-actions-link]: https://github.com/ethereumjs/ethereumjs-monorepo/actions?query=workflow%3A%22EVM%22\n[evm-coverage-badge]: https://codecov.io/gh/ethereumjs/ethereumjs-monorepo/branch/master/graph/badge.svg?flag=evm\n[evm-coverage-link]: https://codecov.io/gh/ethereumjs/ethereumjs-monorepo/tree/master/packages/evm\n","readmeFilename":"README.md"}