test_sdk1 1.0.2 → 1.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +495 -76
- data/lib/crypto/asymmetric_key.rb +19 -18
- data/lib/crypto/ed25519_key.rb +99 -10
- data/lib/crypto/keys.rb +1 -2
- data/lib/crypto/keys_util.rb +20 -0
- data/lib/entity/auction_state.rb +56 -8
- data/lib/entity/bid.rb +1 -1
- data/lib/entity/bid_info.rb +1 -1
- data/lib/entity/block.rb +39 -0
- data/lib/entity/block_body.rb +35 -0
- data/lib/entity/block_header.rb +81 -0
- data/lib/entity/block_info.rb +56 -0
- data/lib/entity/block_proof.rb +24 -0
- data/lib/entity/deploy.rb +154 -1
- data/lib/entity/deploy_executable.rb +108 -6
- data/lib/entity/deploy_executable_item_internal.rb +1 -1
- data/lib/entity/deploy_header.rb +17 -0
- data/lib/entity/deploy_named_argument.rb +69 -2
- data/lib/entity/era_summary.rb +13 -12
- data/lib/entity/group.rb +1 -1
- data/lib/entity/module_bytes.rb +16 -2
- data/lib/entity/status.rb +80 -0
- data/lib/entity/stored_contract_by_name.rb +2 -1
- data/lib/entity/stored_value.rb +86 -11
- data/lib/entity/stored_versioned_contract_by_hash.rb +2 -1
- data/lib/entity/stored_versioned_contract_by_name.rb +1 -1
- data/lib/entity/transfer.rb +7 -7
- data/lib/include.rb +2 -0
- data/lib/rpc/rpc_client.rb +1 -2
- data/lib/serialization/cl_type_serializer.rb +1 -0
- data/lib/serialization/cl_value_serializer.rb +70 -12
- data/lib/serialization/cl_value_serializer1.rb +314 -0
- data/lib/serialization/cl_value_serializer_update.rb +320 -0
- data/lib/serialization/deploy_approval_serializer.rb +1 -0
- data/lib/serialization/deploy_executable_serializer.rb +1 -1
- data/lib/serialization/deploy_header_serializer.rb +2 -1
- data/lib/serialization/deploy_named_arg_serializer.rb +2 -0
- data/lib/serialization/deploy_serializer.rb +145 -10
- data/lib/serialization/deploy_serializer1.rb +392 -0
- data/lib/serialization/deploy_serializer_update.rb +397 -0
- data/lib/serialization/test.rb +33 -13
- data/lib/test_sdk1.rb +30 -13
- data/lib/types/cl_option.rb +8 -2
- data/lib/types/cl_public_key.rb +2 -0
- data/lib/types/cl_type.rb +1 -0
- data/lib/types/cl_value.rb +8 -0
- data/lib/utils/byte_utils.rb +28 -0
- data/lib/utils/helpers.rb +10 -0
- data/lib/version.rb +1 -1
- data/spec/cl_value_serializer_spec.rb +16 -1
- data/spec/client_spec.rb +20 -20
- data/spec/dene_spec.rb +186 -0
- data/spec/deploy_executable_spec.rb +90 -0
- data/spec/deploy_executable_test_spec.rb +117 -0
- data/spec/deploy_serializer_spec.rb +5 -3
- data/spec/deploy_serializer_test_spec.rb +7 -1
- data/spec/testnet_spec.rb +3 -1
- data/spec/time_utils_spec.rb +3 -0
- metadata +20 -5
- data/lib/crypto/key_pair.rb +0 -40
- data/spec/deploy_executable_serializer_spec.rb +0 -0
@@ -1,20 +1,120 @@
|
|
1
1
|
require_relative './deploy_named_argument.rb'
|
2
2
|
require_relative './module_bytes.rb'
|
3
3
|
require_relative './deploy_executable_transfer.rb'
|
4
|
-
|
4
|
+
require_relative '../utils/helpers.rb'
|
5
|
+
require_relative '../serialization/deploy_serializer.rb'
|
5
6
|
module Casper
|
6
7
|
module Entity
|
7
8
|
# DeployExecutable
|
8
9
|
class DeployExecutable
|
10
|
+
include Utils::Helpers
|
9
11
|
attr_accessor :module_bytes, :transfer, :stored_contract_by_hash, :stored_contract_by_name,
|
10
12
|
:stored_versioned_contract_by_hash, :stored_versioned_contract_by_name
|
11
|
-
|
12
|
-
|
13
|
+
|
14
|
+
def initialize(h = {})
|
15
|
+
deploy_serializer = DeploySerializer.new()
|
16
|
+
temp_args = []
|
17
|
+
deploy_serializer = DeploySerializer.new
|
18
|
+
# puts h.keys[0] # => ModuleByte
|
19
|
+
# @module_bytes = nil
|
20
|
+
if h.keys[0] == :ModuleBytes
|
21
|
+
args = h[:ModuleBytes][:args]
|
22
|
+
# puts args
|
23
|
+
args.each do |arg|
|
24
|
+
name1 = arg[0]
|
25
|
+
clvalue_hash = arg[1]
|
26
|
+
# puts clvalue_hash # => {:bytes=>"0400f90295", :parsed=>"2500000000", :cl_type=>"U512"}
|
27
|
+
clvalue = deploy_serializer.build_cl_value(arg[1])
|
28
|
+
# puts clvalue # => <CLu512:0x00000000015cbd58>
|
29
|
+
|
30
|
+
temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
|
31
|
+
# puts temp_args[0][1]
|
32
|
+
end
|
33
|
+
@module_bytes = Casper::Entity::ModuleBytes.new(h[:ModuleBytes][:module_bytes], temp_args)
|
34
|
+
# puts @module_bytes.get_module_bytes # => Return empty, since module_bytes = ""
|
35
|
+
# puts @module_bytes.get_args[0][0].get_name # => amount
|
36
|
+
# puts @module_bytes.get_args[0][0].get_value # => <CLu512:0x0000000002fc54c0>
|
37
|
+
elsif h.keys[0] == :Transfer
|
38
|
+
# temp_args = []
|
39
|
+
# args = h[:Transfer][:args]
|
40
|
+
# # @transfer = Casper::Entity::DeployExecutableTransfer.new(args)
|
41
|
+
# args.each do |arg|
|
42
|
+
# name1 = arg[0]
|
43
|
+
# if name1 == "amount" || name1 == "target"
|
44
|
+
# clvalue_hash = arg[1]
|
45
|
+
# clvalue = deploy_serializer.build_cl_value(arg[1])
|
46
|
+
# # puts "clvalue.get_value: #{clvalue.get_value}"
|
47
|
+
# temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
|
48
|
+
# elsif name1 == "id"
|
49
|
+
# bytes = arg[1][:bytes]
|
50
|
+
# puts bytes
|
51
|
+
# parsed = arg[1][:parsed]
|
52
|
+
# puts parsed
|
53
|
+
# h = arg[1][:cl_type]
|
54
|
+
# key, value = h.first
|
55
|
+
# cl_type = h.keys[0]
|
56
|
+
# puts key, value
|
57
|
+
# # inner_type = value
|
58
|
+
# # inner_clvalue = Utils::Helpers.construct_inner_clvalue(cl_type, parsed)
|
59
|
+
# # # data = { "cl_type": inner_type, "bytes": bytes, "parsed": parsed}
|
60
|
+
# # clvalue = CLOption.new(inner_clvalue, inner_type)
|
61
|
+
# # temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
|
62
|
+
# end
|
63
|
+
temp_args = []
|
64
|
+
args = h[:Transfer][:args]
|
65
|
+
|
66
|
+
transfer = Casper::Entity::DeployExecutableTransfer.new(args)
|
67
|
+
# args.each do |arg|
|
68
|
+
# name1 = arg[0] # => "amount"
|
69
|
+
# clvalue_hash = arg[1] # => {:cl_type=>"I32", :bytes=>"e8030000", :parsed=>1000}
|
70
|
+
# clvalue = build_cl_value(arg[1])
|
71
|
+
# # puts clvalue
|
72
|
+
# temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
|
73
|
+
# end
|
74
|
+
|
75
|
+
args.each do |arg|
|
76
|
+
name1 = arg[0]
|
77
|
+
if name1 == "amount" || name1 == "target"
|
78
|
+
clvalue_hash = arg[1]
|
79
|
+
clvalue = deploy_serializer.build_cl_value(arg[1])
|
80
|
+
# puts "clvalue.get_value: #{clvalue.get_value}"
|
81
|
+
temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
|
82
|
+
elsif name1 == "id"
|
83
|
+
bytes = arg[1][:bytes]
|
84
|
+
parsed = arg[1][:parsed]
|
85
|
+
h = arg[1][:cl_type]
|
86
|
+
key, value = h.first
|
87
|
+
cl_type = h.keys[0]
|
88
|
+
# puts key, value
|
89
|
+
inner_type = value
|
90
|
+
# puts "Inner Type = #{value}"
|
91
|
+
# data = { "cl_type": inner_type, "bytes": bytes, "parsed": parsed}
|
92
|
+
# clvalue = CLOption.new(data, inner_type)
|
93
|
+
|
94
|
+
inner_clvalue = Utils::Helpers.construct_inner_clvalue(inner_type, parsed)
|
95
|
+
clvalue = CLOption.new(inner_clvalue, inner_type)
|
96
|
+
# type = clvalue.get_cl_type
|
97
|
+
# puts type
|
98
|
+
# value = clvalue.get_value
|
99
|
+
# puts value
|
100
|
+
# tag = CLType::TAGS[type.to_sym]
|
101
|
+
# puts tag
|
102
|
+
# cl_value = { "cl_type": cl_type, "bytes": bytes, "parsed": parsed}
|
103
|
+
# clvalue = build_cl_value(cloption)
|
104
|
+
# puts cloption.get_value
|
105
|
+
temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
|
106
|
+
end
|
107
|
+
end
|
108
|
+
@transfer = Casper::Entity::DeployExecutableTransfer.new(temp_args)
|
109
|
+
# puts @transfer
|
110
|
+
# puts args
|
111
|
+
end
|
112
|
+
# puts @transfer
|
13
113
|
@stored_contract_by_hash = nil
|
14
114
|
@stored_contract_by_name = nil
|
15
115
|
@stored_versioned_contract_by_hash = nil
|
16
116
|
@stored_versioned_contract_by_name = nil
|
17
|
-
|
117
|
+
# @transfer = nil
|
18
118
|
end
|
19
119
|
|
20
120
|
def standard_payment(payment_amount)
|
@@ -140,6 +240,7 @@ module Casper
|
|
140
240
|
|
141
241
|
def to_bytes
|
142
242
|
if module_bytes?
|
243
|
+
# puts "DeployExecutable::to_bytes " + module_bytes?.to_s
|
143
244
|
@module_bytes.to_bytes
|
144
245
|
elsif stored_contract_by_name?
|
145
246
|
@stored_contract_by_name.to_bytes
|
@@ -154,9 +255,10 @@ module Casper
|
|
154
255
|
elsif stored_versioned_contract_by_hash?
|
155
256
|
@stored_versioned_contract_by_hash.to_bytes
|
156
257
|
elsif transfer?
|
157
|
-
@transfer.to_bytes
|
258
|
+
@transfer.to_bytes
|
259
|
+
else
|
260
|
+
raise "failed to serialize ExecutableDeployItemJsonWrapper"
|
158
261
|
end
|
159
|
-
raise "failed to serialize ExecutableDeployItemJsonWrapper"
|
160
262
|
end
|
161
263
|
end
|
162
264
|
end
|
data/lib/entity/deploy_header.rb
CHANGED
@@ -47,6 +47,10 @@ module Casper
|
|
47
47
|
@body_hash
|
48
48
|
end
|
49
49
|
|
50
|
+
def set_body_hash(body_hash)
|
51
|
+
@body_hash = body_hash
|
52
|
+
end
|
53
|
+
|
50
54
|
# @return [Array] dependencies
|
51
55
|
def get_dependencies
|
52
56
|
@dependencies
|
@@ -56,6 +60,19 @@ module Casper
|
|
56
60
|
def get_chain_name
|
57
61
|
@chain_name
|
58
62
|
end
|
63
|
+
|
64
|
+
# @return [Hash] Deploy header
|
65
|
+
def to_hash
|
66
|
+
header = {}
|
67
|
+
header[:ttl] = @ttl
|
68
|
+
header[:account] = @account
|
69
|
+
header[:body_hash] = @body_hash
|
70
|
+
header[:gas_price] = @gas_price
|
71
|
+
header[:timestamp] = @timestamp
|
72
|
+
header[:chain_name] = @chain_name
|
73
|
+
header[:dependencies] = @dependencies
|
74
|
+
return header
|
75
|
+
end
|
59
76
|
end
|
60
77
|
end
|
61
78
|
end
|
@@ -5,7 +5,7 @@ module Casper
|
|
5
5
|
|
6
6
|
def initialize(name, clvalue)
|
7
7
|
@name = name
|
8
|
-
@
|
8
|
+
@clvalue = clvalue
|
9
9
|
end
|
10
10
|
|
11
11
|
def get_name
|
@@ -13,7 +13,74 @@ module Casper
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def get_value
|
16
|
-
@
|
16
|
+
@clvalue
|
17
|
+
end
|
18
|
+
|
19
|
+
def to_byte_array(num)
|
20
|
+
result = []
|
21
|
+
begin
|
22
|
+
result << (num & 0xff)
|
23
|
+
num >>= 8
|
24
|
+
end until (num == 0 || num == -1) && (result.last[7] == num[7])
|
25
|
+
# result.reverse
|
26
|
+
result
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
def to_hash
|
31
|
+
serializer = CLValueSerializer.new
|
32
|
+
value = @clvalue.get_value
|
33
|
+
type = @clvalue.get_cl_type
|
34
|
+
if @name == "amount"
|
35
|
+
bytes = Utils::ByteUtils.byte_array_to_hex(to_byte_array(value))[0...-2]
|
36
|
+
num_of_bytes = bytes.length/2
|
37
|
+
[num_of_bytes].pack("C*").unpack1("H*") + bytes
|
38
|
+
[
|
39
|
+
@name,
|
40
|
+
{
|
41
|
+
# "bytes": serializer.to_bytes(@clvalue.get_),
|
42
|
+
"bytes": [num_of_bytes].pack("C*").unpack1("H*") + bytes,
|
43
|
+
"parsed": @clvalue.get_value,
|
44
|
+
"cl_type": @clvalue.get_cl_type
|
45
|
+
}
|
46
|
+
]
|
47
|
+
elsif @name == "target" && type == "PublicKey"
|
48
|
+
[
|
49
|
+
@name,
|
50
|
+
{
|
51
|
+
"bytes": @clvalue.to_hex,
|
52
|
+
# "bytes": [num_of_bytes].pack("C*").unpack1("H*") + bytes,
|
53
|
+
"parsed": @clvalue.to_hex,
|
54
|
+
"cl_type": @clvalue.get_cl_type
|
55
|
+
}
|
56
|
+
]
|
57
|
+
elsif @name == "id"
|
58
|
+
# puts @clvalue.get_cl_type
|
59
|
+
data = @clvalue.get_value
|
60
|
+
inner_type = data.get_cl_type
|
61
|
+
# puts inner_type
|
62
|
+
inner_value = data.get_value
|
63
|
+
parsed = inner_value
|
64
|
+
bytes = "01" + serializer.only_value(data)
|
65
|
+
# puts "01" + bytes
|
66
|
+
# inner_data = @clvalue.get_value
|
67
|
+
# inner_type = inner_data[:cl_type]
|
68
|
+
# value = inner_data[:]
|
69
|
+
# puts inner_data
|
70
|
+
# puts inner_type
|
71
|
+
[
|
72
|
+
@name,
|
73
|
+
{
|
74
|
+
"bytes": bytes,
|
75
|
+
# "bytes": [num_of_bytes].pack("C*").unpack1("H*") + bytes,
|
76
|
+
"parsed": parsed,
|
77
|
+
"cl_type": {
|
78
|
+
"#{type}": inner_type
|
79
|
+
}
|
80
|
+
}
|
81
|
+
]
|
82
|
+
end
|
83
|
+
|
17
84
|
end
|
18
85
|
end
|
19
86
|
end
|
data/lib/entity/era_summary.rb
CHANGED
@@ -3,17 +3,18 @@ module Casper
|
|
3
3
|
# The summary of an era.
|
4
4
|
class EraSummary
|
5
5
|
|
6
|
-
# @param [
|
7
|
-
# @
|
8
|
-
# @
|
9
|
-
# @
|
10
|
-
# @
|
11
|
-
|
12
|
-
|
13
|
-
@
|
14
|
-
@
|
15
|
-
@
|
16
|
-
@
|
6
|
+
# @param [Hash] era_summary
|
7
|
+
# @option era_summary [String] :block_hash
|
8
|
+
# @option era_summary [Integer] :era_id
|
9
|
+
# @option era_summary [Hash] :stored_value
|
10
|
+
# @option era_summary [String] :state_root_hash
|
11
|
+
# @option era_summary [String] :merkle_proof
|
12
|
+
def initialize(era_summary = {})
|
13
|
+
@block_hash = era_summary[:block_hash]
|
14
|
+
@era_id = era_summary[:era_id]
|
15
|
+
@stored_value = Casper::Entity::StoredValue.new(era_summary[:stored_value])
|
16
|
+
@state_root_hash = era_summary[:state_root_hash]
|
17
|
+
@merkle_proof = era_summary[:merkle_proof]
|
17
18
|
end
|
18
19
|
|
19
20
|
# @return [String] block_hash
|
@@ -26,7 +27,7 @@ module Casper
|
|
26
27
|
@era_id
|
27
28
|
end
|
28
29
|
|
29
|
-
# @return [
|
30
|
+
# @return [Hash] StoredValue
|
30
31
|
def get_stored_value
|
31
32
|
@stored_value
|
32
33
|
end
|
data/lib/entity/group.rb
CHANGED
data/lib/entity/module_bytes.rb
CHANGED
@@ -7,45 +7,59 @@ module Casper
|
|
7
7
|
|
8
8
|
# @param [String] module_bytes
|
9
9
|
# @param [Array<Array<DeployNamedArgument>>] args
|
10
|
-
def initialize(module_bytes
|
10
|
+
def initialize(module_bytes, args = [])
|
11
|
+
# puts args[0][0].get_name
|
12
|
+
# puts args[0][0].get_value
|
11
13
|
@tag = 0
|
12
14
|
@module_bytes = module_bytes
|
13
15
|
@args = args
|
14
16
|
end
|
15
17
|
|
18
|
+
# @return [Integer] the tag value
|
16
19
|
def get_tag
|
17
20
|
@tag
|
18
21
|
end
|
19
22
|
|
23
|
+
# @return [String] the module bytes
|
20
24
|
def get_module_bytes
|
21
25
|
@module_bytes
|
22
26
|
end
|
23
27
|
|
28
|
+
# @return [Array<DeployNamedArgument>] an array of DeployNamedArgument objects
|
24
29
|
def get_args
|
25
30
|
@args
|
26
31
|
end
|
27
32
|
|
33
|
+
# @param [DeployNamedArgument]
|
34
|
+
# @return [Array<DeployNamedArgument>] an array of DeployNamedArgument objects
|
28
35
|
def set_arg(deploy_named_arg)
|
29
36
|
@args << [deploy_named_arg]
|
30
37
|
end
|
31
38
|
|
39
|
+
# @return [Array<Integer>] the byte serialization of ModuleByte object
|
32
40
|
def to_bytes
|
41
|
+
puts "ModuleBytes::to_bytes is called"
|
33
42
|
bytes = ""
|
34
43
|
serializer = DeployNamedArgSerializer.new
|
35
44
|
num_of_args = @args.length
|
36
45
|
bytes += Utils::ByteUtils.to_u8(@tag)
|
37
|
-
|
38
46
|
if @module_bytes == ""
|
39
47
|
bytes += Utils::ByteUtils.to_u32(0)
|
40
48
|
end
|
41
49
|
bytes += Utils::ByteUtils.to_u32(num_of_args)
|
50
|
+
# puts args[0][0].get_name
|
51
|
+
# puts args[0][0].get_value
|
42
52
|
@args.each do |arg|
|
43
53
|
arg.each do |item|
|
44
54
|
bytes += serializer.to_bytes(item)
|
55
|
+
# puts item.get_name
|
56
|
+
# puts item.get_value
|
45
57
|
end
|
46
58
|
end
|
47
59
|
Utils::ByteUtils.hex_to_byte_array(bytes)
|
60
|
+
# bytes
|
48
61
|
end
|
62
|
+
|
49
63
|
end
|
50
64
|
end
|
51
65
|
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module Casper
|
2
|
+
module Entity
|
3
|
+
class Status
|
4
|
+
# @param [Hash] status
|
5
|
+
# @option status [String] :api_version
|
6
|
+
# @option status [String] :chainspec_name
|
7
|
+
# @option status [String] :starting_state_root_hash
|
8
|
+
# @option status [Array<Hash>] :peers
|
9
|
+
# @option status [Hash] :last_added_block_info
|
10
|
+
# @option status [String] :our_public_signing_key
|
11
|
+
# @option status [Integer] :round_length
|
12
|
+
# @option status [String] :next_upgrade
|
13
|
+
# @option status [String] :build_version
|
14
|
+
# @option status [String] :uptime
|
15
|
+
def initialize(status = {})
|
16
|
+
@api_version = status[:api_version]
|
17
|
+
@chainspec_name = status[:chainspec_name]
|
18
|
+
@starting_state_root_hash = status[:starting_state_root_hash]
|
19
|
+
@peers = []
|
20
|
+
status[:peers].map { |peer| @peers << Casper::Entity::Peer.new(peer)}
|
21
|
+
@last_added_block_info = status[:last_added_block_info]
|
22
|
+
@our_public_signing_key = status[:our_public_signing_key]
|
23
|
+
@round_length = status[:round_length]
|
24
|
+
@next_upgrade = status[:next_upgrade]
|
25
|
+
@build_version = status[:build_version]
|
26
|
+
@uptime = status[:uptime]
|
27
|
+
end
|
28
|
+
|
29
|
+
# @return [String] the RPC API version.
|
30
|
+
def get_api_version
|
31
|
+
@api_version
|
32
|
+
end
|
33
|
+
|
34
|
+
# @return [String] the chainspec name.
|
35
|
+
def get_chainspec_name
|
36
|
+
@chainspec_name
|
37
|
+
end
|
38
|
+
|
39
|
+
# @return [String] the state root hash used at the start of the current sessio
|
40
|
+
def get_starting_state_root_hash
|
41
|
+
@starting_state_root_hash
|
42
|
+
end
|
43
|
+
|
44
|
+
# @return [Array<Peer>] the node ID and network address of each connected peer.
|
45
|
+
def get_peers
|
46
|
+
@peers
|
47
|
+
end
|
48
|
+
|
49
|
+
# @return [Hash] the minimal info of the last block from the linear chain.
|
50
|
+
def get_last_added_block_info
|
51
|
+
@last_added_block_info
|
52
|
+
end
|
53
|
+
|
54
|
+
# @return [String] Our public signing key.
|
55
|
+
def get_our_public_signing_key
|
56
|
+
@our_public_signing_key
|
57
|
+
end
|
58
|
+
|
59
|
+
# @return [Integer] the next round length if this node is a validator.
|
60
|
+
def get_round_length
|
61
|
+
@round_length
|
62
|
+
end
|
63
|
+
|
64
|
+
# @return [String] information about the next scheduled upgrade.
|
65
|
+
def get_next_upgrade
|
66
|
+
@next_upgrade
|
67
|
+
end
|
68
|
+
|
69
|
+
# @return [String] the compiled node version.
|
70
|
+
def get_build_version
|
71
|
+
@build_version
|
72
|
+
end
|
73
|
+
|
74
|
+
# @return [String] the time that passed since the node has started.
|
75
|
+
def get_uptime
|
76
|
+
@uptime
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -2,7 +2,8 @@ require_relative './deploy_executable_item_internal.rb'
|
|
2
2
|
|
3
3
|
module Casper
|
4
4
|
module Entity
|
5
|
-
# Stored contract referenced by a named key existing in the signer's Account context,
|
5
|
+
# Stored contract referenced by a named key existing in the signer's Account context,
|
6
|
+
# entry point and an instance of RuntimeArgs.
|
6
7
|
class StoredContractByName < DeployExecutableItemInternal
|
7
8
|
|
8
9
|
# @param [String] name
|
data/lib/entity/stored_value.rb
CHANGED
@@ -1,57 +1,132 @@
|
|
1
|
+
|
1
2
|
module Casper
|
2
3
|
module Entity
|
3
4
|
|
4
5
|
# A class that represents a value stored in global state.
|
5
6
|
class StoredValue
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
8
|
+
# @param [Hash] stored_value
|
9
|
+
# @option stored_value [CLValue] :CLValue
|
10
|
+
# @option stored_value [Account] :Account
|
11
|
+
# @option stored_value [String] :ContractWasm
|
12
|
+
# @option stored_value [Contract] :Contract
|
13
|
+
# @option stored_value [ContractPackage] :ContractPackage
|
14
|
+
# @option stored_value [Transfer] :Transfer
|
15
|
+
# @option stored_value [DeployInfo] :DeployInfo
|
16
|
+
# @option stored_value [EraInfo] :EraInfo
|
17
|
+
# @option stored_value [Bid] :Bid
|
18
|
+
# @option stored_value [Array] :Withdraw
|
19
|
+
def initialize(stored_value = {})
|
20
|
+
@stored_value = stored_value
|
21
|
+
@cl_value = nil
|
22
|
+
@account = nil
|
23
|
+
@contract_wasm = nil
|
24
|
+
@contract = nil
|
25
|
+
@contract_package = nil
|
26
|
+
@transfer = nil
|
27
|
+
@deploy_info = nil
|
28
|
+
@era_info = nil
|
29
|
+
@bid = nil
|
30
|
+
@withdraw = nil
|
31
|
+
@key = nil
|
32
|
+
if stored_value.has_key?(:CLValue)
|
33
|
+
@cl_value = stored_value[:CLValue]
|
34
|
+
@key = :CLValue
|
35
|
+
end
|
36
|
+
if stored_value.has_key?(:Account)
|
37
|
+
@account = stored_value[:Account]
|
38
|
+
@key = :Account
|
39
|
+
end
|
40
|
+
if stored_value.has_key?(:ContractWasm)
|
41
|
+
@contract_wasm = stored_value[:ContractWasm]
|
42
|
+
@key = :ContractWasm
|
43
|
+
end
|
44
|
+
if stored_value.has_key?(:Contract)
|
45
|
+
@contract = stored_value[:Contract]
|
46
|
+
@key = :Contract
|
47
|
+
end
|
48
|
+
if stored_value.has_key?(:ContractPackage)
|
49
|
+
@contract_package = stored_value[:ContractPackage]
|
50
|
+
@key = :ContractPackage
|
51
|
+
end
|
52
|
+
if stored_value.has_key?(:Transfer)
|
53
|
+
@transfer = stored_value[:Transfer]
|
54
|
+
@key = :Transfer
|
55
|
+
end
|
56
|
+
if stored_value.has_key?(:DeployInfo)
|
57
|
+
@transfer = stored_value[:DeployInfo]
|
58
|
+
@key = :Deploy
|
59
|
+
end
|
60
|
+
if stored_value.has_key?(:EraInfo)
|
61
|
+
@era_info = stored_value[:EraInfo]
|
62
|
+
@key = :EraInfo
|
63
|
+
end
|
64
|
+
if stored_value.has_key?(:Bid)
|
65
|
+
@bid = stored_value[:Bid]
|
66
|
+
@key = :Bid
|
67
|
+
end
|
68
|
+
if stored_value.has_key?(:Withdraw)
|
69
|
+
@withdraw = stored_value[:Withdraw]
|
70
|
+
@key = :Withdraw
|
71
|
+
end
|
17
72
|
end
|
18
73
|
|
74
|
+
# @return [CLValue] a CasperLabs value.
|
19
75
|
def get_cl_value
|
20
76
|
@cl_value
|
21
77
|
end
|
22
78
|
|
79
|
+
# @return [Account] an account.
|
23
80
|
def get_account
|
24
81
|
@account
|
25
82
|
end
|
26
83
|
|
84
|
+
# @return [String] a contract’s Wasm
|
27
85
|
def get_contract
|
28
86
|
@contract
|
29
87
|
end
|
30
|
-
|
88
|
+
|
89
|
+
# @return [Contract] methods and type signatures supported by a contract.
|
90
|
+
def get_contract
|
91
|
+
@contract
|
92
|
+
end
|
93
|
+
# @return [ContractPackage] contract definition, metadata, and security container.
|
31
94
|
def get_contract_package
|
32
95
|
@contract_package
|
33
96
|
end
|
34
97
|
|
98
|
+
# @return [Transfer] record of a transfer
|
35
99
|
def get_transfer
|
36
100
|
@transfer
|
37
101
|
end
|
38
102
|
|
103
|
+
# @return [DeployInfo] record of a deploy
|
39
104
|
def get_deploy_info
|
40
105
|
@deploy_info
|
41
106
|
end
|
42
107
|
|
108
|
+
# @return [EraInfo] auction metadata
|
43
109
|
def get_era_info
|
44
110
|
@era_info
|
45
111
|
end
|
46
112
|
|
113
|
+
# @return [Bid] a bid
|
47
114
|
def get_bid
|
48
115
|
@bid
|
49
116
|
end
|
50
117
|
|
118
|
+
# @return [Array] a withdraw
|
51
119
|
def get_withdraw
|
52
120
|
@withdraw
|
53
121
|
end
|
54
122
|
|
123
|
+
def get_stored_value
|
124
|
+
@stored_value[@key]
|
125
|
+
end
|
126
|
+
|
127
|
+
def get_key
|
128
|
+
@key
|
129
|
+
end
|
55
130
|
end
|
56
131
|
end
|
57
132
|
end
|
@@ -2,7 +2,8 @@ require_relative './deploy_executable_item_internal.rb'
|
|
2
2
|
|
3
3
|
module Casper
|
4
4
|
module Entity
|
5
|
-
# Stored versioned contract referenced by its ContractPackageHash,
|
5
|
+
# Stored versioned contract referenced by its ContractPackageHash,
|
6
|
+
# entry point and an instance of RuntimeArgs.
|
6
7
|
class StoredVersionedContractByHash < DeployExecutableItemInternal
|
7
8
|
|
8
9
|
# @param [String] hash
|
@@ -3,7 +3,7 @@ require_relative './deploy_executable_item_internal.rb'
|
|
3
3
|
module Casper
|
4
4
|
module Entity
|
5
5
|
# Stored versioned contract referenced by a named key existing in the signer's Account context,
|
6
|
-
#
|
6
|
+
# entry point and an instance of RuntimeArgs.
|
7
7
|
class StoredVersionedContractByName < DeployExecutableItemInternal
|
8
8
|
|
9
9
|
# @param [String] name
|
data/lib/entity/transfer.rb
CHANGED
@@ -23,32 +23,32 @@ module Casper
|
|
23
23
|
@id = transfer[:id]
|
24
24
|
end
|
25
25
|
|
26
|
-
# @return [String]
|
26
|
+
# @return [String] deploy that created the transfer
|
27
27
|
def get_deploy_hash
|
28
28
|
@deploy_hash
|
29
29
|
end
|
30
30
|
|
31
|
-
# @return [String] from
|
31
|
+
# @return [String] account from which transfer was executed
|
32
32
|
def get_from
|
33
33
|
@from
|
34
34
|
end
|
35
35
|
|
36
|
-
# @return [String] to
|
36
|
+
# @return [String] account to which funds are transferred
|
37
37
|
def get_to
|
38
38
|
@to
|
39
39
|
end
|
40
40
|
|
41
|
-
# @return [String]
|
41
|
+
# @return [String] tource purse
|
42
42
|
def get_source
|
43
43
|
@source
|
44
44
|
end
|
45
45
|
|
46
|
-
# @return [String] target
|
46
|
+
# @return [String] target purse
|
47
47
|
def get_target
|
48
48
|
@target
|
49
49
|
end
|
50
50
|
|
51
|
-
# @return [String] amount
|
51
|
+
# @return [String] transfer amount
|
52
52
|
def get_amount
|
53
53
|
@amount
|
54
54
|
end
|
@@ -57,7 +57,7 @@ module Casper
|
|
57
57
|
def get_gas
|
58
58
|
@gas
|
59
59
|
end
|
60
|
-
# @return [Integer] id
|
60
|
+
# @return [Integer] user-defined id
|
61
61
|
def get_id
|
62
62
|
@id
|
63
63
|
end
|