urbit/tests/ethereum/encoding.hoon

49 lines
2.0 KiB
Plaintext

/+ tester
|_ _tester:tester
::TODO copy this:
:: https://github.com/ethereum/web3.js/blob/master/test/coder.encodeParam.js
++ test-testing-the-tests
(expect-eq !>([4 4]))
::
++ test-static-args
=- (expect-eq !>([res wan]))
^- [res=tape wan=tape]
:- %- encode-args: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 !>([res wan]))
^- [res=tape wan=tape]
:- %- encode-args: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"
==
--