UNPKG

ox

Version:

Ethereum Standard Library

92 lines (76 loc) 2.07 kB
import { attest } from '@ark/attest' import { Hex, Signature } from 'ox' import { test } from 'vp/test' const r = '0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf' const s = '0x4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8' test('default', () => { const signature = Signature.from({ r, s, yParity: 1, }) attest(signature).type.toString.snap(`{ readonly r: "0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf" readonly s: "0x4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8" readonly yParity: 1 }`) }) test('behavior: unrecovered', () => { const signature = Signature.from({ r, s, }) attest(signature).type.toString.snap(`{ readonly r: "0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf" readonly s: "0x4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8" }`) }) test('behavior: legacy', () => { const signature = Signature.from({ r, s, v: 27, }) attest(signature).type.toString.snap( '{ r: `0x${string}`; s: `0x${string}`; yParity: number }', ) }) test('behavior: rpc', () => { const signature = Signature.from({ r, s, yParity: Hex.fromNumber(1), }) attest(signature).type.toString.snap( '{ r: `0x${string}`; s: `0x${string}`; yParity: number }', ) }) test('behavior: rpc legacy', () => { const signature = Signature.from({ r, s, v: Hex.fromNumber(27), }) attest(signature).type.toString.snap( '{ r: `0x${string}`; s: `0x${string}`; yParity: number }', ) }) test('behavior: widened', () => { const signature = Signature.from({ r, s, yParity: 1, } as Signature.Signature) attest(signature).type.toString.snap( '{ r: `0x${string}`; s: `0x${string}`; yParity: number }', ) }) test('behavior: widened, unrecovered', () => { const signature = Signature.from({ r, s, } as Signature.Signature<false>) attest(signature).type.toString.snap( '{ r: `0x${string}`; s: `0x${string}`; yParity?: undefined }', ) })