Skip to content

Feat/never stop deal:Dashboard新增四个数据接口 - #21

Merged
L930861 merged 2 commits into
mainfrom
feat/never-stop-deal
Aug 20, 2026
Merged

L930861 merged 2 commits into
mainfrom
feat/never-stop-deal

Conversation

@L930861

@L930861 L930861 commented Aug 20, 2026 •

Copy link
Copy Markdown
Collaborator

Netting 合约新增了四个只读 Dashboard 接口:
1.getSettlementWindowForecast() 返回下一结算窗口、目标区块和剩余区块数;
2.getBankNetPositions(bank) 返回该银行按金融产品区分的应付和应收;
3.getBankSettlementAssetRequirements(bank) 返回本轮必须准备的产品及数量;
4.getBankLiquidityShortfalls(bank) 返回所需数量、当前余额和预计借款额。

以下是详细解释:
以下接口均为 view 只读调用,不发送交易、不消耗 Gas。前端传入当前登录银行的钱包地址作为 bank。
接入时使用最新部署的 Netting 合约地址,并从 out/Netting.sol/Netting.json 复制 ABI。建议监听新区块后并行刷新四个接口。Solidity 返回的数量是原始整数,展示前必须按照对应 ERC20 的 decimals() 格式化(这个很重要,否则会把1U显示成1000000U这样)。

  1. 结算窗口预测
    调用 Netting.getSettlementWindowForecast(),返回:
  • windowId:下一次要结算的窗口编号;
  • settlementBlock:预计执行结算的目标区块;
  • blocksRemaining:距离目标区块还剩多少块,达到目标后为 0。
  1. 净结算头寸
    调用 Netting.getBankNetPositions(bank)。每项按金融产品分别返回:
  • asset:ERC20 金融产品地址;
  • payableAmount:银行应付数量;
  • receivableAmount:银行应收数量。
    同一项中应付和应收最多只有一个大于 0。前端用 asset.symbol() 和 asset.decimals() 格式化名称与金额。
  1. 结算资产需求
    调用 Netting.getBankSettlementAssetRequirements(bank),返回银行本轮必须准备的金融产品:
  • asset:产品地址;
  • requiredAmount:结算需要准备的数量。
    没有应付义务时返回空数组。
  1. 结算流动性缺口

调用 Netting.getBankLiquidityShortfalls(bank),每项返回:

  • asset:产品地址;
  • requiredAmount:结算需要数量;
  • availableBalance:银行当前链上余额;
  • borrowAmount:预计需要从 Liquidity Buffer 借入的数量。
    计算口径为 borrowAmount = max(requiredAmount - availableBalance, 0)。该值是预计借款需求,不代表资金池一定有足够余额。当然,在咱们的项目里假设liquidity pool是充足的

@L930861
L930861 merged commit ce9188d into main Aug 20, 2026
1 check passed
@L930861
L930861 deleted the feat/never-stop-deal branch August 20, 2026 06:05
@github-actions

Copy link
Copy Markdown

🎉🎉🎉 Congratulations on your new release! 🎉🎉🎉

We have created a release draft of the new version, please go to Release to publish it! ✨

@Nero978 Nero978 added the enhancement New feature or request label Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants