module RLP::Decode

def pop(rlp, index=2**50)

def pop(rlp, index=2**50)
  type, len, pos = consume_length_prefix rlp, 0
  raise DecodingError.new("Trying to pop from a non-list!", rlp) if type != :list
  beginpos = pos
  index.times do |i|
    _, _len, _pos = consume_length_prefix rlp, pos
    break if _len + _pos >= rlp.size
    pos = _len + _pos
  end
  _, _len, _pos = consume_length_prefix rlp, pos
  rlpdata = rlp[beginpos...pos] + rlp[(_len+_pos)..-1]
  prefix = length_prefix rlpdata.size, LIST_PREFIX_OFFSET
  prefix + rlpdata
end