Projeto Scaffolded TypeScript para 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 Chaincode TypeScript andaime.
Modelo
Cada classe de modelo tokenizado estende a classe Token
, que por sua vez estende a classe OchainModel
. A classe Token
é importada do ../lib/token
. O Recurso de Persistência Transparente, ou ORM simplificado, é capturado na classe OchainModel
.
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;
}
Controladora
A classe do controlador principal estende a classe OchainController
. Há apenas um controlador principal.
export class DigiCurrCCController extends OchainController{
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.
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 da controladora devem ter um decorador @Validator(...params)
para serem chamados.
- 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
ou por qualquerOrg 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 umToken Admin
do chaincode ou umOrg Admin
da organização especificada. -
removeOrgAdmin
- Este método remove 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. -
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 umaOrg Admin
de qualquer organização.
-
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
,Token Auditor
, qualquerOrg Admin
ou qualquerOrg Auditor
pode chamar essa função em qualquer outro usuário na 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
ouToken Auditor
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 umToken Admin
do chaincode ou umOrg Admin
da organização especificada. -
removeOrgAdmin
- Este método remove 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. -
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
, qualquerOrg Admin
ou qualquerOrg 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 ou atualizado. 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
ou umaOrg 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
ou umaOrg 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. -
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 ou atualizado. 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
. 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 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 umaToken Admin
do chaincode ou por umaOrg 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 umaToken Admin
do chaincode ou por umaOrg 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 aAccountOwner
da conta. -
getAllAccounts
- Esse método retorna uma lista de todas as contas. Esse método só pode ser chamado por uma
Token Admin
ouToken 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. -
getUserByAccountId
- Este método retorna detalhes do usuário (
org_id
euser_id
) para uma conta especificada. Esse método 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 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
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 possui 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 possui a funçã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 pelo
Token Admin
do código de cadeia, peloOrg Admin
da organização especificada ou peloAccount Owner
especificado 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 um
Token Admin
do chaincode. -
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 por uma
Token Admin
do chaincode, aAccountOwner
da conta ou umaOrg Admin
da organizaçã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. 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 possui 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 possui a funçã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 pelo
Token Admin
ouToken Auditor
, peloOrg Admin
ouOrg Auditor
da organização especificada ou peloAccount Owner
especificado 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 por uma
Token Admin
ouToken Auditor
, aAccountOwner
da conta ou umaOrg Admin
ouOrg Auditor
da organizaçã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. 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
, 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 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 código de cadeia ou peloAccountOwner
da conta. -
getSubTransactionsByIdWithFilters
- Este método retorna um array de detalhes do histórico de subtransações da conta 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
- Você pode sincronizar dados com o banco de dados de histórico avançado e, em seguida, extrair os dados usando chamadas de API de chaincode. Este método extrai o histórico de transações do banco de dados de histórico avançado. Para poder usar esse método, execute o Oracle Autonomous Database com o Oracle REST Data Services (ORDS) e o OAuth ativado, conforme descrito em Oracle Database View Definitions for Wholesale CBDC no Oracle Blockchain Platform Digital Assets Edition.
-
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
ouToken Auditor
, umOrg Admin
ouOrg Auditor
da organização especificada ou peloAccountOwner
da conta. -
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 pelo
Token Admin
ouToken Auditor
, umOrg Admin
ouOrg Auditor
da organização especificada ou peloAccountOwner
da conta. -
getSubTransactionsById
- 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
,Token Auditor
ou peloAccountOwner
que chamou a transação. -
getSubTransactionsByIdWithFilters
- Este método retorna um array de detalhes do histórico de subtransações da conta 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
, por umOrg Admin
ouOrg Auditor
da organização especificada ou por um participante da transação (remetente, destinatário ou 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
ou qualquerOrg 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
ou qualquerOrg 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
para o ID da operação especificado. 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
AccountOwner
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 por um
Token Admin
do chaincode, umOrg Admin
da organização especificada ou oAccountOwner
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
para o ID da operação especificado. 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
AccountOwner
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 por um
Token Admin
ouToken Auditor
do chaincode, umOrg Admin
ouOrg Auditor
da organização especificada ou oAccountOwner
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 um
Token Admin
ouToken Auditor
do chaincode, ou por um 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. Este método pode ser chamado por um
Token Admin
ouToken Auditor
do chaincode, ou por um 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 peloAccountOwner
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.
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.
@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;
}
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. O exemplo a seguir mostra a maneira incorreta de fazer várias transferências:
@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);
}
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: object[])
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 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. -
checkAuthorization
- Use este método para adicionar uma verificação de controle de acesso a uma operação. Determinados métodos de token só podem ser executados por um
Token Admin
ouAccountOwner
do token ou peloMultipleAccountOwner
para usuários com várias contas. O mapeamento de controle de acesso é descrito no arquivo../lib/constant.ts
. Você pode modificar o controle de acesso editando o arquivo../lib/constant.ts
. 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.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"], }, }
-
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
da 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. -
checkAuthorization
- Use este método para adicionar uma verificação de controle de acesso a uma operação. Determinados métodos de token só podem ser executados por um
Token Admin
ouAccountOwner
do token ou peloMultipleAccountOwner
para usuários com várias contas. O mapeamento de controle de acesso é descrito no arquivo../lib/constant.ts
. Você pode modificar o controle de acesso editando o arquivo../lib/constant.ts
. 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.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"], }, }
-
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
da 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. Depois que um ativo de token for criado, você atualizará somente 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.
-
history
- Este método retorna o histórico do token especificado.
-
getAllTokens
- Este método retorna todos os ativos de token 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 indica se existe um ativo de token com o ID 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
-
getCallerAccountId
- Este método retorna o ID da conta do chamador.
-
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 código de cadeia ou por 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. -
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.
-
history
- 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.
-
getAccountsByUser
- Esse método retorna uma lista de todos os IDs de conta de um usuário especificado.
-
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 conta especificada. Esse método só pode ser chamado quando conectado à rede remota do Oracle Blockchain Platform.
-
getSubTransactionHistory
- Este método retorna uma matriz dos detalhes do histórico de transações de uma transação especificada.
-
getSubTransactionHistoryWithFilters
- Este método retorna uma matriz dos 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 retorna uma matriz dos detalhes do histórico de transações de uma conta especificada.
Gerenciamento de Comportamento de Token
Token
do módulo ../lib/token
.
import { Token } from '../lib/token';
Métodos para Gerenciamento de Comportamento de Token - Comportamento Mintable
-
mint
- Este método cunha uma quantidade de 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. A quantidade deve estar dentro dos valores decimais especificados pelo parâmetro
decimal
do comportamentodivisible
no arquivo de especificação. -
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. 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
- Esse método transfere tokens do chamador de transação para a conta
to_account_id
. O chamador desse método deve ter uma conta e a quantidade deve estar dentro dos valores decimais especificados pelo parâmetrodecimal
do comportamentodivisible
no arquivo de especificação. -
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
para o ID da operação especificado. A retenção só pode ser concluída pelo notário. -
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
AccountOwner
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.
-
getOnHoldDetailsWithOperationId
- Este método retorna os detalhes da transação em retenção para um ID e token de operação especificados.
-
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.
Métodos para Gerenciamento de Comportamento de Token - Comportamento Queimável