合约参考

IEuler

Euler系统的主存储合约

moduleIdToImplementation

查找模块的当前实现合约

function moduleIdToImplementation(uint moduleId) external view returns (address);

参数:

  • moduleId:引用模块类型的固定常量(即 MODULEID__ETOKEN)

返回:

  • 内部地址指定模块的实现代码

moduleIdToProxy

查找可用于与模块交互的代理(仅对单代理模块有效)

function moduleIdToProxy(uint moduleId) external view returns (address);

参数:

  • moduleId:引用模块类型的固定常量(即 MODULEID__MARKETS)

返回:

  • 应转换为适当模块接口的地址,即 IEulerMarkets(moduleIdToProxy(2))

AssetConfig

Euler相关资产的配置

struct AssetConfig {
    address eTokenAddress;
    bool borrowIsolated;
    uint32 collateralFactor;
    uint32 borrowFactor;
    uint24 twapWindow;
}

IEulerMarkets

激活和查询市场,维护进入的市场列表

activateMarket

创建Euler池和关联的 EToken 和 DToken 地址。

function activateMarket(address underlying) external returns (address);

参数:

  • underlying:符合 ERC20 标准的代币的地址。基础/参考资产对必须有一个初始化的 uniswap3 池。

返回:

  • 创建的 EToken,或现有的 EToken(如果已激活)。

activatePToken

创建一个 pToken 并在 Euler 上激活它。 pTokens 不能借入的,受保护资产的包装器。

function activatePToken(address underlying) external returns (address);
  • underlying:符合 ERC20 标准的代币的地址。该标的(underlying)物必须在 Euler 上已经存在一个激活的市场,并且它必须具有非零抵押因子。

返回:

  • 创建的 pToken,如果已经激活,则为现有的。

underlyingToEToken

给定一个标的(underlying)资产,查找相关的 EToken

function underlyingToEToken(address underlying) external view returns (address);

参数:

  • underlying:代币地址

返回:

  • EToken 地址,如果未激活,则为地址 (0)

underlyingToDToken

给定一个标的(underlying)资产,查找相关的 DToken

function underlyingToDToken(address underlying) external view returns (address);

参数:

  • underlying:代币地址

返回:

  • DToken 地址,如果未激活,则为地址 (0)

underlyingToPToken

给定一个标的(underlying)资产,查找相关的 PToken

function underlyingToPToken(address underlying) external view returns (address);

参数:

  • underlying:代币地址

返回:

  • PToken 地址,如果不存在,则为 address(0)

underlyingToAssetConfig

查找代币的Euler相关配置,并将所有默认值占位符解析为其当前配置的值。

function underlyingToAssetConfig(address underlying) external view returns (IEuler.AssetConfig memory);

参数:

  • underlying:代币地址

返回:

  • 配置结构

underlyingToAssetConfigUnresolved

查找代币的 Euler 相关配置,并返回未解析内容(使用默认值占位符)

function underlyingToAssetConfigUnresolved(address underlying) external view returns (IEuler.AssetConfig memory config);

参数:

  • underlying:代币地址

返回:

  • config:配置结构

eTokenToUnderlying

给定一个 EToken 地址,查找相关的标的(underlying)

function eTokenToUnderlying(address eToken) external view returns (address underlying);

参数:

  • eToken:EToken 地址

返回:

  • underlying:代币地址

eTokenToDToken

给定一个 EToken 地址,查找关联的 DToken

function eTokenToDToken(address eToken) external view returns (address dTokenAddr);

参数:

  • eToken:EToken 地址

返回:

  • dTokenAddr:DToken 地址

interestRateModel

查找资产当前配置的利率模型

function interestRateModel(address underlying) external view returns (uint);

参数:

  • underlying:代币地址

返回:

  • 代表利率模型 (IRM) 的模块 ID

interestRate

检索资产的当前利率

function interestRate(address underlying) external view returns (int96);

参数:

  • underlying:代币地址

返回:

  • 以每秒收益率为单位的利率,按 10^27 比例缩放

interestAccumulator

检索资产的当前利率累加器

function interestAccumulator(address underlying) external view returns (uint);

参数:

  • underlying:代币地址

返回:

  • 一个模糊的累加器,随着利息的增加而增加

reserveFee

检索对资产有效的准备金费用

function reserveFee(address underlying) external view returns (uint32);

参数:

  • underlying:代币地址

返回:

  • 被重定向到储备金的利息金额,作为由 RESERVE_FEE_SCALE (4e9) 缩放的分数

getPricingConfig

检索资产的定价配置

function getPricingConfig(address underlying) external view returns (uint16 pricingType, uint32 pricingParameters, address pricingForwarded);

参数:

  • underlying:代币地址

返回:

  • pricingType:(1=挂钩,2=uniswap3,3=转发)

  • pricingParameters:如果为 uniswap3 定价类型,则表示使用的 uniswap 池费用,否则未使用

  • pricingForwarded:如果转发定价类型,那么这是价格转发到的地址,否则地址为(0)

getEnteredMarkets

检索账户的进入市场列表(启用抵押或借贷的资产)

function getEnteredMarkets(address account) external view returns (address[] memory);

参数:

  • amount:用户帐户

返回:

  • 标的(underlying)代币地址列表

帐户

将资产添加到输入的市场列表,如果已经输入,则不执行任何操作

function enterMarket(uint subAccountId, address newMarket) external;

参数:

  • subAccountId:0 表示主账户,1-255 表示子账户

  • newMarket:标的(underlying)代币地址

exitMarket

从输入的市场列表中删除资产,如果不存在则不执行任何操作

function exitMarket(uint subAccountId, address oldMarket) external;

参数:

  • subAccountId:0 表示主账户,1-255 表示子账户

  • oldMarket:标的(underlying)代币地址

IEulerExec

批量执行、流动性检查延期以及获取价格和账户流动性的接口

LiquidityStatus

账户的流动性状态,无论是整体还是特定资产

struct LiquidityStatus {
    uint collateralValue;
    uint liabilityValue;
    uint numBorrows;
    bool borrowIsolated;
}

AssetLiquidity

用于报告账户详细(按资产)流动性的聚合结构

struct AssetLiquidity {
    address underlying;
    LiquidityStatus status;
}

EulerBatchItem

批量请求中的单个项目

struct EulerBatchItem {
    bool allowError;
    address proxyAddr;
    bytes data;
}

EulerBatchItemResponse

Single item in a batch response 批处理响应中的单个项目

struct EulerBatchItemResponse {
    bool success;
    bytes result;
}

liquidity

计算账户的总流动性

function liquidity(address account) external view returns (LiquidityStatus memory status);

参数:

  • amount:用户地址

返回:

  • status:总流动性(所有输入资产的总和)

detailedLiquidity

计算账户的详细流动性,按资产细分

function detailedLiquidity(address account) external view returns (AssetLiquidity[] memory assets);

Parameters:

参数:

  • amount:用户地址

返回:

  • assets:用户输入的资产列表和每个资产对应的流动性

getPrice

检索Euler对资产价格的看法

function getPrice(address underlying) external view returns (uint twap, uint twapPeriod);

参数:

  • underlying:代币地址

返回:

  • twap:时间加权平均价格

  • twapPeriod:TWAP 持续时间,AssetConfig 中的 twapWindow 值,或者如果持续时间不可用,则更少

getPriceFull

检索 Euler 对资产价格的看法,以及 uniswap 上的当前边际价格

function getPriceFull(address underlying) external view returns (uint twap, uint twapPeriod, uint currPrice);

参数:

  • underlying:代币地址

返回:

  • twap:时间加权平均价格

  • twapPeriod:TWAP 持续时间,AssetConfig 中的 twapWindow 值,或者如果持续时间不可用,则更少

  • currPrice:uniswap3 上的当前边际价格(仅参考:未在Euler协议中的任何地方使用)

deferLiquidityCheck

推迟对账户的流动性检查,以执行再平衡、闪电贷等。msg.sender 必须实现 IDeferredLiquidity检查。

function deferLiquidityCheck(address account, bytes memory data) external;

参数:

  • account:延迟流动性的账户。通常地址(this),尽管并非总是如此

  • data:传递给 onDeferredLiquidityCheck() 回调,因此合约不需要在存储中存储瞬态数据

批量调度

在单个交易中执行多个操作

function batchDispatch(EulerBatchItem[] calldata items, address[] calldata deferLiquidityChecks) external returns (EulerBatchItemResponse[] memory);

参数:

  • items:要执行的操作列表

  • deferLiquidityChecks:推迟流动性检查的用户帐户列表

返回:

  • 操作结果列表

EulerBatchExtra

batchDispatch 的结果,但带有额外信息

struct EulerBatchExtra {
    EulerBatchItemResponse[] responses;
    uint gasUsed;
    AssetLiquidity[][] liquidities;
}

batchDispatchExtra

调用 batchDispatch,但返回额外信息。仅打算与 callStatic 一起使用。

function batchDispatchExtra(EulerBatchItem[] calldata items, address[] calldata deferLiquidityChecks, address[] calldata queryLiquidity) external returns (EulerBatchExtra memory output);

参数:

  • items:要执行的操作列表

  • deferLiquidityChecks:推迟流动性检查的用户帐户列表

  • queryLiquidity:返回详细流动性信息的用户帐户列表

返回:

  • output:带有额外信息的结构

trackAverageLiquidity

为您的账户启用平均流动性跟踪。操作会花费更多的gas,但在执行清算时你可能会获得额外的好处

function trackAverageLiquidity(uint subAccountId, address delegate, bool onlyDelegate) external;

参数:

  • subAccountId:subAccountId 0 表示主账户,1-255 表示子账户。

  • delegate:您允许使用您的账户平均流动性的好处的另一个账户的地址(如果您不关心,请使用空地址)。另一个地址也必须对应委托给您的帐户。

  • onlyDelegate:设置此标志以跳过跟踪平均流动性并仅设置委托。

unTrackAverageLiquidity

为您的账户禁用平均流动性跟踪并移除委托

function unTrackAverageLiquidity(uint subAccountId) external;

参数:

  • subAccountId:subAccountId 0 表示主账户,1-255 表示子账户

getAverageLiquidity

检索账户的平均流动性

function getAverageLiquidity(address account) external returns (uint);

参数:

  • account:用户帐户(在 subAccountId 中异或,如果适用)

返回:

  • 根据参考资产和风险调整后的平均流动性

getAverageLiquidityWithDelegate

检索账户或委托账户的平均流动性(如果已设置)

function getAverageLiquidityWithDelegate(address account) external returns (uint);

参数:

  • account:用户帐户(在 subAccountId 中,如果适用)

返回:

  • 根据参考资产和风险调整后的平均流动性

getAverageLiquidityDelegateAccount

检索代表账户平均流动性的账户(如果已设置)

function getAverageLiquidityDelegateAccount(address account) external view returns (address);

参数:

  • account:用户帐户(在 subAccountId 中异或,如果适用)

返回:

  • 平均流动性委托账户

pTokenWrap

将标的(underlying)代币从发件人的钱包转移到 pToken 包装器中。应为Euler地址设置余量。

function pTokenWrap(address underlying, uint amount) external;

参数:

  • underlying:代币地址

  • amount:以标的单位包装的金额

pTokenUnWrap

将标的(underlying)代币从 pToken 包装器转移到发送者的钱包。

function pTokenUnWrap(address underlying, uint amount) external;

参数:

  • underlying:代币地址

  • amount:以标的单位展开的金额

usePermit

将 EIP2612 签名许可,应用于从发送方到Euler合约的目标代币

function usePermit(address token, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;

参数:

  • token:代币地址

  • value:余量值

  • deadline:许可到期时间戳

  • v: secp256k1 签名 v

  • r: secp256k1 签名 r

  • s: secp256k1 签名 s

usePermitAllowed

从发送方到Euler合约的目标代币上,应用 DAI 类似(允许的)签名许可

function usePermitAllowed(address token, uint256 nonce, uint256 expiry, bool allowed, uint8 v, bytes32 r, bytes32 s) external;

参数:

  • token:代币地址

  • nonce:发件人 nonce

  • expiry:允许到期时间戳

  • allowed:如果为真,则设置无限制限额,否则设置零限额

  • v: secp256k1 签名 v

  • r: secp256k1 签名 r

  • s: secp256k1 签名 s

usePermitPacked

将津贴应用于会将签名打包在单个字节参数中的代币

function usePermitPacked(address token, uint256 value, uint256 deadline, bytes calldata signature) external;

参数:

  • token:代币地址

  • value:余量值

  • deadline:许可到期时间戳

  • signature:secp256k1 签名编码为 rsv

doStaticCall

使用任意有效负载对任意地址执行静态调用。

function doStaticCall(address contractAddress, bytes memory payload) external view returns (bytes memory);

参数:

  • contractAddress:要调用的合约地址

  • payload:编码的调用负载

返回:

  • result:编码返回数据

IEulerEToken

资产的代币化表示

name

池名称,即“Euerl池:DAI”

function name() external view returns (string memory);

symbol

池符号,即“eDAI”

function symbol() external view returns (string memory);

decimals

小数,总是标准化为 18。

function decimals() external pure returns (uint8);

underlyingAsset

标的资产地址

function underlyingAsset() external view returns (address);

totalSupply

所有余额的总和,用内部记账单位表示(不会增加)

function totalSupply() external view returns (uint);

totalSupplyUnderlying

所有余额的总和,以标的单位计(随着利息归集而增加)

function totalSupplyUnderlying() external view returns (uint);

balanceOf

特定账户的余额,用内部记账单位表示(不会增加)

function balanceOf(address account) external view returns (uint);

balanceOfUnderlying

特定账户的余额,以标的单位计(随着利息归集而增加)

function balanceOfUnderlying(address account) external view returns (uint);

reserveBalance

准备金余额,用内部记账单位表示(不会增加)

function reserveBalance() external view returns (uint);

reserveBalanceUnderlying

准备金余额,以标的单位计(随着利息归集而增加)

function reserveBalanceUnderlying() external view returns (uint);

convertBalanceToUnderlying

考虑当前汇率的情况下,将 eToken 余额转换为标的金额

function convertBalanceToUnderlying(uint balance) external view returns (uint);

参数:

  • balance:电子代币余额,以内部记账单位(18 位小数)

返回:

  • 标的单位金额(与标的代币相同的小数)

convertUnderlyingToBalance

考虑当前汇率的情况下,将标的金额转换为 eToken 余额

function convertUnderlyingToBalance(uint underlyingAmount) external view returns (uint);

参数:

  • underlyingAmount:标的单位金额(与标的代币相同的小数)

返回:

  • eToken:余额,以内部记账单位(18 位小数)

touch

更新利息累加器和总借款、信用准备金、重新设定利率目标并记录资产状态

function touch() external;

deposit

将标的代币从发送方转移到Euler池,增加账户的eTokens

function deposit(uint subAccountId, uint amount) external;

参数:

  • subAccountId:0 表示主账户,1-255 表示子账户

  • amount:以标的单位为单位(使用 max uint256 获取全部标的代币余额)

withdraw

将标的代币从 Euler 池转移到发送者,并减少账户的 eToken

function withdraw(uint subAccountId, uint amount) external;

参数:

  • subAccountId:0 表示主账户,1-255 表示子账户

  • amount:以标的单位(使用最大 uint256 获得全部池余额)

mint

铸造 eToken 和相应数量的 dToken(“自借”)

function mint(uint subAccountId, uint amount) external;

参数:

  • subAccountId:0 表示主账户,1-255 表示子账户

  • amount:以标的单位计

burn

使用 eToken 偿还 dToken 债务(“自我偿还”)

function burn(uint subAccountId, uint amount) external;

参数:

  • subAccountId:0 表示主账户,1-255 表示子账户

  • amount:以标的单位(使用最大 uint256 全额偿还债务或不超过可用标的余额)

approve

允许消费者在子账户 0 中访问您一定数量的 eToken

function approve(address spender, uint amount) external returns (bool);

参数:

  • spender:受信任的地址

  • amount:使用最大 uint256 获得“无限”津贴

approveSubAccount

允许消费者在特定子账户中访问您的一定数量的 eToken

function approveSubAccount(uint subAccountId, address spender, uint amount) external returns (bool);

参数:

  • subAccountId:0 表示主账户,1-255 表示子账户

  • spender:受信任的地址

  • amount:使用最大 uint256 获得“无限”津贴

allowance

检索当前津贴

function allowance(address holder, address spender) external view returns (uint);

参数:

  • holder:与所需的子账户 ID 异或(如果适用)

  • spender:受信任的地址

transfer

将 eToken 转移到另一个地址(从子账户 0)

function transfer(address to, uint amount) external returns (bool);

参数:

  • to:与所需的子账户 ID 异或(如果适用)

  • amount:以内部记账单位(从 balanceOf 返回)。

transferFromMax

将一个地址的全部 eToken 余额转移到另一个地址

function transferFromMax(address from, address to) external returns (bool);
  • from:此地址必须已批准收件人地址,或者是 msg.sender 的子帐户

  • to:与所需的子账户 ID 异或(如果适用)

transferFrom

将 eToken 从一个地址转移到另一个地址

function transferFrom(address from, address to, uint amount) external returns (bool);

参数:

  • from:此地址必须已批准收件人地址,或者是 msg.sender 的子帐户

  • to:与所需的子账户 ID 异或(如果适用)

  • amount:以内部记账单位(从 balanceOf 返回)。

IEulerDToken

债务的代币化表示

name

债务代币名称,即“Euler Debt: DAI”

function name() external view returns (string memory);

symbol

债务代币符号,即“dDAI”

function symbol() external view returns (string memory);

decimals

标的资产的小数

function decimals() external view returns (uint8);

underlyingAsset

标的资产地址

function underlyingAsset() external view returns (address);

totalSupply

所有未偿债务的总和,以标的单位计(随着利息的归集而增加)

function totalSupply() external view returns (uint);

totalSupplyExact

所有未偿债务的总和,以标的单位标准化为小数点后 27 位(随着利息的归集加而增加)

function totalSupplyExact() external view returns (uint);

balanceOf

特定账户所欠债务,以标的单位计

function balanceOf(address account) external view returns (uint);

balanceOfExact

特定账户所欠债务,以标的单位标准化为小数点后 27 位

function balanceOfExact(address account) external view returns (uint);

borrow

将底层代币从 Euler 池中转移给发送者,并增加发送者的 dToken

function borrow(uint subAccountId, uint amount) external;

参数:

  • subAccountId:0 表示主账户,1-255 表示子账户

  • amount:以标的单位(所有可用代币使用最大 uint256)

repay

将底层代币从发送者转移到Euler池,并减少发送者的 dToken

function repay(uint subAccountId, uint amount) external;

参数:

  • subAccountId:0 表示主账户,1-255 表示子账户

  • amount:以标的单位计(使用最大 uint256 计算所欠的全部债务)

approveDebt

允许消费者向特定子账户发送一定数量的 dToken

function approveDebt(uint subAccountId, address spender, uint amount) external returns (bool);

复制!

参数:

  • subAccountId:0 表示主账户,1-255 表示子账户

  • spender:受信任的地址

  • amount:以标的单位(使用最大 uint256 表示“无限”限额)

debtAllowance

检索当前的债务津贴

function debtAllowance(address holder, address spender) external view returns (uint);

参数:

  • holder:与所需的子账户 ID 异或(如果适用)

  • spender:受信任的地址

transfer

将 dToken 转移到另一个地址(从子账户 0)

function transfer(address to, uint amount) external returns (bool);

参数:

  • to:与所需的子账户 ID 异或(如果适用)

  • amount:以标的单位为单位。使用 max uint256 进行完全平衡。

transferFrom

将 dToken 从一个地址转移到另一个地址

function transferFrom(address from, address to, uint amount) external returns (bool);

参数:

  • from:与所需的子账户 ID 异或(如果适用)

  • to:这个地址必须已经批准了发件人地址,或者是msg.sender的子账号

  • amount:以标的单位为单位。使用 max uint256 进行完全平衡。

IEulerLiquidation

清算抵押品违约的用户来保护出借方。

LiquidationOpportunity

有关潜在清算机会的信息

struct LiquidationOpportunity {
    uint repay;
    uint yield;
    uint healthScore;

    // Only populated if repay > 0:
    uint baseDiscount;
    uint discount;
    uint conversionRate;
}

checkLiquidation

检查清算是否有利可图,而无需实际执行任何操作

function checkLiquidation(address liquidator, address violator, address underlying, address collateral) external returns (LiquidationOpportunity memory liqOpp);

参数:

  • liquidator:将启动清算的地址

  • violator:可能存在违约的地址

  • underlying:要偿还的代币

  • collateral:将被没收的代币

返回:

  • liqOpp:关于清算机会的详细信息

liquidate

尝试进行清算

function liquidate(address violator, address underlying, address collateral, uint repay, uint minYield) external;

参数:

  • violator:可能附带违规的地址

  • underlying:要偿还的代币

  • collateral:将被没收的代币

  • repay:从违规者转移到发送者的底层 DToken 数量,以底层为单位

  • minYield:以抵押品为单位,从违约者(violator)转移到发送者的最低可接受的抵押品 EToken 数量

IEulerSwap

在 Uniswap V3 和 1Inch V4 DEX 上交易资产

SwapUniExactInputSingleParams

Uniswap V3 单个池上精确输入交易的参数

struct SwapUniExactInputSingleParams {
    uint subAccountIdIn;
    uint subAccountIdOut;
    address underlyingIn;
    address underlyingOut;
    uint amountIn;
    uint amountOutMinimum;
    uint deadline;
    uint24 fee;
    uint160 sqrtPriceLimitX96;
}

参数:

  • subAccountIdIn:交易的子账户ID

  • subAccountIdOut:交易的子账户ID

  • underlyingIn:出售的代币地址

  • underlyingOut:购买代币地址

  • amountIn:要出售的代币数量

  • amountOutMinimum:购买代币的最低数量

  • deadline:交易必须在此时间戳之前完成

  • fee:uniswap 池使用费

  • sqrtPriceLimitX96:最高可接受价格

SwapUniExactInputParams

通过多个池路由,Uniswap V3 精确输入交易的参数

struct SwapUniExactInputParams {
    uint subAccountIdIn;
    uint subAccountIdOut;
    uint amountIn;
    uint amountOutMinimum;
    uint deadline;
    bytes path; // list of pools to hop - constructed with uni SDK 
}

参数:

  • subAccountIdIn:交易的子账户ID

  • subAccountIdOut:交易的子账户ID

  • underlyingIn:出售的代币地址

  • underlyingOut:购买代币地址

  • amountIn:要出售的代币数量

  • amountOutMinimum:购买代币的最低数量

  • deadline:交易必须在此时间戳之前完成

  • path:用于交易的池列表

SwapUniExactOutputSingleParams

Uniswap V3 的参数在单个池上精确输出交易

struct SwapUniExactOutputSingleParams {
    uint subAccountIdIn;
    uint subAccountIdOut;
    address underlyingIn;
    address underlyingOut;
    uint amountOut;
    uint amountInMaximum;
    uint deadline;
    uint24 fee;
    uint160 sqrtPriceLimitX96;
}

参数:

  • subAccountIdIn:交易的子账户ID

  • subAccountIdOut:交易的子账户ID

  • underlyingIn:出售的代币地址

  • underlyingOut:购买代币地址

  • amountOut:要购买的代币数量

  • amountInMaximum:已售代币的最大数量

  • deadline:交易必须在此时间戳之前完成

  • fee:uniswap 池使用费

  • sqrtPriceLimitX96:最高可接受价格

SwapUniExactOutputParams

经过多个池路由,Uniswap V3 精确输出交易的参数

struct SwapUniExactOutputParams {
    uint subAccountIdIn;
    uint subAccountIdOut;
    uint amountOut;
    uint amountInMaximum;
    uint deadline;
    bytes path;
}

参数:

  • subAccountIdIn:交易的子账户ID

  • subAccountIdOut:交易的子账户ID

  • underlyingIn:出售的代币地址

  • underlyingOut:购买代币地址

  • amountOut:要购买的代币数量

  • amountInMaximum:已售代币的最大数量

  • deadline:交易必须在此时间戳之前完成

  • path:用于交易的池列表

Swap1InchParams

1inch交易的参数

struct Swap1InchParams {
    uint subAccountIdIn;
    uint subAccountIdOut;
    address underlyingIn;
    address underlyingOut;
    uint amount;
    uint amountOutMinimum;
    bytes payload;
}

参数:

  • subAccountIdIn:交易的子账户ID

  • subAccountIdOut:交易的子账户ID

  • underlyingIn:出售的代币地址

  • underlyingOut:购买代币地址

  • amount:要出售的代币数量

  • amountOutMinimum:购买代币的最低数量

  • payload:调用数据传递给 1Inch 合约

swapUniExactInputSingle

在单个池上执行 Uniswap V3 精确输入交易

function swapUniExactInputSingle(SwapUniExactInputSingleParams memory params) external;

参数:

  • params:定义交易参数的结构

swapUniExactInput

执行通过多个池路由的 Uniswap V3 精确输入交易

function swapUniExactInput(SwapUniExactInputParams memory params) external;

参数:

  • params:定义交易参数的结构

swapUniExactOutputSingle

在单个池上执行 Uniswap V3 精确输出交易

function swapUniExactOutputSingle(SwapUniExactOutputSingleParams memory params) external;

参数:

  • params:定义交易参数的结构

swapUniExactOutput

执行通过多个池路由的, Uniswap V3 精确输出交易

function swapUniExactOutput(SwapUniExactOutputParams memory params) external;

参数:

  • params:定义交易参数的结构

swapAndRepayUniSingle

在 Uniswap V3 单一池上交易并用购买的资产偿还债务

function swapAndRepayUniSingle(SwapUniExactOutputSingleParams memory params, uint targetDebt) external;

参数:

  • params:定义交易参数的结构(amountOut 被忽略)

  • targetDebt:交易和偿还后预计剩余的债务金额(0 表示偿还全部债务)

swapAndRepayUni

通过多个池在 Uniswap V3 上进行交易并用购买的资产偿还债务

function swapAndRepayUni(SwapUniExactOutputParams memory params, uint targetDebt) external;

参数:

  • params:定义交易参数的结构(amountOut 被忽略)

  • targetDebt:交易和偿还后预计剩余的债务金额(0 表示偿还全部债务)

swap1Inch

执行1InchV4交易

function swap1Inch(Swap1InchParams memory params) external;

参数:

  • params:定义交易参数的结构

IEulerPToken

受保护的代币是代币的简单封装/包装器,允许您将代币用作抵押品而无需批准(立即)借款

name

PToken 名称,即“Euler Protected DAI”

function name() external view returns (string memory);

symbol

PToken 符号,即“pDAI”

function symbol() external view returns (string memory);

decimals

小数位数,与标的资产相同

function decimals() external view returns (uint8);

underlying

标的资产地址

function underlying() external view returns (address);

balanceOf

账户封装的代币余额

function balanceOf(address who) external view returns (uint);

totalSupply

所有封装代币余额的总和

function totalSupply() external view returns (uint);

allowance

function allowance(address holder, address spender) external view returns (uint);

参数:

  • holder:允许访问代币的地址

  • spender:受信任的地址

transfer

将您自己的 pToken 转移到另一个地址

1

function transfer(address recipient, uint amount) external returns (bool);
  • recipient:收件人地址

  • amount:要转移的打包代币数量

transferFrom

将 pToken 从一个地址转移到另一个地址。Euler地址自动获得批准。

function transferFrom(address from, address recipient, uint amount) external returns (bool);

参数:

  • from:此地址必须已批准收件人地址

  • recipient:收件人地址

  • amount:转账金额

approve

允许spender访问您的一定数量的 pToken。不需要批准Euler地址。

function approve(address spender, uint amount) external returns (bool);

参数:

  • spender:受信任的地址

  • amount:使用最大 uint256 获得“无限”限额

wrap

将底层代币转换为 pToken

function wrap(uint amount) external;

参数:

  • amount:以标的单位(相当于 pToken 单位)

unwrap

将 pToken 转换为标的代币

function unwrap(uint amount) external;

参数:

  • amount:以 pToken 为单位(相当于标的单位)

claimSurplus

索取 PToken 合约持有的任何剩余代币。这只能由合约使用。

function claimSurplus(address who) external;
  • who:将获得剩余代币金额的受益人

IEulerEulDistributor

claim

申领已分发代币

function claim(address account, address token, uint claimable, bytes32[] calldata proof, address stake) external;

参数:

  • account:应该接收代币的地址

  • token:被认领的代币地址(即EUL)

  • proof:验证此声明的 Merkle 证明

  • stake:如果非零,则自动质押代币的地址,而不是认领

IEulerEulStakes

staked

检索当前质押金额

function staked(address account, address underlying) external view returns (uint);

参数:

  • account:用户地址

  • underlying:抵押的代币

返回:

  • 质押的 EUL 代币数量

StakeOp

质押操作项目。正数意味着增加这个标的资产的质押,负数意味着减少。

struct StakeOp {
    address underlying;
    int amount;
}

stake

修改一系列标的资产的权益。如果所有金额的总和为正数,则此金额的 EUL 将从sender的钱包中转入。如果为负,则会转出。

function stake(StakeOp[] memory ops) external;
  • ops:要执行的操作数组

stakeGift

增加标的资产的质押,并将该质押转让给受益人

function stakeGift(address beneficiary, address underlying, uint amount) external;

参数:

  • beneficiary:谁获得了这个质押的 EUL

  • underlying:要质押的标的代币

  • amount:要质押多少 EUL

stakePermit

将 permit() 签名应用于 EUL,然后应用一系列抵押操作

function stakePermit(StakeOp[] memory ops, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

参数:

  • ops:要执行的操作数组

  • value:许可消息的值字段

  • deadline:许可消息的截止日期字段

  • v:签名字段

  • r:签名字段

  • s:签名字段

Last updated