Nexera-FiInterfaces

IAdapter

Git Source

Basic interface for Nexera-Fi Adapters.

Enums

Operation

Defines the various generic operations that Adapters can conduct:

  • DEPOSIT: For adding liquidity to DeFi Protocols
  • WITHDRAW: For removing liquidity from DeFi Protocols
  • SWAP: For performing token swaps against Pools
  • COLLECT: For collecting generated fees and rewards
  • OPERATE: For protocol-specific interactions
enum Operation {
    DEPOSIT,
    WITHDRAW,
    SWAP,
    COLLECT,
    OPERATE
}

Structs

TokenAmount

Defines data for an individual token composition.

struct TokenAmount {
    address token;
    uint256 amount;     
}

Members

NameTypeDescription
tokenaddressThe address of the target token: - address(0) signifies blockchain native currency.- non-zero address signifies ERC-20 compatible token.
amountuint256The amount of the target token

Functions

executeAction

Executes an operation-related action on a 3rd party service (DEX, Liquidity Pool, etc).

function executeAction(
    IAdapter.Operation op,
    IAdapter.TokenAmount[] calldata out,
    IAdapter.TokenAmount[] calldata expectedIn,
    bytes calldata extraData
) external returns(IAdapter.TokenAmount[] memory actualIn);

Parameters

NameTypeDescription
opIAdapter.OperationEnum key representing the operation
outIAdapter.TokenAmount[]Array of TokenAmount structs defining the token compositions to send
expectedInIAdapter.TokenAmount[]Array of TokenAmount structs defining the expected token compositions to receive
extraDatabytesExtra ABI encoded data specific to the Adapter, required for the operation action

Returns

NameTypeDescription
actualInIAdapter.TokenAmount[]Array of TokenAmount structs defining the token compositions actually received

initialize

Virtual intialization function for Adapters.

Developers should override this function to appropriately initialize their Adapter implementation.

function initialize(bytes calldata initData) external virtual;

Parameters

NameTypeDescription
initDatabytesABI encoded initialization data

On this page