Class: TezosClient::LiquidityInterface
- Inherits:
-
Object
- Object
- TezosClient::LiquidityInterface
show all
- Includes:
- LiquidityWrapper, Logger
- Defined in:
- lib/tezos_client/liquidity_interface.rb,
lib/tezos_client/liquidity_inteface/liquidity_wrapper.rb
Defined Under Namespace
Modules: LiquidityWrapper
Instance Method Summary
collapse
#call_liquidity, #liquidity_cmd
Methods included from Logger
#log
Constructor Details
#initialize(rpc_node_address: "127.0.0.1", rpc_node_port: 8732) ⇒ LiquidityInterface
Returns a new instance of LiquidityInterface.
10
11
12
13
|
# File 'lib/tezos_client/liquidity_interface.rb', line 10
def initialize(rpc_node_address: "127.0.0.1", rpc_node_port: 8732)
@rpc_node_address = rpc_node_address
@rpc_node_port = rpc_node_port
end
|
Instance Method Details
#call_parameters(script:, parameters:) ⇒ Object
119
120
121
122
123
124
125
|
# File 'lib/tezos_client/liquidity_interface.rb', line 119
def call_parameters(script:, parameters:)
parameters = format_params(parameters)
with_tempfile(".json") do |json_file|
res = call_liquidity "--json -o #{json_file.path} #{script} --data #{parameters}"
JSON.parse res
end
end
|
#forge_deploy(args) ⇒ Object
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/tezos_client/liquidity_interface.rb', line 98
def forge_deploy(args)
amount = args.fetch(:amount, 0)
spendable = args.fetch(:spendable, false)
delegatable = args.fetch(:delegatable, false)
source = args.fetch :from
script = args.fetch :script
init_params = args.fetch :init_params
res = call_liquidity "--source #{source} #{spendable ? '--spendable' : ''} #{delegatable ? '--delegatable' : ''} --amount #{amount}tz #{script} --forge-deploy '#{init_params}'"
res.strip
end
|
15
16
17
18
|
# File 'lib/tezos_client/liquidity_interface.rb', line 15
def format_params(params)
params = [params] if params.is_a? String
params.map { |s| "'#{s}'" }.join(" ")
end
|
#get_storage(script:, contract_address:) ⇒ Object
114
115
116
117
|
# File 'lib/tezos_client/liquidity_interface.rb', line 114
def get_storage(script:, contract_address:)
res = call_liquidity "#{script} --get-storage #{contract_address}"
res.strip
end
|
#initial_storage(args) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/tezos_client/liquidity_interface.rb', line 20
def initial_storage(args)
from = args.fetch :from
script = args.fetch :script
init_params = args.fetch :init_params
init_params = format_params(init_params)
with_tempfile(".json") do |json_file|
call_liquidity "--source #{from} --json #{script} -o #{json_file.path} --init-storage #{init_params}"
JSON.parse json_file.read.strip
end
end
|
#json_scripts(args) ⇒ Object
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/tezos_client/liquidity_interface.rb', line 58
def json_scripts(args)
with_file_copy(args[:script]) do |script_copy_path|
json_init_script_path = "#{script_copy_path}.initializer.tz.json"
json_contract_script_path = "#{script_copy_path}.tz.json"
call_liquidity "--json #{script_copy_path}"
json_contract_script_file = File.open(json_contract_script_path)
json_contract_script = JSON.parse(json_contract_script_file.read)
json_contract_script_file.close
if File.exists? json_init_script_path
json_init_script_file = File.open(json_init_script_path)
json_init_script = JSON.parse(json_init_script_file.read)
json_init_script_file.close
end
if block_given?
yield(json_init_script, json_contract_script)
else
return json_init_script, json_contract_script
end
ensure
[json_init_script_path, json_contract_script_path].each do |file_path|
File.delete file_path if File.exists? file_path
end
end
end
|
#origination_script(args) ⇒ Object
88
89
90
91
92
93
94
95
96
|
# File 'lib/tezos_client/liquidity_interface.rb', line 88
def origination_script(args)
storage = initial_storage(args)
_json_init_script, json_contract_script = json_scripts(args)
{
code: json_contract_script,
storage: storage
}
end
|
#tezos_node ⇒ Object
110
111
112
|
# File 'lib/tezos_client/liquidity_interface.rb', line 110
def tezos_node
"#{@rpc_node_address}:#{@rpc_node_port}"
end
|
#with_file_copy(source_file_path) ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/tezos_client/liquidity_interface.rb', line 40
def with_file_copy(source_file_path)
source_file = File.open(source_file_path, "r")
source_extention = File.extname(source_file_path)
file_copy_path = nil
res = with_tempfile(source_extention) do |file_copy|
file_copy.write(source_file.read)
file_copy_path = file_copy.path
file_copy.close
yield(file_copy_path)
end
res
ensure
File.delete(file_copy_path) if File.exists? file_copy_path
end
|
#with_tempfile(extension) ⇒ Object
32
33
34
35
36
37
38
|
# File 'lib/tezos_client/liquidity_interface.rb', line 32
def with_tempfile(extension)
file = Tempfile.new(["script", extension])
yield(file)
ensure
file.unlink
end
|