17
17
18
18
use alloc:: { collections:: BTreeMap , vec} ;
19
19
use alloy_sol_types:: SolValue ;
20
- use codec:: Encode ;
21
20
use frame_support:: { ensure, PalletId } ;
22
21
use frame_system:: { pallet_prelude:: OriginFor , RawOrigin } ;
23
22
use ismp:: {
@@ -37,7 +36,7 @@ use crate::{
37
36
TokenGatewayRequest , TokenRegistrarParams , UnsignedERC6160AssetRegistration , PALLET_ID ,
38
37
} ;
39
38
40
- use token_gateway_primitives:: { AssetMetadata , PALLET_TOKEN_GATEWAY_ID } ;
39
+ use token_gateway_primitives:: AssetMetadata ;
41
40
42
41
impl < T : Config > Pallet < T >
43
42
where
@@ -69,16 +68,11 @@ where
69
68
Err ( Error :: < T > :: AssetAlreadyExists ) ?
70
69
}
71
70
72
- let metadata = AssetMetadata {
73
- name : asset. name . clone ( ) ,
74
- symbol : asset. symbol . clone ( ) ,
75
- decimals : 18 ,
76
- minimum_balance : asset. minimum_balance ,
77
- } ;
71
+ let metadata = AssetMetadata { name : asset. name . clone ( ) , symbol : asset. symbol . clone ( ) } ;
78
72
79
73
for ChainWithSupply { chain, supply } in asset. chains . clone ( ) {
80
74
let address = if chain. is_substrate ( ) {
81
- H160 ( PALLET_TOKEN_GATEWAY_ID )
75
+ continue ;
82
76
} else {
83
77
let GatewayParams { address, .. } = TokenGatewayParams :: < T > :: get ( & chain)
84
78
. ok_or_else ( || Error :: < T > :: UnknownTokenGateway ) ?;
93
87
from : PALLET_ID . to_vec ( ) ,
94
88
to : address. as_bytes ( ) . to_vec ( ) ,
95
89
timeout : 0 ,
96
- body : if chain. is_substrate ( ) {
97
- metadata. encode ( )
98
- } else {
90
+ body : {
99
91
let mut body: SolAssetMetadata =
100
92
metadata. clone ( ) . try_into ( ) . map_err ( |_| Error :: < T > :: InvalidUtf8 ) ?;
101
93
@@ -165,17 +157,13 @@ where
165
157
166
158
for ChainWithSupply { chain, supply } in update. add_chains {
167
159
// skip if it already was dispatched to the provided chain
168
- if SupportedChains :: < T > :: get ( & update. asset_id , & chain) . is_some ( ) {
160
+ if SupportedChains :: < T > :: get ( & update. asset_id , & chain) . is_some ( ) || chain. is_substrate ( )
161
+ {
169
162
continue ;
170
163
}
171
164
172
- let address = if chain. is_substrate ( ) {
173
- H160 ( PALLET_TOKEN_GATEWAY_ID )
174
- } else {
175
- let GatewayParams { address, .. } = TokenGatewayParams :: < T > :: get ( & chain)
176
- . ok_or_else ( || Error :: < T > :: UnknownTokenGateway ) ?;
177
- address
178
- } ;
165
+ let GatewayParams { address, .. } = TokenGatewayParams :: < T > :: get ( & chain)
166
+ . ok_or_else ( || Error :: < T > :: UnknownTokenGateway ) ?;
179
167
180
168
dispatcher
181
169
. dispatch_request (
@@ -184,9 +172,7 @@ where
184
172
from : PALLET_ID . to_vec ( ) ,
185
173
to : address. as_bytes ( ) . to_vec ( ) ,
186
174
timeout : 0 ,
187
- body : if chain. is_substrate ( ) {
188
- metadata. encode ( )
189
- } else {
175
+ body : {
190
176
let mut body: SolAssetMetadata =
191
177
metadata. clone ( ) . try_into ( ) . map_err ( |_| Error :: < T > :: InvalidUtf8 ) ?;
192
178
@@ -207,17 +193,13 @@ where
207
193
208
194
for chain in update. remove_chains {
209
195
// skip if it already was dispatched to the provided chain
210
- if SupportedChains :: < T > :: get ( & update. asset_id , & chain) . is_none ( ) {
196
+ if SupportedChains :: < T > :: get ( & update. asset_id , & chain) . is_none ( ) || chain. is_substrate ( )
197
+ {
211
198
continue ;
212
199
}
213
200
214
- let address = if chain. is_substrate ( ) {
215
- H160 ( PALLET_TOKEN_GATEWAY_ID )
216
- } else {
217
- let GatewayParams { address, .. } = TokenGatewayParams :: < T > :: get ( & chain)
218
- . ok_or_else ( || Error :: < T > :: UnknownTokenGateway ) ?;
219
- address
220
- } ;
201
+ let GatewayParams { address, .. } = TokenGatewayParams :: < T > :: get ( & chain)
202
+ . ok_or_else ( || Error :: < T > :: UnknownTokenGateway ) ?;
221
203
222
204
dispatcher
223
205
. dispatch_request (
@@ -226,12 +208,7 @@ where
226
208
from : PALLET_ID . to_vec ( ) ,
227
209
to : address. as_bytes ( ) . to_vec ( ) ,
228
210
timeout : 0 ,
229
- body : if chain. is_substrate ( ) {
230
- token_gateway_primitives:: DeregisterAssets {
231
- asset_ids : vec ! [ update. asset_id] ,
232
- }
233
- . encode ( )
234
- } else {
211
+ body : {
235
212
let body =
236
213
SolDeregsiterAsset { assetIds : vec ! [ update. asset_id. 0 . into( ) ] } ;
237
214
body. encode_request ( )
@@ -247,7 +224,8 @@ where
247
224
248
225
for ( chain, admin) in update. new_admins {
249
226
// skip if it doesn't exist on the provided chain
250
- if SupportedChains :: < T > :: get ( & update. asset_id , & chain) . is_none ( ) {
227
+ if SupportedChains :: < T > :: get ( & update. asset_id , & chain) . is_none ( ) || chain. is_substrate ( )
228
+ {
251
229
continue ;
252
230
}
253
231
@@ -397,15 +375,13 @@ where
397
375
Err ( Error :: < T > :: AssetAlreadyExists ) ?
398
376
}
399
377
400
- let mut metadata = AssetMetadata {
401
- name : asset. name . clone ( ) ,
402
- symbol : asset. symbol . clone ( ) ,
403
- ..Default :: default ( )
404
- } ;
378
+ let metadata = AssetMetadata { name : asset. name . clone ( ) , symbol : asset. symbol . clone ( ) } ;
405
379
406
- for AssetRegistration { chain, erc20, erc6160, decimals } in asset. chains {
380
+ for AssetRegistration { chain, erc20, erc6160 } in asset. chains {
381
+ if chain. is_substrate ( ) {
382
+ continue ;
383
+ }
407
384
// Set the parent ERC20 asset's decimals value
408
- metadata. decimals = decimals;
409
385
let mut body: SolAssetMetadata =
410
386
metadata. clone ( ) . try_into ( ) . map_err ( |_| Error :: < T > :: InvalidUtf8 ) ?;
411
387
0 commit comments