import { Postman } from "./postman"; import { Cheats } from "./cheats"; import { Proofs } from "./proofs"; import { BalanceUnit, BlockId, PredeployedAccount } from "./types"; export type DevnetProviderConfig = { url?: string; /** milliseconds */ timeout?: number; }; export type MintResponse = { new_balance: bigint; unit: BalanceUnit; tx_hash: string; }; export interface NewBlockResponse { block_hash: string; } export interface AbortedBlocksResponse { aborted: Array; } export interface SetTimeResponse { time: number; block_hash?: string; } export interface IncreaseTimeResponse { time: number; block_hash: string; } export interface GasModificationResponse { l1_gas_price?: bigint; l1_data_gas_price?: bigint; l2_gas_price?: bigint; } export declare class DevnetProvider { readonly url: string; private httpProvider; private rpcProvider; /** Contains methods for L1-L2 communication. */ readonly postman: Postman; /** Contains methods for cheating, e.g. account impersonation. */ readonly cheats: Cheats; /** Contains methods for transaction proofs. */ readonly proofs: Proofs; constructor(config?: DevnetProviderConfig); /** * @returns `true` if the underlying Devnet instance is responsive; `false` otherwise */ isAlive(): Promise; /** * Restart the state of the underlying Devnet instance. You may opt to restart L1-L2 messaging. * https://starknet-io.github.io/starknet-devnet/docs/dump-load-restart#restarting */ restart(params?: { restartL1ToL2Messaging?: boolean; }): Promise; /** * Generate funds at the provided address. For return spec and more info, see * https://starknet-io.github.io/starknet-devnet/docs/balance#mint-token---local-faucet * @param address the account address to receive funds * @param amount how much to mint * @param unit specifier of the currency unit; defaults to FRI */ mint(address: string, amount: bigint, unit?: BalanceUnit): Promise; /** * https://starknet-io.github.io/starknet-devnet/docs/predeployed#how-to-get-predeployment-info * @returns a list of containing information on predeployed accounts. Load an account using e.g. starknet.js. */ getPredeployedAccounts(additionalArgs?: { withBalance: boolean; }): Promise>; /** * https://starknet-io.github.io/starknet-devnet/docs/blocks * @returns the block hash of the newly created block */ createBlock(): Promise; /** * https://starknet-io.github.io/starknet-devnet/docs/blocks * @param staringBlockId the block ID of the block after which (inclusive) all blocks * should be aborted. See docs {@link BlockId} for more info. * @returns hash values of aborted blocks */ abortBlocks(startingBlockId: BlockId): Promise; /** * https://starknet-io.github.io/starknet-devnet/docs/next/starknet-time#set-time * @returns the new time in unix seconds and, if block creation requested, the hash of the created block */ setTime(time: number, additionalArgs?: { generateBlock: boolean; }): Promise; /** * Increase the time by the provided `increment` seconds. * https://starknet-io.github.io/starknet-devnet/docs/next/starknet-time#increase-time * @returns the new time in unix seconds */ increaseTime(increment: number): Promise; /** * https://starknet-io.github.io/starknet-devnet/docs/dump-load-restart#dumping * @param path the path where your Devnet instance will be serialized; if not provided, defaults to the dump-path provided via CLI on Devnet startup. */ dump(path?: string): Promise; /** * After loading, this DevnetProvider instance will be connected to the loaded Devnet instance. * https://starknet-io.github.io/starknet-devnet/docs/dump-load-restart#dumping * @param path the path from which a Devnet instance will be deserialized */ load(path: string): Promise; /** * Modify gas prices, according to https://starknet-io.github.io/starknet-devnet/docs/gas * @param price new gas prices; any gas price can be ommitted * @param generateBlock if `true`, a new block is generated immediately, having new gas prices; * otherwise (by default) the price change takes effect with the usual next block generation * @returns gas prices after modification, including the unchanged ones */ setGasPrice(price: { l1GasPrice?: bigint; l1DataGasPrice?: bigint; l2GasPrice?: bigint; }, generateBlock?: boolean): Promise; /** * More info at: https://starknet-io.github.io/starknet-devnet/docs/api#config-api * @returns the configuration of the underlying Devnet instance. The returned object is marked * as `any` because it may change too often. */ getConfig(): Promise; }