Sourcify Metamask Snap
MetaMask Snaps is a system that allows anyone to safely expand the capabilities of MetaMask. A snap is a program that we run in an isolated environment that can customize the wallet experience.
This snap uses Sourcify to get information about the contract with which the transaction is about to happen and provides a human-readable description of what is about to happen in the transaction.
Demo
Warning
The human-readable description of the funciton is generated from the NatSpec comment on the function. So don't trust it blindly!
Note
The site has a example tx inside packages/site/pages/index.tsx
Getting Started
Clone the repository and setup the development environment:
yarn install && yarn start
Cloning
This repository contains GitHub Actions that you may find useful, see .github/workflows
and Releasing & Publishing below for more information.
If you clone or create this repository outside the MetaMask GitHub organization, you probably want to run ./scripts/cleanup.sh
to remove some files that will not work properly outside the MetaMask GitHub organization.
Note that the action-publish-relase.yml
workflow contains a step that publishes the frontend of this snap (contained in the public/
directory) to GitHub pages. If you do not want to publish the frontend to GitHub pages, simply remove the step named "Publish to GitHub Pages" in that workflow.
If you don't wish to use any of the existing GitHub actions in this repository, simply delete the .github/workflows
directory.
Contributing
- Snap Code is in
packages/snap
Testing and Linting
Run yarn test
to run the tests once.
Run yarn lint
to run the linter, or run yarn lint:fix
to run the linter and fix any automatically fixable issues.
Notes
Questions? Dm @harpaljadeja11 on twitter