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: Skandha ERC-4337 compliance (bundler-spec-tests) | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
jobs: | |
bundler-spec-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup PDM | |
run: curl -sSL https://raw.githubusercontent.com/pdm-project/pdm/main/install-pdm.py | python3 - | |
- name: Setup NodeJS | |
uses: "actions/setup-node@v3" | |
with: | |
node-version: 18.15 | |
- name: Checkout bundler spec tests | |
uses: actions/checkout@v3 | |
with: | |
repository: eth-infinitism/bundler-spec-tests | |
ref: master | |
path: ./bundler-spec-tests | |
submodules: true | |
- name: Setup bundler spec tests | |
working-directory: ./bundler-spec-tests | |
run: pdm install && pdm run update-deps | |
- name: Install Geth | |
run: | | |
wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.12.2-bed84606.tar.gz | |
tar -xvf geth-linux-amd64-1.12.2-bed84606.tar.gz | |
- name: Run Geth | |
run: | | |
cd geth-linux-amd64-1.12.2-bed84606 && | |
./geth \ | |
--verbosity 1 \ | |
--http.vhosts '*,localhost,host.docker.internal' \ | |
--http \ | |
--http.api personal,eth,net,web3,debug \ | |
--http.corsdomain '*' \ | |
--http.addr "0.0.0.0" \ | |
--nodiscover --maxpeers 0 \ | |
--networkid 1337 \ | |
--dev \ | |
--allow-insecure-unlock \ | |
--rpc.allow-unprotected-txs \ | |
--dev.gaslimit 20000000 & | |
- name: Deploy ERC-4337 contracts | |
working-directory: ./bundler-spec-tests | |
# checkout to 0.6.0 commit https://github.com/eth-infinitism/account-abstraction/commits/abff2aca61a8f0934e533d0d352978055fddbd96 | |
# change this command when using new EP | |
run: | | |
cd @account-abstraction && \ | |
git checkout abff2aca61a8f0934e533d0d352978055fddbd96 && \ | |
yarn deploy --network localhost | |
- name: Fund bundler | |
run: | | |
cd geth-linux-amd64-1.12.2-bed84606 && | |
./geth \ | |
--exec "eth.sendTransaction({from: eth.accounts[0], to: \"0x55082761664aEb8062B3427ba5E0455bFb7b68CB\", value: web3.toWei(4337, \"ether\")})" \ | |
attach http://localhost:8545/ | |
- name: Install Skandha deps and build | |
run: yarn install && yarn build && yarn run bootstrap | |
- name: Start Skandha | |
# This private key is for testing only | |
run: cp config.json.default config.json && jq '.networks.dev.relayer = "0x767b4393f6a5da742b30585428116f0395bee8e61c2da4ae8e67e5633389e2d3"' && ./skandha standalone --testingMode & | |
- name: Run tests | |
working-directory: ./bundler-spec-tests | |
run: pdm run pytest -rA -W ignore::DeprecationWarning --url http://127.0.0.1:14337/rpc/ --entry-point 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 --ethereum-node http://localhost:8545 | |
- name: Send Slack notification | |
uses: ravsamhq/notify-slack-action@v2 | |
if: always() | |
continue-on-error: true | |
with: | |
status: ${{ job.status }} | |
notification_title: "{workflow} has {status_message}" | |
message_format: "{emoji} *{workflow}* {status_message} in <{repo_url}|{repo}>" | |
footer: "Repo <{repo_url}|{repo}> | <{run_url}|View Workflow>" | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |