From 3015760b3e8223b4ec61c90b2dcef6c014642836 Mon Sep 17 00:00:00 2001 From: Mark Spanbroek Date: Tue, 30 Nov 2021 16:52:23 +0100 Subject: [PATCH] Use similar terminology when encoding and decoding For writing custom decoding functions, `decode` and `read` now work the same as `encode` and `write for encoding. --- contractabi/decoding.nim | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/contractabi/decoding.nim b/contractabi/decoding.nim index a9d4a0e..6a86a61 100644 --- a/contractabi/decoding.nim +++ b/contractabi/decoding.nim @@ -43,20 +43,21 @@ func read(decoder: var AbiDecoder, amount: int, padding = padLeft): seq[byte] = if padding == padRight: decoder.advance(padlen) -func read*(decoder: var AbiDecoder, T: type UInt): T = +func read*(decoder: var AbiDecoder, T: type): T = + decoder.decode(T) + +func decode*(decoder: var AbiDecoder, T: type UInt): T = T.fromBytesBE(decoder.read(sizeof(T))) -func read*(decoder: var AbiDecoder, T: type bool): T = +func decode*(decoder: var AbiDecoder, T: type bool): T = decoder.read(uint8) != 0 -func read*(decoder: var AbiDecoder, T: type enum): T = +func decode*(decoder: var AbiDecoder, T: type enum): T = T(decoder.read(uint64)) -func read*[I: static int](decoder: var AbiDecoder, T: type array[I, byte]): T = +func decode*[I: static int](decoder: var AbiDecoder, T: type array[I,byte]): T = result[0..