eip-1193-accounts-wrapper 0.0.12 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,164 @@
1
+ # eip-1193-accounts-wrapper
2
+
3
+ Extends EIP-1193 providers with local account handling for signing transactions and messages.
4
+
5
+ [![npm version](https://img.shields.io/npm/v/eip-1193-accounts-wrapper)](https://www.npmjs.com/package/eip-1193-accounts-wrapper)
6
+
7
+ ## About
8
+
9
+ When working with EIP-1193 providers (like those from browser wallets), you sometimes need to add local account capabilities for development, testing, or backend signing. This library wraps any EIP-1193 provider and adds account-related methods using local private keys or mnemonics, powered by [viem](https://viem.sh/).
10
+
11
+ ## Features
12
+
13
+ - **Private key accounts** – Load accounts from hex-encoded private keys
14
+ - **Mnemonic accounts** – Derive multiple accounts from a BIP-39 mnemonic phrase
15
+ - **Transaction signing** – Signs and sends transactions via `eth_sendTransaction`
16
+ - **Message signing** – Supports `personal_sign`, `eth_sign`, `eth_signTypedData`, and `eth_signTypedData_v4`
17
+ - **Account impersonation** – Impersonate addresses for testing (requires compatible backend like Anvil)
18
+ - **Custom handlers** – Override any RPC method with your own implementation
19
+
20
+ ## Installation
21
+
22
+ ```bash
23
+ npm install eip-1193-accounts-wrapper
24
+ ```
25
+
26
+ ```bash
27
+ pnpm add eip-1193-accounts-wrapper
28
+ ```
29
+
30
+ ```bash
31
+ yarn add eip-1193-accounts-wrapper
32
+ ```
33
+
34
+ ## Usage
35
+
36
+ ### Basic usage with private keys
37
+
38
+ ```typescript
39
+ import { extendProviderWithAccounts } from 'eip-1193-accounts-wrapper';
40
+
41
+ // Your existing EIP-1193 provider (e.g., from a JSON-RPC endpoint)
42
+ const baseProvider = {
43
+ request: async ({ method, params }) => {
44
+ // Your provider implementation
45
+ }
46
+ };
47
+
48
+ const provider = extendProviderWithAccounts(baseProvider, {
49
+ accounts: {
50
+ privateKeys: [
51
+ '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
52
+ ],
53
+ },
54
+ });
55
+
56
+ // Now you can use account methods
57
+ const accounts = await provider.request({ method: 'eth_accounts' });
58
+ console.log(accounts); // ['0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266']
59
+ ```
60
+
61
+ ### Using a mnemonic phrase
62
+
63
+ ```typescript
64
+ const provider = extendProviderWithAccounts(baseProvider, {
65
+ accounts: {
66
+ mnemonic: 'test test test test test test test test test test test junk',
67
+ numAccounts: 5, // optional, defaults to 10
68
+ },
69
+ });
70
+ ```
71
+
72
+ ### Account impersonation
73
+
74
+ For testing with tools like Anvil that support account impersonation:
75
+
76
+ ```typescript
77
+ import { createTestClient, http } from 'viem';
78
+ import { foundry } from 'viem/chains';
79
+
80
+ const testClient = createTestClient({
81
+ mode: 'anvil',
82
+ chain: foundry,
83
+ transport: http(),
84
+ });
85
+
86
+ const provider = extendProviderWithAccounts(baseProvider, {
87
+ impersonate: {
88
+ impersonator: testClient,
89
+ mode: 'unknown', // 'always' | 'unknown' | 'list'
90
+ },
91
+ });
92
+ ```
93
+
94
+ Impersonation modes:
95
+ - `always` – Always impersonate, even for known accounts
96
+ - `unknown` – Only impersonate addresses not in the local accounts list
97
+ - `list` – Only impersonate specific addresses provided in the `list` array
98
+
99
+ ### Custom RPC handlers
100
+
101
+ ```typescript
102
+ const provider = extendProviderWithAccounts(baseProvider, {
103
+ handlers: {
104
+ eth_blockNumber: async () => '0x1',
105
+ },
106
+ });
107
+ ```
108
+
109
+ ## API
110
+
111
+ ### `extendProviderWithAccounts(provider, options?)`
112
+
113
+ Wraps an EIP-1193 provider with local account capabilities.
114
+
115
+ #### Parameters
116
+
117
+ - `provider` – An EIP-1193 compatible provider object
118
+ - `options` – Optional configuration object:
119
+ - `accounts.privateKeys` – Array of hex-encoded private keys
120
+ - `accounts.mnemonic` – BIP-39 mnemonic phrase
121
+ - `accounts.numAccounts` – Number of accounts to derive from mnemonic (default: 10)
122
+ - `impersonate` – Impersonation configuration for testing
123
+ - `doNotFillMissingFields` – If `true`, requires all transaction fields (gas, nonce, etc.)
124
+ - `handlers` – Custom RPC method handlers
125
+
126
+ #### Returns
127
+
128
+ An EIP-1193 provider with account methods added.
129
+
130
+ ## Supported Methods
131
+
132
+ The following methods are handled locally when accounts are configured:
133
+
134
+ | Method | Description |
135
+ |--------|-------------|
136
+ | `eth_accounts` | Returns configured account addresses |
137
+ | `eth_requestAccounts` | Returns configured account addresses |
138
+ | `eth_sendTransaction` | Signs and sends transactions |
139
+ | `personal_sign` | Signs messages with personal prefix |
140
+ | `eth_sign` | Signs raw messages |
141
+ | `eth_signTypedData` | Signs typed data (EIP-712) |
142
+ | `eth_signTypedData_v4` | Signs typed data v4 (EIP-712) |
143
+
144
+ All other methods are passed through to the underlying provider.
145
+
146
+ ## Development
147
+
148
+ ```bash
149
+ # Install dependencies
150
+ pnpm install
151
+
152
+ # Build
153
+ pnpm build
154
+
155
+ # Run tests
156
+ pnpm test
157
+
158
+ # Development mode (watch)
159
+ pnpm dev
160
+ ```
161
+
162
+ ## License
163
+
164
+ See the [`LICENSE`](LICENSE) file for details.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { EIP1193ProviderWithoutEvents } from 'eip-1193';
2
2
  export type { EIP1193ProviderWithoutEvents };
3
+ export { generateMnemonic, generatePrivateKey } from 'viem/accounts';
3
4
  export interface ProviderOptions {
4
5
  accounts?: {
5
6
  privateKeys?: `0x${string}`[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,4BAA4B,EAAwD,MAAM,UAAU,CAAC;AAalH,YAAY,EAAC,4BAA4B,EAAC,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,EACN;QACA,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;KAC7B,GACD;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAC7C,WAAW,CAAC,EAAE;QACb,YAAY,EAAE;YACb,kBAAkB,EAAE,CAAC,MAAM,EAAE;gBAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;aAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;SACxE,CAAC;KACF,GAAG,CACD;QACA,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;KAC1B,GACD;QACA,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;KACrB,CACH,CAAC;IACF,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5D;AAED,wBAAgB,0BAA0B,CACzC,gBAAgB,EAAE,4BAA4B,EAC9C,OAAO,CAAC,EAAE,eAAe,GACvB,4BAA4B,CAyO9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,4BAA4B,EAAwD,MAAM,UAAU,CAAC;AAalH,YAAY,EAAC,4BAA4B,EAAC,CAAC;AAE3C,OAAO,EAAC,gBAAgB,EAAE,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,EACN;QACA,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;KAC7B,GACD;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAC7C,WAAW,CAAC,EAAE;QACb,YAAY,EAAE;YACb,kBAAkB,EAAE,CAAC,MAAM,EAAE;gBAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAA;aAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;SACxE,CAAC;KACF,GAAG,CACD;QACA,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;KAC1B,GACD;QACA,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;KACrB,CACH,CAAC;IACF,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5D;AAED,wBAAgB,0BAA0B,CACzC,gBAAgB,EAAE,4BAA4B,EAC9C,OAAO,CAAC,EAAE,eAAe,GACvB,4BAA4B,CAwY9B"}
package/dist/index.js CHANGED
@@ -1,63 +1,192 @@
1
1
  import { privateKeyToAccount, mnemonicToAccount } from 'viem/accounts';
2
2
  import { createPublicClient, createWalletClient, custom, defineChain, } from 'viem';
3
+ export { generateMnemonic, generatePrivateKey } from 'viem/accounts';
3
4
  export function extendProviderWithAccounts(providerToExtend, options) {
4
5
  let clients;
6
+ // Impersonation cache: address (lowercase) -> success/failure
7
+ const impersonationCache = new Map();
8
+ // Track addresses that need impersonation based on mode
9
+ const addressesToImpersonate = [];
10
+ // Initialization promise to prevent duplicate initialization
11
+ let initPromise;
12
+ // Local accounts from private keys or mnemonic
13
+ const accounts = [];
14
+ if (options?.accounts) {
15
+ const accountsProvided = options.accounts;
16
+ if ('privateKeys' in accountsProvided && accountsProvided.privateKeys) {
17
+ for (const pk of accountsProvided.privateKeys) {
18
+ const account = privateKeyToAccount(pk);
19
+ accounts.push(account);
20
+ }
21
+ }
22
+ else if ('mnemonic' in accountsProvided && accountsProvided.mnemonic) {
23
+ const num = accountsProvided.numAccounts || 10;
24
+ for (let i = 0; i < num; i++) {
25
+ const account = mnemonicToAccount(accountsProvided.mnemonic, {
26
+ accountIndex: i,
27
+ });
28
+ accounts.push(account);
29
+ }
30
+ }
31
+ }
32
+ // Initialize impersonation for configured addresses
33
+ async function initialize() {
34
+ if (initPromise)
35
+ return initPromise;
36
+ initPromise = (async () => {
37
+ // Determine addresses to impersonate based on mode
38
+ if (options?.impersonate?.mode === 'list') {
39
+ addressesToImpersonate.push(...options.impersonate.list);
40
+ }
41
+ else if (options?.impersonate?.mode === 'always') {
42
+ // All accounts including LocalAccounts will use impersonation
43
+ addressesToImpersonate.push(...accounts.map((a) => a.address));
44
+ }
45
+ // For 'unknown' mode, we impersonate on-demand for non-local accounts
46
+ // Pre-impersonate known addresses
47
+ for (const address of addressesToImpersonate) {
48
+ await attemptImpersonation(address);
49
+ }
50
+ })();
51
+ return initPromise;
52
+ }
53
+ // Attempt impersonation for an address, caching the result
54
+ async function attemptImpersonation(address) {
55
+ const normalizedAddress = address.toLowerCase();
56
+ // Check cache first
57
+ const cached = impersonationCache.get(normalizedAddress);
58
+ if (cached !== undefined) {
59
+ return cached;
60
+ }
61
+ // Attempt impersonation
62
+ if (!options?.impersonate) {
63
+ impersonationCache.set(normalizedAddress, false);
64
+ return false;
65
+ }
66
+ try {
67
+ await options.impersonate.impersonator.impersonateAccount({ address });
68
+ impersonationCache.set(normalizedAddress, true);
69
+ return true;
70
+ }
71
+ catch (error) {
72
+ impersonationCache.set(normalizedAddress, false);
73
+ return false;
74
+ }
75
+ }
76
+ // Get list of available accounts (local + successfully impersonated)
77
+ function getAvailableAccounts() {
78
+ const available = [];
79
+ // Local accounts are always available (unless mode is 'always')
80
+ if (options?.impersonate?.mode !== 'always') {
81
+ for (const account of accounts) {
82
+ available.push(account.address);
83
+ }
84
+ }
85
+ // Add successfully impersonated addresses
86
+ for (const address of addressesToImpersonate) {
87
+ const normalized = address.toLowerCase();
88
+ if (impersonationCache.get(normalized) === true) {
89
+ // Avoid duplicates
90
+ if (!available.some((a) => a.toLowerCase() === normalized)) {
91
+ available.push(address);
92
+ }
93
+ }
94
+ }
95
+ return available;
96
+ }
97
+ // Check if an address should use impersonation
98
+ function shouldImpersonate(address) {
99
+ if (options?.impersonate?.mode === 'always') {
100
+ return true;
101
+ }
102
+ else if (options?.impersonate?.mode === 'unknown') {
103
+ return !accounts.some((a) => a.address.toLowerCase() === address.toLowerCase());
104
+ }
105
+ else if (options?.impersonate?.mode === 'list') {
106
+ return options.impersonate.list.some((a) => a.toLowerCase() === address.toLowerCase());
107
+ }
108
+ return false;
109
+ }
5
110
  const accountHandlers = {
6
111
  eth_sendTransaction: async (params) => {
7
112
  const tx = params[0];
8
113
  if (options?.doNotFillMissingFields) {
9
114
  validateTransaction(tx);
10
115
  }
116
+ await initialize();
11
117
  const viemTx = toViemTransaction(tx);
12
118
  const account = accounts.find((a) => a.address.toLowerCase() === tx.from.toLowerCase());
13
119
  const impersonate = options?.impersonate;
14
- const clients = await getClients();
120
+ // Use local account if available and not in 'always' mode
15
121
  if (impersonate?.mode !== 'always' && account) {
122
+ const clients = await getClients();
16
123
  return clients.wallet.sendTransaction({
17
124
  ...viemTx,
18
125
  account,
19
126
  });
20
127
  }
21
- else if (impersonate) {
22
- if (shouldImpersonate(tx.from)) {
23
- await impersonate.impersonator.impersonateAccount({
24
- address: tx.from,
25
- });
26
- return await provider.request({
128
+ // Check if impersonation is allowed and successful
129
+ if (shouldImpersonate(tx.from)) {
130
+ const success = await attemptImpersonation(tx.from);
131
+ if (success) {
132
+ return await providerToExtend.request({
27
133
  method: 'eth_sendTransaction',
28
134
  params: [tx],
29
135
  });
30
136
  }
31
- else {
32
- throw new Error('Account not available, not even as impersonation');
33
- }
34
- }
35
- else {
36
- throw new Error('Account not available');
37
137
  }
138
+ throw new Error('Account not available');
38
139
  },
39
140
  eth_accounts: async () => {
40
- return accounts.map((a) => a.address);
141
+ await initialize();
142
+ return getAvailableAccounts();
41
143
  },
42
144
  eth_requestAccounts: async () => {
43
- return accounts.map((a) => a.address);
145
+ await initialize();
146
+ return getAvailableAccounts();
44
147
  },
45
148
  personal_sign: async (params) => {
46
149
  const [message, address] = params;
47
- const account = accounts.find((a) => a.address === address);
48
- if (!account) {
49
- throw new Error('Account not available for signing');
150
+ await initialize();
151
+ // Try local account first (unless mode is 'always')
152
+ const account = accounts.find((a) => a.address.toLowerCase() === address.toLowerCase());
153
+ if (account && options?.impersonate?.mode !== 'always') {
154
+ const prefixedMessage = `\x19Ethereum Signed Message:\n${message.length}${message}`;
155
+ return account.signMessage({ message: prefixedMessage });
156
+ }
157
+ // Try impersonation
158
+ if (shouldImpersonate(address)) {
159
+ const success = await attemptImpersonation(address);
160
+ if (success) {
161
+ // Forward to underlying provider for impersonated signing
162
+ return providerToExtend.request({
163
+ method: 'personal_sign',
164
+ params: [message, address],
165
+ });
166
+ }
50
167
  }
51
- const prefixedMessage = `\x19Ethereum Signed Message:\n${message.length}${message}`;
52
- return account.signMessage({ message: prefixedMessage });
168
+ throw new Error('Account not available for signing');
53
169
  },
54
170
  eth_sign: async (params) => {
55
171
  const [address, message] = params;
56
- const account = accounts.find((a) => a.address === address);
57
- if (!account) {
58
- throw new Error('Account not available for signing');
172
+ await initialize();
173
+ // Try local account first (unless mode is 'always')
174
+ const account = accounts.find((a) => a.address.toLowerCase() === address.toLowerCase());
175
+ if (account && options?.impersonate?.mode !== 'always') {
176
+ return account.signMessage({ message });
59
177
  }
60
- return account.signMessage({ message });
178
+ // Try impersonation
179
+ if (shouldImpersonate(address)) {
180
+ const success = await attemptImpersonation(address);
181
+ if (success) {
182
+ // Forward to underlying provider for impersonated signing
183
+ return providerToExtend.request({
184
+ method: 'eth_sign',
185
+ params: [address, message],
186
+ });
187
+ }
188
+ }
189
+ throw new Error('Account not available for signing');
61
190
  },
62
191
  eth_signTransaction: async (params) => {
63
192
  throw new Error('eth_signTransaction not implemented');
@@ -70,19 +199,45 @@ export function extendProviderWithAccounts(providerToExtend, options) {
70
199
  },
71
200
  eth_signTypedData: async (params) => {
72
201
  const [address, typedData] = params;
73
- const account = accounts.find((a) => a.address === address);
74
- if (!account) {
75
- throw new Error('Account not available for signing');
202
+ await initialize();
203
+ // Try local account first (unless mode is 'always')
204
+ const account = accounts.find((a) => a.address.toLowerCase() === address.toLowerCase());
205
+ if (account && options?.impersonate?.mode !== 'always') {
206
+ return account.signTypedData(typedData);
207
+ }
208
+ // Try impersonation
209
+ if (shouldImpersonate(address)) {
210
+ const success = await attemptImpersonation(address);
211
+ if (success) {
212
+ // Forward to underlying provider for impersonated signing
213
+ return providerToExtend.request({
214
+ method: 'eth_signTypedData',
215
+ params: [address, typedData],
216
+ });
217
+ }
76
218
  }
77
- return account.signTypedData(typedData);
219
+ throw new Error('Account not available for signing');
78
220
  },
79
221
  eth_signTypedData_v4: async (params) => {
80
222
  const [address, typedData] = params;
81
- const account = accounts.find((a) => a.address === address);
82
- if (!account) {
83
- throw new Error('Account not available for signing');
223
+ await initialize();
224
+ // Try local account first (unless mode is 'always')
225
+ const account = accounts.find((a) => a.address.toLowerCase() === address.toLowerCase());
226
+ if (account && options?.impersonate?.mode !== 'always') {
227
+ return account.signTypedData(typedData);
228
+ }
229
+ // Try impersonation
230
+ if (shouldImpersonate(address)) {
231
+ const success = await attemptImpersonation(address);
232
+ if (success) {
233
+ // Forward to underlying provider for impersonated signing
234
+ return providerToExtend.request({
235
+ method: 'eth_signTypedData_v4',
236
+ params: [address, typedData],
237
+ });
238
+ }
84
239
  }
85
- return account.signTypedData(typedData);
240
+ throw new Error('Account not available for signing');
86
241
  },
87
242
  };
88
243
  const handlers = {
@@ -131,27 +286,6 @@ export function extendProviderWithAccounts(providerToExtend, options) {
131
286
  };
132
287
  return clients;
133
288
  }
134
- const accounts = [];
135
- if (options?.accounts) {
136
- const accountsProvided = options.accounts;
137
- if ('privateKeys' in accountsProvided && accountsProvided.privateKeys) {
138
- for (const pk of accountsProvided.privateKeys) {
139
- const account = privateKeyToAccount(pk);
140
- accounts.push(account);
141
- // await client.tevmSetAccount({ address: account.address, balance: 0n });
142
- }
143
- }
144
- else if ('mnemonic' in accountsProvided && accountsProvided.mnemonic) {
145
- const num = accountsProvided.numAccounts || 10;
146
- for (let i = 0; i < num; i++) {
147
- const account = mnemonicToAccount(accountsProvided.mnemonic, {
148
- accountIndex: i,
149
- });
150
- accounts.push(account);
151
- // await client.tevmSetAccount({ address: account.address, balance: 0n });
152
- }
153
- }
154
- }
155
289
  function validateTransaction(tx) {
156
290
  const errors = [];
157
291
  if (!tx.from)
@@ -178,18 +312,6 @@ export function extendProviderWithAccounts(providerToExtend, options) {
178
312
  throw new Error(`Missing mandatory fields: ${errors.join(', ')}`);
179
313
  }
180
314
  }
181
- const shouldImpersonate = (address) => {
182
- if (options?.impersonate?.mode === 'always') {
183
- return true;
184
- }
185
- else if (options?.impersonate?.mode == 'unknown') {
186
- return !accounts.some((a) => a.address.toLowerCase() === address.toLowerCase());
187
- }
188
- else if (options?.impersonate?.mode === 'list') {
189
- return options.impersonate.list.includes(address) || false;
190
- }
191
- return false;
192
- };
193
315
  function toViemTransaction(tx) {
194
316
  if (tx?.type === '0x1') {
195
317
  return {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eip-1193-accounts-wrapper",
3
- "version": "0.0.12",
3
+ "version": "0.1.0",
4
4
  "description": "extends eip-1193 provider with accounts",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -32,6 +32,7 @@
32
32
  "vitest": "^4.0.16"
33
33
  },
34
34
  "scripts": {
35
+ "typecheck": "tsc --noEmit -p tsconfig-check.json",
35
36
  "build": "tsc --project tsconfig.json",
36
37
  "dev": "as-soon -w src pnpm build",
37
38
  "test": "vitest"