채권 마켓플레이스에 대한 TypeScript 메소드

본드 마켓플레이스 체인코드는 일반 ERC-1155 NFT 체인코드에서 사용할 수 있는 모든 TypeScript 메서드를 포함합니다. 본드 마켓플레이스 시나리오와 관련된 다음 추가 방법도 사용할 수 있습니다.

일반 ERC-1155 메소드에 대한 자세한 내용은 Blockchain App Builder for Oracle Blockchain Platform의 Scaffolded TypeScript Token Project for ERC-1155를 참조하십시오.

채권 마켓플레이스에 대해 TypeScript 자동 생성된 방법

postToken
이 메소드는 토큰 생성자에 의해서만 호출될 수 있습니다. 이 메소드는 마켓플레이스에 나열할 채권 토큰을 제출합니다. 토큰이 생성되면 해당 상태는 처음에 created로 설정됩니다. 이 메소드는 상태를 posted로 업데이트합니다. 사용자는 getAllTokensWithFilter 메소드를 실행하여 posted 상태의 모든 NFT를 검색할 수 있습니다.
public async postToken(tokenId: number)
매개변수:
  • tokenId: number – 게시할 토큰의 ID입니다.
반환 값 예제:
{
         "isValid":true,
         "payload":{
            "tokenMetadata":{
               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "assetType":"otoken",
            "events":true,
            "tokenId":"1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"created"
         },
         "message":"Successfully updated asset with ID bond1"
      }
purchaseToken
이 방법은 나열된 채권 NFT를 구매하기 위해 모든 계정 소유자가 호출할 수 있습니다. 구매는 채권 NFT를 생성자의 계정에서 호출자의 계정으로 이전하고 CBDC 토큰을 호출자의 계정에서 생성자의 계정으로 이전합니다. 따라서 이 메소드는 원자 트랜잭션의 컨텍스트에서 실행되어야 합니다. 또한 이 방법은 전송 프로세스를 확인하여 전송에 적합한 CBDC 체인 코드가 올바른 orgId 및 userId로 호출되도록 합니다. orgId 및 userId는 토큰 생성자에 해당해야 하며 CBDC 토큰 전송 값은 채권 토큰의 액면 값에 구매 중인 수량을 곱한 값과 같아야 합니다.
public async purchaseToken(tokenId: number, quantity: number, orderId: string, additionalFees: number)
매개변수:
  • tokenId: number – 구매할 토큰의 ID입니다.
  • quantity: number – 구매할 토큰의 양입니다.
  • orderId: string – 구매 작업의 주문 ID입니다.
  • additionalFees: number – 구매 가격에 추가 할 추가 요금.
반환 값 예제:
{
   "returnCode":"Success",
   "error":"",
   "result":{
      "transactions":[
         {
            "channel":"test",
            "chaincode":"BondMarketplace",
            "txstatus":"Committed",
            "prepare":{
               "txid":"e969f962df5efda2ea6287380e308cc974efd79dfff3567840ed3844bf936160"
            },
            "commit":{
               "txid":"5544e928d3242291fb39189e8329679a9c81d61d6f72db60ca89135cd20fffef"
            },
            "rollback":{
               
            }
         },
         {
            "channel":"cbdctest",
            "chaincode":"cbdc",
            "txstatus":"Committed",
            "prepare":{
               "txid":"1245885b1a0c7f12c41fa2f2905549b8a5f37ab3a5e094b9dca122cb0611a117"
            },
            "commit":{
               "txid":"3c83e20c7d470cdc9c1b0e2e0ea8d9962d58ada8d1b8f0d2606c8aa1f0ae7741"
            },
            "rollback":{
               
            }
         }
      ],
      "lrc":{
         
      },
      "globalStatus":"Success",
      "globalTxid":"761bb7cc-1d66-4645-aeb2-50e4dbd23d83",
      "txStartTime":"2024-12-05T12:01:21.881988035Z"
   }
}
payInterest
이 방법은 채권 토큰에서 획득한 이자를 지불하기 위해 토큰 생성자 또는 관리자만 호출할 수 있습니다. 이 메소드는 토큰의 이자 빈도가 월별, 분기별 또는 연간인 경우에만 호출할 수 있습니다. 이자 빈도가 만기인 경우 이자를 지급할 수 없습니다. 이자는 토큰의 쿠폰 금리를 기반으로 체인 코드에 의해 계산됩니다. 구매 작업은 콜러의 계정에서 채권 소유자의 계정으로 CBDC 토큰을 이전합니다. 따라서 이 메소드는 원자 트랜잭션의 컨텍스트에서 실행되어야 합니다. 또한 이 방법은 전송 프로세스를 확인하여 전송에 적합한 CBDC 체인코드가 올바른 orgId 및 userId로 호출되도록 합니다. orgId 및 userId는 토큰 소유자와 일치해야 하며 CBDC 토큰 전송 값은 채권 체인 코드에 의해 계산된 이자와 같아야 합니다.
public async payInterest(orgId: string, userId: string, tokenId: number, orderId: string)
매개변수:
  • orgId: string – 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • userId: string – 사용자의 사용자 이름 또는 전자메일 ID입니다.
  • tokenId: number – 토큰 ID입니다.
  • orderId: string – 구매 작업의 주문 ID입니다.
반환 값 예제:
{
   "returnCode":"Success",
   "error":"",
   "result":{
      "transactions":[
         {
            "channel":"test",
            "chaincode":"BondMarketplace",
            "txstatus":"Committed",
            "prepare":{
               "txid":"e969f962df5efda2ea6287380e308cc974efd79dfff3567840ed3844bf936160"
            },
            "commit":{
               "txid":"5544e928d3242291fb39189e8329679a9c81d61d6f72db60ca89135cd20fffef"
            },
            "rollback":{
               
            }
         },
         {
            "channel":"cbdctest",
            "chaincode":"cbdc",
            "txstatus":"Committed",
            "prepare":{
               "txid":"1245885b1a0c7f12c41fa2f2905549b8a5f37ab3a5e094b9dca122cb0611a117"
            },
            "commit":{
               "txid":"3c83e20c7d470cdc9c1b0e2e0ea8d9962d58ada8d1b8f0d2606c8aa1f0ae7741"
            },
            "rollback":{
               
            }
         }
      ],
      "lrc":{
         
      },
      "globalStatus":"Success",
      "globalTxid":"761bb7cc-1d66-4645-aeb2-50e4dbd23d83",
      "txStartTime":"2024-12-05T12:01:21.881988035Z"
   }
}
requestTokenRedemption
이 방법은 토큰 소유자가 만기 후 본드 토큰의 상환 요청을 제기하기 위해서만 호출할 수 있습니다. 이 방법에는 체인 코드별 상환 가격 계산도 포함됩니다. 상환 요청은 사용자가 소유한 채권 토큰의 전체 수량에서만 발생할 수 있습니다. 사용자는 서로 다른 결산 ID를 기반으로 다중 상환 요청을 생성할 수 있지만 토큰 생성자가 하나만 승인할 수 있습니다.
public async requestTokenRedemption(settlementId: string, tokenId: number, orderId: string, additionalFees: number)
매개변수:
  • settlementId: string – 상환 작업에 대한 결산 ID입니다.
  • tokenId: number – 토큰 ID입니다.
  • orderId: string – 구매 작업의 주문 ID입니다.
  • additionalFees: number – 상환 가격에 추가될 추가 요금.
반환 값 예제:
{
         "tokenName":"bond",
         "assetType":"otokenApproval",
         "id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "settlementId":"op4",
         "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "tokenId":"1",
         "quantity":1,
         "status":"PENDING",
         "orderId":"op4",
         "redeemPrice":11

}
approveTokenRedemption
이 메소드는 채권 토큰의 상환 요청을 승인하기 위해 토큰 생성자에 의해서만 호출될 수 있습니다. 승인 작업은 소유자의 계정(요청을 제기한 사용자)에서 생성자의 계정으로 채권 NFT를 이전하고 채권 생성자의 CBDC 토큰을 소유자의 계정으로 이전합니다. 이 때문에 이 메소드는 원자 트랜잭션의 컨텍스트에서 실행되어야 합니다. 또한 이 방법은 전송 프로세스를 확인하여 전송에 적합한 CBDC 체인코드가 올바른 orgId 및 userId로 호출되도록 합니다. orgId 및 userId는 상환 요청을 제기한 토큰 소유자의 계정에 해당해야 하며, CBDC 토큰 전송 값은 상환 요청을 제기하는 동안 체인 코드에 의해 계산된 계산된 계산된 상환 가격과 같아야 합니다.
public async approveRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: number)
매개변수:
  • fromOrgId: string – 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • fromUserId: string – 사용자의 사용자 이름 또는 전자메일 ID입니다.
  • settlementId: string – 상환 작업에 대한 결산 ID입니다.
  • tokenId: number – 토큰 ID입니다.
반환 값 예제:
{
   "returnCode":"Success",
   "error":"",
   "result":{
      "transactions":[
         {
            "channel":"test",
            "chaincode":"BondMarketplace",
            "txstatus":"Committed",
            "prepare":{
               "txid":"e969f962df5efda2ea6287380e308cc974efd79dfff3567840ed3844bf936160"
            },
            "commit":{
               "txid":"5544e928d3242291fb39189e8329679a9c81d61d6f72db60ca89135cd20fffef"
            },
            "rollback":{
               
            }
         },
         {
            "channel":"cbdctest",
            "chaincode":"cbdc",
            "txstatus":"Committed",
            "prepare":{
               "txid":"1245885b1a0c7f12c41fa2f2905549b8a5f37ab3a5e094b9dca122cb0611a117"
            },
            "commit":{
               "txid":"3c83e20c7d470cdc9c1b0e2e0ea8d9962d58ada8d1b8f0d2606c8aa1f0ae7741"
            },
            "rollback":{
               
            }
         }
      ],
      "lrc":{
         
      },
      "globalStatus":"Success",
      "globalTxid":"761bb7cc-1d66-4645-aeb2-50e4dbd23d83",
      "txStartTime":"2024-12-05T12:01:21.881988035Z"
   }
}
rejectRedemption
토큰 생성자는 이 메소드를 호출하여 상환 요청을 거부할 수 있습니다. 토큰 소유자는 다른 결제 ID를 사용하여 상환 요청을 다시 제기할 수 있습니다.
public async rejectRedemption(fromOrgId: string, fromUserId: string, settlementId: string, tokenId: number)
매개변수:
  • fromOrgId: string – 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • fromUserId: string – 사용자의 사용자 이름 또는 전자메일 ID입니다.
  • settlementId: string – 상환 작업에 대한 결산 ID입니다.
  • tokenId: number – 토큰 ID입니다.
반환 값 예제:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
getAllTokensWithFilters
관리자는 이 get 메소드를 호출하여 상태별로 필터링된 모든 토큰(CREATED 또는 POSTED)을 인출할 수 있습니다.
public async getAllTokensWithFilters(status: string, pageSize: number, bookmark: string)
매개변수:
  • status: string – 토큰의 상태이며 CREATED 또는 POSTED일 수 있습니다.
  • pageSize: number – 반환된 결과의 페이지 크기입니다.
  • bookmark: string – 반환된 결과의 책갈피입니다.
반환 값 예제:
[{
            "tokenMetadata":{
               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "assetType":"otoken",
            "events":true,
            "tokenId":"1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"posted"
         }

]
getTokenApprovalRequestByUser
모든 계정 소유자는 이 get 메소드를 호출하여 자신이 만든 모든 토큰 승인 요청(상환 요청)의 세부 정보를 가져올 수 있습니다.
public async getTokenApprovalRequestByUser(status: string)
매개변수:
  • status: string – 요청 상태이며, PENDING, REJECTED 또는 APPROVED일 수 있습니다.
반환 값 예제:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getTokenApprovalRequestForUserByStatus
모든 계정 소유자는 이 get 메소드를 호출하여 자신이 만든 모든 토큰 승인 요청(상환 요청)의 세부 정보를 가져올 수 있습니다.
public async getTokenApprovalRequestForUserByStatus(status: string)
매개변수:
  • status: string – 요청 상태이며, PENDING, REJECTED 또는 APPROVED일 수 있습니다.
반환 값 예제:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getAccountBondSummary
모든 계정 소유자는 이 get 메소드를 호출하여 구매 또는 상환된 토큰의 세부정보와 구매 가격 및 상환 가격을 포함하는 계정 요약을 가져올 수 있습니다.
public async getAccountBondSummary(orgId: string, userId: string)
매개변수:
  • orgId: string – 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • userId: string – 사용자의 사용자 이름 또는 전자메일 ID입니다.
반환 값 예제:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"REJECTED"
      },
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "tokenId":"1",
         "status":"Purchased",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op2",
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"APPROVED"
      }
   ]
}
getAccountBondSummaryWithPagination
모든 계정 소유자는 이 get 메소드를 호출하여 구매 또는 상환된 토큰의 세부정보와 구매 가격 및 상환 가격을 포함하는 계정 요약을 가져올 수 있습니다. 이 방법은 페이지 크기 및 책갈피 값을 기반으로 페이지 매김이 포함된 결과를 반환하고 시작 시간 및 종료 시간별로 필터링할 수도 있습니다.
public async getAccountBondSummaryWithPagination(orgId: string, userId: string, pageSize: number, bookmark?: string)
매개변수:
  • orgId: string – 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • userId: string – 사용자의 사용자 이름 또는 전자메일 ID입니다.
  • pageSize: number – 반환된 결과의 페이지 크기입니다.
  • bookmark: string – 반환된 결과의 책갈피입니다.
반환 값 예제:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"REJECTED"
      },
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "tokenId":"1",
         "status":"Purchased",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op2",
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"APPROVED"
      }
   ]
}

채권 마켓플레이스용 TypeScript SDK 방법

payInterest
토큰 생성자 또는 관리자가 이 메소드를 호출하여 채권 토큰에서 획득한 이자를 지불할 수 있습니다. 이 메소드는 토큰의 이자 빈도가 월별, 분기별 또는 연간인 경우에만 호출할 수 있습니다. 이자 빈도가 만기인 경우 이자를 지급할 수 없습니다. 이자는 토큰의 쿠폰 금리를 기반으로 체인 코드 자체에 의해 계산됩니다. 구매 작업은 콜러의 계정에서 채권 소유자의 계정으로 CBDC 토큰을 이전합니다. 따라서 이 메소드는 원자 트랜잭션의 컨텍스트에서 실행되어야 합니다. 또한 이 방법은 전송 프로세스를 확인하여 전송에 적합한 CBDC 체인코드가 올바른 orgId 및 userId로 호출되도록 합니다. orgId 및 userId는 토큰 소유자와 일치해야 하며 CBDC 토큰 전송 값은 채권 체인 코드에 의해 계산되는 이자와 같아야 합니다.
this.Ctx.ERC1155AccountBondSummary.payInterest(userAccountId, tokenId, orderId)
매개변수:
  • userAccountId: string – 사용자의 계정 ID입니다.
  • tokenId: string – 토큰 ID입니다.
  • orderId: string – 구매 작업의 주문 ID입니다.
반환 값 예제:
{
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "interestEarned": 11,
         "interestEarnedDate": "2024-12-02T00:00:00.000Z"
}
requestTokenRedemption
이 방법은 토큰 소유자가 만기 후 본드 토큰의 상환 요청을 제기하기 위해서만 호출할 수 있습니다. 이 방법에는 체인 코드별 상환 가격 계산도 포함됩니다. 상환 요청은 사용자가 소유한 채권 토큰의 전체 수량에서만 발생할 수 있습니다. 사용자는 서로 다른 결산 ID를 기반으로 다중 상환 요청을 생성할 수 있지만 토큰 생성자가 하나만 승인할 수 있습니다.
this.Ctx.ERC1155TokenApproval.requestTokenRedemption(callerUserAccountId, settlementId, tokenId, orderId, quantity, additionalFees);
매개변수:
  • callerUserAccountId: string – 사용자의 계정 ID입니다.
  • settlementId: string – 상환 작업에 대한 결산 ID입니다.
  • tokenId: string – 토큰 ID입니다.
  • orderId: string – 구매 작업의 주문 ID입니다.
  • additionalFees: number – 상환 가격에 추가될 추가 요금.
반환 값 예제:
{
         "tokenName":"bond",
         "assetType":"otokenApproval",
         "id":"otokenApproval~9e006057ac96ae997e3964531b1a08ad2316555701c7fe9ec7b88e38e20892bf",
         "settlementId":"op4",
         "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op4",
         "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
         "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "tokenId":"1",
         "quantity":1,
         "status":"PENDING",
         "orderId":"op4",
         "redeemPrice":11
}
approveTokenRedemption
이 메소드는 채권 토큰의 상환 요청을 승인하기 위해 토큰 생성자에 의해서만 호출될 수 있습니다. 승인 작업은 소유자의 계정(요청을 제기한 사용자)에서 생성자의 계정으로 채권 NFT를 이전하고 채권 생성자의 CBDC 토큰을 소유자의 계정으로 이전합니다. 이 때문에 이 메소드는 원자 트랜잭션의 컨텍스트에서 실행되어야 합니다. 또한 이 방법은 전송 프로세스를 확인하여 전송에 적합한 CBDC 체인코드가 올바른 orgId 및 userId로 호출되도록 합니다. orgId 및 userId는 상환 요청을 제기한 토큰 소유자의 계정에 해당해야 하며, CBDC 토큰 전송 값은 상환 요청을 제기하는 동안 체인 코드에 의해 계산된 계산된 계산된 상환 가격과 같아야 합니다.
this.Ctx.ERC1155TokenApproval.approveTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
매개변수:
  • fromUserAccountId: string – 사용자의 계정 ID입니다.
  • settlementId: string – 상환 작업에 대한 결산 ID입니다.
  • tokenId: string – 토큰 ID입니다.
반환 값 예제:
{
   "status":"success",
   "msg":"Successfully approved the token approval request"
}
rejectRedemption
토큰 생성자는 이 메소드를 호출하여 상환 요청을 거부할 수 있습니다. 토큰 소유자는 다른 결제 ID를 사용하여 상환 요청을 다시 제기할 수 있습니다.
this.Ctx.ERC1155TokenApproval.rejectTokenApprovalRequest(fromUserAccountId, settlementId, tokenId)
매개변수:
  • fromOrgId: string – 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • fromUserId: string – 사용자의 사용자 이름 또는 전자메일 ID입니다.
  • settlementId: string – 상환 작업에 대한 결산 ID입니다.
  • tokenId: string – 토큰 ID입니다.
반환 값 예제:
{
   "status":"success",
   "msg":"Successfully rejected the token approval request"
}
getAllTokensWithFilter
관리자는 이 get 메소드를 호출하여 상태별로 필터링된 모든 토큰(CREATED 또는 POSTED)을 인출할 수 있습니다.
this.Ctx.ERC1155Token.getAllTokensWithFilters(status, pageSize, bookmark)
매개변수:
  • status: string – 토큰의 상태이며 CREATED 또는 POSTED일 수 있습니다.
  • pageSize: number – 반환된 결과의 페이지 크기입니다.
  • bookmark: string – 반환된 결과의 책갈피입니다.
반환 값 예제:
[{
            "tokenMetadata":{
               "ISIN":"ISIN value",
               "Segment":"Segment value",
               "Issuer":"Issuer value",
               "FaceValue":10,
               "IssueSize":999,
               "CouponRate":10,
               "InterestPaymentType":"simple",
               "InterestFrequency":"monthly",
               "IssueDate":"2023-03-28T15:16:36.000Z",
               "MaturityDate":"2023-03-28T15:16:36.000Z"
            },
            "assetType":"otoken",
            "events":true,
            "tokenId":"1",
            "tokenName":"bond",
            "tokenDesc":"tokenDesc value",
            "tokenStandard":"erc1155+",
            "tokenType":"nonfungible",
            "tokenUnit":"fractional",
            "behaviors":[
               "divisible",
               "mintable",
               "transferable",
               "burnable",
               "roles"
            ],
            "roles":{
               "minter_role_name":"minter",
               "burner_role_name":"burner"
            },
            "mintable":{
               "max_mint_quantity":0
            },
            "quantity":100,
            "createdBy":"oaccount~276bcf1324b1ad1e493e22432db3b39f7a4b9bb17b8525c0391ea3ba36138e00",
            "creationDate":"2024-12-02T12:42:09.000Z",
            "divisible":{
               "decimal":0
            },
            "isBurned":false,
            "isLocked":false,
            "tokenUri":"tokenUri value",
            "status":"posted"
         }

]
getTokenApprovalRequestByUser
모든 계정 소유자는 이 get 메소드를 호출하여 자신이 만든 모든 토큰 승인 요청(상환 요청)의 세부 정보를 가져올 수 있습니다.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestByUserByStatus(status)
매개변수:
  • status: string – 요청 상태이며, PENDING, REJECTED 또는 APPROVED일 수 있습니다.
반환 값 예제:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getTokenApprovalRequestForUserByStatus
모든 계정 소유자는 이 get 메소드를 호출하여 자신이 만든 모든 토큰 승인 요청(상환 요청)의 세부 정보를 가져올 수 있습니다.
this.Ctx.ERC1155TokenApproval.getAllTokenApprovalRequestForUserByStatus(status)
매개변수:
  • status: string – 요청 상태이며, PENDING, REJECTED 또는 APPROVED일 수 있습니다.
반환 값 예제:
[
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~5b2a94283ae95e3d6e5b76ffd6f75b7bff231e4df270a82cdc1f6badd17dea4b",
      "settlementId":"op1",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "quantity":2,
      "status":"APPROVED",
      "orderId":"op1",
      "redeemPrice":1,
      "purchasedPrice":11,
      "interestEarned":0
   },
   {
      "tokenName":"bond",
      "assetType":"otokenApproval",
      "id":"otokenApproval~fdf28b2d271ac9c0fbd94a2dedbf365728c77795f3e931e5a4a2dcf48039a989",
      "settlementId":"op3",
      "userBondDetailsId":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op3",
      "fromAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
      "toAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
      "tokenId":"1",
      "quantity":1,
      "status":"APPROVED",
      "orderId":"op3",
      "redeemPrice":11,
      "purchasedPrice":11,
      "interestEarned":0
   }
]
getAccountBondSummary
모든 계정 소유자는 이 get 메소드를 호출하여 구매 또는 상환된 토큰의 세부정보와 구매 가격 및 상환 가격을 포함하는 계정 요약을 가져올 수 있습니다.
this.Ctx.ERC1155AccountBondSummary.getAllAccountBondSummary(userAccountId)
매개변수:
  • userAccountId: string – 사용자의 계정 ID입니다.
반환 값 예제:
{

   "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
   "orgId":"BondMPTest",
   "userId":"u10",
   "accountSummary":[
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
         "tokenId":"1",
         "status":"Redeemed",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op1"
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"REJECTED"
      },
      {
         "purchasedQuantity":1,
         "assetType":"oUserBondDetails",
         "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
         "tokenId":"1",
         "status":"Purchased",
         "purchasedAmount":11,
         "purchasedDate":"2024-12-02T00:00:00.000Z",
         "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
         "orderId":"op2",
         "redeemPrice":11,
         "quantityRedeem":1,
         "redeemStatus":"APPROVED"
      }
   ]
}
getAccountBondSummaryWithPagination
모든 계정 소유자는 이 get 메소드를 호출하여 구매 또는 상환된 토큰의 세부정보와 구매 가격 및 상환 가격을 포함하는 계정 요약을 가져올 수 있습니다. 이 방법은 페이지 크기 및 책갈피 값을 기반으로 페이지 매김이 포함된 결과를 반환하고 시작 시간 및 종료 시간별로 필터링할 수도 있습니다.
this.Ctx.ERC1155AccountBondSummary.getAllAccountBondSummaryWithPagination(userAccountId, pageSize, bookmark)
매개변수:
  • userAccountId: string – 사용자의 계정 ID입니다.
  • pageSize: number – 반환된 결과의 페이지 크기입니다.
  • bookmark: string – 반환된 결과의 책갈피입니다.
반환 값 예제:
    {

       "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
       "orgId":"BondMPTest",
       "userId":"u10",
       "accountSummary":[
          {
             "purchasedQuantity":1,
             "assetType":"oUserBondDetails",
             "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
             "tokenId":"1",
             "status":"Redeemed",
             "purchasedAmount":11,
             "purchasedDate":"2024-12-02T00:00:00.000Z",
             "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
             "orderId":"op1"
             "redeemPrice":11,
             "quantityRedeem":1,
             "redeemStatus":"REJECTED"
          },
          {
             "purchasedQuantity":1,
             "assetType":"oUserBondDetails",
             "id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
             "tokenId":"1",
             "status":"Purchased",
             "purchasedAmount":11,
             "purchasedDate":"2024-12-02T00:00:00.000Z",
             "purchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
             "orderId":"op2",
             "redeemPrice":11,
             "quantityRedeem":1,
             "redeemStatus":"APPROVED"
          }
       ]
    }

    	

    On success, it returns a message.

    {

       "userAccountId":"ouaccount~df36ebaeb728c7768c0d5a3ecab435985c506ff57fd582212029b6f3c9cabf14",
       "orgId":"BondMPTest",
       "userId":"u10",
       "accountSummary":[
          {
             "PurchasedQuantity":1,
             "AssetType":"oUserBondDetails",
             "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op1",
             "TokenId":"1",
             "Status":"Redeemed",
             "PurchasedAmount":11,
             "PurchasedDate":"2024-12-02T00:00:00.000Z",
             "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
             "OrderId":"op1"
             "RedeemPrice":11,
             "QuantityRedeem":1,
             "RedeemStatus":"REJECTED"
          },
          {
             "PurchasedQuantity":1,
             "AssetType":"oUserBondDetails",
             "Id":"ouserbonddetails~ed3aaa9979bfe6302dcc83b1b903bd383fda60ff17747ca25af3369e26289747~bond1~op2",
             "TokenId":"1",
             "Status":"Purchased",
             "PurchasedAmount":11,
             "PurchasedDate":"2024-12-02T00:00:00.000Z",
             "PurchasedFromAccountId":"ouaccount~e76f696c0d6c626b24d35b3ac21de377a6da24c1bfdab1411f6702a507003a15",
             "OrderId":"op2",
             "RedeemPrice":11,
             "QuantityRedeem":1,
             "RedeemStatus":"APPROVED"
          }
       ]
    }