@@ -51,6 +51,7 @@ use frame_support::{
5151 parameter_types,
5252 traits:: {
5353 fungible:: HoldConsideration ,
54+ schedule:: DispatchTime ,
5455 tokens:: { imbalance:: ResolveTo , UnityOrOuterConversion } ,
5556 ConstU32 , ConstU8 , ConstUint , Currency , DefensiveResult , EitherOf , EitherOfDiverse ,
5657 EnsureOrigin , EnsureOriginWithArg , Equals , FromContains , InstanceFilter ,
@@ -187,7 +188,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
187188 spec_name : alloc:: borrow:: Cow :: Borrowed ( "kusama" ) ,
188189 impl_name : alloc:: borrow:: Cow :: Borrowed ( "parity-kusama" ) ,
189190 authoring_version : 2 ,
190- spec_version : 1_007_001 ,
191+ spec_version : 1_009_000 ,
191192 impl_version : 0 ,
192193 apis : RUNTIME_API_VERSIONS ,
193194 transaction_version : 26 ,
@@ -1908,41 +1909,50 @@ const AH_MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts(
19081909 polkadot_primitives:: MAX_POV_SIZE as u64 ,
19091910) ;
19101911
1912+ /// Kusama multisig members for the `Manager` privilege of the RC Migrator pallet with threshold 3.
1913+ ///
1914+ /// ACCOUNTS MUST BE ABLE TO SIGN VIA POLKADOTJS APPS `DEVELOPER->SIGN AND VERIFY` FEATURE.
1915+ /// This does *not* work for signing devices and implies that the account is *hot*. The account
1916+ /// does not need to have a balance and the chain does not matter.
1917+ ///
1918+ /// Will be used to respond to issues during the Asset Hub Migration and to adjust the scheduled
1919+ /// timepoint to ensure that it runs at the right time. Most members do not need to do anything
1920+ /// but are just in place to act as emergency backup contacts.
1921+ #[ cfg( feature = "std" ) ]
1922+ fn multisig_members ( ) -> Vec < AccountId32 > {
1923+ use sp_core:: crypto:: Ss58Codec ;
1924+
1925+ let addresses = vec ! [
1926+ "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" , // Alice SR25519
1927+ "5FA9nQDVg267DEd8m1ZypXLBnvN7SFxYwV7ndqSYGiN9TTpu" , // Alice ED25519
1928+ "5C7C2Z5sWbytvHpuLTvzKunnnRwQxft1jiqrLD5rhucQ5S9X" , /* Alice ECDSA Address (not SS58
1929+ * Public Key) */
1930+ "FoQJpPyadYccjavVdTWxpxU7rUEaYhfLCPwXgkfD6Zat9QP" , // Bob
1931+ "Fr4NzY1udSFFLzb2R3qxVQkwz9cZraWkyfH4h3mVVk7BK7P" , // Charlie
1932+ "HnMAUz7r2G8G3hB27SYNyit5aJmh2a5P4eMdDtACtMFDbam" , // Eve
1933+ ] ;
1934+
1935+ addresses
1936+ . into_iter ( )
1937+ . filter_map ( |ss| sp_runtime:: AccountId32 :: from_ss58check ( ss) . defensive_ok ( ) )
1938+ . collect ( )
1939+ }
1940+
1941+ #[ cfg( not( feature = "std" ) ) ]
19111942fn multisig_members ( ) -> Vec < AccountId32 > {
19121943 use sp_core:: crypto:: Ss58Codec ;
1913- let addresses = if cfg ! ( test) {
1914- vec ! [
1915- "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" , // Alice SR25519
1916- "5FA9nQDVg267DEd8m1ZypXLBnvN7SFxYwV7ndqSYGiN9TTpu" , // Alice ED25519
1917- "5C7C2Z5sWbytvHpuLTvzKunnnRwQxft1jiqrLD5rhucQ5S9X" , /* Alice ECDSA Address (not SS58
1918- * Public Key) */
1919- "FoQJpPyadYccjavVdTWxpxU7rUEaYhfLCPwXgkfD6Zat9QP" , // Bob
1920- "Fr4NzY1udSFFLzb2R3qxVQkwz9cZraWkyfH4h3mVVk7BK7P" , // Charlie
1921- "DfnTB4z7eUvYRqcGtTpFsLC69o6tvBSC1pEv8vWPZFtCkaK" , // Dave
1922- "HnMAUz7r2G8G3hB27SYNyit5aJmh2a5P4eMdDtACtMFDbam" , // Eve
1923- "FFFF3gBSSDFSvK2HBq4qgLH75DHqXWPHeCnR1BSksAMacBs" , // basti
1924- "FcxNWVy5RESDsErjwyZmPCW6Z8Y3fbfLzmou34YZTrbcraL" , // gav
1925- "HL8bEp8YicBdrUmJocCAWVLKUaR2dd1y6jnD934pbre3un1" , // kian
1926- "F2jgWXy7X8GQ2ykf1UGrsCXRERZvjEcd2aDf39fMf3BWVy6" , // oliver
1927- "GcDZZCVPwkPqoWxx8vfLb4Yfpz9yQ1f4XEyqngSH8ygsL9p" , // joe
1928- "12HWjfYxi7xt7EvpTxUis7JoNWF7YCqa19JXmuiwizfwJZY2" , // muharem
1929- "121dd6J26VUnBZ8BqLGjANWkEAXSb9mWq1SB7LsS9QNTGFvz" , // adrian
1930- "12pRzYaysQz6Tr1e78sRmu9FGB8gu8yTek9x6xwVFFAwXTM8" , // robK
1931- "FcJnhk4i1bfuN9E2B6yMnL8h97ogtuL7e4ZpqnYgvj9moQy" , // donal
1932- ]
1933- } else {
1934- vec ! [
1935- "FFFF3gBSSDFSvK2HBq4qgLH75DHqXWPHeCnR1BSksAMacBs" , // basti
1936- "FcxNWVy5RESDsErjwyZmPCW6Z8Y3fbfLzmou34YZTrbcraL" , // gav
1937- "HL8bEp8YicBdrUmJocCAWVLKUaR2dd1y6jnD934pbre3un1" , // kian
1938- "F2jgWXy7X8GQ2ykf1UGrsCXRERZvjEcd2aDf39fMf3BWVy6" , // oliver
1939- "GcDZZCVPwkPqoWxx8vfLb4Yfpz9yQ1f4XEyqngSH8ygsL9p" , // joe
1940- "12HWjfYxi7xt7EvpTxUis7JoNWF7YCqa19JXmuiwizfwJZY2" , // muharem
1941- "121dd6J26VUnBZ8BqLGjANWkEAXSb9mWq1SB7LsS9QNTGFvz" , // adrian
1942- "12pRzYaysQz6Tr1e78sRmu9FGB8gu8yTek9x6xwVFFAwXTM8" , // robK
1943- "FcJnhk4i1bfuN9E2B6yMnL8h97ogtuL7e4ZpqnYgvj9moQy" , // donal
1944- ]
1945- } ;
1944+
1945+ let addresses = vec ! [
1946+ "FFFF3gBSSDFSvK2HBq4qgLH75DHqXWPHeCnR1BSksAMacBs" , /* Basti Kusama Fellowship https://kusama.subscan.io/account/FFFF3gBSSDFSvK2HBq4qgLH75DHqXWPHeCnR1BSksAMacBs */
1947+ "FcxNWVy5RESDsErjwyZmPCW6Z8Y3fbfLzmou34YZTrbcraL" , /* Gav Kusama Fellowship https://kusama.subscan.io/account/FcxNWVy5RESDsErjwyZmPCW6Z8Y3fbfLzmou34YZTrbcraL */
1948+ "HL8bEp8YicBdrUmJocCAWVLKUaR2dd1y6jnD934pbre3un1" , /* Kian Kusama Fellowship https://kusama.subscan.io/account/HL8bEp8YicBdrUmJocCAWVLKUaR2dd1y6jnD934pbre3un1 */
1949+ "F2jgWXy7X8GQ2ykf1UGrsCXRERZvjEcd2aDf39fMf3BWVy6" , /* Oliver Hot https://kusama.subscan.io/account/F2jgWXy7X8GQ2ykf1UGrsCXRERZvjEcd2aDf39fMf3BWVy6 */
1950+ "GcDZZCVPwkPqoWxx8vfLb4Yfpz9yQ1f4XEyqngSH8ygsL9p" , /* Joe Kusama Fellowship https://kusama.subscan.io/account/GcDZZCVPwkPqoWxx8vfLb4Yfpz9yQ1f4XEyqngSH8ygsL9p */
1951+ "12HWjfYxi7xt7EvpTxUis7JoNWF7YCqa19JXmuiwizfwJZY2" , /* Muharem Polkadot Fellowship https://polkadot.subscan.io/account/12HWjfYxi7xt7EvpTxUis7JoNWF7YCqa19JXmuiwizfwJZY2 */
1952+ "121dd6J26VUnBZ8BqLGjANWkEAXSb9mWq1SB7LsS9QNTGFvz" , /* Adrian Polkadot Fellowship https://polkadot.subscan.io/account/121dd6J26VUnBZ8BqLGjANWkEAXSb9mWq1SB7LsS9QNTGFvz */
1953+ "12pRzYaysQz6Tr1e78sRmu9FGB8gu8yTek9x6xwVFFAwXTM8" , /* RobK Polkadot Fellowship https://polkadot.subscan.io/account/12pRzYaysQz6Tr1e78sRmu9FGB8gu8yTek9x6xwVFFAwXTM8 */
1954+ "FcJnhk4i1bfuN9E2B6yMnL8h97ogtuL7e4ZpqnYgvj9moQy" , /* Donal Polkadot Fellowship https://kusama.subscan.io/account/FcJnhk4i1bfuN9E2B6yMnL8h97ogtuL7e4ZpqnYgvj9moQy */
1955+ ] ;
19461956
19471957 addresses
19481958 . into_iter ( )
@@ -2212,18 +2222,23 @@ pub mod migrations {
22122222 return T :: DbWeight :: get ( ) . reads ( 2 )
22132223 }
22142224
2215- // We will set this as part of the release MR
2216- /*let result = pallet_rc_migrator::Pallet::<T>::do_schedule_migration(
2217- DispatchTime::After(/* START */),
2218- DispatchTime::After(/* WARM UP */),
2219- DispatchTime::After(/* COOL OFF */),
2225+ let result = pallet_rc_migrator:: Pallet :: < T > :: do_schedule_migration (
2226+ // Migration start block, Tuesday 7th Oct 8 AM UTC
2227+ // Naive estimate [30422513](https://kusama.subscan.io/block/30422513)
2228+ // Adjusted with -20.52 clock skew / day [30423691](https://kusama.subscan.io/block/30423691), avg delay per day over the last 30 days.
2229+ DispatchTime :: At ( 30423691u32 . into ( ) ) ,
2230+ // Warm up to wait for Messaging queues to empty
2231+ DispatchTime :: After ( ( 5 * MINUTES ) . into ( ) ) ,
2232+ // Cool off to verify the success of the migration
2233+ DispatchTime :: After ( ( 60 * MINUTES ) . into ( ) ) ,
2234+ // Respect the session scheduling check:
22202235 Default :: default ( ) ,
22212236 ) ;
22222237 if let Err ( e) = result {
2223- log::error!("KickOffAhm: Failed to schedule Asset Hub Migration: {:?}", e );
2238+ log:: error!( "KickOffAhm: Failed to schedule Asset Hub Migration: {e :?}" ) ;
22242239 } else {
22252240 log:: info!( "KickOffAhm: Scheduled Asset Hub Migration" ) ;
2226- }*/
2241+ }
22272242
22282243 T :: DbWeight :: get ( ) . reads_writes ( 1 , 1 )
22292244 }
@@ -3242,7 +3257,7 @@ mod ahm_multisig {
32423257 #[ test]
32433258 fn all_ss58s_decode ( ) {
32443259 // ensure all non-dev account ids we have are valid ss58s
3245- assert_eq ! ( MultisigMembers :: get( ) . len( ) , 16 ) ;
3260+ assert_eq ! ( MultisigMembers :: get( ) . len( ) , 6 ) ;
32463261 }
32473262
32483263 #[ test]
0 commit comments