Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
06a7d4b
[v10] Add ground-up SDK rewrite with tree-shakeable architecture
gregnazario Mar 7, 2026
60cbfaf
[v10] Fix biome lint issues: import ordering, unused imports, banned …
gregnazario Mar 7, 2026
199a5ce
[v10] Add CJS wrapper for compat subpath
gregnazario Mar 8, 2026
1e92940
[v10] Fix all noExplicitAny lint warnings, restore CJS compat wrapper
gregnazario Mar 8, 2026
53dac87
[v10] Fix CI failures for E2E, Deno, and Playwright jobs
gregnazario Mar 8, 2026
2c9d029
[v10] Add custom HTTP client support and fix audit findings
gregnazario Mar 9, 2026
4a432aa
[v10] Fix third-round audit findings: security, correctness, and robu…
gregnazario Mar 9, 2026
baa8a3d
[v10] Fix fourth-round audit findings: security hardening and correct…
gregnazario Mar 9, 2026
b5d0c1d
[v10] Fix fifth-round audit findings: security, correctness, and perf…
gregnazario Mar 9, 2026
c90e17e
[v10] Fix sixth-round audit findings: correctness, security, and perf…
gregnazario Mar 9, 2026
8d201ee
[v10] Fix seventh-round audit findings: correctness, security, and pe…
gregnazario Mar 9, 2026
15260f7
[v10] Fix eighth-round audit findings: TypeTag DoS, BCS validation, p…
gregnazario Mar 9, 2026
f940704
[v10] Fix ninth-round audit findings: security hardening and performance
gregnazario Mar 9, 2026
a42a041
[v10] Add README and migration guide
gregnazario Mar 9, 2026
b50f819
feat(examples): add simple-transfer example with tests
gregnazario Mar 10, 2026
d72e776
feat(examples): add sponsored-txn-server example with tests
gregnazario Mar 10, 2026
7721b35
feat(examples): add dapp-with-wallet example with tests
gregnazario Mar 10, 2026
412329f
fix(examples): use Network.LOCAL in simple-transfer unit test
gregnazario Mar 10, 2026
cfbbda2
chore(examples): add design docs and lockfiles
gregnazario Mar 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
271 changes: 271 additions & 0 deletions .github/workflows/run-v10-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,271 @@
name: "v10 SDK Tests"
on:
pull_request:
types: [labeled, opened, synchronize, reopened, auto_merge_enabled]
paths:
- "v10/**"
- ".github/workflows/run-v10-tests.yaml"
push:
branches:
- main
paths:
- "v10/**"
- ".github/workflows/run-v10-tests.yaml"

permissions:
contents: read

# Cancel in-progress runs for the same branch
concurrency:
group: v10-tests-${{ github.ref }}
cancel-in-progress: true

jobs:
# ── Build + Lint ──
build-and-lint:
name: "Build & Lint"
runs-on: ubuntu-latest
defaults:
run:
working-directory: v10
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version-file: .node-version
registry-url: "https://registry.npmjs.org"
- uses: pnpm/action-setup@v4
- run: pnpm install --frozen-lockfile
- run: pnpm build
- run: pnpm check

# ── Unit Tests ──
unit-tests:
name: "Unit Tests"
runs-on: ubuntu-latest
defaults:
run:
working-directory: v10
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version-file: .node-version
registry-url: "https://registry.npmjs.org"
- uses: pnpm/action-setup@v4
- run: pnpm install --frozen-lockfile
- run: pnpm test:unit

# ── E2E Tests (local testnet) ──
e2e-tests:
name: "E2E Tests"
runs-on: ubuntu-latest
defaults:
run:
working-directory: v10
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version-file: .node-version
registry-url: "https://registry.npmjs.org"
- uses: pnpm/action-setup@v4
- run: pnpm install --frozen-lockfile
- run: pnpm build

# Install the CLI and start local testnet
- run: pnpm install -g @aptos-labs/aptos-cli
shell: bash
- run: aptos node run-local-testnet --force-restart --assume-yes --with-indexer-api --log-to-stdout >& "$TESTNET_LOG" &
shell: bash
env:
TESTNET_LOG: ${{ runner.temp }}/local-testnet-logs.txt
- run: pnpm install -g wait-on
shell: bash
- run: wait-on --verbose --interval 1500 --timeout 120000 --httpTimeout 120000 http-get://127.0.0.1:8070
shell: bash

# Run E2E tests (API + compat)
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # pin@v3
name: v10-e2e-tests
env:
TMPDIR: ${{ runner.temp }}
with:
max_attempts: 3
timeout_minutes: 10
command: cd v10 && pnpm test:e2e

- name: Print local testnet logs on failure
shell: bash
if: failure()
env:
TESTNET_LOG: ${{ runner.temp }}/local-testnet-logs.txt
run: cat "$TESTNET_LOG"

# ── Bun Runtime Tests ──
bun-tests:
name: "Bun Runtime"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version-file: .node-version
registry-url: "https://registry.npmjs.org"
- uses: pnpm/action-setup@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest

# Build v10 SDK
- run: cd v10 && pnpm install --frozen-lockfile && pnpm build
shell: bash

# Install the CLI and start local testnet
- run: pnpm install -g @aptos-labs/aptos-cli
shell: bash
- run: aptos node run-local-testnet --force-restart --assume-yes --with-indexer-api --log-to-stdout >& "$TESTNET_LOG" &
shell: bash
env:
TESTNET_LOG: ${{ runner.temp }}/local-testnet-logs.txt
- run: pnpm install -g wait-on
shell: bash
- run: wait-on --verbose --interval 1500 --timeout 120000 --httpTimeout 120000 http-get://127.0.0.1:8070
shell: bash

# Run Bun tests
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # pin@v3
name: v10-bun-tests
env:
TMPDIR: ${{ runner.temp }}
APTOS_NETWORK: local
with:
max_attempts: 3
timeout_minutes: 10
command: |
cd v10/examples/bun-test
bun install
bun run test

- name: Print local testnet logs on failure
shell: bash
if: failure()
env:
TESTNET_LOG: ${{ runner.temp }}/local-testnet-logs.txt
run: cat "$TESTNET_LOG"

# ── Deno Runtime Tests ──
deno-tests:
name: "Deno Runtime"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version-file: .node-version
registry-url: "https://registry.npmjs.org"
- uses: pnpm/action-setup@v4
- uses: denoland/setup-deno@v2
with:
deno-version: v2.x

# Build v10 SDK
- run: cd v10 && pnpm install --frozen-lockfile && pnpm build
shell: bash

# Install the CLI and start local testnet
- run: pnpm install -g @aptos-labs/aptos-cli
shell: bash
- run: aptos node run-local-testnet --force-restart --assume-yes --with-indexer-api --log-to-stdout >& "$TESTNET_LOG" &
shell: bash
env:
TESTNET_LOG: ${{ runner.temp }}/local-testnet-logs.txt
- run: pnpm install -g wait-on
shell: bash
- run: wait-on --verbose --interval 1500 --timeout 120000 --httpTimeout 120000 http-get://127.0.0.1:8070
shell: bash

# Run Deno tests
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # pin@v3
name: v10-deno-tests
env:
TMPDIR: ${{ runner.temp }}
APTOS_NETWORK: local
with:
max_attempts: 3
timeout_minutes: 10
command: |
cd v10/examples/deno-test
pnpm install
deno install
deno task test

- name: Print local testnet logs on failure
shell: bash
if: failure()
env:
TESTNET_LOG: ${{ runner.temp }}/local-testnet-logs.txt
run: cat "$TESTNET_LOG"

# ── Browser Tests (Playwright) ──
browser-tests:
name: "Browser (Playwright)"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version-file: .node-version
registry-url: "https://registry.npmjs.org"
- uses: pnpm/action-setup@v4

# Build v10 SDK
- run: cd v10 && pnpm install --frozen-lockfile && pnpm build
shell: bash

# Install the CLI and start local testnet
- run: pnpm install -g @aptos-labs/aptos-cli
shell: bash
- run: aptos node run-local-testnet --force-restart --assume-yes --with-indexer-api --log-to-stdout >& "$TESTNET_LOG" &
shell: bash
env:
TESTNET_LOG: ${{ runner.temp }}/local-testnet-logs.txt
- run: pnpm install -g wait-on
shell: bash
- run: wait-on --verbose --interval 1500 --timeout 120000 --httpTimeout 120000 http-get://127.0.0.1:8070
shell: bash

# Install web test deps + Playwright browsers
- run: |
cd v10/examples/web-test
pnpm install
pnpm exec playwright install --with-deps chromium
shell: bash

# Run browser tests
- uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # pin@v3
name: v10-browser-tests
env:
TMPDIR: ${{ runner.temp }}
APTOS_NETWORK: local
with:
max_attempts: 3
timeout_minutes: 15
command: |
cd v10/examples/web-test
pnpm test

- name: Print local testnet logs on failure
shell: bash
if: failure()
env:
TESTNET_LOG: ${{ runner.temp }}/local-testnet-logs.txt
run: cat "$TESTNET_LOG"

- name: Upload Playwright report on failure
uses: actions/upload-artifact@v4
if: failure()
with:
name: v10-playwright-report
path: v10/examples/web-test/playwright-report/
retention-days: 7
Loading