Skip to content

Fees Scheduler Protocol #259

Fees Scheduler Protocol

Fees Scheduler Protocol #259

Workflow file for this run

# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Fees Scheduler Protocol
on:
schedule:
- cron: "0 4 * * FRI"
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: Setup node.js
uses: actions/setup-node@v1
with:
node-version: "14.x"
- name: Cache node modules
uses: actions/cache@v4
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Cache compiler installations
uses: actions/cache@v4
with:
path: |
~/.solcx
~/.vvm
key: ${{ runner.os }}-compiler-cache
# - name: Set pip cache directory path
# id: pip-cache-dir-path
# run: |
# echo "::set-output name=dir::$(pip cache dir)"
# - name: Restore pip cache
# uses: actions/cache@v2
# id: pip-cache
# with:
# path: |
# ${{ steps.pip-cache-dir-path.outputs.dir }}
# key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
# restore-keys: |
# ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
# ${{ runner.os }}-pip-
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: "3.10"
- name: Install python dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt && brownie pm install OpenZeppelin/openzeppelin-contracts@4.9.5
- name: Patch py-solc-x to use GitHub releases
run: |
python3 << 'EOF'
import os
import site
# Find py-solc-x install location
site_packages = site.getsitepackages()[0]
install_file = os.path.join(site_packages, "solcx", "install.py")
# Read the file
with open(install_file, 'r') as f:
content = f.read()
# Replace the blocked URL with GitHub releases
# Old py-solc-x 1.1.1 uses solc-bin.ethereum.org
content = content.replace(
'SOLC_BASE_URL = "https://solc-bin.ethereum.org/"',
'SOLC_BASE_URL = "https://binaries.soliditylang.org/"'
)
content = content.replace(
'"https://solc-bin.ethereum.org/"',
'"https://binaries.soliditylang.org/"'
)
content = content.replace(
'solc-bin.ethereum.org',
'binaries.soliditylang.org'
)
# Write back
with open(install_file, 'w') as f:
f.write(content)
print("✓ Patched py-solc-x to use binaries.soliditylang.org")
EOF
- name: Withdraw Fees
run: echo $REWARDS_CRON && brownie networks import network-config.yaml true && brownie run scripts/contractInteraction/rewards_cron.py --network=rsk-mainnet
env:
REWARDS_CRON: 1
FEE_CLAIMER: ${{secrets.FEE_CLAIMER}}