Pular para o conteúdo

Offer

[Fonte]

A entrada de ledger Offer descreve uma Oferta para trocar moedas na exchange descentralizada do Xahau. (Em finanças, isso é mais tradicionalmente conhecido como uma ordem.) Uma [transação OfferCreate][] cria uma entrada Offer no ledger somente quando a Oferta não pode ser totalmente executada imediatamente ao consumir outras Ofertas já no ledger.

Uma Oferta pode tornar-se sem fundos por meio de outras atividades na rede enquanto permanece no ledger. Ao processar transações, a rede elimina automaticamente quaisquer Ofertas sem fundos que essas transações encontrem. (Caso contrário, Ofertas sem fundos permanecem porque apenas transações podem alterar o estado do ledger.)

{
"Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt",
"BookDirectory": "ACC27DE91DBA86FC509069EAF4BC511D73128B780F2E54BF5E07A369E2446000",
"BookNode": "0000000000000000",
"Flags": 131072,
"LedgerEntryType": "Offer",
"OwnerNode": "0000000000000000",
"PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF",
"PreviousTxnLgrSeq": 14524914,
"Sequence": 866,
"TakerGets": {
"currency": "XAG",
"issuer": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH",
"value": "37"
},
"TakerPays": "79550000000",
"index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797"
}

Um objeto Offer tem os seguintes campos:

NomeTipo JSON[Tipo Interno][]Obrigatório?Descrição
AccountStringAccountIDSimO endereço da conta que possui esta Oferta.
BookDirectoryStringHash256SimO ID do Diretório de Ofertas que aponta para esta Oferta.
BookNodeStringUInt64SimUma dica indicando qual página do diretório de ofertas aponta para este objeto, caso o diretório consista em múltiplas páginas.
ExpirationNumberUInt32NãoIndica o tempo após o qual esta Oferta é considerada sem fundos. Consulte [Especificando Tempo][] para detalhes.
FlagsNumberUInt32SimUm mapa de bits de flags booleanos habilitados para esta oferta.
LedgerEntryTypeStringUInt16SimO valor 0x006F, mapeado para a string Offer, indica que este objeto descreve uma Oferta.
OwnerNodeStringUInt64SimUma dica indicando qual página do diretório do proprietário aponta para este objeto, caso o diretório consista em múltiplas páginas. Nota: A oferta não contém um link direto para o diretório do proprietário que a contém, pois esse valor pode ser derivado de Account.
PreviousTxnIDStringHash256SimO hash identificador da transação que mais recentemente modificou este objeto.
PreviousTxnLgrSeqNumberUInt32SimO [índice do ledger][Índice de Ledger] que contém a transação que mais recentemente modificou este objeto.
SequenceNumberUInt32SimO valor Sequence da transação OfferCreate que criou este objeto Offer. Usado em combinação com o Account para identificar esta Oferta.
TakerPaysString ou ObjectAmountSimO valor restante e tipo de moeda solicitado pelo criador da Oferta.
TakerGetsString ou ObjectAmountSimO valor restante e tipo de moeda fornecido pelo criador da Oferta.

Existem várias opções que podem ser habilitadas ou desabilitadas quando uma [transação OfferCreate][] cria um objeto de oferta. No ledger, os flags são representados como valores binários que podem ser combinados com operações bitwise-or. Os valores de bits para os flags no ledger são diferentes dos valores usados para habilitar ou desabilitar esses flags em uma transação. Os flags de ledger têm nomes que começam com lsf.

Objetos Offer podem ter os seguintes valores de flag:

Nome do FlagValor HexValor DecimalFlag OfferCreate CorrespondenteDescrição
lsfPassive0x0001000065536tfPassiveO objeto foi colocado como uma Oferta passiva. Isso não tem efeito sobre o objeto no ledger.
lsfSell0x00020000131072tfSellO objeto foi colocado como uma Oferta de venda. Isso não tem efeito sobre o objeto no ledger (porque tfSell só importa se você obtiver uma taxa melhor do que a solicitada, o que não pode acontecer depois que o objeto entra no ledger).

O ID de um objeto Offer é o SHA-512Half dos seguintes valores, concatenados em ordem:

  • A chave de espaço Offer (0x006F)

  • O AccountID da conta que está fazendo a Oferta

  • O número de Sequência da [transação OfferCreate][] que criou a Oferta.

    Se a transação OfferCreate usou um Ticket, use o valor TicketSequence em vez disso.