UNPKG

@atomiqlabs/chain-starknet

Version:

Starknet specific base implementation

56 lines (55 loc) 1.73 kB
import { Provider } from "starknet"; export declare class StarknetFees { private readonly logger; private readonly feeDA; private readonly nonceDA; private readonly provider; private readonly gasToken; private readonly maxFeeRate; private readonly feeMultiplierPPM; private blockFeeCache; constructor(provider: Provider, gasToken?: "ETH" | "STRK", maxFeeRate?: number, feeMultiplier?: number, da?: { fee?: "L1" | "L2"; nonce?: "L1" | "L2"; }); /** * Gets starknet fee rate * * @private * @returns {Promise<BN>} L1 gas price denominated in Wei */ private _getFeeRate; /** * Gets the gas price with caching, format: <gas price in Wei>;<transaction version: v1/v3> * * @private */ getFeeRate(): Promise<string>; getDefaultGasToken(): string; /** * Calculates the total gas fee fee paid for a given gas limit at a given fee rate * * @param gas * @param feeRate */ static getGasFee(gas: number, feeRate: string): bigint; static getGasToken(feeRate: string): string; getFeeDetails(L1GasLimit: number, L2GasLimit: number, feeRate: string): { maxFee: string; version: "0x3" | "0x1"; resourceBounds: { l1_gas: { max_amount: string; max_price_per_unit: string; }; l2_gas: { max_amount: string; max_price_per_unit: string; }; }; tip: string; paymasterData: any[]; nonceDataAvailabilityMode: "L1" | "L2"; feeDataAvailabilityMode: "L1" | "L2"; }; }