Base

StakingPoolBase

receiveTokenWalletAddress

Store vault's token wallet address. Only root can call with correct params.

function receiveTokenWalletAddress(address wallet) external

Parameters:

startNewRewardRound

Checks 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 onlyRewarder

Parameters:

Events emitted:

  • NewRewardRound

onAcceptTokensTransfer

Deposit occurs here.

function onAcceptTokensTransfer(
        address tokenRoot,
        uint128 amount,
        address sender,
        address senderWallet,
        address remainingGasTo,
        TvmCell payload
    ) external override

Parameters:

Events emitted:

  • RewardDeposit

revertDeposit

Reverts the action of depositing.

function revertDeposit(uint64 _deposit_nonce) external override

Parameters:

Events emitted:

  • DepositReverted

finishDeposit

Finishes the depositing with incrementing token balance for deposit amount.

function finishDeposit(uint64 _deposit_nonce) external override

Parameters:

Events emitted:

  • Deposit

withdraw

Withdraw action

function withdraw(uint128 amount, address send_gas_to) public onlyActive

Parameters:

finishWithdraw

Finishes 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:

Events emitted:

  • Withdraw

claimReward

Claiming reward for user.

function claimReward(address send_gas_to) external onlyActive

Parameters:

finishClaimReward

Finishes 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:

Events emitted:

  • RewardClaimed

pendingReward

Synchronizes 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:

Returns value:

updatePoolInfo Updates pool information about last reward time and total reward

function updatePoolInfo() internal

deployUserData

Deploys Platform contract with the user data

function deployUserData(address user_data_owner) internal returns (address)

Parameters:

Returns value:

castVoteWithReason

Casts user's vote.

function castVote(uint32 proposal_id, bool support) public view override

Parameters:

castVoteWithReason

Casts user's vote with specified reason

function castVoteWithReason(
        uint32 proposal_id,
        bool support,
        string reason
    ) public view override

Parameters:

withdrawTonsUserEmergency

User withdraws tons in case of emergency

function withdrawTonsUserEmergency() external

withdrawTonsEmergency

Checks 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 onlyRescuer

Parameters:

withdrawTokensEmergency

Tokens withdraw in case of emergency.

function withdrawTokensEmergency(uint128 amount, address receiver, bool all, address send_gas_to) external onlyRescuer

Parameters:

StakingPoolRelay

linkRelayAccounts

Gets user data and processes linking of relayer eth and ton accounts.

function linkRelayAccounts(uint256 ton_pubkey, uint160 eth_address) external view onlyActive

Parameters:

onEventConfirmed

Confirms transaction from everscale to ethereum.

function onEventConfirmed(
        IEthereumEvent.EthereumEventInitData eventData,
        address gasBackAddress
    ) external override onlyEthTonConfig

Parameters:

confirmEthAccount

Processes confirmation of ethereum account.

function confirmEthAccount(address staker_addr, uint160 eth_address, address send_gas_to) internal

Parameters:

slashRelay

Slashes specified relayer.

function slashRelay(address relay_staker_addr, address send_gas_to) external onlyDaoRoot

Parameters:

_syncUserRewardData

Calculates user's reward based on params.

function _syncUserRewardData(
        uint128[] user_rewards,
        uint128[] user_debts,
        uint128 ban_token_balance
    ) private view returns (uint128[])

Parameters:

Returns value:

confirmSlash

Confirms 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:

Events emitted:

  • RelaySlashed

createOriginRelayRound

Creates 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 onlyAdmin

Parameters:

processBecomeRelayNextRound

Processes new relayers for the next relayer round.

function processBecomeRelayNextRound(address user) external view override onlyActive onlyUserData(user)

Parameters:

processGetRewardForRelayRound

Processes rewards for current relayer round.

function processGetRewardForRelayRound(address user, uint32 round_num) external override onlyActive onlyUserData(user)

Parameters:

startElectionOnNewRound

Deploys election for a new round.

function startElectionOnNewRound() external onlyActive

endElection

Based on election's address finishes the current election.

function endElection() external onlyActive

onElectionStarted

Sets start time of the election.

function onElectionStarted(uint32 round_num) external override onlyElection(round_num)

Parameters:

Events emitted:

  • ElectionStarted

onElectionEnded

Sets round details and deploys new relayer round.

function onElectionEnded(
        uint32 round_num,
        uint32 relay_requests_count
    ) external override onlyElection(round_num)

Parameters:

Events emitted:

  • ElectionEnded

_relaysPacksCount

Returns number of relayer packs.

function _relaysPacksCount() private view returns (uint8)

Return value:

onRelayRoundDeployed

Sends relayers to relayer round.

function onRelayRoundDeployed(
        uint32 round_num,
        bool duplicate
    ) external override onlyRelayRound(round_num)

Parameters:

onRelayRoundInitialized

Sets 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:

Events emitted:

  • RelayRoundInitialized

deployElection

Creates new platform for the new election.

function deployElection(uint32 round_num) private returns (address)

Parameters:

Return value:

deployRelayRound

Creates 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:

Return value:

StakingUpgradable

installPlatformOnce

Installs updated platform.

function installPlatformOnce(TvmCell code, address send_gas_to) external onlyAdmin

Parameters:

installOrUpdateUserDataCode

Upgrades user data version.

function installOrUpdateUserDataCode(TvmCell code, address send_gas_to) external onlyAdmin

Parameters:

Events emitted:

  • UserDataCodeUpgraded

installOrUpdateElectionCode

Upgrades election version.

function installOrUpdateElectionCode(TvmCell code, address send_gas_to) external onlyAdmin

Parameters:

Events emitted:

  • ElectionCodeUpgraded

installOrUpdateRelayRoundCode

Upgrades relayer round version.

function installOrUpdateRelayRoundCode(TvmCell code, address send_gas_to) external onlyAdmin

Parameters:

Events emitted:

  • RelayRoundCodeUpgraded

upgradeUserData*

Upgrades user data.

function upgradeUserData(address send_gas_to) external view onlyActive

Parameters:

forceUpgradeUserData

Upgrades user data.

function forceUpgradeUserData(
        address user,
        address send_gas_to
    ) external view onlyAdmin

Parameters:

_upgradeUserData

Upgrades user data code and version by request.

function _upgradeUserData(address user, uint128 gas_value, address send_gas_to) internal view

Parameters:

Events emitted:

  • RequestedUserDataUpgrade

upgradeElection

Upgrades election code and version by request.

function upgradeElection(
        uint32 round_num,
        address send_gas_to
    ) external view onlyAdmin

Parameters:

Events emitted:

  • RequestedElectionUpgrade

upgradeRelayRound

Upgrades relayer round code and version by request.

function upgradeRelayRound(
        uint32 round_num,
        address send_gas_to
    ) external view onlyAdmin

Parameters:

Events emitted:

  • RequestedRelayRoundUpgrade

_buildElectionParams

Returns election params in cell format based on the round number.

function _buildElectionParams(uint32 round_num) internal inline view returns (TvmCell)

Parameters:

Return value:

_buildRelayRoundParams

Returns relayer round params in cell format based on the round number.

function _buildRelayRoundParams(uint32 round_num) internal inline view returns (TvmCell)

Parameters:

Last updated