协议算法设计
Last updated
Last updated
BoC目前提供 USD耕种理财 和 ETH耕种理财。
存入deposit
:BoC协议支持用户将手中的三大稳定币(USDT、USDC、DAI)以任意组合、任意数量的形式存入,并mint
出相应价值的USDi返回给用户。
取出withdraw
:用户可以随时将USDi通过BoC协议换回三大稳定币,BoC将按照当时Vault中三大稳定币的比例进行返回,也可以指定返回某一种币,并burn
相应价值USDi。
Vault接收到稳定币后通过外部预言机queryTokenPrice
查询用户转入稳定币的价格(预言机返回的价格高于1USD时按1USD算,低于1USD时按预言机价格算)。
根据计算出来的价值,mint/burn
铸造/销毁等量价值的USDi。
Keeper模块到达doHardWork
触发条件,触发doHardWork
。
在 keeper 触发 doHardWork
之后,vault 将进行资金调配,接着将 USDi Ticket (销毁)兑换成 USDi(铸造)。
Vault调用聚合兑换模块swapTokenToWants
。
聚合兑换模块swapTokens
完成兑换。
Vault接收到聚合兑换模块兑换出的目标币种。
Vault按照策略需要的币种将稳定币deposit
投入策略中。
策略将稳定币deposit
投入到第三方协议。
Keeper模块到达harvest
触发条件,触发harvest
。
Harvester触发各个策略执行harvest
。
各策略执行claimRewards
收矿。
各策略将矿币transferRewards
转移到Harvester。
Harvester通过聚合兑换将矿币sellRewards
卖成稳定币。
HarvestersendProfitToVault
将稳定币转移到Vault中。
Keeper模块到达rebase
触发条件,触发rebase
。
Vault调用changeTotalSupply
增发USDi。
Vault收取20%收益,转移到国库Treasury
。
国库将收益用户buyback
回购BOC治理代币。
USD稳定币耕种的抵押凭证为USDi;EHT理财耕种的抵押凭证则为EHTi。
总的来说,ETH 耕种理财机制与 USD 稳定币耕种理财机制大致相同。但是有一些细微的差异,如下所示:
ETHi不是由Harvester进行统一收矿、复投,而是各个策略单独卖矿复投的。
queryTokenPrice
时,虽然币种都会依据Chainlink上的价格,但部分币种并没有chainlink的报价。在这种情况下,用的则是Uniswap-V3的TWAP的1小时的加权平均价格。