채권 시장 계약 방법

본드 마켓플레이스 계약에는 확장된 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 네트워크의 일부여야 합니다. 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입니다.