module RLP::Decode
def descend(rlp, *path)
def descend(rlp, *path) rlp = str_to_bytes(rlp) path.each do |pa| pos = 0 type, len, pos = consume_length_prefix rlp, pos raise DecodingError.new("Trying to descend through a non-list!", rlp) if type != :list pa.times do |i| t, l, s = consume_length_prefix(rlp, pos) pos = l + s end t, l, s = consume_length_prefix rlp, pos rlp = rlp[pos...(l+s)] end rlp end