Protect your crypto. This Snap supports transaction simulation and automated approval revoking reminders for the user. Stop guessing about your transactions when performing swaps, claims, and mints!
Please visit https://walletguard.app/snap for everything you need to get started using this Snap.
All latest releases are deployed to NPM
- 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.
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!
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.
The snap
package has been audited by Consensys Diligence.
You can view the full audit report findings here.
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.
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.
- 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.
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.
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.