Skip to content

test(e2e): EVM Eth712Account deposit + withdraw through the dapp client #6707

test(e2e): EVM Eth712Account deposit + withdraw through the dapp client

test(e2e): EVM Eth712Account deposit + withdraw through the dapp client #6707

Workflow file for this run

name: TypeScript CI
on:
pull_request:
push:
branches: [main]
jobs:
lint:
name: SDK Lint & Format
runs-on: ubuntu-latest
defaults:
run:
working-directory: sdk
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
sdk:
- 'sdk/**'
- uses: actions/setup-node@v4
if: steps.filter.outputs.sdk == 'true'
with:
node-version: '24'
cache: 'npm'
cache-dependency-path: sdk/package-lock.json
- if: steps.filter.outputs.sdk == 'true'
run: npm ci && npm run lint
check:
name: SDK Build & Test
runs-on: ubuntu-latest
defaults:
run:
working-directory: sdk
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '24'
cache: 'npm'
cache-dependency-path: sdk/package-lock.json
- name: Install npm dependencies
run: npm ci
- name: Install Scarb
uses: software-mansion/setup-scarb@v1
with:
scarb-version: "2.17.0"
- uses: software-mansion/setup-universal-sierra-compiler@v1
with:
universal-sierra-compiler-version: "v2.8.0"
- name: Install starknet-foundry via asdf
uses: asdf-vm/actions/install@v3
with:
asdf_branch: v0.14.1
tool_versions: |
starknet-foundry 0.59.0
- name: Regenerate Cairo contract artifacts
run: npm run generate
- name: Fetch proving API spec
env:
SEQUENCER_SPEC_REF: "avi/privacy/add-rpc-spec"
run: npm run fetch:proving-spec
- name: Run tests
run: npm run test:fast
devnet:
name: SDK Devnet Test
runs-on: ubuntu-latest
defaults:
run:
working-directory: sdk
steps:
# fetch-depth: 2 so paths-filter can diff against the parent commit on push events (on
# pull_request it uses the GitHub API and needs no history).
- uses: actions/checkout@v4
with:
fetch-depth: 2
# The devnet suite exercises the SDK against the Cairo contracts, so run it only when the SDK, the
# contracts, or this workflow itself change (the last so a change to the job below is exercised by
# its own PR). Client-only PRs skip it (the steps no-op and the job still reports green, keeping a
# required check satisfied) rather than being gated on the unrelated Cairo/devnet build.
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
devnet:
- 'sdk/**'
- 'packages/**'
- 'Scarb.toml'
- 'Scarb.lock'
- '.github/workflows/typescript-ci.yml'
- uses: actions/setup-node@v4
if: steps.filter.outputs.devnet == 'true'
with:
node-version: '24'
cache: 'npm'
cache-dependency-path: sdk/package-lock.json
- name: Install Scarb
if: steps.filter.outputs.devnet == 'true'
uses: software-mansion/setup-scarb@v1
with:
scarb-version: "2.17.0"
- uses: software-mansion/setup-universal-sierra-compiler@v1
if: steps.filter.outputs.devnet == 'true'
with:
universal-sierra-compiler-version: "v2.8.0"
- name: Install starknet-devnet
if: steps.filter.outputs.devnet == 'true'
run: |
curl -L https://github.com/0xSpaceShard/starknet-devnet/releases/download/v0.8.0-rc.3/starknet-devnet-x86_64-unknown-linux-gnu.tar.gz | tar -xz -C /usr/local/bin
chmod +x /usr/local/bin/starknet-devnet
- name: Install npm dependencies
if: steps.filter.outputs.devnet == 'true'
run: npm ci
- name: Build Cairo contracts
if: steps.filter.outputs.devnet == 'true'
run: npm run scarb:build
- name: Run devnet tests
if: steps.filter.outputs.devnet == 'true'
run: npm run test:devnet