Pular para o conteúdo

TrustSet

[Fonte]

{
"TransactionType": "TrustSet",
"Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
"Fee": "12",
"Flags": 262144,
"LastLedgerSequence": 8007750,
"LimitAmount": {
"currency": "USD",
"issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc",
"value": "100"
},
"Sequence": 12
}
CampoTipo JSON[Tipo Interno][]Descrição
LimitAmountObjectAmountObjeto que define a linha de confiança a criar ou modificar, no formato de um [Valor em Moeda][].
LimitAmount.currencyString(Amount.currency)A moeda à qual esta linha de confiança se aplica, como um código de moeda ISO 4217 de três letras ou um valor hexadecimal de 160 bits. “XAH” é inválido.
LimitAmount.valueString(Amount.value)Representação decimal entre aspas do limite a definir nesta linha de confiança.
LimitAmount.issuerString(Amount.issuer)O endereço da conta à qual estender confiança.
QualityInNumberUInt32(Opcional) Avalia os saldos de entrada nesta linha de confiança na proporção deste número por 1.000.000.000 unidades. Um valor de 0 equivale a tratar os saldos pelo valor nominal.
QualityOutNumberUInt32(Opcional) Avalia os saldos de saída nesta linha de confiança na proporção deste número por 1.000.000.000 unidades. Um valor de 0 equivale a tratar os saldos pelo valor nominal.

Se a conta especificada em LimitAmount.issuer estiver bloqueando linhas de confiança de entrada, a transação falha com o código de resultado tecNO_PERMISSION. (Requer a [emenda DisallowIncoming][] :not_enabled:)

Transações do tipo TrustSet suportam valores adicionais no campo Flags, como segue:

Nome da FlagValor HexValor DecimalDescrição
tfSetfAuth0x0001000065536Autoriza a outra parte a manter moeda emitida por esta conta. (Sem efeito a menos que use o flag asfRequireAuth de AccountSet.) Não pode ser desfeito.
tfSetNoRipple0x00020000131072Habilita o flag No Ripple, que bloqueia o rippling entre duas linhas de confiança da mesma moeda se este flag estiver habilitado em ambas.
tfClearNoRipple0x00040000262144Desabilita o flag No Ripple, permitindo rippling nesta linha de confiança.
tfSetFreeze0x001000001048576Congela a linha de confiança.
tfClearFreeze0x002000002097152Descongela a linha de confiança.
tfSetDeepFreeze0x004000004194304Congela profundamente a linha de confiança. (Requer a [emenda DeepFreeze][])
tfClearDeepFreeze0x008000008388608Remove o congelamento profundo da linha de confiança. (Requer a [emenda DeepFreeze][])

Se uma transação tentar habilitar No Ripple mas não puder, ela falha com o código de resultado tecNO_PERMISSION. Antes da [emenda fix1578][] ser habilitada, tal transação resultaria em tesSUCCESS (realizando quaisquer outras alterações possíveis) em vez disso.

O flag Auth de uma linha de confiança não determina se a linha de confiança conta para o requisito de reserva de XAH do proprietário. No entanto, um flag Auth habilitado impede que a linha de confiança esteja em seu estado padrão. Uma linha de confiança autorizada nunca pode ser excluída. Um emissor pode pré-autorizar uma linha de confiança com o flag tfSetfAuth apenas, mesmo que o limite e o saldo da linha de confiança sejam 0.

Com a [emenda DeepFreeze][] habilitada, as seguintes regras se aplicam às operações de congelamento profundo:

Uma transação TrustSet que tenta definir tfSetDeepFreeze é bem-sucedida se e somente se uma das seguintes condições for verdadeira:

  • O titular já está congelado, indicado por lsfLowFreeze/lsfHighFreeze na linha de confiança.
  • tfSetFreeze também está definido na mesma transação TrustSet.

Se a linha de confiança estiver profundamente congelada pelo emissor (indicado por lsfLowDeepFreeze/lsfHighDeepFreeze), a transação TrustSet falha se o emissor definir o flag tfClearFreeze sem também definir o flag tfClearDeepFreeze. Em outras palavras, o emissor não pode remover o congelamento regular de uma linha de confiança sem também remover o congelamento profundo.

Consulte Conta Alta vs. Conta Baixa para informações sobre como as contas baixa e alta são determinadas.