From 0a65353b3627978596209fc8e026a35965e603c8 Mon Sep 17 00:00:00 2001 From: Mahmudul Alam Date: Thu, 2 Apr 2026 19:33:52 +0600 Subject: [PATCH 1/5] refactor: rename contracts package to contracts-sdk --- .changeset/fast-pets-heal.md | 5 --- .vscode/settings.json | 2 +- CHANGELOG.md | 2 +- CLAUDE.md | 16 ++++----- README.md | 5 +-- SECURITY.md | 9 ++--- packages/contracts/CHANGELOG.md | 23 ++---------- packages/contracts/README.md | 39 +++++++++++---------- packages/contracts/package.json | 18 ++++++++-- packages/contracts/src/lib/viem/provider.ts | 8 ++--- packages/contracts/src/metrics/index.ts | 3 +- 11 files changed, 62 insertions(+), 68 deletions(-) delete mode 100644 .changeset/fast-pets-heal.md diff --git a/.changeset/fast-pets-heal.md b/.changeset/fast-pets-heal.md deleted file mode 100644 index 4c413615..00000000 --- a/.changeset/fast-pets-heal.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@oaknetwork/contracts": major ---- - -Added contract for sdk diff --git a/.vscode/settings.json b/.vscode/settings.json index d2145582..8d6d7340 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -25,7 +25,7 @@ { "name": "contracts", "rootPath": "packages/contracts", - "jestCommandLine": "pnpm --filter @oaknetwork/contracts test --", + "jestCommandLine": "pnpm --filter @oaknetwork/contracts-sdk test --", "pathToConfig": "jest.config.js" } ] diff --git a/CHANGELOG.md b/CHANGELOG.md index 655ca791..5f9a2233 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,7 +37,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Engine requirement updated: `pnpm >= 10.0.0` (was `>= 8.0.0`) - **CI/CD Improvements**: - Removed `continue-on-error` from lint step - lint failures now block PRs - - Excluded `@oaknetwork/contracts` placeholder package from CI builds + - Excluded `@oaknetwork/contracts-sdk` placeholder package from CI builds - Pinned npm version in release workflow to `10.9.2` for deterministic builds - Added `package-lock.json` to .gitignore (enforces pnpm as canonical package manager) diff --git a/CLAUDE.md b/CLAUDE.md index adbfdc3a..b74d0f74 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -25,7 +25,7 @@ This document provides strict rules and standards for AI assistants (Claude Code ## Architecture Principles (Payments SDK) -> **Scope:** This section applies to the **payments SDK** (`packages/payments-sdk`). For the contracts package (`packages/contracts`), see [Architecture Principles (Contracts SDK)](#architecture-principles-contracts-sdk) below. +> **Scope:** This section applies to the **payments SDK** (`packages/payments`). For the contracts package (`packages/contracts`), see [Architecture Principles (Contracts SDK)](#architecture-principles-contracts-sdk) below. ### Core Patterns (DO NOT BREAK) @@ -213,12 +213,12 @@ Write and simulate methods **MUST** use `requireSigner` and `requireAccount` gua | Import path | Contents | |-------------|----------| -| `@oaknetwork/contracts` | Client, utils, types, lib re-exports, constants, errors | -| `@oaknetwork/contracts/contracts` | Individual `create*Entity` factories | -| `@oaknetwork/contracts/client` | `createOakContractsClient` + client types | -| `@oaknetwork/contracts/utils` | Pure helper functions | -| `@oaknetwork/contracts/errors` | Error classes + parsing utilities | -| `@oaknetwork/contracts/metrics` | Reporting helpers (**NOT** re-exported from root) | +| `@oaknetwork/contracts-sdk` | Client, utils, types, lib re-exports, constants, errors | +| `@oaknetwork/contracts-sdk/contracts` | Individual `create*Entity` factories | +| `@oaknetwork/contracts-sdk/client` | `createOakContractsClient` + client types | +| `@oaknetwork/contracts-sdk/utils` | Pure helper functions | +| `@oaknetwork/contracts-sdk/errors` | Error classes + parsing utilities | +| `@oaknetwork/contracts-sdk/metrics` | Reporting helpers (**NOT** re-exported from root) | ### Testing (Contracts-Specific) @@ -892,7 +892,7 @@ export function verifyWebhookSignature( 1. Changesets gather changes 2. Version bump via `pnpm changeset:version` -3. Build packages: `pnpm --filter=!@oaknetwork/contracts build` +3. Build packages: `pnpm --filter=!@oaknetwork/contracts-sdk build` 4. Publish to npm with provenance 5. Create GitHub releases diff --git a/README.md b/README.md index 0507d530..d832980d 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,10 @@ Primary SDK for Oak payments APIs (customers, payments, webhooks, transfers, ref TypeScript SDK for Oak smart contracts and contract integrations. -- Package: `@oaknetwork/contracts` +- Package: `@oaknetwork/contracts-sdk` - Folder: [`packages/contracts`](./packages/contracts) -- Documentation: [oaknetwork.org](https://www.oaknetwork.org/) +- Documentation: [oaknetwork.org/docs/contracts-sdk/overview](https://oaknetwork.org/docs/contracts-sdk/overview) +- npm: [npmjs.com/package/@oaknetwork/contracts-sdk](https://www.npmjs.com/package/@oaknetwork/contracts-sdk) ## Monorepo quick start diff --git a/SECURITY.md b/SECURITY.md index 2183667a..ea2e9b3b 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,11 +2,12 @@ ## Supported Versions -We actively maintain and provide security updates for the following versions of `@oaknetwork/payments-sdk`: +We actively maintain and provide security updates for the following published packages: -| Version | Supported | -| ------- | ----------------- | -| 1.x | ✅ Active support | +| Package | Supported versions | Status | +| ---------------------------- | ------------------ | ----------------- | +| `@oaknetwork/payments-sdk` | 1.x | ✅ Active support | +| `@oaknetwork/contracts-sdk` | 1.x | ✅ Active support | ## Reporting a Vulnerability diff --git a/packages/contracts/CHANGELOG.md b/packages/contracts/CHANGELOG.md index e654c612..68d1702b 100644 --- a/packages/contracts/CHANGELOG.md +++ b/packages/contracts/CHANGELOG.md @@ -1,24 +1,7 @@ -# @oaknetwork/contracts - -## 0.1.0 - -### Minor Changes - -### Minor Changes - -- testing changeset for releases +# @oaknetwork/contracts-sdk ## 1.0.0 -### Major Changes - -### Major Changes - -- project setup - -### Minor Changes - -### Minor Changes +### Added -- update changeset -- Fix release CI +- Initial release of `@oaknetwork/contracts-sdk` diff --git a/packages/contracts/README.md b/packages/contracts/README.md index 650a2772..1ab458c8 100644 --- a/packages/contracts/README.md +++ b/packages/contracts/README.md @@ -13,15 +13,15 @@ TypeScript SDK for interacting with Oak Network smart contracts. Provides a type ## Installation ```bash -pnpm add @oaknetwork/contracts +pnpm add @oaknetwork/contracts-sdk ``` ```bash -npm install @oaknetwork/contracts +npm install @oaknetwork/contracts-sdk ``` ```bash -yarn add @oaknetwork/contracts +yarn add @oaknetwork/contracts-sdk ``` **Requirements:** Node.js 18+, TypeScript 5.x recommended. @@ -29,7 +29,7 @@ yarn add @oaknetwork/contracts ### Supported Chain IDs ```typescript -import { CHAIN_IDS } from "@oaknetwork/contracts"; +import { CHAIN_IDS } from "@oaknetwork/contracts-sdk"; CHAIN_IDS.ETHEREUM_MAINNET; // 1 CHAIN_IDS.CELO_MAINNET; // 42220 @@ -45,7 +45,7 @@ CHAIN_IDS.CELO_TESTNET_SEPOLIA; // 11142220 ### Create a client ```typescript -import { createOakContractsClient, CHAIN_IDS } from "@oaknetwork/contracts"; +import { createOakContractsClient, CHAIN_IDS } from "@oaknetwork/contracts-sdk"; const oak = createOakContractsClient({ chainId: CHAIN_IDS.CELO_TESTNET_SEPOLIA, @@ -100,7 +100,7 @@ import { createOakContractsClient, createWallet, CHAIN_IDS, -} from "@oaknetwork/contracts"; +} from "@oaknetwork/contracts-sdk"; const oak = createOakContractsClient({ chainId: CHAIN_IDS.CELO_TESTNET_SEPOLIA, @@ -151,7 +151,7 @@ import { http, getChainFromId, CHAIN_IDS, -} from "@oaknetwork/contracts"; +} from "@oaknetwork/contracts-sdk"; const chain = getChainFromId(CHAIN_IDS.CELO_TESTNET_SEPOLIA); const provider = createPublicClient({ chain, transport: http(RPC_URL) }); @@ -235,7 +235,7 @@ import { getCurrentTimestamp, addDays, CHAIN_IDS, -} from "@oaknetwork/contracts"; +} from "@oaknetwork/contracts-sdk"; const factory = oak.campaignInfoFactory("0x..."); @@ -468,7 +468,7 @@ Contract calls can revert with on-chain errors. The SDK decodes raw revert data ### Decoding revert errors: ```typescript -import { parseContractError, getRevertData } from "@oaknetwork/contracts"; +import { parseContractError, getRevertData } from "@oaknetwork/contracts-sdk"; function handleError(err) { // If the error is already a typed SDK error (thrown by simulate methods) @@ -503,7 +503,7 @@ try { ## Utility Functions -The SDK exports pure utility functions and constants that have no client dependency. Import them from @oaknetwork/contracts or @oaknetwork/contracts/utils. +The SDK exports pure utility functions and constants that have no client dependency. Import them from @oaknetwork/contracts-sdk or @oaknetwork/contracts-sdk/utils. ```typescript import { @@ -528,7 +528,7 @@ import { BYTES32_ZERO, DATA_REGISTRY_KEYS, scopedToPlatform, -} from "@oaknetwork/contracts"; +} from "@oaknetwork/contracts-sdk"; // Hash a string to bytes32 const platformHash = keccak256(toHex("my-platform")); @@ -557,11 +557,12 @@ For complete guidelines on utility functions, please refer to the following link | Entry point | Contents | | --------------------------------- | ------------------------------------------- | -| `@oaknetwork/contracts` | Everything — client, types, utils, errors | -| `@oaknetwork/contracts/utils` | Utility functions only (no client) | -| `@oaknetwork/contracts/contracts` | Contract entity factories only | -| `@oaknetwork/contracts/client` | `createOakContractsClient` only | -| `@oaknetwork/contracts/errors` | Error classes and `parseContractError` only | +| `@oaknetwork/contracts-sdk` | Everything — client, types, utils, errors | +| `@oaknetwork/contracts-sdk/utils` | Utility functions only (no client) | +| `@oaknetwork/contracts-sdk/contracts` | Contract entity factories only | +| `@oaknetwork/contracts-sdk/client` | `createOakContractsClient` only | +| `@oaknetwork/contracts-sdk/errors` | Error classes and `parseContractError` only | +| `@oaknetwork/contracts-sdk/metrics` | Platform, campaign, and treasury reporting helpers (not re-exported from root) | --- @@ -621,8 +622,8 @@ See [CLAUDE.md](../../CLAUDE.md) for coding standards including architecture pri ## Documentation -- [Full docs](https://oaknetwork.org/docs/contracts-sdk/overview) — oaknetwork.org/docs/sdk/overview -- [Quickstart](https://oaknetwork.org/docs/contracts-sdk/quickstart) — oaknetwork.org/docs/sdk/quickstart +- [Full docs](https://oaknetwork.org/docs/contracts-sdk/overview) — oaknetwork.org/docs/contracts-sdk/overview +- [Quickstart](https://oaknetwork.org/docs/contracts-sdk/quickstart) — oaknetwork.org/docs/contracts-sdk/quickstart - [Monorepo README](../../README.md) — README.md - [Changelog](./CHANGELOG.md) — CHANGELOG.md @@ -644,6 +645,6 @@ See [CLAUDE.md](../../CLAUDE.md) for coding standards including architecture pri - [Documentation](https://oaknetwork.org/docs/contracts-sdk/overview) - [GitHub](https://github.com/oak-network/sdk) - [Issues](https://github.com/oak-network/sdk/issues) -- [npm](https://www.npmjs.com/package/@oaknetwork/contracts) +- [npm](https://www.npmjs.com/package/@oaknetwork/contracts-sdk) Questions? [Open an issue](https://github.com/oak-network/sdk/issues) or contact **support@oaknetwork.org** diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 40c55bf4..c4503aef 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -1,7 +1,21 @@ { - "name": "@oaknetwork/contracts", - "version": "0.1.0", + "name": "@oaknetwork/contracts-sdk", + "version": "1.0.0", "description": "TypeScript SDK for Oak Network smart contracts", + "keywords": [ + "sdk", + "oaknetwork", + "oak", + "typescript", + "viem", + "web3", + "celo", + "smart-contracts" + ], + "homepage": "https://oaknetwork.org/docs/contracts-sdk/overview", + "bugs": { + "url": "https://github.com/oak-network/sdk/issues" + }, "publishConfig": { "access": "public" }, diff --git a/packages/contracts/src/lib/viem/provider.ts b/packages/contracts/src/lib/viem/provider.ts index dda49a1d..d0621420 100644 --- a/packages/contracts/src/lib/viem/provider.ts +++ b/packages/contracts/src/lib/viem/provider.ts @@ -19,7 +19,7 @@ import type { JsonRpcProvider, Wallet } from "../../client/types"; * * @example * ```typescript - * import { createJsonRpcProvider, mainnet } from '@oaknetwork/contracts' + * import { createJsonRpcProvider, mainnet } from '@oaknetwork/contracts-sdk' * * const provider = createJsonRpcProvider('https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY', mainnet) * ``` @@ -45,7 +45,7 @@ export function createJsonRpcProvider( * * @example * ```typescript - * import { createWallet, createJsonRpcProvider, mainnet } from '@oaknetwork/contracts' + * import { createWallet, createJsonRpcProvider, mainnet } from '@oaknetwork/contracts-sdk' * * const provider = createJsonRpcProvider(rpcUrl, mainnet) * const signer = createWallet(privateKey, provider, rpcUrl) @@ -81,7 +81,7 @@ export function createWallet( * * @example * ```typescript - * import { createBrowserProvider, mainnet } from '@oaknetwork/contracts' + * import { createBrowserProvider, mainnet } from '@oaknetwork/contracts-sdk' * * const provider = createBrowserProvider(window.ethereum, mainnet) * ``` @@ -106,7 +106,7 @@ export function createBrowserProvider( * * @example * ```typescript - * import { createBrowserProvider, getSigner, mainnet } from '@oaknetwork/contracts' + * import { createBrowserProvider, getSigner, mainnet } from '@oaknetwork/contracts-sdk' * * const provider = createBrowserProvider(window.ethereum, mainnet) * const signer = await getSigner(window.ethereum, mainnet) diff --git a/packages/contracts/src/metrics/index.ts b/packages/contracts/src/metrics/index.ts index 97782c34..e073f873 100644 --- a/packages/contracts/src/metrics/index.ts +++ b/packages/contracts/src/metrics/index.ts @@ -1,7 +1,6 @@ /** * @file metrics/index.ts - * Public surface for the @oaknetwork/contracts/metrics sub-path export. - * TODO: Register in package.json exports as `@oaknetwork/contracts/metrics`. + * Public surface for the @oaknetwork/contracts-sdk/metrics sub-path export. */ export { getPlatformStats } from "./platform"; From 426a545a9c212d7a910bbfeac111ccc20a6a7946 Mon Sep 17 00:00:00 2001 From: Mahmudul Alam Date: Thu, 2 Apr 2026 19:34:04 +0600 Subject: [PATCH 2/5] chore: update package.json to enhance metadata and keywords for payments SDK --- packages/payments/package.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/payments/package.json b/packages/payments/package.json index 38747cb3..050d8bd1 100644 --- a/packages/payments/package.json +++ b/packages/payments/package.json @@ -4,8 +4,16 @@ "description": "A fully-typed TypeScript SDK for the Oak Network payment API.", "keywords": [ "sdk", - "oaknetwork" + "oaknetwork", + "oak", + "typescript", + "payments", + "api" ], + "homepage": "https://www.oaknetwork.org/docs/sdk/overview", + "bugs": { + "url": "https://github.com/oak-network/sdk/issues" + }, "publishConfig": { "access": "public" }, From bfee1c669a264d2834b20947b4ce85fbf6359dd9 Mon Sep 17 00:00:00 2001 From: Mahmudul Alam Date: Thu, 2 Apr 2026 19:45:44 +0600 Subject: [PATCH 3/5] feat: initial release of @oaknetwork/contracts-sdk --- .changeset/real-deer-smash.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/real-deer-smash.md diff --git a/.changeset/real-deer-smash.md b/.changeset/real-deer-smash.md new file mode 100644 index 00000000..e8165ce8 --- /dev/null +++ b/.changeset/real-deer-smash.md @@ -0,0 +1,5 @@ +--- +"@oaknetwork/contracts-sdk": major +--- + +Initial release of `@oaknetwork/contracts-sdk` From 68adaa1e02109b1c3f6858a0436d912a0061a8b0 Mon Sep 17 00:00:00 2001 From: Mahmudul Alam Date: Thu, 2 Apr 2026 20:12:32 +0600 Subject: [PATCH 4/5] chore: remove old changeset and update changelog for @oaknetwork/contracts-sdk --- .changeset/real-deer-smash.md | 5 ----- .changeset/solid-colts-spend.md | 2 ++ packages/contracts/CHANGELOG.md | 14 +++++++++++--- packages/contracts/package.json | 2 +- 4 files changed, 14 insertions(+), 9 deletions(-) delete mode 100644 .changeset/real-deer-smash.md create mode 100644 .changeset/solid-colts-spend.md diff --git a/.changeset/real-deer-smash.md b/.changeset/real-deer-smash.md deleted file mode 100644 index e8165ce8..00000000 --- a/.changeset/real-deer-smash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@oaknetwork/contracts-sdk": major ---- - -Initial release of `@oaknetwork/contracts-sdk` diff --git a/.changeset/solid-colts-spend.md b/.changeset/solid-colts-spend.md new file mode 100644 index 00000000..a845151c --- /dev/null +++ b/.changeset/solid-colts-spend.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/packages/contracts/CHANGELOG.md b/packages/contracts/CHANGELOG.md index 68d1702b..864dea5c 100644 --- a/packages/contracts/CHANGELOG.md +++ b/packages/contracts/CHANGELOG.md @@ -1,7 +1,15 @@ -# @oaknetwork/contracts-sdk +--- ## 1.0.0 +### Major Changes -### Added - +### Major Changes - Initial release of `@oaknetwork/contracts-sdk` + + Package renamed from `@oaknetwork/contracts` to `@oaknetwork/contracts-sdk`. +'@oaknetwork/contracts-sdk': major +--- + +Initial release of `@oaknetwork/contracts-sdk` + +Package renamed from `@oaknetwork/contracts` to `@oaknetwork/contracts-sdk`. diff --git a/packages/contracts/package.json b/packages/contracts/package.json index c4503aef..d31d4966 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -1,6 +1,6 @@ { "name": "@oaknetwork/contracts-sdk", - "version": "1.0.0", + "version": "0.0.0", "description": "TypeScript SDK for Oak Network smart contracts", "keywords": [ "sdk", From a632d22879991ed6ecdf3cdaeb92ea088a6463ce Mon Sep 17 00:00:00 2001 From: Mahmudul Alam Date: Thu, 2 Apr 2026 20:27:56 +0600 Subject: [PATCH 5/5] chore: add initial release note for @oaknetwork/contracts-sdk --- .changeset/solid-colts-spend.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.changeset/solid-colts-spend.md b/.changeset/solid-colts-spend.md index a845151c..05889208 100644 --- a/.changeset/solid-colts-spend.md +++ b/.changeset/solid-colts-spend.md @@ -1,2 +1,5 @@ --- +'@oaknetwork/contracts-sdk': major --- + +Initial release