-
isTokenAdmin
- このメソッドは、関数のコール元が
Token Admin
の場合はブール値true
を返して、それ以外の場合はfalse
を返します。Token Admin
、Token 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);
}
- パラメータ:
- 戻り値の例:
{
"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。
- 戻り値:
- 戻り値の例:
[
{
"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_id
、token_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"
}
]
-
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~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
- このメソッドは、指定されたユーザーおよびトークンのアカウント・トランザクション履歴詳細のフィルタされた配列を返します。このメソッドは、
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形式で指定する必要があります。
- 戻り値の例:
[
{
"transaction_id": "otransaction~ccc2c2e89ab7887af4fdad3dc9918ea057a8aa834a0ed8d0f23271049f084952",
"transacted_amount": 10,
"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~6523597253e45b3c976aecdc54e2c6316d0a4f88ad5d7f3fff48c69213e4375a",
"transacted_amount": 22,
"timestamp": "2025-08-20T23:21:45.000Z",
"token_id": "token",
"category": "category value",
"description": "description value",
"to_account_id": "oaccount~5e3b5a3306d7ca3f3e3fe7cc27b6ae547e94dba1c5af58a69a771d7a619b6a66",
"to_org_id": "Org1",
"to_user_id": "cb1",
"to_custom_account_id": "1234567jh",
"from_account_id": "oaccount~22776ada3efff6aaf4c68c204c1f063b139adfa1bca79ed53199117c34036cfc",
"from_org_id": "Org1",
"from_user_id": "cb",
"from_custom_account_id": "1234567jh",
"transacted_account": "oaccount~5e3b5a3306d7ca3f3e3fe7cc27b6ae547e94dba1c5af58a69a771d7a619b6a66",
"transaction_type": "DEBIT",
"balance": 8,
"onhold_balance": 0,
"transacted_org_id": "Org1",
"transacted_user_id": "cb1",
"transacted_custom_account_id": "1234567jh"
},
{
"transaction_id": "otransaction~3212811cd7c0ff265434f5921b93621cc5b0e0450b07c52b42ad9d8ce73cf063",
"transacted_amount": 10,
"timestamp": "2025-08-20T23:18: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": 30,
"onhold_balance": 0,
"transacted_org_id": "CentralBank",
"transacted_user_id": "Not Available",
"transacted_custom_account_id": "Not Available"
},
{
"transaction_id": "otransaction~af2a1b0d56778e4ff5f4dda4e81bbcbf02c0592416ee2f105ff0b764e515fd0a",
"transacted_amount": 10,
"timestamp": "2025-08-20T23:17:29.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": 20,
"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形式で指定する必要があります。
- 戻り値の例:
[
{
"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~2b75b3e8531a651f07c2d048d8546ad70ac49c66f0b82ed7626c1739090842ce",
"transacted_amount": 100,
"timestamp": "2025-08-25T13:16:06.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~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": "ONHOLD",
"holding_id": "ohold~cbdc~USD~e26f11da",
"category": "transfer",
"balance": 26800,
"onhold_balance": 500
},
{
"transaction_id": "otransaction~9e7bf14cf96c5f90170da9455b1318687785e936192f60b7cbeb1c8bfabc41d2",
"transacted_amount": 100,
"timestamp": "2025-08-21T06:57:19.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~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"to_org_id": "CentralBank",
"to_user_id": "cb_issuer_demo",
"to_custom_account_id": "10109999001234",
"from_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
"from_org_id": "CentralBank",
"from_user_id": "cb_retirer_demo",
"from_custom_account_id": "10109999006543",
"transaction_type": "CREDIT",
"category": "transfer",
"balance": 26900,
"onhold_balance": 400
},
{
"transaction_id": "otransaction~b3901b4754920a9c75e36069dc55024ad505e4c127f334eedf65ef6703dc6b86",
"transacted_amount": 200,
"timestamp": "2025-08-21T05:39:25.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~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"to_org_id": "org2",
"to_user_id": "fi2_org_officer_demo",
"to_custom_account_id": "30300617202404",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "ONHOLD",
"holding_id": "ohold~cbdc~USD~77b75873",
"category": "issuance",
"balance": 26800,
"onhold_balance": 400
},
{
"transaction_id": "otransaction~d55c9dfc9feacb353544b5d8b2ae694162ade3890bcaaf715503fd1d6a73cd1a",
"transacted_amount": 200,
"timestamp": "2025-08-21T05:39:01.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~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": "ONHOLD",
"holding_id": "ohold~cbdc~USD~81d7c4ac",
"category": "transfer",
"balance": 27000,
"onhold_balance": 200
},
{
"transaction_id": "otransaction~751eaedbe4311edd5d17cae53d283caf397d0cb09f18d57a5e3fe61266875ff9",
"transacted_amount": 200,
"timestamp": "2025-08-13T09:59:22.000Z",
"token_id": "USD",
"transacted_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"transacted_org_id": "org2",
"transacted_user_id": "fi2_org_officer_demo",
"transacted_custom_account_id": "30300617202404",
"to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"to_org_id": "CentralBank",
"to_user_id": "cb_issuer_demo",
"to_custom_account_id": "10109999001234",
"from_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"from_org_id": "org2",
"from_user_id": "fi2_org_officer_demo",
"from_custom_account_id": "30300617202404",
"transaction_type": "CREDIT",
"category": "transfer",
"balance": 27200,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~70155a8f4e388cc9395dbd03bedaf5a878705f5ad02302c8e9163218a5c3875a",
"transacted_amount": 1000,
"timestamp": "2025-08-13T06:22: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": "CREDIT",
"category": "transfer",
"balance": 27000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~e595f3f0cc03fa5f58a546b8abbfaf155592e492f850581db2b8fed9a529c9e2",
"transacted_amount": 10000,
"timestamp": "2025-08-12T21:09:25.000Z",
"token_id": "USD",
"transacted_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"transacted_org_id": "org2",
"transacted_user_id": "fi2_org_officer_demo",
"transacted_custom_account_id": "30300617202404",
"to_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"to_org_id": "org2",
"to_user_id": "fi2_org_officer_demo",
"to_custom_account_id": "30300617202404",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "EXECUTEHOLD",
"category": "issuance",
"balance": 26000,
"onhold_balance": 0
},
{
"transaction_id": "otransaction~da92402859d87ae3069722d8e39cb0da448e9a5f67468233ee9b1fe7a4ebeef8",
"transacted_amount": 10000,
"timestamp": "2025-08-12T21:09:17.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": "issuance",
"balance": 26000,
"onhold_balance": 10000
},
{
"transaction_id": "otransaction~6915145aaf09fbf4d96456febddc2aa87b48c08ddd8ff17a6bab5d310f67bb36",
"transacted_amount": 1000,
"timestamp": "2025-08-12T21:07:11.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~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"to_org_id": "CentralBank",
"to_user_id": "cb_issuer_demo",
"to_custom_account_id": "10109999001234",
"from_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
"from_org_id": "CentralBank",
"from_user_id": "cb_retirer_demo",
"from_custom_account_id": "10109999006543",
"transaction_type": "CREDIT",
"category": "transfer",
"balance": 26000,
"onhold_balance": 20000
},
{
"transaction_id": "otransaction~244d7172d1dc90a142e1f22204c76614c7eea814b3d61f33016b786f1b347784",
"transacted_amount": 10000,
"timestamp": "2025-08-12T21:05:39.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~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"to_org_id": "org2",
"to_user_id": "fi2_org_officer_demo",
"to_custom_account_id": "30300617202404",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "ONHOLD",
"holding_id": "ohold~cbdc~USD~ed815e20",
"category": "issuance",
"balance": 25000,
"onhold_balance": 20000
},
{
"transaction_id": "otransaction~c63ec37966264493bde6fa666527b9cca11695c15611c32e89af49a2246f13f6",
"transacted_amount": 10000,
"timestamp": "2025-08-12T21:05:20.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~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": "ONHOLD",
"holding_id": "ohold~cbdc~USD~12d87129",
"category": "issuance",
"balance": 35000,
"onhold_balance": 10000
},
{
"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形式で指定する必要があります。
- 戻り値の例:
[
{
"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~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"
},
{
"transaction_id": "otransaction~32137cd7e16c560f4d96d0f8999f6a267c1e95be2f5b11ef0541e574a6cd7275",
"transacted_amount": 200,
"timestamp": "2025-08-25T13:16:55.000Z",
"token_id": "USD",
"transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"transacted_org_id": "CentralBank",
"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",
"transaction_type": "CREDIT",
"category": "transfer"
},
{
"transaction_id": "otransaction~67844e07c06ab4c3d94d8ff36173b9dbcc2f1b9c99f4e7070f1097fd89f3f514",
"transacted_amount": 10,
"timestamp": "2025-08-21T08:49:40.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": "ONHOLD",
"holding_id": "ohold~cbdc~USD~b6e4925b",
"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形式で指定する必要があります。
- 戻り値の例:
[
{
"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~62eb436be7c29fc2ed9cae221e874d9a31b163fa10374e7da09bf5e09a96c3ff",
"transacted_amount": 10000,
"timestamp": "2025-08-25T13:57:58.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": "issuance"
},
{
"transaction_id": "otransaction~c628fb7738222ed969295ccc8d21b4be95d96e3aada4f14570f7820a7051b5f7",
"transacted_amount": 200,
"timestamp": "2025-08-25T13:51:18.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~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
"to_org_id": "org2",
"to_user_id": "fi2_org_officer_demo",
"to_custom_account_id": "30300617202404",
"from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
"from_org_id": "CentralBank",
"from_user_id": "cb_issuer_demo",
"from_custom_account_id": "10109999001234",
"transaction_type": "RELEASEHOLD",
"holding_id": "ohold~cbdc~USD~77b75873"
},
{
"transaction_id": "otransaction~af2cc8e43ecb4c5520d90a8d7955b5a47623a29b13eef47e31c16eb48cc0adec",
"transacted_amount": 100,
"timestamp": "2025-08-25T13:50:45.000Z",
"token_id": "USD",
"transacted_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
"transacted_org_id": "CentralBank",
"transacted_user_id": "cb_retirer_demo",
"transacted_custom_account_id": "10109999006543",
"from_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
"from_org_id": "CentralBank",
"from_user_id": "cb_retirer_demo",
"from_custom_account_id": "10109999006543",
"transaction_type": "REJECT_BURN",
"holding_id": "ohold~cbdc~USD~8d34",
"description": "Burn",
"to_account": ""
},
{
"transaction_id": "otransaction~182b99bb2ed753994a8c638ab9b08c3a4e73ac8159a3173a2a1f56b651d2eeac",
"transacted_amount": 2000,
"timestamp": "2025-08-25T13:50:19.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~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
"to_org_id": "CentralBank",
"to_user_id": "cb__creator_demo",
"to_custom_account_id": "10105678004567",
"transaction_type": "REJECT_MINT",
"holding_id": "ohold~cbdc~USD~89ce",
"description": "Minting 2000 tokens",
"from_account": ""
},
{
"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"
}
]
-
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
}
-
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": []
}
-
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"
}
-
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."}
-
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
– 検索するロールの名前。
- 戻り値:
- 戻り値の例:
{
"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。
- 戻り値:
- 戻り値の例:
{
"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
– 検索するロールの名前。
- 戻り値:
- 戻り値の例:
{
"result": "true"
}
-
getTotalMintedTokens
- このメソッドは、指定されたトークンのミントされたトークンの合計数を返します。このメソッドは、
Token Admin
、Token Auditor
、Org 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 Admin
、Token Auditor
、Org 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
}
-
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"
}
-
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."
}
-
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。
- 戻り値:
- 戻り値の例:
{
"msg": "Total Holding Balance is: 0",
"holding_balance": 0
}
-
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"
}
-
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。
- 戻り値:
- 戻り値の例:
{
"msg": "Holding Ids are: ",
"holding_ids": ["ohold~cbdc~token~hold1"]
}
-
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はクライアント・アプリケーションによって渡されます。
- 戻り値:
- 戻り値の例:
{
"msg": "Current Holding Balance of Operation 'hold1' for token 'token' is: 0",
"holding_balance": 0
}
-
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."
}
-
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"
}