diff --git a/.changeset/eip5792-implementation.md b/.changeset/eip5792-implementation.md deleted file mode 100644 index 200b7180..00000000 --- a/.changeset/eip5792-implementation.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -"@delvtech/drift": patch ---- - -EIP-5792 Wallet Call API Implementation - -## 🚀 Features - -**EIP-5792 Wallet Call API Support** -- Added complete [EIP-5792](https://www.eip5792.xyz) (Wallet Call API) implementation to all adapters with `getWalletCapabilities()`, `getCallsStatus()`, `showCallsStatus()`, and `sendCalls()` methods + comprehensive type definitions. -- Supports calls in a variety of formats including ABI function calls, ABI deploy calls, raw calldata, and raw bytecode (deployless) calls. -- Added methods for EIP-5792 functionality to `MockAdapter`: - - `onGetWalletCapabilities()` - - `onGetCallsStatus()` - - `onShowCallsStatus()` - - `onSendCalls()` -- Added `getWalletCallsStatusLabel()` util function for generating user-friendly labels for wallet call statuses. - -**New Web Example Application** -- Added a React + TypeScript + Vite example application. -- Includes integration examples for all adapter types (default, ethers, viem, web3). -- Demonstrates EIP-5792 wallet call functionality. - -## 🔧 Improvements - -**Enhanced Testing Utilities** -- Added `randomSelection` utility for selecting random items from arrays. -- Added `createStubWalletCallsStatus` for testing EIP-5792 functionality. -- Improved `MockAdapter` with better type definitions and expanded functionality. -- Added method parameter types to exports: - - `OnReadParams` - - `OnSimulateWriteParams` - - `OnMulticallParams` - - `OnDeployParams` - - `OnWriteParams` - - `OnSendCallsParams` - - `StubMulticallCallParams` - - `StubWalletCallParams`. - -**Call Preparation and Processing** -- Added `prepareCall` utility function for unified call preparation across different call types (function calls, deploy calls, encoded calls, bytecode calls). -- Enhanced multicall functionality to support mixed call types including encoded calls alongside ABI function calls. -- Improved call processing in all adapters by centralizing call preparation logic. - -**Type System Enhancements** -- Added `BytecodeCallParams` type for bytecode-based calls without contract addresses. -- Improved type inference for multicall operations with mixed call types. -- Added `PartialByOptional` utility type for better optional property handling. - -**Adapter Improvements** -- Better fallback handling for individual wallet call stub matching in `MockAdapter`. -- Refactored Web3 adapter to use injected provider for `getSignerAddress` and EIP-5792 calls. -- Improved internal adapter utilities and type safety. -- Added `NotImplementedError` as a generalized replacement for stub-specific errors. - -**Client and Caching Enhancements** -- Enhanced multicall caching to support both function calls and encoded calls. -- Improved cache key generation for mixed call types. - -**Utility Functions** -- Added `toHexString` utility for flexible hex string conversion -- Enhanced `isHexString` with configurable `prefix` option to control `0x` prefix enforcement. -- Improved `DriftError` to automatically use constructor name for subclasses. - -## 🐛 Bug Fixes - -**Package Configuration** -- Fixed `@delvtech/drift-web3` package.json fields to point to correct dist files. -- Updated gitignore files across all packages. - -**Type Safety** -- Enhanced `FunctionCallParams` to infer function names even when `address` is missing. -- Improved adapter type definitions and method signatures. -- Better error handling and type checking throughout the codebase. -- Enhanced multicall type inference to support mixed call types (function calls, encoded calls, etc.). -- Improved readonly array handling for better immutability support. - -## 📦 Dependencies - -- Upgraded all dependencies to their latest versions. -- Updated Node.js version requirement (`.nvmrc`) to `v24` - -## 🔄 Internal Changes - -- Restructured examples directory with dedicated Node.js and web folders. -- Updated biome configuration (renamed from `.jsonc` to `.json`). -- Improved internal type utilities for better developer experience. - -**Breaking Changes:** None - -**Migration Guide:** This release is fully backward compatible. The new EIP-5792 functionality is opt-in and doesn't affect existing adapter usage patterns. diff --git a/examples/node.js/package.json b/examples/node.js/package.json index 84e100d2..a6b0014b 100644 --- a/examples/node.js/package.json +++ b/examples/node.js/package.json @@ -16,7 +16,7 @@ "sdk_client": "yarn execute src/sdk_client.ts" }, "dependencies": { - "@delvtech/drift": "^0.10.0", + "@delvtech/drift": "^0.10.1", "@gud/math": "^1.0.0" }, "devDependencies": { diff --git a/examples/web/package.json b/examples/web/package.json index 3eb39ea1..592d19a4 100644 --- a/examples/web/package.json +++ b/examples/web/package.json @@ -11,10 +11,10 @@ "preview": "vite preview" }, "dependencies": { - "@delvtech/drift": "^0.10.0", - "@delvtech/drift-ethers": "^0.10.0", - "@delvtech/drift-viem": "^0.10.0", - "@delvtech/drift-web3": "^0.10.0", + "@delvtech/drift": "^0.10.1", + "@delvtech/drift-ethers": "^0.10.1", + "@delvtech/drift-viem": "^0.10.1", + "@delvtech/drift-web3": "^0.10.1", "@gud/math": "^1.0.0", "@rainbow-me/rainbowkit": "^2.2.8", "@tanstack/react-query": "^5.81.2", diff --git a/packages/drift-ethers-v5/CHANGELOG.md b/packages/drift-ethers-v5/CHANGELOG.md index 026ff7f6..2299c150 100644 --- a/packages/drift-ethers-v5/CHANGELOG.md +++ b/packages/drift-ethers-v5/CHANGELOG.md @@ -1,5 +1,7 @@ # @delvtech/drift-ethers-v5 +## 0.10.1 + ## 0.10.0 ### Patch Changes diff --git a/packages/drift-ethers-v5/package.json b/packages/drift-ethers-v5/package.json index 81c45175..b1350bd7 100644 --- a/packages/drift-ethers-v5/package.json +++ b/packages/drift-ethers-v5/package.json @@ -1,7 +1,7 @@ { "name": "@delvtech/drift-ethers-v5", "description": "Ethers.js v5 adapter for Drift", - "version": "0.10.0", + "version": "0.10.1", "license": "Apache-2.0", "type": "module", "main": "dist/index.cjs", @@ -28,11 +28,11 @@ "typecheck:watch": "tsc --noEmit --watch" }, "peerDependencies": { - "@delvtech/drift": "^0.10.0", + "@delvtech/drift": "^0.10.1", "ethers": "^5.7.2" }, "devDependencies": { - "@delvtech/drift": "^0.10.0", + "@delvtech/drift": "^0.10.1", "ethers": "^5.7.2", "tsconfig-paths": "^4.2.0", "tsup": "^8.5.0", diff --git a/packages/drift-ethers/CHANGELOG.md b/packages/drift-ethers/CHANGELOG.md index c4d32dd5..cc4606c9 100644 --- a/packages/drift-ethers/CHANGELOG.md +++ b/packages/drift-ethers/CHANGELOG.md @@ -1,5 +1,7 @@ # @delvtech/drift-ethers +## 0.10.1 + ## 0.10.0 ### Patch Changes diff --git a/packages/drift-ethers/package.json b/packages/drift-ethers/package.json index f9110c92..56328458 100644 --- a/packages/drift-ethers/package.json +++ b/packages/drift-ethers/package.json @@ -1,7 +1,7 @@ { "name": "@delvtech/drift-ethers", "description": "Ethers.js adapter for Drift", - "version": "0.10.0", + "version": "0.10.1", "license": "Apache-2.0", "type": "module", "main": "dist/index.cjs", @@ -28,11 +28,11 @@ "typecheck:watch": "tsc --noEmit --watch" }, "peerDependencies": { - "@delvtech/drift": "^0.10.0", + "@delvtech/drift": "^0.10.1", "ethers": "^6.14.4" }, "devDependencies": { - "@delvtech/drift": "^0.10.0", + "@delvtech/drift": "^0.10.1", "ethers": "^6.14.4", "tsconfig-paths": "^4.2.0", "tsup": "^8.5.0", diff --git a/packages/drift-viem/CHANGELOG.md b/packages/drift-viem/CHANGELOG.md index 595f8df3..bedbfcfa 100644 --- a/packages/drift-viem/CHANGELOG.md +++ b/packages/drift-viem/CHANGELOG.md @@ -1,5 +1,7 @@ # @delvtech/drift-viem +## 0.10.1 + ## 0.10.0 ### Patch Changes diff --git a/packages/drift-viem/package.json b/packages/drift-viem/package.json index 9d336242..7271e20d 100644 --- a/packages/drift-viem/package.json +++ b/packages/drift-viem/package.json @@ -1,7 +1,7 @@ { "name": "@delvtech/drift-viem", "description": "Viem adapter for Drift", - "version": "0.10.0", + "version": "0.10.1", "license": "Apache-2.0", "type": "module", "main": "dist/index.cjs", @@ -28,11 +28,11 @@ "typecheck:watch": "tsc --noEmit --watch" }, "peerDependencies": { - "@delvtech/drift": "^0.10.0", + "@delvtech/drift": "^0.10.1", "viem": "^2.31.4" }, "devDependencies": { - "@delvtech/drift": "^0.10.0", + "@delvtech/drift": "^0.10.1", "tsconfig-paths": "^4.2.0", "tsup": "^8.5.0", "typescript": "^5.8.3", diff --git a/packages/drift-web3/CHANGELOG.md b/packages/drift-web3/CHANGELOG.md index b6f41ef1..91c806d1 100644 --- a/packages/drift-web3/CHANGELOG.md +++ b/packages/drift-web3/CHANGELOG.md @@ -1,5 +1,7 @@ # @delvtech/drift-web3 +## 0.10.1 + ## 0.10.0 ### Patch Changes diff --git a/packages/drift-web3/package.json b/packages/drift-web3/package.json index 70917556..757af4e7 100644 --- a/packages/drift-web3/package.json +++ b/packages/drift-web3/package.json @@ -1,7 +1,7 @@ { "name": "@delvtech/drift-web3", "description": "Web3.js adapter for Drift", - "version": "0.10.0", + "version": "0.10.1", "license": "Apache-2.0", "type": "module", "main": "dist/Web3Adapter.cjs", @@ -28,11 +28,11 @@ "typecheck:watch": "tsc --noEmit --watch" }, "peerDependencies": { - "@delvtech/drift": "^0.10.0", + "@delvtech/drift": "^0.10.1", "web3": "^4.16.0" }, "devDependencies": { - "@delvtech/drift": "^0.10.0", + "@delvtech/drift": "^0.10.1", "tsconfig-paths": "^4.2.0", "tsup": "^8.5.0", "typescript": "^5.8.3", diff --git a/packages/drift/CHANGELOG.md b/packages/drift/CHANGELOG.md index 8ed802e1..ad22f3f7 100644 --- a/packages/drift/CHANGELOG.md +++ b/packages/drift/CHANGELOG.md @@ -1,5 +1,107 @@ # @delvtech/drift +## 0.10.1 + +### Patch Changes + +- b9fc425: EIP-5792 Wallet Call API Implementation + + ## 🚀 Features + + **EIP-5792 Wallet Call API Support** + + - Added complete [EIP-5792](https://www.eip5792.xyz) (Wallet Call API) implementation to all adapters with `getWalletCapabilities()`, `getCallsStatus()`, `showCallsStatus()`, and `sendCalls()` methods + comprehensive type definitions. + - Supports calls in a variety of formats including ABI function calls, ABI deploy calls, raw calldata, and raw bytecode (deployless) calls. + - Added methods for EIP-5792 functionality to `MockAdapter`: + - `onGetWalletCapabilities()` + - `onGetCallsStatus()` + - `onShowCallsStatus()` + - `onSendCalls()` + - Added `getWalletCallsStatusLabel()` util function for generating user-friendly labels for wallet call statuses. + + **New Web Example Application** + + - Added a React + TypeScript + Vite example application. + - Includes integration examples for all adapter types (default, ethers, viem, web3). + - Demonstrates EIP-5792 wallet call functionality. + + ## 🔧 Improvements + + **Enhanced Testing Utilities** + + - Added `randomSelection` utility for selecting random items from arrays. + - Added `createStubWalletCallsStatus` for testing EIP-5792 functionality. + - Improved `MockAdapter` with better type definitions and expanded functionality. + - Added method parameter types to exports: + - `OnReadParams` + - `OnSimulateWriteParams` + - `OnMulticallParams` + - `OnDeployParams` + - `OnWriteParams` + - `OnSendCallsParams` + - `StubMulticallCallParams` + - `StubWalletCallParams`. + + **Call Preparation and Processing** + + - Added `prepareCall` utility function for unified call preparation across different call types (function calls, deploy calls, encoded calls, bytecode calls). + - Enhanced multicall functionality to support mixed call types including encoded calls alongside ABI function calls. + - Improved call processing in all adapters by centralizing call preparation logic. + + **Type System Enhancements** + + - Added `BytecodeCallParams` type for bytecode-based calls without contract addresses. + - Improved type inference for multicall operations with mixed call types. + - Added `PartialByOptional` utility type for better optional property handling. + + **Adapter Improvements** + + - Better fallback handling for individual wallet call stub matching in `MockAdapter`. + - Refactored Web3 adapter to use injected provider for `getSignerAddress` and EIP-5792 calls. + - Improved internal adapter utilities and type safety. + - Added `NotImplementedError` as a generalized replacement for stub-specific errors. + + **Client and Caching Enhancements** + + - Enhanced multicall caching to support both function calls and encoded calls. + - Improved cache key generation for mixed call types. + + **Utility Functions** + + - Added `toHexString` utility for flexible hex string conversion + - Enhanced `isHexString` with configurable `prefix` option to control `0x` prefix enforcement. + - Improved `DriftError` to automatically use constructor name for subclasses. + + ## 🐛 Bug Fixes + + **Package Configuration** + + - Fixed `@delvtech/drift-web3` package.json fields to point to correct dist files. + - Updated gitignore files across all packages. + + **Type Safety** + + - Enhanced `FunctionCallParams` to infer function names even when `address` is missing. + - Improved adapter type definitions and method signatures. + - Better error handling and type checking throughout the codebase. + - Enhanced multicall type inference to support mixed call types (function calls, encoded calls, etc.). + - Improved readonly array handling for better immutability support. + + ## 📦 Dependencies + + - Upgraded all dependencies to their latest versions. + - Updated Node.js version requirement (`.nvmrc`) to `v24` + + ## 🔄 Internal Changes + + - Restructured examples directory with dedicated Node.js and web folders. + - Updated biome configuration (renamed from `.jsonc` to `.json`). + - Improved internal type utilities for better developer experience. + + **Breaking Changes:** None + + **Migration Guide:** This release is fully backward compatible. The new EIP-5792 functionality is opt-in and doesn't affect existing adapter usage patterns. + ## 0.10.0 ### Minor Changes diff --git a/packages/drift/package.json b/packages/drift/package.json index 87f23509..43f41aaa 100644 --- a/packages/drift/package.json +++ b/packages/drift/package.json @@ -1,7 +1,7 @@ { "name": "@delvtech/drift", "description": "Effortless ethereum development across Web3 libraries", - "version": "0.10.0", + "version": "0.10.1", "license": "Apache-2.0", "type": "module", "main": "dist/index.cjs",