도매 CBDC 모델

향상된 버전의 Blockchain App Builder에는 도매 중앙 은행 디지털 통화 (CBDC) 시나리오에 대한 추가 방법을 생성하는 모델 속성이 포함되어 있습니다.

확장된 토큰 분류법 프레임워크 표준을 사용하는 토큰에 대한 사양 파일에 model: wcbdc 매개변수를 포함하는 경우 Blockchain App Builder는 도매 CBDC 애플리케이션과 함께 사용할 다음 추가 방법과 기능을 포함하여 애플리케이션별 체인코드를 생성합니다.

TypeScript 도매 CBDC에 대한 방법

도매 CBDC 체인 코드에는 일반 토큰 분류법 프레임워크 NFT 체인 코드에서 사용할 수 있는 모든 방법이 포함됩니다. 도매 CBDC 시나리오와 관련된 다음 추가 방법을 사용할 수 있습니다.
setApplicationGroups
이 메소드는 API의 지정된 애플리케이션 그룹에 대한 계정 세부정보에서 application_groups 매개변수를 설정합니다. 이 메소드는 지정된 조직의 Token Admin 또는 Org Admin에 의해서만 호출될 수 있습니다.
public async setApplicationGroups (org_id: string, user_id: string, token_id: string, application_groups: string[])
매개변수:
  • org_id: string – 현재 조직에 있는 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • user_id: string – 사용자의 사용자 이름 또는 전자 메일 ID입니다.
  • token_id: string – 토큰의 ID입니다.
  • application_groups: string[] – CBDC 응용 프로그램에서 사용자의 연관을 정의하는 사용자 ID가 속한 응용 프로그램 그룹 목록입니다.
반환 값 예제:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "453821c7ffd477987ef8ccbd836b893969531ab768098cd4a99e3b89cd38a391",
        "payload": {
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "account_id": "oaccount~28ac774001f374064029d51af4fb67e26ea1ea9ef62828b7a72dbf3beb8efd8d",
            "user_id": "admin_user_cb",
            "org_id": "CB",
            "token_type": "fungible",
            "token_id": "",
            "token_name": "",
            "balance": 0,
            "onhold_balance": 0,
            "onhold_burn_balance": 0,
            "application_groups": [
                "System_Admins"
            ],
            "max_daily_amount": 10000,
            "daily_amount": 0,
            "max_daily_transactions": 100,
            "daily_transactions": 0,
            "current_date": "2024-12-09T00:00:00.000Z"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 188
    }
}
getAllActiveAccounts
이 메소드는 지정된 토큰 ID와 연관된 모든 활성 계정을 반환합니다. 모든 사용자가 이 메소드를 호출할 수 있습니다.
public async getAllActiveAccounts(token_id: string)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환값:
  • 성공 시 사용자 세부정보를 포함하는 메시지입니다. 출력은 다음 예와 같이 사용자의 역할에 따라 달라집니다.
반환 값 예(토큰 관리자, 토큰 감사자):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                "non_account_role_name": [
                    "token_admin"
                ],
                "role_name": null,
                "valueJson": {
                    "bapAccountVersion": 0,
                    "assetType": "oaccount",
                    "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                    "user_id": "admin_user_cb",
                    "org_id": "CB",
                    "token_type": "fungible",
                    "token_id": "USD",
                    "token_name": "cbdc",
                    "balance": 0,
                    "onhold_balance": 0,
                    "onhold_burn_balance": 0,
                    "application_groups": [
                        "System_Admins"
                    ],
                    "max_daily_amount": 10000,
                    "daily_amount": 0,
                    "max_daily_transactions": 1000,
                    "daily_transactions": 0,
                    "current_date": "2024-11-20T00:00:00.000Z"
                }
            }
        ],
        "encode": "JSON"
    }
}
반환 값 예(조직 관리자, 조직 감사자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
              "non_account_role_name": [
                  "token_admin"
              ],
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                  "org_id": "CB",
                  "user_id": "admin_user_cb",
                  "token_id": "USD",
                  "max_daily_amount": 10000,
                  "max_daily_transactions": 1000
              }
          }
      ],
      "encode": "JSON"
  }
}
반환 값 예(다른 모든 사용자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
              "non_account_role_name": [
                  "token_admin"
              ],
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                  "org_id": "CB",
                  "user_id": "admin_user_cb",
                  "token_id": "USD",
                  "max_daily_amount": 10000,
                  "max_daily_transactions": 1000
              }
          }
      ],
      "encode": "JSON"
  }
}
getAllSuspendedAccounts
이 메소드는 지정된 토큰 ID와 연관된 일시 중지된 계정을 모두 반환합니다. 모든 사용자가 이 메소드를 호출할 수 있습니다.
func (t *Controller) GetAllSuspendedAccounts(token_id string) (interface{}, error)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환값:
  • 성공 시 사용자 세부정보를 포함하는 메시지입니다. 출력은 다음 예와 같이 사용자의 역할에 따라 달라집니다.
반환 값 예(토큰 관리자, 토큰 감사자):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                "non_account_role_name": null,
                "role_name": null,
                "valueJson": {
                    "assetType": "oaccount",
                    "bapAccountVersion": 1,
                    "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                    "user_id": "user1_fi1",
                    "org_id": "FI1",
                    "token_type": "fungible",
                    "token_id": "USD",
                    "token_name": "cbdc",
                    "balance": 5,
                    "onhold_balance": 0,
                    "onhold_burn_balance": 0,
                    "application_groups": [
                        "Org_Users"
                    ],
                    "max_daily_amount": 10000,
                    "daily_amount": 0,
                    "max_daily_transactions": 1000,
                    "daily_transactions": 0,
                    "current_date": "2024-11-20T00:00:00.000Z"
                }
            }
        ],
        "encode": "JSON"
    }
}
반환 값 예(조직 관리자, 조직 감사자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
              "non_account_role_name": null,
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                  "org_id": "FI1",
                  "user_id": "user1_fi1",
                  "token_id": "USD",
                  "max_daily_amount": 10000,
                  "max_daily_transactions": 1000
              }
          }
      ],
      "encode": "JSON"
  }
}
반환 값 예(다른 모든 사용자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
              "non_account_role_name": null,
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                  "org_id": "FI1",
                  "user_id": "user1_fi1",
                  "token_id": "USD"
              }
          }
      ],
      "encode": "JSON"
  }
}
getBurnQuantity
이 메소드는 지정된 조직에 대해 레코딩된 토큰의 총 수량을 반환합니다. 이 메소드는 Token Admin, Token Auditor 또는 버너 롤을 가진 사용자만 호출할 수 있습니다.
public async getBurnQuantity(token_id: string)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예제:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": {
          "burnt_quantity": 31
      },
      "encode": "JSON"
  }
}
getActionHistory
이 방법은 조직 세부정보 및 관련된 계정(발신자, 수신자 및 공증인)의 사용자 ID를 포함하여 민트, 레코딩 및 이전(발행) 작업에 대해 호출자가 수행한 승인 또는 거부 기록을 검색합니다.
public async getActionHistory(token_id: string)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예제:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "from_account_id": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c",
              "from_org_id": "CB",
              "from_user_id": "retirer_user_cb",
              "holding_id": "ohold~cbdc~USD~eaf6",
              "holding_status": "REJECT_BURN",
              "last_updated_time": "2024-11-26T21:43:22.000Z",
              "notary_account_id": null,
              "notary_org_id": null,
              "notary_user_id": null,
              "operation_id": null,
              "quantity": 3,
              "timetoexpiration": null,
              "to_account_id": "",
              "to_org_id": null,
              "to_user_id": null,
              "token_id": "USD",
              "token_name": null
          },
          {
              "from_account_id": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c",
              "from_org_id": "CB",
              "from_user_id": "retirer_user_cb",
              "holding_id": "ohold~cbdc~USD~0031",
              "holding_status": "REJECT_BURN",
              "last_updated_time": "2024-11-26T21:43:15.000Z",
              "notary_account_id": null,
              "notary_org_id": null,
              "notary_user_id": null,
              "operation_id": null,
              "quantity": 2,
              "timetoexpiration": null,
              "to_account_id": "",
              "to_org_id": null,
              "to_user_id": null,
              "token_id": "USD",
              "token_name": null
          }
      ],
      "encode": "JSON"
  }
}
getPendingIssuance
이 방법은 발신자가 승인자로 지정된 모든 보류 중인 발행(이전) 트랜잭션(조직 세부정보 포함)과 관련된 계정의 사용자 ID(발신자, 수신자 및 공증인)를 검색합니다. 이 메소드는 체인 코드의 Token Admin 또는 Token Auditor, 지정된 조직의 Org Admin 또는 Org Auditor 또는 Notary로만 호출할 수 있습니다.
public async getPendingIssuance(token_id: string)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예제:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "asset_type": "ONHOLD",
              "category": "category value",
              "from_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "from_org_id": "CB",
              "from_user_id": "creator_user_cb",
              "holding_id": "ohold~cbdc~USD~8e314",
              "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
              "notary_org_id": "CB",
              "notary_user_id": "manager_user_cb",
              "operation_id": "8e314",
              "quantity": 10,
              "timetoexpiration": "0",
              "to_account_id": "oaccount~44b844deccc6c314e14b8b9b95b51db5c8de499dbdbd3def2a44ba54c899c142",
              "to_org_id": "FI1",
              "to_user_id": "officer_user1_fi1",
              "token_id": "USD",
              "token_name": "cbdc"
          },
          {
              "asset_type": "ONHOLD",
              "category": "category value",
              "from_account_id": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594",
              "from_org_id": "CB",
              "from_user_id": "issuer_user_cb",
              "holding_id": "ohold~cbdc~USD~8e315",
              "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
              "notary_org_id": "CB",
              "notary_user_id": "manager_user_cb",
              "operation_id": "8e315",
              "quantity": 10,
              "timetoexpiration": "0",
              "to_account_id": "oaccount~44b844deccc6c314e14b8b9b95b51db5c8de499dbdbd3def2a44ba54c899c142",
              "to_org_id": "FI1",
              "to_user_id": "officer_user1_fi1",
              "token_id": "USD",
              "token_name": "cbdc"
          }
      ],
      "encode": "JSON"
  }
}
getPendingRequest
이 메서드는 호출자가 승인자로 할당된 지정된 유형의 보류 중인 모든 요청을 검색합니다. 이 메소드는 체인 코드의 Token Admin 또는 Token Auditor, 지정된 조직의 Org Admin 또는 Org Auditor 또는 Notary로만 호출할 수 있습니다.
public async getPendingRequest(token_id: string, request_type: string)
매개변수:
  • token_id: string – 토큰의 ID입니다.
  • request_type: string – 트랜잭션 유형입니다. 예: mint 또는 burn.
반환 값 예제:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "valueJson": {
                  "assetType": "ohold",
                  "holding_id": "ohold~cbdc~USD~op123",
                  "operation_id": "op123",
                  "token_id": "USD",
                  "token_name": "cbdc",
                  "operation_type": "mint",
                  "status": "pending",
                  "from_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "to_account_id": "",
                  "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
                  "quantity": 10,
                  "time_to_expiration": "0",
                  "category": "category value",
                  "description": "description value"
              }
          }
      ],
      "encode": "JSON"
  }
}
getTotalBalanceByCallerOrgId
이 메소드는 호출자 조직의 총 잔액을 검색합니다. Token Admin, Token Auditor, Org Admin, Org Auditor 또는 계정 소유자가 호출할 수 있습니다.
public async getTotalBalanceByCallerOrgId()
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예제:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "totalBalance": 704
          }
      ],
      "encode": "JSON"
  }
}
getTransactionWithBlockNumber
이 메소드는 지정된 트랜잭션 ID에 대한 트랜잭션의 세부정보를 반환합니다.
public async getTransactionWithBlockNumber(token_id: string, transaction_id: string)
매개변수:
  • token_id: string – 토큰의 ID입니다.
  • transaction_id: string – 트랜잭션의 ID입니다.
반환 값 예제:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "blockNo": 82,
              "key": "otransaction~24f391919a8837d654beaa7346148ea8b2b9704624aef482ce68078c485f5b1b",
              "metadata": null,
              "txnNo": 0,
              "value": null,
              "valueJson": {
                  "assetType": "otransaction",
                  "transaction_id": "otransaction~24f391919a8837d654beaa7346148ea8b2b9704624aef482ce68078c485f5b1b",
                  "token_id": "USD",
                  "from_account_id": "",
                  "from_account_balance": 0,
                  "from_account_onhold_balance": 0,
                  "to_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "to_account_balance": 100,
                  "to_account_onhold_balance": 0,
                  "transaction_type": "REQUEST_MINT",
                  "amount": 200,
                  "timestamp": "2024-11-20T06:48:42.000Z",
                  "number_of_sub_transactions": 0,
                  "holding_id": "",
                  "sub_transaction": "false",
                  "description": ""
              }
          }
      ],
      "encode": "JSON"
  }
}

도매 CBDC 모델에 대해 다음 API가 수정되었습니다.

createAccount
이 방법은 지정된 사용자 및 토큰에 대한 계정을 만듭니다. 언제든 토큰이 있는 사용자에 대해 계정을 만들어야 합니다. 계정은 잔액, 보류 중인 잔액 및 트랜잭션 기록을 추적합니다. 계정 ID는 자산 유형과 토큰 ID를 연결한 다음 조직 ID와 사용자 ID를 연결하여 SHA-256 해시를 생성함으로써 구성됩니다. 이 메소드는 체인 코드의 Token Admin만 호출할 수 있습니다.
public async createAccount(org_id: string, user_id: string, token_type: string, application_groups: string[], daily_limits?: DailyLimits)
매개변수:
  • orgId – 계정을 만들 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다. ID는 영숫자로 시작해야 하며 문자, 숫자 및 밑줄(_), 마침표(.), at 기호(@), 하이픈(-)과 같은 특수 문자를 포함할 수 있습니다.
  • userId – 사용자의 사용자 이름 또는 전자 메일 ID입니다. ID는 영숫자로 시작해야 하며 문자, 숫자 및 밑줄(_), 마침표(.), at 기호(@), 하이픈(-)과 같은 특수 문자를 포함할 수 있습니다.
  • tokenType: TokenType – 토큰의 유형으로, fungible여야 합니다.
  • application_groups: string[] – CBDC 응용 프로그램에서 사용자의 연관을 정의하는 사용자 ID가 속한 응용 프로그램 그룹 목록입니다.
  • daily_limits: DailyLimits – 다음 유형의 JSON 객체입니다.
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    예제에서 max_daily_amount 값은 매일 트랜잭션할 수 있는 최대 토큰 양이고 max_daily_transactions 값은 매일 완료할 수 있는 최대 트랜잭션 수입니다.
  • endorsers: string[] – 트랜잭션을 보증해야 하는 피어의 배열(예: peer1, peer2)입니다.
반환 값 예제:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "453821c7ffd477987ef8ccbd836b893969531ab768098cd4a99e3b89cd38a391",
        "payload": {
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "account_id": "oaccount~28ac774001f374064029d51af4fb67e26ea1ea9ef62828b7a72dbf3beb8efd8d",
            "user_id": "admin_user_cb",
            "org_id": "CB",
            "token_type": "fungible",
            "token_id": "",
            "token_name": "",
            "balance": 0,
            "onhold_balance": 0,
            "onhold_burn_balance": 0,
            "application_groups": [
                "System_Admins"
            ],
            "max_daily_amount": 10000,
            "daily_amount": 0,
            "max_daily_transactions": 100,
            "daily_transactions": 0,
            "current_date": "2024-12-09T00:00:00.000Z"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 188
    }
}

도매 CBDC에 대한 이동 방법

도매 CBDC 체인 코드에는 일반 토큰 분류법 프레임워크 NFT 체인 코드에서 사용할 수 있는 모든 방법이 포함됩니다. 도매 CBDC 시나리오와 관련된 다음 추가 방법을 사용할 수 있습니다.
SetApplicationGroups
이 메소드는 API의 지정된 애플리케이션 그룹에 대한 계정 세부정보에서 application_groups 매개변수를 설정합니다. 이 메소드는 지정된 조직의 Token Admin 또는 Org Admin에 의해서만 호출될 수 있습니다.
func (t *Controller) SetApplicationGroups(token_id string, org_id string, user_id string, application_groups []string) (interface{}, error)
매개변수:
  • org_id: string – 현재 조직에 있는 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • user_id: string – 사용자의 사용자 이름 또는 전자 메일 ID입니다.
  • token_id: string – 토큰의 ID입니다.
  • application_groups: string[] – CBDC 응용 프로그램에서 사용자의 연관을 정의하는 사용자 ID가 속한 응용 프로그램 그룹 목록입니다.
반환 값 예제:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "261c3da4bb6f1724bc8f674c7b001a9b986bc9900d0508363039424926b143ed",
        "payload": {
            "AssetType": "oaccount",
            "AccountId": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
            "UserId": "admin_user_cb",
            "OrgId": "CB",
            "TokenType": "fungible",
            "TokenId": "",
            "TokenName": "",
            "Balance": 0,
            "BalanceOnHold": 0,
            "OnHoldBurnBalance": 0,
            "BapAccountVersion": 0,
            "ApplicationGroups": [
                "System_Admins"
            ],
            "MaxDailyAmount": 10000,
            "DailyAmount": 0,
            "MaxDailyTransactions": 100,
            "DailyTransactions": 0,
            "CurrentDate": "2024-12-09"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 246
    }
}
GetAllActiveAccounts
이 메소드는 지정된 토큰 ID와 연관된 모든 활성 계정을 반환합니다. 모든 사용자가 이 메소드를 호출할 수 있습니다.
func (t *Controller) GetAllActiveAccounts(token_id string) (interface{}, error)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환값:
  • 성공 시 사용자 세부정보를 포함하는 메시지입니다. 출력은 다음 예와 같이 사용자의 역할에 따라 달라집니다.
반환 값 예(토큰 관리자, 토큰 감사자):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "NonAccountRoleName": "[\"token_admin\"]",
                "RoleName": null,
                "key": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
                "valueJson": {
                    "AccountId": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
                    "ApplicationGroups": [
                        "System_Issuers"
                    ],
                    "AssetType": "oaccount",
                    "Balance": 0,
                    "BalanceOnHold": 0,
                    "OnHoldBurnBalance": 0,
                    "BapAccountVersion": 0,
                    "CurrentDate": "2024-11-21",
                    "DailyAmount": 0,
                    "DailyTransactions": 0,
                    "MaxDailyAmount": 10000,
                    "MaxDailyTransactions": 100,
                    "OrgId": "CB",
                    "TokenId": "USD",
                    "TokenName": "cbdc",
                    "TokenType": "fungible",
                    "UserId": "admin_user_cb"
                }
            }
        ],
        "encode": "JSON"
    }
}
반환 값 예(조직 관리자, 조직 감사자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": "[\"token_auditor\"]",
              "RoleName": null,
              "key": "oaccount~bd6262ffdf582675dd9b2506c1d5488864feef0b9e297a9a3322b7c683ad6214",
              "valueJson": {
                  "AccountId": "oaccount~bd6262ffdf582675dd9b2506c1d5488864feef0b9e297a9a3322b7c683ad6214",
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "UserId": "auditor_user_cb",
                  "MaxDailyAmount": 10000,
                  "MaxDailyTransactions": 100,
              }
          }
      ],
      "encode": "JSON"
  }
}
반환 값 예(다른 모든 사용자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": "[\"token_admin\"]",
              "RoleName": null,
              "key": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
              "valueJson": {
                  "AccountId": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "UserId": "admin_user_cb"
              }
          }
      ],
      "encode": "JSON"
  }
}
GetAllSuspendedAccounts
이 메소드는 지정된 토큰 ID와 연관된 일시 중지된 계정을 모두 반환합니다. 모든 사용자가 이 메소드를 호출할 수 있습니다.
public async getAllSuspendedAccounts(token_id: string)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환값:
  • 성공 시 사용자 세부정보를 포함하는 메시지입니다. 출력은 다음 예와 같이 사용자의 역할에 따라 달라집니다.
반환 값 예(토큰 관리자, 토큰 감사자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": null,
              "RoleName": "minter",
              "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "valueJson": {
                  "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "ApplicationGroups": [
                      "System_Admins"
                  ],
                  "AssetType": "oaccount",
                  "Balance": 140,
                  "BalanceOnHold": 0,
                  "OnHoldBurnBalance": 0,
                  "BapAccountVersion": 8,
                  "CurrentDate": "2024-11-21",
                  "DailyAmount": 70,
                  "DailyTransactions": 3,
                  "MaxDailyAmount": 10000,
                  "MaxDailyTransactions": 100,
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "TokenName": "cbdc",
                  "TokenType": "fungible",
                  "UserId": "creator_user_cb"
              }
          }
      ],
      "encode": "JSON"
  }
}
반환 값 예(조직 관리자, 조직 감사자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": null,
              "RoleName": "minter",
              "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "valueJson": {
                  "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "UserId": "creator_user_cb",
                  "MaxDailyAmount": 10000,
                  "MaxDailyTransactions": 100,
              }
          }
      ],
      "encode": "JSON"
  }
}
반환 값 예(다른 모든 사용자):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "NonAccountRoleName": null,
                "RoleName": "minter",
                "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                "valueJson": {
                    "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                    "OrgId": "CB",
                    "TokenId": "USD",
                    "UserId": "creator_user_cb"
                }
            }
        ],
        "encode": "JSON"
    }
}
GetBurnQuantity
이 메소드는 지정된 조직에 대해 레코딩된 토큰의 총 수량을 반환합니다. 이 메소드는 Token Admin, Token Auditor 또는 버너 롤을 가진 사용자만 호출할 수 있습니다.
func (t *Controller) GetBurnQuantity(token_id string) (interface{}, error)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예제:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": {
          "BurnQuantity": 10
      },
      "encode": "JSON"
  }
}
GetActionHistory
이 방법은 조직 세부정보 및 관련된 계정(발신자, 수신자 및 공증인)의 사용자 ID를 포함하여 민트, 레코딩 및 이전(발행) 작업에 대해 호출자가 수행한 승인 또는 거부 기록을 검색합니다.
func (t *Controller) GetActionHistory(token_id string) (interface{}, error)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예제:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "FromAccountId": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c",
              "FromOrgId": "CB",
              "FromUserId": "retirer_user_cb",
              "HoldingId": "ohold~cbdc~USD~6e1223",
              "HoldingStatus": "REJECT_BURN",
              "LastUpdatedTime": "2024-11-21T22:08:26Z",
              "NotaryAccountId": null,
              "NotaryOrgId": null,
              "NotaryUserId": null,
              "OperationId": null,
              "Quantity": 5,
              "TimeToExpiration": null,
              "ToAccountId": "",
              "ToOrgId": null,
              "ToUserId": null,
              "TokenId": "USD",
              "TokenName": null
          },
          {
              "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "FromOrgId": "CB",
              "FromUserId": "creator_user_cb",
              "HoldingId": "ohold~cbdc~USD~hold2",
              "HoldingStatus": "RELEASEHOLD",
              "LastUpdatedTime": "2024-11-21T21:54:33Z",
              "NotaryAccountId": null,
              "NotaryOrgId": null,
              "NotaryUserId": null,
              "OperationId": null,
              "Quantity": 10,
              "TimeToExpiration": null,
              "ToAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "ToOrgId": "CB",
              "ToUserId": "creator_user_cb",
              "TokenId": "USD",
              "TokenName": null
          }
      ],
      "encode": "JSON"
  }
}
GetPendingIssuance
이 방법은 발신자가 승인자로 지정된 모든 보류 중인 발행(이전) 트랜잭션(조직 세부정보 포함)과 관련된 계정의 사용자 ID(발신자, 수신자 및 공증인)를 검색합니다. 이 메소드는 체인 코드의 Token Admin 또는 Token Auditor, 지정된 조직의 Org Admin 또는 Org Auditor 또는 Notary로만 호출할 수 있습니다.
func (t *Controller) GetPendingIssuance(token_id string) (interface{}, error)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예제:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "AssetType": "ONHOLD",
              "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "FromOrgId": "CB",
              "FromUserId": "creator_user_cb",
              "HoldingId": "ohold~cbdc~USD~h123",
              "NotaryAccountId": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
              "NotaryOrgId": "CB",
              "NotaryUserId": "manager_user_cb",
              "OperationId": "h123",
              "Quantity": 10,
              "TimeToExpiration": "0",
              "ToAccountId": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594",
              "ToOrgId": "CB",
              "ToUserId": "issuer_user_cb",
              "TokenId": "USD",
              "TokenName": "cbdc"
          }
      ],
      "encode": "JSON"
  }
}
GetPendingRequest
이 메서드는 호출자가 승인자로 할당된 지정된 유형의 보류 중인 모든 요청을 검색합니다. 이 메소드는 체인 코드의 Token Admin 또는 Token Auditor, 지정된 조직의 Org Admin 또는 Org Auditor 또는 Notary로만 호출할 수 있습니다.
func (t *Controller) GetPendingRequest(token_id string, request_type string) (interface{}, error)
매개변수:
  • token_id: string – 토큰의 ID입니다.
  • request_type: string – 트랜잭션 유형입니다. 예: mint 또는 burn.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "valueJson": {
                  "AssetType": "ohold",
                  "Category": "Category value",
                  "Description": "Description value",
                  "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "HoldingId": "ohold~cbdc~USD~8e1232",
                  "NotaryAccountId": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
                  "OperationId": "8e1232",
                  "OperationType": "mint",
                  "Quantity": 100,
                  "Status": "pending",
                  "TimeToExpiration": "0",
                  "ToAccountId": "",
                  "TokenId": "USD",
                  "TokenName": "cbdc"
              }
          }
      ],
      "encode": "JSON"
  }
}
GetTotalBalanceByCallerOrgId
이 메소드는 호출자 조직의 총 잔액을 검색합니다. Token Admin, Token Auditor, Org Admin, Org Auditor 또는 계정 소유자가 호출할 수 있습니다.
func (t *Controller) GetTotalBalanceByCallerOrgId() (interface{}, error)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "TotalBalance": 180
          }
      ],
      "encode": "JSON"
  }
}
GetTransactionWithBlockNumber
이 메소드는 지정된 트랜잭션 ID에 대한 트랜잭션의 세부정보를 반환합니다.
func (t *Controller) GetTransactionWithBlockNumber(token_id string, transaction_id string)
매개변수:
  • token_id: string – 토큰의 ID입니다.
  • transaction_id: string – 트랜잭션의 ID입니다.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "blockNo": 152,
              "key": "otransaction~eee2de20b4b042884da83e3b7b85d8532ad56f26a546ee25d227acce33375c1c",
              "metadata": null,
              "txnNo": 0,
              "value": null,
              "valueJson": {
                  "Amount": 10,
                  "AssetType": "otransaction",
                  "Category": "Category value",
                  "Description": "",
                  "FromAccountBalance": 130,
                  "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "FromAccountOnHoldBalance": 10,
                  "HoldingId": "ohold~cbdc~USD~hold1",
                  "NumberOfSubTransactions": 0,
                  "SubTransaction": "false",
                  "SubTransactionType": "",
                  "Timestamp": "2024-11-21T20:43:59Z",
                  "ToAccountBalance": 10,
                  "ToAccountId": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594",
                  "ToAccountOnHoldBalance": 0,
                  "TokenId": "USD",
                  "TransactionId": "otransaction~eee2de20b4b042884da83e3b7b85d8532ad56f26a546ee25d227acce33375c1c",
                  "TransactionType": "EXECUTEHOLD"
              }
          }
      ],
      "encode": "JSON"
  }
}

도매 CBDC 모델에 대해 다음 API가 수정되었습니다.

CreateAccount
이 방법은 지정된 사용자 및 토큰에 대한 계정을 만듭니다. 언제든 토큰이 있는 사용자에 대해 계정을 만들어야 합니다. 계정은 잔액, 보류 중인 잔액 및 트랜잭션 기록을 추적합니다. 계정 ID는 자산 유형과 토큰 ID를 연결한 다음 조직 ID와 사용자 ID를 연결하여 SHA-256 해시를 생성함으로써 구성됩니다. 이 메소드는 체인 코드의 Token Admin만 호출할 수 있습니다.
func (t *Controller) CreateAccount(org_id string, user_id string, token_type string, application_groups []string, daily_limits ...account.AccountDailyLimits) (interface{}, error)
매개변수:
  • orgId – 계정을 만들 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다. ID는 영숫자로 시작해야 하며 문자, 숫자 및 밑줄(_), 마침표(.), at 기호(@), 하이픈(-)과 같은 특수 문자를 포함할 수 있습니다.
  • userId – 사용자의 사용자 이름 또는 전자 메일 ID입니다. ID는 영숫자로 시작해야 하며 문자, 숫자 및 밑줄(_), 마침표(.), at 기호(@), 하이픈(-)과 같은 특수 문자를 포함할 수 있습니다.
  • tokenType: TokenType – 토큰의 유형으로, fungible여야 합니다.
  • application_groups: string[] – CBDC 응용 프로그램에서 사용자의 연관을 정의하는 사용자 ID가 속한 응용 프로그램 그룹 목록입니다.
  • daily_limits: DailyLimits – 다음 유형의 JSON 객체입니다.
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    예제에서 max_daily_amount 값은 매일 트랜잭션할 수 있는 최대 토큰 양이고 max_daily_transactions 값은 매일 완료할 수 있는 최대 트랜잭션 수입니다.
  • endorsers: string[] – 트랜잭션을 보증해야 하는 피어의 배열(예: peer1, peer2)입니다.
반환 값 예제:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "261c3da4bb6f1724bc8f674c7b001a9b986bc9900d0508363039424926b143ed",
        "payload": {
            "AssetType": "oaccount",
            "AccountId": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
            "UserId": "admin_user_cb",
            "OrgId": "CB",
            "TokenType": "fungible",
            "TokenId": "",
            "TokenName": "",
            "Balance": 0,
            "BalanceOnHold": 0,
            "OnHoldBurnBalance": 0,
            "BapAccountVersion": 0,
            "ApplicationGroups": [
                "System_Admins"
            ],
            "MaxDailyAmount": 10000,
            "DailyAmount": 0,
            "MaxDailyTransactions": 100,
            "DailyTransactions": 0,
            "CurrentDate": "2024-12-09"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 246
    }
}

TypeScript 도매 CBDC에 대한 SDK 방법

setApplicationGroups
이 메소드는 API의 지정된 애플리케이션 그룹에 대한 계정 세부정보에서 application_groups 매개변수를 설정합니다.
this.Ctx.Account.setApplicationGroups (account_id, application_groups)
매개변수:
  • account_id: string – 계정의 ID입니다.
  • application_groups: string[] – CBDC 응용 프로그램에서 사용자의 연관을 정의하는 사용자 ID가 속한 응용 프로그램 그룹 목록입니다.
반환 값 예제:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "453821c7ffd477987ef8ccbd836b893969531ab768098cd4a99e3b89cd38a391",
        "payload": {
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "account_id": "oaccount~28ac774001f374064029d51af4fb67e26ea1ea9ef62828b7a72dbf3beb8efd8d",
            "user_id": "admin_user_cb",
            "org_id": "CB",
            "token_type": "fungible",
            "token_id": "",
            "token_name": "",
            "balance": 0,
            "onhold_balance": 0,
            "onhold_burn_balance": 0,
            "application_groups": [
                "System_Admins"
            ],
            "max_daily_amount": 10000,
            "daily_amount": 0,
            "max_daily_transactions": 100,
            "daily_transactions": 0,
            "current_date": "2024-12-09T00:00:00.000Z"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 188
    }
}
getAllActiveAccounts
이 메소드는 지정된 토큰 ID와 연관된 모든 활성 계정을 반환합니다.
this.Ctx.CBDCToken.getAllActiveAccounts(token_id)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환값:
  • 성공 시 사용자 세부정보를 포함하는 메시지입니다. 출력은 다음 예와 같이 사용자의 역할에 따라 달라집니다.
반환 값 예(토큰 관리자, 토큰 감사자):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                "non_account_role_name": [
                    "token_admin"
                ],
                "role_name": null,
                "valueJson": {
                    "bapAccountVersion": 0,
                    "assetType": "oaccount",
                    "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                    "user_id": "admin_user_cb",
                    "org_id": "CB",
                    "token_type": "fungible",
                    "token_id": "USD",
                    "token_name": "cbdc",
                    "balance": 0,
                    "onhold_balance": 0,
                    "onhold_burn_balance": 0,
                    "application_groups": [
                        "System_Admins"
                    ],
                    "max_daily_amount": 10000,
                    "daily_amount": 0,
                    "max_daily_transactions": 1000,
                    "daily_transactions": 0,
                    "current_date": "2024-11-20T00:00:00.000Z"
                }
            }
        ],
        "encode": "JSON"
    }
}
반환 값 예(조직 관리자, 조직 감사자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
              "non_account_role_name": [
                  "token_admin"
              ],
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                  "org_id": "CB",
                  "user_id": "admin_user_cb",
                  "token_id": "USD",
                  "max_daily_amount": 10000,
                  "max_daily_transactions": 1000
              }
          }
      ],
      "encode": "JSON"
  }
}
반환 값 예(다른 모든 사용자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
              "non_account_role_name": [
                  "token_admin"
              ],
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
                  "org_id": "CB",
                  "user_id": "admin_user_cb",
                  "token_id": "USD",
                  "max_daily_amount": 10000,
                  "max_daily_transactions": 1000
              }
          }
      ],
      "encode": "JSON"
  }
}
getAllSuspendedAccounts
이 메소드는 지정된 토큰 ID와 연관된 일시 중지된 계정을 모두 반환합니다.
this.Ctx.CBDCToken.getAllSuspendedAccounts(token_id)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환값:
  • 성공 시 사용자 세부정보를 포함하는 메시지입니다. 출력은 다음 예와 같이 사용자의 역할에 따라 달라집니다.
반환 값 예(토큰 관리자, 토큰 감사자):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                "non_account_role_name": null,
                "role_name": null,
                "valueJson": {
                    "assetType": "oaccount",
                    "bapAccountVersion": 1,
                    "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                    "user_id": "user1_fi1",
                    "org_id": "FI1",
                    "token_type": "fungible",
                    "token_id": "USD",
                    "token_name": "cbdc",
                    "balance": 5,
                    "onhold_balance": 0,
                    "onhold_burn_balance": 0,
                    "application_groups": [
                        "Org_Users"
                    ],
                    "max_daily_amount": 10000,
                    "daily_amount": 0,
                    "max_daily_transactions": 1000,
                    "daily_transactions": 0,
                    "current_date": "2024-11-20T00:00:00.000Z"
                }
            }
        ],
        "encode": "JSON"
    }
}
반환 값 예(조직 관리자, 조직 감사자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
              "non_account_role_name": null,
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                  "org_id": "FI1",
                  "user_id": "user1_fi1",
                  "token_id": "USD",
                  "max_daily_amount": 10000,
                  "max_daily_transactions": 1000
              }
          }
      ],
      "encode": "JSON"
  }
}
반환 값 예(다른 모든 사용자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "key": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
              "non_account_role_name": null,
              "role_name": null,
              "valueJson": {
                  "account_id": "oaccount~802bf8da5579c6103b2dddaa6c4385df8e722d639a18029e0e93d7a5d6f826d6",
                  "org_id": "FI1",
                  "user_id": "user1_fi1",
                  "token_id": "USD"
              }
          }
      ],
      "encode": "JSON"
  }
}
getBurnQuantity
이 메소드는 지정된 조직에 대해 레코딩된 토큰의 총 수량을 반환합니다.
this.Ctx.CBDCToken.getBurnQuantity(token_id)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예제:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": {
          "burnt_quantity": 31
      },
      "encode": "JSON"
  }
}
getActionHistory
이 방법은 조직 세부정보 및 관련된 계정(발신자, 수신자 및 공증인)의 사용자 ID를 포함하여 민트, 레코딩 및 이전(발행) 작업에 대해 호출자가 수행한 승인 또는 거부 기록을 검색합니다.
this.Ctx.CBDCToken.getActionHistory(token_id)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "from_account_id": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c",
              "from_org_id": "CB",
              "from_user_id": "retirer_user_cb",
              "holding_id": "ohold~cbdc~USD~eaf6",
              "holding_status": "REJECT_BURN",
              "last_updated_time": "2024-11-26T21:43:22.000Z",
              "notary_account_id": null,
              "notary_org_id": null,
              "notary_user_id": null,
              "operation_id": null,
              "quantity": 3,
              "timetoexpiration": null,
              "to_account_id": "",
              "to_org_id": null,
              "to_user_id": null,
              "token_id": "USD",
              "token_name": null
          },
          {
              "from_account_id": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c",
              "from_org_id": "CB",
              "from_user_id": "retirer_user_cb",
              "holding_id": "ohold~cbdc~USD~0031",
              "holding_status": "REJECT_BURN",
              "last_updated_time": "2024-11-26T21:43:15.000Z",
              "notary_account_id": null,
              "notary_org_id": null,
              "notary_user_id": null,
              "operation_id": null,
              "quantity": 2,
              "timetoexpiration": null,
              "to_account_id": "",
              "to_org_id": null,
              "to_user_id": null,
              "token_id": "USD",
              "token_name": null
          }
      ],
      "encode": "JSON"
  }
}
getPendingIssuance
이 방법은 발신자가 승인자로 지정된 모든 보류 중인 발행(이전) 트랜잭션(조직 세부정보 포함)과 관련된 계정의 사용자 ID(발신자, 수신자 및 공증인)를 검색합니다.
this.Ctx.CBDCToken.getPendingIssuance(token_id)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "asset_type": "ONHOLD",
              "category": "category value",
              "from_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "from_org_id": "CB",
              "from_user_id": "creator_user_cb",
              "holding_id": "ohold~cbdc~USD~8e314",
              "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
              "notary_org_id": "CB",
              "notary_user_id": "manager_user_cb",
              "operation_id": "8e314",
              "quantity": 10,
              "timetoexpiration": "0",
              "to_account_id": "oaccount~44b844deccc6c314e14b8b9b95b51db5c8de499dbdbd3def2a44ba54c899c142",
              "to_org_id": "FI1",
              "to_user_id": "officer_user1_fi1",
              "token_id": "USD",
              "token_name": "cbdc"
          },
          {
              "asset_type": "ONHOLD",
              "category": "category value",
              "from_account_id": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594",
              "from_org_id": "CB",
              "from_user_id": "issuer_user_cb",
              "holding_id": "ohold~cbdc~USD~8e315",
              "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
              "notary_org_id": "CB",
              "notary_user_id": "manager_user_cb",
              "operation_id": "8e315",
              "quantity": 10,
              "timetoexpiration": "0",
              "to_account_id": "oaccount~44b844deccc6c314e14b8b9b95b51db5c8de499dbdbd3def2a44ba54c899c142",
              "to_org_id": "FI1",
              "to_user_id": "officer_user1_fi1",
              "token_id": "USD",
              "token_name": "cbdc"
          }
      ],
      "encode": "JSON"
  }
}
getPendingRequest
이 메서드는 호출자가 승인자로 할당된 지정된 유형의 보류 중인 모든 요청을 검색합니다.
this.Ctx.CBDCToken.getPendingRequest(token_id, request_type)
매개변수:
  • token_id: string – 토큰의 ID입니다.
  • request_type: string – 트랜잭션 유형입니다. 예: mint 또는 burn.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "valueJson": {
                  "assetType": "ohold",
                  "holding_id": "ohold~cbdc~USD~op123",
                  "operation_id": "op123",
                  "token_id": "USD",
                  "token_name": "cbdc",
                  "operation_type": "mint",
                  "status": "pending",
                  "from_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "to_account_id": "",
                  "notary_account_id": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
                  "quantity": 10,
                  "time_to_expiration": "0",
                  "category": "category value",
                  "description": "description value"
              }
          }
      ],
      "encode": "JSON"
  }
}
getTotalBalanceByCallerOrgId
이 메소드는 호출자 조직의 총 잔액을 검색합니다.
this.Ctx.CBDCToken.getTotalBalanceByCallerOrgId()
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "totalBalance": 704
          }
      ],
      "encode": "JSON"
  }
}
getTransactionWithBlockNumber
이 메소드는 지정된 트랜잭션 ID에 대한 트랜잭션의 세부정보를 반환합니다.
this.Ctx.CBDCToken.getTransactionWithBlockNumber(token_id, transaction_id)
매개변수:
  • token_id: string – 토큰의 ID입니다.
  • transaction_id: string – 트랜잭션의 ID입니다.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "blockNo": 82,
              "key": "otransaction~24f391919a8837d654beaa7346148ea8b2b9704624aef482ce68078c485f5b1b",
              "metadata": null,
              "txnNo": 0,
              "value": null,
              "valueJson": {
                  "assetType": "otransaction",
                  "transaction_id": "otransaction~24f391919a8837d654beaa7346148ea8b2b9704624aef482ce68078c485f5b1b",
                  "token_id": "USD",
                  "from_account_id": "",
                  "from_account_balance": 0,
                  "from_account_onhold_balance": 0,
                  "to_account_id": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "to_account_balance": 100,
                  "to_account_onhold_balance": 0,
                  "transaction_type": "REQUEST_MINT",
                  "amount": 200,
                  "timestamp": "2024-11-20T06:48:42.000Z",
                  "number_of_sub_transactions": 0,
                  "holding_id": "",
                  "sub_transaction": "false",
                  "description": ""
              }
          }
      ],
      "encode": "JSON"
  }
}

도매 CBDC 모델에 대해 다음 SDK 방법이 수정되었습니다.

createAccount
이 방법은 지정된 사용자 및 토큰에 대한 계정을 만듭니다. 언제든 토큰이 있는 사용자에 대해 계정을 만들어야 합니다. 계정은 잔액, 보류 중인 잔액 및 트랜잭션 기록을 추적합니다. 계정 ID는 자산 유형과 토큰 ID를 연결한 다음 조직 ID와 사용자 ID를 연결하여 SHA-256 해시를 생성함으로써 구성됩니다.
this.Ctx.Account.createAccount(org_id, user_id, token_type, application_groups, daily_limits)
매개변수:
  • orgId – 계정을 만들 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다. ID는 영숫자로 시작해야 하며 문자, 숫자 및 밑줄(_), 마침표(.), at 기호(@), 하이픈(-)과 같은 특수 문자를 포함할 수 있습니다.
  • userId – 사용자의 사용자 이름 또는 전자 메일 ID입니다. ID는 영숫자로 시작해야 하며 문자, 숫자 및 밑줄(_), 마침표(.), at 기호(@), 하이픈(-)과 같은 특수 문자를 포함할 수 있습니다.
  • tokenType: TokenType – 토큰의 유형으로, fungible여야 합니다.
  • application_groups: string[] – CBDC 응용 프로그램에서 사용자의 연관을 정의하는 사용자 ID가 속한 응용 프로그램 그룹 목록입니다.
  • daily_limits: DailyLimits – 다음 유형의 JSON 객체입니다.
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    예제에서 max_daily_amount 값은 매일 트랜잭션할 수 있는 최대 토큰 양이고 max_daily_transactions 값은 매일 완료할 수 있는 최대 트랜잭션 수입니다.
  • endorsers: string[] – 트랜잭션을 보증해야 하는 피어의 배열(예: peer1, peer2)입니다.
반환 값 예제:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "453821c7ffd477987ef8ccbd836b893969531ab768098cd4a99e3b89cd38a391",
        "payload": {
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "account_id": "oaccount~28ac774001f374064029d51af4fb67e26ea1ea9ef62828b7a72dbf3beb8efd8d",
            "user_id": "admin_user_cb",
            "org_id": "CB",
            "token_type": "fungible",
            "token_id": "",
            "token_name": "",
            "balance": 0,
            "onhold_balance": 0,
            "onhold_burn_balance": 0,
            "application_groups": [
                "System_Admins"
            ],
            "max_daily_amount": 10000,
            "daily_amount": 0,
            "max_daily_transactions": 100,
            "daily_transactions": 0,
            "current_date": "2024-12-09T00:00:00.000Z"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 188
    }
}

도매 CBDC에 대한 이동 SDK 방법

SetApplicationGroups
이 메소드는 API의 지정된 애플리케이션 그룹에 대한 계정 세부정보에서 application_groups 매개변수를 설정합니다.
t.Ctx.CbdcToken.SetApplicationGroups(account_id, application_groups)
매개변수:
  • account_id: string – 계정의 ID입니다.
  • application_groups: string[] – CBDC 응용 프로그램에서 사용자의 연관을 정의하는 사용자 ID가 속한 응용 프로그램 그룹 목록입니다.
반환 값 예제:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "261c3da4bb6f1724bc8f674c7b001a9b986bc9900d0508363039424926b143ed",
        "payload": {
            "AssetType": "oaccount",
            "AccountId": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
            "UserId": "admin_user_cb",
            "OrgId": "CB",
            "TokenType": "fungible",
            "TokenId": "",
            "TokenName": "",
            "Balance": 0,
            "BalanceOnHold": 0,
            "OnHoldBurnBalance": 0,
            "BapAccountVersion": 0,
            "ApplicationGroups": [
                "System_Admins"
            ],
            "MaxDailyAmount": 10000,
            "DailyAmount": 0,
            "MaxDailyTransactions": 100,
            "DailyTransactions": 0,
            "CurrentDate": "2024-12-09"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 246
    }
}
GetAllActiveAccounts
이 메소드는 지정된 토큰 ID와 연관된 모든 활성 계정을 반환합니다.
t.Ctx.CbdcToken.GetAllActiveAccounts(token_id)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환값:
  • 성공 시 사용자 세부정보를 포함하는 메시지입니다. 출력은 다음 예와 같이 사용자의 역할에 따라 달라집니다.
반환 값 예(토큰 관리자, 토큰 감사자):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "NonAccountRoleName": "[\"token_admin\"]",
                "RoleName": null,
                "key": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
                "valueJson": {
                    "AccountId": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
                    "ApplicationGroups": [
                        "System_Issuers"
                    ],
                    "AssetType": "oaccount",
                    "Balance": 0,
                    "BalanceOnHold": 0,
                    "OnHoldBurnBalance": 0,
                    "BapAccountVersion": 0,
                    "CurrentDate": "2024-11-21",
                    "DailyAmount": 0,
                    "DailyTransactions": 0,
                    "MaxDailyAmount": 10000,
                    "MaxDailyTransactions": 100,
                    "OrgId": "CB",
                    "TokenId": "USD",
                    "TokenName": "cbdc",
                    "TokenType": "fungible",
                    "UserId": "admin_user_cb"
                }
            }
        ],
        "encode": "JSON"
    }
}
반환 값 예(조직 관리자, 조직 감사자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": "[\"token_auditor\"]",
              "RoleName": null,
              "key": "oaccount~bd6262ffdf582675dd9b2506c1d5488864feef0b9e297a9a3322b7c683ad6214",
              "valueJson": {
                  "AccountId": "oaccount~bd6262ffdf582675dd9b2506c1d5488864feef0b9e297a9a3322b7c683ad6214",
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "UserId": "auditor_user_cb",
                  "MaxDailyAmount": 10000,
                  "MaxDailyTransactions": 100,
              }
          }
      ],
      "encode": "JSON"
  }
}
반환 값 예(다른 모든 사용자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": "[\"token_admin\"]",
              "RoleName": null,
              "key": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
              "valueJson": {
                  "AccountId": "oaccount~8db15b42910eeec401e1bf22c69dfdd11c820ecc26539ea03a3426fa25cb8c28",
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "UserId": "admin_user_cb"
              }
          }
      ],
      "encode": "JSON"
  }
}
GetAllSuspendedAccounts
이 메소드는 지정된 토큰 ID와 연관된 일시 중지된 계정을 모두 반환합니다.
t.Ctx.CbdcToken.GetAllSuspendedAccounts(token_id)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환값:
  • 성공 시 사용자 세부정보를 포함하는 메시지입니다. 출력은 다음 예와 같이 사용자의 역할에 따라 달라집니다.
반환 값 예(토큰 관리자, 토큰 감사자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": null,
              "RoleName": "minter",
              "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "valueJson": {
                  "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "ApplicationGroups": [
                      "System_Admins"
                  ],
                  "AssetType": "oaccount",
                  "Balance": 140,
                  "BalanceOnHold": 0,
                  "OnHoldBurnBalance": 0,
                  "BapAccountVersion": 8,
                  "CurrentDate": "2024-11-21",
                  "DailyAmount": 70,
                  "DailyTransactions": 3,
                  "MaxDailyAmount": 10000,
                  "MaxDailyTransactions": 100,
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "TokenName": "cbdc",
                  "TokenType": "fungible",
                  "UserId": "creator_user_cb"
              }
          }
      ],
      "encode": "JSON"
  }
}
반환 값 예(조직 관리자, 조직 감사자):
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "NonAccountRoleName": null,
              "RoleName": "minter",
              "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "valueJson": {
                  "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "OrgId": "CB",
                  "TokenId": "USD",
                  "UserId": "creator_user_cb",
                  "MaxDailyAmount": 10000,
                  "MaxDailyTransactions": 100,
              }
          }
      ],
      "encode": "JSON"
  }
}
반환 값 예(다른 모든 사용자):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "NonAccountRoleName": null,
                "RoleName": "minter",
                "key": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                "valueJson": {
                    "AccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                    "OrgId": "CB",
                    "TokenId": "USD",
                    "UserId": "creator_user_cb"
                }
            }
        ],
        "encode": "JSON"
    }
}
GetBurnQuantity
이 메소드는 지정된 조직에 대해 레코딩된 토큰의 총 수량을 반환합니다.
t.Ctx.CbdcToken.GetBurnQuantity(token_id)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": {
          "BurnQuantity": 10
      },
      "encode": "JSON"
  }
}
GetActionHistory
이 방법은 조직 세부정보 및 관련된 계정(발신자, 수신자 및 공증인)의 사용자 ID를 포함하여 민트, 레코딩 및 이전(발행) 작업에 대해 호출자가 수행한 승인 또는 거부 기록을 검색합니다.
t.Ctx.CbdcToken.GetActionHistory(token_id)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "FromAccountId": "oaccount~0d7b3f73aea28065017ce8b79c0bb19256dc0cb475a0b2a85192bd110f69535c",
              "FromOrgId": "CB",
              "FromUserId": "retirer_user_cb",
              "HoldingId": "ohold~cbdc~USD~6e1223",
              "HoldingStatus": "REJECT_BURN",
              "LastUpdatedTime": "2024-11-21T22:08:26Z",
              "NotaryAccountId": null,
              "NotaryOrgId": null,
              "NotaryUserId": null,
              "OperationId": null,
              "Quantity": 5,
              "TimeToExpiration": null,
              "ToAccountId": "",
              "ToOrgId": null,
              "ToUserId": null,
              "TokenId": "USD",
              "TokenName": null
          },
          {
              "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "FromOrgId": "CB",
              "FromUserId": "creator_user_cb",
              "HoldingId": "ohold~cbdc~USD~hold2",
              "HoldingStatus": "RELEASEHOLD",
              "LastUpdatedTime": "2024-11-21T21:54:33Z",
              "NotaryAccountId": null,
              "NotaryOrgId": null,
              "NotaryUserId": null,
              "OperationId": null,
              "Quantity": 10,
              "TimeToExpiration": null,
              "ToAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "ToOrgId": "CB",
              "ToUserId": "creator_user_cb",
              "TokenId": "USD",
              "TokenName": null
          }
      ],
      "encode": "JSON"
  }
}
GetPendingIssuance
이 방법은 발신자가 승인자로 지정된 모든 보류 중인 발행(이전) 트랜잭션(조직 세부정보 포함)과 관련된 계정의 사용자 ID(발신자, 수신자 및 공증인)를 검색합니다.
t.Ctx.CbdcToken.GetPendingIssuance(token_id)
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "AssetType": "ONHOLD",
              "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
              "FromOrgId": "CB",
              "FromUserId": "creator_user_cb",
              "HoldingId": "ohold~cbdc~USD~h123",
              "NotaryAccountId": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
              "NotaryOrgId": "CB",
              "NotaryUserId": "manager_user_cb",
              "OperationId": "h123",
              "Quantity": 10,
              "TimeToExpiration": "0",
              "ToAccountId": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594",
              "ToOrgId": "CB",
              "ToUserId": "issuer_user_cb",
              "TokenId": "USD",
              "TokenName": "cbdc"
          }
      ],
      "encode": "JSON"
  }
}
GetPendingRequest
이 메서드는 호출자가 승인자로 할당된 지정된 유형의 보류 중인 모든 요청을 검색합니다.
t.Ctx.CbdcToken.GetPendingRequest(token_id, request_type)
매개변수:
  • token_id: string – 토큰의 ID입니다.
  • request_type: string – 트랜잭션 유형입니다. 예: mint 또는 burn.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "valueJson": {
                  "AssetType": "ohold",
                  "Category": "Category value",
                  "Description": "Description value",
                  "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "HoldingId": "ohold~cbdc~USD~8e1232",
                  "NotaryAccountId": "oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8",
                  "OperationId": "8e1232",
                  "OperationType": "mint",
                  "Quantity": 100,
                  "Status": "pending",
                  "TimeToExpiration": "0",
                  "ToAccountId": "",
                  "TokenId": "USD",
                  "TokenName": "cbdc"
              }
          }
      ],
      "encode": "JSON"
  }
}
GetTotalBalanceByCallerOrgId
이 메소드는 호출자 조직의 총 잔액을 검색합니다.
t.Ctx.CbdcToken.GetTotalBalanceByCallerOrgId()
매개변수:
  • token_id: string – 토큰의 ID입니다.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "TotalBalance": 180
          }
      ],
      "encode": "JSON"
  }
}
GetTransactionWithBlockNumber
이 메소드는 지정된 트랜잭션 ID에 대한 트랜잭션의 세부정보를 반환합니다.
t.Ctx.CbdcToken.GetTransactionWithBlockNumber(token_id, transaction_id)
매개변수:
  • token_id: string – 토큰의 ID입니다.
  • transaction_id: string – 트랜잭션의 ID입니다.
반환 값 예:
{
  "returnCode": "Success",
  "error": "",
  "result": {
      "payload": [
          {
              "blockNo": 152,
              "key": "otransaction~eee2de20b4b042884da83e3b7b85d8532ad56f26a546ee25d227acce33375c1c",
              "metadata": null,
              "txnNo": 0,
              "value": null,
              "valueJson": {
                  "Amount": 10,
                  "AssetType": "otransaction",
                  "Category": "Category value",
                  "Description": "",
                  "FromAccountBalance": 130,
                  "FromAccountId": "oaccount~9d9806fa92aa0c4fdb34eaffac6e830181b5d47e64fbce752195e83024125ca0",
                  "FromAccountOnHoldBalance": 10,
                  "HoldingId": "ohold~cbdc~USD~hold1",
                  "NumberOfSubTransactions": 0,
                  "SubTransaction": "false",
                  "SubTransactionType": "",
                  "Timestamp": "2024-11-21T20:43:59Z",
                  "ToAccountBalance": 10,
                  "ToAccountId": "oaccount~51e676d7182a02ea7418ef58a6d54ecfe3858ef40b4ffb3d859b320da3921594",
                  "ToAccountOnHoldBalance": 0,
                  "TokenId": "USD",
                  "TransactionId": "otransaction~eee2de20b4b042884da83e3b7b85d8532ad56f26a546ee25d227acce33375c1c",
                  "TransactionType": "EXECUTEHOLD"
              }
          }
      ],
      "encode": "JSON"
  }
}

도매 CBDC 모델에 대해 다음 SDK 방법이 수정되었습니다.

CreateAccount
이 방법은 지정된 사용자 및 토큰에 대한 계정을 만듭니다. 언제든 토큰이 있는 사용자에 대해 계정을 만들어야 합니다. 계정은 잔액, 보류 중인 잔액 및 트랜잭션 기록을 추적합니다. 계정 ID는 자산 유형과 토큰 ID를 연결한 다음 조직 ID와 사용자 ID를 연결하여 SHA-256 해시를 생성함으로써 구성됩니다.
t.Ctx.Account.CreateAccount(org_id, user_id, token_type, application_groups, daily_limits...)
매개변수:
  • orgId – 계정을 만들 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다. ID는 영숫자로 시작해야 하며 문자, 숫자 및 밑줄(_), 마침표(.), at 기호(@), 하이픈(-)과 같은 특수 문자를 포함할 수 있습니다.
  • userId – 사용자의 사용자 이름 또는 전자 메일 ID입니다. ID는 영숫자로 시작해야 하며 문자, 숫자 및 밑줄(_), 마침표(.), at 기호(@), 하이픈(-)과 같은 특수 문자를 포함할 수 있습니다.
  • tokenType: TokenType – 토큰의 유형으로, fungible여야 합니다.
  • application_groups: string[] – CBDC 응용 프로그램에서 사용자의 연관을 정의하는 사용자 ID가 속한 응용 프로그램 그룹 목록입니다.
  • daily_limits: DailyLimits – 다음 유형의 JSON 객체입니다.
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    예제에서 max_daily_amount 값은 매일 트랜잭션할 수 있는 최대 토큰 양이고 max_daily_transactions 값은 매일 완료할 수 있는 최대 트랜잭션 수입니다.
  • endorsers: string[] – 트랜잭션을 보증해야 하는 피어의 배열(예: peer1, peer2)입니다.
반환 값 예제:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "261c3da4bb6f1724bc8f674c7b001a9b986bc9900d0508363039424926b143ed",
        "payload": {
            "AssetType": "oaccount",
            "AccountId": "oaccount~cdc6fa5e64bc29f700f99da69f980d8cbb768c7e1a11dd17274e75651f6afafe",
            "UserId": "admin_user_cb",
            "OrgId": "CB",
            "TokenType": "fungible",
            "TokenId": "",
            "TokenName": "",
            "Balance": 0,
            "BalanceOnHold": 0,
            "OnHoldBurnBalance": 0,
            "BapAccountVersion": 0,
            "ApplicationGroups": [
                "System_Admins"
            ],
            "MaxDailyAmount": 10000,
            "DailyAmount": 0,
            "MaxDailyTransactions": 100,
            "DailyTransactions": 0,
            "CurrentDate": "2024-12-09"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 246
    }
}