///
import { EthAddress } from '../address/index.js';
declare type Jsonify = {
[P in keyof T]: T[P] extends EthAddress | bigint | Buffer ? string : T[P] extends Object ? Jsonify : T[P];
};
export declare enum TxType {
DEPOSIT = 0,
TRANSFER = 1,
WITHDRAW_TO_WALLET = 2,
WITHDRAW_HIGH_GAS = 3,
ACCOUNT = 4,
DEFI_DEPOSIT = 5,
DEFI_CLAIM = 6
}
export declare const numTxTypes = 7;
export declare function isDefiDepositTx(txType: TxType): boolean;
export declare function isAccountTx(txType: TxType): boolean;
export interface BlockchainAsset {
address: EthAddress;
decimals: number;
symbol: string;
name: string;
gasLimit: number;
}
export declare type BlockchainAssetJson = Jsonify;
export declare const blockchainAssetToJson: ({ address, ...asset }: BlockchainAsset) => BlockchainAssetJson;
export declare const blockchainAssetFromJson: ({ address, ...asset }: BlockchainAssetJson) => BlockchainAsset;
export interface BlockchainBridge {
id: number;
address: EthAddress;
gasLimit: number;
}
export declare type BlockchainBridgeJson = Jsonify;
export declare const blockchainBridgeToJson: ({ address, ...bridge }: BlockchainBridge) => BlockchainBridgeJson;
export declare const blockchainBridgeFromJson: ({ address, ...bridge }: BlockchainBridgeJson) => BlockchainBridge;
export interface BlockchainStatus {
chainId: number;
rollupContractAddress: EthAddress;
permitHelperContractAddress: EthAddress;
verifierContractAddress: EthAddress;
bridgeDataProvider: EthAddress;
nextRollupId: number;
dataSize: number;
dataRoot: Buffer;
nullRoot: Buffer;
rootRoot: Buffer;
defiRoot: Buffer;
defiInteractionHashes: Buffer[];
escapeOpen: boolean;
allowThirdPartyContracts: boolean;
numEscapeBlocksRemaining: number;
assets: BlockchainAsset[];
bridges: BlockchainBridge[];
}
export declare type BlockchainStatusJson = Jsonify;
export declare function blockchainStatusToJson(status: BlockchainStatus): BlockchainStatusJson;
export declare function blockchainStatusFromJson(json: BlockchainStatusJson): BlockchainStatus;
export interface BlockchainStatusSource {
getBlockchainStatus(): BlockchainStatus;
}
export {};
//# sourceMappingURL=blockchain_status.d.ts.map