@gnosis.pm/util-contracts

Utility contracts for Gnosis

Usage no npm install needed!

<script type="module">
  import gnosisPmUtilContracts from 'https://cdn.skypack.dev/@gnosis.pm/util-contracts';
</script>

README

util-contracts

Utility contracts for Gnosis

The token and contracts can be in Etherscan:

Setup and show the networks

# Install dependencies
yarn install

# Compile and restore the network addresses
yarn restore

# Show current network addresses
yarn networks

Generate a new version

# In a release branch (i.e. release/vX.Y.X)
# Migrate the version to the testnets, at least rinkeby, and posibly mainnet
# You can optionally change the gas price using the GAS_PRICE_GWEI env variable
yarn restore
MNEMONIC="your mnemonic here..." yarn migrate --network rinkeby

# Extract the network file
yarn networks-extract

# Verify the contract in Etherscan
# Folow the steps in "Verify contract"

# Commit the network file
git add network.json
git commit -m 'Update the networks file'

# Generate version using Semantic Version: https://semver.org/
# For example, for a minor version
npm version minor
git push
git push --tags

# Deploy npm package
npm publish --access=public

# Merge tag into develop, to deploy it to production, also merge it into master
git checkout develop
git merge vX.Y.X

Verify contract

Flatten the smart contract:

npx truffle-flattener contracts/<contract-name>.sol > build/<contract-name>-EtherScan.sol

Go to Etherscan validation page:

  • Go tohttps://rinkeby.etherscan.io/verifyContract?a=
  • Fill the information:
    • Use build/TokenGNO-<contract-name>.sol
    • Set the exact compiler version used for the compilation i.e. v0.4.24+commit.e67f0147
    • Optimization: No
  • Press validate