test_sdk1 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (140) hide show
  1. checksums.yaml +7 -0
  2. data/CONTRIBUTING.md +1 -0
  3. data/LICENSE +201 -0
  4. data/README.md +147 -0
  5. data/SECURITY.md +12 -0
  6. data/lib/crypto/00_asymmetric_key.rb +95 -0
  7. data/lib/crypto/01_ed25519.rb +67 -0
  8. data/lib/crypto/asymmetric_key.rb +87 -0
  9. data/lib/crypto/ed25519_key.rb +44 -0
  10. data/lib/crypto/key_pair.rb +40 -0
  11. data/lib/crypto/keys.rb +7 -0
  12. data/lib/crypto/secp256k1_key.rb +0 -0
  13. data/lib/crypto/test_ed25519_key.rb +44 -0
  14. data/lib/entity/account.rb +45 -0
  15. data/lib/entity/action_thresholds.rb +25 -0
  16. data/lib/entity/associated_key.rb +24 -0
  17. data/lib/entity/auction_state.rb +36 -0
  18. data/lib/entity/bid.rb +24 -0
  19. data/lib/entity/bid_info.rb +51 -0
  20. data/lib/entity/contract.rb +47 -0
  21. data/lib/entity/contract_package.rb +41 -0
  22. data/lib/entity/contract_version.rb +33 -0
  23. data/lib/entity/delegator.rb +37 -0
  24. data/lib/entity/deploy.rb +44 -0
  25. data/lib/entity/deploy_approval.rb +24 -0
  26. data/lib/entity/deploy_executable.rb +162 -0
  27. data/lib/entity/deploy_executable_item_internal.rb +26 -0
  28. data/lib/entity/deploy_executable_transfer.rb +50 -0
  29. data/lib/entity/deploy_hash.rb +16 -0
  30. data/lib/entity/deploy_header.rb +60 -0
  31. data/lib/entity/deploy_info.rb +44 -0
  32. data/lib/entity/deploy_named_argument.rb +19 -0
  33. data/lib/entity/deploy_transfer.rb +10 -0
  34. data/lib/entity/disabled_version.rb +26 -0
  35. data/lib/entity/era_info.rb +18 -0
  36. data/lib/entity/era_summary.rb +44 -0
  37. data/lib/entity/era_validator.rb +23 -0
  38. data/lib/entity/executable_deploy_item.rb +11 -0
  39. data/lib/entity/group.rb +25 -0
  40. data/lib/entity/module_bytes.rb +50 -0
  41. data/lib/entity/peer.rb +25 -0
  42. data/lib/entity/seigniorage_allocation.rb +18 -0
  43. data/lib/entity/stored_contract_by_hash.rb +50 -0
  44. data/lib/entity/stored_contract_by_name.rb +50 -0
  45. data/lib/entity/stored_value.rb +57 -0
  46. data/lib/entity/stored_versioned_contract_by_hash.rb +61 -0
  47. data/lib/entity/stored_versioned_contract_by_name.rb +61 -0
  48. data/lib/entity/transfer.rb +65 -0
  49. data/lib/entity/validator_weight.rb +23 -0
  50. data/lib/entity/vesting_schedule.rb +22 -0
  51. data/lib/include.rb +18 -0
  52. data/lib/rpc/rpc.rb +227 -0
  53. data/lib/rpc/rpc_client.rb +233 -0
  54. data/lib/rpc/rpc_error.rb +79 -0
  55. data/lib/serialization/cl_type_serializer.rb +76 -0
  56. data/lib/serialization/cl_value_bytes_parsers.rb +498 -0
  57. data/lib/serialization/cl_value_serializer.rb +259 -0
  58. data/lib/serialization/deploy_approval_serializer.rb +15 -0
  59. data/lib/serialization/deploy_executable_serializer.rb +27 -0
  60. data/lib/serialization/deploy_header_serializer.rb +49 -0
  61. data/lib/serialization/deploy_named_arg_serializer.rb +19 -0
  62. data/lib/serialization/deploy_serializer.rb +268 -0
  63. data/lib/serialization/test.rb +431 -0
  64. data/lib/test_sdk1.rb +289 -0
  65. data/lib/types/cl_account_hash.rb +24 -0
  66. data/lib/types/cl_account_hash_type.rb +22 -0
  67. data/lib/types/cl_any.rb +25 -0
  68. data/lib/types/cl_any_type.rb +22 -0
  69. data/lib/types/cl_bool.rb +32 -0
  70. data/lib/types/cl_bool_type.rb +35 -0
  71. data/lib/types/cl_byte_array.rb +25 -0
  72. data/lib/types/cl_byte_array_type.rb +27 -0
  73. data/lib/types/cl_i32.rb +26 -0
  74. data/lib/types/cl_i32_type.rb +26 -0
  75. data/lib/types/cl_i64.rb +26 -0
  76. data/lib/types/cl_i64_type.rb +27 -0
  77. data/lib/types/cl_key.rb +39 -0
  78. data/lib/types/cl_key_type.rb +27 -0
  79. data/lib/types/cl_list.rb +25 -0
  80. data/lib/types/cl_list_type.rb +26 -0
  81. data/lib/types/cl_map.rb +25 -0
  82. data/lib/types/cl_map_type.rb +26 -0
  83. data/lib/types/cl_option.rb +33 -0
  84. data/lib/types/cl_option_type.rb +52 -0
  85. data/lib/types/cl_public_key.rb +152 -0
  86. data/lib/types/cl_public_key_type.rb +26 -0
  87. data/lib/types/cl_result.rb +25 -0
  88. data/lib/types/cl_result_type.rb +26 -0
  89. data/lib/types/cl_string.rb +39 -0
  90. data/lib/types/cl_string_type.rb +32 -0
  91. data/lib/types/cl_tuple.rb +151 -0
  92. data/lib/types/cl_tuple_type.rb +108 -0
  93. data/lib/types/cl_type.rb +94 -0
  94. data/lib/types/cl_type_tag.rb +51 -0
  95. data/lib/types/cl_u128.rb +26 -0
  96. data/lib/types/cl_u128_type.rb +26 -0
  97. data/lib/types/cl_u256.rb +26 -0
  98. data/lib/types/cl_u256_type.rb +26 -0
  99. data/lib/types/cl_u32.rb +26 -0
  100. data/lib/types/cl_u32_type.rb +26 -0
  101. data/lib/types/cl_u512.rb +26 -0
  102. data/lib/types/cl_u512_type.rb +26 -0
  103. data/lib/types/cl_u64.rb +26 -0
  104. data/lib/types/cl_u64_type.rb +27 -0
  105. data/lib/types/cl_u8.rb +26 -0
  106. data/lib/types/cl_u8_type.rb +26 -0
  107. data/lib/types/cl_unit.rb +38 -0
  108. data/lib/types/cl_unit_type.rb +22 -0
  109. data/lib/types/cl_uref.rb +120 -0
  110. data/lib/types/cl_uref_type.rb +46 -0
  111. data/lib/types/cl_value.rb +10 -0
  112. data/lib/types/constants.rb +50 -0
  113. data/lib/types/error.rb +7 -0
  114. data/lib/utils/base_16.rb +18 -0
  115. data/lib/utils/byte_utils.rb +107 -0
  116. data/lib/utils/find_byte_parser_by_cl_type.rb +53 -0
  117. data/lib/utils/hash_utils.rb +19 -0
  118. data/lib/utils/hex_utils.rb +12 -0
  119. data/lib/utils/time_utils.rb +85 -0
  120. data/lib/utils/utils.rb +2 -0
  121. data/lib/version.rb +3 -0
  122. data/spec/a_spec.rb +697 -0
  123. data/spec/byte_utils_spec.rb +72 -0
  124. data/spec/cl_public_spec.rb +169 -0
  125. data/spec/cl_types_spec.rb +715 -0
  126. data/spec/cl_value_serializer_spec.rb +140 -0
  127. data/spec/client_spec.rb +25 -0
  128. data/spec/crypto_spec.rb +42 -0
  129. data/spec/deploy_approval_serializer_spec.rb +26 -0
  130. data/spec/deploy_executable_serializer_spec.rb +0 -0
  131. data/spec/deploy_header_serializer_spec.rb +21 -0
  132. data/spec/deploy_named_arg_serializer_spec.rb +49 -0
  133. data/spec/deploy_serializer_spec.rb +77 -0
  134. data/spec/deploy_serializer_test_spec.rb +225 -0
  135. data/spec/mainnet_spec.rb +452 -0
  136. data/spec/spec_helper.rb +100 -0
  137. data/spec/string_spec.rb +68 -0
  138. data/spec/testnet_spec.rb +498 -0
  139. data/spec/time_utils_spec.rb +87 -0
  140. metadata +198 -0
@@ -0,0 +1,431 @@
1
+ require_relative '../types/cl_bool.rb'
2
+ require_relative '../types/cl_i32.rb'
3
+ require_relative '../types/cl_i64.rb'
4
+ require_relative '../types/cl_u8.rb'
5
+ require_relative '../types/cl_u32.rb'
6
+ require_relative '../types/cl_u64.rb'
7
+ require_relative '../types/cl_string.rb'
8
+ # require_relative '../types/cl_key.rb'
9
+ require_relative '../types/cl_uref.rb'
10
+ require_relative '../types/cl_tuple.rb'
11
+ require_relative '../types/cl_public_key.rb'
12
+ require_relative './cl_type_serializer.rb'
13
+ require_relative './cl_value_serializer.rb'
14
+ require_relative '../entity/deploy_named_argument.rb'
15
+ require_relative './deploy_named_arg_serializer.rb'
16
+ require_relative '../entity/deploy_executable_item_internal.rb'
17
+ require_relative '../entity/deploy_executable.rb'
18
+ require_relative '../entity/stored_contract_by_hash.rb'
19
+ require_relative '../entity/stored_contract_by_name.rb'
20
+ require_relative '../entity/stored_versioned_contract_by_hash.rb'
21
+ require_relative '../entity/stored_versioned_contract_by_name.rb'
22
+ require_relative './deploy_executable_serializer.rb'
23
+ require_relative '../entity/deploy.rb'
24
+ require_relative '../entity/deploy_hash.rb'
25
+ require_relative '../entity/deploy_header.rb'
26
+ require_relative '../entity/deploy_approval.rb'
27
+ require_relative '../entity/deploy_info.rb'
28
+ require_relative '../entity/deploy.rb'
29
+ require_relative './deploy_serializer.rb'
30
+ require 'blake2b'
31
+
32
+ # *************************** CLValueSerializer::Start *****************************************************#
33
+
34
+ # arg = Casper::Entity::DeployNamedArgument.new("casper-testnet", CLBool.new(true))
35
+ # arg = Casper::Entity::DeployNamedArgument.new("casper-testnet", CLString.new("Hello, Casper!"))
36
+ arg = Casper::Entity::DeployNamedArgument.new("casper-testnet", CLString.new("Hello, World!"))
37
+ deploy_named_arg_serializer = DeployNamedArgSerializer.new
38
+ serializer = CLValueSerializer.new
39
+
40
+ # puts deploy_named_arg_serializer.to_bytes(arg)
41
+ # puts serializer.to_bytes(CLString.new("Hello, Casper!"))
42
+ # clvalue = CLBool.new(true)
43
+ # puts serializer.to_bytes(clvalue)
44
+
45
+ # clvalue = CLi32.new(-10)
46
+ # puts serializer.to_bytes(clvalue)
47
+
48
+ # clvalue = CLi64.new(-16)
49
+ # puts serializer.to_bytes(clvalue)
50
+
51
+ clvalue = CLu8.new(0x07)
52
+ # puts serializer.to_bytes(clvalue)
53
+ clvalue = CLu32.new(2.pow(32) - 1)
54
+ clvalue = CLu64.new(2.pow(64) - 1)
55
+
56
+ pub_key_hex_ed25519 = "010af5a943bacd2a8e91792eb4e9a25e32d536ab103372f57f89ebcadfc59820d1"
57
+ pub_raw_ed25519 = [10, 245, 169, 67, 186, 205, 42, 142, 145, 121, 46, 180, 233, 162,
58
+ 94, 50, 213, 54, 171, 16, 51, 114, 245, 127, 137, 235, 202, 223, 197, 152, 32, 209 ]
59
+ clvalue = CLPublicKey.new(pub_raw_ed25519, CLPublicKeyTag[:ED25519])
60
+ # puts serializer.to_bytes(clvalue)
61
+
62
+ clvalue = CLString.new("Hello, Casper!")
63
+ # puts serializer.to_bytes(clvalue)
64
+
65
+ uref = "uref-000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f-007"
66
+ clvalue = CLURef.new(uref)
67
+ # puts CLURef.parse_uref_address(uref)
68
+ # puts clvalue.to_bytes(uref)
69
+ # puts serializer.to_bytes(clvalue)
70
+
71
+ # u32 = CLu32.new(17)
72
+ # clvalue = CLTuple1.new([u32])
73
+ str = CLString.new("ABCDE")
74
+ clvalue = CLTuple1.new([str])
75
+ # puts clvalue.get_value.class # => Array
76
+ # puts clvalue.get_value[0].get_value
77
+ # puts serializer.to_bytes(clvalue)
78
+
79
+ u32_1 = CLu32.new(17)
80
+ u32_2 = CLu32.new(127)
81
+ clvalue = CLTuple2.new([u32_1, u32_2])
82
+ clvalue = CLTuple2.new([u32_2, str])
83
+ # clval1 = clvalue.get_value[0]
84
+ # puts serializer.to_bytes(clval1)
85
+ # clval2 = clvalue.get_value[1]
86
+ # puts serializer.to_bytes(clval2)
87
+ # puts serializer.to_bytes(clvalue)
88
+
89
+ # clvalue = CLTuple2.new([u32_1, u32_2])
90
+ # puts clvalue.get_size
91
+ # puts serializer.tuple_values_length(clvalue)
92
+
93
+ clvalue = CLTuple3.new([u32_1, u32_2, u32_1])
94
+ clvalue = CLTuple3.new([u32_2, str, u32_2])
95
+ # puts clvalue.get_cl_type
96
+ # puts serializer.to_bytes(clvalue)
97
+
98
+
99
+ clvalue = CLOption.new(CLBool.new(false))
100
+
101
+ # puts clvalue.get_cl_type
102
+
103
+ temp = CLType.new(false)
104
+ # p temp.get_cl_type_tag(:Bool)
105
+ # p temp.get_cl_type_tag(:Option)
106
+ # p temp.get_tags
107
+
108
+ opt_type = CLOptionType.new( CLBoolType.new())
109
+ # p opt_type
110
+ # p opt_type.to_string
111
+ # p opt_type.get_inner_type
112
+ # p opt_type.to_json
113
+ # p opt_type.to_bytes
114
+
115
+ cl_opt = CLOption.new(CLBool.new(true))
116
+ # p cl_opt.get_value
117
+ # p cl_opt.get_cl_type
118
+
119
+
120
+ # serializer = CLValueSerializer.new
121
+ # puts serializer.to_bytes(cloption1)
122
+
123
+
124
+ # *************************** CLValueSerializer::End *****************************************************#
125
+
126
+
127
+ # StoredContractByName: {
128
+ # "name": "casper-example",
129
+ # "entry_point": "example-entry-point",
130
+ # "args": [
131
+ # [
132
+ # "quantity",
133
+ # {
134
+ # "cl_type": "I32",
135
+ # "bytes": "e8030000",
136
+ # "parsed": 1000
137
+ # }
138
+ # ]
139
+ # ]
140
+ # }
141
+
142
+ #********************** DeployExecutableItemInternal ************************************************************
143
+ deploy_executable_item_internal = Casper::Entity::DeployExecutableItemInternal.new()
144
+ deploy_executable_item_internal.set_arg(Casper::Entity::DeployNamedArgument.new("quantity", CLi32.new(1000)))
145
+ deploy_executable_item_internal.set_arg(Casper::Entity::DeployNamedArgument.new("amount", CLi32.new(1000)))
146
+ # puts deploy_executable_item_internal.set_arg(Casper::Entity::DeployNamedArgument.new("amount", CLi32.new(1000)))[1][1].get_value
147
+ # puts deploy_executable_item_internal.args[0][0].get_name
148
+ # puts deploy_executable_item_internal.args[0][0].get_value.get_value
149
+ # puts deploy_executable_item_internal.args[1][0].get_name
150
+ # puts deploy_executable_item_internal.args[1][0].get_value.get_value
151
+
152
+
153
+ # 0) ********************** ModuleBytes ************************************************************
154
+
155
+
156
+
157
+
158
+ # 1) *************** StoredContractByHash ***************************** Done!
159
+ arg1 = Casper::Entity::DeployNamedArgument.new("quantity", CLi32.new(1000))
160
+ args = []
161
+ args.push([arg1])
162
+ stored_contract_by_hash = Casper::Entity::StoredContractByHash.new("c4c411864f7b717c27839e56f6f1ebe5da3f35ec0043f437324325d65a22afa4", "pclphXwfYmCmdITj8hnh", args)
163
+ # puts stored_contract_by_hash.to_bytes
164
+
165
+ byte_array = stored_contract_by_hash.to_bytes
166
+ # puts byte_array.inspect
167
+ # puts Utils::ByteUtils.byte_array_to_hex(byte_array)
168
+
169
+
170
+ # 2) *************** StoredContractByName ***************************** Done!
171
+ arg1 = Casper::Entity::DeployNamedArgument.new("quantity", CLi32.new(1000))
172
+ args = []
173
+ args.push([arg1])
174
+ stored_contract_by_name = Casper::Entity::StoredContractByName.new("casper-example", "example-entry-point", args)
175
+ byte_array = stored_contract_by_name.to_bytes
176
+ # puts byte_array
177
+ # puts Utils::ByteUtils.byte_array_to_hex(byte_array)
178
+
179
+
180
+ # 3) *************** StoredVersionedContractByHash ***************************** # Done! (entry_point is not serialized in scala example but it is serialized in documentation)
181
+ arg1 = Casper::Entity::DeployNamedArgument.new("test", CLString.new("Hello, World!"))
182
+ args = []
183
+ args.push([arg1])
184
+ stored_versioned_contract_by_hash = Casper::Entity::StoredVersionedContractByHash.new("b348fdd0d0b3f66468687df93141b5924f6bb957d5893c08b60d5a78d0b9a423",nil, "PsLz5c7JsqT8BK8ll0kF", args)
185
+ byte_array = stored_versioned_contract_by_hash.to_bytes
186
+ # puts byte_array.inspect
187
+ # puts Utils::ByteUtils.byte_array_to_hex(byte_array)
188
+
189
+
190
+ # 4) *************** StoredVersionedContractByName ***************************** # Done! (entry_point is not serialized in scala example but it is serialized in documentation)
191
+ arg1 = Casper::Entity::DeployNamedArgument.new("test", CLString.new("Hello, World!"))
192
+ args = []
193
+ args.push([arg1])
194
+ stored_versioned_contract_by_hash = Casper::Entity::StoredVersionedContractByName.new("test-contract",nil, "PsLz5c7JsqT8BK8ll0kF", args)
195
+ byte_array = stored_versioned_contract_by_hash.to_bytes
196
+ # puts byte_array.inspect
197
+ # puts Utils::ByteUtils.byte_array_to_hex(byte_array)
198
+
199
+
200
+ # 5) *************** DeployExecutableTransfer *****************************
201
+ arg1 = Casper::Entity::DeployNamedArgument.new("amount", CLi32.new(1000))
202
+ args = []
203
+ args.push([arg1])
204
+ deploy_transfer = Casper::Entity::DeployExecutableTransfer.new(args)
205
+ byte_array = deploy_transfer.to_bytes
206
+ # puts byte_array.inspect
207
+ # puts Utils::ByteUtils.byte_array_to_hex(byte_array)
208
+
209
+ # puts Utils::ByteUtils.byte_array_to_hex(byte_array)
210
+ # puts deploy_transfer.get_args[0][0].get_name
211
+ # puts deploy_transfer.get_args[0][0].get_value.get_value
212
+ # puts deploy_transfer.get_args[0][0].get_value.get_cl_type
213
+
214
+
215
+ #********************** DeployExecutable ************************************************************
216
+ deploy_executable = Casper::Entity::DeployExecutable.new
217
+
218
+ # ***** @module_bytes.set_arg(arg) # => Add arg and return args
219
+ # args = deploy_executable.standard_payment(1000)
220
+ # puts args
221
+ # puts args[0][0].get_name
222
+ # puts args[0][0].get_value
223
+
224
+ # Return ModuleBytes object
225
+ # module_bytes = deploy_executable.standard_payment(1000)
226
+ # puts module_bytes.class
227
+ # puts module_bytes.get_args[0][0].get_name
228
+ # puts module_bytes.get_args[0][0].get_value.get_value
229
+ # puts module_bytes.get_args[0][0].get_value.get_cl_type
230
+
231
+ # puts module_bytes.module_bytes
232
+ account_key = "01e23d200eb0f3c8a3dacc8453644e6fcf4462585a68234ebb1c3d6cc8971148c2"
233
+ public_key = CLPublicKey.from_hex(account_key)
234
+ source_purse = "010af5a943bacd2a8e91792eb4e9a25e32d536ab103372f57f89ebcadfc59820d1"
235
+ transfer = deploy_executable.new_transfer(1, 1000, CLPublicKey.from_hex(account_key), CLPublicKey.from_hex(source_purse))
236
+
237
+ args = transfer.get_args
238
+ # puts args[0][0].get_name
239
+ # puts args[0][0].get_value
240
+ # puts args[1][0].get_name
241
+ # puts args[1][0].get_value
242
+ # puts args[2][0].get_name
243
+ # puts args[2][0].get_value
244
+
245
+
246
+
247
+ #********************** DeployExecutableSerializer ************************************************************
248
+ deploy_executable.set_stored_contract_by_hash(stored_contract_by_hash)
249
+ deploy_executable.set_stored_contract_by_name(stored_contract_by_name)
250
+ # puts deploy_executable.get_stored_contract_by_name
251
+ # puts deploy_executable.stored_contract_by_name
252
+ # puts deploy_executable.to_bytes
253
+ deploy_executable_serializer = DeployExecutableSerializer.new
254
+ executable_item = deploy_executable_serializer.to_bytes(deploy_executable)
255
+ # puts executable_item
256
+ # puts Utils::ByteUtils.byte_array_to_hex(executable_item)
257
+
258
+ h1 = {
259
+ "hash": "01da3c604f71e0e7df83ff1ab4ef15bb04de64ca02e3d2b78de6950e8b5ee187",
260
+ "header": {
261
+ "account": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c",
262
+ "timestamp": "2020-11-17T00:39:24.072Z",
263
+ "ttl": "1h",
264
+ "gas_price": 1,
265
+ "body_hash": "4811966d37fe5674a8af4001884ea0d9042d1c06668da0c963769c3a01ebd08f",
266
+ "dependencies": [
267
+ "0101010101010101010101010101010101010101010101010101010101010101"
268
+ ],
269
+ "chain_name": "casper-example"
270
+ },
271
+ "payment": {
272
+ "StoredContractByName": {
273
+ "name": "casper-example",
274
+ "entry_point": "example-entry-point",
275
+ "args": [
276
+ [
277
+ "quantity",
278
+ {
279
+ "cl_type": "I32",
280
+ "bytes": "e8030000",
281
+ "parsed": 1000
282
+ }
283
+ ]
284
+ ]
285
+ }
286
+ # "ModuleBytes": {
287
+ # "args": [
288
+ # [
289
+ # "amount",
290
+ # {
291
+ # "bytes": "e8030000",
292
+ # "parsed": "1000",
293
+ # "cl_type": "I32"
294
+ # }
295
+ # ]
296
+ # ],
297
+ # "module_bytes": "sdsdssadsds"
298
+ # }
299
+ },
300
+ "session": {
301
+ "Transfer": {
302
+ "args": [
303
+ [
304
+ "amount",
305
+ {
306
+ "cl_type": "I32",
307
+ "bytes": "e8030000",
308
+ "parsed": 1000
309
+ }
310
+ ]
311
+ ]
312
+ }
313
+ # "ModuleBytes": {
314
+ # "args": [
315
+ # [
316
+ # "amount",
317
+ # {
318
+ # "bytes": "e8030000",
319
+ # "parsed": "1000",
320
+ # "cl_type": "I32"
321
+ # }
322
+ # ]
323
+ # ],
324
+ # "module_bytes": "sdsdssadsds"
325
+ # }
326
+ },
327
+ "approvals": [
328
+ {
329
+ "signer": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c",
330
+ "signature": "012dbf03817a51794a8e19e0724884075e6d1fbec326b766ecfa6658b41f81290da85e23b24e88b1c8d9761185c961daee1adab0649912a6477bcd2e69bd91bd08"
331
+ }
332
+ ]
333
+ }
334
+ deploy = Casper::Entity::Deploy.new(h1[:hash], h1[:header], h1[:payment], h1[:session], h1[:approvals])
335
+ deploy_hash = Casper::Entity::DeployHash.new(deploy.get_hash)
336
+ header = Casper::Entity::DeployHeader.new(deploy.get_header)
337
+ payment = deploy.get_payment
338
+ key = payment.keys[0]
339
+ # puts key == :StoredContractByName
340
+ if key == :StoredContractByName
341
+ name = payment[:StoredContractByName][:name]
342
+ entry_point = payment[:StoredContractByName][:entry_point]
343
+ args = payment[:StoredContractByName][:args]
344
+ # deploy_named_arg
345
+ executable_payment = Casper::Entity::StoredContractByName.new(name, entry_point, args)
346
+ # puts executable_payment.get_args
347
+ end
348
+ # payment = StoredContractByName.new()
349
+ session = deploy.get_session
350
+ deploy_executable_payment = Casper::Entity::DeployExecutable.new
351
+ deploy_executable_session = Casper::Entity::DeployExecutable.new
352
+
353
+ deploy_serializer = DeploySerializer.new
354
+ # puts deploy_serializer.to_bytes(deploy)
355
+
356
+ # h = {"cl_type": "Bool", "bytes": "01", "parsed": ""}
357
+ # h = {"cl_type": "I32", "bytes": "e0ffffff", "parsed": ""} # => parsed = -32
358
+ # h = {"cl_type": "I64", "bytes": "c0ffffffffffffff", "parsed": ""} # => parsed = -64
359
+ # h = {"cl_type": "U8", "bytes": "08", "parsed": ""} # => parsed = 8
360
+ # h = {"cl_type": "U32", "bytes": "20000000", "parsed": ""} # => parsed = 32
361
+ # h = {"cl_type": "U64", "bytes": "4000000000000000", "parsed": ""} # => parsed = 64
362
+ # h = {"cl_type": "String", "bytes": "0b0000006361737065722d74657374", "parsed": ""} # => parsed = "casper-test"
363
+ h = {"cl_type": "Unit", "bytes": "", "parsed": ""} # => parsed = "casper-test"
364
+ h = {"cl_type": "URef", "bytes": "21000000000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f07", "parsed": ""}
365
+ # => parsed = "uref-000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f-007"
366
+ h = {"cl_type": "PublicKey", "bytes": "010af5a943bacd2a8e91792eb4e9a25e32d536ab103372f57f89ebcadfc59820d1", "parsed": ""}
367
+ # puts deploy_serializer.build_cl_value(h).to_hex
368
+ # puts deploy_serializer.build_cl_value(h)
369
+
370
+
371
+ deploy_bytes_array = deploy_serializer.to_bytes(deploy)
372
+ deploy_hex = Utils::ByteUtils.byte_array_to_hex(deploy_bytes_array)
373
+ # puts Blake2b.hex(deploy_hex)
374
+
375
+ input = "abc"
376
+ key = Blake2b::Key.none
377
+ out_len = 32
378
+
379
+ # puts Blake2b.hex(input)
380
+ # puts Blake2b.hex(input, key)
381
+ # puts Blake2b.hex(input, key, 32) # => Create a hash of 32 bytes length
382
+ # # puts Blake2b.hex(input, key, 64) # => create a hash of 64 bytes length
383
+ # bytes = Blake2b.bytes(input)
384
+ # puts bytes.inspect
385
+ # puts bytes.pack("C*").unpack("H*") # => Convert bytes to hex (hash version)
386
+
387
+
388
+
389
+ key = "01ccee19366eaf03487cb81197ae8edcb1b47f214cee00d6597380096b9f8463c1"
390
+
391
+
392
+ # puts Blake2b.hex(deploy_hex)
393
+ require 'openssl'
394
+
395
+ # k = OpenSSL::PKey::RSA.new(File.read("/home/mehmet/Documents/ed25519_secret_key.pem"))
396
+ # puts k.private?
397
+ require "ssh_data"
398
+ require "ed25519"
399
+
400
+ key_data = File.read("#{Dir.home}/.ssh/id_ed25519")
401
+ key = SSHData::PrivateKey.parse_openssh(key_data)
402
+ #=> <SSHData::PrivateKey::ED25519>
403
+ # puts key[0][0]
404
+ SSHData::PrivateKey::ED25519.generate
405
+ #=> raises SSHData::AlgorithmError
406
+
407
+
408
+ SSHData::PrivateKey::ED25519.generate
409
+ #=> <SSHData::PrivateKey::ED25519>
410
+
411
+ # OpenSSL::PKey::RSA.new File.read("#{Dir.home}/.ssh/id_rsa")
412
+ # cert = OpenSSL::X509::Certificate.new("#{Dir.home}/Document/ed25519_secret_key.pem")
413
+
414
+ # file = File.open("#{Dir.home}/Document/ed25519_secret_key.pem")
415
+ # file = File.open("#{Dir.home}/Desktop/casper-ruby-sdk/lib/serialization/test.txt")
416
+ # file_data = file.read
417
+ # puts file_data
418
+ # puts "/home/mehmet/Document/hetzner.txt"
419
+ # puts "#{Dir.home}"
420
+ require 'json'
421
+ path = File.join(
422
+ File.dirname(File.dirname(File.absolute_path(__FILE__))),
423
+ 'serialization/ed25519.pem'
424
+ )
425
+ puts path
426
+
427
+ file = File.open(path)
428
+ puts file
429
+ file_data = file.readlines.map(&:chomp)
430
+ puts file_data.inspect
431
+ file.close