合约参考
IEuler
Euler系统的主存储合约
moduleIdToImplementation
查找模块的当前实现合约
参数:
moduleId:引用模块类型的固定常量(即 MODULEID__ETOKEN)
返回:
内部地址指定模块的实现代码
moduleIdToProxy
查找可用于与模块交互的代理(仅对单代理模块有效)
参数:
moduleId:引用模块类型的固定常量(即 MODULEID__MARKETS)
返回:
应转换为适当模块接口的地址,即 IEulerMarkets(moduleIdToProxy(2))
AssetConfig
Euler相关资产的配置
IEulerMarkets
激活和查询市场,维护进入的市场列表
activateMarket
创建Euler池和关联的 EToken 和 DToken 地址。
参数:
underlying:符合 ERC20 标准的代币的地址。基础/参考资产对必须有一个初始化的 uniswap3 池。
返回:
创建的 EToken,或现有的 EToken(如果已激活)。
activatePToken
创建一个 pToken 并在 Euler 上激活它。 pTokens 不能借入的,受保护资产的包装器。
underlying:符合 ERC20 标准的代币的地址。该标的(underlying)物必须在 Euler 上已经存在一个激活的市场,并且它必须具有非零抵押因子。
返回:
创建的 pToken,如果已经激活,则为现有的。
underlyingToEToken
给定一个标的(underlying)资产,查找相关的 EToken
参数:
underlying:代币地址
返回:
EToken 地址,如果未激活,则为地址 (0)
underlyingToDToken
给定一个标的(underlying)资产,查找相关的 DToken
参数:
underlying:代币地址
返回:
DToken 地址,如果未激活,则为地址 (0)
underlyingToPToken
给定一个标的(underlying)资产,查找相关的 PToken
参数:
underlying:代币地址
返回:
PToken 地址,如果不存在,则为 address(0)
underlyingToAssetConfig
查找代币的Euler相关配置,并将所有默认值占位符解析为其当前配置的值。
参数:
underlying:代币地址
返回:
配置结构
underlyingToAssetConfigUnresolved
查找代币的 Euler 相关配置,并返回未解析内容(使用默认值占位符)
参数:
underlying:代币地址
返回:
config:配置结构
eTokenToUnderlying
给定一个 EToken 地址,查找相关的标的(underlying)
参数:
eToken:EToken 地址
返回:
underlying:代币地址
eTokenToDToken
给定一个 EToken 地址,查找关联的 DToken
参数:
eToken:EToken 地址
返回:
dTokenAddr:DToken 地址
interestRateModel
查找资产当前配置的利率模型
参数:
underlying:代币地址
返回:
代表利率模型 (IRM) 的模块 ID
interestRate
检索资产的当前利率
参数:
underlying:代币地址
返回:
以每秒收益率为单位的利率,按 10^27 比例缩放
interestAccumulator
检索资产的当前利率累加器
参数:
underlying:代币地址
返回:
一个模糊的累加器,随着利息的增加而增加
reserveFee
检索对资产有效的准备金费用
参数:
underlying:代币地址
返回:
被重定向到储备金的利息金额,作为由 RESERVE_FEE_SCALE (4e9) 缩放的分数
getPricingConfig
检索资产的定价配置
参数:
underlying:代币地址
返回:
pricingType:(1=挂钩,2=uniswap3,3=转发)
pricingParameters:如果为 uniswap3 定价类型,则表示使用的 uniswap 池费用,否则未使用
pricingForwarded:如果转发定价类型,那么这是价格转发到的地址,否则地址为(0)
getEnteredMarkets
检索账户的进入市场列表(启用抵押或借贷的资产)
参数:
amount:用户帐户
返回:
标的(underlying)代币地址列表
帐户
将资产添加到输入的市场列表,如果已经输入,则不执行任何操作
参数:
subAccountId:0 表示主账户,1-255 表示子账户
newMarket:标的(underlying)代币地址
exitMarket
从输入的市场列表中删除资产,如果不存在则不执行任何操作
参数:
subAccountId:0 表示主账户,1-255 表示子账户
oldMarket:标的(underlying)代币地址
IEulerExec
批量执行、流动性检查延期以及获取价格和账户流动性的接口
LiquidityStatus
账户的流动性状态,无论是整体还是特定资产
AssetLiquidity
用于报告账户详细(按资产)流动性的聚合结构
EulerBatchItem
批量请求中的单个项目
EulerBatchItemResponse
Single item in a batch response 批处理响应中的单个项目
liquidity
计算账户的总流动性
参数:
amount:用户地址
返回:
status:总流动性(所有输入资产的总和)
detailedLiquidity
计算账户的详细流动性,按资产细分
Parameters:
参数:
amount:用户地址
返回:
assets:用户输入的资产列表和每个资产对应的流动性
getPrice
检索Euler对资产价格的看法
参数:
underlying:代币地址
返回:
twap:时间加权平均价格
twapPeriod:TWAP 持续时间,AssetConfig 中的 twapWindow 值,或者如果持续时间不可用,则更少
getPriceFull
检索 Euler 对资产价格的看法,以及 uniswap 上的当前边际价格
参数:
underlying:代币地址
返回:
twap:时间加权平均价格
twapPeriod:TWAP 持续时间,AssetConfig 中的 twapWindow 值,或者如果持续时间不可用,则更少
currPrice:uniswap3 上的当前边际价格(仅参考:未在Euler协议中的任何地方使用)
deferLiquidityCheck
推迟对账户的流动性检查,以执行再平衡、闪电贷等。msg.sender 必须实现 IDeferredLiquidity检查。
参数:
account:延迟流动性的账户。通常地址(this),尽管并非总是如此
data:传递给 onDeferredLiquidityCheck() 回调,因此合约不需要在存储中存储瞬态数据
批量调度
在单个交易中执行多个操作
参数:
items:要执行的操作列表
deferLiquidityChecks:推迟流动性检查的用户帐户列表
返回:
操作结果列表
EulerBatchExtra
batchDispatch 的结果,但带有额外信息
batchDispatchExtra
调用 batchDispatch,但返回额外信息。仅打算与 callStatic 一起使用。
参数:
items:要执行的操作列表
deferLiquidityChecks:推迟流动性检查的用户帐户列表
queryLiquidity:返回详细流动性信息的用户帐户列表
返回:
output:带有额外信息的结构
trackAverageLiquidity
为您的账户启用平均流动性跟踪。操作会花费更多的gas,但在执行清算时你可能会获得额外的好处
参数:
subAccountId:subAccountId 0 表示主账户,1-255 表示子账户。
delegate:您允许使用您的账户平均流动性的好处的另一个账户的地址(如果您不关心,请使用空地址)。另一个地址也必须对应委托给您的帐户。
onlyDelegate:设置此标志以跳过跟踪平均流动性并仅设置委托。
unTrackAverageLiquidity
为您的账户禁用平均流动性跟踪并移除委托
参数:
subAccountId:subAccountId 0 表示主账户,1-255 表示子账户
getAverageLiquidity
检索账户的平均流动性
参数:
account:用户帐户(在 subAccountId 中异或,如果适用)
返回:
根据参考资产和风险调整后的平均流动性
getAverageLiquidityWithDelegate
检索账户或委托账户的平均流动性(如果已设置)
参数:
account:用户帐户(在 subAccountId 中,如果适用)
返回:
根据参考资产和风险调整后的平均流动性
getAverageLiquidityDelegateAccount
检索代表账户平均流动性的账户(如果已设置)
参数:
account:用户帐户(在 subAccountId 中异或,如果适用)
返回:
平均流动性委托账户
pTokenWrap
将标的(underlying)代币从发件人的钱包转移到 pToken 包装器中。应为Euler地址设置余量。
参数:
underlying:代币地址
amount:以标的单位包装的金额
pTokenUnWrap
将标的(underlying)代币从 pToken 包装器转移到发送者的钱包。
参数:
underlying:代币地址
amount:以标的单位展开的金额
usePermit
将 EIP2612 签名许可,应用于从发送方到Euler合约的目标代币
参数:
token:代币地址
value:余量值
deadline:许可到期时间戳
v: secp256k1 签名 v
r: secp256k1 签名 r
s: secp256k1 签名 s
usePermitAllowed
从发送方到Euler合约的目标代币上,应用 DAI 类似(允许的)签名许可
参数:
token:代币地址
nonce:发件人 nonce
expiry:允许到期时间戳
allowed:如果为真,则设置无限制限额,否则设置零限额
v: secp256k1 签名 v
r: secp256k1 签名 r
s: secp256k1 签名 s
usePermitPacked
将津贴应用于会将签名打包在单个字节参数中的代币
参数:
token:代币地址
value:余量值
deadline:许可到期时间戳
signature:secp256k1 签名编码为 rsv
doStaticCall
使用任意有效负载对任意地址执行静态调用。
参数:
contractAddress:要调用的合约地址
payload:编码的调用负载
返回:
result:编码返回数据
IEulerEToken
资产的代币化表示
name
池名称,即“Euerl池:DAI”
symbol
池符号,即“eDAI”
decimals
小数,总是标准化为 18。
underlyingAsset
标的资产地址
totalSupply
所有余额的总和,用内部记账单位表示(不会增加)
totalSupplyUnderlying
所有余额的总和,以标的单位计(随着利息归集而增加)
balanceOf
特定账户的余额,用内部记账单位表示(不会增加)
balanceOfUnderlying
特定账户的余额,以标的单位计(随着利息归集而增加)
reserveBalance
准备金余额,用内部记账单位表示(不会增加)
reserveBalanceUnderlying
准备金余额,以标的单位计(随着利息归集而增加)
convertBalanceToUnderlying
考虑当前汇率的情况下,将 eToken 余额转换为标的金额
参数:
balance:电子代币余额,以内部记账单位(18 位小数)
返回:
标的单位金额(与标的代币相同的小数)
convertUnderlyingToBalance
考虑当前汇率的情况下,将标的金额转换为 eToken 余额
参数:
underlyingAmount:标的单位金额(与标的代币相同的小数)
返回:
eToken:余额,以内部记账单位(18 位小数)
touch
更新利息累加器和总借款、信用准备金、重新设定利率目标并记录资产状态
deposit
将标的代币从发送方转移到Euler池,增加账户的eTokens
参数:
subAccountId:0 表示主账户,1-255 表示子账户
amount:以标的单位为单位(使用 max uint256 获取全部标的代币余额)
withdraw
将标的代币从 Euler 池转移到发送者,并减少账户的 eToken
参数:
subAccountId:0 表示主账户,1-255 表示子账户
amount:以标的单位(使用最大 uint256 获得全部池余额)
mint
铸造 eToken 和相应数量的 dToken(“自借”)
参数:
subAccountId:0 表示主账户,1-255 表示子账户
amount:以标的单位计
burn
使用 eToken 偿还 dToken 债务(“自我偿还”)
参数:
subAccountId:0 表示主账户,1-255 表示子账户
amount:以标的单位(使用最大 uint256 全额偿还债务或不超过可用标的余额)
approve
允许消费者在子账户 0 中访问您一定数量的 eToken
参数:
spender:受信任的地址
amount:使用最大 uint256 获得“无限”津贴
approveSubAccount
允许消费者在特定子账户中访问您的一定数量的 eToken
参数:
subAccountId:0 表示主账户,1-255 表示子账户
spender:受信任的地址
amount:使用最大 uint256 获得“无限”津贴
allowance
检索当前津贴
参数:
holder:与所需的子账户 ID 异或(如果适用)
spender:受信任的地址
transfer
将 eToken 转移到另一个地址(从子账户 0)
参数:
to:与所需的子账户 ID 异或(如果适用)
amount:以内部记账单位(从 balanceOf 返回)。
transferFromMax
将一个地址的全部 eToken 余额转移到另一个地址
from:此地址必须已批准收件人地址,或者是 msg.sender 的子帐户
to:与所需的子账户 ID 异或(如果适用)
transferFrom
将 eToken 从一个地址转移到另一个地址
参数:
from:此地址必须已批准收件人地址,或者是 msg.sender 的子帐户
to:与所需的子账户 ID 异或(如果适用)
amount:以内部记账单位(从 balanceOf 返回)。
IEulerDToken
债务的代币化表示
name
债务代币名称,即“Euler Debt: DAI”
symbol
债务代币符号,即“dDAI”
decimals
标的资产的小数
underlyingAsset
标的资产地址
totalSupply
所有未偿债务的总和,以标的单位计(随着利息的归集而增加)
totalSupplyExact
所有未偿债务的总和,以标的单位标准化为小数点后 27 位(随着利息的归集加而增加)
balanceOf
特定账户所欠债务,以标的单位计
balanceOfExact
特定账户所欠债务,以标的单位标准化为小数点后 27 位
borrow
将底层代币从 Euler 池中转移给发送者,并增加发送者的 dToken
参数:
subAccountId:0 表示主账户,1-255 表示子账户
amount:以标的单位(所有可用代币使用最大 uint256)
repay
将底层代币从发送者转移到Euler池,并减少发送者的 dToken
参数:
subAccountId:0 表示主账户,1-255 表示子账户
amount:以标的单位计(使用最大 uint256 计算所欠的全部债务)
approveDebt
允许消费者向特定子账户发送一定数量的 dToken
复制!
参数:
subAccountId:0 表示主账户,1-255 表示子账户
spender:受信任的地址
amount:以标的单位(使用最大 uint256 表示“无限”限额)
debtAllowance
检索当前的债务津贴
参数:
holder:与所需的子账户 ID 异或(如果适用)
spender:受信任的地址
transfer
将 dToken 转移到另一个地址(从子账户 0)
参数:
to:与所需的子账户 ID 异或(如果适用)
amount:以标的单位为单位。使用 max uint256 进行完全平衡。
transferFrom
将 dToken 从一个地址转移到另一个地址
参数:
from:与所需的子账户 ID 异或(如果适用)
to:这个地址必须已经批准了发件人地址,或者是msg.sender的子账号
amount:以标的单位为单位。使用 max uint256 进行完全平衡。
IEulerLiquidation
清算抵押品违约的用户来保护出借方。
LiquidationOpportunity
有关潜在清算机会的信息
checkLiquidation
检查清算是否有利可图,而无需实际执行任何操作
参数:
liquidator:将启动清算的地址
violator:可能存在违约的地址
underlying:要偿还的代币
collateral:将被没收的代币
返回:
liqOpp:关于清算机会的详细信息
liquidate
尝试进行清算
参数:
violator:可能附带违规的地址
underlying:要偿还的代币
collateral:将被没收的代币
repay:从违规者转移到发送者的底层 DToken 数量,以底层为单位
minYield:以抵押品为单位,从违约者(violator)转移到发送者的最低可接受的抵押品 EToken 数量
IEulerSwap
在 Uniswap V3 和 1Inch V4 DEX 上交易资产
SwapUniExactInputSingleParams
Uniswap V3 单个池上精确输入交易的参数
参数:
subAccountIdIn:交易的子账户ID
subAccountIdOut:交易的子账户ID
underlyingIn:出售的代币地址
underlyingOut:购买代币地址
amountIn:要出售的代币数量
amountOutMinimum:购买代币的最低数量
deadline:交易必须在此时间戳之前完成
fee:uniswap 池使用费
sqrtPriceLimitX96:最高可接受价格
SwapUniExactInputParams
通过多个池路由,Uniswap V3 精确输入交易的参数
参数:
subAccountIdIn:交易的子账户ID
subAccountIdOut:交易的子账户ID
underlyingIn:出售的代币地址
underlyingOut:购买代币地址
amountIn:要出售的代币数量
amountOutMinimum:购买代币的最低数量
deadline:交易必须在此时间戳之前完成
path:用于交易的池列表
SwapUniExactOutputSingleParams
Uniswap V3 的参数在单个池上精确输出交易
参数:
subAccountIdIn:交易的子账户ID
subAccountIdOut:交易的子账户ID
underlyingIn:出售的代币地址
underlyingOut:购买代币地址
amountOut:要购买的代币数量
amountInMaximum:已售代币的最大数量
deadline:交易必须在此时间戳之前完成
fee:uniswap 池使用费
sqrtPriceLimitX96:最高可接受价格
SwapUniExactOutputParams
经过多个池路由,Uniswap V3 精确输出交易的参数
参数:
subAccountIdIn:交易的子账户ID
subAccountIdOut:交易的子账户ID
underlyingIn:出售的代币地址
underlyingOut:购买代币地址
amountOut:要购买的代币数量
amountInMaximum:已售代币的最大数量
deadline:交易必须在此时间戳之前完成
path:用于交易的池列表
Swap1InchParams
1inch交易的参数
参数:
subAccountIdIn:交易的子账户ID
subAccountIdOut:交易的子账户ID
underlyingIn:出售的代币地址
underlyingOut:购买代币地址
amount:要出售的代币数量
amountOutMinimum:购买代币的最低数量
payload:调用数据传递给 1Inch 合约
swapUniExactInputSingle
在单个池上执行 Uniswap V3 精确输入交易
参数:
params:定义交易参数的结构
swapUniExactInput
执行通过多个池路由的 Uniswap V3 精确输入交易
参数:
params:定义交易参数的结构
swapUniExactOutputSingle
在单个池上执行 Uniswap V3 精确输出交易
参数:
params:定义交易参数的结构
swapUniExactOutput
执行通过多个池路由的, Uniswap V3 精确输出交易
参数:
params:定义交易参数的结构
swapAndRepayUniSingle
在 Uniswap V3 单一池上交易并用购买的资产偿还债务
参数:
params:定义交易参数的结构(amountOut 被忽略)
targetDebt:交易和偿还后预计剩余的债务金额(0 表示偿还全部债务)
swapAndRepayUni
通过多个池在 Uniswap V3 上进行交易并用购买的资产偿还债务
参数:
params:定义交易参数的结构(amountOut 被忽略)
targetDebt:交易和偿还后预计剩余的债务金额(0 表示偿还全部债务)
swap1Inch
执行1InchV4交易
参数:
params:定义交易参数的结构
IEulerPToken
受保护的代币是代币的简单封装/包装器,允许您将代币用作抵押品而无需批准(立即)借款
name
PToken 名称,即“Euler Protected DAI”
symbol
PToken 符号,即“pDAI”
decimals
小数位数,与标的资产相同
underlying
标的资产地址
balanceOf
账户封装的代币余额
totalSupply
所有封装代币余额的总和
allowance
参数:
holder:允许访问代币的地址
spender:受信任的地址
transfer
将您自己的 pToken 转移到另一个地址
1
recipient:收件人地址
amount:要转移的打包代币数量
transferFrom
将 pToken 从一个地址转移到另一个地址。Euler地址自动获得批准。
参数:
from:此地址必须已批准收件人地址
recipient:收件人地址
amount:转账金额
approve
允许spender访问您的一定数量的 pToken。不需要批准Euler地址。
参数:
spender:受信任的地址
amount:使用最大 uint256 获得“无限”限额
wrap
将底层代币转换为 pToken
参数:
amount:以标的单位(相当于 pToken 单位)
unwrap
将 pToken 转换为标的代币
参数:
amount:以 pToken 为单位(相当于标的单位)
claimSurplus
索取 PToken 合约持有的任何剩余代币。这只能由合约使用。
who:将获得剩余代币金额的受益人
IEulerEulDistributor
claim
申领已分发代币
参数:
account:应该接收代币的地址
token:被认领的代币地址(即EUL)
proof:验证此声明的 Merkle 证明
stake:如果非零,则自动质押代币的地址,而不是认领
IEulerEulStakes
staked
检索当前质押金额
参数:
account:用户地址
underlying:抵押的代币
返回:
质押的 EUL 代币数量
StakeOp
质押操作项目。正数意味着增加这个标的资产的质押,负数意味着减少。
stake
修改一系列标的资产的权益。如果所有金额的总和为正数,则此金额的 EUL 将从sender的钱包中转入。如果为负,则会转出。
ops:要执行的操作数组
stakeGift
增加标的资产的质押,并将该质押转让给受益人
参数:
beneficiary:谁获得了这个质押的 EUL
underlying:要质押的标的代币
amount:要质押多少 EUL
stakePermit
将 permit() 签名应用于 EUL,然后应用一系列抵押操作
参数:
ops:要执行的操作数组
value:许可消息的值字段
deadline:许可消息的截止日期字段
v:签名字段
r:签名字段
s:签名字段
Last updated