Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/makerdao/dss-deploy-scripts
https://github.com/makerdao/dss-deploy-scripts
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/makerdao/dss-deploy-scripts
- Owner: makerdao
- License: agpl-3.0
- Created: 2019-01-09T14:12:39.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-05-11T23:48:55.000Z (over 1 year ago)
- Last Synced: 2024-04-06T09:33:40.384Z (7 months ago)
- Language: Shell
- Size: 679 KB
- Stars: 47
- Watchers: 26
- Forks: 64
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-smart-contract-development - DSS Deploy Scripts
- awesome-dapptools - DSS Deploy Scripts
README
# DSS deployment scripts
![Build Status](https://github.com/makerdao/dss-deploy-scripts/actions/workflows/.github/workflows/tests.yaml/badge.svg?branch=master)
A set of scripts that deploy [dss](http://github.com/makerdao/dss) to an
Ethereum chain of your choosing.## Description
This repo is composed of two steps:
* Bash [scripts](/scripts) to modify the state of the base system
At the end of the first step, the addresses of deployed contracts are written to
an `out/addresses.json` file. The scripts read those addresses and use `seth`
and `dapp` to modify the deployment, using the values in `out/config.json`.## Installing
The only way to install everything necessary to deploy is Nix. Run
```shell
nix-shell --pure
```to drop into a Bash shell with all dependency installed.
### Ethereum node
You'll also need an Ethereum RPC node to connect to. Depending on your usecase, this
could be a local node (e.g. `dapp testnet`) or a remote one.## Configuration
There are 2 main pieces of configuration necessary for a deployment:
* Ethereum account configuration
* Chain configuration#### Account configuration
`seth` relies on the presence of environment variables to know which Ethereum account to
use, which RPC server to talk to, etc.If you're using `nix-shell`, these variables are set automatically for you in
[shell.nix](./shell.nix).But you can also configure the below variables manually:
- `ETH_FROM`: address of deployment account
- `ETH_PASSWORD`: path of account password file
- `ETH_KEYSTORE`: keystore path
- `ETH_RPC_URL`: URL of the RPC node### Chain configuration
Some networks have a default config file at `config/.json`, which will be used if non custom config values are set.
A config file can be passed via param with flag `-f` allowing to execute the script in any network (e.g. `dss-deploy testchain -f `).
As other option, custom config values can be loaded as an environment variable called `DDS_CONFIG_VALUES`.
File passed by parameter overwrites the environment variable.Below is the expected structure of such a config file:
```json
",
{
"description": "",
"omniaFromAddr": "
"omniaAmount": "",
"pauseDelay": "",
"vat_line": "",
"vow_wait": "",
"vow_sump": "",
"vow_dump": "",
"vow_bump": "",
"vow_hump": "",
"cat_box": "",
"dog_hole": "",
"jug_base": "",
"pot_dsr": "",
"cure_wait": "",
"end_wait": "",
"esm_pit": "",
"esm_min": "",
"flap_beg": "",
"flap_ttl": "",
"flap_tau": "",
"flop_beg": "",
"flop_pad": "",
"flop_ttl": "",
"flop_tau": "",
"flap_lid": "",
"flash_max": "",
"import": {
"gov": " note: make sure to mint enough tokens for launch",
"authority": " note: make sure to launch MCD_ADMIN",
"proxyRegistry": "",
"faucet": ""
},
"tokens": {
"": {
"import": {
"gem": "",
"pip": ""
},
"gemDeploy": { // Only used if there is not a gem imported
"src": "",
"params": [],
"faucetSupply": "",
"faucetAmount": ""
},
"joinDeploy": { // Mandatory always
"src": "",
"extraParams": []
},
"pipDeploy": { // Only used if there is not a pip imported
"osmDelay": "