{"_id":"@bradthomasbrown/900ef2","name":"@bradthomasbrown/900ef2","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@bradthomasbrown/900ef2","description":"Minimal, unoptimized, and unaudited { podman, containerized evm node (foundry's anvil, go-ethereum, etc. } library in JavaScript/TypeScript.","version":"1.0.0","author":{"name":"Brad Brown","email":"https://t.me/bradthomasbrown"},"type":"module","scripts":{"bump-patch":"npm version patch && git push && npm publish --access=public","bump-minor":"npm version minor && git push && npm publish --access=public","bump-major":"npm version major && git push && npm publish --access=public","prepublishOnly":"bun test.ts"},"exports":{".":"./dist/900ef2.js"},"dependencies":{"@bradthomasbrown/ejra":"^1.0.5","@bradthomasbrown/podman":"^1.1.7"},"devDependencies":{"@types/bun":"^1.3.5","@types/node":"^25.0.3"},"_id":"@bradthomasbrown/900ef2@1.0.0","gitHead":"be8448d66e970df90264273e819d5506b997c4dd","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-Q4ZiC3jHlS2wzF7Wia7dpEupTyebZvVNznPjrxoIjH+JuR0ReOxj5Cec/QqxPvms9zUlOBsvnBa8wtnoLsJg6g==","shasum":"7fcbd0895f3e73d22fd84497c4924a65f26946ca","tarball":"https://registry.npmjs.org/@bradthomasbrown/900ef2/-/900ef2-1.0.0.tgz","fileCount":8,"unpackedSize":11338,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC5WtKUX9sU5qRfhMhme+EShx1dVbNQRv9wz9B06B+r9wIhAP4UQnfqc8JLWmhRaiWicDHhiehWsZb1A0DzbBhT0UQA"}]},"_npmUser":{"name":"bradthomasbrown","email":"bradthomasbrown@outlook.com"},"directories":{},"maintainers":[{"name":"bradthomasbrown","email":"bradthomasbrown@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/900ef2_1.0.0_1767273356587_0.795016996905549"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-01T13:15:56.398Z","1.0.0":"2026-01-01T13:15:56.729Z","modified":"2026-01-01T13:15:57.032Z"},"maintainers":[{"name":"bradthomasbrown","email":"bradthomasbrown@outlook.com"}],"description":"Minimal, unoptimized, and unaudited { podman, containerized evm node (foundry's anvil, go-ethereum, etc. } library in JavaScript/TypeScript.","author":{"name":"Brad Brown","email":"https://t.me/bradthomasbrown"},"readme":"# 900ef2\r\nThis is function that can return classes which can create containerized EVM nodes and return interfaces for them, with some helpful features, in TypeScript/JavaScript.\r\nFeatures include automatic cleanup and \"wait until responsive\" logic, as well as returning a class (see `@bradthomasbrown/ejra`) to make interacting with the EVM node more convenient.\r\n\r\n## Why?\r\nTo make testing EVM nodes a little bit easier to manage.\r\n\r\n## Dependencies\r\nThis has a hard dependency on having `podman` for containers and images. See [podman.io](https://podman.io/).\r\n\r\n## Installation\r\n```sh\r\nnpm i @bradthomasbrown/900ef2\r\n```\r\n\r\n## Usage\r\n```js\r\nimport { _900ef2_ } from \"@bradthomasbrown/900ef2\";\r\n\r\nconst anvilPort = 8546;\r\nconst gethPort = 8547;\r\n\r\nconst Anvil = _900ef2_(\"ghcr.io/foundry-rs/foundry:v1.5.1\", `anvil -b 1 -p ${anvilPort} --host 0.0.0.0`);\r\nconst Geth = _900ef2_(\"ethereum/client-go\", [\"--dev\", \"--http\", \"--http.addr\", \"0.0.0.0\", \"--http.port\", `${gethPort}`, \"--http.api\", \"eth,debug\"]);\r\n\r\nconst [anvilNode, gethNode] = await Promise.all([Anvil.make(anvilPort), Geth.make(gethPort)]);\r\n\r\nconst [anvilChainId, gethChainId] = await Promise.all([anvilNode, gethNode].map(node => node.chainId()));\r\n\r\nconst anvilUrl = anvilNode.client.url;\r\nconst gethUrl = gethNode.client.url;\r\n\r\nconsole.log({ anvilUrl, anvilChainId, gethUrl, gethChainId });\r\n/*\r\n{\r\n  anvilUrl: \"localhost:8546\",\r\n  anvilChainId: 31337n,\r\n  gethUrl: \"localhost:8547\",\r\n  gethChainId: 1337n,\r\n}\r\n*/\r\n```","readmeFilename":"README.md","_rev":"1-1b5b8daacf846247ac1d5fcb642ac52d"}