| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 | import type { FeeData, Provider } from "./provider.js";import type { FetchRequest } from "../utils/fetch.js";/** *  A **NetworkPlugin** provides additional functionality on a [[Network]]. */export declare class NetworkPlugin {    /**     *  The name of the plugin.     *     *  It is recommended to use reverse-domain-notation, which permits     *  unique names with a known authority as well as hierarchal entries.     */    readonly name: string;    /**     *  Creates a new **NetworkPlugin**.     */    constructor(name: string);    /**     *  Creates a copy of this plugin.     */    clone(): NetworkPlugin;}/** *  The gas cost parameters for a [[GasCostPlugin]]. */export type GasCostParameters = {    /**     *  The transactions base fee.     */    txBase?: number;    /**     *  The fee for creating a new account.     */    txCreate?: number;    /**     *  The fee per zero-byte in the data.     */    txDataZero?: number;    /**     *  The fee per non-zero-byte in the data.     */    txDataNonzero?: number;    /**     *  The fee per storage key in the [[link-eip-2930]] access list.     */    txAccessListStorageKey?: number;    /**     *  The fee per address in the [[link-eip-2930]] access list.     */    txAccessListAddress?: number;};/** *  A **GasCostPlugin** allows a network to provide alternative values when *  computing the intrinsic gas required for a transaction. */export declare class GasCostPlugin extends NetworkPlugin implements GasCostParameters {    /**     *  The block number to treat these values as valid from.     *     *  This allows a hardfork to have updated values included as well as     *  mulutiple hardforks to be supported.     */    readonly effectiveBlock: number;    /**     *  The transactions base fee.     */    readonly txBase: number;    /**     *  The fee for creating a new account.     */    readonly txCreate: number;    /**     *  The fee per zero-byte in the data.     */    readonly txDataZero: number;    /**     *  The fee per non-zero-byte in the data.     */    readonly txDataNonzero: number;    /**     *  The fee per storage key in the [[link-eip-2930]] access list.     */    readonly txAccessListStorageKey: number;    /**     *  The fee per address in the [[link-eip-2930]] access list.     */    readonly txAccessListAddress: number;    /**     *  Creates a new GasCostPlugin from %%effectiveBlock%% until the     *  latest block or another GasCostPlugin supercedes that block number,     *  with the associated %%costs%%.     */    constructor(effectiveBlock?: number, costs?: GasCostParameters);    clone(): GasCostPlugin;}/** *  An **EnsPlugin** allows a [[Network]] to specify the ENS Registry *  Contract address and the target network to use when using that *  contract. * *  Various testnets have their own instance of the contract to use, but *  in general, the mainnet instance supports multi-chain addresses and *  should be used. */export declare class EnsPlugin extends NetworkPlugin {    /**     *  The ENS Registrty Contract address.     */    readonly address: string;    /**     *  The chain ID that the ENS contract lives on.     */    readonly targetNetwork: number;    /**     *  Creates a new **EnsPlugin** connected to %%address%% on the     *  %%targetNetwork%%. The default ENS address and mainnet is used     *  if unspecified.     */    constructor(address?: null | string, targetNetwork?: null | number);    clone(): EnsPlugin;}/** *  A **FeeDataNetworkPlugin** allows a network to provide and alternate *  means to specify its fee data. * *  For example, a network which does not support [[link-eip-1559]] may *  choose to use a Gas Station site to approximate the gas price. */export declare class FeeDataNetworkPlugin extends NetworkPlugin {    #private;    /**     *  The fee data function provided to the constructor.     */    get feeDataFunc(): (provider: Provider) => Promise<FeeData>;    /**     *  Creates a new **FeeDataNetworkPlugin**.     */    constructor(feeDataFunc: (provider: Provider) => Promise<FeeData>);    /**     *  Resolves to the fee data.     */    getFeeData(provider: Provider): Promise<FeeData>;    clone(): FeeDataNetworkPlugin;}export declare class FetchUrlFeeDataNetworkPlugin extends NetworkPlugin {    #private;    /**     *  The URL to initialize the FetchRequest with in %%processFunc%%.     */    get url(): string;    /**     *  The callback to use when computing the FeeData.     */    get processFunc(): (f: () => Promise<FeeData>, p: Provider, r: FetchRequest) => Promise<{        gasPrice?: null | bigint;        maxFeePerGas?: null | bigint;        maxPriorityFeePerGas?: null | bigint;    }>;    /**     *  Creates a new **FetchUrlFeeDataNetworkPlugin** which will     *  be used when computing the fee data for the network.     */    constructor(url: string, processFunc: (f: () => Promise<FeeData>, p: Provider, r: FetchRequest) => Promise<{        gasPrice?: null | bigint;        maxFeePerGas?: null | bigint;        maxPriorityFeePerGas?: null | bigint;    }>);    clone(): FetchUrlFeeDataNetworkPlugin;}//# sourceMappingURL=plugins-network.d.ts.map
 |