INestorTransferManager¶
Inherits: IAbstractFeeModule
Author: Originally developed by DEFYCA Labs S.a.r.l., maintained by Nestor Exchange OÜ
MIT Licence. Originally Copyright © 2023 DEFYCA Labs S.a.r.l.
The INestorTransferManager is responsible for the management of the various transfer methodologies, fees processing, and defined control paradigm for DvP for all tokens in the Nestor Protocol.
Functions¶
updateMinRedeemAmount¶
setTransferFees¶
function setTransferFees(TokenFeeInfo calldata token0FeeInfo_, TokenFeeInfo calldata token1FeeInfo_) external;
setTokenFee¶
exchangeTokens¶
Executes a token pair exchange. Only invocable by PROTOCOL_TREASURY.
function exchangeTokens(TokenTransferData memory token0TransferData_, TokenTransferData memory token1TransferData_) external;
createTransferOffer¶
Initiates a transferOffer between a token pair exchange. Returns a transferOfferId for confirmTransferOffer or cancelTransferOffer.
function createTransferOffer(TokenTransferData memory token0TransferData_, TokenTransferData memory token1TransferData_) external returns (uint256);
redeemTokens¶
redeemERC20Tokens¶
function redeemERC20Tokens(address erc20Token_, address fundDepositToken_, uint256 tokenRedeemAmount_) external;
redeemTokensFrom¶
Only invocable by PROTOCOL_TREASURY.
redeemERC20TokensFrom¶
Only invocable by PROTOCOL_TREASURY.
function redeemERC20TokensFrom(address erc20Token_, address fundDepositToken_, address userAddr_, uint256 tokenRedeemAmount_) external;
confirmTransferOffer¶
cancelTransferOffer¶
nextTransferOfferId¶
minRedeemAmount¶
getTransferData¶
getTransferFeesInfo¶
function getTransferFeesInfo(address token0_, address token1_) external view returns (FeeInfo memory, FeeInfo memory);
getTransferFeeKeys¶
function getTransferFeeKeys(address token0_, address token1_) external view returns (bytes32, bytes32);
getTokenFeeKey¶
Events¶
NestorTransferOfferCreated¶
NestorTransferOfferConfirmed¶
NestorTransferOfferCanceled¶
NestorTokensExchanged¶
event NestorTokensExchanged(TokenTransferData token0TransferData, TokenTransferData token1TransferData);
NestorTokensRedeemed¶
Errors¶
NestorTransferManagerInvalidTokenAddresses¶
NestorTransferManagerInvalidTokenSenderAddresses¶
NestorTransferManagerInvalidTokensPairForRedeem¶
NestorTransferManagerCannotTransferToken¶
error NestorTransferManagerCannotTransferToken(address tokenAddr, address from, address to, uint256 amount);
NestorTransferManagerZeroAddress¶
NestorTransferManagerZeroAmount¶
NestorTransferManagerRedeemAmountIsLessThanMinimum¶
NestorTransferManagerNotEnoughTokens¶
error NestorTransferManagerNotEnoughTokens(address tokenAddr, address userAddr, uint256 tokensToTransfer);
NestorTransferManagerInvalidTransferStatus¶
error NestorTransferManagerInvalidTransferStatus(TransferStatuses expectedStatus, TransferStatuses actualStatus);
NestorTransferManagerNotEnoughPermissions¶
NestorTransferManagerInvalidERC20TokenForRedeem¶
Structs¶
TokenFeeInfo¶
TokenTransferData¶
TransferData¶
struct TransferData {
TokenTransferData token0Data;
TokenTransferData token1Data;
uint256 feeInBps0;
uint256 feeInBps1;
TransferStatuses status;
}