Save Wrapper
The Save Wrapper bundles utility functions together to simplify multiple interactions with mStable's smart contract calls into one single call. This contract is immutable.
Polygon Mainnet

Functions

saveAndStake()

function saveAndStake (address _mAsset, address _save, address _vault, uint256 _amount) external
Simply saves an mAsset and then into the vault
Parameter
Type
Description
_mAsset
address
mAsset address
_save
address
Save address
_vault
address
Boosted Savings Vault address
_amount
uint256
Units of mAsset to deposit to savings

saveAndStake()

function saveAndStake (address _mAsset, address _save, address _vault, uint256 _amount, address _referrer) external
Simply saves an mAsset and then into the vault
Parameter
Type
Description
_mAsset
address
mAsset address
_save
address
Save address
_vault
address
Boosted Savings Vault address
_amount
uint256
Units of mAsset to deposit to savings
_referrer
address
Referrer address for this deposit.

saveViaMint()

function saveViaMint (address _mAsset, address _bAsset, address _save, address _vault, uint256 _amount, uint256 _minOut, bool _stake) external
Mints an mAsset and then deposits to Save/Savings Vault
Parameter
Type
Description
_mAsset
address
mAsset address
_bAsset
address
bAsset address
_save
address
Save address
_vault
address
Boosted Savings Vault address
_amount
uint256
Amount of bAsset to mint with
_minOut
uint256
Min amount of mAsset to get back
_stake
bool
Add the imAsset to the Boosted Savings Vault?

saveViaMint()

function saveViaMint (address _mAsset, address _bAsset, address _save, address _vault, uint256 _amount, uint256 _minOut, bool _stake, address _referrer) external
Mints an mAsset and then deposits to Save/Savings Vault
Parameter
Type
Description
_mAsset
address
mAsset address
_bAsset
address
bAsset address
_save
address
Save address
_vault
address
Boosted Savings Vault address
_amount
uint256
Amount of bAsset to mint with
_minOut
uint256
Min amount of mAsset to get back
_stake
bool
Add the imAsset to the Boosted Savings Vault
_referrer
address
Referrer address for this deposit.

saveViaSwap()

function saveViaSwap (address _mAsset, address _save, address _vault, address _feeder, address _fAsset, uint256 _fAssetQuantity, uint256 _minOutputQuantity, bool _stake) external
Swaps fAsset for mAsset and then deposits to Save/Savings Vault
Parameter
Type
Description
_mAsset
address
mAsset address
_save
address
Save address
_vault
address
Boosted Savings Vault address
_feeder
address
Feeder Pool address
_fAsset
address
fAsset address
_fAssetQuantity
uint256
Quantity of fAsset sent
_minOutputQuantity
uint256
Min amount of mAsset to be swapped and deposited
_stake
bool
Deposit the imAsset in the Savings Vault?

saveViaSwap()

function saveViaSwap (address _mAsset, address _save, address _vault, address _feeder, address _fAsset, uint256 _fAssetQuantity, uint256 _minOutputQuantity, bool _stake, address _referrer) external
Swaps fAsset for mAsset and then deposits to Save/Savings Vault
Parameter
Type
Description
_mAsset
address
mAsset address
_save
address
Save address
_vault
address
Boosted Savings Vault address
_feeder
address
Feeder Pool address
_fAsset
address
fAsset address
_fAssetQuantity
uint256
Quantity of fAsset sent
_minOutputQuantity
uint256
Min amount of mAsset to be swapped and deposited
_stake
bool
Deposit the imAsset in the Savings Vault?
_referrer
address
Referrer address for this deposit.

saveViaUniswapETH()

function saveViaUniswapETH (address _mAsset, address _save, address _vault, address _uniswap, uint256 _amountOutMin, address[] _path, uint256 _minOutMStable, bool _stake) external
Buys a bAsset on Uniswap with ETH, then mints imAsset via mAsset, optionally staking in the Boosted Savings Vault
Parameter
Type
Description
_mAsset
address
mAsset address
_save
address
Save address
_vault
address
Boosted vault address
_uniswap
address
Uniswap router address
_amountOutMin
uint256
Min uniswap output in bAsset units
_path
address[]
Sell path on Uniswap (e.g. [WETH, DAI])
_minOutMStable
uint256
Min amount of mAsset to receive
_stake
bool
Add the imAsset to the Savings Vault?

saveViaUniswapETH()

function saveViaUniswapETH (address _mAsset, address _save, address _vault, address _uniswap, uint256 _amountOutMin, address[] _path, uint256 _minOutMStable, bool _stake, address _referrer) external
Buys a bAsset on Uniswap with ETH, then mints imAsset via mAsset,optionally staking in the Boosted Savings Vault
Parameter
Type
Description
_mAsset
address
mAsset address
_save
address
Save address
_vault
address
Boosted vault address
_uniswap
address
Uniswap router address
_amountOutMin
uint256
Min uniswap output in bAsset units
_path
address[]
Sell path on Uniswap (e.g. [WETH, DAI])
_minOutMStable
uint256
Min amount of mAsset to receive
_stake
bool
Add the imAsset to the Savings Vault?
_referrer
address
Referrer address for this deposit.

estimate_saveViaUniswapETH()

function estimate_saveViaUniswapETH (address _mAsset, address _uniswap, uint256 _ethAmount, address[] _path) external returns (uint256 out)
Gets estimated mAsset output from a WETH > bAsset > mAsset trade
Parameter
Type
Description
_mAsset
address
mAsset address
_uniswap
address
Uniswap router address
_ethAmount
uint256
ETH amount to sell
_path
address[]
Sell path on Uniswap (e.g. [WETH, DAI])