urbit/pkg/arvo/tests/sys/zuse/ethereum/encoding.hoon
2019-11-15 17:37:20 -08:00

45 lines
2.0 KiB
Plaintext

/+ *test
|%
::TODO copy this:
:: https://github.com/ethereum/web3.js/blob/master/test/coder.encodeParam.js
::
++ test-static-args
%+ expect-eq
!> %- encode-args:abi:ethereum
:~ [%string "dave"]
[%bool &]
[%array [%uint 1] [%uint 2] [%uint 3] ~]
==
!> %- zing
:~ "0000000000000000000000000000000000000000000000000000000000000060"
"0000000000000000000000000000000000000000000000000000000000000001"
"00000000000000000000000000000000000000000000000000000000000000a0"
"0000000000000000000000000000000000000000000000000000000000000004"
"6461766500000000000000000000000000000000000000000000000000000000"
"0000000000000000000000000000000000000000000000000000000000000003"
"0000000000000000000000000000000000000000000000000000000000000001"
"0000000000000000000000000000000000000000000000000000000000000002"
"0000000000000000000000000000000000000000000000000000000000000003"
==
::
++ test-dynamic-args
%+ expect-eq
!> %- encode-args:abi:ethereum
:~ [%uint `@ud`0x123]
[%array [%uint `@ud`0x456] [%uint `@ud`0x789] ~]
[%bytes-n (as-octt:mimes:html (flop "1234567890"))]
[%bytes (as-octt:mimes:html (flop "Hello, world!"))]
==
!> %- zing
:~ "0000000000000000000000000000000000000000000000000000000000000123"
"0000000000000000000000000000000000000000000000000000000000000080"
"3132333435363738393000000000000000000000000000000000000000000000"
"00000000000000000000000000000000000000000000000000000000000000e0"
"0000000000000000000000000000000000000000000000000000000000000002"
"0000000000000000000000000000000000000000000000000000000000000456"
"0000000000000000000000000000000000000000000000000000000000000789"
"000000000000000000000000000000000000000000000000000000000000000d"
"48656c6c6f2c20776f726c642100000000000000000000000000000000000000"
==
--