@@ -316,7 +316,7 @@ use frame_support::{
316316		Currency ,  Defensive ,  DefensiveOption ,  DefensiveResult ,  DefensiveSaturating , 
317317		ExistenceRequirement ,  Get , 
318318	} , 
319- 	CloneNoBound ,  DefaultNoBound ,  RuntimeDebugNoBound , 
319+ 	transactional ,   CloneNoBound ,  DefaultNoBound ,  RuntimeDebugNoBound , 
320320} ; 
321321use  scale_info:: TypeInfo ; 
322322use  sp_core:: U256 ; 
@@ -1412,6 +1412,7 @@ pub mod pallet {
14121412 		///   `existential deposit + amount` in their account. 
14131413 		/// * Only a pool with [`PoolState::Open`] can be joined 
14141414 		#[ pallet:: weight( T :: WeightInfo :: join( ) ) ]  
1415+ 		#[ transactional]  
14151416		pub  fn  join ( 
14161417			origin :  OriginFor < T > , 
14171418			#[ pallet:: compact]   amount :  BalanceOf < T > , 
@@ -1472,6 +1473,7 @@ pub mod pallet {
14721473			T :: WeightInfo :: bond_extra_transfer( )  
14731474			. max( T :: WeightInfo :: bond_extra_reward( ) )  
14741475		) ]  
1476+ 		#[ transactional]  
14751477		pub  fn  bond_extra ( origin :  OriginFor < T > ,  extra :  BondExtra < BalanceOf < T > > )  -> DispatchResult  { 
14761478			let  who = ensure_signed ( origin) ?; 
14771479			let  ( mut  member,  mut  bonded_pool,  mut  reward_pool)  = Self :: get_member_with_pools ( & who) ?; 
@@ -1510,6 +1512,7 @@ pub mod pallet {
15101512 		/// The member will earn rewards pro rata based on the members stake vs the sum of the 
15111513 		/// members in the pools stake. Rewards do not "expire". 
15121514 		#[ pallet:: weight( T :: WeightInfo :: claim_payout( ) ) ]  
1515+ 		#[ transactional]  
15131516		pub  fn  claim_payout ( origin :  OriginFor < T > )  -> DispatchResult  { 
15141517			let  who = ensure_signed ( origin) ?; 
15151518			let  ( mut  member,  mut  bonded_pool,  mut  reward_pool)  = Self :: get_member_with_pools ( & who) ?; 
@@ -1549,6 +1552,7 @@ pub mod pallet {
15491552 		/// there are too many unlocking chunks, the result of this call will likely be the 
15501553 		/// `NoMoreChunks` error from the staking system. 
15511554 		#[ pallet:: weight( T :: WeightInfo :: unbond( ) ) ]  
1555+ 		#[ transactional]  
15521556		pub  fn  unbond ( 
15531557			origin :  OriginFor < T > , 
15541558			member_account :  T :: AccountId , 
@@ -1626,6 +1630,7 @@ pub mod pallet {
16261630 		/// would probably see an error like `NoMoreChunks` emitted from the staking system when 
16271631 		/// they attempt to unbond. 
16281632 		#[ pallet:: weight( T :: WeightInfo :: pool_withdraw_unbonded( * num_slashing_spans) ) ]  
1633+ 		#[ transactional]  
16291634		pub  fn  pool_withdraw_unbonded ( 
16301635			origin :  OriginFor < T > , 
16311636			pool_id :  PoolId , 
@@ -1662,6 +1667,7 @@ pub mod pallet {
16621667 		#[ pallet:: weight(  
16631668			T :: WeightInfo :: withdraw_unbonded_kill( * num_slashing_spans)  
16641669		) ]  
1670+ 		#[ transactional]  
16651671		pub  fn  withdraw_unbonded ( 
16661672			origin :  OriginFor < T > , 
16671673			member_account :  T :: AccountId , 
@@ -1787,6 +1793,7 @@ pub mod pallet {
17871793 		/// In addition to `amount`, the caller will transfer the existential deposit; so the caller 
17881794 		/// needs at have at least `amount + existential_deposit` transferrable. 
17891795 		#[ pallet:: weight( T :: WeightInfo :: create( ) ) ]  
1796+ 		#[ transactional]  
17901797		pub  fn  create ( 
17911798			origin :  OriginFor < T > , 
17921799			#[ pallet:: compact]   amount :  BalanceOf < T > , 
@@ -1875,6 +1882,7 @@ pub mod pallet {
18751882 		/// This directly forward the call to the staking pallet, on behalf of the pool bonded 
18761883 		/// account. 
18771884 		#[ pallet:: weight( T :: WeightInfo :: nominate( validators. len( )  as  u32 ) ) ]  
1885+ 		#[ transactional]  
18781886		pub  fn  nominate ( 
18791887			origin :  OriginFor < T > , 
18801888			pool_id :  PoolId , 
@@ -1891,6 +1899,7 @@ pub mod pallet {
18911899 		/// The dispatch origin of this call must be signed by the state toggler, or the root role 
18921900 		/// of the pool. 
18931901 		#[ pallet:: weight( T :: WeightInfo :: set_state( ) ) ]  
1902+ 		#[ transactional]  
18941903		pub  fn  set_state ( 
18951904			origin :  OriginFor < T > , 
18961905			pool_id :  PoolId , 
@@ -1921,6 +1930,7 @@ pub mod pallet {
19211930 		/// The dispatch origin of this call must be signed by the state toggler, or the root role 
19221931 		/// of the pool. 
19231932 		#[ pallet:: weight( T :: WeightInfo :: set_metadata( metadata. len( )  as  u32 ) ) ]  
1933+ 		#[ transactional]  
19241934		pub  fn  set_metadata ( 
19251935			origin :  OriginFor < T > , 
19261936			pool_id :  PoolId , 
@@ -1952,6 +1962,7 @@ pub mod pallet {
19521962 		/// * `max_members` - Set [`MaxPoolMembers`]. 
19531963 		/// * `max_members_per_pool` - Set [`MaxPoolMembersPerPool`]. 
19541964 		#[ pallet:: weight( T :: WeightInfo :: set_configs( ) ) ]  
1965+ 		#[ transactional]  
19551966		pub  fn  set_configs ( 
19561967			origin :  OriginFor < T > , 
19571968			min_join_bond :  ConfigOp < BalanceOf < T > > , 
@@ -1988,6 +1999,7 @@ pub mod pallet {
19881999 		/// It emits an event, notifying UIs of the role change. This event is quite relevant to 
19892000 		/// most pool members and they should be informed of changes to pool roles. 
19902001 		#[ pallet:: weight( T :: WeightInfo :: update_roles( ) ) ]  
2002+ 		#[ transactional]  
19912003		pub  fn  update_roles ( 
19922004			origin :  OriginFor < T > , 
19932005			pool_id :  PoolId , 
@@ -2040,6 +2052,7 @@ pub mod pallet {
20402052 		/// This directly forward the call to the staking pallet, on behalf of the pool bonded 
20412053 		/// account. 
20422054 		#[ pallet:: weight( T :: WeightInfo :: chill( ) ) ]  
2055+ 		#[ transactional]  
20432056		pub  fn  chill ( origin :  OriginFor < T > ,  pool_id :  PoolId )  -> DispatchResult  { 
20442057			let  who = ensure_signed ( origin) ?; 
20452058			let  bonded_pool = BondedPool :: < T > :: get ( pool_id) . ok_or ( Error :: < T > :: PoolNotFound ) ?; 
0 commit comments