Base
StakingPoolBase
receiveTokenWalletAddress
receiveTokenWalletAddressStore vault's token wallet address. Only root can call with correct params.
function receiveTokenWalletAddress(address wallet) externalParameters:
wallet
address
Token wallet address
startNewRewardRound
startNewRewardRoundChecks whether there are any rounds if so, sets last round to previous, updates pool about it, adds new round to the list and transfers remaining gas to the address from params.
function startNewRewardRound(address send_gas_to) external onlyRewarderParameters:
sendGasTo
address
Address where to send spent gas
spent gas
Events emitted:
NewRewardRound
onAcceptTokensTransfer
onAcceptTokensTransferDeposit occurs here.
function onAcceptTokensTransfer(
address tokenRoot,
uint128 amount,
address sender,
address senderWallet,
address remainingGasTo,
TvmCell payload
) external overrideParameters:
tokenRoot
address
Token root address
amount
uint128
Amount of tokens in transfer
sender
address
Address of the sender
senderWallet
address
Wallet address of the sender
remainingGasTo
address
Address where the remaining gas will be transferred
payload
TvmCell
Deposit payload data encoded to Cell
Events emitted:
RewardDeposit
revertDeposit
revertDepositReverts the action of depositing.
function revertDeposit(uint64 _deposit_nonce) external overrideParameters:
_deposit_nonce
uint64
Id of the deposit which should be reverted
Events emitted:
DepositReverted
finishDeposit
finishDepositFinishes the depositing with incrementing token balance for deposit amount.
function finishDeposit(uint64 _deposit_nonce) external overrideParameters:
_deposit_nonce
uint64
Id of the deposit which should be finalized
Events emitted:
Deposit
withdraw
withdrawWithdraw action
function withdraw(uint128 amount, address send_gas_to) public onlyActiveParameters:
amount
uint128
Amount to withdraw
sendGasTo
address
Address where to send remaining gas
finishWithdraw
finishWithdrawFinishes the withdrawal with decrementing token balance for deposit amount.
function finishWithdraw(
address user,
uint128 withdraw_amount,
address send_gas_to
) public override onlyUserData(user)Parameters:
user
address
User address who initiates withdraw
withdraw_amount
uint128
Amount to withdraw
sendGasTo
address
Address where to send remaining gas
Events emitted:
Withdraw
claimReward
claimRewardClaiming reward for user.
function claimReward(address send_gas_to) external onlyActiveParameters:
sendGasTo
address
Address where to send remaining gas
finishClaimReward
finishClaimRewardFinishes the reward claiming with incrementing user token reward and decrementing reward token balance
function finishClaimReward(address user, uint128[] rewards, address send_gas_to) external override onlyUserData(user)Parameters:
user
address
Address of the user that claims a reward
rewards
uint128[]
List of rewards
sendGasTo
address
Address where to send remaining gas
Events emitted:
RewardClaimed
pendingReward
pendingRewardSynchronizes rewards, updates pool info if not empty, gets rewards for old user rounds, synchronizes new user rounds, calculates user reward tokens and returns them.
function pendingReward(uint256 user_token_balance, IUserData.RewardRoundData[] user_reward_data) external view responsible returns (uint256)Parameters:
user_token_balance
uint256
Balance of user’s tokens
user_reward_data
IUserData.RewardRoundData[]
List of all synced user rewards
Returns value:
address
Address where to send remaining gas
updatePoolInfo Updates pool information about last reward time and total reward
function updatePoolInfo() internal
deployUserData
deployUserDataDeploys Platform contract with the user data
function deployUserData(address user_data_owner) internal returns (address)Parameters:
user_data_owner
address
Address of the deployer of user data
Returns value:
address
Address of the deployed UserData contract
castVoteWithReason
castVoteWithReasonCasts user's vote.
function castVote(uint32 proposal_id, bool support) public view overrideParameters:
proposal_id
uint32
Id of the proposal
support
bool
True if voted for, false if voted against
castVoteWithReason
castVoteWithReasonCasts user's vote with specified reason
function castVoteWithReason(
uint32 proposal_id,
bool support,
string reason
) public view overrideParameters:
proposal_id
uint32
Id of the proposal
support
bool
True if voted for, false if voted against
reason
string
Reason for voting
withdrawTonsUserEmergency
withdrawTonsUserEmergencyUser withdraws tons in case of emergency
function withdrawTonsUserEmergency() externalwithdrawTonsEmergency
withdrawTonsEmergencyChecks all the necessary requirements regarding the balance and amount, and does the transfer to the receiver address
function withdrawTonsEmergency(uint128 amount, address receiver, bool all, address send_gas_to) external onlyRescuerParameters:
amount
uint128
Amount of tons to withdraw
receiver
address
Receiver address where tons will be sent
all
bool
True if all tons should be withdrawn, false if not
sendGasTo
address
Address where to send remaining gas
withdrawTokensEmergency
withdrawTokensEmergencyTokens withdraw in case of emergency.
function withdrawTokensEmergency(uint128 amount, address receiver, bool all, address send_gas_to) external onlyRescuerParameters:
amount
uint128
Amount of tokens to withdraw
receiver
address
Receiver address where tokens will be sent
all
bool
True if all tokens should be withdrawn, false if not
sendGasTo
address
Address where to send spent gas
StakingPoolRelay
linkRelayAccounts
linkRelayAccountsGets user data and processes linking of relayer eth and ton accounts.
function linkRelayAccounts(uint256 ton_pubkey, uint160 eth_address) external view onlyActiveParameters:
ton_pubkey
uint256
Public key of the ton account
eth_address
uint160
Address of the ethereum account
onEventConfirmed
onEventConfirmedConfirms transaction from everscale to ethereum.
function onEventConfirmed(
IEthereumEvent.EthereumEventInitData eventData,
address gasBackAddress
) external override onlyEthTonConfigParameters:
eventData
IEthereumEvent.EthereumEventInitData
EthereumEvent data
gasBackAddress
address
Address where to send remaining gas
confirmEthAccount
confirmEthAccountProcesses confirmation of ethereum account.
function confirmEthAccount(address staker_addr, uint160 eth_address, address send_gas_to) internalParameters:
staker_addr
address
Address of the staker
eth_address
uint160
Ethereum account address
sendGasTo
address
Address where to send remaining gas
slashRelay
slashRelaySlashes specified relayer.
function slashRelay(address relay_staker_addr, address send_gas_to) external onlyDaoRootParameters:
relay_staker_addr
address
Address of the relayer which will be slashed
sendGasTo
address
Address where to send remaining gas
_syncUserRewardData
_syncUserRewardDataCalculates user's reward based on params.
function _syncUserRewardData(
uint128[] user_rewards,
uint128[] user_debts,
uint128 ban_token_balance
) private view returns (uint128[])Parameters:
user_rewards
uint128[]
List of all user rewards
user_debts
uint128[]
List of all user debts
ban_token_balance
uint128
Used for calculating new user reward that is not already synced
Returns value:
uint128[]
Synced user rewards list
confirmSlash
confirmSlashConfirms slashing by burning gas of slashed user and recalculates round's balance.
function confirmSlash( address user, uint128[] user_rewards, uint128[] user_debts, uint128 ban_token_balance, address send_gas_to ) external override onlyUserData(user)
Parameters:
user
address
Address of the slashed user
user_rewards
uint128[]
Rewards list of the slashed user
user_debts
uint128[]
Debts list of the slashed user
ban_token_balance
uint128
Balance of banned tokens
sendGasTo
address
Address where to send remaining gas
Events emitted:
RelaySlashed
createOriginRelayRound
createOriginRelayRoundCreates and deploys new relayer round and sets relayers for that round.
function createOriginRelayRound(
address[] staker_addrs,
uint256[] ton_pubkeys,
uint160[] eth_addrs,
uint128[] staked_tokens,
uint128 ton_deposit,
address send_gas_to
) external onlyAdminParameters:
staker_addrs
address[]
List of stakers in the round
ton_pubkeys
uint256[]
List of ton accounts’ public keys
eth_addrs
uint160[]
List of ethereum’s accounts
staked_tokens
uint128[]
List of staked tokens
ton_deposit
uint128
Amount of tons deposited
sendGasTo
address
Address where to send remaining gas
remaining gas
processBecomeRelayNextRound
processBecomeRelayNextRoundProcesses new relayers for the next relayer round.
function processBecomeRelayNextRound(address user) external view override onlyActive onlyUserData(user)Parameters:
user
address
Address of the user that will be processed for a next round’s relayer
processGetRewardForRelayRound
processGetRewardForRelayRoundProcesses rewards for current relayer round.
function processGetRewardForRelayRound(address user, uint32 round_num) external override onlyActive onlyUserData(user)Parameters:
user
address
Address of the user that should get a reward
round_num
uint32
Number of the round for which he will be awarded
startElectionOnNewRound
startElectionOnNewRoundDeploys election for a new round.
function startElectionOnNewRound() external onlyActiveendElection
endElectionBased on election's address finishes the current election.
function endElection() external onlyActiveonElectionStarted
onElectionStartedSets start time of the election.
function onElectionStarted(uint32 round_num) external override onlyElection(round_num)Parameters:
round_num
uint32
Round number in which election has started
Events emitted:
ElectionStarted
onElectionEnded
onElectionEndedSets round details and deploys new relayer round.
function onElectionEnded(
uint32 round_num,
uint32 relay_requests_count
) external override onlyElection(round_num)Parameters:
round_num
uint32
Round number in which election has ended
relay_requests_count
uint32
Number of relayer’s requests (used to check whether there were enough of them for election to be valid)
Events emitted:
ElectionEnded
_relaysPacksCount
_relaysPacksCountReturns number of relayer packs.
function _relaysPacksCount() private view returns (uint8)Return value:
uint8
Number of relayers packs
onRelayRoundDeployed
onRelayRoundDeployedSends relayers to relayer round.
function onRelayRoundDeployed(
uint32 round_num,
bool duplicate
) external override onlyRelayRound(round_num)Parameters:
round_num
uint32
Round number
duplicate
bool
True if yes, false if not
onRelayRoundInitialized
onRelayRoundInitializedSets round details, deploys new event and destroys previous round.
function onRelayRoundInitialized(
uint32 round_num,
uint32 round_start_time,
uint32 round_end_time,
uint32 relays_count,
uint128 round_reward,
uint32 reward_round_num,
bool duplicate,
uint160[] eth_keys
) external override onlyRelayRound(round_num)Parameters:
round_num
uint32
Round number
round_start_time
uint32
Time when the round will start
round_end_time
uint32
End of the round
relays_count
uint32
Number of relayers
round_reward
uint128
Reward for the round
reward_round_num
uint32
Number of reward round (index for base_details.rewardRounds array)
(index for base_details.rewardRounds array)
duplicate
bool
True if yes, false if not
eth_keys
uint160[]
List of ethereum accounts
Events emitted:
RelayRoundInitialized
deployElection
deployElectionCreates new platform for the new election.
function deployElection(uint32 round_num) private returns (address)Parameters:
round_num
uint32
Round number
Return value:
address
Deployed election address
deployRelayRound
deployRelayRoundCreates platform for the new relayer round.
function deployRelayRound(
uint32 round_num,
uint32 start_time,
uint32 end_time,
bool duplicate,
uint8 packs_num,
address election_addr,
address prev_relay_round_addr,
uint16 msg_flag
) private returns (address)Parameters:
round_num
uint32
Round number
start_time
uint32
Round start time
end_time
uint32
Round end time
duplicate
bool
True if yes, false if not
packs_num
uint8
Number of relayer packs
election_addr
address
Address of the election
prev_relay_round_addr
address
Previous relayer round address
msg_flag
uint16
Flag used for building new RelayRound platform
Return value:
address
Address of deployed relayer round
StakingUpgradable
installPlatformOnce
installPlatformOnceInstalls updated platform.
function installPlatformOnce(TvmCell code, address send_gas_to) external onlyAdminParameters:
code
TvmCell
Platform code encoded to cell
sendGasTo
address
Address where to send remaining gas
installOrUpdateUserDataCode
installOrUpdateUserDataCodeUpgrades user data version.
function installOrUpdateUserDataCode(TvmCell code, address send_gas_to) external onlyAdminParameters:
code
TvmCell
User data code in cell format
sendGasTo
address
Address where to send remaining gas
Events emitted:
UserDataCodeUpgraded
installOrUpdateElectionCode
installOrUpdateElectionCodeUpgrades election version.
function installOrUpdateElectionCode(TvmCell code, address send_gas_to) external onlyAdminParameters:
code
TvmCell
Election code in cell format
sendGasTo
address
Address where to send remaining gas
Events emitted:
ElectionCodeUpgraded
installOrUpdateRelayRoundCode
installOrUpdateRelayRoundCodeUpgrades relayer round version.
function installOrUpdateRelayRoundCode(TvmCell code, address send_gas_to) external onlyAdminParameters:
code
TvmCell
relayer round code in cell format
sendGasTo
address
Address where to send remaining gas
Events emitted:
RelayRoundCodeUpgraded
upgradeUserData*
upgradeUserData*Upgrades user data.
function upgradeUserData(address send_gas_to) external view onlyActiveParameters:
sendGasTo
address
Address where to send remaining gas
forceUpgradeUserData
forceUpgradeUserDataUpgrades user data.
function forceUpgradeUserData(
address user,
address send_gas_to
) external view onlyAdminParameters:
user
address
User address
sendGasTo
address
Address where to send remaining gas
_upgradeUserData
_upgradeUserDataUpgrades user data code and version by request.
function _upgradeUserData(address user, uint128 gas_value, address send_gas_to) internal viewParameters:
user
address
User address
gas_value
uint128
Gas value spent for upgrade
sendGasTo
address
Address where to send remaining gas
Events emitted:
RequestedUserDataUpgrade
upgradeElection
upgradeElectionUpgrades election code and version by request.
function upgradeElection(
uint32 round_num,
address send_gas_to
) external view onlyAdminParameters:
round_num
uint32
Round number
sendGasTo
address
Address where to send remaining gas
Events emitted:
RequestedElectionUpgrade
upgradeRelayRound
upgradeRelayRoundUpgrades relayer round code and version by request.
function upgradeRelayRound(
uint32 round_num,
address send_gas_to
) external view onlyAdminParameters:
round_num
uint32
Round number
sendGasTo
address
Address where to send remaining gas
Events emitted:
RequestedRelayRoundUpgrade
_buildElectionParams
_buildElectionParamsReturns election params in cell format based on the round number.
function _buildElectionParams(uint32 round_num) internal inline view returns (TvmCell)Parameters:
round_num
uint32
Round number
Return value:
TvmCell
Election parameters data encoded to cell
_buildRelayRoundParams
_buildRelayRoundParamsReturns relayer round params in cell format based on the round number.
function _buildRelayRoundParams(uint32 round_num) internal inline view returns (TvmCell)Parameters:
round_num
uint32
Round number
TvmCell
Relayer round params encoded to cell
Last updated
Was this helpful?