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: 2 months ago
JSON representation

Lists

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": "