diff --git a/README.md b/README.md index fa86d51..6bbaca5 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,8 @@ The below networks are supported by default, and custom networks can be supporte | Zora Testnet | 999 | | Flare Mainnet | 14 | | Pulsechain Mainnet | 369 | +| Starknet | 300 | +| starknet testnet | 301 | ## Installation diff --git a/src/enums/networks.ts b/src/enums/networks.ts index c452d25..49a3bf0 100644 --- a/src/enums/networks.ts +++ b/src/enums/networks.ts @@ -58,6 +58,8 @@ export enum Networks { zkSyncEra = 324, zkSyncEraTestnet = 280, zkSyncEraSepoliaTestnet = 300, + starknet=300, + starknetTestnet=301, shibarium = 109, mantle = 5000, mantleTestnet = 5001, diff --git a/src/multicall.ts b/src/multicall.ts index 0cb2d94..143794a 100644 --- a/src/multicall.ts +++ b/src/multicall.ts @@ -421,13 +421,12 @@ export class Multicall { calls: AggregateCallContext[], options: ContractCallOptions ): Promise { - let ethersProvider = this.getTypedOptions() - .ethersProvider; + let ethersProvider = + this.getTypedOptions().ethersProvider; if (!ethersProvider) { - const customProvider = this.getTypedOptions< - MulticallOptionsCustomJsonRpcProvider - >(); + const customProvider = + this.getTypedOptions(); if (customProvider.nodeUrl) { ethersProvider = new ethers.providers.JsonRpcProvider( customProvider.nodeUrl @@ -531,7 +530,7 @@ export class Multicall { * Get typed options */ private getTypedOptions(): T { - return (this._options as unknown) as T; + return this._options as unknown as T; } /** @@ -621,6 +620,11 @@ export class Multicall { return '0xF9cda624FBC7e059355ce98a31693d299FACd963'; case Networks.shibarium: return '0xd1727fC8F78aBA7DD6294f6033D74c72Ccd3D3B0'; + case Networks.starknet: + return '0xc662c410C0ECf747543f5bA90660f6ABeBD9C8c4'; + case Networks.starknetTestnet: + return '0xde29d060D45901Fb19ED6C6e959EB22d8626708e'; + default: throw new Error( `Network - ${network} doesn't have a multicall contract address defined. Please check your network or deploy your own contract on it.`