klay 0.0.2 → 0.0.3
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/lib/klay/signature.rb +20 -6
- data/lib/klay/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8986fd6d80e3681e563bd7e54150159d8f4d5f965c2c78f1a20cd3bf8d6ba57c
|
4
|
+
data.tar.gz: aa908017c60bd2ca4655a08763aaec318de7aaabf5a064d9bab624ba3d0c9c56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60d093d6d7c16a96cf453ce2303d1098bb00b8171f88b55d09aa4e2d0772c250fbb185da0946d6ff420a2c6c56d4eb5dd87931d8261a998c2e939c73b32765f8
|
7
|
+
data.tar.gz: 57e532d640d093d7049c71b66b110567ada2626cb2f03b69ca731c209968eecd02e96f136053b342cc7755407b6c05ed4790a929239b100810946189b31bc3f0
|
data/lib/klay/signature.rb
CHANGED
@@ -38,7 +38,7 @@ module Klay
|
|
38
38
|
# @param message [String] the message string to be prefixed.
|
39
39
|
# @return [String] an EIP-191 prefixed string.
|
40
40
|
def prefix_message(message)
|
41
|
-
"
|
41
|
+
"\u0019Klaytn Signed Message:\n#{message.size}#{message}"
|
42
42
|
end
|
43
43
|
|
44
44
|
# Dissects a signature blob of 65+ bytes into its `r`, `s`, and `v`
|
@@ -50,12 +50,12 @@ module Klay
|
|
50
50
|
def dissect(signature)
|
51
51
|
signature = Util.bin_to_hex signature unless Util.is_hex? signature
|
52
52
|
signature = Util.remove_hex_prefix signature
|
53
|
-
if signature.size
|
53
|
+
if signature.size != 130
|
54
54
|
raise SignatureError, "Unknown signature length #{signature.size}!"
|
55
55
|
end
|
56
|
-
r = signature[0
|
57
|
-
s = signature[64
|
58
|
-
v = signature[128]
|
56
|
+
r = signature[0...64]
|
57
|
+
s = signature[64...128]
|
58
|
+
v = signature[128..]
|
59
59
|
return r, s, v
|
60
60
|
end
|
61
61
|
|
@@ -71,7 +71,7 @@ module Klay
|
|
71
71
|
r, s, v = dissect signature
|
72
72
|
v = v.to_i(16)
|
73
73
|
p v
|
74
|
-
raise SignatureError, "Invalid signature v byte #{v} for chain ID #{chain_id}!" if v != 130
|
74
|
+
# raise SignatureError, "Invalid signature v byte #{v} for chain ID #{chain_id}!" if v != 130
|
75
75
|
recovery_id = Chain.to_recovery_id v, chain_id
|
76
76
|
signature_rs = Util.hex_to_bin "#{r}#{s}"
|
77
77
|
recoverable_signature = context.recoverable_signature_from_compact signature_rs, recovery_id
|
@@ -79,6 +79,20 @@ module Klay
|
|
79
79
|
Util.bin_to_hex public_key.uncompressed
|
80
80
|
end
|
81
81
|
|
82
|
+
# def to_recovery_id(v)
|
83
|
+
# if (v == 0 || v == 1) {
|
84
|
+
# return v;
|
85
|
+
# }
|
86
|
+
# if (v < 27) {
|
87
|
+
# raise new SignatureError("v byte out of range: " + v);
|
88
|
+
# }
|
89
|
+
# if(v < 35) {
|
90
|
+
# // v = parity value {0,1} + 27
|
91
|
+
# return v - 27;
|
92
|
+
# }
|
93
|
+
# return ((v - 35) % 2) == 0 ? 0 : 1;
|
94
|
+
# end
|
95
|
+
|
82
96
|
# Recovers a public key from a prefixed, personal message and
|
83
97
|
# a signature on a given chain. (EIP-191)
|
84
98
|
# Ref: https://eips.ethereum.org/EIPS/eip-191
|
data/lib/klay/version.rb
CHANGED