記號分類架構的鷹架式 TypeScript 專案
Blockchain App Builder 會從您的權杖規格檔案進行輸入,並產生功能完整的鷹架式鏈碼專案。
專案會自動產生記號週期類別和函數,包括 CRUD 和非 CRUD 方法。系統會自動支援引數驗證、封送處理 (Marshal) / 解除封送處理 (unmarshal) 以及透明保存功能。
如需鷹架專案的相關資訊,以及與記號無關的方法,請參閱 Scaffolded TypeScript Chaincode Project 。
Model
每個記號化模型類別都會擴充 Token
類別,進而擴充 OchainModel
類別。Token
類別是從 ../lib/token
匯入。在 OchainModel
類別中擷取「通透保存功能 (Transparent Persistence Capability)」或簡化的 ORM。
import * as yup from 'yup';
import { Id, Mandatory, Validate, ReadOnly } from '../lib/decorators';
import { Token } from '../lib/token';
@Id('token_id')
export class Digicur extends Token<Digicur> {
public readonly assetType = 'otoken';
@Mandatory()
@Validate(yup.string().required().matches(/^[A-Za-z0-9][A-Za-z0-9_-]*$/).max(16))
public token_id: string;
@ReadOnly('digicur')
public token_name: string;
@Validate(yup.string().trim().max(256))
public token_desc: string;
@ReadOnly('fungible')
public token_type: string;
@ReadOnly(["divisible","mintable","transferable","burnable","holdable","roles"])
public behaviors: string[];
@ReadOnly({minter_role_name: "minter", burner_role_name: "burner", notary_role_name: "notary"})
public roles: object;
@ReadOnly({max_mint_quantity: 20000})
public mintable: object;
@ReadOnly({decimal: 1})
public divisible: object;
@Validate(yup.number())
public token_to_currency_ratio: number;
@Validate(yup.string())
public currency_representation: string;
}
控制器
主控制器類別延伸了 OchainController
類別。只有一個主控制器。
export class DigiCurrCCController extends OchainController{
您可以建立不限數目的類別、函數或檔案,但只能呼叫在主控制器類別中定義的方法。其他方法則為隱藏。
您可以使用記號 SDK 方法,為商業應用程式撰寫自訂方法。
自動產生的記號方法
Blockchain App Builder 會自動產生支援權杖和權杖生命週期的方法。您可以使用這些方法來初始化記號、管理角色和帳戶,以及完成其他記號生命週期工作,而無需進行任何其他編碼。控制器方法必須要有 @Validator(...params)
修飾器才能呼叫。
存取控制管理的方法
-
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
呼叫。此方法使用 Berkeley 資料庫 SQL 豐富查詢,且只能在連線至遠端 Oracle Blockchain Platform 網路時呼叫。 -
getTokensByName
- 此方法會傳回具有指定名稱的所有記號物件。此方法只能由鏈碼的
Token Admin
或Org Admin
呼叫。此方法使用 Berkeley 資料庫 SQL 豐富查詢,且只能在連線至遠端 Oracle Blockchain Platform 網路時呼叫。
帳戶管理方法
-
createAccount
- 此方法會為指定的使用者和記號建立一個帳戶。必須為任何時候會有權杖的任何使用者建立帳戶。帳戶會追蹤餘額、保留餘額及交易歷史記錄。帳戶 ID 是一組文數字字元,前面加上
oaccount~<token asset name>~
,後面接著執行處理擁有者的使用者名稱或電子郵件 ID (user_id
) 雜湊,或登入執行處理的使用者,即目前網路組織中使用者的成員服務提供者 ID (org_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 資料庫 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
只能呼叫此方法。 -
isInRole
- 此方法會傳回布林值,指示使用者和記號是否具有指定的角色。此方法只能由鏈碼的
Token Admin
、帳戶的AccountOwner
或指定組織的Org Admin
呼叫。 -
getOrgAccountsByRole
- 此方法會傳回在指定組織中具有指定角色之所有帳戶的相關資訊。此方法只能由鏈碼的
Token Admin
或由指定組織的Org Admin
呼叫。 -
getOrgUsersByRole
- 此方法會傳回在指定組織中具有指定角色之所有使用者的相關資訊。此方法只能由鏈碼的
Token Admin
或由指定組織的Org Admin
呼叫。
交易歷史記錄管理的方法
-
getAccountTransactionHistory
- 此方法會傳回指定使用者和權杖的帳戶交易歷史記錄明細陣列。此方法只能由鏈碼的
Token Admin
、指定組織的Org Admin
或帳戶的AccountOwner
呼叫。 -
getAccountTransactionHistoryWithFilters
- 此方法會傳回指定使用者和權杖的帳戶交易歷史記錄明細陣列。此方法只能由鏈碼的
Token Admin
、指定組織的Org Admin
或帳戶的AccountOwner
呼叫。連線至遠端 Oracle Blockchain Platform 網路時才能呼叫此方法。 -
getSubTransactionById
- 此方法會傳回指定使用者和權杖的帳戶交易歷史記錄明細陣列。此方法只能由鏈碼的
Token Admin
或帳戶的AccountOwner
呼叫。 -
getSubTransactionsByIdWithFilters
- 此方式會傳回指定交易的帳戶子交易歷史記錄明細陣列。
-
getTransactionById
- 此方法會傳回
Transaction
資產的歷史記錄。 -
deleteHistoricalTransactions
- 此方法會從狀態資料庫中刪除較舊的交易。
記號行為管理方法 - 可調整行為
-
issueTokens
- 這個方法會提示記號,然後由方法的呼叫程式所擁有。呼叫者必須具有帳戶與較小者角色。可提示的記號數目受規格檔案中
mintable
行為的max_mint_quantity
特性限制。如果未指定max_mint_quantity
特性,則可提示不限數目的記號。數量必須在規格檔案中divisible
行為的decimal
參數所指定的小數值內。只有具備較小角色的帳戶AccountOwner
才能呼叫此方法。 -
getTotalMintedTokens
- 此方法會傳回指定記號的 Minted 記號總數。此方法只能由鏈碼的
Token Admin
或任何Org Admin
呼叫。 -
getNetTokens
- 此方法會傳回系統中特定記號可用的記號總數。淨記號總計是記號燒錄後剩餘的記號量。在方程式形式中:淨記號 = 提示的記號總計 - 消耗的記號總計。如果沒有燒錄記號,則淨記號的數目等於提示的記號總數。此方法只能由鏈碼的
Token Admin
或任何Org Admin
呼叫。
記號行為管理方法 - 可傳輸行為
-
transferTokens
- 此方法會將記號從呼叫程式傳輸至指定的帳戶。方法的呼叫程式必須要有一個帳戶。數量必須在規格檔案中
divisible
行為的decimal
參數所指定的小數值內。此方法只能由帳戶的AccountOwner
呼叫。 -
bulkTransferTokens
- 此方法是用來執行從呼叫程式帳戶到
flow
物件中指定帳戶的大量記號傳輸。此方法之規格 file.The 呼叫程式中divisible
行為的decimal
參數所指定的數量必須在已建立帳戶的小數值內。此方法只能由帳戶的AccountOwner
呼叫。
記號行為管理方法 - 可保留行為
-
holdTokens
- 此方法會代表記號擁有者的
to_account_id
帳戶建立保留。已指定公證人帳戶,其負責完成或解除保留。建立保留時,付款人的指定變數替代字餘額會設為保留。保留餘額必須等到完成或解除後才能移轉。這個方法的呼叫程式必須已經建立帳戶。此方法只能由帳戶的AccountOwner
呼叫。 -
executeHoldTokens
- 這個方法會完成記號的保留。權杖擁有者之前持有的權杖數量會轉移給接收者。如果
quantity
值小於實際保留值,則記號的原始擁有者可再使用剩餘金額。只有具有指定作業 ID 之notary
角色的AccountOwner
ID 才能呼叫此方法。保留只能由公證人完成。 -
releaseHoldTokens
- 此方法會解除記號的保留。移轉未完成,所有保留的變數替代字會再次可供原始擁有者使用。
AccountOwner
ID 可在指定的時間限制內以notary
角色呼叫此方法,或在指定的時間限制之後由付款人、受款人或公證人呼叫。 -
getOnHoldIds
- 這個方法會傳回指定帳戶之所有持有 ID 的清單。此方法可由鏈碼的
Token Admin
、指定組織的Org Admin
或帳戶的AccountOwner
呼叫。 -
getOnHoldDetailsWithOperationId
- 此方法會傳回指定作業 ID 和記號的保留交易詳細資訊。任何人都可以呼叫這個方法。
-
getOnHoldBalanceWithOperationId
- 此方法會傳回指定作業 ID 與變數替代字的保留餘額。任何人都可以呼叫這個方法。
記號行為管理方法 - 可燒錄行為
自訂方法
您可以使用記號 SDK 方法,為商業應用程式撰寫自訂方法。
為了避免重複花費,請勿結合在狀態資料庫中相同索引鍵 - 值組上運作的多個非同步函數。請改用 bulkTransferTokens
方法,在單一方法中進行多重傳輸。
下列範例顯示如何在自訂方法中使用記號 SDK 方法。呼叫 buyTicket
方法時,它會從來電者帳戶將 20 個權杖傳輸至賣方帳戶,並傳回轉帳的交易訊息。
@Validator(yup.string(), yup.string(), yup.string(), yup.string(), yup.string())
public async buyTicket(token_id: string, seller_org_id: string, seller_user_id: string) {
const token = await this.getTokenObject(token_id);
/**
* The following method this.Ctx.Account.generateAccountId(token_id, seller_org_id, seller_user_id) generates account id of the seller.
*/
const seller_account_id = await this.Ctx.Account.generateAccountId(token_id, seller_org_id, seller_user_id);
/**
* The following method this.Ctx.Token.transfer(seller_account_id, 20, token) transfers the quantity 20 from caller's
* account & to seller's account.
*/
const transaction = await this.Ctx.Token.transfer(seller_account_id, 20, token);
return transaction;
}
如果您在自訂方法中使用多個記號 SDK 方法,請勿使用會影響狀態資料庫中相同索引鍵 - 值組的方法。下列範例顯示進行多重調動的正確方法:
@Validator(yup.string(), yup.string(), yup.string(), yup.string(), yup.string())
public async sendTokens(token_id: string, user1_org_id: string, user1_user_id: string, user2_org_id: string, user2_user_id: string) {
const token = await this.getTokenObject(token_id);
const user1_account_id = await Account.generateAccountId(token_id, user1_org_id, user1_user_id);
const user2_account_id = await Account.generateAccountId(token_id, user2_org_id, user2_user_id);
await token.transfer(user1_account_id, 20);
await token.transfer(user2_account_id, 30);
}
請改用 bulkTransferTokens
方法,從呼叫端的帳戶轉移到多個帳戶,如以下程式碼片段所示。
bulkTransferTokens(token_id: string, flow: object[])
附註:
如果您在自訂方法中使用多個可能影響狀態資料庫中相同索引鍵 - 值組的記號 SDK 方法,請啟用記號鏈碼的 MVCC 最佳化。如需詳細資訊,請參閱 MVCC 最佳化。權杖 SDK 方法
存取控制管理的方法
Token Admin
、Org Admin
或 AccountOwner
呼叫。您可以使用此功能來確保作業只由預期的使用者執行。任何未經授權的存取都會導致錯誤。若要使用存取控制功能,請從 ../lib/auth
模組匯入 Authorization
類別。import { Authorization } from '../lib/auth';
-
addAdmin
- 此方法會將使用者新增為記號鏈碼的
Token Admin
。 -
removeAdmin
- 此方法會將使用者移除為記號鏈碼的
Token Admin
。 -
getAllAdmins
- 此方法會傳回
Token Admin
記號鏈碼的所有使用者清單。 -
checkAuthorization
- 您可以使用此方法將存取控制檢查新增至作業。某些記號方法只能由記號的
Token Admin
或AccountOwner
執行,或由具有多個帳戶的使用者的MultipleAccountOwner
執行。../lib/constant.ts
檔案中描述了存取控制對應。您可以編輯../lib/constant.ts
檔案來修改存取控制。若要使用您自己的存取控制或停用存取控制,請從自動產生的控制器方法與自訂方法移除存取控制程式碼。export const TOKENACCESS = { ADMIN: { isUserTokenAdmin: ["Admin", "OrgAdmin"], addTokenAdmin: ["Admin"], removeTokenAdmin: ["Admin"], getAllAdmins: ["Admin", "OrgAdmin"], addOrgAdmin: ["Admin", "OrgAdminForOrgId"], removeOrgAdmin: ["Admin", "OrgAdminForOrgId"], getOrgAdmins: ["Admin", "OrgAdmin"], }, TOKEN: { save: ["Admin"], getAllTokens: ["Admin", "OrgAdmin"], get: ["Admin", "OrgAdmin"], update: ["Admin"], getDecimals: ["Admin", "OrgAdmin"], getTokensByName: ["Admin", "OrgAdmin"], addRoleMember: ["Admin", "OrgAdminRoleCheck"], removeRoleMember: ["Admin", "OrgAdminRoleCheck"], isInRole: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getTotalMintedTokens: ["Admin", "OrgAdmin"], getNetTokens: ["Admin", "OrgAdmin"], getTokenHistory: ["Admin", "OrgAdmin"], }, ROLE: { getAccountsByRole: ["Admin"], getOrgAccountsByRole: ["Admin", "OrgAdminForOrgId"], getUsersByRole: ["Admin"], getOrgUsersByRole: ["Admin", "OrgAdminForOrgId"], }, TRANSACTION: { deleteTransactions: ["Admin"], },ACCOUNT: { createAccount: ["Admin", "OrgAdminForOrgId"], associateToken: ["Admin", "OrgAdminForAccountId"], getAllAccounts: ["Admin"], getAllOrgAccounts: ["Admin", "OrgAdminForOrgId"], getAccountsByUser: ["Admin", "OrgAdminForOrgId", "MultipleAccountOwner"], getAccount: ["Admin", "OrgAdminForAccountId", "AccountOwner"], history: ["Admin", "AccountOwner"], getAccountTransactionHistory: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getAccountTransactionHistoryWithFilters: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getSubTransactionsById: ["Admin", "TransactionInvoker"], getSubTransactionsByIdWithFilters: ["Admin", "TransactionInvoker"], getAccountBalance: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getAccountOnHoldBalance: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getOnHoldIds: ["Admin", "OrgAdminForAccountId", "AccountOwner"], getConversionHistory: ["Admin", "OrgAdminForAccountId", "AccountOwner"], }, ACCOUNT_STATUS: { get: ["Admin", "OrgAdminForAccountId", "AccountOwner"], history: ["Admin", "OrgAdminForAccountId", "AccountOwner"], activateAccount: ["Admin", "OrgAdminForOrgId"], suspendAccount: ["Admin", "OrgAdminForOrgId"], deleteAccount: ["Admin", "OrgAdminForOrgId"], }, TOKEN_CONVERSION: { initializeExchangePoolUser: ["Admin"], addConversionRate: ["Admin"], updateConversionRate: ["Admin"], getConversionRate: ["Admin", "OrgAdmin", "AnyAccountOwner"], getConversionRateHistory: ["Admin", "OrgAdmin", "AnyAccountOwner"], tokenConversion: ["Admin", "AnyAccountOwner"], getExchangePoolUser: ["Admin"], }, }
-
isUserTokenAdmin
- 如果函數的呼叫程式是
Token Admin
,此方法會傳回布林值true
。否則,方法會傳回false
。 -
addOrgAdmin
- 此方法會將使用者新增為組織的
Org Admin
。 -
removeOrgAdmin
- 此方法會將使用者移除為組織的
Org Admin
。 -
getOrgAdmins
- 此方法會傳回組織
Org Admin
的所有使用者清單。
記號組態管理的方法
-
getTokenDecimals
- 此方法會傳回小數記號可用的小數位數。如果未指定
divisible
行為,則預設值為 0。 -
getAllTokens
- 此方法會傳回儲存於狀態資料庫中的所有記號資產。此方法使用 Berkeley 資料庫 SQL 豐富查詢,且只能在連線至遠端 Oracle Blockchain Platform 網路時呼叫。
-
getTokensByName
- 此方法會傳回具有指定名稱的所有權杖資產。此方法使用 Berkeley 資料庫 SQL 豐富查詢,且只能在連線至遠端 Oracle Blockchain Platform 網路時呼叫。
-
get
- 如果權杖物件存在於狀態資料庫中,這個方法就會傳回該物件。
-
isTokenType
- 此方法指示是否有指定 ID 的權杖資產存在。
-
save
- 此方法會建立記號,並將其特性儲存在狀態資料庫中。
-
update
- 此方法會更新記號特性。建立權杖資產之後,您只會更新
token_desc
值及其自訂特性。 -
getByRange
- 此方法會在內部呼叫結構
getStateByRange
方法。即使從分類帳傳回任何具有指定 ID 的資產,此方法會將資產轉換成呼叫程式資產類型。 -
history
- 此方法會傳回指定記號的歷史記錄。
帳戶管理方法
-
getCallerAccountId
- 這個方法會傳回呼叫程式的帳戶 ID。
-
generateAccountId
- 此方法會傳回帳戶 ID,這是一組文數字字元,前面加上
oaccount~<token asset name>~
,後面接著執行處理擁有者的使用者名稱或電子郵件 ID (user_id
) 雜湊、登入執行處理的使用者、目前網路組織中使用者的成員服務提供者 ID (org_id
) 以及唯一權杖 ID (token_id
)。 -
createAccount
- 此方法會為指定的使用者和記號建立一個帳戶。每個有權杖的使用者都必須有帳戶。帳戶會追蹤使用者的餘額、保留餘額及交易歷史記錄。帳戶 ID 是一組文數字字元,前面加上
oaccount~<token asset name>~
,後面接著執行處理擁有者的使用者名稱或電子郵件 ID (user_id
) 雜湊,或登入執行處理的使用者,即目前網路組織中使用者的成員服務提供者 ID (org_id
)。此方法只能由鏈碼的Token Admin
或由指定組織的Org Admin
呼叫。 -
associateTokenToAccount
- 此方法會將有趣的記號與帳戶建立關聯。此方法只能由鏈碼的
Token Admin
或相關組織的Org Admin
呼叫。 -
getAccountWithStatus
- 此方法會傳回指定帳戶的帳戶詳細資訊,包括帳戶狀態。
-
getAccount
- 此方法會傳回指定帳戶的帳戶詳細資料。
-
history
- 此方法會傳回指定帳戶的帳戶歷史記錄詳細資料陣列。
-
getAccountOnHoldBalance
- 此方式會傳回指定科目的保留餘額。
-
getAllAccounts
- 此方法會傳回所有帳戶的清單。此方法使用 Berkeley 資料庫 SQL 豐富查詢,且只能在連線至遠端 Oracle Blockchain Platform 網路時呼叫。
-
getUserByAccountId
- 此方法會傳回指定帳戶的使用者詳細資訊。
-
getAccountBalance
- 此方法會傳回指定帳戶的帳戶餘額。
-
getAllOrgAccounts
- 此方法會傳回屬於指定組織的所有權杖帳戶清單。
角色管理方法
-
addRoleMember
- 這個方法會將角色新增至指定的使用者和記號。
-
removeRoleMember
- 此方法會從指定的使用者和記號移除角色。
-
getAccountsByRole
- 此方法會傳回所指定角色和記號的所有帳戶清單。
-
getAccountsByUser
- 此方法會傳回指定使用者的所有帳戶 ID 清單。
-
getUsersByRole
- 此方法會針對指定的角色和記號,傳回所有使用者的清單。
-
isInRole
- 此方法指示使用者和記號是否具有指定的角色。
-
roleCheck
- 此方法會檢查提供的帳戶 ID 是否為任何角色的成員。
-
getOrgUsersByRole
- 此方法會傳回在指定組織中具有指定角色之所有使用者的相關資訊。
-
getOrgAccountsByRole
- 此方法會傳回在指定組織中具有指定角色之所有帳戶的相關資訊。
交易歷史記錄管理的方法
-
getTransactionById
- 此方法會傳回
Transaction
資產的歷史記錄。 -
deleteHistoricalTransactions
- 此方式會傳回指定科目的交易歷史記錄明細陣列。
-
getAccountTransactionHistory
- 此方式會傳回指定科目的交易歷史記錄明細陣列。
-
getAccountTransactionHistoryWithFilters
- 此方式會傳回指定科目的交易歷史記錄明細陣列。連線至遠端 Oracle Blockchain Platform 網路時才能呼叫此方法。
-
getSubTransactionHistory
- 此方法會傳回指定交易之交易歷史記錄明細的陣列。
-
getSubTransactionHistoryWithFilters
- 此方法會傳回指定交易之子交易歷史記錄明細的陣列。
權杖行為管理
../lib/token
模組匯入 Token
類別。
import { Token } from '../lib/token';
記號行為管理方法 - 可調整行為
-
mint
- 這個方法會提示某個數量的記號,然後由方法的呼叫程式所擁有。呼叫者必須具有帳戶與較小者角色。數量必須在規格檔案中
divisible
行為的decimal
參數所指定的小數值內。 -
getTotalMintedTokens
- 此方法會傳回提示的記號總數。
-
getNetTokens
- 此方法會傳回系統中可用記號的淨數量。網路記號是記號被燒錄後剩餘的記號量。在方程式形式中:淨記號 = 提示的記號總計 - 消耗的記號總計。如果沒有燒錄記號,則淨記號的數目等於提示的記號總數。
-
getMaxMintQuantity
- 此方式會傳回變數替代字的最大可修改數量。如果未指定
max_mint_quantity
行為,則預設值為 0,允許任意數目的記號進行調解。
記號行為管理方法 - 可傳輸行為
-
transfer
- 此方法會將記號從交易呼叫程式傳輸至
to_account_id
帳戶。此方法的呼叫程式必須要有一個帳戶,而且數量必須在規格檔案中divisible
行為的decimal
參數所指定的小數值內。 -
bulkTransfer
- 此方法是用來執行從呼叫程式帳戶到
flow
物件中指定帳戶的大量記號傳輸。這個方法的呼叫程式必須已經建立帳戶。
記號行為管理方法 - 可保留行為
-
hold
- 此方法會代表記號擁有者的
to_account_id
帳戶建立保留。已指定公證人帳戶,其負責完成或解除保留。建立保留時,付款人的指定變數替代字餘額會設為保留。保留餘額必須等到完成或解除後才能移轉。這個方法的呼叫程式必須已經建立帳戶。 -
executeHold
- 此方式會完成記號的保留,將先前保留的指定記號數量移轉給接收者。如果
quantity
值小於實際保留值,則記號的原始擁有者可再使用剩餘金額。只有具有指定作業 ID 之notary
角色的AccountOwner
ID 才能呼叫此方法。保留只能由公證人完成。 -
releaseHold
- 此方法會解除記號的保留。移轉未完成,所有保留的變數替代字會再次可供原始擁有者使用。
AccountOwner
ID 可在指定的時間限制內以notary
角色呼叫此方法,或在指定的時間限制之後由付款人、受款人或公證人呼叫。 -
getOnHoldIds
- 這個方法會傳回指定帳戶之所有持有 ID 的清單。
-
getOnHoldDetailsWithOperationId
- 此方法會傳回指定作業 ID 和記號的保留交易詳細資訊。
-
getOnHoldBalanceWithOperationId
- 此方法會傳回指定作業 ID 與變數替代字的保留餘額。任何人都可以呼叫這個方法。
記號行為管理方法 - 可燒錄行為