-
PostToken
- このメソッドは、トークン作成者のみがコールできます。このメソッドは、マーケットプレイスにリストするための債権トークンを発行します。トークンが作成されると、そのステータスは最初に
createdに設定されます。このメソッドは、ステータスをpostedに更新します。ユーザーは、getAllTokensWithFilterメソッドを実行して、postedステータスのすべてのNFTを取得できます。
func (t *Controller) PostToken(tokenId float64) (interface{}, error)
- パラメータ:
tokenId: float64– 投稿するトークンの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トークン転送値は、債券トークンの額に購入数量を乗算した額と同じである必要があります。
func (t *Controller) PurchaseToken(tokenId float64, quantity float64, orderId string, additionalFees float64) (interface{}, error)
- パラメータ:
tokenId: float64– 購入するトークンの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トークン転送値は、結合チェーンコードによって計算された利息と等しい必要があります。
func (t *Controller) PayInterestEarned(orgId string, userId string, tokenId float64, orderId string, additionalFees float64) (interface{}, error)
- パラメータ:
orgId: string– 現在のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
userId: string – ユーザーのユーザー名または電子メールID。
tokenId: float64– トークンの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に基づいて複数の引換え要求を発行できますが、トークン作成者が承認できるのは1つのみです。
func (t *Controller) RequestTokenRedemption(settlementId string, tokenId float64, orderId string, additionalFees float64) (interface{}, error)
- パラメータ:
settlementId: string– 引換操作の決済ID。
tokenId: float64– トークンの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トークン転送値は、引換要求を提起する際にチェーンコードによって計算された計算済引換価格と同じである必要があります。
func (t *Controller) ApproveRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId float64) (interface{}, error)
- パラメータ:
fromOrgId: string– ユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
fromUserId: string– ユーザーのユーザー名または電子メールID。
settlementId: string– 引換操作の決済ID。
tokenId: float64– トークンの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を使用して引換要求を再度呼び出すことができます。
func (t *Controller) RejectRedemption(fromOrgId string, fromUserId string, settlementId string, tokenId float64) (interface{}, error)
- パラメータ:
fromOrgId: string– ユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
fromUserId: string– ユーザーのユーザー名または電子メールID。
settlementId: string– 引換操作の決済ID。
tokenId: float64– トークンのID。
- 戻り値の例:
{
"status":"success",
"msg":"Successfully rejected the token approval request"
}
-
GetAllTokensWithFilter
- 管理者は、このgetメソッドをコールして、ステータスでフィルタされたすべてのトークン(
CREATEDまたはPOSTED)をフェッチできます。
func (t *Controller) GetAllTokensWithFilters(status string, pageSize int32, bookmark string)
- パラメータ:
status: string– トークンのステータス。CREATEDまたはPOSTEDのいずれかです。
pageSize: number– 返される結果のページ・サイズ。
bookmark: string– 返される結果のブックマーク。
- 戻り値の例:
[ {
"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メソッドをコールして、作成したすべてのトークン承認リクエスト(引換えリクエスト)の詳細を取得できます。
func (t *Controller) GetTokenApprovalRequestByUser(status string) (interface{}, error)
- パラメータ:
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メソッドをコールして、作成したすべてのトークン承認リクエスト(引換えリクエスト)の詳細を取得できます。
func (t *Controller) GetTokenApprovalRequestForUserByStatus(status string) (interface{}, error)
- パラメータ:
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メソッドをコールして、購入または償還されたトークンの詳細、購入価格および償還価格を含むアカウント要約を取得できます。
func (t *Controller) GetAccountBondSummary(orgId string, userId string) (interface{}, error)
- パラメータ:
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メソッドをコールして、購入または償還されたトークンの詳細、購入価格および償還価格を含むアカウント要約を取得できます。このメソッドでは、ページ・サイズおよびブックマーク値に基づくページ区切りで結果を返すことができます。また、開始時間と終了時間でフィルタすることもできます。
func (t *Controller) GetAccountBondSummaryWithPagination(orgId string, userId string, pageSize int32, bookmark string) (interface{}, error)
- パラメータ:
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"
}
]
}