Skip to content

feat: POC -- Implement locking mechanism to ensure sequential transaction processing per sender address for eth_sendRawTransaction #4478

feat: POC -- Implement locking mechanism to ensure sequential transaction processing per sender address for eth_sendRawTransaction

feat: POC -- Implement locking mechanism to ensure sequential transaction processing per sender address for eth_sendRawTransaction #4478

name: Conformity Test Workflow
on:
pull_request:
branches: [main, release/**]
push:
branches: [main, release/**]
tags: [v*]
permissions:
contents: read
jobs:
clone-and-build-execution-apis:
runs-on: hiero-smart-contracts-linux-medium
steps:
- name: Harden Runner
uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0
with:
egress-policy: audit
- name: Checkout execution-apis repo
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
ref: 7907424db935b93c2fe6a3c0faab943adebe8557
repository: 'ethereum/execution-apis'
path: 'execution-apis'
- name: Use Node.js TLS 22
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: 22
- name: Install dependencies
run: npm install
working-directory: ./execution-apis
- name: Build project
run: npm run build
working-directory: ./execution-apis
- name: Upload openrpc.json as an artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: openrpc
path: ./execution-apis/openrpc.json
build-and-test:
runs-on: hiero-smart-contracts-linux-medium
needs: clone-and-build-execution-apis
steps:
- name: Harden Runner
uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0
with:
egress-policy: audit
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Use Node.js TLS 22
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: 22
- name: Install make
run: sudo apt-get update; sudo apt-get install build-essential -y
- name: Checkout repo
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Install packages
run: npm ci
- name: Create .env file
run: cp ./packages/server/tests/localAcceptance.env .env
- name: Install pnpm
run: npm install -g pnpm
- name: Build Typescript
run: npx lerna run build
- name: Install hedera local
run: npm install @hashgraph/hedera-local -g
- name: Run hedera local
run: npx hedera restart -d --verbose=trace
- name: Stop relay
run: docker stop json-rpc-relay json-rpc-relay-ws
- name: Download openrpc.json artifact
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: openrpc
- name: Rename file
run: mv openrpc.json openrpc_exec_apis.json
- name: Add ws specific env variables
run: |
echo "SUBSCRIPTIONS_ENABLED=true" >> .env
echo "TEST_WS_SERVER=true" >> .env
- name: Run conformity tests
run: npm run acceptancetest:rpc_api_schema_conformity