wallet-guard-snap
v1.1.1
Published
Protect your crypto with transaction insights and proactive security alerts.
Downloads
3,852
Maintainers
Readme
Wallet Guard Snap
Installation Guide
Published build (recommended)
Please visit https://walletguard.app/snap for everything you need to get started using this Snap.
All latest releases are deployed to NPM
Local Usage (Developer contributions welcome)
- Install MetaMask Flask https://chrome.google.com/webstore/detail/metamask-flask-developmen/ljfoeinjpaedjfecbmggjgodbgkmjkjk
- Setup wallet
- Install Snap - Run
yarn start
in the root directory - Follow install process at
http://localhost:8000
- Installation complete! You may now go test transactions on OpenSea, Uniswap, etc.
Features
⚡️Transaction insights
Get advanced insights on your transactions, including built-in security measures. Our transaction insights are powered by the same security engine that keeps our 100,000+ Chrome Extension users safe!
Note- At this time signatures are not yet supported by MetaMask Snaps, only transactions. We will add this feature immediately once it is supported!
✅ Automated security notifications
Get notifications about revoking your assets, directly in MetaMask. This feature is optional.
Automated approval revoking is setup from dashboard.walletguard.app
by connecting your wallet or inputting your wallet address, no signature necessary.
Audit
The snap
package has been audited by Consensys Diligence.
You can view the full audit report findings here.
Permissions
This Snap requires several permissions in order to access the necessary APIs for functionality. To view the entire list of permissions, view the manifest.json.
Testing
Usage
Tests are run against the Snap build located in the dist/
folder. To run the tests follow these instructions:
yarn build:clean
yarn test
- (optional)
yarn test:coverage
The project must be re-built in order re-test changes of the Snap build.
Description
- Unit tests: Tests of individual components and their input/outputs (e.g-
RevertComponent.test.ts
) - Integration Tests: Testing the end-to-end integrations and external dependencies. For example the Wallet Guard transaction simulation API and it's responses are mocked out in
index.test.ts
. Assertions are made on the outcome and sum of the components, rather than logic within those components.
Dev Standards / Best Practices
Components
UI elements must be organized by components. Ideally we should unit test the component itself along with the e2e functionality where that component is being used.
Components must have the name Component
in the filename and function name for clarity. Components should be functions so that we have the option to pass in parameters.
Well-tested code
This project uses the Metamask Snaps Testing SDK and Jest for testing. We also use SonarCloud to manage code coverage and quality. (60% minimum on PRs)
Right the Metamask Snaps Testing SDK does not include code coverage for certain files/APIs such as index.ts
but we have made sure to build strong test cases here.