Deployed ERC20 diamond to Mumbai

pull/7/head
Neeraj Kashyap 2021-12-18 08:47:09 -08:00
rodzic 873fd3c30d
commit f1f4561c95
2 zmienionych plików z 174 dodań i 6 usunięć

Wyświetl plik

@ -0,0 +1,144 @@
# Deploy the Moonstream governance token
The Moonstream DAO governance token is deployed as an EIP2535 Diamond proxy contract with an ERC20
facet attached to it.
This checklist describes how to deploy the token.
## Deployed addresses
You will modify this section as you go through the checklist
### Diamond addresses
```json
{
"DiamondCutFacet": "0x65f8857B204968c492B17344E1139229bD3382e3",
"Diamond": "0x02620263be8A046Ca4812723596934AA20D7DC3C",
"DiamondLoupeFacet": "0xeFdFbAA07AF132AD4b319054d91a2F487b009003",
"OwnershipFacet": "0xA9E3B4BF878d66E213A988B761Ac0774bFc0F1c8",
"attached": [
"DiamondLoupeFacet",
"OwnershipFacet"
]
}
```
### `ERC20Initializer` address
```
export ERC20INITIALIZER_ADDRESS=0x6995cA60BE357a72bFAC88a24A05E978637f7Ffb
```
### `ERC20Facet` address
```
export ERC20FACET_ADDRESS=0xC4E53007B5319E73878E4209450A41307Db9de5C
```
## Environment variables
- [x] `export DAO_NETWORK=mumbai`
- [x] `export DAO_OWNER=.secrets/dao-dev.json`
- [x] `export DAO_OWNER_ADDRESS=$(jq -r .address $DAO_OWNER)`
- [x] `export GAS_PRICE="60 gwei"`
- [x] `export CONFIRMATIONS=2`
- [x] `export MOONSTREAM_ADDRESSES=.secrets/moonstream-mumbai-diamond.json`
- [x] `export MOONSTREAM_TOTAL_SUPPLY=10000000000`
## Deploy diamond proxy
- [x] Deploy diamond with all core facets
```bash
dao core gogogo \
--network $DAO_NETWORK \
--sender $DAO_OWNER \
--gas-price "$GAS_PRICE" \
--confirmations $CONFIRMATIONS \
--owner $DAO_OWNER_ADDRESS \
--outfile $MOONSTREAM_ADDRESSES
```
- [x] Store JSON output under `Deployed addresses / Diamond addresses` above.
- [x] Export diamond proxy address: `export MOONSTREAM_DIAMOND="$(jq -r .Diamond $MOONSTREAM_ADDRESSES)"`
## Deploy `ERC20Initializer`
- [x] Deploy `ERC20Initializer` contract
```bash
dao moonstream-initializer deploy \
--network $DAO_NETWORK \
--sender $DAO_OWNER \
--gas-price "$GAS_PRICE" \
--confirmations $CONFIRMATIONS
```
- [x] Export address of deployed contract as `export ERC20INITIALIZER_ADDRESS=0x6995cA60BE357a72bFAC88a24A05E978637f7Ffb`
- [x] Store address of deployed contract under `Deployed addresses / ERC20Initializer address` above
## Deploy `ERC20Facet`
- [x] Deploy `ERC20Facet` contract
```bash
dao moonstream deploy \
--network $DAO_NETWORK \
--sender $DAO_OWNER \
--gas-price "$GAS_PRICE" \
--confirmations $CONFIRMATIONS
```
- [x] Export address of deployed contract as `export ERC20FACET_ADDRESS=0xC4E53007B5319E73878E4209450A41307Db9de5C`
- [x] Store address of deployed contract under `Deployed addresses / ERC20Facet address` above
- [x] Attach `ERC20Facet` to diamond:
```bash
dao core facet-cut \
--address $MOONSTREAM_DIAMOND \
--network $DAO_NETWORK \
--sender $DAO_OWNER \
--gas-price "$GAS_PRICE" \
--confirmations $CONFIRMATIONS \
--facet-name ERC20Facet \
--facet-address $ERC20FACET_ADDRESS \
--action add \
--initializer-address $ERC20INITIALIZER_ADDRESS
```
- [x] Check the ERC20 name of the diamond contract: `dao moonstream name --network $DAO_NETWORK --address $MOONSTREAM_DIAMOND`
- [x] Name is `Moonstream DAO`
- [x] Check the ERC20 symbol of the diamond contract: `dao moonstream symbol --network $DAO_NETWORK --address $MOONSTREAM_DIAMOND`
- [x] Symbol is `MNSTR`
## Mint Moonstream tokens
- [x] Mint `MOONSTREAM_TOTAL_SUPPLY` worth of tokens to self.
```bash
dao moonstream mint \
--network $DAO_NETWORK \
--address $MOONSTREAM_DIAMOND \
--sender $DAO_OWNER \
--gas-price "$GAS_PRICE" \
--confirmations $CONFIRMATIONS \
--account $DAO_OWNER_ADDRESS \
--amount $MOONSTREAM_TOTAL_SUPPLY
```
- [x] Check the total supply of the diamond contract: `dao moonstream total-supply --network $DAO_NETWORK --address $MOONSTREAM_DIAMOND`
- [x] Total supply should be equal to value of `MOONSTREAM_TOTAL_SUPPLY`
- [x] Check balance of DAO owner address: `dao moonstream balance-of --network $DAO_NETWORK --address $MOONSTREAM_DIAMOND --account $DAO_OWNER_ADDRESS`
- [x] Balance should be equal to value of `MOONSTREAM_TOTAL_SUPPLY`

Wyświetl plik

@ -28,12 +28,13 @@ export ERC20FACET_ADDRESS=""
## Environment variables
1. `export DAO_NETWORK=<desired brownie network>`
2. `export DAO_OWNER=<path to keystore file for owner account>`
3. `export DAO_OWNER_ADDRESS=$(jq -r .address $DAO_OWNER)`
4. `export GAS_PRICE="<N> gwei"`
5. `export CONFIRMATIONS=<M>`
6. `export MOONSTREAM_ADDRESSES=<path to JSON file in which to store diamond addresses>`
- [ ] `export DAO_NETWORK=<desired brownie network>`
- [ ] `export DAO_OWNER=<path to keystore file for owner account>`
- [ ] `export DAO_OWNER_ADDRESS=$(jq -r .address $DAO_OWNER)`
- [ ] `export GAS_PRICE="<N> gwei"`
- [ ] `export CONFIRMATIONS=<M>`
- [ ] `export MOONSTREAM_ADDRESSES=<path to JSON file in which to store diamond addresses>`
- [ ] `export MOONSTREAM_TOTAL_SUPPLY=<number of tokens to mint>`
## Deploy diamond proxy
@ -108,3 +109,26 @@ dao core facet-cut \
- [ ] Check the ERC20 symbol of the diamond contract: `dao moonstream symbol --network $DAO_NETWORK --address $MOONSTREAM_DIAMOND`
- [ ] Symbol is `MNSTR`
## Mint Moonstream tokens
- [ ] Mint `MOONSTREAM_TOTAL_SUPPLY` worth of tokens to self.
```bash
dao moonstream mint \
--network $DAO_NETWORK \
--address $MOONSTREAM_DIAMOND \
--sender $DAO_OWNER \
--gas-price "$GAS_PRICE" \
--confirmations $CONFIRMATIONS \
--account $DAO_OWNER_ADDRESS \
--amount $MOONSTREAM_TOTAL_SUPPLY
```
- [ ] Check the total supply of the diamond contract: `dao moonstream total-supply --network $DAO_NETWORK --address $MOONSTREAM_DIAMOND`
- [ ] Total supply should be equal to value of `MOONSTREAM_TOTAL_SUPPLY`
- [ ] Check balance of DAO owner address: `dao moonstream balance-of --network $DAO_NETWORK --address $MOONSTREAM_DIAMOND --account $DAO_OWNER_ADDRESS`
- [ ] Balance should be equal to value of `MOONSTREAM_TOTAL_SUPPLY`