Base
StakingPoolBase
receiveTokenWalletAddress
receiveTokenWalletAddress
Store vault's token wallet address. Only root can call with correct params.
Parameters:
Name | Type | Description |
---|---|---|
wallet | address | Token wallet address |
startNewRewardRound
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.
Parameters:
Name | Type | Description |
---|---|---|
sendGasTo | address | Address where to send spent gas |
spent gas |
Events emitted:
NewRewardRound
onAcceptTokensTransfer
onAcceptTokensTransfer
Deposit occurs here.
Parameters:
Name | Type | Description |
---|---|---|
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
revertDeposit
Reverts the action of depositing.
Parameters:
Name | Type | Description |
---|---|---|
_deposit_nonce | uint64 | Id of the deposit which should be reverted |
Events emitted:
DepositReverted
finishDeposit
finishDeposit
Finishes the depositing with incrementing token balance for deposit amount.
Parameters:
Name | Type | Description |
---|---|---|
_deposit_nonce | uint64 | Id of the deposit which should be finalized |
Events emitted:
Deposit
withdraw
withdraw
Withdraw action
Parameters:
Name | Type | Description |
---|---|---|
amount | uint128 | Amount to withdraw |
sendGasTo | address | Address where to send remaining gas |
finishWithdraw
finishWithdraw
Finishes the withdrawal with decrementing token balance for deposit amount.
Parameters:
Name | Type | Description |
---|---|---|
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
claimReward
Claiming reward for user.
Parameters:
Name | Type | Description |
---|---|---|
sendGasTo | address | Address where to send remaining gas |
finishClaimReward
finishClaimReward
Finishes the reward claiming with incrementing user token reward and decrementing reward token balance
Parameters:
Name | Type | Description |
---|---|---|
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
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.
Parameters:
Name | Type | Description |
---|---|---|
user_token_balance | uint256 | Balance of user’s tokens |
user_reward_data | IUserData.RewardRoundData[] | List of all synced user rewards |
Returns value:
Type | Description |
---|---|
address | Address where to send remaining gas |
updatePoolInfo Updates pool information about last reward time and total reward
function updatePoolInfo() internal
deployUserData
deployUserData
Deploys Platform contract with the user data
Parameters:
Name | Type | Description |
---|---|---|
user_data_owner | address | Address of the deployer of user data |
Returns value:
Type | Description |
---|---|
address | Address of the deployed UserData contract |
castVoteWithReason
castVoteWithReason
Casts user's vote.
Parameters:
Name | Type | Description |
---|---|---|
proposal_id | uint32 | Id of the proposal |
support | bool | True if voted for, false if voted against |
castVoteWithReason
castVoteWithReason
Casts user's vote with specified reason
Parameters:
Name | Type | Description |
---|---|---|
proposal_id | uint32 | Id of the proposal |
support | bool | True if voted for, false if voted against |
reason | string | Reason for voting |
withdrawTonsUserEmergency
withdrawTonsUserEmergency
User withdraws tons in case of emergency
withdrawTonsEmergency
withdrawTonsEmergency
Checks all the necessary requirements regarding the balance and amount, and does the transfer to the receiver address
Parameters:
Name | Type | Description |
---|---|---|
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
withdrawTokensEmergency
Tokens withdraw in case of emergency.
Parameters:
Name | Type | Description |
---|---|---|
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
linkRelayAccounts
Gets user data and processes linking of relayer eth and ton accounts.
Parameters:
Name | Type | Description |
---|---|---|
ton_pubkey | uint256 | Public key of the ton account |
eth_address | uint160 | Address of the ethereum account |
onEventConfirmed
onEventConfirmed
Confirms transaction from everscale to ethereum.
Parameters:
Name | Type | Description |
---|---|---|
eventData | IEthereumEvent.EthereumEventInitData | EthereumEvent data |
gasBackAddress | address | Address where to send remaining gas |
confirmEthAccount
confirmEthAccount
Processes confirmation of ethereum account.
Parameters:
Name | Type | Description |
---|---|---|
staker_addr | address | Address of the staker |
eth_address | uint160 | Ethereum account address |
sendGasTo | address | Address where to send remaining gas |
slashRelay
slashRelay
Slashes specified relayer.
Parameters:
Name | Type | Description |
---|---|---|
relay_staker_addr | address | Address of the relayer which will be slashed |
sendGasTo | address | Address where to send remaining gas |
_syncUserRewardData
_syncUserRewardData
Calculates user's reward based on params.
Parameters:
Name | Type | Description |
---|---|---|
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:
Type | Description |
---|---|
uint128[] | Synced user rewards list |
confirmSlash
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:
Name | Type | Description |
---|---|---|
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
createOriginRelayRound
Creates and deploys new relayer round and sets relayers for that round.
Parameters:
Name | Type | Description |
---|---|---|
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
processBecomeRelayNextRound
Processes new relayers for the next relayer round.
Parameters:
Name | Type | Description |
---|---|---|
user | address | Address of the user that will be processed for a next round’s relayer |
processGetRewardForRelayRound
processGetRewardForRelayRound
Processes rewards for current relayer round.
Parameters:
Name | Type | Description |
---|---|---|
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
startElectionOnNewRound
Deploys election for a new round.
endElection
endElection
Based on election's address finishes the current election.
onElectionStarted
onElectionStarted
Sets start time of the election.
Parameters:
Name | Type | Description |
---|---|---|
round_num | uint32 | Round number in which election has started |
Events emitted:
ElectionStarted
onElectionEnded
onElectionEnded
Sets round details and deploys new relayer round.
Parameters:
Name | Type | Description |
---|---|---|
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
_relaysPacksCount
Returns number of relayer packs.
Return value:
Type | Description |
---|---|
uint8 | Number of relayers packs |
onRelayRoundDeployed
onRelayRoundDeployed
Sends relayers to relayer round.
Parameters:
Name | Type | Description |
---|---|---|
round_num | uint32 | Round number |
duplicate | bool | True if yes, false if not |
onRelayRoundInitialized
onRelayRoundInitialized
Sets round details, deploys new event and destroys previous round.
Parameters:
Name | Type | Description |
---|---|---|
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
deployElection
Creates new platform for the new election.
Parameters:
Name | Type | Description |
---|---|---|
round_num | uint32 | Round number |
Return value:
Type | Description |
---|---|
address | Deployed election address |
deployRelayRound
deployRelayRound
Creates platform for the new relayer round.
Parameters:
Name | Type | Description |
---|---|---|
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:
Type | Description |
---|---|
address | Address of deployed relayer round |
StakingUpgradable
installPlatformOnce
installPlatformOnce
Installs updated platform.
Parameters:
Name | Type | Description |
---|---|---|
code | TvmCell | Platform code encoded to cell |
sendGasTo | address | Address where to send remaining gas |
installOrUpdateUserDataCode
installOrUpdateUserDataCode
Upgrades user data version.
Parameters:
Name | Type | Description |
---|---|---|
code | TvmCell | User data code in cell format |
sendGasTo | address | Address where to send remaining gas |
Events emitted:
UserDataCodeUpgraded
installOrUpdateElectionCode
installOrUpdateElectionCode
Upgrades election version.
Parameters:
Name | Type | Description |
---|---|---|
code | TvmCell | Election code in cell format |
sendGasTo | address | Address where to send remaining gas |
Events emitted:
ElectionCodeUpgraded
installOrUpdateRelayRoundCode
installOrUpdateRelayRoundCode
Upgrades relayer round version.
Parameters:
Name | Type | Description |
---|---|---|
code | TvmCell | relayer round code in cell format |
sendGasTo | address | Address where to send remaining gas |
Events emitted:
RelayRoundCodeUpgraded
upgradeUserData
*
upgradeUserData
*Upgrades user data.
Parameters:
Name | Type | Description |
---|---|---|
sendGasTo | address | Address where to send remaining gas |
forceUpgradeUserData
forceUpgradeUserData
Upgrades user data.
Parameters:
Name | Type | Description |
---|---|---|
user | address | User address |
sendGasTo | address | Address where to send remaining gas |
_upgradeUserData
_upgradeUserData
Upgrades user data code and version by request.
Parameters:
Name | Type | Description |
---|---|---|
user | address | User address |
gas_value | uint128 | Gas value spent for upgrade |
sendGasTo | address | Address where to send remaining gas |
Events emitted:
RequestedUserDataUpgrade
upgradeElection
upgradeElection
Upgrades election code and version by request.
Parameters:
Name | Type | Description |
---|---|---|
round_num | uint32 | Round number |
sendGasTo | address | Address where to send remaining gas |
Events emitted:
RequestedElectionUpgrade
upgradeRelayRound
upgradeRelayRound
Upgrades relayer round code and version by request.
Parameters:
Name | Type | Description |
---|---|---|
round_num | uint32 | Round number |
sendGasTo | address | Address where to send remaining gas |
Events emitted:
RequestedRelayRoundUpgrade
_buildElectionParams
_buildElectionParams
Returns election params in cell format based on the round number.
Parameters:
Name | Type | Description |
---|---|---|
round_num | uint32 | Round number |
Return value:
Type | Description |
---|---|
TvmCell | Election parameters data encoded to cell |
_buildRelayRoundParams
_buildRelayRoundParams
Returns relayer round params in cell format based on the round number.
Parameters:
Name | Type | Description |
---|---|---|
round_num | uint32 | Round number |
Type | Description |
---|---|
TvmCell | Relayer round params encoded to cell |
Last updated