🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@ethereumjs/util

Package Overview
Dependencies
Maintainers
4
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ethereumjs/util - npm Package Compare versions

Comparing version
10.0.0-alpha.1
to
10.0.0-rc.1
+148
dist/cjs/binaryTree.d.ts
import type { Account } from './account.ts';
import type { Address } from './address.ts';
import type { PrefixedHexString } from './types.ts';
/**
* @dev Returns the 31-bytes binary tree stem for a given address and tree index.
* @param hashFunction The hashFunction for the binary tree
* @param {Address} address The address to generate the tree key for.
* @param treeIndex The index of the tree to generate the key for. Defaults to 0.
* @return The 31-bytes binary tree stem as a Uint8Array.
*/
export declare function getBinaryTreeStem(hashFunction: (value: Uint8Array) => Uint8Array, address: Address, treeIndex?: number | bigint): Uint8Array;
export interface BinaryTreeStateDiff {
stem: PrefixedHexString;
suffixDiffs: {
currentValue: PrefixedHexString | null;
newValue: PrefixedHexString | null;
suffix: number | string;
}[];
}
export type BinaryTreeProof = any;
/**
* Experimental, object format could eventual change.
* An object that provides the state and proof necessary for binary tree stateless execution
* */
export interface BinaryTreeExecutionWitness {
/**
* The stateRoot of the parent block
*/
parentStateRoot: PrefixedHexString;
/**
* An array of state diffs.
* Each item corresponding to state accesses or state modifications of the block.
* In the current design, it also contains the resulting state of the block execution (post-state).
*/
stateDiff: BinaryTreeStateDiff[];
/**
* The proof for the block.
* Proves that the provided stateDiff belongs to the canonical binary tree.
*/
proof: any;
}
export type BinaryTreeLeafType = (typeof BinaryTreeLeafType)[keyof typeof BinaryTreeLeafType];
export declare const BinaryTreeLeafType: {
readonly BasicData: 0;
readonly CodeHash: 1;
};
export type BinaryTreeLeafBasicData = {
version: number;
nonce: bigint;
balance: bigint;
codeSize: number;
};
export declare const BINARY_TREE_VERSION_OFFSET = 0;
export declare const BINARY_TREE_CODE_SIZE_OFFSET = 5;
export declare const BINARY_TREE_NONCE_OFFSET = 8;
export declare const BINARY_TREE_BALANCE_OFFSET = 16;
export declare const BINARY_TREE_VERSION_BYTES_LENGTH = 1;
export declare const BINARY_TREE_CODE_SIZE_BYTES_LENGTH = 3;
export declare const BINARY_TREE_NONCE_BYTES_LENGTH = 8;
export declare const BINARY_TREE_BALANCE_BYTES_LENGTH = 16;
export declare const BINARY_TREE_BASIC_DATA_LEAF_KEY: Uint8Array<ArrayBufferLike>;
export declare const BINARY_TREE_CODE_HASH_LEAF_KEY: Uint8Array<ArrayBufferLike>;
export declare const BINARY_TREE_CODE_CHUNK_SIZE = 31;
export declare const BINARY_TREE_HEADER_STORAGE_OFFSET = 64;
export declare const BINARY_TREE_CODE_OFFSET = 128;
export declare const BINARY_TREE_NODE_WIDTH = 256;
export declare const BINARY_TREE_MAIN_STORAGE_OFFSET: bigint;
/**
* @dev Returns the tree key for a given binary tree stem, and sub index.
* @dev Assumes that the tree node width = 256
* @param stem The 31-bytes binary tree stem as a Uint8Array.
* @param subIndex The sub index of the tree to generate the key for as a Uint8Array.
* @return The tree key as a Uint8Array.
*/
export declare const getBinaryTreeKey: (stem: Uint8Array, leaf: BinaryTreeLeafType | Uint8Array) => Uint8Array<ArrayBufferLike>;
/**
* Calculates the position of the storage key in the BinaryTree tree, determining
* both the tree index (the node in the tree) and the subindex (the position within the node).
* @param {bigint} storageKey - The key representing a specific storage slot.
* @returns {Object} - An object containing the tree index and subindex
*/
export declare function getBinaryTreeIndicesForStorageSlot(storageKey: bigint): {
treeIndex: bigint;
subIndex: number;
};
/**
* Calculates the position of the code chunks in the BinaryTree tree, determining
* both the tree index (the node in the tree) and the subindex (the position within the node).
* @param {bigint} chunkId - The ID representing a specific chunk.
* @returns {Object} - An object containing the tree index and subindex
*/
export declare function getBinaryTreeIndicesForCodeChunk(chunkId: number): {
treeIndex: number;
subIndex: number;
};
/**
* Asynchronously calculates the BinaryTree tree key for the specified code chunk ID.
* @param {Address} address - The account address to access code for.
* @param {number} chunkId - The ID of the code chunk to retrieve.
* @param hashFunction - The hash function used for BinaryTree-related operations.
* @returns {Uint8Array} - The BinaryTree tree key as a byte array.
*/
export declare const getBinaryTreeKeyForCodeChunk: (address: Address, chunkId: number, hashFunction: (input: Uint8Array) => Uint8Array) => Uint8Array<ArrayBufferLike>;
export declare const chunkifyBinaryTreeCode: (code: Uint8Array) => Uint8Array<ArrayBufferLike>[];
/**
* Asynchronously calculates the BinaryTree tree key for the specified storage slot.
* @param {Address} address - The account address to access code for.
* @param {bigint} storageKey - The storage slot key to retrieve the key for.
* @param hashFunction - The hash function used in the Binary Tree.
* @returns {Uint8Array} - The BinaryTree tree key as a byte array.
*/
export declare const getBinaryTreeKeyForStorageSlot: (address: Address, storageKey: bigint, hashFunction: (input: Uint8Array) => Uint8Array) => Uint8Array<ArrayBufferLike>;
/**
* This function extracts and decodes account header elements (version, nonce, code size, and balance)
* from an encoded `Uint8Array` representation of raw BinaryTree leaf-node basic data. Each component is sliced
* from the `encodedBasicData` array based on predefined offsets and lengths, and then converted
* to its appropriate type (integer or BigInt).
* @param {Uint8Array} encodedBasicData - The encoded BinaryTree leaf basic data containing the version, nonce,
* code size, and balance in a compact Uint8Array format.
* @returns {BinaryTreeLeafBasicData} - An object containing the decoded version, nonce, code size, and balance.
*/
export declare function decodeBinaryTreeLeafBasicData(encodedBasicData: Uint8Array): BinaryTreeLeafBasicData;
/**
* This function takes a `BinaryTreeLeafBasicData` object and encodes its properties
* (version, nonce, code size, and balance) into a compact `Uint8Array` format. Each
* property is serialized and padded to match the required byte lengths defined by
* EIP-7864. Additionally, 4 bytes are reserved for future use as specified
* in EIP-7864.
* @param {Account} account - An object containing the version, nonce,
* code size, and balance to be encoded.
* @returns {Uint8Array} - A compact bytes representation of the account header basic data.
*/
export declare function encodeBinaryTreeLeafBasicData(account: Account): Uint8Array;
/**
* Helper method to generate the suffixes for code chunks for putting code
* @param numChunks number of chunks to generate suffixes for
* @returns number[] - an array of numbers corresponding to the code chunks being put
*/
export declare const generateBinaryTreeChunkSuffixes: (numChunks: number) => number[];
/**
* Helper method for generating the code stems necessary for putting code
* @param numChunks the number of code chunks to be put
* @param address the address of the account getting the code
* @param hashFunction an initialized {@link BinaryTreeCrypto} object
* @returns an array of stems for putting code
*/
export declare function generateBinaryTreeCodeStems(numChunks: number, address: Address, hashFunction: (input: Uint8Array) => Uint8Array): Uint8Array[];
//# sourceMappingURL=binaryTree.d.ts.map
{"version":3,"file":"binaryTree.d.ts","sourceRoot":"","sources":["../../src/binaryTree.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,UAAU,EAC/C,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAM,GAAG,MAAU,GAC7B,UAAU,CAaZ;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAA;IACvB,WAAW,EAAE;QACX,YAAY,EAAE,iBAAiB,GAAG,IAAI,CAAA;QACtC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;QAClC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KACxB,EAAE,CAAA;CACJ;AAGD,MAAM,MAAM,eAAe,GAAG,GAAG,CAAA;AAEjC;;;KAGK;AACL,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,eAAe,EAAE,iBAAiB,CAAA;IAClC;;;;OAIG;IACH,SAAS,EAAE,mBAAmB,EAAE,CAAA;IAChC;;;OAGG;IACH,KAAK,EAAE,GAAG,CAAA;CACX;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAA;AAE7F,eAAO,MAAM,kBAAkB;;;CAGrB,CAAA;AAEV,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,0BAA0B,IAAI,CAAA;AAC3C,eAAO,MAAM,4BAA4B,IAAI,CAAA;AAC7C,eAAO,MAAM,wBAAwB,IAAI,CAAA;AACzC,eAAO,MAAM,0BAA0B,KAAK,CAAA;AAE5C,eAAO,MAAM,gCAAgC,IAAI,CAAA;AACjD,eAAO,MAAM,kCAAkC,IAAI,CAAA;AACnD,eAAO,MAAM,8BAA8B,IAAI,CAAA;AAC/C,eAAO,MAAM,gCAAgC,KAAK,CAAA;AAElD,eAAO,MAAM,+BAA+B,6BAA2C,CAAA;AACvF,eAAO,MAAM,8BAA8B,6BAA0C,CAAA;AAErF,eAAO,MAAM,2BAA2B,KAAK,CAAA;AAC7C,eAAO,MAAM,iCAAiC,KAAK,CAAA;AACnD,eAAO,MAAM,uBAAuB,MAAM,CAAA;AAC1C,eAAO,MAAM,sBAAsB,MAAM,CAAA;AACzC,eAAO,MAAM,+BAA+B,QAAqD,CAAA;AAEjG;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,UAAU,EAAE,MAAM,kBAAkB,GAAG,UAAU,gCASvF,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,UAAU,EAAE,MAAM,GAAG;IACtE,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAYA;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM;;;EAI/D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,GACvC,SAAS,OAAO,EAChB,SAAS,MAAM,EACf,cAAc,CAAC,KAAK,EAAE,UAAU,KAAK,UAAU,gCAIhD,CAAA;AAGD,eAAO,MAAM,sBAAsB,GAAI,MAAM,UAAU,kCAsCtD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,GACzC,SAAS,OAAO,EAChB,YAAY,MAAM,EAClB,cAAc,CAAC,KAAK,EAAE,UAAU,KAAK,UAAU,gCAKhD,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,UAAU,GAC3B,uBAAuB,CAqBzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAiB1E;AAED;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,GAAI,WAAW,MAAM,aAYhE,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,UAAU,GAC9C,UAAU,EAAE,CAwBd"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateBinaryTreeChunkSuffixes = exports.getBinaryTreeKeyForStorageSlot = exports.chunkifyBinaryTreeCode = exports.getBinaryTreeKeyForCodeChunk = exports.getBinaryTreeKey = exports.BINARY_TREE_MAIN_STORAGE_OFFSET = exports.BINARY_TREE_NODE_WIDTH = exports.BINARY_TREE_CODE_OFFSET = exports.BINARY_TREE_HEADER_STORAGE_OFFSET = exports.BINARY_TREE_CODE_CHUNK_SIZE = exports.BINARY_TREE_CODE_HASH_LEAF_KEY = exports.BINARY_TREE_BASIC_DATA_LEAF_KEY = exports.BINARY_TREE_BALANCE_BYTES_LENGTH = exports.BINARY_TREE_NONCE_BYTES_LENGTH = exports.BINARY_TREE_CODE_SIZE_BYTES_LENGTH = exports.BINARY_TREE_VERSION_BYTES_LENGTH = exports.BINARY_TREE_BALANCE_OFFSET = exports.BINARY_TREE_NONCE_OFFSET = exports.BINARY_TREE_CODE_SIZE_OFFSET = exports.BINARY_TREE_VERSION_OFFSET = exports.BinaryTreeLeafType = void 0;
exports.getBinaryTreeStem = getBinaryTreeStem;
exports.getBinaryTreeIndicesForStorageSlot = getBinaryTreeIndicesForStorageSlot;
exports.getBinaryTreeIndicesForCodeChunk = getBinaryTreeIndicesForCodeChunk;
exports.decodeBinaryTreeLeafBasicData = decodeBinaryTreeLeafBasicData;
exports.encodeBinaryTreeLeafBasicData = encodeBinaryTreeLeafBasicData;
exports.generateBinaryTreeCodeStems = generateBinaryTreeCodeStems;
const bytes_ts_1 = require("./bytes.js");
/**
* @dev Returns the 31-bytes binary tree stem for a given address and tree index.
* @param hashFunction The hashFunction for the binary tree
* @param {Address} address The address to generate the tree key for.
* @param treeIndex The index of the tree to generate the key for. Defaults to 0.
* @return The 31-bytes binary tree stem as a Uint8Array.
*/
function getBinaryTreeStem(hashFunction, address, treeIndex = 0) {
const address32 = (0, bytes_ts_1.setLengthLeft)(address.toBytes(), 32);
let treeIndexBytes;
if (typeof treeIndex === 'number') {
treeIndexBytes = (0, bytes_ts_1.setLengthRight)((0, bytes_ts_1.int32ToBytes)(Number(treeIndex), true), 32);
}
else {
treeIndexBytes = (0, bytes_ts_1.setLengthRight)((0, bytes_ts_1.bigIntToBytes)(BigInt(treeIndex), true).slice(0, 32), 32);
}
const treeStem = hashFunction((0, bytes_ts_1.concatBytes)(address32, treeIndexBytes)).slice(0, 31);
return treeStem;
}
exports.BinaryTreeLeafType = {
BasicData: 0,
CodeHash: 1,
};
exports.BINARY_TREE_VERSION_OFFSET = 0;
exports.BINARY_TREE_CODE_SIZE_OFFSET = 5;
exports.BINARY_TREE_NONCE_OFFSET = 8;
exports.BINARY_TREE_BALANCE_OFFSET = 16;
exports.BINARY_TREE_VERSION_BYTES_LENGTH = 1;
exports.BINARY_TREE_CODE_SIZE_BYTES_LENGTH = 3;
exports.BINARY_TREE_NONCE_BYTES_LENGTH = 8;
exports.BINARY_TREE_BALANCE_BYTES_LENGTH = 16;
exports.BINARY_TREE_BASIC_DATA_LEAF_KEY = (0, bytes_ts_1.intToBytes)(exports.BinaryTreeLeafType.BasicData);
exports.BINARY_TREE_CODE_HASH_LEAF_KEY = (0, bytes_ts_1.intToBytes)(exports.BinaryTreeLeafType.CodeHash);
exports.BINARY_TREE_CODE_CHUNK_SIZE = 31;
exports.BINARY_TREE_HEADER_STORAGE_OFFSET = 64;
exports.BINARY_TREE_CODE_OFFSET = 128;
exports.BINARY_TREE_NODE_WIDTH = 256;
exports.BINARY_TREE_MAIN_STORAGE_OFFSET = BigInt(256) ** BigInt(exports.BINARY_TREE_CODE_CHUNK_SIZE);
/**
* @dev Returns the tree key for a given binary tree stem, and sub index.
* @dev Assumes that the tree node width = 256
* @param stem The 31-bytes binary tree stem as a Uint8Array.
* @param subIndex The sub index of the tree to generate the key for as a Uint8Array.
* @return The tree key as a Uint8Array.
*/
const getBinaryTreeKey = (stem, leaf) => {
switch (leaf) {
case exports.BinaryTreeLeafType.BasicData:
return (0, bytes_ts_1.concatBytes)(stem, exports.BINARY_TREE_BASIC_DATA_LEAF_KEY);
case exports.BinaryTreeLeafType.CodeHash:
return (0, bytes_ts_1.concatBytes)(stem, exports.BINARY_TREE_CODE_HASH_LEAF_KEY);
default:
return (0, bytes_ts_1.concatBytes)(stem, leaf);
}
};
exports.getBinaryTreeKey = getBinaryTreeKey;
/**
* Calculates the position of the storage key in the BinaryTree tree, determining
* both the tree index (the node in the tree) and the subindex (the position within the node).
* @param {bigint} storageKey - The key representing a specific storage slot.
* @returns {Object} - An object containing the tree index and subindex
*/
function getBinaryTreeIndicesForStorageSlot(storageKey) {
let position;
if (storageKey < exports.BINARY_TREE_CODE_OFFSET - exports.BINARY_TREE_HEADER_STORAGE_OFFSET) {
position = BigInt(exports.BINARY_TREE_HEADER_STORAGE_OFFSET) + storageKey;
}
else {
position = exports.BINARY_TREE_MAIN_STORAGE_OFFSET + storageKey;
}
const treeIndex = position / BigInt(exports.BINARY_TREE_NODE_WIDTH);
const subIndex = Number(position % BigInt(exports.BINARY_TREE_NODE_WIDTH));
return { treeIndex, subIndex };
}
/**
* Calculates the position of the code chunks in the BinaryTree tree, determining
* both the tree index (the node in the tree) and the subindex (the position within the node).
* @param {bigint} chunkId - The ID representing a specific chunk.
* @returns {Object} - An object containing the tree index and subindex
*/
function getBinaryTreeIndicesForCodeChunk(chunkId) {
const treeIndex = Math.floor((exports.BINARY_TREE_CODE_OFFSET + chunkId) / exports.BINARY_TREE_NODE_WIDTH);
const subIndex = (exports.BINARY_TREE_CODE_OFFSET + chunkId) % exports.BINARY_TREE_NODE_WIDTH;
return { treeIndex, subIndex };
}
/**
* Asynchronously calculates the BinaryTree tree key for the specified code chunk ID.
* @param {Address} address - The account address to access code for.
* @param {number} chunkId - The ID of the code chunk to retrieve.
* @param hashFunction - The hash function used for BinaryTree-related operations.
* @returns {Uint8Array} - The BinaryTree tree key as a byte array.
*/
const getBinaryTreeKeyForCodeChunk = (address, chunkId, hashFunction) => {
const { treeIndex, subIndex } = getBinaryTreeIndicesForCodeChunk(chunkId);
return (0, bytes_ts_1.concatBytes)(getBinaryTreeStem(hashFunction, address, treeIndex), (0, bytes_ts_1.toBytes)(subIndex));
};
exports.getBinaryTreeKeyForCodeChunk = getBinaryTreeKeyForCodeChunk;
// This code was written by robots based on the reference implementation in EIP-7864
const chunkifyBinaryTreeCode = (code) => {
const PUSH1 = 0x60; // Assuming PUSH1 is defined as 0x60
const PUSH32 = 0x7f; // Assuming PUSH32 is defined as 0x7f
const PUSH_OFFSET = 0x5f; // Assuming PUSH_OFFSET is defined as 0x5f
// Calculate padding length
const paddingLength = (31 - (code.length % 31)) % 31;
const paddedCode = new Uint8Array(code.length + paddingLength);
paddedCode.set(code);
// Pre-allocate the bytesToExecData array
const bytesToExecData = new Uint8Array(paddedCode.length + 32);
let pos = 0;
while (pos < paddedCode.length) {
let pushdataBytes = 0;
if (PUSH1 <= paddedCode[pos] && paddedCode[pos] <= PUSH32) {
pushdataBytes = paddedCode[pos] - PUSH_OFFSET;
}
pos += 1;
for (let x = 0; x < pushdataBytes; x++) {
bytesToExecData[pos + x] = pushdataBytes - x;
}
pos += pushdataBytes;
}
// Pre-allocate the chunks array
const numChunks = Math.ceil(paddedCode.length / 31);
const chunks = new Array(numChunks);
for (let i = 0, pos = 0; i < numChunks; i++, pos += 31) {
const chunk = new Uint8Array(32);
chunk[0] = Math.min(bytesToExecData[pos], 31);
chunk.set(paddedCode.subarray(pos, pos + 31), 1);
chunks[i] = chunk;
}
return chunks;
};
exports.chunkifyBinaryTreeCode = chunkifyBinaryTreeCode;
/**
* Asynchronously calculates the BinaryTree tree key for the specified storage slot.
* @param {Address} address - The account address to access code for.
* @param {bigint} storageKey - The storage slot key to retrieve the key for.
* @param hashFunction - The hash function used in the Binary Tree.
* @returns {Uint8Array} - The BinaryTree tree key as a byte array.
*/
const getBinaryTreeKeyForStorageSlot = (address, storageKey, hashFunction) => {
const { treeIndex, subIndex } = getBinaryTreeIndicesForStorageSlot(storageKey);
return (0, bytes_ts_1.concatBytes)(getBinaryTreeStem(hashFunction, address, treeIndex), (0, bytes_ts_1.intToBytes)(subIndex));
};
exports.getBinaryTreeKeyForStorageSlot = getBinaryTreeKeyForStorageSlot;
/**
* This function extracts and decodes account header elements (version, nonce, code size, and balance)
* from an encoded `Uint8Array` representation of raw BinaryTree leaf-node basic data. Each component is sliced
* from the `encodedBasicData` array based on predefined offsets and lengths, and then converted
* to its appropriate type (integer or BigInt).
* @param {Uint8Array} encodedBasicData - The encoded BinaryTree leaf basic data containing the version, nonce,
* code size, and balance in a compact Uint8Array format.
* @returns {BinaryTreeLeafBasicData} - An object containing the decoded version, nonce, code size, and balance.
*/
function decodeBinaryTreeLeafBasicData(encodedBasicData) {
const versionBytes = encodedBasicData.slice(0, exports.BINARY_TREE_VERSION_BYTES_LENGTH);
const nonceBytes = encodedBasicData.slice(exports.BINARY_TREE_NONCE_OFFSET, exports.BINARY_TREE_NONCE_OFFSET + exports.BINARY_TREE_NONCE_BYTES_LENGTH);
const codeSizeBytes = encodedBasicData.slice(exports.BINARY_TREE_CODE_SIZE_OFFSET, exports.BINARY_TREE_CODE_SIZE_OFFSET + exports.BINARY_TREE_CODE_SIZE_BYTES_LENGTH);
const balanceBytes = encodedBasicData.slice(exports.BINARY_TREE_BALANCE_OFFSET, exports.BINARY_TREE_BALANCE_OFFSET + exports.BINARY_TREE_BALANCE_BYTES_LENGTH);
const version = (0, bytes_ts_1.bytesToInt32)(versionBytes);
const nonce = (0, bytes_ts_1.bytesToBigInt)(nonceBytes);
const codeSize = (0, bytes_ts_1.bytesToInt32)(codeSizeBytes);
const balance = (0, bytes_ts_1.bytesToBigInt)(balanceBytes);
return { version, nonce, codeSize, balance };
}
/**
* This function takes a `BinaryTreeLeafBasicData` object and encodes its properties
* (version, nonce, code size, and balance) into a compact `Uint8Array` format. Each
* property is serialized and padded to match the required byte lengths defined by
* EIP-7864. Additionally, 4 bytes are reserved for future use as specified
* in EIP-7864.
* @param {Account} account - An object containing the version, nonce,
* code size, and balance to be encoded.
* @returns {Uint8Array} - A compact bytes representation of the account header basic data.
*/
function encodeBinaryTreeLeafBasicData(account) {
const encodedVersion = (0, bytes_ts_1.setLengthLeft)((0, bytes_ts_1.int32ToBytes)(account.version), exports.BINARY_TREE_VERSION_BYTES_LENGTH);
// Per EIP-7864, bytes 1-4 are reserved for future use
const reservedBytes = new Uint8Array([0, 0, 0, 0]);
const encodedNonce = (0, bytes_ts_1.setLengthLeft)((0, bytes_ts_1.bigIntToBytes)(account.nonce), exports.BINARY_TREE_NONCE_BYTES_LENGTH);
const encodedCodeSize = (0, bytes_ts_1.setLengthLeft)((0, bytes_ts_1.int32ToBytes)(account.codeSize), exports.BINARY_TREE_CODE_SIZE_BYTES_LENGTH);
const encodedBalance = (0, bytes_ts_1.setLengthLeft)((0, bytes_ts_1.bigIntToBytes)(account.balance), exports.BINARY_TREE_BALANCE_BYTES_LENGTH);
return (0, bytes_ts_1.concatBytes)(encodedVersion, reservedBytes, encodedCodeSize, encodedNonce, encodedBalance);
}
/**
* Helper method to generate the suffixes for code chunks for putting code
* @param numChunks number of chunks to generate suffixes for
* @returns number[] - an array of numbers corresponding to the code chunks being put
*/
const generateBinaryTreeChunkSuffixes = (numChunks) => {
if (numChunks === 0)
return [];
const chunkSuffixes = new Array(numChunks);
let currentSuffix = exports.BINARY_TREE_CODE_OFFSET;
for (let x = 0; x < numChunks; x++) {
chunkSuffixes[x] = currentSuffix;
currentSuffix++;
// Reset suffix to 0 if exceeds BINARY_TREE_NODE_WIDTH
if (currentSuffix >= exports.BINARY_TREE_NODE_WIDTH)
currentSuffix = 0;
}
return chunkSuffixes;
};
exports.generateBinaryTreeChunkSuffixes = generateBinaryTreeChunkSuffixes;
/**
* Helper method for generating the code stems necessary for putting code
* @param numChunks the number of code chunks to be put
* @param address the address of the account getting the code
* @param hashFunction an initialized {@link BinaryTreeCrypto} object
* @returns an array of stems for putting code
*/
function generateBinaryTreeCodeStems(numChunks, address, hashFunction) {
// The maximum number of chunks is 793 (maxCodeSize - 24576) / (bytes per chunk 31) + (round up - 1)
// Code is stored in chunks starting at leaf index 128 of the leaf node corresponding to the stem of the code's address
// Code chunks beyond the initial 128 are stored in additional leaf nodes in batches up of up to 256 chunks per leaf node
// so the maximum number of leaf nodes that can hold contract code for a specific address is 4 leaf nodes (128 chunks in
// the first leaf node and 256 chunks in up to 3 additional leaf nodes)
// So, instead of computing every single leaf key (which is a heavy operation), we just compute the stem for the first
// chunk in each leaf node and can then know that the chunks in between have tree keys in monotonically increasing order
const numStems = numChunks > exports.BINARY_TREE_CODE_OFFSET ? Math.ceil(numChunks / exports.BINARY_TREE_NODE_WIDTH) + 1 : 1;
const chunkStems = new Array(numStems);
// Compute the stem for the initial set of code chunks
chunkStems[0] = (0, exports.getBinaryTreeKeyForCodeChunk)(address, 0, hashFunction).slice(0, 31);
for (let stemNum = 0; stemNum < numStems - 1; stemNum++) {
// Generate additional stems
const firstChunkKey = (0, exports.getBinaryTreeKeyForCodeChunk)(address, exports.BINARY_TREE_CODE_OFFSET + stemNum * exports.BINARY_TREE_NODE_WIDTH, hashFunction);
chunkStems[stemNum + 1] = firstChunkKey.slice(0, 31);
}
return chunkStems;
}
//# sourceMappingURL=binaryTree.js.map
{"version":3,"file":"binaryTree.js","sourceRoot":"","sources":["../../src/binaryTree.ts"],"names":[],"mappings":"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"}
import { DEFAULT_ERROR_CODE, EthereumJSError, type EthereumJSErrorMetaData, type EthereumJSErrorObject, EthereumJSErrorWithoutCode } from '@ethereumjs/rlp';
export { DEFAULT_ERROR_CODE, EthereumJSError, EthereumJSErrorWithoutCode, type EthereumJSErrorMetaData, type EthereumJSErrorObject, };
//# sourceMappingURL=errors.d.ts.map
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,0BAA0B,EAC3B,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,CAAA"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EthereumJSErrorWithoutCode = exports.EthereumJSError = exports.DEFAULT_ERROR_CODE = void 0;
const rlp_1 = require("@ethereumjs/rlp");
Object.defineProperty(exports, "DEFAULT_ERROR_CODE", { enumerable: true, get: function () { return rlp_1.DEFAULT_ERROR_CODE; } });
Object.defineProperty(exports, "EthereumJSError", { enumerable: true, get: function () { return rlp_1.EthereumJSError; } });
Object.defineProperty(exports, "EthereumJSErrorWithoutCode", { enumerable: true, get: function () { return rlp_1.EthereumJSErrorWithoutCode; } });
// Below here: specific monorepo-wide errors (examples and commented out)
/*export enum UsageErrorType {
UNSUPPORTED_FEATURE = 'unsupported feature',
}*
/**
* Error along API Usage
*
* Use directly or in a subclassed context for error comparison (`e instanceof UsageError`)
*/
//export class UsageError extends EthereumJSError<{ code: UsageErrorType }> {}
//# sourceMappingURL=errors.js.map
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAAA,yCAMwB;AAGtB,mGARA,wBAAkB,OAQA;AAClB,gGARA,qBAAe,OAQA;AACf,2GANA,gCAA0B,OAMA;AAK5B,yEAAyE;AAEzE;;;;;;;;GAQG;AACH,8EAA8E"}
import type { Account } from './account.ts';
import type { Address } from './address.ts';
import type { PrefixedHexString } from './types.ts';
/**
* @dev Returns the 31-bytes binary tree stem for a given address and tree index.
* @param hashFunction The hashFunction for the binary tree
* @param {Address} address The address to generate the tree key for.
* @param treeIndex The index of the tree to generate the key for. Defaults to 0.
* @return The 31-bytes binary tree stem as a Uint8Array.
*/
export declare function getBinaryTreeStem(hashFunction: (value: Uint8Array) => Uint8Array, address: Address, treeIndex?: number | bigint): Uint8Array;
export interface BinaryTreeStateDiff {
stem: PrefixedHexString;
suffixDiffs: {
currentValue: PrefixedHexString | null;
newValue: PrefixedHexString | null;
suffix: number | string;
}[];
}
export type BinaryTreeProof = any;
/**
* Experimental, object format could eventual change.
* An object that provides the state and proof necessary for binary tree stateless execution
* */
export interface BinaryTreeExecutionWitness {
/**
* The stateRoot of the parent block
*/
parentStateRoot: PrefixedHexString;
/**
* An array of state diffs.
* Each item corresponding to state accesses or state modifications of the block.
* In the current design, it also contains the resulting state of the block execution (post-state).
*/
stateDiff: BinaryTreeStateDiff[];
/**
* The proof for the block.
* Proves that the provided stateDiff belongs to the canonical binary tree.
*/
proof: any;
}
export type BinaryTreeLeafType = (typeof BinaryTreeLeafType)[keyof typeof BinaryTreeLeafType];
export declare const BinaryTreeLeafType: {
readonly BasicData: 0;
readonly CodeHash: 1;
};
export type BinaryTreeLeafBasicData = {
version: number;
nonce: bigint;
balance: bigint;
codeSize: number;
};
export declare const BINARY_TREE_VERSION_OFFSET = 0;
export declare const BINARY_TREE_CODE_SIZE_OFFSET = 5;
export declare const BINARY_TREE_NONCE_OFFSET = 8;
export declare const BINARY_TREE_BALANCE_OFFSET = 16;
export declare const BINARY_TREE_VERSION_BYTES_LENGTH = 1;
export declare const BINARY_TREE_CODE_SIZE_BYTES_LENGTH = 3;
export declare const BINARY_TREE_NONCE_BYTES_LENGTH = 8;
export declare const BINARY_TREE_BALANCE_BYTES_LENGTH = 16;
export declare const BINARY_TREE_BASIC_DATA_LEAF_KEY: Uint8Array<ArrayBufferLike>;
export declare const BINARY_TREE_CODE_HASH_LEAF_KEY: Uint8Array<ArrayBufferLike>;
export declare const BINARY_TREE_CODE_CHUNK_SIZE = 31;
export declare const BINARY_TREE_HEADER_STORAGE_OFFSET = 64;
export declare const BINARY_TREE_CODE_OFFSET = 128;
export declare const BINARY_TREE_NODE_WIDTH = 256;
export declare const BINARY_TREE_MAIN_STORAGE_OFFSET: bigint;
/**
* @dev Returns the tree key for a given binary tree stem, and sub index.
* @dev Assumes that the tree node width = 256
* @param stem The 31-bytes binary tree stem as a Uint8Array.
* @param subIndex The sub index of the tree to generate the key for as a Uint8Array.
* @return The tree key as a Uint8Array.
*/
export declare const getBinaryTreeKey: (stem: Uint8Array, leaf: BinaryTreeLeafType | Uint8Array) => Uint8Array<ArrayBufferLike>;
/**
* Calculates the position of the storage key in the BinaryTree tree, determining
* both the tree index (the node in the tree) and the subindex (the position within the node).
* @param {bigint} storageKey - The key representing a specific storage slot.
* @returns {Object} - An object containing the tree index and subindex
*/
export declare function getBinaryTreeIndicesForStorageSlot(storageKey: bigint): {
treeIndex: bigint;
subIndex: number;
};
/**
* Calculates the position of the code chunks in the BinaryTree tree, determining
* both the tree index (the node in the tree) and the subindex (the position within the node).
* @param {bigint} chunkId - The ID representing a specific chunk.
* @returns {Object} - An object containing the tree index and subindex
*/
export declare function getBinaryTreeIndicesForCodeChunk(chunkId: number): {
treeIndex: number;
subIndex: number;
};
/**
* Asynchronously calculates the BinaryTree tree key for the specified code chunk ID.
* @param {Address} address - The account address to access code for.
* @param {number} chunkId - The ID of the code chunk to retrieve.
* @param hashFunction - The hash function used for BinaryTree-related operations.
* @returns {Uint8Array} - The BinaryTree tree key as a byte array.
*/
export declare const getBinaryTreeKeyForCodeChunk: (address: Address, chunkId: number, hashFunction: (input: Uint8Array) => Uint8Array) => Uint8Array<ArrayBufferLike>;
export declare const chunkifyBinaryTreeCode: (code: Uint8Array) => Uint8Array<ArrayBufferLike>[];
/**
* Asynchronously calculates the BinaryTree tree key for the specified storage slot.
* @param {Address} address - The account address to access code for.
* @param {bigint} storageKey - The storage slot key to retrieve the key for.
* @param hashFunction - The hash function used in the Binary Tree.
* @returns {Uint8Array} - The BinaryTree tree key as a byte array.
*/
export declare const getBinaryTreeKeyForStorageSlot: (address: Address, storageKey: bigint, hashFunction: (input: Uint8Array) => Uint8Array) => Uint8Array<ArrayBufferLike>;
/**
* This function extracts and decodes account header elements (version, nonce, code size, and balance)
* from an encoded `Uint8Array` representation of raw BinaryTree leaf-node basic data. Each component is sliced
* from the `encodedBasicData` array based on predefined offsets and lengths, and then converted
* to its appropriate type (integer or BigInt).
* @param {Uint8Array} encodedBasicData - The encoded BinaryTree leaf basic data containing the version, nonce,
* code size, and balance in a compact Uint8Array format.
* @returns {BinaryTreeLeafBasicData} - An object containing the decoded version, nonce, code size, and balance.
*/
export declare function decodeBinaryTreeLeafBasicData(encodedBasicData: Uint8Array): BinaryTreeLeafBasicData;
/**
* This function takes a `BinaryTreeLeafBasicData` object and encodes its properties
* (version, nonce, code size, and balance) into a compact `Uint8Array` format. Each
* property is serialized and padded to match the required byte lengths defined by
* EIP-7864. Additionally, 4 bytes are reserved for future use as specified
* in EIP-7864.
* @param {Account} account - An object containing the version, nonce,
* code size, and balance to be encoded.
* @returns {Uint8Array} - A compact bytes representation of the account header basic data.
*/
export declare function encodeBinaryTreeLeafBasicData(account: Account): Uint8Array;
/**
* Helper method to generate the suffixes for code chunks for putting code
* @param numChunks number of chunks to generate suffixes for
* @returns number[] - an array of numbers corresponding to the code chunks being put
*/
export declare const generateBinaryTreeChunkSuffixes: (numChunks: number) => number[];
/**
* Helper method for generating the code stems necessary for putting code
* @param numChunks the number of code chunks to be put
* @param address the address of the account getting the code
* @param hashFunction an initialized {@link BinaryTreeCrypto} object
* @returns an array of stems for putting code
*/
export declare function generateBinaryTreeCodeStems(numChunks: number, address: Address, hashFunction: (input: Uint8Array) => Uint8Array): Uint8Array[];
//# sourceMappingURL=binaryTree.d.ts.map
{"version":3,"file":"binaryTree.d.ts","sourceRoot":"","sources":["../../src/binaryTree.ts"],"names":[],"mappings":"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"}
import { bigIntToBytes, bytesToBigInt, bytesToInt32, concatBytes, int32ToBytes, intToBytes, setLengthLeft, setLengthRight, toBytes, } from "./bytes.js";
/**
* @dev Returns the 31-bytes binary tree stem for a given address and tree index.
* @param hashFunction The hashFunction for the binary tree
* @param {Address} address The address to generate the tree key for.
* @param treeIndex The index of the tree to generate the key for. Defaults to 0.
* @return The 31-bytes binary tree stem as a Uint8Array.
*/
export function getBinaryTreeStem(hashFunction, address, treeIndex = 0) {
const address32 = setLengthLeft(address.toBytes(), 32);
let treeIndexBytes;
if (typeof treeIndex === 'number') {
treeIndexBytes = setLengthRight(int32ToBytes(Number(treeIndex), true), 32);
}
else {
treeIndexBytes = setLengthRight(bigIntToBytes(BigInt(treeIndex), true).slice(0, 32), 32);
}
const treeStem = hashFunction(concatBytes(address32, treeIndexBytes)).slice(0, 31);
return treeStem;
}
export const BinaryTreeLeafType = {
BasicData: 0,
CodeHash: 1,
};
export const BINARY_TREE_VERSION_OFFSET = 0;
export const BINARY_TREE_CODE_SIZE_OFFSET = 5;
export const BINARY_TREE_NONCE_OFFSET = 8;
export const BINARY_TREE_BALANCE_OFFSET = 16;
export const BINARY_TREE_VERSION_BYTES_LENGTH = 1;
export const BINARY_TREE_CODE_SIZE_BYTES_LENGTH = 3;
export const BINARY_TREE_NONCE_BYTES_LENGTH = 8;
export const BINARY_TREE_BALANCE_BYTES_LENGTH = 16;
export const BINARY_TREE_BASIC_DATA_LEAF_KEY = intToBytes(BinaryTreeLeafType.BasicData);
export const BINARY_TREE_CODE_HASH_LEAF_KEY = intToBytes(BinaryTreeLeafType.CodeHash);
export const BINARY_TREE_CODE_CHUNK_SIZE = 31;
export const BINARY_TREE_HEADER_STORAGE_OFFSET = 64;
export const BINARY_TREE_CODE_OFFSET = 128;
export const BINARY_TREE_NODE_WIDTH = 256;
export const BINARY_TREE_MAIN_STORAGE_OFFSET = BigInt(256) ** BigInt(BINARY_TREE_CODE_CHUNK_SIZE);
/**
* @dev Returns the tree key for a given binary tree stem, and sub index.
* @dev Assumes that the tree node width = 256
* @param stem The 31-bytes binary tree stem as a Uint8Array.
* @param subIndex The sub index of the tree to generate the key for as a Uint8Array.
* @return The tree key as a Uint8Array.
*/
export const getBinaryTreeKey = (stem, leaf) => {
switch (leaf) {
case BinaryTreeLeafType.BasicData:
return concatBytes(stem, BINARY_TREE_BASIC_DATA_LEAF_KEY);
case BinaryTreeLeafType.CodeHash:
return concatBytes(stem, BINARY_TREE_CODE_HASH_LEAF_KEY);
default:
return concatBytes(stem, leaf);
}
};
/**
* Calculates the position of the storage key in the BinaryTree tree, determining
* both the tree index (the node in the tree) and the subindex (the position within the node).
* @param {bigint} storageKey - The key representing a specific storage slot.
* @returns {Object} - An object containing the tree index and subindex
*/
export function getBinaryTreeIndicesForStorageSlot(storageKey) {
let position;
if (storageKey < BINARY_TREE_CODE_OFFSET - BINARY_TREE_HEADER_STORAGE_OFFSET) {
position = BigInt(BINARY_TREE_HEADER_STORAGE_OFFSET) + storageKey;
}
else {
position = BINARY_TREE_MAIN_STORAGE_OFFSET + storageKey;
}
const treeIndex = position / BigInt(BINARY_TREE_NODE_WIDTH);
const subIndex = Number(position % BigInt(BINARY_TREE_NODE_WIDTH));
return { treeIndex, subIndex };
}
/**
* Calculates the position of the code chunks in the BinaryTree tree, determining
* both the tree index (the node in the tree) and the subindex (the position within the node).
* @param {bigint} chunkId - The ID representing a specific chunk.
* @returns {Object} - An object containing the tree index and subindex
*/
export function getBinaryTreeIndicesForCodeChunk(chunkId) {
const treeIndex = Math.floor((BINARY_TREE_CODE_OFFSET + chunkId) / BINARY_TREE_NODE_WIDTH);
const subIndex = (BINARY_TREE_CODE_OFFSET + chunkId) % BINARY_TREE_NODE_WIDTH;
return { treeIndex, subIndex };
}
/**
* Asynchronously calculates the BinaryTree tree key for the specified code chunk ID.
* @param {Address} address - The account address to access code for.
* @param {number} chunkId - The ID of the code chunk to retrieve.
* @param hashFunction - The hash function used for BinaryTree-related operations.
* @returns {Uint8Array} - The BinaryTree tree key as a byte array.
*/
export const getBinaryTreeKeyForCodeChunk = (address, chunkId, hashFunction) => {
const { treeIndex, subIndex } = getBinaryTreeIndicesForCodeChunk(chunkId);
return concatBytes(getBinaryTreeStem(hashFunction, address, treeIndex), toBytes(subIndex));
};
// This code was written by robots based on the reference implementation in EIP-7864
export const chunkifyBinaryTreeCode = (code) => {
const PUSH1 = 0x60; // Assuming PUSH1 is defined as 0x60
const PUSH32 = 0x7f; // Assuming PUSH32 is defined as 0x7f
const PUSH_OFFSET = 0x5f; // Assuming PUSH_OFFSET is defined as 0x5f
// Calculate padding length
const paddingLength = (31 - (code.length % 31)) % 31;
const paddedCode = new Uint8Array(code.length + paddingLength);
paddedCode.set(code);
// Pre-allocate the bytesToExecData array
const bytesToExecData = new Uint8Array(paddedCode.length + 32);
let pos = 0;
while (pos < paddedCode.length) {
let pushdataBytes = 0;
if (PUSH1 <= paddedCode[pos] && paddedCode[pos] <= PUSH32) {
pushdataBytes = paddedCode[pos] - PUSH_OFFSET;
}
pos += 1;
for (let x = 0; x < pushdataBytes; x++) {
bytesToExecData[pos + x] = pushdataBytes - x;
}
pos += pushdataBytes;
}
// Pre-allocate the chunks array
const numChunks = Math.ceil(paddedCode.length / 31);
const chunks = new Array(numChunks);
for (let i = 0, pos = 0; i < numChunks; i++, pos += 31) {
const chunk = new Uint8Array(32);
chunk[0] = Math.min(bytesToExecData[pos], 31);
chunk.set(paddedCode.subarray(pos, pos + 31), 1);
chunks[i] = chunk;
}
return chunks;
};
/**
* Asynchronously calculates the BinaryTree tree key for the specified storage slot.
* @param {Address} address - The account address to access code for.
* @param {bigint} storageKey - The storage slot key to retrieve the key for.
* @param hashFunction - The hash function used in the Binary Tree.
* @returns {Uint8Array} - The BinaryTree tree key as a byte array.
*/
export const getBinaryTreeKeyForStorageSlot = (address, storageKey, hashFunction) => {
const { treeIndex, subIndex } = getBinaryTreeIndicesForStorageSlot(storageKey);
return concatBytes(getBinaryTreeStem(hashFunction, address, treeIndex), intToBytes(subIndex));
};
/**
* This function extracts and decodes account header elements (version, nonce, code size, and balance)
* from an encoded `Uint8Array` representation of raw BinaryTree leaf-node basic data. Each component is sliced
* from the `encodedBasicData` array based on predefined offsets and lengths, and then converted
* to its appropriate type (integer or BigInt).
* @param {Uint8Array} encodedBasicData - The encoded BinaryTree leaf basic data containing the version, nonce,
* code size, and balance in a compact Uint8Array format.
* @returns {BinaryTreeLeafBasicData} - An object containing the decoded version, nonce, code size, and balance.
*/
export function decodeBinaryTreeLeafBasicData(encodedBasicData) {
const versionBytes = encodedBasicData.slice(0, BINARY_TREE_VERSION_BYTES_LENGTH);
const nonceBytes = encodedBasicData.slice(BINARY_TREE_NONCE_OFFSET, BINARY_TREE_NONCE_OFFSET + BINARY_TREE_NONCE_BYTES_LENGTH);
const codeSizeBytes = encodedBasicData.slice(BINARY_TREE_CODE_SIZE_OFFSET, BINARY_TREE_CODE_SIZE_OFFSET + BINARY_TREE_CODE_SIZE_BYTES_LENGTH);
const balanceBytes = encodedBasicData.slice(BINARY_TREE_BALANCE_OFFSET, BINARY_TREE_BALANCE_OFFSET + BINARY_TREE_BALANCE_BYTES_LENGTH);
const version = bytesToInt32(versionBytes);
const nonce = bytesToBigInt(nonceBytes);
const codeSize = bytesToInt32(codeSizeBytes);
const balance = bytesToBigInt(balanceBytes);
return { version, nonce, codeSize, balance };
}
/**
* This function takes a `BinaryTreeLeafBasicData` object and encodes its properties
* (version, nonce, code size, and balance) into a compact `Uint8Array` format. Each
* property is serialized and padded to match the required byte lengths defined by
* EIP-7864. Additionally, 4 bytes are reserved for future use as specified
* in EIP-7864.
* @param {Account} account - An object containing the version, nonce,
* code size, and balance to be encoded.
* @returns {Uint8Array} - A compact bytes representation of the account header basic data.
*/
export function encodeBinaryTreeLeafBasicData(account) {
const encodedVersion = setLengthLeft(int32ToBytes(account.version), BINARY_TREE_VERSION_BYTES_LENGTH);
// Per EIP-7864, bytes 1-4 are reserved for future use
const reservedBytes = new Uint8Array([0, 0, 0, 0]);
const encodedNonce = setLengthLeft(bigIntToBytes(account.nonce), BINARY_TREE_NONCE_BYTES_LENGTH);
const encodedCodeSize = setLengthLeft(int32ToBytes(account.codeSize), BINARY_TREE_CODE_SIZE_BYTES_LENGTH);
const encodedBalance = setLengthLeft(bigIntToBytes(account.balance), BINARY_TREE_BALANCE_BYTES_LENGTH);
return concatBytes(encodedVersion, reservedBytes, encodedCodeSize, encodedNonce, encodedBalance);
}
/**
* Helper method to generate the suffixes for code chunks for putting code
* @param numChunks number of chunks to generate suffixes for
* @returns number[] - an array of numbers corresponding to the code chunks being put
*/
export const generateBinaryTreeChunkSuffixes = (numChunks) => {
if (numChunks === 0)
return [];
const chunkSuffixes = new Array(numChunks);
let currentSuffix = BINARY_TREE_CODE_OFFSET;
for (let x = 0; x < numChunks; x++) {
chunkSuffixes[x] = currentSuffix;
currentSuffix++;
// Reset suffix to 0 if exceeds BINARY_TREE_NODE_WIDTH
if (currentSuffix >= BINARY_TREE_NODE_WIDTH)
currentSuffix = 0;
}
return chunkSuffixes;
};
/**
* Helper method for generating the code stems necessary for putting code
* @param numChunks the number of code chunks to be put
* @param address the address of the account getting the code
* @param hashFunction an initialized {@link BinaryTreeCrypto} object
* @returns an array of stems for putting code
*/
export function generateBinaryTreeCodeStems(numChunks, address, hashFunction) {
// The maximum number of chunks is 793 (maxCodeSize - 24576) / (bytes per chunk 31) + (round up - 1)
// Code is stored in chunks starting at leaf index 128 of the leaf node corresponding to the stem of the code's address
// Code chunks beyond the initial 128 are stored in additional leaf nodes in batches up of up to 256 chunks per leaf node
// so the maximum number of leaf nodes that can hold contract code for a specific address is 4 leaf nodes (128 chunks in
// the first leaf node and 256 chunks in up to 3 additional leaf nodes)
// So, instead of computing every single leaf key (which is a heavy operation), we just compute the stem for the first
// chunk in each leaf node and can then know that the chunks in between have tree keys in monotonically increasing order
const numStems = numChunks > BINARY_TREE_CODE_OFFSET ? Math.ceil(numChunks / BINARY_TREE_NODE_WIDTH) + 1 : 1;
const chunkStems = new Array(numStems);
// Compute the stem for the initial set of code chunks
chunkStems[0] = getBinaryTreeKeyForCodeChunk(address, 0, hashFunction).slice(0, 31);
for (let stemNum = 0; stemNum < numStems - 1; stemNum++) {
// Generate additional stems
const firstChunkKey = getBinaryTreeKeyForCodeChunk(address, BINARY_TREE_CODE_OFFSET + stemNum * BINARY_TREE_NODE_WIDTH, hashFunction);
chunkStems[stemNum + 1] = firstChunkKey.slice(0, 31);
}
return chunkStems;
}
//# sourceMappingURL=binaryTree.js.map
{"version":3,"file":"binaryTree.js","sourceRoot":"","sources":["../../src/binaryTree.ts"],"names":[],"mappings":"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"}
import { DEFAULT_ERROR_CODE, EthereumJSError, type EthereumJSErrorMetaData, type EthereumJSErrorObject, EthereumJSErrorWithoutCode } from '@ethereumjs/rlp';
export { DEFAULT_ERROR_CODE, EthereumJSError, EthereumJSErrorWithoutCode, type EthereumJSErrorMetaData, type EthereumJSErrorObject, };
//# sourceMappingURL=errors.d.ts.map
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,0BAA0B,EAC3B,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,CAAA"}
import { DEFAULT_ERROR_CODE, EthereumJSError, EthereumJSErrorWithoutCode, } from '@ethereumjs/rlp';
export { DEFAULT_ERROR_CODE, EthereumJSError, EthereumJSErrorWithoutCode, };
// Below here: specific monorepo-wide errors (examples and commented out)
/*export enum UsageErrorType {
UNSUPPORTED_FEATURE = 'unsupported feature',
}*
/**
* Error along API Usage
*
* Use directly or in a subclassed context for error comparison (`e instanceof UsageError`)
*/
//export class UsageError extends EthereumJSError<{ code: UsageErrorType }> {}
//# sourceMappingURL=errors.js.map
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EAGf,0BAA0B,GAC3B,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,0BAA0B,GAG3B,CAAA;AAED,yEAAyE;AAEzE;;;;;;;;GAQG;AACH,8EAA8E"}
import {
bigIntToBytes,
bytesToBigInt,
bytesToInt32,
concatBytes,
int32ToBytes,
intToBytes,
setLengthLeft,
setLengthRight,
toBytes,
} from './bytes.ts'
import type { Account } from './account.ts'
import type { Address } from './address.ts'
import type { PrefixedHexString } from './types.ts'
/**
* @dev Returns the 31-bytes binary tree stem for a given address and tree index.
* @param hashFunction The hashFunction for the binary tree
* @param {Address} address The address to generate the tree key for.
* @param treeIndex The index of the tree to generate the key for. Defaults to 0.
* @return The 31-bytes binary tree stem as a Uint8Array.
*/
export function getBinaryTreeStem(
hashFunction: (value: Uint8Array) => Uint8Array,
address: Address,
treeIndex: number | bigint = 0,
): Uint8Array {
const address32 = setLengthLeft(address.toBytes(), 32)
let treeIndexBytes: Uint8Array
if (typeof treeIndex === 'number') {
treeIndexBytes = setLengthRight(int32ToBytes(Number(treeIndex), true), 32)
} else {
treeIndexBytes = setLengthRight(bigIntToBytes(BigInt(treeIndex), true).slice(0, 32), 32)
}
const treeStem = hashFunction(concatBytes(address32, treeIndexBytes)).slice(0, 31)
return treeStem
}
export interface BinaryTreeStateDiff {
stem: PrefixedHexString
suffixDiffs: {
currentValue: PrefixedHexString | null
newValue: PrefixedHexString | null
suffix: number | string
}[]
}
// TODO: This is a placeholder type, the actual type is not yet defined
export type BinaryTreeProof = any
/**
* Experimental, object format could eventual change.
* An object that provides the state and proof necessary for binary tree stateless execution
* */
export interface BinaryTreeExecutionWitness {
/**
* The stateRoot of the parent block
*/
parentStateRoot: PrefixedHexString
/**
* An array of state diffs.
* Each item corresponding to state accesses or state modifications of the block.
* In the current design, it also contains the resulting state of the block execution (post-state).
*/
stateDiff: BinaryTreeStateDiff[]
/**
* The proof for the block.
* Proves that the provided stateDiff belongs to the canonical binary tree.
*/
proof: any
}
export type BinaryTreeLeafType = (typeof BinaryTreeLeafType)[keyof typeof BinaryTreeLeafType]
export const BinaryTreeLeafType = {
BasicData: 0,
CodeHash: 1,
} as const
export type BinaryTreeLeafBasicData = {
version: number
nonce: bigint
balance: bigint
codeSize: number
}
export const BINARY_TREE_VERSION_OFFSET = 0
export const BINARY_TREE_CODE_SIZE_OFFSET = 5
export const BINARY_TREE_NONCE_OFFSET = 8
export const BINARY_TREE_BALANCE_OFFSET = 16
export const BINARY_TREE_VERSION_BYTES_LENGTH = 1
export const BINARY_TREE_CODE_SIZE_BYTES_LENGTH = 3
export const BINARY_TREE_NONCE_BYTES_LENGTH = 8
export const BINARY_TREE_BALANCE_BYTES_LENGTH = 16
export const BINARY_TREE_BASIC_DATA_LEAF_KEY = intToBytes(BinaryTreeLeafType.BasicData)
export const BINARY_TREE_CODE_HASH_LEAF_KEY = intToBytes(BinaryTreeLeafType.CodeHash)
export const BINARY_TREE_CODE_CHUNK_SIZE = 31
export const BINARY_TREE_HEADER_STORAGE_OFFSET = 64
export const BINARY_TREE_CODE_OFFSET = 128
export const BINARY_TREE_NODE_WIDTH = 256
export const BINARY_TREE_MAIN_STORAGE_OFFSET = BigInt(256) ** BigInt(BINARY_TREE_CODE_CHUNK_SIZE)
/**
* @dev Returns the tree key for a given binary tree stem, and sub index.
* @dev Assumes that the tree node width = 256
* @param stem The 31-bytes binary tree stem as a Uint8Array.
* @param subIndex The sub index of the tree to generate the key for as a Uint8Array.
* @return The tree key as a Uint8Array.
*/
export const getBinaryTreeKey = (stem: Uint8Array, leaf: BinaryTreeLeafType | Uint8Array) => {
switch (leaf) {
case BinaryTreeLeafType.BasicData:
return concatBytes(stem, BINARY_TREE_BASIC_DATA_LEAF_KEY)
case BinaryTreeLeafType.CodeHash:
return concatBytes(stem, BINARY_TREE_CODE_HASH_LEAF_KEY)
default:
return concatBytes(stem, leaf)
}
}
/**
* Calculates the position of the storage key in the BinaryTree tree, determining
* both the tree index (the node in the tree) and the subindex (the position within the node).
* @param {bigint} storageKey - The key representing a specific storage slot.
* @returns {Object} - An object containing the tree index and subindex
*/
export function getBinaryTreeIndicesForStorageSlot(storageKey: bigint): {
treeIndex: bigint
subIndex: number
} {
let position: bigint
if (storageKey < BINARY_TREE_CODE_OFFSET - BINARY_TREE_HEADER_STORAGE_OFFSET) {
position = BigInt(BINARY_TREE_HEADER_STORAGE_OFFSET) + storageKey
} else {
position = BINARY_TREE_MAIN_STORAGE_OFFSET + storageKey
}
const treeIndex = position / BigInt(BINARY_TREE_NODE_WIDTH)
const subIndex = Number(position % BigInt(BINARY_TREE_NODE_WIDTH))
return { treeIndex, subIndex }
}
/**
* Calculates the position of the code chunks in the BinaryTree tree, determining
* both the tree index (the node in the tree) and the subindex (the position within the node).
* @param {bigint} chunkId - The ID representing a specific chunk.
* @returns {Object} - An object containing the tree index and subindex
*/
export function getBinaryTreeIndicesForCodeChunk(chunkId: number) {
const treeIndex = Math.floor((BINARY_TREE_CODE_OFFSET + chunkId) / BINARY_TREE_NODE_WIDTH)
const subIndex = (BINARY_TREE_CODE_OFFSET + chunkId) % BINARY_TREE_NODE_WIDTH
return { treeIndex, subIndex }
}
/**
* Asynchronously calculates the BinaryTree tree key for the specified code chunk ID.
* @param {Address} address - The account address to access code for.
* @param {number} chunkId - The ID of the code chunk to retrieve.
* @param hashFunction - The hash function used for BinaryTree-related operations.
* @returns {Uint8Array} - The BinaryTree tree key as a byte array.
*/
export const getBinaryTreeKeyForCodeChunk = (
address: Address,
chunkId: number,
hashFunction: (input: Uint8Array) => Uint8Array,
) => {
const { treeIndex, subIndex } = getBinaryTreeIndicesForCodeChunk(chunkId)
return concatBytes(getBinaryTreeStem(hashFunction, address, treeIndex), toBytes(subIndex))
}
// This code was written by robots based on the reference implementation in EIP-7864
export const chunkifyBinaryTreeCode = (code: Uint8Array) => {
const PUSH1 = 0x60 // Assuming PUSH1 is defined as 0x60
const PUSH32 = 0x7f // Assuming PUSH32 is defined as 0x7f
const PUSH_OFFSET = 0x5f // Assuming PUSH_OFFSET is defined as 0x5f
// Calculate padding length
const paddingLength = (31 - (code.length % 31)) % 31
const paddedCode = new Uint8Array(code.length + paddingLength)
paddedCode.set(code)
// Pre-allocate the bytesToExecData array
const bytesToExecData = new Uint8Array(paddedCode.length + 32)
let pos = 0
while (pos < paddedCode.length) {
let pushdataBytes = 0
if (PUSH1 <= paddedCode[pos] && paddedCode[pos] <= PUSH32) {
pushdataBytes = paddedCode[pos] - PUSH_OFFSET
}
pos += 1
for (let x = 0; x < pushdataBytes; x++) {
bytesToExecData[pos + x] = pushdataBytes - x
}
pos += pushdataBytes
}
// Pre-allocate the chunks array
const numChunks = Math.ceil(paddedCode.length / 31)
const chunks = new Array<Uint8Array>(numChunks)
for (let i = 0, pos = 0; i < numChunks; i++, pos += 31) {
const chunk = new Uint8Array(32)
chunk[0] = Math.min(bytesToExecData[pos], 31)
chunk.set(paddedCode.subarray(pos, pos + 31), 1)
chunks[i] = chunk
}
return chunks
}
/**
* Asynchronously calculates the BinaryTree tree key for the specified storage slot.
* @param {Address} address - The account address to access code for.
* @param {bigint} storageKey - The storage slot key to retrieve the key for.
* @param hashFunction - The hash function used in the Binary Tree.
* @returns {Uint8Array} - The BinaryTree tree key as a byte array.
*/
export const getBinaryTreeKeyForStorageSlot = (
address: Address,
storageKey: bigint,
hashFunction: (input: Uint8Array) => Uint8Array,
) => {
const { treeIndex, subIndex } = getBinaryTreeIndicesForStorageSlot(storageKey)
return concatBytes(getBinaryTreeStem(hashFunction, address, treeIndex), intToBytes(subIndex))
}
/**
* This function extracts and decodes account header elements (version, nonce, code size, and balance)
* from an encoded `Uint8Array` representation of raw BinaryTree leaf-node basic data. Each component is sliced
* from the `encodedBasicData` array based on predefined offsets and lengths, and then converted
* to its appropriate type (integer or BigInt).
* @param {Uint8Array} encodedBasicData - The encoded BinaryTree leaf basic data containing the version, nonce,
* code size, and balance in a compact Uint8Array format.
* @returns {BinaryTreeLeafBasicData} - An object containing the decoded version, nonce, code size, and balance.
*/
export function decodeBinaryTreeLeafBasicData(
encodedBasicData: Uint8Array,
): BinaryTreeLeafBasicData {
const versionBytes = encodedBasicData.slice(0, BINARY_TREE_VERSION_BYTES_LENGTH)
const nonceBytes = encodedBasicData.slice(
BINARY_TREE_NONCE_OFFSET,
BINARY_TREE_NONCE_OFFSET + BINARY_TREE_NONCE_BYTES_LENGTH,
)
const codeSizeBytes = encodedBasicData.slice(
BINARY_TREE_CODE_SIZE_OFFSET,
BINARY_TREE_CODE_SIZE_OFFSET + BINARY_TREE_CODE_SIZE_BYTES_LENGTH,
)
const balanceBytes = encodedBasicData.slice(
BINARY_TREE_BALANCE_OFFSET,
BINARY_TREE_BALANCE_OFFSET + BINARY_TREE_BALANCE_BYTES_LENGTH,
)
const version = bytesToInt32(versionBytes)
const nonce = bytesToBigInt(nonceBytes)
const codeSize = bytesToInt32(codeSizeBytes)
const balance = bytesToBigInt(balanceBytes)
return { version, nonce, codeSize, balance }
}
/**
* This function takes a `BinaryTreeLeafBasicData` object and encodes its properties
* (version, nonce, code size, and balance) into a compact `Uint8Array` format. Each
* property is serialized and padded to match the required byte lengths defined by
* EIP-7864. Additionally, 4 bytes are reserved for future use as specified
* in EIP-7864.
* @param {Account} account - An object containing the version, nonce,
* code size, and balance to be encoded.
* @returns {Uint8Array} - A compact bytes representation of the account header basic data.
*/
export function encodeBinaryTreeLeafBasicData(account: Account): Uint8Array {
const encodedVersion = setLengthLeft(
int32ToBytes(account.version),
BINARY_TREE_VERSION_BYTES_LENGTH,
)
// Per EIP-7864, bytes 1-4 are reserved for future use
const reservedBytes = new Uint8Array([0, 0, 0, 0])
const encodedNonce = setLengthLeft(bigIntToBytes(account.nonce), BINARY_TREE_NONCE_BYTES_LENGTH)
const encodedCodeSize = setLengthLeft(
int32ToBytes(account.codeSize),
BINARY_TREE_CODE_SIZE_BYTES_LENGTH,
)
const encodedBalance = setLengthLeft(
bigIntToBytes(account.balance),
BINARY_TREE_BALANCE_BYTES_LENGTH,
)
return concatBytes(encodedVersion, reservedBytes, encodedCodeSize, encodedNonce, encodedBalance)
}
/**
* Helper method to generate the suffixes for code chunks for putting code
* @param numChunks number of chunks to generate suffixes for
* @returns number[] - an array of numbers corresponding to the code chunks being put
*/
export const generateBinaryTreeChunkSuffixes = (numChunks: number) => {
if (numChunks === 0) return []
const chunkSuffixes: number[] = new Array<number>(numChunks)
let currentSuffix = BINARY_TREE_CODE_OFFSET
for (let x = 0; x < numChunks; x++) {
chunkSuffixes[x] = currentSuffix
currentSuffix++
// Reset suffix to 0 if exceeds BINARY_TREE_NODE_WIDTH
if (currentSuffix >= BINARY_TREE_NODE_WIDTH) currentSuffix = 0
}
return chunkSuffixes
}
/**
* Helper method for generating the code stems necessary for putting code
* @param numChunks the number of code chunks to be put
* @param address the address of the account getting the code
* @param hashFunction an initialized {@link BinaryTreeCrypto} object
* @returns an array of stems for putting code
*/
export function generateBinaryTreeCodeStems(
numChunks: number,
address: Address,
hashFunction: (input: Uint8Array) => Uint8Array,
): Uint8Array[] {
// The maximum number of chunks is 793 (maxCodeSize - 24576) / (bytes per chunk 31) + (round up - 1)
// Code is stored in chunks starting at leaf index 128 of the leaf node corresponding to the stem of the code's address
// Code chunks beyond the initial 128 are stored in additional leaf nodes in batches up of up to 256 chunks per leaf node
// so the maximum number of leaf nodes that can hold contract code for a specific address is 4 leaf nodes (128 chunks in
// the first leaf node and 256 chunks in up to 3 additional leaf nodes)
// So, instead of computing every single leaf key (which is a heavy operation), we just compute the stem for the first
// chunk in each leaf node and can then know that the chunks in between have tree keys in monotonically increasing order
const numStems =
numChunks > BINARY_TREE_CODE_OFFSET ? Math.ceil(numChunks / BINARY_TREE_NODE_WIDTH) + 1 : 1
const chunkStems = new Array<Uint8Array>(numStems)
// Compute the stem for the initial set of code chunks
chunkStems[0] = getBinaryTreeKeyForCodeChunk(address, 0, hashFunction).slice(0, 31)
for (let stemNum = 0; stemNum < numStems - 1; stemNum++) {
// Generate additional stems
const firstChunkKey = getBinaryTreeKeyForCodeChunk(
address,
BINARY_TREE_CODE_OFFSET + stemNum * BINARY_TREE_NODE_WIDTH,
hashFunction,
)
chunkStems[stemNum + 1] = firstChunkKey.slice(0, 31)
}
return chunkStems
}
import {
DEFAULT_ERROR_CODE,
EthereumJSError,
type EthereumJSErrorMetaData,
type EthereumJSErrorObject,
EthereumJSErrorWithoutCode,
} from '@ethereumjs/rlp'
export {
DEFAULT_ERROR_CODE,
EthereumJSError,
EthereumJSErrorWithoutCode,
type EthereumJSErrorMetaData,
type EthereumJSErrorObject,
}
// Below here: specific monorepo-wide errors (examples and commented out)
/*export enum UsageErrorType {
UNSUPPORTED_FEATURE = 'unsupported feature',
}*
/**
* Error along API Usage
*
* Use directly or in a subclassed context for error comparison (`e instanceof UsageError`)
*/
//export class UsageError extends EthereumJSError<{ code: UsageErrorType }> {}
+5
-5

@@ -1,2 +0,2 @@

import type { BigIntLike, BytesLike, PrefixedHexString } from './types.js';
import type { BigIntLike, BytesLike, PrefixedHexString } from './types.ts';
export interface AccountData {

@@ -81,3 +81,3 @@ nonce?: BigIntLike;

*/
export declare const isValidAddress: (hexAddress: string) => hexAddress is `0x${string}`;
export declare const isValidAddress: (hexAddress: string) => hexAddress is PrefixedHexString;
/**

@@ -156,4 +156,4 @@ * Returns a checksummed address.

export declare const isZeroAddress: (hexAddress: string) => boolean;
export declare function accountBodyFromSlim(body: AccountBodyBytes): Uint8Array[];
export declare function accountBodyToSlim(body: AccountBodyBytes): Uint8Array[];
export declare function accountBodyFromSlim(body: AccountBodyBytes): Uint8Array<ArrayBufferLike>[];
export declare function accountBodyToSlim(body: AccountBodyBytes): Uint8Array<ArrayBuffer>[];
/**

@@ -164,3 +164,3 @@ * Converts a slim account (per snap protocol spec) to the RLP encoded version of the account

*/
export declare function accountBodyToRLP(body: AccountBodyBytes, couldBeSlim?: boolean): Uint8Array;
export declare function accountBodyToRLP(body: AccountBodyBytes, couldBeSlim?: boolean): Uint8Array<ArrayBufferLike>;
//# sourceMappingURL=account.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/account.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/account.ts"],"names":[],"mappings":"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"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.accountBodyToRLP = exports.accountBodyToSlim = exports.accountBodyFromSlim = exports.isZeroAddress = exports.zeroAddress = exports.importPublic = exports.privateToAddress = exports.privateToPublic = exports.publicToAddress = exports.pubToAddress = exports.isValidPublic = exports.isValidPrivate = exports.generateAddress2 = exports.generateAddress = exports.isValidChecksumAddress = exports.toChecksumAddress = exports.isValidAddress = exports.createPartialAccountFromRLP = exports.createAccountFromRLP = exports.createPartialAccount = exports.createAccountFromBytesArray = exports.createAccount = exports.Account = void 0;
exports.isZeroAddress = exports.zeroAddress = exports.importPublic = exports.privateToAddress = exports.privateToPublic = exports.publicToAddress = exports.pubToAddress = exports.isValidPublic = exports.isValidPrivate = exports.generateAddress2 = exports.generateAddress = exports.isValidChecksumAddress = exports.toChecksumAddress = exports.isValidAddress = exports.Account = void 0;
exports.createAccount = createAccount;
exports.createAccountFromBytesArray = createAccountFromBytesArray;
exports.createPartialAccount = createPartialAccount;
exports.createAccountFromRLP = createAccountFromRLP;
exports.createPartialAccountFromRLP = createPartialAccountFromRLP;
exports.accountBodyFromSlim = accountBodyFromSlim;
exports.accountBodyToSlim = accountBodyToSlim;
exports.accountBodyToRLP = accountBodyToRLP;
const rlp_1 = require("@ethereumjs/rlp");
const keccak_js_1 = require("ethereum-cryptography/keccak.js");
const secp256k1_js_1 = require("ethereum-cryptography/secp256k1.js");
const bytes_js_1 = require("./bytes.js");
const constants_js_1 = require("./constants.js");
const helpers_js_1 = require("./helpers.js");
const internal_js_1 = require("./internal.js");
const bytes_ts_1 = require("./bytes.js");
const constants_ts_1 = require("./constants.js");
const errors_ts_1 = require("./errors.js");
const helpers_ts_1 = require("./helpers.js");
const internal_ts_1 = require("./internal.js");
/**

@@ -93,3 +102,3 @@ * Account class to load and maintain the basic account objects.

*/
constructor(nonce = constants_js_1.BIGINT_0, balance = constants_js_1.BIGINT_0, storageRoot = constants_js_1.KECCAK256_RLP, codeHash = constants_js_1.KECCAK256_NULL, codeSize = 0, version = 0) {
constructor(nonce = constants_ts_1.BIGINT_0, balance = constants_ts_1.BIGINT_0, storageRoot = constants_ts_1.KECCAK256_RLP, codeHash = constants_ts_1.KECCAK256_NULL, codeSize = 0, version = 0) {
this._nonce = null;

@@ -114,16 +123,16 @@ this._balance = null;

_validate() {
if (this._nonce !== null && this._nonce < constants_js_1.BIGINT_0) {
throw new Error('nonce must be greater than zero');
if (this._nonce !== null && this._nonce < constants_ts_1.BIGINT_0) {
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('nonce must be greater than zero');
}
if (this._balance !== null && this._balance < constants_js_1.BIGINT_0) {
throw new Error('balance must be greater than zero');
if (this._balance !== null && this._balance < constants_ts_1.BIGINT_0) {
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('balance must be greater than zero');
}
if (this._storageRoot !== null && this._storageRoot.length !== 32) {
throw new Error('storageRoot must have a length of 32');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('storageRoot must have a length of 32');
}
if (this._codeHash !== null && this._codeHash.length !== 32) {
throw new Error('codeHash must have a length of 32');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('codeHash must have a length of 32');
}
if (this._codeSize !== null && this._codeSize < constants_js_1.BIGINT_0) {
throw new Error('codeSize must be greater than zero');
if (this._codeSize !== null && this._codeSize < constants_ts_1.BIGINT_0) {
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('codeSize must be greater than zero');
}

@@ -136,4 +145,4 @@ }

return [
(0, bytes_js_1.bigIntToUnpaddedBytes)(this.nonce),
(0, bytes_js_1.bigIntToUnpaddedBytes)(this.balance),
(0, bytes_ts_1.bigIntToUnpaddedBytes)(this.nonce),
(0, bytes_ts_1.bigIntToUnpaddedBytes)(this.balance),
this.storageRoot,

@@ -151,6 +160,6 @@ this.codeHash,

const partialData = [];
const zeroEncoded = (0, bytes_js_1.intToUnpaddedBytes)(0);
const oneEncoded = (0, bytes_js_1.intToUnpaddedBytes)(1);
const zeroEncoded = (0, bytes_ts_1.intToUnpaddedBytes)(0);
const oneEncoded = (0, bytes_ts_1.intToUnpaddedBytes)(1);
if (this._nonce !== null) {
partialData.push([oneEncoded, (0, bytes_js_1.bigIntToUnpaddedBytes)(this._nonce)]);
partialData.push([oneEncoded, (0, bytes_ts_1.bigIntToUnpaddedBytes)(this._nonce)]);
}

@@ -161,3 +170,3 @@ else {

if (this._balance !== null) {
partialData.push([oneEncoded, (0, bytes_js_1.bigIntToUnpaddedBytes)(this._balance)]);
partialData.push([oneEncoded, (0, bytes_ts_1.bigIntToUnpaddedBytes)(this._balance)]);
}

@@ -180,3 +189,3 @@ else {

if (this._codeSize !== null) {
partialData.push([oneEncoded, (0, bytes_js_1.intToUnpaddedBytes)(this._codeSize)]);
partialData.push([oneEncoded, (0, bytes_ts_1.intToUnpaddedBytes)(this._codeSize)]);
}

@@ -187,3 +196,3 @@ else {

if (this._version !== null) {
partialData.push([oneEncoded, (0, bytes_js_1.intToUnpaddedBytes)(this._version)]);
partialData.push([oneEncoded, (0, bytes_ts_1.intToUnpaddedBytes)(this._version)]);
}

@@ -202,3 +211,3 @@ else {

}
return ((this._codeHash !== null && !(0, bytes_js_1.equalsBytes)(this._codeHash, constants_js_1.KECCAK256_NULL)) ||
return ((this._codeHash !== null && !(0, bytes_ts_1.equalsBytes)(this._codeHash, constants_ts_1.KECCAK256_NULL)) ||
(this._codeSize !== null && this._codeSize !== 0));

@@ -213,10 +222,10 @@ }

// helpful for determination in partial accounts
if ((this._balance !== null && this.balance !== constants_js_1.BIGINT_0) ||
(this._nonce === null && this.nonce !== constants_js_1.BIGINT_0) ||
(this._codeHash !== null && !(0, bytes_js_1.equalsBytes)(this.codeHash, constants_js_1.KECCAK256_NULL))) {
if ((this._balance !== null && this.balance !== constants_ts_1.BIGINT_0) ||
(this._nonce === null && this.nonce !== constants_ts_1.BIGINT_0) ||
(this._codeHash !== null && !(0, bytes_ts_1.equalsBytes)(this.codeHash, constants_ts_1.KECCAK256_NULL))) {
return false;
}
return (this.balance === constants_js_1.BIGINT_0 &&
this.nonce === constants_js_1.BIGINT_0 &&
(0, bytes_js_1.equalsBytes)(this.codeHash, constants_js_1.KECCAK256_NULL));
return (this.balance === constants_ts_1.BIGINT_0 &&
this.nonce === constants_ts_1.BIGINT_0 &&
(0, bytes_ts_1.equalsBytes)(this.codeHash, constants_ts_1.KECCAK256_NULL));
}

@@ -231,10 +240,8 @@ }

}
return new Account(nonce !== undefined ? (0, bytes_js_1.bytesToBigInt)((0, bytes_js_1.toBytes)(nonce)) : undefined, balance !== undefined ? (0, bytes_js_1.bytesToBigInt)((0, bytes_js_1.toBytes)(balance)) : undefined, storageRoot !== undefined ? (0, bytes_js_1.toBytes)(storageRoot) : undefined, codeHash !== undefined ? (0, bytes_js_1.toBytes)(codeHash) : undefined);
return new Account(nonce !== undefined ? (0, bytes_ts_1.bytesToBigInt)((0, bytes_ts_1.toBytes)(nonce)) : undefined, balance !== undefined ? (0, bytes_ts_1.bytesToBigInt)((0, bytes_ts_1.toBytes)(balance)) : undefined, storageRoot !== undefined ? (0, bytes_ts_1.toBytes)(storageRoot) : undefined, codeHash !== undefined ? (0, bytes_ts_1.toBytes)(codeHash) : undefined);
}
exports.createAccount = createAccount;
function createAccountFromBytesArray(values) {
const [nonce, balance, storageRoot, codeHash] = values;
return new Account((0, bytes_js_1.bytesToBigInt)(nonce), (0, bytes_js_1.bytesToBigInt)(balance), storageRoot, codeHash);
return new Account((0, bytes_ts_1.bytesToBigInt)(nonce), (0, bytes_ts_1.bytesToBigInt)(balance), storageRoot, codeHash);
}
exports.createAccountFromBytesArray = createAccountFromBytesArray;
function createPartialAccount(partialAccountData) {

@@ -250,29 +257,27 @@ const { nonce, balance, storageRoot, codeHash, codeSize, version } = partialAccountData;

}
return new Account(nonce !== undefined && nonce !== null ? (0, bytes_js_1.bytesToBigInt)((0, bytes_js_1.toBytes)(nonce)) : nonce, balance !== undefined && balance !== null ? (0, bytes_js_1.bytesToBigInt)((0, bytes_js_1.toBytes)(balance)) : balance, storageRoot !== undefined && storageRoot !== null ? (0, bytes_js_1.toBytes)(storageRoot) : storageRoot, codeHash !== undefined && codeHash !== null ? (0, bytes_js_1.toBytes)(codeHash) : codeHash, codeSize !== undefined && codeSize !== null ? (0, bytes_js_1.bytesToInt)((0, bytes_js_1.toBytes)(codeSize)) : codeSize, version !== undefined && version !== null ? (0, bytes_js_1.bytesToInt)((0, bytes_js_1.toBytes)(version)) : version);
return new Account(nonce !== undefined && nonce !== null ? (0, bytes_ts_1.bytesToBigInt)((0, bytes_ts_1.toBytes)(nonce)) : nonce, balance !== undefined && balance !== null ? (0, bytes_ts_1.bytesToBigInt)((0, bytes_ts_1.toBytes)(balance)) : balance, storageRoot !== undefined && storageRoot !== null ? (0, bytes_ts_1.toBytes)(storageRoot) : storageRoot, codeHash !== undefined && codeHash !== null ? (0, bytes_ts_1.toBytes)(codeHash) : codeHash, codeSize !== undefined && codeSize !== null ? (0, bytes_ts_1.bytesToInt)((0, bytes_ts_1.toBytes)(codeSize)) : codeSize, version !== undefined && version !== null ? (0, bytes_ts_1.bytesToInt)((0, bytes_ts_1.toBytes)(version)) : version);
}
exports.createPartialAccount = createPartialAccount;
function createAccountFromRLP(serialized) {
const values = rlp_1.RLP.decode(serialized);
if (!Array.isArray(values)) {
throw new Error('Invalid serialized account input. Must be array');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Invalid serialized account input. Must be array');
}
return createAccountFromBytesArray(values);
}
exports.createAccountFromRLP = createAccountFromRLP;
function createPartialAccountFromRLP(serialized) {
const values = rlp_1.RLP.decode(serialized);
if (!Array.isArray(values)) {
throw new Error('Invalid serialized account input. Must be array');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Invalid serialized account input. Must be array');
}
let nonce = null;
if (!Array.isArray(values[0])) {
throw new Error('Invalid partial nonce encoding. Must be array');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Invalid partial nonce encoding. Must be array');
}
else {
const isNotNullIndicator = (0, bytes_js_1.bytesToInt)(values[0][0]);
const isNotNullIndicator = (0, bytes_ts_1.bytesToInt)(values[0][0]);
if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for nonce`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`Invalid isNullIndicator=${isNotNullIndicator} for nonce`);
}
if (isNotNullIndicator === 1) {
nonce = (0, bytes_js_1.bytesToBigInt)(values[0][1]);
nonce = (0, bytes_ts_1.bytesToBigInt)(values[0][1]);
}

@@ -282,11 +287,11 @@ }

if (!Array.isArray(values[1])) {
throw new Error('Invalid partial balance encoding. Must be array');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Invalid partial balance encoding. Must be array');
}
else {
const isNotNullIndicator = (0, bytes_js_1.bytesToInt)(values[1][0]);
const isNotNullIndicator = (0, bytes_ts_1.bytesToInt)(values[1][0]);
if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for balance`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`Invalid isNullIndicator=${isNotNullIndicator} for balance`);
}
if (isNotNullIndicator === 1) {
balance = (0, bytes_js_1.bytesToBigInt)(values[1][1]);
balance = (0, bytes_ts_1.bytesToBigInt)(values[1][1]);
}

@@ -296,8 +301,8 @@ }

if (!Array.isArray(values[2])) {
throw new Error('Invalid partial storageRoot encoding. Must be array');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Invalid partial storageRoot encoding. Must be array');
}
else {
const isNotNullIndicator = (0, bytes_js_1.bytesToInt)(values[2][0]);
const isNotNullIndicator = (0, bytes_ts_1.bytesToInt)(values[2][0]);
if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for storageRoot`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`Invalid isNullIndicator=${isNotNullIndicator} for storageRoot`);
}

@@ -310,8 +315,8 @@ if (isNotNullIndicator === 1) {

if (!Array.isArray(values[3])) {
throw new Error('Invalid partial codeHash encoding. Must be array');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Invalid partial codeHash encoding. Must be array');
}
else {
const isNotNullIndicator = (0, bytes_js_1.bytesToInt)(values[3][0]);
const isNotNullIndicator = (0, bytes_ts_1.bytesToInt)(values[3][0]);
if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for codeHash`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`Invalid isNullIndicator=${isNotNullIndicator} for codeHash`);
}

@@ -324,11 +329,11 @@ if (isNotNullIndicator === 1) {

if (!Array.isArray(values[4])) {
throw new Error('Invalid partial codeSize encoding. Must be array');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Invalid partial codeSize encoding. Must be array');
}
else {
const isNotNullIndicator = (0, bytes_js_1.bytesToInt)(values[4][0]);
const isNotNullIndicator = (0, bytes_ts_1.bytesToInt)(values[4][0]);
if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for codeSize`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`Invalid isNullIndicator=${isNotNullIndicator} for codeSize`);
}
if (isNotNullIndicator === 1) {
codeSize = (0, bytes_js_1.bytesToInt)(values[4][1]);
codeSize = (0, bytes_ts_1.bytesToInt)(values[4][1]);
}

@@ -338,11 +343,11 @@ }

if (!Array.isArray(values[5])) {
throw new Error('Invalid partial version encoding. Must be array');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Invalid partial version encoding. Must be array');
}
else {
const isNotNullIndicator = (0, bytes_js_1.bytesToInt)(values[5][0]);
const isNotNullIndicator = (0, bytes_ts_1.bytesToInt)(values[5][0]);
if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for version`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`Invalid isNullIndicator=${isNotNullIndicator} for version`);
}
if (isNotNullIndicator === 1) {
version = (0, bytes_js_1.bytesToInt)(values[5][1]);
version = (0, bytes_ts_1.bytesToInt)(values[5][1]);
}

@@ -352,3 +357,2 @@ }

}
exports.createPartialAccountFromRLP = createPartialAccountFromRLP;
/**

@@ -359,5 +363,5 @@ * Checks if the address is a valid. Accepts checksummed addresses too.

try {
(0, helpers_js_1.assertIsString)(hexAddress);
(0, helpers_ts_1.assertIsString)(hexAddress);
}
catch (e) {
catch {
return false;

@@ -381,11 +385,11 @@ }

const toChecksumAddress = function (hexAddress, eip1191ChainId) {
(0, helpers_js_1.assertIsHexString)(hexAddress);
const address = (0, internal_js_1.stripHexPrefix)(hexAddress).toLowerCase();
(0, helpers_ts_1.assertIsHexString)(hexAddress);
const address = (0, internal_ts_1.stripHexPrefix)(hexAddress).toLowerCase();
let prefix = '';
if (eip1191ChainId !== undefined) {
const chainId = (0, bytes_js_1.bytesToBigInt)((0, bytes_js_1.toBytes)(eip1191ChainId));
const chainId = (0, bytes_ts_1.bytesToBigInt)((0, bytes_ts_1.toBytes)(eip1191ChainId));
prefix = chainId.toString() + '0x';
}
const bytes = (0, bytes_js_1.utf8ToBytes)(prefix + address);
const hash = (0, bytes_js_1.bytesToHex)((0, keccak_js_1.keccak256)(bytes)).slice(2);
const bytes = (0, bytes_ts_1.utf8ToBytes)(prefix + address);
const hash = (0, bytes_ts_1.bytesToHex)((0, keccak_js_1.keccak256)(bytes)).slice(2);
let ret = '';

@@ -418,5 +422,5 @@ for (let i = 0; i < address.length; i++) {

const generateAddress = function (from, nonce) {
(0, helpers_js_1.assertIsBytes)(from);
(0, helpers_js_1.assertIsBytes)(nonce);
if ((0, bytes_js_1.bytesToBigInt)(nonce) === constants_js_1.BIGINT_0) {
(0, helpers_ts_1.assertIsBytes)(from);
(0, helpers_ts_1.assertIsBytes)(nonce);
if ((0, bytes_ts_1.bytesToBigInt)(nonce) === constants_ts_1.BIGINT_0) {
// in RLP we want to encode null in the case of zero nonce

@@ -437,12 +441,12 @@ // read the RLP documentation for an answer if you dare

const generateAddress2 = function (from, salt, initCode) {
(0, helpers_js_1.assertIsBytes)(from);
(0, helpers_js_1.assertIsBytes)(salt);
(0, helpers_js_1.assertIsBytes)(initCode);
(0, helpers_ts_1.assertIsBytes)(from);
(0, helpers_ts_1.assertIsBytes)(salt);
(0, helpers_ts_1.assertIsBytes)(initCode);
if (from.length !== 20) {
throw new Error('Expected from to be of length 20');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Expected from to be of length 20');
}
if (salt.length !== 32) {
throw new Error('Expected salt to be of length 32');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Expected salt to be of length 32');
}
const address = (0, keccak_js_1.keccak256)((0, bytes_js_1.concatBytes)((0, bytes_js_1.hexToBytes)('0xff'), from, salt, (0, keccak_js_1.keccak256)(initCode)));
const address = (0, keccak_js_1.keccak256)((0, bytes_ts_1.concatBytes)((0, bytes_ts_1.hexToBytes)('0xff'), from, salt, (0, keccak_js_1.keccak256)(initCode)));
return address.subarray(-20);

@@ -465,3 +469,3 @@ };

const isValidPublic = function (publicKey, sanitize = false) {
(0, helpers_js_1.assertIsBytes)(publicKey);
(0, helpers_ts_1.assertIsBytes)(publicKey);
if (publicKey.length === 64) {

@@ -471,6 +475,6 @@ // Convert to SEC1 for secp256k1

try {
secp256k1_js_1.secp256k1.ProjectivePoint.fromHex((0, bytes_js_1.concatBytes)(Uint8Array.from([4]), publicKey));
secp256k1_js_1.secp256k1.ProjectivePoint.fromHex((0, bytes_ts_1.concatBytes)(Uint8Array.from([4]), publicKey));
return true;
}
catch (e) {
catch {
return false;

@@ -486,3 +490,3 @@ }

}
catch (e) {
catch {
return false;

@@ -499,3 +503,3 @@ }

const pubToAddress = function (pubKey, sanitize = false) {
(0, helpers_js_1.assertIsBytes)(pubKey);
(0, helpers_ts_1.assertIsBytes)(pubKey);
if (sanitize && pubKey.length !== 64) {

@@ -505,3 +509,3 @@ pubKey = secp256k1_js_1.secp256k1.ProjectivePoint.fromHex(pubKey).toRawBytes(false).slice(1);

if (pubKey.length !== 64) {
throw new Error('Expected pubKey to be of length 64');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Expected pubKey to be of length 64');
}

@@ -518,3 +522,3 @@ // Only take the lower 160bits of the hash

const privateToPublic = function (privateKey) {
(0, helpers_js_1.assertIsBytes)(privateKey);
(0, helpers_ts_1.assertIsBytes)(privateKey);
// skip the type flag and use the X, Y points

@@ -536,3 +540,3 @@ return secp256k1_js_1.secp256k1.ProjectivePoint.fromPrivateKey(privateKey).toRawBytes(false).slice(1);

const importPublic = function (publicKey) {
(0, helpers_js_1.assertIsBytes)(publicKey);
(0, helpers_ts_1.assertIsBytes)(publicKey);
if (publicKey.length !== 64) {

@@ -548,3 +552,3 @@ publicKey = secp256k1_js_1.secp256k1.ProjectivePoint.fromHex(publicKey).toRawBytes(false).slice(1);

const zeroAddress = function () {
return (0, bytes_js_1.bytesToHex)(new Uint8Array(20));
return (0, bytes_ts_1.bytesToHex)(new Uint8Array(20));
};

@@ -557,5 +561,5 @@ exports.zeroAddress = zeroAddress;

try {
(0, helpers_js_1.assertIsString)(hexAddress);
(0, helpers_ts_1.assertIsString)(hexAddress);
}
catch (e) {
catch {
return false;

@@ -572,7 +576,6 @@ }

balance,
storageRoot.length === 0 ? constants_js_1.KECCAK256_RLP : storageRoot,
codeHash.length === 0 ? constants_js_1.KECCAK256_NULL : codeHash,
storageRoot.length === 0 ? constants_ts_1.KECCAK256_RLP : storageRoot,
codeHash.length === 0 ? constants_ts_1.KECCAK256_NULL : codeHash,
];
}
exports.accountBodyFromSlim = accountBodyFromSlim;
const emptyUint8Arr = new Uint8Array(0);

@@ -584,7 +587,6 @@ function accountBodyToSlim(body) {

balance,
(0, bytes_js_1.equalsBytes)(storageRoot, constants_js_1.KECCAK256_RLP) ? emptyUint8Arr : storageRoot,
(0, bytes_js_1.equalsBytes)(codeHash, constants_js_1.KECCAK256_NULL) ? emptyUint8Arr : codeHash,
(0, bytes_ts_1.equalsBytes)(storageRoot, constants_ts_1.KECCAK256_RLP) ? emptyUint8Arr : storageRoot,
(0, bytes_ts_1.equalsBytes)(codeHash, constants_ts_1.KECCAK256_NULL) ? emptyUint8Arr : codeHash,
];
}
exports.accountBodyToSlim = accountBodyToSlim;
/**

@@ -599,3 +601,2 @@ * Converts a slim account (per snap protocol spec) to the RLP encoded version of the account

}
exports.accountBodyToRLP = accountBodyToRLP;
//# sourceMappingURL=account.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/account.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/account.ts"],"names":[],"mappings":";;;AAgRA,sCAYC;AAED,kEAIC;AAED,oDAsBC;AAED,oDAQC;AAED,kEAwFC;AA4ND,kDAQC;AAGD,8CAQC;AAOD,4CAGC;AAvpBD,yCAAqC;AACrC,+DAA2D;AAC3D,qEAA8D;AAE9D,yCAWmB;AACnB,iDAAwE;AACxE,2CAAwD;AACxD,6CAA+E;AAC/E,+CAA8C;AAsB9C;;;;;;;;;GASG;AACH,MAAa,OAAO;IASlB,IAAI,OAAO;QACT,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,WAAW,IAAI,CAAC,QAAQ,aAAa,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,SAAS,IAAI,CAAC,MAAM,aAAa,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,IAAI,OAAO;QACT,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,WAAW,IAAI,CAAC,QAAQ,aAAa,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,IAAI,WAAW;QACb,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,YAAY,CAAA;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,eAAe,IAAI,CAAC,YAAY,aAAa,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IACD,IAAI,WAAW,CAAC,YAAwB;QACtC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,SAAS,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,YAAY,IAAI,CAAC,SAAS,aAAa,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,SAAqB;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,SAAS,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,YAAY,IAAI,CAAC,SAAS,aAAa,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,SAAiB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED;;;;OAIG;IACH,YACE,QAAuB,uBAAQ,EAC/B,UAAyB,uBAAQ,EACjC,cAAiC,4BAAa,EAC9C,WAA8B,6BAAc,EAC5C,WAA0B,CAAC,EAC3B,UAAyB,CAAC;QArF5B,WAAM,GAAkB,IAAI,CAAA;QAC5B,aAAQ,GAAkB,IAAI,CAAA;QAC9B,iBAAY,GAAsB,IAAI,CAAA;QACtC,cAAS,GAAsB,IAAI,CAAA;QACnC,mDAAmD;QACnD,cAAS,GAAkB,IAAI,CAAA;QAC/B,aAAQ,GAAkB,IAAI,CAAA;QAiF5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;QAC/B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QAEzB,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACjE,QAAQ,GAAG,CAAC,CAAA;QACd,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QAEvB,IAAI,CAAC,SAAS,EAAE,CAAA;IAClB,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,uBAAQ,EAAE,CAAC;YACnD,MAAM,IAAA,sCAA0B,EAAC,iCAAiC,CAAC,CAAA;QACrE,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,GAAG,uBAAQ,EAAE,CAAC;YACvD,MAAM,IAAA,sCAA0B,EAAC,mCAAmC,CAAC,CAAA;QACvE,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAClE,MAAM,IAAA,sCAA0B,EAAC,sCAAsC,CAAC,CAAA;QAC1E,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC5D,MAAM,IAAA,sCAA0B,EAAC,mCAAmC,CAAC,CAAA;QACvE,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,GAAG,uBAAQ,EAAE,CAAC;YACzD,MAAM,IAAA,sCAA0B,EAAC,oCAAoC,CAAC,CAAA;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO;YACL,IAAA,gCAAqB,EAAC,IAAI,CAAC,KAAK,CAAC;YACjC,IAAA,gCAAqB,EAAC,IAAI,CAAC,OAAO,CAAC;YACnC,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,QAAQ;SACd,CAAA;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,SAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED,wBAAwB;QACtB,MAAM,WAAW,GAAG,EAAE,CAAA;QACtB,MAAM,WAAW,GAAG,IAAA,6BAAkB,EAAC,CAAC,CAAC,CAAA;QACzC,MAAM,UAAU,GAAG,IAAA,6BAAkB,EAAC,CAAC,CAAC,CAAA;QAExC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,IAAA,gCAAqB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACpE,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,IAAA,gCAAqB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACtE,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;QACnD,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;QAChD,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,IAAA,6BAAkB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACpE,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,IAAA,6BAAkB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACnE,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;QACjC,CAAC;QAED,OAAO,SAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAChC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACvD,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACrE,CAAC;QACD,OAAO,CACL,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,IAAA,sBAAW,EAAC,IAAI,CAAC,SAAS,EAAE,6BAAc,CAAC,CAAC;YACzE,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAClD,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,gDAAgD;QAChD,IACE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,uBAAQ,CAAC;YACrD,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,uBAAQ,CAAC;YACjD,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,IAAA,sBAAW,EAAC,IAAI,CAAC,QAAQ,EAAE,6BAAc,CAAC,CAAC,EACxE,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,CACL,IAAI,CAAC,OAAO,KAAK,uBAAQ;YACzB,IAAI,CAAC,KAAK,KAAK,uBAAQ;YACvB,IAAA,sBAAW,EAAC,IAAI,CAAC,QAAQ,EAAE,6BAAc,CAAC,CAC3C,CAAA;IACH,CAAC;CACF;AAzND,0BAyNC;AAED,uBAAuB;AAEvB,SAAgB,aAAa,CAAC,WAAwB;IACpD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAA;IAC7D,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACpF,MAAM,KAAK,CAAC,iDAAiD,CAAC,CAAA;IAChE,CAAC;IAED,OAAO,IAAI,OAAO,CAChB,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,wBAAa,EAAC,IAAA,kBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAC/D,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,wBAAa,EAAC,IAAA,kBAAO,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACnE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,kBAAO,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,EAC5D,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,kBAAO,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CACvD,CAAA;AACH,CAAC;AAED,SAAgB,2BAA2B,CAAC,MAAoB;IAC9D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAA;IAEtD,OAAO,IAAI,OAAO,CAAC,IAAA,wBAAa,EAAC,KAAK,CAAC,EAAE,IAAA,wBAAa,EAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;AACzF,CAAC;AAED,SAAgB,oBAAoB,CAAC,kBAAsC;IACzE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAA;IAEvF,IACE,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,IAAI;QAChB,WAAW,KAAK,IAAI;QACpB,QAAQ,KAAK,IAAI;QACjB,QAAQ,KAAK,IAAI;QACjB,OAAO,KAAK,IAAI,EAChB,CAAC;QACD,MAAM,KAAK,CAAC,yBAAyB,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,IAAI,OAAO,CAChB,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAA,wBAAa,EAAC,IAAA,kBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAC7E,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAA,wBAAa,EAAC,IAAA,kBAAO,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EACrF,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAA,kBAAO,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EACtF,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAA,kBAAO,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAC1E,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAA,qBAAU,EAAC,IAAA,kBAAO,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EACtF,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAA,qBAAU,EAAC,IAAA,kBAAO,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CACnF,CAAA;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,UAAsB;IACzD,MAAM,MAAM,GAAG,SAAG,CAAC,MAAM,CAAC,UAAU,CAAiB,CAAA;IAErD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAA,sCAA0B,EAAC,iDAAiD,CAAC,CAAA;IACrF,CAAC;IAED,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAA;AAC5C,CAAC;AAED,SAAgB,2BAA2B,CAAC,UAAsB;IAChE,MAAM,MAAM,GAAG,SAAG,CAAC,MAAM,CAAC,UAAU,CAAmB,CAAA;IAEvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAA,sCAA0B,EAAC,iDAAiD,CAAC,CAAA;IACrF,CAAC;IAED,IAAI,KAAK,GAAG,IAAI,CAAA;IAChB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAA,sCAA0B,EAAC,+CAA+C,CAAC,CAAA;IACnF,CAAC;SAAM,CAAC;QACN,MAAM,kBAAkB,GAAG,IAAA,qBAAU,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,IAAI,kBAAkB,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,IAAA,sCAA0B,EAAC,2BAA2B,kBAAkB,YAAY,CAAC,CAAA;QAC7F,CAAC;QACD,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YAC7B,KAAK,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAA,sCAA0B,EAAC,iDAAiD,CAAC,CAAA;IACrF,CAAC;SAAM,CAAC;QACN,MAAM,kBAAkB,GAAG,IAAA,qBAAU,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,IAAI,kBAAkB,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,IAAA,sCAA0B,EAAC,2BAA2B,kBAAkB,cAAc,CAAC,CAAA;QAC/F,CAAC;QACD,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,IAAI,WAAW,GAAG,IAAI,CAAA;IACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAA,sCAA0B,EAAC,qDAAqD,CAAC,CAAA;IACzF,CAAC;SAAM,CAAC;QACN,MAAM,kBAAkB,GAAG,IAAA,qBAAU,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,IAAI,kBAAkB,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,IAAA,sCAA0B,EAC9B,2BAA2B,kBAAkB,kBAAkB,CAChE,CAAA;QACH,CAAC;QACD,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YAC7B,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAA,sCAA0B,EAAC,kDAAkD,CAAC,CAAA;IACtF,CAAC;SAAM,CAAC;QACN,MAAM,kBAAkB,GAAG,IAAA,qBAAU,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,IAAI,kBAAkB,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,IAAA,sCAA0B,EAAC,2BAA2B,kBAAkB,eAAe,CAAC,CAAA;QAChG,CAAC;QACD,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YAC7B,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAA,sCAA0B,EAAC,kDAAkD,CAAC,CAAA;IACtF,CAAC;SAAM,CAAC;QACN,MAAM,kBAAkB,GAAG,IAAA,qBAAU,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,IAAI,kBAAkB,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,IAAA,sCAA0B,EAAC,2BAA2B,kBAAkB,eAAe,CAAC,CAAA;QAChG,CAAC;QACD,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YAC7B,QAAQ,GAAG,IAAA,qBAAU,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAA,sCAA0B,EAAC,iDAAiD,CAAC,CAAA;IACrF,CAAC;SAAM,CAAC;QACN,MAAM,kBAAkB,GAAG,IAAA,qBAAU,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,IAAI,kBAAkB,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,IAAA,sCAA0B,EAAC,2BAA2B,kBAAkB,cAAc,CAAC,CAAA;QAC/F,CAAC;QACD,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,IAAA,qBAAU,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,OAAO,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;AAC3F,CAAC;AAED;;GAEG;AACI,MAAM,cAAc,GAAG,UAAU,UAAkB;IACxD,IAAI,CAAC;QACH,IAAA,2BAAc,EAAC,UAAU,CAAC,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAC/C,CAAC,CAAA;AARY,QAAA,cAAc,kBAQ1B;AAED;;;;;;;;;;;GAWG;AACI,MAAM,iBAAiB,GAAG,UAC/B,UAAkB,EAClB,cAA2B;IAE3B,IAAA,8BAAiB,EAAC,UAAU,CAAC,CAAA;IAC7B,MAAM,OAAO,GAAG,IAAA,4BAAc,EAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;IAExD,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,IAAA,kBAAO,EAAC,cAAc,CAAC,CAAC,CAAA;QACtD,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAA;IACpC,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,sBAAW,EAAC,MAAM,GAAG,OAAO,CAAC,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAA,qBAAU,EAAC,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClD,IAAI,GAAG,GAAG,EAAE,CAAA;IAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QACjC,CAAC;aAAM,CAAC;YACN,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,GAAG,EAAE,CAAA;AACnB,CAAC,CAAA;AA1BY,QAAA,iBAAiB,qBA0B7B;AAED;;;;GAIG;AACI,MAAM,sBAAsB,GAAG,UACpC,UAAkB,EAClB,cAA2B;IAE3B,OAAO,IAAA,sBAAc,EAAC,UAAU,CAAC,IAAI,IAAA,yBAAiB,EAAC,UAAU,EAAE,cAAc,CAAC,KAAK,UAAU,CAAA;AACnG,CAAC,CAAA;AALY,QAAA,sBAAsB,0BAKlC;AAED;;;;GAIG;AACI,MAAM,eAAe,GAAG,UAAU,IAAgB,EAAE,KAAiB;IAC1E,IAAA,0BAAa,EAAC,IAAI,CAAC,CAAA;IACnB,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAA;IAEpB,IAAI,IAAA,wBAAa,EAAC,KAAK,CAAC,KAAK,uBAAQ,EAAE,CAAC;QACtC,0DAA0D;QAC1D,uDAAuD;QACvD,OAAO,IAAA,qBAAS,EAAC,SAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAA;IACzE,CAAC;IAED,0CAA0C;IAC1C,OAAO,IAAA,qBAAS,EAAC,SAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAA;AAC3D,CAAC,CAAA;AAZY,QAAA,eAAe,mBAY3B;AAED;;;;;GAKG;AACI,MAAM,gBAAgB,GAAG,UAC9B,IAAgB,EAChB,IAAgB,EAChB,QAAoB;IAEpB,IAAA,0BAAa,EAAC,IAAI,CAAC,CAAA;IACnB,IAAA,0BAAa,EAAC,IAAI,CAAC,CAAA;IACnB,IAAA,0BAAa,EAAC,QAAQ,CAAC,CAAA;IAEvB,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACvB,MAAM,IAAA,sCAA0B,EAAC,kCAAkC,CAAC,CAAA;IACtE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACvB,MAAM,IAAA,sCAA0B,EAAC,kCAAkC,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,qBAAS,EAAC,IAAA,sBAAW,EAAC,IAAA,qBAAU,EAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAA,qBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAE3F,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAA;AAC9B,CAAC,CAAA;AAnBY,QAAA,gBAAgB,oBAmB5B;AAED;;GAEG;AACI,MAAM,cAAc,GAAG,UAAU,UAAsB;IAC5D,OAAO,wBAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;AACtD,CAAC,CAAA;AAFY,QAAA,cAAc,kBAE1B;AAED;;;;;GAKG;AACI,MAAM,aAAa,GAAG,UAAU,SAAqB,EAAE,WAAoB,KAAK;IACrF,IAAA,0BAAa,EAAC,SAAS,CAAC,CAAA;IACxB,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC5B,gCAAgC;QAChC,iDAAiD;QACjD,IAAI,CAAC;YACH,wBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,IAAA,sBAAW,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;YAC/E,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAC;QACH,wBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAvBY,QAAA,aAAa,iBAuBzB;AAED;;;;;GAKG;AACI,MAAM,YAAY,GAAG,UAAU,MAAkB,EAAE,WAAoB,KAAK;IACjF,IAAA,0BAAa,EAAC,MAAM,CAAC,CAAA;IACrB,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,wBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACzB,MAAM,IAAA,sCAA0B,EAAC,oCAAoC,CAAC,CAAA;IACxE,CAAC;IACD,0CAA0C;IAC1C,OAAO,IAAA,qBAAS,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAA;AACxC,CAAC,CAAA;AAVY,QAAA,YAAY,gBAUxB;AACY,QAAA,eAAe,GAAG,oBAAY,CAAA;AAE3C;;;GAGG;AACI,MAAM,eAAe,GAAG,UAAU,UAAsB;IAC7D,IAAA,0BAAa,EAAC,UAAU,CAAC,CAAA;IACzB,6CAA6C;IAC7C,OAAO,wBAAS,CAAC,eAAe,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACxF,CAAC,CAAA;AAJY,QAAA,eAAe,mBAI3B;AAED;;;GAGG;AACI,MAAM,gBAAgB,GAAG,UAAU,UAAsB;IAC9D,OAAO,IAAA,uBAAe,EAAC,IAAA,uBAAe,EAAC,UAAU,CAAC,CAAC,CAAA;AACrD,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B;AAED;;GAEG;AACI,MAAM,YAAY,GAAG,UAAU,SAAqB;IACzD,IAAA,0BAAa,EAAC,SAAS,CAAC,CAAA;IACxB,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC5B,SAAS,GAAG,wBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACrF,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AANY,QAAA,YAAY,gBAMxB;AAED;;GAEG;AACI,MAAM,WAAW,GAAG;IACzB,OAAO,IAAA,qBAAU,EAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;AACvC,CAAC,CAAA;AAFY,QAAA,WAAW,eAEvB;AAED;;GAEG;AACI,MAAM,aAAa,GAAG,UAAU,UAAkB;IACvD,IAAI,CAAC;QACH,IAAA,2BAAc,EAAC,UAAU,CAAC,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,mBAAW,GAAE,CAAA;IAC9B,OAAO,QAAQ,KAAK,UAAU,CAAA;AAChC,CAAC,CAAA;AATY,QAAA,aAAa,iBASzB;AAED,SAAgB,mBAAmB,CAAC,IAAsB;IACxD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAA;IACpD,OAAO;QACL,KAAK;QACL,OAAO;QACP,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,4BAAa,CAAC,CAAC,CAAC,WAAW;QACtD,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,6BAAc,CAAC,CAAC,CAAC,QAAQ;KAClD,CAAA;AACH,CAAC;AAED,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;AACvC,SAAgB,iBAAiB,CAAC,IAAsB;IACtD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAA;IACpD,OAAO;QACL,KAAK;QACL,OAAO;QACP,IAAA,sBAAW,EAAC,WAAW,EAAE,4BAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW;QACrE,IAAA,sBAAW,EAAC,QAAQ,EAAE,6BAAc,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ;KACjE,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,IAAsB,EAAE,WAAW,GAAG,IAAI;IACzE,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAClE,OAAO,SAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;AAChC,CAAC"}

@@ -1,2 +0,2 @@

import type { PrefixedHexString } from './types.js';
import type { PrefixedHexString } from './types.ts';
/**

@@ -3,0 +3,0 @@ * Handling and generating Ethereum addresses

@@ -1,1 +0,1 @@

{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD;;GAEG;AACH,qBAAa,OAAO;IAClB,SAAgB,KAAK,EAAE,UAAU,CAAA;gBAErB,KAAK,EAAE,UAAU;IAO7B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIjC;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;;OAGG;IACH,2BAA2B,IAAI,OAAO;IAOtC;;OAEG;IACH,QAAQ,IAAI,iBAAiB;IAI7B;;OAEG;IACH,OAAO,IAAI,UAAU;CAGtB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM9D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAMtE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAM3E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAK3E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAQT"}
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD;;GAEG;AACH,qBAAa,OAAO;IAClB,SAAgB,KAAK,EAAE,UAAU,CAAA;gBAErB,KAAK,EAAE,UAAU;IAO7B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIjC;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;;OAGG;IACH,2BAA2B,IAAI,OAAO;IAOtC;;OAEG;IACH,QAAQ,IAAI,iBAAiB;IAI7B;;OAEG;IACH,OAAO,IAAI,UAAU;CAGtB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM9D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAMtE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAM3E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAK3E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAQT"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createContractAddress2 = exports.createContractAddress = exports.createAddressFromPrivateKey = exports.createAddressFromPublicKey = exports.createAddressFromString = exports.createAddressFromBigInt = exports.createZeroAddress = exports.Address = void 0;
const account_js_1 = require("./account.js");
const bytes_js_1 = require("./bytes.js");
const constants_js_1 = require("./constants.js");
exports.Address = void 0;
exports.createZeroAddress = createZeroAddress;
exports.createAddressFromBigInt = createAddressFromBigInt;
exports.createAddressFromString = createAddressFromString;
exports.createAddressFromPublicKey = createAddressFromPublicKey;
exports.createAddressFromPrivateKey = createAddressFromPrivateKey;
exports.createContractAddress = createContractAddress;
exports.createContractAddress2 = createContractAddress2;
const account_ts_1 = require("./account.js");
const bytes_ts_1 = require("./bytes.js");
const constants_ts_1 = require("./constants.js");
const errors_ts_1 = require("./errors.js");
/**

@@ -13,3 +21,3 @@ * Handling and generating Ethereum addresses

if (bytes.length !== 20) {
throw new Error('Invalid address length');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Invalid address length');
}

@@ -22,3 +30,3 @@ this.bytes = bytes;

equals(address) {
return (0, bytes_js_1.equalsBytes)(this.bytes, address.bytes);
return (0, bytes_ts_1.equalsBytes)(this.bytes, address.bytes);
}

@@ -36,4 +44,4 @@ /**

isPrecompileOrSystemAddress() {
const address = (0, bytes_js_1.bytesToBigInt)(this.bytes);
const rangeMin = constants_js_1.BIGINT_0;
const address = (0, bytes_ts_1.bytesToBigInt)(this.bytes);
const rangeMin = constants_ts_1.BIGINT_0;
const rangeMax = BigInt('0xffff');

@@ -46,3 +54,3 @@ return address >= rangeMin && address <= rangeMax;

toString() {
return (0, bytes_js_1.bytesToHex)(this.bytes);
return (0, bytes_ts_1.bytesToHex)(this.bytes);
}

@@ -63,3 +71,2 @@ /**

}
exports.createZeroAddress = createZeroAddress;
/**

@@ -70,9 +77,8 @@ * Returns an Address object from a bigint address (they are stored as bigints on the stack)

function createAddressFromBigInt(value) {
const bytes = (0, bytes_js_1.bigIntToBytes)(value);
const bytes = (0, bytes_ts_1.bigIntToBytes)(value);
if (bytes.length > 20) {
throw new Error(`Invalid address, too long: ${bytes.length}`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`Invalid address, too long: ${bytes.length}`);
}
return new Address((0, bytes_js_1.setLengthLeft)(bytes, 20));
return new Address((0, bytes_ts_1.setLengthLeft)(bytes, 20));
}
exports.createAddressFromBigInt = createAddressFromBigInt;
/**

@@ -83,8 +89,7 @@ * Returns an Address object from a hex-encoded string.

function createAddressFromString(str) {
if (!(0, account_js_1.isValidAddress)(str)) {
throw new Error(`Invalid address input=${str}`);
if (!(0, account_ts_1.isValidAddress)(str)) {
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`Invalid address input=${str}`);
}
return new Address((0, bytes_js_1.hexToBytes)(str));
return new Address((0, bytes_ts_1.hexToBytes)(str));
}
exports.createAddressFromString = createAddressFromString;
/**

@@ -96,8 +101,7 @@ * Returns an address for a given public key.

if (!(pubKey instanceof Uint8Array)) {
throw new Error('Public key should be Uint8Array');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Public key should be Uint8Array');
}
const bytes = (0, account_js_1.pubToAddress)(pubKey);
const bytes = (0, account_ts_1.pubToAddress)(pubKey);
return new Address(bytes);
}
exports.createAddressFromPublicKey = createAddressFromPublicKey;
/**

@@ -109,8 +113,7 @@ * Returns an address for a given private key.

if (!(privateKey instanceof Uint8Array)) {
throw new Error('Private key should be Uint8Array');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Private key should be Uint8Array');
}
const bytes = (0, account_js_1.privateToAddress)(privateKey);
const bytes = (0, account_ts_1.privateToAddress)(privateKey);
return new Address(bytes);
}
exports.createAddressFromPrivateKey = createAddressFromPrivateKey;
/**

@@ -123,7 +126,6 @@ * Generates an address for a newly created contract.

if (typeof nonce !== 'bigint') {
throw new Error('Expected nonce to be a bigint');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Expected nonce to be a bigint');
}
return new Address((0, account_js_1.generateAddress)(from.bytes, (0, bytes_js_1.bigIntToBytes)(nonce)));
return new Address((0, account_ts_1.generateAddress)(from.bytes, (0, bytes_ts_1.bigIntToBytes)(nonce)));
}
exports.createContractAddress = createContractAddress;
/**

@@ -137,10 +139,9 @@ * Generates an address for a contract created using CREATE2.

if (!(salt instanceof Uint8Array)) {
throw new Error('Expected salt to be a Uint8Array');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Expected salt to be a Uint8Array');
}
if (!(initCode instanceof Uint8Array)) {
throw new Error('Expected initCode to be a Uint8Array');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Expected initCode to be a Uint8Array');
}
return new Address((0, account_js_1.generateAddress2)(from.bytes, salt, initCode));
return new Address((0, account_ts_1.generateAddress2)(from.bytes, salt, initCode));
}
exports.createContractAddress2 = createContractAddress2;
//# sourceMappingURL=address.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":";;;AAAA,6CAMqB;AACrB,yCAOmB;AACnB,iDAAyC;AAIzC;;GAEG;AACH,MAAa,OAAO;IAGlB,YAAY,KAAiB;QAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;SAC1C;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAgB;QACrB,OAAO,IAAA,sBAAW,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAC/C,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACrD,CAAC;IAED;;;OAGG;IACH,2BAA2B;QACzB,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzC,MAAM,QAAQ,GAAG,uBAAQ,CAAA;QACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;QACjC,OAAO,OAAO,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAA,qBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;CACF;AAhDD,0BAgDC;AAED;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;AACxC,CAAC;AAFD,8CAEC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,KAAa;IACnD,MAAM,KAAK,GAAG,IAAA,wBAAa,EAAC,KAAK,CAAC,CAAA;IAClC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;KAC9D;IACD,OAAO,IAAI,OAAO,CAAC,IAAA,wBAAa,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;AAC9C,CAAC;AAND,0DAMC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,GAAW;IACjD,IAAI,CAAC,IAAA,2BAAc,EAAC,GAAG,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAA;KAChD;IACD,OAAO,IAAI,OAAO,CAAC,IAAA,qBAAU,EAAC,GAAG,CAAC,CAAC,CAAA;AACrC,CAAC;AALD,0DAKC;AAED;;;GAGG;AACH,SAAgB,0BAA0B,CAAC,MAAkB;IAC3D,IAAI,CAAC,CAAC,MAAM,YAAY,UAAU,CAAC,EAAE;QACnC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;KACnD;IACD,MAAM,KAAK,GAAG,IAAA,yBAAY,EAAC,MAAM,CAAC,CAAA;IAClC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAND,gEAMC;AAED;;;GAGG;AACH,SAAgB,2BAA2B,CAAC,UAAsB;IAChE,IAAI,CAAC,CAAC,UAAU,YAAY,UAAU,CAAC,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IACD,MAAM,KAAK,GAAG,IAAA,6BAAgB,EAAC,UAAU,CAAC,CAAA;IAC1C,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAND,kEAMC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,IAAa,EAAE,KAAa;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;KACjD;IACD,OAAO,IAAI,OAAO,CAAC,IAAA,4BAAe,EAAC,IAAI,CAAC,KAAK,EAAE,IAAA,wBAAa,EAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACvE,CAAC;AALD,sDAKC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CACpC,IAAa,EACb,IAAgB,EAChB,QAAoB;IAEpB,IAAI,CAAC,CAAC,IAAI,YAAY,UAAU,CAAC,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACpD;IACD,IAAI,CAAC,CAAC,QAAQ,YAAY,UAAU,CAAC,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;KACxD;IACD,OAAO,IAAI,OAAO,CAAC,IAAA,6BAAgB,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;AAClE,CAAC;AAZD,wDAYC"}
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"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"}

@@ -1,3 +0,3 @@

import type { KZG } from './kzg.js';
import type { PrefixedHexString } from './types.js';
import type { KZG } from './kzg.ts';
import type { PrefixedHexString } from './types.ts';
export declare const getBlobs: (input: string) => `0x${string}`[];

@@ -4,0 +4,0 @@ export declare const blobsToCommitments: (kzg: KZG, blobs: PrefixedHexString[]) => `0x${string}`[];

@@ -1,1 +0,1 @@

{"version":3,"file":"blobs.d.ts","sourceRoot":"","sources":["../../src/blobs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AA8BnD,eAAO,MAAM,QAAQ,UAAW,MAAM,oBAsBrC,CAAA;AAED,eAAO,MAAM,kBAAkB,QAAS,GAAG,SAAS,iBAAiB,EAAE,oBAMtE,CAAA;AAED,eAAO,MAAM,aAAa,QACnB,GAAG,SACD,iBAAiB,EAAE,eACb,iBAAiB,EAAE,oBAOjC,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,eACnB,iBAAiB,yBACN,MAAM,kBAM9B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,gBAAiB,iBAAiB,EAAE,oBAM5E,CAAA"}
{"version":3,"file":"blobs.d.ts","sourceRoot":"","sources":["../../src/blobs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AA8BnD,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,oBAsBrC,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,KAAK,GAAG,EAAE,OAAO,iBAAiB,EAAE,oBAMtE,CAAA;AAED,eAAO,MAAM,aAAa,GACxB,KAAK,GAAG,EACR,OAAO,iBAAiB,EAAE,EAC1B,aAAa,iBAAiB,EAAE,oBAOjC,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,iBAAiB,EAC7B,uBAAuB,MAAM,kBAM9B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GAAI,aAAa,iBAAiB,EAAE,oBAM5E,CAAA"}

@@ -5,3 +5,3 @@ "use strict";

const sha256_js_1 = require("ethereum-cryptography/sha256.js");
const bytes_js_1 = require("./bytes.js");
const bytes_ts_1 = require("./bytes.js");
/**

@@ -29,6 +29,6 @@ * These utilities for constructing blobs are borrowed from https://github.com/Inphi/eip4844-interop.git

}
return (0, bytes_js_1.bytesToHex)(blob);
return (0, bytes_ts_1.bytesToHex)(blob);
}
const getBlobs = (input) => {
const data = (0, bytes_js_1.utf8ToBytes)(input);
const data = (0, bytes_ts_1.utf8ToBytes)(input);
const len = data.byteLength;

@@ -76,4 +76,4 @@ if (len === 0) {

computedVersionedHash.set([blobCommitmentVersion], 0);
computedVersionedHash.set((0, sha256_js_1.sha256)((0, bytes_js_1.hexToBytes)(commitment)).subarray(1), 1);
return (0, bytes_js_1.bytesToHex)(computedVersionedHash);
computedVersionedHash.set((0, sha256_js_1.sha256)((0, bytes_ts_1.hexToBytes)(commitment)).subarray(1), 1);
return (0, bytes_ts_1.bytesToHex)(computedVersionedHash);
};

@@ -80,0 +80,0 @@ exports.computeVersionedHash = computeVersionedHash;

@@ -1,1 +0,1 @@

{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../../src/blobs.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../../src/blobs.ts"],"names":[],"mappings":"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"}
import { bytesToHex as _bytesToUnprefixedHex } from 'ethereum-cryptography/utils.js';
import type { PrefixedHexString, TransformableToBytes } from './types.js';
import type { PrefixedHexString, TransformableToBytes } from './types.ts';
/**

@@ -13,4 +13,4 @@ * @deprecated

*/
export declare const hexToBytes: (hex: string) => Uint8Array;
export declare const unprefixedHexToBytes: (hex: string) => Uint8Array;
export declare const hexToBytes: (hex: string) => Uint8Array<ArrayBufferLike>;
export declare const unprefixedHexToBytes: (hex: string) => Uint8Array<ArrayBufferLike>;
export declare const bytesToHex: (bytes: Uint8Array) => PrefixedHexString;

@@ -226,5 +226,17 @@ /**

/**
* Converts a Uint8Array of bytes into an array of bits.
* @param {Uint8Array} bytes - The input byte array.
* @param {number} bitLength - The number of bits to extract from the input bytes.
* @returns {number[]} An array of bits (each 0 or 1) corresponding to the input bytes.
*/
export declare function bytesToBits(bytes: Uint8Array, bitLength?: number): number[];
/**
* Converts an array of bits into a Uint8Array.
* The input bits are grouped into sets of 8, with the first bit in each group being the most significant.
* @param {number[]} bits - The input array of bits (each should be 0 or 1). Its length should be a multiple of 8.
* @returns {Uint8Array} A Uint8Array constructed from the input bits.
*/
export declare function bitsToBytes(bits: number[]): Uint8Array;
/**
* Compares two byte arrays and returns the count of consecutively matching items from the start.
*
* @function
* @param {Uint8Array} bytes1 - The first Uint8Array to compare.

@@ -235,2 +247,19 @@ * @param {Uint8Array} bytes2 - The second Uint8Array to compare.

export declare function matchingBytesLength(bytes1: Uint8Array, bytes2: Uint8Array): number;
/**
* Compares two arrays of bits (0 or 1) and returns the count of consecutively matching bits from the start.
* @param {number[]} bits1 - The first array of bits, in bytes or bits.
* @param {number[]} bits2 - The second array of bits, in bytes or bits.
* @returns {number} The count of consecutively matching bits from the start.
*/
export declare function matchingBitsLength(bits1: number[], bits2: number[]): number;
/**
* Checks whether two arrays of bits are equal.
*
* Two arrays are considered equal if they have the same length and each corresponding element is identical.
*
* @param {number[]} bits1 - The first bits array.
* @param {number[]} bits2 - The second bits array.
* @returns {boolean} True if the arrays are equal; otherwise, false.
*/
export declare function equalsBits(bits1: number[], bits2: number[]): boolean;
//# sourceMappingURL=bytes.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"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"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.matchingBytesLength = exports.hexToBigInt = exports.utf8ToBytes = exports.equalsBytes = exports.bytesToUtf8 = exports.bigInt64ToBytes = exports.int32ToBytes = exports.bytesToBigInt64 = exports.bytesToInt32 = exports.concatBytes = exports.randomBytes = exports.compareBytes = exports.intToUnpaddedBytes = exports.bigIntToAddressBytes = exports.bigIntToUnpaddedBytes = exports.bigIntMin = exports.bigIntMax = exports.bigIntToHex = exports.validateNoLeadingZeroes = exports.short = exports.addHexPrefix = exports.toUnsigned = exports.fromSigned = exports.toBytes = exports.unpadHex = exports.unpadArray = exports.unpadBytes = exports.setLengthRight = exports.setLengthLeft = exports.bigIntToBytes = exports.intToBytes = exports.intToHex = exports.bytesToInt = exports.bytesToBigInt = exports.bytesToHex = exports.unprefixedHexToBytes = exports.hexToBytes = exports.bytesToUnprefixedHex = void 0;
exports.utf8ToBytes = exports.equalsBytes = exports.bytesToUtf8 = exports.concatBytes = exports.randomBytes = exports.compareBytes = exports.intToUnpaddedBytes = exports.bigIntToAddressBytes = exports.bigIntToUnpaddedBytes = exports.bigIntMin = exports.bigIntMax = exports.bigIntToHex = exports.validateNoLeadingZeroes = exports.short = exports.addHexPrefix = exports.toUnsigned = exports.fromSigned = exports.toBytes = exports.unpadHex = exports.unpadArray = exports.unpadBytes = exports.setLengthRight = exports.setLengthLeft = exports.bigIntToBytes = exports.intToBytes = exports.intToHex = exports.bytesToInt = exports.bytesToBigInt = exports.bytesToHex = exports.unprefixedHexToBytes = exports.hexToBytes = exports.bytesToUnprefixedHex = void 0;
exports.bytesToInt32 = bytesToInt32;
exports.bytesToBigInt64 = bytesToBigInt64;
exports.int32ToBytes = int32ToBytes;
exports.bigInt64ToBytes = bigInt64ToBytes;
exports.hexToBigInt = hexToBigInt;
exports.bytesToBits = bytesToBits;
exports.bitsToBytes = bitsToBytes;
exports.matchingBytesLength = matchingBytesLength;
exports.matchingBitsLength = matchingBitsLength;
exports.equalsBits = equalsBits;
const random_js_1 = require("ethereum-cryptography/random.js");
// eslint-disable-next-line no-restricted-imports
const utils_js_1 = require("ethereum-cryptography/utils.js");
const helpers_js_1 = require("./helpers.js");
const internal_js_1 = require("./internal.js");
const errors_ts_1 = require("./errors.js");
const helpers_ts_1 = require("./helpers.js");
const internal_ts_1 = require("./internal.js");
const BIGINT_0 = BigInt(0);

@@ -22,4 +32,4 @@ /**

if (!hex.startsWith('0x'))
throw new Error('input string must be 0x prefixed');
return (0, utils_js_1.hexToBytes)((0, internal_js_1.padToEven)((0, internal_js_1.stripHexPrefix)(hex)));
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('input string must be 0x prefixed');
return (0, utils_js_1.hexToBytes)((0, internal_ts_1.padToEven)((0, internal_ts_1.stripHexPrefix)(hex)));
};

@@ -29,4 +39,4 @@ exports.hexToBytes = hexToBytes;

if (hex.startsWith('0x'))
throw new Error('input string cannot be 0x prefixed');
return (0, utils_js_1.hexToBytes)((0, internal_js_1.padToEven)(hex));
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('input string cannot be 0x prefixed');
return (0, utils_js_1.hexToBytes)((0, internal_ts_1.padToEven)(hex));
};

@@ -78,3 +88,3 @@ exports.unprefixedHexToBytes = unprefixedHexToBytes;

if (!Number.isSafeInteger(res))
throw new Error('Number exceeds 53 bits');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Number exceeds 53 bits');
return res;

@@ -91,3 +101,3 @@ };

if (!Number.isSafeInteger(i) || i < 0) {
throw new Error(`Received an invalid integer type: ${i}`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`Received an invalid integer type: ${i}`);
}

@@ -113,4 +123,3 @@ return ('0x' + i.toString(16));

const bigIntToBytes = (num, littleEndian = false) => {
// eslint-disable-next-line @typescript-eslint/no-use-before-define
const bytes = (0, exports.toBytes)(`0x${(0, internal_js_1.padToEven)(num.toString(16))}`);
const bytes = (0, exports.toBytes)(`0x${(0, internal_ts_1.padToEven)(num.toString(16))}`);
return littleEndian ? bytes.reverse() : bytes;

@@ -149,3 +158,3 @@ };

const setLengthLeft = (msg, length) => {
(0, helpers_js_1.assertIsBytes)(msg);
(0, helpers_ts_1.assertIsBytes)(msg);
return setLength(msg, length, false);

@@ -162,3 +171,3 @@ };

const setLengthRight = (msg, length) => {
(0, helpers_js_1.assertIsBytes)(msg);
(0, helpers_ts_1.assertIsBytes)(msg);
return setLength(msg, length, true);

@@ -186,3 +195,3 @@ };

const unpadBytes = (a) => {
(0, helpers_js_1.assertIsBytes)(a);
(0, helpers_ts_1.assertIsBytes)(a);
return stripZeros(a);

@@ -197,3 +206,3 @@ };

const unpadArray = (a) => {
(0, helpers_js_1.assertIsArray)(a);
(0, helpers_ts_1.assertIsArray)(a);
return stripZeros(a);

@@ -208,4 +217,4 @@ };

const unpadHex = (a) => {
(0, helpers_js_1.assertIsHexString)(a);
return `0x${stripZeros((0, internal_js_1.stripHexPrefix)(a))}`;
(0, helpers_ts_1.assertIsHexString)(a);
return `0x${stripZeros((0, internal_ts_1.stripHexPrefix)(a))}`;
};

@@ -228,4 +237,4 @@ exports.unpadHex = unpadHex;

if (typeof v === 'string') {
if (!(0, internal_js_1.isHexString)(v)) {
throw new Error(`Cannot convert string to Uint8Array. toBytes only supports 0x-prefixed hex strings and this string was given: ${v}`);
if (!(0, internal_ts_1.isHexString)(v)) {
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`Cannot convert string to Uint8Array. toBytes only supports 0x-prefixed hex strings and this string was given: ${v}`);
}

@@ -239,3 +248,3 @@ return (0, exports.hexToBytes)(v);

if (v < BIGINT_0) {
throw new Error(`Cannot convert negative bigint to Uint8Array. Given: ${v}`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`Cannot convert negative bigint to Uint8Array. Given: ${v}`);
}

@@ -251,3 +260,3 @@ let n = v.toString(16);

}
throw new Error('invalid type');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('invalid type');
};

@@ -282,3 +291,3 @@ exports.toBytes = toBytes;

}
return (0, internal_js_1.isHexString)(str) ? str : `0x${str}`;
return (0, internal_ts_1.isHexString)(str) ? str : `0x${str}`;
};

@@ -322,3 +331,3 @@ exports.addHexPrefix = addHexPrefix;

if (v !== undefined && v.length > 0 && v[0] === 0) {
throw new Error(`${k} cannot have leading zeroes, received: ${(0, exports.bytesToHex)(v)}`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`${k} cannot have leading zeroes, received: ${(0, exports.bytesToHex)(v)}`);
}

@@ -437,3 +446,2 @@ }

}
exports.bytesToInt32 = bytesToInt32;
/**

@@ -452,3 +460,2 @@ * @notice Convert a Uint8Array to a 64-bit bigint

}
exports.bytesToBigInt64 = bytesToBigInt64;
/**

@@ -466,3 +473,2 @@ * @notice Convert a 32-bit integer to a Uint8Array.

}
exports.int32ToBytes = int32ToBytes;
/**

@@ -480,4 +486,2 @@ * @notice Convert a 64-bit bigint to a Uint8Array.

}
exports.bigInt64ToBytes = bigInt64ToBytes;
// eslint-disable-next-line no-restricted-imports
var utils_js_2 = require("ethereum-cryptography/utils.js");

@@ -488,9 +492,37 @@ Object.defineProperty(exports, "bytesToUtf8", { enumerable: true, get: function () { return utils_js_2.bytesToUtf8; } });

function hexToBigInt(input) {
return (0, exports.bytesToBigInt)((0, exports.hexToBytes)((0, internal_js_1.isHexString)(input) ? input : `0x${input}`));
return (0, exports.bytesToBigInt)((0, exports.hexToBytes)((0, internal_ts_1.isHexString)(input) ? input : `0x${input}`));
}
exports.hexToBigInt = hexToBigInt;
/**
* Converts a Uint8Array of bytes into an array of bits.
* @param {Uint8Array} bytes - The input byte array.
* @param {number} bitLength - The number of bits to extract from the input bytes.
* @returns {number[]} An array of bits (each 0 or 1) corresponding to the input bytes.
*/
function bytesToBits(bytes, bitLength) {
const bits = [];
for (let i = 0; i < (bitLength ?? bytes.length * 8); i++) {
const byteIndex = Math.floor(i / 8);
const bitIndex = 7 - (i % 8);
bits.push((bytes[byteIndex] >> bitIndex) & 1);
}
return bits;
}
/**
* Converts an array of bits into a Uint8Array.
* The input bits are grouped into sets of 8, with the first bit in each group being the most significant.
* @param {number[]} bits - The input array of bits (each should be 0 or 1). Its length should be a multiple of 8.
* @returns {Uint8Array} A Uint8Array constructed from the input bits.
*/
function bitsToBytes(bits) {
const numBytes = Math.ceil(bits.length / 8); // Ensure partial byte storage
const byteData = new Uint8Array(numBytes);
for (let i = 0; i < bits.length; i++) {
const byteIndex = Math.floor(i / 8);
const bitIndex = 7 - (i % 8);
byteData[byteIndex] |= bits[i] << bitIndex;
}
return byteData;
}
/**
* Compares two byte arrays and returns the count of consecutively matching items from the start.
*
* @function
* @param {Uint8Array} bytes1 - The first Uint8Array to compare.

@@ -514,3 +546,41 @@ * @param {Uint8Array} bytes2 - The second Uint8Array to compare.

}
exports.matchingBytesLength = matchingBytesLength;
/**
* Compares two arrays of bits (0 or 1) and returns the count of consecutively matching bits from the start.
* @param {number[]} bits1 - The first array of bits, in bytes or bits.
* @param {number[]} bits2 - The second array of bits, in bytes or bits.
* @returns {number} The count of consecutively matching bits from the start.
*/
function matchingBitsLength(bits1, bits2) {
let count = 0;
const minLength = Math.min(bits1.length, bits2.length);
for (let i = 0; i < minLength; i++) {
if (bits1[i] === bits2[i]) {
count++;
}
else {
return count;
}
}
return count;
}
/**
* Checks whether two arrays of bits are equal.
*
* Two arrays are considered equal if they have the same length and each corresponding element is identical.
*
* @param {number[]} bits1 - The first bits array.
* @param {number[]} bits2 - The second bits array.
* @returns {boolean} True if the arrays are equal; otherwise, false.
*/
function equalsBits(bits1, bits2) {
if (bits1.length !== bits2.length) {
return false;
}
for (let i = 0; i < bits1.length; i++) {
if (bits1[i] !== bits2[i]) {
return false;
}
}
return true;
}
//# sourceMappingURL=bytes.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"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"}

@@ -28,3 +28,3 @@ /**

*/
export declare const KECCAK256_NULL: Uint8Array;
export declare const KECCAK256_NULL: Uint8Array<ArrayBufferLike>;
/**

@@ -37,3 +37,3 @@ * Keccak-256 of an RLP of an empty array

*/
export declare const KECCAK256_RLP_ARRAY: Uint8Array;
export declare const KECCAK256_RLP_ARRAY: Uint8Array<ArrayBufferLike>;
/**

@@ -46,7 +46,8 @@ * Keccak-256 hash of the RLP of null

*/
export declare const KECCAK256_RLP: Uint8Array;
export declare const KECCAK256_RLP: Uint8Array<ArrayBufferLike>;
export declare const SHA256_NULL: Uint8Array<ArrayBufferLike>;
/**
* RLP encoded empty string
*/
export declare const RLP_EMPTY_STRING: Uint8Array;
export declare const RLP_EMPTY_STRING: Uint8Array<ArrayBuffer>;
export declare const MAX_WITHDRAWALS_PER_PAYLOAD = 16;

@@ -53,0 +54,0 @@ export declare const RIPEMD160_ADDRESS_STRING = "0000000000000000000000000000000000000003";

@@ -1,1 +0,1 @@

{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,eAAO,MAAM,UAAU,QAA+B,CAAA;AAEtD;;GAEG;AACH,eAAO,MAAM,WAAW,QAEvB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAE9B,CAAA;AAED,eAAO,MAAM,eAAe,QAAoB,CAAA;AAChD,eAAO,MAAM,qBAAqB,QAAgC,CAAA;AAElE;;GAEG;AACH,eAAO,MAAM,UAAU,QAEtB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,uEAAuE,CAAA;AAEpG;;GAEG;AACH,eAAO,MAAM,cAAc,YAA+B,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,qBAAqB,uEACoC,CAAA;AAEtE;;GAEG;AACH,eAAO,MAAM,mBAAmB,YAAoC,CAAA;AAEpE;;GAEG;AACH,eAAO,MAAM,eAAe,uEAAuE,CAAA;AAEnG;;GAEG;AACH,eAAO,MAAM,aAAa,YAA8B,CAAA;AAExD;;GAEG;AACH,eAAO,MAAM,gBAAgB,YAA0B,CAAA;AAEvD,eAAO,MAAM,2BAA2B,KAAK,CAAA;AAE7C,eAAO,MAAM,wBAAwB,6CAA6C,CAAA;AAElF;;GAEG;AAEH,eAAO,MAAM,WAAW,QAAa,CAAA;AAErC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AAEjC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AAEnC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AAErC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,aAAa,QAAwC,CAAA;AAClE,eAAO,MAAM,cAAc,QAA4D,CAAA;AACvF,eAAO,MAAM,cAAc,QACmD,CAAA;AAC9E,eAAO,MAAM,cAAc,QAAyB,CAAA"}
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,UAAU,QAA+B,CAAA;AAEtD;;GAEG;AACH,eAAO,MAAM,WAAW,QAEvB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAE9B,CAAA;AAED,eAAO,MAAM,eAAe,QAAoB,CAAA;AAChD,eAAO,MAAM,qBAAqB,QAAgC,CAAA;AAElE;;GAEG;AACH,eAAO,MAAM,UAAU,QAEtB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,uEAAuE,CAAA;AAEpG;;GAEG;AACH,eAAO,MAAM,cAAc,6BAA+B,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,qBAAqB,uEACoC,CAAA;AAEtE;;GAEG;AACH,eAAO,MAAM,mBAAmB,6BAAoC,CAAA;AAEpE;;GAEG;AACH,eAAO,MAAM,eAAe,uEAAuE,CAAA;AAEnG;;GAEG;AACH,eAAO,MAAM,aAAa,6BAA8B,CAAA;AAExD,eAAO,MAAM,WAAW,6BAA2B,CAAA;AAEnD;;GAEG;AACH,eAAO,MAAM,gBAAgB,yBAA0B,CAAA;AAEvD,eAAO,MAAM,2BAA2B,KAAK,CAAA;AAE7C,eAAO,MAAM,wBAAwB,6CAA6C,CAAA;AAElF;;GAEG;AAEH,eAAO,MAAM,WAAW,QAAa,CAAA;AAErC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AAEjC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AAEnC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AAErC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,aAAa,QAAwC,CAAA;AAClE,eAAO,MAAM,cAAc,QAA4D,CAAA;AACvF,eAAO,MAAM,cAAc,QACmD,CAAA;AAC9E,eAAO,MAAM,cAAc,QAAyB,CAAA"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BIGINT_2EXP256 = exports.BIGINT_2EXP224 = exports.BIGINT_2EXP160 = exports.BIGINT_2EXP96 = exports.BIGINT_224 = exports.BIGINT_160 = exports.BIGINT_100 = exports.BIGINT_96 = exports.BIGINT_256 = exports.BIGINT_255 = exports.BIGINT_128 = exports.BIGINT_64 = exports.BIGINT_32 = exports.BIGINT_31 = exports.BIGINT_28 = exports.BIGINT_27 = exports.BIGINT_8 = exports.BIGINT_7 = exports.BIGINT_3 = exports.BIGINT_2 = exports.BIGINT_1 = exports.BIGINT_0 = exports.BIGINT_NEG1 = exports.RIPEMD160_ADDRESS_STRING = exports.MAX_WITHDRAWALS_PER_PAYLOAD = exports.RLP_EMPTY_STRING = exports.KECCAK256_RLP = exports.KECCAK256_RLP_S = exports.KECCAK256_RLP_ARRAY = exports.KECCAK256_RLP_ARRAY_S = exports.KECCAK256_NULL = exports.KECCAK256_NULL_S = exports.TWO_POW256 = exports.SECP256K1_ORDER_DIV_2 = exports.SECP256K1_ORDER = exports.MAX_INTEGER_BIGINT = exports.MAX_INTEGER = exports.MAX_UINT64 = void 0;
exports.BIGINT_2EXP256 = exports.BIGINT_2EXP224 = exports.BIGINT_2EXP160 = exports.BIGINT_2EXP96 = exports.BIGINT_224 = exports.BIGINT_160 = exports.BIGINT_100 = exports.BIGINT_96 = exports.BIGINT_256 = exports.BIGINT_255 = exports.BIGINT_128 = exports.BIGINT_64 = exports.BIGINT_32 = exports.BIGINT_31 = exports.BIGINT_28 = exports.BIGINT_27 = exports.BIGINT_8 = exports.BIGINT_7 = exports.BIGINT_3 = exports.BIGINT_2 = exports.BIGINT_1 = exports.BIGINT_0 = exports.BIGINT_NEG1 = exports.RIPEMD160_ADDRESS_STRING = exports.MAX_WITHDRAWALS_PER_PAYLOAD = exports.RLP_EMPTY_STRING = exports.SHA256_NULL = exports.KECCAK256_RLP = exports.KECCAK256_RLP_S = exports.KECCAK256_RLP_ARRAY = exports.KECCAK256_RLP_ARRAY_S = exports.KECCAK256_NULL = exports.KECCAK256_NULL_S = exports.TWO_POW256 = exports.SECP256K1_ORDER_DIV_2 = exports.SECP256K1_ORDER = exports.MAX_INTEGER_BIGINT = exports.MAX_INTEGER = exports.MAX_UINT64 = void 0;
const secp256k1_js_1 = require("ethereum-cryptography/secp256k1.js");
const bytes_js_1 = require("./bytes.js");
const sha256_js_1 = require("ethereum-cryptography/sha256.js");
const bytes_ts_1 = require("./bytes.js");
/**

@@ -33,3 +34,3 @@ * 2^64-1

*/
exports.KECCAK256_NULL = (0, bytes_js_1.hexToBytes)(exports.KECCAK256_NULL_S);
exports.KECCAK256_NULL = (0, bytes_ts_1.hexToBytes)(exports.KECCAK256_NULL_S);
/**

@@ -42,3 +43,3 @@ * Keccak-256 of an RLP of an empty array

*/
exports.KECCAK256_RLP_ARRAY = (0, bytes_js_1.hexToBytes)(exports.KECCAK256_RLP_ARRAY_S);
exports.KECCAK256_RLP_ARRAY = (0, bytes_ts_1.hexToBytes)(exports.KECCAK256_RLP_ARRAY_S);
/**

@@ -51,3 +52,4 @@ * Keccak-256 hash of the RLP of null

*/
exports.KECCAK256_RLP = (0, bytes_js_1.hexToBytes)(exports.KECCAK256_RLP_S);
exports.KECCAK256_RLP = (0, bytes_ts_1.hexToBytes)(exports.KECCAK256_RLP_S);
exports.SHA256_NULL = (0, sha256_js_1.sha256)(new Uint8Array());
/**

@@ -54,0 +56,0 @@ * RLP encoded empty string

@@ -1,1 +0,1 @@

{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAA,qEAA8D;AAE9D,yCAAuC;AAEvC;;GAEG;AACU,QAAA,UAAU,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAA;AAEtD;;GAEG;AACU,QAAA,WAAW,GAAG,MAAM,CAC/B,oEAAoE,CACrE,CAAA;AAED;;;;GAIG;AACU,QAAA,kBAAkB,GAAG,MAAM,CACtC,gFAAgF,CACjF,CAAA;AAEY,QAAA,eAAe,GAAG,wBAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AACnC,QAAA,qBAAqB,GAAG,wBAAS,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAElE;;GAEG;AACU,QAAA,UAAU,GAAG,MAAM,CAC9B,qEAAqE,CACtE,CAAA;AAED;;GAEG;AACU,QAAA,gBAAgB,GAAG,oEAAoE,CAAA;AAEpG;;GAEG;AACU,QAAA,cAAc,GAAG,IAAA,qBAAU,EAAC,wBAAgB,CAAC,CAAA;AAE1D;;GAEG;AACU,QAAA,qBAAqB,GAChC,oEAAoE,CAAA;AAEtE;;GAEG;AACU,QAAA,mBAAmB,GAAG,IAAA,qBAAU,EAAC,6BAAqB,CAAC,CAAA;AAEpE;;GAEG;AACU,QAAA,eAAe,GAAG,oEAAoE,CAAA;AAEnG;;GAEG;AACU,QAAA,aAAa,GAAG,IAAA,qBAAU,EAAC,uBAAe,CAAC,CAAA;AAExD;;GAEG;AACU,QAAA,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAE1C,QAAA,2BAA2B,GAAG,EAAE,CAAA;AAEhC,QAAA,wBAAwB,GAAG,0CAA0C,CAAA;AAElF;;GAEG;AAEU,QAAA,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAExB,QAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AACpB,QAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AACpB,QAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AACpB,QAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AACpB,QAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AACpB,QAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAEpB,QAAA,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACtB,QAAA,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACtB,QAAA,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACtB,QAAA,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACtB,QAAA,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AAEtB,QAAA,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;AACxB,QAAA,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;AACxB,QAAA,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;AAExB,QAAA,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACtB,QAAA,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;AACxB,QAAA,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;AACxB,QAAA,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;AACxB,QAAA,aAAa,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAA;AACrD,QAAA,cAAc,GAAG,MAAM,CAAC,iDAAiD,CAAC,CAAA;AAC1E,QAAA,cAAc,GACzB,MAAM,CAAC,oEAAoE,CAAC,CAAA;AACjE,QAAA,cAAc,GAAG,gBAAQ,IAAI,kBAAU,CAAA"}
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}

@@ -5,12 +5,14 @@ export type DBObject = {

export type BatchDBOp<TKey extends Uint8Array | string | number = Uint8Array, TValue extends Uint8Array | string | DBObject = Uint8Array> = PutBatch<TKey, TValue> | DelBatch<TKey>;
export declare enum KeyEncoding {
String = "string",
Bytes = "view",
Number = "number"
}
export declare enum ValueEncoding {
String = "string",
Bytes = "view",
JSON = "json"
}
export type KeyEncoding = (typeof KeyEncoding)[keyof typeof KeyEncoding];
export declare const KeyEncoding: {
readonly String: "string";
readonly Bytes: "view";
readonly Number: "number";
};
export type ValueEncoding = (typeof ValueEncoding)[keyof typeof ValueEncoding];
export declare const ValueEncoding: {
readonly String: "string";
readonly Bytes: "view";
readonly JSON: "json";
};
export type EncodingOpts = {

@@ -17,0 +19,0 @@ keyEncoding?: KeyEncoding;

@@ -1,1 +0,1 @@

{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/db.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAA;CAC1C,CAAA;AACD,MAAM,MAAM,SAAS,CACnB,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,MAAM,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;AAE3C,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,KAAK,SAAS;IACd,MAAM,WAAW;CAClB;AAED,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,KAAK,SAAS;IACd,IAAI,SAAS;CACd;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B,CAAA;AACD,MAAM,WAAW,QAAQ,CACvB,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,MAAM,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU;IAE1D,IAAI,EAAE,KAAK,CAAA;IACX,GAAG,EAAE,IAAI,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,QAAQ,CAAC,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU;IAC9E,IAAI,EAAE,KAAK,CAAA;IACX,GAAG,EAAE,IAAI,CAAA;IACT,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,EAAE,CACjB,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,MAAM,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU;IAE1D;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEhE;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/D;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAElD;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAExD;;;OAGG;IACH,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAE/B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAEtB"}
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/db.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAA;CAC1C,CAAA;AACD,MAAM,MAAM,SAAS,CACnB,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,MAAM,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;AAE3C,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAA;AAExE,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAA;AAE9E,eAAO,MAAM,aAAa;;;;CAIhB,CAAA;AAEV,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B,CAAA;AACD,MAAM,WAAW,QAAQ,CACvB,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,MAAM,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU;IAE1D,IAAI,EAAE,KAAK,CAAA;IACX,GAAG,EAAE,IAAI,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,QAAQ,CAAC,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU;IAC9E,IAAI,EAAE,KAAK,CAAA;IACX,GAAG,EAAE,IAAI,CAAA;IACT,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,EAAE,CACjB,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,MAAM,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU;IAE1D;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEhE;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/D;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAElD;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAExD;;;OAGG;IACH,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAE/B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAEtB"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ValueEncoding = exports.KeyEncoding = void 0;
var KeyEncoding;
(function (KeyEncoding) {
KeyEncoding["String"] = "string";
KeyEncoding["Bytes"] = "view";
KeyEncoding["Number"] = "number";
})(KeyEncoding = exports.KeyEncoding || (exports.KeyEncoding = {}));
var ValueEncoding;
(function (ValueEncoding) {
ValueEncoding["String"] = "string";
ValueEncoding["Bytes"] = "view";
ValueEncoding["JSON"] = "json";
})(ValueEncoding = exports.ValueEncoding || (exports.ValueEncoding = {}));
exports.KeyEncoding = {
String: 'string',
Bytes: 'view',
Number: 'number',
};
exports.ValueEncoding = {
String: 'string',
Bytes: 'view',
JSON: 'json',
};
//# sourceMappingURL=db.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/db.ts"],"names":[],"mappings":";;;AAQA,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,6BAAc,CAAA;IACd,gCAAiB,CAAA;AACnB,CAAC,EAJW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAItB;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,+BAAc,CAAA;IACd,8BAAa,CAAA;AACf,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB"}
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/db.ts"],"names":[],"mappings":";;;AAUa,QAAA,WAAW,GAAG;IACzB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,QAAQ;CACR,CAAA;AAIG,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,MAAM;CACJ,CAAA"}

@@ -1,2 +0,2 @@

import type { PrefixedHexString } from './types.js';
import type { PrefixedHexString } from './types.ts';
export type StoragePair = [key: PrefixedHexString, value: PrefixedHexString];

@@ -3,0 +3,0 @@ export type AccountState = [

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseGethGenesisState = void 0;
const bytes_js_1 = require("./bytes.js");
const internal_js_1 = require("./internal.js");
exports.parseGethGenesisState = parseGethGenesisState;
const bytes_ts_1 = require("./bytes.js");
const internal_ts_1 = require("./internal.js");
/**

@@ -15,7 +15,7 @@ * Parses the geth genesis state into Blockchain {@link GenesisState}

// create a map with lowercase for easy lookups
const prefixedAddress = (0, bytes_js_1.addHexPrefix)(address.toLowerCase());
balance = (0, internal_js_1.isHexString)(balance) ? balance : (0, bytes_js_1.bigIntToHex)(BigInt(balance));
code = code !== undefined ? (0, bytes_js_1.addHexPrefix)(code) : undefined;
const prefixedAddress = (0, bytes_ts_1.addHexPrefix)(address.toLowerCase());
balance = (0, internal_ts_1.isHexString)(balance) ? balance : (0, bytes_ts_1.bigIntToHex)(BigInt(balance));
code = code !== undefined ? (0, bytes_ts_1.addHexPrefix)(code) : undefined;
storage = storage !== undefined ? Object.entries(storage) : undefined;
nonce = nonce !== undefined ? (0, bytes_js_1.addHexPrefix)(nonce) : undefined;
nonce = nonce !== undefined ? (0, bytes_ts_1.addHexPrefix)(nonce) : undefined;
state[prefixedAddress] = [balance, code, storage, nonce];

@@ -25,3 +25,2 @@ }

}
exports.parseGethGenesisState = parseGethGenesisState;
//# sourceMappingURL=genesis.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"genesis.js","sourceRoot":"","sources":["../../src/genesis.ts"],"names":[],"mappings":";;;AAAA,yCAAsD;AACtD,+CAA2C;AAyC3C;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,IAAS;IAC7C,MAAM,KAAK,GAAiB,EAAE,CAAA;IAC9B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC7C,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3D,+CAA+C;QAC/C,MAAM,eAAe,GAAG,IAAA,uBAAY,EAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;QAC3D,OAAO,GAAG,IAAA,yBAAW,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,sBAAW,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACvE,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,uBAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC1D,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACrE,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,uBAAY,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7D,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;KACzD;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAbD,sDAaC"}
{"version":3,"file":"genesis.js","sourceRoot":"","sources":["../../src/genesis.ts"],"names":[],"mappings":";;AA8CA,sDAaC;AA3DD,yCAAsD;AACtD,+CAA2C;AAyC3C;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,IAAS;IAC7C,MAAM,KAAK,GAAiB,EAAE,CAAA;IAC9B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3D,+CAA+C;QAC/C,MAAM,eAAe,GAAG,IAAA,uBAAY,EAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;QAC3D,OAAO,GAAG,IAAA,yBAAW,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,sBAAW,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACvE,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,uBAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC1D,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACrE,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,uBAAY,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7D,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}

@@ -1,1 +0,1 @@

{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UAAoB,MAAM,KAAG,IAK1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,UAAoB,UAAU,KAAG,IAK1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,UAAoB,MAAM,EAAE,KAAG,IAKxD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,UAAoB,MAAM,KAAG,IAKvD,CAAA"}
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAa,OAAO,MAAM,KAAG,IAK1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAa,OAAO,UAAU,KAAG,IAK1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAa,OAAO,MAAM,EAAE,KAAG,IAKxD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAa,OAAO,MAAM,KAAG,IAKvD,CAAA"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.assertIsString = exports.assertIsArray = exports.assertIsBytes = exports.assertIsHexString = void 0;
const internal_js_1 = require("./internal.js");
const errors_ts_1 = require("./errors.js");
const internal_ts_1 = require("./internal.js");
/**

@@ -10,5 +11,5 @@ * Throws if a string is not hex prefixed

const assertIsHexString = function (input) {
if (!(0, internal_js_1.isHexString)(input)) {
if (!(0, internal_ts_1.isHexString)(input)) {
const msg = `This method only supports 0x-prefixed hex strings but input was: ${input}`;
throw new Error(msg);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(msg);
}

@@ -24,3 +25,3 @@ };

const msg = `This method only supports Uint8Array but input was: ${input}`;
throw new Error(msg);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(msg);
}

@@ -36,3 +37,3 @@ };

const msg = `This method only supports number arrays but input was: ${input}`;
throw new Error(msg);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(msg);
}

@@ -48,3 +49,3 @@ };

const msg = `This method only supports strings but input was: ${input}`;
throw new Error(msg);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(msg);
}

@@ -51,0 +52,0 @@ };

@@ -1,1 +0,1 @@

{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAE3C;;;GAGG;AACI,MAAM,iBAAiB,GAAG,UAAU,KAAa;IACtD,IAAI,CAAC,IAAA,yBAAW,EAAC,KAAK,CAAC,EAAE;QACvB,MAAM,GAAG,GAAG,oEAAoE,KAAK,EAAE,CAAA;QACvF,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;KACrB;AACH,CAAC,CAAA;AALY,QAAA,iBAAiB,qBAK7B;AAED;;;GAGG;AACI,MAAM,aAAa,GAAG,UAAU,KAAiB;IACtD,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE;QAClC,MAAM,GAAG,GAAG,uDAAuD,KAAK,EAAE,CAAA;QAC1E,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;KACrB;AACH,CAAC,CAAA;AALY,QAAA,aAAa,iBAKzB;AAED;;;GAGG;AACI,MAAM,aAAa,GAAG,UAAU,KAAe;IACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,MAAM,GAAG,GAAG,0DAA0D,KAAK,EAAE,CAAA;QAC7E,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;KACrB;AACH,CAAC,CAAA;AALY,QAAA,aAAa,iBAKzB;AAED;;;GAGG;AACI,MAAM,cAAc,GAAG,UAAU,KAAa;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAM,GAAG,GAAG,oDAAoD,KAAK,EAAE,CAAA;QACvE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;KACrB;AACH,CAAC,CAAA;AALY,QAAA,cAAc,kBAK1B"}
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AACxD,+CAA2C;AAE3C;;;GAGG;AACI,MAAM,iBAAiB,GAAG,UAAU,KAAa;IACtD,IAAI,CAAC,IAAA,yBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,oEAAoE,KAAK,EAAE,CAAA;QACvF,MAAM,IAAA,sCAA0B,EAAC,GAAG,CAAC,CAAA;IACvC,CAAC;AACH,CAAC,CAAA;AALY,QAAA,iBAAiB,qBAK7B;AAED;;;GAGG;AACI,MAAM,aAAa,GAAG,UAAU,KAAiB;IACtD,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,uDAAuD,KAAK,EAAE,CAAA;QAC1E,MAAM,IAAA,sCAA0B,EAAC,GAAG,CAAC,CAAA;IACvC,CAAC;AACH,CAAC,CAAA;AALY,QAAA,aAAa,iBAKzB;AAED;;;GAGG;AACI,MAAM,aAAa,GAAG,UAAU,KAAe;IACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,0DAA0D,KAAK,EAAE,CAAA;QAC7E,MAAM,IAAA,sCAA0B,EAAC,GAAG,CAAC,CAAA;IACvC,CAAC;AACH,CAAC,CAAA;AALY,QAAA,aAAa,iBAKzB;AAED;;;GAGG;AACI,MAAM,cAAc,GAAG,UAAU,KAAa;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,oDAAoD,KAAK,EAAE,CAAA;QACvE,MAAM,IAAA,sCAA0B,EAAC,GAAG,CAAC,CAAA;IACvC,CAAC;AACH,CAAC,CAAA;AALY,QAAA,cAAc,kBAK1B"}
/**
* Constants
*/
export * from './constants.js';
export * from './constants.ts';
/**
* Errors
*/
export * from './errors.ts';
/**
* Units helpers
*/
export * from './units.js';
export * from './units.ts';
/**
* Account class and helper functions
*/
export * from './account.js';
export * from './account.ts';
/**
* Address type
*/
export * from './address.js';
export * from './address.ts';
/**
* DB type
*/
export * from './db.js';
export * from './db.ts';
/**
* Withdrawal type
*/
export * from './withdrawal.js';
export * from './withdrawal.ts';
/**
* ECDSA signature
*/
export * from './signature.js';
export * from './signature.ts';
/**
* Utilities for manipulating bytes, Uint8Arrays, etc.
*/
export * from './bytes.js';
export * from './bytes.ts';
/**
* Helpful TypeScript types
*/
export * from './types.js';
export * from './types.ts';
/**
* Export ethjs-util methods
*/
export * from './asyncEventEmitter.js';
export * from './blobs.js';
export * from './genesis.js';
export { arrayContainsArray, fromAscii, fromUtf8, getBinarySize, getKeys, isHexString, padToEven, stripHexPrefix, toAscii, } from './internal.js';
export * from './kzg.js';
export * from './lock.js';
export * from './mapDB.js';
export * from './provider.js';
export * from './request.js';
export * from './tasks.js';
export * from './verkle.js';
export * from './binaryTree.ts';
export * from './blobs.ts';
export * from './genesis.ts';
export { arrayContainsArray, fromAscii, fromUtf8, getBinarySize, getKeys, isHexString, padToEven, stripHexPrefix, toAscii, } from './internal.ts';
export * from './kzg.ts';
export * from './lock.ts';
export * from './mapDB.ts';
export * from './provider.ts';
export * from './request.ts';
export * from './tasks.ts';
export * from './verkle.ts';
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,gBAAgB,CAAA;AAE9B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,cAAc,CAAA;AAE5B;;GAEG;AACH,cAAc,cAAc,CAAA;AAE5B;;GAEG;AACH,cAAc,SAAS,CAAA;AAEvB;;GAEG;AACH,cAAc,iBAAiB,CAAA;AAE/B;;GAEG;AACH,cAAc,gBAAgB,CAAA;AAE9B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,WAAW,EACX,SAAS,EACT,cAAc,EACd,OAAO,GACR,MAAM,eAAe,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,gBAAgB,CAAA;AAE9B;;GAEG;AACH,cAAc,aAAa,CAAA;AAE3B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,cAAc,CAAA;AAE5B;;GAEG;AACH,cAAc,cAAc,CAAA;AAE5B;;GAEG;AACH,cAAc,SAAS,CAAA;AAEvB;;GAEG;AACH,cAAc,iBAAiB,CAAA;AAE/B;;GAEG;AACH,cAAc,gBAAgB,CAAA;AAE9B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,WAAW,EACX,SAAS,EACT,cAAc,EACd,OAAO,GACR,MAAM,eAAe,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA"}

@@ -23,2 +23,6 @@ "use strict";

/**
* Errors
*/
__exportStar(require("./errors.js"), exports);
/**
* Units helpers

@@ -58,15 +62,15 @@ */

*/
__exportStar(require("./asyncEventEmitter.js"), exports);
__exportStar(require("./binaryTree.js"), exports);
__exportStar(require("./blobs.js"), exports);
__exportStar(require("./genesis.js"), exports);
var internal_js_1 = require("./internal.js");
Object.defineProperty(exports, "arrayContainsArray", { enumerable: true, get: function () { return internal_js_1.arrayContainsArray; } });
Object.defineProperty(exports, "fromAscii", { enumerable: true, get: function () { return internal_js_1.fromAscii; } });
Object.defineProperty(exports, "fromUtf8", { enumerable: true, get: function () { return internal_js_1.fromUtf8; } });
Object.defineProperty(exports, "getBinarySize", { enumerable: true, get: function () { return internal_js_1.getBinarySize; } });
Object.defineProperty(exports, "getKeys", { enumerable: true, get: function () { return internal_js_1.getKeys; } });
Object.defineProperty(exports, "isHexString", { enumerable: true, get: function () { return internal_js_1.isHexString; } });
Object.defineProperty(exports, "padToEven", { enumerable: true, get: function () { return internal_js_1.padToEven; } });
Object.defineProperty(exports, "stripHexPrefix", { enumerable: true, get: function () { return internal_js_1.stripHexPrefix; } });
Object.defineProperty(exports, "toAscii", { enumerable: true, get: function () { return internal_js_1.toAscii; } });
var internal_ts_1 = require("./internal.js");
Object.defineProperty(exports, "arrayContainsArray", { enumerable: true, get: function () { return internal_ts_1.arrayContainsArray; } });
Object.defineProperty(exports, "fromAscii", { enumerable: true, get: function () { return internal_ts_1.fromAscii; } });
Object.defineProperty(exports, "fromUtf8", { enumerable: true, get: function () { return internal_ts_1.fromUtf8; } });
Object.defineProperty(exports, "getBinarySize", { enumerable: true, get: function () { return internal_ts_1.getBinarySize; } });
Object.defineProperty(exports, "getKeys", { enumerable: true, get: function () { return internal_ts_1.getKeys; } });
Object.defineProperty(exports, "isHexString", { enumerable: true, get: function () { return internal_ts_1.isHexString; } });
Object.defineProperty(exports, "padToEven", { enumerable: true, get: function () { return internal_ts_1.padToEven; } });
Object.defineProperty(exports, "stripHexPrefix", { enumerable: true, get: function () { return internal_ts_1.stripHexPrefix; } });
Object.defineProperty(exports, "toAscii", { enumerable: true, get: function () { return internal_ts_1.toAscii; } });
__exportStar(require("./kzg.js"), exports);

@@ -73,0 +77,0 @@ __exportStar(require("./lock.js"), exports);

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,iDAA8B;AAE9B;;GAEG;AACH,6CAA0B;AAE1B;;GAEG;AACH,+CAA4B;AAE5B;;GAEG;AACH,+CAA4B;AAE5B;;GAEG;AACH,0CAAuB;AAEvB;;GAEG;AACH,kDAA+B;AAE/B;;GAEG;AACH,iDAA8B;AAE9B;;GAEG;AACH,6CAA0B;AAE1B;;GAEG;AACH,6CAA0B;AAE1B;;GAEG;AACH,yDAAsC;AACtC,6CAA0B;AAC1B,+CAA4B;AAC5B,6CAUsB;AATpB,iHAAA,kBAAkB,OAAA;AAClB,wGAAA,SAAS,OAAA;AACT,uGAAA,QAAQ,OAAA;AACR,4GAAA,aAAa,OAAA;AACb,sGAAA,OAAO,OAAA;AACP,0GAAA,WAAW,OAAA;AACX,wGAAA,SAAS,OAAA;AACT,6GAAA,cAAc,OAAA;AACd,sGAAA,OAAO,OAAA;AAET,2CAAwB;AACxB,4CAAyB;AACzB,6CAA0B;AAC1B,gDAA6B;AAC7B,+CAA4B;AAC5B,6CAA0B;AAC1B,8CAA2B"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,iDAA8B;AAE9B;;GAEG;AACH,8CAA2B;AAE3B;;GAEG;AACH,6CAA0B;AAE1B;;GAEG;AACH,+CAA4B;AAE5B;;GAEG;AACH,+CAA4B;AAE5B;;GAEG;AACH,0CAAuB;AAEvB;;GAEG;AACH,kDAA+B;AAE/B;;GAEG;AACH,iDAA8B;AAE9B;;GAEG;AACH,6CAA0B;AAE1B;;GAEG;AACH,6CAA0B;AAE1B;;GAEG;AACH,kDAA+B;AAC/B,6CAA0B;AAC1B,+CAA4B;AAC5B,6CAUsB;AATpB,iHAAA,kBAAkB,OAAA;AAClB,wGAAA,SAAS,OAAA;AACT,uGAAA,QAAQ,OAAA;AACR,4GAAA,aAAa,OAAA;AACb,sGAAA,OAAO,OAAA;AACP,0GAAA,WAAW,OAAA;AACX,wGAAA,SAAS,OAAA;AACT,6GAAA,cAAc,OAAA;AACd,sGAAA,OAAO,OAAA;AAET,2CAAwB;AACxB,4CAAyB;AACzB,6CAA0B;AAC1B,gDAA6B;AAC7B,+CAA4B;AAC5B,6CAA0B;AAC1B,8CAA2B"}

@@ -1,2 +0,2 @@

import type { PrefixedHexString } from './types.js';
import type { PrefixedHexString } from './types.ts';
/**

@@ -3,0 +3,0 @@ * Returns a boolean on whether or not the the input starts with '0x' and matches the optional length

@@ -1,1 +0,1 @@

{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAMtF;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,MAK5C,CAAA;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAU/C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,UAMxC;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAaT;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa3C;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,UAI3C;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,UAS5C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,YAuB1F"}
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAMtF;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,MAO5C,CAAA;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAY/C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,UAQxC;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAaT;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa3C;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,UAI3C;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,UAS5C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,YA2B1F"}

@@ -26,4 +26,13 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.getKeys = exports.fromAscii = exports.fromUtf8 = exports.toAscii = exports.arrayContainsArray = exports.getBinarySize = exports.padToEven = exports.stripHexPrefix = exports.isHexString = void 0;
const bytes_js_1 = require("./bytes.js");
exports.stripHexPrefix = void 0;
exports.isHexString = isHexString;
exports.padToEven = padToEven;
exports.getBinarySize = getBinarySize;
exports.arrayContainsArray = arrayContainsArray;
exports.toAscii = toAscii;
exports.fromUtf8 = fromUtf8;
exports.fromAscii = fromAscii;
exports.getKeys = getKeys;
const bytes_ts_1 = require("./bytes.js");
const errors_ts_1 = require("./errors.js");
/**

@@ -42,3 +51,2 @@ * Returns a boolean on whether or not the the input starts with '0x' and matches the optional length

}
exports.isHexString = isHexString;
/**

@@ -51,3 +59,3 @@ * Removes '0x' from a given `String` if present

if (typeof str !== 'string')
throw new Error(`[stripHexPrefix] input must be type 'string', received ${typeof str}`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`[stripHexPrefix] input must be type 'string', received ${typeof str}`);
return isHexString(str) ? str.slice(2) : str;

@@ -64,3 +72,3 @@ };

if (typeof a !== 'string') {
throw new Error(`[padToEven] value must be type 'string', received ${typeof a}`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`[padToEven] value must be type 'string', received ${typeof a}`);
}

@@ -71,3 +79,2 @@ if (a.length % 2)

}
exports.padToEven = padToEven;
/**

@@ -80,7 +87,6 @@ * Get the binary size of a string

if (typeof str !== 'string') {
throw new Error(`[getBinarySize] method requires input type 'string', received ${typeof str}`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`[getBinarySize] method requires input type 'string', received ${typeof str}`);
}
return (0, bytes_js_1.utf8ToBytes)(str).byteLength;
return (0, bytes_ts_1.utf8ToBytes)(str).byteLength;
}
exports.getBinarySize = getBinarySize;
/**

@@ -96,10 +102,9 @@ * Returns TRUE if the first specified array contains all elements

if (Array.isArray(superset) !== true) {
throw new Error(`[arrayContainsArray] method requires input 'superset' to be an array, got type '${typeof superset}'`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`[arrayContainsArray] method requires input 'superset' to be an array, got type '${typeof superset}'`);
}
if (Array.isArray(subset) !== true) {
throw new Error(`[arrayContainsArray] method requires input 'subset' to be an array, got type '${typeof subset}'`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`[arrayContainsArray] method requires input 'subset' to be an array, got type '${typeof subset}'`);
}
return subset[some === true ? 'some' : 'every']((value) => superset.indexOf(value) >= 0);
}
exports.arrayContainsArray = arrayContainsArray;
/**

@@ -123,3 +128,2 @@ * Should be called to get ascii from its hex representation

}
exports.toAscii = toAscii;
/**

@@ -134,6 +138,5 @@ * Should be called to get hex representation (prefixed by 0x) of utf8 string.

function fromUtf8(stringValue) {
const str = (0, bytes_js_1.utf8ToBytes)(stringValue);
return `0x${padToEven((0, bytes_js_1.bytesToUnprefixedHex)(str)).replace(/^0+|0+$/g, '')}`;
const str = (0, bytes_ts_1.utf8ToBytes)(stringValue);
return `0x${padToEven((0, bytes_ts_1.bytesToUnprefixedHex)(str)).replace(/^0+|0+$/g, '')}`;
}
exports.fromUtf8 = fromUtf8;
/**

@@ -155,3 +158,2 @@ * Should be called to get hex representation (prefixed by 0x) of ascii string

}
exports.fromAscii = fromAscii;
/**

@@ -170,6 +172,6 @@ * Returns the keys from an array of objects.

if (!Array.isArray(params)) {
throw new Error(`[getKeys] method expects input 'params' to be an array, got ${typeof params}`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`[getKeys] method expects input 'params' to be an array, got ${typeof params}`);
}
if (typeof key !== 'string') {
throw new Error(`[getKeys] method expects input 'key' to be type 'string', got ${typeof params}`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`[getKeys] method expects input 'key' to be type 'string', got ${typeof params}`);
}

@@ -183,3 +185,3 @@ const result = [];

else if (typeof value !== 'string') {
throw new Error(`invalid abi - expected type 'string', received ${typeof value}`);
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`invalid abi - expected type 'string', received ${typeof value}`);
}

@@ -190,3 +192,2 @@ result.push(value);

}
exports.getKeys = getKeys;
//# sourceMappingURL=internal.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/lock.ts"],"names":[],"mappings":";;;AAAA,8FAA8F;AAC9F,MAAa,IAAI;IAAjB;QACU,YAAO,GAAW,CAAC,CAAA;QACnB,yBAAoB,GAAgC,EAAE,CAAA;IAsChE,CAAC;IApCC;;;OAGG;IACI,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YACjB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SAC7B;QAED,6FAA6F;QAC7F,sDAAsD;QACtD,OAAO,IAAI,OAAO,CAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrF,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;QAEjB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5D,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;SAChF;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;YACrE,qFAAqF;YACrF,yEAAyE;YACzE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;YACtD,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,IAAI,CAAC,CAAA;aACnB;SACF;IACH,CAAC;CACF;AAxCD,oBAwCC"}
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/lock.ts"],"names":[],"mappings":";;;AAAA,8FAA8F;AAC9F,MAAa,IAAI;IAAjB;QACU,YAAO,GAAW,CAAC,CAAA;QACnB,yBAAoB,GAAgC,EAAE,CAAA;IAsChE,CAAC;IApCC;;;OAGG;IACI,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YACjB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;QAED,6FAA6F;QAC7F,sDAAsD;QACtD,OAAO,IAAI,OAAO,CAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrF,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;QAEjB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;QACjF,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,qFAAqF;YACrF,yEAAyE;YACzE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;YACtD,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,IAAI,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAxCD,oBAwCC"}

@@ -1,2 +0,2 @@

import type { BatchDBOp, DB, DBObject } from './db.js';
import type { BatchDBOp, DB, DBObject } from './db.ts';
export declare class MapDB<TKey extends Uint8Array | string | number, TValue extends Uint8Array | string | DBObject> implements DB<TKey, TValue> {

@@ -3,0 +3,0 @@ _database: Map<TKey, TValue>;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MapDB = void 0;
const bytes_js_1 = require("./bytes.js");
const bytes_ts_1 = require("./bytes.js");
class MapDB {

@@ -10,11 +10,11 @@ constructor(database) {

async get(key) {
const dbKey = key instanceof Uint8Array ? (0, bytes_js_1.bytesToUnprefixedHex)(key) : key.toString();
const dbKey = key instanceof Uint8Array ? (0, bytes_ts_1.bytesToUnprefixedHex)(key) : key.toString();
return this._database.get(dbKey);
}
async put(key, val) {
const dbKey = key instanceof Uint8Array ? (0, bytes_js_1.bytesToUnprefixedHex)(key) : key.toString();
const dbKey = key instanceof Uint8Array ? (0, bytes_ts_1.bytesToUnprefixedHex)(key) : key.toString();
this._database.set(dbKey, val);
}
async del(key) {
const dbKey = key instanceof Uint8Array ? (0, bytes_js_1.bytesToUnprefixedHex)(key) : key.toString();
const dbKey = key instanceof Uint8Array ? (0, bytes_ts_1.bytesToUnprefixedHex)(key) : key.toString();
this._database.delete(dbKey);

@@ -21,0 +21,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"mapDB.js","sourceRoot":"","sources":["../../src/mapDB.ts"],"names":[],"mappings":";;;AAAA,yCAAiD;AAIjD,MAAa,KAAK;IAOhB,YAAY,QAA4B;QACtC,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,IAAI,GAAG,EAAgB,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAS;QACjB,MAAM,KAAK,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,IAAA,+BAAoB,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAa,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAS,EAAE,GAAW;QAC9B,MAAM,KAAK,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,IAAA,+BAAoB,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAa,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAS;QACjB,MAAM,KAAK,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,IAAA,+BAAoB,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAa,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAkC;QAC5C,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE;YACxB,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;gBACrB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;aACvB;YAED,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;gBACrB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;aACjC;SACF;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,OAAO,IAAI,KAAK,CAAe,IAAI,CAAC,SAAS,CAAC,CAAA;IAChD,CAAC;IAED,IAAI;QACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF;AAlDD,sBAkDC"}
{"version":3,"file":"mapDB.js","sourceRoot":"","sources":["../../src/mapDB.ts"],"names":[],"mappings":";;;AAAA,yCAAiD;AAIjD,MAAa,KAAK;IAOhB,YAAY,QAA4B;QACtC,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,IAAI,GAAG,EAAgB,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAS;QACjB,MAAM,KAAK,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,IAAA,+BAAoB,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAa,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAS,EAAE,GAAW;QAC9B,MAAM,KAAK,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,IAAA,+BAAoB,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAa,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAS;QACjB,MAAM,KAAK,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,IAAA,+BAAoB,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAa,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAkC;QAC5C,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;YAED,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,OAAO,IAAI,KAAK,CAAe,IAAI,CAAC,SAAS,CAAC,CAAA;IAChD,CAAC;IAED,IAAI;QACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF;AAlDD,sBAkDC"}

@@ -1,1 +0,1 @@

{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,CAAA;CACjD,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,QAAe,MAAM,UAAU,SAAS,iBAiCrE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,aAAc,MAAM,GAAG,cAAc,WAQ5D,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM;QACpB,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF"}
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAEA,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,CAAA;CACjD,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,GAAU,KAAK,MAAM,EAAE,QAAQ,SAAS,iBAiCrE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,GAAG,cAAc,WAQ5D,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM;QACpB,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getProvider = exports.fetchFromProvider = void 0;
const errors_ts_1 = require("./errors.js");
/**

@@ -37,3 +38,3 @@ * Makes a simple RPC call to a remote Ethereum JSON-RPC provider and passes through the response.

if (!res.ok) {
throw new Error(`JSONRPCError: ${JSON.stringify({
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`JSONRPCError: ${JSON.stringify({
method: params.method,

@@ -64,3 +65,3 @@ status: res.status,

else {
throw new Error('Must provide valid provider URL or Web3Provider');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Must provide valid provider URL or Web3Provider');
}

@@ -67,0 +68,0 @@ };

@@ -1,1 +0,1 @@

{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":";;;AAKA;;;;;;;;;;;;;;;;;GAiBG;AACI,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,MAAiB,EAAE,EAAE;IACxE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,CAAC;KACN,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI;KACX,CAAC,CAAA;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;QACX,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,CAAC,SAAS,CAC7B;YACE,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnC,OAAO,iEAAiE,CAAA;YAC1E,CAAC,CAAC;SACH,EACD,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAA;KACF;IACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAC7B,uCAAuC;IACvC,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,CAAC,CAAA;AAjCY,QAAA,iBAAiB,qBAiC7B;AAED;;;;GAIG;AACI,MAAM,WAAW,GAAG,CAAC,QAAiC,EAAE,EAAE;IAC/D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,OAAO,QAAQ,CAAA;KAChB;SAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE;QAChF,OAAO,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,CAAA;KACrC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;KACnE;AACH,CAAC,CAAA;AARY,QAAA,WAAW,eAQvB"}
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAOxD;;;;;;;;;;;;;;;;;GAiBG;AACI,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,MAAiB,EAAE,EAAE;IACxE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,CAAC;KACN,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI;KACX,CAAC,CAAA;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAA,sCAA0B,EAC9B,iBAAiB,IAAI,CAAC,SAAS,CAC7B;YACE,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnC,OAAO,iEAAiE,CAAA;YAC1E,CAAC,CAAC;SACH,EACD,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAC7B,uCAAuC;IACvC,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,CAAC,CAAA;AAjCY,QAAA,iBAAiB,qBAiC7B;AAED;;;;GAIG;AACI,MAAM,WAAW,GAAG,CAAC,QAAiC,EAAE,EAAE;IAC/D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAA;IACjB,CAAC;SAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACjF,OAAO,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,CAAA;IACtC,CAAC;SAAM,CAAC;QACN,MAAM,IAAA,sCAA0B,EAAC,iDAAiD,CAAC,CAAA;IACrF,CAAC;AACH,CAAC,CAAA;AARY,QAAA,WAAW,eAQvB"}

@@ -1,102 +0,20 @@

import type { PrefixedHexString } from './types.js';
import type { PrefixedHexString } from './types.ts';
export type RequestBytes = Uint8Array;
export declare enum CLRequestType {
Deposit = 0,
Withdrawal = 1,
Consolidation = 2
}
export type DepositRequestV1 = {
pubkey: PrefixedHexString;
withdrawalCredentials: PrefixedHexString;
amount: PrefixedHexString;
signature: PrefixedHexString;
index: PrefixedHexString;
export type CLRequestType = (typeof CLRequestType)[keyof typeof CLRequestType];
export declare const CLRequestType: {
readonly Deposit: 0;
readonly Withdrawal: 1;
readonly Consolidation: 2;
};
export type WithdrawalRequestV1 = {
sourceAddress: PrefixedHexString;
validatorPubkey: PrefixedHexString;
amount: PrefixedHexString;
};
export type ConsolidationRequestV1 = {
sourceAddress: PrefixedHexString;
sourcePubkey: PrefixedHexString;
targetPubkey: PrefixedHexString;
};
export interface RequestJSON {
[CLRequestType.Deposit]: DepositRequestV1;
[CLRequestType.Withdrawal]: WithdrawalRequestV1;
[CLRequestType.Consolidation]: ConsolidationRequestV1;
type: PrefixedHexString;
data: PrefixedHexString;
}
export type DepositRequestData = {
pubkey: Uint8Array;
withdrawalCredentials: Uint8Array;
amount: bigint;
signature: Uint8Array;
index: bigint;
};
export type WithdrawalRequestData = {
sourceAddress: Uint8Array;
validatorPubkey: Uint8Array;
amount: bigint;
};
export type ConsolidationRequestData = {
sourceAddress: Uint8Array;
sourcePubkey: Uint8Array;
targetPubkey: Uint8Array;
};
export interface RequestData {
[CLRequestType.Deposit]: DepositRequestData;
[CLRequestType.Withdrawal]: WithdrawalRequestData;
[CLRequestType.Consolidation]: ConsolidationRequestData;
export declare class CLRequest<T extends CLRequestType> {
readonly bytes: Uint8Array;
get type(): T;
get data(): Uint8Array<ArrayBufferLike>;
constructor(requestType: T, requestData: Uint8Array);
}
export type TypedRequestData = RequestData[CLRequestType];
export interface CLRequestInterface<T extends CLRequestType = CLRequestType> {
readonly type: T;
serialize(): Uint8Array;
toJSON(): RequestJSON[T];
}
export declare abstract class CLRequest<T extends CLRequestType> implements CLRequestInterface<T> {
readonly type: T;
abstract serialize(): Uint8Array;
abstract toJSON(): RequestJSON[T];
constructor(type: T);
}
export declare class DepositRequest extends CLRequest<CLRequestType.Deposit> {
readonly pubkey: Uint8Array;
readonly withdrawalCredentials: Uint8Array;
readonly amount: bigint;
readonly signature: Uint8Array;
readonly index: bigint;
constructor(pubkey: Uint8Array, withdrawalCredentials: Uint8Array, amount: bigint, signature: Uint8Array, index: bigint);
serialize(): Uint8Array;
toJSON(): DepositRequestV1;
}
export declare class WithdrawalRequest extends CLRequest<CLRequestType.Withdrawal> {
readonly sourceAddress: Uint8Array;
readonly validatorPubkey: Uint8Array;
readonly amount: bigint;
constructor(sourceAddress: Uint8Array, validatorPubkey: Uint8Array, amount: bigint);
serialize(): Uint8Array;
toJSON(): WithdrawalRequestV1;
}
export declare class ConsolidationRequest extends CLRequest<CLRequestType.Consolidation> {
readonly sourceAddress: Uint8Array;
readonly sourcePubkey: Uint8Array;
readonly targetPubkey: Uint8Array;
constructor(sourceAddress: Uint8Array, sourcePubkey: Uint8Array, targetPubkey: Uint8Array);
serialize(): Uint8Array;
toJSON(): ConsolidationRequestV1;
}
export declare function createDepositRequest(depositData: DepositRequestData): DepositRequest;
export declare function createDepositRequestFromJSON(jsonData: DepositRequestV1): DepositRequest;
export declare function createDepositRequestFromRLP(bytes: Uint8Array): DepositRequest;
export declare function createWithdrawalRequest(withdrawalData: WithdrawalRequestData): WithdrawalRequest;
export declare function createWithdrawalRequestFromJSON(jsonData: WithdrawalRequestV1): WithdrawalRequest;
export declare function createWithdrawalRequestFromRLP(bytes: Uint8Array): WithdrawalRequest;
export declare function createConsolidationRequest(consolidationData: ConsolidationRequestData): ConsolidationRequest;
export declare function createConsolidationRequestFromJSON(jsonData: ConsolidationRequestV1): ConsolidationRequest;
export declare function createConsolidationRequestFromRLP(bytes: Uint8Array): ConsolidationRequest;
export declare class CLRequestFactory {
static fromSerializedRequest(bytes: Uint8Array): CLRequest<CLRequestType>;
}
export declare function createCLRequest(bytes: Uint8Array): CLRequest<CLRequestType>;
//# sourceMappingURL=request.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAA;AAErC,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAA;AAE9E,eAAO,MAAM,aAAa;;;;CAIhB,CAAA;AAEV,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,iBAAiB,CAAA;IACvB,IAAI,EAAE,iBAAiB,CAAA;CACxB;AAED,qBAAa,SAAS,CAAC,CAAC,SAAS,aAAa;IAE5C,SAAgB,KAAK,EAAE,UAAU,CAAA;IAEjC,IAAI,IAAI,IACkB,CAAC,CAC1B;IAED,IAAI,IAAI,gCAEP;gBAEW,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU;CAGpD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,CAW3E"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CLRequestFactory = exports.createConsolidationRequestFromRLP = exports.createConsolidationRequestFromJSON = exports.createConsolidationRequest = exports.createWithdrawalRequestFromRLP = exports.createWithdrawalRequestFromJSON = exports.createWithdrawalRequest = exports.createDepositRequestFromRLP = exports.createDepositRequestFromJSON = exports.createDepositRequest = exports.ConsolidationRequest = exports.WithdrawalRequest = exports.DepositRequest = exports.CLRequest = exports.CLRequestType = void 0;
const rlp_1 = require("@ethereumjs/rlp");
const utils_1 = require("ethereum-cryptography/utils");
const bytes_js_1 = require("./bytes.js");
const constants_js_1 = require("./constants.js");
var CLRequestType;
(function (CLRequestType) {
CLRequestType[CLRequestType["Deposit"] = 0] = "Deposit";
CLRequestType[CLRequestType["Withdrawal"] = 1] = "Withdrawal";
CLRequestType[CLRequestType["Consolidation"] = 2] = "Consolidation";
})(CLRequestType = exports.CLRequestType || (exports.CLRequestType = {}));
exports.CLRequest = exports.CLRequestType = void 0;
exports.createCLRequest = createCLRequest;
const bytes_ts_1 = require("./bytes.js");
exports.CLRequestType = {
Deposit: 0,
Withdrawal: 1,
Consolidation: 2,
};
class CLRequest {
constructor(type) {
this.type = type;
get type() {
return this.bytes[0];
}
}
exports.CLRequest = CLRequest;
class DepositRequest extends CLRequest {
constructor(pubkey, withdrawalCredentials, amount, signature, index) {
super(CLRequestType.Deposit);
this.pubkey = pubkey;
this.withdrawalCredentials = withdrawalCredentials;
this.amount = amount;
this.signature = signature;
this.index = index;
get data() {
return this.bytes.subarray(1);
}
serialize() {
const indexBytes = this.index === constants_js_1.BIGINT_0 ? new Uint8Array() : (0, bytes_js_1.bigIntToBytes)(this.index);
const amountBytes = this.amount === constants_js_1.BIGINT_0 ? new Uint8Array() : (0, bytes_js_1.bigIntToBytes)(this.amount);
return (0, utils_1.concatBytes)(Uint8Array.from([this.type]), rlp_1.RLP.encode([
this.pubkey,
this.withdrawalCredentials,
amountBytes,
this.signature,
indexBytes,
]));
constructor(requestType, requestData) {
this.bytes = (0, bytes_ts_1.concatBytes)(new Uint8Array([requestType]), requestData);
}
toJSON() {
return {
pubkey: (0, bytes_js_1.bytesToHex)(this.pubkey),
withdrawalCredentials: (0, bytes_js_1.bytesToHex)(this.withdrawalCredentials),
amount: (0, bytes_js_1.bigIntToHex)(this.amount),
signature: (0, bytes_js_1.bytesToHex)(this.signature),
index: (0, bytes_js_1.bigIntToHex)(this.index),
};
}
}
exports.DepositRequest = DepositRequest;
class WithdrawalRequest extends CLRequest {
constructor(sourceAddress, validatorPubkey, amount) {
super(CLRequestType.Withdrawal);
this.sourceAddress = sourceAddress;
this.validatorPubkey = validatorPubkey;
this.amount = amount;
exports.CLRequest = CLRequest;
function createCLRequest(bytes) {
switch (bytes[0]) {
case exports.CLRequestType.Deposit:
return new CLRequest(exports.CLRequestType.Deposit, bytes.subarray(1));
case exports.CLRequestType.Withdrawal:
return new CLRequest(exports.CLRequestType.Withdrawal, bytes.subarray(1));
case exports.CLRequestType.Consolidation:
return new CLRequest(exports.CLRequestType.Consolidation, bytes.subarray(1));
default:
throw Error(`Invalid request type=${bytes[0]}`);
}
serialize() {
const amountBytes = this.amount === constants_js_1.BIGINT_0 ? new Uint8Array() : (0, bytes_js_1.bigIntToBytes)(this.amount);
return (0, utils_1.concatBytes)(Uint8Array.from([this.type]), rlp_1.RLP.encode([this.sourceAddress, this.validatorPubkey, amountBytes]));
}
toJSON() {
return {
sourceAddress: (0, bytes_js_1.bytesToHex)(this.sourceAddress),
validatorPubkey: (0, bytes_js_1.bytesToHex)(this.validatorPubkey),
amount: (0, bytes_js_1.bigIntToHex)(this.amount),
};
}
}
exports.WithdrawalRequest = WithdrawalRequest;
class ConsolidationRequest extends CLRequest {
constructor(sourceAddress, sourcePubkey, targetPubkey) {
super(CLRequestType.Consolidation);
this.sourceAddress = sourceAddress;
this.sourcePubkey = sourcePubkey;
this.targetPubkey = targetPubkey;
}
serialize() {
return (0, utils_1.concatBytes)(Uint8Array.from([this.type]), rlp_1.RLP.encode([this.sourceAddress, this.sourcePubkey, this.targetPubkey]));
}
toJSON() {
return {
sourceAddress: (0, bytes_js_1.bytesToHex)(this.sourceAddress),
sourcePubkey: (0, bytes_js_1.bytesToHex)(this.sourcePubkey),
targetPubkey: (0, bytes_js_1.bytesToHex)(this.targetPubkey),
};
}
}
exports.ConsolidationRequest = ConsolidationRequest;
function createDepositRequest(depositData) {
const { pubkey, withdrawalCredentials, amount, signature, index } = depositData;
return new DepositRequest(pubkey, withdrawalCredentials, amount, signature, index);
}
exports.createDepositRequest = createDepositRequest;
function createDepositRequestFromJSON(jsonData) {
const { pubkey, withdrawalCredentials, amount, signature, index } = jsonData;
return createDepositRequest({
pubkey: (0, bytes_js_1.hexToBytes)(pubkey),
withdrawalCredentials: (0, bytes_js_1.hexToBytes)(withdrawalCredentials),
amount: (0, bytes_js_1.hexToBigInt)(amount),
signature: (0, bytes_js_1.hexToBytes)(signature),
index: (0, bytes_js_1.hexToBigInt)(index),
});
}
exports.createDepositRequestFromJSON = createDepositRequestFromJSON;
function createDepositRequestFromRLP(bytes) {
const [pubkey, withdrawalCredentials, amount, signature, index] = rlp_1.RLP.decode(bytes);
return createDepositRequest({
pubkey,
withdrawalCredentials,
amount: (0, bytes_js_1.bytesToBigInt)(amount),
signature,
index: (0, bytes_js_1.bytesToBigInt)(index),
});
}
exports.createDepositRequestFromRLP = createDepositRequestFromRLP;
function createWithdrawalRequest(withdrawalData) {
const { sourceAddress, validatorPubkey, amount } = withdrawalData;
return new WithdrawalRequest(sourceAddress, validatorPubkey, amount);
}
exports.createWithdrawalRequest = createWithdrawalRequest;
function createWithdrawalRequestFromJSON(jsonData) {
const { sourceAddress, validatorPubkey, amount } = jsonData;
return createWithdrawalRequest({
sourceAddress: (0, bytes_js_1.hexToBytes)(sourceAddress),
validatorPubkey: (0, bytes_js_1.hexToBytes)(validatorPubkey),
amount: (0, bytes_js_1.hexToBigInt)(amount),
});
}
exports.createWithdrawalRequestFromJSON = createWithdrawalRequestFromJSON;
function createWithdrawalRequestFromRLP(bytes) {
const [sourceAddress, validatorPubkey, amount] = rlp_1.RLP.decode(bytes);
return createWithdrawalRequest({
sourceAddress,
validatorPubkey,
amount: (0, bytes_js_1.bytesToBigInt)(amount),
});
}
exports.createWithdrawalRequestFromRLP = createWithdrawalRequestFromRLP;
function createConsolidationRequest(consolidationData) {
const { sourceAddress, sourcePubkey, targetPubkey } = consolidationData;
return new ConsolidationRequest(sourceAddress, sourcePubkey, targetPubkey);
}
exports.createConsolidationRequest = createConsolidationRequest;
function createConsolidationRequestFromJSON(jsonData) {
const { sourceAddress, sourcePubkey, targetPubkey } = jsonData;
return createConsolidationRequest({
sourceAddress: (0, bytes_js_1.hexToBytes)(sourceAddress),
sourcePubkey: (0, bytes_js_1.hexToBytes)(sourcePubkey),
targetPubkey: (0, bytes_js_1.hexToBytes)(targetPubkey),
});
}
exports.createConsolidationRequestFromJSON = createConsolidationRequestFromJSON;
function createConsolidationRequestFromRLP(bytes) {
const [sourceAddress, sourcePubkey, targetPubkey] = rlp_1.RLP.decode(bytes);
return createConsolidationRequest({
sourceAddress,
sourcePubkey,
targetPubkey,
});
}
exports.createConsolidationRequestFromRLP = createConsolidationRequestFromRLP;
class CLRequestFactory {
static fromSerializedRequest(bytes) {
switch (bytes[0]) {
case CLRequestType.Deposit:
return createDepositRequestFromRLP(bytes.subarray(1));
case CLRequestType.Withdrawal:
return createWithdrawalRequestFromRLP(bytes.subarray(1));
case CLRequestType.Consolidation:
return createConsolidationRequestFromRLP(bytes.subarray(1));
default:
throw Error(`Invalid request type=${bytes[0]}`);
}
}
}
exports.CLRequestFactory = CLRequestFactory;
//# sourceMappingURL=request.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":";;;AAoCA,0CAWC;AA/CD,yCAAwC;AAQ3B,QAAA,aAAa,GAAG;IAC3B,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC;CACR,CAAA;AAOV,MAAa,SAAS;IAIpB,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAM,CAAA;IAC3B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC/B,CAAC;IAED,YAAY,WAAc,EAAE,WAAuB;QACjD,IAAI,CAAC,KAAK,GAAG,IAAA,sBAAW,EAAC,IAAI,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IACtE,CAAC;CACF;AAfD,8BAeC;AAED,SAAgB,eAAe,CAAC,KAAiB;IAC/C,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,qBAAa,CAAC,OAAO;YACxB,OAAO,IAAI,SAAS,CAAC,qBAAa,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,KAAK,qBAAa,CAAC,UAAU;YAC3B,OAAO,IAAI,SAAS,CAAC,qBAAa,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QACnE,KAAK,qBAAa,CAAC,aAAa;YAC9B,OAAO,IAAI,SAAS,CAAC,qBAAa,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QACtE;YACE,MAAM,KAAK,CAAC,wBAAwB,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACnD,CAAC;AACH,CAAC"}

@@ -1,2 +0,2 @@

import type { PrefixedHexString } from './types.js';
import type { PrefixedHexString } from './types.ts';
export interface ECDSASignature {

@@ -7,9 +7,27 @@ v: bigint;

}
export interface ECSignOpts {
chainId?: bigint;
extraEntropy?: Uint8Array | boolean;
}
/**
* Returns the ECDSA signature of a message hash.
*
* If `chainId` is provided assume an EIP-155-style signature and calculate the `v` value
* If {@link ECSignOpts.chainId} is provided assume an EIP-155-style signature and calculate the `v` value
* accordingly, otherwise return a "static" `v` just derived from the `recovery` bit
*
* {@link ECSignOpts.extraEntropy} defaults to `false`. If set to `true`, this will create a "hedged signature"
* which is non-deterministic and provides additional protections against private key extraction attack vectors,
* as described in https://github.com/ethereumjs/ethereumjs-monorepo/issues/3801. It will yield a
* different, random signature each time `ecsign` is called on the same `msgHash` and `privateKey`.
* In particular: each time a transaction is signed, this will thus yield a different, random
* transaction hash.
* Additionally, a `Uint8Array` can be passed to `extraEntropy` to provide custom entropy, which
* will then still create a
* To use this feature, pass `true` or a `Uint8Array` to `extraEntropy`.
* For more information, see: https://github.com/ethereumjs/ethereumjs-monorepo/issues/3801
*/
export declare function ecsign(msgHash: Uint8Array, privateKey: Uint8Array, chainId?: bigint): ECDSASignature;
export declare function ecsign(msgHash: Uint8Array, privateKey: Uint8Array, ecSignOpts?: {
chainId?: bigint;
extraEntropy?: Uint8Array | boolean;
}): ECDSASignature;
export declare function calculateSigRecovery(v: bigint, chainId?: bigint): bigint;

@@ -16,0 +34,0 @@ /**

@@ -1,1 +0,1 @@

{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/signature.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,UAAU,CAAA;IACb,CAAC,EAAE,UAAU,CAAA;CACd;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,cAAc,CAYhB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAOxE;AAMD;;;;GAIG;AACH,eAAO,MAAM,SAAS,YACX,UAAU,KAChB,MAAM,KACN,UAAU,KACV,UAAU,YACH,MAAM,KACf,UAUF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,MAChB,MAAM,KACN,UAAU,KACV,UAAU,YACH,MAAM,KACf,MASF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,MACpB,MAAM,KACN,UAAU,KACV,UAAU,YACH,MAAM,KACf,MAYF,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,QAAkB,iBAAiB,KAAG,cA8B5D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,MACxB,MAAM,KACN,UAAU,KACV,UAAU,qBACK,OAAO,YACf,MAAM,KACf,OA0BF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,YAAsB,UAAU,KAAG,UAIlE,CAAA"}
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/signature.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,UAAU,CAAA;IACb,CAAC,EAAE,UAAU,CAAA;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;CACpC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,UAAU,EACtB,UAAU,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;CAA4B,GAC9F,cAAc,CAuBhB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAOxE;AAMD;;;;GAIG;AACH,eAAO,MAAM,SAAS,GACpB,SAAS,UAAU,EACnB,GAAG,MAAM,EACT,GAAG,UAAU,EACb,GAAG,UAAU,EACb,UAAU,MAAM,KACf,UAUF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GACnB,GAAG,MAAM,EACT,GAAG,UAAU,EACb,GAAG,UAAU,EACb,UAAU,MAAM,KACf,MASF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,GAAG,MAAM,EACT,GAAG,UAAU,EACb,GAAG,UAAU,EACb,UAAU,MAAM,KACf,MAYF,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GAAa,KAAK,iBAAiB,KAAG,cA8B5D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,GAAG,MAAM,EACT,GAAG,UAAU,EACb,GAAG,UAAU,EACb,mBAAkB,OAAc,EAChC,UAAU,MAAM,KACf,OA0BF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAa,SAAS,UAAU,KAAG,UAIlE,CAAA"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.hashPersonalMessage = exports.isValidSignature = exports.fromRPCSig = exports.toCompactSig = exports.toRPCSig = exports.ecrecover = exports.calculateSigRecovery = exports.ecsign = void 0;
exports.hashPersonalMessage = exports.isValidSignature = exports.fromRPCSig = exports.toCompactSig = exports.toRPCSig = exports.ecrecover = void 0;
exports.ecsign = ecsign;
exports.calculateSigRecovery = calculateSigRecovery;
const keccak_js_1 = require("ethereum-cryptography/keccak.js");
const secp256k1_js_1 = require("ethereum-cryptography/secp256k1.js");
const bytes_js_1 = require("./bytes.js");
const constants_js_1 = require("./constants.js");
const helpers_js_1 = require("./helpers.js");
const bytes_ts_1 = require("./bytes.js");
const constants_ts_1 = require("./constants.js");
const errors_ts_1 = require("./errors.js");
const helpers_ts_1 = require("./helpers.js");
/**
* Returns the ECDSA signature of a message hash.
*
* If `chainId` is provided assume an EIP-155-style signature and calculate the `v` value
* If {@link ECSignOpts.chainId} is provided assume an EIP-155-style signature and calculate the `v` value
* accordingly, otherwise return a "static" `v` just derived from the `recovery` bit
*
* {@link ECSignOpts.extraEntropy} defaults to `false`. If set to `true`, this will create a "hedged signature"
* which is non-deterministic and provides additional protections against private key extraction attack vectors,
* as described in https://github.com/ethereumjs/ethereumjs-monorepo/issues/3801. It will yield a
* different, random signature each time `ecsign` is called on the same `msgHash` and `privateKey`.
* In particular: each time a transaction is signed, this will thus yield a different, random
* transaction hash.
* Additionally, a `Uint8Array` can be passed to `extraEntropy` to provide custom entropy, which
* will then still create a
* To use this feature, pass `true` or a `Uint8Array` to `extraEntropy`.
* For more information, see: https://github.com/ethereumjs/ethereumjs-monorepo/issues/3801
*/
function ecsign(msgHash, privateKey, chainId) {
const sig = secp256k1_js_1.secp256k1.sign(msgHash, privateKey);
function ecsign(msgHash, privateKey, ecSignOpts = { extraEntropy: false }) {
const { chainId, extraEntropy } = ecSignOpts;
const sig = secp256k1_js_1.secp256k1.sign(msgHash, privateKey, { extraEntropy: extraEntropy ?? false });
const buf = sig.toCompactRawBytes();
const r = buf.slice(0, 32);
const s = buf.slice(32, 64);
if ([2, 3].includes(sig.recovery)) {
// From the yellow paper:
/* The recovery identifier is a 1 byte value specifying the parity and finiteness of the coordinates
of the curve point for which r is the x-value; this value is in the range of [0, 3],
however we declare the upper two possibilities, representing infinite values, invalid. */
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`Invalid recovery value: values 2/3 are invalid, received: ${sig.recovery}`);
}
const v = chainId === undefined
? BigInt(sig.recovery + 27)
: BigInt(sig.recovery + 35) + BigInt(chainId) * constants_js_1.BIGINT_2;
: BigInt(sig.recovery + 35) + BigInt(chainId) * constants_ts_1.BIGINT_2;
return { r, s, v };
}
exports.ecsign = ecsign;
function calculateSigRecovery(v, chainId) {
if (v === constants_js_1.BIGINT_0 || v === constants_js_1.BIGINT_1)
if (v === constants_ts_1.BIGINT_0 || v === constants_ts_1.BIGINT_1)
return v;
if (chainId === undefined) {
return v - constants_js_1.BIGINT_27;
return v - constants_ts_1.BIGINT_27;
}
return v - (chainId * constants_js_1.BIGINT_2 + BigInt(35));
return v - (chainId * constants_ts_1.BIGINT_2 + BigInt(35));
}
exports.calculateSigRecovery = calculateSigRecovery;
function isValidSigRecovery(recovery) {
return recovery === constants_js_1.BIGINT_0 || recovery === constants_js_1.BIGINT_1;
return recovery === constants_ts_1.BIGINT_0 || recovery === constants_ts_1.BIGINT_1;
}

@@ -44,6 +64,6 @@ /**

const ecrecover = function (msgHash, v, r, s, chainId) {
const signature = (0, bytes_js_1.concatBytes)((0, bytes_js_1.setLengthLeft)(r, 32), (0, bytes_js_1.setLengthLeft)(s, 32));
const signature = (0, bytes_ts_1.concatBytes)((0, bytes_ts_1.setLengthLeft)(r, 32), (0, bytes_ts_1.setLengthLeft)(s, 32));
const recovery = calculateSigRecovery(v, chainId);
if (!isValidSigRecovery(recovery)) {
throw new Error('Invalid signature v value');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Invalid signature v value');
}

@@ -63,6 +83,6 @@ const sig = secp256k1_js_1.secp256k1.Signature.fromCompact(signature).addRecoveryBit(Number(recovery));

if (!isValidSigRecovery(recovery)) {
throw new Error('Invalid signature v value');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Invalid signature v value');
}
// geth (and the RPC eth_sign method) uses the 65 byte format used by Bitcoin
return (0, bytes_js_1.bytesToHex)((0, bytes_js_1.concatBytes)((0, bytes_js_1.setLengthLeft)(r, 32), (0, bytes_js_1.setLengthLeft)(s, 32), (0, bytes_js_1.toBytes)(v)));
return (0, bytes_ts_1.bytesToHex)((0, bytes_ts_1.concatBytes)((0, bytes_ts_1.setLengthLeft)(r, 32), (0, bytes_ts_1.setLengthLeft)(s, 32), (0, bytes_ts_1.toBytes)(v)));
};

@@ -78,9 +98,9 @@ exports.toRPCSig = toRPCSig;

if (!isValidSigRecovery(recovery)) {
throw new Error('Invalid signature v value');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Invalid signature v value');
}
const ss = Uint8Array.from([...s]);
if ((v > BigInt(28) && v % constants_js_1.BIGINT_2 === constants_js_1.BIGINT_1) || v === constants_js_1.BIGINT_1 || v === BigInt(28)) {
if ((v > BigInt(28) && v % constants_ts_1.BIGINT_2 === constants_ts_1.BIGINT_1) || v === constants_ts_1.BIGINT_1 || v === BigInt(28)) {
ss[0] |= 0x80;
}
return (0, bytes_js_1.bytesToHex)((0, bytes_js_1.concatBytes)((0, bytes_js_1.setLengthLeft)(r, 32), (0, bytes_js_1.setLengthLeft)(ss, 32)));
return (0, bytes_ts_1.bytesToHex)((0, bytes_ts_1.concatBytes)((0, bytes_ts_1.setLengthLeft)(r, 32), (0, bytes_ts_1.setLengthLeft)(ss, 32)));
};

@@ -97,3 +117,3 @@ exports.toCompactSig = toCompactSig;

const fromRPCSig = function (sig) {
const bytes = (0, bytes_js_1.toBytes)(sig);
const bytes = (0, bytes_ts_1.toBytes)(sig);
let r;

@@ -105,3 +125,3 @@ let s;

s = bytes.subarray(32, 64);
v = (0, bytes_js_1.bytesToBigInt)(bytes.subarray(64));
v = (0, bytes_ts_1.bytesToBigInt)(bytes.subarray(64));
}

@@ -112,11 +132,11 @@ else if (bytes.length === 64) {

s = bytes.subarray(32, 64);
v = BigInt((0, bytes_js_1.bytesToInt)(bytes.subarray(32, 33)) >> 7);
v = BigInt((0, bytes_ts_1.bytesToInt)(bytes.subarray(32, 33)) >> 7);
s[0] &= 0x7f;
}
else {
throw new Error('Invalid signature length');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Invalid signature length');
}
// support both versions of `eth_sign` responses
if (v < 27) {
v = v + constants_js_1.BIGINT_27;
v = v + constants_ts_1.BIGINT_27;
}

@@ -142,11 +162,11 @@ return {

}
const rBigInt = (0, bytes_js_1.bytesToBigInt)(r);
const sBigInt = (0, bytes_js_1.bytesToBigInt)(s);
if (rBigInt === constants_js_1.BIGINT_0 ||
rBigInt >= constants_js_1.SECP256K1_ORDER ||
sBigInt === constants_js_1.BIGINT_0 ||
sBigInt >= constants_js_1.SECP256K1_ORDER) {
const rBigInt = (0, bytes_ts_1.bytesToBigInt)(r);
const sBigInt = (0, bytes_ts_1.bytesToBigInt)(s);
if (rBigInt === constants_ts_1.BIGINT_0 ||
rBigInt >= constants_ts_1.SECP256K1_ORDER ||
sBigInt === constants_ts_1.BIGINT_0 ||
sBigInt >= constants_ts_1.SECP256K1_ORDER) {
return false;
}
if (homesteadOrLater && sBigInt >= constants_js_1.SECP256K1_ORDER_DIV_2) {
if (homesteadOrLater && sBigInt >= constants_ts_1.SECP256K1_ORDER_DIV_2) {
return false;

@@ -164,7 +184,7 @@ }

const hashPersonalMessage = function (message) {
(0, helpers_js_1.assertIsBytes)(message);
const prefix = (0, bytes_js_1.utf8ToBytes)(`\u0019Ethereum Signed Message:\n${message.length}`);
return (0, keccak_js_1.keccak256)((0, bytes_js_1.concatBytes)(prefix, message));
(0, helpers_ts_1.assertIsBytes)(message);
const prefix = (0, bytes_ts_1.utf8ToBytes)(`\u0019Ethereum Signed Message:\n${message.length}`);
return (0, keccak_js_1.keccak256)((0, bytes_ts_1.concatBytes)(prefix, message));
};
exports.hashPersonalMessage = hashPersonalMessage;
//# sourceMappingURL=signature.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/signature.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/signature.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks.ts"],"names":[],"mappings":";;;AAKA,MAAa,uBAAuB;IAQlC;;;;;OAKG;IACH,YAAY,WAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,QAAgB,EAAE,EAAY;QAC3C,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE;YAC3C,IAAI,CAAC,eAAe,EAAE,CAAA;YACtB,EAAE,CAAC,GAAG,EAAE;gBACN,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;oBAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;oBAC/B,IAAI,CAAC,cAAc,CAAC,IAAK,CAAC,QAAQ,EAAE,IAAK,CAAC,EAAE,CAAC,CAAA;iBAC9C;YACH,CAAC,CAAC,CAAA;SACH;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;SAClC;IACH,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,KAAK,CAAC,CAAA;IACnC,CAAC;CACF;AArDD,0DAqDC"}
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks.ts"],"names":[],"mappings":";;;AAKA,MAAa,uBAAuB;IAQlC;;;;;OAKG;IACH,YAAY,WAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,QAAgB,EAAE,EAAY;QAC3C,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,CAAC,eAAe,EAAE,CAAA;YACtB,EAAE,CAAC,GAAG,EAAE;gBACN,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;oBAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;oBAC/B,IAAI,CAAC,cAAc,CAAC,IAAK,CAAC,QAAQ,EAAE,IAAK,CAAC,EAAE,CAAC,CAAA;gBAC/C,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,KAAK,CAAC,CAAA;IACnC,CAAC;CACF;AArDD,0DAqDC"}

@@ -1,3 +0,3 @@

import type { Address } from './address.js';
import type { ToBytesInputTypes } from './bytes.js';
import type { Address } from './address.ts';
import type { ToBytesInputTypes } from './bytes.ts';
export type BigIntLike = bigint | PrefixedHexString | number | Uint8Array;

@@ -16,11 +16,9 @@ export type BytesLike = Uint8Array | number[] | number | bigint | TransformableToBytes | PrefixedHexString;

export declare function isNestedUint8Array(value: unknown): value is NestedUint8Array;
/**
* Type output options
*/
export declare enum TypeOutput {
Number = 0,
BigInt = 1,
Uint8Array = 2,
PrefixedHexString = 3
}
export type TypeOutput = (typeof TypeOutput)[keyof typeof TypeOutput];
export declare const TypeOutput: {
readonly Number: 0;
readonly BigInt: 1;
readonly Uint8Array: 2;
readonly PrefixedHexString: 3;
};
export type TypeOutputReturnType = {

@@ -27,0 +25,0 @@ [TypeOutput.Number]: number;

@@ -1,1 +0,1 @@

{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAKnD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,iBAAiB,GAAG,MAAM,GAAG,UAAU,CAAA;AAKzE,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,MAAM,EAAE,GACR,MAAM,GACN,MAAM,GACN,oBAAoB,GACpB,iBAAiB,CAAA;AAKrB,MAAM,MAAM,aAAa,GAAG,GAAG,MAAM,EAAE,CAAA;AAKvC,MAAM,MAAM,iBAAiB,GAAG,KAAK,MAAM,EAAE,CAAA;AAE7C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,iBAAiB,CAAA;AAElE,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,IAAI,UAAU,CAAA;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAA;AAEnE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAc5E;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,UAAU,IAAA;IACV,iBAAiB,IAAA;CAClB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IAC3B,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IAC3B,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IACnC,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CAClD,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,CAAA;AAC9E,wBAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,SAAS,CAAA;AACxF,wBAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,EACzC,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,CAAC,GACZ,oBAAoB,CAAC,CAAC,CAAC,CAAA"}
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAKnD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,iBAAiB,GAAG,MAAM,GAAG,UAAU,CAAA;AAKzE,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,MAAM,EAAE,GACR,MAAM,GACN,MAAM,GACN,oBAAoB,GACpB,iBAAiB,CAAA;AAKrB,MAAM,MAAM,aAAa,GAAG,GAAG,MAAM,EAAE,CAAA;AAKvC,MAAM,MAAM,iBAAiB,GAAG,KAAK,MAAM,EAAE,CAAA;AAE7C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,iBAAiB,CAAA;AAElE,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,IAAI,UAAU,CAAA;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAA;AAEnE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAc5E;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAA;AAErE,eAAO,MAAM,UAAU;;;;;CAKb,CAAA;AAEV,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IAC3B,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IAC3B,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IACnC,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CAClD,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,CAAA;AAC9E,wBAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,SAAS,CAAA;AACxF,wBAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,EACzC,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,CAAC,GACZ,oBAAoB,CAAC,CAAC,CAAC,CAAA"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.toType = exports.TypeOutput = exports.isNestedUint8Array = void 0;
const bytes_js_1 = require("./bytes.js");
const internal_js_1 = require("./internal.js");
exports.TypeOutput = void 0;
exports.isNestedUint8Array = isNestedUint8Array;
exports.toType = toType;
const bytes_ts_1 = require("./bytes.js");
const errors_ts_1 = require("./errors.js");
const internal_ts_1 = require("./internal.js");
function isNestedUint8Array(value) {

@@ -22,13 +25,8 @@ if (!Array.isArray(value)) {

}
exports.isNestedUint8Array = isNestedUint8Array;
/**
* Type output options
*/
var TypeOutput;
(function (TypeOutput) {
TypeOutput[TypeOutput["Number"] = 0] = "Number";
TypeOutput[TypeOutput["BigInt"] = 1] = "BigInt";
TypeOutput[TypeOutput["Uint8Array"] = 2] = "Uint8Array";
TypeOutput[TypeOutput["PrefixedHexString"] = 3] = "PrefixedHexString";
})(TypeOutput = exports.TypeOutput || (exports.TypeOutput = {}));
exports.TypeOutput = {
Number: 0,
BigInt: 1,
Uint8Array: 2,
PrefixedHexString: 3,
};
function toType(input, outputType) {

@@ -41,28 +39,27 @@ if (input === null) {

}
if (typeof input === 'string' && !(0, internal_js_1.isHexString)(input)) {
throw new Error(`A string must be provided with a 0x-prefix, given: ${input}`);
if (typeof input === 'string' && !(0, internal_ts_1.isHexString)(input)) {
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)(`A string must be provided with a 0x-prefix, given: ${input}`);
}
else if (typeof input === 'number' && !Number.isSafeInteger(input)) {
throw new Error('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)');
}
const output = (0, bytes_js_1.toBytes)(input);
const output = (0, bytes_ts_1.toBytes)(input);
switch (outputType) {
case TypeOutput.Uint8Array:
case exports.TypeOutput.Uint8Array:
return output;
case TypeOutput.BigInt:
return (0, bytes_js_1.bytesToBigInt)(output);
case TypeOutput.Number: {
const bigInt = (0, bytes_js_1.bytesToBigInt)(output);
case exports.TypeOutput.BigInt:
return (0, bytes_ts_1.bytesToBigInt)(output);
case exports.TypeOutput.Number: {
const bigInt = (0, bytes_ts_1.bytesToBigInt)(output);
if (bigInt > BigInt(Number.MAX_SAFE_INTEGER)) {
throw new Error('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative output type)');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative output type)');
}
return Number(bigInt);
}
case TypeOutput.PrefixedHexString:
return (0, bytes_js_1.bytesToHex)(output);
case exports.TypeOutput.PrefixedHexString:
return (0, bytes_ts_1.bytesToHex)(output);
default:
throw new Error('unknown outputType');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('unknown outputType');
}
}
exports.toType = toType;
//# sourceMappingURL=types.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAAA,yCAA+D;AAC/D,+CAA2C;AA0C3C,SAAgB,kBAAkB,CAAC,KAAc;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,OAAO,KAAK,CAAA;KACb;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;gBAC7B,OAAO,KAAK,CAAA;aACb;SACF;aAAM,IAAI,CAAC,CAAC,IAAI,YAAY,UAAU,CAAC,EAAE;YACxC,OAAO,KAAK,CAAA;SACb;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAdD,gDAcC;AAED;;GAEG;AACH,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,+CAAM,CAAA;IACN,+CAAM,CAAA;IACN,uDAAU,CAAA;IACV,qEAAiB,CAAA;AACnB,CAAC,EALW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAKrB;AAqBD,SAAgB,MAAM,CACpB,KAAwB,EACxB,UAAa;IAEb,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,OAAO,IAAI,CAAA;KACZ;IACD,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,SAAS,CAAA;KACjB;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAA,yBAAW,EAAC,KAAK,CAAC,EAAE;QACpD,MAAM,IAAI,KAAK,CAAC,sDAAsD,KAAK,EAAE,CAAC,CAAA;KAC/E;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QACpE,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAA;KACF;IAED,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,KAAK,CAAC,CAAA;IAE7B,QAAQ,UAAU,EAAE;QAClB,KAAK,UAAU,CAAC,UAAU;YACxB,OAAO,MAAiC,CAAA;QAC1C,KAAK,UAAU,CAAC,MAAM;YACpB,OAAO,IAAA,wBAAa,EAAC,MAAM,CAA4B,CAAA;QACzD,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC;YACtB,MAAM,MAAM,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,CAAA;YACpC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;gBAC5C,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAA;aACF;YACD,OAAO,MAAM,CAAC,MAAM,CAA4B,CAAA;SACjD;QACD,KAAK,UAAU,CAAC,iBAAiB;YAC/B,OAAO,IAAA,qBAAU,EAAC,MAAM,CAA4B,CAAA;QACtD;YACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;KACxC;AACH,CAAC;AAxCD,wBAwCC"}
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AA4CA,gDAcC;AA8BD,wBAwCC;AAhID,yCAA+D;AAC/D,2CAAwD;AACxD,+CAA2C;AA0C3C,SAAgB,kBAAkB,CAAC,KAAc;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,YAAY,UAAU,CAAC,EAAE,CAAC;YACzC,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAIY,QAAA,UAAU,GAAG;IACxB,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,CAAC;IACb,iBAAiB,EAAE,CAAC;CACZ,CAAA;AAqBV,SAAgB,MAAM,CACpB,KAAwB,EACxB,UAAa;IAEb,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAA,yBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,IAAA,sCAA0B,EAAC,sDAAsD,KAAK,EAAE,CAAC,CAAA;IACjG,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACrE,MAAM,IAAA,sCAA0B,EAC9B,6FAA6F,CAC9F,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,KAAK,CAAC,CAAA;IAE7B,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,kBAAU,CAAC,UAAU;YACxB,OAAO,MAAiC,CAAA;QAC1C,KAAK,kBAAU,CAAC,MAAM;YACpB,OAAO,IAAA,wBAAa,EAAC,MAAM,CAA4B,CAAA;QACzD,KAAK,kBAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,CAAA;YACpC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAA,sCAA0B,EAC9B,8FAA8F,CAC/F,CAAA;YACH,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAA4B,CAAA;QAClD,CAAC;QACD,KAAK,kBAAU,CAAC,iBAAiB;YAC/B,OAAO,IAAA,qBAAU,EAAC,MAAM,CAA4B,CAAA;QACtD;YACE,MAAM,IAAA,sCAA0B,EAAC,oBAAoB,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC"}

@@ -1,1 +0,1 @@

{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/units.ts"],"names":[],"mappings":"AAEA,kCAAkC;AAClC,eAAO,MAAM,WAAW,QAAkB,CAAA;AAC1C,eAAO,MAAM,YAAY,QAAmB,CAAA;AAE5C,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAWR;AAED,qBAAa,KAAK;IAChB,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASnD;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAK7C;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;CAI7C"}
{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/units.ts"],"names":[],"mappings":"AAGA,kCAAkC;AAClC,eAAO,MAAM,WAAW,QAAkB,CAAA;AAC1C,eAAO,MAAM,YAAY,QAAmB,CAAA;AAE5C,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAWR;AAED,qBAAa,KAAK;IAChB,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASnD;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAK7C;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;CAI7C"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Units = exports.formatBigDecimal = exports.ETHER_TO_WEI = exports.GWEI_TO_WEI = void 0;
const constants_js_1 = require("./constants.js");
exports.Units = exports.ETHER_TO_WEI = exports.GWEI_TO_WEI = void 0;
exports.formatBigDecimal = formatBigDecimal;
const constants_ts_1 = require("./constants.js");
const errors_ts_1 = require("./errors.js");
/** Conversion constants to wei */

@@ -9,4 +11,4 @@ exports.GWEI_TO_WEI = BigInt(10 ** 9); // Multiplier to convert from Gwei to Wei

function formatBigDecimal(numerator, denominator, maxDecimalFactor) {
if (denominator === constants_js_1.BIGINT_0) {
denominator = constants_js_1.BIGINT_1;
if (denominator === constants_ts_1.BIGINT_0) {
denominator = constants_ts_1.BIGINT_1;
}

@@ -19,10 +21,9 @@ const full = numerator / denominator;

}
exports.formatBigDecimal = formatBigDecimal;
class Units {
static validateInput(amount) {
if (typeof amount === 'number' && !Number.isInteger(amount)) {
throw new Error('Input must be an integer number');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Input must be an integer number');
}
if (BigInt(amount) < 0) {
throw new Error('Input must be a positive number');
throw (0, errors_ts_1.EthereumJSErrorWithoutCode)('Input must be a positive number');
}

@@ -29,0 +30,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/units.ts"],"names":[],"mappings":";;;AAAA,iDAAmD;AAEnD,kCAAkC;AACrB,QAAA,WAAW,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA,CAAC,yCAAyC;AACvE,QAAA,YAAY,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA,CAAC,0CAA0C;AAEvF,SAAgB,gBAAgB,CAC9B,SAAiB,EACjB,WAAmB,EACnB,gBAAwB;IAExB,IAAI,WAAW,KAAK,uBAAQ,EAAE;QAC5B,WAAW,GAAG,uBAAQ,CAAA;KACvB;IAED,MAAM,IAAI,GAAG,SAAS,GAAG,WAAW,CAAA;IACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,GAAG,WAAW,CAAC,GAAG,gBAAgB,CAAC,GAAG,WAAW,CAAA;IAEpF,wGAAwG;IACxG,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA;IACtF,OAAO,GAAG,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,EAAE,CAAA;AAC7D,CAAC;AAfD,4CAeC;AAED,MAAa,KAAK;IAChB,MAAM,CAAC,aAAa,CAAC,MAAuB;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC3D,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACnD;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACnD;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,MAAuB;QAClC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,oBAAY,CAAA;IACtC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,MAAuB;QACjC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,mBAAW,CAAA;IACrC,CAAC;CACF;AA/BD,sBA+BC"}
{"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/units.ts"],"names":[],"mappings":";;;AAOA,4CAeC;AAtBD,iDAAmD;AACnD,2CAAwD;AAExD,kCAAkC;AACrB,QAAA,WAAW,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA,CAAC,yCAAyC;AACvE,QAAA,YAAY,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA,CAAC,0CAA0C;AAEvF,SAAgB,gBAAgB,CAC9B,SAAiB,EACjB,WAAmB,EACnB,gBAAwB;IAExB,IAAI,WAAW,KAAK,uBAAQ,EAAE,CAAC;QAC7B,WAAW,GAAG,uBAAQ,CAAA;IACxB,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,GAAG,WAAW,CAAA;IACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,GAAG,WAAW,CAAC,GAAG,gBAAgB,CAAC,GAAG,WAAW,CAAA;IAEpF,wGAAwG;IACxG,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA;IACtF,OAAO,GAAG,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,EAAE,CAAA;AAC7D,CAAC;AAED,MAAa,KAAK;IAChB,MAAM,CAAC,aAAa,CAAC,MAAuB;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAA,sCAA0B,EAAC,iCAAiC,CAAC,CAAA;QACrE,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAA,sCAA0B,EAAC,iCAAiC,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,MAAuB;QAClC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,oBAAY,CAAA;IACtC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,MAAuB;QACjC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,mBAAW,CAAA;IACrC,CAAC;CACF;AA/BD,sBA+BC"}

@@ -1,4 +0,4 @@

import type { Account } from './account.js';
import type { Address } from './address.js';
import type { PrefixedHexString } from './types.js';
import type { Account } from './account.ts';
import type { Address } from './address.ts';
import type { PrefixedHexString } from './types.ts';
/**

@@ -36,3 +36,3 @@ * Verkle related constants and helper functions

* @dev Assumes that the verkle node width = 256
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from verkle-cryptography-wasm.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from Verkle cryptography
* @param {Address} address The address to generate the tree key for.

@@ -45,3 +45,3 @@ * @param treeIndex The index of the tree to generate the key for. Defaults to 0.

* Verifies that the executionWitness is valid for the given prestateRoot.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from verkle-cryptography-wasm.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from Verkle cryptography
* @param {VerkleExecutionWitness} executionWitness The verkle execution witness.

@@ -91,6 +91,7 @@ * @returns {boolean} Whether or not the executionWitness belongs to the prestateRoot.

}
export declare enum VerkleLeafType {
BasicData = 0,
CodeHash = 1
}
export type VerkleLeafType = (typeof VerkleLeafType)[keyof typeof VerkleLeafType];
export declare const VerkleLeafType: {
readonly BasicData: 0;
readonly CodeHash: 1;
};
export type VerkleLeafBasicData = {

@@ -110,4 +111,4 @@ version: number;

export declare const VERKLE_BALANCE_BYTES_LENGTH = 16;
export declare const VERKLE_BASIC_DATA_LEAF_KEY: Uint8Array;
export declare const VERKLE_CODE_HASH_LEAF_KEY: Uint8Array;
export declare const VERKLE_BASIC_DATA_LEAF_KEY: Uint8Array<ArrayBufferLike>;
export declare const VERKLE_CODE_HASH_LEAF_KEY: Uint8Array<ArrayBufferLike>;
export declare const VERKLE_CODE_CHUNK_SIZE = 31;

@@ -125,3 +126,3 @@ export declare const VERKLE_HEADER_STORAGE_OFFSET = 64;

*/
export declare const getVerkleKey: (stem: Uint8Array, leaf: VerkleLeafType | Uint8Array) => Uint8Array;
export declare const getVerkleKey: (stem: Uint8Array, leaf: VerkleLeafType | Uint8Array) => Uint8Array<ArrayBufferLike>;
/**

@@ -154,4 +155,4 @@ * Calculates the position of the storage key in the Verkle tree, determining

*/
export declare const getVerkleTreeKeyForCodeChunk: (address: Address, chunkId: number, verkleCrypto: VerkleCrypto) => Promise<Uint8Array>;
export declare const chunkifyCode: (code: Uint8Array) => Uint8Array[];
export declare const getVerkleTreeKeyForCodeChunk: (address: Address, chunkId: number, verkleCrypto: VerkleCrypto) => Promise<Uint8Array<ArrayBufferLike>>;
export declare const chunkifyCode: (code: Uint8Array) => Uint8Array<ArrayBufferLike>[];
/**

@@ -164,3 +165,3 @@ * Asynchronously calculates the Verkle tree key for the specified storage slot.

*/
export declare const getVerkleTreeKeyForStorageSlot: (address: Address, storageKey: bigint, verkleCrypto: VerkleCrypto) => Promise<Uint8Array>;
export declare const getVerkleTreeKeyForStorageSlot: (address: Address, storageKey: bigint, verkleCrypto: VerkleCrypto) => Promise<Uint8Array<ArrayBufferLike>>;
/**

@@ -167,0 +168,0 @@ * This function extracts and decodes account header elements (version, nonce, code size, and balance)

@@ -1,1 +0,1 @@

{"version":3,"file":"verkle.d.ts","sourceRoot":"","sources":["../../src/verkle.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"verkle.d.ts","sourceRoot":"","sources":["../../src/verkle.ts"],"names":[],"mappings":"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"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateCodeStems = exports.generateChunkSuffixes = exports.encodeVerkleLeafBasicData = exports.decodeVerkleLeafBasicData = exports.getVerkleTreeKeyForStorageSlot = exports.chunkifyCode = exports.getVerkleTreeKeyForCodeChunk = exports.getVerkleTreeIndicesForCodeChunk = exports.getVerkleTreeIndicesForStorageSlot = exports.getVerkleKey = exports.VERKLE_MAIN_STORAGE_OFFSET = exports.VERKLE_NODE_WIDTH = exports.VERKLE_CODE_OFFSET = exports.VERKLE_HEADER_STORAGE_OFFSET = exports.VERKLE_CODE_CHUNK_SIZE = exports.VERKLE_CODE_HASH_LEAF_KEY = exports.VERKLE_BASIC_DATA_LEAF_KEY = exports.VERKLE_BALANCE_BYTES_LENGTH = exports.VERKLE_NONCE_BYTES_LENGTH = exports.VERKLE_CODE_SIZE_BYTES_LENGTH = exports.VERKLE_VERSION_BYTES_LENGTH = exports.VERKLE_BALANCE_OFFSET = exports.VERKLE_NONCE_OFFSET = exports.VERKLE_CODE_SIZE_OFFSET = exports.VERKLE_VERSION_OFFSET = exports.VerkleLeafType = exports.verifyVerkleProof = exports.getVerkleStem = void 0;
const bytes_js_1 = require("./bytes.js");
exports.generateCodeStems = exports.generateChunkSuffixes = exports.getVerkleTreeKeyForStorageSlot = exports.chunkifyCode = exports.getVerkleTreeKeyForCodeChunk = exports.getVerkleKey = exports.VERKLE_MAIN_STORAGE_OFFSET = exports.VERKLE_NODE_WIDTH = exports.VERKLE_CODE_OFFSET = exports.VERKLE_HEADER_STORAGE_OFFSET = exports.VERKLE_CODE_CHUNK_SIZE = exports.VERKLE_CODE_HASH_LEAF_KEY = exports.VERKLE_BASIC_DATA_LEAF_KEY = exports.VERKLE_BALANCE_BYTES_LENGTH = exports.VERKLE_NONCE_BYTES_LENGTH = exports.VERKLE_CODE_SIZE_BYTES_LENGTH = exports.VERKLE_VERSION_BYTES_LENGTH = exports.VERKLE_BALANCE_OFFSET = exports.VERKLE_NONCE_OFFSET = exports.VERKLE_CODE_SIZE_OFFSET = exports.VERKLE_VERSION_OFFSET = exports.VerkleLeafType = void 0;
exports.getVerkleStem = getVerkleStem;
exports.verifyVerkleProof = verifyVerkleProof;
exports.getVerkleTreeIndicesForStorageSlot = getVerkleTreeIndicesForStorageSlot;
exports.getVerkleTreeIndicesForCodeChunk = getVerkleTreeIndicesForCodeChunk;
exports.decodeVerkleLeafBasicData = decodeVerkleLeafBasicData;
exports.encodeVerkleLeafBasicData = encodeVerkleLeafBasicData;
const bytes_ts_1 = require("./bytes.js");
/**
* @dev Returns the 31-bytes verkle tree stem for a given address and tree index.
* @dev Assumes that the verkle node width = 256
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from verkle-cryptography-wasm.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from Verkle cryptography
* @param {Address} address The address to generate the tree key for.

@@ -14,9 +20,9 @@ * @param treeIndex The index of the tree to generate the key for. Defaults to 0.

function getVerkleStem(verkleCrypto, address, treeIndex = 0) {
const address32 = (0, bytes_js_1.setLengthLeft)(address.toBytes(), 32);
const address32 = (0, bytes_ts_1.setLengthLeft)(address.toBytes(), 32);
let treeIndexBytes;
if (typeof treeIndex === 'number') {
treeIndexBytes = (0, bytes_js_1.setLengthRight)((0, bytes_js_1.int32ToBytes)(Number(treeIndex), true), 32);
treeIndexBytes = (0, bytes_ts_1.setLengthRight)((0, bytes_ts_1.int32ToBytes)(Number(treeIndex), true), 32);
}
else {
treeIndexBytes = (0, bytes_js_1.setLengthRight)((0, bytes_js_1.bigIntToBytes)(BigInt(treeIndex), true).slice(0, 32), 32);
treeIndexBytes = (0, bytes_ts_1.setLengthRight)((0, bytes_ts_1.bigIntToBytes)(BigInt(treeIndex), true).slice(0, 32), 32);
}

@@ -26,6 +32,5 @@ const treeStem = verkleCrypto.getTreeKey(address32, treeIndexBytes, 0).slice(0, 31);

}
exports.getVerkleStem = getVerkleStem;
/**
* Verifies that the executionWitness is valid for the given prestateRoot.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from verkle-cryptography-wasm.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from Verkle cryptography
* @param {VerkleExecutionWitness} executionWitness The verkle execution witness.

@@ -38,8 +43,6 @@ * @returns {boolean} Whether or not the executionWitness belongs to the prestateRoot.

}
exports.verifyVerkleProof = verifyVerkleProof;
var VerkleLeafType;
(function (VerkleLeafType) {
VerkleLeafType[VerkleLeafType["BasicData"] = 0] = "BasicData";
VerkleLeafType[VerkleLeafType["CodeHash"] = 1] = "CodeHash";
})(VerkleLeafType = exports.VerkleLeafType || (exports.VerkleLeafType = {}));
exports.VerkleLeafType = {
BasicData: 0,
CodeHash: 1,
};
exports.VERKLE_VERSION_OFFSET = 0;

@@ -53,4 +56,4 @@ exports.VERKLE_CODE_SIZE_OFFSET = 5;

exports.VERKLE_BALANCE_BYTES_LENGTH = 16;
exports.VERKLE_BASIC_DATA_LEAF_KEY = (0, bytes_js_1.intToBytes)(VerkleLeafType.BasicData);
exports.VERKLE_CODE_HASH_LEAF_KEY = (0, bytes_js_1.intToBytes)(VerkleLeafType.CodeHash);
exports.VERKLE_BASIC_DATA_LEAF_KEY = (0, bytes_ts_1.intToBytes)(exports.VerkleLeafType.BasicData);
exports.VERKLE_CODE_HASH_LEAF_KEY = (0, bytes_ts_1.intToBytes)(exports.VerkleLeafType.CodeHash);
exports.VERKLE_CODE_CHUNK_SIZE = 31;

@@ -70,8 +73,8 @@ exports.VERKLE_HEADER_STORAGE_OFFSET = 64;

switch (leaf) {
case VerkleLeafType.BasicData:
return (0, bytes_js_1.concatBytes)(stem, exports.VERKLE_BASIC_DATA_LEAF_KEY);
case VerkleLeafType.CodeHash:
return (0, bytes_js_1.concatBytes)(stem, exports.VERKLE_CODE_HASH_LEAF_KEY);
case exports.VerkleLeafType.BasicData:
return (0, bytes_ts_1.concatBytes)(stem, exports.VERKLE_BASIC_DATA_LEAF_KEY);
case exports.VerkleLeafType.CodeHash:
return (0, bytes_ts_1.concatBytes)(stem, exports.VERKLE_CODE_HASH_LEAF_KEY);
default:
return (0, bytes_js_1.concatBytes)(stem, leaf);
return (0, bytes_ts_1.concatBytes)(stem, leaf);
}

@@ -98,3 +101,2 @@ };

}
exports.getVerkleTreeIndicesForStorageSlot = getVerkleTreeIndicesForStorageSlot;
/**

@@ -111,3 +113,2 @@ * Calculates the position of the code chunks in the Verkle tree, determining

}
exports.getVerkleTreeIndicesForCodeChunk = getVerkleTreeIndicesForCodeChunk;
/**

@@ -122,39 +123,37 @@ * Asynchronously calculates the Verkle tree key for the specified code chunk ID.

const { treeIndex, subIndex } = getVerkleTreeIndicesForCodeChunk(chunkId);
return (0, bytes_js_1.concatBytes)(getVerkleStem(verkleCrypto, address, treeIndex), (0, bytes_js_1.toBytes)(subIndex));
return (0, bytes_ts_1.concatBytes)(getVerkleStem(verkleCrypto, address, treeIndex), (0, bytes_ts_1.toBytes)(subIndex));
};
exports.getVerkleTreeKeyForCodeChunk = getVerkleTreeKeyForCodeChunk;
// This code was written by robots based on the reference implementation in EIP-6800
const chunkifyCode = (code) => {
if (code.length === 0)
return [];
// Pad code to multiple of VERKLE_CODE_CHUNK_SIZE bytes
if (code.length % exports.VERKLE_CODE_CHUNK_SIZE !== 0) {
const paddingLength = exports.VERKLE_CODE_CHUNK_SIZE - (code.length % exports.VERKLE_CODE_CHUNK_SIZE);
code = (0, bytes_js_1.setLengthRight)(code, code.length + paddingLength);
}
// Put first chunk (leading byte is always 0 since we have no leading PUSHDATA bytes)
const chunks = [(0, bytes_js_1.concatBytes)(new Uint8Array(1), code.subarray(0, 31))];
for (let i = 1; i < Math.floor(code.length / 31); i++) {
const slice = code.slice((i - 1) * 31, i * 31);
let x = 31;
while (x >= 0) {
// Look for last push instruction in code chunk
if (slice[x] > 0x5f && slice[x] < 0x80)
break;
x--;
const PUSH1 = 0x60; // Assuming PUSH1 is defined as 0x60
const PUSH32 = 0x7f; // Assuming PUSH32 is defined as 0x7f
const PUSH_OFFSET = 0x5f; // Assuming PUSH_OFFSET is defined as 0x5f
// Calculate padding length
const paddingLength = (31 - (code.length % 31)) % 31;
const paddedCode = new Uint8Array(code.length + paddingLength);
paddedCode.set(code);
// Pre-allocate the bytesToExecData array
const bytesToExecData = new Uint8Array(paddedCode.length + 32);
let pos = 0;
while (pos < paddedCode.length) {
let pushdataBytes = 0;
if (PUSH1 <= paddedCode[pos] && paddedCode[pos] <= PUSH32) {
pushdataBytes = paddedCode[pos] - PUSH_OFFSET;
}
if (x >= 0 && slice[x] - 0x5f > 31 - x) {
// x >= 0 indicates PUSHn in this chunk
// n > 31 - x indicates that PUSHDATA spills over to next chunk
// PUSHDATA overflow = n - 31 - x + 1(i.e. number of elements PUSHed
// - size of code chunk (31) - position of PUSHn in the previous
// code chunk + 1 (since x is zero-indexed))
const pushDataOverflow = slice[x] - 0x5f - 31 - x + 1;
// Put next chunk prepended with number of overflow PUSHDATA bytes
chunks.push((0, bytes_js_1.concatBytes)(Uint8Array.from([pushDataOverflow]), code.slice(i * 31, (i + 1) * 31)));
pos += 1;
for (let x = 0; x < pushdataBytes; x++) {
bytesToExecData[pos + x] = pushdataBytes - x;
}
else {
// Put next chunk prepended with 0 (i.e. no overflow PUSHDATA bytes from previous chunk)
chunks.push((0, bytes_js_1.concatBytes)(new Uint8Array(1), code.slice(i * 31, (i + 1) * 31)));
}
pos += pushdataBytes;
}
// Pre-allocate the chunks array
const numChunks = Math.ceil(paddedCode.length / 31);
const chunks = new Array(numChunks);
for (let i = 0, pos = 0; i < numChunks; i++, pos += 31) {
const chunk = new Uint8Array(32);
chunk[0] = Math.min(bytesToExecData[pos], 31);
chunk.set(paddedCode.subarray(pos, pos + 31), 1);
chunks[i] = chunk;
}
return chunks;

@@ -172,3 +171,3 @@ };

const { treeIndex, subIndex } = getVerkleTreeIndicesForStorageSlot(storageKey);
return (0, bytes_js_1.concatBytes)(getVerkleStem(verkleCrypto, address, treeIndex), (0, bytes_js_1.toBytes)(subIndex));
return (0, bytes_ts_1.concatBytes)(getVerkleStem(verkleCrypto, address, treeIndex), (0, bytes_ts_1.toBytes)(subIndex));
};

@@ -190,9 +189,8 @@ exports.getVerkleTreeKeyForStorageSlot = getVerkleTreeKeyForStorageSlot;

const balanceBytes = encodedBasicData.slice(exports.VERKLE_BALANCE_OFFSET, exports.VERKLE_BALANCE_OFFSET + exports.VERKLE_BALANCE_BYTES_LENGTH);
const version = (0, bytes_js_1.bytesToInt32)(versionBytes);
const nonce = (0, bytes_js_1.bytesToBigInt)(nonceBytes);
const codeSize = (0, bytes_js_1.bytesToInt32)(codeSizeBytes);
const balance = (0, bytes_js_1.bytesToBigInt)(balanceBytes);
const version = (0, bytes_ts_1.bytesToInt32)(versionBytes);
const nonce = (0, bytes_ts_1.bytesToBigInt)(nonceBytes);
const codeSize = (0, bytes_ts_1.bytesToInt32)(codeSizeBytes);
const balance = (0, bytes_ts_1.bytesToBigInt)(balanceBytes);
return { version, nonce, codeSize, balance };
}
exports.decodeVerkleLeafBasicData = decodeVerkleLeafBasicData;
/**

@@ -209,11 +207,10 @@ * This function takes a `VerkleLeafBasicData` object and encodes its properties

function encodeVerkleLeafBasicData(account) {
const encodedVersion = (0, bytes_js_1.setLengthLeft)((0, bytes_js_1.int32ToBytes)(account.version), exports.VERKLE_VERSION_BYTES_LENGTH);
const encodedVersion = (0, bytes_ts_1.setLengthLeft)((0, bytes_ts_1.int32ToBytes)(account.version), exports.VERKLE_VERSION_BYTES_LENGTH);
// Per EIP-6800, bytes 1-4 are reserved for future use
const reservedBytes = new Uint8Array([0, 0, 0, 0]);
const encodedNonce = (0, bytes_js_1.setLengthLeft)((0, bytes_js_1.bigIntToBytes)(account.nonce), exports.VERKLE_NONCE_BYTES_LENGTH);
const encodedCodeSize = (0, bytes_js_1.setLengthLeft)((0, bytes_js_1.int32ToBytes)(account.codeSize), exports.VERKLE_CODE_SIZE_BYTES_LENGTH);
const encodedBalance = (0, bytes_js_1.setLengthLeft)((0, bytes_js_1.bigIntToBytes)(account.balance), exports.VERKLE_BALANCE_BYTES_LENGTH);
return (0, bytes_js_1.concatBytes)(encodedVersion, reservedBytes, encodedCodeSize, encodedNonce, encodedBalance);
const encodedNonce = (0, bytes_ts_1.setLengthLeft)((0, bytes_ts_1.bigIntToBytes)(account.nonce), exports.VERKLE_NONCE_BYTES_LENGTH);
const encodedCodeSize = (0, bytes_ts_1.setLengthLeft)((0, bytes_ts_1.int32ToBytes)(account.codeSize), exports.VERKLE_CODE_SIZE_BYTES_LENGTH);
const encodedBalance = (0, bytes_ts_1.setLengthLeft)((0, bytes_ts_1.bigIntToBytes)(account.balance), exports.VERKLE_BALANCE_BYTES_LENGTH);
return (0, bytes_ts_1.concatBytes)(encodedVersion, reservedBytes, encodedCodeSize, encodedNonce, encodedBalance);
}
exports.encodeVerkleLeafBasicData = encodeVerkleLeafBasicData;
/**

@@ -228,13 +225,10 @@ * Helper method to generate the suffixes for code chunks for putting code

const chunkSuffixes = new Array(numChunks);
const firstChunksSet = numChunks > exports.VERKLE_CODE_OFFSET ? exports.VERKLE_CODE_OFFSET : numChunks;
for (let x = 0; x < firstChunksSet; x++) {
// Fill up to first 128 suffixes
chunkSuffixes[x] = x + exports.VERKLE_CODE_OFFSET;
let currentSuffix = exports.VERKLE_CODE_OFFSET;
for (let x = 0; x < numChunks; x++) {
chunkSuffixes[x] = currentSuffix;
currentSuffix++;
// Reset suffix to 0 if exceeds VERKLE_NODE_WIDTH
if (currentSuffix >= exports.VERKLE_NODE_WIDTH)
currentSuffix = 0;
}
if (numChunks > exports.VERKLE_CODE_OFFSET) {
for (let x = exports.VERKLE_CODE_OFFSET; x < numChunks; x++) {
// Fill subsequent chunk suffixes up to 256 and then start over since a single node
chunkSuffixes[x] = x - Math.floor(x / exports.VERKLE_NODE_WIDTH) * exports.VERKLE_NODE_WIDTH;
}
}
return chunkSuffixes;

@@ -258,3 +252,3 @@ };

// chunk in each leaf node and can then know that the chunks in between have tree keys in monotonically increasing order
const numStems = Math.ceil(numChunks / exports.VERKLE_NODE_WIDTH);
const numStems = numChunks > exports.VERKLE_CODE_OFFSET ? Math.ceil(numChunks / exports.VERKLE_NODE_WIDTH) + 1 : 1;
const chunkStems = new Array(numStems);

@@ -261,0 +255,0 @@ // Compute the stem for the initial set of code chunks

@@ -1,1 +0,1 @@

{"version":3,"file":"verkle.js","sourceRoot":"","sources":["../../src/verkle.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"verkle.js","sourceRoot":"","sources":["../../src/verkle.ts"],"names":[],"mappings":"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"}

@@ -1,3 +0,3 @@

import { Address } from './address.js';
import type { AddressLike, BigIntLike, PrefixedHexString } from './types.js';
import { Address } from './address.ts';
import type { AddressLike, BigIntLike, PrefixedHexString } from './types.ts';
/**

@@ -37,5 +37,2 @@ * Flexible input data type for EIP-4895 withdrawal data with amount in Gwei to

readonly address: Address;
/**
* withdrawal amount in Gwei to match the CL representation and eventually ssz withdrawalsRoot
*/
readonly amount: bigint;

@@ -47,7 +44,3 @@ /**

*/
constructor(index: bigint, validatorIndex: bigint, address: Address,
/**
* withdrawal amount in Gwei to match the CL representation and eventually ssz withdrawalsRoot
*/
amount: bigint);
constructor(index: bigint, validatorIndex: bigint, address: Address, amount: bigint);
raw(): WithdrawalBytes;

@@ -57,3 +50,3 @@ toValue(): {

validatorIndex: bigint;
address: Uint8Array;
address: Uint8Array<ArrayBufferLike>;
amount: bigint;

@@ -60,0 +53,0 @@ };

@@ -1,1 +0,1 @@

{"version":3,"file":"withdrawal.d.ts","sourceRoot":"","sources":["../../src/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAKtC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE5E;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,UAAU,CAAA;IACjB,cAAc,EAAE,UAAU,CAAA;IAC1B,OAAO,EAAE,WAAW,CAAA;IACpB,MAAM,EAAE,UAAU,CAAA;CACnB,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,iBAAiB,CAAA;IACxB,cAAc,EAAE,iBAAiB,CAAA;IACjC,OAAO,EAAE,iBAAiB,CAAA;IAC1B,MAAM,EAAE,iBAAiB,CAAA;CAC1B;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;AAC9E;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,eAAe,CAmB/F;AACD;;GAEG;AACH,qBAAa,UAAU;aAOH,KAAK,EAAE,MAAM;aACb,cAAc,EAAE,MAAM;aACtB,OAAO,EAAE,OAAO;IAChC;;OAEG;aACa,MAAM,EAAE,MAAM;IAZhC;;;;OAIG;gBAEe,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,OAAO;IAChC;;OAEG;IACa,MAAM,EAAE,MAAM;IAGhC,GAAG;IAIH,OAAO;;;;;;IASP,MAAM;;;;;;CAQP;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,cAAc,cAa9D;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,eAAe,EAAE,eAAe,cAM9E"}
{"version":3,"file":"withdrawal.d.ts","sourceRoot":"","sources":["../../src/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAKtC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE5E;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,UAAU,CAAA;IACjB,cAAc,EAAE,UAAU,CAAA;IAC1B,OAAO,EAAE,WAAW,CAAA;IACpB,MAAM,EAAE,UAAU,CAAA;CACnB,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,iBAAiB,CAAA;IACxB,cAAc,EAAE,iBAAiB,CAAA;IACjC,OAAO,EAAE,iBAAiB,CAAA;IAC1B,MAAM,EAAE,iBAAiB,CAAA;CAC1B;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;AAC9E;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,eAAe,CAmB/F;AACD;;GAEG;AACH,qBAAa,UAAU;IACrB,SAAgB,KAAK,EAAE,MAAM,CAAA;IAC7B,SAAgB,cAAc,EAAE,MAAM,CAAA;IACtC,SAAgB,OAAO,EAAE,OAAO,CAAA;IAChC,SAAgB,MAAM,EAAE,MAAM,CAAA;IAE9B;;;;OAIG;gBACS,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAOnF,GAAG;IAIH,OAAO;;;;;;IASP,MAAM;;;;;;CAQP;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,cAAc,cAa9D;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,eAAe,EAAE,eAAe,cAM9E"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createWithdrawalFromBytesArray = exports.createWithdrawal = exports.Withdrawal = exports.withdrawalToBytesArray = void 0;
const address_js_1 = require("./address.js");
const bytes_js_1 = require("./bytes.js");
const constants_js_1 = require("./constants.js");
const types_js_1 = require("./types.js");
exports.Withdrawal = void 0;
exports.withdrawalToBytesArray = withdrawalToBytesArray;
exports.createWithdrawal = createWithdrawal;
exports.createWithdrawalFromBytesArray = createWithdrawalFromBytesArray;
const address_ts_1 = require("./address.js");
const bytes_ts_1 = require("./bytes.js");
const constants_ts_1 = require("./constants.js");
const types_ts_1 = require("./types.js");
/**

@@ -15,15 +18,14 @@ * Convert a withdrawal to a byte array

const { index, validatorIndex, address, amount } = withdrawal;
const indexBytes = (0, types_js_1.toType)(index, types_js_1.TypeOutput.BigInt) === constants_js_1.BIGINT_0
const indexBytes = (0, types_ts_1.toType)(index, types_ts_1.TypeOutput.BigInt) === constants_ts_1.BIGINT_0
? new Uint8Array()
: (0, types_js_1.toType)(index, types_js_1.TypeOutput.Uint8Array);
const validatorIndexBytes = (0, types_js_1.toType)(validatorIndex, types_js_1.TypeOutput.BigInt) === constants_js_1.BIGINT_0
: (0, types_ts_1.toType)(index, types_ts_1.TypeOutput.Uint8Array);
const validatorIndexBytes = (0, types_ts_1.toType)(validatorIndex, types_ts_1.TypeOutput.BigInt) === constants_ts_1.BIGINT_0
? new Uint8Array()
: (0, types_js_1.toType)(validatorIndex, types_js_1.TypeOutput.Uint8Array);
const addressBytes = address instanceof address_js_1.Address ? address.bytes : (0, types_js_1.toType)(address, types_js_1.TypeOutput.Uint8Array);
const amountBytes = (0, types_js_1.toType)(amount, types_js_1.TypeOutput.BigInt) === constants_js_1.BIGINT_0
: (0, types_ts_1.toType)(validatorIndex, types_ts_1.TypeOutput.Uint8Array);
const addressBytes = address instanceof address_ts_1.Address ? address.bytes : (0, types_ts_1.toType)(address, types_ts_1.TypeOutput.Uint8Array);
const amountBytes = (0, types_ts_1.toType)(amount, types_ts_1.TypeOutput.BigInt) === constants_ts_1.BIGINT_0
? new Uint8Array()
: (0, types_js_1.toType)(amount, types_js_1.TypeOutput.Uint8Array);
: (0, types_ts_1.toType)(amount, types_ts_1.TypeOutput.Uint8Array);
return [indexBytes, validatorIndexBytes, addressBytes, amountBytes];
}
exports.withdrawalToBytesArray = withdrawalToBytesArray;
/**

@@ -38,7 +40,3 @@ * Representation of EIP-4895 withdrawal data

*/
constructor(index, validatorIndex, address,
/**
* withdrawal amount in Gwei to match the CL representation and eventually ssz withdrawalsRoot
*/
amount) {
constructor(index, validatorIndex, address, amount) {
this.index = index;

@@ -62,6 +60,6 @@ this.validatorIndex = validatorIndex;

return {
index: (0, bytes_js_1.bigIntToHex)(this.index),
validatorIndex: (0, bytes_js_1.bigIntToHex)(this.validatorIndex),
address: (0, bytes_js_1.bytesToHex)(this.address.bytes),
amount: (0, bytes_js_1.bigIntToHex)(this.amount),
index: (0, bytes_ts_1.bigIntToHex)(this.index),
validatorIndex: (0, bytes_ts_1.bigIntToHex)(this.validatorIndex),
address: (0, bytes_ts_1.bytesToHex)(this.address.bytes),
amount: (0, bytes_ts_1.bigIntToHex)(this.amount),
};

@@ -79,9 +77,8 @@ }

const { index: indexData, validatorIndex: validatorIndexData, address: addressData, amount: amountData, } = withdrawalData;
const index = (0, types_js_1.toType)(indexData, types_js_1.TypeOutput.BigInt);
const validatorIndex = (0, types_js_1.toType)(validatorIndexData, types_js_1.TypeOutput.BigInt);
const address = addressData instanceof address_js_1.Address ? addressData : new address_js_1.Address((0, bytes_js_1.toBytes)(addressData));
const amount = (0, types_js_1.toType)(amountData, types_js_1.TypeOutput.BigInt);
const index = (0, types_ts_1.toType)(indexData, types_ts_1.TypeOutput.BigInt);
const validatorIndex = (0, types_ts_1.toType)(validatorIndexData, types_ts_1.TypeOutput.BigInt);
const address = addressData instanceof address_ts_1.Address ? addressData : new address_ts_1.Address((0, bytes_ts_1.toBytes)(addressData));
const amount = (0, types_ts_1.toType)(amountData, types_ts_1.TypeOutput.BigInt);
return new Withdrawal(index, validatorIndex, address, amount);
}
exports.createWithdrawal = createWithdrawal;
/**

@@ -100,3 +97,2 @@ * Creates a validator withdrawal request to be submitted to the consensus layer from

}
exports.createWithdrawalFromBytesArray = createWithdrawalFromBytesArray;
//# sourceMappingURL=withdrawal.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"withdrawal.js","sourceRoot":"","sources":["../../src/withdrawal.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"withdrawal.js","sourceRoot":"","sources":["../../src/withdrawal.ts"],"names":[],"mappings":"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"}

@@ -1,2 +0,2 @@

import type { BigIntLike, BytesLike, PrefixedHexString } from './types.js';
import type { BigIntLike, BytesLike, PrefixedHexString } from './types.ts';
export interface AccountData {

@@ -81,3 +81,3 @@ nonce?: BigIntLike;

*/
export declare const isValidAddress: (hexAddress: string) => hexAddress is `0x${string}`;
export declare const isValidAddress: (hexAddress: string) => hexAddress is PrefixedHexString;
/**

@@ -156,4 +156,4 @@ * Returns a checksummed address.

export declare const isZeroAddress: (hexAddress: string) => boolean;
export declare function accountBodyFromSlim(body: AccountBodyBytes): Uint8Array[];
export declare function accountBodyToSlim(body: AccountBodyBytes): Uint8Array[];
export declare function accountBodyFromSlim(body: AccountBodyBytes): Uint8Array<ArrayBufferLike>[];
export declare function accountBodyToSlim(body: AccountBodyBytes): Uint8Array<ArrayBuffer>[];
/**

@@ -164,3 +164,3 @@ * Converts a slim account (per snap protocol spec) to the RLP encoded version of the account

*/
export declare function accountBodyToRLP(body: AccountBodyBytes, couldBeSlim?: boolean): Uint8Array;
export declare function accountBodyToRLP(body: AccountBodyBytes, couldBeSlim?: boolean): Uint8Array<ArrayBufferLike>;
//# sourceMappingURL=account.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/account.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/account.ts"],"names":[],"mappings":"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"}
import { RLP } from '@ethereumjs/rlp';
import { keccak256 } from 'ethereum-cryptography/keccak.js';
import { secp256k1 } from 'ethereum-cryptography/secp256k1.js';
import { bigIntToUnpaddedBytes, bytesToBigInt, bytesToHex, bytesToInt, concatBytes, equalsBytes, hexToBytes, intToUnpaddedBytes, toBytes, utf8ToBytes, } from './bytes.js';
import { BIGINT_0, KECCAK256_NULL, KECCAK256_RLP } from './constants.js';
import { assertIsBytes, assertIsHexString, assertIsString } from './helpers.js';
import { stripHexPrefix } from './internal.js';
import { bigIntToUnpaddedBytes, bytesToBigInt, bytesToHex, bytesToInt, concatBytes, equalsBytes, hexToBytes, intToUnpaddedBytes, toBytes, utf8ToBytes, } from "./bytes.js";
import { BIGINT_0, KECCAK256_NULL, KECCAK256_RLP } from "./constants.js";
import { EthereumJSErrorWithoutCode } from "./errors.js";
import { assertIsBytes, assertIsHexString, assertIsString } from "./helpers.js";
import { stripHexPrefix } from "./internal.js";
/**

@@ -111,15 +112,15 @@ * Account class to load and maintain the basic account objects.

if (this._nonce !== null && this._nonce < BIGINT_0) {
throw new Error('nonce must be greater than zero');
throw EthereumJSErrorWithoutCode('nonce must be greater than zero');
}
if (this._balance !== null && this._balance < BIGINT_0) {
throw new Error('balance must be greater than zero');
throw EthereumJSErrorWithoutCode('balance must be greater than zero');
}
if (this._storageRoot !== null && this._storageRoot.length !== 32) {
throw new Error('storageRoot must have a length of 32');
throw EthereumJSErrorWithoutCode('storageRoot must have a length of 32');
}
if (this._codeHash !== null && this._codeHash.length !== 32) {
throw new Error('codeHash must have a length of 32');
throw EthereumJSErrorWithoutCode('codeHash must have a length of 32');
}
if (this._codeSize !== null && this._codeSize < BIGINT_0) {
throw new Error('codeSize must be greater than zero');
throw EthereumJSErrorWithoutCode('codeSize must be greater than zero');
}

@@ -240,3 +241,3 @@ }

if (!Array.isArray(values)) {
throw new Error('Invalid serialized account input. Must be array');
throw EthereumJSErrorWithoutCode('Invalid serialized account input. Must be array');
}

@@ -248,7 +249,7 @@ return createAccountFromBytesArray(values);

if (!Array.isArray(values)) {
throw new Error('Invalid serialized account input. Must be array');
throw EthereumJSErrorWithoutCode('Invalid serialized account input. Must be array');
}
let nonce = null;
if (!Array.isArray(values[0])) {
throw new Error('Invalid partial nonce encoding. Must be array');
throw EthereumJSErrorWithoutCode('Invalid partial nonce encoding. Must be array');
}

@@ -258,3 +259,3 @@ else {

if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for nonce`);
throw EthereumJSErrorWithoutCode(`Invalid isNullIndicator=${isNotNullIndicator} for nonce`);
}

@@ -267,3 +268,3 @@ if (isNotNullIndicator === 1) {

if (!Array.isArray(values[1])) {
throw new Error('Invalid partial balance encoding. Must be array');
throw EthereumJSErrorWithoutCode('Invalid partial balance encoding. Must be array');
}

@@ -273,3 +274,3 @@ else {

if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for balance`);
throw EthereumJSErrorWithoutCode(`Invalid isNullIndicator=${isNotNullIndicator} for balance`);
}

@@ -282,3 +283,3 @@ if (isNotNullIndicator === 1) {

if (!Array.isArray(values[2])) {
throw new Error('Invalid partial storageRoot encoding. Must be array');
throw EthereumJSErrorWithoutCode('Invalid partial storageRoot encoding. Must be array');
}

@@ -288,3 +289,3 @@ else {

if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for storageRoot`);
throw EthereumJSErrorWithoutCode(`Invalid isNullIndicator=${isNotNullIndicator} for storageRoot`);
}

@@ -297,3 +298,3 @@ if (isNotNullIndicator === 1) {

if (!Array.isArray(values[3])) {
throw new Error('Invalid partial codeHash encoding. Must be array');
throw EthereumJSErrorWithoutCode('Invalid partial codeHash encoding. Must be array');
}

@@ -303,3 +304,3 @@ else {

if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for codeHash`);
throw EthereumJSErrorWithoutCode(`Invalid isNullIndicator=${isNotNullIndicator} for codeHash`);
}

@@ -312,3 +313,3 @@ if (isNotNullIndicator === 1) {

if (!Array.isArray(values[4])) {
throw new Error('Invalid partial codeSize encoding. Must be array');
throw EthereumJSErrorWithoutCode('Invalid partial codeSize encoding. Must be array');
}

@@ -318,3 +319,3 @@ else {

if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for codeSize`);
throw EthereumJSErrorWithoutCode(`Invalid isNullIndicator=${isNotNullIndicator} for codeSize`);
}

@@ -327,3 +328,3 @@ if (isNotNullIndicator === 1) {

if (!Array.isArray(values[5])) {
throw new Error('Invalid partial version encoding. Must be array');
throw EthereumJSErrorWithoutCode('Invalid partial version encoding. Must be array');
}

@@ -333,3 +334,3 @@ else {

if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for version`);
throw EthereumJSErrorWithoutCode(`Invalid isNullIndicator=${isNotNullIndicator} for version`);
}

@@ -349,3 +350,3 @@ if (isNotNullIndicator === 1) {

}
catch (e) {
catch {
return false;

@@ -423,6 +424,6 @@ }

if (from.length !== 20) {
throw new Error('Expected from to be of length 20');
throw EthereumJSErrorWithoutCode('Expected from to be of length 20');
}
if (salt.length !== 32) {
throw new Error('Expected salt to be of length 32');
throw EthereumJSErrorWithoutCode('Expected salt to be of length 32');
}

@@ -453,3 +454,3 @@ const address = keccak256(concatBytes(hexToBytes('0xff'), from, salt, keccak256(initCode)));

}
catch (e) {
catch {
return false;

@@ -465,3 +466,3 @@ }

}
catch (e) {
catch {
return false;

@@ -482,3 +483,3 @@ }

if (pubKey.length !== 64) {
throw new Error('Expected pubKey to be of length 64');
throw EthereumJSErrorWithoutCode('Expected pubKey to be of length 64');
}

@@ -528,3 +529,3 @@ // Only take the lower 160bits of the hash

}
catch (e) {
catch {
return false;

@@ -531,0 +532,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/account.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/account.ts"],"names":[],"mappings":"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"}

@@ -1,2 +0,2 @@

import type { PrefixedHexString } from './types.js';
import type { PrefixedHexString } from './types.ts';
/**

@@ -3,0 +3,0 @@ * Handling and generating Ethereum addresses

@@ -1,1 +0,1 @@

{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD;;GAEG;AACH,qBAAa,OAAO;IAClB,SAAgB,KAAK,EAAE,UAAU,CAAA;gBAErB,KAAK,EAAE,UAAU;IAO7B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIjC;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;;OAGG;IACH,2BAA2B,IAAI,OAAO;IAOtC;;OAEG;IACH,QAAQ,IAAI,iBAAiB;IAI7B;;OAEG;IACH,OAAO,IAAI,UAAU;CAGtB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM9D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAMtE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAM3E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAK3E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAQT"}
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD;;GAEG;AACH,qBAAa,OAAO;IAClB,SAAgB,KAAK,EAAE,UAAU,CAAA;gBAErB,KAAK,EAAE,UAAU;IAO7B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIjC;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;;OAGG;IACH,2BAA2B,IAAI,OAAO;IAOtC;;OAEG;IACH,QAAQ,IAAI,iBAAiB;IAI7B;;OAEG;IACH,OAAO,IAAI,UAAU;CAGtB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM9D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAK5D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAMtE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAM3E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAK3E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAQT"}

@@ -1,4 +0,5 @@

import { generateAddress, generateAddress2, isValidAddress, privateToAddress, pubToAddress, } from './account.js';
import { bigIntToBytes, bytesToBigInt, bytesToHex, equalsBytes, hexToBytes, setLengthLeft, } from './bytes.js';
import { BIGINT_0 } from './constants.js';
import { generateAddress, generateAddress2, isValidAddress, privateToAddress, pubToAddress, } from "./account.js";
import { bigIntToBytes, bytesToBigInt, bytesToHex, equalsBytes, hexToBytes, setLengthLeft, } from "./bytes.js";
import { BIGINT_0 } from "./constants.js";
import { EthereumJSErrorWithoutCode } from "./errors.js";
/**

@@ -10,3 +11,3 @@ * Handling and generating Ethereum addresses

if (bytes.length !== 20) {
throw new Error('Invalid address length');
throw EthereumJSErrorWithoutCode('Invalid address length');
}

@@ -63,3 +64,3 @@ this.bytes = bytes;

if (bytes.length > 20) {
throw new Error(`Invalid address, too long: ${bytes.length}`);
throw EthereumJSErrorWithoutCode(`Invalid address, too long: ${bytes.length}`);
}

@@ -74,3 +75,3 @@ return new Address(setLengthLeft(bytes, 20));

if (!isValidAddress(str)) {
throw new Error(`Invalid address input=${str}`);
throw EthereumJSErrorWithoutCode(`Invalid address input=${str}`);
}

@@ -85,3 +86,3 @@ return new Address(hexToBytes(str));

if (!(pubKey instanceof Uint8Array)) {
throw new Error('Public key should be Uint8Array');
throw EthereumJSErrorWithoutCode('Public key should be Uint8Array');
}

@@ -97,3 +98,3 @@ const bytes = pubToAddress(pubKey);

if (!(privateKey instanceof Uint8Array)) {
throw new Error('Private key should be Uint8Array');
throw EthereumJSErrorWithoutCode('Private key should be Uint8Array');
}

@@ -110,3 +111,3 @@ const bytes = privateToAddress(privateKey);

if (typeof nonce !== 'bigint') {
throw new Error('Expected nonce to be a bigint');
throw EthereumJSErrorWithoutCode('Expected nonce to be a bigint');
}

@@ -123,6 +124,6 @@ return new Address(generateAddress(from.bytes, bigIntToBytes(nonce)));

if (!(salt instanceof Uint8Array)) {
throw new Error('Expected salt to be a Uint8Array');
throw EthereumJSErrorWithoutCode('Expected salt to be a Uint8Array');
}
if (!(initCode instanceof Uint8Array)) {
throw new Error('Expected initCode to be a Uint8Array');
throw EthereumJSErrorWithoutCode('Expected initCode to be a Uint8Array');
}

@@ -129,0 +130,0 @@ return new Address(generateAddress2(from.bytes, salt, initCode));

@@ -1,1 +0,1 @@

{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"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"}

@@ -1,3 +0,3 @@

import type { KZG } from './kzg.js';
import type { PrefixedHexString } from './types.js';
import type { KZG } from './kzg.ts';
import type { PrefixedHexString } from './types.ts';
export declare const getBlobs: (input: string) => `0x${string}`[];

@@ -4,0 +4,0 @@ export declare const blobsToCommitments: (kzg: KZG, blobs: PrefixedHexString[]) => `0x${string}`[];

@@ -1,1 +0,1 @@

{"version":3,"file":"blobs.d.ts","sourceRoot":"","sources":["../../src/blobs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AA8BnD,eAAO,MAAM,QAAQ,UAAW,MAAM,oBAsBrC,CAAA;AAED,eAAO,MAAM,kBAAkB,QAAS,GAAG,SAAS,iBAAiB,EAAE,oBAMtE,CAAA;AAED,eAAO,MAAM,aAAa,QACnB,GAAG,SACD,iBAAiB,EAAE,eACb,iBAAiB,EAAE,oBAOjC,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,eACnB,iBAAiB,yBACN,MAAM,kBAM9B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,gBAAiB,iBAAiB,EAAE,oBAM5E,CAAA"}
{"version":3,"file":"blobs.d.ts","sourceRoot":"","sources":["../../src/blobs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AA8BnD,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,oBAsBrC,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,KAAK,GAAG,EAAE,OAAO,iBAAiB,EAAE,oBAMtE,CAAA;AAED,eAAO,MAAM,aAAa,GACxB,KAAK,GAAG,EACR,OAAO,iBAAiB,EAAE,EAC1B,aAAa,iBAAiB,EAAE,oBAOjC,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,iBAAiB,EAC7B,uBAAuB,MAAM,kBAM9B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GAAI,aAAa,iBAAiB,EAAE,oBAM5E,CAAA"}
import { sha256 } from 'ethereum-cryptography/sha256.js';
import { bytesToHex, hexToBytes, utf8ToBytes } from './bytes.js';
import { bytesToHex, hexToBytes, utf8ToBytes } from "./bytes.js";
/**

@@ -4,0 +4,0 @@ * These utilities for constructing blobs are borrowed from https://github.com/Inphi/eip4844-interop.git

@@ -1,1 +0,1 @@

{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../../src/blobs.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../../src/blobs.ts"],"names":[],"mappings":"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"}
import { bytesToHex as _bytesToUnprefixedHex } from 'ethereum-cryptography/utils.js';
import type { PrefixedHexString, TransformableToBytes } from './types.js';
import type { PrefixedHexString, TransformableToBytes } from './types.ts';
/**

@@ -13,4 +13,4 @@ * @deprecated

*/
export declare const hexToBytes: (hex: string) => Uint8Array;
export declare const unprefixedHexToBytes: (hex: string) => Uint8Array;
export declare const hexToBytes: (hex: string) => Uint8Array<ArrayBufferLike>;
export declare const unprefixedHexToBytes: (hex: string) => Uint8Array<ArrayBufferLike>;
export declare const bytesToHex: (bytes: Uint8Array) => PrefixedHexString;

@@ -226,5 +226,17 @@ /**

/**
* Converts a Uint8Array of bytes into an array of bits.
* @param {Uint8Array} bytes - The input byte array.
* @param {number} bitLength - The number of bits to extract from the input bytes.
* @returns {number[]} An array of bits (each 0 or 1) corresponding to the input bytes.
*/
export declare function bytesToBits(bytes: Uint8Array, bitLength?: number): number[];
/**
* Converts an array of bits into a Uint8Array.
* The input bits are grouped into sets of 8, with the first bit in each group being the most significant.
* @param {number[]} bits - The input array of bits (each should be 0 or 1). Its length should be a multiple of 8.
* @returns {Uint8Array} A Uint8Array constructed from the input bits.
*/
export declare function bitsToBytes(bits: number[]): Uint8Array;
/**
* Compares two byte arrays and returns the count of consecutively matching items from the start.
*
* @function
* @param {Uint8Array} bytes1 - The first Uint8Array to compare.

@@ -235,2 +247,19 @@ * @param {Uint8Array} bytes2 - The second Uint8Array to compare.

export declare function matchingBytesLength(bytes1: Uint8Array, bytes2: Uint8Array): number;
/**
* Compares two arrays of bits (0 or 1) and returns the count of consecutively matching bits from the start.
* @param {number[]} bits1 - The first array of bits, in bytes or bits.
* @param {number[]} bits2 - The second array of bits, in bytes or bits.
* @returns {number} The count of consecutively matching bits from the start.
*/
export declare function matchingBitsLength(bits1: number[], bits2: number[]): number;
/**
* Checks whether two arrays of bits are equal.
*
* Two arrays are considered equal if they have the same length and each corresponding element is identical.
*
* @param {number[]} bits1 - The first bits array.
* @param {number[]} bits2 - The second bits array.
* @returns {boolean} True if the arrays are equal; otherwise, false.
*/
export declare function equalsBits(bits1: number[], bits2: number[]): boolean;
//# sourceMappingURL=bytes.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"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"}
import { getRandomBytesSync } from 'ethereum-cryptography/random.js';
// eslint-disable-next-line no-restricted-imports
import { bytesToHex as _bytesToUnprefixedHex, hexToBytes as nobleH2B, } from 'ethereum-cryptography/utils.js';
import { assertIsArray, assertIsBytes, assertIsHexString } from './helpers.js';
import { isHexString, padToEven, stripHexPrefix } from './internal.js';
import { EthereumJSErrorWithoutCode } from "./errors.js";
import { assertIsArray, assertIsBytes, assertIsHexString } from "./helpers.js";
import { isHexString, padToEven, stripHexPrefix } from "./internal.js";
const BIGINT_0 = BigInt(0);

@@ -19,3 +19,3 @@ /**

if (!hex.startsWith('0x'))
throw new Error('input string must be 0x prefixed');
throw EthereumJSErrorWithoutCode('input string must be 0x prefixed');
return nobleH2B(padToEven(stripHexPrefix(hex)));

@@ -25,3 +25,3 @@ };

if (hex.startsWith('0x'))
throw new Error('input string cannot be 0x prefixed');
throw EthereumJSErrorWithoutCode('input string cannot be 0x prefixed');
return nobleH2B(padToEven(hex));

@@ -71,3 +71,3 @@ };

if (!Number.isSafeInteger(res))
throw new Error('Number exceeds 53 bits');
throw EthereumJSErrorWithoutCode('Number exceeds 53 bits');
return res;

@@ -83,3 +83,3 @@ };

if (!Number.isSafeInteger(i) || i < 0) {
throw new Error(`Received an invalid integer type: ${i}`);
throw EthereumJSErrorWithoutCode(`Received an invalid integer type: ${i}`);
}

@@ -103,3 +103,2 @@ return ('0x' + i.toString(16));

export const bigIntToBytes = (num, littleEndian = false) => {
// eslint-disable-next-line @typescript-eslint/no-use-before-define
const bytes = toBytes(`0x${padToEven(num.toString(16))}`);

@@ -208,3 +207,3 @@ return littleEndian ? bytes.reverse() : bytes;

if (!isHexString(v)) {
throw new Error(`Cannot convert string to Uint8Array. toBytes only supports 0x-prefixed hex strings and this string was given: ${v}`);
throw EthereumJSErrorWithoutCode(`Cannot convert string to Uint8Array. toBytes only supports 0x-prefixed hex strings and this string was given: ${v}`);
}

@@ -218,3 +217,3 @@ return hexToBytes(v);

if (v < BIGINT_0) {
throw new Error(`Cannot convert negative bigint to Uint8Array. Given: ${v}`);
throw EthereumJSErrorWithoutCode(`Cannot convert negative bigint to Uint8Array. Given: ${v}`);
}

@@ -230,3 +229,3 @@ let n = v.toString(16);

}
throw new Error('invalid type');
throw EthereumJSErrorWithoutCode('invalid type');
};

@@ -295,3 +294,3 @@ /**

if (v !== undefined && v.length > 0 && v[0] === 0) {
throw new Error(`${k} cannot have leading zeroes, received: ${bytesToHex(v)}`);
throw EthereumJSErrorWithoutCode(`${k} cannot have leading zeroes, received: ${bytesToHex(v)}`);
}

@@ -437,3 +436,2 @@ }

}
// eslint-disable-next-line no-restricted-imports
export { bytesToUtf8, equalsBytes, utf8ToBytes } from 'ethereum-cryptography/utils.js';

@@ -444,5 +442,34 @@ export function hexToBigInt(input) {

/**
* Converts a Uint8Array of bytes into an array of bits.
* @param {Uint8Array} bytes - The input byte array.
* @param {number} bitLength - The number of bits to extract from the input bytes.
* @returns {number[]} An array of bits (each 0 or 1) corresponding to the input bytes.
*/
export function bytesToBits(bytes, bitLength) {
const bits = [];
for (let i = 0; i < (bitLength ?? bytes.length * 8); i++) {
const byteIndex = Math.floor(i / 8);
const bitIndex = 7 - (i % 8);
bits.push((bytes[byteIndex] >> bitIndex) & 1);
}
return bits;
}
/**
* Converts an array of bits into a Uint8Array.
* The input bits are grouped into sets of 8, with the first bit in each group being the most significant.
* @param {number[]} bits - The input array of bits (each should be 0 or 1). Its length should be a multiple of 8.
* @returns {Uint8Array} A Uint8Array constructed from the input bits.
*/
export function bitsToBytes(bits) {
const numBytes = Math.ceil(bits.length / 8); // Ensure partial byte storage
const byteData = new Uint8Array(numBytes);
for (let i = 0; i < bits.length; i++) {
const byteIndex = Math.floor(i / 8);
const bitIndex = 7 - (i % 8);
byteData[byteIndex] |= bits[i] << bitIndex;
}
return byteData;
}
/**
* Compares two byte arrays and returns the count of consecutively matching items from the start.
*
* @function
* @param {Uint8Array} bytes1 - The first Uint8Array to compare.

@@ -466,2 +493,41 @@ * @param {Uint8Array} bytes2 - The second Uint8Array to compare.

}
/**
* Compares two arrays of bits (0 or 1) and returns the count of consecutively matching bits from the start.
* @param {number[]} bits1 - The first array of bits, in bytes or bits.
* @param {number[]} bits2 - The second array of bits, in bytes or bits.
* @returns {number} The count of consecutively matching bits from the start.
*/
export function matchingBitsLength(bits1, bits2) {
let count = 0;
const minLength = Math.min(bits1.length, bits2.length);
for (let i = 0; i < minLength; i++) {
if (bits1[i] === bits2[i]) {
count++;
}
else {
return count;
}
}
return count;
}
/**
* Checks whether two arrays of bits are equal.
*
* Two arrays are considered equal if they have the same length and each corresponding element is identical.
*
* @param {number[]} bits1 - The first bits array.
* @param {number[]} bits2 - The second bits array.
* @returns {boolean} True if the arrays are equal; otherwise, false.
*/
export function equalsBits(bits1, bits2) {
if (bits1.length !== bits2.length) {
return false;
}
for (let i = 0; i < bits1.length; i++) {
if (bits1[i] !== bits2[i]) {
return false;
}
}
return true;
}
//# sourceMappingURL=bytes.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"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"}

@@ -28,3 +28,3 @@ /**

*/
export declare const KECCAK256_NULL: Uint8Array;
export declare const KECCAK256_NULL: Uint8Array<ArrayBufferLike>;
/**

@@ -37,3 +37,3 @@ * Keccak-256 of an RLP of an empty array

*/
export declare const KECCAK256_RLP_ARRAY: Uint8Array;
export declare const KECCAK256_RLP_ARRAY: Uint8Array<ArrayBufferLike>;
/**

@@ -46,7 +46,8 @@ * Keccak-256 hash of the RLP of null

*/
export declare const KECCAK256_RLP: Uint8Array;
export declare const KECCAK256_RLP: Uint8Array<ArrayBufferLike>;
export declare const SHA256_NULL: Uint8Array<ArrayBufferLike>;
/**
* RLP encoded empty string
*/
export declare const RLP_EMPTY_STRING: Uint8Array;
export declare const RLP_EMPTY_STRING: Uint8Array<ArrayBuffer>;
export declare const MAX_WITHDRAWALS_PER_PAYLOAD = 16;

@@ -53,0 +54,0 @@ export declare const RIPEMD160_ADDRESS_STRING = "0000000000000000000000000000000000000003";

@@ -1,1 +0,1 @@

{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,eAAO,MAAM,UAAU,QAA+B,CAAA;AAEtD;;GAEG;AACH,eAAO,MAAM,WAAW,QAEvB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAE9B,CAAA;AAED,eAAO,MAAM,eAAe,QAAoB,CAAA;AAChD,eAAO,MAAM,qBAAqB,QAAgC,CAAA;AAElE;;GAEG;AACH,eAAO,MAAM,UAAU,QAEtB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,uEAAuE,CAAA;AAEpG;;GAEG;AACH,eAAO,MAAM,cAAc,YAA+B,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,qBAAqB,uEACoC,CAAA;AAEtE;;GAEG;AACH,eAAO,MAAM,mBAAmB,YAAoC,CAAA;AAEpE;;GAEG;AACH,eAAO,MAAM,eAAe,uEAAuE,CAAA;AAEnG;;GAEG;AACH,eAAO,MAAM,aAAa,YAA8B,CAAA;AAExD;;GAEG;AACH,eAAO,MAAM,gBAAgB,YAA0B,CAAA;AAEvD,eAAO,MAAM,2BAA2B,KAAK,CAAA;AAE7C,eAAO,MAAM,wBAAwB,6CAA6C,CAAA;AAElF;;GAEG;AAEH,eAAO,MAAM,WAAW,QAAa,CAAA;AAErC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AAEjC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AAEnC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AAErC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,aAAa,QAAwC,CAAA;AAClE,eAAO,MAAM,cAAc,QAA4D,CAAA;AACvF,eAAO,MAAM,cAAc,QACmD,CAAA;AAC9E,eAAO,MAAM,cAAc,QAAyB,CAAA"}
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,UAAU,QAA+B,CAAA;AAEtD;;GAEG;AACH,eAAO,MAAM,WAAW,QAEvB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAE9B,CAAA;AAED,eAAO,MAAM,eAAe,QAAoB,CAAA;AAChD,eAAO,MAAM,qBAAqB,QAAgC,CAAA;AAElE;;GAEG;AACH,eAAO,MAAM,UAAU,QAEtB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,uEAAuE,CAAA;AAEpG;;GAEG;AACH,eAAO,MAAM,cAAc,6BAA+B,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,qBAAqB,uEACoC,CAAA;AAEtE;;GAEG;AACH,eAAO,MAAM,mBAAmB,6BAAoC,CAAA;AAEpE;;GAEG;AACH,eAAO,MAAM,eAAe,uEAAuE,CAAA;AAEnG;;GAEG;AACH,eAAO,MAAM,aAAa,6BAA8B,CAAA;AAExD,eAAO,MAAM,WAAW,6BAA2B,CAAA;AAEnD;;GAEG;AACH,eAAO,MAAM,gBAAgB,yBAA0B,CAAA;AAEvD,eAAO,MAAM,2BAA2B,KAAK,CAAA;AAE7C,eAAO,MAAM,wBAAwB,6CAA6C,CAAA;AAElF;;GAEG;AAEH,eAAO,MAAM,WAAW,QAAa,CAAA;AAErC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AACjC,eAAO,MAAM,QAAQ,QAAY,CAAA;AAEjC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,SAAS,QAAa,CAAA;AAEnC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AAErC,eAAO,MAAM,SAAS,QAAa,CAAA;AACnC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,UAAU,QAAc,CAAA;AACrC,eAAO,MAAM,aAAa,QAAwC,CAAA;AAClE,eAAO,MAAM,cAAc,QAA4D,CAAA;AACvF,eAAO,MAAM,cAAc,QACmD,CAAA;AAC9E,eAAO,MAAM,cAAc,QAAyB,CAAA"}
import { secp256k1 } from 'ethereum-cryptography/secp256k1.js';
import { hexToBytes } from './bytes.js';
import { sha256 } from 'ethereum-cryptography/sha256.js';
import { hexToBytes } from "./bytes.js";
/**

@@ -47,2 +48,3 @@ * 2^64-1

export const KECCAK256_RLP = hexToBytes(KECCAK256_RLP_S);
export const SHA256_NULL = sha256(new Uint8Array());
/**

@@ -49,0 +51,0 @@ * RLP encoded empty string

@@ -1,1 +0,1 @@

{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}

@@ -5,12 +5,14 @@ export type DBObject = {

export type BatchDBOp<TKey extends Uint8Array | string | number = Uint8Array, TValue extends Uint8Array | string | DBObject = Uint8Array> = PutBatch<TKey, TValue> | DelBatch<TKey>;
export declare enum KeyEncoding {
String = "string",
Bytes = "view",
Number = "number"
}
export declare enum ValueEncoding {
String = "string",
Bytes = "view",
JSON = "json"
}
export type KeyEncoding = (typeof KeyEncoding)[keyof typeof KeyEncoding];
export declare const KeyEncoding: {
readonly String: "string";
readonly Bytes: "view";
readonly Number: "number";
};
export type ValueEncoding = (typeof ValueEncoding)[keyof typeof ValueEncoding];
export declare const ValueEncoding: {
readonly String: "string";
readonly Bytes: "view";
readonly JSON: "json";
};
export type EncodingOpts = {

@@ -17,0 +19,0 @@ keyEncoding?: KeyEncoding;

@@ -1,1 +0,1 @@

{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/db.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAA;CAC1C,CAAA;AACD,MAAM,MAAM,SAAS,CACnB,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,MAAM,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;AAE3C,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,KAAK,SAAS;IACd,MAAM,WAAW;CAClB;AAED,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,KAAK,SAAS;IACd,IAAI,SAAS;CACd;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B,CAAA;AACD,MAAM,WAAW,QAAQ,CACvB,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,MAAM,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU;IAE1D,IAAI,EAAE,KAAK,CAAA;IACX,GAAG,EAAE,IAAI,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,QAAQ,CAAC,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU;IAC9E,IAAI,EAAE,KAAK,CAAA;IACX,GAAG,EAAE,IAAI,CAAA;IACT,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,EAAE,CACjB,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,MAAM,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU;IAE1D;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEhE;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/D;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAElD;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAExD;;;OAGG;IACH,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAE/B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAEtB"}
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/db.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAA;CAC1C,CAAA;AACD,MAAM,MAAM,SAAS,CACnB,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,MAAM,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;AAE3C,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAA;AAExE,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAA;AAE9E,eAAO,MAAM,aAAa;;;;CAIhB,CAAA;AAEV,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B,CAAA;AACD,MAAM,WAAW,QAAQ,CACvB,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,MAAM,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU;IAE1D,IAAI,EAAE,KAAK,CAAA;IACX,GAAG,EAAE,IAAI,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,QAAQ,CAAC,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU;IAC9E,IAAI,EAAE,KAAK,CAAA;IACX,GAAG,EAAE,IAAI,CAAA;IACT,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,EAAE,CACjB,IAAI,SAAS,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EACtD,MAAM,SAAS,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU;IAE1D;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEhE;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/D;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAElD;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAExD;;;OAGG;IACH,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAE/B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAEtB"}

@@ -1,13 +0,11 @@

export var KeyEncoding;
(function (KeyEncoding) {
KeyEncoding["String"] = "string";
KeyEncoding["Bytes"] = "view";
KeyEncoding["Number"] = "number";
})(KeyEncoding = KeyEncoding || (KeyEncoding = {}));
export var ValueEncoding;
(function (ValueEncoding) {
ValueEncoding["String"] = "string";
ValueEncoding["Bytes"] = "view";
ValueEncoding["JSON"] = "json";
})(ValueEncoding = ValueEncoding || (ValueEncoding = {}));
export const KeyEncoding = {
String: 'string',
Bytes: 'view',
Number: 'number',
};
export const ValueEncoding = {
String: 'string',
Bytes: 'view',
JSON: 'json',
};
//# sourceMappingURL=db.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/db.ts"],"names":[],"mappings":"AAQA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,6BAAc,CAAA;IACd,gCAAiB,CAAA;AACnB,CAAC,EAJW,WAAW,GAAX,WAAW,KAAX,WAAW,QAItB;AAED,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,+BAAc,CAAA;IACd,8BAAa,CAAA;AACf,CAAC,EAJW,aAAa,GAAb,aAAa,KAAb,aAAa,QAIxB"}
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/db.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,QAAQ;CACR,CAAA;AAIV,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,MAAM;CACJ,CAAA"}

@@ -1,2 +0,2 @@

import type { PrefixedHexString } from './types.js';
import type { PrefixedHexString } from './types.ts';
export type StoragePair = [key: PrefixedHexString, value: PrefixedHexString];

@@ -3,0 +3,0 @@ export type AccountState = [

@@ -1,3 +0,3 @@

import { addHexPrefix, bigIntToHex } from './bytes.js';
import { isHexString } from './internal.js';
import { addHexPrefix, bigIntToHex } from "./bytes.js";
import { isHexString } from "./internal.js";
/**

@@ -4,0 +4,0 @@ * Parses the geth genesis state into Blockchain {@link GenesisState}

@@ -1,1 +0,1 @@

{"version":3,"file":"genesis.js","sourceRoot":"","sources":["../../src/genesis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAyC3C;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAS;IAC7C,MAAM,KAAK,GAAiB,EAAE,CAAA;IAC9B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC7C,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3D,+CAA+C;QAC/C,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;QAC3D,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACvE,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC1D,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACrE,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7D,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;KACzD;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
{"version":3,"file":"genesis.js","sourceRoot":"","sources":["../../src/genesis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAyC3C;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAS;IAC7C,MAAM,KAAK,GAAiB,EAAE,CAAA;IAC9B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3D,+CAA+C;QAC/C,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;QAC3D,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACvE,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC1D,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACrE,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7D,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}

@@ -1,1 +0,1 @@

{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UAAoB,MAAM,KAAG,IAK1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,UAAoB,UAAU,KAAG,IAK1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,UAAoB,MAAM,EAAE,KAAG,IAKxD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,UAAoB,MAAM,KAAG,IAKvD,CAAA"}
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAa,OAAO,MAAM,KAAG,IAK1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAa,OAAO,UAAU,KAAG,IAK1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAa,OAAO,MAAM,EAAE,KAAG,IAKxD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAa,OAAO,MAAM,KAAG,IAKvD,CAAA"}

@@ -1,2 +0,3 @@

import { isHexString } from './internal.js';
import { EthereumJSErrorWithoutCode } from "./errors.js";
import { isHexString } from "./internal.js";
/**

@@ -9,3 +10,3 @@ * Throws if a string is not hex prefixed

const msg = `This method only supports 0x-prefixed hex strings but input was: ${input}`;
throw new Error(msg);
throw EthereumJSErrorWithoutCode(msg);
}

@@ -20,3 +21,3 @@ };

const msg = `This method only supports Uint8Array but input was: ${input}`;
throw new Error(msg);
throw EthereumJSErrorWithoutCode(msg);
}

@@ -31,3 +32,3 @@ };

const msg = `This method only supports number arrays but input was: ${input}`;
throw new Error(msg);
throw EthereumJSErrorWithoutCode(msg);
}

@@ -42,5 +43,5 @@ };

const msg = `This method only supports strings but input was: ${input}`;
throw new Error(msg);
throw EthereumJSErrorWithoutCode(msg);
}
};
//# sourceMappingURL=helpers.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,KAAa;IACtD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;QACvB,MAAM,GAAG,GAAG,oEAAoE,KAAK,EAAE,CAAA;QACvF,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;KACrB;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,KAAiB;IACtD,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE;QAClC,MAAM,GAAG,GAAG,uDAAuD,KAAK,EAAE,CAAA;QAC1E,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;KACrB;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,KAAe;IACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,MAAM,GAAG,GAAG,0DAA0D,KAAK,EAAE,CAAA;QAC7E,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;KACrB;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,KAAa;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAM,GAAG,GAAG,oDAAoD,KAAK,EAAE,CAAA;QACvE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;KACrB;AACH,CAAC,CAAA"}
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,KAAa;IACtD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,oEAAoE,KAAK,EAAE,CAAA;QACvF,MAAM,0BAA0B,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,KAAiB;IACtD,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,uDAAuD,KAAK,EAAE,CAAA;QAC1E,MAAM,0BAA0B,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,KAAe;IACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,0DAA0D,KAAK,EAAE,CAAA;QAC7E,MAAM,0BAA0B,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,KAAa;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,oDAAoD,KAAK,EAAE,CAAA;QACvE,MAAM,0BAA0B,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC;AACH,CAAC,CAAA"}
/**
* Constants
*/
export * from './constants.js';
export * from './constants.ts';
/**
* Errors
*/
export * from './errors.ts';
/**
* Units helpers
*/
export * from './units.js';
export * from './units.ts';
/**
* Account class and helper functions
*/
export * from './account.js';
export * from './account.ts';
/**
* Address type
*/
export * from './address.js';
export * from './address.ts';
/**
* DB type
*/
export * from './db.js';
export * from './db.ts';
/**
* Withdrawal type
*/
export * from './withdrawal.js';
export * from './withdrawal.ts';
/**
* ECDSA signature
*/
export * from './signature.js';
export * from './signature.ts';
/**
* Utilities for manipulating bytes, Uint8Arrays, etc.
*/
export * from './bytes.js';
export * from './bytes.ts';
/**
* Helpful TypeScript types
*/
export * from './types.js';
export * from './types.ts';
/**
* Export ethjs-util methods
*/
export * from './asyncEventEmitter.js';
export * from './blobs.js';
export * from './genesis.js';
export { arrayContainsArray, fromAscii, fromUtf8, getBinarySize, getKeys, isHexString, padToEven, stripHexPrefix, toAscii, } from './internal.js';
export * from './kzg.js';
export * from './lock.js';
export * from './mapDB.js';
export * from './provider.js';
export * from './request.js';
export * from './tasks.js';
export * from './verkle.js';
export * from './binaryTree.ts';
export * from './blobs.ts';
export * from './genesis.ts';
export { arrayContainsArray, fromAscii, fromUtf8, getBinarySize, getKeys, isHexString, padToEven, stripHexPrefix, toAscii, } from './internal.ts';
export * from './kzg.ts';
export * from './lock.ts';
export * from './mapDB.ts';
export * from './provider.ts';
export * from './request.ts';
export * from './tasks.ts';
export * from './verkle.ts';
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,gBAAgB,CAAA;AAE9B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,cAAc,CAAA;AAE5B;;GAEG;AACH,cAAc,cAAc,CAAA;AAE5B;;GAEG;AACH,cAAc,SAAS,CAAA;AAEvB;;GAEG;AACH,cAAc,iBAAiB,CAAA;AAE/B;;GAEG;AACH,cAAc,gBAAgB,CAAA;AAE9B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,WAAW,EACX,SAAS,EACT,cAAc,EACd,OAAO,GACR,MAAM,eAAe,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,gBAAgB,CAAA;AAE9B;;GAEG;AACH,cAAc,aAAa,CAAA;AAE3B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,cAAc,CAAA;AAE5B;;GAEG;AACH,cAAc,cAAc,CAAA;AAE5B;;GAEG;AACH,cAAc,SAAS,CAAA;AAEvB;;GAEG;AACH,cAAc,iBAAiB,CAAA;AAE/B;;GAEG;AACH,cAAc,gBAAgB,CAAA;AAE9B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,WAAW,EACX,SAAS,EACT,cAAc,EACd,OAAO,GACR,MAAM,eAAe,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA"}
/**
* Constants
*/
export * from './constants.js';
export * from "./constants.js";
/**
* Errors
*/
export * from "./errors.js";
/**
* Units helpers
*/
export * from './units.js';
export * from "./units.js";
/**
* Account class and helper functions
*/
export * from './account.js';
export * from "./account.js";
/**
* Address type
*/
export * from './address.js';
export * from "./address.js";
/**
* DB type
*/
export * from './db.js';
export * from "./db.js";
/**
* Withdrawal type
*/
export * from './withdrawal.js';
export * from "./withdrawal.js";
/**
* ECDSA signature
*/
export * from './signature.js';
export * from "./signature.js";
/**
* Utilities for manipulating bytes, Uint8Arrays, etc.
*/
export * from './bytes.js';
export * from "./bytes.js";
/**
* Helpful TypeScript types
*/
export * from './types.js';
export * from "./types.js";
/**
* Export ethjs-util methods
*/
export * from './asyncEventEmitter.js';
export * from './blobs.js';
export * from './genesis.js';
export { arrayContainsArray, fromAscii, fromUtf8, getBinarySize, getKeys, isHexString, padToEven, stripHexPrefix, toAscii, } from './internal.js';
export * from './kzg.js';
export * from './lock.js';
export * from './mapDB.js';
export * from './provider.js';
export * from './request.js';
export * from './tasks.js';
export * from './verkle.js';
export * from "./binaryTree.js";
export * from "./blobs.js";
export * from "./genesis.js";
export { arrayContainsArray, fromAscii, fromUtf8, getBinarySize, getKeys, isHexString, padToEven, stripHexPrefix, toAscii, } from "./internal.js";
export * from "./kzg.js";
export * from "./lock.js";
export * from "./mapDB.js";
export * from "./provider.js";
export * from "./request.js";
export * from "./tasks.js";
export * from "./verkle.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,gBAAgB,CAAA;AAE9B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,cAAc,CAAA;AAE5B;;GAEG;AACH,cAAc,cAAc,CAAA;AAE5B;;GAEG;AACH,cAAc,SAAS,CAAA;AAEvB;;GAEG;AACH,cAAc,iBAAiB,CAAA;AAE/B;;GAEG;AACH,cAAc,gBAAgB,CAAA;AAE9B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,WAAW,EACX,SAAS,EACT,cAAc,EACd,OAAO,GACR,MAAM,eAAe,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,gBAAgB,CAAA;AAE9B;;GAEG;AACH,cAAc,aAAa,CAAA;AAE3B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,cAAc,CAAA;AAE5B;;GAEG;AACH,cAAc,cAAc,CAAA;AAE5B;;GAEG;AACH,cAAc,SAAS,CAAA;AAEvB;;GAEG;AACH,cAAc,iBAAiB,CAAA;AAE/B;;GAEG;AACH,cAAc,gBAAgB,CAAA;AAE9B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,YAAY,CAAA;AAE1B;;GAEG;AACH,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,WAAW,EACX,SAAS,EACT,cAAc,EACd,OAAO,GACR,MAAM,eAAe,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA"}

@@ -1,2 +0,2 @@

import type { PrefixedHexString } from './types.js';
import type { PrefixedHexString } from './types.ts';
/**

@@ -3,0 +3,0 @@ * Returns a boolean on whether or not the the input starts with '0x' and matches the optional length

@@ -1,1 +0,1 @@

{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAMtF;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,MAK5C,CAAA;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAU/C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,UAMxC;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAaT;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa3C;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,UAI3C;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,UAS5C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,YAuB1F"}
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAMtF;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,MAO5C,CAAA;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAY/C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,UAQxC;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,OAAO,EAAE,EACjB,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAaT;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa3C;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,UAI3C;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,UAS5C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,YA2B1F"}

@@ -24,3 +24,4 @@ /*

*/
import { bytesToUnprefixedHex, utf8ToBytes } from './bytes.js';
import { bytesToUnprefixedHex, utf8ToBytes } from "./bytes.js";
import { EthereumJSErrorWithoutCode } from "./errors.js";
/**

@@ -46,3 +47,3 @@ * Returns a boolean on whether or not the the input starts with '0x' and matches the optional length

if (typeof str !== 'string')
throw new Error(`[stripHexPrefix] input must be type 'string', received ${typeof str}`);
throw EthereumJSErrorWithoutCode(`[stripHexPrefix] input must be type 'string', received ${typeof str}`);
return isHexString(str) ? str.slice(2) : str;

@@ -58,3 +59,3 @@ };

if (typeof a !== 'string') {
throw new Error(`[padToEven] value must be type 'string', received ${typeof a}`);
throw EthereumJSErrorWithoutCode(`[padToEven] value must be type 'string', received ${typeof a}`);
}

@@ -72,3 +73,3 @@ if (a.length % 2)

if (typeof str !== 'string') {
throw new Error(`[getBinarySize] method requires input type 'string', received ${typeof str}`);
throw EthereumJSErrorWithoutCode(`[getBinarySize] method requires input type 'string', received ${typeof str}`);
}

@@ -87,6 +88,6 @@ return utf8ToBytes(str).byteLength;

if (Array.isArray(superset) !== true) {
throw new Error(`[arrayContainsArray] method requires input 'superset' to be an array, got type '${typeof superset}'`);
throw EthereumJSErrorWithoutCode(`[arrayContainsArray] method requires input 'superset' to be an array, got type '${typeof superset}'`);
}
if (Array.isArray(subset) !== true) {
throw new Error(`[arrayContainsArray] method requires input 'subset' to be an array, got type '${typeof subset}'`);
throw EthereumJSErrorWithoutCode(`[arrayContainsArray] method requires input 'subset' to be an array, got type '${typeof subset}'`);
}

@@ -154,6 +155,6 @@ return subset[some === true ? 'some' : 'every']((value) => superset.indexOf(value) >= 0);

if (!Array.isArray(params)) {
throw new Error(`[getKeys] method expects input 'params' to be an array, got ${typeof params}`);
throw EthereumJSErrorWithoutCode(`[getKeys] method expects input 'params' to be an array, got ${typeof params}`);
}
if (typeof key !== 'string') {
throw new Error(`[getKeys] method expects input 'key' to be type 'string', got ${typeof params}`);
throw EthereumJSErrorWithoutCode(`[getKeys] method expects input 'key' to be type 'string', got ${typeof params}`);
}

@@ -167,3 +168,3 @@ const result = [];

else if (typeof value !== 'string') {
throw new Error(`invalid abi - expected type 'string', received ${typeof value}`);
throw EthereumJSErrorWithoutCode(`invalid abi - expected type 'string', received ${typeof value}`);
}

@@ -170,0 +171,0 @@ result.push(value);

@@ -1,1 +0,1 @@

{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/lock.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,OAAO,IAAI;IAAjB;QACU,YAAO,GAAW,CAAC,CAAA;QACnB,yBAAoB,GAAgC,EAAE,CAAA;IAsChE,CAAC;IApCC;;;OAGG;IACI,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YACjB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SAC7B;QAED,6FAA6F;QAC7F,sDAAsD;QACtD,OAAO,IAAI,OAAO,CAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrF,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;QAEjB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5D,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;SAChF;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;YACrE,qFAAqF;YACrF,yEAAyE;YACzE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;YACtD,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,IAAI,CAAC,CAAA;aACnB;SACF;IACH,CAAC;CACF"}
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/lock.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,OAAO,IAAI;IAAjB;QACU,YAAO,GAAW,CAAC,CAAA;QACnB,yBAAoB,GAAgC,EAAE,CAAA;IAsChE,CAAC;IApCC;;;OAGG;IACI,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YACjB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;QAED,6FAA6F;QAC7F,sDAAsD;QACtD,OAAO,IAAI,OAAO,CAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrF,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;QAEjB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;QACjF,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,qFAAqF;YACrF,yEAAyE;YACzE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;YACtD,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,IAAI,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}

@@ -1,2 +0,2 @@

import type { BatchDBOp, DB, DBObject } from './db.js';
import type { BatchDBOp, DB, DBObject } from './db.ts';
export declare class MapDB<TKey extends Uint8Array | string | number, TValue extends Uint8Array | string | DBObject> implements DB<TKey, TValue> {

@@ -3,0 +3,0 @@ _database: Map<TKey, TValue>;

@@ -1,2 +0,2 @@

import { bytesToUnprefixedHex } from './bytes.js';
import { bytesToUnprefixedHex } from "./bytes.js";
export class MapDB {

@@ -3,0 +3,0 @@ constructor(database) {

@@ -1,1 +0,1 @@

{"version":3,"file":"mapDB.js","sourceRoot":"","sources":["../../src/mapDB.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAIjD,MAAM,OAAO,KAAK;IAOhB,YAAY,QAA4B;QACtC,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,IAAI,GAAG,EAAgB,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAS;QACjB,MAAM,KAAK,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAa,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAS,EAAE,GAAW;QAC9B,MAAM,KAAK,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAa,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAS;QACjB,MAAM,KAAK,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAa,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAkC;QAC5C,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE;YACxB,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;gBACrB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;aACvB;YAED,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;gBACrB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;aACjC;SACF;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,OAAO,IAAI,KAAK,CAAe,IAAI,CAAC,SAAS,CAAC,CAAA;IAChD,CAAC;IAED,IAAI;QACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF"}
{"version":3,"file":"mapDB.js","sourceRoot":"","sources":["../../src/mapDB.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAIjD,MAAM,OAAO,KAAK;IAOhB,YAAY,QAA4B;QACtC,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,IAAI,GAAG,EAAgB,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAS;QACjB,MAAM,KAAK,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAa,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAS,EAAE,GAAW;QAC9B,MAAM,KAAK,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAa,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAS;QACjB,MAAM,KAAK,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAa,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAkC;QAC5C,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;YAED,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,OAAO,IAAI,KAAK,CAAe,IAAI,CAAC,SAAS,CAAC,CAAA;IAChD,CAAC;IAED,IAAI;QACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF"}

@@ -1,1 +0,1 @@

{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,CAAA;CACjD,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,QAAe,MAAM,UAAU,SAAS,iBAiCrE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,aAAc,MAAM,GAAG,cAAc,WAQ5D,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM;QACpB,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF"}
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAEA,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,CAAA;CACjD,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,GAAU,KAAK,MAAM,EAAE,QAAQ,SAAS,iBAiCrE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,GAAG,cAAc,WAQ5D,CAAA;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM;QACpB,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF"}

@@ -0,1 +1,2 @@

import { EthereumJSErrorWithoutCode } from "./errors.js";
/**

@@ -34,3 +35,3 @@ * Makes a simple RPC call to a remote Ethereum JSON-RPC provider and passes through the response.

if (!res.ok) {
throw new Error(`JSONRPCError: ${JSON.stringify({
throw EthereumJSErrorWithoutCode(`JSONRPCError: ${JSON.stringify({
method: params.method,

@@ -60,5 +61,5 @@ status: res.status,

else {
throw new Error('Must provide valid provider URL or Web3Provider');
throw EthereumJSErrorWithoutCode('Must provide valid provider URL or Web3Provider');
}
};
//# sourceMappingURL=provider.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,MAAiB,EAAE,EAAE;IACxE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,CAAC;KACN,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI;KACX,CAAC,CAAA;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;QACX,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,CAAC,SAAS,CAC7B;YACE,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnC,OAAO,iEAAiE,CAAA;YAC1E,CAAC,CAAC;SACH,EACD,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAA;KACF;IACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAC7B,uCAAuC;IACvC,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAiC,EAAE,EAAE;IAC/D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,OAAO,QAAQ,CAAA;KAChB;SAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE;QAChF,OAAO,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,CAAA;KACrC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;KACnE;AACH,CAAC,CAAA"}
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAOxD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,MAAiB,EAAE,EAAE;IACxE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,CAAC;KACN,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI;KACX,CAAC,CAAA;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,0BAA0B,CAC9B,iBAAiB,IAAI,CAAC,SAAS,CAC7B;YACE,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnC,OAAO,iEAAiE,CAAA;YAC1E,CAAC,CAAC;SACH,EACD,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAC7B,uCAAuC;IACvC,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAiC,EAAE,EAAE;IAC/D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAA;IACjB,CAAC;SAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACjF,OAAO,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,CAAA;IACtC,CAAC;SAAM,CAAC;QACN,MAAM,0BAA0B,CAAC,iDAAiD,CAAC,CAAA;IACrF,CAAC;AACH,CAAC,CAAA"}

@@ -1,102 +0,20 @@

import type { PrefixedHexString } from './types.js';
import type { PrefixedHexString } from './types.ts';
export type RequestBytes = Uint8Array;
export declare enum CLRequestType {
Deposit = 0,
Withdrawal = 1,
Consolidation = 2
}
export type DepositRequestV1 = {
pubkey: PrefixedHexString;
withdrawalCredentials: PrefixedHexString;
amount: PrefixedHexString;
signature: PrefixedHexString;
index: PrefixedHexString;
export type CLRequestType = (typeof CLRequestType)[keyof typeof CLRequestType];
export declare const CLRequestType: {
readonly Deposit: 0;
readonly Withdrawal: 1;
readonly Consolidation: 2;
};
export type WithdrawalRequestV1 = {
sourceAddress: PrefixedHexString;
validatorPubkey: PrefixedHexString;
amount: PrefixedHexString;
};
export type ConsolidationRequestV1 = {
sourceAddress: PrefixedHexString;
sourcePubkey: PrefixedHexString;
targetPubkey: PrefixedHexString;
};
export interface RequestJSON {
[CLRequestType.Deposit]: DepositRequestV1;
[CLRequestType.Withdrawal]: WithdrawalRequestV1;
[CLRequestType.Consolidation]: ConsolidationRequestV1;
type: PrefixedHexString;
data: PrefixedHexString;
}
export type DepositRequestData = {
pubkey: Uint8Array;
withdrawalCredentials: Uint8Array;
amount: bigint;
signature: Uint8Array;
index: bigint;
};
export type WithdrawalRequestData = {
sourceAddress: Uint8Array;
validatorPubkey: Uint8Array;
amount: bigint;
};
export type ConsolidationRequestData = {
sourceAddress: Uint8Array;
sourcePubkey: Uint8Array;
targetPubkey: Uint8Array;
};
export interface RequestData {
[CLRequestType.Deposit]: DepositRequestData;
[CLRequestType.Withdrawal]: WithdrawalRequestData;
[CLRequestType.Consolidation]: ConsolidationRequestData;
export declare class CLRequest<T extends CLRequestType> {
readonly bytes: Uint8Array;
get type(): T;
get data(): Uint8Array<ArrayBufferLike>;
constructor(requestType: T, requestData: Uint8Array);
}
export type TypedRequestData = RequestData[CLRequestType];
export interface CLRequestInterface<T extends CLRequestType = CLRequestType> {
readonly type: T;
serialize(): Uint8Array;
toJSON(): RequestJSON[T];
}
export declare abstract class CLRequest<T extends CLRequestType> implements CLRequestInterface<T> {
readonly type: T;
abstract serialize(): Uint8Array;
abstract toJSON(): RequestJSON[T];
constructor(type: T);
}
export declare class DepositRequest extends CLRequest<CLRequestType.Deposit> {
readonly pubkey: Uint8Array;
readonly withdrawalCredentials: Uint8Array;
readonly amount: bigint;
readonly signature: Uint8Array;
readonly index: bigint;
constructor(pubkey: Uint8Array, withdrawalCredentials: Uint8Array, amount: bigint, signature: Uint8Array, index: bigint);
serialize(): Uint8Array;
toJSON(): DepositRequestV1;
}
export declare class WithdrawalRequest extends CLRequest<CLRequestType.Withdrawal> {
readonly sourceAddress: Uint8Array;
readonly validatorPubkey: Uint8Array;
readonly amount: bigint;
constructor(sourceAddress: Uint8Array, validatorPubkey: Uint8Array, amount: bigint);
serialize(): Uint8Array;
toJSON(): WithdrawalRequestV1;
}
export declare class ConsolidationRequest extends CLRequest<CLRequestType.Consolidation> {
readonly sourceAddress: Uint8Array;
readonly sourcePubkey: Uint8Array;
readonly targetPubkey: Uint8Array;
constructor(sourceAddress: Uint8Array, sourcePubkey: Uint8Array, targetPubkey: Uint8Array);
serialize(): Uint8Array;
toJSON(): ConsolidationRequestV1;
}
export declare function createDepositRequest(depositData: DepositRequestData): DepositRequest;
export declare function createDepositRequestFromJSON(jsonData: DepositRequestV1): DepositRequest;
export declare function createDepositRequestFromRLP(bytes: Uint8Array): DepositRequest;
export declare function createWithdrawalRequest(withdrawalData: WithdrawalRequestData): WithdrawalRequest;
export declare function createWithdrawalRequestFromJSON(jsonData: WithdrawalRequestV1): WithdrawalRequest;
export declare function createWithdrawalRequestFromRLP(bytes: Uint8Array): WithdrawalRequest;
export declare function createConsolidationRequest(consolidationData: ConsolidationRequestData): ConsolidationRequest;
export declare function createConsolidationRequestFromJSON(jsonData: ConsolidationRequestV1): ConsolidationRequest;
export declare function createConsolidationRequestFromRLP(bytes: Uint8Array): ConsolidationRequest;
export declare class CLRequestFactory {
static fromSerializedRequest(bytes: Uint8Array): CLRequest<CLRequestType>;
}
export declare function createCLRequest(bytes: Uint8Array): CLRequest<CLRequestType>;
//# sourceMappingURL=request.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAA;AAErC,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAA;AAE9E,eAAO,MAAM,aAAa;;;;CAIhB,CAAA;AAEV,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,iBAAiB,CAAA;IACvB,IAAI,EAAE,iBAAiB,CAAA;CACxB;AAED,qBAAa,SAAS,CAAC,CAAC,SAAS,aAAa;IAE5C,SAAgB,KAAK,EAAE,UAAU,CAAA;IAEjC,IAAI,IAAI,IACkB,CAAC,CAC1B;IAED,IAAI,IAAI,gCAEP;gBAEW,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU;CAGpD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,CAW3E"}

@@ -1,161 +0,30 @@

import { RLP } from '@ethereumjs/rlp';
import { concatBytes } from 'ethereum-cryptography/utils';
import { bigIntToBytes, bigIntToHex, bytesToBigInt, bytesToHex, hexToBigInt, hexToBytes, } from './bytes.js';
import { BIGINT_0 } from './constants.js';
export var CLRequestType;
(function (CLRequestType) {
CLRequestType[CLRequestType["Deposit"] = 0] = "Deposit";
CLRequestType[CLRequestType["Withdrawal"] = 1] = "Withdrawal";
CLRequestType[CLRequestType["Consolidation"] = 2] = "Consolidation";
})(CLRequestType = CLRequestType || (CLRequestType = {}));
import { concatBytes } from "./bytes.js";
export const CLRequestType = {
Deposit: 0,
Withdrawal: 1,
Consolidation: 2,
};
export class CLRequest {
constructor(type) {
this.type = type;
get type() {
return this.bytes[0];
}
}
export class DepositRequest extends CLRequest {
constructor(pubkey, withdrawalCredentials, amount, signature, index) {
super(CLRequestType.Deposit);
this.pubkey = pubkey;
this.withdrawalCredentials = withdrawalCredentials;
this.amount = amount;
this.signature = signature;
this.index = index;
get data() {
return this.bytes.subarray(1);
}
serialize() {
const indexBytes = this.index === BIGINT_0 ? new Uint8Array() : bigIntToBytes(this.index);
const amountBytes = this.amount === BIGINT_0 ? new Uint8Array() : bigIntToBytes(this.amount);
return concatBytes(Uint8Array.from([this.type]), RLP.encode([
this.pubkey,
this.withdrawalCredentials,
amountBytes,
this.signature,
indexBytes,
]));
constructor(requestType, requestData) {
this.bytes = concatBytes(new Uint8Array([requestType]), requestData);
}
toJSON() {
return {
pubkey: bytesToHex(this.pubkey),
withdrawalCredentials: bytesToHex(this.withdrawalCredentials),
amount: bigIntToHex(this.amount),
signature: bytesToHex(this.signature),
index: bigIntToHex(this.index),
};
}
}
export class WithdrawalRequest extends CLRequest {
constructor(sourceAddress, validatorPubkey, amount) {
super(CLRequestType.Withdrawal);
this.sourceAddress = sourceAddress;
this.validatorPubkey = validatorPubkey;
this.amount = amount;
export function createCLRequest(bytes) {
switch (bytes[0]) {
case CLRequestType.Deposit:
return new CLRequest(CLRequestType.Deposit, bytes.subarray(1));
case CLRequestType.Withdrawal:
return new CLRequest(CLRequestType.Withdrawal, bytes.subarray(1));
case CLRequestType.Consolidation:
return new CLRequest(CLRequestType.Consolidation, bytes.subarray(1));
default:
throw Error(`Invalid request type=${bytes[0]}`);
}
serialize() {
const amountBytes = this.amount === BIGINT_0 ? new Uint8Array() : bigIntToBytes(this.amount);
return concatBytes(Uint8Array.from([this.type]), RLP.encode([this.sourceAddress, this.validatorPubkey, amountBytes]));
}
toJSON() {
return {
sourceAddress: bytesToHex(this.sourceAddress),
validatorPubkey: bytesToHex(this.validatorPubkey),
amount: bigIntToHex(this.amount),
};
}
}
export class ConsolidationRequest extends CLRequest {
constructor(sourceAddress, sourcePubkey, targetPubkey) {
super(CLRequestType.Consolidation);
this.sourceAddress = sourceAddress;
this.sourcePubkey = sourcePubkey;
this.targetPubkey = targetPubkey;
}
serialize() {
return concatBytes(Uint8Array.from([this.type]), RLP.encode([this.sourceAddress, this.sourcePubkey, this.targetPubkey]));
}
toJSON() {
return {
sourceAddress: bytesToHex(this.sourceAddress),
sourcePubkey: bytesToHex(this.sourcePubkey),
targetPubkey: bytesToHex(this.targetPubkey),
};
}
}
export function createDepositRequest(depositData) {
const { pubkey, withdrawalCredentials, amount, signature, index } = depositData;
return new DepositRequest(pubkey, withdrawalCredentials, amount, signature, index);
}
export function createDepositRequestFromJSON(jsonData) {
const { pubkey, withdrawalCredentials, amount, signature, index } = jsonData;
return createDepositRequest({
pubkey: hexToBytes(pubkey),
withdrawalCredentials: hexToBytes(withdrawalCredentials),
amount: hexToBigInt(amount),
signature: hexToBytes(signature),
index: hexToBigInt(index),
});
}
export function createDepositRequestFromRLP(bytes) {
const [pubkey, withdrawalCredentials, amount, signature, index] = RLP.decode(bytes);
return createDepositRequest({
pubkey,
withdrawalCredentials,
amount: bytesToBigInt(amount),
signature,
index: bytesToBigInt(index),
});
}
export function createWithdrawalRequest(withdrawalData) {
const { sourceAddress, validatorPubkey, amount } = withdrawalData;
return new WithdrawalRequest(sourceAddress, validatorPubkey, amount);
}
export function createWithdrawalRequestFromJSON(jsonData) {
const { sourceAddress, validatorPubkey, amount } = jsonData;
return createWithdrawalRequest({
sourceAddress: hexToBytes(sourceAddress),
validatorPubkey: hexToBytes(validatorPubkey),
amount: hexToBigInt(amount),
});
}
export function createWithdrawalRequestFromRLP(bytes) {
const [sourceAddress, validatorPubkey, amount] = RLP.decode(bytes);
return createWithdrawalRequest({
sourceAddress,
validatorPubkey,
amount: bytesToBigInt(amount),
});
}
export function createConsolidationRequest(consolidationData) {
const { sourceAddress, sourcePubkey, targetPubkey } = consolidationData;
return new ConsolidationRequest(sourceAddress, sourcePubkey, targetPubkey);
}
export function createConsolidationRequestFromJSON(jsonData) {
const { sourceAddress, sourcePubkey, targetPubkey } = jsonData;
return createConsolidationRequest({
sourceAddress: hexToBytes(sourceAddress),
sourcePubkey: hexToBytes(sourcePubkey),
targetPubkey: hexToBytes(targetPubkey),
});
}
export function createConsolidationRequestFromRLP(bytes) {
const [sourceAddress, sourcePubkey, targetPubkey] = RLP.decode(bytes);
return createConsolidationRequest({
sourceAddress,
sourcePubkey,
targetPubkey,
});
}
export class CLRequestFactory {
static fromSerializedRequest(bytes) {
switch (bytes[0]) {
case CLRequestType.Deposit:
return createDepositRequestFromRLP(bytes.subarray(1));
case CLRequestType.Withdrawal:
return createWithdrawalRequestFromRLP(bytes.subarray(1));
case CLRequestType.Consolidation:
return createConsolidationRequestFromRLP(bytes.subarray(1));
default:
throw Error(`Invalid request type=${bytes[0]}`);
}
}
}
//# sourceMappingURL=request.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAQxC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC;CACR,CAAA;AAOV,MAAM,OAAO,SAAS;IAIpB,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAM,CAAA;IAC3B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC/B,CAAC;IAED,YAAY,WAAc,EAAE,WAAuB;QACjD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IACtE,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,aAAa,CAAC,OAAO;YACxB,OAAO,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,KAAK,aAAa,CAAC,UAAU;YAC3B,OAAO,IAAI,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QACnE,KAAK,aAAa,CAAC,aAAa;YAC9B,OAAO,IAAI,SAAS,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QACtE;YACE,MAAM,KAAK,CAAC,wBAAwB,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACnD,CAAC;AACH,CAAC"}

@@ -1,2 +0,2 @@

import type { PrefixedHexString } from './types.js';
import type { PrefixedHexString } from './types.ts';
export interface ECDSASignature {

@@ -7,9 +7,27 @@ v: bigint;

}
export interface ECSignOpts {
chainId?: bigint;
extraEntropy?: Uint8Array | boolean;
}
/**
* Returns the ECDSA signature of a message hash.
*
* If `chainId` is provided assume an EIP-155-style signature and calculate the `v` value
* If {@link ECSignOpts.chainId} is provided assume an EIP-155-style signature and calculate the `v` value
* accordingly, otherwise return a "static" `v` just derived from the `recovery` bit
*
* {@link ECSignOpts.extraEntropy} defaults to `false`. If set to `true`, this will create a "hedged signature"
* which is non-deterministic and provides additional protections against private key extraction attack vectors,
* as described in https://github.com/ethereumjs/ethereumjs-monorepo/issues/3801. It will yield a
* different, random signature each time `ecsign` is called on the same `msgHash` and `privateKey`.
* In particular: each time a transaction is signed, this will thus yield a different, random
* transaction hash.
* Additionally, a `Uint8Array` can be passed to `extraEntropy` to provide custom entropy, which
* will then still create a
* To use this feature, pass `true` or a `Uint8Array` to `extraEntropy`.
* For more information, see: https://github.com/ethereumjs/ethereumjs-monorepo/issues/3801
*/
export declare function ecsign(msgHash: Uint8Array, privateKey: Uint8Array, chainId?: bigint): ECDSASignature;
export declare function ecsign(msgHash: Uint8Array, privateKey: Uint8Array, ecSignOpts?: {
chainId?: bigint;
extraEntropy?: Uint8Array | boolean;
}): ECDSASignature;
export declare function calculateSigRecovery(v: bigint, chainId?: bigint): bigint;

@@ -16,0 +34,0 @@ /**

@@ -1,1 +0,1 @@

{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/signature.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,UAAU,CAAA;IACb,CAAC,EAAE,UAAU,CAAA;CACd;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,cAAc,CAYhB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAOxE;AAMD;;;;GAIG;AACH,eAAO,MAAM,SAAS,YACX,UAAU,KAChB,MAAM,KACN,UAAU,KACV,UAAU,YACH,MAAM,KACf,UAUF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,MAChB,MAAM,KACN,UAAU,KACV,UAAU,YACH,MAAM,KACf,MASF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,MACpB,MAAM,KACN,UAAU,KACV,UAAU,YACH,MAAM,KACf,MAYF,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,QAAkB,iBAAiB,KAAG,cA8B5D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,MACxB,MAAM,KACN,UAAU,KACV,UAAU,qBACK,OAAO,YACf,MAAM,KACf,OA0BF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,YAAsB,UAAU,KAAG,UAIlE,CAAA"}
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/signature.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,UAAU,CAAA;IACb,CAAC,EAAE,UAAU,CAAA;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;CACpC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,UAAU,EACtB,UAAU,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;CAA4B,GAC9F,cAAc,CAuBhB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAOxE;AAMD;;;;GAIG;AACH,eAAO,MAAM,SAAS,GACpB,SAAS,UAAU,EACnB,GAAG,MAAM,EACT,GAAG,UAAU,EACb,GAAG,UAAU,EACb,UAAU,MAAM,KACf,UAUF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GACnB,GAAG,MAAM,EACT,GAAG,UAAU,EACb,GAAG,UAAU,EACb,UAAU,MAAM,KACf,MASF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,GAAG,MAAM,EACT,GAAG,UAAU,EACb,GAAG,UAAU,EACb,UAAU,MAAM,KACf,MAYF,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GAAa,KAAK,iBAAiB,KAAG,cA8B5D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,GAAG,MAAM,EACT,GAAG,UAAU,EACb,GAAG,UAAU,EACb,mBAAkB,OAAc,EAChC,UAAU,MAAM,KACf,OA0BF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAa,SAAS,UAAU,KAAG,UAIlE,CAAA"}
import { keccak256 } from 'ethereum-cryptography/keccak.js';
import { secp256k1 } from 'ethereum-cryptography/secp256k1.js';
import { bytesToBigInt, bytesToHex, bytesToInt, concatBytes, setLengthLeft, toBytes, utf8ToBytes, } from './bytes.js';
import { BIGINT_0, BIGINT_1, BIGINT_2, BIGINT_27, SECP256K1_ORDER, SECP256K1_ORDER_DIV_2, } from './constants.js';
import { assertIsBytes } from './helpers.js';
import { bytesToBigInt, bytesToHex, bytesToInt, concatBytes, setLengthLeft, toBytes, utf8ToBytes, } from "./bytes.js";
import { BIGINT_0, BIGINT_1, BIGINT_2, BIGINT_27, SECP256K1_ORDER, SECP256K1_ORDER_DIV_2, } from "./constants.js";
import { EthereumJSErrorWithoutCode } from "./errors.js";
import { assertIsBytes } from "./helpers.js";
/**
* Returns the ECDSA signature of a message hash.
*
* If `chainId` is provided assume an EIP-155-style signature and calculate the `v` value
* If {@link ECSignOpts.chainId} is provided assume an EIP-155-style signature and calculate the `v` value
* accordingly, otherwise return a "static" `v` just derived from the `recovery` bit
*
* {@link ECSignOpts.extraEntropy} defaults to `false`. If set to `true`, this will create a "hedged signature"
* which is non-deterministic and provides additional protections against private key extraction attack vectors,
* as described in https://github.com/ethereumjs/ethereumjs-monorepo/issues/3801. It will yield a
* different, random signature each time `ecsign` is called on the same `msgHash` and `privateKey`.
* In particular: each time a transaction is signed, this will thus yield a different, random
* transaction hash.
* Additionally, a `Uint8Array` can be passed to `extraEntropy` to provide custom entropy, which
* will then still create a
* To use this feature, pass `true` or a `Uint8Array` to `extraEntropy`.
* For more information, see: https://github.com/ethereumjs/ethereumjs-monorepo/issues/3801
*/
export function ecsign(msgHash, privateKey, chainId) {
const sig = secp256k1.sign(msgHash, privateKey);
export function ecsign(msgHash, privateKey, ecSignOpts = { extraEntropy: false }) {
const { chainId, extraEntropy } = ecSignOpts;
const sig = secp256k1.sign(msgHash, privateKey, { extraEntropy: extraEntropy ?? false });
const buf = sig.toCompactRawBytes();
const r = buf.slice(0, 32);
const s = buf.slice(32, 64);
if ([2, 3].includes(sig.recovery)) {
// From the yellow paper:
/* The recovery identifier is a 1 byte value specifying the parity and finiteness of the coordinates
of the curve point for which r is the x-value; this value is in the range of [0, 3],
however we declare the upper two possibilities, representing infinite values, invalid. */
throw EthereumJSErrorWithoutCode(`Invalid recovery value: values 2/3 are invalid, received: ${sig.recovery}`);
}
const v = chainId === undefined

@@ -42,3 +62,3 @@ ? BigInt(sig.recovery + 27)

if (!isValidSigRecovery(recovery)) {
throw new Error('Invalid signature v value');
throw EthereumJSErrorWithoutCode('Invalid signature v value');
}

@@ -57,3 +77,3 @@ const sig = secp256k1.Signature.fromCompact(signature).addRecoveryBit(Number(recovery));

if (!isValidSigRecovery(recovery)) {
throw new Error('Invalid signature v value');
throw EthereumJSErrorWithoutCode('Invalid signature v value');
}

@@ -71,3 +91,3 @@ // geth (and the RPC eth_sign method) uses the 65 byte format used by Bitcoin

if (!isValidSigRecovery(recovery)) {
throw new Error('Invalid signature v value');
throw EthereumJSErrorWithoutCode('Invalid signature v value');
}

@@ -106,3 +126,3 @@ const ss = Uint8Array.from([...s]);

else {
throw new Error('Invalid signature length');
throw EthereumJSErrorWithoutCode('Invalid signature length');
}

@@ -109,0 +129,0 @@ // support both versions of `eth_sign` responses

@@ -1,1 +0,1 @@

{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/signature.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/signature.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,uBAAuB;IAQlC;;;;;OAKG;IACH,YAAY,WAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,QAAgB,EAAE,EAAY;QAC3C,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE;YAC3C,IAAI,CAAC,eAAe,EAAE,CAAA;YACtB,EAAE,CAAC,GAAG,EAAE;gBACN,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;oBAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;oBAC/B,IAAI,CAAC,cAAc,CAAC,IAAK,CAAC,QAAQ,EAAE,IAAK,CAAC,EAAE,CAAC,CAAA;iBAC9C;YACH,CAAC,CAAC,CAAA;SACH;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;SAClC;IACH,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,KAAK,CAAC,CAAA;IACnC,CAAC;CACF"}
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,uBAAuB;IAQlC;;;;;OAKG;IACH,YAAY,WAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,QAAgB,EAAE,EAAY;QAC3C,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,CAAC,eAAe,EAAE,CAAA;YACtB,EAAE,CAAC,GAAG,EAAE;gBACN,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;oBAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;oBAC/B,IAAI,CAAC,cAAc,CAAC,IAAK,CAAC,QAAQ,EAAE,IAAK,CAAC,EAAE,CAAC,CAAA;gBAC/C,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,eAAe,KAAK,CAAC,CAAA;IACnC,CAAC;CACF"}

@@ -1,3 +0,3 @@

import type { Address } from './address.js';
import type { ToBytesInputTypes } from './bytes.js';
import type { Address } from './address.ts';
import type { ToBytesInputTypes } from './bytes.ts';
export type BigIntLike = bigint | PrefixedHexString | number | Uint8Array;

@@ -16,11 +16,9 @@ export type BytesLike = Uint8Array | number[] | number | bigint | TransformableToBytes | PrefixedHexString;

export declare function isNestedUint8Array(value: unknown): value is NestedUint8Array;
/**
* Type output options
*/
export declare enum TypeOutput {
Number = 0,
BigInt = 1,
Uint8Array = 2,
PrefixedHexString = 3
}
export type TypeOutput = (typeof TypeOutput)[keyof typeof TypeOutput];
export declare const TypeOutput: {
readonly Number: 0;
readonly BigInt: 1;
readonly Uint8Array: 2;
readonly PrefixedHexString: 3;
};
export type TypeOutputReturnType = {

@@ -27,0 +25,0 @@ [TypeOutput.Number]: number;

@@ -1,1 +0,1 @@

{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAKnD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,iBAAiB,GAAG,MAAM,GAAG,UAAU,CAAA;AAKzE,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,MAAM,EAAE,GACR,MAAM,GACN,MAAM,GACN,oBAAoB,GACpB,iBAAiB,CAAA;AAKrB,MAAM,MAAM,aAAa,GAAG,GAAG,MAAM,EAAE,CAAA;AAKvC,MAAM,MAAM,iBAAiB,GAAG,KAAK,MAAM,EAAE,CAAA;AAE7C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,iBAAiB,CAAA;AAElE,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,IAAI,UAAU,CAAA;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAA;AAEnE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAc5E;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,UAAU,IAAA;IACV,iBAAiB,IAAA;CAClB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IAC3B,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IAC3B,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IACnC,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CAClD,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,CAAA;AAC9E,wBAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,SAAS,CAAA;AACxF,wBAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,EACzC,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,CAAC,GACZ,oBAAoB,CAAC,CAAC,CAAC,CAAA"}
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAKnD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,iBAAiB,GAAG,MAAM,GAAG,UAAU,CAAA;AAKzE,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,MAAM,EAAE,GACR,MAAM,GACN,MAAM,GACN,oBAAoB,GACpB,iBAAiB,CAAA;AAKrB,MAAM,MAAM,aAAa,GAAG,GAAG,MAAM,EAAE,CAAA;AAKvC,MAAM,MAAM,iBAAiB,GAAG,KAAK,MAAM,EAAE,CAAA;AAE7C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,iBAAiB,CAAA;AAElE,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,IAAI,UAAU,CAAA;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,GAAG,gBAAgB,CAAC,CAAA;AAEnE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAc5E;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAA;AAErE,eAAO,MAAM,UAAU;;;;;CAKb,CAAA;AAEV,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IAC3B,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IAC3B,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IACnC,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CAClD,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,CAAA;AAC9E,wBAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,SAAS,CAAA;AACxF,wBAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,EACzC,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,CAAC,GACZ,oBAAoB,CAAC,CAAC,CAAC,CAAA"}

@@ -1,3 +0,4 @@

import { bytesToBigInt, bytesToHex, toBytes } from './bytes.js';
import { isHexString } from './internal.js';
import { bytesToBigInt, bytesToHex, toBytes } from "./bytes.js";
import { EthereumJSErrorWithoutCode } from "./errors.js";
import { isHexString } from "./internal.js";
export function isNestedUint8Array(value) {

@@ -19,12 +20,8 @@ if (!Array.isArray(value)) {

}
/**
* Type output options
*/
export var TypeOutput;
(function (TypeOutput) {
TypeOutput[TypeOutput["Number"] = 0] = "Number";
TypeOutput[TypeOutput["BigInt"] = 1] = "BigInt";
TypeOutput[TypeOutput["Uint8Array"] = 2] = "Uint8Array";
TypeOutput[TypeOutput["PrefixedHexString"] = 3] = "PrefixedHexString";
})(TypeOutput = TypeOutput || (TypeOutput = {}));
export const TypeOutput = {
Number: 0,
BigInt: 1,
Uint8Array: 2,
PrefixedHexString: 3,
};
export function toType(input, outputType) {

@@ -38,6 +35,6 @@ if (input === null) {

if (typeof input === 'string' && !isHexString(input)) {
throw new Error(`A string must be provided with a 0x-prefix, given: ${input}`);
throw EthereumJSErrorWithoutCode(`A string must be provided with a 0x-prefix, given: ${input}`);
}
else if (typeof input === 'number' && !Number.isSafeInteger(input)) {
throw new Error('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)');
throw EthereumJSErrorWithoutCode('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)');
}

@@ -53,3 +50,3 @@ const output = toBytes(input);

if (bigInt > BigInt(Number.MAX_SAFE_INTEGER)) {
throw new Error('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative output type)');
throw EthereumJSErrorWithoutCode('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative output type)');
}

@@ -61,5 +58,5 @@ return Number(bigInt);

default:
throw new Error('unknown outputType');
throw EthereumJSErrorWithoutCode('unknown outputType');
}
}
//# sourceMappingURL=types.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AA0C3C,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,OAAO,KAAK,CAAA;KACb;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;gBAC7B,OAAO,KAAK,CAAA;aACb;SACF;aAAM,IAAI,CAAC,CAAC,IAAI,YAAY,UAAU,CAAC,EAAE;YACxC,OAAO,KAAK,CAAA;SACb;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,+CAAM,CAAA;IACN,+CAAM,CAAA;IACN,uDAAU,CAAA;IACV,qEAAiB,CAAA;AACnB,CAAC,EALW,UAAU,GAAV,UAAU,KAAV,UAAU,QAKrB;AAqBD,MAAM,UAAU,MAAM,CACpB,KAAwB,EACxB,UAAa;IAEb,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,OAAO,IAAI,CAAA;KACZ;IACD,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,SAAS,CAAA;KACjB;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;QACpD,MAAM,IAAI,KAAK,CAAC,sDAAsD,KAAK,EAAE,CAAC,CAAA;KAC/E;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QACpE,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAA;KACF;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAE7B,QAAQ,UAAU,EAAE;QAClB,KAAK,UAAU,CAAC,UAAU;YACxB,OAAO,MAAiC,CAAA;QAC1C,KAAK,UAAU,CAAC,MAAM;YACpB,OAAO,aAAa,CAAC,MAAM,CAA4B,CAAA;QACzD,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC;YACtB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;YACpC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;gBAC5C,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAA;aACF;YACD,OAAO,MAAM,CAAC,MAAM,CAA4B,CAAA;SACjD;QACD,KAAK,UAAU,CAAC,iBAAiB;YAC/B,OAAO,UAAU,CAAC,MAAM,CAA4B,CAAA;QACtD;YACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;KACxC;AACH,CAAC"}
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AA0C3C,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,YAAY,UAAU,CAAC,EAAE,CAAC;YACzC,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAID,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,CAAC;IACb,iBAAiB,EAAE,CAAC;CACZ,CAAA;AAqBV,MAAM,UAAU,MAAM,CACpB,KAAwB,EACxB,UAAa;IAEb,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,0BAA0B,CAAC,sDAAsD,KAAK,EAAE,CAAC,CAAA;IACjG,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACrE,MAAM,0BAA0B,CAC9B,6FAA6F,CAC9F,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAE7B,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,UAAU,CAAC,UAAU;YACxB,OAAO,MAAiC,CAAA;QAC1C,KAAK,UAAU,CAAC,MAAM;YACpB,OAAO,aAAa,CAAC,MAAM,CAA4B,CAAA;QACzD,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;YACpC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC7C,MAAM,0BAA0B,CAC9B,8FAA8F,CAC/F,CAAA;YACH,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAA4B,CAAA;QAClD,CAAC;QACD,KAAK,UAAU,CAAC,iBAAiB;YAC/B,OAAO,UAAU,CAAC,MAAM,CAA4B,CAAA;QACtD;YACE,MAAM,0BAA0B,CAAC,oBAAoB,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC"}

@@ -1,1 +0,1 @@

{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/units.ts"],"names":[],"mappings":"AAEA,kCAAkC;AAClC,eAAO,MAAM,WAAW,QAAkB,CAAA;AAC1C,eAAO,MAAM,YAAY,QAAmB,CAAA;AAE5C,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAWR;AAED,qBAAa,KAAK;IAChB,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASnD;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAK7C;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;CAI7C"}
{"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/units.ts"],"names":[],"mappings":"AAGA,kCAAkC;AAClC,eAAO,MAAM,WAAW,QAAkB,CAAA;AAC1C,eAAO,MAAM,YAAY,QAAmB,CAAA;AAE5C,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAWR;AAED,qBAAa,KAAK;IAChB,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASnD;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAK7C;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;CAI7C"}

@@ -1,2 +0,3 @@

import { BIGINT_0, BIGINT_1 } from './constants.js';
import { BIGINT_0, BIGINT_1 } from "./constants.js";
import { EthereumJSErrorWithoutCode } from "./errors.js";
/** Conversion constants to wei */

@@ -18,6 +19,6 @@ export const GWEI_TO_WEI = BigInt(10 ** 9); // Multiplier to convert from Gwei to Wei

if (typeof amount === 'number' && !Number.isInteger(amount)) {
throw new Error('Input must be an integer number');
throw EthereumJSErrorWithoutCode('Input must be an integer number');
}
if (BigInt(amount) < 0) {
throw new Error('Input must be a positive number');
throw EthereumJSErrorWithoutCode('Input must be a positive number');
}

@@ -24,0 +25,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/units.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEnD,kCAAkC;AAClC,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA,CAAC,yCAAyC;AACpF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA,CAAC,0CAA0C;AAEvF,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,WAAmB,EACnB,gBAAwB;IAExB,IAAI,WAAW,KAAK,QAAQ,EAAE;QAC5B,WAAW,GAAG,QAAQ,CAAA;KACvB;IAED,MAAM,IAAI,GAAG,SAAS,GAAG,WAAW,CAAA;IACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,GAAG,WAAW,CAAC,GAAG,gBAAgB,CAAC,GAAG,WAAW,CAAA;IAEpF,wGAAwG;IACxG,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA;IACtF,OAAO,GAAG,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,EAAE,CAAA;AAC7D,CAAC;AAED,MAAM,OAAO,KAAK;IAChB,MAAM,CAAC,aAAa,CAAC,MAAuB;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC3D,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACnD;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACnD;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,MAAuB;QAClC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAAA;IACtC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,MAAuB;QACjC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,CAAA;IACrC,CAAC;CACF"}
{"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/units.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAExD,kCAAkC;AAClC,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA,CAAC,yCAAyC;AACpF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA,CAAC,0CAA0C;AAEvF,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,WAAmB,EACnB,gBAAwB;IAExB,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7B,WAAW,GAAG,QAAQ,CAAA;IACxB,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,GAAG,WAAW,CAAA;IACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,GAAG,WAAW,CAAC,GAAG,gBAAgB,CAAC,GAAG,WAAW,CAAA;IAEpF,wGAAwG;IACxG,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA;IACtF,OAAO,GAAG,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,EAAE,CAAA;AAC7D,CAAC;AAED,MAAM,OAAO,KAAK;IAChB,MAAM,CAAC,aAAa,CAAC,MAAuB;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,MAAM,0BAA0B,CAAC,iCAAiC,CAAC,CAAA;QACrE,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,0BAA0B,CAAC,iCAAiC,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,MAAuB;QAClC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAAA;IACtC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,MAAuB;QACjC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,CAAA;IACrC,CAAC;CACF"}

@@ -1,4 +0,4 @@

import type { Account } from './account.js';
import type { Address } from './address.js';
import type { PrefixedHexString } from './types.js';
import type { Account } from './account.ts';
import type { Address } from './address.ts';
import type { PrefixedHexString } from './types.ts';
/**

@@ -36,3 +36,3 @@ * Verkle related constants and helper functions

* @dev Assumes that the verkle node width = 256
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from verkle-cryptography-wasm.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from Verkle cryptography
* @param {Address} address The address to generate the tree key for.

@@ -45,3 +45,3 @@ * @param treeIndex The index of the tree to generate the key for. Defaults to 0.

* Verifies that the executionWitness is valid for the given prestateRoot.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from verkle-cryptography-wasm.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from Verkle cryptography
* @param {VerkleExecutionWitness} executionWitness The verkle execution witness.

@@ -91,6 +91,7 @@ * @returns {boolean} Whether or not the executionWitness belongs to the prestateRoot.

}
export declare enum VerkleLeafType {
BasicData = 0,
CodeHash = 1
}
export type VerkleLeafType = (typeof VerkleLeafType)[keyof typeof VerkleLeafType];
export declare const VerkleLeafType: {
readonly BasicData: 0;
readonly CodeHash: 1;
};
export type VerkleLeafBasicData = {

@@ -110,4 +111,4 @@ version: number;

export declare const VERKLE_BALANCE_BYTES_LENGTH = 16;
export declare const VERKLE_BASIC_DATA_LEAF_KEY: Uint8Array;
export declare const VERKLE_CODE_HASH_LEAF_KEY: Uint8Array;
export declare const VERKLE_BASIC_DATA_LEAF_KEY: Uint8Array<ArrayBufferLike>;
export declare const VERKLE_CODE_HASH_LEAF_KEY: Uint8Array<ArrayBufferLike>;
export declare const VERKLE_CODE_CHUNK_SIZE = 31;

@@ -125,3 +126,3 @@ export declare const VERKLE_HEADER_STORAGE_OFFSET = 64;

*/
export declare const getVerkleKey: (stem: Uint8Array, leaf: VerkleLeafType | Uint8Array) => Uint8Array;
export declare const getVerkleKey: (stem: Uint8Array, leaf: VerkleLeafType | Uint8Array) => Uint8Array<ArrayBufferLike>;
/**

@@ -154,4 +155,4 @@ * Calculates the position of the storage key in the Verkle tree, determining

*/
export declare const getVerkleTreeKeyForCodeChunk: (address: Address, chunkId: number, verkleCrypto: VerkleCrypto) => Promise<Uint8Array>;
export declare const chunkifyCode: (code: Uint8Array) => Uint8Array[];
export declare const getVerkleTreeKeyForCodeChunk: (address: Address, chunkId: number, verkleCrypto: VerkleCrypto) => Promise<Uint8Array<ArrayBufferLike>>;
export declare const chunkifyCode: (code: Uint8Array) => Uint8Array<ArrayBufferLike>[];
/**

@@ -164,3 +165,3 @@ * Asynchronously calculates the Verkle tree key for the specified storage slot.

*/
export declare const getVerkleTreeKeyForStorageSlot: (address: Address, storageKey: bigint, verkleCrypto: VerkleCrypto) => Promise<Uint8Array>;
export declare const getVerkleTreeKeyForStorageSlot: (address: Address, storageKey: bigint, verkleCrypto: VerkleCrypto) => Promise<Uint8Array<ArrayBufferLike>>;
/**

@@ -167,0 +168,0 @@ * This function extracts and decodes account header elements (version, nonce, code size, and balance)

@@ -1,1 +0,1 @@

{"version":3,"file":"verkle.d.ts","sourceRoot":"","sources":["../../src/verkle.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"verkle.d.ts","sourceRoot":"","sources":["../../src/verkle.ts"],"names":[],"mappings":"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"}

@@ -1,6 +0,6 @@

import { bigIntToBytes, bytesToBigInt, bytesToInt32, concatBytes, int32ToBytes, intToBytes, setLengthLeft, setLengthRight, toBytes, } from './bytes.js';
import { bigIntToBytes, bytesToBigInt, bytesToInt32, concatBytes, int32ToBytes, intToBytes, setLengthLeft, setLengthRight, toBytes, } from "./bytes.js";
/**
* @dev Returns the 31-bytes verkle tree stem for a given address and tree index.
* @dev Assumes that the verkle node width = 256
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from verkle-cryptography-wasm.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from Verkle cryptography
* @param {Address} address The address to generate the tree key for.

@@ -24,3 +24,3 @@ * @param treeIndex The index of the tree to generate the key for. Defaults to 0.

* Verifies that the executionWitness is valid for the given prestateRoot.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from verkle-cryptography-wasm.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from Verkle cryptography
* @param {VerkleExecutionWitness} executionWitness The verkle execution witness.

@@ -33,7 +33,6 @@ * @returns {boolean} Whether or not the executionWitness belongs to the prestateRoot.

}
export var VerkleLeafType;
(function (VerkleLeafType) {
VerkleLeafType[VerkleLeafType["BasicData"] = 0] = "BasicData";
VerkleLeafType[VerkleLeafType["CodeHash"] = 1] = "CodeHash";
})(VerkleLeafType = VerkleLeafType || (VerkleLeafType = {}));
export const VerkleLeafType = {
BasicData: 0,
CodeHash: 1,
};
export const VERKLE_VERSION_OFFSET = 0;

@@ -111,36 +110,34 @@ export const VERKLE_CODE_SIZE_OFFSET = 5;

};
// This code was written by robots based on the reference implementation in EIP-6800
export const chunkifyCode = (code) => {
if (code.length === 0)
return [];
// Pad code to multiple of VERKLE_CODE_CHUNK_SIZE bytes
if (code.length % VERKLE_CODE_CHUNK_SIZE !== 0) {
const paddingLength = VERKLE_CODE_CHUNK_SIZE - (code.length % VERKLE_CODE_CHUNK_SIZE);
code = setLengthRight(code, code.length + paddingLength);
}
// Put first chunk (leading byte is always 0 since we have no leading PUSHDATA bytes)
const chunks = [concatBytes(new Uint8Array(1), code.subarray(0, 31))];
for (let i = 1; i < Math.floor(code.length / 31); i++) {
const slice = code.slice((i - 1) * 31, i * 31);
let x = 31;
while (x >= 0) {
// Look for last push instruction in code chunk
if (slice[x] > 0x5f && slice[x] < 0x80)
break;
x--;
const PUSH1 = 0x60; // Assuming PUSH1 is defined as 0x60
const PUSH32 = 0x7f; // Assuming PUSH32 is defined as 0x7f
const PUSH_OFFSET = 0x5f; // Assuming PUSH_OFFSET is defined as 0x5f
// Calculate padding length
const paddingLength = (31 - (code.length % 31)) % 31;
const paddedCode = new Uint8Array(code.length + paddingLength);
paddedCode.set(code);
// Pre-allocate the bytesToExecData array
const bytesToExecData = new Uint8Array(paddedCode.length + 32);
let pos = 0;
while (pos < paddedCode.length) {
let pushdataBytes = 0;
if (PUSH1 <= paddedCode[pos] && paddedCode[pos] <= PUSH32) {
pushdataBytes = paddedCode[pos] - PUSH_OFFSET;
}
if (x >= 0 && slice[x] - 0x5f > 31 - x) {
// x >= 0 indicates PUSHn in this chunk
// n > 31 - x indicates that PUSHDATA spills over to next chunk
// PUSHDATA overflow = n - 31 - x + 1(i.e. number of elements PUSHed
// - size of code chunk (31) - position of PUSHn in the previous
// code chunk + 1 (since x is zero-indexed))
const pushDataOverflow = slice[x] - 0x5f - 31 - x + 1;
// Put next chunk prepended with number of overflow PUSHDATA bytes
chunks.push(concatBytes(Uint8Array.from([pushDataOverflow]), code.slice(i * 31, (i + 1) * 31)));
pos += 1;
for (let x = 0; x < pushdataBytes; x++) {
bytesToExecData[pos + x] = pushdataBytes - x;
}
else {
// Put next chunk prepended with 0 (i.e. no overflow PUSHDATA bytes from previous chunk)
chunks.push(concatBytes(new Uint8Array(1), code.slice(i * 31, (i + 1) * 31)));
}
pos += pushdataBytes;
}
// Pre-allocate the chunks array
const numChunks = Math.ceil(paddedCode.length / 31);
const chunks = new Array(numChunks);
for (let i = 0, pos = 0; i < numChunks; i++, pos += 31) {
const chunk = new Uint8Array(32);
chunk[0] = Math.min(bytesToExecData[pos], 31);
chunk.set(paddedCode.subarray(pos, pos + 31), 1);
chunks[i] = chunk;
}
return chunks;

@@ -207,13 +204,10 @@ };

const chunkSuffixes = new Array(numChunks);
const firstChunksSet = numChunks > VERKLE_CODE_OFFSET ? VERKLE_CODE_OFFSET : numChunks;
for (let x = 0; x < firstChunksSet; x++) {
// Fill up to first 128 suffixes
chunkSuffixes[x] = x + VERKLE_CODE_OFFSET;
let currentSuffix = VERKLE_CODE_OFFSET;
for (let x = 0; x < numChunks; x++) {
chunkSuffixes[x] = currentSuffix;
currentSuffix++;
// Reset suffix to 0 if exceeds VERKLE_NODE_WIDTH
if (currentSuffix >= VERKLE_NODE_WIDTH)
currentSuffix = 0;
}
if (numChunks > VERKLE_CODE_OFFSET) {
for (let x = VERKLE_CODE_OFFSET; x < numChunks; x++) {
// Fill subsequent chunk suffixes up to 256 and then start over since a single node
chunkSuffixes[x] = x - Math.floor(x / VERKLE_NODE_WIDTH) * VERKLE_NODE_WIDTH;
}
}
return chunkSuffixes;

@@ -236,3 +230,3 @@ };

// chunk in each leaf node and can then know that the chunks in between have tree keys in monotonically increasing order
const numStems = Math.ceil(numChunks / VERKLE_NODE_WIDTH);
const numStems = numChunks > VERKLE_CODE_OFFSET ? Math.ceil(numChunks / VERKLE_NODE_WIDTH) + 1 : 1;
const chunkStems = new Array(numStems);

@@ -239,0 +233,0 @@ // Compute the stem for the initial set of code chunks

@@ -1,1 +0,1 @@

{"version":3,"file":"verkle.js","sourceRoot":"","sources":["../../src/verkle.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"verkle.js","sourceRoot":"","sources":["../../src/verkle.ts"],"names":[],"mappings":"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"}

@@ -1,3 +0,3 @@

import { Address } from './address.js';
import type { AddressLike, BigIntLike, PrefixedHexString } from './types.js';
import { Address } from './address.ts';
import type { AddressLike, BigIntLike, PrefixedHexString } from './types.ts';
/**

@@ -37,5 +37,2 @@ * Flexible input data type for EIP-4895 withdrawal data with amount in Gwei to

readonly address: Address;
/**
* withdrawal amount in Gwei to match the CL representation and eventually ssz withdrawalsRoot
*/
readonly amount: bigint;

@@ -47,7 +44,3 @@ /**

*/
constructor(index: bigint, validatorIndex: bigint, address: Address,
/**
* withdrawal amount in Gwei to match the CL representation and eventually ssz withdrawalsRoot
*/
amount: bigint);
constructor(index: bigint, validatorIndex: bigint, address: Address, amount: bigint);
raw(): WithdrawalBytes;

@@ -57,3 +50,3 @@ toValue(): {

validatorIndex: bigint;
address: Uint8Array;
address: Uint8Array<ArrayBufferLike>;
amount: bigint;

@@ -60,0 +53,0 @@ };

@@ -1,1 +0,1 @@

{"version":3,"file":"withdrawal.d.ts","sourceRoot":"","sources":["../../src/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAKtC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE5E;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,UAAU,CAAA;IACjB,cAAc,EAAE,UAAU,CAAA;IAC1B,OAAO,EAAE,WAAW,CAAA;IACpB,MAAM,EAAE,UAAU,CAAA;CACnB,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,iBAAiB,CAAA;IACxB,cAAc,EAAE,iBAAiB,CAAA;IACjC,OAAO,EAAE,iBAAiB,CAAA;IAC1B,MAAM,EAAE,iBAAiB,CAAA;CAC1B;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;AAC9E;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,eAAe,CAmB/F;AACD;;GAEG;AACH,qBAAa,UAAU;aAOH,KAAK,EAAE,MAAM;aACb,cAAc,EAAE,MAAM;aACtB,OAAO,EAAE,OAAO;IAChC;;OAEG;aACa,MAAM,EAAE,MAAM;IAZhC;;;;OAIG;gBAEe,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,OAAO;IAChC;;OAEG;IACa,MAAM,EAAE,MAAM;IAGhC,GAAG;IAIH,OAAO;;;;;;IASP,MAAM;;;;;;CAQP;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,cAAc,cAa9D;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,eAAe,EAAE,eAAe,cAM9E"}
{"version":3,"file":"withdrawal.d.ts","sourceRoot":"","sources":["../../src/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAKtC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE5E;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,UAAU,CAAA;IACjB,cAAc,EAAE,UAAU,CAAA;IAC1B,OAAO,EAAE,WAAW,CAAA;IACpB,MAAM,EAAE,UAAU,CAAA;CACnB,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,iBAAiB,CAAA;IACxB,cAAc,EAAE,iBAAiB,CAAA;IACjC,OAAO,EAAE,iBAAiB,CAAA;IAC1B,MAAM,EAAE,iBAAiB,CAAA;CAC1B;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;AAC9E;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,eAAe,CAmB/F;AACD;;GAEG;AACH,qBAAa,UAAU;IACrB,SAAgB,KAAK,EAAE,MAAM,CAAA;IAC7B,SAAgB,cAAc,EAAE,MAAM,CAAA;IACtC,SAAgB,OAAO,EAAE,OAAO,CAAA;IAChC,SAAgB,MAAM,EAAE,MAAM,CAAA;IAE9B;;;;OAIG;gBACS,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAOnF,GAAG;IAIH,OAAO;;;;;;IASP,MAAM;;;;;;CAQP;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,cAAc,cAa9D;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,eAAe,EAAE,eAAe,cAM9E"}

@@ -1,5 +0,5 @@

import { Address } from './address.js';
import { bigIntToHex, bytesToHex, toBytes } from './bytes.js';
import { BIGINT_0 } from './constants.js';
import { TypeOutput, toType } from './types.js';
import { Address } from "./address.js";
import { bigIntToHex, bytesToHex, toBytes } from "./bytes.js";
import { BIGINT_0 } from "./constants.js";
import { TypeOutput, toType } from "./types.js";
/**

@@ -33,7 +33,3 @@ * Convert a withdrawal to a byte array

*/
constructor(index, validatorIndex, address,
/**
* withdrawal amount in Gwei to match the CL representation and eventually ssz withdrawalsRoot
*/
amount) {
constructor(index, validatorIndex, address, amount) {
this.index = index;

@@ -40,0 +36,0 @@ this.validatorIndex = validatorIndex;

@@ -1,1 +0,1 @@

{"version":3,"file":"withdrawal.js","sourceRoot":"","sources":["../../src/withdrawal.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"withdrawal.js","sourceRoot":"","sources":["../../src/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AA2B/C;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAuC;IAC5E,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;IAC7D,MAAM,UAAU,GACd,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,QAAQ;QAC3C,CAAC,CAAC,IAAI,UAAU,EAAE;QAClB,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;IAC1C,MAAM,mBAAmB,GACvB,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,QAAQ;QACpD,CAAC,CAAC,IAAI,UAAU,EAAE;QAClB,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;IACnD,MAAM,YAAY,GAChB,OAAO,YAAY,OAAO,CAAC,CAAC,CAAW,OAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;IAEhG,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,QAAQ;QAC5C,CAAC,CAAC,IAAI,UAAU,EAAE;QAClB,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;IAE3C,OAAO,CAAC,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;AACrE,CAAC;AACD;;GAEG;AACH,MAAM,OAAO,UAAU;IAMrB;;;;OAIG;IACH,YAAY,KAAa,EAAE,cAAsB,EAAE,OAAgB,EAAE,MAAc;QACjF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,GAAG;QACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,OAAO;QACL,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;IAED,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YAC9B,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;YAChD,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YACvC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;SACjC,CAAA;IACH,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAA8B;IAC7D,MAAM,EACJ,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,kBAAkB,EAClC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,GACnB,GAAG,cAAc,CAAA;IAClB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IACpE,MAAM,OAAO,GAAG,WAAW,YAAY,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;IAChG,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAEpD,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,eAAgC;IAC7E,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,CAAC,oDAAoD,eAAe,CAAC,MAAM,EAAE,CAAC,CAAA;IAC3F,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,eAAe,CAAA;IAChE,OAAO,gBAAgB,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;AACrE,CAAC"}
{
"name": "@ethereumjs/util",
"version": "10.0.0-alpha.1",
"version": "10.0.0-rc.1",
"description": "A collection of utility functions for Ethereum",
"keywords": [
"ethereum",
"utilities",
"utils"
],
"keywords": ["ethereum", "utilities", "utils"],
"homepage": "https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util#readme",

@@ -74,16 +70,15 @@ "bugs": {

},
"files": [
"dist",
"src"
],
"files": ["dist", "src"],
"scripts": {
"biome": "npx @biomejs/biome check",
"biome:fix": "npx @biomejs/biome check --write",
"build": "../../config/cli/ts-build.sh",
"clean": "../../config/cli/clean-package.sh",
"coverage": "DEBUG=ethjs npx vitest run --coverage.enabled --coverage.reporter=lcov",
"coverage": "DEBUG=ethjs npx vitest run -c ../../config/vitest.config.coverage.mts",
"coverage:istanbul": "DEBUG=ethjs npx vitest run -c ../../config/vitest.config.coverage.istanbul.mts",
"docs:build": "npx typedoc --options typedoc.cjs",
"examples": "tsx ../../scripts/examples-runner.ts -- util",
"examples:build": "npx embedme README.md",
"lint": "../../config/cli/lint.sh",
"lint:diff": "../../config/cli/lint-diff.sh",
"lint:fix": "../../config/cli/lint-fix.sh",
"lint": "npm run biome && eslint --config ./eslint.config.mjs .",
"lint:fix": "npm run biome:fix && eslint --fix --config ./eslint.config.mjs .",
"prepublishOnly": "../../config/cli/prepublish.sh",

@@ -96,4 +91,4 @@ "test": "npm run test:node && npm run test:browser",

"dependencies": {
"@ethereumjs/rlp": "^6.0.0-alpha.1",
"ethereum-cryptography": "^3.0.0"
"@ethereumjs/rlp": "^10.0.0-rc.1",
"ethereum-cryptography": "^3.1.0"
},

@@ -103,4 +98,3 @@ "devDependencies": {

"kzg-wasm": "^0.5.0",
"micro-eth-signer": "^0.11.0",
"verkle-cryptography-wasm": "^0.4.8"
"micro-eth-signer": "^0.14.0"
},

@@ -107,0 +101,0 @@ "engines": {

@@ -89,7 +89,7 @@ # @ethereumjs/util

const commitment = new Uint8Array([1, 2, 3])
const commitment = bytesToHex(new Uint8Array([1, 2, 3]))
const blobCommitmentVersion = 0x01
const versionedHash = computeVersionedHash(commitment, blobCommitmentVersion)
console.log(`Versioned hash ${bytesToHex(versionedHash)} computed`)
console.log(`Versioned hash ${versionedHash} computed`)
```

@@ -197,3 +197,3 @@

'0xdf67dea9181141d6255ac05c7ada5a590fb30a375023f16c31223f067319e300':
'0x0000000000000000000000000000000000000000000000000000000000000000',
'0x0100000001000000000000000000000001000000000000000000000000000000',
'0xdf67dea9181141d6255ac05c7ada5a590fb30a375023f16c31223f067319e301':

@@ -214,3 +214,3 @@ '0x923672e5275a0104000000000000000000000000000000000000000000000000',

console.log(basicData) // { version: 0, nonce: 0n, codeSize: 0, balance: 0n }
console.log(basicData) // { version: 1, nonce: 1n, codeSize: 0, balance: 1n }
```

@@ -217,0 +217,0 @@

@@ -16,8 +16,9 @@ import { RLP } from '@ethereumjs/rlp'

utf8ToBytes,
} from './bytes.js'
import { BIGINT_0, KECCAK256_NULL, KECCAK256_RLP } from './constants.js'
import { assertIsBytes, assertIsHexString, assertIsString } from './helpers.js'
import { stripHexPrefix } from './internal.js'
} from './bytes.ts'
import { BIGINT_0, KECCAK256_NULL, KECCAK256_RLP } from './constants.ts'
import { EthereumJSErrorWithoutCode } from './errors.ts'
import { assertIsBytes, assertIsHexString, assertIsString } from './helpers.ts'
import { stripHexPrefix } from './internal.ts'
import type { BigIntLike, BytesLike, PrefixedHexString } from './types.js'
import type { BigIntLike, BytesLike, PrefixedHexString } from './types.ts'

@@ -156,15 +157,15 @@ export interface AccountData {

if (this._nonce !== null && this._nonce < BIGINT_0) {
throw new Error('nonce must be greater than zero')
throw EthereumJSErrorWithoutCode('nonce must be greater than zero')
}
if (this._balance !== null && this._balance < BIGINT_0) {
throw new Error('balance must be greater than zero')
throw EthereumJSErrorWithoutCode('balance must be greater than zero')
}
if (this._storageRoot !== null && this._storageRoot.length !== 32) {
throw new Error('storageRoot must have a length of 32')
throw EthereumJSErrorWithoutCode('storageRoot must have a length of 32')
}
if (this._codeHash !== null && this._codeHash.length !== 32) {
throw new Error('codeHash must have a length of 32')
throw EthereumJSErrorWithoutCode('codeHash must have a length of 32')
}
if (this._codeSize !== null && this._codeSize < BIGINT_0) {
throw new Error('codeSize must be greater than zero')
throw EthereumJSErrorWithoutCode('codeSize must be greater than zero')
}

@@ -322,3 +323,3 @@ }

if (!Array.isArray(values)) {
throw new Error('Invalid serialized account input. Must be array')
throw EthereumJSErrorWithoutCode('Invalid serialized account input. Must be array')
}

@@ -333,3 +334,3 @@

if (!Array.isArray(values)) {
throw new Error('Invalid serialized account input. Must be array')
throw EthereumJSErrorWithoutCode('Invalid serialized account input. Must be array')
}

@@ -339,7 +340,7 @@

if (!Array.isArray(values[0])) {
throw new Error('Invalid partial nonce encoding. Must be array')
throw EthereumJSErrorWithoutCode('Invalid partial nonce encoding. Must be array')
} else {
const isNotNullIndicator = bytesToInt(values[0][0])
if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for nonce`)
throw EthereumJSErrorWithoutCode(`Invalid isNullIndicator=${isNotNullIndicator} for nonce`)
}

@@ -353,7 +354,7 @@ if (isNotNullIndicator === 1) {

if (!Array.isArray(values[1])) {
throw new Error('Invalid partial balance encoding. Must be array')
throw EthereumJSErrorWithoutCode('Invalid partial balance encoding. Must be array')
} else {
const isNotNullIndicator = bytesToInt(values[1][0])
if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for balance`)
throw EthereumJSErrorWithoutCode(`Invalid isNullIndicator=${isNotNullIndicator} for balance`)
}

@@ -367,7 +368,9 @@ if (isNotNullIndicator === 1) {

if (!Array.isArray(values[2])) {
throw new Error('Invalid partial storageRoot encoding. Must be array')
throw EthereumJSErrorWithoutCode('Invalid partial storageRoot encoding. Must be array')
} else {
const isNotNullIndicator = bytesToInt(values[2][0])
if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for storageRoot`)
throw EthereumJSErrorWithoutCode(
`Invalid isNullIndicator=${isNotNullIndicator} for storageRoot`,
)
}

@@ -381,7 +384,7 @@ if (isNotNullIndicator === 1) {

if (!Array.isArray(values[3])) {
throw new Error('Invalid partial codeHash encoding. Must be array')
throw EthereumJSErrorWithoutCode('Invalid partial codeHash encoding. Must be array')
} else {
const isNotNullIndicator = bytesToInt(values[3][0])
if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for codeHash`)
throw EthereumJSErrorWithoutCode(`Invalid isNullIndicator=${isNotNullIndicator} for codeHash`)
}

@@ -395,7 +398,7 @@ if (isNotNullIndicator === 1) {

if (!Array.isArray(values[4])) {
throw new Error('Invalid partial codeSize encoding. Must be array')
throw EthereumJSErrorWithoutCode('Invalid partial codeSize encoding. Must be array')
} else {
const isNotNullIndicator = bytesToInt(values[4][0])
if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for codeSize`)
throw EthereumJSErrorWithoutCode(`Invalid isNullIndicator=${isNotNullIndicator} for codeSize`)
}

@@ -409,7 +412,7 @@ if (isNotNullIndicator === 1) {

if (!Array.isArray(values[5])) {
throw new Error('Invalid partial version encoding. Must be array')
throw EthereumJSErrorWithoutCode('Invalid partial version encoding. Must be array')
} else {
const isNotNullIndicator = bytesToInt(values[5][0])
if (isNotNullIndicator !== 0 && isNotNullIndicator !== 1) {
throw new Error(`Invalid isNullIndicator=${isNotNullIndicator} for version`)
throw EthereumJSErrorWithoutCode(`Invalid isNullIndicator=${isNotNullIndicator} for version`)
}

@@ -430,3 +433,3 @@ if (isNotNullIndicator === 1) {

assertIsString(hexAddress)
} catch (e: any) {
} catch {
return false

@@ -525,6 +528,6 @@ }

if (from.length !== 20) {
throw new Error('Expected from to be of length 20')
throw EthereumJSErrorWithoutCode('Expected from to be of length 20')
}
if (salt.length !== 32) {
throw new Error('Expected salt to be of length 32')
throw EthereumJSErrorWithoutCode('Expected salt to be of length 32')
}

@@ -558,3 +561,3 @@

return true
} catch (e) {
} catch {
return false

@@ -571,3 +574,3 @@ }

return true
} catch (e) {
} catch {
return false

@@ -589,3 +592,3 @@ }

if (pubKey.length !== 64) {
throw new Error('Expected pubKey to be of length 64')
throw EthereumJSErrorWithoutCode('Expected pubKey to be of length 64')
}

@@ -639,3 +642,3 @@ // Only take the lower 160bits of the hash

assertIsString(hexAddress)
} catch (e: any) {
} catch {
return false

@@ -642,0 +645,0 @@ }

@@ -7,3 +7,3 @@ import {

pubToAddress,
} from './account.js'
} from './account.ts'
import {

@@ -16,6 +16,7 @@ bigIntToBytes,

setLengthLeft,
} from './bytes.js'
import { BIGINT_0 } from './constants.js'
} from './bytes.ts'
import { BIGINT_0 } from './constants.ts'
import { EthereumJSErrorWithoutCode } from './errors.ts'
import type { PrefixedHexString } from './types.js'
import type { PrefixedHexString } from './types.ts'

@@ -30,3 +31,3 @@ /**

if (bytes.length !== 20) {
throw new Error('Invalid address length')
throw EthereumJSErrorWithoutCode('Invalid address length')
}

@@ -90,3 +91,3 @@ this.bytes = bytes

if (bytes.length > 20) {
throw new Error(`Invalid address, too long: ${bytes.length}`)
throw EthereumJSErrorWithoutCode(`Invalid address, too long: ${bytes.length}`)
}

@@ -102,3 +103,3 @@ return new Address(setLengthLeft(bytes, 20))

if (!isValidAddress(str)) {
throw new Error(`Invalid address input=${str}`)
throw EthereumJSErrorWithoutCode(`Invalid address input=${str}`)
}

@@ -114,3 +115,3 @@ return new Address(hexToBytes(str))

if (!(pubKey instanceof Uint8Array)) {
throw new Error('Public key should be Uint8Array')
throw EthereumJSErrorWithoutCode('Public key should be Uint8Array')
}

@@ -127,3 +128,3 @@ const bytes = pubToAddress(pubKey)

if (!(privateKey instanceof Uint8Array)) {
throw new Error('Private key should be Uint8Array')
throw EthereumJSErrorWithoutCode('Private key should be Uint8Array')
}

@@ -141,3 +142,3 @@ const bytes = privateToAddress(privateKey)

if (typeof nonce !== 'bigint') {
throw new Error('Expected nonce to be a bigint')
throw EthereumJSErrorWithoutCode('Expected nonce to be a bigint')
}

@@ -159,8 +160,8 @@ return new Address(generateAddress(from.bytes, bigIntToBytes(nonce)))

if (!(salt instanceof Uint8Array)) {
throw new Error('Expected salt to be a Uint8Array')
throw EthereumJSErrorWithoutCode('Expected salt to be a Uint8Array')
}
if (!(initCode instanceof Uint8Array)) {
throw new Error('Expected initCode to be a Uint8Array')
throw EthereumJSErrorWithoutCode('Expected initCode to be a Uint8Array')
}
return new Address(generateAddress2(from.bytes, salt, initCode))
}
import { sha256 } from 'ethereum-cryptography/sha256.js'
import { bytesToHex, hexToBytes, utf8ToBytes } from './bytes.js'
import { bytesToHex, hexToBytes, utf8ToBytes } from './bytes.ts'
import type { KZG } from './kzg.js'
import type { PrefixedHexString } from './types.js'
import type { KZG } from './kzg.ts'
import type { PrefixedHexString } from './types.ts'

@@ -8,0 +8,0 @@ /**

import { getRandomBytesSync } from 'ethereum-cryptography/random.js'
// eslint-disable-next-line no-restricted-imports
import {

@@ -8,6 +8,7 @@ bytesToHex as _bytesToUnprefixedHex,

import { assertIsArray, assertIsBytes, assertIsHexString } from './helpers.js'
import { isHexString, padToEven, stripHexPrefix } from './internal.js'
import { EthereumJSErrorWithoutCode } from './errors.ts'
import { assertIsArray, assertIsBytes, assertIsHexString } from './helpers.ts'
import { isHexString, padToEven, stripHexPrefix } from './internal.ts'
import type { PrefixedHexString, TransformableToBytes } from './types.js'
import type { PrefixedHexString, TransformableToBytes } from './types.ts'

@@ -28,3 +29,3 @@ const BIGINT_0 = BigInt(0)

export const hexToBytes = (hex: string) => {
if (!hex.startsWith('0x')) throw new Error('input string must be 0x prefixed')
if (!hex.startsWith('0x')) throw EthereumJSErrorWithoutCode('input string must be 0x prefixed')
return nobleH2B(padToEven(stripHexPrefix(hex)))

@@ -34,3 +35,3 @@ }

export const unprefixedHexToBytes = (hex: string) => {
if (hex.startsWith('0x')) throw new Error('input string cannot be 0x prefixed')
if (hex.startsWith('0x')) throw EthereumJSErrorWithoutCode('input string cannot be 0x prefixed')
return nobleH2B(padToEven(hex))

@@ -82,3 +83,3 @@ }

const res = Number(bytesToBigInt(bytes))
if (!Number.isSafeInteger(res)) throw new Error('Number exceeds 53 bits')
if (!Number.isSafeInteger(res)) throw EthereumJSErrorWithoutCode('Number exceeds 53 bits')
return res

@@ -96,3 +97,3 @@ }

if (!Number.isSafeInteger(i) || i < 0) {
throw new Error(`Received an invalid integer type: ${i}`)
throw EthereumJSErrorWithoutCode(`Received an invalid integer type: ${i}`)
}

@@ -118,3 +119,2 @@ return ('0x' + i.toString(16)) as PrefixedHexString

export const bigIntToBytes = (num: bigint, littleEndian = false): Uint8Array => {
// eslint-disable-next-line @typescript-eslint/no-use-before-define
const bytes = toBytes(`0x${padToEven(num.toString(16))}`)

@@ -246,3 +246,3 @@

if (!isHexString(v)) {
throw new Error(
throw EthereumJSErrorWithoutCode(
`Cannot convert string to Uint8Array. toBytes only supports 0x-prefixed hex strings and this string was given: ${v}`,

@@ -260,3 +260,3 @@ )

if (v < BIGINT_0) {
throw new Error(`Cannot convert negative bigint to Uint8Array. Given: ${v}`)
throw EthereumJSErrorWithoutCode(`Cannot convert negative bigint to Uint8Array. Given: ${v}`)
}

@@ -273,3 +273,3 @@ let n = v.toString(16)

throw new Error('invalid type')
throw EthereumJSErrorWithoutCode('invalid type')
}

@@ -344,3 +344,5 @@

if (v !== undefined && v.length > 0 && v[0] === 0) {
throw new Error(`${k} cannot have leading zeroes, received: ${bytesToHex(v)}`)
throw EthereumJSErrorWithoutCode(
`${k} cannot have leading zeroes, received: ${bytesToHex(v)}`,
)
}

@@ -500,3 +502,2 @@ }

// eslint-disable-next-line no-restricted-imports
export { bytesToUtf8, equalsBytes, utf8ToBytes } from 'ethereum-cryptography/utils.js'

@@ -509,5 +510,40 @@

/**
* Converts a Uint8Array of bytes into an array of bits.
* @param {Uint8Array} bytes - The input byte array.
* @param {number} bitLength - The number of bits to extract from the input bytes.
* @returns {number[]} An array of bits (each 0 or 1) corresponding to the input bytes.
*/
export function bytesToBits(bytes: Uint8Array, bitLength?: number): number[] {
const bits: number[] = []
for (let i = 0; i < (bitLength ?? bytes.length * 8); i++) {
const byteIndex = Math.floor(i / 8)
const bitIndex = 7 - (i % 8)
bits.push((bytes[byteIndex] >> bitIndex) & 1)
}
return bits
}
/**
* Converts an array of bits into a Uint8Array.
* The input bits are grouped into sets of 8, with the first bit in each group being the most significant.
* @param {number[]} bits - The input array of bits (each should be 0 or 1). Its length should be a multiple of 8.
* @returns {Uint8Array} A Uint8Array constructed from the input bits.
*/
export function bitsToBytes(bits: number[]): Uint8Array {
const numBytes = Math.ceil(bits.length / 8) // Ensure partial byte storage
const byteData = new Uint8Array(numBytes)
for (let i = 0; i < bits.length; i++) {
const byteIndex = Math.floor(i / 8)
const bitIndex = 7 - (i % 8)
byteData[byteIndex] |= bits[i] << bitIndex
}
return byteData
}
/**
* Compares two byte arrays and returns the count of consecutively matching items from the start.
*
* @function
* @param {Uint8Array} bytes1 - The first Uint8Array to compare.

@@ -531,1 +567,41 @@ * @param {Uint8Array} bytes2 - The second Uint8Array to compare.

}
/**
* Compares two arrays of bits (0 or 1) and returns the count of consecutively matching bits from the start.
* @param {number[]} bits1 - The first array of bits, in bytes or bits.
* @param {number[]} bits2 - The second array of bits, in bytes or bits.
* @returns {number} The count of consecutively matching bits from the start.
*/
export function matchingBitsLength(bits1: number[], bits2: number[]): number {
let count = 0
const minLength = Math.min(bits1.length, bits2.length)
for (let i = 0; i < minLength; i++) {
if (bits1[i] === bits2[i]) {
count++
} else {
return count
}
}
return count
}
/**
* Checks whether two arrays of bits are equal.
*
* Two arrays are considered equal if they have the same length and each corresponding element is identical.
*
* @param {number[]} bits1 - The first bits array.
* @param {number[]} bits2 - The second bits array.
* @returns {boolean} True if the arrays are equal; otherwise, false.
*/
export function equalsBits(bits1: number[], bits2: number[]): boolean {
if (bits1.length !== bits2.length) {
return false
}
for (let i = 0; i < bits1.length; i++) {
if (bits1[i] !== bits2[i]) {
return false
}
}
return true
}
import { secp256k1 } from 'ethereum-cryptography/secp256k1.js'
import { sha256 } from 'ethereum-cryptography/sha256.js'
import { hexToBytes } from './bytes.js'
import { hexToBytes } from './bytes.ts'

@@ -67,2 +68,4 @@ /**

export const SHA256_NULL = sha256(new Uint8Array())
/**

@@ -69,0 +72,0 @@ * RLP encoded empty string

+14
-10

@@ -9,14 +9,18 @@ export type DBObject = {

export enum KeyEncoding {
String = 'string',
Bytes = 'view',
Number = 'number',
}
export type KeyEncoding = (typeof KeyEncoding)[keyof typeof KeyEncoding]
export enum ValueEncoding {
String = 'string',
Bytes = 'view',
JSON = 'json',
}
export const KeyEncoding = {
String: 'string',
Bytes: 'view',
Number: 'number',
} as const
export type ValueEncoding = (typeof ValueEncoding)[keyof typeof ValueEncoding]
export const ValueEncoding = {
String: 'string',
Bytes: 'view',
JSON: 'json',
} as const
export type EncodingOpts = {

@@ -23,0 +27,0 @@ keyEncoding?: KeyEncoding

@@ -1,5 +0,5 @@

import { addHexPrefix, bigIntToHex } from './bytes.js'
import { isHexString } from './internal.js'
import { addHexPrefix, bigIntToHex } from './bytes.ts'
import { isHexString } from './internal.ts'
import type { PrefixedHexString } from './types.js'
import type { PrefixedHexString } from './types.ts'

@@ -6,0 +6,0 @@ export type StoragePair = [key: PrefixedHexString, value: PrefixedHexString]

@@ -1,2 +0,3 @@

import { isHexString } from './internal.js'
import { EthereumJSErrorWithoutCode } from './errors.ts'
import { isHexString } from './internal.ts'

@@ -10,3 +11,3 @@ /**

const msg = `This method only supports 0x-prefixed hex strings but input was: ${input}`
throw new Error(msg)
throw EthereumJSErrorWithoutCode(msg)
}

@@ -22,3 +23,3 @@ }

const msg = `This method only supports Uint8Array but input was: ${input}`
throw new Error(msg)
throw EthereumJSErrorWithoutCode(msg)
}

@@ -34,3 +35,3 @@ }

const msg = `This method only supports number arrays but input was: ${input}`
throw new Error(msg)
throw EthereumJSErrorWithoutCode(msg)
}

@@ -46,4 +47,4 @@ }

const msg = `This method only supports strings but input was: ${input}`
throw new Error(msg)
throw EthereumJSErrorWithoutCode(msg)
}
}
/**
* Constants
*/
export * from './constants.js'
export * from './constants.ts'
/**
* Errors
*/
export * from './errors.ts'
/**
* Units helpers
*/
export * from './units.js'
export * from './units.ts'

@@ -14,3 +19,3 @@ /**

*/
export * from './account.js'
export * from './account.ts'

@@ -20,3 +25,3 @@ /**

*/
export * from './address.js'
export * from './address.ts'

@@ -26,3 +31,3 @@ /**

*/
export * from './db.js'
export * from './db.ts'

@@ -32,3 +37,3 @@ /**

*/
export * from './withdrawal.js'
export * from './withdrawal.ts'

@@ -38,3 +43,3 @@ /**

*/
export * from './signature.js'
export * from './signature.ts'

@@ -44,3 +49,3 @@ /**

*/
export * from './bytes.js'
export * from './bytes.ts'

@@ -50,3 +55,3 @@ /**

*/
export * from './types.js'
export * from './types.ts'

@@ -56,5 +61,5 @@ /**

*/
export * from './asyncEventEmitter.js'
export * from './blobs.js'
export * from './genesis.js'
export * from './binaryTree.ts'
export * from './blobs.ts'
export * from './genesis.ts'
export {

@@ -70,9 +75,9 @@ arrayContainsArray,

toAscii,
} from './internal.js'
export * from './kzg.js'
export * from './lock.js'
export * from './mapDB.js'
export * from './provider.js'
export * from './request.js'
export * from './tasks.js'
export * from './verkle.js'
} from './internal.ts'
export * from './kzg.ts'
export * from './lock.ts'
export * from './mapDB.ts'
export * from './provider.ts'
export * from './request.ts'
export * from './tasks.ts'
export * from './verkle.ts'

@@ -25,5 +25,6 @@ /*

import { bytesToUnprefixedHex, utf8ToBytes } from './bytes.js'
import { bytesToUnprefixedHex, utf8ToBytes } from './bytes.ts'
import { EthereumJSErrorWithoutCode } from './errors.ts'
import type { PrefixedHexString } from './types.js'
import type { PrefixedHexString } from './types.ts'

@@ -51,3 +52,5 @@ /**

if (typeof str !== 'string')
throw new Error(`[stripHexPrefix] input must be type 'string', received ${typeof str}`)
throw EthereumJSErrorWithoutCode(
`[stripHexPrefix] input must be type 'string', received ${typeof str}`,
)

@@ -66,3 +69,5 @@ return isHexString(str) ? str.slice(2) : str

if (typeof a !== 'string') {
throw new Error(`[padToEven] value must be type 'string', received ${typeof a}`)
throw EthereumJSErrorWithoutCode(
`[padToEven] value must be type 'string', received ${typeof a}`,
)
}

@@ -82,3 +87,5 @@

if (typeof str !== 'string') {
throw new Error(`[getBinarySize] method requires input type 'string', received ${typeof str}`)
throw EthereumJSErrorWithoutCode(
`[getBinarySize] method requires input type 'string', received ${typeof str}`,
)
}

@@ -103,3 +110,3 @@

if (Array.isArray(superset) !== true) {
throw new Error(
throw EthereumJSErrorWithoutCode(
`[arrayContainsArray] method requires input 'superset' to be an array, got type '${typeof superset}'`,

@@ -109,3 +116,3 @@ )

if (Array.isArray(subset) !== true) {
throw new Error(
throw EthereumJSErrorWithoutCode(
`[arrayContainsArray] method requires input 'subset' to be an array, got type '${typeof subset}'`,

@@ -184,6 +191,8 @@ )

if (!Array.isArray(params)) {
throw new Error(`[getKeys] method expects input 'params' to be an array, got ${typeof params}`)
throw EthereumJSErrorWithoutCode(
`[getKeys] method expects input 'params' to be an array, got ${typeof params}`,
)
}
if (typeof key !== 'string') {
throw new Error(
throw EthereumJSErrorWithoutCode(
`[getKeys] method expects input 'key' to be type 'string', got ${typeof params}`,

@@ -200,3 +209,5 @@ )

} else if (typeof value !== 'string') {
throw new Error(`invalid abi - expected type 'string', received ${typeof value}`)
throw EthereumJSErrorWithoutCode(
`invalid abi - expected type 'string', received ${typeof value}`,
)
}

@@ -203,0 +214,0 @@ result.push(value)

@@ -1,4 +0,4 @@

import { bytesToUnprefixedHex } from './bytes.js'
import { bytesToUnprefixedHex } from './bytes.ts'
import type { BatchDBOp, DB, DBObject } from './db.js'
import type { BatchDBOp, DB, DBObject } from './db.ts'

@@ -5,0 +5,0 @@ export class MapDB<

@@ -0,1 +1,3 @@

import { EthereumJSErrorWithoutCode } from './errors.ts'
type rpcParams = {

@@ -40,3 +42,3 @@ method: string

if (!res.ok) {
throw new Error(
throw EthereumJSErrorWithoutCode(
`JSONRPCError: ${JSON.stringify(

@@ -71,3 +73,3 @@ {

} else {
throw new Error('Must provide valid provider URL or Web3Provider')
throw EthereumJSErrorWithoutCode('Must provide valid provider URL or Web3Provider')
}

@@ -74,0 +76,0 @@ }

@@ -1,288 +0,48 @@

import { RLP } from '@ethereumjs/rlp'
import { concatBytes } from 'ethereum-cryptography/utils'
import { concatBytes } from './bytes.ts'
import {
bigIntToBytes,
bigIntToHex,
bytesToBigInt,
bytesToHex,
hexToBigInt,
hexToBytes,
} from './bytes.js'
import { BIGINT_0 } from './constants.js'
import type { PrefixedHexString } from './types.ts'
import type { PrefixedHexString } from './types.js'
export type RequestBytes = Uint8Array
export enum CLRequestType {
Deposit = 0x00,
Withdrawal = 0x01,
Consolidation = 0x02,
}
export type CLRequestType = (typeof CLRequestType)[keyof typeof CLRequestType]
export type DepositRequestV1 = {
pubkey: PrefixedHexString // DATA 48 bytes
withdrawalCredentials: PrefixedHexString // DATA 32 bytes
amount: PrefixedHexString // QUANTITY 8 bytes in gwei
signature: PrefixedHexString // DATA 96 bytes
index: PrefixedHexString // QUANTITY 8 bytes
}
export const CLRequestType = {
Deposit: 0,
Withdrawal: 1,
Consolidation: 2,
} as const
export type WithdrawalRequestV1 = {
sourceAddress: PrefixedHexString // DATA 20 bytes
validatorPubkey: PrefixedHexString // DATA 48 bytes
amount: PrefixedHexString // QUANTITY 8 bytes in gwei
}
export type ConsolidationRequestV1 = {
sourceAddress: PrefixedHexString // DATA 20 bytes
sourcePubkey: PrefixedHexString // DATA 48 bytes
targetPubkey: PrefixedHexString // DATA 48 bytes
}
export interface RequestJSON {
[CLRequestType.Deposit]: DepositRequestV1
[CLRequestType.Withdrawal]: WithdrawalRequestV1
[CLRequestType.Consolidation]: ConsolidationRequestV1
type: PrefixedHexString
data: PrefixedHexString
}
export type DepositRequestData = {
pubkey: Uint8Array
withdrawalCredentials: Uint8Array
amount: bigint
signature: Uint8Array
index: bigint
}
export class CLRequest<T extends CLRequestType> {
// for easy use
public readonly bytes: Uint8Array
export type WithdrawalRequestData = {
sourceAddress: Uint8Array
validatorPubkey: Uint8Array
amount: bigint
}
export type ConsolidationRequestData = {
sourceAddress: Uint8Array
sourcePubkey: Uint8Array
targetPubkey: Uint8Array
}
export interface RequestData {
[CLRequestType.Deposit]: DepositRequestData
[CLRequestType.Withdrawal]: WithdrawalRequestData
[CLRequestType.Consolidation]: ConsolidationRequestData
}
export type TypedRequestData = RequestData[CLRequestType]
export interface CLRequestInterface<T extends CLRequestType = CLRequestType> {
readonly type: T
serialize(): Uint8Array
toJSON(): RequestJSON[T]
}
export abstract class CLRequest<T extends CLRequestType> implements CLRequestInterface<T> {
readonly type: T
abstract serialize(): Uint8Array
abstract toJSON(): RequestJSON[T]
constructor(type: T) {
this.type = type
get type() {
return this.bytes[0] as T
}
}
export class DepositRequest extends CLRequest<CLRequestType.Deposit> {
constructor(
public readonly pubkey: Uint8Array,
public readonly withdrawalCredentials: Uint8Array,
public readonly amount: bigint,
public readonly signature: Uint8Array,
public readonly index: bigint,
) {
super(CLRequestType.Deposit)
get data() {
return this.bytes.subarray(1)
}
serialize() {
const indexBytes = this.index === BIGINT_0 ? new Uint8Array() : bigIntToBytes(this.index)
const amountBytes = this.amount === BIGINT_0 ? new Uint8Array() : bigIntToBytes(this.amount)
return concatBytes(
Uint8Array.from([this.type]),
RLP.encode([
this.pubkey,
this.withdrawalCredentials,
amountBytes,
this.signature,
indexBytes,
]),
)
constructor(requestType: T, requestData: Uint8Array) {
this.bytes = concatBytes(new Uint8Array([requestType]), requestData)
}
toJSON(): DepositRequestV1 {
return {
pubkey: bytesToHex(this.pubkey),
withdrawalCredentials: bytesToHex(this.withdrawalCredentials),
amount: bigIntToHex(this.amount),
signature: bytesToHex(this.signature),
index: bigIntToHex(this.index),
}
}
}
export class WithdrawalRequest extends CLRequest<CLRequestType.Withdrawal> {
constructor(
public readonly sourceAddress: Uint8Array,
public readonly validatorPubkey: Uint8Array,
public readonly amount: bigint,
) {
super(CLRequestType.Withdrawal)
export function createCLRequest(bytes: Uint8Array): CLRequest<CLRequestType> {
switch (bytes[0]) {
case CLRequestType.Deposit:
return new CLRequest(CLRequestType.Deposit, bytes.subarray(1))
case CLRequestType.Withdrawal:
return new CLRequest(CLRequestType.Withdrawal, bytes.subarray(1))
case CLRequestType.Consolidation:
return new CLRequest(CLRequestType.Consolidation, bytes.subarray(1))
default:
throw Error(`Invalid request type=${bytes[0]}`)
}
serialize() {
const amountBytes = this.amount === BIGINT_0 ? new Uint8Array() : bigIntToBytes(this.amount)
return concatBytes(
Uint8Array.from([this.type]),
RLP.encode([this.sourceAddress, this.validatorPubkey, amountBytes]),
)
}
toJSON(): WithdrawalRequestV1 {
return {
sourceAddress: bytesToHex(this.sourceAddress),
validatorPubkey: bytesToHex(this.validatorPubkey),
amount: bigIntToHex(this.amount),
}
}
}
export class ConsolidationRequest extends CLRequest<CLRequestType.Consolidation> {
constructor(
public readonly sourceAddress: Uint8Array,
public readonly sourcePubkey: Uint8Array,
public readonly targetPubkey: Uint8Array,
) {
super(CLRequestType.Consolidation)
}
serialize() {
return concatBytes(
Uint8Array.from([this.type]),
RLP.encode([this.sourceAddress, this.sourcePubkey, this.targetPubkey]),
)
}
toJSON(): ConsolidationRequestV1 {
return {
sourceAddress: bytesToHex(this.sourceAddress),
sourcePubkey: bytesToHex(this.sourcePubkey),
targetPubkey: bytesToHex(this.targetPubkey),
}
}
}
export function createDepositRequest(depositData: DepositRequestData): DepositRequest {
const { pubkey, withdrawalCredentials, amount, signature, index } = depositData
return new DepositRequest(pubkey, withdrawalCredentials, amount, signature, index)
}
export function createDepositRequestFromJSON(jsonData: DepositRequestV1): DepositRequest {
const { pubkey, withdrawalCredentials, amount, signature, index } = jsonData
return createDepositRequest({
pubkey: hexToBytes(pubkey),
withdrawalCredentials: hexToBytes(withdrawalCredentials),
amount: hexToBigInt(amount),
signature: hexToBytes(signature),
index: hexToBigInt(index),
})
}
export function createDepositRequestFromRLP(bytes: Uint8Array): DepositRequest {
const [pubkey, withdrawalCredentials, amount, signature, index] = RLP.decode(bytes) as [
Uint8Array,
Uint8Array,
Uint8Array,
Uint8Array,
Uint8Array,
]
return createDepositRequest({
pubkey,
withdrawalCredentials,
amount: bytesToBigInt(amount),
signature,
index: bytesToBigInt(index),
})
}
export function createWithdrawalRequest(withdrawalData: WithdrawalRequestData): WithdrawalRequest {
const { sourceAddress, validatorPubkey, amount } = withdrawalData
return new WithdrawalRequest(sourceAddress, validatorPubkey, amount)
}
export function createWithdrawalRequestFromJSON(jsonData: WithdrawalRequestV1): WithdrawalRequest {
const { sourceAddress, validatorPubkey, amount } = jsonData
return createWithdrawalRequest({
sourceAddress: hexToBytes(sourceAddress),
validatorPubkey: hexToBytes(validatorPubkey),
amount: hexToBigInt(amount),
})
}
export function createWithdrawalRequestFromRLP(bytes: Uint8Array): WithdrawalRequest {
const [sourceAddress, validatorPubkey, amount] = RLP.decode(bytes) as [
Uint8Array,
Uint8Array,
Uint8Array,
]
return createWithdrawalRequest({
sourceAddress,
validatorPubkey,
amount: bytesToBigInt(amount),
})
}
export function createConsolidationRequest(
consolidationData: ConsolidationRequestData,
): ConsolidationRequest {
const { sourceAddress, sourcePubkey, targetPubkey } = consolidationData
return new ConsolidationRequest(sourceAddress, sourcePubkey, targetPubkey)
}
export function createConsolidationRequestFromJSON(
jsonData: ConsolidationRequestV1,
): ConsolidationRequest {
const { sourceAddress, sourcePubkey, targetPubkey } = jsonData
return createConsolidationRequest({
sourceAddress: hexToBytes(sourceAddress),
sourcePubkey: hexToBytes(sourcePubkey),
targetPubkey: hexToBytes(targetPubkey),
})
}
export function createConsolidationRequestFromRLP(bytes: Uint8Array): ConsolidationRequest {
const [sourceAddress, sourcePubkey, targetPubkey] = RLP.decode(bytes) as [
Uint8Array,
Uint8Array,
Uint8Array,
]
return createConsolidationRequest({
sourceAddress,
sourcePubkey,
targetPubkey,
})
}
export class CLRequestFactory {
public static fromSerializedRequest(bytes: Uint8Array): CLRequest<CLRequestType> {
switch (bytes[0]) {
case CLRequestType.Deposit:
return createDepositRequestFromRLP(bytes.subarray(1))
case CLRequestType.Withdrawal:
return createWithdrawalRequestFromRLP(bytes.subarray(1))
case CLRequestType.Consolidation:
return createConsolidationRequestFromRLP(bytes.subarray(1))
default:
throw Error(`Invalid request type=${bytes[0]}`)
}
}
}

@@ -12,3 +12,3 @@ import { keccak256 } from 'ethereum-cryptography/keccak.js'

utf8ToBytes,
} from './bytes.js'
} from './bytes.ts'
import {

@@ -21,6 +21,7 @@ BIGINT_0,

SECP256K1_ORDER_DIV_2,
} from './constants.js'
import { assertIsBytes } from './helpers.js'
} from './constants.ts'
import { EthereumJSErrorWithoutCode } from './errors.ts'
import { assertIsBytes } from './helpers.ts'
import type { PrefixedHexString } from './types.js'
import type { PrefixedHexString } from './types.ts'

@@ -33,7 +34,23 @@ export interface ECDSASignature {

export interface ECSignOpts {
chainId?: bigint
extraEntropy?: Uint8Array | boolean
}
/**
* Returns the ECDSA signature of a message hash.
*
* If `chainId` is provided assume an EIP-155-style signature and calculate the `v` value
* If {@link ECSignOpts.chainId} is provided assume an EIP-155-style signature and calculate the `v` value
* accordingly, otherwise return a "static" `v` just derived from the `recovery` bit
*
* {@link ECSignOpts.extraEntropy} defaults to `false`. If set to `true`, this will create a "hedged signature"
* which is non-deterministic and provides additional protections against private key extraction attack vectors,
* as described in https://github.com/ethereumjs/ethereumjs-monorepo/issues/3801. It will yield a
* different, random signature each time `ecsign` is called on the same `msgHash` and `privateKey`.
* In particular: each time a transaction is signed, this will thus yield a different, random
* transaction hash.
* Additionally, a `Uint8Array` can be passed to `extraEntropy` to provide custom entropy, which
* will then still create a
* To use this feature, pass `true` or a `Uint8Array` to `extraEntropy`.
* For more information, see: https://github.com/ethereumjs/ethereumjs-monorepo/issues/3801
*/

@@ -43,5 +60,6 @@ export function ecsign(

privateKey: Uint8Array,
chainId?: bigint,
ecSignOpts: { chainId?: bigint; extraEntropy?: Uint8Array | boolean } = { extraEntropy: false },
): ECDSASignature {
const sig = secp256k1.sign(msgHash, privateKey)
const { chainId, extraEntropy } = ecSignOpts
const sig = secp256k1.sign(msgHash, privateKey, { extraEntropy: extraEntropy ?? false })
const buf = sig.toCompactRawBytes()

@@ -51,2 +69,12 @@ const r = buf.slice(0, 32)

if ([2, 3].includes(sig.recovery)) {
// From the yellow paper:
/* The recovery identifier is a 1 byte value specifying the parity and finiteness of the coordinates
of the curve point for which r is the x-value; this value is in the range of [0, 3],
however we declare the upper two possibilities, representing infinite values, invalid. */
throw EthereumJSErrorWithoutCode(
`Invalid recovery value: values 2/3 are invalid, received: ${sig.recovery}`,
)
}
const v =

@@ -88,3 +116,3 @@ chainId === undefined

if (!isValidSigRecovery(recovery)) {
throw new Error('Invalid signature v value')
throw EthereumJSErrorWithoutCode('Invalid signature v value')
}

@@ -110,3 +138,3 @@

if (!isValidSigRecovery(recovery)) {
throw new Error('Invalid signature v value')
throw EthereumJSErrorWithoutCode('Invalid signature v value')
}

@@ -132,3 +160,3 @@

if (!isValidSigRecovery(recovery)) {
throw new Error('Invalid signature v value')
throw EthereumJSErrorWithoutCode('Invalid signature v value')
}

@@ -169,3 +197,3 @@

} else {
throw new Error('Invalid signature length')
throw EthereumJSErrorWithoutCode('Invalid signature length')
}

@@ -172,0 +200,0 @@

@@ -1,6 +0,7 @@

import { bytesToBigInt, bytesToHex, toBytes } from './bytes.js'
import { isHexString } from './internal.js'
import { bytesToBigInt, bytesToHex, toBytes } from './bytes.ts'
import { EthereumJSErrorWithoutCode } from './errors.ts'
import { isHexString } from './internal.ts'
import type { Address } from './address.js'
import type { ToBytesInputTypes } from './bytes.js'
import type { Address } from './address.ts'
import type { ToBytesInputTypes } from './bytes.ts'

@@ -60,12 +61,11 @@ /*

/**
* Type output options
*/
export enum TypeOutput {
Number,
BigInt,
Uint8Array,
PrefixedHexString,
}
export type TypeOutput = (typeof TypeOutput)[keyof typeof TypeOutput]
export const TypeOutput = {
Number: 0,
BigInt: 1,
Uint8Array: 2,
PrefixedHexString: 3,
} as const
export type TypeOutputReturnType = {

@@ -102,5 +102,5 @@ [TypeOutput.Number]: number

if (typeof input === 'string' && !isHexString(input)) {
throw new Error(`A string must be provided with a 0x-prefix, given: ${input}`)
throw EthereumJSErrorWithoutCode(`A string must be provided with a 0x-prefix, given: ${input}`)
} else if (typeof input === 'number' && !Number.isSafeInteger(input)) {
throw new Error(
throw EthereumJSErrorWithoutCode(
'The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)',

@@ -120,3 +120,3 @@ )

if (bigInt > BigInt(Number.MAX_SAFE_INTEGER)) {
throw new Error(
throw EthereumJSErrorWithoutCode(
'The provided number is greater than MAX_SAFE_INTEGER (please use an alternative output type)',

@@ -130,4 +130,4 @@ )

default:
throw new Error('unknown outputType')
throw EthereumJSErrorWithoutCode('unknown outputType')
}
}

@@ -1,2 +0,3 @@

import { BIGINT_0, BIGINT_1 } from './constants.js'
import { BIGINT_0, BIGINT_1 } from './constants.ts'
import { EthereumJSErrorWithoutCode } from './errors.ts'

@@ -27,6 +28,6 @@ /** Conversion constants to wei */

if (typeof amount === 'number' && !Number.isInteger(amount)) {
throw new Error('Input must be an integer number')
throw EthereumJSErrorWithoutCode('Input must be an integer number')
}
if (BigInt(amount) < 0) {
throw new Error('Input must be a positive number')
throw EthereumJSErrorWithoutCode('Input must be a positive number')
}

@@ -33,0 +34,0 @@ }

@@ -11,7 +11,7 @@ import {

toBytes,
} from './bytes.js'
} from './bytes.ts'
import type { Account } from './account.js'
import type { Address } from './address.js'
import type { PrefixedHexString } from './types.js'
import type { Account } from './account.ts'
import type { Address } from './address.ts'
import type { PrefixedHexString } from './types.ts'

@@ -56,3 +56,3 @@ /**

* @dev Assumes that the verkle node width = 256
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from verkle-cryptography-wasm.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from Verkle cryptography
* @param {Address} address The address to generate the tree key for.

@@ -83,3 +83,3 @@ * @param treeIndex The index of the tree to generate the key for. Defaults to 0.

* Verifies that the executionWitness is valid for the given prestateRoot.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from verkle-cryptography-wasm.
* @param {VerkleCrypto} verkleCrypto The {@link VerkleCrypto} foreign function interface object from Verkle cryptography
* @param {VerkleExecutionWitness} executionWitness The verkle execution witness.

@@ -144,7 +144,9 @@ * @returns {boolean} Whether or not the executionWitness belongs to the prestateRoot.

export enum VerkleLeafType {
BasicData = 0,
CodeHash = 1,
}
export type VerkleLeafType = (typeof VerkleLeafType)[keyof typeof VerkleLeafType]
export const VerkleLeafType = {
BasicData: 0,
CodeHash: 1,
} as const
export type VerkleLeafBasicData = {

@@ -245,35 +247,40 @@ version: number

// This code was written by robots based on the reference implementation in EIP-6800
export const chunkifyCode = (code: Uint8Array) => {
if (code.length === 0) return []
// Pad code to multiple of VERKLE_CODE_CHUNK_SIZE bytes
if (code.length % VERKLE_CODE_CHUNK_SIZE !== 0) {
const paddingLength = VERKLE_CODE_CHUNK_SIZE - (code.length % VERKLE_CODE_CHUNK_SIZE)
code = setLengthRight(code, code.length + paddingLength)
}
// Put first chunk (leading byte is always 0 since we have no leading PUSHDATA bytes)
const chunks = [concatBytes(new Uint8Array(1), code.subarray(0, 31))]
for (let i = 1; i < Math.floor(code.length / 31); i++) {
const slice = code.slice((i - 1) * 31, i * 31)
let x = 31
while (x >= 0) {
// Look for last push instruction in code chunk
if (slice[x] > 0x5f && slice[x] < 0x80) break
x--
const PUSH1 = 0x60 // Assuming PUSH1 is defined as 0x60
const PUSH32 = 0x7f // Assuming PUSH32 is defined as 0x7f
const PUSH_OFFSET = 0x5f // Assuming PUSH_OFFSET is defined as 0x5f
// Calculate padding length
const paddingLength = (31 - (code.length % 31)) % 31
const paddedCode = new Uint8Array(code.length + paddingLength)
paddedCode.set(code)
// Pre-allocate the bytesToExecData array
const bytesToExecData = new Uint8Array(paddedCode.length + 32)
let pos = 0
while (pos < paddedCode.length) {
let pushdataBytes = 0
if (PUSH1 <= paddedCode[pos] && paddedCode[pos] <= PUSH32) {
pushdataBytes = paddedCode[pos] - PUSH_OFFSET
}
if (x >= 0 && slice[x] - 0x5f > 31 - x) {
// x >= 0 indicates PUSHn in this chunk
// n > 31 - x indicates that PUSHDATA spills over to next chunk
// PUSHDATA overflow = n - 31 - x + 1(i.e. number of elements PUSHed
// - size of code chunk (31) - position of PUSHn in the previous
// code chunk + 1 (since x is zero-indexed))
const pushDataOverflow = slice[x] - 0x5f - 31 - x + 1
// Put next chunk prepended with number of overflow PUSHDATA bytes
chunks.push(
concatBytes(Uint8Array.from([pushDataOverflow]), code.slice(i * 31, (i + 1) * 31)),
)
} else {
// Put next chunk prepended with 0 (i.e. no overflow PUSHDATA bytes from previous chunk)
chunks.push(concatBytes(new Uint8Array(1), code.slice(i * 31, (i + 1) * 31)))
pos += 1
for (let x = 0; x < pushdataBytes; x++) {
bytesToExecData[pos + x] = pushdataBytes - x
}
pos += pushdataBytes
}
// Pre-allocate the chunks array
const numChunks = Math.ceil(paddedCode.length / 31)
const chunks = new Array<Uint8Array>(numChunks)
for (let i = 0, pos = 0; i < numChunks; i++, pos += 31) {
const chunk = new Uint8Array(32)
chunk[0] = Math.min(bytesToExecData[pos], 31)
chunk.set(paddedCode.subarray(pos, pos + 31), 1)
chunks[i] = chunk
}
return chunks

@@ -362,13 +369,9 @@ }

const chunkSuffixes: number[] = new Array<number>(numChunks)
const firstChunksSet = numChunks > VERKLE_CODE_OFFSET ? VERKLE_CODE_OFFSET : numChunks
for (let x = 0; x < firstChunksSet; x++) {
// Fill up to first 128 suffixes
chunkSuffixes[x] = x + VERKLE_CODE_OFFSET
let currentSuffix = VERKLE_CODE_OFFSET
for (let x = 0; x < numChunks; x++) {
chunkSuffixes[x] = currentSuffix
currentSuffix++
// Reset suffix to 0 if exceeds VERKLE_NODE_WIDTH
if (currentSuffix >= VERKLE_NODE_WIDTH) currentSuffix = 0
}
if (numChunks > VERKLE_CODE_OFFSET) {
for (let x = VERKLE_CODE_OFFSET; x < numChunks; x++) {
// Fill subsequent chunk suffixes up to 256 and then start over since a single node
chunkSuffixes[x] = x - Math.floor(x / VERKLE_NODE_WIDTH) * VERKLE_NODE_WIDTH
}
}

@@ -397,3 +400,3 @@ return chunkSuffixes

// chunk in each leaf node and can then know that the chunks in between have tree keys in monotonically increasing order
const numStems = Math.ceil(numChunks / VERKLE_NODE_WIDTH)
const numStems = numChunks > VERKLE_CODE_OFFSET ? Math.ceil(numChunks / VERKLE_NODE_WIDTH) + 1 : 1
const chunkStems = new Array<Uint8Array>(numStems)

@@ -400,0 +403,0 @@ // Compute the stem for the initial set of code chunks

@@ -1,7 +0,7 @@

import { Address } from './address.js'
import { bigIntToHex, bytesToHex, toBytes } from './bytes.js'
import { BIGINT_0 } from './constants.js'
import { TypeOutput, toType } from './types.js'
import { Address } from './address.ts'
import { bigIntToHex, bytesToHex, toBytes } from './bytes.ts'
import { BIGINT_0 } from './constants.ts'
import { TypeOutput, toType } from './types.ts'
import type { AddressLike, BigIntLike, PrefixedHexString } from './types.js'
import type { AddressLike, BigIntLike, PrefixedHexString } from './types.ts'

@@ -60,2 +60,7 @@ /**

export class Withdrawal {
public readonly index: bigint
public readonly validatorIndex: bigint
public readonly address: Address
public readonly amount: bigint
/**

@@ -66,11 +71,8 @@ * This constructor assigns and validates the values.

*/
constructor(
public readonly index: bigint,
public readonly validatorIndex: bigint,
public readonly address: Address,
/**
* withdrawal amount in Gwei to match the CL representation and eventually ssz withdrawalsRoot
*/
public readonly amount: bigint,
) {}
constructor(index: bigint, validatorIndex: bigint, address: Address, amount: bigint) {
this.index = index
this.validatorIndex = validatorIndex
this.address = address
this.amount = amount
}

@@ -77,0 +79,0 @@ raw() {

/**
* Ported to Typescript from original implementation below:
* https://github.com/ahultgren/async-eventemitter -- MIT licensed
*
* Type Definitions based on work by: patarapolw <https://github.com/patarapolw> -- MIT licensed
* that was contributed to Definitely Typed below:
* https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/async-eventemitter
*/
/// <reference types="node" />
import { EventEmitter } from 'events';
type AsyncListener<T, R> = ((data: T, callback?: (result?: R) => void) => Promise<R>) | ((data: T, callback?: (result?: R) => void) => void);
export interface EventMap {
[event: string]: AsyncListener<any, any>;
}
export declare class AsyncEventEmitter<T extends EventMap> extends EventEmitter {
emit<E extends keyof T>(event: E & string, ...args: Parameters<T[E]>): boolean;
once<E extends keyof T>(event: E & string, listener: T[E]): this;
first<E extends keyof T>(event: E & string, listener: T[E]): this;
before<E extends keyof T>(event: E & string, target: T[E], listener: T[E]): this;
after<E extends keyof T>(event: E & string, target: T[E], listener: T[E]): this;
private beforeOrAfter;
on<E extends keyof T>(event: E & string, listener: T[E]): this;
addListener<E extends keyof T>(event: E & string, listener: T[E]): this;
prependListener<E extends keyof T>(event: E & string, listener: T[E]): this;
prependOnceListener<E extends keyof T>(event: E & string, listener: T[E]): this;
removeAllListeners(event?: keyof T & string): this;
removeListener<E extends keyof T>(event: E & string, listener: T[E]): this;
eventNames(): Array<keyof T & string>;
listeners<E extends keyof T>(event: E & string): Array<T[E]>;
listenerCount(event: keyof T & string): number;
getMaxListeners(): number;
setMaxListeners(maxListeners: number): this;
}
export {};
//# sourceMappingURL=asyncEventEmitter.d.ts.map
{"version":3,"file":"asyncEventEmitter.d.ts","sourceRoot":"","sources":["../../src/asyncEventEmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,IACnB,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,GAC1D,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,CAAA;AACxD,MAAM,WAAW,QAAQ;IACvB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CACzC;AAiCD,qBAAa,iBAAiB,CAAC,CAAC,SAAS,QAAQ,CAAE,SAAQ,YAAY;IACrE,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IA6BpE,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IA0BhE,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAkBjE,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAIhF,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAI/E,OAAO,CAAC,aAAa;IAsCrB,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAI9D,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAIvE,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAI3E,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAI/E,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI;IAIlD,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAI1E,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAIrC,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAI5D,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM;IAI9C,eAAe,IAAI,MAAM;IAIzB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CAG5C"}
"use strict";
/**
* Ported to Typescript from original implementation below:
* https://github.com/ahultgren/async-eventemitter -- MIT licensed
*
* Type Definitions based on work by: patarapolw <https://github.com/patarapolw> -- MIT licensed
* that was contributed to Definitely Typed below:
* https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/async-eventemitter
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.AsyncEventEmitter = void 0;
const events_1 = require("events");
async function runInSeries(context, tasks, data) {
let error;
for await (const task of tasks) {
try {
if (task.length < 2) {
//sync
task.call(context, data);
}
else {
await new Promise((resolve, reject) => {
task.call(context, data, (error) => {
if (error) {
reject(error);
}
else {
resolve();
}
});
});
}
}
catch (e) {
error = e;
}
}
if (error) {
throw error;
}
}
class AsyncEventEmitter extends events_1.EventEmitter {
emit(event, ...args) {
let [data, callback] = args;
const self = this;
let listeners = self._events[event] ?? [];
// Optional data argument
if (callback === undefined && typeof data === 'function') {
callback = data;
data = undefined;
}
// Special treatment of internal newListener and removeListener events
if (event === 'newListener' || event === 'removeListener') {
data = {
event: data,
fn: callback,
};
callback = undefined;
}
// A single listener is just a function not an array...
listeners = Array.isArray(listeners) ? listeners : [listeners];
runInSeries(self, listeners.slice(), data).then(callback).catch(callback);
return self.listenerCount(event) > 0;
}
once(event, listener) {
const self = this;
let g;
if (typeof listener !== 'function') {
throw new TypeError('listener must be a function');
}
// Hack to support set arity
if (listener.length >= 2) {
g = function (e, next) {
self.removeListener(event, g);
void listener(e, next);
};
}
else {
g = function (e) {
self.removeListener(event, g);
void listener(e, g);
};
}
self.on(event, g);
return self;
}
first(event, listener) {
let listeners = this._events[event] ?? [];
// Contract
if (typeof listener !== 'function') {
throw new TypeError('listener must be a function');
}
// Listeners are not always an array
if (!Array.isArray(listeners)) {
;
this._events[event] = listeners = [listeners];
}
listeners.unshift(listener);
return this;
}
before(event, target, listener) {
return this.beforeOrAfter(event, target, listener);
}
after(event, target, listener) {
return this.beforeOrAfter(event, target, listener, 'after');
}
beforeOrAfter(event, target, listener, beforeOrAfter) {
let listeners = this._events[event] ?? [];
let i;
let index;
const add = beforeOrAfter === 'after' ? 1 : 0;
// Contract
if (typeof listener !== 'function') {
throw new TypeError('listener must be a function');
}
if (typeof target !== 'function') {
throw new TypeError('target must be a function');
}
// Listeners are not always an array
if (!Array.isArray(listeners)) {
;
this._events[event] = listeners = [listeners];
}
index = listeners.length;
for (i = listeners.length; i--;) {
if (listeners[i] === target) {
index = i + add;
break;
}
}
listeners.splice(index, 0, listener);
return this;
}
on(event, listener) {
return super.on(event, listener);
}
addListener(event, listener) {
return super.addListener(event, listener);
}
prependListener(event, listener) {
return super.prependListener(event, listener);
}
prependOnceListener(event, listener) {
return super.prependOnceListener(event, listener);
}
removeAllListeners(event) {
return super.removeAllListeners(event);
}
removeListener(event, listener) {
return super.removeListener(event, listener);
}
eventNames() {
return super.eventNames();
}
listeners(event) {
return super.listeners(event);
}
listenerCount(event) {
return super.listenerCount(event);
}
getMaxListeners() {
return super.getMaxListeners();
}
setMaxListeners(maxListeners) {
return super.setMaxListeners(maxListeners);
}
}
exports.AsyncEventEmitter = AsyncEventEmitter;
//# sourceMappingURL=asyncEventEmitter.js.map
{"version":3,"file":"asyncEventEmitter.js","sourceRoot":"","sources":["../../src/asyncEventEmitter.ts"],"names":[],"mappings":"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"}
/**
* Ported to Typescript from original implementation below:
* https://github.com/ahultgren/async-eventemitter -- MIT licensed
*
* Type Definitions based on work by: patarapolw <https://github.com/patarapolw> -- MIT licensed
* that was contributed to Definitely Typed below:
* https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/async-eventemitter
*/
/// <reference types="node" resolution-mode="require"/>
import { EventEmitter } from 'events';
type AsyncListener<T, R> = ((data: T, callback?: (result?: R) => void) => Promise<R>) | ((data: T, callback?: (result?: R) => void) => void);
export interface EventMap {
[event: string]: AsyncListener<any, any>;
}
export declare class AsyncEventEmitter<T extends EventMap> extends EventEmitter {
emit<E extends keyof T>(event: E & string, ...args: Parameters<T[E]>): boolean;
once<E extends keyof T>(event: E & string, listener: T[E]): this;
first<E extends keyof T>(event: E & string, listener: T[E]): this;
before<E extends keyof T>(event: E & string, target: T[E], listener: T[E]): this;
after<E extends keyof T>(event: E & string, target: T[E], listener: T[E]): this;
private beforeOrAfter;
on<E extends keyof T>(event: E & string, listener: T[E]): this;
addListener<E extends keyof T>(event: E & string, listener: T[E]): this;
prependListener<E extends keyof T>(event: E & string, listener: T[E]): this;
prependOnceListener<E extends keyof T>(event: E & string, listener: T[E]): this;
removeAllListeners(event?: keyof T & string): this;
removeListener<E extends keyof T>(event: E & string, listener: T[E]): this;
eventNames(): Array<keyof T & string>;
listeners<E extends keyof T>(event: E & string): Array<T[E]>;
listenerCount(event: keyof T & string): number;
getMaxListeners(): number;
setMaxListeners(maxListeners: number): this;
}
export {};
//# sourceMappingURL=asyncEventEmitter.d.ts.map
{"version":3,"file":"asyncEventEmitter.d.ts","sourceRoot":"","sources":["../../src/asyncEventEmitter.ts"],"names":[],"mappings":"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"}
/**
* Ported to Typescript from original implementation below:
* https://github.com/ahultgren/async-eventemitter -- MIT licensed
*
* Type Definitions based on work by: patarapolw <https://github.com/patarapolw> -- MIT licensed
* that was contributed to Definitely Typed below:
* https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/async-eventemitter
*/
import { EventEmitter } from 'events';
async function runInSeries(context, tasks, data) {
let error;
for await (const task of tasks) {
try {
if (task.length < 2) {
//sync
task.call(context, data);
}
else {
await new Promise((resolve, reject) => {
task.call(context, data, (error) => {
if (error) {
reject(error);
}
else {
resolve();
}
});
});
}
}
catch (e) {
error = e;
}
}
if (error) {
throw error;
}
}
export class AsyncEventEmitter extends EventEmitter {
emit(event, ...args) {
let [data, callback] = args;
const self = this;
let listeners = self._events[event] ?? [];
// Optional data argument
if (callback === undefined && typeof data === 'function') {
callback = data;
data = undefined;
}
// Special treatment of internal newListener and removeListener events
if (event === 'newListener' || event === 'removeListener') {
data = {
event: data,
fn: callback,
};
callback = undefined;
}
// A single listener is just a function not an array...
listeners = Array.isArray(listeners) ? listeners : [listeners];
runInSeries(self, listeners.slice(), data).then(callback).catch(callback);
return self.listenerCount(event) > 0;
}
once(event, listener) {
const self = this;
let g;
if (typeof listener !== 'function') {
throw new TypeError('listener must be a function');
}
// Hack to support set arity
if (listener.length >= 2) {
g = function (e, next) {
self.removeListener(event, g);
void listener(e, next);
};
}
else {
g = function (e) {
self.removeListener(event, g);
void listener(e, g);
};
}
self.on(event, g);
return self;
}
first(event, listener) {
let listeners = this._events[event] ?? [];
// Contract
if (typeof listener !== 'function') {
throw new TypeError('listener must be a function');
}
// Listeners are not always an array
if (!Array.isArray(listeners)) {
;
this._events[event] = listeners = [listeners];
}
listeners.unshift(listener);
return this;
}
before(event, target, listener) {
return this.beforeOrAfter(event, target, listener);
}
after(event, target, listener) {
return this.beforeOrAfter(event, target, listener, 'after');
}
beforeOrAfter(event, target, listener, beforeOrAfter) {
let listeners = this._events[event] ?? [];
let i;
let index;
const add = beforeOrAfter === 'after' ? 1 : 0;
// Contract
if (typeof listener !== 'function') {
throw new TypeError('listener must be a function');
}
if (typeof target !== 'function') {
throw new TypeError('target must be a function');
}
// Listeners are not always an array
if (!Array.isArray(listeners)) {
;
this._events[event] = listeners = [listeners];
}
index = listeners.length;
for (i = listeners.length; i--;) {
if (listeners[i] === target) {
index = i + add;
break;
}
}
listeners.splice(index, 0, listener);
return this;
}
on(event, listener) {
return super.on(event, listener);
}
addListener(event, listener) {
return super.addListener(event, listener);
}
prependListener(event, listener) {
return super.prependListener(event, listener);
}
prependOnceListener(event, listener) {
return super.prependOnceListener(event, listener);
}
removeAllListeners(event) {
return super.removeAllListeners(event);
}
removeListener(event, listener) {
return super.removeListener(event, listener);
}
eventNames() {
return super.eventNames();
}
listeners(event) {
return super.listeners(event);
}
listenerCount(event) {
return super.listenerCount(event);
}
getMaxListeners() {
return super.getMaxListeners();
}
setMaxListeners(maxListeners) {
return super.setMaxListeners(maxListeners);
}
}
//# sourceMappingURL=asyncEventEmitter.js.map
{"version":3,"file":"asyncEventEmitter.js","sourceRoot":"","sources":["../../src/asyncEventEmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAQrC,KAAK,UAAU,WAAW,CACxB,OAAY,EACZ,KAAyE,EACzE,IAAa;IAEb,IAAI,KAAwB,CAAA;IAC5B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE;QAC9B,IAAI;YACF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnB,MAAM;gBACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;aACzB;iBAAM;gBACL,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;wBACjC,IAAI,KAAK,EAAE;4BACT,MAAM,CAAC,KAAK,CAAC,CAAA;yBACd;6BAAM;4BACL,OAAO,EAAE,CAAA;yBACV;oBACH,CAAC,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;aACH;SACF;QAAC,OAAO,CAAU,EAAE;YACnB,KAAK,GAAG,CAAU,CAAA;SACnB;KACF;IACD,IAAI,KAAK,EAAE;QACT,MAAM,KAAK,CAAA;KACZ;AACH,CAAC;AAED,MAAM,OAAO,iBAAsC,SAAQ,YAAY;IACrE,IAAI,CAAoB,KAAiB,EAAE,GAAG,IAAsB;QAClE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAA;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAA;QAEjB,IAAI,SAAS,GAAI,IAAY,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAElD,yBAAyB;QACzB,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;YACxD,QAAQ,GAAG,IAAI,CAAA;YACf,IAAI,GAAG,SAAS,CAAA;SACjB;QAED,sEAAsE;QACtE,IAAI,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,gBAAgB,EAAE;YACzD,IAAI,GAAG;gBACL,KAAK,EAAE,IAAI;gBACX,EAAE,EAAE,QAAQ;aACb,CAAA;YAED,QAAQ,GAAG,SAAS,CAAA;SACrB;QAED,uDAAuD;QACvD,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAC9D,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAEzE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,CAAoB,KAAiB,EAAE,QAAc;QACvD,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,IAAI,CAA2B,CAAA;QAE/B,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAA;SACnD;QAED,4BAA4B;QAC5B,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YACxB,CAAC,GAAG,UAAU,CAAI,EAAE,IAAS;gBAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAS,CAAC,CAAA;gBACrC,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YACxB,CAAC,CAAA;SACF;aAAM;YACL,CAAC,GAAG,UAAU,CAAI;gBAChB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAS,CAAC,CAAA;gBACrC,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACrB,CAAC,CAAA;SACF;QAED,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAS,CAAC,CAAA;QAEzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAoB,KAAiB,EAAE,QAAc;QACxD,IAAI,SAAS,GAAI,IAAY,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAElD,WAAW;QACX,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAA;SACnD;QAED,oCAAoC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC7B,CAAC;YAAC,IAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,CAAC,SAAS,CAAC,CAAA;SACxD;QAED,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE3B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAoB,KAAiB,EAAE,MAAY,EAAE,QAAc;QACvE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACpD,CAAC;IAED,KAAK,CAAoB,KAAiB,EAAE,MAAY,EAAE,QAAc;QACtE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC7D,CAAC;IAEO,aAAa,CACnB,KAAiB,EACjB,MAAY,EACZ,QAAc,EACd,aAAsB;QAEtB,IAAI,SAAS,GAAI,IAAY,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAClD,IAAI,CAAC,CAAA;QACL,IAAI,KAAK,CAAA;QACT,MAAM,GAAG,GAAG,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAE7C,WAAW;QACX,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAA;SACnD;QACD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;YAChC,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAA;SACjD;QAED,oCAAoC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC7B,CAAC;YAAC,IAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,CAAC,SAAS,CAAC,CAAA;SACxD;QAED,KAAK,GAAG,SAAS,CAAC,MAAM,CAAA;QAExB,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,GAAI;YAChC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;gBAC3B,KAAK,GAAG,CAAC,GAAG,GAAG,CAAA;gBACf,MAAK;aACN;SACF;QAED,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAA;QAEpC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,EAAE,CAAoB,KAAiB,EAAE,QAAc;QACrD,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAClC,CAAC;IAED,WAAW,CAAoB,KAAiB,EAAE,QAAc;QAC9D,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC3C,CAAC;IAED,eAAe,CAAoB,KAAiB,EAAE,QAAc;QAClE,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,mBAAmB,CAAoB,KAAiB,EAAE,QAAc;QACtE,OAAO,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACnD,CAAC;IAED,kBAAkB,CAAC,KAAwB;QACzC,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IAED,cAAc,CAAoB,KAAiB,EAAE,QAAc;QACjE,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC9C,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC,UAAU,EAAwB,CAAA;IACjD,CAAC;IAED,SAAS,CAAoB,KAAiB;QAC5C,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAW,CAAA;IACzC,CAAC;IAED,aAAa,CAAC,KAAuB;QACnC,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,eAAe;QACb,OAAO,KAAK,CAAC,eAAe,EAAE,CAAA;IAChC,CAAC;IAED,eAAe,CAAC,YAAoB;QAClC,OAAO,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;IAC5C,CAAC;CACF"}
/**
* Ported to Typescript from original implementation below:
* https://github.com/ahultgren/async-eventemitter -- MIT licensed
*
* Type Definitions based on work by: patarapolw <https://github.com/patarapolw> -- MIT licensed
* that was contributed to Definitely Typed below:
* https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/async-eventemitter
*/
import { EventEmitter } from 'events'
type AsyncListener<T, R> =
| ((data: T, callback?: (result?: R) => void) => Promise<R>)
| ((data: T, callback?: (result?: R) => void) => void)
export interface EventMap {
[event: string]: AsyncListener<any, any>
}
async function runInSeries(
context: any,
tasks: Array<(data: unknown, callback?: (error?: Error) => void) => void>,
data: unknown,
): Promise<void> {
let error: Error | undefined
for await (const task of tasks) {
try {
if (task.length < 2) {
//sync
task.call(context, data)
} else {
await new Promise<void>((resolve, reject) => {
task.call(context, data, (error) => {
if (error) {
reject(error)
} else {
resolve()
}
})
})
}
} catch (e: unknown) {
error = e as Error
}
}
if (error) {
throw error
}
}
export class AsyncEventEmitter<T extends EventMap> extends EventEmitter {
emit<E extends keyof T>(event: E & string, ...args: Parameters<T[E]>) {
let [data, callback] = args
const self = this
let listeners = (self as any)._events[event] ?? []
// Optional data argument
if (callback === undefined && typeof data === 'function') {
callback = data
data = undefined
}
// Special treatment of internal newListener and removeListener events
if (event === 'newListener' || event === 'removeListener') {
data = {
event: data,
fn: callback,
}
callback = undefined
}
// A single listener is just a function not an array...
listeners = Array.isArray(listeners) ? listeners : [listeners]
runInSeries(self, listeners.slice(), data).then(callback).catch(callback)
return self.listenerCount(event) > 0
}
once<E extends keyof T>(event: E & string, listener: T[E]): this {
const self = this
let g: (...args: any[]) => void
if (typeof listener !== 'function') {
throw new TypeError('listener must be a function')
}
// Hack to support set arity
if (listener.length >= 2) {
g = function (e: E, next: any) {
self.removeListener(event, g as T[E])
void listener(e, next)
}
} else {
g = function (e: E) {
self.removeListener(event, g as T[E])
void listener(e, g)
}
}
self.on(event, g as T[E])
return self
}
first<E extends keyof T>(event: E & string, listener: T[E]): this {
let listeners = (this as any)._events[event] ?? []
// Contract
if (typeof listener !== 'function') {
throw new TypeError('listener must be a function')
}
// Listeners are not always an array
if (!Array.isArray(listeners)) {
;(this as any)._events[event] = listeners = [listeners]
}
listeners.unshift(listener)
return this
}
before<E extends keyof T>(event: E & string, target: T[E], listener: T[E]): this {
return this.beforeOrAfter(event, target, listener)
}
after<E extends keyof T>(event: E & string, target: T[E], listener: T[E]): this {
return this.beforeOrAfter(event, target, listener, 'after')
}
private beforeOrAfter<E extends keyof T>(
event: E & string,
target: T[E],
listener: T[E],
beforeOrAfter?: string,
) {
let listeners = (this as any)._events[event] ?? []
let i
let index
const add = beforeOrAfter === 'after' ? 1 : 0
// Contract
if (typeof listener !== 'function') {
throw new TypeError('listener must be a function')
}
if (typeof target !== 'function') {
throw new TypeError('target must be a function')
}
// Listeners are not always an array
if (!Array.isArray(listeners)) {
;(this as any)._events[event] = listeners = [listeners]
}
index = listeners.length
for (i = listeners.length; i--; ) {
if (listeners[i] === target) {
index = i + add
break
}
}
listeners.splice(index, 0, listener)
return this
}
on<E extends keyof T>(event: E & string, listener: T[E]): this {
return super.on(event, listener)
}
addListener<E extends keyof T>(event: E & string, listener: T[E]): this {
return super.addListener(event, listener)
}
prependListener<E extends keyof T>(event: E & string, listener: T[E]): this {
return super.prependListener(event, listener)
}
prependOnceListener<E extends keyof T>(event: E & string, listener: T[E]): this {
return super.prependOnceListener(event, listener)
}
removeAllListeners(event?: keyof T & string): this {
return super.removeAllListeners(event)
}
removeListener<E extends keyof T>(event: E & string, listener: T[E]): this {
return super.removeListener(event, listener)
}
eventNames(): Array<keyof T & string> {
return super.eventNames() as keyof T & string[]
}
listeners<E extends keyof T>(event: E & string): Array<T[E]> {
return super.listeners(event) as T[E][]
}
listenerCount(event: keyof T & string): number {
return super.listenerCount(event)
}
getMaxListeners(): number {
return super.getMaxListeners()
}
setMaxListeners(maxListeners: number): this {
return super.setMaxListeners(maxListeners)
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet