Skip to content

Commit

Permalink
feature: injective and evmos support (#222)
Browse files Browse the repository at this point in the history
* add support for custom dockerfile building for injective

* add support for injective

* evmos support (#224)

* add support for evmos, not working

* got evmos working with changes

* add injective support, might have to move to a differnt repo

* fix coin amount for gentx

* add evmos version, dockerfile

* update evmos docker image build

* add support tests to e2e tests

* remove support tests completly, all tests should just be e2e tests

* try and increase the amt of gentx tokens

* update tests to disable faucet

* create 0.1.46-rc3 release
  • Loading branch information
Anmol1696 authored Sep 11, 2023
1 parent 008b8f8 commit 4c7f17c
Show file tree
Hide file tree
Showing 27 changed files with 205 additions and 61 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/e2e-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ jobs:
- "multi-validator.yaml"
- "two-chain-gorelayer.yaml"
- "simapp.yaml"
- "injective.yaml"
- "evmos.yaml"
fail-fast: true
max-parallel: 1

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/pr-e2e-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ jobs:
- "multi-validator.yaml"
- "two-chain-gorelayer.yaml"
- "simapp.yaml"
- "injective.yaml"
- "evmos.yaml"
fail-fast: true
max-parallel: 1

Expand Down
2 changes: 1 addition & 1 deletion charts/devnet/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.46-rc2
version: 0.1.46-rc3

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
Expand Down
15 changes: 8 additions & 7 deletions charts/devnet/defaults.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# API for interacting with the charts for devnet
# TODO: need a way to create state reaching jobs, those will run user bash scripts
# after the chain has been initialized, get the chain to a state and then complete
# Note: Order of `coins` matters, since we take the first one as part of gentx
defaultChains:
osmosis:
image: ghcr.io/cosmology-tech/starship/osmosis:v15.1.2-wasmvm1.1.2
Expand Down Expand Up @@ -28,7 +29,7 @@ defaultChains:
binary: wasmd
prefix: wasm
denom: stake
coins: 100000000000000ucosm,100000000000000stake
coins: 100000000000000stake,100000000000000ucosm
hdPath: m/44'/118'/0'/0/0
coinType: 118
repo: https://github.com/CosmWasm/wasmd
Expand All @@ -38,7 +39,7 @@ defaultChains:
binary: gaiad
prefix: cosmos
denom: uatom
coins: 100000000000000stake,100000000000000uatom
coins: 100000000000000uatom,100000000000000stake
hdPath: m/44'/118'/0'/0/0
coinType: 118
repo: https://github.com/cosmos/gaia
Expand Down Expand Up @@ -73,12 +74,12 @@ defaultChains:
coinType: 118
repo: https://github.com/Stride-Labs/stride
injective:
image: ghcr.io/cosmology-tech/starship/injective:v1.11-1685225746
image: ghcr.io/cosmology-tech/starship/injective:v1.11.6
home: /root/.injectived
binary: injectived
prefix: inj
denom: inj
coins: 100000000000000inj
coins: 100000000000000000000000000inj
hdPath: m/44'/60'/0'/0/0
coinType: 60
repo: https://github.com/InjectiveLabs/injective-chain-releases
Expand All @@ -88,7 +89,7 @@ defaultChains:
binary: interchain-security-pd
prefix: cosmos
denom: uatom
coins: 100000000000000stake,100000000000000uatom
coins: 100000000000000uatom,100000000000000stake
hdPath: m/44'/118'/0'/0/0
coinType: 118
repo: https://github.com/cosmos/interchain-security
Expand All @@ -113,12 +114,12 @@ defaultChains:
coinType: 118
repo: https://github.com/crypto-org-chain/chain-main
evmos:
image: ghcr.io/cosmology-tech/starship/evmos:v12.1.5
image: ghcr.io/cosmology-tech/starship/evmos:v13.0.1
home: /root/.evmosd
binary: evmosd
prefix: evmos
denom: aevmos
coins: 100000000000000aevmos
coins: 100000000000000000000000000aevmos
hdPath: m/44'/60'/0'/0/0
coinType: 60
repo: https://github.com/evmos/evmos
Expand Down
21 changes: 18 additions & 3 deletions charts/devnet/scripts/create-genesis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,14 @@ CHAIN_BIN="${CHAIN_BIN:=osmosisd}"
CHAIN_DIR="${CHAIN_DIR:=$HOME/.osmosisd}"
KEYS_CONFIG="${KEYS_CONFIG:=configs/keys.json}"

set -eu
set -eux

# Args and vars specific to chains
ARGS_ADD_GENESIS_ACCOUNT=""
if [ $CHAIN_BIN == "injectived" ]
then
ARGS_ADD_GENESIS_ACCOUNT="${ARGS_ADD_GENESIS_ACCOUNT} --chain-id ${CHAIN_ID}"
fi

# check if the binary has genesis subcommand or not, if not, set CHAIN_GENESIS_CMD to empty
CHAIN_GENESIS_CMD=$($CHAIN_BIN 2>&1 | grep -q "genesis-related subcommands" && echo "genesis" || echo "")
Expand All @@ -17,10 +24,18 @@ jq -r ".genesis[0].mnemonic" $KEYS_CONFIG | $CHAIN_BIN init $CHAIN_ID --chain-id
# Add genesis keys to the keyring and self delegate initial coins
echo "Adding key...." $(jq -r ".genesis[0].name" $KEYS_CONFIG)
jq -r ".genesis[0].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $(jq -r ".genesis[0].name" $KEYS_CONFIG) --recover --keyring-backend="test"
$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"
$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" $ARGS_ADD_GENESIS_ACCOUNT

# todo: adding relayer key is a temporary fix for not having faucet
# Add relayer key to the keyring and self delegate initial coins
echo "Adding key...." $(jq -r ".relayers[0].name" $KEYS_CONFIG)
jq -r ".relayers[0].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $(jq -r ".relayers[0].name" $KEYS_CONFIG) --recover --keyring-backend="test"
$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $(jq -r .relayers[0].name $KEYS_CONFIG) --keyring-backend="test") $COINS --keyring-backend="test" $ARGS_ADD_GENESIS_ACCOUNT

echo "Creating gentx..."
$CHAIN_BIN $CHAIN_GENESIS_CMD gentx $(jq -r ".genesis[0].name" $KEYS_CONFIG) 5000000000$DENOM --keyring-backend="test" --chain-id $CHAIN_ID
COIN=$(echo $COINS | cut -d ',' -f1)
AMT=$(echo ${COIN//[!0-9]/} | sed -e "s/0000$//")
$CHAIN_BIN $CHAIN_GENESIS_CMD gentx $(jq -r ".genesis[0].name" $KEYS_CONFIG) $AMT$DENOM --keyring-backend="test" --chain-id $CHAIN_ID

echo "Output of gentx"
cat $CHAIN_DIR/config/gentx/*.json | jq
Expand Down
2 changes: 1 addition & 1 deletion charts/devnet/scripts/transfer-tokens.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ADDRESS="$1"
DENOM="$2"
FAUCET_URL="$3"

set -eu
set -eux

function transfer_token() {
status_code=$(curl --header "Content-Type: application/json" \
Expand Down
4 changes: 2 additions & 2 deletions charts/devnet/scripts/update-config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ CHAIN_ID="${CHAIN_ID:=osmosis}"
CHAIN_DIR="${CHAIN_DIR:=$HOME/.osmosisd}"
KEYS_CONFIG="${KEYS_CONFIG:=configs/keys.json}"

set -eu
set -eux

ls $CHAIN_DIR

Expand Down Expand Up @@ -35,7 +35,7 @@ sed -i -e 's/enabled-unsafe-cors = false/enabled-unsafe-cors = true/g' $CHAIN_DI
function get_next_line_number() {
local txt=$1
local file=$2
local line_number=$(grep -n "$txt" $file | cut -d: -f1)
local line_number=$(grep -n "$txt" $file | cut -d: -f1 | head -1)
echo $((line_number + 1))
}

Expand Down
5 changes: 4 additions & 1 deletion charts/devnet/scripts/update-genesis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,17 @@ DENOM="${DENOM:=uosmo}"
CHAIN_BIN="${CHAIN_BIN:=osmosisd}"
CHAIN_DIR="${CHAIN_DIR:=$HOME/.osmosisd}"

set -eu
set -eux

ls $CHAIN_DIR/config

echo "Update genesis.json file with updated local params"
sed -i -e "s/\"stake\"/\"$DENOM\"/g" $CHAIN_DIR/config/genesis.json
sed -i "s/\"time_iota_ms\": \".*\"/\"time_iota_ms\": \"$TIME_IOTA_MS\"/" $CHAIN_DIR/config/genesis.json

echo "Update max gas param"
jq -r '.consensus_params.block.max_gas |= "100000000000"' $CHAIN_DIR/config/genesis.json > /tmp/genesis.json; mv /tmp/genesis.json $CHAIN_DIR/config/genesis.json

echo "Update staking unbonding time and slashing jail time"
jq -r '.app_state.staking.params.unbonding_time |= "90s"' $CHAIN_DIR/config/genesis.json > /tmp/genesis.json; mv /tmp/genesis.json $CHAIN_DIR/config/genesis.json
jq -r '.app_state.slashing.params.downtime_jail_duration |= "6s"' $CHAIN_DIR/config/genesis.json > /tmp/genesis.json; mv /tmp/genesis.json $CHAIN_DIR/config/genesis.json
Expand Down
26 changes: 19 additions & 7 deletions charts/devnet/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,13 @@ app.kubernetes.io/name: {{ include "devnet.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

{{/*
Convert $chain.name to name usable by templates
*/}}
{{- define "devnet.chain.name" -}}
{{- printf "%s" . | replace "_" "-" | trunc 63 }}
{{- end }}

{{/*
Environment variables for chain from configmaps
*/}}
Expand Down Expand Up @@ -93,7 +100,7 @@ Environment variables for genesis chain
*/}}
{{- define "devnet.genesisVars" }}
- name: GENESIS_HOST
value: {{ .chain }}-genesis
value: {{ include "devnet.chain.name" .chain }}-genesis
- name: GENESIS_PORT
value: {{ .port | toString }}
- name: NAMESPACE
Expand Down Expand Up @@ -123,7 +130,7 @@ Usage:
- "-c"
- |
{{- range $chain := .chains }}
while [ $(curl -sw '%{http_code}' http://{{ $chain }}-genesis.$NAMESPACE.svc.cluster.local:$GENESIS_PORT/node_id -o /dev/null) -ne 200 ]; do
while [ $(curl -sw '%{http_code}' http://{{ include "devnet.chain.name" $chain }}-genesis.$NAMESPACE.svc.cluster.local:$GENESIS_PORT/node_id -o /dev/null) -ne 200 ]; do
echo "Genesis validator does not seem to be ready. Waiting for it to start..."
sleep 10;
done
Expand Down Expand Up @@ -162,7 +169,8 @@ Returns a comma seperated list of urls for the RPC address based on internal DNS
{{- define "devnet.chains.internal.rpc.addrs" -}}
{{- $values := list -}}
{{- range $chain := .Values.chains -}}
{{- $values = printf "http://%s-genesis.$(NAMESPACE).svc.cluster.local:26657" $chain.name | append $values -}}
{{- $host := include "devnet.chain.name" $chain.name }}
{{- $values = printf "http://%s-genesis.$(NAMESPACE).svc.cluster.local:26657" $host | append $values -}}
{{- end -}}
{{ join "," $values }}
{{- end -}}
Expand All @@ -177,7 +185,8 @@ Returns a comma seperated list of urls for the RPC address
{{- if and ($localhost) (($chain.ports).rpc) -}}
{{- $values = printf "http://localhost:%v" $chain.ports.rpc | append $values -}}
{{- else -}}
{{- $values = printf "http://%s-genesis.$(NAMESPACE).svc.cluster.local:26657" $chain.name | append $values -}}
{{- $host := include "devnet.chain.name" $chain.name }}
{{- $values = printf "http://%s-genesis.$(NAMESPACE).svc.cluster.local:26657" $host | append $values -}}
{{- end -}}
{{- end -}}
{{ join "," $values }}
Expand All @@ -194,7 +203,8 @@ If registry.localhost is set to true, then use $chain ports
{{- if and ($localhost) (($chain.ports).grpc) -}}
{{- $values = printf "http://localhost:%v" $chain.ports.grpc | append $values -}}
{{- else -}}
{{- $values = printf "http://%s-genesis.$(NAMESPACE).svc.cluster.local:9091" $chain.name | append $values -}}
{{- $host := include "devnet.chain.name" $chain.name }}
{{- $values = printf "http://%s-genesis.$(NAMESPACE).svc.cluster.local:9091" $host | append $values -}}
{{- end -}}
{{- end -}}
{{ join "," $values }}
Expand All @@ -211,7 +221,8 @@ If registry.localhost is set to true, then use $chain ports
{{- if and ($localhost) (($chain.ports).rest) -}}
{{- $values = printf "http://localhost:%v" $chain.ports.rest | append $values -}}
{{- else -}}
{{- $values = printf "http://%s-genesis.$(NAMESPACE).svc.cluster.local:1317" $chain.name | append $values -}}
{{- $host := include "devnet.chain.name" $chain.name }}
{{- $values = printf "http://%s-genesis.$(NAMESPACE).svc.cluster.local:1317" $host | append $values -}}
{{- end -}}
{{- end -}}
{{ join "," $values }}
Expand All @@ -224,7 +235,8 @@ Returns a comma seperated list of urls for the Exposer address
{{- $port := ($.Values.exposer.ports.rest | toString | default "8081") }}
{{- $values := list -}}
{{- range $chain := .Values.chains -}}
{{- $values = printf "http://%s-genesis.$(NAMESPACE).svc.cluster.local:%s" $chain.name $port | append $values -}}
{{- $host := include "devnet.chain.name" $chain.name }}
{{- $values = printf "http://%s-genesis.$(NAMESPACE).svc.cluster.local:%s" $host $port | append $values -}}
{{- end -}}
{{ join "," $values }}
{{- end -}}
Expand Down
4 changes: 2 additions & 2 deletions charts/devnet/templates/chains/cosmos/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: setup-scripts-{{ $chain.name }}
name: setup-scripts-{{- include "devnet.chain.name" $chain.name }}
data:
{{- range $k, $v := $scripts }}
{{- if hasKey $v "data" }}
Expand Down Expand Up @@ -41,7 +41,7 @@ data:
apiVersion: v1
kind: ConfigMap
metadata:
name: patch-{{ $chain.name }}
name: patch-{{- include "devnet.chain.name" $chain.name }}
data:
genesis.json: |-
{{ toJson $chain.genesis | nindent 4 }}
Expand Down
10 changes: 5 additions & 5 deletions charts/devnet/templates/chains/cosmos/genesis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

# read faucet from chain values and merge with default faucet values
{{ $faucet := get $chain "faucet" | default dict }}
{{ $faucet = mergeOverwrite ($.Values.faucet | deepCopy) $faucet }}
{{ $faucet = mergeOverwrite ($.Values.faucet | deepCopy) $faucet }}

{{ $image := $chain.image }}
{{- if $toBuild }}
Expand All @@ -23,9 +23,9 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ $chain.name }}-genesis
name: {{ include "devnet.chain.name" $chain.name }}-genesis
spec:
serviceName: {{ $chain.name }}-genesis
serviceName: {{ include "devnet.chain.name" $chain.name }}-genesis
replicas: 1
revisionHistoryLimit: 3
selector:
Expand Down Expand Up @@ -243,11 +243,11 @@ spec:
name: keys
- name: scripts
configMap:
name: setup-scripts-{{ $chain.name }}
name: setup-scripts-{{- include "devnet.chain.name" $chain.name }}
{{- if hasKey $chain "genesis" }}
- name: patch
configMap:
name: patch-{{ $chain.name }}
name: patch-{{- include "devnet.chain.name" $chain.name }}
{{- end }}
---
{{- end }}
Expand Down
2 changes: 1 addition & 1 deletion charts/devnet/templates/chains/cosmos/service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
apiVersion: v1
kind: Service
metadata:
name: {{ $chain.name }}-genesis
name: {{ include "devnet.chain.name" $chain.name }}-genesis
labels:
app.kubernetes.io/name: {{ $chain.name }}-genesis
spec:
Expand Down
2 changes: 1 addition & 1 deletion charts/devnet/templates/chains/cosmos/validator.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ spec:
name: keys
- name: scripts
configMap:
name: setup-scripts-{{ $chain.name }}
name: setup-scripts-{{- include "devnet.chain.name" $chain.name }}
---
{{- end }}
{{- end }}
Expand Down
2 changes: 1 addition & 1 deletion charts/devnet/templates/explorer.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ data:
{{ $chain = merge $chain $defaultChain }}
{{ $host := "localhost" }}
{{- if not $.Values.explorer.localhost }}
{{ $host := printf "%s-genesis.%s.svc.cluster.local" $chain.name $.Release.Namespace }}
{{ $host := printf "%s-genesis.%s.svc.cluster.local" (include "devnet.chain.name" $chain.name) $.Release.Namespace }}
{{- end }}
{{ $chain.name }}.json: |-
{
Expand Down
10 changes: 5 additions & 5 deletions charts/devnet/templates/registry.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ spec:
volumeMounts:
{{- range $chain := .Values.chains }}
- mountPath: /configs/{{ $chain.name }}
name: registry-configs-{{ $chain.name }}
name: registry-configs-{{- include "devnet.chain.name" $chain.name }}
{{- end }}
readinessProbe:
tcpSocket:
Expand All @@ -96,9 +96,9 @@ spec:
periodSeconds: 10
volumes:
{{- range $chain := .Values.chains }}
- name: registry-configs-{{ $chain.name }}
- name: registry-configs-{{- include "devnet.chain.name" $chain.name }}
configMap:
name: registry-{{ $chain.name }}
name: registry-{{- include "devnet.chain.name" $chain.name }}
{{- end }}
---
{{- range $chain := .Values.chains }}
Expand All @@ -107,12 +107,12 @@ spec:
{{ $chain = merge $chain $defaultChain }}
{{ $host := "localhost" }}
{{- if not $.Values.registry.localhost }}
{{ $host := printf "%s-genesis.%s.svc.cluster.local" $chain.name $.Release.Namespace }}
{{ $host := printf "%s-genesis.%s.svc.cluster.local" (include "devnet.chain.name" $chain.name) $.Release.Namespace }}
{{- end }}
apiVersion: v1
kind: ConfigMap
metadata:
name: registry-{{ $chain.name }}
name: registry-{{- include "devnet.chain.name" $chain.name }}
data:
assetlist.json: |-
{
Expand Down
2 changes: 1 addition & 1 deletion charts/devnet/templates/relayers/go-relayer/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ data:
"value": {
"key": "default",
"chain-id": "{{ $fullchain.name }}",
"rpc-addr": "http://{{ $chain }}-genesis.{{ $.Release.Namespace }}.svc.cluster.local:26657",
"rpc-addr": "http://{{ include "devnet.chain.name" $chain }}-genesis.{{ $.Release.Namespace }}.svc.cluster.local:26657",
"account-prefix": "{{ $fullchain.prefix }}",
"keyring-backend": "test",
"gas-adjustment": 1.5,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ spec:
DENOM="{{ $fullchain.denom }}"
RLY_ADDR=$(rly address "{{ $fullchain.name }}" | awk 'END{print}')
echo "Transfer tokens to address $RLY_ADDR on {{ $fullchain.name }} chain with denom $DENOM"
bash -e /scripts/transfer-tokens.sh $RLY_ADDR $DENOM http://{{ $fullchain.name }}-genesis.$NAMESPACE.svc.cluster.local:8000/credit
bash -e /scripts/transfer-tokens.sh $RLY_ADDR $DENOM http://{{ include "devnet.chain.name" $fullchain.name }}-genesis.$NAMESPACE.svc.cluster.local:8000/credit
{{- end }}
{{- end }}
{{- end }}
Expand Down
Loading

0 comments on commit 4c7f17c

Please sign in to comment.