@@ -53,6 +53,8 @@ mod Exchange {
53
53
use starknet :: {SyscallResultTrait , replace_class_syscall, ContractAddress , ClassHash , get_caller_address, get_contract_address};
54
54
use super :: IExchange ;
55
55
56
+ // 100 * 10 ** 10 => (10 decimals)
57
+ const MAX_ROUTE_PERCENT : u128 = 1000000000000 ;
56
58
const MAX_AVNU_FEES_BPS : u128 = 100 ;
57
59
const MAX_INTEGRATOR_FEES_BPS : u128 = 500 ;
58
60
@@ -500,11 +502,11 @@ mod Exchange {
500
502
let route : Route = routes . pop_front (). unwrap ();
501
503
502
504
// Calculating tokens to be passed to the exchange
503
- // percentage should be 2 for 2%
505
+ // percentage should be 2 * 10**10 for 2%
504
506
assert (route . percent > 0 , ' Invalid route percent' );
505
- assert (route . percent <= 100 , ' Invalid route percent' );
507
+ assert (route . percent <= MAX_ROUTE_PERCENT , ' Invalid route percent' );
506
508
let token_from_balance = IERC20Dispatcher { contract_address : route . token_from }. balanceOf (contract_address );
507
- let (token_from_amount , overflows ) = muldiv (token_from_balance , route . percent. into (), 100_u256 , false );
509
+ let (token_from_amount , overflows ) = muldiv (token_from_balance , route . percent. into (), MAX_ROUTE_PERCENT . into () , false );
508
510
assert (overflows == false , ' Overflow: Invalid percent' );
509
511
510
512
// Get adapter class hash
0 commit comments