Class: Sigma::HintsBag

Inherits:
Object
  • Object
show all
Extended by:
FFI::Library
Defined in:
lib/sigma/transaction.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#pointerObject

Returns the value of attribute pointer.



138
139
140
# File 'lib/sigma/transaction.rb', line 138

def pointer
  @pointer
end

Class Method Details

.createObject



140
141
142
143
144
# File 'lib/sigma/transaction.rb', line 140

def self.create
  pointer = FFI::MemoryPointer.new(:pointer)
  ergo_lib_hints_bag_empty(pointer)
  init(pointer)
end

.with_raw_pointer(pointer) ⇒ Object



146
147
148
# File 'lib/sigma/transaction.rb', line 146

def self.with_raw_pointer(pointer)
  init(pointer)
end

Instance Method Details

#add_commitment_hint(commitment_hint) ⇒ Object



150
151
152
# File 'lib/sigma/transaction.rb', line 150

def add_commitment_hint(commitment_hint)
  ergo_lib_hints_bag_add_commitment(self.pointer, commitment_hint.pointer)
end

#get_commitment_hint(index) ⇒ Object



158
159
160
161
162
163
164
165
166
167
# File 'lib/sigma/transaction.rb', line 158

def get_commitment_hint(index)
  pointer = FFI::MemoryPointer.new(:pointer)
  res = ergo_lib_hints_bag_get(self.pointer, index, pointer)
  Util.check_error!(res[:error])
  if res[:is_some]
    Sigma::CommitmentHint.with_raw_pointer(pointer)
  else
    nil
  end
end

#lenObject



154
155
156
# File 'lib/sigma/transaction.rb', line 154

def len
  ergo_lib_hints_bag_add_commitment_len(self.pointer)
end