Skip to content

yodaplus/gnosis-safe-contracts

Repository files navigation

Gnosis Safe Contracts

npm version Build Status Coverage Status

XinFin-related notes

This repo was forked for the purpose of XinFin depoyment. This README generally holds true, with some specifics, mentioned next.

Proxy and deployment

Hardhat deployments can be done on XinFin through a compatibility proxy. The proxy itself is a part of safe-transaction-service. To run it manually, clone https://github.com/yodaplus/gnosis-safe-transaction-service, go to ./proxy and run:

nvm use
yarn
PORT=8084 yarn start

There's also a deployed proxy instance: https://safe-apothem.xinfin.yodaplus.net:8083

To deploy contracts, use the following command:

NODE_URL=https://safe-apothem.xinfin.yodaplus.net:8083 yarn deploy custom

Where NODE_URL is a compatibility proxy instance.

Removed/disabled features

XinFin contracts must be compiled for Byzantium EVM, therefore original code was adjusted to only rely on available EVM features. Incompatible contracts that are not essential to basic Gnosis functionality were removed.

Usage

Install requirements with yarn:

yarn

Deployments

A collection of the different Safe contract deployments and their addresses can be found in the Safe deployments repository.

To add support for a new network follow the steps of the Deploy section and create a PR in the Safe deployments repository.

Deploy

⚠️ Make sure to use the correct commit when deploying the contracts. Any change (even comments) within the contract files will result in different addresses. The tagged versions that are used by the Gnosis Safe team can be found in the releases.

This will deploy the contracts deterministically and verify the contracts on etherscan using Solidity 0.7.6 by default.

Preparation:

  • Set MNEMONIC in .env
  • Set INFURA_KEY in .env
yarn deploy-all <network>

This will perform the following steps

yarn build
yarn hardhat --network <network> deploy
yarn hardhat --network <network> etherscan-verify
yarn hardhat --network <network> local-verify

Custom Networks

It is possible to use the NODE_URL env var to connect to any EVM based network via an RPC endpoint. This connection then can be used with the custom network.

E.g. to deploy the Safe contract suite on that network you would run yarn deploy-all custom.

The resulting addresses should be on all networks the same.

Note: Address will vary if contract code is changed or a different Solidity version is used.

Verify contract

This command will use the deployment artifacts to compile the contracts and compare them to the onchain code

yarn hardhat --network <network> local-verify

This command will upload the contract source to Etherescan

yarn hardhat --network <network> etherscan-verify

Documentation

Audits/ Formal Verification

Security and Liability

All contracts are WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

License

All smart contracts are released under LGPL-3.0

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published