casper_network 0.2.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +15 -4
- data/lib/casper_network.rb +62 -7
- data/lib/crypto/00_asymmetric_key.rb +95 -0
- data/lib/crypto/01_ed25519.rb +67 -0
- data/lib/crypto/asymmetric_key.rb +87 -0
- data/lib/crypto/ed25519_key.rb +44 -0
- data/lib/crypto/key_pair.rb +40 -0
- data/lib/crypto/keys.rb +7 -0
- data/lib/crypto/secp256k1_key.rb +0 -0
- data/lib/crypto/test_ed25519_key.rb +44 -0
- data/lib/entity/account.rb +45 -0
- data/lib/entity/action_thresholds.rb +25 -0
- data/lib/entity/associated_key.rb +24 -0
- data/lib/entity/contract.rb +47 -0
- data/lib/entity/contract_package.rb +41 -0
- data/lib/entity/contract_version.rb +33 -0
- data/lib/entity/deploy_approval.rb +7 -6
- data/lib/entity/deploy_executable.rb +154 -1
- data/lib/entity/deploy_executable_item_internal.rb +26 -0
- data/lib/entity/deploy_executable_transfer.rb +50 -0
- data/lib/entity/deploy_header.rb +17 -15
- data/lib/entity/deploy_info.rb +44 -0
- data/lib/entity/deploy_named_argument.rb +19 -0
- data/lib/entity/deploy_transfer.rb +10 -0
- data/lib/entity/disabled_version.rb +26 -0
- data/lib/entity/era_info.rb +18 -0
- data/lib/entity/executable_deploy_item.rb +11 -0
- data/lib/entity/group.rb +25 -0
- data/lib/entity/module_bytes.rb +50 -0
- data/lib/entity/seigniorage_allocation.rb +18 -0
- data/lib/entity/stored_contract_by_hash.rb +50 -0
- data/lib/entity/stored_contract_by_name.rb +50 -0
- data/lib/entity/stored_value.rb +57 -0
- data/lib/entity/stored_versioned_contract_by_hash.rb +61 -0
- data/lib/entity/stored_versioned_contract_by_name.rb +61 -0
- data/lib/entity/transfer.rb +65 -0
- data/lib/entity/vesting_schedule.rb +22 -0
- data/lib/include.rb +18 -0
- data/lib/rpc/rpc.rb +227 -0
- data/lib/rpc/rpc_client.rb +45 -39
- data/lib/serialization/cl_type_serializer.rb +76 -0
- data/lib/serialization/cl_value_bytes_parsers.rb +498 -0
- data/lib/serialization/cl_value_serializer.rb +259 -0
- data/lib/serialization/deploy_approval_serializer.rb +15 -0
- data/lib/serialization/deploy_executable_serializer.rb +26 -0
- data/lib/serialization/deploy_header_serializer.rb +49 -0
- data/lib/serialization/deploy_named_arg_serializer.rb +19 -0
- data/lib/serialization/deploy_serializer.rb +268 -0
- data/lib/serialization/test.rb +431 -0
- data/lib/types/cl_account_hash.rb +24 -0
- data/lib/types/cl_account_hash_type.rb +22 -0
- data/lib/types/cl_any.rb +25 -0
- data/lib/types/cl_any_type.rb +22 -0
- data/lib/types/cl_bool.rb +32 -0
- data/lib/types/cl_bool_type.rb +35 -0
- data/lib/types/cl_byte_array.rb +25 -0
- data/lib/types/cl_byte_array_type.rb +27 -0
- data/lib/types/cl_i32.rb +26 -0
- data/lib/types/cl_i32_type.rb +26 -0
- data/lib/types/cl_i64.rb +26 -0
- data/lib/types/cl_i64_type.rb +27 -0
- data/lib/types/cl_key.rb +39 -0
- data/lib/types/cl_key_type.rb +27 -0
- data/lib/types/cl_list.rb +25 -0
- data/lib/types/cl_list_type.rb +26 -0
- data/lib/types/cl_map.rb +25 -0
- data/lib/types/cl_map_type.rb +26 -0
- data/lib/types/cl_option.rb +33 -0
- data/lib/types/cl_option_type.rb +52 -0
- data/lib/types/cl_public_key.rb +152 -0
- data/lib/types/cl_public_key_type.rb +26 -0
- data/lib/types/cl_result.rb +25 -0
- data/lib/types/cl_result_type.rb +26 -0
- data/lib/types/cl_string.rb +39 -0
- data/lib/types/cl_string_type.rb +32 -0
- data/lib/types/cl_tuple.rb +151 -0
- data/lib/types/cl_tuple_type.rb +108 -0
- data/lib/types/cl_type.rb +94 -0
- data/lib/types/cl_type_tag.rb +51 -0
- data/lib/types/cl_u128.rb +26 -0
- data/lib/types/cl_u128_type.rb +26 -0
- data/lib/types/cl_u256.rb +26 -0
- data/lib/types/cl_u256_type.rb +26 -0
- data/lib/types/cl_u32.rb +26 -0
- data/lib/types/cl_u32_type.rb +26 -0
- data/lib/types/cl_u512.rb +26 -0
- data/lib/types/cl_u512_type.rb +26 -0
- data/lib/types/cl_u64.rb +26 -0
- data/lib/types/cl_u64_type.rb +27 -0
- data/lib/types/cl_u8.rb +26 -0
- data/lib/types/cl_u8_type.rb +26 -0
- data/lib/types/cl_unit.rb +38 -0
- data/lib/types/cl_unit_type.rb +22 -0
- data/lib/types/cl_uref.rb +119 -0
- data/lib/types/cl_uref_type.rb +46 -0
- data/lib/types/cl_value.rb +10 -0
- data/lib/types/constants.rb +50 -0
- data/lib/types/error.rb +7 -0
- data/lib/utils/base_16.rb +18 -0
- data/lib/utils/byte_utils.rb +107 -0
- data/lib/utils/find_byte_parser_by_cl_type.rb +53 -0
- data/lib/utils/hash_utils.rb +19 -0
- data/lib/utils/hex_utils.rb +12 -0
- data/lib/utils/time_utils.rb +85 -0
- data/lib/utils/utils.rb +2 -0
- data/lib/version.rb +3 -0
- data/spec/a_spec.rb +697 -0
- data/spec/byte_utils_spec.rb +72 -0
- data/spec/cl_public_spec.rb +169 -0
- data/spec/cl_types_spec.rb +715 -0
- data/spec/cl_value_serializer_spec.rb +140 -0
- data/spec/client_spec.rb +20 -20
- data/spec/crypto_spec.rb +42 -0
- data/spec/deploy_approval_serializer_spec.rb +26 -0
- data/spec/deploy_executable_serializer_spec.rb +0 -0
- data/spec/deploy_header_serializer_spec.rb +21 -0
- data/spec/deploy_named_arg_serializer_spec.rb +49 -0
- data/spec/deploy_serializer_spec.rb +77 -0
- data/spec/deploy_serializer_test_spec.rb +225 -0
- data/spec/mainnet_spec.rb +8 -8
- data/spec/string_spec.rb +68 -0
- data/spec/testnet_spec.rb +11 -11
- data/spec/time_utils_spec.rb +87 -0
- metadata +130 -2
@@ -0,0 +1,47 @@
|
|
1
|
+
module Casper
|
2
|
+
module Entity
|
3
|
+
|
4
|
+
# Contract entity class
|
5
|
+
class Contract
|
6
|
+
|
7
|
+
# @param [String] contract_package_hash
|
8
|
+
# @param [String] contract_wasm_hash
|
9
|
+
# @param [Array] entry_points
|
10
|
+
# @param [Array] named_keys
|
11
|
+
# @param [String] protocol_version
|
12
|
+
def initialize(contract_package_hash, contract_wasm_hash, named_keys, entry_points, protocol_version)
|
13
|
+
@contract_package_hash = contract_package_hash
|
14
|
+
@contract_wasm_hash = contract_wasm_hash
|
15
|
+
@entry_points = entry_points
|
16
|
+
@named_keys = named_keys
|
17
|
+
@protocol_version = protocol_version
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [String] contract_package_hash
|
21
|
+
def get_contract_package_hash
|
22
|
+
@contract_package_hash
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [String] contract_wasm_hash
|
26
|
+
def get_contract_wasm_hash
|
27
|
+
@contract_wasm_hash
|
28
|
+
end
|
29
|
+
|
30
|
+
# @return [Array] entry_points
|
31
|
+
def get_entry_points
|
32
|
+
@entry_points
|
33
|
+
end
|
34
|
+
|
35
|
+
# @return [Array] named_keys
|
36
|
+
def get_named_keys
|
37
|
+
@named_keys
|
38
|
+
end
|
39
|
+
|
40
|
+
# @return [String] protocol_version
|
41
|
+
def get_protocol_version
|
42
|
+
@protocol_version
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Casper
|
2
|
+
module Entity
|
3
|
+
|
4
|
+
# Contract definition, metadata and security container.
|
5
|
+
class ContractPackage
|
6
|
+
|
7
|
+
# @param [CLURef] access_key
|
8
|
+
# @param [ContractVersion] versions
|
9
|
+
# @param [DisabledVersion] disabled_versions
|
10
|
+
# @param [Group] groups
|
11
|
+
def initialize(access_key, versions, disabled_versions, groups)
|
12
|
+
@access_key = access_key
|
13
|
+
@versions = versions
|
14
|
+
@disabled_versions = disabled_versions
|
15
|
+
@groups = groups
|
16
|
+
end
|
17
|
+
|
18
|
+
# @return [CLURef] access_key
|
19
|
+
def get_access_key
|
20
|
+
@access_key
|
21
|
+
end
|
22
|
+
|
23
|
+
# @return [ContractVersion] versions
|
24
|
+
def get_versions
|
25
|
+
@versions
|
26
|
+
end
|
27
|
+
|
28
|
+
# @return [DisabledVersion] versions
|
29
|
+
def get_disabled_versions
|
30
|
+
@disabled_versions
|
31
|
+
end
|
32
|
+
|
33
|
+
# @return [Group] groups
|
34
|
+
def get_groups
|
35
|
+
@groups
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Casper
|
2
|
+
module Entity
|
3
|
+
|
4
|
+
# The version of the contract.
|
5
|
+
class ContractVersion
|
6
|
+
|
7
|
+
# @param [Integer] protocol_version_major
|
8
|
+
# @param [Integer] contract_version
|
9
|
+
# @param [String] contract_hash
|
10
|
+
def initialize(protocol_version_major, contract_version, contract_hash)
|
11
|
+
@protocol_version_major = protocol_version_major
|
12
|
+
@contract_version = contract_version
|
13
|
+
@contract_hash = contract_hash
|
14
|
+
end
|
15
|
+
|
16
|
+
# @return [Integer] protocol_version_major
|
17
|
+
def get_protocol_version_major
|
18
|
+
@protocol_version_major
|
19
|
+
end
|
20
|
+
|
21
|
+
# @return [Integer] contract_version
|
22
|
+
def get_contract_version
|
23
|
+
@contract_version
|
24
|
+
end
|
25
|
+
|
26
|
+
# @return [String] contract_hash
|
27
|
+
def get_contract_hash
|
28
|
+
@contract_hash
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -1,12 +1,13 @@
|
|
1
1
|
module Casper
|
2
2
|
module Entity
|
3
3
|
class DeployApproval
|
4
|
-
|
5
|
-
# @param [
|
6
|
-
# @
|
7
|
-
|
8
|
-
|
9
|
-
@
|
4
|
+
|
5
|
+
# @param [Hash] approval
|
6
|
+
# @option approval [String] :signer
|
7
|
+
# @option approval [String] :signature
|
8
|
+
def initialize(approval = {})
|
9
|
+
@signer = approval[:signer]
|
10
|
+
@signature = approval[:signature]
|
10
11
|
end
|
11
12
|
|
12
13
|
# @return [String] signer
|
@@ -1,8 +1,161 @@
|
|
1
|
+
require_relative './deploy_named_argument.rb'
|
2
|
+
require_relative './module_bytes.rb'
|
3
|
+
require_relative './deploy_executable_transfer.rb'
|
4
|
+
|
1
5
|
module Casper
|
2
6
|
module Entity
|
3
7
|
class DeployExecutable
|
4
|
-
|
8
|
+
attr_accessor :module_bytes, :transfer, :stored_contract_by_hash, :stored_contract_by_name,
|
9
|
+
:stored_versioned_contract_by_hash, :stored_versioned_contract_by_name
|
5
10
|
def initialize
|
11
|
+
@module_bytes = nil
|
12
|
+
@stored_contract_by_hash = nil
|
13
|
+
@stored_contract_by_name = nil
|
14
|
+
@stored_versioned_contract_by_hash = nil
|
15
|
+
@stored_versioned_contract_by_name = nil
|
16
|
+
@transfer = nil
|
17
|
+
end
|
18
|
+
|
19
|
+
def standard_payment(payment_amount)
|
20
|
+
@module_bytes = ModuleBytes.new("", [])
|
21
|
+
arg = DeployNamedArgument.new("amount", CLu512.new(payment_amount))
|
22
|
+
@module_bytes.set_arg(arg) # => Add arg and return args
|
23
|
+
@module_bytes
|
24
|
+
end
|
25
|
+
|
26
|
+
# @param [Integer] id
|
27
|
+
# @param [Integer] amount
|
28
|
+
# @param [CLURef | CLPublicKey] target
|
29
|
+
# @param [CLURef | CLPublicKey] source_purse
|
30
|
+
# @return [DeployExecutable]
|
31
|
+
def new_transfer(id, amount, target, source_purse = nil)
|
32
|
+
if target.instance_of? CLURef
|
33
|
+
@target = target
|
34
|
+
elsif target.instance_of? CLPublicKey
|
35
|
+
@target = target.to_account_hash_byte_array
|
36
|
+
else
|
37
|
+
raise ArgumentError.new("Please specify target")
|
38
|
+
end
|
39
|
+
arg1 = DeployNamedArgument.new("amount", CLu512.new(amount))
|
40
|
+
# arg2 = DeployNamedArgument.new("target", @target)
|
41
|
+
@transfer = DeployExecutableTransfer.new([])
|
42
|
+
# @transfer.set_arg(DeployNamedArgument.new("target", @target))
|
43
|
+
# @transfer.set_arg(arg1)
|
44
|
+
# @transfer.set_arg(arg2)
|
45
|
+
# @transfer
|
46
|
+
|
47
|
+
if source_purse != nil
|
48
|
+
@transfer.set_arg(DeployNamedArgument.new("source", source_purse))
|
49
|
+
# @transfer
|
50
|
+
end
|
51
|
+
@transfer.set_arg(DeployNamedArgument.new("target", @target))
|
52
|
+
@transfer.set_arg(DeployNamedArgument.new("id", CLu64.new(id)))
|
53
|
+
@transfer
|
54
|
+
end
|
55
|
+
|
56
|
+
def set_module_bytes(module_bytes)
|
57
|
+
@module_bytes = module_bytes
|
58
|
+
end
|
59
|
+
|
60
|
+
# @return [ModuleBytes] module_bytes
|
61
|
+
def get_module_bytes
|
62
|
+
@module_bytes
|
63
|
+
end
|
64
|
+
|
65
|
+
# @return [Boolean]
|
66
|
+
def module_bytes?
|
67
|
+
@module_bytes != nil
|
68
|
+
end
|
69
|
+
|
70
|
+
# @param [DeployExecutableTransfer] transfer
|
71
|
+
def set_transfer(transfer)
|
72
|
+
@transfer = transfer
|
73
|
+
end
|
74
|
+
|
75
|
+
def get_transfer
|
76
|
+
@transfer
|
77
|
+
end
|
78
|
+
|
79
|
+
# @return [Boolean]
|
80
|
+
def transfer?
|
81
|
+
@transfer != nil
|
82
|
+
end
|
83
|
+
|
84
|
+
# @param [StoredContractByHash] transfer
|
85
|
+
def set_stored_contract_by_hash(stored_contract_by_hash)
|
86
|
+
@stored_contract_by_hash = stored_contract_by_hash
|
87
|
+
end
|
88
|
+
|
89
|
+
def get_stored_contract_by_hash
|
90
|
+
@stored_contract_by_hash
|
91
|
+
end
|
92
|
+
|
93
|
+
# @return [Boolean]
|
94
|
+
def stored_contract_by_hash?
|
95
|
+
@stored_contract_by_hash != nil
|
96
|
+
end
|
97
|
+
|
98
|
+
# @param [StoredContractByName] stored_contract_by_name
|
99
|
+
def set_stored_contract_by_name(stored_contract_by_name)
|
100
|
+
@stored_contract_by_name = stored_contract_by_name
|
101
|
+
end
|
102
|
+
|
103
|
+
def get_stored_contract_by_name
|
104
|
+
@stored_contract_by_name
|
105
|
+
end
|
106
|
+
|
107
|
+
# @return [Boolean]
|
108
|
+
def stored_contract_by_name?
|
109
|
+
@stored_contract_by_name != nil
|
110
|
+
end
|
111
|
+
|
112
|
+
# @param [StoredVersionedContractByHash] stored_contract_by_name
|
113
|
+
def set_stored_versioned_contract_by_hash(stored_versioned_contract_by_hash)
|
114
|
+
@stored_versioned_contract_by_hash = stored_versioned_contract_by_hash
|
115
|
+
end
|
116
|
+
|
117
|
+
def get_stored_versioned_contract_by_hash
|
118
|
+
@stored_versioned_contract_by_hash
|
119
|
+
end
|
120
|
+
|
121
|
+
# @return [Boolean]
|
122
|
+
def stored_versioned_contract_by_hash?
|
123
|
+
@stored_versioned_contract_by_hash != nil
|
124
|
+
end
|
125
|
+
|
126
|
+
# @param [StoredVersionedContractByName] stored_contract_by_name
|
127
|
+
def set_stored_versioned_contract_by_name(stored_versioned_contract_by_name)
|
128
|
+
@stored_versioned_contract_by_name = stored_versioned_contract_by_name
|
129
|
+
end
|
130
|
+
|
131
|
+
def get_stored_versioned_contract_by_name
|
132
|
+
@stored_versioned_contract_by_name
|
133
|
+
end
|
134
|
+
|
135
|
+
# @return [Boolean]
|
136
|
+
def stored_versioned_contract_by_name?
|
137
|
+
@stored_versioned_contract_by_name != nil
|
138
|
+
end
|
139
|
+
|
140
|
+
def to_bytes
|
141
|
+
if module_bytes?
|
142
|
+
@module_bytes.to_bytes
|
143
|
+
elsif stored_contract_by_name?
|
144
|
+
@stored_contract_by_name.to_bytes
|
145
|
+
elsif stored_contract_by_hash?
|
146
|
+
@stored_contract_by_hash.to_bytes
|
147
|
+
elsif stored_contract_by_name?
|
148
|
+
@stored_contract_by_name.to_bytes
|
149
|
+
elsif stored_versioned_contract_by_hash?
|
150
|
+
@stored_versioned_contract_by_hash.to_bytes
|
151
|
+
elsif stored_versioned_contract_by_name?
|
152
|
+
@stored_versioned_contract_by_name.to_bytes
|
153
|
+
elsif stored_versioned_contract_by_hash?
|
154
|
+
@stored_versioned_contract_by_hash.to_bytes
|
155
|
+
elsif transfer?
|
156
|
+
@transfer.to_bytes
|
157
|
+
end
|
158
|
+
raise "failed to serialize ExecutableDeployItemJsonWrapper"
|
6
159
|
end
|
7
160
|
end
|
8
161
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative './deploy_named_argument.rb'
|
2
|
+
|
3
|
+
module Casper
|
4
|
+
module Entity
|
5
|
+
class DeployExecutableItemInternal
|
6
|
+
attr_accessor :args
|
7
|
+
def initialize(deploy_named_args = [])
|
8
|
+
@args = deploy_named_args
|
9
|
+
end
|
10
|
+
|
11
|
+
# @return [Array<DeployNamedArg>]
|
12
|
+
def get_args
|
13
|
+
@args
|
14
|
+
end
|
15
|
+
|
16
|
+
# @return [DeployNamedArg]
|
17
|
+
def get_arg_by_name(arg)
|
18
|
+
@args.include?(arg) == true ? arg : nil
|
19
|
+
end
|
20
|
+
|
21
|
+
def set_arg(deploy_named_arg)
|
22
|
+
@args << [deploy_named_arg]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require_relative './deploy_executable_item_internal.rb'
|
2
|
+
|
3
|
+
=begin
|
4
|
+
"Transfer": {
|
5
|
+
"args": [
|
6
|
+
[
|
7
|
+
"amount",
|
8
|
+
{
|
9
|
+
"cl_type": "I32",
|
10
|
+
"bytes": "e8030000",
|
11
|
+
"parsed": 1000
|
12
|
+
}
|
13
|
+
]
|
14
|
+
]
|
15
|
+
}
|
16
|
+
|
17
|
+
=end
|
18
|
+
module Casper
|
19
|
+
module Entity
|
20
|
+
class DeployExecutableTransfer < DeployExecutableItemInternal
|
21
|
+
|
22
|
+
# @param [Array<Array<DeployNamedArgument>>] args
|
23
|
+
def initialize(args)
|
24
|
+
@tag = 5
|
25
|
+
@args = args
|
26
|
+
end
|
27
|
+
|
28
|
+
def get_tag
|
29
|
+
@tag
|
30
|
+
end
|
31
|
+
|
32
|
+
def get_args
|
33
|
+
@args
|
34
|
+
end
|
35
|
+
|
36
|
+
def to_bytes
|
37
|
+
serializer = DeployNamedArgSerializer.new
|
38
|
+
num_of_args = @args.length
|
39
|
+
bytes = Utils::ByteUtils.to_u8(@tag) + Utils::ByteUtils.to_u32(num_of_args)
|
40
|
+
|
41
|
+
@args.each do |arg|
|
42
|
+
arg.each do |item|
|
43
|
+
bytes += serializer.to_bytes(item)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
Utils::ByteUtils.hex_to_byte_array(bytes)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/entity/deploy_header.rb
CHANGED
@@ -2,23 +2,25 @@ module Casper
|
|
2
2
|
module Entity
|
3
3
|
class DeployHeader
|
4
4
|
|
5
|
-
# @param [
|
6
|
-
# @
|
7
|
-
# @
|
8
|
-
# @
|
9
|
-
# @
|
10
|
-
# @
|
11
|
-
# @
|
12
|
-
|
13
|
-
|
14
|
-
@
|
15
|
-
@
|
16
|
-
@
|
17
|
-
@
|
18
|
-
@
|
19
|
-
@
|
5
|
+
# @param [Hash] header
|
6
|
+
# @option header [String] :account
|
7
|
+
# @option header [Integer] :timestamp
|
8
|
+
# @option header [Integer] :ttl
|
9
|
+
# @option header [Integer] :gas_price
|
10
|
+
# @option header [String] :body_hash
|
11
|
+
# @option header [Array] :dependencies
|
12
|
+
# @option header [String] :chain_name
|
13
|
+
def initialize(header = {})
|
14
|
+
@account = header[:account]
|
15
|
+
@timestamp = header[:timestamp]
|
16
|
+
@ttl = header[:ttl]
|
17
|
+
@gas_price = header[:gas_price]
|
18
|
+
@body_hash = header[:body_hash]
|
19
|
+
@dependencies = header[:dependencies]
|
20
|
+
@chain_name = header[:chain_name]
|
20
21
|
end
|
21
22
|
|
23
|
+
|
22
24
|
# @return [String] account
|
23
25
|
def get_account
|
24
26
|
@account
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Casper
|
2
|
+
module Entity
|
3
|
+
class DeployInfo
|
4
|
+
|
5
|
+
# @param [String] hash
|
6
|
+
# @param [Array] transfers
|
7
|
+
# @param [String] from
|
8
|
+
# @param [String] source
|
9
|
+
# @param [String] gas
|
10
|
+
def initialize(hash, transfers, from, source, gas)
|
11
|
+
@hash = hash
|
12
|
+
@transfers = transfers
|
13
|
+
@from = from
|
14
|
+
@source = source
|
15
|
+
@gas = gas
|
16
|
+
end
|
17
|
+
|
18
|
+
# @return [String] hash
|
19
|
+
def get_hash
|
20
|
+
@hash
|
21
|
+
end
|
22
|
+
|
23
|
+
# @return [Array] transfers
|
24
|
+
def get_transfers
|
25
|
+
@transfers
|
26
|
+
end
|
27
|
+
|
28
|
+
# @return [String] from
|
29
|
+
def get_from
|
30
|
+
@from
|
31
|
+
end
|
32
|
+
|
33
|
+
# @return [String] source
|
34
|
+
def get_source
|
35
|
+
@source
|
36
|
+
end
|
37
|
+
|
38
|
+
# @return [String] gas
|
39
|
+
def get_gas
|
40
|
+
@gas
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Casper
|
2
|
+
module Entity
|
3
|
+
|
4
|
+
# A disabled version of a contract.
|
5
|
+
class DisabledVersion
|
6
|
+
|
7
|
+
# @param [Integer] protocol_version_major
|
8
|
+
# @param [Integer] contract_version
|
9
|
+
def initialize(protocol_version_major, contract_version)
|
10
|
+
@protocol_version_major = protocol_version_major
|
11
|
+
@contract_version = contract_version
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [Integer] protocol_version_major
|
15
|
+
def get_protocol_version_major
|
16
|
+
@protocol_version_major
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [Integer] contract_version
|
20
|
+
def get_contract_version
|
21
|
+
@contract_version
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Casper
|
2
|
+
module Entity
|
3
|
+
|
4
|
+
# Auction metadata, intended to be recorded each era.
|
5
|
+
class EraInfo
|
6
|
+
|
7
|
+
# @param [Array] seigniorage_allocations rewards list allocated to validators and delegators
|
8
|
+
def initialize(seigniorage_allocations)
|
9
|
+
@seigniorage_allocations = seigniorage_allocations
|
10
|
+
end
|
11
|
+
|
12
|
+
# @return [Array]
|
13
|
+
def get_seigniorage_allocations
|
14
|
+
@seigniorage_allocations
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/entity/group.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
module Casper
|
2
|
+
module Entity
|
3
|
+
|
4
|
+
class Group
|
5
|
+
|
6
|
+
# @param [String] group
|
7
|
+
# @param [Array<CLURef>] keys
|
8
|
+
def initialize(group, keys)
|
9
|
+
@group = group
|
10
|
+
@keys = keys
|
11
|
+
end
|
12
|
+
|
13
|
+
# @return [String] group
|
14
|
+
def get_group
|
15
|
+
@group
|
16
|
+
end
|
17
|
+
|
18
|
+
# @return [Array<CLURef>] keys
|
19
|
+
def get_keys
|
20
|
+
@keys
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require_relative './deploy_executable_item_internal.rb'
|
2
|
+
|
3
|
+
module Casper
|
4
|
+
module Entity
|
5
|
+
class ModuleBytes < DeployExecutableItemInternal
|
6
|
+
|
7
|
+
# @param [String] module_bytes
|
8
|
+
# @param [Array<Array<DeployNamedArgument>>] args
|
9
|
+
def initialize(module_bytes=nil, args = [])
|
10
|
+
@tag = 0
|
11
|
+
@module_bytes = module_bytes
|
12
|
+
@args = args
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_tag
|
16
|
+
@tag
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_module_bytes
|
20
|
+
@module_bytes
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_args
|
24
|
+
@args
|
25
|
+
end
|
26
|
+
|
27
|
+
def set_arg(deploy_named_arg)
|
28
|
+
@args << [deploy_named_arg]
|
29
|
+
end
|
30
|
+
|
31
|
+
def to_bytes
|
32
|
+
bytes = ""
|
33
|
+
serializer = DeployNamedArgSerializer.new
|
34
|
+
num_of_args = @args.length
|
35
|
+
bytes += Utils::ByteUtils.to_u8(@tag)
|
36
|
+
|
37
|
+
if @module_bytes == ""
|
38
|
+
bytes += Utils::ByteUtils.to_u32(0)
|
39
|
+
end
|
40
|
+
bytes += Utils::ByteUtils.to_u32(num_of_args)
|
41
|
+
@args.each do |arg|
|
42
|
+
arg.each do |item|
|
43
|
+
bytes += serializer.to_bytes(item)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
Utils::ByteUtils.hex_to_byte_array(bytes)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Casper
|
2
|
+
module Entity
|
3
|
+
|
4
|
+
# Information about seigniorage allocation.
|
5
|
+
class SeigniorageAllocation
|
6
|
+
|
7
|
+
# @param [Array] seigniorage_allocations rewards list allocated to validators and delegators
|
8
|
+
def initialize(seigniorage_allocations)
|
9
|
+
@seigniorage_allocations = seigniorage_allocations
|
10
|
+
end
|
11
|
+
|
12
|
+
# @return [Array]
|
13
|
+
def get_seigniorage_allocations
|
14
|
+
@seigniorage_allocations
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|