Class: Sigma::ErgoBox

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#pointerObject

Returns the value of attribute pointer.



274
275
276
# File 'lib/sigma/ergo_box.rb', line 274

def pointer
  @pointer
end

Class Method Details

.create(box_value:, creation_height:, contract:, tx_id:, index:, tokens:) ⇒ Object



276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
# File 'lib/sigma/ergo_box.rb', line 276

def self.create(box_value:,
               creation_height:,
               contract:,
               tx_id:,
               index:,
               tokens:)

  eb_pointer = FFI::MemoryPointer.new(:pointer)
  error_pointer = ergo_lib_ergo_box_new(box_value.pointer, creation_height,
    contract.pointer, tx_id.pointer, index, tokens.pointer, eb_pointer)
  #ergo_lib_ergo_box_new(nil, 0, nil, nil, 0, nil, eb_pointer)
  #Util.check_error!(error_pointer)
  
  init(eb_pointer) 
end

.with_json(json_str) ⇒ Object



296
297
298
299
300
301
# File 'lib/sigma/ergo_box.rb', line 296

def self.with_json(json_str)
  pointer = FFI::MemoryPointer.new(:pointer)
  error = ergo_lib_ergo_box_from_json(json_str, pointer)
  Util.check_error!(error)
  init(pointer)
end

.with_raw_pointer(unread_pointer) ⇒ Object



292
293
294
# File 'lib/sigma/ergo_box.rb', line 292

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

Instance Method Details

#==(ergo_box_two) ⇒ Object



362
363
364
# File 'lib/sigma/ergo_box.rb', line 362

def ==(ergo_box_two)
  ergo_lib_ergo_box_eq(self.pointer, ergo_box_two.pointer)
end

#get_box_idObject



303
304
305
306
307
# File 'lib/sigma/ergo_box.rb', line 303

def get_box_id
  box_id_ptr = FFI::MemoryPointer.new(:pointer)
  ergo_lib_ergo_box_id(self.pointer, box_id_ptr)
  Sigma::BoxId.with_raw_pointer(box_id_ptr)
end

#get_box_valueObject



309
310
311
312
313
# File 'lib/sigma/ergo_box.rb', line 309

def get_box_value
  box_value_ptr = FFI::MemoryPointer.new(:pointer)
  ergo_lib_ergo_box_value(self.pointer, box_value_ptr)
  Sigma::BoxValue.with_raw_pointer(box_value_ptr)
end

#get_creation_heightObject



315
316
317
# File 'lib/sigma/ergo_box.rb', line 315

def get_creation_height
  ergo_lib_ergo_box_creation_height(self.pointer)
end

#get_ergo_treeObject



336
337
338
339
340
# File 'lib/sigma/ergo_box.rb', line 336

def get_ergo_tree
  ergo_tree_ptr = FFI::MemoryPointer.new(:pointer)
  ergo_lib_ergo_box_ergo_tree(self.pointer, ergo_tree_ptr)
  Sigma::ErgoTree.with_raw_pointer(ergo_tree_ptr)
end

#get_register_value(register_id) ⇒ Object



319
320
321
322
323
324
325
326
327
328
# File 'lib/sigma/ergo_box.rb', line 319

def get_register_value(register_id)
  constant_ptr = FFI::MemoryPointer.new(:pointer)
  res = ergo_lib_ergo_box_register_value(self.pointer, register_id, constant_ptr)
  Util.check_error!(res[:error])
  if res[:is_some]
    Sigma::Constant.with_raw_pointer(constant_ptr)
  else
    nil
  end
end

#get_tokensObject



330
331
332
333
334
# File 'lib/sigma/ergo_box.rb', line 330

def get_tokens
  tokens_ptr = FFI::MemoryPointer.new(:pointer)
  ergo_lib_ergo_box_tokens(self.pointer, tokens_ptr)
  Sigma::Tokens.with_raw_pointer(tokens_ptr)
end

#to_jsonObject



342
343
344
345
346
347
348
349
350
# File 'lib/sigma/ergo_box.rb', line 342

def to_json
  s_ptr = FFI::MemoryPointer.new(:pointer, 1)
  error = ergo_lib_ergo_box_to_json(self.pointer, s_ptr)
  Util.check_error!(error)
  s_ptr = s_ptr.read_pointer()
  str = s_ptr.read_string().force_encoding('UTF-8')
  Util.ergo_lib_delete_string(s_ptr)
  str
end

#to_json_eip12Object



352
353
354
355
356
357
358
359
360
# File 'lib/sigma/ergo_box.rb', line 352

def to_json_eip12
  s_ptr = FFI::MemoryPointer.new(:pointer, 1)
  error = ergo_lib_ergo_box_to_json_eip12(self.pointer, s_ptr)
  Util.check_error!(error)
  s_ptr = s_ptr.read_pointer()
  str = s_ptr.read_string().force_encoding('UTF-8')
  Util.ergo_lib_delete_string(s_ptr)
  str
end