トークン・タクソノミ・フレームワークのスキャフォールド済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
ロールを持つAccountOwner
IDによってのみコールできます。保留は公証人のみが完了できます。 -
ReleaseHoldTokens
- このメソッドは、トークンの保留を解除します。転送が完了しておらず、すべての保留トークンは元の所有者が再度使用できます。このメソッドは、指定された時間制限内の
notary
ロールを持つAccount Owner
ID、または指定された時間制限後の支払者、受取人または公証人によってコールできます。 -
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
ロールを持つAccountOwner
IDによってのみコールできます。 -
ReleaseHold
- このメソッドは、トークンの保留を解除します。転送が完了しておらず、すべての保留トークンは元の所有者が再度使用できます。このメソッドは、指定された時間制限内の
notary
ロールを持つAccount Owner
ID、または指定された時間制限後の支払者、受取人または公証人によってコールできます。 -
GetOnHoldIds
- このメソッドは、指定されたユーザーおよびトークンのすべての保持IDのリストを返します。
-
GetOnHoldDetailsWithOperationID
- このメソッドは、指定された操作IDおよびトークンの保留トランザクション詳細を返します。
-
GetOnHoldBalanceWithOperationID
- このメソッドは、指定された操作IDおよびトークンの保留残高を返します。
トークン動作管理のメソッド- 書き込み可能な動作