Stakeable - bcnmy/nexus GitHub Wiki
Inherits: Ownable, IStakeable
Provides functionality to stake, unlock, and withdraw Ether on an EntryPoint.
constructor(address newOwner);Stakes a certain amount of Ether on an EntryPoint.
The contract should have enough Ether to cover the stake.
function addStake(address epAddress, uint32 unstakeDelaySec) external payable onlyOwner;Parameters
| Name | Type | Description |
|---|---|---|
epAddress |
address |
The address of the EntryPoint where the stake is added. |
unstakeDelaySec |
uint32 |
The delay in seconds before the stake can be unlocked. |
Important
Ensure the contract has sufficient Ether before calling addStake. Insufficient funds will cause the transaction to fail.
Unlocks the stake on an EntryPoint.
This starts the unstaking delay after which funds can be withdrawn.
function unlockStake(address epAddress) external onlyOwner;Parameters
| Name | Type | Description |
|---|---|---|
epAddress |
address |
The address of the EntryPoint from which the stake is to be unlocked. |
Note
Unstaking delay must be considered before planning to unlock the stake. The funds cannot be withdrawn immediately after unlocking.
Withdraws the stake from an EntryPoint to a specified address.
This can only be done after the unstaking delay has passed since the unlock.
function withdrawStake(address epAddress, address payable withdrawAddress) external onlyOwner;Parameters
| Name | Type | Description |
|---|---|---|
epAddress |
address |
The address of the EntryPoint where the stake is withdrawn from. |
withdrawAddress |
address payable |
The address to receive the withdrawn stake. |
Caution
Ensure the unstaking delay has passed before attempting to withdraw the stake. Attempting to withdraw before the delay has passed will result in a failed transaction.
Error thrown when an invalid EntryPoint address is provided.
error InvalidEntryPointAddress();Warning
Double-check the EntryPoint address provided to avoid triggering the InvalidEntryPointAddress error.