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 Admindo chaincode. Esse método só pode ser chamado por umToken Admindo chaincode. -
RemoveTokenAdmin - Este método remove um usuário como um
Token Admindo chaincode. Esse método só pode ser chamado por umToken Admindo chaincode. -
IsTokenAdmin - Este método retornará o valor Booliano
truese o chamador da função for umToken Admin, caso contrário, retornaráfalse. UmToken AdminouOrg Adminpode 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 Admindo chaincode. Esse método só pode ser chamado peloToken AdminouOrg Admindo chaincode. -
AddOrgAdmin - Esse método adiciona um usuário como um
Org Adminda organização. Esse método só pode ser chamado por umaToken Admindo chaincode ou por umaOrg Adminda organização especificada. -
RemoveOrgAdmin - Este método remove um usuário como um
Org Adminde uma organização. Esse método só pode ser chamado por umaToken Admindo chaincode ou por umaOrg Adminda organização especificada. -
GetOrgAdmins - Esse método retorna uma lista de todos os usuários que são um
Org Adminde uma organização. Esse método só pode ser chamado por umaToken Admindo chaincode ou por qualquerOrg Admin.
-
AddTokenAdmin - Este método adiciona um usuário como um
Token Admindo chaincode. Esse método só pode ser chamado por umToken Admindo chaincode. -
RemoveTokenAdmin - Este método remove um usuário como um
Token Admindo chaincode. Esse método só pode ser chamado por umToken Admindo chaincode. -
IsTokenAdmin - Este método retornará o valor Booliano
truese 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 AdminouOrg Auditor. -
GetAllTokenAdmins - Este método retorna uma lista de todos os usuários que são um
Token Admindo chaincode. Esse método só pode ser chamado por umaToken AdminouToken Auditor. -
AddOrgAdmin - Esse método adiciona um usuário como um
Org Adminda organização. Esse método só pode ser chamado por umaToken Admindo chaincode ou por umaOrg Adminda organização especificada. -
RemoveOrgAdmin - Este método remove um usuário como um
Org Adminde uma organização. Esse método só pode ser chamado por umaToken Admindo chaincode ou por umaOrg Adminda organização especificada. -
GetOrgAdmins - Esse método retorna uma lista de todos os usuários que são um
Org Adminde uma organização. Esse método só pode ser chamado por umaToken Admin,Token Auditor,Org AdminouOrg Auditor. -
AddTokenAuditor - Este método adiciona um usuário como um
Token Auditordo chaincode. Esse método só pode ser chamado por umToken Admindo chaincode. -
RemoveTokenAuditor - Este método remove um usuário como um
Token Auditordo chaincode. Esse método só pode ser chamado por umToken Admindo chaincode. -
GetTokenAuditors - Este método retorna todos os
Token Auditorsdo chaincode. Esse método só pode ser chamado por umaToken AdminouToken Auditordo chaincode. -
AddOrgAuditor - Este método adiciona um usuário como um
Org Auditordo chaincode. Esse método só pode ser chamado por umaToken AdminouOrg Admindo chaincode. -
RemoveOrgAuditor - Este método remove um usuário como um
Org Auditordo chaincode. Esse método só pode ser chamado por umaToken AdminouOrg Admindo chaincode. -
GetOrgAuditors - Este método retorna todos os
Org Auditorsdo chaincode. Esse método só pode ser chamado por umaToken Admin,Token Auditor,Org AdminouOrg 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_ideorg_idno parâmetroadminListobrigató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 Admindo 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_desce as propriedades personalizadas podem ser atualizadas. Esse método só pode ser chamado por umToken Admindo chaincode. -
GetTokenDecimals - Este método retorna o número de casas decimais que foram configuradas para um token fracionário. Se o comportamento
divisiblenão tiver sido especificado para o token, o valor padrão será 0. Esse método só pode ser chamado por umaToken AdminouOrg Admindo 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 AdminouOrg Admindo 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 AdminouOrg Admindo 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 AdminouOrg Admindo 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_ideorg_idno parâmetroadminListobrigató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 Admindo 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_desce as propriedades personalizadas podem ser atualizadas. Esse método só pode ser chamado por umToken Admindo chaincode. -
GetTokenDecimals - Este método retorna o número de casas decimais que foram configuradas para um token fracionário. Se o comportamento
divisiblenã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 AdminouOrg 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 AdminouOrg 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 AdminouOrg 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 AdminouOrg 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 AdminouOrg 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 Admindo chaincode ou umOrg Adminda 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 Admindo código de cadeia ou por umOrg Adminda 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 Admindo chaincode, umaOrg Adminda organização especificada ou aAccountOwnerda 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 Admindo chaincode ou peloAccountOwnerda 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 Admindo chaincode, umaOrg Adminda organização especificada ou aAccountOwnerda conta. -
GetAllAccounts - Esse método retorna uma lista de todas as contas. Esse método só pode ser chamado por um
Token Admindo 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_ideuser_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 Admindo chaincode, umaOrg Adminda organização especificada ou aAccountOwnerda 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 Admindo chaincode ou por umaOrg Adminda 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 Admindo chaincode ou umOrg Adminda 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 Admindo código de cadeia ou por umOrg Adminda 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 AdminouToken Auditor, umaOrg AdminouOrg Auditorda organização especificada ou aAccountOwnerda 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 Admindo chaincode ou peloAccountOwnerda 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 AdminouToken Auditor, umaOrg AdminouOrg Auditorda 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 AdminouToken Auditordo 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_ideuser_id) para uma conta especificada. Esse método só pode ser chamado por umaToken AdminouToken Auditor, ou por umaOrg AdminouOrg Auditorda 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 AdminouToken Auditor, umaOrg AdminouOrg Auditorda 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 AdminouToken Auditor, ou por umaOrg AdminouOrg Auditorda 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 Admindo chaincode ou por umOrg Adminda 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 Admindo chaincode ou por umOrg Adminda 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 Admindo 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 Admindo chaincode, umaOrg Adminda organização especificada ou pelaAccount Ownerespecificada 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 Admindo chaincode ou pelaAccount Ownerespecificada 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 Admindo chaincode, por umOrg Adminda organização especificada ou peloAccountOwnerda 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 Admindo chaincode ou por umaOrg Adminda 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 Admindo chaincode ou por umaOrg Adminda 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 Admindo chaincode ou por umOrg Adminda 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 Admindo chaincode ou por umOrg Adminda 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 AdminouToken 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 AdminouToken Auditor, umaOrg AdminouOrg Auditorda organização especificada ou pelaAccount Ownerespecificada 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 AdminouToken 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 AdminouToken Auditor, umOrg AdminouOrg Auditorda 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 AdminouOrg 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 AdminouToken Auditor, ou por umaOrg AdminouOrg Auditorda 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 Admindo chaincode, por umOrg Adminda organização especificada ou peloAccountOwnerda 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 Admindo chaincode, por umOrg Adminda organização especificada ou peloAccountOwnerda 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 AdminouToken Auditor, umaOrg AdminouOrg Auditorda 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 AdminouToken Auditor, umaOrg AdminouOrg Auditorda 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 Auditorou peloAccountOwnerque 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 AdminouToken Auditor, umOrg AdminouOrg Auditorda 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_quantitydo comportamentomintableno arquivo de especificação. Se a propriedademax_mint_quantitynão for especificada, um número ilimitado de tokens poderá ser cunhado. A quantidade deve estar dentro dos valores decimais especificados pelo parâmetrodecimaldo comportamentodivisibleno arquivo de especificação. Esse método só pode ser chamado peloAccountOwnerda 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 AdminouOrg Admindo 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 AdminouOrg Admindo 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 AdminouOrg 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 AdminouOrg 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
decimaldo comportamentodivisibleno arquivo de especificação. Esse método só pode ser chamado peloAccountOwnerda 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âmetrodecimaldo comportamentodivisibleno chamador file.The de especificação deste método deve ter uma conta já criada. Esse método só pode ser chamado peloAccountOwnerda 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âmetrodecimaldo comportamentodivisibleno chamador file.The de especificação deste método deve ter uma conta já criada. Esse método só pode ser chamado peloAccountOwnerda 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 peloAccountOwnerda 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
quantityfor 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 IDAccountOwnercom 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 Ownercom a funçãonotarydentro 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 Admindo chaincode, umOrg Adminda organização especificada ou peloAccount Ownerda 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
quantityfor 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 IDAccountOwnercom 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 Ownercom a funçãonotarydentro 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 AdminouToken Auditor, umOrg AdminouOrg Auditorda 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 Auditorou 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 Auditorou 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
decimaldo comportamentodivisibleno arquivo de especificação. Esse método pode ser chamado peloAccount Ownerda 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_balancepara 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 Auditorou 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 Admindo código de cadeia do token. -
RemoveAdmin - Esse método remove um usuário como um
Token Admindo chaincode do token. -
IsUserTokenAdmin - Este método retornará o valor Booliano
truese 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 Admindo chaincode do token. -
GetAllAdminUsers - Esse método retorna uma lista de todos os usuários que são um
Token Admindo 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 Adminda organização. -
RemoveOrgAdmin - Este método remove um usuário como um
Org Adminde uma organização. -
GetOrgAdmins - Esse método retorna uma lista de todos os usuários que são um
Org Adminde uma organização.
-
AddAdmin - Esse método adiciona um usuário como
Token Admindo código de cadeia do token. -
RemoveAdmin - Esse método remove um usuário como um
Token Admindo chaincode do token. -
IsUserTokenAdmin - Este método retornará o valor Booliano
truese 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 Admindo chaincode do token. -
GetAllAdminUsers - Esse método retorna uma lista de todos os usuários que são um
Token Admindo 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 Adminda organização. -
RemoveOrgAdmin - Este método remove um usuário como um
Org Adminde uma organização. -
GetOrgAdmins - Esse método retorna uma lista de todos os usuários que são um
Org Adminde uma organização. -
AddTokenAuditor - Este método adiciona um usuário como um
Token Auditordo chaincode. -
RemoveTokenAuditor - Este método remove um usuário como um
Token Auditordo chaincode. -
GetTokenAuditors - Este método retorna todos os
Token Auditorsdo chaincode. -
AddOrgAuditor - Este método adiciona um usuário como um
Org Auditordo chaincode. -
RemoveOrgAuditor - Este método remove um usuário como um
Org Auditordo chaincode. -
GetOrgAuditors - Este método retorna todos os
Org Auditorsdo 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_desce suas propriedades personalizadas. -
GetTokenDecimals - Este método retorna o número de casas decimais disponíveis para um token fracionário. Se o comportamento
divisiblenã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 Admindo 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
getStateByRangeinternamente. 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 Admindo chaincode. -
AssociateToken - Este método associa um token fungível a uma conta. Esse método só pode ser chamado por um
Token Admindo 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_quantitydo comportamentomintableno arquivo de especificação. Se a propriedademax_mint_quantitynão for especificada, um número ilimitado de tokens poderá ser cunhado. A quantidade deve estar dentro dos valores decimais especificados pelo parâmetrodecimaldo comportamentodivisibleno arquivo de especificação. Esse método só pode ser chamado peloAccountOwnerda 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_quantitynã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
decimaldo comportamentodivisibleno arquivo de especificação. Esse método só pode ser chamado peloAccountOwnerda 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
quantityfor 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 IDAccountOwnercom 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 Ownercom a funçãonotarydentro 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