Finalize a test round #63
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Finalize a test round | |
on: | |
workflow_dispatch: | |
inputs: | |
branch_name: | |
description: 'Clrfund branch name' | |
required: true | |
default: 'develop' | |
subgraph_name: | |
description: 'Clrfund subgraph name' | |
required: true | |
default: 'yuetloo/clrfund-dev' | |
env: | |
NODE_VERSION: 16.x | |
NETWORK: "arbitrum-goerli" | |
COORDINATOR_ETH_PK: ${{ secrets.ARBITRUM_GOERLI_COORDINATOR_WALLET_PRIVATE_KEY }} | |
COORDINATOR_PK: ${{ secrets.ARBITRUM_GOERLI_COORDINATOR_MACI_PRIVATE_KEY }} | |
JSONRPC_HTTP_URL: ${{ secrets.JSONRPC_HTTP_URL }} | |
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY_ARBITRUM }} | |
ETHERSCAN_URL: "https://api-goerli.arbiscan.io" | |
jobs: | |
finalize: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Use Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Install g++ library dependencies | |
run: | | |
sudo apt update | |
sudo apt-get install build-essential libgmp-dev libsodium-dev nlohmann-json3-dev nasm g++ curl | |
- name: Install rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
- name: Install zkutil | |
run: | | |
cargo install zkutil --version 0.3.2 | |
- name: Checkout source code | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.inputs.branch_name }} | |
- name: Download batch 64 params | |
run: | | |
ls -la $GITHUB_WORKSPACE | |
$GITHUB_WORKSPACE/.github/scripts/download-batch64-params.sh | |
- name: Build | |
run: | | |
yarn && yarn build | |
- name: Run finalize scripts | |
run: | | |
export SUBGRPAH_URL="https://api.thegraph.com/subgraphs/name/${{ github.event.inputs.subgraph_name }}" | |
echo $SUBGRAPH_URL | |
export NODE_CONFIG=$(node -e "const snarkParamsPath=process.env.GITHUB_WORKSPACE + '/params'; console.log(JSON.stringify({ snarkParamsPath }));") | |
export ROUND=$(curl -X POST -d '{"query":"{fundingRoundFactories {id currentRound {id maci}}}"}' $SUBGRPAH_URL) | |
export FACTORY_ADDRESS=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.fundingRoundFactories[0].id)') | |
export ROUND_ADDRESS=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.fundingRoundFactories[0].currentRound.id)') | |
export MACI_ADDRESS=$(node -e 'console.log(JSON.parse(process.env.ROUND).data.fundingRoundFactories[0].currentRound.maci)') | |
export TX_URL="${ETHERSCAN_URL}/api?module=account&action=txlistinternal&address=${MACI_ADDRESS}&startblock=0&page=10&offset=1&sort=asc&apikey=${ETHERSCAN_API_KEY}" | |
export TXLIST=$(curl $TX_URL) | |
export MACI_START_BLOCK=$(node -e 'console.log(JSON.parse(process.env.TXLIST).result[0].blockNumber)') | |
echo "MACI_START_BLOCK:" $MACI_START_BLOCK | |
# tally and finalize | |
cd contracts | |
yarn hardhat tally --round-address "${ROUND_ADDRESS}" --network "${NETWORK}" | |
curl --location --request POST 'https://api.pinata.cloud/pinning/pinFileToIPFS' \ | |
--header "Authorization: Bearer ${{ secrets.PINATA_JWT }}" \ | |
--form 'file=@"tally.json"' | |
JSONRPC_HTTP_URL=${{env.JSONRPC_HTTP_URL}} yarn hardhat run --network "${NETWORK}" scripts/finalize.ts |