class Bitcoin::ScriptWitness

witness

Attributes

stack[R]

Public Class Methods

new(stack = []) click to toggle source
# File lib/bitcoin/script_witness.rb, line 8
def initialize(stack = [])
  @stack = stack
end
parse_from_payload(payload) click to toggle source
# File lib/bitcoin/script_witness.rb, line 12
def self.parse_from_payload(payload)
  buf = payload.is_a?(StringIO) ? payload : StringIO.new(payload)
  size = Bitcoin.unpack_var_int_from_io(buf)
  stack = size.times.map do
    buf.read(Bitcoin.unpack_var_int_from_io(buf))
  end
  self.new(stack)
end

Public Instance Methods

empty?() click to toggle source
# File lib/bitcoin/script_witness.rb, line 21
def empty?
  stack.empty?
end
to_payload() click to toggle source
# File lib/bitcoin/script_witness.rb, line 25
def to_payload
  p = Bitcoin.pack_var_int(stack.size)
  p << stack.map { |s|
    Bitcoin.pack_var_int(s.bytesize) << s
  }.join
end
to_s() click to toggle source
# File lib/bitcoin/script_witness.rb, line 32
def to_s
  stack.map{|s|s.bth}.join(' ')
end