虽然有许多用于与以太坊交互的高级api,如Contracts和Providers,但许多低级访问需要通过字节进行操作。
其中许多操作是内部使用的,但各种函数和方法的输出可以用规范化二进制数据表示。
Bytes是一个Array或TypedArray对象, 每个值都在有效字节范围内(例如0到255之间),或者是一个具有length
属性的对象,每个索引的属性都在有效字节范围内。
BytesLike可以是Bytes或DataHexString。
DataHexstring与HexString是相同的,除了它有偶数个nibbles,因此二进制数据作为字符串是有效的。
Hexstring是一个字符串,它有一个0x前缀,后面跟着nibbles number类型(例如,不区分大小写的十六进制字符,0-9
和a-f
)。
- r and s --- The x co-ordinate of r and the s value of the signature
- v --- The parity of the y co-ordinate of r
- _vs --- The compact representation of the s and v
- recoveryParam --- The normalized (i.e. 0 or 1) value of v
Raw Signature inherits string<DataHexString<65>>
原始签名(Raw Signature)是一种常见的签名格式,其中r, s和v被连接成一个65字节(130 nibble)的DataHexString。
SignatureLike类似于一个Signature,除了多余的属性可以被省略或者它也可以是一个 Raw Signature。
例如,如果指定了_vs,则s和v可以省略。同样,如果提供了recoveryParam, 则可以省略v(在这种情况下,可以计算出缺失的值)。
当且仅当object是Bytes或DataHexString时返回true。
当且仅当object是一个有效的十六进制字符串时返回true。 如果指定了length并且object 不是一个有效的长度字节的DataHexString,则抛出一个InvalidArgument错误。
将DataHexStringOrArrayish转换为Uint8Array。
将hexstringOrArrayish转换为DataHexString。
将arrayOfBytesLike中的所有BytesLike连接到一个单独的Uint8Array中。
返回一个无前导零aBtyesLike字节的Uint8Array
Returns a Uint8Array of the data in aBytesLike with 0
bytes prepended to length bytes long.
如果aBytesLike的长度已经超过长度字节,则会抛出InvalidArgument错误。
将arrayOfBytesLike中的所有BytesLike连接成一个单一的DataHexString。
返回aBytesLike的长度(以字节为单位)。
返回一个aBytesLike切片的DataHexString表示,从offset(以字节为单位)到endOffset(以字节为单位)。 如果省略了endOffset,则使用aBytesLike的长度。
返回aBytesLike的HexString表示形式,去掉所有前导零。
返回被填充到length字节的aBytesLike的DataHexString表示。
如果aBytesLike的长度已经超过length字节,则会抛出InvalidArgument错误。
返回aSignaturelike的原始格式,它是65字节(130个nibbles)长,连接签名的r, s和(标准化后))v。
返回aSignaturelike的完整扩展格式或原始格式DataHexString,将自动计算所有缺失的属性。
返回一个新的Uint8Array 长度为length的随机字节。
返回一个使用Fisher-Yates Shuffle打乱后的数组副本。