Class: Casper::Entity::DeployExecutable

Inherits:
Object
  • Object
show all
Includes:
Utils::Helpers
Defined in:
lib/entity/deploy_executable.rb

Overview

DeployExecutable

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Utils::Helpers

#construct_inner_clvalue

Constructor Details

#initialize(h = {}) ⇒ DeployExecutable

Returns a new instance of DeployExecutable.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/entity/deploy_executable.rb', line 14

def initialize(h = {})
  deploy_serializer = DeploySerializer.new()
  temp_args = []
  deploy_serializer = DeploySerializer.new
  if h.keys[0] == :ModuleBytes
    args = h[:ModuleBytes][:args]
    args.each do |arg|
      name1 = arg[0]
      clvalue_hash = arg[1]
      clvalue = deploy_serializer.build_cl_value(arg[1])
  
      temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
    end
    @module_bytes = Casper::Entity::ModuleBytes.new(h[:ModuleBytes][:module_bytes], temp_args)
  elsif h.keys[0] == :Transfer
    temp_args = []
    args = h[:Transfer][:args]

    transfer = Casper::Entity::DeployExecutableTransfer.new(args)

    args.each do |arg|
      name1 = arg[0]
      if name1 == "amount" || name1 == "target"
        clvalue_hash = arg[1]
        clvalue = deploy_serializer.build_cl_value(arg[1])
        temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
      elsif name1 == "id"
        bytes = arg[1][:bytes]
        parsed = arg[1][:parsed]
        h = arg[1][:cl_type]
        key, value = h.first
        cl_type = h.keys[0]
        inner_type = value

        inner_clvalue = Utils::Helpers.construct_inner_clvalue(inner_type, parsed)
        clvalue = CLOption.new(inner_clvalue, inner_type)

        temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
      end
    end
    @transfer = Casper::Entity::DeployExecutableTransfer.new(temp_args)
  end
  @stored_contract_by_hash = nil
  @stored_contract_by_name = nil
  @stored_versioned_contract_by_hash = nil
  @stored_versioned_contract_by_name = nil
end

Instance Attribute Details

#module_bytesObject

Returns the value of attribute module_bytes.



11
12
13
# File 'lib/entity/deploy_executable.rb', line 11

def module_bytes
  @module_bytes
end

#stored_contract_by_hashObject

Returns the value of attribute stored_contract_by_hash.



11
12
13
# File 'lib/entity/deploy_executable.rb', line 11

def stored_contract_by_hash
  @stored_contract_by_hash
end

#stored_contract_by_nameObject

Returns the value of attribute stored_contract_by_name.



11
12
13
# File 'lib/entity/deploy_executable.rb', line 11

def stored_contract_by_name
  @stored_contract_by_name
end

#stored_versioned_contract_by_hashObject

Returns the value of attribute stored_versioned_contract_by_hash.



11
12
13
# File 'lib/entity/deploy_executable.rb', line 11

def stored_versioned_contract_by_hash
  @stored_versioned_contract_by_hash
end

#stored_versioned_contract_by_nameObject

Returns the value of attribute stored_versioned_contract_by_name.



11
12
13
# File 'lib/entity/deploy_executable.rb', line 11

def stored_versioned_contract_by_name
  @stored_versioned_contract_by_name
end

#transferObject

Returns the value of attribute transfer.



11
12
13
# File 'lib/entity/deploy_executable.rb', line 11

def transfer
  @transfer
end

Instance Method Details

#get_module_bytesModuleBytes

Returns module_bytes.

Returns:



104
105
106
# File 'lib/entity/deploy_executable.rb', line 104

def get_module_bytes
  @module_bytes
end

#get_stored_contract_by_hashObject



132
133
134
# File 'lib/entity/deploy_executable.rb', line 132

def get_stored_contract_by_hash
  @stored_contract_by_hash
end

#get_stored_contract_by_nameObject



146
147
148
# File 'lib/entity/deploy_executable.rb', line 146

def get_stored_contract_by_name
  @stored_contract_by_name
end

#get_stored_versioned_contract_by_hashObject



160
161
162
# File 'lib/entity/deploy_executable.rb', line 160

def get_stored_versioned_contract_by_hash
  @stored_versioned_contract_by_hash
end

#get_stored_versioned_contract_by_nameObject



174
175
176
# File 'lib/entity/deploy_executable.rb', line 174

def get_stored_versioned_contract_by_name
  @stored_versioned_contract_by_name
end

#get_transferObject



118
119
120
# File 'lib/entity/deploy_executable.rb', line 118

def get_transfer
  @transfer
end

#module_bytes?Boolean

Returns:



109
110
111
# File 'lib/entity/deploy_executable.rb', line 109

def module_bytes?
  @module_bytes != nil
end

#new_transfer(id, amount, target, source_purse = nil) ⇒ DeployExecutable

Parameters:

Returns:



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/entity/deploy_executable.rb', line 74

def new_transfer(id, amount, target, source_purse = nil)
  if target.instance_of? CLURef
    @target = target
  elsif target.instance_of? CLPublicKey
    @target = target.
  else
    raise ArgumentError.new("Please specify target")
  end
  arg1 = DeployNamedArgument.new("amount", CLu512.new(amount))
  # arg2 = DeployNamedArgument.new("target", @target)
  @transfer = DeployExecutableTransfer.new([])
  # @transfer.set_arg(DeployNamedArgument.new("target", @target))
  # @transfer.set_arg(arg1)
  # @transfer.set_arg(arg2)
  # @transfer

  if source_purse != nil
    @transfer.set_arg(DeployNamedArgument.new("source", source_purse))
    # @transfer
  end
  @transfer.set_arg(DeployNamedArgument.new("target", @target))
  @transfer.set_arg(DeployNamedArgument.new("id", CLu64.new(id)))
  @transfer
end

#set_module_bytes(module_bytes) ⇒ Object



99
100
101
# File 'lib/entity/deploy_executable.rb', line 99

def set_module_bytes(module_bytes)
  @module_bytes = module_bytes
end

#set_stored_contract_by_hash(stored_contract_by_hash) ⇒ Object

Parameters:



128
129
130
# File 'lib/entity/deploy_executable.rb', line 128

def set_stored_contract_by_hash(stored_contract_by_hash)
  @stored_contract_by_hash = stored_contract_by_hash
end

#set_stored_contract_by_name(stored_contract_by_name) ⇒ Object

Parameters:



142
143
144
# File 'lib/entity/deploy_executable.rb', line 142

def set_stored_contract_by_name(stored_contract_by_name)
  @stored_contract_by_name = stored_contract_by_name
end

#set_stored_versioned_contract_by_hash(stored_versioned_contract_by_hash) ⇒ Object

Parameters:



156
157
158
# File 'lib/entity/deploy_executable.rb', line 156

def set_stored_versioned_contract_by_hash(stored_versioned_contract_by_hash)
  @stored_versioned_contract_by_hash = stored_versioned_contract_by_hash
end

#set_stored_versioned_contract_by_name(stored_versioned_contract_by_name) ⇒ Object

Parameters:



170
171
172
# File 'lib/entity/deploy_executable.rb', line 170

def set_stored_versioned_contract_by_name(stored_versioned_contract_by_name)
  @stored_versioned_contract_by_name = stored_versioned_contract_by_name
end

#set_transfer(transfer) ⇒ Object

Parameters:



114
115
116
# File 'lib/entity/deploy_executable.rb', line 114

def set_transfer(transfer)
  @transfer = transfer
end

#standard_payment(payment_amount) ⇒ Object



62
63
64
65
66
67
# File 'lib/entity/deploy_executable.rb', line 62

def standard_payment(payment_amount)
  @module_bytes = ModuleBytes.new("", [])
  arg = DeployNamedArgument.new("amount", CLu512.new(payment_amount))
  @module_bytes.set_arg(arg)
  @module_bytes
end

#stored_contract_by_hash?Boolean

Returns:



137
138
139
# File 'lib/entity/deploy_executable.rb', line 137

def stored_contract_by_hash?
  @stored_contract_by_hash != nil
end

#stored_contract_by_name?Boolean

Returns:



151
152
153
# File 'lib/entity/deploy_executable.rb', line 151

def stored_contract_by_name?
  @stored_contract_by_name != nil
end

#stored_versioned_contract_by_hash?Boolean

Returns:



165
166
167
# File 'lib/entity/deploy_executable.rb', line 165

def stored_versioned_contract_by_hash?
  @stored_versioned_contract_by_hash != nil
end

#stored_versioned_contract_by_name?Boolean

Returns:



179
180
181
# File 'lib/entity/deploy_executable.rb', line 179

def stored_versioned_contract_by_name?
  @stored_versioned_contract_by_name != nil
end

#to_bytesObject



183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
# File 'lib/entity/deploy_executable.rb', line 183

def to_bytes
  if module_bytes?
    @module_bytes.to_bytes
  elsif stored_contract_by_name?
    @stored_contract_by_name.to_bytes
  elsif stored_contract_by_hash?
    @stored_contract_by_hash.to_bytes
  elsif stored_contract_by_name?
    @stored_contract_by_name.to_bytes
  elsif stored_versioned_contract_by_hash?
    @stored_versioned_contract_by_hash.to_bytes
  elsif stored_versioned_contract_by_name?
    @stored_versioned_contract_by_name.to_bytes
  elsif stored_versioned_contract_by_hash?
    @stored_versioned_contract_by_hash.to_bytes
  elsif transfer?
    @transfer.to_bytes    
  else
    raise "failed to serialize ExecutableDeployItemJsonWrapper"
  end
end

#transfer?Boolean

Returns:



123
124
125
# File 'lib/entity/deploy_executable.rb', line 123

def transfer?
  @transfer != nil
end