Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into feat/consensus-messages
Browse files Browse the repository at this point in the history
  • Loading branch information
Faulty Tolly committed Oct 20, 2024
2 parents 96f66b6 + 0eb27ff commit 1175373
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 126 deletions.
17 changes: 11 additions & 6 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -572,27 +572,32 @@ func NewRollapp(
keys[hubgentypes.StoreKey],
app.GetSubspace(hubgentypes.ModuleName),
app.AccountKeeper,
app.BankKeeper,
app.MintKeeper,
)

app.HubKeeper = hubkeeper.NewKeeper(
appCodec,
keys[hubtypes.StoreKey],
)

denomMetadataMiddleware := denommetadata.NewICS4Wrapper(
app.ClaimsKeeper,
var ics4Wrapper ibcporttypes.ICS4Wrapper
// The IBC tranfer submit is wrapped with the following middlewares:
// - denom metadata middleware
ics4Wrapper = denommetadata.NewICS4Wrapper(
app.IBCKeeper.ChannelKeeper,
app.HubKeeper,
app.BankKeeper,
app.HubGenesisKeeper.GetState,
)

genesisTransfersBlocker := hubgenkeeper.NewICS4Wrapper(denomMetadataMiddleware, app.HubGenesisKeeper) // ICS4 Wrapper: claims IBC middleware
// - genesis bridge - IBC transfer disabled until genesis bridge protocol completes
ics4Wrapper = hubgenkeeper.NewICS4Wrapper(ics4Wrapper, app.HubGenesisKeeper)

app.TransferKeeper = transferkeeper.NewKeeper(
appCodec,
keys[ibctransfertypes.StoreKey],
app.GetSubspace(ibctransfertypes.ModuleName),
genesisTransfersBlocker,
ics4Wrapper,
app.IBCKeeper.ChannelKeeper,
&app.IBCKeeper.PortKeeper,
app.AccountKeeper,
Expand Down Expand Up @@ -626,9 +631,9 @@ func NewRollapp(
transferStack = erc20.NewIBCMiddleware(app.Erc20Keeper, transferStack)
transferStack = hubgenkeeper.NewIBCModule(
transferStack,
app.TransferKeeper,
app.HubGenesisKeeper,
app.BankKeeper,
app.IBCKeeper.ChannelKeeper,
)

// Create static IBC router, add transfer route, then set and seal it
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ require (
github.com/bcdevtools/evm-block-explorer-rpc-cosmos v1.1.4
github.com/cosmos/cosmos-sdk v0.46.16
github.com/cosmos/ibc-go/v6 v6.2.1
github.com/dymensionxyz/dymension-rdk v1.6.1-0.20240921120829-c620e0b915d0
github.com/dymensionxyz/dymension-rdk v1.6.1-0.20241009122948-623826e0daa4
github.com/dymensionxyz/dymint v1.2.0-rc01.0.20240919105350-66f9b353655d
github.com/ethereum/go-ethereum v1.12.0
github.com/evmos/evmos/v12 v12.1.6
Expand Down Expand Up @@ -116,7 +116,7 @@ require (
github.com/dvsekhvalnov/jose2go v1.5.0 // indirect
github.com/dymensionxyz/cosmosclient v0.4.2-beta.0.20240821081230-b4018b2bac13 // indirect
github.com/dymensionxyz/gerr-cosmos v1.0.0 // indirect
github.com/dymensionxyz/sdk-utils v0.1.2-0.20240905104639-19dc09f5c6f5 // indirect
github.com/dymensionxyz/sdk-utils v0.1.2-0.20240909101947-e1b483ada9c8 // indirect
github.com/edsrzf/mmap-go v1.0.0 // indirect
github.com/elastic/gosigar v0.14.2 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -582,8 +582,8 @@ github.com/dymensionxyz/gerr-cosmos v1.0.0 h1:oi91rgOkpJWr41oX9JOyjvvBnhGY54tj51
github.com/dymensionxyz/gerr-cosmos v1.0.0/go.mod h1:n+0olxPogzWqFKba45mCpvrHLGmeS8W9UZjggHnWk6c=
github.com/dymensionxyz/rpc v1.3.1 h1:7EXWIobaBes5zldRvTIg7TmNsEKjicrWA/OjCc0NaGs=
github.com/dymensionxyz/rpc v1.3.1/go.mod h1:f+WpX8ysy8wt95iGc6auYlHcnHj2bUkhiRVkkKNys8c=
github.com/dymensionxyz/sdk-utils v0.1.2-0.20240905104639-19dc09f5c6f5 h1:o6Jh8D4QZ7yifvOWV7/uoIugLZE0mTSOdz05ScaNNdU=
github.com/dymensionxyz/sdk-utils v0.1.2-0.20240905104639-19dc09f5c6f5/go.mod h1:5fmenxP75quS5D1gPynbmh5qE6vla64Kks2O/hM+gi4=
github.com/dymensionxyz/sdk-utils v0.1.2-0.20240909101947-e1b483ada9c8 h1:J7MH912xEkmYKEg1VxDZ4RARZ/ku1OO7VOoUZQQqWEU=
github.com/dymensionxyz/sdk-utils v0.1.2-0.20240909101947-e1b483ada9c8/go.mod h1:5fmenxP75quS5D1gPynbmh5qE6vla64Kks2O/hM+gi4=
github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
Expand Down
79 changes: 19 additions & 60 deletions scripts/init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,20 @@ if ! command -v "$EXECUTABLE" >/dev/null; then
exit 1
fi

# ---------------------------- initial parameters ---------------------------- #
# 500,000 is staked
# set BASE_DENOM to the token denomination
STAKING_AMOUNT="500000000000000000000000$BASE_DENOM"
if [ "$ROLLAPP_CHAIN_ID" = "" ]; then
echo "ROLLAPP_CHAIN_ID is not set" exit 1
fi


if [ "$BASE_DENOM" = "" ]; then
echo "BASE_DENOM is not set" exit 1
fi

CONFIG_DIRECTORY="$ROLLAPP_HOME_DIR/config"

# ---------------------------- initial parameters ---------------------------- #
CONFIG_DIRECTORY="$ROLLAPP_HOME_DIR/config"
APP_CONFIG_FILE="$CONFIG_DIRECTORY/app.toml"
GENESIS_FILE="$CONFIG_DIRECTORY/genesis.json"
DENOM=$(echo "$BASE_DENOM" | sed 's/^.//')

# ---------------------------- check variables ---------------------------- #
if [ "$MONIKER" = "" ]; then
Expand All @@ -29,7 +33,7 @@ fi

# Default to 1,000,000,000 tokens
if [ "$TOTAL_SUPPLY" = "" ]; then
TOTAL_SUPPLY="1000000000000000000000000"
TOTAL_SUPPLY="1000000000000000000000000000"
fi

if [ "$ROLLAPP_SETTLEMENT_INIT_DIR_PATH" = "" ]; then
Expand All @@ -39,10 +43,7 @@ if [ "$ROLLAPP_SETTLEMENT_INIT_DIR_PATH" = "" ]; then
ROLLAPP_SETTLEMENT_INIT_DIR_PATH="${ROLLAPP_HOME_DIR}/init"
fi

if [ "$ROLLAPP_CHAIN_ID" = "" ]; then
echo "ROLLAPP_CHAIN_ID is not set" exit 1
fi

# FIXME: rename to DA_NETWORK
if [ "$CELESTIA_NETWORK" = "" ]; then
echo "CELESTIA_NETWORK is not set"
exit 1
Expand Down Expand Up @@ -78,8 +79,6 @@ update_genesis_params() {

dasel put -f "$GENESIS_FILE" '.app_state.gov.voting_params.voting_period' -v "300s" || success=false
dasel put -f "$GENESIS_FILE" '.app_state.gov.tally_params.threshold' -v "0.490000000000000000" || success=false
dasel put -f "$GENESIS_FILE" '.app_state.bank.balances.[0].coins.[0].amount' -v "$TOTAL_SUPPLY" || success=false
dasel put -f "$GENESIS_FILE" '.app_state.bank.supply.[0].amount' -v "$TOTAL_SUPPLY" || success=false
dasel put -f "$GENESIS_FILE" '.app_state.sequencers.params.unbonding_time' -v "1209600s" || success=false # 2 weeks
dasel put -f "$GENESIS_FILE" '.app_state.staking.params.unbonding_time' -v "1209600s" || success=false # 2 weeks

Expand All @@ -90,22 +89,6 @@ update_genesis_params() {
echo "Successfully updated the genesis file"
}

add_genesis_accounts() {
local success=true

ALICE_MNEMONIC="mimic ten evoke card crowd upset tragic race borrow final vibrant gesture armed alley figure orange shock strike surge jaguar deposit hockey erosion taste"
echo "$ALICE_MNEMONIC" | dymd keys add genesis-wallet --keyring-backend test --keyring-dir "$ROLLAPP_HOME_DIR" --recover

tee "$ROLLAPP_SETTLEMENT_INIT_DIR_PATH/genesis_accounts.json" >/dev/null <<EOF
[
{"amount":
{"amount":"50000000000000000000000","denom":"${BASE_DENOM}"},
"address":"$(dymd keys show -a genesis-wallet --keyring-backend test --keyring-dir "${ROLLAPP_HOME_DIR}")"
}
]
EOF
}

generate_denom_metadata() {
tee "$ROLLAPP_SETTLEMENT_INIT_DIR_PATH/denommetadata.json" >/dev/null <<EOF
[
Expand All @@ -127,41 +110,16 @@ generate_denom_metadata() {
"symbol": "${DENOM}"
}
]
EOF

tee "$ROLLAPP_SETTLEMENT_INIT_DIR_PATH/hub-denommetadata.json" > /dev/null <<EOF
[
{
"token_metadata": {
"description": "DYM",
"denom_units": [
{
"denom": "ibc/FECACB927EB3102CCCB240FFB3B6FCCEEB8D944C6FEA8DFF079650FEFF59781D",
"exponent": 0
},
{
"denom": "DYM",
"exponent": 18
}
],
"base": "ibc/FECACB927EB3102CCCB240FFB3B6FCCEEB8D944C6FEA8DFF079650FEFF59781D",
"display": "DYM",
"name": "DYM",
"symbol": "DYM"
},
"denom_trace": "transfer/channel-0/adym"
}
]
EOF
}

add_denom_metadata() {
add_denom_metadata_to_genesis() {
local success=true

denom_metadata=$(cat "$ROLLAPP_SETTLEMENT_INIT_DIR_PATH"/denommetadata.json)

dasel put -f "$GENESIS_FILE" '.app_state.bank.denom_metadata' -v "$denom_metadata" || success=false

#denom_metadata=$(cat "$ROLLAPP_SETTLEMENT_INIT_DIR_PATH"/denommetadata.json)
#dasel put -f "$GENESIS_FILE" '.app_state.bank.denom_metadata' -v "$denom_metadata" || success=false
jq --argjson metadata "$(cat "$ROLLAPP_SETTLEMENT_INIT_DIR_PATH"/denommetadata.json)" '.app_state.bank.denom_metadata = $metadata' "$GENESIS_FILE" > temp.json && mv temp.json "$GENESIS_FILE"
if [ "$success" = false ]; then
echo "An error occurred. Please refer to README.md"
return 1
Expand Down Expand Up @@ -300,8 +258,8 @@ dasel put -t string -f "$APP_CONFIG_FILE" 'minimum-gas-prices' -v "0$BASE_DENOM"
set_denom "$BASE_DENOM"
set_consensus_params
set_EVM_params
add_genesis_accounts
generate_denom_metadata
add_denom_metadata_to_genesis
update_configuration

# --------------------- adding keys and genesis accounts --------------------- #
Expand All @@ -313,6 +271,7 @@ update_configuration
echo "Do you want to include a governor on genesis? (Y/n) "
read -r answer
if [ ! "$answer" != "${answer#[Nn]}" ] ;then
STAKING_AMOUNT="500000000000000000000000$BASE_DENOM"
"$EXECUTABLE" gentx "$KEY_NAME_ROLLAPP" "$STAKING_AMOUNT" --chain-id "$ROLLAPP_CHAIN_ID" --keyring-backend test --home "$ROLLAPP_HOME_DIR" --fees 4000000000000"$BASE_DENOM"
"$EXECUTABLE" collect-gentxs --home "$ROLLAPP_HOME_DIR"
fi
Expand Down
72 changes: 16 additions & 56 deletions scripts/settlement/register_rollapp_to_hub.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ if [ "$EXECUTABLE" = "" ]; then
EXECUTABLE=$DEFAULT_SEQUENCER_KEY_PATH
fi

if [ "$BECH32_PREFIX" = "" ]; then
echo "BECH32_PREFIX is not set, exiting "
exit 1
fi

if [ "$SEQUENCER_KEY_PATH" = "" ]; then
DEFAULT_SEQUENCER_KEY_PATH="${ROLLAPP_HOME_DIR}/sequencer_keys"
echo "SEQUENCER_KEY_PATH is not set, using '${DEFAULT_SEQUENCER_KEY_PATH}'"
Expand All @@ -22,20 +27,10 @@ fi

if [ "$SEQUENCER_KEY_NAME" = "" ]; then
DEFAULT_SEQUENCER_KEY_NAME="sequencer"
echo "SEQUENCER_KEY_PATH is not set, using '${DEFAULT_SEQUENCER_KEY_PATH}'"
echo "SEQUENCER_KEY_NAME is not set, using '${DEFAULT_SEQUENCER_KEY_NAME}'"
SEQUENCER_KEY_NAME=$DEFAULT_SEQUENCER_KEY_NAME
fi

if [ "$HUB_RPC_URL" = "" ]; then
echo "HUB_RPC_URL is not set, using 'http://localhost:36657'"
HUB_RPC_URL="http://localhost:36657"
fi

if [ "$HUB_CHAIN_ID" = "" ]; then
echo "HUB_CHAIN_ID is not set, using 'dymension_100-1'"
HUB_CHAIN_ID="dymension_100-1"
fi

if [ "$ROLLAPP_ALIAS" = "" ]; then
DEFAULT_ALIAS="${ROLLAPP_CHAIN_ID%%_*}"
echo "ROLLAPP_ALIAS is not set, using '$DEFAULT_ALIAS'"
Expand All @@ -44,57 +39,24 @@ fi

if [ "$ROLLAPP_HOME_DIR" = "" ]; then
DEFAULT_ROLLAPP_HOME_DIR=${HOME}/.rollapp_evm
echo "ROLLAPP_ALIAS is not set, using '$DEFAULT_ROLLAPP_HOME_DIR'"
echo "DEFAULT_ROLLAPP_HOME_DIR is not set, using '$DEFAULT_ROLLAPP_HOME_DIR'"
ROLLAPP_HOME_DIR=$DEFAULT_ROLLAPP_HOME_DIR
fi

if [ "$BECH32_PREFIX" = "" ]; then
echo "BECH32_PREFIX is not set, exiting "
exit 1
fi

if [ "$METADATA_PATH" = "" ]; then
DEFAULT_METADATA_PATH="${ROLLAPP_HOME_DIR}/init/rollapp-metadata.json"
echo "METADATA_PATH is not set, using '$DEFAULT_METADATA_PATH"
METADATA_PATH=$DEFAULT_METADATA_PATH

if [ ! -f "$METADATA_PATH" ]; then
echo "${METADATA_PATH} does not exist, would you like to use a dummy metadata file? (y/n)"
read -r answer

if [ "$answer" != "${answer#[Yy]}" ]; then
cat <<EOF > "$METADATA_PATH"
{
"website": "https://dymension.xyz/",
"description": "This is a description of the Rollapp.",
"logo_data_uri": "data:image/jpeg;base64,/000",
"token_logo_uri": "data:image/jpeg;base64,/000",
"telegram": "https://t.me/example",
"x": "https://x.com/dymension"
}
EOF
else
echo "You can't register a rollapp without rollapp metadata, please create the ${METADATA_PATH} and run the script again"
exit 1
fi
fi

fi

if [ "$NATIVE_DENOM_PATH" = "" ]; then
DEFAULT_NATIVE_DENOM_PATH="${ROLLAPP_HOME_DIR}/init/rollapp-native-denom.json"
echo "NATIVE_DENOM_PATH is not set, using '$DEFAULT_NATIVE_DENOM_PATH"
NATIVE_DENOM_PATH=$DEFAULT_NATIVE_DENOM_PATH

if [ ! -f "$NATIVE_DENOM_PATH" ]; then
echo "${NATIVE_DENOM_PATH} does not exist, would you like to use a dummy native-denom file? (y/n)"
echo "${NATIVE_DENOM_PATH} does not exist, would you like to create native-denom file? (y/n)"
read -r answer

if [ "$answer" != "${answer#[Yy]}" ]; then
cat <<EOF > "$NATIVE_DENOM_PATH"
{
"display": "DEN",
"base": "aden",
"display": "$DENOM",
"base": "$BASE_DENOM",
"exponent": 18
}
EOF
Expand All @@ -103,23 +65,21 @@ EOF
exit 1
fi
fi

fi

GENESIS_PATH="${ROLLAPP_HOME_DIR}/config/genesis.json"
GENESIS_HASH=$(sha256sum "$GENESIS_PATH" | awk '{print $1}' | sed 's/[[:space:]]*$//')
SEQUENCER_ADDR=$(dymd keys show "$SEQUENCER_KEY_NAME" --address --keyring-backend test --keyring-dir "$SEQUENCER_KEY_PATH")
# GENESIS_PATH="${ROLLAPP_HOME_DIR}/config/genesis.json"
# GENESIS_HASH=$(sha256sum "$GENESIS_PATH" | awk '{print $1}' | sed 's/[[:space:]]*$//')
GENESIS_HASH="PLACEHOLDER"

echo "deployer" $DEPLOYER;
INITIAL_SUPPLY=$(jq -r '.app_state.bank.supply[0].amount' "${ROLLAPP_HOME_DIR}/config/genesis.json")

set -x
"$SETTLEMENT_EXECUTABLE" tx rollapp create-rollapp "$ROLLAPP_CHAIN_ID" "$ROLLAPP_ALIAS" EVM \
--bech32-prefix "$BECH32_PREFIX" \
--init-sequencer "$SEQUENCER_ADDR" \
--init-sequencer "*" \
--genesis-checksum "$GENESIS_HASH" \
--metadata "$METADATA_PATH" \
--native-denom "$NATIVE_DENOM_PATH" \
--initial-supply 1 \
--initial-supply "$INITIAL_SUPPLY" \
--from "$DEPLOYER" \
--keyring-backend test \
--gas auto --gas-adjustment 1.2 \
Expand Down

0 comments on commit 1175373

Please sign in to comment.