Class: Sigma::ErgoBox
- Inherits:
-
Object
- Object
- Sigma::ErgoBox
- Extended by:
- FFI::Library
- Defined in:
- lib/sigma/ergo_box.rb
Instance Attribute Summary collapse
-
#pointer ⇒ Object
Returns the value of attribute pointer.
Class Method Summary collapse
- .create(box_value:, creation_height:, contract:, tx_id:, index:, tokens:) ⇒ Object
- .with_json(json_str) ⇒ Object
- .with_raw_pointer(unread_pointer) ⇒ Object
Instance Method Summary collapse
- #==(ergo_box_two) ⇒ Object
- #get_box_id ⇒ Object
- #get_box_value ⇒ Object
- #get_creation_height ⇒ Object
- #get_ergo_tree ⇒ Object
- #get_register_value(register_id) ⇒ Object
- #get_tokens ⇒ Object
- #to_json ⇒ Object
- #to_json_eip12 ⇒ Object
Instance Attribute Details
#pointer ⇒ Object
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_id ⇒ Object
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_value ⇒ Object
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_height ⇒ Object
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_tree ⇒ Object
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_tokens ⇒ Object
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_json ⇒ Object
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_eip12 ⇒ Object
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 |