class TezosClient::SmartpyInterface
Attributes
options[R]
Public Instance Methods
json_scripts(args)
click to toggle source
# File lib/tezos_client/smartpy_interface.rb, line 12 def json_scripts(args) compile_to_michelson(args) do |contract_script_filename, init_script_filename| micheline_contract = File.read(contract_script_filename) micheline_storage = File.read(init_script_filename) [JSON.parse(micheline_storage), JSON.parse(micheline_contract)] end end
origination_script(args)
click to toggle source
# File lib/tezos_client/smartpy_interface.rb, line 21 def origination_script(args) json_init_script, json_contract_script = json_scripts(args) { code: json_contract_script, storage: json_init_script } end
Private Instance Methods
compile_to_michelson(args) { |script_path| ... }
click to toggle source
# File lib/tezos_client/smartpy_interface.rb, line 31 def compile_to_michelson(args) Tools::TemporaryFile.with_file_copy(args[:script]) do |script_copy_path| script_basename = script_copy_path.split("/").last.sub(/.py$/, "") script_path = "/tmp/#{script_basename}/" init_script_filename = "step_000_cont_0_storage.json" contract_script_filename = "step_000_cont_0_contract.json" cmd_line = ["compile", script_copy_path, script_path].concat( optional_inputs(args[:smartpy_flags], args[:init_params]) ) call_smartpy cmd_line yield(script_path + "default/" + contract_script_filename, script_path + "default/" + init_script_filename) end end
optional_args(init_params = [])
click to toggle source
# File lib/tezos_client/smartpy_interface.rb, line 67 def optional_args(init_params = []) return [] if init_params.count.zero? ["--"].concat( init_params.map do |init_param| init_param.to_json end ) end
optional_flags(flags)
click to toggle source
# File lib/tezos_client/smartpy_interface.rb, line 57 def optional_flags(flags) (flags || {}).map do |key, value| if value.is_a?(FalseClass) || value.is_a?(TrueClass) "--#{key}" else ["--#{key}", value.to_s] end end.flatten end
optional_inputs(flags, init_params)
click to toggle source
# File lib/tezos_client/smartpy_interface.rb, line 48 def optional_inputs(flags, init_params) inputs = [] inputs.concat(optional_flags(flags)) inputs.concat(optional_args(init_params)) inputs end