1
1
use frame_support:: {
2
2
assert_noop, assert_ok,
3
- traits:: { Currency , tokens:: { Fortitude , Preservation , fungible:: Inspect } } ,
3
+ traits:: {
4
+ tokens:: { fungible:: Inspect , Fortitude , Preservation } ,
5
+ Currency ,
6
+ } ,
4
7
} ;
5
8
6
9
use sp_core:: { sr25519, Encode , Pair } ;
7
- use sp_runtime:: { MultiSignature } ;
10
+ use sp_runtime:: MultiSignature ;
8
11
9
- use crate :: {
10
- tests:: mock:: * ,
11
- types:: AddKeyData ,
12
- Config , Error ,
13
- } ;
12
+ use crate :: { tests:: mock:: * , types:: AddKeyData , Config , Error } ;
14
13
15
14
use common_primitives:: {
16
- msa:: { H160 , MessageSourceId } ,
15
+ msa:: { MessageSourceId , H160 } ,
17
16
node:: BlockNumber ,
18
17
signatures:: { AccountAddressMapper , EthereumAddressMapper } ,
19
18
utils:: wrap_binary_data,
20
19
} ;
21
20
22
21
use pallet_balances:: Event as BalancesEvent ;
23
22
24
- fn generate_payload ( msa_id : MessageSourceId , msa_owner_keys : & sr25519:: Pair , new_public_key : & sr25519:: Pair , expiration : Option < BlockNumber > ) -> ( AddKeyData :: < Test > , Vec < u8 > , MultiSignature ) {
23
+ fn generate_payload (
24
+ msa_id : MessageSourceId ,
25
+ msa_owner_keys : & sr25519:: Pair ,
26
+ new_public_key : & sr25519:: Pair ,
27
+ expiration : Option < BlockNumber > ,
28
+ ) -> ( AddKeyData < Test > , Vec < u8 > , MultiSignature ) {
25
29
let payload = AddKeyData :: < Test > {
26
30
msa_id,
27
31
expiration : match expiration {
28
32
Some ( block_number) => block_number,
29
- None => 10
33
+ None => 10 ,
30
34
} ,
31
- new_public_key : new_public_key. public ( ) . into ( )
35
+ new_public_key : new_public_key. public ( ) . into ( ) ,
32
36
} ;
33
37
34
38
let encoded_payload = wrap_binary_data ( payload. encode ( ) ) ;
@@ -44,7 +48,8 @@ fn it_fails_when_caller_key_does_not_match_payload() {
44
48
let ( origin_key_pair, _) = sr25519:: Pair :: generate ( ) ;
45
49
let ( other_key_pair, _) = sr25519:: Pair :: generate ( ) ;
46
50
47
- let ( payload, _, msa_signature) = generate_payload ( msa_id, & owner_key_pair, & other_key_pair, None ) ;
51
+ let ( payload, _, msa_signature) =
52
+ generate_payload ( msa_id, & owner_key_pair, & other_key_pair, None ) ;
48
53
49
54
assert_noop ! (
50
55
Msa :: withdraw_tokens(
@@ -65,7 +70,8 @@ fn it_fails_when_payload_signature_is_invalid() {
65
70
let ( origin_key_pair, _) = sr25519:: Pair :: generate ( ) ;
66
71
let ( other_key_pair, _) = sr25519:: Pair :: generate ( ) ;
67
72
68
- let ( payload, _, msa_signature) = generate_payload ( msa_id, & other_key_pair, & origin_key_pair, None ) ;
73
+ let ( payload, _, msa_signature) =
74
+ generate_payload ( msa_id, & other_key_pair, & origin_key_pair, None ) ;
69
75
70
76
assert_noop ! (
71
77
Msa :: withdraw_tokens(
@@ -87,7 +93,8 @@ fn it_fails_when_proof_is_expired() {
87
93
88
94
// The current block is 1, therefore setting the proof expiration to 1 should cause
89
95
// the extrinsic to fail because the proof has expired.
90
- let ( payload, _, msa_signature) = generate_payload ( msa_id, & owner_key_pair, & origin_key_pair, Some ( 1 ) ) ;
96
+ let ( payload, _, msa_signature) =
97
+ generate_payload ( msa_id, & owner_key_pair, & origin_key_pair, Some ( 1 ) ) ;
91
98
92
99
assert_noop ! (
93
100
Msa :: withdraw_tokens(
@@ -109,7 +116,12 @@ fn it_fails_when_proof_is_not_yet_valid() {
109
116
110
117
// The current block is 1, therefore setting the proof expiration to the max mortality period
111
118
// should cause the extrinsic to fail
112
- let ( payload, _, msa_signature) = generate_payload ( msa_id, & owner_key_pair, & origin_key_pair, Some ( Msa :: mortality_block_limit ( 1 ) ) ) ;
119
+ let ( payload, _, msa_signature) = generate_payload (
120
+ msa_id,
121
+ & owner_key_pair,
122
+ & origin_key_pair,
123
+ Some ( Msa :: mortality_block_limit ( 1 ) ) ,
124
+ ) ;
113
125
114
126
assert_noop ! (
115
127
Msa :: withdraw_tokens(
@@ -129,7 +141,8 @@ fn it_fails_when_msa_key_is_not_an_msa_control_key() {
129
141
let ( msa_id, owner_key_pair) = create_account ( ) ;
130
142
let ( origin_key_pair, _) = sr25519:: Pair :: generate ( ) ;
131
143
132
- let ( payload, _, msa_signature) = generate_payload ( msa_id + 1 , & owner_key_pair, & origin_key_pair, None ) ;
144
+ let ( payload, _, msa_signature) =
145
+ generate_payload ( msa_id + 1 , & owner_key_pair, & origin_key_pair, None ) ;
133
146
134
147
assert_noop ! (
135
148
Msa :: withdraw_tokens(
@@ -150,7 +163,8 @@ fn it_fails_when_msa_key_does_not_control_msa_in_payload() {
150
163
let ( origin_key_pair, _) = sr25519:: Pair :: generate ( ) ;
151
164
let ( other_key_pair, _) = sr25519:: Pair :: generate ( ) ;
152
165
153
- let ( payload, _, msa_signature) = generate_payload ( msa_id, & other_key_pair, & origin_key_pair, None ) ;
166
+ let ( payload, _, msa_signature) =
167
+ generate_payload ( msa_id, & other_key_pair, & origin_key_pair, None ) ;
154
168
155
169
assert_noop ! (
156
170
Msa :: withdraw_tokens(
@@ -170,7 +184,8 @@ fn it_fails_when_msa_does_not_have_a_balance() {
170
184
let ( msa_id, owner_key_pair) = create_account ( ) ;
171
185
let ( origin_key_pair, _) = sr25519:: Pair :: generate ( ) ;
172
186
173
- let ( payload, _, msa_signature) = generate_payload ( msa_id, & owner_key_pair, & origin_key_pair, None ) ;
187
+ let ( payload, _, msa_signature) =
188
+ generate_payload ( msa_id, & owner_key_pair, & origin_key_pair, None ) ;
174
189
175
190
assert_noop ! (
176
191
Msa :: withdraw_tokens(
@@ -193,31 +208,36 @@ fn it_succeeds_when_balance_is_sufficient() {
193
208
let bytes: [ u8 ; 32 ] = EthereumAddressMapper :: to_bytes32 ( & eth_account_id. 0 ) ;
194
209
let msa_account_id = <Test as frame_system:: Config >:: AccountId :: from ( bytes) ;
195
210
196
- let ( payload, _, msa_signature) = generate_payload ( msa_id, & owner_key_pair, & origin_key_pair, None ) ;
211
+ let ( payload, _, msa_signature) =
212
+ generate_payload ( msa_id, & owner_key_pair, & origin_key_pair, None ) ;
197
213
198
214
let transfer_amount = 10_000_000 ;
199
215
200
216
// Fund MSA
201
217
let _ = <Test as Config >:: Currency :: deposit_creating ( & msa_account_id, transfer_amount) ;
202
218
203
- assert_ok ! (
204
- Msa :: withdraw_tokens(
205
- RuntimeOrigin :: signed( origin_key_pair. public( ) . into( ) ) ,
206
- owner_key_pair. public( ) . into( ) ,
207
- msa_signature,
208
- payload
209
- )
210
- ) ;
219
+ assert_ok ! ( Msa :: withdraw_tokens(
220
+ RuntimeOrigin :: signed( origin_key_pair. public( ) . into( ) ) ,
221
+ owner_key_pair. public( ) . into( ) ,
222
+ msa_signature,
223
+ payload
224
+ ) ) ;
211
225
212
226
let receiver_balance = <Test as Config >:: Currency :: reducible_balance (
213
227
& origin_key_pair. public ( ) . into ( ) ,
214
228
Preservation :: Expendable ,
215
- Fortitude :: Polite
229
+ Fortitude :: Polite ,
216
230
) ;
217
- assert_eq ! ( receiver_balance , transfer_amount , "transfer amount {} does not equal new balance {}" , transfer_amount , receiver_balance ) ;
218
-
219
- System :: assert_last_event (
220
- RuntimeEvent :: Balances ( BalancesEvent :: Transfer { from : msa_account_id , to : origin_key_pair . public ( ) . into ( ) , amount : transfer_amount } ) ,
231
+ assert_eq ! (
232
+ receiver_balance , transfer_amount ,
233
+ "transfer amount {} does not equal new balance {}" ,
234
+ transfer_amount, receiver_balance
221
235
) ;
236
+
237
+ System :: assert_last_event ( RuntimeEvent :: Balances ( BalancesEvent :: Transfer {
238
+ from : msa_account_id,
239
+ to : origin_key_pair. public ( ) . into ( ) ,
240
+ amount : transfer_amount,
241
+ } ) ) ;
222
242
} )
223
243
}
0 commit comments