UNPKG

ox

Version:

Ethereum Standard Library

67 lines (60 loc) 1.66 kB
import { attest } from '@ark/attest' import { AbiParameters } from 'ox' import { describe, test } from 'vp/test' describe('decode', () => { test('default', () => { { const result = AbiParameters.decode([], '0x') attest(result).type.toString.snap('[]') } { const parameters = AbiParameters.from('bool a, (uint32 x, string y) b') const data = AbiParameters.encode(parameters, [ true, { x: 123, y: 'lol' }, ]) const result = AbiParameters.decode(parameters, data) attest(result).type.toString.snap( 'readonly [boolean, { y: string; x: number }]', ) } }) test('options: as = Object', () => { { const result = AbiParameters.decode([], '0x', { as: 'Object' }) attest(result).type.toString.snap('{}') } { const parameters = AbiParameters.from('bool a, (uint32 x, string y) b') const data = AbiParameters.encode(parameters, [ true, { x: 123, y: 'lol' }, ]) const result = AbiParameters.decode(parameters, data, { as: 'Object', }) attest(result).type.toString.snap( '{ a: boolean; b: { y: string; x: number } }', ) } }) test('behavior: widened', () => { { const result = AbiParameters.decode( [] as AbiParameters.AbiParameters, '0x', ) attest(result).type.toString.snap('readonly unknown[]') } { const result = AbiParameters.decode( [] as AbiParameters.AbiParameters, '0x', { as: 'Object', }, ) attest(result).type.toString.snap('unknown') } }) })