@@ -54,17 +54,19 @@ export class UXDController {
5454 amount,
5555 minAmountOut,
5656 signer,
57+ decimals,
5758 collateral,
5859 receiver,
5960 } : {
6061 amount : number ;
6162 minAmountOut : number ;
6263 signer : Signer ;
64+ decimals : number ;
6365 collateral ?: Address ;
6466 receiver ?: Address ;
6567 } ) : Promise < ContractTransaction > {
66- const nativeAmount = utils . parseEther ( amount . toString ( ) ) ;
67- const minNativeAmountOut = utils . parseEther ( minAmountOut . toString ( ) ) ;
68+ const nativeAmount = utils . parseUnits ( amount . toString ( ) , decimals ) ;
69+ const minNativeAmountOut = utils . parseUnits ( minAmountOut . toString ( ) , decimals ) ;
6870
6971 if ( collateral ) {
7072 return this . mintWithERC20 ( {
@@ -138,17 +140,19 @@ export class UXDController {
138140 amount,
139141 minAmountOut,
140142 signer,
143+ decimals,
141144 collateral,
142145 receiver,
143146 } : {
144147 amount : number ;
145148 minAmountOut : number ;
146149 signer : Signer ;
150+ decimals : number ;
147151 collateral ?: Address ;
148152 receiver ?: Address ;
149153 } ) : Promise < ContractTransaction > {
150- const nativeAmount = utils . parseEther ( amount . toString ( ) ) ;
151- const minNativeAmountOut = utils . parseEther ( minAmountOut . toString ( ) ) ;
154+ const nativeAmount = utils . parseUnits ( amount . toString ( ) , decimals ) ;
155+ const minNativeAmountOut = utils . parseUnits ( minAmountOut . toString ( ) , decimals ) ;
152156
153157 if ( collateral ) {
154158 return this . redeemForERC20 ( {
@@ -223,12 +227,14 @@ export class UXDController {
223227 spender,
224228 amount,
225229 signer,
230+ decimals,
226231 } : {
227232 spender : Address ;
228233 amount : number ;
229234 signer : Signer ;
235+ decimals : number ;
230236 } ) : Promise < ContractTransaction > {
231- const uxdAmount = utils . parseEther ( amount . toString ( ) ) ;
237+ const uxdAmount = utils . parseUnits ( amount . toString ( ) , decimals ) ;
232238
233239 return this . uxdTokenContract . connect ( signer ) . approve ( spender , uxdAmount ) ;
234240 }
@@ -239,13 +245,15 @@ export class UXDController {
239245 spender,
240246 amount,
241247 signer,
248+ decimals,
242249 } : {
243250 token : Address ;
244251 spender : Address ;
245252 amount : number ;
246253 signer : Signer ;
254+ decimals : number ;
247255 } ) : Promise < ContractTransaction > {
248- const nativeAmount = utils . parseEther ( amount . toString ( ) ) ;
256+ const nativeAmount = utils . parseUnits ( amount . toString ( ) , decimals ) ;
249257
250258 return ERC20__factory . connect ( token , signer )
251259 . connect ( signer )
@@ -273,15 +281,17 @@ export class UXDController {
273281 public async getTokenBalance ( {
274282 token,
275283 account,
284+ decimals,
276285 } : {
277286 token : Address ;
278287 account : Address ;
288+ decimals : number ;
279289 } ) : Promise < number > {
280290 const balance = await ERC20__factory . connect (
281291 token ,
282292 this . provider
283293 ) . balanceOf ( account ) ;
284294
285- return parseInt ( ethers . utils . formatEther ( balance ) ) ;
295+ return parseInt ( ethers . utils . formatUnits ( balance , decimals ) ) ;
286296 }
287297}
0 commit comments