GIF Interface Contracts
This repository holds the necessary interfaces and base contracts to interact with an existing GIF instance. The repository is not intended to be used on its own.
Clone Repo
git clone https://github.com/etherisc/gif-interface.git
cd gif-interface
Fully configure IDE
To use our fully configured IDE see the instructions at https://github.com/etherisc/gif-sandbox/blob/master/docs/development_environment.md. In this case you can skip the next two steps as the devcontainer is based on the (updated) brownie image.
Create Brownie Docker Image
Brownie is used for development of the contracts in this repository.
Alternatively to installing a python development environment and the brownie framework, wokring with Brownie is also possible via Docker. For this, build the brownie Docker image as shown below. The Dockerfile in this repository is a trimmed down version from Brownie Github
docker build -t brownie .
Run Brownie Container
docker run -it --rm -v $PWD:/projects brownie
Compile the GIF Interface Contracts
Inside the brownie container compile the contracts/interfaces
brownie compile --all
Run linter
Linter findings are shown automatically in vscode. To execute it manually, run the following command:
solhint contracts/**/*.sol
and including prettier formatting
solhint --config .solhint.prettier.json contracts/**/*.sol
Publish release to NPMJS
npm ci
npm version patch/minor/major --no-git-tag-version
npm publish
git commit -m 'bump version'