name: Seed Chain

on:
  workflow_call:
    inputs:
      chain-api-url:
        required: true
        type: string
      chain-id:
        required: true
        type: string
      seed-script-filename:
        required: true
        type: string
      erc20-deployer-network-name:
        required: true
        type: string
      genesis_validator_addresses:
        required: true
        type: string
      kava_version_filepath:
        required: true
        type: string
    secrets:
      DEV_WALLET_MNEMONIC:
        required: true
      KAVA_TESTNET_GOD_MNEMONIC:
        required: true

jobs:
  seed-chain-state:
    runs-on: ubuntu-latest
    steps:
      - name: checkout repo from master
        uses: actions/checkout@v4
        with:
          ref: master
      - name: checkout version of kava used by network
        run: |
          git pull -p
          git checkout $(cat ${KAVA_VERSION_FILEPATH})
        env:
          KAVA_VERSION_FILEPATH: ${{ inputs.kava_version_filepath }}
      - name: Set up Go
        uses: actions/setup-go@v4
        with:
          go-version-file: go.mod
      - name: build kava binary
        run: make install
      - name: checkout go evm tools repo
        uses: actions/checkout@v4
        with:
          repository: ethereum/go-ethereum
          path: go-ethereum
          ref: v1.10.26
      - name: install go evm tools
        run: |
          make
          make devtools
        working-directory: go-ethereum
      - name: checkout kava bridge repo for deploying evm contracts
        uses: actions/checkout@v4
        with:
          repository: Kava-Labs/kava-bridge
          path: kava-bridge
          ref: main
      - name: install nodeJS
        uses: actions/setup-node@v3
        with:
          cache: npm
          node-version: 18
          cache-dependency-path: kava-bridge/contract/package.json
      - name: "install ERC20 contract deployment dependencies"
        run: "npm install"
        working-directory: kava-bridge/contract
      - name: compile default erc20 contracts
        run: make compile-contracts
        working-directory: kava-bridge
      - name: download seed script from master
        run: wget https://raw.githubusercontent.com/Kava-Labs/kava/master/.github/scripts/${SEED_SCRIPT_FILENAME} && chmod +x ${SEED_SCRIPT_FILENAME}
        working-directory: kava-bridge/contract
        env:
          SEED_SCRIPT_FILENAME: ${{ inputs.seed-script-filename }}
      - name: run seed scripts
        run: bash ./${SEED_SCRIPT_FILENAME}
        working-directory: kava-bridge/contract
        env:
          CHAIN_API_URL: ${{ inputs.chain-api-url }}
          CHAIN_ID: ${{ inputs.chain-id }}
          DEV_WALLET_MNEMONIC: ${{ secrets.DEV_WALLET_MNEMONIC }}
          KAVA_TESTNET_GOD_MNEMONIC: ${{ secrets.KAVA_TESTNET_GOD_MNEMONIC }}
          SEED_SCRIPT_FILENAME: ${{ inputs.seed-script-filename }}
          ERC20_DEPLOYER_NETWORK_NAME: ${{ inputs.erc20-deployer-network-name }}
          GENESIS_VALIDATOR_ADDRESSES: ${{ inputs.genesis_validator_addresses }}
