@tevm/utils
Version:
A custom implementation of ethereumjs blockchain
115 lines (106 loc) • 6.91 kB
text/typescript
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 };