Skip to content

Commit 2b1a07b

Browse files
author
Guantong
committed
Revert "Update ecdsa-authority spec (#1022)"
This reverts commit 3c07f7b.
1 parent da97997 commit 2b1a07b

File tree

3 files changed

+30
-34
lines changed

3 files changed

+30
-34
lines changed

pallet/ecdsa-authority/src/lib.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ pub mod pallet {
486486
),
487487
}
488488
};
489-
let message = Sign::signable_message(
489+
let message = Sign::eth_signable_message(
490490
T::ChainId::get(),
491491
T::Version::get().spec_name.as_ref(),
492492
&ethabi::encode(&[
@@ -552,9 +552,12 @@ pub mod pallet {
552552
}
553553

554554
fn on_new_message_root(at: T::BlockNumber, message_root: Hash) {
555-
let commitment =
556-
Commitment { block_number: at, message_root, nonce: <Nonce<T>>::get() };
557-
let message = Sign::signable_message(
555+
let commitment = Commitment {
556+
block_number: at.saturated_into::<u32>(),
557+
message_root,
558+
nonce: <Nonce<T>>::get(),
559+
};
560+
let message = Sign::eth_signable_message(
558561
T::ChainId::get(),
559562
T::Version::get().spec_name.as_ref(),
560563
&ethabi::encode(&[

pallet/ecdsa-authority/src/primitives.rs

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,12 @@ impl Sign {
5252
hashing::keccak_256(data)
5353
}
5454

55-
pub fn domain_separator(chain_id: u64, spec_name: &[u8]) -> [u8; 32] {
56-
Self::hash(&[&chain_id.to_be_bytes(), spec_name, b"::ecdsa-authority"].concat())
57-
}
58-
59-
// \x19\x01 + keccack256(ChainIDSpecName::ecdsa-authority) + struct_hash
60-
pub(crate) fn signable_message(chain_id: u64, spec_name: &[u8], data: &[u8]) -> Hash {
55+
pub(crate) fn eth_signable_message(chain_id: u64, spec_name: &[u8], data: &[u8]) -> Hash {
56+
// \x19\x01 + keccack256(ChainIDSpecName::ecdsa-authority) + struct_hash
6157
Hash(Self::hash(
6258
&[
6359
b"\x19\x01".as_slice(),
64-
&Self::domain_separator(chain_id, spec_name),
60+
&Self::hash(&[&chain_id.to_le_bytes(), spec_name, b"::ecdsa-authority"].concat()),
6561
&Self::hash(data),
6662
]
6763
.concat(),
@@ -173,23 +169,20 @@ where
173169
}
174170

175171
#[test]
176-
fn signable_message() {
172+
fn eth_signable_message() {
177173
assert_eq!(
178-
array_bytes::bytes2hex("0x", Sign::domain_separator(46, b"Darwinia").as_ref()),
179-
"0xc494742e979bd6ab2dca4950fddd8809e1502ab8ef7b8d749364ec32cb6e1b3e"
174+
array_bytes::bytes2hex("0x", Sign::eth_signable_message(46, b"Darwinia", &[0; 32])),
175+
"0xb492857010088b0dff298645e9105549d088aab7bcb20cf5a3d0bc17dce91045"
180176
);
181177
assert_eq!(
182-
array_bytes::bytes2hex("0x", Sign::domain_separator(43, b"Pangolin2").as_ref()),
183-
"0xe97c73e46305f3bca2279f002665725cd29e465c6624e83a135f7b2e6b1a8134"
178+
array_bytes::bytes2hex("0x", Sign::hash(b"46Darwinia::ecdsa-authority")),
179+
"0xf8a76f5ceeff36d74ff99c4efc0077bcc334721f17d1d5f17cfca78455967e1e"
184180
);
185181

182+
let data = array_bytes::hex2bytes_unchecked("0x30a82982a8d5050d1c83bbea574aea301a4d317840a8c4734a308ffaa6a63bc8cb76085b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000068898db1012808808c903f390909c52d9f7067490000000000000000000000004cdc1dbbd754ea539f1ffaea91f1b6c4b8dd14bd");
186183
assert_eq!(
187-
array_bytes::bytes2hex("0x", Sign::signable_message(46, b"Darwinia", &[0; 32])),
188-
"0xe52c7ebc7e478b623a16cc38469eca4aa1255bed6cd2599e529080d27ecaed32"
189-
);
190-
assert_eq!(
191-
array_bytes::bytes2hex("0x", Sign::signable_message(45, b"Pangoro", &array_bytes::hex2bytes_unchecked("0x30a82982a8d5050d1c83bbea574aea301a4d317840a8c4734a308ffaa6a63bc8cb76085b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000068898db1012808808c903f390909c52d9f7067490000000000000000000000004cdc1dbbd754ea539f1ffaea91f1b6c4b8dd14bd"))),
192-
"0x9688cfb794c97094994409ed1c7c7caad076ae53ec13af8a370b55654f7bcb36"
184+
array_bytes::bytes2hex("0x", Sign::eth_signable_message(45, b"Pangoro", &data)),
185+
"0x4bddffe492f1091c1902d1952fc4673b12915f4b22822c6c84eacad574f11f2e"
193186
);
194187

195188
let operation = Operation::SwapMembers {
@@ -208,7 +201,7 @@ fn signable_message() {
208201
ethabi::Token::Uint(0.into()),
209202
]);
210203
assert_eq!(
211-
array_bytes::bytes2hex("0x", Sign::signable_message(45, b"Pangoro", &encoded)),
212-
"0x2ca922116daa8c7fec2b58362b58764e83f3b24e906fb50f58e3e1a2e208fb77"
204+
array_bytes::bytes2hex("0x", Sign::eth_signable_message(45, b"Pangoro", &encoded)),
205+
"0xe328aa10278425238407d49104ac5a55fd68e7f378b327c902d4d5035cfcfedf"
213206
);
214207
}

pallet/ecdsa-authority/src/tests.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ fn add_authority() {
4747
assert_eq!(EcdsaAuthority::next_authorities(), vec![a_0]);
4848
assert_eq!(EcdsaAuthority::nonce(), 0);
4949
let message = array_bytes::hex_n_into_unchecked(
50-
"0x5dcc31dcd194f2ccb42e13ed80001e37492f796d6d62514525fcf66de6f955c8",
50+
"0x5c883184c9c53c59857253454df1b4813e8b3fb28648beb85555d58d1e801e14",
5151
);
5252
assert_eq!(
5353
EcdsaAuthority::authorities_change_to_sign().unwrap(),
@@ -123,7 +123,7 @@ fn remove_authority() {
123123
assert_eq!(EcdsaAuthority::next_authorities(), vec![a_2]);
124124
assert_eq!(EcdsaAuthority::nonce(), 0);
125125
let message = array_bytes::hex_n_into_unchecked(
126-
"0xb59076c5054bc451c964b47af005b7b807b3501c36ef4d4375cb39637baea13b",
126+
"0x76139aa9d1c7b35fc744b10444898ee5703e3f77406b926f903006436b7930c7",
127127
);
128128
assert_eq!(
129129
EcdsaAuthority::authorities_change_to_sign().unwrap(),
@@ -182,7 +182,7 @@ fn swap_authority() {
182182
assert_eq!(EcdsaAuthority::next_authorities(), vec![a_2]);
183183
assert_eq!(EcdsaAuthority::nonce(), 0);
184184
let message = array_bytes::hex_n_into_unchecked(
185-
"0x0f9863685b4ef59a98fc26a063dad4713698af2d10af5f2ea921fed3f39fac71",
185+
"0x30effc17a3fcf9b3079168c2c2be54b6d9fbdfd7077c9d844ec241dd70dd0507",
186186
);
187187
assert_eq!(
188188
EcdsaAuthority::authorities_change_to_sign().unwrap(),
@@ -237,7 +237,7 @@ fn sync_interval_and_max_pending_period() {
237237
});
238238
run_to_block(sync_interval);
239239
let message = array_bytes::hex_n_into_unchecked(
240-
"0x7eba5c34eb163661830babd9d52b674f80812b4cde832429635352eb6f9225af",
240+
"0x742776a31e49b3f5a2a15a6781eb99f96e8116bfc67aae652a08b9b1235146d2",
241241
);
242242
assert_eq!(
243243
EcdsaAuthority::message_root_to_sign().unwrap(),
@@ -279,7 +279,7 @@ fn sync_interval_and_max_pending_period() {
279279
});
280280
run_to_block(offset + <<Runtime as Config>::MaxPendingPeriod as Get<BlockNumber>>::get());
281281
let message = array_bytes::hex_n_into_unchecked(
282-
"0x3e5c445233cc9d281c4fde6ffc5d1c57701d932afba5e6cea07f9b1e88d41fc6",
282+
"0xafd9fc3dc135079be23746b4beb27255e5d3b4c5f3d05db766af751c0ed97920",
283283
);
284284
assert_eq!(
285285
EcdsaAuthority::message_root_to_sign().unwrap(),
@@ -338,7 +338,7 @@ fn submit_authorities_change_signature() {
338338
assert_ok!(EcdsaAuthority::add_authority(RuntimeOrigin::root(), a_3));
339339
let operation = Operation::AddMember { new: a_3 };
340340
let message = array_bytes::hex_n_into_unchecked(
341-
"0x7c2560e894619daa9e7369148a97b05d16e1c439c2467b08f64af578aba9cb4a",
341+
"0x3ad89c7824d6e83c180482c888a0af99baa95ce17a39285d6f943df5d95e7759",
342342
);
343343
assert_eq!(
344344
EcdsaAuthority::authorities_change_to_sign().unwrap(),
@@ -400,7 +400,7 @@ fn submit_authorities_change_signature() {
400400
},
401401
Event::CollectingNewMessageRootSignatures {
402402
message: array_bytes::hex_n_into_unchecked(
403-
"0x1a8ed5724cc495c64b46b43c079e82e299aaac24f79deae23bbfea88e2e1abdc"
403+
"0xe7bded73843f446f46b42ee0e0cc435f4f66fbcedf36c635c437a4d63bb44696"
404404
)
405405
}
406406
]
@@ -426,7 +426,7 @@ fn submit_new_message_root_signature() {
426426

427427
run_to_block(<<Runtime as Config>::SyncInterval as Get<BlockNumber>>::get());
428428
let message = array_bytes::hex_n_into_unchecked(
429-
"0x7eba5c34eb163661830babd9d52b674f80812b4cde832429635352eb6f9225af",
429+
"0x742776a31e49b3f5a2a15a6781eb99f96e8116bfc67aae652a08b9b1235146d2",
430430
);
431431
assert_eq!(
432432
EcdsaAuthority::message_root_to_sign().unwrap(),
@@ -516,7 +516,7 @@ fn tx_fee() {
516516
.for_each(|n| run_to_block(n));
517517
run_to_block(<<Runtime as Config>::SyncInterval as Get<BlockNumber>>::get());
518518
let message = array_bytes::hex_n_into_unchecked(
519-
"0x7eba5c34eb163661830babd9d52b674f80812b4cde832429635352eb6f9225af",
519+
"0x742776a31e49b3f5a2a15a6781eb99f96e8116bfc67aae652a08b9b1235146d2",
520520
);
521521

522522
// Free for first-correct signature.
@@ -539,7 +539,7 @@ fn tx_fee() {
539539

540540
assert_ok!(EcdsaAuthority::remove_authority(RuntimeOrigin::root(), a_1));
541541
let message = array_bytes::hex_n_into_unchecked(
542-
"0x9c9af6df8ad32bce1fe3e8e4a1c638843786b2cc7f7932ff4d3f2de7b29b2632",
542+
"0x24956af4b0842e1caec63782602c5a94089ba7c8ab8bd12d4243bb1a893b8af0",
543543
);
544544

545545
// Free for first-correct signature.

0 commit comments

Comments
 (0)