Closed vitalii427 closed 2 years ago
Based on StableSwapPool source code
Major changes:
New external methods:
add_rated_swap_pool
add_rated_liquidity
rated_swap_ramp_amp
rated_swap_stop_ramp_amp
get_rated_pool
get_rated_return
predict_add_rated_liquidity
predict_remove_rated_liquidity_by_tokens
update_pool_rates
update_pool_rates_callback
Add liquidity flow:
Remove liquidity by tokens flow:
remove_liquidity_by_tokens
Remove liquidity by shares flow:
Swap flow:
swap
Rates acquisition implementation:
Rates
RatesTrait
pub trait RatesTrait { /// Check that cached rates are actual fn are_actual(&self) -> bool; /// Get cached rates vector fn get(&self) -> &Vec<Balance>; /// Update cached rates /// if cached rates are actual returns true /// else returns cross-contract call promise fn update(&self) -> PromiseOrValue<bool>; /// Update callback /// receives JSON encoded cross-contract call result /// and updates cached rates fn update_callback(&mut self, cross_call_result: &Vec<u8>) -> bool; }
Other:
Generic RatedSwapPool and implementation for stNEAR/wNEAR pool
Based on StableSwapPool source code
Major changes:
New external methods:
add_rated_swap_pool
add_rated_liquidity
rated_swap_ramp_amp
rated_swap_stop_ramp_amp
get_rated_pool
[view]get_rated_return
[view]predict_add_rated_liquidity
[view]predict_remove_rated_liquidity_by_tokens
[view]update_pool_rates
update_pool_rates_callback
[callback]Add liquidity flow:
get_rated_pool
& check rates are actualpredict_add_rated_liquidity
with actual ratesupdate_pool_rates
,add_rated_liquidity
]Remove liquidity by tokens flow:
get_rated_pool
& check rates are actualpredict_remove_rated_liquidity_by_tokens
with actual ratesupdate_pool_rates
,remove_liquidity_by_tokens
]Remove liquidity by shares flow:
Swap flow:
get_rated_pool
& check rates are actualget_rated_return
with actual ratesupdate_pool_rates
,swap
]Rates acquisition implementation:
Rates
enum withRatesTrait
Other: