import { VM } from '@ethereumjs/vm'; import { BaseNetwork } from '../network.js'; import { NetworkId } from '../types.js'; import { StateDB } from './statedb.js'; import { StateNetworkContentType } from './types.js'; import type { TNibbles } from './types.js'; import type { PortalNetwork } from '../../client/client.js'; import type { Block } from '@ethereumjs/block'; import type { RunBlockOpts } from '@ethereumjs/vm'; import type { Debugger } from 'debug'; export declare class StateNetwork extends BaseNetwork { stateDB: StateDB; networkId: NetworkId.StateNetwork; networkName: string; logger: Debugger; constructor(client: PortalNetwork, nodeRadius?: bigint); /** * Send FINDCONTENT request for content corresponding to `key` to peer corresponding to `dstId` * @param dstId node id of peer * @param key content key defined by the subnetwork spec * @returns the value of the FOUNDCONTENT response or undefined */ sendFindContent: (dstId: string, key: Uint8Array) => Promise<{ readonly selector: number; value: Uint8Array | Uint8Array[]; } | undefined>; findContentLocally: (contentKey: Uint8Array) => Promise; routingTableInfo: () => Promise<{ nodeId: string; buckets: string[][]; }>; store: (contentType: StateNetworkContentType, contentKey: string, content: Uint8Array) => Promise; receiveAccountTrieNodeOffer(contentKey: Uint8Array, content: Uint8Array): Promise<{ stored: number; forwarded: { contentKey: Uint8Array; content: Uint8Array; }; gossipCount: number; }>; storeInterestedNodes(path: TNibbles, proof: Uint8Array[]): Promise<{ interested: { contentKey: Uint8Array; dbContent: Uint8Array; }[]; notInterested: { contentKey: Uint8Array; nodeHash: string; }[]; }>; forwardAccountTrieOffer(path: TNibbles, proof: Uint8Array[], blockHash: Uint8Array): Promise<{ content: Uint8Array; contentKey: Uint8Array; }>; getAccount(address: string, stateroot: Uint8Array, deleteAfter?: boolean): Promise; lookupTrieNode(key: Uint8Array): Promise<{ nodeHash: Uint8Array; node: Uint8Array; }>; findPath(stateroot: Uint8Array, address: string): Promise<{ node: import("@ethereumjs/trie").TrieNode | null; remaining: import("@ethereumjs/trie").Nibbles; stack: import("@ethereumjs/trie").TrieNode[]; }>; vm(stateroot: Uint8Array): Promise; runBlock: (stateroot: Uint8Array, block: Block, opts: RunBlockOpts) => Promise<{ bloom: import("@ethereumjs/vm").Bloom; gasUsed: bigint; receiptsRoot: Uint8Array; receipts: (import("@ethereumjs/vm").PreByzantiumTxReceipt | import("@ethereumjs/vm").PostByzantiumTxReceipt)[]; results: import("@ethereumjs/vm").RunTxResult[]; }>; } //# sourceMappingURL=state.d.ts.map