Skip to content

Commit f92fbad

Browse files
authored
feat: noble custom genesis (#579)
* chore: port default scripts to noble directory * feat: noble custom genesis - configure fiattokenfactory and tokenfactory - configure paramauthority - configure cctp - configure tariff
1 parent afaef4e commit f92fbad

File tree

3 files changed

+448
-0
lines changed

3 files changed

+448
-0
lines changed

starship/charts/devnet/defaults.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,11 @@ defaultChains:
757757
hdPath: m/44'/118'/0'/0/0
758758
coinType: 118
759759
repo: https://github.com/noble-assets/noble
760+
scripts:
761+
createGenesis:
762+
file: scripts/noble/create-genesis.sh
763+
updateGenesis:
764+
file: scripts/noble/update-genesis.sh
760765
assets:
761766
- base: uusdc
762767
description: "USD Coin"
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
#!/bin/bash
2+
3+
set -eux
4+
5+
DENOM="${DENOM:=uusdc}"
6+
COINS="${COINS:=100000000000000uusdc,100000000000000ustake}"
7+
CHAIN_ID="${CHAIN_ID:=noblelocal}"
8+
CHAIN_BIN="${CHAIN_BIN:=nobled}"
9+
CHAIN_DIR="${CHAIN_DIR:=$HOME/.nobled}"
10+
KEYS_CONFIG="${KEYS_CONFIG:=configs/keys.json}"
11+
12+
FAUCET_ENABLED="${FAUCET_ENABLED:=true}"
13+
NUM_VALIDATORS="${NUM_VALIDATORS:=1}"
14+
NUM_RELAYERS="${NUM_RELAYERS:=0}"
15+
16+
# FiatTokenFactory roles
17+
FIATTF_OWNER_KEY="fiattf_owner"
18+
FIATTF_OWNER_MNEMONIC="gesture inject test cycle original hollow east ridge hen combine junk child bacon zero hope comfort vacuum milk pitch cage oppose unhappy lunar seat"
19+
20+
FIATTF_MASTER_MINTER_KEY="fiattf_master_minter"
21+
FIATTF_MASTER_MINTER_MNEMONIC="maximum display century economy unlock van census kite error heart snow filter midnight usage egg venture cash kick motor survey drastic edge muffin visual"
22+
23+
FIATTF_MINTER_CONTROLLER_KEY="fiattf_minter_controller"
24+
FIATTF_MINTER_CONTROLLER_MNEMONIC="keep liar demand upon shed essence tip undo eagle run people strong sense another salute double peasant egg royal hair report winner student diamond"
25+
26+
FIATTF_MINTER_CONTROLLER2_KEY="fiattf_minter_controller2"
27+
FIATTF_MINTER_CONTROLLER2_MNEMONIC="morning person bachelor illegal inner note learn problem cement river half sentence junk evidence mercy intact step nasty cotton elite real unveil business drum"
28+
29+
FIATTF_MINTER_KEY="fiattf_minter"
30+
FIATTF_MINTER_MNEMONIC="shed spike wish soda inside awake satoshi fish length whisper garlic sketch diary trumpet tree nose stove tobacco vague target announce brave alley priority"
31+
32+
FIATTF_BLACKLISTER_KEY="fiattf_blacklister"
33+
FIATTF_BLACKLISTER_MNEMONIC="planet reunion diet obscure curious swim suit kitchen fiscal creek jeans doll disorder color gown sweet have search repair exhaust clap assault dwarf design"
34+
35+
FIATTF_PAUSER_KEY="fiattf_pauser"
36+
FIATTF_PAUSER_MNEMONIC="guilt juice tone exhibit vault stairs mesh often expect face search quality paddle broccoli hundred another elder range horror beef session found loop mobile"
37+
38+
# TokenFactory roles
39+
TF_OWNER_KEY="tf_owner"
40+
TF_OWNER_MNEMONIC="poverty pride inject trumpet candy quiz mixed junk cricket food include involve uphold gasp wish gas save occur genius shoe slight occur sudden cute"
41+
42+
TF_MASTER_MINTER_KEY="tf_master_minter"
43+
TF_MASTER_MINTER_MNEMONIC="belt cream catalog absurd hen toast ethics summer addict kick hood february spatial inmate cycle business double keep gravity private nose obvious phrase birth"
44+
45+
TF_MINTER_CONTROLLER_KEY="tf_minter_controller"
46+
TF_MINTER_CONTROLLER_MNEMONIC="spider silk peasant tobacco cactus range draft merry fashion trick modify scale width omit admit face off property enact upper drink obvious off used"
47+
48+
TF_MINTER_CONTROLLER2_KEY="tf_minter_controller2"
49+
TF_MINTER_CONTROLLER2_MNEMONIC="swear blossom hybrid write crash seven then ship brush market moral renew plug oval focus stairs brisk inner blue main barely broken burden fancy"
50+
51+
TF_MINTER_KEY="tf_minter"
52+
TF_MINTER_MNEMONIC="muffin clog joy echo hello size reform mention patient pumpkin enough inside danger talk wire home doctor bone ensure bind arrest dizzy magnet arrest"
53+
54+
TF_BLACKLISTER_KEY="tf_blacklister"
55+
TF_BLACKLISTER_MNEMONIC="gravity domain nothing stomach cousin print rally door bone ghost tuition opera witness paper color oak mistake toward current coach industry thought acid breeze"
56+
57+
TF_PAUSER_KEY="tf_pauser"
58+
TF_PAUSER_MNEMONIC="sniff tail rotate pelican snap spawn champion thought recycle body caution grain brass armed hawk goat champion sunset soul answer panel present open room"
59+
60+
# check if the binary has genesis subcommand or not, if not, set CHAIN_GENESIS_CMD to empty
61+
CHAIN_GENESIS_CMD=$($CHAIN_BIN 2>&1 | grep -q "genesis-related subcommands" && echo "genesis" || echo "")
62+
63+
CHAIN_INIT_ID="$CHAIN_ID"
64+
if [ "$CHAIN_BIN" == "osmosisd" ]; then
65+
CHAIN_INIT_ID="test-1"
66+
fi
67+
jq -r ".genesis[0].mnemonic" $KEYS_CONFIG | $CHAIN_BIN init $CHAIN_ID --chain-id $CHAIN_INIT_ID --recover
68+
sed -i -e "s/$CHAIN_INIT_ID/$CHAIN_ID/g" $CHAIN_DIR/config/genesis.json
69+
70+
# Add genesis keys to the keyring and self delegate initial coins
71+
echo "Adding key...." $(jq -r ".genesis[0].name" $KEYS_CONFIG)
72+
jq -r ".genesis[0].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $(jq -r ".genesis[0].name" $KEYS_CONFIG) --recover --keyring-backend="test"
73+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $(jq -r .genesis[0].name $KEYS_CONFIG) --keyring-backend="test") $COINS --keyring-backend="test"
74+
75+
# Add faucet key to the keyring and self delegate initial coins
76+
echo "Adding key...." $(jq -r ".faucet[0].name" $KEYS_CONFIG)
77+
jq -r ".faucet[0].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $(jq -r ".faucet[0].name" $KEYS_CONFIG) --recover --keyring-backend="test"
78+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $(jq -r .faucet[0].name $KEYS_CONFIG) --keyring-backend="test") $COINS --keyring-backend="test"
79+
80+
# Add test keys to the keyring and self delegate initial coins
81+
echo "Adding key...." $(jq -r ".keys[0].name" $KEYS_CONFIG)
82+
jq -r ".keys[0].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $(jq -r ".keys[0].name" $KEYS_CONFIG) --recover --keyring-backend="test"
83+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $(jq -r .keys[0].name $KEYS_CONFIG) --keyring-backend="test") $COINS --keyring-backend="test"
84+
85+
# Add FiatTokenFactory role keys
86+
echo "Adding FiatTokenFactory role keys..."
87+
echo "$FIATTF_OWNER_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_OWNER_KEY --recover --keyring-backend="test"
88+
echo "$FIATTF_MASTER_MINTER_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_MASTER_MINTER_KEY --recover --keyring-backend="test"
89+
echo "$FIATTF_MINTER_CONTROLLER_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_MINTER_CONTROLLER_KEY --recover --keyring-backend="test"
90+
echo "$FIATTF_MINTER_CONTROLLER2_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_MINTER_CONTROLLER2_KEY --recover --keyring-backend="test"
91+
echo "$FIATTF_MINTER_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_MINTER_KEY --recover --keyring-backend="test"
92+
echo "$FIATTF_BLACKLISTER_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_BLACKLISTER_KEY --recover --keyring-backend="test"
93+
echo "$FIATTF_PAUSER_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_PAUSER_KEY --recover --keyring-backend="test"
94+
95+
# Add TokenFactory role keys
96+
echo "Adding TokenFactory role keys..."
97+
echo "$TF_OWNER_MNEMONIC" | $CHAIN_BIN keys add $TF_OWNER_KEY --recover --keyring-backend="test"
98+
echo "$TF_MASTER_MINTER_MNEMONIC" | $CHAIN_BIN keys add $TF_MASTER_MINTER_KEY --recover --keyring-backend="test"
99+
echo "$TF_MINTER_CONTROLLER_MNEMONIC" | $CHAIN_BIN keys add $TF_MINTER_CONTROLLER_KEY --recover --keyring-backend="test"
100+
echo "$TF_MINTER_CONTROLLER2_MNEMONIC" | $CHAIN_BIN keys add $TF_MINTER_CONTROLLER2_KEY --recover --keyring-backend="test"
101+
echo "$TF_MINTER_MNEMONIC" | $CHAIN_BIN keys add $TF_MINTER_KEY --recover --keyring-backend="test"
102+
echo "$TF_BLACKLISTER_MNEMONIC" | $CHAIN_BIN keys add $TF_BLACKLISTER_KEY --recover --keyring-backend="test"
103+
echo "$TF_PAUSER_MNEMONIC" | $CHAIN_BIN keys add $TF_PAUSER_KEY --recover --keyring-backend="test"
104+
105+
# Add genesis accounts for FiatTokenFactory roles
106+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_OWNER_KEY --keyring-backend="test") $COINS --keyring-backend="test"
107+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_MASTER_MINTER_KEY --keyring-backend="test") $COINS --keyring-backend="test"
108+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_MINTER_CONTROLLER_KEY --keyring-backend="test") $COINS --keyring-backend="test"
109+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_MINTER_CONTROLLER2_KEY --keyring-backend="test") $COINS --keyring-backend="test"
110+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_MINTER_KEY --keyring-backend="test") $COINS --keyring-backend="test"
111+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_BLACKLISTER_KEY --keyring-backend="test") $COINS --keyring-backend="test"
112+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_PAUSER_KEY --keyring-backend="test") $COINS --keyring-backend="test"
113+
114+
# Add genesis accounts for TokenFactory roles
115+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_OWNER_KEY --keyring-backend="test") $COINS --keyring-backend="test"
116+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_MASTER_MINTER_KEY --keyring-backend="test") $COINS --keyring-backend="test"
117+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_MINTER_CONTROLLER_KEY --keyring-backend="test") $COINS --keyring-backend="test"
118+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_MINTER_CONTROLLER2_KEY --keyring-backend="test") $COINS --keyring-backend="test"
119+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_MINTER_KEY --keyring-backend="test") $COINS --keyring-backend="test"
120+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_BLACKLISTER_KEY --keyring-backend="test") $COINS --keyring-backend="test"
121+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_PAUSER_KEY --keyring-backend="test") $COINS --keyring-backend="test"
122+
123+
if [[ $FAUCET_ENABLED == "false" && $NUM_RELAYERS -gt "-1" ]];
124+
then
125+
## Add relayers keys and delegate tokens
126+
for i in $(seq 0 $NUM_RELAYERS);
127+
do
128+
# Add relayer key and delegate tokens
129+
RELAYER_KEY_NAME="$(jq -r ".relayers[$i].name" $KEYS_CONFIG)"
130+
echo "Adding relayer key.... $RELAYER_KEY_NAME"
131+
jq -r ".relayers[$i].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $RELAYER_KEY_NAME --recover --keyring-backend="test"
132+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $RELAYER_KEY_NAME --keyring-backend="test") $COINS --keyring-backend="test"
133+
# Add relayer-cli key and delegate tokens
134+
RELAYER_CLI_KEY_NAME="$(jq -r ".relayers_cli[$i].name" $KEYS_CONFIG)"
135+
echo "Adding relayer-cli key.... $RELAYER_CLI_KEY_NAME"
136+
jq -r ".relayers_cli[$i].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $RELAYER_CLI_KEY_NAME --recover --keyring-backend="test"
137+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $RELAYER_CLI_KEY_NAME --keyring-backend="test") $COINS --keyring-backend="test"
138+
done
139+
fi
140+
141+
## if faucet not enabled then add validator and relayer with index as keys and into gentx
142+
if [[ $FAUCET_ENABLED == "false" && $NUM_VALIDATORS -gt "1" ]];
143+
then
144+
## Add validators key and delegate tokens
145+
for i in $(seq 0 $NUM_VALIDATORS);
146+
do
147+
VAL_KEY_NAME="$(jq -r '.validators[0].name' $KEYS_CONFIG)-$i"
148+
echo "Adding validator key.... $VAL_KEY_NAME"
149+
jq -r ".validators[0].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $VAL_KEY_NAME --index $i --recover --keyring-backend="test"
150+
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $VAL_KEY_NAME --keyring-backend="test") $COINS --keyring-backend="test"
151+
done
152+
fi
153+
154+
echo "Creating gentx..."
155+
COIN=$(echo $COINS | cut -d ',' -f1)
156+
AMT=$(echo ${COIN//[!0-9]/} | sed -e "s/0000$//")
157+
$CHAIN_BIN $CHAIN_GENESIS_CMD gentx $(jq -r ".genesis[0].name" $KEYS_CONFIG) $AMT$DENOM --keyring-backend="test" --chain-id $CHAIN_ID
158+
159+
echo "Output of gentx"
160+
cat $CHAIN_DIR/config/gentx/*.json | jq
161+
162+
echo "Running collect-gentxs"
163+
$CHAIN_BIN $CHAIN_GENESIS_CMD collect-gentxs
164+
165+
ls $CHAIN_DIR/config

0 commit comments

Comments
 (0)