Class: Sigma::Contract

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#pointerObject

Returns the value of attribute pointer.



17
18
19
# File 'lib/sigma/contract.rb', line 17

def pointer
  @pointer
end

Class Method Details

.compile_from_string(str) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/sigma/contract.rb', line 30

def self.compile_from_string(str)
  pointer = FFI::MemoryPointer.new(:pointer)
  error = ergo_lib_contract_compile(str, pointer)
  Util.check_error!(error)
  
  init(pointer)
end

.from_ergo_tree(ergo_tree) ⇒ Object



23
24
25
26
27
28
# File 'lib/sigma/contract.rb', line 23

def self.from_ergo_tree(ergo_tree)
  pointer = FFI::MemoryPointer.new(:pointer)
  ergo_lib_contract_new(ergo_tree.pointer, pointer)

  init(pointer) 
end

.pay_to_address(address) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/sigma/contract.rb', line 38

def self.pay_to_address(address)
  pointer = FFI::MemoryPointer.new(:pointer)
  error = ergo_lib_contract_pay_to_address(address.pointer, pointer)
  Util.check_error!(error)

  init(pointer)
end

.with_raw_pointer(contract_pointer) ⇒ Object



19
20
21
# File 'lib/sigma/contract.rb', line 19

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

Instance Method Details

#==(contract_two) ⇒ Object



52
53
54
# File 'lib/sigma/contract.rb', line 52

def ==(contract_two)
  ergo_lib_contract_eq(self.pointer, contract_two.pointer)
end

#get_ergo_treeObject



46
47
48
49
50
# File 'lib/sigma/contract.rb', line 46

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