25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'lib/serialization/cl_type_serializer.rb', line 25
def self.serialize_cl_type(cl_type)
if cl_type.to_string == "Bool"
[0].pack("C*").unpack1("H*")
elsif cl_type.to_string == "I32"
[1].pack("C*").unpack1("H*")
elsif cl_type.to_string == "I64"
[2].pack("C*").unpack1("H*")
elsif cl_type.to_string == "U8"
[3].pack("C*").unpack1("H*")
elsif cl_type.to_string == "U32"
[4].pack("C*").unpack1("H*")
elsif cl_type.to_string == "U64"
[5].pack("C*").unpack1("H*")
elsif cl_type.to_string == "U128"
[6].pack("C*").unpack1("H*")
elsif cl_type.to_string == "U256"
[7].pack("C*").unpack1("H*")
elsif cl_type.to_string == "U512"
[8].pack("C*").unpack1("H*")
elsif cl_type.to_string == "Unit"
[9].pack("C*").unpack1("H*")
elsif cl_type.to_string == "String"
[10].pack("C*").unpack1("H*")
elsif cl_type.to_string == "Key"
[11].pack("C*").unpack1("H*")
elsif cl_type.to_string == "URef"
[12].pack("C*").unpack1("H*")
elsif cl_type.to_string == "Option"
[13].pack("C*").unpack1("H*") + serialize_cl_type(cl_type.get_inner_type)
elsif cl_type.to_string == "List"
[14].pack("C*").unpack1("H*")
elsif cl_type.to_string == "ByteArray"
[15].pack("C*").unpack1("H*")
elsif cl_type.to_string == "Result"
[16].pack("C*").unpack1("H*")
elsif cl_type.to_string == "Map"
[17].pack("C*").unpack1("H*")
elsif cl_type.to_string == "Tuple1"
[18].pack("C*").unpack1("H*") + cl_type.get_data[0].to_bytes
elsif cl_type.to_string == "Tuple2"
[19].pack("C*").unpack1("H*") + cl_type.get_data[0].to_bytes + cl_type.get_data[1].to_bytes
elsif cl_type.to_string == "Tuple3"
[20].pack("C*").unpack1("H*") + cl_type.get_data[0].to_bytes + cl_type.get_data[1].to_bytes + cl_type.get_data[2].to_bytes
elsif cl_type.to_string == "Any"
[21].pack("C*").unpack1("H*")
elsif cl_type.to_string == "PublicKey"
[22].pack("C*").unpack1("H*")
else
"Undefined"
end
end
|