diff --git a/contractabi/decoding.nim b/contractabi/decoding.nim index eac998a..6e876e0 100644 --- a/contractabi/decoding.nim +++ b/contractabi/decoding.nim @@ -45,23 +45,37 @@ func updateLast(decoder: var AbiDecoder, index: int) = func advance(decoder: var AbiDecoder, amount: int): ?!void = decoder.index += amount decoder.updateLast(decoder.index) + if decoder.index <= decoder.bytes.len: + success() + else: + failure "reading past end" + +func skipPadding(decoder: var AbiDecoder, amount: int): ?!void = + let index = decoder.index + ?decoder.advance(amount) + for i in index..