{"_id":"@assert-equals/headless-wallet","_rev":"7-8f2ba0a2730c1ec527b7516f0bed65b3","name":"@assert-equals/headless-wallet","dist-tags":{"latest":"0.0.16"},"versions":{"0.0.1":{"name":"@assert-equals/headless-wallet","version":"0.0.1","keywords":["dapp","ethereum","headless","metamask","playwright","testing","wallet","web3","webdriver"],"author":{"name":"Peter Yinusa"},"license":"ISC","_id":"@assert-equals/headless-wallet@0.0.1","maintainers":[{"name":"peteryinusa","email":"peter.yinusa@gmail.com"}],"homepage":"https://github.com/assert-equals/headless-wallet#readme","bugs":{"url":"https://github.com/assert-equals/headless-wallet/issues"},"dist":{"shasum":"975e4deac384d1472065d1d1b7e2d6f5d27f9629","tarball":"https://registry.npmjs.org/@assert-equals/headless-wallet/-/headless-wallet-0.0.1.tgz","fileCount":28,"integrity":"sha512-0BEac+dWMrzCW34zYbRJLLdhA+NquDxnnk5UvDPuL0KDuhPe30qx0PJoTXWd5VVzoqkADyUIN+zVO9RQBnTFNQ==","signatures":[{"sig":"MEQCIGhfQYN/BNcZjr4aHD2woonjourv3olNtOUaLHuTOVbbAiAjcUwccVn/iUILAYYPhYBkpmJKh4zDjLSoKkf8082qqA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26362},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b76937013969f53543a3c2c70bbae3d313ef9507","scripts":{"dev":"tsc -W","build":"tsc","start":"ts-node src/server.ts","format":"prettier --write .","test:webdriver":"ts-node tests/webdriver/transaction.spec.ts","test:playwright":"playwright test --headed"},"_npmUser":{"name":"peteryinusa","email":"peter.yinusa@gmail.com"},"namespace":"@assert-equals","repository":{"url":"git+https://github.com/assert-equals/headless-wallet.git","type":"git"},"_npmVersion":"10.8.2","description":"Web3 dApp testing with a MetaMask equivalent headless wallet, using Playwright or WebDriver —no extension popups","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.5","viem":"^2.21.54","dotenv":"^16.4.7","express":"^4.21.1","ts-node":"^10.9.2","prettier":"^3.4.2","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/node":"^20.17.9","@types/express":"^5.0.0","@playwright/test":"^1.49.0","selenium-webdriver":"^4.27.0","@types/selenium-webdriver":"^4.1.27"},"peerDependencies":{"viem":"^2.21.54","@playwright/test":"^1.49.0"},"_npmOperationalInternal":{"tmp":"tmp/headless-wallet_0.0.1_1733799736395_0.08965250244139744","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@assert-equals/headless-wallet","version":"0.0.8","keywords":["dapp","ethereum","headless","metamask","playwright","testing","wallet","web3","webdriver"],"author":{"name":"Peter Yinusa"},"license":"ISC","_id":"@assert-equals/headless-wallet@0.0.8","maintainers":[{"name":"peteryinusa","email":"peter.yinusa@gmail.com"}],"homepage":"https://github.com/assert-equals/headless-wallet#readme","bugs":{"url":"https://github.com/assert-equals/headless-wallet/issues"},"dist":{"shasum":"c9b81745c5bfb9cd984a01dbd11152cc4c350e42","tarball":"https://registry.npmjs.org/@assert-equals/headless-wallet/-/headless-wallet-0.0.8.tgz","fileCount":28,"integrity":"sha512-qoweKBvD0ST6iZih30EtQX+ygWXQQtp3VwT6GHmRa0slJp+P+Uick4MF70Vsl4MIe18uTueQCzAk90ENktBRzA==","signatures":[{"sig":"MEYCIQCJQzih6O5U5HvIgAh94bq4x71Qrg1d8Lvwgnx66vbCrQIhAKWoP/K5kCBUiDjggqCT6R/927seCXcRbCNhPC72g2yQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29756},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"bb44d697e3ac7c1409d0979a2aec83813a44aa7b","scripts":{"dev":"tsc -W","build":"tsc","format":"prettier --write .","test:webdriver":"ts-node tests/webdriver/transaction.spec.ts","test:playwright":"playwright test --headed"},"_npmUser":{"name":"peteryinusa","email":"peter.yinusa@gmail.com"},"namespace":"@assert-equals","repository":{"url":"git+https://github.com/assert-equals/headless-wallet.git","type":"git"},"_npmVersion":"10.8.2","description":"Web3 dApp testing with a MetaMask equivalent headless wallet, using Playwright or WebDriver —no extension popups","directories":{},"_nodeVersion":"20.18.1","_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.5","viem":"^2.21.54","dotenv":"^16.4.7","express":"^4.21.1","ts-node":"^10.9.2","prettier":"^3.4.2","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/node":"^20.17.9","@types/express":"^5.0.0","@playwright/test":"^1.49.0","selenium-webdriver":"^4.27.0","@types/selenium-webdriver":"^4.1.27"},"peerDependencies":{"viem":"^2.21.54","@playwright/test":"^1.49.0"},"_npmOperationalInternal":{"tmp":"tmp/headless-wallet_0.0.8_1733828304495_0.4593322489503726","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@assert-equals/headless-wallet","version":"0.0.9","keywords":["dapp","ethereum","headless","metamask","playwright","testing","wallet","web3","webdriver"],"author":{"name":"Peter Yinusa"},"license":"ISC","_id":"@assert-equals/headless-wallet@0.0.9","maintainers":[{"name":"peteryinusa","email":"peter.yinusa@gmail.com"}],"homepage":"https://github.com/assert-equals/headless-wallet#readme","bugs":{"url":"https://github.com/assert-equals/headless-wallet/issues"},"dist":{"shasum":"d6d29506261f9bd225f522789a22b5216a32e5ad","tarball":"https://registry.npmjs.org/@assert-equals/headless-wallet/-/headless-wallet-0.0.9.tgz","fileCount":28,"integrity":"sha512-3xCiNDYkJorihnFP2IE59NgL61gkXgNC9CEt7yG3kaKVAy3v23Fdv9gfdtK20oVAuJXoKOTg1uPy8Xxk5bgyrQ==","signatures":[{"sig":"MEQCIHUfSzr2zeehRca0rCRA14LGJ02mPNe6+PQBahhfoJ2aAiBoRi9kH1O7KpvuQLidGeHx5Wtvixl8UunzpRcsG1C4lQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30566},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"7291fc5bb49d5a47f7943c9cac1cd4f99716140c","scripts":{"dev":"tsc -W","build":"tsc","format":"prettier --write .","test:webdriver":"ts-node tests/webdriver/transaction.spec.ts","test:playwright":"playwright test --headed"},"_npmUser":{"name":"peteryinusa","email":"peter.yinusa@gmail.com"},"namespace":"@assert-equals","repository":{"url":"git+https://github.com/assert-equals/headless-wallet.git","type":"git"},"_npmVersion":"10.8.2","description":"Web3 dApp testing with a MetaMask equivalent headless wallet, using Playwright or WebDriver —no extension popups","directories":{},"_nodeVersion":"20.18.1","_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.5","viem":"^2.21.54","dotenv":"^16.4.7","express":"^4.21.1","ts-node":"^10.9.2","prettier":"^3.4.2","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/node":"^20.17.9","@types/express":"^5.0.0","@playwright/test":"^1.49.0","selenium-webdriver":"^4.27.0","@types/selenium-webdriver":"^4.1.27"},"peerDependencies":{"viem":"^2.21.54","@playwright/test":"^1.49.0"},"_npmOperationalInternal":{"tmp":"tmp/headless-wallet_0.0.9_1733830280686_0.3818482358626225","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@assert-equals/headless-wallet","version":"0.0.11","keywords":["dapp","ethereum","headless","metamask","playwright","testing","wallet","web3","webdriver"],"author":{"name":"Peter Yinusa"},"license":"ISC","_id":"@assert-equals/headless-wallet@0.0.11","maintainers":[{"name":"peteryinusa","email":"peter.yinusa@gmail.com"}],"homepage":"https://github.com/assert-equals/headless-wallet#readme","bugs":{"url":"https://github.com/assert-equals/headless-wallet/issues"},"dist":{"shasum":"97504f566ddba6a9b596d6938a0c2d5bd172b67d","tarball":"https://registry.npmjs.org/@assert-equals/headless-wallet/-/headless-wallet-0.0.11.tgz","fileCount":28,"integrity":"sha512-L2ZpBdQqzyjnkaoKGNN2KBVLCuvyPEchVU7sCnjUxGOmiCAV9NFk/eIJ+vnlBhpkAXLW7e6HxM2U5OudCAMlrw==","signatures":[{"sig":"MEQCIH35rb+q2SqsJdFY3jXgMsV1q51MeaSia8eLQiYlYqRgAiBCtiSGPMJhOZ21sw6zt5czEZY7mMGYqN73MLjBIiRYHA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30947},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"fc21d643188c2099ab9a5e087a9ea552bfea750d","scripts":{"dev":"tsc -W","build":"tsc","format":"prettier --write .","test:webdriver":"ts-node tests/webdriver/transaction.spec.ts","test:playwright":"playwright test --headed"},"_npmUser":{"name":"peteryinusa","email":"peter.yinusa@gmail.com"},"namespace":"@assert-equals","repository":{"url":"git+https://github.com/assert-equals/headless-wallet.git","type":"git"},"_npmVersion":"10.8.2","description":"Web3 dApp testing with a MetaMask equivalent headless wallet, using Playwright or WebDriver —no extension popups","directories":{},"_nodeVersion":"20.18.1","_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.5","viem":"^2.21.54","dotenv":"^16.4.7","express":"^4.21.1","ts-node":"^10.9.2","prettier":"^3.4.2","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/node":"^20.17.9","@types/express":"^5.0.0","@playwright/test":"^1.49.0","selenium-webdriver":"^4.27.0","@types/selenium-webdriver":"^4.1.27"},"peerDependencies":{"viem":"^2.21.54","@playwright/test":"^1.49.0"},"_npmOperationalInternal":{"tmp":"tmp/headless-wallet_0.0.11_1733947281647_0.593517630056444","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@assert-equals/headless-wallet","version":"0.0.12","keywords":["dapp","ethereum","headless","metamask","playwright","testing","wallet","web3","webdriver"],"author":{"name":"Peter Yinusa"},"license":"ISC","_id":"@assert-equals/headless-wallet@0.0.12","maintainers":[{"name":"peteryinusa","email":"peter.yinusa@gmail.com"}],"homepage":"https://github.com/assert-equals/headless-wallet#readme","bugs":{"url":"https://github.com/assert-equals/headless-wallet/issues"},"dist":{"shasum":"4c0b8dbedbfa4621bb4b31ebe524df9ed526e026","tarball":"https://registry.npmjs.org/@assert-equals/headless-wallet/-/headless-wallet-0.0.12.tgz","fileCount":28,"integrity":"sha512-CG8GXzdXf/fWYKNmNnOzVV79V8XiMtHiLpF52wudBVmCnk15c9VhzuZTBJlnO7aiPQyNGVaHvetev7BkffSFSg==","signatures":[{"sig":"MEUCIQCLBuzQ2op3q6hAPRsFcoZHJS4obr9R0D7or99WLsHLcQIgXQdIYPPnZnWrydyL8ZFQ00sCCVwhWCyV2AF1zrMZlLw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30546},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"af0fe11df7bacc0534864148fddf552177900c5f","scripts":{"dev":"tsc -W","build":"tsc","format":"prettier --write .","test:webdriver":"ts-node tests/webdriver/transaction.spec.ts","test:playwright":"playwright test --headed"},"_npmUser":{"name":"peteryinusa","email":"peter.yinusa@gmail.com"},"namespace":"@assert-equals","repository":{"url":"git+https://github.com/assert-equals/headless-wallet.git","type":"git"},"_npmVersion":"10.8.2","description":"Web3 dApp testing with a MetaMask equivalent headless wallet, using Playwright or WebDriver —no extension popups","directories":{},"_nodeVersion":"20.18.1","_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.5","viem":"^2.21.54","dotenv":"^16.4.7","express":"^4.21.1","ts-node":"^10.9.2","prettier":"^3.4.2","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/node":"^20.17.9","@types/express":"^5.0.0","@playwright/test":"^1.49.0","selenium-webdriver":"^4.27.0","@types/selenium-webdriver":"^4.1.27"},"peerDependencies":{"viem":"^2.21.54","@playwright/test":"^1.49.0"},"_npmOperationalInternal":{"tmp":"tmp/headless-wallet_0.0.12_1734042566623_0.342488451049076","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@assert-equals/headless-wallet","version":"0.0.14","keywords":["dapp","ethereum","e2e-tests","end-to-end-testing","headless","metamask","playwright","testing","wallet","web3","webdriver"],"author":{"name":"Peter Yinusa"},"license":"ISC","_id":"@assert-equals/headless-wallet@0.0.14","maintainers":[{"name":"peteryinusa","email":"peter.yinusa@gmail.com"}],"homepage":"https://github.com/assert-equals/headless-wallet#readme","bugs":{"url":"https://github.com/assert-equals/headless-wallet/issues"},"dist":{"shasum":"f2ee5e13732ee5fee901462045b7fe835df171a3","tarball":"https://registry.npmjs.org/@assert-equals/headless-wallet/-/headless-wallet-0.0.14.tgz","fileCount":28,"integrity":"sha512-OhUoUz8oT1aO722Eem0qJH5PvBCj2m862iprgDdgRnc59uxhxEb7P17VMSaHz8tPezsplOLxZV6OLLxImUCkgQ==","signatures":[{"sig":"MEQCIDYES6GEJl988soLvFJqUIjOQ9+XGhhdEGSdPxjvEZ8gAiBI1hRKE1gMM4dJUAkCrmOCDCXTCRlyZD3kdiAcKoqilw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32111},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0c78b132e773a227941e72f0b32faf4cf1d508d5","scripts":{"dev":"tsc -W","build":"tsc","format":"prettier --write .","test:webdriver":"ts-node tests/webdriver/transaction.spec.ts","test:playwright":"playwright test --headed"},"_npmUser":{"name":"peteryinusa","email":"peter.yinusa@gmail.com"},"namespace":"@assert-equals","repository":{"url":"git+https://github.com/assert-equals/headless-wallet.git","type":"git"},"_npmVersion":"10.8.2","description":"Web3 dApp testing with a MetaMask equivalent headless wallet, using Playwright or WebDriver —no extension popups","directories":{},"_nodeVersion":"20.18.1","_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.5","viem":"^2.21.54","dotenv":"^16.4.7","express":"^4.21.1","ts-node":"^10.9.2","prettier":"^3.4.2","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/node":"^20.17.9","@types/express":"^5.0.0","@playwright/test":"^1.49.0","selenium-webdriver":"^4.27.0","@types/selenium-webdriver":"^4.1.27"},"peerDependencies":{"viem":"^2.21.54","@playwright/test":"^1.49.0"},"_npmOperationalInternal":{"tmp":"tmp/headless-wallet_0.0.14_1736003542830_0.3794584015156379","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@assert-equals/headless-wallet","version":"0.0.15","keywords":["dapp","ethereum","e2e-tests","end-to-end-testing","headless","metamask","playwright","testing","wallet","web3","webdriver"],"author":{"name":"Peter Yinusa"},"license":"ISC","_id":"@assert-equals/headless-wallet@0.0.15","maintainers":[{"name":"peteryinusa","email":"peter.yinusa@gmail.com"}],"homepage":"https://github.com/assert-equals/headless-wallet#readme","bugs":{"url":"https://github.com/assert-equals/headless-wallet/issues"},"dist":{"shasum":"79c6666e456a1c486dc2f33029af5a9f78362cce","tarball":"https://registry.npmjs.org/@assert-equals/headless-wallet/-/headless-wallet-0.0.15.tgz","fileCount":29,"integrity":"sha512-Ql0a+0hidWyw90x8nrFn3JOF5VYj78kFxuTBhrEVP1FdQkajWk5sGg0O2u6ZWnQEDxNV0Cin8C8G7FZ0c7VRpg==","signatures":[{"sig":"MEUCIA7GyIvfbwmxTX9XTYiRaG+JiiyQa3Bju9cjxmPrS0i7AiEAyFIPFYdzlNiy5Ejnd0FLRkSljqI0v5JFBpnMf2SWtKs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":270587},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a80f8e2a5faaaf51fab9aacdfc83fba4343e34c6","scripts":{"dev":"tsc -W","build":"tsc","format":"prettier --write .","test:webdriver":"ts-node tests/webdriver/transaction.spec.ts","test:playwright":"playwright test --headed"},"_npmUser":{"name":"peteryinusa","email":"peter.yinusa@gmail.com"},"namespace":"@assert-equals","repository":{"url":"git+https://github.com/assert-equals/headless-wallet.git","type":"git"},"_npmVersion":"10.8.2","description":"Web3 dApp testing with a MetaMask equivalent headless wallet, using Playwright or WebDriver —no extension popups","directories":{},"_nodeVersion":"20.18.1","_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.5","viem":"^2.21.54","dotenv":"^16.4.7","express":"^4.21.1","ts-node":"^10.9.2","prettier":"^3.4.2","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/node":"^20.17.9","@types/express":"^5.0.0","@playwright/test":"^1.49.0","selenium-webdriver":"^4.27.0","@types/selenium-webdriver":"^4.1.27"},"peerDependencies":{"viem":"^2.21.54","@playwright/test":"^1.49.0"},"_npmOperationalInternal":{"tmp":"tmp/headless-wallet_0.0.15_1736005454542_0.018833359570094466","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@assert-equals/headless-wallet","version":"0.0.16","description":"Web3 dApp testing with a MetaMask equivalent headless wallet, using Playwright or WebDriver —no extension popups","main":"dist/index.js","types":"dist/index.d.ts","keywords":["dapp","ethereum","e2e-tests","end-to-end-testing","headless","metamask","playwright","testing","wallet","web3","webdriver"],"author":{"name":"Peter Yinusa"},"license":"ISC","devDependencies":{"@playwright/test":"^1.49.0","@types/cors":"^2.8.17","@types/express":"^5.0.0","@types/node":"^20.17.9","@types/selenium-webdriver":"^4.1.27","cors":"^2.8.5","dotenv":"^16.4.7","express":"^4.21.1","prettier":"^3.4.2","selenium-webdriver":"^4.27.0","ts-node":"^10.9.2","typescript":"^5.7.2","viem":"^2.21.54"},"repository":{"type":"git","url":"git+https://github.com/assert-equals/headless-wallet.git"},"namespace":"@assert-equals","peerDependencies":{"@playwright/test":"^1.49.0","viem":"^2.21.54"},"scripts":{"build":"tsc","dev":"tsc -W","format":"prettier --write .","test:playwright":"playwright test --headed","test:webdriver":"ts-node tests/webdriver/transaction.spec.ts"},"_id":"@assert-equals/headless-wallet@0.0.16","gitHead":"640d19f33984c9c8d13f54d5ffe3c330f574aeea","bugs":{"url":"https://github.com/assert-equals/headless-wallet/issues"},"homepage":"https://github.com/assert-equals/headless-wallet#readme","_nodeVersion":"20.18.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-EUJY9o+wNtbKQFtWzZpgJ5kzDievnxvjDM0lJD1OEvtOWN0VJ7mpgfJtIN0gpLLaW6wcYsI+rbNJfcRdeJE6NA==","shasum":"3a568a9c0e3323ff7fe8ad3ffc439c157d191bbc","tarball":"https://registry.npmjs.org/@assert-equals/headless-wallet/-/headless-wallet-0.0.16.tgz","fileCount":30,"unpackedSize":271392,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHRiPt40B9Tr1tqHf0lF9MwjvunahHLQ+InTO7zFGYNnAiEAop9xxD/O5ZSNCWinG7z4bRD19ZsuAZHvpsvpmw4+Leg="}]},"_npmUser":{"name":"peteryinusa","email":"peter.yinusa@gmail.com"},"directories":{},"maintainers":[{"name":"peteryinusa","email":"peter.yinusa@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/headless-wallet_0.0.16_1737583332143_0.8058691294158986"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-10T03:02:16.275Z","modified":"2025-01-22T22:02:12.599Z","0.0.1":"2024-12-10T03:02:16.587Z","0.0.8":"2024-12-10T10:58:24.683Z","0.0.9":"2024-12-10T11:31:20.862Z","0.0.11":"2024-12-11T20:01:21.859Z","0.0.12":"2024-12-12T22:29:26.866Z","0.0.14":"2025-01-04T15:12:23.075Z","0.0.15":"2025-01-04T15:44:14.815Z","0.0.16":"2025-01-22T22:02:12.401Z"},"bugs":{"url":"https://github.com/assert-equals/headless-wallet/issues"},"author":{"name":"Peter Yinusa"},"license":"ISC","homepage":"https://github.com/assert-equals/headless-wallet#readme","keywords":["dapp","ethereum","e2e-tests","end-to-end-testing","headless","metamask","playwright","testing","wallet","web3","webdriver"],"repository":{"type":"git","url":"git+https://github.com/assert-equals/headless-wallet.git"},"description":"Web3 dApp testing with a MetaMask equivalent headless wallet, using Playwright or WebDriver —no extension popups","maintainers":[{"name":"peteryinusa","email":"peter.yinusa@gmail.com"}],"readme":"# Headless Wallet\n\nWeb3 dApp testing with a [MetaMask](https://metamask.io/) equivalent **headless wallet**, using [Playwright](https://playwright.dev/) or [Selenium WebDriver](https://www.selenium.dev/) —no extension popups\n\n<img src=\"src/assets/Headless-Wallet.png\" alt=\"Headless Wallet\" width=\"697\" height=\"456\" />\n\n## Features\n\n- Create comprehensive E2E tests for your dApps, including real blockchain transactions\n- All wallet actions are pre-approved by default, eliminating the need for user interaction\n- All wallet interactions are headless, meaning, no user interaction is required. You should be testing your dApp, not the wallet\n\n## Quickstart\n\n### Install\n\n```shell\nnpm install -D @assert-equals/headless-wallet\n```\n\n### Playwright Example\n\n```ts\nimport { test } from \"@playwright/test\";\nimport { HeadlessWalletServer, setupHeadlessWallet } from \"@assert-equals/headless-wallet\";\n\nlet server: HeadlessWalletServer;\n\ntest.beforeEach(async ({ page }) => {\n  // MetaMask test seed https://github.com/MetaMask/metamask-extension/blob/v12.8.1/test/e2e/seeder/ganache.ts\n  const mnemonic: string = \"phrase upgrade clock rough situate wedding elder clever doctor stamp excess tent\";\n  const port: number = 8001;\n  server = new HeadlessWalletServer({ mnemonic, port });\n  await server.start();\n  await setupHeadlessWallet({ page, port });\n});\n\ntest.afterEach(async () => {\n  await server.stop();\n});\n\ntest(\"Metamask Wallet Test Dapp\", async ({ page }) => {\n  await page.goto(\"https://metamask.github.io/test-dapp/\");\n  await expect(page.getByText(\"Name: Headless Wallet\")).toBeVisible();\n});\n```\n\n### WebDriver Example\n\n```ts\nimport { HeadlessWalletServer, setupHeadlessWallet } from \"@assert-equals/headless-wallet\";\nimport { Builder, Browser, WebDriver, By, until } from \"selenium-webdriver\";\nimport { Options } from \"selenium-webdriver/chrome\";\n\n(async function test() {\n  const server: HeadlessWalletServer = new HeadlessWalletServer({ mnemonic: \"\" });\n  await server.start();\n  const options: Options = new Options();\n  options.enableBidi();\n  let driver: WebDriver = await new Builder().forBrowser(Browser.CHROME).setChromeOptions(options).build();\n  try {\n    await setupHeadlessWallet({ driver });\n    await driver.get(\"https://metamask.github.io/test-dapp/\");\n    const providerName = await driver.findElement(By.css(\"#activeProviderName\"));\n    await driver.wait(until.elementTextContains(providerName, \"Headless Wallet\"), 1000);\n  } finally {\n    await driver.quit();\n    await server.stop();\n  }\n})();\n```\n\n> **Note:** This setup will execute actual transactions on the blockchain without user intervention using the provided Mnemonic Phrase.\n","readmeFilename":"README.md"}