Skip to content

Commit

Permalink
feat: allow usage of chainId to define network, cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
tabaktoni committed Dec 2, 2022
1 parent 4296cb3 commit 6cffaad
Showing 1 changed file with 18 additions and 14 deletions.
32 changes: 18 additions & 14 deletions src/provider/sequencer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,16 @@ import { Block, BlockIdentifier } from './utils';

type NetworkName = 'mainnet-alpha' | 'goerli-alpha' | 'goerli-alpha-2';

export type SequencerProviderOptions =
| { network: NetworkName | StarknetChainId }
| {
baseUrl: string;
feederGatewayUrl?: string;
gatewayUrl?: string;
chainId?: StarknetChainId;
headers?: object;
};

function isEmptyQueryObject(obj?: Record<any, any>): obj is undefined {
return (
obj === undefined ||
Expand All @@ -54,15 +64,9 @@ function isEmptyQueryObject(obj?: Record<any, any>): obj is undefined {
);
}

export type SequencerProviderOptions =
| { network: NetworkName }
| {
baseUrl: string;
feederGatewayUrl?: string;
gatewayUrl?: string;
chainId?: StarknetChainId;
headers?: object;
};
const defaultOptions: SequencerProviderOptions = {
network: 'goerli-alpha-2',
};

export class SequencerProvider implements ProviderInterface {
public baseUrl: string;
Expand All @@ -77,7 +81,7 @@ export class SequencerProvider implements ProviderInterface {

private responseParser = new SequencerAPIResponseParser();

constructor(optionsOrProvider: SequencerProviderOptions = { network: 'goerli-alpha-2' }) {
constructor(optionsOrProvider: SequencerProviderOptions = defaultOptions) {
if ('network' in optionsOrProvider) {
this.baseUrl = SequencerProvider.getNetworkFromName(optionsOrProvider.network);
this.chainId = SequencerProvider.getChainIdFromBaseUrl(this.baseUrl);
Expand All @@ -100,13 +104,13 @@ export class SequencerProvider implements ProviderInterface {
}
}

protected static getNetworkFromName(name: NetworkName) {
protected static getNetworkFromName(name: NetworkName | StarknetChainId) {
switch (name) {
case 'mainnet-alpha':
case 'mainnet-alpha' || StarknetChainId.MAINNET:
return 'https://alpha-mainnet.starknet.io';
case 'goerli-alpha':
case 'goerli-alpha' || StarknetChainId.TESTNET:
return 'https://alpha4.starknet.io';
case 'goerli-alpha-2':
case 'goerli-alpha-2' || StarknetChainId.TESTNET2:
return 'https://alpha4-2.starknet.io';
default:
return 'https://alpha4.starknet.io';
Expand Down

0 comments on commit 6cffaad

Please sign in to comment.