Fraxlend还款金额不对或抵押取不出:核Borrow Shares与双预言机健康
链小知 · 进阶 · 核验 · 依官方文档整理
核借债份额换算、repayAsset参数、LTV版本和清算/writeoff结果,避免只还本金或混用fToken价格。
开始前准备
- 准备已有Pair/borrower资料、userBorrowShares、userCollateralBalance、totalBorrow、汇率/时点、maxLTV和原repay/removeCollateral结果。数量保留原始整数与资产精度。
- 全部documentation,固定2bed49…3.0.0与当前帮助为解释依据;无真实借款、还款、清算或提款,也没有默认当前费率/市场开放。
1. 固定债务所在Pair与被减债账户
核Pair网络、asset/collateral及版本,借债份额是Pair记录的userBorrowShares,供应者fToken是另一种ERC20权益。payer可替borrower偿还,资金提供者不自动成为抵押所有者。
当前地址页Operations仍待更新;Ethereum管理multisig和旧V1地址不证明本人Pair就是本轮V3。若只有旧ABI,不能套V3双预言机、可变参数或暂停字段。
检查结果:借债份额/供应份额、payer/borrower和部署版本分开。
2. 按Borrow账本算含息资产债务
用totalBorrow.amount/shares换算借债份额;toBorrowAmount(shares,roundUp,previewInterest)三个输入需完整保存。用于对应固定repayAsset的预估时要核向上舍入及含息预览,不能用totalAsset或fToken兑换率。
只作人类单位演示:借债总额110、总份额100、个人10份,对应11个asset;10是债务份额,不是可直接转出的10个asset。官方例子100×1.10应为110,页面误写100不采用;原始整数计算和精度需另核。
检查结果:含息债务由正确账本、份额、舍入与时点得到。
3. 检查repayAsset输入与实际扣款
repayAsset(shares,borrower)输入是要偿还的Borrow Shares,返回才是asset amount。固定执行先_addInterest,再按份额向上换算应还资产;只还最初本金或把asset金额误填shares会留债或失败。
对原材料核asset授权对象、payer资产余额、borrower与shares。RepayPaused、转账失败、份额超过该borrower债务等不能当已减债;批准allowance本身不是还款事件。不要把Moonwell的uint.max全额惯例复制给Fraxlend。
检查结果:原参数确为Borrow Shares,实际所需asset与授权/暂停条件有对应。
4. 按版本判断LTV与清算条件
固定V3用ceil债务资产量、抵押原值和Collateral:Asset汇率计算LTV,LTV_PRECISION=1e5、EXCHANGE_PRECISION=1e18;可按源码整数步骤核floor(floor(debtRaw×rate/1e18)×1e5/collateralRaw)。不能把fToken资产份额价格带入债务式。
借款/移除抵押后的_isSolvent检查用highExchangeRate,清算入口用lowExchangeRate,二者不是任意市场现货USD价。固定实现maxLTV=0直接视为solvent是特殊配置;等于阈值视为solvent,仍需其他限制。当前technical称immutable,固定V3有timelock setter及撤销条件,75%不是所有Pair常量。
检查结果:债务与抵押单位、oracle方向及该版本边界对应,不用固定75%或单一现货价代替。
5. 把还债、取抵押和清算减记分开
已有RepayAsset按payer、borrower、amountToRepay、shares核真实资产转入与份额减少;随后removeCollateral仍检查剩余债务健康,并把抵押转给receiver。债务降到0也不代表抵押已经提走。
若已有Liquidate结果,区分sharesToLiquidate(清算偿还)与sharesToAdjust/amountToAdjust(坏债writeoff)。writeoff可使债务减少且供应总资产下降,不能冒充本人已用asset还款。clean/dirty/protocol清算费各有参数,旧统一10%不当当前保证。
检查结果:主动偿还、抵押转出和清算/writeoff都有各自字段,减债没有冒充到账。
6. 核错误、剩余债务和完成时点
整理原失败分支:Insolvent看债务/抵押/汇率,ExceedsMaxOracleDeviation看双预言机偏差,RepayPaused看偿还暂停,InvalidReceiver看地址;缺原始数据只能列待核,不能用再次还款证明原因。
把原shares、实际asset偿还量、剩余借债份额、抵押余额/接收结果和读取时点并排;利息、价格及参数仍会变化。完成含息债务与该Pair规则的对照,未取得转账结果就不写还清/取回成功。
检查结果:原因、剩余债务与抵押结果有对应证据或明确未知,没有再操作或收益承诺。
怎样确认完成
- 已确认Pair版本、borrower借债份额、含息偿还量、oracle/LTV及失败分支。
- 已有偿还/移除/清算结果分别核对,未核实时部署或余额的项明确保留。
常见错误与边界
- 借债Share Price属于totalBorrow;technical健康段fToken用词不能替代正确债务账本。
- full repayment的asset需求随计息/舍入变化;清算减记和坏债核销不是同一种资产支付。