lib/ciri/rlp/encode.rb in ciri-rlp-0.1.1 vs lib/ciri/rlp/encode.rb in ciri-rlp-0.2.1
- old
+ new
@@ -1,26 +1,20 @@
# frozen_string_literal: true
-# Copyright (c) 2018, by Jiang Jinyang. <https://justjjy.com>
+# Copyright 2018 Jiang Jinyang <https://justjjy.com>
#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
+# http://www.apache.org/licenses/LICENSE-2.0
#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
module Ciri
module RLP
module Encode
@@ -74,15 +68,21 @@
type.rlp_encode(item)
elsif type.is_a?(Array)
if type.size == 1 # array type
encode_list(item) {|i| encode_with_type(i, type[0])}
else # unknown
- raise RLP::InvalidValueError.new "type size should be 1, got #{type}"
+ raise RLP::InvalidError.new "type size should be 1, got #{type}"
end
elsif type == Raw
encode_raw(item)
+ elsif type == RawString
+ raise RLP::InvalidError.new "expect String, got #{item.class}" unless item.is_a?(String)
+ encode_raw(item)
+ elsif type == RawList
+ raise RLP::InvalidError.new "expect Array, got #{item.class}" unless item.is_a?(Array)
+ encode_raw(item)
else
- raise RLP::InvalidValueError.new "unknown type #{type}"
+ raise RLP::InvalidError.new "unknown type #{type}"
end
rescue
STDERR.puts "when encoding #{Utils.to_hex item.to_s} into #{type}"
raise
end
\ No newline at end of file