@ethereumjs/util
- AccountData
- DB
- DelBatch
- ECDSASignature
- EthersProvider
- EventMap
- GenesisState
- JsonRpcWithdrawal
- Kzg
- PutBatch
- TransformabletoBytes
- AccountBodyBytes
- AccountState
- AddressLike
- BatchDBOp
- BigIntLike
- BytesLike
- DBObject
- EncodingOpts
- NestedUint8Array
- PrefixedHexString
- StoragePair
- ToBytesInputTypes
- TypeOutputReturnType
- WithdrawalBytes
- WithdrawalData
- BIGINT_0
- BIGINT_1
- BIGINT_100
- BIGINT_128
- BIGINT_160
- BIGINT_2
- BIGINT_224
- BIGINT_255
- BIGINT_256
- BIGINT_27
- BIGINT_28
- BIGINT_2EXP160
- BIGINT_2EXP224
- BIGINT_2EXP256
- BIGINT_2EXP96
- BIGINT_3
- BIGINT_31
- BIGINT_32
- BIGINT_64
- BIGINT_7
- BIGINT_8
- BIGINT_96
- BIGINT_NEG1
- GWEI_TO_WEI
- KECCAK256_NULL
- KECCAK256_NULL_S
- KECCAK256_RLP
- KECCAK256_RLP_ARRAY
- KECCAK256_RLP_ARRAY_S
- KECCAK256_RLP_S
- MAX_INTEGER
- MAX_INTEGER_BIGINT
- MAX_UINT64
- MAX_WITHDRAWALS_PER_PAYLOAD
- RIPEMD160_ADDRESS_STRING
- RLP_EMPTY_STRING
- SECP256K1_ORDER
- SECP256K1_ORDER_DIV_2
- TWO_POW256
- kzg
- accountBodyFromSlim
- accountBodyToRLP
- accountBodyToSlim
- addHexPrefix
- arrayContainsArray
- bigInt64ToBytes
- bigIntMax
- bigIntMin
- bigIntToBytes
- bigIntToHex
- bigIntToUnpaddedBytes
- blobsToCommitments
- blobsToProofs
- bytesToBigInt
- bytesToBigInt64
- bytesToHex
- bytesToInt
- bytesToInt32
- bytesToUnprefixedHex
- bytesToUtf8
- calculateSigRecovery
- commitmentsToVersionedHashes
- compareBytes
- computeVersionedHash
- concatBytes
- ecrecover
- ecsign
- equalsBytes
- fetchFromProvider
- formatBigDecimal
- fromAscii
- fromRpcSig
- fromSigned
- fromUtf8
- generateAddress
- generateAddress2
- getBinarySize
- getBlobs
- getKeys
- getProvider
- hashPersonalMessage
- hexToBytes
- importPublic
- initKZG
- int32ToBytes
- intToBytes
- intToHex
- intToUnpaddedBytes
- isHexPrefixed
- isHexString
- isValidAddress
- isValidChecksumAddress
- isValidPrivate
- isValidPublic
- isValidSignature
- isZeroAddress
- padToEven
- parseGethGenesisState
- privateToAddress
- privateToPublic
- pubToAddress
- publicToAddress
- randomBytes
- setLengthLeft
- setLengthRight
- short
- stripHexPrefix
- toAscii
- toBytes
- toChecksumAddress
- toCompactSig
- toRpcSig
- toType
- toUnsigned
- unpadArray
- unpadBytes
- unpadHex
- unprefixedHexToBytes
- utf8ToBytes
- validateNoLeadingZeroes
- zeroAddress
- zeros
Ƭ AccountBodyBytes: [Uint8Array
, Uint8Array
, Uint8Array
, Uint8Array
]
packages/util/src/account.ts:29
Ƭ AccountState: [balance: PrefixedHexString, code: PrefixedHexString, storage: StoragePair[], nonce: PrefixedHexString]
packages/util/src/genesis.ts:8
Ƭ AddressLike: Address
| Uint8Array
| PrefixedHexString
A type that represents an input that can be converted to an Address.
Ƭ BatchDBOp<TKey
, TValue
>: PutBatch
<TKey
, TValue
> | DelBatch
<TKey
>
Name | Type |
---|---|
TKey |
extends Uint8Array | string | number = Uint8Array |
TValue |
extends Uint8Array | string | DBObject = Uint8Array |
Ƭ BigIntLike: bigint
| PrefixedHexString
| number
| Uint8Array
Ƭ BytesLike: Uint8Array
| number
[] | number
| bigint
| TransformabletoBytes
| PrefixedHexString
Ƭ DBObject: Object
▪ [key: string
]: string
| string
[] | number
Ƭ EncodingOpts: Object
Name | Type |
---|---|
keyEncoding? |
KeyEncoding |
valueEncoding? |
ValueEncoding |
Ƭ NestedUint8Array: (Uint8Array
| NestedUint8Array
)[]
Ƭ PrefixedHexString: string
Ƭ StoragePair: [key: PrefixedHexString, value: PrefixedHexString]
packages/util/src/genesis.ts:6
Ƭ ToBytesInputTypes: PrefixedHexString
| number
| bigint
| Uint8Array
| number
[] | TransformabletoBytes
| null
| undefined
packages/util/src/bytes.ts:267
Ƭ TypeOutputReturnType: Object
Name | Type |
---|---|
0 |
number |
1 |
bigint |
2 |
Uint8Array |
3 |
PrefixedHexString |
Ƭ WithdrawalBytes: [Uint8Array
, Uint8Array
, Uint8Array
, Uint8Array
]
packages/util/src/withdrawal.ts:30
Ƭ WithdrawalData: Object
Flexible input data type for EIP-4895 withdrawal data with amount in Gwei to match CL representation and for eventual ssz withdrawalsRoot
Name | Type |
---|---|
address |
AddressLike |
amount |
BigIntLike |
index |
BigIntLike |
validatorIndex |
BigIntLike |
packages/util/src/withdrawal.ts:12
• Const
BIGINT_0: bigint
packages/util/src/constants.ts:82
• Const
BIGINT_1: bigint
packages/util/src/constants.ts:83
• Const
BIGINT_100: bigint
packages/util/src/constants.ts:100
• Const
BIGINT_128: bigint
packages/util/src/constants.ts:95
• Const
BIGINT_160: bigint
packages/util/src/constants.ts:101
• Const
BIGINT_2: bigint
packages/util/src/constants.ts:84
• Const
BIGINT_224: bigint
packages/util/src/constants.ts:102
• Const
BIGINT_255: bigint
packages/util/src/constants.ts:96
• Const
BIGINT_256: bigint
packages/util/src/constants.ts:97
• Const
BIGINT_27: bigint
packages/util/src/constants.ts:89
• Const
BIGINT_28: bigint
packages/util/src/constants.ts:90
• Const
BIGINT_2EXP160: bigint
packages/util/src/constants.ts:104
• Const
BIGINT_2EXP224: bigint
packages/util/src/constants.ts:105
• Const
BIGINT_2EXP256: bigint
packages/util/src/constants.ts:107
• Const
BIGINT_2EXP96: bigint
packages/util/src/constants.ts:103
• Const
BIGINT_3: bigint
packages/util/src/constants.ts:85
• Const
BIGINT_31: bigint
packages/util/src/constants.ts:91
• Const
BIGINT_32: bigint
packages/util/src/constants.ts:92
• Const
BIGINT_64: bigint
packages/util/src/constants.ts:93
• Const
BIGINT_7: bigint
packages/util/src/constants.ts:86
• Const
BIGINT_8: bigint
packages/util/src/constants.ts:87
• Const
BIGINT_96: bigint
packages/util/src/constants.ts:99
• Const
BIGINT_NEG1: bigint
BigInt constants
packages/util/src/constants.ts:80
• Const
GWEI_TO_WEI: bigint
Easy conversion from Gwei to wei
• Const
KECCAK256_NULL: Uint8Array
Keccak-256 hash of null
packages/util/src/constants.ts:44
• Const
KECCAK256_NULL_S: "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"
Keccak-256 hash of null
packages/util/src/constants.ts:39
• Const
KECCAK256_RLP: Uint8Array
Keccak-256 hash of the RLP of null
packages/util/src/constants.ts:65
• Const
KECCAK256_RLP_ARRAY: Uint8Array
Keccak-256 of an RLP of an empty array
packages/util/src/constants.ts:55
• Const
KECCAK256_RLP_ARRAY_S: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
Keccak-256 of an RLP of an empty array
packages/util/src/constants.ts:49
• Const
KECCAK256_RLP_S: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
Keccak-256 hash of the RLP of null
packages/util/src/constants.ts:60
• Const
MAX_INTEGER: bigint
The max integer that the evm can handle (2^256-1)
packages/util/src/constants.ts:13
• Const
MAX_INTEGER_BIGINT: bigint
The max integer that the evm can handle (2^256-1) as a bigint 2^256-1 equals to 340282366920938463463374607431768211455 We use literal value instead of calculated value for compatibility issue.
packages/util/src/constants.ts:22
• Const
MAX_UINT64: bigint
2^64-1
packages/util/src/constants.ts:8
• Const
MAX_WITHDRAWALS_PER_PAYLOAD: 16
packages/util/src/constants.ts:72
• Const
RIPEMD160_ADDRESS_STRING: "0000000000000000000000000000000000000003"
packages/util/src/constants.ts:74
• Const
RLP_EMPTY_STRING: Uint8Array
RLP encoded empty string
packages/util/src/constants.ts:70
• Const
SECP256K1_ORDER: bigint
= secp256k1.CURVE.n
packages/util/src/constants.ts:26
• Const
SECP256K1_ORDER_DIV_2: bigint
packages/util/src/constants.ts:27
• Const
TWO_POW256: bigint
2^256
packages/util/src/constants.ts:32
• kzg: Kzg
▸ accountBodyFromSlim(body
): Uint8Array
[]
Name | Type |
---|---|
body |
AccountBodyBytes |
Uint8Array
[]
packages/util/src/account.ts:357
▸ accountBodyToRLP(body
, couldBeSlim?
): Uint8Array
Converts a slim account (per snap protocol spec) to the RLP encoded version of the account
Name | Type | Default value | Description |
---|---|---|---|
body |
AccountBodyBytes |
undefined |
Array of 4 Uint8Array-like items to represent the account |
couldBeSlim |
boolean |
true |
- |
Uint8Array
RLP encoded version of the account
packages/util/src/account.ts:383
▸ accountBodyToSlim(body
): Uint8Array
[]
Name | Type |
---|---|
body |
AccountBodyBytes |
Uint8Array
[]
packages/util/src/account.ts:368
▸ addHexPrefix(str
): string
Adds "0x" to a given string
if it does not already start with "0x".
Name | Type |
---|---|
str |
string |
string
packages/util/src/bytes.ts:347
▸ arrayContainsArray(superset
, subset
, some?
): boolean
Returns TRUE if the first specified array contains all elements from the second one. FALSE otherwise.
Name | Type |
---|---|
superset |
unknown [] |
subset |
unknown [] |
some? |
boolean |
boolean
packages/util/src/internal.ts:91
▸ bigInt64ToBytes(value
, littleEndian?
): Uint8Array
Notice
Convert a 64-bit bigint to a Uint8Array.
Name | Type | Default value | Description |
---|---|---|---|
value |
bigint |
undefined |
The 64-bit bigint to convert. |
littleEndian |
boolean |
false |
True for little-endian, undefined or false for big-endian. |
Uint8Array
A Uint8Array of length 8 containing the bigint.
packages/util/src/bytes.ts:529
▸ bigIntMax(...args
): bigint
Calculates max bigint from an array of bigints
Name | Type | Description |
---|---|---|
...args |
bigint [] |
array of bigints |
bigint
packages/util/src/bytes.ts:409
▸ bigIntMin(...args
): bigint
Calculates min BigInt from an array of BigInts
Name | Type | Description |
---|---|---|
...args |
bigint [] |
array of bigints |
bigint
packages/util/src/bytes.ts:415
▸ bigIntToBytes(num
, littleEndian?
): Uint8Array
Converts a bigint to a Uint8Array *
Name | Type | Default value | Description |
---|---|---|---|
num |
bigint |
undefined |
the bigint to convert |
littleEndian |
boolean |
false |
- |
Uint8Array
packages/util/src/bytes.ts:156
▸ bigIntToHex(num
): string
Converts a bigint to a 0x
prefixed hex string
Name | Type | Description |
---|---|---|
num |
bigint |
the bigint to convert |
string
packages/util/src/bytes.ts:401
▸ bigIntToUnpaddedBytes(value
): Uint8Array
Convert value from bigint to an unpadded Uint8Array (useful for RLP transport)
Name | Type | Description |
---|---|---|
value |
bigint |
the bigint to convert |
Uint8Array
packages/util/src/bytes.ts:423
▸ blobsToCommitments(blobs
): Uint8Array
[]
Name | Type |
---|---|
blobs |
Uint8Array [] |
Uint8Array
[]
▸ blobsToProofs(blobs
, commitments
): Uint8Array
[]
Name | Type |
---|---|
blobs |
Uint8Array [] |
commitments |
Uint8Array [] |
Uint8Array
[]
▸ bytesToBigInt(bytes
, littleEndian?
): bigint
Converts a Uint8Array to a bigint
Name | Type | Default value | Description |
---|---|---|---|
bytes |
Uint8Array |
undefined |
the bytes to convert |
littleEndian |
boolean |
false |
- |
bigint
▸ bytesToBigInt64(bytes
, littleEndian?
): bigint
Notice
Convert a Uint8Array to a 64-bit bigint
Name | Type | Default value | Description |
---|---|---|---|
bytes |
Uint8Array |
undefined |
The input Uint8Array from which to read the 64-bit bigint. |
littleEndian |
boolean |
false |
True for little-endian, undefined or false for big-endian. |
bigint
The 64-bit bigint read from the input Uint8Array.
packages/util/src/bytes.ts:502
▸ bytesToHex(bytes
): string
Name | Type |
---|---|
bytes |
Uint8Array |
string
▸ bytesToInt(bytes
): number
Converts a Uint8Array to a number.
Throws
If the input number exceeds 53 bits.
Name | Type | Description |
---|---|---|
bytes |
Uint8Array |
the bytes to convert |
number
packages/util/src/bytes.ts:104
▸ bytesToInt32(bytes
, littleEndian?
): number
Notice
Convert a Uint8Array to a 32-bit integer
Name | Type | Default value | Description |
---|---|---|---|
bytes |
Uint8Array |
undefined |
The input Uint8Array from which to read the 32-bit integer. |
littleEndian |
boolean |
false |
True for little-endian, undefined or false for big-endian. |
number
The 32-bit integer read from the input Uint8Array.
packages/util/src/bytes.ts:488
▸ bytesToUnprefixedHex(bytes
): string
Example
bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'
Name | Type |
---|---|
bytes |
Uint8Array |
string
node_modules/@noble/hashes/utils.d.ts:11
▸ bytesToUtf8(data
): string
Name | Type |
---|---|
data |
Uint8Array |
string
node_modules/ethereum-cryptography/utils.d.ts:5
▸ calculateSigRecovery(v
, chainId?
): bigint
Name | Type |
---|---|
v |
bigint |
chainId? |
bigint |
bigint
packages/util/src/signature.ts:53
▸ commitmentsToVersionedHashes(commitments
): Uint8Array
[]
Generate an array of versioned hashes from corresponding kzg commitments
Name | Type | Description |
---|---|---|
commitments |
Uint8Array [] |
array of kzg commitments |
Uint8Array
[]
array of versioned hashes Note: assumes KZG commitments (version 1 version hashes)
▸ compareBytes(value1
, value2
): number
Compares two Uint8Arrays and returns a number indicating their order in a sorted array.
Name | Type | Description |
---|---|---|
value1 |
Uint8Array |
The first Uint8Array to compare. |
value2 |
Uint8Array |
The second Uint8Array to compare. |
number
A positive number if value1 is larger than value2, A negative number if value1 is smaller than value2, or 0 if value1 and value2 are equal.
packages/util/src/bytes.ts:446
▸ computeVersionedHash(commitment
, blobCommitmentVersion
): Uint8Array
Converts a vector commitment for a given data blob to its versioned hash. For 4844, this version number will be 0x01 for KZG vector commitments but could be different if future vector commitment types are introduced
Name | Type | Description |
---|---|---|
commitment |
Uint8Array |
a vector commitment to a blob |
blobCommitmentVersion |
number |
the version number corresponding to the type of vector commitment |
Uint8Array
a versioned hash corresponding to a given blob vector commitment
▸ concatBytes(...arrays
): Uint8Array
This mirrors the functionality of the ethereum-cryptography
export except
it skips the check to validate that every element of arrays
is indead a uint8Array
Can give small performance gains on large arrays
Name | Type | Description |
---|---|---|
...arrays |
Uint8Array [] |
an array of Uint8Arrays |
Uint8Array
one Uint8Array with all the elements of the original set
works like Buffer.concat
packages/util/src/bytes.ts:470
▸ ecrecover(msgHash
, v
, r
, s
, chainId?
): Uint8Array
ECDSA public key recovery from signature.
NOTE: Accepts v === 0 | v === 1
for EIP1559 transactions
Name | Type |
---|---|
msgHash |
Uint8Array |
v |
bigint |
r |
Uint8Array |
s |
Uint8Array |
chainId? |
bigint |
Uint8Array
Recovered public key
packages/util/src/signature.ts:71
▸ ecsign(msgHash
, privateKey
, chainId?
): ECDSASignature
Returns the ECDSA signature of a message hash.
If 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
Name | Type |
---|---|
msgHash |
Uint8Array |
privateKey |
Uint8Array |
chainId? |
bigint |
packages/util/src/signature.ts:35
▸ equalsBytes(a
, b
): boolean
Name | Type |
---|---|
a |
Uint8Array |
b |
Uint8Array |
boolean
node_modules/ethereum-cryptography/utils.d.ts:7
▸ fetchFromProvider(url
, params
): Promise
<any
>
Makes a simple RPC call to a remote Ethereum JSON-RPC provider and passes through the response. No parameter or response validation is done.
Example
const provider = 'https://mainnet.infura.io/v3/...'
const params = {
method: 'eth_getBlockByNumber',
params: ['latest', false],
}
const block = await fetchFromProvider(provider, params)
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `url` | `string` | the URL for the JSON RPC provider |
| `params` | `rpcParams` | the parameters for the JSON-RPC method - refer to https://ethereum.org/en/developers/docs/apis/json-rpc/ for details on RPC methods |
#### Returns
`Promise`<`any`\>
the `result` field from the JSON-RPC response
#### Defined in
[packages/util/src/provider.ts:23](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/provider.ts#L23)
___
### formatBigDecimal
▸ **formatBigDecimal**(`numerator`, `denominator`, `maxDecimalFactor`): `string`
#### Parameters
| Name | Type |
| :------ | :------ |
| `numerator` | `bigint` |
| `denominator` | `bigint` |
| `maxDecimalFactor` | `bigint` |
#### Returns
`string`
#### Defined in
[packages/util/src/units.ts:5](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/units.ts#L5)
___
### fromAscii
▸ **fromAscii**(`stringValue`): `string`
Should be called to get hex representation (prefixed by 0x) of ascii string
#### Parameters
| Name | Type |
| :------ | :------ |
| `stringValue` | `string` |
#### Returns
`string`
hex representation of input string
#### Defined in
[packages/util/src/internal.ts:152](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/internal.ts#L152)
___
### fromRpcSig
▸ **fromRpcSig**(`sig`): [`ECDSASignature`](interfaces/ECDSASignature.md)
Convert signature format of the `eth_sign` RPC method to signature parameters
NOTE: For an extracted `v` value < 27 (see Geth bug https://github.com/ethereum/go-ethereum/issues/2053)
`v + 27` is returned for the `v` value
NOTE: After EIP1559, `v` could be `0` or `1` but this function assumes
it's a signed message (EIP-191 or EIP-712) adding `27` at the end. Remove if needed.
#### Parameters
| Name | Type |
| :------ | :------ |
| `sig` | `string` |
#### Returns
[`ECDSASignature`](interfaces/ECDSASignature.md)
#### Defined in
[packages/util/src/signature.ts:142](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/signature.ts#L142)
___
### fromSigned
▸ **fromSigned**(`num`): `bigint`
Interprets a `Uint8Array` as a signed integer and returns a `BigInt`. Assumes 256-bit numbers.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `num` | `Uint8Array` | Signed integer value |
#### Returns
`bigint`
#### Defined in
[packages/util/src/bytes.ts:329](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/bytes.ts#L329)
___
### fromUtf8
▸ **fromUtf8**(`stringValue`): `string`
Should be called to get hex representation (prefixed by 0x) of utf8 string.
Strips leading and trailing 0's.
#### Parameters
| Name | Type |
| :------ | :------ |
| `stringValue` | `string` |
#### Returns
`string`
hex representation of input string
#### Defined in
[packages/util/src/internal.ts:139](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/internal.ts#L139)
___
### generateAddress
▸ **generateAddress**(`from`, `nonce`): `Uint8Array`
Generates an address of a newly created contract.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `from` | `Uint8Array` | The address which is creating this new address |
| `nonce` | `Uint8Array` | The nonce of the from account |
#### Returns
`Uint8Array`
#### Defined in
[packages/util/src/account.ts:207](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/account.ts#L207)
___
### generateAddress2
▸ **generateAddress2**(`from`, `salt`, `initCode`): `Uint8Array`
Generates an address for a contract created using CREATE2.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `from` | `Uint8Array` | The address which is creating this new address |
| `salt` | `Uint8Array` | A salt |
| `initCode` | `Uint8Array` | The init code of the contract being created |
#### Returns
`Uint8Array`
#### Defined in
[packages/util/src/account.ts:227](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/account.ts#L227)
___
### getBinarySize
▸ **getBinarySize**(`str`): `number`
Get the binary size of a string
#### Parameters
| Name | Type |
| :------ | :------ |
| `str` | `string` |
#### Returns
`number`
the number of bytes contained within the string
#### Defined in
[packages/util/src/internal.ts:75](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/internal.ts#L75)
___
### getBlobs
▸ **getBlobs**(`input`): `Uint8Array`[]
#### Parameters
| Name | Type |
| :------ | :------ |
| `input` | `string` |
#### Returns
`Uint8Array`[]
#### Defined in
[packages/util/src/blobs.ts:34](https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/blobs.ts#L34)
___
### getKeys
▸ **getKeys**(`params`, `key`, `allowEmpty?`): `string`[]
Returns the keys from an array of objects.
**`Example`**
```js
getKeys([{a: '1', b: '2'}, {a: '3', b: '4'}], 'a') => ['1', '3']
@param params @param key @param allowEmpty @returns output just a simple array of output keys
Name | Type |
---|---|
params |
Record <string , string >[] |
key |
string |
allowEmpty? |
boolean |
string
[]
packages/util/src/internal.ts:174
▸ getProvider(provider
): string
Name | Type | Description |
---|---|---|
provider |
string | EthersProvider |
a URL string or EthersProvider |
string
the extracted URL string for the JSON-RPC Provider
packages/util/src/provider.ts:63
▸ hashPersonalMessage(message
): Uint8Array
Returns the keccak-256 hash of message
, prefixed with the header used by the eth_sign
RPC call.
The output of this function can be fed into ecsign
to produce the same signature as the eth_sign
call for a given message
, or fed to ecrecover
along with a signature to recover the public key
used to produce the signature.
Name | Type |
---|---|
message |
Uint8Array |
Uint8Array
packages/util/src/signature.ts:219
▸ hexToBytes(hex
): Uint8Array
Name | Type |
---|---|
hex |
string |
Uint8Array
packages/util/src/bytes.ts:110
▸ importPublic(publicKey
): Uint8Array
Converts a public key to the Ethereum format.
Name | Type |
---|---|
publicKey |
Uint8Array |
Uint8Array
packages/util/src/account.ts:326
▸ initKZG(kzgLib
, trustedSetupPath?
): void
Name | Type | Description |
---|---|---|
kzgLib |
Kzg |
a KZG implementation (defaults to c-kzg) |
trustedSetupPath? |
string |
the full path (e.g. "/home/linux/devnet4.txt") to a kzg trusted setup text file |
void
▸ int32ToBytes(value
, littleEndian?
): Uint8Array
Notice
Convert a 32-bit integer to a Uint8Array.
Name | Type | Default value | Description |
---|---|---|---|
value |
number |
undefined |
The 32-bit integer to convert. |
littleEndian |
boolean |
false |
True for little-endian, undefined or false for big-endian. |
Uint8Array
A Uint8Array of length 4 containing the integer.
packages/util/src/bytes.ts:516
▸ intToBytes(i
): Uint8Array
Converts an number to a Uint8Array
Name | Type |
---|---|
i |
number |
Uint8Array
packages/util/src/bytes.ts:146
▸ intToHex(i
): string
Converts a number into a PrefixedHexString
Name | Type |
---|---|
i |
number |
string
packages/util/src/bytes.ts:134
▸ intToUnpaddedBytes(value
): Uint8Array
Convert value from number to an unpadded Uint8Array (useful for RLP transport)
Name | Type | Description |
---|---|---|
value |
number |
the bigint to convert |
Uint8Array
packages/util/src/bytes.ts:433
▸ isHexPrefixed(str
): boolean
Returns a Boolean
on whether or not the a String
starts with '0x'
Throws
if the str input is not a string
Name | Type | Description |
---|---|---|
str |
string |
the string input value |
boolean
a boolean if it is or is not hex prefixed
packages/util/src/internal.ts:33
▸ isHexString(value
, length?
): boolean
Is the string a hex string.
Name | Type |
---|---|
value |
string |
length? |
number |
boolean
output the string is a hex string
packages/util/src/internal.ts:206
▸ isValidAddress(hexAddress
): boolean
Checks if the address is a valid. Accepts checksummed addresses too.
Name | Type |
---|---|
hexAddress |
string |
boolean
packages/util/src/account.ts:140
▸ isValidChecksumAddress(hexAddress
, eip1191ChainId?
): boolean
Checks if the address is a valid checksummed address.
See toChecksumAddress' documentation for details about the eip1191ChainId parameter.
Name | Type |
---|---|
hexAddress |
string |
eip1191ChainId? |
BigIntLike |
boolean
packages/util/src/account.ts:195
▸ isValidPrivate(privateKey
): boolean
Checks if the private key satisfies the rules of the curve secp256k1.
Name | Type |
---|---|
privateKey |
Uint8Array |
boolean
packages/util/src/account.ts:251
▸ isValidPublic(publicKey
, sanitize?
): boolean
Checks if the public key satisfies the rules of the curve secp256k1 and the requirements of Ethereum.
Name | Type | Default value | Description |
---|---|---|---|
publicKey |
Uint8Array |
undefined |
The two points of an uncompressed key, unless sanitize is enabled |
sanitize |
boolean |
false |
Accept public keys in other formats |
boolean
packages/util/src/account.ts:261
▸ isValidSignature(v
, r
, s
, homesteadOrLater?
, chainId?
): boolean
Validate a ECDSA signature.
NOTE: Accepts v === 0 | v === 1
for EIP1559 transactions
Name | Type | Default value | Description |
---|---|---|---|
v |
bigint |
undefined |
- |
r |
Uint8Array |
undefined |
- |
s |
Uint8Array |
undefined |
- |
homesteadOrLater |
boolean |
true |
Indicates whether this is being used on either the homestead hardfork or a later one |
chainId? |
bigint |
undefined |
- |
boolean
packages/util/src/signature.ts:179
▸ isZeroAddress(hexAddress
): boolean
Checks if a given address is the zero address.
Name | Type |
---|---|
hexAddress |
string |
boolean
packages/util/src/account.ts:346
▸ padToEven(value
): string
Pads a String
to have an even length
Name | Type |
---|---|
value |
string |
string
output
packages/util/src/internal.ts:58
▸ parseGethGenesisState(json
): GenesisState
Parses the geth genesis state into Blockchain GenesisState
Name | Type | Description |
---|---|---|
json |
any |
representing the alloc key in a Geth genesis file |
packages/util/src/genesis.ts:47
▸ privateToAddress(privateKey
): Uint8Array
Returns the ethereum address of a given private key.
Name | Type | Description |
---|---|---|
privateKey |
Uint8Array |
A private key must be 256 bits wide |
Uint8Array
packages/util/src/account.ts:319
▸ privateToPublic(privateKey
): Uint8Array
Returns the ethereum public key of a given private key.
Name | Type | Description |
---|---|---|
privateKey |
Uint8Array |
A private key must be 256 bits wide |
Uint8Array
packages/util/src/account.ts:309
▸ pubToAddress(pubKey
, sanitize?
): Uint8Array
Returns the ethereum address of a given public key. Accepts "Ethereum public keys" and SEC1 encoded keys.
Name | Type | Default value | Description |
---|---|---|---|
pubKey |
Uint8Array |
undefined |
The two points of an uncompressed key, unless sanitize is enabled |
sanitize |
boolean |
false |
Accept public keys in other formats |
Uint8Array
packages/util/src/account.ts:292
▸ publicToAddress(pubKey
, sanitize?
): Uint8Array
Returns the ethereum address of a given public key. Accepts "Ethereum public keys" and SEC1 encoded keys.
Name | Type | Default value | Description |
---|---|---|---|
pubKey |
Uint8Array |
undefined |
The two points of an uncompressed key, unless sanitize is enabled |
sanitize |
boolean |
false |
Accept public keys in other formats |
Uint8Array
packages/util/src/account.ts:292
▸ randomBytes(length
): Uint8Array
Generates a Uint8Array of random bytes of specified length.
Name | Type | Description |
---|---|---|
length |
number |
The length of the Uint8Array. |
Uint8Array
A Uint8Array of random bytes of specified length.
packages/util/src/bytes.ts:458
▸ setLengthLeft(msg
, length
): Uint8Array
Left Pads a Uint8Array
with leading zeros till it has length
bytes.
Or it truncates the beginning if it exceeds.
Name | Type | Description |
---|---|---|
msg |
Uint8Array |
the value to pad |
length |
number |
the number of bytes the output should be |
Uint8Array
packages/util/src/bytes.ts:201
▸ setLengthRight(msg
, length
): Uint8Array
Right Pads a Uint8Array
with trailing zeros till it has length
bytes.
it truncates the end if it exceeds.
Name | Type | Description |
---|---|---|
msg |
Uint8Array |
the value to pad |
length |
number |
the number of bytes the output should be |
Uint8Array
packages/util/src/bytes.ts:213
▸ short(bytes
, maxLength?
): string
Shortens a string or Uint8Array's hex string representation to maxLength (default 50).
Examples:
Input: '657468657265756d000000000000000000000000000000000000000000000000' Output: '657468657265756d0000000000000000000000000000000000…'
Name | Type | Default value |
---|---|---|
bytes |
string | Uint8Array |
undefined |
maxLength |
number |
50 |
string
packages/util/src/bytes.ts:366
▸ stripHexPrefix(str
): string
Removes '0x' from a given String
if present
Name | Type | Description |
---|---|---|
str |
string |
the string value |
string
the string without 0x prefix
packages/util/src/internal.ts:46
▸ toAscii(hex
): string
Should be called to get ascii from its hex representation
Name | Type |
---|---|
hex |
string |
string
ascii string representation of hex value
packages/util/src/internal.ts:116
▸ toBytes(v
): Uint8Array
Attempts to turn a value into a Uint8Array
.
Inputs supported: Buffer
, Uint8Array
, String
(hex-prefixed), Number
, null/undefined, BigInt
and other objects
with a toArray()
or toBytes()
method.
Name | Type | Description |
---|---|---|
v |
ToBytesInputTypes |
the value |
Uint8Array
packages/util/src/bytes.ts:285
▸ toChecksumAddress(hexAddress
, eip1191ChainId?
): string
Returns a checksummed address.
If an eip1191ChainId is provided, the chainId will be included in the checksum calculation. This has the effect of checksummed addresses for one chain having invalid checksums for others. For more details see EIP-1191.
WARNING: Checksums with and without the chainId will differ and the EIP-1191 checksum is not backwards compatible to the original widely adopted checksum format standard introduced in EIP-55, so this will break in existing applications. Usage of this EIP is therefore discouraged unless you have a very targeted use case.
Name | Type |
---|---|
hexAddress |
string |
eip1191ChainId? |
BigIntLike |
string
packages/util/src/account.ts:162
▸ toCompactSig(v
, r
, s
, chainId?
): string
Convert signature parameters into the format of Compact Signature Representation (EIP-2098).
NOTE: Accepts v === 0 | v === 1
for EIP1559 transactions
Name | Type |
---|---|
v |
bigint |
r |
Uint8Array |
s |
Uint8Array |
chainId? |
bigint |
string
Signature
packages/util/src/signature.ts:115
▸ toRpcSig(v
, r
, s
, chainId?
): string
Convert signature parameters into the format of eth_sign
RPC method.
NOTE: Accepts v === 0 | v === 1
for EIP1559 transactions
Name | Type |
---|---|
v |
bigint |
r |
Uint8Array |
s |
Uint8Array |
chainId? |
bigint |
string
Signature
packages/util/src/signature.ts:94
▸ toType<T
>(input
, outputType
): null
Convert an input to a specified type. Input of null/undefined returns null/undefined regardless of the output type.
Name | Type |
---|---|
T |
extends TypeOutput |
Name | Type | Description |
---|---|---|
input |
null |
value to convert |
outputType |
T |
type to output |
null
▸ toType<T
>(input
, outputType
): undefined
Name | Type |
---|---|
T |
extends TypeOutput |
Name | Type |
---|---|
input |
undefined |
outputType |
T |
undefined
▸ toType<T
>(input
, outputType
): TypeOutputReturnType
[T
]
Name | Type |
---|---|
T |
extends TypeOutput |
Name | Type |
---|---|
input |
ToBytesInputTypes |
outputType |
T |
▸ toUnsigned(num
): Uint8Array
Converts a BigInt
to an unsigned integer and returns it as a Uint8Array
. Assumes 256-bit numbers.
Name | Type |
---|---|
num |
bigint |
Uint8Array
packages/util/src/bytes.ts:338
▸ unpadArray(a
): number
[]
Trims leading zeros from an Array
(of numbers).
Name | Type |
---|---|
a |
number [] |
number
[]
packages/util/src/bytes.ts:251
▸ unpadBytes(a
): Uint8Array
Trims leading zeros from a Uint8Array
.
Name | Type |
---|---|
a |
Uint8Array |
Uint8Array
packages/util/src/bytes.ts:241
▸ unpadHex(a
): string
Trims leading zeros from a PrefixedHexString
.
Name | Type |
---|---|
a |
string |
string
packages/util/src/bytes.ts:261
▸ unprefixedHexToBytes(inp
): Uint8Array
Deprecated
Name | Type |
---|---|
inp |
string |
Uint8Array
▸ utf8ToBytes(str
): Uint8Array
Example
utf8ToBytes('abc') // new Uint8Array([97, 98, 99])
Name | Type |
---|---|
str |
string |
Uint8Array
node_modules/@noble/hashes/utils.d.ts:21
▸ validateNoLeadingZeroes(values
): void
Checks provided Uint8Array for leading zeroes and throws if found.
Examples:
Valid values: 0x1, 0x, 0x01, 0x1234 Invalid values: 0x0, 0x00, 0x001, 0x0001
Note: This method is useful for validating that RLP encoded integers comply with the rule that all integer values encoded to RLP must be in the most compact form and contain no leading zero bytes
Throws
if any provided value is found to have leading zero bytes
Name | Type | Description |
---|---|---|
values |
Object |
An object containing string keys and Uint8Array values |
void
packages/util/src/bytes.ts:388
▸ zeroAddress(): string
Returns the zero address.
string
packages/util/src/account.ts:337
▸ zeros(bytes
): Uint8Array
Returns a Uint8Array filled with 0s.
Name | Type | Description |
---|---|---|
bytes |
number |
the number of bytes of the Uint8Array |
Uint8Array