@@ -69,6 +69,7 @@ pub struct Prices {
69
69
pub usdc : FixedU128 ,
70
70
pub usdt : FixedU128 ,
71
71
pub plmc : FixedU128 ,
72
+ pub weth : FixedU128 ,
72
73
}
73
74
74
75
// PricesBuilder for optional fields before building Prices
@@ -78,12 +79,13 @@ pub struct PricesBuilder {
78
79
usdc : Option < FixedU128 > ,
79
80
usdt : Option < FixedU128 > ,
80
81
plmc : Option < FixedU128 > ,
82
+ weth : Option < FixedU128 > ,
81
83
}
82
84
83
85
impl PricesBuilder {
84
86
// Initialize a new builder with None for each field
85
87
pub fn new ( ) -> Self {
86
- Self { dot : None , usdc : None , usdt : None , plmc : None }
88
+ Self { dot : None , usdc : None , usdt : None , plmc : None , weth : None }
87
89
}
88
90
89
91
pub fn default ( ) -> Prices {
@@ -92,6 +94,7 @@ impl PricesBuilder {
92
94
usdc : FixedU128 :: from_rational ( 1 , 1 ) ,
93
95
usdt : FixedU128 :: from_rational ( 1 , 1 ) ,
94
96
plmc : FixedU128 :: from_rational ( 840 , 100 ) ,
97
+ weth : FixedU128 :: from_rational ( 3620 , 1 ) ,
95
98
}
96
99
}
97
100
@@ -116,13 +119,19 @@ impl PricesBuilder {
116
119
self
117
120
}
118
121
122
+ pub fn weth ( & mut self , price : FixedU128 ) -> & mut Self {
123
+ self . weth = Some ( price) ;
124
+ self
125
+ }
126
+
119
127
// Build Prices using provided values or default values
120
128
pub fn build ( self ) -> Prices {
121
129
Prices {
122
130
dot : self . dot . unwrap_or ( FixedU128 :: from_rational ( 69 , 1 ) ) , // Default DOT price
123
131
usdc : self . usdc . unwrap_or ( FixedU128 :: from_rational ( 1 , 1 ) ) , // Default USDC price
124
132
usdt : self . usdt . unwrap_or ( FixedU128 :: from_rational ( 1 , 1 ) ) , // Default USDT price
125
133
plmc : self . plmc . unwrap_or ( FixedU128 :: from_rational ( 840 , 100 ) ) , // Default PLMC price
134
+ weth : self . weth . unwrap_or ( FixedU128 :: from_rational ( 3620 , 1 ) ) , // Default WETH price
126
135
}
127
136
}
128
137
}
@@ -446,9 +455,10 @@ pub mod polimec {
446
455
let usdc = ( AcceptedFundingAsset :: USDC . id ( ) , prices. usdc ) ;
447
456
let usdt = ( AcceptedFundingAsset :: USDT . id ( ) , prices. usdt ) ;
448
457
let plmc = ( polimec_common:: PLMC_FOREIGN_ID , prices. plmc ) ;
458
+ let weth = ( AcceptedFundingAsset :: WETH . id ( ) , prices. weth ) ;
449
459
450
460
let values: BoundedVec < ( u32 , FixedU128 ) , <PolimecRuntime as orml_oracle:: Config >:: MaxFeedValues > =
451
- vec ! [ dot, usdc, usdt, plmc] . try_into ( ) . expect ( "benchmarks can panic" ) ;
461
+ vec ! [ dot, usdc, usdt, plmc, weth ] . try_into ( ) . expect ( "benchmarks can panic" ) ;
452
462
let alice: [ u8 ; 32 ] = [
453
463
212 , 53 , 147 , 199 , 21 , 253 , 211 , 28 , 97 , 20 , 26 , 189 , 4 , 169 , 159 , 214 , 130 , 44 , 133 , 88 , 133 , 76 , 205 ,
454
464
227 , 154 , 86 , 132 , 231 , 165 , 109 , 162 , 125 ,
@@ -483,6 +493,8 @@ pub mod polimec {
483
493
let dot_asset_id = AcceptedFundingAsset :: DOT . id ( ) ;
484
494
let usdt_asset_id = AcceptedFundingAsset :: USDT . id ( ) ;
485
495
let usdc_asset_id = AcceptedFundingAsset :: USDC . id ( ) ;
496
+ let weth_asset_id = AcceptedFundingAsset :: WETH . id ( ) ;
497
+
486
498
let mut funded_accounts = vec ! [
487
499
(
488
500
PolimecNet :: sovereign_account_id_of( ( Parent , xcm:: prelude:: Parachain ( penpal:: PARA_ID ) ) . into( ) ) ,
@@ -515,11 +527,13 @@ pub mod polimec {
515
527
( dot_asset_id, alice_account. clone( ) , true , 100_000_000 ) ,
516
528
( usdt_asset_id, alice_account. clone( ) , true , 70_000 ) ,
517
529
( usdc_asset_id, alice_account. clone( ) , true , 70_000 ) ,
530
+ ( weth_asset_id, alice_account. clone( ) , true , 0_000_041_000_000_000_000 ) ,
518
531
] ,
519
532
metadata : vec ! [
520
533
( dot_asset_id, "Local DOT" . as_bytes( ) . to_vec( ) , "DOT" . as_bytes( ) . to_vec( ) , 10 ) ,
521
534
( usdt_asset_id, "Local USDT" . as_bytes( ) . to_vec( ) , "USDT" . as_bytes( ) . to_vec( ) , 6 ) ,
522
535
( usdc_asset_id, "Local USDC" . as_bytes( ) . to_vec( ) , "USDC" . as_bytes( ) . to_vec( ) , 6 ) ,
536
+ ( usdc_asset_id, "Local WETH" . as_bytes( ) . to_vec( ) , "WETH" . as_bytes( ) . to_vec( ) , 18 ) ,
523
537
] ,
524
538
accounts : vec ! [ ] ,
525
539
} ,
0 commit comments