债券市场合同方法

债券市场合同包括扩展的 ERC-1155 NFT 合同中可用的所有方法,以及特定于债券市场情景的其他方法。

Solidity 自动生成的方法

债券市场资产基于扩展的 ERC-1155 标准,并支持该标准的所有通用方法。有关通用 ERC-1155 方法的更多信息,请参阅数字资产 API 。
postToken
此方法提交债券令牌以在市场中列出。此方法只能由令牌创建者调用。创建令牌时,其状态最初设置为 created。此方法将状态更新为 posted。
function postToken(uint256 tokenId) public
参数:
  • tokenId: uint256- 要发布的标记的 ID。
purchaseToken
此方法购买列出的债券 NFT,将其从创建者的帐户转移到调用者的帐户,并将 CBDC 令牌从调用者的帐户转移到创建者的帐户。任何帐户持有者都可以调用此方法。
此方法必须在原子事务处理的上下文中运行。在当前版本中,必须在单个 Oracle Blockchain Platform Besu 网络中处理原子性。换句话说,CBDC 和债券合同必须属于同一个 Oracle Blockchain Platform Besu 网络。必须通过调用 setTokenContract 方法来设置 CBDC 标记的合同地址。purchaseToken 方法自动计算 CBDC 令牌转移值,该值等于债券令牌的面值乘以所购买的数量。
function purchaseToken(
        address from,
        address to,
        uint256 tokenId,
        uint256 quantity,
        uint256 additionalFees,
        string calldata orderId
    ) public
参数:
  • from: address- 令牌所有者的 wallet 地址。
  • to: address- 收件人的 wallet 地址。
  • tokenId: uint256- 要购买的令牌的 ID。
  • quantity: uint256 –要购买的令牌数量。
  • additionalFees: uint256 —添加到购买价格的额外费用。
  • orderId: string —购买操作的订单 ID。
payInterest
此方法用于支付债券令牌上获得的利息。它只能由标记创建者调用。令牌的利息频率必须为每月、每季度或每年。如果利息频率已到期,则无法支付利息。利息由合同根据令牌的息票利率计算。
由于购买操作将 CBDC 令牌从调用者的帐户转移到债券所有者的帐户,因此此方法必须在原子事务处理的上下文中运行。在当前版本中,必须在单个 Oracle Blockchain Platform Besu 网络中处理原子性。换句话说,CBDC 和债券合同必须属于同一个 Oracle Blockchain Platform Besu 网络。必须通过调用 setTokenContract 方法来设置 CBDC 标记的合同地址。
function payInterest(address userAddress, uint256 tokenId) public
参数:
  • userAddress: address- 用户的 wallet 地址。
  • tokenId: uint256- 令牌的 ID。
requestTokenRedemption
这种方法提出了在到期后赎回债券代币的请求。它只能由令牌所有者调用。此方法还用于按合同计算赎回价格。只能对用户拥有的债券令牌的全部数量提出赎回请求。用户可以根据不同的结算 ID 提出多个兑换请求,但令牌创建者只能批准一个兑换请求。
function requestTokenRedemption(
        string calldata settlementId,
        uint256 tokenId,
        string calldata orderId,
        uint256 additionalFees
    ) public
参数:
  • settlementId: string- 赎回操作的结算 ID。
  • tokenId: uint256- 令牌的 ID。
  • additionalFees: uint256 —添加到兑换价格的额外费用。
  • orderId: string —购买操作的订单 ID。
approveTokenRedemption
此方法将批准赎回债券令牌的请求。它只能由标记创建者调用。
由于兑换操作将债券 NFT 从所有者帐户(提出请求的用户)转移到创建者的帐户,因此此方法必须在原子事务的上下文中运行。在当前版本中,必须在单个 Oracle Blockchain Platform Besu 网络中处理原子性。换句话说,CBDC 和债券合同必须属于同一个 Oracle Blockchain Platform Besu 网络。必须通过调用 setTokenContract 方法来设置 CBDC 标记的合同地址。
function approveTokenRedemption(
        address fromAddress,
        string calldata settlementId,
        uint256 tokenId
    ) public
参数:
  • fromAddress: address- 用户的 wallet 地址。
  • settlementId: string- 赎回操作的结算 ID。
  • tokenId: uint256- 令牌的 ID。
rejectTokenRedemption
此方法拒绝赎回债券令牌的请求。它只能由标记创建者调用。令牌所有者可以使用其他结算 ID 再次提出赎回请求。
function rejectTokenRedemption(
        address fromAddress,
        string calldata settlementId,
        uint256 tokenId
    ) public
参数:
  • userAddress: address- 用户的 wallet 地址。
  • settlementId: string- 赎回操作的结算 ID。
  • tokenId: uint256- 令牌的 ID。
getTokenRedemptionRequests
此方法获取令牌兑换请求的详细信息。它可以由任何帐户持有者调用。
function getTokenRedemptionRequests(
        address userAddress,
        uint256 tokenId,
        string calldata settlementId
    ) public view
参数:
  • userAddress: address- 用户的 wallet 地址。
  • tokenId: uint256- 令牌的 ID。
  • settlementId: string- 赎回操作的结算 ID。
getUserBondDetails
此方法将获取包括已购买或已兑换代币的详细信息以及购买价格和兑换价格的账户摘要。它可以由任何帐户持有者调用。
function getUserBondDetails(
        address userAddress,
        uint256 tokenId
    ) public view
参数:
  • userAddress: address- 用户的 wallet 地址。
  • tokenId: uint256- 令牌的 ID。