From e87282f2da2d285de0c4554c85436e1657b03975 Mon Sep 17 00:00:00 2001 From: timkot Date: Tue, 9 Sep 2025 18:03:23 +0100 Subject: [PATCH] docs(examples): add yarn workspace + getting-started example --- examples/getting-started/.env.example | 3 +++ examples/getting-started/package.json | 20 ++++++++++++++++++++ examples/getting-started/src/index.ts | 11 +++++++++++ examples/getting-started/tsconfig.json | 12 ++++++++++++ 4 files changed, 46 insertions(+) create mode 100644 examples/getting-started/.env.example create mode 100644 examples/getting-started/package.json create mode 100644 examples/getting-started/src/index.ts create mode 100644 examples/getting-started/tsconfig.json diff --git a/examples/getting-started/.env.example b/examples/getting-started/.env.example new file mode 100644 index 0000000000..cf2c776ef5 --- /dev/null +++ b/examples/getting-started/.env.example @@ -0,0 +1,3 @@ +ALCHEMY_RPC_URL= # e.g. https://eth-sepolia.g.alchemy.com/v2/XXXXX +BUNDLER_RPC_URL= # optional if repo provides a bundler URL +PRIVATE_KEY= # ONLY for local testing (use a throwaway key) diff --git a/examples/getting-started/package.json b/examples/getting-started/package.json new file mode 100644 index 0000000000..e3ec7b7038 --- /dev/null +++ b/examples/getting-started/package.json @@ -0,0 +1,20 @@ +{ + "name": "aa-sdk-getting-started", + "private": true, + "type": "module", + "scripts": { + "build": "tsc -p tsconfig.json", + "start": "node dist/index.js", + "dev": "ts-node src/index.ts" + }, + "dependencies": { + "@alchemy/aa-core": "workspace:*", + "@alchemy/aa-ethers": "workspace:*", + "ethers": "^6.10.0", + "dotenv": "^16.4.0" + }, + "devDependencies": { + "ts-node": "^10.9.2", + "typescript": "^5.4.0" + } +} diff --git a/examples/getting-started/src/index.ts b/examples/getting-started/src/index.ts new file mode 100644 index 0000000000..ad12876343 --- /dev/null +++ b/examples/getting-started/src/index.ts @@ -0,0 +1,11 @@ +import 'dotenv/config'; +import { version as ethersVersion } from 'ethers'; +import pkgCore from '@alchemy/aa-core/package.json' assert { type: 'json' }; + +console.log('Ethers version:', ethersVersion); +console.log('@alchemy/aa-core version:', pkgCore.version); + +// TODO: Expand this example in a follow-up PR to show a minimal userOp: +// 1) Create client +// 2) Fund / sponsor gas (if required) +// 3) Send a user operation and log hash diff --git a/examples/getting-started/tsconfig.json b/examples/getting-started/tsconfig.json new file mode 100644 index 0000000000..38631d8725 --- /dev/null +++ b/examples/getting-started/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ES2022", + "moduleResolution": "Bundler", + "esModuleInterop": true, + "strict": true, + "outDir": "dist", + "skipLibCheck": true + }, + "include": ["src"] +}