債券市集合約方式

債券市集合約包括所有在延長 ERC-1155 NFT 合約中可用的方法,以及債券市場情境特有的附加方法。

實體性自動產生方法

債券市集資產是以延伸 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 網路。CBDC 權杖的合約位址必須透過呼叫 setTokenContract 方法來設定。purchaseToken 方法會自動計算 CBDC 權杖轉移值,該值等於債券權杖的面值乘以購買的數量。
function purchaseToken(
        address from,
        address to,
        uint256 tokenId,
        uint256 quantity,
        uint256 additionalFees,
        string calldata orderId
    ) public
參數:
  • from: address – 記號擁有者的公事包位址。
  • to: address – 收件者的公事包位址。
  • tokenId: uint256 – 要購買之記號的 ID。
  • quantity: uint256 – 要購買的權杖數量。
  • additionalFees: uint256 – 要新增至購買價格的額外費用。
  • orderId: string – 採購作業的訂單 ID。
payInterest
此方法會支付債券變數替代字所賺取的利息。權杖建立者只能呼叫它。權杖的利息頻率必須是每月、每季或每年。如果利息頻率為到期,則無法支付利息。利息由合約根據權杖的息票利率計算。
因為採購作業會將 CBDC 權杖從呼叫者的帳戶轉移至債券擁有者的帳戶,所以此方法必須在單元交易的相關資訊環境中執行。在目前的版本中,原子性必須在單一 Oracle Blockchain Platform Besu 網路中處理。換句話說,CBDC 與債券合約必須屬於相同的 Oracle Blockchain Platform Besu 網路。CBDC 權杖的合約位址必須透過呼叫 setTokenContract 方法來設定。
function payInterest(address userAddress, uint256 tokenId) public
參數:
  • userAddress: address – 使用者的公事包位址。
  • 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 網路。CBDC 權杖的合約位址必須透過呼叫 setTokenContract 方法來設定。
function approveTokenRedemption(
        address fromAddress,
        string calldata settlementId,
        uint256 tokenId
    ) public
參數:
  • fromAddress: address – 使用者的公事包位址。
  • settlementId: string – 贖回作業的結算 ID。
  • tokenId: uint256 – 記號的 ID。
rejectTokenRedemption
此方法會拒絕贖回債券權杖的要求。只有記號建立者才能呼叫它。權杖擁有者可以使用不同的結算 ID 再次提出贖回要求。
function rejectTokenRedemption(
        address fromAddress,
        string calldata settlementId,
        uint256 tokenId
    ) public
參數:
  • userAddress: address – 使用者的公事包位址。
  • settlementId: string – 兌換作業的結算 ID。
  • tokenId: uint256 – 記號的 ID。
getTokenRedemptionRequests
此方法會取得記號兌換要求的詳細資訊。任何帳戶持有人都可以呼叫它。
function getTokenRedemptionRequests(
        address userAddress,
        uint256 tokenId,
        string calldata settlementId
    ) public view
參數:
  • userAddress: address – 使用者的公事包位址。
  • tokenId: uint256 – 記號的 ID。
  • settlementId: string – 兌換作業的結算 ID。
getUserBondDetails
此方法會取得帳戶摘要,其中包含已購買或已兌換權杖的明細,以及採購價格與兌換價格。任何帳戶持有人都可以呼叫它。
function getUserBondDetails(
        address userAddress,
        uint256 tokenId
    ) public view
參數:
  • userAddress: address – 使用者的公事包位址。
  • tokenId: uint256 – 記號的 ID。