This release adds support for very high chainId numbers exceeding MAX_SAFE_INTEGER (an example is the chain ID 34180983699157880 used for the ephemeral Yolov3 testnet preparing for the berlin hardfork, but high chain IDs might be used for things like private test networks and the like as well).
Function signatures for methods in address and signature are therefore expanded to allow for a BNLike input type (BN | PrefixedHexString | number | Buffer) for chain ID related parameters.
All function signatures are still taking in a number input for backwards-compatibility reasons. If you use one of the following functions to implement generic use cases in your library where the chain ID is not yet known it is recommended to updated to one of the other input types (with plain Buffer likely be the most future-proof). Note that on some functions this changes the return value as well.
account:toChecksumAddresss(hexAddress: string, eip1191ChainId?: number): string- ->
toChecksumAddress = function(hexAddress: string, eip1191ChainId?: BNLike): string
- ->
account:isValidChecksumAddress(hexAddress: string, eip1191ChainId?: number)- ->
isValidChecksumAddress(hexAddress: string, eip1191ChainId?: BNLike)
- ->
signature:ecsign(msgHash: Buffer, privateKey: Buffer, chainId?: number): ECDSASignature- ->
ecsign(msgHash: Buffer, privateKey: Buffer, chainId?: number): ECDSASignature(return value stays the same onnumberinput) - ->
ecsign(msgHash: Buffer, privateKey: Buffer, chainId: BNLike): ECDSASignatureBuffer(changed return value for other type inputs)
- ->
signature:ecrecover(msgHash: Buffer, v: number, r: Buffer, s: Buffer, chainId?: number): Buffer- ->
ecrecover(msgHash: Buffer, v: BNLike, r: Buffer, s: Buffer, chainId?: BNLike): Buffer
- ->
signature:toRpcSig(v: number, r: Buffer, s: Buffer, chainId?: number): string- ->
toRpcSig(v: BNLike, r: Buffer, s: Buffer, chainId?: BNLike): string
- ->
signature:isValidSignature(v: number, r: Buffer, s: Buffer, homesteadOrLater: boolean = true, chainId?: number)- ->
isValidSignature(v: BNLike, r: Buffer, s: Buffer, homesteadOrLater: boolean = true, chainId?: BNLike)
- ->