@aa-sdk/ethers 4.0.0-alpha.1 → 4.0.0-alpha.2

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.
@@ -1,6 +1,6 @@
1
1
  import { type BundlerClient, type SmartAccountClient, type SmartContractAccount } from "@aa-sdk/core";
2
2
  import { JsonRpcProvider } from "@ethersproject/providers";
3
- import { type Transport } from "viem";
3
+ import { type Chain, type Transport } from "viem";
4
4
  import { AccountSigner } from "./account-signer.js";
5
5
  import type { EthersProviderAdapterOpts } from "./types.js";
6
6
  export declare class EthersProviderAdapter extends JsonRpcProvider {
@@ -9,5 +9,5 @@ export declare class EthersProviderAdapter extends JsonRpcProvider {
9
9
  send(method: any, params: any[]): Promise<any>;
10
10
  connectToAccount<TAccount extends SmartContractAccount>(account: TAccount): AccountSigner<TAccount>;
11
11
  getBundlerClient(): BundlerClient<Transport>;
12
- static fromEthersProvider(provider: JsonRpcProvider): EthersProviderAdapter;
12
+ static fromEthersProvider(provider: JsonRpcProvider, chain: Chain): EthersProviderAdapter;
13
13
  }
@@ -18,7 +18,7 @@ class EthersProviderAdapter extends providers_1.JsonRpcProvider {
18
18
  this.accountProvider = opts.accountProvider;
19
19
  }
20
20
  else {
21
- const chain = (0, core_1.getChain)(opts.chainId);
21
+ const { chain } = opts;
22
22
  if (typeof opts.rpcProvider === "string") {
23
23
  this.accountProvider = (0, core_1.createSmartAccountClient)({
24
24
  transport: (0, viem_1.http)(opts.rpcProvider),
@@ -47,10 +47,10 @@ class EthersProviderAdapter extends providers_1.JsonRpcProvider {
47
47
  chain: this.accountProvider.chain,
48
48
  }));
49
49
  }
50
- static fromEthersProvider(provider) {
50
+ static fromEthersProvider(provider, chain) {
51
51
  return new EthersProviderAdapter({
52
52
  rpcProvider: provider.connection.url,
53
- chainId: provider.network.chainId,
53
+ chain,
54
54
  });
55
55
  }
56
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider-adapter.js","sourceRoot":"","sources":["../../src/provider-adapter.ts"],"names":[],"mappings":";;;AAAA,uCAOsB;AACtB,wDAA2D;AAC3D,+BAAwE;AACxE,2DAAoD;AAKpD,MAAa,qBAAsB,SAAQ,2BAAe;IAGxD,YAAY,IAA+B;QACzC,KAAK,EAAE,CAAC;QAHD;;;;;WAAoC;QAI3C,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACzC,IAAI,CAAC,eAAe,GAAG,IAAA,+BAAwB,EAAC;oBAC9C,SAAS,EAAE,IAAA,WAAI,EAAC,IAAI,CAAC,WAAW,CAAC;oBACjC,KAAK;oBACL,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,GAAG,IAAA,+BAAwB,EAAC;oBAC9C,SAAS,EAAE,IAAA,aAAM,EAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;oBAC7C,KAAK;oBACL,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAUD,IAAI,CAAC,MAAW,EAAE,MAAa;QAE7B,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAQD,gBAAgB,CACd,OAAiB;QAEjB,OAAO,IAAI,iCAAa,CAAW,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,gBAAgB;QACd,OAAO,IAAA,sCAA+B,EACpC,IAAA,yBAAkB,EAAC;YACjB,SAAS,EAAE,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAM;SACnC,CAAC,CACH,CAAC;IACJ,CAAC;IAQD,MAAM,CAAC,kBAAkB,CAAC,QAAyB;QACjD,OAAO,IAAI,qBAAqB,CAAC;YAC/B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;YACpC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO;SAClC,CAAC,CAAC;IACL,CAAC;CACF;AAvED,sDAuEC","sourcesContent":["import {\n createBundlerClientFromExisting,\n createSmartAccountClient,\n getChain,\n type BundlerClient,\n type SmartAccountClient,\n type SmartContractAccount,\n} from \"@aa-sdk/core\";\nimport { JsonRpcProvider } from \"@ethersproject/providers\";\nimport { createPublicClient, custom, http, type Transport } from \"viem\";\nimport { AccountSigner } from \"./account-signer.js\";\nimport type { EthersProviderAdapterOpts } from \"./types.js\";\n\n/** Lightweight Adapter for SmartAccountProvider to enable Signer Creation */\n// TODO: Add support for strong entry point version type\nexport class EthersProviderAdapter extends JsonRpcProvider {\n readonly accountProvider: SmartAccountClient;\n\n constructor(opts: EthersProviderAdapterOpts) {\n super();\n if (\"accountProvider\" in opts) {\n this.accountProvider = opts.accountProvider;\n } else {\n const chain = getChain(opts.chainId);\n if (typeof opts.rpcProvider === \"string\") {\n this.accountProvider = createSmartAccountClient({\n transport: http(opts.rpcProvider),\n chain,\n account: opts.account,\n });\n } else {\n this.accountProvider = createSmartAccountClient({\n transport: custom(opts.rpcProvider.transport),\n chain,\n account: opts.account,\n });\n }\n }\n }\n\n /**\n * Rewrites the send method to use the account provider's EIP-1193\n * compliant request method\n *\n * @param method - the RPC method to call\n * @param params - the params required by the RPC method\n * @returns the result of the RPC call\n */\n send(method: any, params: any[]): Promise<any> {\n // @ts-expect-error - viem is strongly typed on the request methods, but ethers is not\n return this.accountProvider.request({ method, params });\n }\n\n /**\n * Connects the Provider to an Account and returns a Signer\n *\n * @param account - the account to connect to\n * @returns an {@link AccountSigner} that can be used to sign and send user operations\n */\n connectToAccount<TAccount extends SmartContractAccount>(\n account: TAccount\n ): AccountSigner<TAccount> {\n return new AccountSigner<TAccount>(this, account);\n }\n\n getBundlerClient(): BundlerClient<Transport> {\n return createBundlerClientFromExisting(\n createPublicClient({\n transport: custom(this.accountProvider.transport),\n chain: this.accountProvider.chain!,\n })\n );\n }\n\n /**\n * Creates an instance of EthersProviderAdapter from an ethers.js JsonRpcProvider.\n *\n * @param provider - the ethers JSON RPC provider to convert\n * @returns an instance of {@link EthersProviderAdapter}\n */\n static fromEthersProvider(provider: JsonRpcProvider): EthersProviderAdapter {\n return new EthersProviderAdapter({\n rpcProvider: provider.connection.url,\n chainId: provider.network.chainId,\n });\n }\n}\n"]}
1
+ {"version":3,"file":"provider-adapter.js","sourceRoot":"","sources":["../../src/provider-adapter.ts"],"names":[],"mappings":";;;AAAA,uCAMsB;AACtB,wDAA2D;AAC3D,+BAMc;AACd,2DAAoD;AAKpD,MAAa,qBAAsB,SAAQ,2BAAe;IAGxD,YAAY,IAA+B;QACzC,KAAK,EAAE,CAAC;QAHD;;;;;WAAoC;QAI3C,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YAEvB,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACzC,IAAI,CAAC,eAAe,GAAG,IAAA,+BAAwB,EAAC;oBAC9C,SAAS,EAAE,IAAA,WAAI,EAAC,IAAI,CAAC,WAAW,CAAC;oBACjC,KAAK;oBACL,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,GAAG,IAAA,+BAAwB,EAAC;oBAC9C,SAAS,EAAE,IAAA,aAAM,EAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;oBAC7C,KAAK;oBACL,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAUD,IAAI,CAAC,MAAW,EAAE,MAAa;QAE7B,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAQD,gBAAgB,CACd,OAAiB;QAEjB,OAAO,IAAI,iCAAa,CAAW,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,gBAAgB;QACd,OAAO,IAAA,sCAA+B,EACpC,IAAA,yBAAkB,EAAC;YACjB,SAAS,EAAE,IAAA,aAAM,EAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAM;SACnC,CAAC,CACH,CAAC;IACJ,CAAC;IASD,MAAM,CAAC,kBAAkB,CACvB,QAAyB,EACzB,KAAY;QAEZ,OAAO,IAAI,qBAAqB,CAAC;YAC/B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;YACpC,KAAK;SACN,CAAC,CAAC;IACL,CAAC;CACF;AA5ED,sDA4EC","sourcesContent":["import {\n createBundlerClientFromExisting,\n createSmartAccountClient,\n type BundlerClient,\n type SmartAccountClient,\n type SmartContractAccount,\n} from \"@aa-sdk/core\";\nimport { JsonRpcProvider } from \"@ethersproject/providers\";\nimport {\n createPublicClient,\n custom,\n http,\n type Chain,\n type Transport,\n} from \"viem\";\nimport { AccountSigner } from \"./account-signer.js\";\nimport type { EthersProviderAdapterOpts } from \"./types.js\";\n\n/** Lightweight Adapter for SmartAccountProvider to enable Signer Creation */\n// TODO: Add support for strong entry point version type\nexport class EthersProviderAdapter extends JsonRpcProvider {\n readonly accountProvider: SmartAccountClient;\n\n constructor(opts: EthersProviderAdapterOpts) {\n super();\n if (\"accountProvider\" in opts) {\n this.accountProvider = opts.accountProvider;\n } else {\n const { chain } = opts;\n\n if (typeof opts.rpcProvider === \"string\") {\n this.accountProvider = createSmartAccountClient({\n transport: http(opts.rpcProvider),\n chain,\n account: opts.account,\n });\n } else {\n this.accountProvider = createSmartAccountClient({\n transport: custom(opts.rpcProvider.transport),\n chain,\n account: opts.account,\n });\n }\n }\n }\n\n /**\n * Rewrites the send method to use the account provider's EIP-1193\n * compliant request method\n *\n * @param method - the RPC method to call\n * @param params - the params required by the RPC method\n * @returns the result of the RPC call\n */\n send(method: any, params: any[]): Promise<any> {\n // @ts-expect-error - viem is strongly typed on the request methods, but ethers is not\n return this.accountProvider.request({ method, params });\n }\n\n /**\n * Connects the Provider to an Account and returns a Signer\n *\n * @param account - the account to connect to\n * @returns an {@link AccountSigner} that can be used to sign and send user operations\n */\n connectToAccount<TAccount extends SmartContractAccount>(\n account: TAccount\n ): AccountSigner<TAccount> {\n return new AccountSigner<TAccount>(this, account);\n }\n\n getBundlerClient(): BundlerClient<Transport> {\n return createBundlerClientFromExisting(\n createPublicClient({\n transport: custom(this.accountProvider.transport),\n chain: this.accountProvider.chain!,\n })\n );\n }\n\n /**\n * Creates an instance of EthersProviderAdapter from an ethers.js JsonRpcProvider.\n *\n * @param provider the ethers JSON RPC provider to convert\n * @param chain the chain to connect to\n * @returns an instance of {@link EthersProviderAdapter}\n */\n static fromEthersProvider(\n provider: JsonRpcProvider,\n chain: Chain\n ): EthersProviderAdapter {\n return new EthersProviderAdapter({\n rpcProvider: provider.connection.url,\n chain,\n });\n }\n}\n"]}
@@ -4,7 +4,7 @@ export type EthersProviderAdapterOpts<TTransport extends Transport = Transport,
4
4
  account?: TAccount;
5
5
  } & ({
6
6
  rpcProvider: string | BundlerClient<TTransport>;
7
- chainId: number;
7
+ chain: Chain;
8
8
  } | {
9
9
  accountProvider: SmartAccountClient<TTransport, TChain, TAccount>;
10
10
  });
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n type BundlerClient,\n type SmartAccountClient,\n type SmartContractAccount,\n} from \"@aa-sdk/core\";\nimport type { Chain, Transport } from \"viem\";\n\nexport type EthersProviderAdapterOpts<\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined\n> = {\n account?: TAccount;\n} & (\n | {\n rpcProvider: string | BundlerClient<TTransport>;\n chainId: number;\n }\n | {\n accountProvider: SmartAccountClient<TTransport, TChain, TAccount>;\n }\n);\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n type BundlerClient,\n type SmartAccountClient,\n type SmartContractAccount,\n} from \"@aa-sdk/core\";\nimport type { Chain, Transport } from \"viem\";\n\nexport type EthersProviderAdapterOpts<\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined\n> = {\n account?: TAccount;\n} & (\n | {\n rpcProvider: string | BundlerClient<TTransport>;\n chain: Chain;\n }\n | {\n accountProvider: SmartAccountClient<TTransport, TChain, TAccount>;\n }\n);\n"]}
@@ -1,6 +1,6 @@
1
1
  import { type BundlerClient, type SmartAccountClient, type SmartContractAccount } from "@aa-sdk/core";
2
2
  import { JsonRpcProvider } from "@ethersproject/providers";
3
- import { type Transport } from "viem";
3
+ import { type Chain, type Transport } from "viem";
4
4
  import { AccountSigner } from "./account-signer.js";
5
5
  import type { EthersProviderAdapterOpts } from "./types.js";
6
6
  export declare class EthersProviderAdapter extends JsonRpcProvider {
@@ -9,5 +9,5 @@ export declare class EthersProviderAdapter extends JsonRpcProvider {
9
9
  send(method: any, params: any[]): Promise<any>;
10
10
  connectToAccount<TAccount extends SmartContractAccount>(account: TAccount): AccountSigner<TAccount>;
11
11
  getBundlerClient(): BundlerClient<Transport>;
12
- static fromEthersProvider(provider: JsonRpcProvider): EthersProviderAdapter;
12
+ static fromEthersProvider(provider: JsonRpcProvider, chain: Chain): EthersProviderAdapter;
13
13
  }
@@ -1,6 +1,6 @@
1
- import { createBundlerClientFromExisting, createSmartAccountClient, getChain, } from "@aa-sdk/core";
1
+ import { createBundlerClientFromExisting, createSmartAccountClient, } from "@aa-sdk/core";
2
2
  import { JsonRpcProvider } from "@ethersproject/providers";
3
- import { createPublicClient, custom, http } from "viem";
3
+ import { createPublicClient, custom, http, } from "viem";
4
4
  import { AccountSigner } from "./account-signer.js";
5
5
  export class EthersProviderAdapter extends JsonRpcProvider {
6
6
  constructor(opts) {
@@ -15,7 +15,7 @@ export class EthersProviderAdapter extends JsonRpcProvider {
15
15
  this.accountProvider = opts.accountProvider;
16
16
  }
17
17
  else {
18
- const chain = getChain(opts.chainId);
18
+ const { chain } = opts;
19
19
  if (typeof opts.rpcProvider === "string") {
20
20
  this.accountProvider = createSmartAccountClient({
21
21
  transport: http(opts.rpcProvider),
@@ -44,10 +44,10 @@ export class EthersProviderAdapter extends JsonRpcProvider {
44
44
  chain: this.accountProvider.chain,
45
45
  }));
46
46
  }
47
- static fromEthersProvider(provider) {
47
+ static fromEthersProvider(provider, chain) {
48
48
  return new EthersProviderAdapter({
49
49
  rpcProvider: provider.connection.url,
50
- chainId: provider.network.chainId,
50
+ chain,
51
51
  });
52
52
  }
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider-adapter.js","sourceRoot":"","sources":["../../src/provider-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,wBAAwB,EACxB,QAAQ,GAIT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAkB,MAAM,MAAM,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKpD,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IAGxD,YAAY,IAA+B;QACzC,KAAK,EAAE,CAAC;QAHD;;;;;WAAoC;QAI3C,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACzC,IAAI,CAAC,eAAe,GAAG,wBAAwB,CAAC;oBAC9C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;oBACjC,KAAK;oBACL,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,GAAG,wBAAwB,CAAC;oBAC9C,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;oBAC7C,KAAK;oBACL,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAUD,IAAI,CAAC,MAAW,EAAE,MAAa;QAE7B,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAQD,gBAAgB,CACd,OAAiB;QAEjB,OAAO,IAAI,aAAa,CAAW,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,gBAAgB;QACd,OAAO,+BAA+B,CACpC,kBAAkB,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAM;SACnC,CAAC,CACH,CAAC;IACJ,CAAC;IAQD,MAAM,CAAC,kBAAkB,CAAC,QAAyB;QACjD,OAAO,IAAI,qBAAqB,CAAC;YAC/B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;YACpC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO;SAClC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import {\n createBundlerClientFromExisting,\n createSmartAccountClient,\n getChain,\n type BundlerClient,\n type SmartAccountClient,\n type SmartContractAccount,\n} from \"@aa-sdk/core\";\nimport { JsonRpcProvider } from \"@ethersproject/providers\";\nimport { createPublicClient, custom, http, type Transport } from \"viem\";\nimport { AccountSigner } from \"./account-signer.js\";\nimport type { EthersProviderAdapterOpts } from \"./types.js\";\n\n/** Lightweight Adapter for SmartAccountProvider to enable Signer Creation */\n// TODO: Add support for strong entry point version type\nexport class EthersProviderAdapter extends JsonRpcProvider {\n readonly accountProvider: SmartAccountClient;\n\n constructor(opts: EthersProviderAdapterOpts) {\n super();\n if (\"accountProvider\" in opts) {\n this.accountProvider = opts.accountProvider;\n } else {\n const chain = getChain(opts.chainId);\n if (typeof opts.rpcProvider === \"string\") {\n this.accountProvider = createSmartAccountClient({\n transport: http(opts.rpcProvider),\n chain,\n account: opts.account,\n });\n } else {\n this.accountProvider = createSmartAccountClient({\n transport: custom(opts.rpcProvider.transport),\n chain,\n account: opts.account,\n });\n }\n }\n }\n\n /**\n * Rewrites the send method to use the account provider's EIP-1193\n * compliant request method\n *\n * @param method - the RPC method to call\n * @param params - the params required by the RPC method\n * @returns the result of the RPC call\n */\n send(method: any, params: any[]): Promise<any> {\n // @ts-expect-error - viem is strongly typed on the request methods, but ethers is not\n return this.accountProvider.request({ method, params });\n }\n\n /**\n * Connects the Provider to an Account and returns a Signer\n *\n * @param account - the account to connect to\n * @returns an {@link AccountSigner} that can be used to sign and send user operations\n */\n connectToAccount<TAccount extends SmartContractAccount>(\n account: TAccount\n ): AccountSigner<TAccount> {\n return new AccountSigner<TAccount>(this, account);\n }\n\n getBundlerClient(): BundlerClient<Transport> {\n return createBundlerClientFromExisting(\n createPublicClient({\n transport: custom(this.accountProvider.transport),\n chain: this.accountProvider.chain!,\n })\n );\n }\n\n /**\n * Creates an instance of EthersProviderAdapter from an ethers.js JsonRpcProvider.\n *\n * @param provider - the ethers JSON RPC provider to convert\n * @returns an instance of {@link EthersProviderAdapter}\n */\n static fromEthersProvider(provider: JsonRpcProvider): EthersProviderAdapter {\n return new EthersProviderAdapter({\n rpcProvider: provider.connection.url,\n chainId: provider.network.chainId,\n });\n }\n}\n"]}
1
+ {"version":3,"file":"provider-adapter.js","sourceRoot":"","sources":["../../src/provider-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,wBAAwB,GAIzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,MAAM,EACN,IAAI,GAGL,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKpD,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IAGxD,YAAY,IAA+B;QACzC,KAAK,EAAE,CAAC;QAHD;;;;;WAAoC;QAI3C,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YAEvB,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACzC,IAAI,CAAC,eAAe,GAAG,wBAAwB,CAAC;oBAC9C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;oBACjC,KAAK;oBACL,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,GAAG,wBAAwB,CAAC;oBAC9C,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;oBAC7C,KAAK;oBACL,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAUD,IAAI,CAAC,MAAW,EAAE,MAAa;QAE7B,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAQD,gBAAgB,CACd,OAAiB;QAEjB,OAAO,IAAI,aAAa,CAAW,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,gBAAgB;QACd,OAAO,+BAA+B,CACpC,kBAAkB,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YACjD,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAM;SACnC,CAAC,CACH,CAAC;IACJ,CAAC;IASD,MAAM,CAAC,kBAAkB,CACvB,QAAyB,EACzB,KAAY;QAEZ,OAAO,IAAI,qBAAqB,CAAC;YAC/B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG;YACpC,KAAK;SACN,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import {\n createBundlerClientFromExisting,\n createSmartAccountClient,\n type BundlerClient,\n type SmartAccountClient,\n type SmartContractAccount,\n} from \"@aa-sdk/core\";\nimport { JsonRpcProvider } from \"@ethersproject/providers\";\nimport {\n createPublicClient,\n custom,\n http,\n type Chain,\n type Transport,\n} from \"viem\";\nimport { AccountSigner } from \"./account-signer.js\";\nimport type { EthersProviderAdapterOpts } from \"./types.js\";\n\n/** Lightweight Adapter for SmartAccountProvider to enable Signer Creation */\n// TODO: Add support for strong entry point version type\nexport class EthersProviderAdapter extends JsonRpcProvider {\n readonly accountProvider: SmartAccountClient;\n\n constructor(opts: EthersProviderAdapterOpts) {\n super();\n if (\"accountProvider\" in opts) {\n this.accountProvider = opts.accountProvider;\n } else {\n const { chain } = opts;\n\n if (typeof opts.rpcProvider === \"string\") {\n this.accountProvider = createSmartAccountClient({\n transport: http(opts.rpcProvider),\n chain,\n account: opts.account,\n });\n } else {\n this.accountProvider = createSmartAccountClient({\n transport: custom(opts.rpcProvider.transport),\n chain,\n account: opts.account,\n });\n }\n }\n }\n\n /**\n * Rewrites the send method to use the account provider's EIP-1193\n * compliant request method\n *\n * @param method - the RPC method to call\n * @param params - the params required by the RPC method\n * @returns the result of the RPC call\n */\n send(method: any, params: any[]): Promise<any> {\n // @ts-expect-error - viem is strongly typed on the request methods, but ethers is not\n return this.accountProvider.request({ method, params });\n }\n\n /**\n * Connects the Provider to an Account and returns a Signer\n *\n * @param account - the account to connect to\n * @returns an {@link AccountSigner} that can be used to sign and send user operations\n */\n connectToAccount<TAccount extends SmartContractAccount>(\n account: TAccount\n ): AccountSigner<TAccount> {\n return new AccountSigner<TAccount>(this, account);\n }\n\n getBundlerClient(): BundlerClient<Transport> {\n return createBundlerClientFromExisting(\n createPublicClient({\n transport: custom(this.accountProvider.transport),\n chain: this.accountProvider.chain!,\n })\n );\n }\n\n /**\n * Creates an instance of EthersProviderAdapter from an ethers.js JsonRpcProvider.\n *\n * @param provider the ethers JSON RPC provider to convert\n * @param chain the chain to connect to\n * @returns an instance of {@link EthersProviderAdapter}\n */\n static fromEthersProvider(\n provider: JsonRpcProvider,\n chain: Chain\n ): EthersProviderAdapter {\n return new EthersProviderAdapter({\n rpcProvider: provider.connection.url,\n chain,\n });\n }\n}\n"]}
@@ -4,7 +4,7 @@ export type EthersProviderAdapterOpts<TTransport extends Transport = Transport,
4
4
  account?: TAccount;
5
5
  } & ({
6
6
  rpcProvider: string | BundlerClient<TTransport>;
7
- chainId: number;
7
+ chain: Chain;
8
8
  } | {
9
9
  accountProvider: SmartAccountClient<TTransport, TChain, TAccount>;
10
10
  });
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,MAAM,cAAc,CAAC","sourcesContent":["import {\n type BundlerClient,\n type SmartAccountClient,\n type SmartContractAccount,\n} from \"@aa-sdk/core\";\nimport type { Chain, Transport } from \"viem\";\n\nexport type EthersProviderAdapterOpts<\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined\n> = {\n account?: TAccount;\n} & (\n | {\n rpcProvider: string | BundlerClient<TTransport>;\n chainId: number;\n }\n | {\n accountProvider: SmartAccountClient<TTransport, TChain, TAccount>;\n }\n);\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,MAAM,cAAc,CAAC","sourcesContent":["import {\n type BundlerClient,\n type SmartAccountClient,\n type SmartContractAccount,\n} from \"@aa-sdk/core\";\nimport type { Chain, Transport } from \"viem\";\n\nexport type EthersProviderAdapterOpts<\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined\n> = {\n account?: TAccount;\n} & (\n | {\n rpcProvider: string | BundlerClient<TTransport>;\n chain: Chain;\n }\n | {\n accountProvider: SmartAccountClient<TTransport, TChain, TAccount>;\n }\n);\n"]}
@@ -1,6 +1,6 @@
1
1
  import { type BundlerClient, type SmartAccountClient, type SmartContractAccount } from "@aa-sdk/core";
2
2
  import { JsonRpcProvider } from "@ethersproject/providers";
3
- import { type Transport } from "viem";
3
+ import { type Chain, type Transport } from "viem";
4
4
  import { AccountSigner } from "./account-signer.js";
5
5
  import type { EthersProviderAdapterOpts } from "./types.js";
6
6
  /** Lightweight Adapter for SmartAccountProvider to enable Signer Creation */
@@ -27,9 +27,10 @@ export declare class EthersProviderAdapter extends JsonRpcProvider {
27
27
  /**
28
28
  * Creates an instance of EthersProviderAdapter from an ethers.js JsonRpcProvider.
29
29
  *
30
- * @param provider - the ethers JSON RPC provider to convert
30
+ * @param provider the ethers JSON RPC provider to convert
31
+ * @param chain the chain to connect to
31
32
  * @returns an instance of {@link EthersProviderAdapter}
32
33
  */
33
- static fromEthersProvider(provider: JsonRpcProvider): EthersProviderAdapter;
34
+ static fromEthersProvider(provider: JsonRpcProvider, chain: Chain): EthersProviderAdapter;
34
35
  }
35
36
  //# sourceMappingURL=provider-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-adapter.d.ts","sourceRoot":"","sources":["../../src/provider-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,MAAM,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,6EAA6E;AAE7E,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;gBAEjC,IAAI,EAAE,yBAAyB;IAsB3C;;;;;;;OAOG;IACH,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAK9C;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,SAAS,oBAAoB,EACpD,OAAO,EAAE,QAAQ,GAChB,aAAa,CAAC,QAAQ,CAAC;IAI1B,gBAAgB,IAAI,aAAa,CAAC,SAAS,CAAC;IAS5C;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,qBAAqB;CAM5E"}
1
+ {"version":3,"file":"provider-adapter.d.ts","sourceRoot":"","sources":["../../src/provider-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAIL,KAAK,KAAK,EACV,KAAK,SAAS,EACf,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,6EAA6E;AAE7E,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;gBAEjC,IAAI,EAAE,yBAAyB;IAuB3C;;;;;;;OAOG;IACH,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAK9C;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,SAAS,oBAAoB,EACpD,OAAO,EAAE,QAAQ,GAChB,aAAa,CAAC,QAAQ,CAAC;IAI1B,gBAAgB,IAAI,aAAa,CAAC,SAAS,CAAC;IAS5C;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CACvB,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,KAAK,GACX,qBAAqB;CAMzB"}
@@ -4,7 +4,7 @@ export type EthersProviderAdapterOpts<TTransport extends Transport = Transport,
4
4
  account?: TAccount;
5
5
  } & ({
6
6
  rpcProvider: string | BundlerClient<TTransport>;
7
- chainId: number;
7
+ chain: Chain;
8
8
  } | {
9
9
  accountProvider: SmartAccountClient<TTransport, TChain, TAccount>;
10
10
  });
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAE7C,MAAM,MAAM,yBAAyB,CACnC,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,KAAK,EAC5B,QAAQ,SAAS,oBAAoB,GAAG,SAAS,GAC7C,oBAAoB,GACpB,SAAS,IACX;IACF,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB,GAAG,CACA;IACE,WAAW,EAAE,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,eAAe,EAAE,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;CACnE,CACJ,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAE7C,MAAM,MAAM,yBAAyB,CACnC,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,KAAK,EAC5B,QAAQ,SAAS,oBAAoB,GAAG,SAAS,GAC7C,oBAAoB,GACpB,SAAS,IACX;IACF,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB,GAAG,CACA;IACE,WAAW,EAAE,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,KAAK,EAAE,KAAK,CAAC;CACd,GACD;IACE,eAAe,EAAE,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;CACnE,CACJ,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aa-sdk/ethers",
3
3
  "license": "MIT",
4
- "version": "4.0.0-alpha.1",
4
+ "version": "4.0.0-alpha.2",
5
5
  "description": "Ethers.js wrapper for @aa-sdk/core",
6
6
  "author": "Alchemy",
7
7
  "type": "module",
@@ -49,7 +49,7 @@
49
49
  "vitest": "^0.31.0"
50
50
  },
51
51
  "dependencies": {
52
- "@aa-sdk/core": "^4.0.0-alpha.1",
52
+ "@aa-sdk/core": "^4.0.0-alpha.2",
53
53
  "@ethersproject/abi": "^5.7.0",
54
54
  "@ethersproject/abstract-signer": "^5.7.0",
55
55
  "@ethersproject/bytes": "^5.7.0",
@@ -70,5 +70,5 @@
70
70
  "bugs": {
71
71
  "url": "https://github.com/alchemyplatform/aa-sdk/issues"
72
72
  },
73
- "gitHead": "cb4bf5f8a9aa8fdff1610130821b69ff806e79e6"
73
+ "gitHead": "af70c1ea67be7f49339a1267ccadd8dc10aabde1"
74
74
  }
@@ -1,13 +1,18 @@
1
1
  import {
2
2
  createBundlerClientFromExisting,
3
3
  createSmartAccountClient,
4
- getChain,
5
4
  type BundlerClient,
6
5
  type SmartAccountClient,
7
6
  type SmartContractAccount,
8
7
  } from "@aa-sdk/core";
9
8
  import { JsonRpcProvider } from "@ethersproject/providers";
10
- import { createPublicClient, custom, http, type Transport } from "viem";
9
+ import {
10
+ createPublicClient,
11
+ custom,
12
+ http,
13
+ type Chain,
14
+ type Transport,
15
+ } from "viem";
11
16
  import { AccountSigner } from "./account-signer.js";
12
17
  import type { EthersProviderAdapterOpts } from "./types.js";
13
18
 
@@ -21,7 +26,8 @@ export class EthersProviderAdapter extends JsonRpcProvider {
21
26
  if ("accountProvider" in opts) {
22
27
  this.accountProvider = opts.accountProvider;
23
28
  } else {
24
- const chain = getChain(opts.chainId);
29
+ const { chain } = opts;
30
+
25
31
  if (typeof opts.rpcProvider === "string") {
26
32
  this.accountProvider = createSmartAccountClient({
27
33
  transport: http(opts.rpcProvider),
@@ -75,13 +81,17 @@ export class EthersProviderAdapter extends JsonRpcProvider {
75
81
  /**
76
82
  * Creates an instance of EthersProviderAdapter from an ethers.js JsonRpcProvider.
77
83
  *
78
- * @param provider - the ethers JSON RPC provider to convert
84
+ * @param provider the ethers JSON RPC provider to convert
85
+ * @param chain the chain to connect to
79
86
  * @returns an instance of {@link EthersProviderAdapter}
80
87
  */
81
- static fromEthersProvider(provider: JsonRpcProvider): EthersProviderAdapter {
88
+ static fromEthersProvider(
89
+ provider: JsonRpcProvider,
90
+ chain: Chain
91
+ ): EthersProviderAdapter {
82
92
  return new EthersProviderAdapter({
83
93
  rpcProvider: provider.connection.url,
84
- chainId: provider.network.chainId,
94
+ chain,
85
95
  });
86
96
  }
87
97
  }
package/src/types.ts CHANGED
@@ -16,7 +16,7 @@ export type EthersProviderAdapterOpts<
16
16
  } & (
17
17
  | {
18
18
  rpcProvider: string | BundlerClient<TTransport>;
19
- chainId: number;
19
+ chain: Chain;
20
20
  }
21
21
  | {
22
22
  accountProvider: SmartAccountClient<TTransport, TChain, TAccount>;