Skip to main content

publicStaking

Function Type: external
Function Signature: publicStaking(address,bool,uint256,uint256,bytes,uint256,uint256,bool,bytes)
Function Selector: 0x21cc1749

The publicStaking function enables universal access to MATE token staking when the allowPublicStaking.flag is enabled, regardless of presale participation status or account type.

Parameters

ParameterTypeDescription
useraddressUser address
isStakingbooltrue = Stake, false = Unstake
amountOfStakinguint256Amount of staking tokens to stake/unstake
nonceuint256Staking contract nonce for replay protection
signaturebytesStaking contract signature for replay protection
priorityFee_EVVMuint256EVVM priority fee
nonce_EVVMuint256EVVM payment operation nonce
priorityFlag_EVVMboolEVVM execution mode (true = async, false = sync)
signature_EVVMbytesEVVM payment authorization
note

Workflow

The function supports two execution paths:

  • Fisher-Mediated: A designated fisher captures the transaction from the fishing spot and submits it to the contract
  • Direct User Submission: The user directly submits the transaction to the contract

Staking Process

  1. Feature Status Verification: Confirms allowPublicStaking.flag is enabled
  2. Signature Verification: Validates the authenticity of the user signature
  3. Nonce Validation: Confirms the contract nonce is valid and unused
  4. Process Execution: Calls the internal stakingBaseProcess function to handle:
    • Historical record updates
    • Unstaking cooldown management
    • Re-staking restrictions
    • EVVM payment processing
    • Reward distribution
  5. Nonce Update: Increments the contract nonce for the user to prevent replay attacks
info

For detailed information about the stakingBaseProcess function, refer to the stakingBaseProcess.

Public Staking

Public Staking

Unstaking Process

  1. Signature Verification: Validates the authenticity of the user signature
  2. Nonce Validation: Confirms the contract nonce is valid and unused
  3. Process Execution: Calls the internal stakingUserProcess function to handle:
    • Historical record updates
    • Unstaking cooldown management
    • Re-staking restrictions
    • EVVM payment processing
    • Reward distribution
  4. Nonce Update: Increments the contract nonce for the user to prevent replay attacks
info

For detailed information about the stakingUserProcess function, refer to the stakingUserProcess.

Public Staking Public Staking