(
value: number,
{ signed, size = 256 }: { signed: boolean; size?: number | undefined },
)
| 335 | type EncodeNumberErrorType = NumberToHexErrorType | ErrorType |
| 336 | |
| 337 | function encodeNumber( |
| 338 | value: number, |
| 339 | { signed, size = 256 }: { signed: boolean; size?: number | undefined }, |
| 340 | ): PreparedParam { |
| 341 | if (typeof size === 'number') { |
| 342 | const max = 2n ** (BigInt(size) - (signed ? 1n : 0n)) - 1n |
| 343 | const min = signed ? -max - 1n : 0n |
| 344 | if (value > max || value < min) |
| 345 | throw new IntegerOutOfRangeError({ |
| 346 | max: max.toString(), |
| 347 | min: min.toString(), |
| 348 | signed, |
| 349 | size: size / 8, |
| 350 | value: value.toString(), |
| 351 | }) |
| 352 | } |
| 353 | return { |
| 354 | dynamic: false, |
| 355 | encoded: numberToHex(value, { |
| 356 | size: 32, |
| 357 | signed, |
| 358 | }), |
| 359 | } |
| 360 | } |
| 361 | |
| 362 | type EncodeStringErrorType = |
| 363 | | ConcatHexErrorType |
no test coverage detected