Sha256: a3c251572e4ebb18a0f32787bbee5b2cee178a80d434e936d668d905cd81af56

Contents?: true

Size: 449 Bytes

Versions: 15

Compression:

Stored size: 449 Bytes

Contents

module Etherlite::Types
  class Bytes < Base
    def initialize(_size)
      raise ArgumentError, "invalid byte size #{_size}" unless 0 < _size && _size <= 32
      @size = _size
    end

    def signature
      "bytes#{@size}"
    end

    def size
      32
    end

    def encode(_value)
      raise ArgumentError, "invalid argument type for 'bytes'" unless _value.is_a? ::String

      _value.unpack('H*').first.rjust(64, '0')
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
etherlite-0.6.0 lib/etherlite/types/bytes.rb
etherlite-0.5.3 lib/etherlite/types/bytes.rb
etherlite-0.5.2 lib/etherlite/types/bytes.rb
etherlite-0.5.1 lib/etherlite/types/bytes.rb
etherlite-0.5.0 lib/etherlite/types/bytes.rb
etherlite-0.4.2 lib/etherlite/types/bytes.rb
etherlite-0.4.1 lib/etherlite/types/bytes.rb
etherlite-0.4.0 lib/etherlite/types/bytes.rb
etherlite-0.3.0 lib/etherlite/types/bytes.rb
etherlite-0.2.6 lib/etherlite/types/bytes.rb
etherlite-0.2.5 lib/etherlite/types/bytes.rb
etherlite-0.2.4 lib/etherlite/types/bytes.rb
etherlite-0.2.3 lib/etherlite/types/bytes.rb
etherlite-0.2.2 lib/etherlite/types/bytes.rb
etherlite-0.2.1 lib/etherlite/types/bytes.rb