Skip to content

feat(sdk): migrate to ethers v6 #2131

feat(sdk): migrate to ethers v6

feat(sdk): migrate to ethers v6 #2131

Workflow file for this run

name: PR
on:
pull_request:
branches:
- '**'
merge_group:
branches:
- main
permissions:
pull-requests: read
env:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.TS_IMMUTABLE_SDK_NX_TOKEN }}
jobs:
syncpack:
name: Syncpack
runs-on: ubuntu-latest-4-cores
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
fetch-depth: 0
- name: setup
uses: ./.github/actions/setup
- name: Syncpack
run: pnpm syncpack:check
build-lint-test-sdk:
name: Build, Lint & Test SDK
runs-on: ubuntu-latest-8-cores
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
fetch-depth: 0
- name: setup
uses: ./.github/actions/setup
- name: Build, Lint & Test
run: pnpm --if-present nx affected -t build,lint,test
build-lint-test-examples:
name: Build, Lint & Test Examples
runs-on: ubuntu-latest-8-cores
env:
NODE_OPTIONS: --max-old-space-size=14366
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
fetch-depth: 0
- name: Setup
uses: ./.github/actions/setup
- name: Build SDK
run: pnpm build
- name: Prepare SDK
run: pnpm prepare:sdk
- name: Prepare examples
run: pnpm prepare:examples
- name: Update modules
run: pnpm install --frozen-lockfile=false
- name: Build examples
run: pnpm build:examples
- name: Lint examples
run: pnpm lint:examples
- name: Setup playwright
uses: ./.github/actions/setup-playwright
# Temporary disabled until we can release v2, since the tests are failing due to breaking changes
# - name: Prepare Checkout SDK bundle for @examples/commerce-widget-nextjs
# run: pnpm --filter @imtbl/checkout-sdk prepare:examplesdk
# - name: Prepare widgets bundle for @examples/commerce-widget-nextjs
# run: pnpm --filter @imtbl/checkout-widgets prepare:examplewidgets
- name: Test examples
run: pnpm test:examples
func-tests:
name: Functional tests
runs-on: ubuntu-latest-8-cores
env:
# imx envs
NETWORK: sepolia
TEST_ALCHEMY_API_KEY: ${{ secrets.TEST_ALCHEMY_API_KEY }}
PUBLIC_API_URL: "https://api.sandbox.x.immutable.com/v1"
TEST_STARK_CONTRACT_ADDRESS: "0x2d5C349fD8464DA06a3f90b4B0E9195F3d1b7F98"
TEST_REGISTRATION_CONTRACT_ADDRESS: "0xDbA6129C02E69405622fAdc3d5A7f8d23eac3b97"
TEST_TOKEN_ADDRESS: "0xfA5539fBEd27887EEbb2515672D80412D1A3ADa3"
TEST_WALLET1_PRIVATE_KEY: ${{ secrets.TEST_WALLET1_PRIVATE_KEY }}
TEST_WALLET1_STARK_PRIVATE_KEY: ${{ secrets.TEST_WALLET1_STARK_PRIVATE_KEY }}
TEST_WALLET2_PRIVATE_KEY: ${{ secrets.TEST_WALLET2_PRIVATE_KEY }}
TEST_WALLET2_STARK_PRIVATE_KEY: ${{ secrets.TEST_WALLET2_STARK_PRIVATE_KEY }}
TEST_WALLET_BANKER_PRIVATE_KEY: ${{ secrets.TEST_WALLET_BANKER_PRIVATE_KEY }}
TEST_WALLET_BANKER_STARK_PRIVATE_KEY: ${{ secrets.TEST_WALLET_BANKER_STARK_PRIVATE_KEY }}
TEST_STARKEX_BATCH_SIZE: 500
# zkevm envs
ZKEVM_ORDERBOOK_BANKER: ${{ secrets.ZKEVM_ORDERBOOK_BANKER }}
ZKEVM_ORDERBOOK_ERC20: "0x70dCEF6C22F50497eafc77D252E8E175af21bF75"
ZKEVM_ORDERBOOK_ERC721: "0xBE8B131f39825282Ace9eFf99C0Bb14972417b49"
ZKEVM_ORDERBOOK_ERC1155: "0x2efB9B7810B1d1520c0822aa20F1889ABd2c2146"
SEAPORT_CONTRACT_ADDRESS: "0x7d117aA8BD6D31c4fa91722f246388f38ab1942c"
ZONE_CONTRACT_ADDRESS: "0x1004f9615E79462c711Ff05a386BdbA91a7628C3"
ZKEVM_RPC_ENDPOINT: "https://rpc.testnet.immutable.com"
ORDERBOOK_MR_API_URL: "https://api.sandbox.immutable.com"
ZKEVM_CHAIN_NAME: "imtbl-zkevm-testnet"
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
fetch-depth: 0
- name: setup
uses: ./.github/actions/setup
- name: Build SDK
run: pnpm build
- name: Prepare SDK
run: pnpm prepare:sdk
- name: Prepare tests
run: pnpm prepare:tests
# Temporary disabled until we can release v2, since the tests are failing due to breaking changes
# - name: Install SDK at current version for @tests/checkout-widgets-nextjs
# run: pnpm --filter @tests/checkout-widgets-nextjs add @imtbl/sdk@$(npm view @imtbl/sdk version)
# - name: Build @tests/checkout-widgets-nextjs
# run: pnpm --filter @tests/checkout-widgets-nextjs build
# - name: Prepare Checkout SDK bundle for @tests/checkout-widgets-nextjs
# run: pnpm --filter @imtbl/checkout-sdk prepare:testsdk
# - name: Prepare widgets bundle for @tests/checkout-widgets-nextjs
# run: pnpm --filter @imtbl/checkout-widgets prepare:testwidgets
- name: Update modules
run: pnpm install --frozen-lockfile=false
- name: Setup playwright
uses: ./.github/actions/setup-playwright
- name: Run functional tests
run: pnpm --filter "@tests/*" --parallel func-test:ci