Sweetbridge Deployed Contracts
This repository contains snapshots of the ABIs for all of the smart contracts used by the Sweetbridge Project corresponding to the versions deployed for our two active environments:
- backstage - on Rinkeby testnet
- main-net - on Ethereum mainnet
The sweetbridge-members-app
repository, which has not been published
as open source yet, follows the same git sub-module pattern as
oracles.
Deployments
In order to make the JSON files available to the deployer, there are 2 options:
- copy the JSON file from the truffle build folder to the contracts folder
- link the truffle
build/contracts
folder tobuild
in the root of this repo
When requiring the JSON file for a contract, the function first looks in build
and then in
contracts
. The advantage of linking the build folder from truffle is that after a successfull
deployment, the address will be added to the existing list.
It is the responsibility of the developer to make sure that the JSON in build
and contracts
are the same. The function will assume this is the case and will not overwrite existing files.
Tests
In order to run the tests, start a ganache server with npm run start:evm
and then run
npm run test
. Test settings are configured through environment variables and dotenv
package is used. Edit .env
file in order to change the settings.
TransferEvaluationOracle test
This test requires GRAPHQL_URL
setting to be set and pointing to Postgraphile endpoint connected to ledger
schema.
ledger
schema should be populated with the fixtures before running the test.
Versioning
We follow the semver standard
in creating package versions. Each new development will be at least a minor
release. As patch
releases are reserved for fixing bugs.
If multiple versions are in development at the same time (this should be avoided) then multiple
minor
releases will have to coexist in the NPM repo. It must be guaranteed that the bigger
version number includes the changes from the previous versions.
In order to know the state of a certain version we use tags for each version so that it is clear which version is the latest production grade.
Running tests
before starting the tests 2 services need to be started:
- ganache-cli - run with
npm run start:evm
- graph QL -
once these are runing tests can be run with npm test