@atomiqlabs/chain-starknet
Version:
Starknet specific base implementation
56 lines (55 loc) • 1.73 kB
TypeScript
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";
};
}