AccountSet
[Fonte]
Exemplo
Seção intitulada “Exemplo”{ "TransactionType": "AccountSet", "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Fee": "12", "Sequence": 5, "Domain": "6578616D706C652E636F6D", "SetFlag": 5, "MessageKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", "HookStateScale": 10}| Campo | Tipo JSON | [Tipo Interno][] | Descrição |
|---|---|---|---|
ClearFlag | Number | UInt32 | (Opcional) Identificador único de uma flag a ser desabilitada para esta conta. |
Domain | String | Blob | (Opcional) O domínio que possui esta conta, como uma string hexadecimal representando o ASCII do domínio em letras minúsculas. Não pode ter mais de 256 bytes. |
EmailHash | String | Hash128 | (Opcional) Um valor arbitrário de 128 bits. Convencionalmente, os clientes tratam isso como o hash md5 de um endereço de e-mail para exibir uma imagem Gravatar. |
MessageKey | String | Blob | (Opcional) Chave pública para envio de mensagens criptografadas a esta conta. Para definir a chave, ela deve ter exatamente 33 bytes, com o primeiro byte indicando o tipo: 0x02 ou 0x03 para chaves secp256k1, 0xED para chaves Ed25519. Para remover a chave, use um valor vazio. |
NFTokenMinter | String | Blob | (Opcional) Outra conta autorizada a cunhar NFTokens em seu nome. (Adicionado pela emenda [NonFungibleTokensV1_1][].) |
SetFlag | Number | UInt32 | (Opcional) Flag inteira a ser habilitada para esta conta. |
TransferRate | Number | UInt32 | (Opcional) A taxa cobrada quando usuários transferem tokens desta conta, representada em bilionésimos de uma unidade. Não pode ser maior que 2000000000 nem menor que 1000000000, exceto pelo caso especial 0 que significa sem taxa. |
TickSize | Number | UInt8 | (Opcional) Tamanho do tick para ofertas envolvendo moeda emitida por este endereço. As taxas de câmbio dessas ofertas são arredondadas para este número de dígitos significativos. Valores válidos: 3 a 15 inclusive, ou 0 para desabilitar. (Adicionado pela emenda [TickSize][]) |
WalletLocator | String | Hash256 | (Opcional) Um valor arbitrário de 256 bits. Se especificado, o valor é armazenado como parte da conta, mas não possui significado ou requisitos inerentes. |
WalletSize | Number | UInt32 | (Opcional) Não utilizado. Este campo é válido em transações AccountSet, mas não tem efeito. |
HookStateScale | Number | UInt16 | (Opcional) Fator de escala para determinar quando entradas de estado do Hook se tornam obsoletas. Valores válidos: 1 a 16 inclusive. (Adicionado pela emenda [ExtendedHookState][].) |
Se nenhuma dessas opções for fornecida, a transação AccountSet não tem efeito (além de destruir o custo da transação). Consulte Cancelar ou Ignorar uma Transação para mais detalhes.
Domínio
Seção intitulada “Domínio”O campo Domain é representado como a string hexadecimal do ASCII em letras minúsculas do domínio. Por exemplo, o domínio example.com seria representado como "6578616D706C652E636F6D".
Para remover o campo Domain de uma conta, envie um AccountSet com o Domain definido como uma string vazia.
Você pode colocar qualquer domínio no campo Domain da sua conta. Para provar que uma conta e um domínio pertencem à mesma pessoa ou empresa, você precisa de um “link bidirecional”:
- As contas que você possui devem ter um domínio seu no campo
Domain. - Nesse domínio, hospede um arquivo xahau.toml listando as contas que você possui e, opcionalmente, outras informações sobre como você usa o Xahau.
Flags do AccountSet
Seção intitulada “Flags do AccountSet”Existem várias opções que podem ser habilitadas ou desabilitadas para uma conta. As opções de conta são representadas por diferentes tipos de flags conforme a situação:
- O tipo de transação
AccountSetpossui várias “AccountSet Flags” (prefixadas comasf) que podem habilitar uma opção quando passadas como parâmetroSetFlag, ou desabilitar uma opção quando passadas como parâmetroClearFlag. Opções mais recentes possuem apenas esse estilo de flag. Você pode habilitar até uma flagasfpor transação e desabilitar até uma flagasfpor transação. - O tipo de transação
AccountSetpossui várias flags de transação (prefixadas comtf) que podem ser usadas para habilitar ou desabilitar opções específicas de conta quando passadas no parâmetroFlags. Você pode habilitar e desabilitar uma combinação de configurações em uma única transação usando múltiplas flagstf, mas nem todas as configurações possuem flagstf. - O tipo de objeto de ledger
AccountRootpossui várias flags de estado do ledger (prefixadas comlsf) que representam o estado de opções específicas da conta em um ledger. Essas configurações se aplicam até que uma transação as altere.
Para habilitar ou desabilitar flags de conta, use os parâmetros SetFlag e ClearFlag de uma transação AccountSet. As flags do AccountSet têm nomes que começam com asf.
Todas as flags são desabilitadas por padrão.
As flags do AccountSet disponíveis são:
| Nome da Flag | Valor Decimal | Flag de Ledger Correspondente | Descrição |
|---|---|---|---|
asfAccountTxnID | 5 | (Nenhuma) | Rastreia o ID da transação mais recente desta conta. Necessário para AccountTxnID. |
asfAllowTrustLineClawback | 17 | lsfAllowTrustLineClawback | Permite que uma conta recupere tokens que emitiu. Essa flag só pode ser habilitada se o diretório de proprietário da conta estiver vazio (sem linhas de confiança, ofertas, escrows, canais de pagamento, cheques ou listas de signatários). Uma vez definida, não pode ser desfeita. |
asfAuthorizedNFTokenMinter | 10 | (Nenhuma) | Habilita outra conta a cunhar tokens não fungíveis (NFTokens) em nome desta conta. Especifique a conta autorizada no campo NFTokenMinter do objeto AccountRoot. Para remover um cunhador autorizado, habilite esta flag e omita o campo NFTokenMinter. (Adicionado pela emenda [NonFungibleTokensV1_1][].) |
asfDefaultRipple | 8 | lsfDefaultRipple | Habilita o rippling nas linhas de confiança desta conta por padrão. |
asfDepositAuth | 9 | lsfDepositAuth | Habilita a Autorização de Depósito nesta conta. (Adicionado pela emenda [DepositAuth][].) |
asfDisableMaster | 4 | lsfDisableMaster | Impede o uso do par de chaves mestre. Só pode ser habilitado se a conta tiver configurado outra forma de assinar transações, como uma Chave Regular ou uma Lista de Signatários. |
asfDisallowIncomingCheck | 13 | lsfDisallowIncomingCheck | Bloqueia Cheques recebidos. Adicionado pela emenda [DisallowIncoming][]. |
asfDisallowIncomingNFTokenOffer | 12 | lsfDisallowIncomingNFTokenOffer | Bloqueia NFTokenOffers recebidas. Adicionado pela emenda [DisallowIncoming][]. |
asfDisallowIncomingPayChan | 14 | lsfDisallowIncomingPayChan | Bloqueia Canais de Pagamento recebidos. Adicionado pela emenda [DisallowIncoming][]. |
asfDisallowIncomingTrustline | 15 | lsfDisallowIncomingTrustline | Bloqueia linhas de confiança recebidas. Adicionado pela emenda [DisallowIncoming][]. |
asfDisallowIncomingRemit | 16 | lsfDisallowIncomingRemit | Bloqueia transações Remit recebidas. Adicionado pela emenda Remit. |
asfDisallowXRP | 3 | lsfDisallowXRP | XAH não deve ser enviado para esta conta. (Aviso; não é aplicado pelo protocolo Xahau.) |
asfGlobalFreeze | 7 | lsfGlobalFreeze | Congela todos os ativos emitidos por esta conta. |
asfNoFreeze | 6 | lsfNoFreeze | Renuncia permanentemente à capacidade de congelar linhas de confiança individuais ou desabilitar o Congelamento Global. Esta flag nunca pode ser desabilitada após ser habilitada. |
asfRequireAuth | 2 | lsfRequireAuth | Exige autorização para que usuários mantenham saldos emitidos por este endereço. Só pode ser habilitado se o endereço não tiver linhas de confiança conectadas a ele. |
asfRequireDest | 1 | lsfRequireDestTag | Exige uma tag de destino para enviar transações a esta conta. |
asfTshCollect | 11 | lsfTshCollect | O TSH paga pela execução de sua própria Cadeia de Hooks. Adicionado pela emenda [Hooks][]. |
Para habilitar as flags asfDisableMaster ou asfNoFreeze, você deve autorizar a transação assinando-a com o par de chaves mestre. Não é possível usar um par de chaves regular ou uma assinatura múltipla. Você pode desabilitar asfDisableMaster (ou seja, reabilitar o par de chaves mestre) usando um par de chaves regular ou assinatura múltipla.
As seguintes flags de transação (tf flags), específicas ao tipo de transação AccountSet, servem ao mesmo propósito. Por limitação de espaço, algumas configurações não possuem flags tf associadas e novas flags tf não estão sendo adicionadas ao tipo de transação AccountSet. Você pode usar uma combinação de flags tf e asf para habilitar múltiplas configurações em uma única transação.
| Nome da Flag | Valor Hex | Valor Decimal | Substituída pela Flag AccountSet |
|---|---|---|---|
tfRequireDestTag | 0x00010000 | 65536 | asfRequireDest (SetFlag) |
tfOptionalDestTag | 0x00020000 | 131072 | asfRequireDest (ClearFlag) |
tfRequireAuth | 0x00040000 | 262144 | asfRequireAuth (SetFlag) |
tfOptionalAuth | 0x00080000 | 524288 | asfRequireAuth (ClearFlag) |
tfDisallowXRP | 0x00100000 | 1048576 | asfDisallowXRP (SetFlag) |
tfAllowXRP | 0x00200000 | 2097152 | asfDisallowXRP (ClearFlag) |
Atenção: Os valores numéricos das flags tf e asf nas transações não correspondem aos valores que elas definem nas contas “em repouso” no ledger. Para ler as flags de uma conta no ledger, consulte as flags do AccountRoot.
Bloqueio de Transações Recebidas
Seção intitulada “Bloqueio de Transações Recebidas”Transações recebidas com finalidade pouco clara podem ser um inconveniente para instituições financeiras, que precisariam reconhecer quando um cliente cometeu um erro e, potencialmente, reembolsar contas ou ajustar saldos. As flags asfRequireDest e asfDisallowXRP têm como objetivo proteger os usuários de enviar fundos acidentalmente de forma ambígua quanto ao motivo do envio.
Por exemplo, uma tag de destino é normalmente usada para identificar qual saldo hospedado deve ser creditado quando uma instituição financeira recebe um pagamento. Se a tag de destino for omitida, pode não ser claro qual conta deve ser creditada, criando a necessidade de reembolsos, entre outros problemas. Ao usar a tag asfRequireDest, você garante que todo pagamento recebido tenha uma tag de destino, dificultando que outros lhe enviem um pagamento ambíguo por engano.
Você pode se proteger contra pagamentos recebidos indesejados de moedas não-XAH simplesmente não criando linhas de confiança nessas moedas. Como o XAH não exige confiança, a flag asfDisallowXRP é usada para desencorajar usuários de enviar XAH para uma conta. No entanto, essa flag não é aplicada pelo protocolo Xahau, pois poderia tornar contas inutilizáveis caso fiquem sem XAH. Em vez disso, as aplicações clientes devem bloquear ou desencorajar pagamentos em XAH para contas com a flag asfDisallowXRP habilitada.
Se você quiser bloquear todos os pagamentos recebidos, pode habilitar a Autorização de Depósito. Isso impede que qualquer transação envie dinheiro para você, inclusive XAH, a menos que sua conta esteja abaixo do requisito de reserva.
Se a emenda [DisallowIncoming][] :not_enabled: estiver habilitada, você também terá a opção de bloquear todos os Cheques, NFTokenOffers, Canais de Pagamento e linhas de confiança recebidos. Geralmente é inofensivo receber esses objetos, mas eles podem impedir que você exclua sua conta e pode ser confuso ter objetos inesperados misturados à lista de objetos que você criou. Para bloquear objetos recebidos, use uma ou mais das seguintes flags de conta:
asfDisallowIncomingCheck- para objetos CheckasfDisallowIncomingNFTOffer- para objetos NFTokenOfferasfDisallowIncomingPayChan- para objetos PayChannelasfDisallowIncomingTrustline- para objetos RippleState (linha de confiança)
Quando uma transação criaria uma dessas entradas no ledger, se a conta de destino tiver a flag correspondente habilitada, a transação falhará com o código de resultado tecNO_PERMISSION. Ao contrário da Autorização de Depósito, essas configurações não impedem que você receba pagamentos em geral. Além disso, habilitar essa configuração não impede que você crie esses tipos de objetos (a menos que o destino da sua transação também esteja usando a configuração, é claro).
TransferRate
Seção intitulada “TransferRate”O campo TransferRate especifica uma taxa a ser cobrada sempre que contrapartes transferem a moeda que você emite.
Nas APIs HTTP e WebSocket, a taxa de transferência é representada como um inteiro — o valor que deve ser enviado para que 1 bilhão de unidades chegue ao destino. Por exemplo, uma taxa de transferência de 20% é representada pelo valor 1200000000. O valor não pode ser menor que 1000000000. (Um valor menor indicaria que você está dando dinheiro para quem faz transações, o que é explorável.) Você pode especificar 0 como atalho para 1000000000, ou seja, sem taxa.
Consulte Taxas de Transferência para mais informações.