casper_network 1.0.1 → 1.1.2

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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +490 -89
  3. data/lib/casper_network.rb +28 -10
  4. data/lib/crypto/asymmetric_key.rb +19 -18
  5. data/lib/crypto/ed25519.rb +114 -0
  6. data/lib/crypto/ed25519_key.rb +111 -10
  7. data/lib/crypto/keys.rb +1 -2
  8. data/lib/crypto/keys_util.rb +20 -0
  9. data/lib/entity/auction_state.rb +56 -8
  10. data/lib/entity/bid.rb +1 -1
  11. data/lib/entity/bid_info.rb +1 -1
  12. data/lib/entity/block.rb +39 -0
  13. data/lib/entity/block_body.rb +35 -0
  14. data/lib/entity/block_header.rb +81 -0
  15. data/lib/entity/block_info.rb +56 -0
  16. data/lib/entity/block_proof.rb +24 -0
  17. data/lib/entity/deploy.rb +154 -1
  18. data/lib/entity/deploy_executable.rb +50 -7
  19. data/lib/entity/deploy_executable_item_internal.rb +1 -1
  20. data/lib/entity/deploy_header.rb +17 -0
  21. data/lib/entity/deploy_named_argument.rb +61 -2
  22. data/lib/entity/era_summary.rb +13 -12
  23. data/lib/entity/module_bytes.rb +9 -2
  24. data/lib/entity/status.rb +80 -0
  25. data/lib/entity/stored_value.rb +86 -11
  26. data/lib/entity/transfer.rb +7 -7
  27. data/lib/include.rb +2 -0
  28. data/lib/serialization/cl_value_serializer.rb +69 -12
  29. data/lib/serialization/deploy_serializer.rb +129 -15
  30. data/lib/types/cl_option.rb +9 -1
  31. data/lib/types/cl_public_key.rb +2 -0
  32. data/lib/types/cl_value.rb +8 -0
  33. data/lib/utils/byte_utils.rb +28 -0
  34. data/lib/utils/helpers.rb +10 -0
  35. data/lib/version.rb +1 -1
  36. data/spec/cl_value_serializer_spec.rb +15 -1
  37. data/spec/client_spec.rb +3 -3
  38. data/spec/deploy_executable_spec.rb +90 -0
  39. data/spec/testnet_spec.rb +5 -3
  40. metadata +13 -24
  41. data/lib/crypto/00_asymmetric_key.rb +0 -95
  42. data/lib/crypto/01_ed25519.rb +0 -67
  43. data/lib/crypto/key_pair.rb +0 -40
  44. data/lib/crypto/secp256k1_key.rb +0 -0
  45. data/lib/crypto/test_ed25519_key.rb +0 -44
  46. data/lib/entity/executable_deploy_item.rb +0 -11
  47. data/lib/serialization/test.rb +0 -431
  48. data/lib/types/cl_account_hash.rb +0 -24
  49. data/lib/types/cl_account_hash_type.rb +0 -22
  50. data/lib/utils/utils.rb +0 -2
  51. data/spec/a_spec.rb +0 -697
  52. data/spec/cl_public_spec.rb +0 -169
  53. data/spec/crypto_spec.rb +0 -42
  54. data/spec/deploy_executable_serializer_spec.rb +0 -0
  55. data/spec/deploy_serializer_test_spec.rb +0 -225
  56. data/spec/string_spec.rb +0 -68
@@ -3,34 +3,45 @@ require_relative './deploy_approval_serializer'
3
3
  require_relative './deploy_executable_serializer'
4
4
  require_relative './deploy_named_arg_serializer'
5
5
  require_relative '../utils/byte_utils.rb'
6
-
6
+ require_relative '../types/cl_option.rb'
7
+ require_relative '../utils/helpers.rb'
7
8
  # Byte serializer for Deploy object
8
9
  class DeploySerializer
9
-
10
+ include Utils::Helpers
11
+ attr_accessor :payment_session_serializer, :transfer_serializer, :payment_serializer
12
+ def initialize
13
+ end
14
+
10
15
  def to_bytes(deploy)
16
+ @payment_session_serializer = ""
17
+ @amount_serializer = ""
18
+ @target_serializer = ""
19
+ @id_serializer = ""
20
+ @transfer_serializer = ""
21
+ @payment_serializer = ""
11
22
  result = ""
12
23
  deploy_header = Casper::Entity::DeployHeader.new(deploy.get_header)
13
24
  result += DeployHeaderSerializer.new().to_bytes(deploy_header)
14
25
 
15
26
  deploy_hash = Casper::Entity::DeployHash.new(deploy.get_hash)
16
27
  result += deploy_hash.get_hash
17
-
18
28
  payment = deploy.get_payment
19
29
  session = deploy.get_session
20
30
  if payment.keys[0] == :ModuleBytes
21
31
  temp_args = []
22
32
  module_bytes = payment[:ModuleBytes][:module_bytes]
23
33
  args = payment[:ModuleBytes][:args]
24
- module_bytes = Casper::Entity::ModuleBytes.new(module_bytes, args)
34
+ # module_bytes = Casper::Entity::ModuleBytes.new(module_bytes, args)
25
35
  args.each do |arg|
26
36
  name1 = arg[0]
27
37
  clvalue_hash = arg[1]
28
38
  clvalue = build_cl_value(arg[1])
29
- # puts clvalue
30
39
  temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
31
40
  end
32
41
  temp = Utils::ByteUtils.byte_array_to_hex(Casper::Entity::ModuleBytes.new(module_bytes, temp_args).to_bytes)
33
42
  result += temp
43
+ @payment_serializer += temp
44
+ @payment_session_serializer += temp
34
45
  temp = nil
35
46
  elsif payment.keys[0] == :StoredContractByHash
36
47
  temp_args = []
@@ -43,11 +54,11 @@ class DeploySerializer
43
54
  name1 = arg[0] # => "quantity"
44
55
  clvalue_hash = arg[1] # => {:cl_type=>"I32", :bytes=>"e8030000", :parsed=>1000}
45
56
  clvalue = build_cl_value(arg[1])
46
- # puts clvalue
47
57
  temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
48
58
  end
49
59
  temp = Utils::ByteUtils.byte_array_to_hex(Casper::Entity::StoredContractByHash.new(name, entry_point, temp_args).to_bytes)
50
60
  result += temp
61
+ @payment_session_serializer += temp
51
62
  temp = nil
52
63
  elsif payment.keys[0] == :StoredContractByName
53
64
  temp_args = []
@@ -64,6 +75,7 @@ class DeploySerializer
64
75
  end
65
76
  temp = Utils::ByteUtils.byte_array_to_hex(Casper::Entity::StoredContractByName.new(name, entry_point, temp_args).to_bytes)
66
77
  result += temp
78
+ @payment_session_serializer += temp
67
79
  temp = nil
68
80
  elsif payment.keys[0] == :StoredVersionedContractByHash
69
81
  temp_args = []
@@ -81,6 +93,7 @@ class DeploySerializer
81
93
  end
82
94
  temp = Utils::ByteUtils.byte_array_to_hex(Casper::Entity::StoredVersionedContractByHash.new(name, version,entry_point, temp_args).to_bytes)
83
95
  result += temp
96
+ @payment_session_serializer += temp
84
97
  temp = nil
85
98
  elsif payment.keys[0] == :StoredVersionedContractByName
86
99
  temp_args = []
@@ -98,6 +111,7 @@ class DeploySerializer
98
111
  end
99
112
  temp = Utils::ByteUtils.byte_array_to_hex(Casper::Entity::StoredVersionedContractByName.new(name, version,entry_point, temp_args).to_bytes)
100
113
  result += temp
114
+ @payment_session_serializer += temp
101
115
  temp = nil
102
116
  elsif payment.keys[0] == :Transfer
103
117
  temp_args = []
@@ -108,11 +122,11 @@ class DeploySerializer
108
122
  name1 = arg[0] # => "amount"
109
123
  clvalue_hash = arg[1] # => {:cl_type=>"I32", :bytes=>"e8030000", :parsed=>1000}
110
124
  clvalue = build_cl_value(arg[1])
111
- # puts clvalue
112
125
  temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
113
126
  end
114
127
  temp = Utils::ByteUtils.byte_array_to_hex(Casper::Entity::DeployExecutableTransfer.new(temp_args).to_bytes)
115
128
  result += temp
129
+ @payment_session_serializer += temp
116
130
  temp = nil
117
131
  end
118
132
 
@@ -120,7 +134,7 @@ class DeploySerializer
120
134
  temp_args = []
121
135
  module_bytes = session[:ModuleBytes][:module_bytes]
122
136
  args = session[:ModuleBytes][:args]
123
- module_bytes = Casper::Entity::ModuleBytes.new(module_bytes, args)
137
+ # module_bytes = Casper::Entity::ModuleBytes.new(module_bytes, args)
124
138
  args.each do |arg|
125
139
  name1 = arg[0]
126
140
  clvalue_hash = arg[1]
@@ -129,6 +143,7 @@ class DeploySerializer
129
143
  end
130
144
  temp = Utils::ByteUtils.byte_array_to_hex(Casper::Entity::ModuleBytes.new(module_bytes, temp_args).to_bytes)
131
145
  result += temp
146
+ @payment_session_serializer += temp
132
147
  temp = nil
133
148
  elsif session.keys[0] == :StoredContractByHash
134
149
  temp_args = []
@@ -141,11 +156,11 @@ class DeploySerializer
141
156
  name1 = arg[0] # => "quantity"
142
157
  clvalue_hash = arg[1] # => {:cl_type=>"I32", :bytes=>"e8030000", :parsed=>1000}
143
158
  clvalue = build_cl_value(arg[1])
144
- # puts clvalue
145
159
  temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
146
160
  end
147
161
  temp = Utils::ByteUtils.byte_array_to_hex(Casper::Entity::StoredContractByHash.new(name, entry_point, temp_args).to_bytes)
148
162
  result += temp
163
+ @payment_session_serializer += temp
149
164
  temp = nil
150
165
  elsif session.keys[0] == :StoredContractByName
151
166
  temp_args = []
@@ -162,6 +177,7 @@ class DeploySerializer
162
177
  end
163
178
  temp = Utils::ByteUtils.byte_array_to_hex(Casper::Entity::StoredContractByName.new(name, entry_point, temp_args).to_bytes)
164
179
  result += temp
180
+ @payment_session_serializer += temp
165
181
  temp = nil
166
182
  elsif session.keys[0] == :StoredVersionedContractByHash
167
183
  temp_args = []
@@ -179,6 +195,7 @@ class DeploySerializer
179
195
  end
180
196
  temp = Utils::ByteUtils.byte_array_to_hex(Casper::Entity::StoredVersionedContractByHash.new(name, version,entry_point, temp_args).to_bytes)
181
197
  result += temp
198
+ @payment_session_serializer += temp
182
199
  temp = nil
183
200
  elsif session.keys[0] == :StoredVersionedContractByName
184
201
  temp_args = []
@@ -196,6 +213,7 @@ class DeploySerializer
196
213
  end
197
214
  temp = Utils::ByteUtils.byte_array_to_hex(Casper::Entity::StoredVersionedContractByName.new(name, version,entry_point, temp_args).to_bytes)
198
215
  result += temp
216
+ @payment_session_serializer += temp
199
217
  temp = nil
200
218
 
201
219
  elsif session.keys[0] == :Transfer
@@ -203,31 +221,120 @@ class DeploySerializer
203
221
  args = session[:Transfer][:args]
204
222
 
205
223
  transfer = Casper::Entity::DeployExecutableTransfer.new(args)
224
+ # args.each do |arg|
225
+ # name1 = arg[0] # => "amount"
226
+ # clvalue_hash = arg[1] # => {:cl_type=>"I32", :bytes=>"e8030000", :parsed=>1000}
227
+ # clvalue = build_cl_value(arg[1])
228
+ # # puts clvalue
229
+ # temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
230
+ # end
231
+
206
232
  args.each do |arg|
207
- name1 = arg[0] # => "amount"
208
- clvalue_hash = arg[1] # => {:cl_type=>"I32", :bytes=>"e8030000", :parsed=>1000}
209
- clvalue = build_cl_value(arg[1])
210
- # puts clvalue
211
- temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
233
+ name1 = arg[0]
234
+ if name1 == "amount" || name1 == "target"
235
+ clvalue_hash = arg[1]
236
+ clvalue = build_cl_value(arg[1])
237
+ temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
238
+ elsif name1 == "id"
239
+ bytes = arg[1][:bytes]
240
+ parsed = arg[1][:parsed]
241
+ h = arg[1][:cl_type]
242
+ key, value = h.first
243
+ cl_type = h.keys[0]
244
+ inner_type = value
245
+ # data = { "cl_type": inner_type, "bytes": bytes, "parsed": parsed}
246
+ # clvalue = CLOption.new(data, inner_type)
247
+
248
+ inner_clvalue = Utils::Helpers.construct_inner_clvalue(inner_type, parsed)
249
+ clvalue = CLOption.new(inner_clvalue, inner_type)
250
+ # type = clvalue.get_cl_type
251
+ # puts type
252
+ # value = clvalue.get_value
253
+ # puts value
254
+ # tag = CLType::TAGS[type.to_sym]
255
+ # puts tag
256
+ # cl_value = { "cl_type": cl_type, "bytes": bytes, "parsed": parsed}
257
+ # clvalue = build_cl_value(cloption)
258
+ # puts cloption.get_value
259
+ temp_args << [Casper::Entity::DeployNamedArgument.new(name1, clvalue)]
260
+ end
212
261
  end
213
262
  temp = Utils::ByteUtils.byte_array_to_hex(Casper::Entity::DeployExecutableTransfer.new(temp_args).to_bytes)
263
+ @target_serializer = temp
214
264
  result += temp
265
+ @transfer_serializer += temp
266
+ @payment_session_serializer += temp
215
267
  temp = nil
216
268
  end
217
269
 
218
270
  approvals = deploy.get_approvals
219
271
  num_of_approvals = approvals.size
272
+ approval_serializer = ""
220
273
  deploy_approval_serializer = DeployApprovalSerializer.new
221
274
  result += Utils::ByteUtils.to_u32(num_of_approvals)
275
+ approval_serializer += Utils::ByteUtils.to_u32(num_of_approvals)
276
+ # @payment_session_serializer += Utils::ByteUtils.to_u32(num_of_approvals)
222
277
  for approval in approvals
223
278
  deploy_approval = Casper::Entity::DeployApproval.new(approval)
279
+ # @payment_session_serializer += deploy_approval_serializer.to_bytes(deploy_approval)
224
280
  result += deploy_approval_serializer.to_bytes(deploy_approval)
281
+ approval_serializer += deploy_approval_serializer.to_bytes(deploy_approval)
225
282
  end
226
- # result
227
283
  Utils::ByteUtils.hex_to_byte_array(result)
228
284
  end
229
285
 
230
286
  def build_cl_value(h = {})
287
+ cl_type = h[:cl_type]
288
+ bytes = h[:bytes]
289
+ parsed = h[:parsed]
290
+ if cl_type == "Bool"
291
+ CLValueBytesParsers::CLBoolBytesParser.from_bytes([bytes])
292
+ elsif cl_type == "I32"
293
+ value = Utils::ByteUtils.hex_to_integer(bytes)
294
+ CLi32.new(value)
295
+ elsif cl_type == "I64"
296
+ value = Utils::ByteUtils.hex_to_i64_value(bytes)
297
+ CLi64.new(value)
298
+ elsif cl_type == "U8"
299
+ value = Utils::ByteUtils.hex_to_u8_value(bytes)
300
+ CLu8.new(value)
301
+ elsif cl_type == "U32"
302
+ value = Utils::ByteUtils.hex_to_u32_value(bytes)
303
+ CLu32.new(value)
304
+ elsif cl_type == "U64"
305
+ value = Utils::ByteUtils.hex_to_u64_value(bytes)
306
+ CLu64.new(value)
307
+ elsif cl_type == "U512"
308
+ bytes = h[:bytes] # => 0400f90295
309
+ num_of_bytes = bytes[0..1] # => 04
310
+ bytes = bytes[2..] # => "00f90295"
311
+ value = [bytes].pack("H*").unpack("L*").first
312
+ # CLu512.new(value)
313
+ CLu512.new(parsed.to_i)
314
+ # value = Utils::ByteUtils.hex_to_u64_value(bytes)
315
+ # CLu512.new(value)
316
+ # value = Utils::ByteUtils.hex_to_u512_value(bytes)
317
+ # CLu512.new(value)
318
+ elsif cl_type == "Unit"
319
+ # value = CLValueBytesParsers::CLUnitBytesParser.from_bytes(bytes)
320
+ if bytes == ""
321
+ value = nil
322
+ CLUnit.new(value)
323
+ end
324
+ elsif cl_type == "String"
325
+ value = CLValueBytesParsers::CLStringBytesParser.from_bytes(bytes)
326
+ CLString.new(value)
327
+ elsif cl_type == "URef"
328
+ value = Utils::ByteUtils.hex_to_byte_array(bytes)
329
+ CLValueBytesParsers::CLURefBytesParser.from_bytes(value)
330
+ # elsif cl_type = "Option"
331
+
332
+ elsif cl_type == "PublicKey"
333
+ CLPublicKey.from_hex(bytes)
334
+ end
335
+ end
336
+
337
+ def build_cl_value_with_option(h = {})
231
338
  cl_type = h[:cl_type]
232
339
  bytes = h[:bytes]
233
340
  parsed = h[:parsed]
@@ -248,6 +355,11 @@ class DeploySerializer
248
355
  elsif cl_type == "U64"
249
356
  value = Utils::ByteUtils.hex_to_u64_value(bytes)
250
357
  CLu32.new(value)
358
+ elsif cl_type == "U512"
359
+ value = Utils::ByteUtils.hex_to_u64_value(bytes)
360
+ CLu512.new(value)
361
+ # value = Utils::ByteUtils.hex_to_u512_value(bytes)
362
+ # CLu512.new(value)
251
363
  elsif cl_type == "Unit"
252
364
  # value = CLValueBytesParsers::CLUnitBytesParser.from_bytes(bytes)
253
365
  if bytes == ""
@@ -260,6 +372,8 @@ class DeploySerializer
260
372
  elsif cl_type == "URef"
261
373
  value = Utils::ByteUtils.hex_to_byte_array(bytes)
262
374
  CLValueBytesParsers::CLURefBytesParser.from_bytes(value)
375
+ # elsif cl_type = "Option"
376
+
263
377
  elsif cl_type == "PublicKey"
264
378
  CLPublicKey.from_hex(bytes)
265
379
  end
@@ -18,6 +18,7 @@ class CLOption < CLValue
18
18
  elsif data == nil && inner_type != nil
19
19
  @inner_type = inner_type
20
20
  else
21
+ # @inner_type = data[:cl_type]
21
22
  @inner_type = data.get_cl_type
22
23
  end
23
24
  end
@@ -27,7 +28,14 @@ class CLOption < CLValue
27
28
  end
28
29
 
29
30
  def get_cl_type
30
- CLOptionType.new(@inner_type)
31
+ CLOptionType.new(@inner_type).get_type
32
+ =begin
31
33
  @inner_type
34
+ get_type
35
+ =end
36
+ end
37
+
38
+ def get_inner_type
39
+ @inner_type
32
40
  end
33
41
  end
@@ -34,6 +34,8 @@ class CLPublicKey < CLValue
34
34
  # @param [Integer] tag
35
35
  def initialize(raw_public_key, tag)
36
36
  super()
37
+ @tag = tag
38
+ @raw_public_key = raw_public_key
37
39
  raw_public_key_length_valid?(raw_public_key, tag)
38
40
  end
39
41
 
@@ -8,4 +8,12 @@ class CLValue
8
8
  @cl_type = cl_type
9
9
  @parsed = parsed
10
10
  end
11
+
12
+ def to_hash(bytes, value, type)
13
+ {
14
+ "bytes": bytes,
15
+ "parsed": value,
16
+ "cl_type": type
17
+ }
18
+ end
11
19
  end
@@ -27,6 +27,11 @@ module Utils
27
27
  # byte_array.pack("C*").unpack1("H*")
28
28
  byte_array.pack("C*").unpack("H*").first
29
29
  end
30
+
31
+ def byte_array_to_hex_64(byte_array)
32
+ # byte_array.pack("C*").unpack1("H*")
33
+ byte_array.pack("C*").unpack("H*").first
34
+ end
30
35
 
31
36
  # @param [String] str
32
37
  # @return [Array]
@@ -74,6 +79,15 @@ module Utils
74
79
  # @param [Integer] n
75
80
  # @return [String]
76
81
  def to_u64(n)
82
+ # bytes = Utils::ByteUtils.byte_array_to_hex(to_byte_array(n)) + "0000"
83
+ # puts "bytes: #{bytes}"
84
+ # puts "bytes_conversion: #{[bytes].pack("H*").unpack("C*")}"
85
+ [n].pack("Q<*").unpack("H*").first
86
+ end
87
+
88
+ # @param [Integer] n
89
+ # @return [String]
90
+ def to_u512(n)
77
91
  [n].pack("Q<*").unpack("H*").first
78
92
  end
79
93
 
@@ -103,5 +117,19 @@ module Utils
103
117
  def hex_to_u64_value(hex_str)
104
118
  [hex_str].pack("H*").unpack("Q*").first
105
119
  end
120
+ def hex_to_u512_value(hex_str)
121
+ [hex_str].pack("H*").unpack("Q*").first
122
+ end
123
+
124
+ # @return byte array containing two's complement representation of Bignum/Fixnum
125
+ def to_byte_array(num)
126
+ result = []
127
+ begin
128
+ result << (num & 0xff)
129
+ num >>= 8
130
+ end until (num == 0 || num == -1) && (result.last[7] == num[7])
131
+ # result.reverse
132
+ result
133
+ end
106
134
  end
107
135
  end
@@ -0,0 +1,10 @@
1
+ module Utils
2
+ module Helpers
3
+ extend self
4
+ def construct_inner_clvalue(cl_type, value)
5
+ if cl_type == "U64"
6
+ CLu64.new(value)
7
+ end
8
+ end
9
+ end
10
+ end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module CasperNetworkSDK
2
- VERSION = '1.0.1'
2
+ VERSION = '1.1.2'
3
3
  end
@@ -69,6 +69,18 @@ describe CLValueSerializer do
69
69
  end
70
70
  end
71
71
 
72
+ describe "CLu512 Value Serializer" do
73
+ let(:u512_1) { CLu512.new(1000000000)}
74
+ let(:u512_2) { CLu512.new(23000000000)}
75
+
76
+ it "should serialize CLu512 values" do
77
+ # puts serializer.to_bytes(u512_1)
78
+ expect(serializer.to_bytes(u512_1)).to eql("040000000300ca9a08")
79
+ # puts serializer.to_bytes(u512_2)
80
+ expect(serializer.to_bytes(u512_2)).to eql("05000000040026e85a08")
81
+ end
82
+ end
83
+
72
84
  describe "CLString Value Serializer" do
73
85
  let (:str1) { CLString.new("Hello, Casper!") }
74
86
  it "should serialize CLString values" do
@@ -133,8 +145,10 @@ describe CLValueSerializer do
133
145
  describe "CLUnit Value Serializer" do
134
146
  let(:unit) {CLUnit.new()}
135
147
  it "should serialize CLUnit values" do
136
- puts serializer.to_bytes(unit)
148
+ # puts serializer.to_bytes(unit)
137
149
  expect(serializer.to_bytes(unit)).to eql("0000000009")
138
150
  end
139
151
  end
152
+
153
+
140
154
  end
data/spec/client_spec.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # client_spec.rb
2
- require './lib/casper_network.rb'
2
+ require './lib/rpc/rpc_client.rb'
3
3
 
4
- describe CasperClient do
5
- client1 = CasperClient.new("185.246.84.43")
4
+ describe Casper::RpcClient do
5
+ client1 = Casper::RpcClient.new("185.246.84.43")
6
6
  # Test info_get_peers()
7
7
  describe "#info_get_peers" do
8
8
  it "returns peers array." do
@@ -0,0 +1,90 @@
1
+ require_relative '../lib/entity/deploy_named_argument.rb'
2
+ require_relative '../lib/serialization/deploy_named_arg_serializer.rb'
3
+ require_relative '../lib/entity/deploy_executable_item_internal.rb'
4
+ require_relative '../lib/entity/deploy_executable.rb'
5
+ require_relative '../lib/entity/stored_contract_by_hash.rb'
6
+ require_relative '../lib/entity/stored_contract_by_name.rb'
7
+ require_relative '../lib/entity/stored_versioned_contract_by_hash.rb'
8
+ require_relative '../lib/entity/stored_versioned_contract_by_name.rb'
9
+ require_relative '../lib/serialization/deploy_executable_serializer.rb'
10
+ require_relative '../lib/entity/deploy.rb'
11
+ require_relative '../lib/entity/deploy_hash.rb'
12
+ require_relative '../lib/entity/deploy_header.rb'
13
+ require_relative '../lib/entity/deploy_approval.rb'
14
+ require_relative '../lib/entity/deploy_info.rb'
15
+ require_relative '../lib/entity/deploy.rb'
16
+ require_relative '../lib/serialization/deploy_serializer.rb'
17
+
18
+
19
+ RSpec.describe Casper::Entity::DeployExecutable do
20
+ # describe Casper::Entity::DeployExecutable do
21
+ let(:args) {[]}
22
+
23
+
24
+ # ModuleBytes
25
+ describe Casper::Entity::ModuleBytes do
26
+ it "ModuleBytes serialization" do
27
+ args = []
28
+ arg1 = Casper::Entity::DeployNamedArgument.new("amount", CLu512.new(2500000000))
29
+ args << [arg1]
30
+ module_bytes = Casper::Entity::ModuleBytes.new("", args)
31
+ # puts Utils::ByteUtils.byte_array_to_hex(module_bytes.to_bytes)
32
+ expect(Utils::ByteUtils.byte_array_to_hex(module_bytes.to_bytes)).to eql("00000000000100000006000000616d6f756e74050000000400f9029508")
33
+ end
34
+ end
35
+
36
+ # StoredContractByHash
37
+ describe Casper::Entity::StoredContractByHash do
38
+ it "StoredContractByHash serialization" do
39
+ arg1 = Casper::Entity::DeployNamedArgument.new("quantity", CLi32.new(1000))
40
+ args << [arg1]
41
+ stored_contract_by_hash = Casper::Entity::StoredContractByHash.new("c4c411864f7b717c27839e56f6f1ebe5da3f35ec0043f437324325d65a22afa4", "pclphXwfYmCmdITj8hnh", args)
42
+ # puts Utils::ByteUtils.byte_array_to_hex(stored_contract_by_hash.to_bytes)
43
+ expect(Utils::ByteUtils.byte_array_to_hex(stored_contract_by_hash.to_bytes)).to eql("01c4c411864f7b717c27839e56f6f1ebe5da3f35ec0043f437324325d65a22afa41400000070636c7068587766596d436d6449546a38686e6801000000080000007175616e7469747904000000e803000001")
44
+ end
45
+ end
46
+
47
+ # StoredContractByName
48
+ describe Casper::Entity::StoredContractByName do
49
+ it "StoredContractByName serialization" do
50
+ arg1 = Casper::Entity::DeployNamedArgument.new("quantity", CLi32.new(1000))
51
+ args << [arg1]
52
+ stored_contract_by_name = Casper::Entity::StoredContractByName.new("casper-example", "example-entry-point", args)
53
+ # puts Utils::ByteUtils.byte_array_to_hex(stored_contract_by_name.to_bytes)
54
+ expect(Utils::ByteUtils.byte_array_to_hex(stored_contract_by_name.to_bytes)).to eql("020e0000006361737065722d6578616d706c65130000006578616d706c652d656e7472792d706f696e7401000000080000007175616e7469747904000000e803000001")
55
+ end
56
+ end
57
+
58
+ # StoredVersionedContractByHash
59
+ describe Casper::Entity::StoredVersionedContractByHash do
60
+ it "StoredVersionedContractByHash serialization" do
61
+ arg1 = Casper::Entity::DeployNamedArgument.new("test", CLString.new("Hello, World!"))
62
+ args << [arg1]
63
+ stored_versioned_contract_by_hash = Casper::Entity::StoredVersionedContractByHash.new("b348fdd0d0b3f66468687df93141b5924f6bb957d5893c08b60d5a78d0b9a423", nil, "PsLz5c7JsqT8BK8ll0kF", args)
64
+ # puts Utils::ByteUtils.byte_array_to_hex(stored_versioned_contract_by_hash.to_bytes)
65
+ expect(Utils::ByteUtils.byte_array_to_hex(stored_versioned_contract_by_hash.to_bytes)).to eql("03b348fdd0d0b3f66468687df93141b5924f6bb957d5893c08b60d5a78d0b9a423001400000050734c7a3563374a73715438424b386c6c306b46010000000400000074657374110000000d00000048656c6c6f2c20576f726c64210a")
66
+ end
67
+ end
68
+
69
+ # StoredVersionedContractByName
70
+ describe Casper::Entity::StoredVersionedContractByName do
71
+ it "StoredVersionedContractByName serialization" do
72
+ arg1 = Casper::Entity::DeployNamedArgument.new("test", CLString.new("Hello, World!"))
73
+ args << [arg1]
74
+ stored_versioned_contract_by_name = Casper::Entity::StoredVersionedContractByName.new("test-contract", nil, "PsLz5c7JsqT8BK8ll0kF", args)
75
+ # puts Utils::ByteUtils.byte_array_to_hex(stored_versioned_contract_by_name.to_bytes)
76
+ expect(Utils::ByteUtils.byte_array_to_hex(stored_versioned_contract_by_name.to_bytes)).to eql("040d000000746573742d636f6e7472616374001400000050734c7a3563374a73715438424b386c6c306b46010000000400000074657374110000000d00000048656c6c6f2c20576f726c64210a")
77
+ end
78
+ end
79
+
80
+ # DeployExecutableTransfer
81
+ describe Casper::Entity::DeployExecutableTransfer do
82
+ it "DeployExecutableTransfer serialization" do
83
+ arg1 = Casper::Entity::DeployNamedArgument.new("amount", CLi32.new(1000))
84
+ args << [arg1]
85
+ transfer = Casper::Entity::DeployExecutableTransfer.new(args)
86
+ # puts Utils::ByteUtils.byte_array_to_hex(transfer.to_bytes)
87
+ expect(Utils::ByteUtils.byte_array_to_hex(transfer.to_bytes)).to eql("050100000006000000616d6f756e7404000000e803000001")
88
+ end
89
+ end
90
+ end
data/spec/testnet_spec.rb CHANGED
@@ -6,7 +6,9 @@ require './lib/rpc/rpc_client.rb'
6
6
  # Ip Address taken from Testnet
7
7
  # client = Casper::RpcClient.new("65.21.227.101") # IP is taken from "TestNet"
8
8
  # client = Casper::RpcClient.new("138.201.54.44") # IP is taken from "TestNet"
9
- client = Casper::RpcClient.new("5.9.23.55") # IP is taken from "TestNet"
9
+ # client = Casper::RpcClient.new("5.9.23.55") # IP is taken from "TestNet"
10
+ client = Casper::RpcClient.new("65.21.235.219") # IP is taken from "TestNet"
11
+
10
12
 
11
13
  # block_Hash taken from Testnet
12
14
  block_hash = "71e19e2e9629c716dc9578066cfeceace559d32fe51b08245ddd4d218f8c18da"
@@ -250,8 +252,8 @@ describe Casper::RpcClient do
250
252
  expect(peers_from_info_get_status.size).to be > 0
251
253
  end
252
254
 
253
- it "passes, node public key is : 018597e78805200d5469105024d7741894c2c1eac69fb9c15e718e1824261722a2" do
254
- our_public_signing_key = "018597e78805200d5469105024d7741894c2c1eac69fb9c15e718e1824261722a2"
255
+ it "passes, node public key is : 01ac58a7b87cd67f03b1ccf371a1f3979efb6ddafb9fbb7b59096ed5a6425eccc3" do
256
+ our_public_signing_key = "01ac58a7b87cd67f03b1ccf371a1f3979efb6ddafb9fbb7b59096ed5a6425eccc3"
255
257
  expect(node_status[:our_public_signing_key]).to eql(our_public_signing_key)
256
258
  end
257
259
  end