Skip to content

Latest commit

 

History

History
89 lines (77 loc) · 6.06 KB

PLUGIN_SPECIFICATION.md

File metadata and controls

89 lines (77 loc) · 6.06 KB

Technical Specification

About

This documentation describes the smart contracts and functions supported by the Chorus plugin.

Smart Contracts

Smart contracts covered by the plugin shall be described here:

Network Smart Contract Address
Ethereum Stakewise 0xe6d8d8aC54461b1C5eD15740EEe322043F696C08
Ethereum Eigenlayer 0x39053D51B77DC0d36036Fc1fCc8Cb819df8Ef37A
Ethereum Symbiotic (wstETH) 0xc329400492c6ff2438472d4651ad17389fcb843a
Ethereum Symbiotic (cbETH) 0xb26ff591f44b04e78de18f43b46f8b70c6676984
Ethereum Symbiotic (wBETH) 0x422f5accc812c396600010f224b320a743695f85
Ethereum Symbiotic (rETH) 0x03bf48b8a1b37fbead1ecabcf15b98b924ffa5ac
Ethereum Symbiotic (mETH) 0x475d3eb031d250070b63fa145f0fcfc5d97c304a
Ethereum Symbiotic (swETH) 0x38b86004842d3fa4596f0b7a0b53de90745ab654
Ethereum Symbiotic (sfrxETH) 0x5198cb44d7b2e993ebdda9cad3b9a0eaa32769d2
Ethereum Symbiotic (ETHx) 0xbdea8e677f9f7c294a4556005c640ee505be6925

Functions

For the smart contracts implemented, the functions covered by the plugin shall be described here:

Contract Function Selector Displayed Parameters
Stakewise burnOsToken 0x066055e0
uint128 osTokenShares
Stakewise claimExitedAssets 0x8697d2c2
uint256 positionTicket
uint256 timestamp
uint256 exitQueueIndex
Stakewise deposit 0xf9609f08
address receiver
address referrer
Stakewise enterExitQueue 0x8ceab9aa
uint256 shares
address receiver
Stakewise mintOsToken 0x201b9eb5
address receiver
uint256 osTokenShares
address referrer
Stakewise redeem 0x7bde82f2
uint256 shares
address receiver
Stakewise redeemOsToken 0x43e82a79
uint256 osTokenShares
address owner
address receiver
Eigenlayer delegateTo 0xeea9064b
address operator
SignatureWithExpiry approverSignatureAndExpiry
bytes32 approverSalt
Eigenlayer increaseDelegatedShares 0x28a573ae
address staker
address strategy
uint256 shares
Eigenlayer decreaseDelegatedShares 0x132d4967
address staker
address strategy
uint256 shares
Eigenlayer completeQueuedWithdrawal 0x60d7faed
Withdrawal withdrawal
IERC20[] tokens
uint256 middlewareTimesIndex
bool receiveAsTokens
Eigenlayer queueWithdrawals 0x0dd8dd02
QueuedWithdrawalParams[] queuedWithdrawalParams
Eigenlayer undelegate 0xda8be864
address staker
Symbiotic deposit 0x47e7ef24
address recipient
uint256 amount
Symbiotic deposit 0xc5758489
address recipient
uint256 amount
uint256 deadline
bytes32 v
bytes32 r
bytes32 s
Symbiotic issueDebt 0x7715be0b
address recipient
uint256 amount
Symbiotic withdraw 0xf3fef3a3
address recipient
uint256 amount

Structs

struct SignatureWithExpiry {
        // the signature itself, formatted as a single bytes object
        bytes signature;
        // the expiration timestamp (UTC) of the signature
        uint256 expiry;
    }
struct Withdrawal {
        // The address that originated the Withdrawal
        address staker;
        // The address that the staker was delegated to at the time that the Withdrawal was created
        address delegatedTo;
        // The address that can complete the Withdrawal + will receive funds when completing the withdrawal
        address withdrawer;
        // Nonce used to guarantee that otherwise identical withdrawals have unique hashes
        uint256 nonce;
        // Block number when the Withdrawal was created
        uint32 startBlock;
        // Array of strategies that the Withdrawal contains
        IStrategy[] strategies;
        // Array containing the amount of shares in each Strategy in the `strategies` array
        uint256[] shares;
    }
struct QueuedWithdrawalParams {
        // Array of strategies that the QueuedWithdrawal contains
        IStrategy[] strategies;
        // Array containing the amount of shares in each Strategy in the `strategies` array
        uint256[] shares;
        // The address of the withdrawer
        address withdrawer;
    }