@maxosllc/smart-order-router
Version:
BlockDAG Smart Order Router
32 lines (31 loc) • 1.23 kB
TypeScript
import { BigNumber } from '@ethersproject/bignumber';
import { BaseProvider } from '@ethersproject/providers';
import { ChainId } from '../../src/util/chains';
import { ProviderConfig } from './provider';
export declare const DEFAULT_TOKEN_FEE_RESULT: {
buyFeeBps: BigNumber;
sellFeeBps: BigNumber;
};
declare type Address = string;
export declare type TokenFeeResult = {
buyFeeBps?: BigNumber;
sellFeeBps?: BigNumber;
feeTakenOnTransfer?: boolean;
externalTransferFailed?: boolean;
sellReverted?: boolean;
};
export declare type TokenFeeMap = Record<Address, TokenFeeResult>;
export interface ITokenFeeFetcher {
fetchFees(addresses: Address[], providerConfig?: ProviderConfig): Promise<TokenFeeMap>;
}
export declare class OnChainTokenFeeFetcher implements ITokenFeeFetcher {
private chainId;
private tokenFeeAddress;
private gasLimitPerCall;
private amountToFlashBorrow;
private BASE_TOKEN;
private readonly contract;
constructor(chainId: ChainId, rpcProvider: BaseProvider, tokenFeeAddress?: string, gasLimitPerCall?: number, amountToFlashBorrow?: string);
fetchFees(addresses: Address[], providerConfig?: ProviderConfig): Promise<TokenFeeMap>;
}
export {};