diff --git a/.github/workflows/gentx-govgen-1.yml b/.github/workflows/gentx-govgen-1.yml new file mode 100644 index 0000000..5029ac7 --- /dev/null +++ b/.github/workflows/gentx-govgen-1.yml @@ -0,0 +1,87 @@ +name: "gentx validation govgen-1" + +on: + pull_request: {} + # push: + # paths: + # - govgen-1/gentx/*.json + # branches: + # - "ci/gentx" + +env: + GOVGEND_VERSION: "v1.0.1" + GENESIS_URL: "https://atomone.fra1.digitaloceanspaces.com/govgen/govgen-1/genesis.json" + MUST_STAKED_AMOUNT: "1000000" + +jobs: + check-gentx: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Get changed files + id: files + uses: jitterbit/get-changed-files@v1 + with: + format: json + + - name: Check gentx values + run: | + for f in ${{ steps.files.outputs.all }}; do + if [[ "$f" == "*gentx/*.json" ]]; then + echo "checking file: $f" + COMMISSION_RATE=$(cat $f | jq -r '.body.messages[0].commission.rate') + COMMISSION_MAX_RATE=$(cat $f | jq -r '.body.messages[0].commission.max_rate') + COMMISSION_MAX_CHANGE_RATE=$(cat $f | jq -r '.body.messages[0].commission.max_change_rate') + STAKED_AMOUNT=$(cat $f | jq -r '.body.messages[0].value.amount') + # bc return 1 when success + + if [ "${COMMISSION_RATE}" != "0" ]; then + echo error="Invalid commission rate." >> ${GITHUB_OUTPUT} + exit 1 + fi + + if [ "${COMMISSION_MAX_RATE}" != "0" ]; then + echo error="Invalid commission max rate." >> ${GITHUB_OUTPUT} + exit 1 + fi + + if [ "${COMMISSION_MAX_CHANGE_RATE}" != "0" ]; then + echo error="Invalid commission max change rate." >> ${GITHUB_OUTPUT} + exit 1 + fi + + if [ "${STALED_AMOUNT}" != "${MUST_STAKED_AMOUNT}" ]; then + echo error="Invalid staked amount." >> ${GITHUB_OUTPUT} + exit 1 + fi + fi + done + + validate-gentx: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Download govgend + run: | + wget -O /usr/local/bin/govgend https://github.com/atomone-hub/govgen/releases/download/${GOVGEND_VERSION}/govgend-${GOVGEND_VERSION}-linux-amd64 + chmod +x /usr/local/bin/govgend + + - name: Collect gentxs + run: | + govgend init github-ci --chain-id govgen-1 + + # wget -O $HOME/.govgen/config/genesis.json $GENESIS_URL + + for f in "govgen-1/gentx/*.json"; do + ADDR=$(cat $f | jq -r '.body.messages[0].delegator_address') + govgend add-genesis-account $ADDR 10000000ugovgen + done + govgend collect-gentxs --gentx-dir ./govgen-1/gentx + + - name: Validate genesis + run: | + govgend validate-genesis