presaleStaking
Function Type: external
Function Signature: presaleStaking(address,bool,uint256,bytes,uint256,uint256,bool,bytes)
Function Selector: 0x6257deec
The presaleStaking
function enables presale participants to stake or unstake their MATE tokens under specific restrictions. This function ensures exclusive access for qualifying presale users while enforcing operational limits.
Restrictions
- Limited to one operation per transaction
- Maximum allocation of 2 staking tokens per user
- Requires active
allowPresaleStaking
flag - Not available when
allowPublicStaking
flag is active (presale users must usepublicStaking
instead)
Parameters
Parameter | Type | Description |
---|---|---|
user | address | Presale participant's wallet address |
isStaking | bool | true = Stake, false = Unstake |
nonce | uint256 | Staking contract nonce for replay protection |
signature | bytes | User authorization signature |
priorityFee_EVVM | uint256 | EVVM priority fee |
nonce_EVVM | uint256 | EVVM payment operation nonce |
priorityFlag_EVVM | bool | EVVM execution mode (true = async, false = sync) |
signature_EVVM | bytes | EVVM payment authorization |
note
- If you want to know more about the signature structure, refer to the Standard Staking/Unstaking Signature Structure.
- The EVVM payment signature (
signature_EVVM
) follows the Single Payment Signature Structure.
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
- Signature Verification: Validates the authenticity of the user signature
- Nonce Validation: Confirms the contract nonce is valid and unused
- Presale Eligibility Check: Verifies presale participation status and token limit compliance
- Presale Staking Status: Verifies
allowPresaleStaking.flag
is enabled - Process Execution: Calls the internal
stakingUserProcess
function to handle:- Historical record updates
- Unstaking cooldown management
- Re-staking restrictions
- EVVM payment processing
- Reward distribution
- 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.
Unstaking Process
- Signature Verification: Validates the authenticity of the user signature
- Nonce Validation: Confirms the contract nonce is valid and unused
- Presale Eligibility Check: Verifies presale participation status and token limit compliance
- Presale Staking Status: Verifies
allowPresaleStaking.flag
is enabled - Process Execution: Calls the internal
stakingUserProcess
function to handle:- Historical record updates
- Unstaking cooldown management
- Re-staking restrictions
- EVVM payment processing
- Reward distribution
- 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.