diff --git a/.prettierignore b/.prettierignore index 6dd568338..4be20ce1f 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,3 @@ -src/dist +dist src/generated.ts src/examples/prepare-node-config/node-config.json diff --git a/eslint.config.js b/eslint.config.mjs similarity index 71% rename from eslint.config.js rename to eslint.config.mjs index 12b1a38d4..5cf681938 100644 --- a/eslint.config.js +++ b/eslint.config.mjs @@ -3,7 +3,7 @@ import tseslint from 'typescript-eslint' export default defineConfig( { - ignores: ['node_modules/**', 'src/dist/**', 'coverage/**'], + ignores: ['node_modules/**', 'dist/**', 'coverage/**'], }, ...tseslint.configs.recommended, ) diff --git a/package.json b/package.json index e2e21dd2e..8135409dc 100644 --- a/package.json +++ b/package.json @@ -1,21 +1,74 @@ { - "private": true, - "type": "module", + "name": "@arbitrum/chain-sdk", + "description": "TypeScript SDK for building Arbitrum chains", + "version": "0.27.0", + "type": "commonjs", + "main": "./dist/index.js", + "bin": { + "arbitrum-chain-sdk": "./dist/scripting/cli.js" + }, + "files": [ + "./dist" + ], + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "./chains": { + "types": "./dist/chains.d.ts", + "default": "./dist/chains.js" + }, + "./utils": { + "types": "./dist/utils/index.d.ts", + "default": "./dist/utils/index.js" + }, + "./constants": { + "types": "./dist/constants.d.ts", + "default": "./dist/constants.js" + }, + "./contracts/*": { + "types": "./dist/contracts/*", + "default": "./dist/contracts/*" + } + }, + "typesVersions": { + "*": { + "chains": [ + "./dist/chains.d.ts" + ], + "utils": [ + "./dist/utils/index.d.ts" + ], + "constants": [ + "./dist/constants.d.ts" + ], + "contracts/*": [ + "./dist/contracts/*" + ] + } + }, + "repository": "git+https://github.com/OffchainLabs/arbitrum-chain-sdk.git", + "author": "Offchain Labs, Inc.", + "license": "Apache-2.0", + "engines": { + "node": ">=18" + }, "packageManager": "pnpm@10.30.3", "scripts": { - "prebuild": "rm -rf ./src/dist", - "build": "tsc --project ./tsconfig.json --module commonjs --outDir ./src/dist --declaration", - "cli": "node src/dist/scripting/cli.js", + "prebuild": "rm -rf ./dist", + "build": "tsc --project ./tsconfig.json --module commonjs --outDir ./dist --declaration", + "cli": "node ./dist/scripting/cli.js", "dev": "pnpm build --watch", "generate": "wagmi generate", "postgenerate": "pnpm generate:schemas", "generate:schemas": "tsx ./src/scripts/generateAbiSchemas.mts", "postgenerate:schemas": "prettier --write 'src/contracts/**/*.schemas.ts'", - "generate:node-config-type": "pnpm build && node ./src/dist/scripts/generateNodeConfigType.js", + "generate:node-config-type": "pnpm build && node ./dist/scripts/generateNodeConfigType.js", "postgenerate:node-config-type": "prettier --write ./src/types/NodeConfig.generated.ts", - "test:type": "vitest --config vitest.type.config.ts", - "test:unit": "vitest --config vitest.unit.config.ts", - "test:integration": "vitest --config vitest.integration.config.ts", + "test:type": "vitest --config vitest.type.config.mts", + "test:unit": "vitest --config vitest.unit.config.mts", + "test:integration": "vitest --config vitest.integration.config.mts", "test:integration:arbitrum-testnode": "bash ./scripts/test-integration-arbitrum-testnode.sh", "postinstall": "patch-package", "lint": "eslint . --cache", @@ -24,6 +77,22 @@ "prettier:format": "prettier --write '**/*.{ts,md,json,yml}'", "audit:ci": "audit-ci --config ./audit-ci.jsonc" }, + "peerDependencies": { + "viem": "^1.20.0" + }, + "dependencies": { + "@arbitrum/nitro-contracts": "^3.2.0", + "@arbitrum/sdk": "^4.0.4", + "@arbitrum/token-bridge-contracts": "^1.2.2", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/providers": "^5.7.2", + "@offchainlabs/fund-distribution-contracts": "^1.1.0", + "@safe-global/protocol-kit": "^4.1.7", + "abitype": "^0.9.8", + "ethers": "^5.7.2", + "jsonc-parser": "^3.3.1", + "zod": "^4.3.6" + }, "devDependencies": { "@offchainlabs/prettier-config": "0.2.1", "@types/node": "^20.9.0", @@ -40,7 +109,6 @@ "typescript": "^5.2.2", "typescript-eslint": "^8.56.1", "viem": "^1.20.0", - "vitest": "^4.1.0", - "zod": "^4.3.6" + "vitest": "^4.1.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5afeec5ba..cb1030dd0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,6 +22,40 @@ overrides: importers: .: + dependencies: + '@arbitrum/nitro-contracts': + specifier: ^3.2.0 + version: 3.2.0 + '@arbitrum/sdk': + specifier: ^4.0.4 + version: 4.0.4 + '@arbitrum/token-bridge-contracts': + specifier: ^1.2.2 + version: 1.2.2 + '@ethersproject/abstract-provider': + specifier: ^5.7.0 + version: 5.7.0 + '@ethersproject/providers': + specifier: ^5.7.2 + version: 5.7.2 + '@offchainlabs/fund-distribution-contracts': + specifier: ^1.1.0 + version: 1.1.0 + '@safe-global/protocol-kit': + specifier: ^4.1.7 + version: 4.1.7(typescript@5.2.2)(zod@4.3.6) + abitype: + specifier: ^0.9.8 + version: 0.9.8(typescript@5.2.2)(zod@4.3.6) + ethers: + specifier: ^5.7.2 + version: 5.7.2 + jsonc-parser: + specifier: ^3.3.1 + version: 3.3.1 + zod: + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@offchainlabs/prettier-config': specifier: 0.2.1 @@ -71,9 +105,6 @@ importers: vitest: specifier: ^4.1.0 version: 4.1.0(@types/node@20.19.43)(vite@7.3.5(@types/node@20.19.43)(lightningcss@1.32.0)(tsx@4.22.1)(yaml@2.8.3)) - zod: - specifier: ^4.3.6 - version: 4.3.6 examples/create-rollup-custom-fee-token: devDependencies: @@ -151,7 +182,7 @@ importers: dependencies: '@arbitrum/chain-sdk': specifier: workspace:* - version: link:../../src + version: link:../.. dotenv: specifier: ^16.3.1 version: 16.3.1 @@ -193,45 +224,6 @@ importers: specifier: ^5.2.2 version: 5.2.2 - src: - dependencies: - '@arbitrum/nitro-contracts': - specifier: ^3.2.0 - version: 3.2.0 - '@arbitrum/sdk': - specifier: ^4.0.4 - version: 4.0.4 - '@arbitrum/token-bridge-contracts': - specifier: ^1.2.2 - version: 1.2.2 - '@ethersproject/abstract-provider': - specifier: ^5.7.0 - version: 5.7.0 - '@ethersproject/providers': - specifier: ^5.7.2 - version: 5.7.2 - '@offchainlabs/fund-distribution-contracts': - specifier: ^1.1.0 - version: 1.1.0 - '@safe-global/protocol-kit': - specifier: ^4.1.7 - version: 4.1.7(typescript@5.2.2)(zod@4.3.6) - abitype: - specifier: ^0.9.8 - version: 0.9.8(typescript@5.2.2)(zod@4.3.6) - ethers: - specifier: ^5.7.2 - version: 5.7.2 - jsonc-parser: - specifier: ^3.3.1 - version: 3.3.1 - viem: - specifier: 1.20.0 - version: 1.20.0(typescript@5.2.2)(zod@4.3.6) - zod: - specifier: ^4.3.6 - version: 4.3.6 - packages: '@adraffy/ens-normalize@1.10.0': diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index da59ad0f9..d7f030616 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,5 +1,4 @@ packages: - - "src" - "examples/*" minimumReleaseAge: 10080 # 7 days diff --git a/scripts/test-integration-arbitrum-testnode.sh b/scripts/test-integration-arbitrum-testnode.sh index 2b869f927..f36f99f6b 100755 --- a/scripts/test-integration-arbitrum-testnode.sh +++ b/scripts/test-integration-arbitrum-testnode.sh @@ -59,4 +59,4 @@ INTEGRATION_TEST_DECIMALS="$INTEGRATION_TEST_DECIMALS" \ INTEGRATION_TEST_NITRO_CONTRACTS_BRANCH="$INTEGRATION_TEST_NITRO_CONTRACTS_BRANCH" \ NITRO_TESTNODE_L3_TOKEN_BRIDGE_DEPLOYER_PRIVATE_KEY="$ARBITRUM_TESTNODE_FEE_TOKEN_DEPLOYER_PRIVATE_KEY" \ CI=true \ -pnpm exec vitest --config vitest.integration.config.ts --reporter verbose --run "$@" +pnpm exec vitest --config vitest.integration.config.mts --reporter verbose --run "$@" diff --git a/src/package.json b/src/package.json deleted file mode 100644 index a38103d86..000000000 --- a/src/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "@arbitrum/chain-sdk", - "description": "TypeScript SDK for building Arbitrum chains", - "version": "0.27.0", - "main": "./dist/index.js", - "bin": { - "arbitrum-chain-sdk": "./dist/scripting/cli.js" - }, - "files": [ - "./dist" - ], - "exports": { - ".": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - }, - "./chains": { - "types": "./dist/chains.d.ts", - "default": "./dist/chains.js" - }, - "./utils": { - "types": "./dist/utils/index.d.ts", - "default": "./dist/utils/index.js" - }, - "./constants": { - "types": "./dist/constants.d.ts", - "default": "./dist/constants.js" - }, - "./contracts/*": { - "types": "./dist/contracts/*", - "default": "./dist/contracts/*" - } - }, - "typesVersions": { - "*": { - "chains": [ - "./dist/chains.d.ts" - ], - "utils": [ - "./dist/utils/index.d.ts" - ], - "constants": [ - "./dist/constants.d.ts" - ], - "contracts/*": [ - "./dist/contracts/*" - ] - } - }, - "repository": "git+https://github.com/OffchainLabs/arbitrum-chain-sdk.git", - "author": "Offchain Labs, Inc.", - "license": "Apache-2.0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "viem": "^1.20.0" - }, - "dependencies": { - "@arbitrum/nitro-contracts": "^3.2.0", - "@arbitrum/sdk": "^4.0.4", - "@arbitrum/token-bridge-contracts": "^1.2.2", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/providers": "^5.7.2", - "@offchainlabs/fund-distribution-contracts": "^1.1.0", - "@safe-global/protocol-kit": "^4.1.7", - "abitype": "^0.9.8", - "ethers": "^5.7.2", - "jsonc-parser": "^3.3.1", - "zod": "^4.3.6" - } -} diff --git a/src/scripts/generateAbiSchemas.mts b/src/scripts/generateAbiSchemas.mts index 25bc90186..8f8614ee4 100644 --- a/src/scripts/generateAbiSchemas.mts +++ b/src/scripts/generateAbiSchemas.mts @@ -1,4 +1,4 @@ -// .mts (not .ts) because abi-to-zod is ESM-only and src/package.json doesn't +// .mts (not .ts) because abi-to-zod is ESM-only and package.json doesn't // set `"type": "module"`. A .ts file under src/ would be treated as CJS, where // the static `import { renderSchemas } from 'abi-to-zod'` fails at runtime // with ERR_PACKAGE_PATH_NOT_EXPORTED. The .mts extension forces ESM resolution diff --git a/vitest.common.ts b/vitest.common.mts similarity index 100% rename from vitest.common.ts rename to vitest.common.mts diff --git a/vitest.integration.config.ts b/vitest.integration.config.mts similarity index 90% rename from vitest.integration.config.ts rename to vitest.integration.config.mts index 9fbef818b..7be5c6eff 100644 --- a/vitest.integration.config.ts +++ b/vitest.integration.config.mts @@ -1,5 +1,5 @@ import { configDefaults, defineConfig, mergeConfig } from 'vitest/config'; -import commonConfig from './vitest.common'; +import commonConfig from './vitest.common.mts'; export default mergeConfig( commonConfig, diff --git a/vitest.type.config.ts b/vitest.type.config.mts similarity index 89% rename from vitest.type.config.ts rename to vitest.type.config.mts index dc3f57c9e..b47e2ea9b 100644 --- a/vitest.type.config.ts +++ b/vitest.type.config.mts @@ -1,5 +1,5 @@ import { configDefaults, defineConfig, mergeConfig } from 'vitest/config'; -import commonConfig from './vitest.common'; +import commonConfig from './vitest.common.mts'; export default mergeConfig( commonConfig, diff --git a/vitest.unit.config.ts b/vitest.unit.config.mts similarity index 88% rename from vitest.unit.config.ts rename to vitest.unit.config.mts index 5a7aa247d..0e985c13f 100644 --- a/vitest.unit.config.ts +++ b/vitest.unit.config.mts @@ -1,5 +1,5 @@ import { configDefaults, defineConfig, mergeConfig } from 'vitest/config'; -import commonConfig from './vitest.common'; +import commonConfig from './vitest.common.mts'; export default mergeConfig( commonConfig,