1
1
#![ cfg_attr( not( feature = "std" ) , no_std) ]
2
2
#![ allow( clippy:: from_over_into) ]
3
3
#![ allow( clippy:: unused_unit) ]
4
+ #![ allow( clippy:: large_enum_variant) ]
4
5
5
6
pub use module:: * ;
6
7
@@ -89,19 +90,11 @@ pub mod module {
89
90
90
91
/// Transferred to parachain. \[x_currency_id, src, para_id, dest,
91
92
/// dest_network, amount\]
92
- TransferredToParachain ( XCurrencyId , T :: AccountId , ParaId , T :: AccountId , NetworkId , T :: Balance ) ,
93
+ TransferredToParachain ( XCurrencyId , T :: AccountId , ParaId , MultiLocation , T :: Balance ) ,
93
94
94
95
/// Transfer to parachain failed. \[x_currency_id, src, para_id, dest,
95
96
/// dest_network, amount, error\]
96
- TransferToParachainFailed (
97
- XCurrencyId ,
98
- T :: AccountId ,
99
- ParaId ,
100
- T :: AccountId ,
101
- NetworkId ,
102
- T :: Balance ,
103
- XcmError ,
104
- ) ,
97
+ TransferToParachainFailed ( XCurrencyId , T :: AccountId , ParaId , MultiLocation , T :: Balance , XcmError ) ,
105
98
}
106
99
107
100
#[ pallet:: error]
@@ -164,8 +157,7 @@ pub mod module {
164
157
origin : OriginFor < T > ,
165
158
x_currency_id : XCurrencyId ,
166
159
para_id : ParaId ,
167
- dest : T :: AccountId ,
168
- dest_network : NetworkId ,
160
+ dest : MultiLocation ,
169
161
amount : T :: Balance ,
170
162
) -> DispatchResultWithPostInfo {
171
163
let who = ensure_signed ( origin) ?;
@@ -175,25 +167,16 @@ pub mod module {
175
167
}
176
168
177
169
let xcm = match x_currency_id. chain_id {
178
- ChainId :: RelayChain => {
179
- Self :: transfer_relay_chain_tokens_to_parachain ( para_id, & dest, dest_network. clone ( ) , amount)
180
- }
170
+ ChainId :: RelayChain => Self :: transfer_relay_chain_tokens_to_parachain ( para_id, dest. clone ( ) , amount) ,
181
171
ChainId :: ParaChain ( reserve_chain) => {
182
172
if T :: ParaId :: get ( ) == reserve_chain {
183
- Self :: transfer_owned_tokens_to_parachain (
184
- x_currency_id. clone ( ) ,
185
- para_id,
186
- & dest,
187
- dest_network. clone ( ) ,
188
- amount,
189
- )
173
+ Self :: transfer_owned_tokens_to_parachain ( x_currency_id. clone ( ) , para_id, dest. clone ( ) , amount)
190
174
} else {
191
175
Self :: transfer_non_owned_tokens_to_parachain (
192
176
reserve_chain,
193
177
x_currency_id. clone ( ) ,
194
178
para_id,
195
- & dest,
196
- dest_network. clone ( ) ,
179
+ dest. clone ( ) ,
197
180
amount,
198
181
)
199
182
}
@@ -209,15 +192,13 @@ pub mod module {
209
192
who,
210
193
para_id,
211
194
dest,
212
- dest_network,
213
195
amount,
214
196
) ) ,
215
197
Err ( err) => Self :: deposit_event ( Event :: < T > :: TransferToParachainFailed (
216
198
x_currency_id,
217
199
who,
218
200
para_id,
219
201
dest,
220
- dest_network,
221
202
amount,
222
203
err,
223
204
) ) ,
@@ -228,12 +209,7 @@ pub mod module {
228
209
}
229
210
230
211
impl < T : Config > Pallet < T > {
231
- fn transfer_relay_chain_tokens_to_parachain (
232
- para_id : ParaId ,
233
- dest : & T :: AccountId ,
234
- dest_network : NetworkId ,
235
- amount : T :: Balance ,
236
- ) -> Xcm {
212
+ fn transfer_relay_chain_tokens_to_parachain ( para_id : ParaId , dest : MultiLocation , amount : T :: Balance ) -> Xcm {
237
213
Xcm :: WithdrawAsset {
238
214
assets : vec ! [ MultiAsset :: ConcreteFungible {
239
215
id: MultiLocation :: X1 ( Junction :: Parent ) ,
@@ -244,14 +220,11 @@ pub mod module {
244
220
reserve: MultiLocation :: X1 ( Junction :: Parent ) ,
245
221
effects: vec![ Order :: DepositReserveAsset {
246
222
assets: vec![ MultiAsset :: All ] ,
247
- // ` dest` is children parachain(of parent).
223
+ // Reserve asset deposit dest is children parachain(of parent).
248
224
dest: MultiLocation :: X1 ( Junction :: Parachain { id: para_id. into( ) } ) ,
249
225
effects: vec![ Order :: DepositAsset {
250
226
assets: vec![ MultiAsset :: All ] ,
251
- dest: MultiLocation :: X1 ( Junction :: AccountId32 {
252
- network: dest_network,
253
- id: T :: AccountId32Convert :: convert( dest. clone( ) ) ,
254
- } ) ,
227
+ dest,
255
228
} ] ,
256
229
} ] ,
257
230
} ] ,
@@ -265,8 +238,7 @@ pub mod module {
265
238
fn transfer_owned_tokens_to_parachain (
266
239
x_currency_id : XCurrencyId ,
267
240
para_id : ParaId ,
268
- dest : & T :: AccountId ,
269
- dest_network : NetworkId ,
241
+ dest : MultiLocation ,
270
242
amount : T :: Balance ,
271
243
) -> Xcm {
272
244
Xcm :: WithdrawAsset {
@@ -279,10 +251,7 @@ pub mod module {
279
251
dest: MultiLocation :: X2 ( Junction :: Parent , Junction :: Parachain { id: para_id. into( ) } ) ,
280
252
effects: vec![ Order :: DepositAsset {
281
253
assets: vec![ MultiAsset :: All ] ,
282
- dest: MultiLocation :: X1 ( Junction :: AccountId32 {
283
- network: dest_network,
284
- id: T :: AccountId32Convert :: convert( dest. clone( ) ) ,
285
- } ) ,
254
+ dest,
286
255
} ] ,
287
256
} ] ,
288
257
}
@@ -294,16 +263,12 @@ pub mod module {
294
263
reserve_chain : ParaId ,
295
264
x_currency_id : XCurrencyId ,
296
265
para_id : ParaId ,
297
- dest : & T :: AccountId ,
298
- dest_network : NetworkId ,
266
+ dest : MultiLocation ,
299
267
amount : T :: Balance ,
300
268
) -> Xcm {
301
269
let deposit_to_dest = Order :: DepositAsset {
302
270
assets : vec ! [ MultiAsset :: All ] ,
303
- dest : MultiLocation :: X1 ( Junction :: AccountId32 {
304
- network : dest_network,
305
- id : T :: AccountId32Convert :: convert ( dest. clone ( ) ) ,
306
- } ) ,
271
+ dest,
307
272
} ;
308
273
// If transfer to reserve chain, deposit to `dest` on reserve chain,
309
274
// else deposit reserve asset.
0 commit comments