Links

Vault

deposit

Deposits token into the Vault, leading to producing corresponding token on the Everscale side.
function deposit(
EverscaleAddress memory recipient,
uint256 amount
) public override onlyEmergencyDisabled
respectDepositLimit(amount) nonReentrant
Parameters:
Name
Type
Description
recipient
EverscaleAddress memory
Recipient in the Everscale network
amount
uint256
Amount of tokens to deposit
Events emitted:
  • UserDeposit

deposit

Same as regular deposit, but fill multiple pending withdrawals.
function deposit(
EverscaleAddress memory recipient,
uint256 amount,
uint256 expectedMinBounty,
PendingWithdrawalId[] memory pendingWithdrawalIds
) external override
Parameters:
Name
Type
Description
recipient
EverscaleAddress memory
Recipient in the Everscale network
amount
uint256
Amount of tokens to deposit
expectedMinBounty
uint256
Expected minimal bounty amount
pendingWithdrawalIds
PendingWithdrawalId[] memory
List of pending withdrawals to close
Events emitted:
  • UserDeposit

depositToFactory

Deposits token to Factory.
function depositToFactory(
uint128 amount,
int8 wid,
uint256 user,
uint256 creditor,
uint256 recipient,
uint128 tokenAmount,
uint128 tonAmount,
uint8 swapType,
uint128 slippageNumerator,
uint128 slippageDenominator,
bytes memory level3
) external override onlyEmergencyDisabled respectDepositLimit(amount)
Parameters:
Name
Type
Description
amount
uint128
Amount to deposit
wid
int8
Workchain id
user
uint256
User’s address
creditor
uint256
Creditor’s address
recipient
uint256
Recipient’s address
tokenAmount
uint128
Token amount
tonAmount
uint128
Ton amount
swapType
uint8
Type of swap
slippageNumerator
uint128
Numerator used in determining slippage value
slippageDenominator
uint128
Denominator used in determining slippage value
level3
bytes memory
Events emitted:
  • FactoryDeposit

saveWithdraw

Save withdrawal receipt. If Vault has enough tokens and withdrawal passes the limits, then it's executed immediately. Otherwise it's saved as a pending withdrawal.
function saveWithdraw(
bytes memory payload,
bytes[] memory signatures
) public override onlyEmergencyDisabled
withdrawalNotSeenBefore(payload)
returns (bool instantWithdrawal, PendingWithdrawalId memory pendingWithdrawalId)
Parameters:
Name
Type
Description
payload
bytes memory
Withdrawal receipt, bytes encoded from EverscaleEvent
signatures
bytes[] memory
List of relay’s signatures
Return value:
Name
Type
Description
instantWithdrawal
bool
True if withdrawal was instantly filled, false if saved as pending withdrawal
pendingWithdrawalId
PendingWithdrawalId memory
Pending withdrawal Id
Events emitted:
  • InstantWithdrawal

saveWithdraw

Save withdrawal receipt, same as saveWithdraw(bytes payload, bytes[] signatures),but allows to immediately set up bounty.
function saveWithdraw(
bytes memory payload,
bytes[] memory signatures,
uint bounty
)
external
override
Parameters:
Name
Type
Description
payload
bytes memory
Withdrawal receipt, bytes encoded from EverscaleEvent
signatures
bytes[] memory
List of relay’s signatures
bounty
uint
New value for pending withdrawal bounty

cancelPendingWithdrawal

Cancel pending withdrawal partially or completely. This may only be called by the pending withdrawal recipient.
function cancelPendingWithdrawal(
uint256 id,
uint256 amount,
EverscaleAddress memory recipient,
uint bounty
) external override onlyEmergencyDisabled
pendingWithdrawalApproved(PendingWithdrawalId(msg.sender, id))
pendingWithdrawalOpened(PendingWithdrawalId(msg.sender, id))
Parameters:
Name
Type
Description
id
uint256
Pending withdrawal Id
amount
uint256
Amount to cancel (le then pending withdrawal amount)
recipient
EverscaleAddress memory
Tokens recipient in Everscale network
bounty
uint
New value for bounty
Events emitted:
  • PendingWithdrawalCancel

withdraw

Withdraws the calling account's pending withdrawal from this Vault.
function withdraw(
uint256 id,
uint256 amountRequested,
address recipient,
uint256 maxLoss,
uint256 bounty
) external override onlyEmergencyDisabled
pendingWithdrawalOpened(PendingWithdrawalId(msg.sender, id))
pendingWithdrawalApproved(PendingWithdrawalId(msg.sender, id))
returns(uint256 amountAdjusted)
Parameters:
Name
Type
Description
id
uint256
Pending withdrawal Id
amountRequested
uint256
Amount of tokens to be withdrawn
recipient
address
The address to send the redeem tokens
maxLoss
uint256
The maximum acceptable loss for withdrawal
bounty
uint256
New value for bounty
Return value:
Name
Type
Description
amountAdjusted
uint256
Quantity of tokens redeemed
Events emitted:
  • PendingWithdrawalWithdraw

addStrategy

Add a Strategy to the Vault. This may only be called by governance.
function addStrategy(
address strategyId,
uint256 _debtRatio,
uint256 minDebtPerHarvest,
uint256 maxDebtPerHarvest,
uint256 _performanceFee
) external override onlyGovernance
onlyEmergencyDisabled strategyNotExists(strategyId)
Parameters:
Name
Type
Description
strategyId
address
Address of the strategy to add
_debtRatio
uint256
Share of the total vault’s assets that strategy has access to
minDebtPerHarvest
uint256
Lower limit on the increase of debt since last harvest
maxDebtPerHarvest
uint256
Upper limit on the increase of debt since last harvest
_performanceFee
uint256
Fee which strategist will receive based on this Vault’s performance
Events emitted:
  • StrategyAdded

updateStrategyDebtRatio

Change the quantity of assets strategy may manage. This may be called by governance or management.
function updateStrategyDebtRatio(
address strategyId,
uint256 _debtRatio
) external override onlyGovernanceOrManagement
strategyExists(strategyId)
Parameters:
Name
Type
Description
strategyId
address
Address of the strategy to update
_debtRatio
uint256
Quantity of assets strategy may manage after update
Events emitted:
  • StrategyUpdateDebtRatio

updateStrategyMinDebtPerHarvest

Updates strategies minimal debt with new value passed from params.
function updateStrategyMinDebtPerHarvest(
address strategyId,
uint256 minDebtPerHarvest
) external override onlyGovernanceOrManagement
strategyExists(strategyId)
Parameters:
Name
Type
Description
strategyId
address
Address of the strategy to update
minDebtPerHarvest
uint256
Lower limit on the increase of debt since last harvest
Events emitted:
  • StrategyUpdateMinDebtPerHarvest

updateStrategyMaxDebtPerHarvest

Updates strategies maximum debt with new value passed from params.
function updateStrategyMaxDebtPerHarvest(
address strategyId,
uint256 maxDebtPerHarvest
) external override onlyGovernanceOrManagement
strategyExists(strategyId)
Parameters:
Name
Type
Description
strategyId
address
Address of the strategy to update
maxDebtPerHarvest
uint256
Upper limit on the increase of debt since last harvest
Events emitted:
  • StrategyUpdateMaxDebtPerHarvest

updateStrategyPerformanceFee

Updates strategies performance fee with new value passed from params.
function updateStrategyPerformanceFee(
address strategyId,
uint256 _performanceFee
) external override onlyGovernance strategyExists(strategyId)
Parameters:
Name
Type
Description
strategyId
address
Address of the strategy to update
_performanceFee
uint256
New fee which strategist will receive based on this Vault’s performance
Events emitted:
  • StrategyUpdatePerformanceFee

revokeStrategy

Cancels strategy.
function revokeStrategy(
address strategyId
) external override onlyStrategyOrGovernanceOrGuardian(strategyId)
Parameters:
Name
Type
Description
strategyId
address
Address of the strategy to update
Events emitted:
  • StrategyRevoked

_assessFees

Based on the strategy id and reported gain, calculates total fee based on the estimated management, strategist and performance fees.
function _assessFees(
address strategyId,
uint256 gain
) internal returns (uint256)
Parameters:
Name
Type
Description
strategyId
address
Address of the strategy to update
gain
uint256
Gains reported used for assessing fees
Return value:
Type
Description
uint256
New assessed fees

report

Reports the amount of assets the calling Strategy has free (usually in terms of ROI).
function report(
uint256 gain,
uint256 loss,
uint256 _debtPayment
)
external
override
strategyExists(msg.sender)
returns (uint256)
Parameters:
Name
Type
Description
gain
uint256
Amount strategy has realized as a gain on it’s investments since the last report
loss
uint256
Amount strategy has realized as a loss on it’s investments since the last report
_debtPayment
uint256
Amount strategy has made available to cover outstanding debt
Return value:
Type
Description
uint256
Amount of debt outstanding
Events emitted:
  • StrategyReported

skim

Skim strategy gain to the rewards_ address. This may only be called by governance or management.
function skim(
address strategyId
) external override onlyGovernanceOrManagement
strategyExists(strategyId)
Parameters:
Name
Type
Description
strategyId
address
Address of the strategy to update

skimFees

Skim Vault fees to the rewards_ address. This may only be called by governance or management.
function skimFees(
bool skim_to_everscale
) external override onlyGovernanceOrManagement
Parameters:
Name
Type
Description
skim_to_everscale
bool
True if skim fees to Everscale, false if not

sweep

Removes tokens from this Vault that are not the type of token managed by this Vault. This may be used in case of accidentally sending the wrong kind of token to this Vault.
function sweep(
address _token
) external override onlyGovernance
Parameters:
Name
Type
Description
_token
address
Token address to transfer out of this vault

forceWithdraw

Force user's pending withdrawal. Works only if Vault has enough tokens on its balance. This may only be called by wrapper.
function forceWithdraw(
PendingWithdrawalId memory pendingWithdrawalId
)
public
override
onlyEmergencyDisabled
pendingWithdrawalOpened(pendingWithdrawalId)
pendingWithdrawalApproved(pendingWithdrawalId)
Parameters:
Name
Type
Description
pendingWithdrawalId
PendingWithdrawalId memory
Pending withdrawal Id
Events emitted: PendingWithdrawalForce

forceWithdraw

Multicall for forceWithdraw.
function forceWithdraw(
PendingWithdrawalId[] memory pendingWithdrawalId
) external override
Parameters:
Name
Type
Description
pendingWithdrawalId
PendingWithdrawalId[] memory
Pending withdrawal Id

setPendingWithdrawalApprove

Set approve status for pending withdrawal. Pending withdrawal must be in Required (1) approve status, so approve status can be set only once. If Vault has enough tokens on its balance - withdrawal will be filled immediately. This may only be called by governance or withdrawGuardian.
Events emitted:
  • PendingWithdrawalWithdraw
function setPendingWithdrawalApprove(
PendingWithdrawalId memory pendingWithdrawalId,
ApproveStatus approveStatus
) public override onlyGovernanceOrWithdrawGuardian
pendingWithdrawalOpened(pendingWithdrawalId)

setPendingWithdrawalApprove

Multicall for setPendingWithdrawalApprove.
function setPendingWithdrawalApprove(
PendingWithdrawalId[] memory pendingWithdrawalId,
ApproveStatus[] memory approveStatus
) external override
Parameters:
Name
Type
Description
pendingWithdrawalId
PendingWithdrawalId[] memory
Pending withdrawal Id
approveStatus
ApproveStatus[] memory
Approve status, must be Approved or Rejected

_transferToEverscale

Emits event to notify successful transfer.
function _transferToEverscale(EverscaleAddress memory recipient,uint256 _amount) internal
Parameters:
Name
Type
Description
recipient
EverscaleAddress memory
Recipient address in Everscale
_amount
uint256
Amount to transfer
Events emitted:
  • Deposit
Last modified 1yr ago