UNPKG

@tevm/utils

Version:

A custom implementation of ethereumjs blockchain

115 lines (106 loc) 6.91 kB
import { DBObject, DB } from '@ethereumjs/util'; export { AddressLike, AsyncEventEmitter, BatchDBOp as BatchDbOp, BigIntLike, BytesLike, DB as Db, DBObject as DbObject, EncodingOpts, Account as EthjsAccount, Address as EthjsAddress, GWEI_TO_WEI, GenesisState, JsonRpcWithdrawal, KECCAK256_RLP, KECCAK256_RLP_ARRAY, KeyEncoding, TypeOutput, ValueEncoding, Withdrawal, WithdrawalData, bytesToUnprefixedHex, bytesToUtf8, concatBytes, ecrecover, ecsign, equalsBytes, fetchFromProvider, getProvider, randomBytes, setLengthLeft, toType, zeros } from '@ethereumjs/util'; import { Hex } from 'viem'; export { Account, BlockNumber, BlockTag, ContractConstructorArgs, ContractFunctionName, CreateEventFilterParameters, DecodeFunctionResultReturnType, EncodeDeployDataParameters, EncodeFunctionDataParameters, Filter, GetEventArgs, HDAccount, Hex } from 'viem'; export { Abi, AbiConstructor, AbiEvent, AbiFunction, AbiItemType, AbiParametersToPrimitiveTypes, Address, ExtractAbiEvent, ExtractAbiEventNames, ExtractAbiEvents, ExtractAbiFunction, ExtractAbiFunctionNames, FormatAbi, ParseAbi, formatAbi, parseAbi } from 'abitype'; import { PrivateKeyAccount } from 'viem/accounts'; export { mnemonicToAccount } from 'viem/accounts'; export { EncodeEventTopicsParameters, boolToBytes, boolToHex, bytesToBigInt, bytesToBigint, bytesToBool, bytesToHex, bytesToNumber, decodeAbiParameters, decodeErrorResult, decodeEventLog, decodeFunctionData, decodeFunctionResult, encodeAbiParameters, encodeDeployData, encodeErrorResult, encodeEventTopics, encodeFunctionData, encodeFunctionResult, encodePacked, formatEther, formatGwei, formatLog, fromBytes, fromHex, fromRlp, getAddress, hexToBigInt, hexToBool, hexToBytes, hexToNumber, hexToString, isAddress, isBytes, isHex, keccak256, numberToHex, parseEther, parseGwei, serializeTransaction, stringToHex, toBytes, toHex, toRlp } from 'viem/utils'; export { Log as EthjsLog } from '@ethereumjs/evm'; type MemoryDb<TKey extends string | number | Uint8Array = Uint8Array, TValue extends string | Uint8Array | Uint8Array | string | DBObject = Uint8Array> = DB<TKey, TValue>; type CreateMemoryDbFn<TKey extends string | number | Uint8Array = Uint8Array, TValue extends string | Uint8Array | Uint8Array | string | DBObject = Uint8Array> = (initialDb?: Map<TKey, TValue>) => MemoryDb<TKey, TValue>; /** * @internal * A simple ethereumjs DB instance that uses an in memory Map as it's backend * Pass in an initial DB optionally to prepoulate the DB. * @type {import('./CreateMemoryDbFn.js').CreateMemoryDbFn} * @throws {never} */ declare const createMemoryDb: CreateMemoryDbFn; declare const PREFUNDED_PRIVATE_KEYS: readonly ["0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80", "0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d", "0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a", "0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6", "0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a", "0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba", "0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e", "0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356", "0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97", "0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6"]; declare const PREFUNDED_PUBLIC_KEYS: readonly ["0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC", "0x90F79bf6EB2c4f870365E785982E1f101E93b906", "0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65", "0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc", "0x976EA74026E726554dB657fA54763abd0C3a0aa9", "0x14dC79964da2C08b23698B3D3cc7Ca32193d9955", "0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f", "0xa0Ee7A142d267C1f36714E4a8F75612F20a79720"]; declare const PREFUNDED_ACCOUNTS: [ PrivateKeyAccount, PrivateKeyAccount, PrivateKeyAccount, PrivateKeyAccount, PrivateKeyAccount, PrivateKeyAccount, PrivateKeyAccount, PrivateKeyAccount, PrivateKeyAccount, PrivateKeyAccount ]; declare const PREFUNDED_SEED: Readonly<{ mnemonic: "test test test test test test test test test test test junk"; derivationPath: "m/44'/60'/0'/0/"; }>; /** * A simple Bloom filter implementation originally from ethereumjs */ declare class Bloom { bitvector: Uint8Array; /** * Represents a Bloom filter. * @throws {InvalidBytesSizeError} If the byte size of the bitvector is not 256. */ constructor(bitvector?: Uint8Array); /** * Adds an element to a bit vector of a 64 byte bloom filter. * @param e - The element to add * @throws {never} */ add(e: Uint8Array): void; /** * Checks if an element is in the bloom. * @param e - The element to check * @throws {never} */ check(e: Uint8Array): boolean; /** * Checks if multiple topics are in a bloom. * @returns `true` if every topic is in the bloom * @throws {never} */ multiCheck(topics: Uint8Array[]): boolean; /** * Bitwise or blooms together. * @throws {never} */ or(bloom: Bloom): void; } /** * A type that represents a JSON-serializable value. */ type JsonSerializable = bigint | string | number | boolean | null | JsonSerializableArray | JsonSerializableObject | JsonSerializableSet; /** * A type that represents a JSON-serializable array. */ type JsonSerializableArray = ReadonlyArray<JsonSerializable>; /** * A type that represents a JSON-serializable object. */ type JsonSerializableObject = { [key: string]: JsonSerializable; }; /** * A type that represents a JSON-serializable set. */ type JsonSerializableSet<T extends bigint | string | number | boolean = bigint | string | number | boolean> = Set<T>; /** * A helper type that converts a bigint to a hex string. */ type BigIntToHex<T> = T extends bigint ? Hex : T; /** * A helper type that converts a set to a hex string. */ type SetToHex<T> = T extends Set<any> ? Hex : T; /** * A helper type that converts a widened JSON-serializable value to a JSON-serializable value. * It replaces bigint with hex strings and sets with arrays. */ type SerializeToJson<T> = T extends JsonSerializableSet<infer S> ? ReadonlyArray<S> : T extends JsonSerializableObject ? { [P in keyof T]: SerializeToJson<T[P]>; } : T extends JsonSerializableArray ? SerializeToJson<T[number]>[] : BigIntToHex<SetToHex<T>>; declare function invariant(condition: any, error?: Error): asserts condition; export { type BigIntToHex, Bloom, type CreateMemoryDbFn, type JsonSerializable, type JsonSerializableArray, type JsonSerializableObject, type JsonSerializableSet, type MemoryDb, PREFUNDED_ACCOUNTS, PREFUNDED_PRIVATE_KEYS, PREFUNDED_PUBLIC_KEYS, PREFUNDED_SEED, type SerializeToJson, type SetToHex, createMemoryDb, invariant };