Projeto Go do Scaffolded para o Token Taxonomy Framework
O Blockchain App Builder pega a entrada do seu arquivo de especificação de token e gera um projeto de chaincode scaffolded totalmente funcional.
O projeto gera automaticamente classes e funções de ciclo de vida de token, incluindo métodos CRUD e não CRUD. Validação de argumentos, marshalling/unmarshalling, e capacidade de persistência transparente são todos suportados automaticamente.
Para obter informações sobre o projeto e os métodos scaffolded que não estão diretamente relacionados a tokens, consulte Projeto de Código de Cadeia do Andaime Go.
Modelo
O Recurso de Persistência Transparente, ou ORM simplificado, é capturado na classe 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"`
}
Controladora
Há apenas um controlador principal.
type Controller struct {
Ctx trxcontext.TrxContext
}
Você pode criar qualquer número de classes, funções ou arquivos, mas apenas os métodos definidos na classe do controlador principal são invocáveis. Os outros métodos estão ocultos.
Você pode usar os métodos do token SDK para gravar métodos personalizados para seu aplicativo de negócios.
Se você usar mais de um método de token SDK em um método personalizado, não use métodos que afetarão os mesmos pares de chave/valor no banco de dados de estado.
Em vez disso, use o método BulkTransferTokens
para transferir da conta do chamador para várias contas, conforme mostrado no trecho de código a seguir.
BulkTransferTokens(token_id string, flow: []map[string]interface{})
Observação:
Se você usar mais de um método de token SDK em um método personalizado que possa afetar os mesmos pares de chave/valor no banco de dados de estado, ative a otimização MVCC para códigos de cadeia de token. Para obter mais informações, consulte Otimização MVCC.Métodos de Token Gerados Automaticamente
O Blockchain App Builder gera automaticamente métodos para suportar tokens e ciclos de vida de token. Você pode usar esses métodos para inicializar tokens, gerenciar atribuições e contas e concluir outras tarefas de ciclo de vida de token sem qualquer codificação adicional. Os métodos do controlador devem ser públicos para serem invocáveis. Os nomes de métodos públicos começam com um caractere maiúsculo. Os nomes de métodos que começam com um caractere minúsculo são privados.
- Gerenciamento de Controle de Acesso
- Gerenciamento de Configuração de Token
- Gerenciamento de Contas
- Gerenciamento de Atribuições
- Gerenciamento do Histórico de Transações
- Gerenciamento de Comportamento de Token
Métodos para Gerenciamento de Controle de Acesso
-
AddTokenAdmin
- Este método adiciona um usuário como um
Token Admin
do chaincode. Esse método só pode ser chamado por umToken Admin
do chaincode. -
RemoveTokenAdmin
- Este método remove um usuário como um
Token Admin
do chaincode. Esse método só pode ser chamado por umToken Admin
do chaincode. -
IsTokenAdmin
- Este método retornará o valor Booliano
true
se o chamador da função for umToken Admin
, caso contrário, retornaráfalse
. UmToken Admin
ouOrg Admin
pode chamar essa função em qualquer outro usuário da rede blockchain. Outros usuários só podem chamar esse método em suas próprias contas. -
GetAllTokenAdmins
- Este método retorna uma lista de todos os usuários que são um
Token Admin
do chaincode. Esse método só pode ser chamado peloToken Admin
ouOrg Admin
do chaincode. -
AddOrgAdmin
- Esse método adiciona um usuário como um
Org Admin
da organização. Esse método só pode ser chamado por umaToken Admin
do chaincode ou por umaOrg Admin
da organização especificada. -
RemoveOrgAdmin
- Este método remove um usuário como um
Org Admin
de uma organização. Esse método só pode ser chamado por umaToken Admin
do chaincode ou por umaOrg Admin
da organização especificada. -
GetOrgAdmins
- Esse método retorna uma lista de todos os usuários que são um
Org Admin
de uma organização. Esse método só pode ser chamado por umaToken Admin
do chaincode ou por qualquerOrg Admin
.
-
AddTokenAdmin
- Este método adiciona um usuário como um
Token Admin
do chaincode. Esse método só pode ser chamado por umToken Admin
do chaincode. -
RemoveTokenAdmin
- Este método remove um usuário como um
Token Admin
do chaincode. Esse método só pode ser chamado por umToken Admin
do chaincode. -
IsTokenAdmin
- Este método retornará o valor Booliano
true
se o chamador da função for umToken Admin
, caso contrário, retornaráfalse
. Essa função só pode ser chamada por umaToken Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetAllTokenAdmins
- Este método retorna uma lista de todos os usuários que são um
Token Admin
do chaincode. Esse método só pode ser chamado por umaToken Admin
ouToken Auditor
. -
AddOrgAdmin
- Esse método adiciona um usuário como um
Org Admin
da organização. Esse método só pode ser chamado por umaToken Admin
do chaincode ou por umaOrg Admin
da organização especificada. -
RemoveOrgAdmin
- Este método remove um usuário como um
Org Admin
de uma organização. Esse método só pode ser chamado por umaToken Admin
do chaincode ou por umaOrg Admin
da organização especificada. -
GetOrgAdmins
- Esse método retorna uma lista de todos os usuários que são um
Org Admin
de uma organização. Esse método só pode ser chamado por umaToken Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
AddTokenAuditor
- Este método adiciona um usuário como um
Token Auditor
do chaincode. Esse método só pode ser chamado por umToken Admin
do chaincode. -
RemoveTokenAuditor
- Este método remove um usuário como um
Token Auditor
do chaincode. Esse método só pode ser chamado por umToken Admin
do chaincode. -
GetTokenAuditors
- Este método retorna todos os
Token Auditors
do chaincode. Esse método só pode ser chamado por umaToken Admin
ouToken Auditor
do chaincode. -
AddOrgAuditor
- Este método adiciona um usuário como um
Org Auditor
do chaincode. Esse método só pode ser chamado por umaToken Admin
ouOrg Admin
do chaincode. -
RemoveOrgAuditor
- Este método remove um usuário como um
Org Auditor
do chaincode. Esse método só pode ser chamado por umaToken Admin
ouOrg Admin
do chaincode. -
GetOrgAuditors
- Este método retorna todos os
Org Auditors
do chaincode. Esse método só pode ser chamado por umaToken Admin
,Token Auditor
,Org Admin
ouOrg Auditor
.
Métodos para Gerenciamento de Configuração de Token
-
Init
- Este método é chamado quando o chaincode é implantado. Todo
Token Admin
é identificado pelas informaçõesuser_id
eorg_id
no parâmetroadminList
obrigatório. Ouser_id
é o nome de usuário ou o ID de e-mail do proprietário da instância ou do usuário que está conectado à instância. Oorg_id
é o ID do provedor de serviços de associação (MSP) do usuário na organização de rede atual. -
Initialize<Token Name>Token
- Esse método cria um token e inicializa as propriedades do token. O ativo e suas propriedades são salvos no banco de dados de estado. Esse método só pode ser chamado por um
Token Admin
do chaincode. -
Update<Token Name>Token
- Este método atualiza as propriedades do token. Após a criação de um ativo de token, somente a propriedade
token_desc
e as propriedades personalizadas podem ser atualizadas. Esse método só pode ser chamado por umToken Admin
do chaincode. -
GetTokenDecimals
- Este método retorna o número de casas decimais que foram configuradas para um token fracionário. Se o comportamento
divisible
não tiver sido especificado para o token, o valor padrão será 0. Esse método só pode ser chamado por umaToken Admin
ouOrg Admin
do chaincode. -
GetTokenById
- Este método retorna um objeto de token se estiver presente no banco de dados de estado. Esse método só pode ser chamado por uma
Token Admin
ouOrg Admin
do chaincode. -
GetTokenHistory
- Este método retorna o histórico de token para um ID de token especificado. Qualquer usuário pode chamar esse método.
-
GetAllTokens
- Este método retorna todos os tokens que são armazenados no banco de dados de estado. Esse método só pode ser chamado por uma
Token Admin
ouOrg Admin
do chaincode. -
GetTokensByName
- Este método retorna todos os objetos de token com um nome especificado. Esse método só pode ser chamado por uma
Token Admin
ouOrg Admin
do chaincode. Este método usa consultas ricas em SQL do Berkeley DB e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform.
-
Init
- Este método é chamado quando o chaincode é implantado. Todo
Token Admin
é identificado pelas informaçõesuser_id
eorg_id
no parâmetroadminList
obrigatório. Ouser_id
é o nome de usuário ou o ID de e-mail do proprietário da instância ou do usuário que está conectado à instância. Oorg_id
é o ID do provedor de serviços de associação (MSP) do usuário na organização de rede atual. -
Initialize<Token Name>Token
- Esse método cria um token e inicializa as propriedades do token. O ativo e suas propriedades são salvos no banco de dados de estado. Esse método só pode ser chamado por um
Token Admin
do chaincode. -
Update<Token Name>Token
- Este método atualiza as propriedades do token. Após a criação de um ativo de token, somente a propriedade
token_desc
e as propriedades personalizadas podem ser atualizadas. Esse método só pode ser chamado por umToken Admin
do chaincode. -
GetTokenDecimals
- Este método retorna o número de casas decimais que foram configuradas para um token fracionário. Se o comportamento
divisible
não tiver sido especificado para o token, o valor padrão será 0. Esse método só pode ser chamado por umaToken Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetTokenById
- Este método retorna um objeto de token se estiver presente no banco de dados de estado. Esse método só pode ser chamado por uma
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetTokenHistory
- Este método retorna o histórico de token para um ID de token especificado. Esse método só pode ser chamado por uma
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetAllTokens
- Este método retorna todos os tokens que são armazenados no banco de dados de estado. Esse método só pode ser chamado por uma
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetTokensByName
- Este método retorna todos os objetos de token com um nome especificado. Esse método só pode ser chamado por uma
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. Este método usa consultas ricas em SQL do Berkeley DB e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform.
Métodos para Gerenciamento de Contas
-
CreateAccount
- Este método cria uma conta para um usuário e token especificados. É necessário criar uma conta para qualquer usuário que tenha tokens a qualquer momento. As contas rastreiam saldos, saldos em retenção e histórico de transações. Um ID de conta é um conjunto alfanumérico de caracteres, prefixado com
oaccount~<token asset name>~
e seguido por um hash do nome do usuário ou do ID de e-mail (user_id
) do proprietário da instância ou do usuário que está conectado à instância, o ID do provedor de serviços de associação (org_id
) do usuário na organização de rede atual. Esse método só pode ser chamado por umToken Admin
do chaincode ou umOrg Admin
da organização especificada. -
AssociateTokenToAccount
- Este método associa um token fungível a uma conta. Esse método só pode ser chamado por um
Token Admin
do código de cadeia ou por umOrg Admin
da organização relevante. -
GetAccount
- Este método retorna detalhes da conta para um usuário e token especificados. Esse método só pode ser chamado por uma
Token Admin
do chaincode, umaOrg Admin
da organização especificada ou aAccountOwner
da conta. -
GetAccountHistory
- Este método retorna detalhes do histórico da conta para um usuário e token especificados. Esse método só pode ser chamado por um
Token Admin
do chaincode ou peloAccountOwner
da conta. -
GetAccountOnHoldBalance
- Este método retorna o saldo atual em retenção para uma conta e um token especificados. Esse método só pode ser chamado por uma
Token Admin
do chaincode, umaOrg Admin
da organização especificada ou aAccountOwner
da conta. -
GetAllAccounts
- Esse método retorna uma lista de todas as contas. Esse método só pode ser chamado por um
Token Admin
do chaincode. Este método usa consultas ricas em SQL do Berkeley DB e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform. -
GetUserByAccountId
- Este método retorna detalhes do usuário (
org_id
euser_id
) para uma conta especificada. Este método pode ser chamado por qualquer usuário do chaincode. -
GetAccountBalance
- Este método retorna o saldo atual de uma conta e token especificados. Esse método só pode ser chamado por uma
Token Admin
do chaincode, umaOrg Admin
da organização especificada ou aAccountOwner
da conta. -
GetAllOrgAccounts
- Este método retorna uma lista de todas as contas de token que pertencem a uma organização especificada. Esse método só pode ser chamado por uma
Token Admin
do chaincode ou por umaOrg Admin
da organização especificada.
-
CreateAccount
- Este método cria uma conta para um usuário e token especificados. É necessário criar uma conta para qualquer usuário que tenha tokens a qualquer momento. As contas rastreiam saldos, saldos em retenção e histórico de transações. Um ID de conta é um conjunto alfanumérico de caracteres, prefixado com
oaccount~<token asset name>~
e seguido por um hash do nome do usuário ou do ID de e-mail (user_id
) do proprietário da instância ou do usuário que está conectado à instância, o ID do provedor de serviços de associação (org_id
) do usuário na organização de rede atual. Esse método só pode ser chamado por umToken Admin
do chaincode ou umOrg Admin
da organização especificada. -
AssociateTokenToAccount
- Este método associa um token fungível a uma conta. Esse método só pode ser chamado por um
Token Admin
do código de cadeia ou por umOrg Admin
da organização relevante. -
GetAccount
- Este método retorna detalhes da conta para um usuário e token especificados. Esse método só pode ser chamado por uma
Token Admin
ouToken Auditor
, umaOrg Admin
ouOrg Auditor
da organização especificada ou aAccountOwner
da conta. -
GetAccountHistory
- Este método retorna detalhes do histórico da conta para um usuário e token especificados. Esse método só pode ser chamado por um
Token Admin
do chaincode ou peloAccountOwner
da conta. -
GetAccountOnHoldBalance
- Este método retorna o saldo atual em retenção para uma conta e um token especificados. Esse método só pode ser chamado por uma
Token Admin
ouToken Auditor
, umaOrg Admin
ouOrg Auditor
da organização especificada ou pelo proprietário da conta especificada. -
GetAllAccounts
- Esse método retorna uma lista de todas as contas. Esse método só pode ser chamado por uma
Token Admin
ouToken Auditor
do chaincode. Este método usa consultas ricas em SQL do Berkeley DB e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform. -
GetUserByAccountId
- Este método retorna detalhes do usuário (
org_id
euser_id
) para uma conta especificada. Esse método só pode ser chamado por umaToken Admin
ouToken Auditor
, ou por umaOrg Admin
ouOrg Auditor
da organização especificada. -
GetAccountBalance
- Este método retorna o saldo atual de uma conta e token especificados. Esse método só pode ser chamado por uma
Token Admin
ouToken Auditor
, umaOrg Admin
ouOrg Auditor
da organização especificada ou pelo proprietário da conta especificada. -
GetAllOrgAccounts
- Este método retorna uma lista de todas as contas de token que pertencem a uma organização especificada. Esse método só pode ser chamado por uma
Token Admin
ouToken Auditor
, ou por umaOrg Admin
ouOrg Auditor
da organização especificada.
Métodos para Gerenciamento de Atribuições
-
AddRole
- Este método adiciona uma atribuição a um usuário e token especificados. Esse método só pode ser chamado por um
Token Admin
do chaincode ou por umOrg Admin
da organização especificada que também tenha a função especificada. -
RemoveRole
- Este método remove uma atribuição de um usuário e token especificados. Esse método só pode ser chamado por um
Token Admin
do chaincode ou por umOrg Admin
da organização especificada que também tenha a atribuição especificada. -
GetAccountsByRole
- Este método retorna uma lista de todos os IDs de conta para uma função e token especificados. Esse método só pode ser chamado por um
Token Admin
do chaincode. -
GetAccountsByUser
- Este método retorna uma lista de todos os IDs de conta para um ID organização e ID usuário especificados. Esse método só pode ser chamado por uma
Token Admin
do chaincode, umaOrg Admin
da organização especificada ou pelaAccount Owner
especificada nos parâmetros. -
GetUsersByRole
- Este método retorna uma lista de todos os usuários para uma atribuição e um token especificados. Esse método só pode ser chamado por uma
Token Admin
do chaincode ou pelaAccount Owner
especificada nos parâmetros. -
IsInRole
- Este método retorna um valor Booliano para indicar se um usuário e um token têm uma função especificada. Esse método só pode ser chamado pelo
Token Admin
do chaincode, por umOrg Admin
da organização especificada ou peloAccountOwner
da conta. -
GetOrgAccountsByRole
- Este método retorna informações sobre todas as contas que têm uma função especificada em uma organização especificada. Esse método só pode ser chamado por uma
Token Admin
do chaincode ou por umaOrg Admin
da organização especificada. -
GetOrgUsersByRole
- Este método retorna informações sobre todos os usuários que têm uma função especificada em uma organização especificada. Esse método só pode ser chamado por uma
Token Admin
do chaincode ou por umaOrg Admin
da organização especificada.
-
AddRole
- Este método adiciona uma atribuição a um usuário e token especificados. Esse método só pode ser chamado por um
Token Admin
do chaincode ou por umOrg Admin
da organização especificada que também tenha a função especificada. -
RemoveRole
- Este método remove uma atribuição de um usuário e token especificados. Esse método só pode ser chamado por um
Token Admin
do chaincode ou por umOrg Admin
da organização especificada que também tenha a atribuição especificada. -
GetAccountsByRole
- Este método retorna uma lista de todos os IDs de conta para uma função e token especificados. Esse método só pode ser chamado por uma
Token Admin
ouToken Auditor
. -
GetAccountsByUser
- Este método retorna uma lista de todos os IDs de conta para um ID organização e ID usuário especificados. Esse método só pode ser chamado por uma
Token Admin
ouToken Auditor
, umaOrg Admin
ouOrg Auditor
da organização especificada ou pelaAccount Owner
especificada nos parâmetros. -
GetUsersByRole
- Este método retorna uma lista de todos os usuários para uma atribuição e um token especificados. Esse método só pode ser chamado por uma
Token Admin
ouToken Auditor
. -
IsInRole
- Este método retorna um valor Booliano para indicar se um usuário e um token têm uma função especificada. Esse método só pode ser chamado pelo
Token Admin
ouToken Auditor
, umOrg Admin
ouOrg Auditor
da organização especificada ou pelo proprietário da conta especificada. -
GetOrgAccountsByRole
- Este método retorna informações sobre todas as contas que têm uma função especificada em uma organização especificada. Esse método só pode ser chamado por uma
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetOrgUsersByRole
- Este método retorna informações sobre todos os usuários que têm uma função especificada em uma organização especificada. Esse método só pode ser chamado por uma
Token Admin
ouToken Auditor
, ou por umaOrg Admin
ouOrg Auditor
da organização especificada.
Métodos para Gerenciamento do Histórico de Transações
-
GetAccountTransactionHistory
- Este método retorna um array de detalhes do histórico de transações da conta para um usuário e token especificados. Esse método só pode ser chamado pelo
Token Admin
do chaincode, por umOrg Admin
da organização especificada ou peloAccountOwner
da conta. -
GetAccountTransactionHistoryWithFilters
- Este método retorna um array de detalhes do histórico de transações da conta para um usuário e token especificados. Esse método só pode ser chamado pelo
Token Admin
do chaincode, por umOrg Admin
da organização especificada ou peloAccountOwner
da conta. Esse método só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform. -
GetSubTransactionsById
- Este método retorna uma matriz de detalhes do histórico de subtransações para uma transação especificada.
-
GetSubTransactionsByIdWithFilters
- Este método retorna uma matriz de detalhes do histórico de subtransações para uma transação especificada.
-
GetTransactionById
- Este método retorna o histórico de um ativo
Transaction
. -
DeleteHistoricalTransactions
- Este método exclui transações mais antigas do banco de dados de estado.
-
GetAccountTransactionHistoryWithFiltersFromRichHistDB
func (t *Controller) GetAccountTransactionHistoryWithFiltersFromRichHistDB(token_id string, org_id string, user_id string, custom_endPoint string, bearer_token string, filters ...account.AccountHistoryFilters) (interface{}, error) { account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id) if err != nil { return nil, err } auth, err := t.Ctx.Auth.CheckAuthorization("Account.GetAccountTransactionHistoryWithFilters", "TOKEN", map[string]string{"account_id": account_id}) if err != nil && !auth { return nil, fmt.Errorf("error in authorizing the caller %s", err.Error()) } // sample format of filter: []string{"3", "", "2022-01-16T15:16:36+00:00", "2022-01-17T15:16:36+00:00"} transactionArray, err := t.Ctx.Account.GetAccountTransactionHistoryWithFiltersFromRichHistDB(account_id, org_id, user_id, custom_endPoint, bearer_token, filters...) return transactionArray, err }
-
GetAccountTransactionHistory
- Este método retorna um array de detalhes do histórico de transações da conta para um usuário e token especificados. Esse método só pode ser chamado por uma
Token Admin
ouToken Auditor
, umaOrg Admin
ouOrg Auditor
da organização especificada ou pelo proprietário da conta especificada. -
GetAccountTransactionHistoryWithFilters
- Este método retorna um array filtrado de detalhes do histórico de transações da conta para um usuário e token especificados. Esse método só pode ser chamado por uma
Token Admin
ouToken Auditor
, umaOrg Admin
ouOrg Auditor
da organização especificada ou pelo proprietário da conta especificada. -
GetSubTransactionsById
- Este método retorna uma matriz de detalhes do histórico de subtransações para uma transação especificada. Esse método só pode ser chamado por um
Token Admin
,Token Auditor
ou peloAccountOwner
que chamou a transação. -
GetSubTransactionsByIdWithFilters
- Este método retorna uma matriz de detalhes do histórico de subtransações para uma transação especificada.
-
GetTransactionById
- Este método retorna o histórico de um ativo
Transaction
. Este método só pode ser chamado por umToken Admin
ouToken Auditor
, umOrg Admin
ouOrg Auditor
da organização especificada ou por um participante da transação (remetente, destinatário, notário). -
DeleteHistoricalTransactions
- Este método exclui transações mais antigas do banco de dados de estado.
Métodos para Gerenciamento de Comportamento de Token - Comportamento Mintable
-
IssueTokens
- Este método cunha tokens, que são então de propriedade do chamador do método. O chamador deve ter uma conta e a função de mineiro. O número de tokens que podem ser cunhados é limitado pela propriedade
max_mint_quantity
do comportamentomintable
no arquivo de especificação. Se a propriedademax_mint_quantity
não for especificada, um número ilimitado de tokens poderá ser cunhado. A quantidade deve estar dentro dos valores decimais especificados pelo parâmetrodecimal
do comportamentodivisible
no arquivo de especificação. Esse método só pode ser chamado peloAccountOwner
da conta com a atribuição de minter. -
GetTotalMintedTokens
- Este método retorna o número total de tokens cunhados para um token especificado. Esse método só pode ser chamado por uma
Token Admin
ouOrg Admin
do chaincode. -
GetNetTokens
- Este método retorna o número líquido total de tokens disponíveis no sistema para um token especificado. O total de tokens líquidos é a quantidade de tokens restantes após os tokens serem gravados. Em forma de equação, tokens líquidos = total de tokens cunhados - total de tokens gravados. Se nenhum token for gravado, o número de tokens líquidos será igual ao total de tokens cunhados. Esse método só pode ser chamado por uma
Token Admin
ouOrg Admin
do chaincode.
-
RequestMint
- Este método pode ser chamado por um mineiro para enviar uma solicitação ao notário do mineiro para criar uma quantidade especificada de tokens.
-
ApproveMint
- Este método pode ser chamado por um notário mineiro para aprovar uma solicitação de cunhagem.
-
RejectMint
- Este método pode ser chamado por um notário mineiro para rejeitar uma solicitação de cunhagem.
-
IssueTokens
- Este método cunha tokens, que são então de propriedade do chamador do método.
-
GetTotalMintedTokens
- Este método retorna o número total de tokens cunhados para um token especificado. Esse método só pode ser chamado por uma
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
. -
GetNetTokens
- Este método retorna o número líquido total de tokens disponíveis no sistema para um token especificado. O total de tokens líquidos é a quantidade de tokens restantes após os tokens serem gravados. Em forma de equação, tokens líquidos = total de tokens cunhados - total de tokens gravados. Se nenhum token for gravado, o número de tokens líquidos será igual ao total de tokens cunhados. Esse método só pode ser chamado por uma
Token Admin
,Token Auditor
,Org Admin
ouOrg Auditor
.
Métodos para Gerenciamento de Comportamento de Token - Comportamento Transferível
-
TransferTokens
- Este método transfere tokens do chamador para uma conta especificada. O chamador do método deve ter uma conta. A quantidade deve estar dentro dos valores decimais especificados pelo parâmetro
decimal
do comportamentodivisible
no arquivo de especificação. Esse método só pode ser chamado peloAccountOwner
da conta. -
BulkTransferTokens
- Esse método transfere tokens em massa da conta do chamador para as contas especificadas no objeto
flow
. As quantidades devem estar dentro dos valores decimais especificados pelo parâmetrodecimal
do comportamentodivisible
no chamador file.The de especificação deste método deve ter uma conta já criada. Esse método só pode ser chamado peloAccountOwner
da conta.
-
TransferTokens
- Este método transfere tokens do chamador para uma conta especificada.
-
BulkTransferTokens
- Esse método transfere tokens em massa da conta do chamador para as contas especificadas no objeto
flow
. As quantidades devem estar dentro dos valores decimais especificados pelo parâmetrodecimal
do comportamentodivisible
no chamador file.The de especificação deste método deve ter uma conta já criada. Esse método só pode ser chamado peloAccountOwner
da conta.
Métodos para Gerenciamento de Comportamento de Token - Comportamento Mantível
-
HoldTokens
- Esse método cria uma retenção em nome do proprietário dos tokens com a conta
to_account_id
. Uma conta do notário é especificada, que é responsável por concluir ou liberar a retenção. Quando a retenção é criada, o saldo de token especificado do pagador é colocado em retenção. Um saldo retido não pode ser transferido até que a retenção seja concluída ou liberada. O chamador desse método deve ter uma conta já criada. Esse método só pode ser chamado peloAccountOwner
da conta. -
ExecuteHoldTokens
- Este método conclui uma retenção em um token. Uma quantidade de tokens mantidos anteriormente por um proprietário de token é transferida para um destinatário. Se o valor
quantity
for menor que o valor de retenção real, o valor restante será disponibilizado novamente para o proprietário original dos tokens. Esse método só pode ser chamado pelo IDAccountOwner
com a atribuiçãonotary
. A retenção só pode ser concluída pelo notário. -
ReleaseHoldTokens
- Este método libera uma retenção de tokens. A transferência não foi concluída e todos os tokens retidos estão disponíveis novamente para o proprietário original. Esse método pode ser chamado pelo ID
Account Owner
com a funçãonotary
dentro do limite de tempo especificado ou pelo pagador, favorecido ou notário após o limite de tempo especificado. -
GetOnHoldIds
- Este método retorna uma lista de todos os IDs de retenção de uma conta especificada. Esse método pode ser chamado pelo
Token Admin
do chaincode, umOrg Admin
da organização especificada ou peloAccount Owner
da conta. -
GetOnHoldDetailsWithOperationId
- Este método retorna os detalhes da transação em retenção para um ID e token de operação especificados. Este método pode ser chamado por qualquer pessoa.
-
GetOnHoldBalanceWithOperationId
- Este método retorna o saldo em retenção para um ID e token de operação especificados. Este método pode ser chamado por qualquer pessoa.
-
HoldTokens
- Esse método cria uma retenção em nome do proprietário dos tokens com a conta
to_account_id
. -
ExecuteHoldTokens
- Este método conclui uma retenção em um token. Uma quantidade de tokens mantidos anteriormente por um proprietário de token é transferida para um destinatário. Se o valor
quantity
for menor que o valor de retenção real, o valor restante será disponibilizado novamente para o proprietário original dos tokens. Esse método só pode ser chamado pelo IDAccountOwner
com a atribuiçãonotary
. A retenção só pode ser concluída pelo notário. -
ReleaseHoldTokens
- Este método libera uma retenção de tokens. A transferência não foi concluída e todos os tokens retidos estão disponíveis novamente para o proprietário original. Esse método pode ser chamado pelo ID
Account Owner
com a funçãonotary
dentro do limite de tempo especificado ou pelo pagador, favorecido ou notário após o limite de tempo especificado. -
GetOnHoldIds
- Este método retorna uma lista de todos os IDs de retenção de uma conta especificada. Esse método pode ser chamado pelo
Token Admin
ouToken Auditor
, umOrg Admin
ouOrg Auditor
da organização especificada ou pelo proprietário da conta especificada. -
GetOnHoldDetailsWithOperationId
- Este método retorna os detalhes da transação em retenção para um ID e token de operação especificados. Esse método só pode ser chamado pelo
Token Admin
,Token Auditor
ou participante da transação (remetente, destinatário, notário). -
GetOnHoldBalanceWithOperationId
- Este método retorna o saldo em retenção para um ID e token de operação especificados. Esse método só pode ser chamado pelo
Token Admin
,Token Auditor
ou participante da transação (remetente, destinatário, notário).
Métodos para Gerenciamento de Comportamento de Token - Comportamento Queimável
-
BurnTokens
- Este método desativa ou grava tokens da conta do chamador da transação. O chamador desse método deve ter uma conta e o papel de queimador. A quantidade deve estar dentro dos valores decimais especificados pelo parâmetro
decimal
do comportamentodivisible
no arquivo de especificação. Esse método pode ser chamado peloAccount Owner
da conta com a função de gravador.
-
RequestBurn
- Este método pode ser chamado por um queimador para enviar uma solicitação ao notário do queimador para destruir uma quantidade especificada de tokens, que deve ser menor ou igual ao seu saldo disponível. Quando uma solicitação de gravação é iniciada, o valor especificado é imediatamente deduzido do saldo disponível e adicionado ao campo
onhold_burn_balance
. Se a solicitação for aprovada, os tokens serão gravados. Se a solicitação for rejeitada, os tokens serão retornados do campoonhold_burn_balance
para o saldo disponível. -
ApproveBurn
- Este método pode ser chamado por um notário do queimador para aprovar uma solicitação de gravação.
-
RejectBurn
- Este método pode ser chamado por um notário de queimador para rejeitar um pedido de queima.
-
GetAccountOnHoldBurnBalance
- Este método retorna o saldo de gravação em espera para um usuário especificado. Esse método só pode ser chamado pelo
Token Admin
,Token Auditor
,Org Admin
,Org Auditor
ou pelo proprietário da conta. -
BurnTokens
- Este método desativa ou grava tokens da conta do chamador da transação.
Métodos personalizados
Você pode usar os métodos do token SDK para gravar métodos personalizados para seu aplicativo de negócios.
Certifique-se de rastrear o valor de retorno ao usar os métodos SDK do token. Além disso, para evitar o gasto duplo, não combine várias funções assíncronas que operam nos mesmos pares de chave/valor no banco de dados de estado. Em vez disso, use o método BulkTransferTokens
para fazer várias transferências em um método.
O exemplo a seguir mostra como usar métodos SDK de token em métodos personalizados. Quando o método BuyTicket
é chamado, ele transfere 20 tokens da conta do chamador para a conta do vendedor e retorna a mensagem de transação da transferência.
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
}
Métodos SDK do Token
- Gerenciamento de Controle de Acesso
- Gerenciamento de Configuração de Token
- Gerenciamento de Contas
- Gerenciamento de Atribuições
- Gerenciamento do Histórico de Transações
- Gerenciamento de Comportamento de Token
Métodos para Gerenciamento de Controle de Acesso
Token Admin
, Org Admin
ou AccountOwner
do token. Você pode usar esse recurso para garantir que as operações sejam realizadas apenas pelos usuários pretendidos. Qualquer acesso não autorizado resulta em um erro. Para usar a função de controle de acesso, importe a classe Authorization
do módulo ../lib/auth
.import { Authorization } from '../lib/auth';
-
AddAdmin
- Esse método adiciona um usuário como
Token Admin
do código de cadeia do token. -
RemoveAdmin
- Esse método remove um usuário como um
Token Admin
do chaincode do token. -
IsUserTokenAdmin
- Este método retornará o valor Booliano
true
se o chamador da função for umToken Admin
. Caso contrário, o método retornaráfalse
. -
GetAllAdmins
- Esse método retorna uma lista de todos os usuários que são um
Token Admin
do chaincode do token. -
GetAllAdminUsers
- Esse método retorna uma lista de todos os usuários que são um
Token Admin
do chaincode do token. -
CheckAuthorization
- Use esse método para adicionar controle de acesso ao seu chaincode. Muitos dos métodos de token gerados automaticamente usam o controle de acesso. O mapeamento entre o receptor do SDK e os métodos que têm controle de acesso é descrito no arquivo
oChainUtil.go
. Para usar seu próprio controle de acesso ou desativar o controle de acesso, remova o código de controle de acesso dos métodos do controlador gerados automaticamente e dos métodos personalizados.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"}
-
AddOrgAdmin
- Esse método adiciona um usuário como um
Org Admin
da organização. -
RemoveOrgAdmin
- Este método remove um usuário como um
Org Admin
de uma organização. -
GetOrgAdmins
- Esse método retorna uma lista de todos os usuários que são um
Org Admin
de uma organização.
-
AddAdmin
- Esse método adiciona um usuário como
Token Admin
do código de cadeia do token. -
RemoveAdmin
- Esse método remove um usuário como um
Token Admin
do chaincode do token. -
IsUserTokenAdmin
- Este método retornará o valor Booliano
true
se o chamador da função for umToken Admin
. Caso contrário, o método retornaráfalse
. -
GetAllAdmins
- Esse método retorna uma lista de todos os usuários que são um
Token Admin
do chaincode do token. -
GetAllAdminUsers
- Esse método retorna uma lista de todos os usuários que são um
Token Admin
do chaincode do token. -
CheckAuthorization
- Use esse método para adicionar controle de acesso ao seu chaincode. Muitos dos métodos de token gerados automaticamente usam o controle de acesso. O mapeamento entre o receptor do SDK e os métodos que têm controle de acesso é descrito no arquivo
oChainUtil.go
. Para usar seu próprio controle de acesso ou desativar o controle de acesso, remova o código de controle de acesso dos métodos do controlador gerados automaticamente e dos métodos personalizados.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"}
-
AddOrgAdmin
- Esse método adiciona um usuário como um
Org Admin
da organização. -
RemoveOrgAdmin
- Este método remove um usuário como um
Org Admin
de uma organização. -
GetOrgAdmins
- Esse método retorna uma lista de todos os usuários que são um
Org Admin
de uma organização. -
AddTokenAuditor
- Este método adiciona um usuário como um
Token Auditor
do chaincode. -
RemoveTokenAuditor
- Este método remove um usuário como um
Token Auditor
do chaincode. -
GetTokenAuditors
- Este método retorna todos os
Token Auditors
do chaincode. -
AddOrgAuditor
- Este método adiciona um usuário como um
Org Auditor
do chaincode. -
RemoveOrgAuditor
- Este método remove um usuário como um
Org Auditor
do chaincode. -
GetOrgAuditors
- Este método retorna todos os
Org Auditors
do chaincode.
Métodos para Gerenciamento de Configuração de Token
-
Save
- Este método cria um token e salva suas propriedades no banco de dados de estado.
-
Update
- Este método atualiza as propriedades do token. Após a criação de um ativo de token, você só poderá atualizar o valor
token_desc
e suas propriedades personalizadas. -
GetTokenDecimals
- Este método retorna o número de casas decimais disponíveis para um token fracionário. Se o comportamento
divisible
não estiver especificado, o valor padrão será 0. -
Get
- Este método retorna um objeto de token se estiver presente no banco de dados de estado. Esse método só pode ser chamado por um
Token Admin
do chaincode do token. -
History
- Este método retorna o histórico de token para um ID de token especificado.
-
GetAllTokens
- Este método retorna todos os ativos de token que são salvos no banco de dados de estado. Este método usa consultas ricas em SQL do Berkeley DB e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform.
-
GetTokensByName
- Este método retorna todos os ativos de token com o nome especificado. Este método usa consultas ricas em SQL do Berkeley DB e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform.
-
IsTokenType
- Este método testa se existe um ativo de token para um ID de token especificado.
-
GetByRange
- Esse método chama o método da malha
getStateByRange
internamente. Embora qualquer ativo com o ID fornecido seja retornado do razão, esse método converte o ativo no tipo de Ativo do chamador.
Métodos para Gerenciamento de Contas
-
GenerateAccountId
- Esse método retorna um ID de conta, que é um conjunto alfanumérico de caracteres, prefixado com
oaccount~<token asset name>~
e seguido por um hash do nome do usuário ou do ID de e-mail (user_id
) do proprietário da instância ou do usuário que está conectado à instância, do ID do provedor de serviços de associação (org_id
) do usuário na organização de rede atual e do ID de token exclusivo (token_id
). -
CreateAccount
- Este método cria uma conta para um usuário e token especificados. Todo usuário que tem tokens em qualquer ponto deve ter uma conta. As contas rastreiam o saldo, o saldo em retenção e o histórico de transações de um usuário. Um ID de conta é um conjunto alfanumérico de caracteres, prefixado com
oaccount~<token asset name>~
e seguido por um hash do nome do usuário ou do ID de e-mail (user_id
) do proprietário da instância ou do usuário que está conectado à instância, o ID do provedor de serviços de associação (org_id
) do usuário na organização de rede atual. Esse método só pode ser chamado peloToken Admin
do chaincode. -
AssociateToken
- Este método associa um token fungível a uma conta. Esse método só pode ser chamado por um
Token Admin
do chaincode. -
GetAccountWithStatus
- Este método retorna detalhes da conta para uma conta especificada, incluindo o status da conta.
-
GetAccount
- Este método retorna detalhes da conta para uma conta especificada.
-
GetAccountHistory
- Este método retorna uma matriz dos detalhes do histórico da conta para uma conta especificada.
-
GetAccountOnHoldBalance
- Este método retorna o saldo em retenção de uma conta especificada.
-
GetAllAccounts
- Esse método retorna uma lista de todas as contas. Este método usa consultas ricas em SQL do Berkeley DB e só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform.
-
GetUserByAccountId
- Este método retorna os detalhes do usuário de uma conta especificada.
-
GetAccountBalance
- Este método retorna o saldo da conta para uma conta especificada.
-
GetAllOrgAccounts
- Este método retorna uma lista de todas as contas de token que pertencem a uma organização especificada.
Métodos para Gerenciamento de Atribuições
-
AddRoleMember
- Este método adiciona uma atribuição a um usuário e token especificados.
-
RemoveRoleMember
- Este método remove uma atribuição de um usuário e token especificados.
-
GetAccountsByRole
- Este método retorna uma lista de todas as contas para uma atribuição e um token especificados.
-
GetUsersByRole
- Este método retorna uma lista de todos os usuários para uma atribuição e um token especificados.
-
IsInRole
- Este método indica se um usuário e um token têm uma atribuição especificada.
-
GetOrgAccountsByRole
- Este método retorna informações sobre todas as contas que têm uma função especificada em uma organização especificada.
-
GetOrgUsersByRole
- Este método retorna informações sobre todos os usuários que têm uma função especificada em uma organização especificada.
-
RoleCheck
- Este método verifica se o ID da conta fornecido é membro de qualquer função.
Métodos para Gerenciamento do Histórico de Transações
-
GetAccountTransactionHistory
- Este método retorna uma matriz dos detalhes do histórico de transações de uma conta especificada.
-
GetAccountTransactionHistoryWithFilters
- Este método retorna uma matriz dos detalhes do histórico de transações de uma transação especificada. Esse método só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform.
-
GetSubTransactionsById
- Este método retorna uma matriz dos detalhes do histórico de transações de uma transação especificada.
-
GetSubTransactionsByIdWithFilters
- Este método retorna uma matriz dos detalhes do histórico de transações de uma transação especificada.
-
GetTransactionById
- Este método retorna o histórico de um ativo
Transaction
. -
DeleteHistoricalTransactions
- Este método exclui transações mais antigas do banco de dados de estado.
Métodos para Gerenciamento de Comportamento de Token - Comportamento Mintable
-
Mint
- Este método cunha tokens, que são então de propriedade do chamador do método. O chamador deve ter uma conta e a função de mineiro. O número de tokens que podem ser cunhados é limitado pela propriedade
max_mint_quantity
do comportamentomintable
no arquivo de especificação. Se a propriedademax_mint_quantity
não for especificada, um número ilimitado de tokens poderá ser cunhado. A quantidade deve estar dentro dos valores decimais especificados pelo parâmetrodecimal
do comportamentodivisible
no arquivo de especificação. Esse método só pode ser chamado peloAccountOwner
da conta com a atribuição de minter. -
GetTotalMintedTokens
- Este método retorna o número total de tokens cunhados.
-
GetNetTokens
- Este método retorna a quantidade líquida de tokens que estão disponíveis no sistema para um token especificado. Os tokens líquidos são a quantidade de tokens restantes após os tokens serem gravados. Em forma de equação: tokens líquidos = total de tokens cunhados - total de tokens gravados. Se nenhum token for gravado, o número de tokens líquidos será igual ao total de tokens cunhados.
-
GetMaxMintQuantity
- Este método retorna a quantidade máxima de moeda para um token. Se o comportamento
max_mint_quantity
não for especificado, o valor padrão será 0, o que permite que qualquer número de tokens seja cunhado.
Métodos para Gerenciamento de Comportamento de Token - Comportamento Transferível
-
Transfer
- Este método transfere tokens do chamador para uma conta especificada. O chamador do método deve ter uma conta. A quantidade deve estar dentro dos valores decimais especificados pelo parâmetro
decimal
do comportamentodivisible
no arquivo de especificação. Esse método só pode ser chamado peloAccountOwner
da conta. -
BulkTransfer
- Esse método transfere tokens em massa da conta do chamador para as contas especificadas no objeto
flow
. O chamador desse método deve ter uma conta já criada.
Métodos para Gerenciamento de Comportamento de Token - Comportamento Mantível
-
Hold
- Esse método cria uma retenção em nome do proprietário dos tokens com a conta
to_account_id
. Uma conta do notário é especificada, que é responsável por concluir ou liberar a retenção. Quando a retenção é criada, o saldo de token especificado do pagador é colocado em retenção. Um saldo retido não pode ser transferido até que a retenção seja concluída ou liberada. O chamador desse método deve ter uma conta já criada. -
ExecuteHold
- Este método conclui uma retenção de tokens, transferindo a quantidade especificada de tokens anteriormente em retenção para o receptor. Se o valor
quantity
for menor que o valor de retenção real, o valor restante será disponibilizado novamente para o proprietário original dos tokens. Esse método só pode ser chamado pelo IDAccountOwner
com a atribuiçãonotary
. -
ReleaseHold
- Este método libera uma retenção de tokens. A transferência não foi concluída e todos os tokens retidos estão disponíveis novamente para o proprietário original. Esse método pode ser chamado pelo ID
Account Owner
com a funçãonotary
dentro do limite de tempo especificado ou pelo pagador, favorecido ou notário após o limite de tempo especificado. -
GetOnHoldIds
- Este método retorna uma lista de todos os IDs de retenção para um usuário e token especificados.
-
GetOnHoldDetailsWithOperationID
- Este método retorna os detalhes da transação em espera para um ID de operação e token especificados.
-
GetOnHoldBalanceWithOperationID
- Este método retorna o saldo em espera para um ID e token de operação especificados.
Métodos para Gerenciamento de Comportamento de Token - Comportamento Queimável