機密トランザクション・モデル

ブロックチェーン・アプリケーション・ビルダーの拡張バージョンには、機密モードの追加メソッドを生成するモデル属性が含まれています。

拡張トークン・タクソノミ・フレームワーク標準を使用するトークンの仕様ファイルにconfidential: trueパラメータを含めると、ブロックチェーン・アプリケーション・ビルダーによって、標準の自動生成メソッドおよびSDKメソッドの次の変更バージョン(TypeScriptのみ)を含む、機密モードで使用するチェーンコードが生成されます。

機密トランザクションおよび機密卸売中央銀行デジタル通貨(CBDC)シナリオの詳細は、機密トランザクションのある卸売中央銀行デジタル通貨を参照してください。

次の表に、トークン・タクソノミ・フレームワーク・プロジェクトを機密モードでスキャフォールドしたときに生成されるメソッドの概要を示します。

メソッド・カテゴリ 自動生成メソッド SDKメソッド 説明
アクセス制御管理 isTokenAdmin isUserTokenAdmin コール元が管理者の場合はtrueを返します
addTokenAdmin addTokenAdmin 管理者を追加します
removeTokenAdmin removeTokenAdmin 管理者を削除します
getAllTokenAdmins すべての管理者を返します
addOrgAdmin addOrgAdmin 組織管理の追加
removeOrgAdmin removeOrgAdmin 組織管理の削除
getAllOrgAdmins すべての組織管理者を返します
addTokenAuditor addTokenAuditor 監査者の追加
removeTokenAuditor removeTokenAuditor 監査者の削除
getAllTokenAuditors すべての監査者を返します
addOrgAuditor addOrgAuditor 組織監査者の追加
removeOrgAuditor removeOrgAuditor 組織監査者の削除
getAllOrgAuditors すべての組織監査者を戻します
トークンの管理 getAllTokens すべてのトークン・アセットを返します
getDecimals 指定されたトークンの小数点以下の桁数を返します
history トークンの履歴を返します
getTokensByName 指定されたトークン名のすべてのトークン・アセットを返します
アカウント管理 createAccount createAccount ユーザー・アカウントを作成します
associateTokenToAccount associateToken アカウントをトークンに関連付けます
getAllAccounts getAllAccounts すべてのユーザー・アカウントの詳細を返します
getAllOrgAccounts getAllOrgAccounts 組織内のすべてのユーザー・アカウントの詳細を返します
getAccountsByUser getAccountsByUser ユーザーのすべてのアカウントIDを返します
getUserByAccountId getUserByAccountId アカウントIDのユーザー詳細を返します
getAccount getAccountWithStatus トークン・アカウントの詳細を返します
getAccountDetailsByCustomAccountId getAccountDetailsByCustomAccountId カスタム・アカウントIDのアカウント詳細を返します
getAccountBalance getAccountBalance 口座の現在の残高を返します。
getAccountStatus getAccountStatus アカウントのステータスを戻します。
getAccountStatusHistory history トークン・アカウントの履歴を返します
activateAccount activateAccount トークン・アカウントのアクティブ化
suspendAccount suspendAccount トークン・アカウントを一時停止します
deleteAccount deleteAccount トークン・アカウントを削除します
setMaxDailyAmount setMaxDailyAmount ユーザーが毎日転送できるトークンの最大量を設定します
setMaxDailyTransactionCount setMaxDailyTransactionCount ユーザーが毎日完了できるトランザクションの最大数を設定します
getMaxDailyAmount getMaxDailyAmount ユーザーが毎日転送できるトークンの最大量を返します
getMaxDailyTransactionCount getMaxDailyTransactionCount ユーザーが毎日完了できるトランザクションの最大数を返します
getAccountOnHoldBalance getAccountOnHoldBalance アカウントの現在の保留残高を返します
ロール管理 addRole addRoleMember ユーザーにロールを追加します。
removeRole removeRoleMember ユーザーから役割を削除します。
getAccountsByRole getAccountsByRole 指定されたロールのアカウントIDを返します
getOrgAccountsByRole getOrgAccountsByRole 組織内の指定されたロールのアカウントIDを返します
getUsersByRole getUsersByRole 指定されたロールのユーザーのリストを返します
getOrgUsersByRole getOrgUsersByRole 組織内の指定されたロールのユーザーのリストを返します
isInRole isInRole ユーザーが指定されたロールを持っているかどうかを返します
トランザクション管理 getAccountTransactionHistory getAccountTransactionHistory アカウントのトランザクション履歴を返します
getAccountTransactionHistoryWithFilters getAccountTransactionHistoryWithFilters 取引先のフィルター済みトランザクション履歴を返します
getAccountTransactionHistoryWithFiltersFromRichHistDB getAccountTrxHistoryWithFiltersFromRichHistDB アカウントのリッチ履歴データベースから、フィルタされたトランザクション履歴を返します
getOrgAccountsTransactionHistoryWithFiltersFromRichHistDB getOrgAccountsTrxHistoryWithFiltersFromRichHistDB 組織のリッチ履歴データベースからフィルタされたトランザクション履歴を返します
getAllAccountsTransactionHistoryWithFiltersFromRichHistDB getAllAccountsTrxHistoryWithFiltersFromRichHistDB すべてのアカウントのリッチ履歴データベースからフィルタリングされたトランザクション履歴を返します
consolidateRunningBalanceInTransactions consolidateRunningBalanceInTransactions 待ち状態のトランザクションの実行中の勘定科目残高を更新します
processSendersAndReceivers processSendersAndReceivers 組織間転送中に勘定科目残高を更新します。
deleteHistoricalTransactions deleteTransactions 古いトランザクションを削除します
getTransactionById getTransactionById トランザクション・アセットの履歴を返します
ミント可能動作 requestMint トークンを発行するリクエスト
approveMint ミント・リクエストの承認
rejectMint ミント要求を拒否します。
issueTokens issueTokens Mintsトークン
getTotalMintedTokens getTotalMintedTokens ミントされたトークンの合計数を返します
getNetTokens getNetTokens 使用可能なトークンの正味数量を返します
転送可能動作 transferTokens transferTokens トークンの転送
保留可能動作 holdTokens hold トークン残高を保留にします
executeHoldTokens executeHold トークン保持の完了
releaseHoldTokens releaseHold トークンの保持を解除します
getOnHoldIds getOnHoldIds アカウントのすべての保留IDを返します
getOnHoldDetailsWithOperationId getOnHoldDetailsWithOperationId オペレーションIDの保留トランザクション詳細を返します
getOnHoldBalanceWithOperationId getOnHoldBalanceWithOperationId オペレーションIDの保留残高を返します
バーン可能動作 requestBurn トークンを破棄するリクエスト
approveBurn 書き込み要求を承認します
rejectBurn 書き込み要求を拒否します
組織間移動 executeHoldTokensSender executeHoldTokensSender 送信者のアカウントからトークンを控除します
executeHoldTokensReceiver executeHoldTokensReceiver 受取人のアカウントにトークンをクレジットします

機密チェーンコードの変更されたTypeScriptメソッド

拡張トークン・タクソノミ・フレームワーク標準を使用するトークンの仕様ファイルにconfidential: trueパラメータを含めると、ブロックチェーン・アプリケーション・ビルダーによって、標準の自動生成されたメソッドおよび追加のメソッドの変更されたバージョンが生成されます。

isTokenAdmin
このメソッドは、関数のコール元がToken Adminの場合はブール値trueを返して、それ以外の場合はfalseを返します。Token AdminToken Auditor、任意のOrg Adminまたは任意のOrg Auditorは、ブロックチェーン・ネットワーク内の他のユーザーに対してこの関数をコールできます。他のユーザーは、自分のアカウントに対してのみこのメソッドをコールできます。
@GetMethod()
 @Validator(yup.string(), yup.string())
 public async isTokenAdmin(org_id: string, user_id: string) {
    await this.Ctx.Auth.checkAuthorization("ADMIN.isUserTokenAdmin", "TOKEN", { org_id });
    return await this.Ctx.Auth.isUserTokenAdmin(org_id, user_id);
 }
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値:
  • コール元がToken Adminの場合はtrueを返し、そうでない場合はfalseを返します。
addTokenAdmin
このメソッドは、ユーザーをチェーンコードのToken Adminとして追加します。このメソッドは、チェーンコードのToken Adminのみがコールできます。user_id値はパブリック元帳に格納されるため、user_id値に個人を識別可能な情報(PII)を使用しないでください。
@Validator(yup.string(), yup.string())
  public async addTokenAdmin(org_id: string, user_id: string) {
    await this.Ctx.Auth.checkAuthorization("ADMIN.addTokenAdmin", "TOKEN");
    await this.Ctx.Model.createEvent(EVENT_NAME.ADD_TOKEN_ADMIN, { org_id, user_id });
    return await this.Ctx.Admin.addTokenAdmin(org_id, user_id);
  }
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値:
  • 成功の場合、チェーンコードのToken Adminとして追加されたユーザーの詳細を含むメッセージ。
戻り値の例:
{
  "msg": "Successfully added Token Admin (Org_Id: CentralBank, User_Id: cb1)"
}
removeTokenAdmin
このメソッドは、チェーンコードのToken Adminであるユーザーを削除します。このメソッドは、チェーンコードのToken Adminのみがコールできます。
@Validator(yup.string(), yup.string())
  public async removeTokenAdmin(org_id: string, user_id: string) {
    await this.Ctx.Auth.checkAuthorization("ADMIN.removeTokenAdmin", "TOKEN");
    await this.Ctx.Model.createEvent(EVENT_NAME.REMOVE_TOKEN_ADMIN, { org_id, user_id });
    return await this.Ctx.Admin.removeTokenAdmin(org_id, user_id);
  }
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値:
  • 成功の場合、チェーンコードのToken Adminとして削除されたユーザーの詳細を含むメッセージ。
戻り値の例:
{"msg": "Successfully removed Admin (Org_Id: Org1MSP, User_Id: User1)"}
addOrgAdmin
このメソッドは、ユーザーを組織のOrg Adminとして追加します。このメソッドは、チェーンコードのToken Adminまたは指定された組織のOrg Adminのみがコールできます。user_id値はパブリック元帳に格納されるため、user_id値に個人を識別可能な情報(PII)を使用しないでください。
@Validator(yup.string(), yup.string())
  public async addOrgAdmin(org_id: string, user_id: string) {
    await this.Ctx.Auth.checkAuthorization("ADMIN.addOrgAdmin", "TOKEN", { org_id });
    await this.Ctx.Model.createEvent(EVENT_NAME.ADD_ORG_ADMIN, { org_id, user_id });
    return await this.Ctx.Admin.addOrgAdmin(org_id, user_id);
  }
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値:
  • 成功の場合、組織のOrg Adminとして追加されたユーザーの詳細を含むメッセージ。
戻り値の例:
{
    "msg": "Successfully added Org Admin (Org_Id: Org1MSP, User_Id: orgAdmin)"
}
removeOrgAdmin
このメソッドは、組織のOrg Adminであるユーザーを削除します。このメソッドは、チェーンコードのToken Adminまたは指定された組織のOrg Adminのみがコールできます。
@Validator(yup.string(), yup.string())
  public async removeOrgAdmin(org_id: string, user_id: string) {
    await this.Ctx.Auth.checkAuthorization("ADMIN.removeOrgAdmin", "TOKEN", { org_id });
    await this.Ctx.Model.createEvent(EVENT_NAME.REMOVE_ORG_ADMIN, { org_id, user_id });
    return await this.Ctx.Admin.removeOrgAdmin(org_id, user_id);
  }
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値:
  • 成功の場合、組織のOrg Adminとして削除されたユーザーの詳細を含むメッセージ。
戻り値の例:
{
  "msg": "Successfully removed Org Admin (Org_Id Org1MSP User_Id orgAdmin)"
}
addTokenAuditor
このメソッドは、ユーザーをチェーンコードのToken Auditorとして追加します。このメソッドは、チェーンコードのToken Adminのみがコールできます。user_id値はパブリック元帳に格納されるため、user_id値に個人を識別可能な情報(PII)を使用しないでください。
@Validator(yup.string(), yup.string())
  public async addTokenAuditor(org_id: string, user_id: string) {
    await this.Ctx.Auth.checkAuthorization("ADMIN.addTokenAuditor", "TOKEN");
    await this.Ctx.Model.createEvent(EVENT_NAME.ADD_TOKEN_AUDITOR, { org_id, user_id });
    return await this.Ctx.Admin.addTokenAuditor(org_id, user_id);
  }
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値の例:
{
  "msg": "Successfully added Token Auditor (Org_Id: CentralBank, User_Id: cb_admin_demo)"
}
removeTokenAuditor
このメソッドは、チェーンコードのToken Auditorであるユーザーを削除します。このメソッドは、チェーンコードのToken Adminのみがコールできます。
@Validator(yup.string(), yup.string())
  public async removeTokenAuditor(org_id: string, user_id: string) {
    await this.Ctx.Auth.checkAuthorization("ADMIN.removeTokenAuditor", "TOKEN");
    await this.Ctx.Model.createEvent(EVENT_NAME.REMOVE_TOKEN_AUDITOR, { org_id, user_id });
    return await this.Ctx.Admin.removeTokenAuditor(org_id, user_id);
  }
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値の例:
{
           "msg": "Successfully removed Token Auditor (Org_Id: CB, User_Id: cb)"
       }
addOrgAuditor
このメソッドは、チェーンコードのOrg Auditorとしてユーザーを追加します。このメソッドは、チェーンコードのToken AdminまたはOrg Adminのみがコールできます。user_id値はパブリック元帳に格納されるため、user_id値に個人を識別可能な情報(PII)を使用しないでください。
@Validator(yup.string(), yup.string())
  public async addOrgAuditor(org_id: string, user_id: string) {
    await this.Ctx.Auth.checkAuthorization("ADMIN.addOrgAuditor", "TOKEN", { org_id });
    await this.Ctx.Model.createEvent(EVENT_NAME.ADD_ORG_AUDITOR, { org_id, user_id });
    return await this.Ctx.Admin.addOrgAuditor(org_id, user_id);
  }
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値:
  • 成功の場合、チェーンコードのOrg Auditorとして追加されたユーザーの詳細を含むメッセージ。
戻り値の例:
{
           "msg": "Successfully added Org Auditor (Org_Id: CentralBank, User_Id: cb_admin_demo)"
       }
removeOrgAuditor
このメソッドは、チェーンコードのOrg Auditorとしてユーザーを削除します。このメソッドは、チェーンコードのToken AdminまたはOrg Adminのみがコールできます。
@Validator(yup.string(), yup.string())
  public async removeOrgAuditor(org_id: string, user_id: string) {
    await this.Ctx.Auth.checkAuthorization("ADMIN.removeOrgAuditor", "TOKEN", { org_id });
    await this.Ctx.Model.createEvent(EVENT_NAME.REMOVE_ORG_AUDITOR, { org_id, user_id });
    return await this.Ctx.Admin.removeOrgAuditor(org_id, user_id);
  }
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値の例:
{
           "msg": "Successfully removed Org Auditor (Org_Id: CB, User_Id: cb)"
       }
createAccount
このメソッドは、指定されたユーザーおよびトークンのアカウントを作成します。任意の時点でトークンを持つすべてのユーザーに対してアカウントを作成する必要があります。アカウントは、残高、保留残高およびトランザクション履歴を追跡します。アカウントIDは、アセット・タイプとトークンIDを連結し、組織IDとユーザーIDを連結してSHA-256ハッシュを作成することで形成されます。このメソッドは、指定された組織のToken AdminまたはOrg Adminのみがコールできます。
@Validator(yup.string(),yup.string(), yup.string(), yup.object().nullable())
  public async createAccount(org_id: string, user_id: string, token_type: string, dailyLimits?: DailyLimits) {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.createAccount", "TOKEN", { org_id });
    await this.Ctx.Model.createEvent(EVENT_NAME.CREATE_ACCOUNT, { org_id, user_id, token_type, dailyLimits });
    return await this.Ctx.Account.createAccount(org_id, user_id, token_type, dailyLimits);
  }
パラメータ:
  • org_id– アカウントを作成するユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。IDは英数字で始める必要があり、アンダースコア(_)、ピリオド(.)、アットマーク(@)、ハイフン(-)などの文字、数字および特殊文字を含めることができます。
  • user_id – ユーザーのユーザー名または電子メールID。IDは英数字で始める必要があり、アンダースコア(_)、ピリオド(.)、アットマーク(@)、ハイフン(-)などの文字、数字および特殊文字を含めることができます。
  • token_type: string– トークンのタイプ。fungibleである必要があります。
  • daily_limits: DailyLimits– 次の型のJSONオブジェクト。
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    この例では、max_daily_amount値は毎日取引できるトークンの最大量であり、max_daily_transactions値は毎日完了できるトランザクションの最大数です。
戻り値の例:
{
    "bapAccountVersion": 0,
    "assetType": "oaccount",
    "account_id": "oaccount~b53cb2c19c92d1d5c8cb9f6e988e7761c34e03e014e6c4b889565fc0abf46c8a",
    "org_id": "CentralBank",
    "token_type": "fungible",
    "token_id": "",
    "token_name": "",
    "balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "onhold_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "onhold_burn_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
}
associateTokenToAccount
このメソッドは、代替可能トークンをアカウントに関連付けます。このメソッドは、チェーンコードのToken Adminまたは関連する組織のOrg Adminのみがコールできます。
@Validator(yup.string(), yup.string(), yup.string().optional())
  public async associateTokenToAccount(account_id: string, token_id: string, custom_account_id?: string) {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.associateToken", "TOKEN", { account_id });
    const token_asset = await this.getTokenObject(token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.ASSOCIATE_TOKEN_TO_ACCOUNT, { account_id, token_asset }, token_asset);
    return await this.Ctx.Account.associateToken(account_id, token_id, custom_account_id);
  }
パラメータ:
  • account_id: string – アカウントのID。
  • token_id: string – トークンのID。
  • custom_account_id: string– 機密モードの場合、アカウントの銀行口座ID、一意のランダム英数字識別子。デフォルトでは、14文字の長さです。
戻り値:
  • 成功の場合、更新されたアカウントのJSONオブジェクト。bapAccountVersionパラメータは、内部使用のためにアカウント・オブジェクトで定義されます。
戻り値の例:
{
    "bapAccountVersion": 0,
    "assetType": "oaccount",
    "account_id": "oaccount~b53cb2c19c92d1d5c8cb9f6e988e7761c34e03e014e6c4b889565fc0abf46c8a",
    "org_id": "CentralBank",
    "token_type": "fungible",
    "token_id": "USD",
    "token_name": "cbdc",
    "balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "onhold_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "onhold_burn_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "application_groups": [
        "CENTRAL_BANK_USERS"
    ]
}
getAllAccounts
このメソッドは、すべてのアカウントのリストを返します。このメソッドは、Token AdminまたはToken Auditorのみがコールできます。このメソッドでは、Berkeley DB SQLリッチ問合せが使用され、リモートOracle Blockchain Platformネットワークに接続されている場合にのみコールできます。
@GetMethod()
  @Validator()
  public async getAllAccounts() {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAllAccounts", "TOKEN");
    return await this.Ctx.Account.getAllAccounts();
  }
パラメータ:
  • なし
戻り値の例:
[
    {
        "key": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
        "valueJson": {
            "bapAccountVersion": 3,
            "assetType": "oaccount",
            "account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
            "org_id": "CentralBank",
            "token_type": "fungible",
            "token_id": "token",
            "token_name": "cbdc",
            "balance": "028a27c752e9b518d156e61da6589e723b179b6d7351dc34ec92bbb27b783ed1dc",
            "onhold_balance": "02d53a7eda9484bda7252212714f647b70d32663cfa416f93f488ef6b6bc8fb2eb",
            "onhold_burn_balance": "02d53a7eda9484bda7252212714f647b70d32663cfa416f93f488ef6b6bc8fb2eb",
            "application_groups": [
                "application_groups value"
            ]
        }
    },
    {
        "key": "oaccount~1da238c1491c919b151f777a615fb5779032c34b3ef3adeca6afe591bac10aaf",
        "valueJson": {
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "account_id": "oaccount~1da238c1491c919b151f777a615fb5779032c34b3ef3adeca6afe591bac10aaf",
            "org_id": "CentralBank",
            "token_type": "fungible",
            "token_id": "token",
            "token_name": "cbdc",
            "balance": "020da01cd57249c6470b6dd03c2ee4c49de58c71ccc64f2de1203e835967a0846d",
            "onhold_balance": "020da01cd57249c6470b6dd03c2ee4c49de58c71ccc64f2de1203e835967a0846d",
            "onhold_burn_balance": "020da01cd57249c6470b6dd03c2ee4c49de58c71ccc64f2de1203e835967a0846d",
            "application_groups": [
                "application_groups value"
            ]
        }
    }
]
getAllOrgAccounts
このメソッドは、指定された組織に属するすべてのトークン・アカウントのリストを返します。このメソッドは、Token AdminまたはToken Auditor、あるいは指定された組織のOrg AdminまたはOrg Auditorによってのみコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getAllOrgAccounts(org_id: string) {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAllOrgAccounts", "TOKEN", { org_id });
    return await this.Ctx.Account.getAllOrgAccounts(org_id);
  }
パラメータ:
  • org_id: string – 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
戻り値:
  • 成功の場合、指定した組織のすべてのアカウントのリスト。
戻り値の例:
[
    {
        "key": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
        "valueJson": {
            "bapAccountVersion": 2,
            "assetType": "oaccount",
            "account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
            "org_id": "CentralBank",
            "token_type": "fungible",
            "token_id": "token",
            "token_name": "cbdc",
            "balance": "18",
            "onhold_balance": "0",
            "onhold_burn_balance": "0",
            "application_groups": [
                "application_groups value"
            ],
            "user_id": "cb",
            "custom_account_id": "1234567jh"
        }
    },
    {
        "key": "oaccount~5e3b5a3306d7ca3f3e3fe7cc27b6ae547e94dba1c5af58a69a771d7a619b6a66",
        "valueJson": {
            "bapAccountVersion": 1,
            "assetType": "oaccount",
            "account_id": "oaccount~5e3b5a3306d7ca3f3e3fe7cc27b6ae547e94dba1c5af58a69a771d7a619b6a66",
            "org_id": "CentralBank",
            "token_type": "fungible",
            "token_id": "token",
            "token_name": "cbdc",
            "balance": "22",
            "onhold_balance": "0",
            "onhold_burn_balance": "0",
            "application_groups": [
                "application_groups value"
            ],
            "user_id": "cb1",
            "custom_account_id": "1234567jh"
        }
    }
]
getAccountsByUser
このメソッドは、指定された組織IDとユーザーIDのすべてのアカウントIDのリストを返します。このメソッドは、Token AdminまたはToken Auditor、指定した組織のOrg AdminまたはOrg Auditor、またはパラメータで指定されたAccount Ownerのみがコールできます。
@GetMethod()
  @Validator(yup.string(), yup.string())
  public async getAccountsByUser(org_id: string, user_id: string) {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountsByUser", "TOKEN", { org_id, user_id });
    return await this.Ctx.Account.getAccountsByUser(org_id, user_id);
  }
パラメータ:
  • org_id string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id string – ユーザーのユーザー名または電子メールID。
戻り値:
  • 成功の場合、アカウントIDのJSON配列。
戻り値の例:
[
    {
        "bapAccountVersion": 2,
        "assetType": "oaccount",
        "user_id": "cb",
        "custom_account_id": "1234567jh",
        "account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
        "org_id": "CentralBank",
        "token_type": "fungible",
        "token_id": "token",
        "token_name": "cbdc",
        "balance": "18",
        "onhold_balance": "0",
        "onhold_burn_balance": "0",
        "application_groups": [
            "application_groups value"
        ]
    }
]
getUserByAccountId
このメソッドは、指定されたアカウントのユーザー詳細(org_idおよびuser_id)を返します。このメソッドは、Token AdminまたはToken Auditor、または指定された組織のOrg AdminまたはOrg Auditorによってコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getUserByAccountId(account_id: string) {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getUserByAccountId", "TOKEN", { account_id });
    return await this.Ctx.Account.getUserByAccountId(account_id);
  }
パラメータ:
  • account_id: string – アカウントのID。
戻り値:
  • 成功の場合、ユーザー詳細(org_idtoken_idおよびuser_id)のJSONオブジェクト。
戻り値の例:
{
    "token_id": "USD",
    "org_id": "CentralBank",
    "user_id": "cb_admin_demo",
    "custom_account_id": "10101234000123"
}
getAccount
このメソッドは、指定されたアカウントの詳細を返します。このメソッドは、Token AdminまたはToken Auditor、指定された組織のOrg AdminまたはOrg Auditor、またはアカウントのAccountOwnerのみがコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getAccount(account_id: string) {
    await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccount", "TOKEN", { account_id });
    return await this.Ctx.Account.getAccountWithStatus(account_id);
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
    "bapAccountVersion": 2,
    "assetType": "oaccount",
    "user_id": "cb",
    "custom_account_id": "1234567jh",
    "status": "active",
    "account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
    "org_id": "CentralBank",
    "token_type": "fungible",
    "token_id": "token",
    "token_name": "cbdc",
    "balance": "18",
    "onhold_balance": "0",
    "onhold_burn_balance": "0",
    "application_groups": [
        "application_groups value"
    ]
}
getAccountDetailsByCustomAccountId
このメソッドは、指定されたカスタム・アカウントIDの詳細を返します。このメソッドは、指定された組織のToken AdminまたはToken Auditor、あるいはOrg AdminまたはOrg Auditorのみがコールできます。
@GetMethod()
  @Validator(yup.string(), yup.string())
  public async getAccountDetailsByCustomAccountId(custom_account_id: string, org_id: string) {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountDetailsByCustomAccountId", "TOKEN", { org_id });
    return await this.Ctx.Account.getAccountDetailsByCustomAccountId(custom_account_id, org_id);
  }
パラメータ:
  • custom_account_id: string– アカウントの銀行口座ID。一意のランダムな英数字識別子。
  • org_id: string – 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
戻り値の例:
[
    {
        "bapAccountVersion": 0,
        "assetType": "oaccount",
        "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
        "org_id": "CentralBank",
        "token_type": "fungible",
        "token_id": "USD",
        "token_name": "cbdc",
        "balance": "0",
        "onhold_balance": "0",
        "onhold_burn_balance": "0",
        "application_groups": [
            "SYSTEM_ADMINS"
        ],
        "user_id": "cb_admin_demo",
        "custom_account_id": "10101234000123"
    }
]
getAccountBalance
このメソッドは、指定されたアカウントの現在の残高を返します。このメソッドは、Token AdminまたはToken Auditor、指定された組織のOrg AdminまたはOrg Auditor、またはアカウントのAccountOwnerのみがコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getAccountBalance(account_id: string) {
    await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountBalance", "TOKEN", { account_id });
    return await this.Ctx.Account.getAccountBalance(account_id);
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値:
  • 成功の場合、現在のアカウントの残高のJSON表現。
戻り値の例:
{
    "msg": "Current Balance is: 100",
    "user_balance": 100
}
getAccountStatus
このメソッドは、トークン・アカウントの現在のステータスを取得します。このメソッドは、チェーンコードのToken Admin、指定された組織のOrg Adminまたはトークン・アカウント所有者がコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getAccountStatus(account_id: string) {
    await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.get", "TOKEN", { account_id });
    try {
      return await this.Ctx.AccountStatus.getAccountStatus(account_id);
    } catch (err) {
      return await this.Ctx.AccountStatus.getDefaultAccountStatus(account_id);
    }
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値:
  • 成功の場合、トークン・アカウント・ステータスの詳細を含むメッセージ。
戻り値の例:
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
getAccountStatusHistory
このメソッドは、アカウント・ステータスの履歴を取得します。このメソッドは、チェーンコードのToken Admin、指定された組織のOrg Adminまたはトークン・アカウント所有者がコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getAccountStatusHistory(account_id: string) {
    await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.history", "TOKEN", { account_id });
    const status_id = await this.Ctx.AccountStatus.generateAccountStatusId(account_id);
    let account_status_history: any;
    try {
      account_status_history = await this.Ctx.AccountStatus.history(status_id);
    } catch (err) {
      return [];
    }
    return account_status_history;
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値:
  • 成功の場合、アカウント・ステータス履歴の詳細を含むメッセージ。
戻り値の例:
[
  {
    "trxId": "d5c6d6f601257ba9b6edaf5b7660f00adc13c37d5321b8f7d3a35afab2e93e63",
    "timeStamp": "2025-12-02T10:39:14.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "suspended"
    }
  },
  {
    "trxId": "e6c850cfa084dc20ad95fb2bb8165eef3a3bd62a0ac867cccee57c2003125183",
    "timeStamp": "2025-12-02T10:37:50.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "active"
    }
  }
]
activateAccount
このメソッドは、トークン・アカウントをアクティブ化します。このメソッドは、チェーンコードのToken Adminまたは指定された組織のOrg Adminのみがコールできます。削除したアカウントはアクティブ化できません。
@Validator(yup.string())
  public async activateAccount(account_id: string) {
    const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.activateAccount", "TOKEN", { org_id: account.org_id });
    const token_asset = await this.getTokenObject(account.token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.ACTIVATE_ACCOUNT, { account_id }, token_asset);
    return await this.Ctx.Account.activateAccount(account_id);
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値:
  • 成功の場合、指定されたトークン・アカウントのアカウント・ステータス・オブジェクトのJSON表現。
戻り値の例:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
suspendAccount
このメソッドは、トークン・アカウントを一時停止します。このメソッドは、チェーンコードのToken Adminまたは指定された組織のOrg Adminのみがコールできます。アカウントの一時停止後は、アカウントを更新する操作を完了できません。削除されたアカウントは一時停止できません。
@Validator(yup.string())
  public async suspendAccount(account_id: string) {
    const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.suspendAccount", "TOKEN", { org_id: account.org_id });
    const token_asset = await this.getTokenObject(account.token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.SUSPEND_ACCOUNT, { account }, token_asset);
    return await this.Ctx.Account.suspendAccount(account_id);
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値:
  • 成功の場合、指定されたトークン・アカウントのアカウント・ステータス・オブジェクトのJSON表現。
戻り値の例:
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
deleteAccount
このメソッドは、トークン・アカウントを削除します。このメソッドは、チェーンコードのToken Adminまたは指定された組織のOrg Adminのみがコールできます。アカウントの削除後は、アカウントを更新する操作を完了できません。削除されたアカウントは最終状態であり、他の状態に変更することはできません。アカウントを削除するには、アカウント残高と保留残高がゼロである必要があります。
@Validator(yup.string())
  public async deleteAccount(account_id: string) {
    const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT_STATUS.deleteAccount", "TOKEN", { org_id: account.org_id });
    const token_asset = await this.getTokenObject(account.token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.DELETE_ACCOUNT, { account_id }, token_asset);
    return await this.Ctx.Account.deleteAccount(account_id);
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値:
  • 成功の場合、指定されたトークン・アカウントのアカウント・ステータス・オブジェクトのJSON表現。
戻り値の例:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}
setMaxDailyAmount
このメソッドは、指定されたアカウントのmax_daily_amount値を設定します。このメソッドは、チェーンコードのToken Adminまたは指定された組織のOrg Adminのみがコールできます。
@Validator(yup.string(), yup.string().optional())
  public async setMaxDailyAmount (account_id: string, max_daily_amount?: string) {
    const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization('ACCOUNT.setMaxDailyAmount', 'TOKEN', { org_id: account.org_id });
    const token_asset = await this.getTokenObject(account.token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.SET_MAX_DAILY_AMOUNT, { account_id, max_daily_amount }, token_asset);
    return this.Ctx.Account.setMaxDailyAmount (account_id, max_daily_amount);
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
  • max_daily_amount?: string–(オプション)ユーザーが毎日転送できるトークンの最大量。指定しない場合、ユーザーは任意の量のトークンを毎日転送できます。
戻り値の例:
{
           "msg": "Successfully set max daily amount for account id oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a to 1000000"
       }
setMaxDailyTransactionCount
このメソッドは、指定されたアカウントのmax_daily_transactions値を設定します。このメソッドは、チェーンコードのToken Adminまたは指定された組織のOrg Adminのみがコールできます。
@Validator(yup.string(), yup.string().optional())
  public async setMaxDailyTransactionCount (account_id: string, max_daily_transactions?: string) {
    const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization('ACCOUNT.setMaxDailyTransactionCount', 'TOKEN', { org_id: account.org_id });
    const token_asset = await this.getTokenObject(account.token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.SET_MAX_DAILY_TRANSACTION_COUNT, { account_id, max_daily_transactions}, token_asset);
    return this.Ctx.Account.setMaxDailyTransactionCount (account_id, max_daily_transactions);
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
  • max_daily_transactions?: string–(オプション)ユーザーが毎日完了できるトランザクションの最大数。指定しない場合、ユーザーは任意の数のトランザクションを毎日完了できます。
戻り値の例:
{
            "msg": "Successfully set max daily transactions for account id oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a to 100000"
        }
getMaxDailyAmount
このメソッドは、指定されたアカウントのmax_daily_amount値を取得します。このメソッドは、チェーンコードのToken Adminまたは指定された組織のToken Auditor、あるいは指定された組織のOrg AdminまたはOrg Auditorのみがコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getMaxDailyAmount (account_id: string) {
    await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization('ACCOUNT.getMaxDailyAmount', 'TOKEN', { account_id });
    return this.Ctx.Account.getMaxDailyAmount (account_id);
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
           "max_daily_amount": "10000"
       }
getMaxDailyTransactionCount
このメソッドは、指定されたアカウントのmax_daily_transactions値を取得します。このメソッドは、チェーンコードのToken Adminまたは指定された組織のToken Auditor、または指定された組織のOrg AdminまたはOrg Auditorのみがコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getMaxDailyTransactionCount (account_id: string) {
    await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization('ACCOUNT.getMaxDailyTransactionCount', 'TOKEN', { account_id });
    return this.Ctx.Account.getMaxDailyTransactionCount (account_id);
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
           "max_daily_transactions": "100"
       }
getAccountOnHoldBalance
このメソッドは、指定されたアカウントの現在の保留残高を返します。このメソッドは、Token AdminまたはToken Auditor、指定された組織のOrg AdminまたはOrg Auditor、またはアカウントのAccountOwnerのみがコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getAccountOnHoldBalance(account_id: string) {
    await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountOnHoldBalance", "TOKEN", { account_id });
    return await this.Ctx.Account.getAccountOnHoldBalance(account_id);
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値:
  • 成功の場合、現在の保留残高のJSON表現。
戻り値の例:
{
           "msg": "Total Holding Balance is: 0",
           "holding_balance": 0
       }
addRole
このメソッドは、指定されたユーザーおよびトークンにロールを追加します。このメソッドは、チェーンコードのToken Adminまたは指定されたロールも保持する指定された組織のOrg Adminのみがコールできます。
@Validator(yup.string(), yup.string())
  public async addRole(account_id: string, role: string) {
    const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    const token_asset = await this.getTokenObject(account.token_id);
    await this.Ctx.Auth.checkAuthorization("TOKEN.addRoleMember", "TOKEN", { token_id: account.token_id, org_id: account.org_id, role });
    await this.Ctx.Model.createEvent(EVENT_NAME.ADD_ROLE, { role, account_id }, token_asset);
    return await this.Ctx.Token.addRoleMember(role, account_id, token_asset);
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
  • role: string – 指定したユーザーに追加するロールの名前。mintableおよびburnableの動作は、仕様ファイルのminter_role_nameおよびburner_role_nameプロパティに対応します。同様に、notaryロールは、仕様ファイルのnotary_role_nameプロパティに対応します。
戻り値:
  • 成功の場合、アカウント詳細を含むメッセージ。
戻り値の例:
{
     "msg": "Successfully added role 'notary' to Account Id: oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8"
}
removeRole
このメソッドは、指定されたユーザーおよびトークンからロールを削除します。このメソッドは、チェーンコードのToken Adminまたは指定されたロールも保持する指定された組織のOrg Adminのみがコールできます。
@Validator(yup.string(), yup.string())
  public async removeRole(account_id: string, role: string) {
    const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    const token_asset = await this.getTokenObject(account.token_id);
    await this.Ctx.Auth.checkAuthorization("TOKEN.removeRoleMember", "TOKEN", { token_id: account.token_id, org_id: account.org_id, role });
    await this.Ctx.Model.createEvent(EVENT_NAME.REMOVE_ROLE, { role, account_id }, token_asset);
    return await this.Ctx.Token.removeRoleMember(role, account_id, token_asset);
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
  • role: string – 指定したユーザーから削除するロールの名前。mintableおよびburnableの動作は、仕様ファイルのminter_role_nameおよびburner_role_nameプロパティに対応します。同様に、notaryロールは、仕様ファイルのnotary_role_nameプロパティに対応します。
戻り値:
  • 成功の場合、アカウント詳細を含むメッセージ。
戻り値の例:
{
   "msg": "Successfully removed role 'notary' from Account Id: oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8"
}
getAccountsByRole
このメソッドは、指定されたロールおよびトークンのすべてのアカウントIDのリストを返します。このメソッドは、Token AdminまたはToken Auditorのみがコールできます。
@GetMethod()
  @Validator(yup.string(), yup.string())
  public async getAccountsByRole(token_id: string, role: string) {
    await this.Ctx.Auth.checkAuthorization("ROLE.getAccountsByRole", "TOKEN");
    return await this.Ctx.Role.getAccountsByRole(token_id, role);
  }
パラメータ:
  • token_id: string – トークンのID。
  • role: string – 検索するロールの名前。
戻り値:
  • 成功の場合、アカウントIDのJSON配列。
戻り値の例:
{
           "accounts": [
               "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75"
           ]
       }
getOrgAccountsByRole
このメソッドは、指定されたロール、トークンおよび組織のすべてのアカウントIDのリストを返します。このメソッドは、Token AdminまたはToken Auditor、あるいは指定された組織のOrg AdminまたはOrg Auditorによってのみコールできます。
@GetMethod()
  @Validator(yup.string(), yup.string(), yup.string())
  public async getOrgAccountsByRole(token_id: string, role: string, org_id: string) {
    await this.Ctx.Auth.checkAuthorization("ROLE.getOrgAccountsByRole", "TOKEN", { org_id });
    return await this.Ctx.Role.getOrgAccountsByRole(token_id, role, org_id);
  }
パラメータ:
  • token_id: string – トークンのID。
  • role: string – 検索するロールの名前。
  • org_id: string – 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
戻り値:
  • 成功の場合、アカウントIDのJSON配列。
戻り値の例:
{
           "accounts": [
               "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75"
           ]
       }
getUsersByRole
このメソッドは、指定されたロールおよびトークンのすべてのユーザーのリストを返します。このメソッドは、Token AdminまたはToken Auditorのみがコールできます。
@GetMethod()
  @Validator(yup.string(), yup.string())
  public async getUsersByRole(token_id: string, role: string) {
    await this.Ctx.Auth.checkAuthorization("ROLE.getUsersByRole", "TOKEN");
    return await this.Ctx.Role.getUsersByRole(token_id, role);
  }
パラメータ:
  • token_id: string – トークンのID。
  • role: string – 検索するロールの名前。
戻り値の例:
{
          "users": [
              {
                  "token_id": "token",
                  "org_id": "CentralBank"
              }
          ]
      }
getOrgUsersByRole
このメソッドは、指定されたロール、トークンおよび組織のすべてのユーザーのリストを返します。このメソッドは、Token AdminまたはToken Auditor、あるいは指定された組織のOrg AdminまたはOrg Auditorによってのみコールできます。
@GetMethod()
  @Validator(yup.string(), yup.string(), yup.string())
  public async getOrgUsersByRole(token_id: string, role: string, org_id: string) {
    await this.Ctx.Auth.checkAuthorization("ROLE.getOrgUsersByRole", "TOKEN", { org_id });
    return await this.Ctx.Role.getOrgUsersByRole(token_id, role, org_id);
  }
パラメータ:
  • token_id: string – トークンのID。
  • role: string – 検索するロールの名前。
  • org_id: string – 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
戻り値の例:
{
           "users": [
               {
                   "token_id": "token",
                   "org_id": "CentralBank",
                   "user_id": "cb1",
                   "custom_account_id": "1234567jh"
               }
           ]
       }
isInRole
このメソッドは、ユーザーに指定されたロールがあるかどうかを示すブール値を返します。このメソッドは、指定された組織のToken AdminまたはToken Auditor、アカウントのAccountOwnerまたはOrg AdminまたはOrg Auditorのみがコールできます。
@GetMethod()
  @Validator(yup.string(), yup.string())
  public async isInRole(account_id: string, role: string) {
    const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    const token_asset = await this.getTokenObject(account.token_id);
    await this.Ctx.Auth.checkAuthorization("TOKEN.isInRole", "TOKEN", { account_id });
    return { result: await this.Ctx.Token.isInRole(role, account_id, token_asset) };
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
  • role: string – 検索するロールの名前。
戻り値:
  • 成功の場合、ブール値の結果のJSON文字列。
戻り値の例:
{
           "result": "true"
       }
getAccountTransactionHistory
このメソッドは、指定したアカウントのアカウント・トランザクション履歴詳細の配列を返します。このメソッドは、Token AdminまたはToken Auditor、指定された組織のOrg AdminまたはOrg Auditor、またはアカウントのAccountOwnerのみがコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getAccountTransactionHistory(account_id: string) {
    const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountTransactionHistory", "TOKEN", { account_id });
    return await this.Ctx.Account.getAccountTransactionHistory(account_id, account.org_id);
  }
パラメータ:
  • account_id: string– アカウントの一意のID。
戻り値の例:
[
    {
        "transaction_id": "otransaction~4514aa229ebcc4d2fedcaa47c4301615e30c4a9bae45cf0256a5b80d75b3697a",
        "transacted_amount": 1000,
        "timestamp": "2025-08-25T13:20:50.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "APPROVE_MINT",
        "balance": 21000,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~1982f73495060e0eef4d78282a91c41e27e8c95572739b0677a1e404a0d20aa9",
        "transacted_amount": 200,
        "timestamp": "2025-08-25T13:12:43.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "REQUEST_MINT",
        "balance": 20000,
        "onhold_balance": 0
    },
    .
    .
    .  
    .
    {
        "transaction_id": "otransaction~396e6ca5a11a9609632d0864026409d46a708fb95e3e21b39fa5f3fb78f90872",
        "transacted_amount": 0,
        "timestamp": "2025-08-12T20:43:20.000Z",
        "token_id": "",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "CREATE_ACCOUNT",
        "balance": 0,
        "onhold_balance": 0
    }
]
getAccountTransactionHistoryWithFilters
このメソッドは、指定されたユーザーおよびトークンのアカウント・トランザクション履歴詳細のフィルタされた配列を返します。このメソッドは、Token AdminまたはToken Auditor、指定された組織のOrg AdminまたはOrg Auditor、またはアカウントのAccountOwnerのみがコールできます。このメソッドは、リモートOracle Blockchain Platformネットワークに接続されている場合にのみコールできます。
@GetMethod()
  @Validator(yup.string(), yup.object().nullable())
  public async getAccountTransactionHistoryWithFilters(account_id: string, filters?: Filters) {
    const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountTransactionHistoryWithFilters", "TOKEN", { account_id });
    return await this.Ctx.Account.getAccountTransactionHistoryWithFilters(account_id, account.org_id, filters);
  }
パラメータ:
  • account_id: string– アカウントの一意のID。
  • filters: string – オプション・パラメータ。空の場合は、すべてのレコードが返されます。PageSizeプロパティは、返すレコード数を決定します。PageSizeが0の場合、デフォルトのページ・サイズは20です。Bookmarkプロパティは、返されるレコードの開始索引を決定します。詳細は、Hyperledger Fabricのドキュメントを参照してください。StartTimeおよびEndTimeプロパティは、次の例に示すようにRFC-3339形式で指定する必要があります。
    {
         "pageSize": 20,
         "bookmark": "",
         "startTime": "1900-01-01T00:00:00+00:00",
         "endTime": "2100-01-01T00:00:00+00:00"
     }
Postmanリクエスト本文の例:
curl --location 'https://centralbank-oabcs1-bom.blockchain.ocp.oraclecloud.com:7443/restproxy/api/v2/channels/default/chaincode-queries' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic Y2I6MTIzNDVAQXBwQnVpbGRlcg==' \
--data '{
    "chaincode": "confDev",
    "args": [
        "getAccountTransactionHistoryWithFilters"
    ],
    "timeout": 12000,
    "sync": true,
    "peer": "centralbank-oabcs1-bom.blockchain.ocp.oraclecloud.com:20010",
    "transientMap": {
        "args": "[\"oaccount~3a1b1c307883c0f74473fedfa62894d510b68959c4a21c7abb9d0224151aa573\",\"{\\\"pageSize\\\":20,\\\"bookmark\\\":\\\"\\\",\\\"startTime\\\":\\\"1900-01-01T00:00:00+00:00\\\",\\\"endTime\\\":\\\"2100-01-01T00:00:00+00:00\\\"}\"]"
    }
}'
戻り値の例:
[
            {
                "transaction_id": "otransaction~ccc2c2e89ab7887af4fdad3dc9918ea057a8aa834a0ed8d0f23271049f084952",
                "transacted_amount": 8,
                "timestamp": "2025-08-20T23:22:53.000Z",
                "token_id": "token",
                "category": "category value",
                "description": "description value",
                "holding_id": "ohold~cbdc~token~hold1",
                "to_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
                "to_org_id": "Org1",
                "to_user_id": "cb",
                "to_custom_account_id": "1234567jh",
                "from_account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
                "from_org_id": "CentralBank",
                "from_user_id": "Not Available",
                "from_custom_account_id": "Not Available",
                "transacted_account": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
                "transaction_type": "CREDIT",
                "balance": 18,
                "onhold_balance": 0,
                "transacted_org_id": "CentralBank",
                "transacted_user_id": "Not Available",
                "transacted_custom_account_id": "Not Available"
            },
            {
                "transaction_id": "otransaction~6c0452a58f13db93f1c308d60eab1fde6c911921b350c0bbbe0ce7dab394721d",
                "transacted_amount": 10,
                "timestamp": "2025-08-20T23:04:53.000Z",
                "token_id": "token",
                "category": "category value",
                "description": "description value",
                "holding_id": "ohold~cbdc~token~hold1",
                "to_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
                "to_org_id": "Org1",
                "to_user_id": "cb",
                "to_custom_account_id": "1234567jh",
                "from_account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
                "from_org_id": "CentralBank",
                "from_user_id": "Not Available",
                "from_custom_account_id": "Not Available",
                "transacted_account": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
                "transaction_type": "CREDIT",
                "balance": 10,
                "onhold_balance": 0,
                "transacted_org_id": "CentralBank",
                "transacted_user_id": "Not Available",
                "transacted_custom_account_id": "Not Available"
            },
            .
            .
            .
            .
            {
                "transaction_id": "otransaction~df98e24a3b90661b54b54289b600b13a1051c922db0a4d20e3705a9820ae9c20",
                "transacted_amount": 0,
                "timestamp": "2025-08-20T22:55:09.000Z",
                "category": "",
                "description": "",
                "from_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
                "from_org_id": "Org1",
                "from_user_id": "cb",
                "from_custom_account_id": "1234567jh",
                "transacted_account": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
                "transaction_type": "CREATE_ACCOUNT",
                "balance": 0,
                "onhold_balance": 0,
                "transacted_org_id": "Org1",
                "transacted_user_id": "cb",
                "transacted_custom_account_id": "1234567jh"
            }
        ]
getAccountTransactionHistoryWithFiltersFromRichHistDB
このメソッドは、リッチ履歴データベースからトランザクション履歴をフェッチします。このメソッドは、Token AdminまたはToken Auditor、指定された組織のOrg AdminまたはOrg Auditor、またはアカウントのAccountOwnerのみがコールできます。
@GetMethod()
  @Validator(yup.string(), yup.string(), yup.string(), yup.object().nullable())
  public async getAccountTransactionHistoryWithFiltersFromRichHistDB(account_id: string, custom_endpoint: string, bearer_token: string, filters?: Filters) {
    const account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAccountTransactionHistoryWithFiltersFromRichHistDB", "TOKEN", { account_id });
    return await this.Ctx.Account.getAccountTrxHistoryWithFiltersFromRichHistDB(account_id, account.org_id, custom_endpoint, bearer_token, filters);
  }
パラメータ:
  • account_id: string– アカウントの一意のID。
  • custom_endpoint– リッチ履歴データベースのRESTfulサービス・エンドポイント。
  • bearer_token– RESTfulサービス・エンドポイントのアクセス認可トークン。
  • filters: string – オプション・パラメータ。空の場合は、すべてのレコードが返されます。PageSizeプロパティは、返すレコード数を決定します。PageSizeが0の場合、デフォルトのページ・サイズは20です。Bookmarkプロパティは、返されるレコードの開始索引を決定します。詳細は、Hyperledger Fabricのドキュメントを参照してください。StartTimeおよびEndTimeプロパティは、次の例に示すようにRFC-3339形式で指定する必要があります。
    {
         "pageSize": 20,
         "bookmark": "",
         "startTime": "1900-01-01T00:00:00+00:00",
         "endTime": "2100-01-01T00:00:00+00:00"
     }
Postmanリクエスト本文の例:
curl --location 'https://centralbank-oabcs1-bom.blockchain.ocp.oraclecloud.com:7443/restproxy/api/v2/channels/default/chaincode-queries' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic Y2I6MTIzNDVAQXBwQnVpbGRlcg==' \
--data '{
    "chaincode": "confDev",
    "args": [
        "getAccountTransactionHistoryWithFiltersFromRichHistDB"
    ],
    "timeout": 12000,
    "sync": true,
    "peer": "centralbank-oabcs1-bom.blockchain.ocp.oraclecloud.com:20010",
    "transientMap": {
        "args": "[\"oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc\",\"https://g5363dsasdade33f4-sampledb.adb.ap-sydney-1.oraclecloudapps.com/ords/obp2/conf_cc2/conf_cc2\",\"Dtbw-ehx7QjXfw2VbZsMzQ\",\"{\\\"pageSize\\\":20,\\\"bookmark\\\":\\\"\\\",\\\"startTime\\\":\\\"1900-01-01T00:00:00+00:00\\\",\\\"endTime\\\":\\\"2100-01-01T00:00:00+00:00\\\"}\"]"
    }
}'
戻り値の例:
[
    {
        "transaction_id": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c",
        "transacted_amount": 200,
        "timestamp": "2025-08-25T13:16:55.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "transacted_org_id": "Org1",
        "transacted_user_id": "fi1_org_officer_demo",
        "transacted_custom_account_id": "20200222221111",
        "to_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "to_org_id": "Org1",
        "to_user_id": "fi1_org_officer_demo",
        "to_custom_account_id": "20200222221111",
        "from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "from_org_id": "CentralBank",
        "from_user_id": "cb_issuer_demo",
        "from_custom_account_id": "10109999001234",
        "transaction_type": "EXECUTEHOLD",
        "category": "transfer",
        "balance": 26800,
        "onhold_balance": 300
    },
    {
        "transaction_id": "otransaction~5112f576c94c2d23c342479bfa37e34612414b3258a64b43cf51b920f4ff5868",
        "transacted_amount": 5000,
        "timestamp": "2025-08-12T21:05:02.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
        "transacted_org_id": "CentralBank",
        "transacted_user_id": "cb_retirer_demo",
        "transacted_custom_account_id": "10109999006543",
        "to_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
        "to_org_id": "CentralBank",
        "to_user_id": "cb_retirer_demo",
        "to_custom_account_id": "10109999006543",
        "from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "from_org_id": "CentralBank",
        "from_user_id": "cb_issuer_demo",
        "from_custom_account_id": "10109999001234",
        "transaction_type": "DEBIT",
        "category": "burn",
        "balance": 45000,
        "onhold_balance": 0
    },
    .  
    .
    .
    .
    {
        "transaction_id": "otransaction~862aa9d9e877d3ea209b87299ab5b12c13ed5ce43d1cf1b934043c1dd02f58f6",
        "transacted_amount": 50000,
        "timestamp": "2025-08-12T21:04:22.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transacted_org_id": "CentralBank",
        "transacted_user_id": "cb__creator_demo",
        "transacted_custom_account_id": "10105678004567",
        "to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "to_org_id": "CentralBank",
        "to_user_id": "cb_issuer_demo",
        "to_custom_account_id": "10109999001234",
        "from_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "from_org_id": "CentralBank",
        "from_user_id": "cb__creator_demo",
        "from_custom_account_id": "10105678004567",
        "transaction_type": "CREDIT",
        "category": "transfer",
        "balance": 50000,
        "onhold_balance": 0
    }
]
getOrgAccountsTransactionHistoryWithFiltersFromRichHistDB
このメソッドは、指定された組織のリッチ履歴データベースからトランザクション履歴をフェッチします。このメソッドは、Token AdminまたはToken Auditor、指定された組織のOrg AdminまたはOrg Auditor、またはアカウントのAccountOwnerのみがコールできます。
@GetMethod()
  @Validator(yup.string(), yup.string(), yup.string(), yup.object().nullable())
  public async getOrgAccountsTransactionHistoryWithFiltersFromRichHistDB(org_id: string, custom_endpoint: string, bearer_token: string, filters?: Filters) {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getOrgAccountsTransactionHistoryWithFiltersFromRichHistDB", "TOKEN", { org_id });
    return await this.Ctx.Account.getOrgAccountsTrxHistoryWithFiltersFromRichHistDB(org_id, custom_endpoint, bearer_token, filters);
  }
パラメータ:
  • org_id: string – 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
  • custom_endpoint– リッチ履歴データベースのRESTfulサービス・エンドポイント。
  • bearer_token– RESTfulサービス・エンドポイントのアクセス認可トークン。
  • filters: string – オプション・パラメータ。空の場合は、すべてのレコードが返されます。PageSizeプロパティは、返すレコード数を決定します。PageSizeが0の場合、デフォルトのページ・サイズは20です。Bookmarkプロパティは、返されるレコードの開始索引を決定します。詳細は、Hyperledger Fabricのドキュメントを参照してください。StartTimeおよびEndTimeプロパティは、次の例に示すようにRFC-3339形式で指定する必要があります。
    {
         "pageSize": 20,
         "bookmark": "",
         "startTime": "1900-01-01T00:00:00+00:00",
         "endTime": "2100-01-01T00:00:00+00:00"
     }
Postmanリクエスト本文の例:
curl --location 'https://org1-oabcs1-bom.blockchain.ocp.oraclecloud.com:7443/restproxy/api/v2/channels/default/chaincode-queries' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic Y2I6MTIzNDVAQXBwQnVpbGRlcg==' \
--data '{
    "chaincode": "confDev",
    "args": [
        "getOrgAccountsTransactionHistoryWithFiltersFromRichHistDB"
    ],
    "timeout": 12000,
    "sync": true,
    "peer": "org1-oabcs1-bom.blockchain.ocp.oraclecloud.com:20010",
    "transientMap": {
        "args": "[\"Org1\",\"https://g5363dsasdade33f4-sampledb.adb.ap-sydney-1.oraclecloudapps.com/ords/obp2/conf_cc2/conf_cc2AllOrgAccounts\",\"Dtbw-ehx7QjXfw2VbZsMzQ\",\"{\\\"pageSize\\\":20,\\\"bookmark\\\":\\\"\\\",\\\"startTime\\\":\\\"1900-01-01T00:00:00+00:00\\\",\\\"endTime\\\":\\\"2100-01-01T00:00:00+00:00\\\"}\"]"
    }
}'
戻り値の例:
[
    {
        "transaction_id": "otransaction~4793f3907eefce2f9fca7ef107405b0f116efb3afbf83fa0e61fe763690c8235",
        "transacted_amount": 100,
        "timestamp": "2025-08-25T13:47:56.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "transacted_org_id": "Org1",
        "transacted_user_id": "fi1_org_officer_demo",
        "transacted_custom_account_id": "20200222221111",
        "to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "to_org_id": "CentralBank",
        "from_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "from_org_id": "Org1",
        "from_user_id": "fi1_org_officer_demo",
        "from_custom_account_id": "20200222221111",
        "transaction_type": "ONHOLD",
        "holding_id": "ohold~cbdc~USD~2ac01689",
        "category": "issuance"
    },
    {
        "transaction_id": "otransaction~5177f7560d32838242a26ac74f2a90c6ff9b47aae0d0988f28d9b4cf7e27c097",
        "transacted_amount": 10,
        "timestamp": "2025-08-25T13:22:23.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
        "transacted_org_id": "Org1",
        "transacted_user_id": "fi1_org_user1_demo",
        "transacted_custom_account_id": "20200198765432",
        "to_account": "oaccount~d08ff55a040d5e5dcf406009bab1b3398e06c374356efb1bddbf2f17fc37f949",
        "to_org_id": "Org1",
        "to_user_id": "fi1_org_user2_demo",
        "to_custom_account_id": "20200211112222",
        "from_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
        "from_org_id": "Org1",
        "from_user_id": "fi1_org_user1_demo",
        "from_custom_account_id": "20200198765432",
        "transaction_type": "CREDIT",
        "holding_id": "ohold~cbdc~USD~454f4bf6",
        "category": "transfer"
    },
    .
    .
    .
    .
    {
        "transaction_id": "otransaction~b7c97d737fb978651c9132276ab677c0bcf795b9db13d0d39cba5243615c7389",
        "transacted_amount": 10,
        "timestamp": "2025-08-21T08:46:09.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "transacted_org_id": "Org1",
        "transacted_user_id": "fi1_org_officer_demo",
        "transacted_custom_account_id": "20200222221111",
        "to_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
        "to_org_id": "Org1",
        "to_user_id": "fi1_org_user1_demo",
        "to_custom_account_id": "20200198765432",
        "from_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "from_org_id": "Org1",
        "from_user_id": "fi1_org_officer_demo",
        "from_custom_account_id": "20200222221111",
        "transaction_type": "ONHOLD",
        "holding_id": "ohold~cbdc~USD~4fbbb846",
        "category": "transfer"
    }
]
getAllAccountsTransactionHistoryWithFiltersFromRichHistDB
このメソッドは、すべての組織のリッチ履歴データベースからトランザクション履歴をフェッチします。このメソッドは、Token AdminまたはToken Auditorのみがコールできます。
@GetMethod()
  @Validator(yup.string(), yup.string(), yup.object().nullable())
  public async getAllAccountsTransactionHistoryWithFiltersFromRichHistDB(custom_endpoint: string, bearer_token: string, filters?: Filters) {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getAllAccountsTransactionHistoryWithFiltersFromRichHistDB", "TOKEN");
    return await this.Ctx.Account.getAllAccountsTrxHistoryWithFiltersFromRichHistDB(custom_endpoint, bearer_token, filters);
  }
パラメータ:
  • custom_endpoint– リッチ履歴データベースのRESTfulサービス・エンドポイント。
  • bearer_token– RESTfulサービス・エンドポイントのアクセス認可トークン。
  • filters: string – オプション・パラメータ。空の場合は、すべてのレコードが返されます。PageSizeプロパティは、返すレコード数を決定します。PageSizeが0の場合、デフォルトのページ・サイズは20です。Bookmarkプロパティは、返されるレコードの開始索引を決定します。詳細は、Hyperledger Fabricのドキュメントを参照してください。StartTimeおよびEndTimeプロパティは、次の例に示すようにRFC-3339形式で指定する必要があります。
    {
         "pageSize": 20,
         "bookmark": "",
         "startTime": "1900-01-01T00:00:00+00:00",
         "endTime": "2100-01-01T00:00:00+00:00"
     }
Postmanリクエスト本文の例:
curl --location 'https://centralbank-oabcs1-bom.blockchain.ocp.oraclecloud.com:7443/restproxy/api/v2/channels/default/chaincode-queries' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic Y2I6MTIzNDVAQXBwQnVpbGRlcg==' \
--data '{
    "chaincode": "confDev",
    "args": [
        "getAllAccountsTransactionHistoryWithFiltersFromRichHistDB"
    ],
    "timeout": 12000,
    "sync": true,
    "peer": "centralbank-oabcs1-bom.blockchain.ocp.oraclecloud.com:20010",
    "transientMap": {
        "args": "[\"https://g5363dsasdade33f4-sampledb.adb.ap-sydney-1.oraclecloudapps.com/ords/obp2/conf_cc2/conf_cc2AllAccounts\",\"Dtbw-ehx7QjXfw2VbZsMzQ\",\"{\\\"pageSize\\\":20,\\\"bookmark\\\":\\\"\\\",\\\"startTime\\\":\\\"1900-01-01T00:00:00+00:00\\\",\\\"endTime\\\":\\\"2100-01-01T00:00:00+00:00\\\"}\"]"
    }
}'
戻り値の例:
[
    {
        "transaction_id": "otransaction~62eb436be7c29fc2ed9cae221e874d9a31b163fa10374e7da09bf5e09a96c3ff",
        "transacted_amount": 10000,
        "timestamp": "2025-08-25T13:57:58.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "transacted_org_id": "CentralBank",
        "transacted_user_id": "cb_issuer_demo",
        "transacted_custom_account_id": "10109999001234",
        "to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "to_org_id": "CentralBank",
        "to_user_id": "cb_issuer_demo",
        "to_custom_account_id": "10109999001234",
        "from_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "from_org_id": "CentralBank",
        "from_user_id": "cb__creator_demo",
        "from_custom_account_id": "10105678004567",
        "transaction_type": "DEBIT",
        "category": "issuance"
    },
    {
        "transaction_id": "otransaction~4793f3907eefce2f9fca7ef107405b0f116efb3afbf83fa0e61fe763690c8235",
        "transacted_amount": 100,
        "timestamp": "2025-08-25T13:47:56.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "transacted_org_id": "Org1",
        "transacted_user_id": "fi1_org_officer_demo",
        "transacted_custom_account_id": "20200222221111",
        "to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "to_org_id": "CentralBank",
        "to_user_id": "cb_issuer_demo",
        "to_custom_account_id": "10109999001234",
        "from_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "from_org_id": "Org1",
        "from_user_id": "fi1_org_officer_demo",
        "from_custom_account_id": "20200222221111",
        "transaction_type": "ONHOLD",
        "holding_id": "ohold~cbdc~USD~2ac01689",
        "category": "issuance"
    },
    .
    .
    .
    .
    {
        "transaction_id": "otransaction~5177f7560d32838242a26ac74f2a90c6ff9b47aae0d0988f28d9b4cf7e27c097",
        "transacted_amount": 10,
        "timestamp": "2025-08-25T13:22:23.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~d08ff55a040d5e5dcf406009bab1b3398e06c374356efb1bddbf2f17fc37f949",
        "transacted_org_id": "Org1",
        "transacted_user_id": "fi1_org_user2_demo",
        "transacted_custom_account_id": "20200211112222",
        "to_account": "oaccount~d08ff55a040d5e5dcf406009bab1b3398e06c374356efb1bddbf2f17fc37f949",
        "to_org_id": "Org1",
        "to_user_id": "fi1_org_user2_demo",
        "to_custom_account_id": "20200211112222",
        "from_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
        "from_org_id": "Org1",
        "from_user_id": "fi1_org_user1_demo",
        "from_custom_account_id": "20200198765432",
        "transaction_type": "EXECUTEHOLD",
        "holding_id": "ohold~cbdc~USD~454f4bf6",
        "category": "transfer"
    }
]
deleteHistoricalTransactions
このメソッドは、状態データベースから古いトランザクションを削除します。このメソッドは、Token Adminのみがコールできます。
@Validator(yup.date())
  public async deleteHistoricalTransactions(time_to_expiration: Date) {
    await this.Ctx.Auth.checkAuthorization("TRANSACTION.deleteTransactions", "TOKEN");
    await this.Ctx.Model.createEvent(EVENT_NAME.DELETE_HISTORICAL_TRANSACTIONS, { time_to_expiration });
    return await this.Ctx.Transaction.deleteTransactions(time_to_expiration);
  }
パラメータ:
  • time_to_expiration Date – トランザクションを削除するタイミングを示すタイムスタンプ。指定した時間より古いトランザクション・アセットが削除されます。
戻り値の例:
{
    "msg": "Successfully deleted transaction older than date: Thu Aug 19 2025 11:19:36 GMT+0000 (Coordinated Universal Time).",
    "transactions": [
           "otransaction~ec3366dd48b4ce2838f820f2f138648e6e55a07226713e59b411ff31b0d21058"
     ]
}
getTransactionById
このメソッドは、Transactionアセットの履歴を返します。このメソッドは、Token AdminまたはToken Auditor、指定された組織のOrg AdminまたはOrg Auditor、またはトランザクション参加者(送信者、受信者または公証人)によってのみコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getTransactionById(transaction_id: string) {
    await this.Ctx.Auth.checkAuthorization("TRANSACTION.getTransactionById", "TOKEN", { transaction_id });
    return await this.Ctx.Transaction.getTransactionById(transaction_id);
  }
パラメータ:
  • transaction_id string– トランザクション・アセットのID。
戻り値:
  • 成功の場合、トランザクションの履歴のJSON配列。
戻り値の例:
{
    "transaction_id": "otransaction~6523597253e45b3c976aecdc54e2c6316d0a4f88ad5d7f3fff48c69213e4375a",
    "history": [
        {
            "trxId": "6523597253e45b3c976aecdc54e2c6316d0a4f88ad5d7f3fff48c69213e4375a",
            "timeStamp": "2025-08-20T23:21:45.000Z",
            "value": {
                "assetType": "otransaction",
                "transaction_id": "otransaction~6523597253e45b3c976aecdc54e2c6316d0a4f88ad5d7f3fff48c69213e4375a",
                "token_id": "token",
                "from_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
                "to_account_id": "oaccount~5e3b5a3306d7ca3f3e3fe7cc27b6ae547e94dba1c5af58a69a771d7a619b6a66",
                "transaction_type": "TRANSFER",
                "amount": 22,
                "timestamp": "2025-08-20T23:21:45.000Z",
                "number_of_sub_transactions": 0,
                "holding_id": "",
                "sub_transaction": "false",
                "category": "category value",
                "description": "description value"
            }
        }
    ],
    "sub_transactions": []
}
consolidateRunningBalanceInTransactions
この方法では、実行中の勘定科目残高が計算され、更新された値がトランザクションのキー/値のペアに保存されます。通常、システム管理者はRESTプロキシ・スケジューラを使用してこのメソッドをコールします。このメソッドは、Token AdminまたはOrg Adminのみがコールできます。
@Validator(yup.string())
  public async consolidateRunningBalanceInTransactions() {
    await this.Ctx.Auth.checkAuthorization("TRANSACTION.consolidateRunningBalanceInTransactions", "TOKEN");
    return this.Ctx.Transaction.consolidateRunningBalanceInTransactions(true);
  }
戻り値の例:
{ msg: "Successfully updated account running balance for pending transactions."}
processSendersAndReceivers
このメソッドは、組織間転送中に作成された送信者および受信者のキー/値ペアに分散されたトークン・アカウント残高を計算および更新し、使用されなくなった送信者および受信者のキー/値ペアを削除します。通常、システム管理者はRESTプロキシ・スケジューラを使用してこのメソッドをコールします。このメソッドは、Token AdminまたはOrg Adminのみがコールできます。
@Validator(yup.string())
  public async processSendersAndReceivers() {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.processSendersAndReceivers", "TOKEN");
    return this.Ctx.Account.processSendersAndReceivers(true);
  }
戻り値の例:
{ msg: "Successfully updated balance for accounts from pending receivers."}
requestMint
このメソッドは、指定された量のトークンを作成するために、ミニター公証書にリクエストを送信するためにミニターから呼び出すことができます。
@Validator(
    yup.string(),
    yup.string(),
    yup.number().positive(),
    yup.date(),
    yup.object().nullable()
  )
  public async requestMint(
      operation_id: string,
      notary_account_id: string,
      quantity:number,
      time_to_expiration: Date,
      info_details ?: InfoDetails
  ) {
    const notary_account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(notary_account_id);
    const token_asset = await this.getTokenObject(notary_account.token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.REQUEST_MINT, { operation_id, notary_account_id, quantity, time_to_expiration, info_details }, token_asset);
    return await this.Ctx.Hold.hold(operation_id, null, notary_account_id, quantity, time_to_expiration, token_asset, HoldOperationType.MINT, info_details);
  }
パラメータ:
  • operation_id: string– ミント・リクエストを表す一意の操作ID。
  • notary_account_id: string– リクエストを処理するミネータ公証人の一意のアカウントID。
  • quantity: number– ミントするトークンの量。
  • time_to_expiration– ミント・リクエストが期限切れになり、有効でなくなるまでの時間。
  • info_details: JSON– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。

    Visual Studio CodeとCLIまたはPostmanコレクションを使用している場合は、info_detailsパラメータを別の形式で指定します。

    Visual Studioコード: { "category": "category value", "description": "description value" }

    CLI /ポストマン: "{\"category\":\"category value\",\"description\":\"description value\"}"

戻り値の例:
{
           "msg": "AccountId oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41 has successfully submitted request to mint 200 tokens"
       }
approveMint
このメソッドは、ミント・リクエストを承認するためにミニター公証人によってコールできます。
@Validator(yup.string(), yup.string())
  public async approveMint(token_id: string, operation_id: string) {
    const token_asset = await this.getTokenObject(token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.APPROVE_MINT, { token_asset, operation_id }, token_asset);
    return await this.Ctx.Hold.executeHold(operation_id, token_asset, HoldOperationType.MINT);
  }
パラメータ:
  • token_id: string – ミントするトークンのID。
  • operation_id: string– ミント・リクエストを表す一意の操作ID。
戻り値の例:
{
           "msg": "Successfully minted 1000 tokens to Account Id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41"
       }
rejectMint
このメソッドは、ミント・リクエストを拒否するためにミニター公証人によってコールできます。
@Validator(yup.string(), yup.string())
  public async rejectMint(token_id: string, operation_id: string) {
    const token_asset = await this.getTokenObject(token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.REJECT_MINT, { token_asset, operation_id }, token_asset);
    return await this.Ctx.Hold.releaseHold(operation_id, token_asset, HoldOperationType.MINT);
  }
パラメータ:
  • token_id: string – ミントするトークンのID。
  • operation_id: string– ミント・リクエストを表す一意の操作ID。
戻り値の例:
{
           "msg": "Successfully rejected mint request with Operation Id '89ce' to mint 2000 tokens of token id USD"
       }
issueTokens
このメソッドはトークンをミントし、その後、メソッドのコール元がそれらのトークンを所有します。
@Validator(yup.string(), yup.number().positive(), yup.object().nullable())
  public async issueTokens(token_id: string, quantity: number, info_details?: InfoDetails) {
    const token_asset = await this.getTokenObject(token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.ISSUE_TOKENS, { quantity, token_asset, info_details }, token_asset);
    return await this.Ctx.Token.mint(quantity, token_asset, info_details);
  }
パラメータ:
  • token_id: string – トークンのID。
  • quantity – ミントするトークンの数。
  • info_details: JSON– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。

    Visual Studio CodeとCLIまたはPostmanコレクションを使用している場合は、info_detailsパラメータを別の形式で指定します。

    Visual Studioコード: { "category": "category value", "description": "description value" }

    CLI /ポストマン: "{\"category\":\"category value\",\"description\":\"description value\"}"

戻り値の例:
{
          "msg": "Successfully minted 1000 tokens to Account Id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41"
      }
getTotalMintedTokens
このメソッドは、指定されたトークンのミントされたトークンの合計数を返します。このメソッドは、Token AdminToken AuditorOrg AdminまたはOrg Auditorのみがコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getTotalMintedTokens(token_id: string) {
    const token_asset = await this.getTokenObject(token_id);
    await this.Ctx.Auth.checkAuthorization("TOKEN.getTotalMintedTokens", "TOKEN");
    const totalMintedTokens = await this.Ctx.Token.getTotalMintedTokens(token_asset);
    return {
      msg: `Total minted token for Token Id: ${token_id} is ${totalMintedTokens} tokens.`,
      quantity: totalMintedTokens,
    };
  }
パラメータ:
  • token_id: string – トークンのID。
戻り値:
  • 成功の場合、トークンの合計数を示すJSON文字列。
戻り値の例:
{
    "msg": "Total minted token for Token Id: USD is 910 tokens.",
    "quantity": 910
}
getNetTokens
このメソッドは、指定されたトークンに対してシステムで使用可能なトークンの合計正味数を返します。正味トークン合計は、トークンのバーン後に残っているトークンの量です。等式では、正味トークン = ミントされたトークンの合計 - バーンされたトークンの合計です。トークンがバーンされていない場合、正味トークン数は、ミントされたトークンの合計と等しくなります。このメソッドは、Token AdminToken AuditorOrg AdminまたはOrg Auditorのみがコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getNetTokens(token_id: string) {
    const token_asset = await this.getTokenObject(token_id);
    await this.Ctx.Auth.checkAuthorization("TOKEN.getNetTokens", "TOKEN");
    const netTokens = await this.Ctx.Token.getNetTokens(token_asset);
    return {
      msg: `Net supply of token for Token Id: ${token_id} is ${netTokens} tokens.`,
      quantity: netTokens,
    };
  }
パラメータ:
  • token_id: string – トークンのID。
戻り値:
  • 成功の場合、トークンの正味数を示すJSON文字列。
戻り値の例:
{
    "msg": "Net supply of token for Token Id: USD is 878 tokens.",
    "quantity": 878
}
transferTokens
このメソッドは、トークンをコール元から指定されたアカウントに転送します。
@Validator(yup.string(), yup.number(), yup.object().nullable())
  public async transferTokens(to_account_id: string, quantity: number, info_details ?: InfoDetails) {
    if (quantity <= 0) {
      throw new Error("The quantity should be a positive number.")
    }
    const to_account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(to_account_id);
    const token_asset = await this.getTokenObject(to_account.token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.TRANSFER_TOKENS, { to_account_id, quantity, info_details }, token_asset);
    let isNotary = await this.Ctx.Token.checkNotary(to_account_id, token_asset);
    if(isNotary) {
      throw new Error(`To Account Id '${to_account_id}' can not have a notary role!`);
    }
    return await this.Ctx.Token.transfer(to_account_id, quantity, token_asset, info_details);
  }
パラメータ:
  • to_account_id: string– 受信者(受取人)の一意のアカウントID。
  • quantity: number – 転送するトークンの数。
  • info_details: JSON– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。

    Visual Studio CodeとCLIまたはPostmanコレクションを使用している場合は、info_detailsパラメータを別の形式で指定します。

    Visual Studioコード: { "category": "category value", "description": "description value" }

    CLI /ポストマン: "{\"category\":\"category value\",\"description\":\"description value\"}"

戻り値の例:
{
          "msg": "Successfully transferred 10000 tokens from account id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41  to account id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a."
      }
holdTokens
このメソッドは、to_account_idアカウントを持つコール元(トークンの所有者)のかわりに保留を作成します。指定された公証人アカウントは、保留を完了または解除する責任があります。保留が作成されると、支払者から指定されたトークン残高が保留になります。保留残高は、保留が完了または解除されるまで転送できません。
@Validator(
    yup.string(),
    yup.string(),
    yup.string(),
    yup.number().positive(),
    yup.date(),
    yup.object().nullable()
  )
  public async holdTokens(
    operation_id: string,
    to_account_id: string,
    notary_account_id: string,
    quantity: number,
    time_to_expiration: Date,
    info_details ?: InfoDetails,
  ) {
    const to_account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(to_account_id);
    await this.Ctx.Account.getAccountWithTokenIdValidation(notary_account_id);
    const token_asset = await this.getTokenObject(to_account.token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.HOLD_TOKENS, {
      operation_id,
      to_account_id,
      notary_account_id,
      quantity,
      time_to_expiration,
      info_details
    }, token_asset);
    return await this.Ctx.Hold.hold(operation_id, to_account_id, notary_account_id, quantity, time_to_expiration, token_asset, HoldOperationType.TRANSFER, info_details);
  }
パラメータ:
  • operation_id: string – 保留操作を識別する一意のID。通常、このIDはクライアント・アプリケーションによって渡されます。
  • to_account_id: string– 受信者の一意のアカウントID。
  • notary_account_id: string– 公証人の一意のアカウントID。
  • quantity: number – 保留にするトークンの数。
  • time_to_expiration– 保留が失効する時間。永続的な保留の場合は0を指定します。それ以外の場合は、RFC-3339形式を使用します。たとえば、2021-06-02T12:46:06Zです。
  • info_details: JSON– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。

    Visual Studio CodeとCLIまたはPostmanコレクションを使用している場合は、info_detailsパラメータを別の形式で指定します。

    Visual Studioコード: { "category": "category value", "description": "description value" }

    CLI /ポストマン: "{\"category\":\"category value\",\"description\":\"description value\"}"

戻り値の例:
{
           "msg": "AccountId oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3 is successfully holding 100 tokens"
       }
executeHoldTokens
このメソッドはトークンの保留を完了します。トークン所有者が以前に保留にした数量のトークンが受信者に転送されます。quantity値が実際の保留値より小さい場合、残りはトークンの元の所有者が再度使用できます。このメソッドは、指定された操作IDのnotaryロールを持つAccountOwner IDのみがコールできます。保留は公証人のみが完了できます。
@Validator(yup.string(), yup.string(), yup.number().positive())
  public async executeHoldTokens(token_id: string, operation_id: string, quantity: number) {
    const token_asset = await this.getTokenObject(token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.EXECUTE_HOLD_TOKENS, { token_asset, operation_id, quantity }, token_asset);
    return await this.Ctx.Hold.executeHold(operation_id, token_asset, HoldOperationType.TRANSFER, quantity);
  }
パラメータ:
  • token_id: string – トークンのID。
  • operation_id: string – 保留操作を識別する一意のID。通常、このIDはクライアント・アプリケーションによって渡されます。
  • quantity: number – 転送する保留トークンの数。
戻り値:
  • 成功の場合、コール元のアカウントIDとトランザクションの数量を含むメッセージ。
戻り値の例:
{
           "msg": "Account Id: oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111 is successfully executed '10' tokens from Operation Id '454f4bf6'."
       }
releaseHoldTokens
このメソッドは、トークンの保留を解除します。転送は行われず、すべての保留トークンは元の所有者が再度使用できます。このメソッドは、指定された時間制限内はnotaryロールを持つAccountOwner IDが、指定された時間制限後は支払者、受取人または公証員がコールできます。
@Validator(yup.string(), yup.string())
  public async releaseHoldTokens(token_id: string, operation_id: string) {
    const token_asset = await this.getTokenObject(token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.RELEASE_HOLD_TOKENS, { token_asset, operation_id }, token_asset);
    return await this.Ctx.Hold.releaseHold(operation_id, token_asset, HoldOperationType.TRANSFER);
  }
パラメータ:
  • token_id: string – トークンのID。
  • operation_id: string – 保留操作を識別する一意のID。通常、このIDはクライアント・アプリケーションによって渡されます。
戻り値:
  • 成功の場合、保留が解除されたことを示すメッセージが表示されます。
戻り値の例:
{
           "msg": "Successfully released '200' tokens from Operation Id '77b75873' to Account Id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a."
       }
getOnHoldIds
このメソッドは、指定されたアカウントのすべての保留IDのリストを返します。このメソッドは、チェーンコードのToken AdminまたはToken Auditor、指定された組織のOrg AdminまたはOrg Auditor、またはアカウントのAccountOwnerによってコールできます。
@GetMethod()
  @Validator(yup.string())
  public async getOnHoldIds(account_id: string) {
    await this.Ctx.Account.getAccountWithTokenIdValidation(account_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getOnHoldIds", "TOKEN", { account_id });
    return await this.Ctx.Account.getOnHoldIds(account_id);
  }
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値:
  • 成功の場合、保留IDのJSONリスト。
戻り値の例:
{
           "msg": "Holding Ids are: ",
           "holding_ids": ["ohold~cbdc~token~hold1"]
       }
getOnHoldDetailsWithOperationId
このメソッドは、指定された操作IDおよびトークンの保留トランザクション詳細を返します。このメソッドは、チェーンコードのToken AdminまたはToken Auditor、またはトランザクション参加者(送信者、受信者、公証人)によってコールできます。
@GetMethod()
  @Validator(yup.string(), yup.string())
  public async getOnHoldDetailsWithOperationId(token_id: string, operation_id: string) {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getOnHoldDetailsWithOperationId", "TOKEN", { token_id, operation_id });
    return await this.Ctx.Hold.getOnHoldDetailsWithOperationId(token_id, operation_id);
  }
パラメータ:
  • token_id: string – トークンのID。
  • operation_id: string – 保留操作を識別する一意のID。通常、このIDはクライアント・アプリケーションによって渡されます。
戻り値の例:
{
          "assetType": "ohold",
          "holding_id": "ohold~cbdc~token~hold1",
          "operation_id": "hold1",
          "token_name": "cbdc",
          "from_org_id": "CentralBank",
          "operation_type": "transfer",
          "status": "approved",
          "from_account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
          "to_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
          "notary_account_id": "oaccount~1da238c1491c919b151f777a615fb5779032c34b3ef3adeca6afe591bac10aaf",
          "token_id": "token",
          "quantity": "0",
          "time_to_expiration": "2029-01-04T00:00:00.000Z",
          "category": "category value",
          "description": "description value"
      }
getOnHoldBalanceWithOperationId
このメソッドは、指定された操作IDおよびトークンの保留残高を返します。このメソッドは、チェーンコードのToken AdminまたはToken Auditor、またはトランザクション参加者(送信者、受信者、公証人)によってコールできます。
@GetMethod()
  @Validator(yup.string(), yup.string())
  public async getOnHoldBalanceWithOperationId(token_id: string, operation_id: string) {
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getOnHoldBalanceWithOperationId", "TOKEN", { token_id, operation_id });
    return await this.Ctx.Hold.getOnHoldBalanceWithOperationId(token_id, operation_id);
  }
パラメータ:
  • token_id: string – トークンのID。
  • operation_id: string – 保留操作を識別する一意のID。通常、このIDはクライアント・アプリケーションによって渡されます。
戻り値:
  • 成功の場合、保留残高を示すJSON文字列。
戻り値の例:
{
           "msg": "Current Holding Balance of Operation 'hold1' for token 'token' is: 0",
           "holding_balance": 0
       }
requestBurn
このメソッドは、指定した量のトークンを破棄するリクエストをバーナー公証書に送信するためにバーナーによってコールできます。
@Validator(
    yup.string(),
    yup.string(),
    yup.number().positive(),
    yup.date(),
    yup.object().nullable()
  )
  public async requestBurn(
      operation_id: string,
      notary_account_id: string,
      quantity:number,
      time_to_expiration: Date,
      info_details ?: InfoDetails,
  ) {
    const notary_account: FungibleAccount = await this.Ctx.Account.getAccountWithTokenIdValidation(notary_account_id);
    const token_asset = await this.getTokenObject(notary_account.token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.REQUEST_BURN, { operation_id, notary_account_id, quantity, time_to_expiration, info_details }, token_asset);
    return await this.Ctx.Hold.hold(operation_id, null, notary_account_id, quantity, time_to_expiration, token_asset, HoldOperationType.BURN, info_details);
  }
パラメータ:
  • operation_id: string– バーン・リクエストを表す一意の操作ID。
  • notary_account_id: string– リクエストを処理するバーナー公証人の一意のアカウントID。
  • quantity: number– 書き込むトークンの量。
  • time_to_expiration– 書き込み要求が期限切れになり、有効でなくなるまでの時間。
  • info_details: JSON– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。

    Visual Studio CodeとCLIまたはPostmanコレクションを使用している場合は、info_detailsパラメータを別の形式で指定します。

    Visual Studioコード: { "category": "category value", "description": "description value" }

    CLI /ポストマン: "{\"category\":\"category value\",\"description\":\"description value\"}"

戻り値の例:
{
           "msg": "AccountId oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98 has successfully submitted request to burn 100 tokens"
       }
approveBurn
このメソッドは、書き込み要求を承認するためにバーナー公証書によって呼び出すことができます。
@Validator(yup.string(), yup.string())
  public async approveBurn(token_id: string, operation_id: string) {
    const token_asset = await this.getTokenObject(token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.APPROVE_BURN, { token_asset, operation_id }, token_asset);
    return await this.Ctx.Hold.executeHold(operation_id, token_asset, HoldOperationType.BURN);
  }
パラメータ:
  • token_id: string– 書き込むトークンのID。
  • operation_id: string– バーン・リクエストを表す一意の操作ID。
戻り値の例:
{
           "msg": "Successfully burned 200 tokens from account id: oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98"
       }
rejectBurn
このメソッドは、書き込み要求を拒否するためにバーナー公証書によって呼び出すことができます。
@Validator(yup.string(), yup.string())
  public async rejectBurn(token_id: string, operation_id: string) {
    const token_asset = await this.getTokenObject(token_id);
    await this.Ctx.Model.createEvent(EVENT_NAME.REJECT_BURN, { token_asset, operation_id }, token_asset);
    return await this.Ctx.Hold.releaseHold(operation_id, token_asset, HoldOperationType.BURN);
  }
パラメータ:
  • token_id: string– 書き込むトークンのID。
  • operation_id: string– バーン・リクエストを表す一意の操作ID。
戻り値の例:
{
           "msg": "Successfully rejected burn request with Operation Id '8d34' to burn 100 tokens of token id USD"
       }

TypeScript組織間転送のメソッド

組織間転送には2つの部分があります。最初に金額が送信者から借方記入され、次に金額が受信者に貸方記入されます。次の2つのAPIは、Oracle Blockchain Platform RESTプロキシの2フェーズ・コミットAPIを使用してアトミック・トランザクションとしてまとめてコールされます。2つの組織のプライベート・データ・コレクションは個別であり、単一のトランザクションではアクセスできないため、機密転送はこの方法で行われます。

両方のトランザクションは、RESTプロキシの2フェーズ・コミットAPIを使用して送信されます。詳細は、「アトミック・トランザクションの起動」を参照してください。

POSTリクエストは、URLがhttps://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy/api/v2/atomicTransactionsと似ているPostmanコレクションで作成できます。次のヘッダーを含むすべての必須ヘッダーを送信する必要があります。
- Content-Type: application/json
- Confidential-Transaction: true
次のリクエストに示すように、リクエスト本文にexecuteHoldTokensSenderおよびexecuteHoldTokensReceiverメソッドを含めます。
{
 "transactions": [
   {
        "chaincode": "<chaincode>",
        "args": [
            "executeHoldTokensSender"
        ],
        "timeout": 6000,
        "sync": true,
        "transientMap": {
            "args": "[ \"bc-token-id value\",\"operation_id value\",\"quantity value\"]"
        },
        "endorsers" : <Sender's endorsers List>,
        "channel":"<channel name>"
   },
   {
        "chaincode": "<chaincode name>",
        "args": [
            "executeHoldTokensReceiver"
        ],
        "timeout": 6000,
        "sync": true,
        "transientMap": {
            "args": "[ \"bc-token-id value\",\"operation_id value\",\"quantity value\"]"
        },
        "endorsers" : <Recipient endorsers List>,
        "channel":"<channelName>"
    }
 ],
 "isolationLevel": "readCommitted",
 "prepareTimeout": 10000,
 "copyInputsToTransientMap": true,
 "sync": true,
 "parallelPrepare": true
}
次の例に、リクエスト本文を示します。
{
 "transactions": [
   {
        "chaincode": "WholesaleCBDCConfidential",
        "args": [
            "executeHoldTokensSender"
        ],
        "timeout": 6000,
        "sync": true,
        "transientMap": {
            "args": "[ \"bc-token-id value\",\"operation_id value\",\"quantity value\"]"
        },
        "endorsers" : ["org1-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "org1-xyz-abc.blockchain.ocp.oraclecloud.com:20009"],
        "channel":"default"
   },
   {
        "chaincode": "WholesaleCBDCConfidential",
        "args": [
            "executeHoldTokensReceiver"
        ],
        "timeout": 6000,
        "sync": true,
        "transientMap": {
            "args": "[ \"bc-token-id value\",\"operation_id value\",\"quantity value\"]"
        },
        "endorsers" : ["org2-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "org2-xyz-abc.blockchain.ocp.oraclecloud.com:20009"],
        "channel":"default"
    }
 ],
 "isolationLevel": "readCommitted",
 "prepareTimeout": 10000,
 "copyInputsToTransientMap": true,
 "sync": true,
 "parallelPrepare": true
}
executeHoldTokensSender
このメソッドは、指定の操作IDの公証人ロールを持つユーザーのみがコールできます。この方法は、組織間の異動の承認の最初の部分です。指定された金額は送信者の口座から差し引かれます。
@ExcludeFromPostmanCollection()
  @Validator(yup.string(), yup.string(), yup.number().positive(), yup.string(), yup.string())
  public async executeHoldTokensSender(token_id: string, operation_id: string, quantity: number,  isolationLevel: string, globalIdInput:string) {
    if (!this.Ctx.Utils.isValidInterOrgTransferRequest()) {
      throw new Error("The request for the inter-org transfer is invalid.")
    }
    const globalTxId =  this.Ctx.Utils.extractGlobalTransactionId(globalIdInput);
    const token_asset = await this.getTokenObject(token_id);
    return await this.Ctx.Hold.executeHoldSender(operation_id, quantity, globalTxId, token_asset);
  }
パラメータ:
  • token_id: string– バーンするトークンのID。
  • operation_id: string– 承認する保留リクエストを表す一意の操作ID。
  • quantity: number– 転送する保留トークンの量。
  • isolationLevel: string– アトミック・トランザクションの分離レベル(serializableまたはreadCommitted)。
  • globalIdInput: string
戻り値の例:
{
      "msg":
        "Account Id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a is successfully executed '10' tokens from Operation Id 'hold1'."
    }
executeHoldTokensReceiver
このメソッドは、指定の操作IDの公証人ロールを持つユーザーのみがコールできます。この方法は、組織間の異動の承認の2番目の部分です。指定された金額は、受け側のアカウントに貸方記入されます。
@ExcludeFromPostmanCollection()
  @Validator(yup.string(), yup.string(), yup.number().positive(), yup.string(), yup.string())
  public async executeHoldTokensReceiver(token_id: string, operation_id: string, quantity: number,  isolationLevel: string, globalIdInput:string) {
    if (!this.Ctx.Utils.isValidInterOrgTransferRequest()) {
      throw new Error("The request for the inter-org transfer is invalid.")
    }
    const globalTxId =  this.Ctx.Utils.extractGlobalTransactionId(globalIdInput);
    const token_asset = await this.getTokenObject(token_id);
    return await this.Ctx.Hold.executeHoldReceiver(operation_id, quantity, globalTxId, token_asset);
  }
パラメータ:
  • token_id: string– 書き込むトークンのID。
  • operation_id: string– 承認する保留リクエストを表す一意の操作ID。
  • quantity: number– 転送する保留トークンの量。
  • isolationLevel: string– アトミック・トランザクションの分離レベル(serializableまたはreadCommitted)。
  • globalIdInput: string
戻り値の例:
{
      "msg":
        "Account Id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a is successfully executed '10' tokens from Operation Id 'hold1, receiverId oreceiver~72d9bfcf-2c68-4c33-b8c3-fe3374983bf2'."
    }

機密チェーンコードに対するTypeScript SDKメソッドの変更

拡張トークン・タクソノミ・フレームワーク標準を使用するトークンの仕様ファイルにconfidential: trueパラメータを含めると、ブロックチェーン・アプリケーション・ビルダーによって、標準SDKメソッドの変更済バージョンおよび追加メソッドが生成されます。

isUserTokenAdmin
このメソッドは、関数のコール元がToken Adminの場合、ブール値trueを返します。それ以外の場合、このメソッドはfalseを返します。
Ctx.Auth.isUserTokenAdmin(org_id: string, user_id: string);
パラメータ:
  • org_id – 現在のネットワーク組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id – ユーザーのユーザー名または電子メールID。
戻り値の例:
{
    "result": true
}
addTokenAdmin
このメソッドは、トークン・チェーンコードのToken Adminとしてユーザーを追加します。user_id値はパブリック元帳に格納されるため、user_id値に個人を識別可能な情報(PII)を使用しないでください。
Ctx.Admin.addTokenAdmin(org_id: string, user_id: string);
パラメータ:
  • user_id – ユーザーのユーザー名または電子メールID。
  • org_id – 現在のネットワーク組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
戻り値の例:
{
  "msg": "Successfully added Token Admin (Org_Id: CentralBank, User_Id: cb1)"
}
removeTokenAdmin
このメソッドは、トークン・チェーンコードのToken Adminであるユーザーを削除します。
Ctx.Admin.removeTokenAdmin(org_id: string, user_id: string);
パラメータ:
  • user_id – ユーザーのユーザー名または電子メールID。
  • org_id – 現在のネットワーク組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
戻り値の例:
{"msg": "Successfully removed Admin (Org_Id: Org1MSP, User_Id: User1)"}
getAllTokenAdmins
このメソッドは、チェーンコードのToken Adminであるすべてのユーザーのリストを返します。
Ctx.Admin.getAllTokenAdmins();
パラメータ:
  • なし
戻り値の例:
{"admins":[{"org_id":"Org1MSP","user_id":"admin"}]}
addOrgAdmin
このメソッドは、ユーザーを組織のOrg Adminとして追加します。user_id値はパブリック元帳に格納されるため、user_id値に個人を識別可能な情報(PII)を使用しないでください。
 Ctx.Admin.addOrgAdmin(org_id: string, user_id: string);
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値の例:
{
    "msg": "Successfully added Org Admin (Org_Id: Org1MSP, User_Id: orgAdmin)"
}
removeOrgAdmin
このメソッドは、組織のOrg Adminであるユーザーを削除します。
Ctx.Admin.removeOrgAdmin(org_id: string, user_id: string);
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値の例:
{
  "msg": "Successfully removed Org Admin (Org_Id Org1MSP User_Id orgAdmin)"
}
getAllOrgAdmins
このメソッドは、組織のOrg Adminであるすべてのユーザーのリストを返します。
Ctx.Admin.getAllOrgAdmins();
パラメータ:
  • なし
戻り値の例:
{
    "admins": [
        {
            "org_id": "Org1MSP",
            "user_id": "orgadmin"
        },
        {
            "org_id": "Org1MSP",
            "user_id": "orgadmin1"
        },
        {
            "org_id": "Org1MSP",
            "user_id": "orgadmin2"
        }
    ]
}
addTokenAuditor
このメソッドは、ユーザーをチェーンコードのToken Auditorとして追加します。user_id値はパブリック元帳に格納されるため、user_id値に個人を識別可能な情報(PII)を使用しないでください。
Ctx.Admin.addTokenAuditor(org_id: string, user_id: string);
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値:
  • 成功の場合、チェーンコードのToken Auditorとして追加されたユーザーの詳細を含むメッセージ。
戻り値の例:
{
  "msg": "Successfully added Token Auditor (Org_Id: CentralBank, User_Id: cb_admin_demo)"
}
removeTokenAuditor
このメソッドは、チェーンコードのToken Auditorであるユーザーを削除します。
Ctx.Admin.removeTokenAuditor(org_id: string, user_id: string);
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値の例:
{
           "msg": "Successfully removed Token Auditor (Org_Id: CB, User_Id: cb)"
       }
getAllTokenAuditors
このメソッドは、チェーンコードのすべてのToken Auditorsを返します。
this.Ctx.Admin.getAllTokenAuditors();
addOrgAuditor
このメソッドは、チェーンコードのOrg Auditorとしてユーザーを追加します。
Ctx.Admin.addOrgAuditor(org_id: string, user_id: string);
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値の例:
{
           "msg": "Successfully added Org Auditor (Org_Id: CentralBank, User_Id: cb_admin_demo)"
       }
removeOrgAuditor
このメソッドは、チェーンコードのOrg Auditorとしてユーザーを削除します。
this.Ctx.Admin.removeOrgAuditor(org_id: string, user_id: string);
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id: string – ユーザーのユーザー名または電子メールID。
戻り値の例:
{
           "msg": "Successfully removed Org Auditor (Org_Id: CB, User_Id: cb)"
       }
getAllOrgAuditors
このメソッドは、チェーンコードのすべてのOrg Auditorsを返します。
this.Ctx.Admin.getAllOrgAuditors()
getAllTokens
このメソッドは、状態データベースに保存されたすべてのトークン・アセットを返します。このメソッドでは、Berkeley DB SQLリッチ問合せが使用され、リモートOracle Blockchain Platformネットワークに接続されている場合にのみコールできます。
this.Ctx.Token.getAllTokens();
パラメータ:
  • なし
戻り値:
  • 成功の場合、すべてのトークン・アセットを含むpromiseが返されます。エラーの場合、エラー・メッセージが返されます。
getDecimals
このメソッドは、フラクショナル・トークンで使用可能な小数点以下の桁数を返します。divisible動作が指定されていない場合、デフォルト値は0です。
this.Ctx.Token.getDecimals(token_asset)
パラメータ:
  • token_id: string – トークンのID。
戻り値の例:
1
history
このメソッドは、指定されたトークンの履歴を返します。
Ctx.Token.history(tokenId: string);
パラメータ:
  • token_id: string – トークンのID。
戻り値の例:
[
    {
        "trxId": "0d75f09446a60088afb948c6aca046e261fddcd43df416076201cdc5565f1a35",
        "timeStamp": "2023-09-01T16:48:41.000Z",
        "value": {
            "assetType": "otoken",
            "token_id": "token",
            "token_name": "fiatmoneytok",
            "token_desc": "updatedDesc",
            "token_standard": "ttf+",
            "token_type": "fungible",
            "token_unit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter"
            },
            "mintable": {
                "max_mint_quantity": 1000
            },
            "divisible": {
                "decimal": 2
            }
        }
    },
    {
        "trxId": "3666344878b043b65d5b821cc79c042ba52aec467618800df5cf14eac69f72fa",
        "timeStamp": "2023-08-31T20:24:55.000Z",
        "value": {
            "assetType": "otoken",
            "token_id": "token",
            "token_name": "fiatmoneytok",
            "token_standard": "ttf+",
            "token_type": "fungible",
            "token_unit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter"
            },
            "mintable": {
                "max_mint_quantity": 1000
            },
            "divisible": {
                "decimal": 2
            }
        }
    }
]
getTokensByName
このメソッドは、指定された名前のすべてのトークン・アセットを返します。このメソッドでは、Berkeley DB SQLリッチ問合せが使用され、リモートOracle Blockchain Platformネットワークに接続されている場合にのみコールできます。
Ctx.Token.getTokensByName(token_name: string);
パラメータ:
  • token_name: string – トークンの名前。これはモデルのToken_nameプロパティに対応します。値は、トークンのクラス名です。
戻り値の例:
[
 {
    "assetType": "otoken",
    "token_id": "digiCurr101",
    "token_name": "digicur",
    "token_desc": "Digital Currency equiv of dollar",
    "token_type": "fungible",
    "behaviors": [
        "divisible",
        "mintable",
        "transferable",
        "burnable",
        "roles"
    ],
    "roles": {
        "minter_role_name": "minter"
        "burner_role_name": "burner",
        "notary_role_name": "notary"
    },
    "mintable": {
        "max_mint_quantity": 2000
    },
    "divisible": {
        "decimal": 1
    },
    "currency_name": "DOLLAR",
    "token_to_currency_ratio": 1
 }
]
createAccount
このメソッドは、指定されたユーザーおよびトークンのアカウントを作成します。いずれかの時点でトークンを保有するすべてのユーザーはアカウントを持っている必要があります。
Ctx.Account.createAccount(org_id: string, user_id: string, token_type: string, dailyLimits);
パラメータ:
  • org_id: string – 現在の組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) ID。IDは英数字で始める必要があり、アンダースコア(_)、ピリオド(.)、アットマーク(@)、ハイフン(-)などの文字、数字および特殊文字を含めることができます。
  • user_id: string – ユーザーのユーザー名または電子メールID。IDは英数字で始める必要があり、アンダースコア(_)、ピリオド(.)、アットマーク(@)、ハイフン(-)などの文字、数字および特殊文字を含めることができます。
  • token_type: string – トークンのタイプ。fungibleである必要があります。
  • daily_limits: DailyLimits– 次の型のJSONオブジェクト。
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    この例では、max_daily_amount値は毎日取引できるトークンの最大量であり、max_daily_transactions値は毎日完了できるトランザクションの最大数です。
戻り値の例:
{
    "bapAccountVersion": 0,
    "assetType": "oaccount",
    "account_id": "oaccount~b53cb2c19c92d1d5c8cb9f6e988e7761c34e03e014e6c4b889565fc0abf46c8a",
    "org_id": "CentralBank",
    "token_type": "fungible",
    "token_id": "",
    "token_name": "",
    "balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "onhold_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "onhold_burn_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6"
}
associateToken
このメソッドは、代替可能トークンをアカウントに関連付けます。
Ctx.Account.associateToken(account_id: string, token_id: string, custom_account_id?: string);
パラメータ:
  • account_id: string – アカウントのID。
  • token_id: string – トークンのID。
  • custom_account_id: string– 機密モードの場合、アカウントの銀行口座ID、一意のランダム英数字識別子。デフォルトでは、14文字の長さです。
戻り値の例:
{
    "bapAccountVersion": 0,
    "assetType": "oaccount",
    "account_id": "oaccount~b53cb2c19c92d1d5c8cb9f6e988e7761c34e03e014e6c4b889565fc0abf46c8a",
    "org_id": "CentralBank",
    "token_type": "fungible",
    "token_id": "USD",
    "token_name": "cbdc",
    "balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "onhold_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "onhold_burn_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
    "application_groups": [
        "CENTRAL_BANK_USERS"
    ]
}
getAllAccounts
このメソッドは、すべてのアカウントのリストを返します。このメソッドでは、Berkeley DB SQLリッチ問合せが使用され、リモートOracle Blockchain Platformネットワークに接続されている場合にのみコールできます。
this.Ctx.Account.getAllAccounts();
パラメータ:
  • なし
戻り値の例:
[
    {
        "key": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
        "valueJson": {
            "bapAccountVersion": 3,
            "assetType": "oaccount",
            "account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
            "org_id": "CentralBank",
            "token_type": "fungible",
            "token_id": "token",
            "token_name": "cbdc",
            "balance": "028a27c752e9b518d156e61da6589e723b179b6d7351dc34ec92bbb27b783ed1dc",
            "onhold_balance": "02d53a7eda9484bda7252212714f647b70d32663cfa416f93f488ef6b6bc8fb2eb",
            "onhold_burn_balance": "02d53a7eda9484bda7252212714f647b70d32663cfa416f93f488ef6b6bc8fb2eb",
            "application_groups": [
                "application_groups value"
            ]
        }
    },
    {
        "key": "oaccount~1da238c1491c919b151f777a615fb5779032c34b3ef3adeca6afe591bac10aaf",
        "valueJson": {
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "account_id": "oaccount~1da238c1491c919b151f777a615fb5779032c34b3ef3adeca6afe591bac10aaf",
            "org_id": "CentralBank",
            "token_type": "fungible",
            "token_id": "token",
            "token_name": "cbdc",
            "balance": "020da01cd57249c6470b6dd03c2ee4c49de58c71ccc64f2de1203e835967a0846d",
            "onhold_balance": "020da01cd57249c6470b6dd03c2ee4c49de58c71ccc64f2de1203e835967a0846d",
            "onhold_burn_balance": "020da01cd57249c6470b6dd03c2ee4c49de58c71ccc64f2de1203e835967a0846d",
            "application_groups": [
                "application_groups value"
            ]
        }
    }
]
getAllOrgAccounts
このメソッドは、指定された組織に属するすべてのトークン・アカウントのリストを返します。
Ctx.Account.getAllOrgAccounts(org_id: string);
パラメータ:
  • org_id: string – 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
戻り値の例:
[
    {
        "key": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
        "valueJson": {
            "bapAccountVersion": 2,
            "assetType": "oaccount",
            "account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
            "org_id": "CentralBank",
            "token_type": "fungible",
            "token_id": "token",
            "token_name": "cbdc",
            "balance": "18",
            "onhold_balance": "0",
            "onhold_burn_balance": "0",
            "application_groups": [
                "application_groups value"
            ],
            "user_id": "cb",
            "custom_account_id": "1234567jh"
        }
    },
    {
        "key": "oaccount~5e3b5a3306d7ca3f3e3fe7cc27b6ae547e94dba1c5af58a69a771d7a619b6a66",
        "valueJson": {
            "bapAccountVersion": 1,
            "assetType": "oaccount",
            "account_id": "oaccount~5e3b5a3306d7ca3f3e3fe7cc27b6ae547e94dba1c5af58a69a771d7a619b6a66",
            "org_id": "CentralBank",
            "token_type": "fungible",
            "token_id": "token",
            "token_name": "cbdc",
            "balance": "22",
            "onhold_balance": "0",
            "onhold_burn_balance": "0",
            "application_groups": [
                "application_groups value"
            ],
            "user_id": "cb1",
            "custom_account_id": "1234567jh"
        }
    }
]
getAccountsByUser
このメソッドは、指定されたユーザーおよび組織のすべてのアカウントIDのリストを返します。
Ctx.Account.getAccountsByUser(org_id: string, user_id: string);
パラメータ:
  • org_id string– 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
  • user_id string – ユーザーのユーザー名または電子メールID。
戻り値の例:
[
    {
        "bapAccountVersion": 2,
        "assetType": "oaccount",
        "user_id": "cb",
        "custom_account_id": "1234567jh",
        "account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
        "org_id": "CentralBank",
        "token_type": "fungible",
        "token_id": "token",
        "token_name": "cbdc",
        "balance": "18",
        "onhold_balance": "0",
        "onhold_burn_balance": "0",
        "application_groups": [
            "application_groups value"
        ]
    }
]
getUserByAccountId
このメソッドは、指定されたアカウントのユーザー詳細を返します。
this.Ctx.Account.getUserByAccountId(account_id: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
    "token_id": "USD",
    "org_id": "CentralBank",
    "user_id": "cb_admin_demo",
    "custom_account_id": "10101234000123"
}
getAccountWithStatus
このメソッドは、指定されたユーザーおよびトークンのアカウント詳細を返します。
Ctx.Account.getAccountWithStatus(account_id: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
    "bapAccountVersion": 2,
    "assetType": "oaccount",
    "user_id": "cb",
    "custom_account_id": "1234567jh",
    "status": "active",
    "account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
    "org_id": "CentralBank",
    "token_type": "fungible",
    "token_id": "token",
    "token_name": "cbdc",
    "balance": "18",
    "onhold_balance": "0",
    "onhold_burn_balance": "0",
    "application_groups": [
        "application_groups value"
    ]
}
getAccountDetailsByCustomAccountId
このメソッドは、指定された組織およびアカウントIDのすべてのトークン・アカウント詳細を返します。
Ctx.Account.getAccountDetailsByCustomAccountId(custom_account_id: string, org_id: string)
パラメータ:
  • custom_account_id: string– アカウントの銀行口座ID。一意のランダムな英数字識別子。
  • org_id string– 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
戻り値の例:
[
    {
        "bapAccountVersion": 0,
        "assetType": "oaccount",
        "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
        "org_id": "CentralBank",
        "token_type": "fungible",
        "token_id": "USD",
        "token_name": "cbdc",
        "balance": "0",
        "onhold_balance": "0",
        "onhold_burn_balance": "0",
        "application_groups": [
            "SYSTEM_ADMINS"
        ],
        "user_id": "cb_admin_demo",
        "custom_account_id": "10101234000123"
    }
]
getAccountBalance
このメソッドは、指定されたアカウントのアカウント残高を返します。
Ctx.Account.getAccountBalance(account_id: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
    "msg": "Current Balance is: 100",
    "user_balance": 100
}
getAccountStatus
このメソッドは、トークン・アカウントの現在のステータスを取得します。
Ctx.AccountStatus.getAccountStatus(account_id: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "active"
}
history (Account Status)
このメソッドは、アカウント・ステータスの履歴を取得します。
Ctx.AccountStatus.history(status_id: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
[
  {
    "trxId": "d5c6d6f601257ba9b6edaf5b7660f00adc13c37d5321b8f7d3a35afab2e93e63",
    "timeStamp": "2025-12-02T10:39:14.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "suspended"
    }
  },
  {
    "trxId": "e6c850cfa084dc20ad95fb2bb8165eef3a3bd62a0ac867cccee57c2003125183",
    "timeStamp": "2025-12-02T10:37:50.000Z",
    "value": {
      "assetType": "oaccountStatus",
      "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
      "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
      "status": "active"
    }
  }
]
activateAccount
このメソッドは、トークン・アカウントをアクティブ化します。削除したアカウントはアクティブ化できません。
Ctx.Account.activateAccount(account_id: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "active"
}
suspendAccount
このメソッドは、トークン・アカウントを一時停止します。アカウントの一時停止後は、アカウントを更新する操作を完了できません。削除されたアカウントは一時停止できません。
Ctx.Account.suspendAccount(account_id: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
    "assetType": "oaccountStatus",
    "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
    "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
    "status": "suspended"
}
deleteAccount
このメソッドは、トークン・アカウントを削除します。アカウントの削除後は、アカウントを更新する操作を完了できません。削除されたアカウントは最終状態であり、他の状態に変更することはできません。アカウントを削除するには、アカウント残高と保留残高がゼロである必要があります。
Ctx.Account.deleteAccount(account_id: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
  "assetType": "oaccountStatus",
  "status_id": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
  "account_id": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
  "status": "deleted"
}
setMaxDailyAmount
このメソッドは、指定されたアカウントのmax_daily_amount値を設定します。
Ctx.Account.setMaxDailyAmount(account_id: string, max_daily_amount?: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
  • max_daily_amount?: string–(オプション)ユーザーが毎日転送できるトークンの最大量。指定しない場合、ユーザーは任意の量のトークンを毎日転送できます。
戻り値の例:
{
           "msg": "Successfully set max daily amount for account id oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a to 1000000"
       }
setMaxDailyTransactionCount
このメソッドは、指定されたアカウントのmax_daily_transactions値を設定します。
Ctx.Account.setMaxDailyTransactionCount(account_id: string, max_daily_transactions?: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
  • max_daily_transactions?: string–(オプション)ユーザーが毎日完了できるトランザクションの最大数。指定しない場合、ユーザーは任意の数のトランザクションを毎日完了できます。
戻り値の例:
{
            "msg": "Successfully set max daily transactions for account id oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a to 100000"
        }
getMaxDailyAmount
このメソッドは、指定されたアカウントのmax_daily_amount値(毎日転送できる最大金額)を取得します。
Ctx.Account.getMaxDailyAmount(account_id: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
           "max_daily_amount": "10000"
       }
getMaxDailyTransactionCount
このメソッドは、指定された勘定科目のmax_daily_transactions値(1日当たりに許可されるトランザクションの最大数)を取得します。
Ctx.Account.getMaxDailyTransactionCount(account_id: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
           "max_daily_transactions": "100"
       }
getAccountOnHoldBalance
このメソッドは、指定されたアカウントの保留残高を返します。
Ctx.Account.getAccountOnHoldBalance(account_id: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
           "msg": "Total Holding Balance is: 0",
           "holding_balance": 0
       }
addRoleMember
このメソッドは、指定されたアカウントにロールを追加します。
Ctx.Token.addRoleMember(role: string, account_id: string, token_asset);
パラメータ:
  • account_id: number – ロールを追加するアカウントID。
  • role: string – 指定したユーザーに追加するロールの名前。
  • token_asset: any– パラメータとして渡されるトークン・アセット。トークン・アセットのプロパティは、モデル・ファイルに記述されています。
戻り値の例:
{
     "msg": "Successfully added role 'notary' to Account Id: oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8"
}
removeRoleMember
このメソッドは、指定されたアカウントからロールを削除します。
Ctx.Token.removeRoleMember(role: string, account_id: string, token_asset);
パラメータ:
  • account_id: number – ロールを削除するアカウントID。
  • role: string – 指定したユーザーから削除するロールの名前。
  • token_asset: any– パラメータとして渡されるトークン・アセット。トークン・アセットのプロパティは、モデル・ファイルに記述されています。
戻り値の例:
{
   "msg": "Successfully removed role 'notary' from Account Id: oaccount~2eb5f8a9bc561f8f41a4ea3be9511958cc6684ef14f2337ca396efc301b627d8"
}
getAccountsByRole
このメソッドは、指定されたロールおよびトークンのすべてのアカウントのリストを返します。
Ctx.Role.getAccountsByRole(token_id: string, role: string);
パラメータ:
  • token_id: string – トークンのID。
  • role: string – 検索するロールの名前。
戻り値の例:
{
           "accounts": [
               "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75"
           ]
       }
getOrgAccountsByRole
このメソッドは、指定された組織内の指定されたロールを持つすべてのアカウントに関する情報を返します。
Ctx.Role.getOrgAccountsByRole(token_id: string, role: string, org_id: string);
パラメータ:
  • token_id: string – トークンのID。
  • role: string – チェックするロールの名前。
  • org_id: string – 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
戻り値の例:
{
           "accounts": [
               "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75"
           ]
       }
getUsersByRole
このメソッドは、指定されたロールおよびトークンのすべてのユーザーのリストを返します。
Ctx.Role.getUsersByRole(token_id: string, role: string);
パラメータ:
  • token_id: string – トークンのID。
  • role: string – 検索するロールの名前。
戻り値の例:
{
          "users": [
              {
                  "token_id": "token",
                  "org_id": "CentralBank"
              }
          ]
      }
getOrgUsersByRole
このメソッドは、指定された組織内の指定されたロールを持つすべてのユーザーに関する情報を返します。
 Ctx.Role.getOrgUsersByRole(token_id: string, role: string, org_id: string);
パラメータ:
  • token_id: string – トークンのID。
  • role: string – チェックするロールの名前。
  • org_id: string – 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
戻り値の例:
{
           "users": [
               {
                   "token_id": "token",
                   "org_id": "CentralBank",
                   "user_id": "cb1",
                   "custom_account_id": "1234567jh"
               }
           ]
       }
isInRole
このメソッドは、ユーザーが指定されたロールを持っているかどうかを示します。
Ctx.Token.isInRole(role: string, account_id: string, token_asset)
パラメータ:
  • account_id: number– トークン・アカウントの一意のID。
  • role: string – チェックするロールの名前。
  • token_asset: any– パラメータとして渡されるトークン・アセット。トークン・アセットのプロパティは、モデル・ファイルに記述されています。
戻り値の例:
{
           "result": "true"
       }
getAccountTransactionHistory
このメソッドは、指定されたアカウントのトランザクション履歴詳細の配列を返します。
Ctx.Account.getAccountTransactionHistory(account_id: string)
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
[
    {
        "transaction_id": "otransaction~4514aa229ebcc4d2fedcaa47c4301615e30c4a9bae45cf0256a5b80d75b3697a",
        "transacted_amount": 1000,
        "timestamp": "2025-08-25T13:20:50.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "APPROVE_MINT",
        "balance": 21000,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~1982f73495060e0eef4d78282a91c41e27e8c95572739b0677a1e404a0d20aa9",
        "transacted_amount": 200,
        "timestamp": "2025-08-25T13:12:43.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "REQUEST_MINT",
        "balance": 20000,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~fedd714cf1509f7517819d7cd4c0921d0b2f5d1ff6a25dcb08ab411defd6b5f3",
        "transacted_amount": 2000,
        "timestamp": "2025-08-21T05:23:25.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "REQUEST_MINT",
        "balance": 20000,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~f33b47234f3ee0b636962c8c31c01d06523b789ca16b3b342d5080b71268bcc3",
        "transacted_amount": 1000,
        "timestamp": "2025-08-21T05:23:07.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "REQUEST_MINT",
        "balance": 20000,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~cf934527149bc24f62a8ddeeea7f74a19a0f84d8f161535a771be49d2520d5b3",
        "transacted_amount": 10000,
        "timestamp": "2025-08-13T06:12:41.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "APPROVE_MINT",
        "balance": 20000,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~f5c0e11ca61d9adc843658929e6de2a738ad586304f9e020f75bf4aac5e42a2c",
        "transacted_amount": 10000,
        "timestamp": "2025-08-13T06:12:04.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "REQUEST_MINT",
        "balance": 10000,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~862aa9d9e877d3ea209b87299ab5b12c13ed5ce43d1cf1b934043c1dd02f58f6",
        "transacted_amount": 50000,
        "timestamp": "2025-08-12T21:04:22.000Z",
        "token_id": "USD",
        "category": "transfer",
        "transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "transaction_type": "DEBIT",
        "balance": 10000,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~8a74c6d87ca74a613aab9db5d40386f8d5b534f9800503af8ca27e8946d7616d",
        "transacted_amount": 40000,
        "timestamp": "2025-08-12T21:01:27.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "REJECT_MINT",
        "balance": 60000,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~28ac66ba33f7ad0648448964b2b74525c9e3f0c9908c7a0484690b9baa56c2db",
        "transacted_amount": 30000,
        "timestamp": "2025-08-12T21:01:16.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "APPROVE_MINT",
        "balance": 60000,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~7e32ad8f365ff59814e112f27602f30ab599fb9c1638784496c66a61a6277c22",
        "transacted_amount": 20000,
        "timestamp": "2025-08-12T21:01:05.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "APPROVE_MINT",
        "balance": 30000,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~1477050bb9e55f4f471872b31fce0d2097f5d5e57d89a842070df5e36d7ab0da",
        "transacted_amount": 10000,
        "timestamp": "2025-08-12T21:01:03.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "APPROVE_MINT",
        "balance": 10000,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~0e76c6931b7ee134e967e847d9730b867a0fd191d39697d83d36dd15745c02e3",
        "transacted_amount": 40000,
        "timestamp": "2025-08-12T21:00:20.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "REQUEST_MINT",
        "balance": 0,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~07bbf9c190694371626da59ded5d87434d26f612891e13bb15bdd28f6086e760",
        "transacted_amount": 30000,
        "timestamp": "2025-08-12T21:00:01.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "REQUEST_MINT",
        "balance": 0,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~8721175c6cbbce17b6c4bb6a444e475d07f52352dfd0d990679f342215153513",
        "transacted_amount": 20000,
        "timestamp": "2025-08-12T20:59:41.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "REQUEST_MINT",
        "balance": 0,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~dc24c24d43a6525e807a39edcf8c6a2b6ccb81f0d755958f509509687eacee84",
        "transacted_amount": 10000,
        "timestamp": "2025-08-12T20:59:13.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "REQUEST_MINT",
        "balance": 0,
        "onhold_balance": 0
    },
    {
        "transaction_id": "otransaction~396e6ca5a11a9609632d0864026409d46a708fb95e3e21b39fa5f3fb78f90872",
        "transacted_amount": 0,
        "timestamp": "2025-08-12T20:43:20.000Z",
        "token_id": "",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transaction_type": "CREATE_ACCOUNT",
        "balance": 0,
        "onhold_balance": 0
    }
]
getAccountTransactionHistoryWithFilters
このメソッドは、指定されたアカウントのトランザクション履歴詳細の配列を返します。このメソッドは、リモートOracle Blockchain Platformネットワークに接続されている場合にのみコールできます。
Ctx.Account.getAccountTransactionHistoryWithFilters(account_id: string, org_id: string, filters);
パラメータ:
  • account_id: string – アカウントのID。
  • org_id: string – 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
  • filters: string – オプション・パラメータ。空の場合は、すべてのレコードが返されます。PageSizeプロパティは、返すレコード数を決定します。PageSizeが0の場合、デフォルトのページ・サイズは20です。Bookmarkプロパティは、返されるレコードの開始索引を決定します。詳細は、Hyperledger Fabricのドキュメントを参照してください。StartTimeおよびEndTimeプロパティは、RFC-3339形式で指定する必要があります。
戻り値の例:
[
             {
                "transaction_id": "otransaction~ccc2c2e89ab7887af4fdad3dc9918ea057a8aa834a0ed8d0f23271049f084952",
                "transacted_amount": 8,
                "timestamp": "2025-08-20T23:22:53.000Z",
                "token_id": "token",
                "category": "category value",
                "description": "description value",
                "holding_id": "ohold~cbdc~token~hold1",
                "to_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
                "to_org_id": "Org1",
                "to_user_id": "cb",
                "to_custom_account_id": "1234567jh",
                "from_account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
                "from_org_id": "CentralBank",
                "from_user_id": "Not Available",
                "from_custom_account_id": "Not Available",
                "transacted_account": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
                "transaction_type": "CREDIT",
                "balance": 18,
                "onhold_balance": 0,
                "transacted_org_id": "CentralBank",
                "transacted_user_id": "Not Available",
                "transacted_custom_account_id": "Not Available"
            },
            {
                "transaction_id": "otransaction~6c0452a58f13db93f1c308d60eab1fde6c911921b350c0bbbe0ce7dab394721d",
                "transacted_amount": 10,
                "timestamp": "2025-08-20T23:04:53.000Z",
                "token_id": "token",
                "category": "category value",
                "description": "description value",
                "holding_id": "ohold~cbdc~token~hold1",
                "to_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
                "to_org_id": "Org1",
                "to_user_id": "cb",
                "to_custom_account_id": "1234567jh",
                "from_account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
                "from_org_id": "CentralBank",
                "from_user_id": "Not Available",
                "from_custom_account_id": "Not Available",
                "transacted_account": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
                "transaction_type": "CREDIT",
                "balance": 10,
                "onhold_balance": 0,
                "transacted_org_id": "CentralBank",
                "transacted_user_id": "Not Available",
                "transacted_custom_account_id": "Not Available"
            },
            .
            .
            .
            .
            {
                "transaction_id": "otransaction~df98e24a3b90661b54b54289b600b13a1051c922db0a4d20e3705a9820ae9c20",
                "transacted_amount": 0,
                "timestamp": "2025-08-20T22:55:09.000Z",
                "category": "",
                "description": "",
                "from_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
                "from_org_id": "Org1",
                "from_user_id": "cb",
                "from_custom_account_id": "1234567jh",
                "transacted_account": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
                "transaction_type": "CREATE_ACCOUNT",
                "balance": 0,
                "onhold_balance": 0,
                "transacted_org_id": "Org1",
                "transacted_user_id": "cb",
                "transacted_custom_account_id": "1234567jh"
            }
 ]
getAccountTrxHistoryWithFiltersFromRichHistDB
このメソッドは、リッチ履歴データベースからトランザクション履歴詳細の配列を返します。
Ctx.Account.getAccountTrxHistoryWithFiltersFromRichHistDB(account_id: string, org_id: string, custom_endpoint: string, bearer_token: string, filters);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
  • org_id: string – 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
  • custom_endpoint– リッチ履歴データベースのRESTfulサービス・エンドポイント。
  • bearer_token– RESTfulサービス・エンドポイントのアクセス認可トークン。
  • filters: string – オプション・パラメータ。空の場合は、すべてのレコードが返されます。PageSizeプロパティは、返すレコード数を決定します。PageSizeが0の場合、デフォルトのページ・サイズは20です。Bookmarkプロパティは、返されるレコードの開始索引を決定します。詳細は、Hyperledger Fabricのドキュメントを参照してください。StartTimeおよびEndTimeプロパティは、RFC-3339形式で指定する必要があります。
戻り値の例:
[
    {
        "transaction_id": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c",
        "transacted_amount": 200,
        "timestamp": "2025-08-25T13:16:55.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "transacted_org_id": "Org1",
        "transacted_user_id": "fi1_org_officer_demo",
        "transacted_custom_account_id": "20200222221111",
        "to_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "to_org_id": "Org1",
        "to_user_id": "fi1_org_officer_demo",
        "to_custom_account_id": "20200222221111",
        "from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "from_org_id": "CentralBank",
        "from_user_id": "cb_issuer_demo",
        "from_custom_account_id": "10109999001234",
        "transaction_type": "EXECUTEHOLD",
        "category": "transfer",
        "balance": 26800,
        "onhold_balance": 300
    },
    {
        "transaction_id": "otransaction~5112f576c94c2d23c342479bfa37e34612414b3258a64b43cf51b920f4ff5868",
        "transacted_amount": 5000,
        "timestamp": "2025-08-12T21:05:02.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
        "transacted_org_id": "CentralBank",
        "transacted_user_id": "cb_retirer_demo",
        "transacted_custom_account_id": "10109999006543",
        "to_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
        "to_org_id": "CentralBank",
        "to_user_id": "cb_retirer_demo",
        "to_custom_account_id": "10109999006543",
        "from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "from_org_id": "CentralBank",
        "from_user_id": "cb_issuer_demo",
        "from_custom_account_id": "10109999001234",
        "transaction_type": "DEBIT",
        "category": "burn",
        "balance": 45000,
        "onhold_balance": 0
    },
    .  
    .
    .
    .
    {
        "transaction_id": "otransaction~862aa9d9e877d3ea209b87299ab5b12c13ed5ce43d1cf1b934043c1dd02f58f6",
        "transacted_amount": 50000,
        "timestamp": "2025-08-12T21:04:22.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "transacted_org_id": "CentralBank",
        "transacted_user_id": "cb__creator_demo",
        "transacted_custom_account_id": "10105678004567",
        "to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "to_org_id": "CentralBank",
        "to_user_id": "cb_issuer_demo",
        "to_custom_account_id": "10109999001234",
        "from_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "from_org_id": "CentralBank",
        "from_user_id": "cb__creator_demo",
        "from_custom_account_id": "10105678004567",
        "transaction_type": "CREDIT",
        "category": "transfer",
        "balance": 50000,
        "onhold_balance": 0
    }
]
getOrgAccountsTrxHistoryWithFiltersFromRichHistDB
このメソッドは、リッチ履歴データベースから、指定された組織のトランザクション履歴詳細の配列を返します。
Ctx.Account.getOrgAccountsTrxHistoryWithFiltersFromRichHistDB(org_id: string, custom_endpoint: string, bearer_token: string, filters);
パラメータ:
  • org_id string– 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
  • custom_endpoint– リッチ履歴データベースのRESTfulサービス・エンドポイント。
  • bearer_token– RESTfulサービス・エンドポイントのアクセス認可トークン。
  • filters: string – オプション・パラメータ。空の場合は、すべてのレコードが返されます。PageSizeプロパティは、返すレコード数を決定します。PageSizeが0の場合、デフォルトのページ・サイズは20です。Bookmarkプロパティは、返されるレコードの開始索引を決定します。詳細は、Hyperledger Fabricのドキュメントを参照してください。StartTimeおよびEndTimeプロパティは、RFC-3339形式で指定する必要があります。
戻り値の例:
[
    {
        "transaction_id": "otransaction~4793f3907eefce2f9fca7ef107405b0f116efb3afbf83fa0e61fe763690c8235",
        "transacted_amount": 100,
        "timestamp": "2025-08-25T13:47:56.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "transacted_org_id": "Org1",
        "transacted_user_id": "fi1_org_officer_demo",
        "transacted_custom_account_id": "20200222221111",
        "to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "to_org_id": "CentralBank",
        "from_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "from_org_id": "Org1",
        "from_user_id": "fi1_org_officer_demo",
        "from_custom_account_id": "20200222221111",
        "transaction_type": "ONHOLD",
        "holding_id": "ohold~cbdc~USD~2ac01689",
        "category": "issuance"
    },
    {
        "transaction_id": "otransaction~5177f7560d32838242a26ac74f2a90c6ff9b47aae0d0988f28d9b4cf7e27c097",
        "transacted_amount": 10,
        "timestamp": "2025-08-25T13:22:23.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
        "transacted_org_id": "Org1",
        "transacted_user_id": "fi1_org_user1_demo",
        "transacted_custom_account_id": "20200198765432",
        "to_account": "oaccount~d08ff55a040d5e5dcf406009bab1b3398e06c374356efb1bddbf2f17fc37f949",
        "to_org_id": "Org1",
        "to_user_id": "fi1_org_user2_demo",
        "to_custom_account_id": "20200211112222",
        "from_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
        "from_org_id": "Org1",
        "from_user_id": "fi1_org_user1_demo",
        "from_custom_account_id": "20200198765432",
        "transaction_type": "CREDIT",
        "holding_id": "ohold~cbdc~USD~454f4bf6",
        "category": "transfer"
    },
    .
    .
    .
    .
    {
        "transaction_id": "otransaction~b7c97d737fb978651c9132276ab677c0bcf795b9db13d0d39cba5243615c7389",
        "transacted_amount": 10,
        "timestamp": "2025-08-21T08:46:09.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "transacted_org_id": "Org1",
        "transacted_user_id": "fi1_org_officer_demo",
        "transacted_custom_account_id": "20200222221111",
        "to_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
        "to_org_id": "Org1",
        "to_user_id": "fi1_org_user1_demo",
        "to_custom_account_id": "20200198765432",
        "from_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "from_org_id": "Org1",
        "from_user_id": "fi1_org_officer_demo",
        "from_custom_account_id": "20200222221111",
        "transaction_type": "ONHOLD",
        "holding_id": "ohold~cbdc~USD~4fbbb846",
        "category": "transfer"
    }
]
getAllAccountsTrxHistoryWithFiltersFromRichHistDB
このメソッドは、リッチ履歴データベースから全ての組織の取引履歴詳細の配列を返します。
Ctx.Account.getAllAccountsTrxHistoryWithFiltersFromRichHistDB(custom_endpoint: string, bearer_token: string, filters);
パラメータ:
  • org_id string– 組織のメンバーシップ・サービス・プロバイダ(MSP) ID。
  • custom_endpoint– リッチ履歴データベースのRESTfulサービス・エンドポイント。
  • bearer_token– RESTfulサービス・エンドポイントのアクセス認可トークン。
  • filters: string – オプション・パラメータ。空の場合は、すべてのレコードが返されます。PageSizeプロパティは、返すレコード数を決定します。PageSizeが0の場合、デフォルトのページ・サイズは20です。Bookmarkプロパティは、返されるレコードの開始索引を決定します。詳細は、Hyperledger Fabricのドキュメントを参照してください。StartTimeおよびEndTimeプロパティは、RFC-3339形式で指定する必要があります。
戻り値の例:
[
    {
        "transaction_id": "otransaction~62eb436be7c29fc2ed9cae221e874d9a31b163fa10374e7da09bf5e09a96c3ff",
        "transacted_amount": 10000,
        "timestamp": "2025-08-25T13:57:58.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "transacted_org_id": "CentralBank",
        "transacted_user_id": "cb_issuer_demo",
        "transacted_custom_account_id": "10109999001234",
        "to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "to_org_id": "CentralBank",
        "to_user_id": "cb_issuer_demo",
        "to_custom_account_id": "10109999001234",
        "from_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
        "from_org_id": "CentralBank",
        "from_user_id": "cb__creator_demo",
        "from_custom_account_id": "10105678004567",
        "transaction_type": "DEBIT",
        "category": "issuance"
    },
    {
        "transaction_id": "otransaction~4793f3907eefce2f9fca7ef107405b0f116efb3afbf83fa0e61fe763690c8235",
        "transacted_amount": 100,
        "timestamp": "2025-08-25T13:47:56.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "transacted_org_id": "Org1",
        "transacted_user_id": "fi1_org_officer_demo",
        "transacted_custom_account_id": "20200222221111",
        "to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
        "to_org_id": "CentralBank",
        "to_user_id": "cb_issuer_demo",
        "to_custom_account_id": "10109999001234",
        "from_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
        "from_org_id": "Org1",
        "from_user_id": "fi1_org_officer_demo",
        "from_custom_account_id": "20200222221111",
        "transaction_type": "ONHOLD",
        "holding_id": "ohold~cbdc~USD~2ac01689",
        "category": "issuance"
    },
    .
    .
    .
    .
    {
        "transaction_id": "otransaction~5177f7560d32838242a26ac74f2a90c6ff9b47aae0d0988f28d9b4cf7e27c097",
        "transacted_amount": 10,
        "timestamp": "2025-08-25T13:22:23.000Z",
        "token_id": "USD",
        "transacted_account": "oaccount~d08ff55a040d5e5dcf406009bab1b3398e06c374356efb1bddbf2f17fc37f949",
        "transacted_org_id": "Org1",
        "transacted_user_id": "fi1_org_user2_demo",
        "transacted_custom_account_id": "20200211112222",
        "to_account": "oaccount~d08ff55a040d5e5dcf406009bab1b3398e06c374356efb1bddbf2f17fc37f949",
        "to_org_id": "Org1",
        "to_user_id": "fi1_org_user2_demo",
        "to_custom_account_id": "20200211112222",
        "from_account": "oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111",
        "from_org_id": "Org1",
        "from_user_id": "fi1_org_user1_demo",
        "from_custom_account_id": "20200198765432",
        "transaction_type": "EXECUTEHOLD",
        "holding_id": "ohold~cbdc~USD~454f4bf6",
        "category": "transfer"
    }
]
consolidateRunningBalanceInTransactions
この方法では、実行中の勘定科目残高が計算され、更新された値がトランザクションのキー/値のペアに保存されます。通常、システム管理者はRESTプロキシ・スケジューラを使用してこのメソッドをコールします。
Ctx.Transaction.consolidateRunningBalanceInTransactions(save: boolean);
戻り値の例:
{ msg: "Successfully updated account running balance for pending transactions."}
processSendersAndReceivers
このメソッドは、組織間転送中に作成された送信者および受信者のキー/値ペアに分散されたトークン・アカウント残高を計算および更新し、使用されなくなった送信者および受信者のキー/値ペアを削除します。通常、システム管理者はRESTプロキシ・スケジューラを使用してこのメソッドをコールします。
Ctx.Account.processSendersAndReceivers(save: boolean);
戻り値の例:
{ msg: "Successfully updated balance for accounts from pending receivers."}
deleteTransactions
このメソッドは、状態データベースから古いトランザクションを削除します。
Ctx.Transaction.deleteTransactions(time_to_expiration: Date);
パラメータ:
  • time_to_expiration: Date – トランザクションを削除するタイミングを示すタイムスタンプ。指定した時間より古いトランザクション・アセットが削除されます。
戻り値の例:
{
    "msg": "Successfully deleted transaction older than date: Thu Aug 19 2025 11:19:36 GMT+0000 (Coordinated Universal Time).",
    "transactions": [
           "otransaction~ec3366dd48b4ce2838f820f2f138648e6e55a07226713e59b411ff31b0d21058"
     ]
}
getTransactionById
このメソッドは、Transactionアセットの履歴を返します。
Ctx.Transaction.getTransactionById(transaction_id: string);
パラメータ:
  • transaction_id string– トランザクション・アセットのID。
戻り値の例:
{
    "transaction_id": "otransaction~6523597253e45b3c976aecdc54e2c6316d0a4f88ad5d7f3fff48c69213e4375a",
    "history": [
        {
            "trxId": "6523597253e45b3c976aecdc54e2c6316d0a4f88ad5d7f3fff48c69213e4375a",
            "timeStamp": "2025-08-20T23:21:45.000Z",
            "value": {
                "assetType": "otransaction",
                "transaction_id": "otransaction~6523597253e45b3c976aecdc54e2c6316d0a4f88ad5d7f3fff48c69213e4375a",
                "token_id": "token",
                "from_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
                "to_account_id": "oaccount~5e3b5a3306d7ca3f3e3fe7cc27b6ae547e94dba1c5af58a69a771d7a619b6a66",
                "transaction_type": "TRANSFER",
                "amount": 22,
                "timestamp": "2025-08-20T23:21:45.000Z",
                "number_of_sub_transactions": 0,
                "holding_id": "",
                "sub_transaction": "false",
                "category": "category value",
                "description": "description value"
            }
        }
    ],
    "sub_transactions": []
}
issueTokens
マイナーは、このメソッドをコールして、指定した量のトークンを作成できます。
this.Ctx.Token.mint(quantity, token_asset, info_details)
パラメータ:
  • token_id: string – トークンのID。
  • quantity – ミントするトークンの数。
  • info_details: JSON– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。

    Visual Studio CodeとCLIまたはPostmanコレクションを使用している場合は、info_detailsパラメータを別の形式で指定します。

    Visual Studioコード: { "category": "category value", "description": "description value" }

    CLI /ポストマン: "{\"category\":\"category value\",\"description\":\"description value\"}"

戻り値の例:
{
          "msg": "Successfully minted 1000 tokens to Account Id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41"
      }
getTotalMintedTokens
このメソッドは、ミントされたトークンの合計数を返します。
Ctx.Token.getTotalMintedTokens(token_asset);
パラメータ:
  • token_asset: any– パラメータとして渡されるトークン・アセット。トークン・アセットのプロパティは、モデル・ファイルに記述されています。
戻り値の例:
{
    "msg": "Total minted token for Token Id: USD is 910 tokens.",
    "quantity": 910
}
getNetTokens
このメソッドは、システムで使用可能なトークンの正味数量を返します。正味トークンは、トークンのバーン後に残存するトークンの数量です。等式では、正味トークン = ミントされたトークンの合計 - バーンされたトークンの合計です。トークンがバーンされていない場合、正味トークン数は、ミントされたトークンの合計と等しくなります。
Ctx.Token.getNetTokens(token_asset);
パラメータ:
  • token_asset: any– パラメータとして渡されるトークン・アセット。トークン・アセットのプロパティは、モデル・ファイルに記述されています。
戻り値の例:
{
    "msg": "Net supply of token for Token Id: USD is 878 tokens.",
    "quantity": 878
}
transferTokens
このメソッドは、トークンをコール元から指定されたアカウントに転送します。メソッドのコール元にはアカウントが必要です。数量は、仕様ファイルのdivisible動作のdecimalパラメータで指定された10進数値内にする必要があります。
this.Ctx.Token.transfer(to_account_id: string, quantity, token_asset, info_details);
パラメータ:
  • to_account_id: string– 受信者のアカウントID。
  • quantity: number – 転送するトークンの数。
  • info_details: JSON– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。

    Visual Studio CodeとCLIまたはPostmanコレクションを使用している場合は、info_detailsパラメータを別の形式で指定します。

    Visual Studioコード: { "category": "category value", "description": "description value" }

    CLI /ポストマン: "{\"category\":\"category value\",\"description\":\"description value\"}"

戻り値の例:
{
          "msg": "Successfully transferred 10000 tokens from account id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41  to account id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a."
      }
hold
このメソッドは、指定された量のトークンを作成するために、ミニター公証人にリクエストを送信するために使用されます。指定された公証人アカウントは、保留を完了または解除する責任があります。
Ctx.Hold.hold(operation_id: string, to_account_id: string, notary_account_id: string, quantity: number, time_to_expiration: Date, token, type: HoldOperationType, info_details?: InfoDetails)
パラメータ:
  • operation_id: string – 保留操作を識別する一意のID。通常、このIDはクライアント・アプリケーションによって渡されます。
  • to_account_id: string– 受信者アカウントのID。
  • notary__account_id: string– 公証人アカウントのID。
  • quantity: number – 保留にするトークンの合計数。
  • time_to_expiration: Date – 保留が期限切れになるまでの期間。永続的な保留の場合は0を指定します。それ以外の場合は、RFC-3339形式を使用します。たとえば、2021-06-02T12です。
  • token: any– トークン・アセット。パラメータとして渡されます。トークン・アセットのプロパティは、モデル・ファイルに記述されています。
  • type: HoldOperationType– リクエストする保留操作のタイプ。MINTBURNまたはTRANSFERの3つの値のいずれかである必要があります。
  • info_details: JSON– リクエストのカテゴリ(category)および説明(description)を指定するオブジェクト。

    Visual Studio CodeとCLIまたはPostmanコレクションを使用している場合は、info_detailsパラメータを別の形式で指定します。

    Visual Studioコード: { "category": "category value", "description": "description value" }

    CLI /ポストマン: "{\"category\":\"category value\",\"description\":\"description value\"}"

戻り値の例:
{
           "msg": "AccountId oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41 has successfully submitted request to mint 200 tokens"
       }
executeHold
Notariesはこのメソッドをコールして保留操作を承認できます。保留操作には、ミント、バーンまたは転送の3つのタイプがあります。
Ctx.Hold. executeHold(operation_id: string, token, operation_type: HoldOperationType, quantity? :number)
パラメータ:
  • operation_type: HoldOperationType– 承認する保留操作のタイプ。MINTBURNまたはTRANSFERの3つの値のいずれかである必要があります。
  • quantity: number–(オプション)転送操作の場合のみ、受信者に転送されることが承認された金額。
  • token: any– トークン・アセット。パラメータとして渡されます。トークン・アセットのプロパティは、モデル・ファイルに記述されています。
  • operation_id: string– リクエストの一意のID。
戻り値の例:
{
           "msg": "Successfully minted 1000 tokens to Account Id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41"
       }
releaseHold
Notariesはこのメソッドをコールして保留操作を拒否できます。保留操作には、ミント、バーンまたは転送の3つのタイプがあります。
Ctx.Hold.releaseHold(operation_id: string, token, operation_type: HoldOperationType)
パラメータ:
  • operation_type: HoldOperationType– 拒否する保留操作のタイプ。MINTBURNまたはTRANSFERの3つの値のいずれかである必要があります。
  • token: any– トークン・アセット。パラメータとして渡されます。トークン・アセットのプロパティは、モデル・ファイルに記述されています。
  • operation_id: string– リクエストの一意のID。
戻り値の例:
{
           "msg": "Successfully rejected mint request with Operation Id '89ce' to mint 2000 tokens of token id USD"
       }
getOnHoldIds
このメソッドは、指定されたアカウントのすべての保留IDのリストを返します。
Ctx.Account.getOnHoldIds(account_id: string);
パラメータ:
  • account_id: string– トークン・アカウントの一意のID。
戻り値の例:
{
           "msg": "Holding Ids are: ",
           "holding_ids": ["ohold~cbdc~token~hold1"]
       }
getOnHoldDetailsWithOperationId
このメソッドは、指定された操作IDおよびトークンの保留トランザクション詳細を返します。
Ctx.Hold.getOnHoldDetailsWithOperationId(token_id: string, operation_id: string);
パラメータ:
  • token_id: string – トークンのID。
  • operation_id: string – 保留操作を識別する一意のID。
戻り値の例:
{
          "assetType": "ohold",
          "holding_id": "ohold~cbdc~token~hold1",
          "operation_id": "hold1",
          "token_name": "cbdc",
          "from_org_id": "CentralBank",
          "operation_type": "transfer",
          "status": "approved",
          "from_account_id": "oaccount~5abb4155f4b245bb1732321e3174ac81999b03495b5c74f8e1f270bafbadef75",
          "to_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
          "notary_account_id": "oaccount~1da238c1491c919b151f777a615fb5779032c34b3ef3adeca6afe591bac10aaf",
          "token_id": "token",
          "quantity": "0",
          "time_to_expiration": "2029-01-04T00:00:00.000Z",
          "category": "category value",
          "description": "description value"
      }
getOnHoldBalanceWithOperationId
このメソッドは、指定された操作IDおよびトークンの保留残高を返します。このメソッドは、だれでも呼び出すことができます。
Ctx.Hold.getOnHoldBalanceWithOperationId(token_id: string, operation_id: string);
パラメータ:
  • token_id: string – トークンのID。
  • operation_id: string – 保留操作を識別する一意のID。
戻り値の例:
{
           "msg": "Current Holding Balance of Operation 'hold1' for token 'token' is: 0",
           "holding_balance": 0
       }

TypeScript組織間転送のSDKメソッド

組織間転送には2つの部分があります。最初に金額が送信者から借方記入され、次に金額が受信者に貸方記入されます。次の2つのAPIは、Oracle Blockchain Platform RESTプロキシの2フェーズ・コミットAPIを使用してアトミック・トランザクションとしてまとめてコールされます。2つの組織のプライベート・データ・コレクションは個別であり、単一のトランザクションではアクセスできないため、機密転送はこの方法で行われます。

executeHoldTokensSender
このメソッドは、指定の操作IDの公証人ロールを持つユーザーのみがコールできます。この方法は、組織間の異動の承認の最初の部分です。指定された金額は送信者の口座から差し引かれます。
Ctx.Hold.executeHoldSender(operation_id: string, quantity, globalTxId: string, token: any);
パラメータ:
  • token: any– トークン・アセット。パラメータとして渡されます。トークン・アセットのプロパティは、モデル・ファイルに記述されています。
  • operation_id: string– 承認する保留リクエストを表す一意の操作ID。
  • quantity: number– 転送する保留トークンの量。
  • globalTxid: string–2フェーズ・コミット・リクエストに対してRESTプロキシによって生成されるグローバル・トランザクションID。この場合、組織間転送で借方操作と貸方操作をバインドする共通参照として使用されます。
戻り値の例:
{
      "msg":
        "Account Id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a is successfully executed '10' tokens from Operation Id 'hold1'."
    }
executeHoldTokensReceiver
このメソッドは、指定の操作IDの公証人ロールを持つユーザーのみがコールできます。この方法は、組織間の異動の承認の2番目の部分です。指定された金額は、受け側のアカウントに貸方記入されます。
Ctx.Hold.executeHoldReceiver(operation_id: string, quantity, globalTxId: string, token: any);
パラメータ:
  • token: any– トークン・アセット。パラメータとして渡されます。トークン・アセットのプロパティは、モデル・ファイルに記述されています。
  • operation_id: string– 承認する保留リクエストを表す一意の操作ID。
  • quantity: number– 転送する保留トークンの量。
  • globalTxid: string–2フェーズ・コミット・リクエストに対してRESTプロキシによって生成されるグローバル・トランザクションID。この場合、組織間転送で借方操作と貸方操作をバインドする共通参照として使用されます。
戻り値の例:
{
      "msg":
        "Account Id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a is successfully executed '10' tokens from Operation Id 'hold1, receiverId oreceiver~72d9bfcf-2c68-4c33-b8c3-fe3374983bf2'."
    }