トークン・タクソノミ・フレームワークのスキャフォールド済Goプロジェクト
ブロックチェーン・アプリケーション・ビルダーは、トークン指定ファイルから入力を受け取り、完全に機能するスキャフォールド済チェーンコード・プロジェクトを生成します。
プロジェクトは、トークン・ライフサイクル・クラスおよび関数(CRUDおよび非CRUDメソッドを含む)を自動的に生成します。引数の検証、マーシャリング/アンマーシャリングおよび透過的な永続性機能はすべて自動的にサポートされます。
スキャフォールドされたプロジェクトおよびトークンに直接関連しないメソッドの詳細は、「スキャフォールドされたGoチェーンコード・プロジェクト」を参照してください。
モデル
透過的永続性機能(または簡略化されたORM)は、OchainModelクラスで取得されます。
package src
type Digicur struct {
AssetType string `json:"AssetType" final:"otoken"`
Token_id string `json:"Token_id" id:"true" mandatory:"true" validate:"regexp=^[A-Za-z0-9][A-Za-z0-9_-]*$,max=16"`
Token_name string `json:"Token_name" final:"digicur"`
Token_desc string `json:"Token_desc" validate:"max=256"`
Token_type string `json:"Token_type" final:"fungible" validate:"regexp=^fungible$"`
Behavior []string `json:"Behavior" final:"[\"divisible\",\"mintable\",\"transferable\",\"burnable\",\"holdable\",\"roles\"]"`
Roles map[string]interface{} `json:"Roles" final:"{\"minter_role_name\":\"minter\",\"burner_role_name\":\"burner\",\"notary_role_name\":\"notary\"}"`
Mintable map[string]interface{} `json:"Mintable" final:"{\"Max_mint_quantity\":20000}"`
Divisible map[string]interface{} `json:"Divisible" final:"{\"Decimal\":1}"`
Token_to_currency_ratio int `json:"Token_to_currency_ratio" validate:"int"`
Currency_representation string `json:"Currency_representation" validate:"string"`
Metadata interface{} `json:"Metadata,omitempty"`
}
コントローラ
メインコントローラは1つのみです。
type Controller struct {
Ctx trxcontext.TrxContext
}
クラス、関数またはファイルはいくつでも作成できますが、メイン・コントローラ・クラス内で定義されているメソッドのみが呼出し可能です。その他の方法は非表示です。
トークンSDKメソッドを使用して、ビジネス・アプリケーションのカスタム・メソッドを記述できます。
カスタム・メソッドで複数のトークンSDKメソッドを使用する場合は、状態データベースの同じキーと値のペアに影響するメソッドを使用しないでください。
かわりに、次のコード・スニペットに示すように、BulkTransferTokensメソッドを使用して、コール元のアカウントから複数のアカウントに転送します。
BulkTransferTokens(token_id string, flow: []map[string]interface{})
ノート:
状態データベースの同じキーと値のペアに影響を与える可能性があるカスタム・メソッドで複数のトークンSDKメソッドを使用する場合は、トークン・チェーンコードのMVCC最適化を有効にします。詳細は、MVCCの最適化を参照してください。自動生成されたトークン・メソッド
Blockchain App Builderは、トークンとトークンのライフサイクルをサポートするメソッドを自動的に生成します。これらの方法を使用すると、トークンを初期化し、ロールとアカウントを管理し、その他のトークン・ライフサイクル・タスクを追加のコーディングなしで完了できます。コントローラメソッドを起動可能にするには、publicである必要があります。publicメソッド名は大文字で始まります。小文字で始まるメソッド名はprivateです。
アクセス制御管理のメソッド
-
AddTokenAdmin - このメソッドは、ユーザーをチェーンコードの
Token Adminとして追加します。このメソッドをコールできるのは、チェーンコードのToken Adminのみです。 -
RemoveTokenAdmin - このメソッドは、チェーンコードの
Token Adminとしてユーザーを削除します。このメソッドをコールできるのは、チェーンコードのToken Adminのみです。 -
IsTokenAdmin - このメソッドは、ファンクションのコール元が
Token Adminの場合はブール値trueを戻し、それ以外の場合はfalseを戻します。Token AdminまたはOrg Adminは、ブロックチェーン・ネットワーク内の他のユーザーに対してこの関数をコールできます。他のユーザーは、自分のアカウントでのみこのメソッドをコールできます。 -
GetAllTokenAdmins - このメソッドは、チェーンコードの
Token Adminであるすべてのユーザーのリストを返します。このメソッドは、チェーンコードのToken AdminまたはOrg Adminによってのみコールできます。 -
AddOrgAdmin - このメソッドは、ユーザーを組織の
Org Adminとして追加します。このメソッドは、チェーンコードのToken Adminまたは指定された組織のOrg Adminによってのみコールできます。 -
RemoveOrgAdmin - このメソッドは、組織の
Org Adminとしてユーザーを削除します。このメソッドは、チェーンコードのToken Adminまたは指定された組織のOrg Adminによってのみコールできます。 -
GetOrgAdmins - このメソッドは、組織の
Org Adminであるすべてのユーザーのリストを返します。このメソッドは、チェーンコードのToken Adminまたは任意のOrg Adminによってのみコールできます。
トークン構成管理のメソッド
-
Init - このメソッドは、チェーンコードがデプロイされるときにコールされます。すべての
Token Adminは、必須のadminListパラメータのuser_idおよびorg_id情報によって識別されます。user_idは、インスタンス所有者またはインスタンスにログインしているユーザーのユーザー名または電子メールIDです。org_idは、現在のネットワーク組織内のユーザーのメンバーシップ・サービス・プロバイダ(MSP) IDです。 -
Initialize<Token Name>Token - このメソッドはトークンを作成し、トークン・プロパティを初期化します。アセットとそのプロパティは、状態データベースに保存されます。このメソッドは、チェーンコードの
Token Adminによってのみ起動できます。 -
Update<Token Name>Token - このメソッドは、トークン・プロパティを更新します。トークン・アセットの作成後は、
token_descプロパティおよびカスタム・プロパティのみを更新できます。このメソッドをコールできるのは、チェーンコードのToken Adminのみです。 -
GetTokenDecimals - このメソッドは、小数トークンに対して構成された小数点以下の桁数を返します。トークンに対して
divisible動作が指定されなかった場合、デフォルト値は0です。このメソッドは、チェーンコードのToken AdminまたはOrg Adminによってのみコールできます。 -
GetTokenById - このメソッドは、状態データベースに存在する場合、トークン・オブジェクトを返します。このメソッドは、チェーンコードの
Token AdminまたはOrg Adminによってのみコールできます。 -
GetTokenHistory - このメソッドは、指定されたトークンIDのトークン履歴を返します。すべてのユーザーがこのメソッドをコールできます。
-
GetAllTokens - このメソッドは、状態データベースに格納されているすべてのトークンを返します。このメソッドは、チェーンコードの
Token AdminまたはOrg Adminによってのみコールできます。 -
GetTokensByName - このメソッドは、指定された名前のすべてのトークン・オブジェクトを返します。このメソッドは、チェーンコードの
Token AdminまたはOrg Adminによってのみコールできます。この方法では、Berkeley DB SQLリッチ問合せが使用され、リモートOracle Blockchain Platformネットワークに接続されている場合にのみコールできます。
アカウント管理のメソッド
-
CreateAccount - このメソッドは、指定されたユーザーおよびトークンのアカウントを作成します。任意の時点でトークンを持つすべてのユーザーに対してアカウントを作成する必要があります。勘定科目は、残高、保留残高およびトランザクション履歴を追跡します。アカウントIDは、
oaccount~<token asset name>~という接頭辞が付いた英数字のセットで、インスタンス所有者またはインスタンスにログインしているユーザー(現在のネットワーク組織内のユーザーのメンバーシップ・サービス・プロバイダID (org_id)のユーザー名または電子メールID (user_id)のハッシュが続きます。このメソッドは、チェーンコードのToken Adminまたは指定された組織のOrg Adminによってのみコールできます。 -
AssociateTokenToAccount - このメソッドは、真菌可能トークンをアカウントに関連付けます。このメソッドは、チェーンコードの
Token Adminまたは関連する組織のOrg Adminによってのみコールできます。 -
GetAccount - このメソッドは、指定されたユーザーおよびトークンのアカウント詳細を返します。このメソッドは、チェーンコードの
Token Admin、指定された組織のOrg AdminまたはアカウントのAccountOwnerによってのみコールできます。 -
GetAccountHistory - このメソッドは、指定されたユーザーおよびトークンのアカウント履歴の詳細を返します。このメソッドは、チェーンコードの
Token AdminまたはアカウントのAccountOwnerによってのみコールできます。 -
GetAccountOnHoldBalance - このメソッドは、指定されたアカウントおよびトークンの現在の保留残高を返します。このメソッドは、チェーンコードの
Token Admin、指定された組織のOrg AdminまたはアカウントのAccountOwnerによってのみコールできます。 -
GetAllAccounts - このメソッドは、すべてのアカウントのリストを返します。このメソッドをコールできるのは、チェーンコードの
Token Adminのみです。この方法では、Berkeley DB SQLリッチ問合せが使用され、リモートOracle Blockchain Platformネットワークに接続されている場合にのみコールできます。 -
GetUserByAccountId - このメソッドは、指定されたアカウントのユーザー詳細(
org_idおよびuser_id)を返します。このメソッドは、チェーンコードの任意のユーザーがコールできます。 -
GetAccountBalance - このメソッドは、指定されたアカウントおよびトークンの現在残高を返します。このメソッドは、チェーンコードの
Token Admin、指定された組織のOrg AdminまたはアカウントのAccountOwnerによってのみコールできます。 -
GetAllOrgAccounts - このメソッドは、指定された組織に属するすべてのトークン・アカウントのリストを返します。このメソッドは、チェーンコードの
Token Adminまたは指定された組織のOrg Adminによってのみコールできます。
ロール管理方法
-
AddRole - このメソッドは、指定されたユーザーおよびトークンにロールを追加します。このメソッドは、チェーンコードの
Token Admin、または指定されたロールを持つ指定された組織のOrg Adminによってのみコールできます。 -
RemoveRole - このメソッドは、指定されたユーザーおよびトークンからロールを削除します。このメソッドは、チェーンコードの
Token Adminまたは指定されたロールを持つ指定された組織のOrg Adminによってのみコールできます。 -
GetAccountsByRole - このメソッドは、指定されたロールおよびトークンのすべてのアカウントIDのリストを返します。このメソッドをコールできるのは、チェーンコードの
Token Adminのみです。 -
GetAccountsByUser - このメソッドは、指定された組織IDとユーザーIDの全てのアカウントIDのリストを返します。このメソッドは、チェーンコードの
Token Admin、指定された組織のOrg Admin、またはパラメータで指定されたAccount Ownerによってのみコールできます。 -
GetUsersByRole - このメソッドは、指定されたロールおよびトークンのすべてのユーザーのリストを返します。このメソッドは、チェーンコードの
Token Adminまたはパラメータで指定されたAccount Ownerによってのみコールできます。 -
IsInRole - このメソッドは、ユーザーとトークンに指定したロールがあるかどうかを示すブール値を返します。このメソッドは、チェーンコードの
Token Admin、指定された組織のOrg AdminまたはアカウントのAccountOwnerによってのみコールできます。 -
GetOrgUsersByRole - このメソッドは、指定された組織内の指定されたロールを持つすべてのユーザーに関する情報を返します。このメソッドは、チェーンコードの
Token Adminまたは指定された組織のOrg Adminによってのみコールできます。 -
GetOrgAccountsByRole - このメソッドは、指定された組織内の指定されたロールを持つすべてのアカウントに関する情報を返します。このメソッドは、チェーンコードの
Token Adminまたは指定された組織のOrg Adminによってのみコールできます。
トランザクション履歴管理のメソッド
-
GetAccountTransactionHistory - このメソッドは、指定されたユーザーおよびトークンのアカウント・トランザクション履歴詳細の配列を返します。このメソッドは、チェーンコードの
Token Admin、指定された組織のOrg AdminまたはアカウントのAccountOwnerによってのみコールできます。 -
GetAccountTransactionHistoryWithFilters - このメソッドは、指定されたユーザーおよびトークンのアカウント・トランザクション履歴詳細の配列を返します。このメソッドは、チェーンコードの
Token Admin、指定された組織のOrg AdminまたはアカウントのAccountOwnerによってのみコールできます。このメソッドは、リモートOracle Blockchain Platformネットワークに接続されている場合にのみコールできます。 -
GetSubTransactionsById - このメソッドは、指定されたトランザクションのサブトランザクション履歴詳細の配列を返します。
-
GetSubTransactionsByIdWithFilters - このメソッドは、指定されたトランザクションのサブトランザクション履歴詳細の配列を返します。
-
GetTransactionById - このメソッドは、
Transactionアセットの履歴を返します。 -
DeleteHistoricalTransactions - このメソッドは、状態データベースから古いトランザクションを削除します。
トークン動作管理のメソッド- 最小化可能な動作
-
IssueTokens - このメソッドは、メソッドのコール元が所有するトークンをミントします。呼び出し元には、アカウントとminterの役割が必要です。ミント可能なトークンの数は、仕様ファイルの
mintable動作のmax_mint_quantityプロパティによって制限されます。max_mint_quantityプロパティを指定しない場合、無制限の数のトークンをミントできます。数量は、仕様ファイルのdivisible動作のdecimalパラメータで指定された10進数値内にする必要があります。このメソッドは、minterロールを持つアカウントのAccountOwnerによってのみコールできます。 -
GetTotalMintedTokens - このメソッドは、指定されたトークンのミント・トークンの合計数を返します。このメソッドは、チェーンコードの
Token AdminまたはOrg Adminによってのみコールできます。 -
GetNetTokens - このメソッドは、指定されたトークンに対してシステムで使用可能なトークンの合計正味数を返します。ネット・トークンの合計は、トークンの書込み後に残っているトークンの量です。In equation form net tokens = total minted tokens - total burned token.等式形式のネットトークン= 合計ミントトークン- 合計焼却トークン。トークンが書き込まれない場合、ネット・トークンの数は、ミント・トークンの合計数と等しくなります。このメソッドは、チェーンコードの
Token AdminまたはOrg Adminによってのみコールできます。
トークン動作管理のメソッド- 転送可能な動作
-
TransferTokens - このメソッドは、トークンをコール元から指定されたアカウントに転送します。メソッドのコール元にはアカウントが必要です。数量は、仕様ファイルの
divisible動作のdecimalパラメータで指定された10進数値内にする必要があります。このメソッドは、アカウントのAccountOwnerによってのみコールできます。 -
BulkTransferTokens - このメソッドは、コール元アカウントから
flowオブジェクトで指定されたアカウントへのトークンの一括転送を実行するために使用します。数量は、このメソッドのfile.Theコール元仕様のdivisible動作のdecimalパラメータで指定された10進値内に、すでにアカウントが作成されている必要があります。このメソッドは、アカウントのAccountOwnerによってのみコールできます。
トークン動作管理のメソッド- 保持可能な動作
-
HoldTokens - このメソッドは、
to_account_idアカウントを持つトークンの所有者のかわりに保留を作成します。保留の完了またはリリースを担当する公証勘定が指定されています。保留が作成されると、支払人から指定されたトークン残高が保留になります。保留残高は、保留が完了またはリリースされるまで転送できません。このメソッドのコール元には、すでにアカウントが作成されている必要があります。このメソッドは、アカウントのAccountOwnerによってのみコールできます。 -
ExecuteHoldTokens - このメソッドはトークンの保留を完了します。トークン所有者が以前に保持していたトークンの数量が受信者に転送されます。
quantity値が実際の保留値より小さい場合、残りの金額はトークンの元の所有者が再度使用できます。このメソッドは、notaryロールを持つAccountOwnerIDによってのみコールできます。保留は公証人のみが完了できます。 -
ReleaseHoldTokens - このメソッドは、トークンの保留を解除します。転送が完了しておらず、すべての保留トークンは元の所有者が再度使用できます。このメソッドは、指定された時間制限内の
notaryロールを持つAccount OwnerID、または指定された時間制限後の支払者、受取人または公証人によってコールできます。 -
GetOnHoldIds - このメソッドは、指定されたアカウントのすべての保留IDのリストを返します。このメソッドは、チェーンコードの
Token Admin、指定された組織のOrg AdminまたはアカウントのAccount Ownerによってコールできます。 -
GetOnHoldDetailsWithOperationId - このメソッドは、指定された操作IDおよびトークンの保留トランザクション詳細を返します。このメソッドは誰でも起動できます。
-
GetOnHoldBalanceWithOperationId - このメソッドは、指定された操作IDおよびトークンの保留残高を返します。このメソッドは誰でも起動できます。
トークン動作管理のメソッド- 書き込み可能な動作
カスタム・メソッド
トークンSDKメソッドを使用して、ビジネス・アプリケーションのカスタム・メソッドを記述できます。
トークンSDKメソッドを使用する場合は、必ず戻り値をトラッキングしてください。また、二重支出を回避するために、状態データベース内の同じキーと値のペアで動作する複数の非同期関数を組み合せないでください。かわりに、BulkTransferTokensメソッドを使用して、1つのメソッドで複数の転送を行います。
次の例は、カスタム・メソッドでトークンSDKメソッドを使用する方法を示しています。BuyTicketメソッドがコールされると、20個のトークンがコール元のアカウントから販売者のアカウントに転送され、転送のトランザクション・メッセージが返されます。
func (t *Controller) BuyTicket(TokenId string, SellerOrgId string, SellerUserId string) (interface{}, error){
token, err := t.Ctx.Token.Get(TokenId)
if err != nil {
return nil, err
}
/**
* The following method t.Ctx.Account.GenerateAccountId(TokenId, SellerOrgId, SellerUserId) generates account id of the seller
*/
sellerAccountId, err := t.Ctx.Account.GenerateAccountId(TokenId, SellerOrgId, SellerUserId)
if err != nil {
return nil, err
}
/**
* The following method t.Ctx.Token.Transfer(sellerAccountId, 20, token) transfers the quantity 20 from caller's
* account & to seller's account.
*/
transaction, err := t.Ctx.Token.Transfer(sellerAccountId, 20, token)
if err != nil {
return nil, err
}
return transaction, nil
}
トークンSDKメソッド
アクセス制御管理のメソッド
Token Admin、Org AdminまたはAccountOwnerによってのみコールできます。この機能を使用すると、目的のユーザーのみが操作を実行するようにできます。認可されていないアクセスではエラーが発生します。アクセス制御関数を使用するには、../lib/authモジュールからAuthorizationクラスをインポートします。import { Authorization } from '../lib/auth';-
AddAdmin - このメソッドは、トークン・チェーンコードの
Token Adminとしてユーザーを追加します。 -
RemoveAdmin - このメソッドは、トークン・チェーンコードの
Token Adminとしてユーザーを削除します。 -
GetAllAdmins - このメソッドは、トークン・チェーンコードの
Token Adminであるすべてのユーザーのリストを返します。 -
GetAllAdminUsers - このメソッドは、トークン・チェーンコードの
Token Adminであるすべてのユーザーのリストを返します。 -
CheckAuthorization - このメソッドを使用して、チェーンコードにアクセス制御を追加します。自動生成されたトークン・メソッドの多くはアクセス制御を使用します。SDKレシーバとアクセス制御があるメソッドの間のマッピングは、
oChainUtil.goファイルで説明されています。独自のアクセス制御を使用するか、アクセス制御を無効にするには、自動生成されたコントローラメソッドおよびカスタムメソッドからアクセス制御コードを削除します。var t TokenAccess var r RoleAccess var a AccountAccess var as AccountStatusAccess var h HoldAccess var ad AdminAccess var trx TransactionAccess var tc TokenConversionAccess var auth AuthAccess auth.IsTokenAdmin = []string{"Admin", "MultipleAccountOwner"} trx.DeleteHistoricalTransactions = []string{"Admin"} ad.AddAdmin = []string{"Admin"} ad.RemoveAdmin = []string{"Admin"} ad.GetAllAdmins = []string{"Admin", "OrgAdmin"} ad.AddOrgAdmin = []string{"Admin", "OrgAdminOrgIdCheck"} ad.RemoveOrgAdmin = []string{"Admin", "OrgAdminOrgIdCheck"} ad.GetOrgAdmins = []string{"Admin", "OrgAdmin"} ad.IsTokenAdmin = []string{"Admin", "MultipleAccountOwner", "OrgAdmin"} t.Save = []string{"Admin"} t.GetAllTokens = []string{"Admin", "OrgAdmin"} t.Update = []string{"Admin"} t.GetTokenDecimals = []string{"Admin", "OrgAdmin"} t.GetTokensByName = []string{"Admin", "OrgAdmin"} t.AddRoleMember = []string{"Admin", "OrgAdminRoleCheck"} t.RemoveRoleMember = []string{"Admin", "OrgAdminRoleCheck"} t.IsInRole = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} t.GetTotalMintedTokens = []string{"Admin", "OrgAdmin"} t.GetNetTokens = []string{"Admin", "OrgAdmin"} t.Get = []string{"Admin", "OrgAdmin"} t.GetTokenHistory = []string{"Admin", "OrgAdmin"} a.CreateAccount = []string{"Admin", "OrgAdminOrgIdCheck"} a.AssociateToken = []string{"Admin", "OrgAdminAccountIdCheck"} a.GetAllAccounts = []string{"Admin"} a.GetAllOrgAccounts = []string{"Admin", "OrgAdminOrgIdCheck"} a.GetAccount = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.History = []string{"Admin", "AccountOwner"} a.GetAccountTransactionHistory = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetAccountTransactionHistoryWithFilters = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetSubTransactionsById = []string{"Admin", "TransactionInvoker"} a.GetSubTransactionsByIdWithFilters = []string{"Admin", "TransactionInvoker"} a.GetAccountBalance = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetAccountOnHoldBalance = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetOnHoldIds = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetAccountsByUser = []string{"Admin", "OrgAdminOrgIdCheck", "MultipleAccountOwner"} as.Get = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} as.ActivateAccount = []string{"Admin", "OrgAdminOrgIdCheck"} as.SuspendAccount = []string{"Admin", "OrgAdminOrgIdCheck"} as.DeleteAccount = []string{"Admin", "OrgAdminOrgIdCheck"} r.GetAccountsByRole = []string{"Admin"} r.GetUsersByRole = []string{"Admin"} r.GetOrgAccountsByRole = []string{"Admin", "OrgAdminOrgIdCheck"} r.GetOrgUsersByRole = []string{"Admin", "OrgAdminOrgIdCheck"} tc.InitializeExchangePoolUser = []string{"Admin"} tc.AddConversionRate = []string{"Admin"} tc.UpdateConversionRate = []string{"Admin"} tc.GetConversionRate = []string{"Admin", "OrgAdmin", "AnyAccountOwner"} tc.GetConversionRateHistory = []string{"Admin", "OrgAdmin", "AnyAccountOwner"} tc.TokenConversion = []string{"Admin", "AnyAccountOwner"} tc.GetExchangePoolUser = []string{"Admin"} -
IsUserTokenAdmin - このメソッドは、ファンクションのコール元が
Token Adminの場合、ブール値trueを返します。そうでない場合は、このメソッドはfalseを返します。 -
AddOrgAdmin - このメソッドは、ユーザーを組織の
Org Adminとして追加します。 -
RemoveOrgAdmin - このメソッドは、組織の
Org Adminとしてユーザーを削除します。 -
GetOrgAdmins - このメソッドは、組織の
Org Adminであるすべてのユーザーのリストを返します。
トークン構成管理のメソッド
-
GetTokenDecimals - このメソッドは、小数トークンで使用可能な小数点以下の桁数を返します。
divisible動作が指定されていない場合、デフォルト値は0です。 -
GetAllTokens - このメソッドは、状態データベースに保存されているすべてのトークン・アセットを返します。この方法では、Berkeley DB SQLリッチ問合せが使用され、リモートOracle Blockchain Platformネットワークに接続されている場合にのみコールできます。
-
GetTokensByName - このメソッドは、指定された名前のすべてのトークン・アセットを返します。この方法では、Berkeley DB SQLリッチ問合せが使用され、リモートOracle Blockchain Platformネットワークに接続されている場合にのみコールできます。
-
Get - このメソッドは、状態データベースに存在する場合、トークン・オブジェクトを返します。このメソッドは、トークン・チェーンコードの
Token Adminによってのみコールできます。 -
IsTokenType - このメソッドは、指定されたトークンIDのトークン・アセットが存在するかどうかをテストします。
-
Save - このメソッドはトークンを作成し、そのプロパティを状態データベースに保存します。
-
Update - このメソッドは、トークン・プロパティを更新します。トークン・アセットの作成後は、
token_desc値とそのカスタム・プロパティのみを更新できます。 -
GetByRange - このメソッドは、ファブリックの
getStateByRangeメソッドを内部的にコールします。指定されたIDを持つ資産が元帳から返されても、このメソッドは資産を呼び出し元の資産タイプにキャストします。 -
History - このメソッドは、指定されたトークンIDのトークン履歴を返します。
アカウント管理のメソッド
-
GenerateAccountId - このメソッドは、
oaccount~<token asset name>~という接頭辞が付いた英数字のセットのアカウントIDを返します。その後に、インスタンス所有者またはインスタンスにログインしているユーザーのユーザー名または電子メールID (user_id)、現在のネットワーク組織内のユーザーのメンバーシップ・サービス・プロバイダID (org_id)、および一意のトークンID (token_id)のハッシュが続きます。 -
CreateAccount - このメソッドは、指定されたユーザーおよびトークンのアカウントを作成します。トークンを持つすべてのユーザーは、アカウントを持っている必要があります。アカウントは、ユーザーの残高、保留残高およびトランザクション履歴を追跡します。アカウントIDは、
oaccount~<token asset name>~という接頭辞が付いた英数字のセットで、インスタンス所有者またはインスタンスにログインしているユーザー(現在のネットワーク組織内のユーザーのメンバーシップ・サービス・プロバイダID (org_id)のユーザー名または電子メールID (user_id)のハッシュが続きます。このメソッドをコールできるのは、チェーンコードのToken Adminのみです。 -
AssociateToken - このメソッドは、真菌可能トークンをアカウントに関連付けます。このメソッドをコールできるのは、チェーンコードの
Token Adminのみです。 -
GetAccountWithStatus - このメソッドは、指定されたアカウントのアカウントの詳細(アカウント・ステータスを含む)を返します。
-
GetAccount - このメソッドは、指定されたアカウントのアカウントの詳細を返します。
-
GetAccountHistory - このメソッドは、指定されたアカウントのアカウント履歴詳細の配列を返します。
-
GetAccountOnHoldBalance - このメソッドは、指定された勘定科目の保留残高を返します。
-
GetAllAccounts - このメソッドは、すべてのアカウントのリストを返します。この方法では、Berkeley DB SQLリッチ問合せが使用され、リモートOracle Blockchain Platformネットワークに接続されている場合にのみコールできます。
-
GetUserByAccountId - このメソッドは、指定されたアカウントのユーザー詳細を返します。
-
GetAccountBalance - このメソッドは、指定された勘定科目の勘定科目残高を返します。
-
GetAllOrgAccounts - このメソッドは、指定された組織に属するすべてのトークン・アカウントのリストを返します。
ロール管理方法
-
AddRoleMember - このメソッドは、指定されたユーザーおよびトークンにロールを追加します。
-
RemoveRoleMember - このメソッドは、指定されたユーザーおよびトークンからロールを削除します。
-
GetAccountsByRole - このメソッドは、指定されたロールおよびトークンのすべてのアカウントのリストを返します。
-
GetUsersByRole - このメソッドは、指定されたロールおよびトークンのすべてのユーザーのリストを返します。
-
IsInRole - このメソッドは、ユーザーおよびトークンに指定されたロールがあるかどうかを示します。
-
RoleCheck - このメソッドは、指定されたアカウントIDがいずれかのロールのメンバーかどうかをチェックします。
-
GetOrgUsersByRole - このメソッドは、指定された組織内の指定されたロールを持つすべてのユーザーに関する情報を返します。
-
GetOrgAccountsByRole - このメソッドは、指定された組織内の指定されたロールを持つすべてのアカウントに関する情報を返します。
トランザクション履歴管理のメソッド
-
GetAccountTransactionHistory - このメソッドは、指定された勘定科目のトランザクション履歴詳細の配列を返します。
-
GetAccountTransactionHistoryWithFilters - このメソッドは、指定されたトランザクションのトランザクション履歴詳細の配列を返します。このメソッドは、リモートOracle Blockchain Platformネットワークに接続されている場合にのみコールできます。
-
GetSubTransactionsById - このメソッドは、指定されたトランザクションのトランザクション履歴詳細の配列を返します。
-
GetSubTransactionsByIdWithFilters - このメソッドは、指定されたトランザクションのトランザクション履歴詳細の配列を返します。
-
GetTransactionById - このメソッドは、
Transactionアセットの履歴を返します。 -
DeleteHistoricalTransactions - このメソッドは、状態データベースから古いトランザクションを削除します。
トークン動作管理のメソッド- 最小化可能な動作
-
Mint - このメソッドは、メソッドのコール元が所有するトークンをミントします。呼び出し元には、アカウントとminterの役割が必要です。ミント可能なトークンの数は、仕様ファイルの
mintable動作のmax_mint_quantityプロパティによって制限されます。max_mint_quantityプロパティを指定しない場合、無制限の数のトークンをミントできます。数量は、仕様ファイルのdivisible動作のdecimalパラメータで指定された10進数値内にする必要があります。このメソッドは、minterロールを持つアカウントのAccountOwnerによってのみコールできます。 -
GetTotalMintedTokens - このメソッドは、ミントされたトークンの合計数を返します。
-
GetNetTokens - このメソッドは、指定されたトークンに対してシステムで使用可能なトークンの正味数量を返します。ネット・トークンは、トークンが書き込まれた後に残っているトークンの量です。方程式形式: ネット・トークン= 合計ミント・トークン- 合計バーン済トークン。トークンが書き込まれない場合、ネット・トークンの数は、ミント・トークンの合計数と等しくなります。
-
GetMaxMintQuantity - このメソッドは、トークンの最小値の最大数量を返します。
max_mint_quantity動作が指定されていない場合、デフォルト値は0で、任意の数のトークンをミントできます。
トークン動作管理のメソッド- 転送可能な動作
-
Transfer - このメソッドは、トークンをコール元から指定されたアカウントに転送します。メソッドのコール元にはアカウントが必要です。数量は、仕様ファイルの
divisible動作のdecimalパラメータで指定された10進数値内にする必要があります。このメソッドは、アカウントのAccountOwnerによってのみコールできます。 -
BulkTransfer - このメソッドは、コール元アカウントから
flowオブジェクトで指定されたアカウントへのトークンの一括転送を実行するために使用します。このメソッドのコール元には、すでにアカウントが作成されている必要があります。
トークン動作管理のメソッド- 保持可能な動作
-
Hold - このメソッドは、
to_account_idアカウントを持つトークンの所有者のかわりに保留を作成します。保留の完了またはリリースを担当する公証勘定が指定されています。保留が作成されると、支払人から指定されたトークン残高が保留になります。保留残高は、保留が完了またはリリースされるまで転送できません。このメソッドのコール元には、すでにアカウントが作成されている必要があります。 -
ExecuteHold - このメソッドはトークンの保留を完了し、以前に保留されていたトークンの指定数量を受信者に転送します。
quantity値が実際の保留値より小さい場合、残りの金額はトークンの元の所有者が再度使用できます。このメソッドは、notaryロールを持つAccountOwnerIDによってのみコールできます。 -
ReleaseHold - このメソッドは、トークンの保留を解除します。転送が完了しておらず、すべての保留トークンは元の所有者が再度使用できます。このメソッドは、指定された時間制限内の
notaryロールを持つAccount OwnerID、または指定された時間制限後の支払者、受取人または公証人によってコールできます。 -
GetOnHoldIds - このメソッドは、指定されたユーザーおよびトークンのすべての保持IDのリストを返します。
-
GetOnHoldDetailsWithOperationID - このメソッドは、指定された操作IDおよびトークンの保留トランザクション詳細を返します。
-
GetOnHoldBalanceWithOperationID - このメソッドは、指定された操作IDおよびトークンの保留残高を返します。
トークン動作管理のメソッド- 書き込み可能な動作