@@ -709,7 +709,8 @@ fn test_do_swap_coldkey_success() {
709
709
assert_ok ! ( SubtensorModule :: do_swap_coldkey(
710
710
// <<Test as Config>::RuntimeOrigin>::signed(old_coldkey),
711
711
& old_coldkey,
712
- & new_coldkey
712
+ & new_coldkey,
713
+ swap_cost
713
714
) ) ;
714
715
715
716
// Log state after swap
@@ -782,6 +783,7 @@ fn test_do_swap_coldkey_success() {
782
783
Event :: ColdkeySwapped {
783
784
old_coldkey,
784
785
new_coldkey,
786
+ swap_cost,
785
787
}
786
788
. into ( ) ,
787
789
) ;
@@ -1195,7 +1197,11 @@ fn test_do_swap_coldkey_with_subnet_ownership() {
1195
1197
OwnedHotkeys :: < Test > :: insert ( old_coldkey, vec ! [ hotkey] ) ;
1196
1198
1197
1199
// Perform the swap
1198
- assert_ok ! ( SubtensorModule :: do_swap_coldkey( & old_coldkey, & new_coldkey) ) ;
1200
+ assert_ok ! ( SubtensorModule :: do_swap_coldkey(
1201
+ & old_coldkey,
1202
+ & new_coldkey,
1203
+ swap_cost
1204
+ ) ) ;
1199
1205
1200
1206
// Verify subnet ownership transfer
1201
1207
assert_eq ! ( SubnetOwner :: <Test >:: get( netuid) , new_coldkey) ;
@@ -1652,8 +1658,10 @@ fn test_schedule_swap_coldkey_success() {
1652
1658
let old_coldkey: U256 = U256 :: from ( 1 ) ;
1653
1659
let new_coldkey: U256 = U256 :: from ( 2 ) ;
1654
1660
1661
+ let swap_cost = SubtensorModule :: get_key_swap_cost ( ) ;
1662
+
1655
1663
// Add balance to the old coldkey account
1656
- SubtensorModule :: add_balance_to_coldkey_account ( & old_coldkey, 1000 ) ;
1664
+ SubtensorModule :: add_balance_to_coldkey_account ( & old_coldkey, swap_cost + 1_000 ) ;
1657
1665
1658
1666
// Schedule the coldkey swap
1659
1667
assert_ok ! ( SubtensorModule :: schedule_swap_coldkey(
@@ -1673,6 +1681,7 @@ fn test_schedule_swap_coldkey_success() {
1673
1681
old_coldkey,
1674
1682
new_coldkey,
1675
1683
execution_block : expected_execution_block,
1684
+ swap_cost,
1676
1685
}
1677
1686
. into ( ) ,
1678
1687
) ;
@@ -1689,7 +1698,9 @@ fn test_schedule_swap_coldkey_duplicate() {
1689
1698
let old_coldkey = U256 :: from ( 1 ) ;
1690
1699
let new_coldkey = U256 :: from ( 2 ) ;
1691
1700
1692
- SubtensorModule :: add_balance_to_coldkey_account ( & old_coldkey, 2000 ) ;
1701
+ let swap_cost = SubtensorModule :: get_key_swap_cost ( ) ;
1702
+
1703
+ SubtensorModule :: add_balance_to_coldkey_account ( & old_coldkey, swap_cost + 2_000 ) ;
1693
1704
1694
1705
assert_ok ! ( SubtensorModule :: schedule_swap_coldkey(
1695
1706
<<Test as Config >:: RuntimeOrigin >:: signed( old_coldkey) ,
@@ -1734,6 +1745,8 @@ fn test_schedule_swap_coldkey_execution() {
1734
1745
"Initial ownership check failed"
1735
1746
) ;
1736
1747
1748
+ let swap_cost = SubtensorModule :: get_key_swap_cost ( ) ;
1749
+
1737
1750
// Schedule the swap
1738
1751
assert_ok ! ( SubtensorModule :: schedule_swap_coldkey(
1739
1752
<<Test as Config >:: RuntimeOrigin >:: signed( old_coldkey) ,
@@ -1749,6 +1762,7 @@ fn test_schedule_swap_coldkey_execution() {
1749
1762
old_coldkey,
1750
1763
new_coldkey,
1751
1764
execution_block,
1765
+ swap_cost,
1752
1766
}
1753
1767
. into ( ) ,
1754
1768
) ;
@@ -1790,6 +1804,7 @@ fn test_schedule_swap_coldkey_execution() {
1790
1804
Event :: ColdkeySwapped {
1791
1805
old_coldkey,
1792
1806
new_coldkey,
1807
+ swap_cost,
1793
1808
}
1794
1809
. into ( ) ,
1795
1810
) ;
@@ -1807,7 +1822,8 @@ fn test_direct_swap_coldkey_call_fails() {
1807
1822
SubtensorModule :: swap_coldkey(
1808
1823
<<Test as Config >:: RuntimeOrigin >:: signed( old_coldkey) ,
1809
1824
old_coldkey,
1810
- new_coldkey
1825
+ new_coldkey,
1826
+ 0
1811
1827
) ,
1812
1828
BadOrigin
1813
1829
) ;
@@ -1822,7 +1838,9 @@ fn test_schedule_swap_coldkey_with_pending_swap() {
1822
1838
let new_coldkey1 = U256 :: from ( 2 ) ;
1823
1839
let new_coldkey2 = U256 :: from ( 3 ) ;
1824
1840
1825
- SubtensorModule :: add_balance_to_coldkey_account ( & old_coldkey, 2000 ) ;
1841
+ let swap_cost = SubtensorModule :: get_key_swap_cost ( ) ;
1842
+
1843
+ SubtensorModule :: add_balance_to_coldkey_account ( & old_coldkey, swap_cost + 1_000 ) ;
1826
1844
1827
1845
assert_ok ! ( SubtensorModule :: schedule_swap_coldkey(
1828
1846
<<Test as Config >:: RuntimeOrigin >:: signed( old_coldkey) ,
@@ -1876,7 +1894,11 @@ fn test_coldkey_swap_delegate_identity_updated() {
1876
1894
assert ! ( Identities :: <Test >:: get( old_coldkey) . is_some( ) ) ;
1877
1895
assert ! ( Identities :: <Test >:: get( new_coldkey) . is_none( ) ) ;
1878
1896
1879
- assert_ok ! ( SubtensorModule :: do_swap_coldkey( & old_coldkey, & new_coldkey) ) ;
1897
+ assert_ok ! ( SubtensorModule :: do_swap_coldkey(
1898
+ & old_coldkey,
1899
+ & new_coldkey,
1900
+ burn_cost
1901
+ ) ) ;
1880
1902
1881
1903
assert ! ( Identities :: <Test >:: get( old_coldkey) . is_none( ) ) ;
1882
1904
assert ! ( Identities :: <Test >:: get( new_coldkey) . is_some( ) ) ;
@@ -1912,7 +1934,11 @@ fn test_coldkey_swap_no_identity_no_changes() {
1912
1934
assert ! ( Identities :: <Test >:: get( old_coldkey) . is_none( ) ) ;
1913
1935
1914
1936
// Perform the coldkey swap
1915
- assert_ok ! ( SubtensorModule :: do_swap_coldkey( & old_coldkey, & new_coldkey) ) ;
1937
+ assert_ok ! ( SubtensorModule :: do_swap_coldkey(
1938
+ & old_coldkey,
1939
+ & new_coldkey,
1940
+ burn_cost
1941
+ ) ) ;
1916
1942
1917
1943
// Ensure no identities have been changed
1918
1944
assert ! ( Identities :: <Test >:: get( old_coldkey) . is_none( ) ) ;
@@ -1956,10 +1982,33 @@ fn test_coldkey_swap_no_identity_no_changes_newcoldkey_exists() {
1956
1982
assert ! ( Identities :: <Test >:: get( old_coldkey) . is_none( ) ) ;
1957
1983
1958
1984
// Perform the coldkey swap
1959
- assert_ok ! ( SubtensorModule :: do_swap_coldkey( & old_coldkey, & new_coldkey) ) ;
1985
+ assert_ok ! ( SubtensorModule :: do_swap_coldkey(
1986
+ & old_coldkey,
1987
+ & new_coldkey,
1988
+ burn_cost
1989
+ ) ) ;
1960
1990
1961
1991
// Ensure no identities have been changed
1962
1992
assert ! ( Identities :: <Test >:: get( old_coldkey) . is_none( ) ) ;
1963
1993
assert ! ( Identities :: <Test >:: get( new_coldkey) . is_some( ) ) ;
1964
1994
} ) ;
1965
1995
}
1996
+
1997
+ // SKIP_WASM_BUILD=1 RUST_LOG=info cargo test --test swap_coldkey -- test_cant_schedule_swap_without_enough_to_burn --exact --nocapture
1998
+ #[ test]
1999
+ fn test_cant_schedule_swap_without_enough_to_burn ( ) {
2000
+ new_test_ext ( 1 ) . execute_with ( || {
2001
+ let old_coldkey = U256 :: from ( 3 ) ;
2002
+ let new_coldkey = U256 :: from ( 4 ) ;
2003
+ let hotkey = U256 :: from ( 5 ) ;
2004
+
2005
+ let burn_cost = SubtensorModule :: get_key_swap_cost ( ) ;
2006
+ assert_noop ! (
2007
+ SubtensorModule :: schedule_swap_coldkey(
2008
+ <<Test as Config >:: RuntimeOrigin >:: signed( old_coldkey) ,
2009
+ new_coldkey
2010
+ ) ,
2011
+ Error :: <Test >:: NotEnoughBalanceToPaySwapColdKey
2012
+ ) ;
2013
+ } ) ;
2014
+ }
0 commit comments