Pular para o conteúdo

OfferCreate

[Fonte]

{
"TransactionType": "OfferCreate",
"Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
"Fee": "12",
"Flags": 0,
"LastLedgerSequence": 7108682,
"Sequence": 8,
"TakerGets": "6000000",
"TakerPays": {
"currency": "GKO",
"issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc",
"value": "2"
}
}
CampoTipo JSON[Tipo Interno][]Descrição
ExpirationNumberUInt32(Opcional) Momento após o qual a Oferta deixa de estar ativa, em [segundos desde a Época Ripple][].
OfferSequenceNumberUInt32(Opcional) Uma Oferta a ser excluída primeiro, especificada da mesma forma que OfferCancel.
OfferIDStringHash256(Opcional) O ID do objeto de Oferta no ledger a ser cancelado, como uma string hexadecimal de 64 caracteres.
TakerGetsValor em MoedaAmountO valor e o tipo de moeda sendo vendida.
TakerPaysValor em MoedaAmountO valor e o tipo de moeda sendo comprada.

Transações do tipo OfferCreate suportam valores adicionais no campo Flags, conforme abaixo:

Nome da FlagValor HexValor DecimalDescrição
tfPassive0x0001000065536Se habilitado, a Oferta não consome Ofertas que correspondam exatamente a ela e, em vez disso, torna-se um objeto Oferta no ledger. Ainda assim, consome Ofertas que a cruzem.
tfImmediateOrCancel0x00020000131072Trata a Oferta como uma ordem Immediate or Cancel. A Oferta nunca cria um [objeto Oferta][] no ledger: ela apenas negocia o máximo possível consumindo Ofertas existentes no momento em que a transação é processada. Se nenhuma Oferta corresponder, ela é executada “com sucesso” sem negociar nada. Nesse caso, a transação ainda usa o código de resultado tesSUCCESS.
tfFillOrKill0x00040000262144Trata a oferta como uma ordem Fill or Kill. A Oferta nunca cria um [objeto Oferta][] no ledger e é cancelada se não puder ser totalmente preenchida no momento da execução. Por padrão, isso significa que o proprietário deve receber o valor total de TakerPays; se a flag tfSell estiver habilitada, o proprietário deve ser capaz de gastar todo o valor de TakerGets.
tfSell0x00080000524288Troca todo o valor de TakerGets, mesmo que isso implique obter mais do que o valor de TakerPays em troca.
Código de ErroDescrição
temINVALID_FLAGOcorre se a transação especifica tanto tfImmediateOrCancel quanto tfFillOrKill.
tecEXPIREDOcorre se a transação especifica um tempo de Expiration que já passou.
tecKILLEDOcorre se a transação especifica tfFillOrKill e o valor total não pode ser preenchido. Se a [emenda ImmediateOfferKilled][] estiver habilitada, este código de resultado também ocorre quando a transação especifica tfImmediateOrCancel e é executada sem mover fundos (anteriormente, isso retornaria tesSUCCESS).
temBAD_EXPIRATIONOcorre se a transação contém um campo Expiration com formato inválido.
temBAD_SEQUENCEOcorre se a transação contém um OfferSequence com formato inválido ou maior que o próprio número de Sequence da transação.
temBAD_OFFEROcorre se a Oferta tenta trocar XAH por XAH ou tenta negociar um valor inválido ou negativo de um token.
temREDUNDANTOcorre se a transação especifica um token pelo mesmo token (mesmo emissor e código de moeda).
temBAD_CURRENCYOcorre se a transação especifica um token com o código de moeda “XAH”.
temBAD_ISSUEROcorre se a transação especifica um token com um valor de issuer inválido.
tecNO_ISSUEROcorre se a transação especifica um token cujo valor de issuer não é uma conta com fundos no ledger.
tecFROZENOcorre se a transação envolve um token em uma linha de confiança congelada (incluindo congelamentos locais e globais).
tecUNFUNDED_OFFEROcorre se o proprietário não possui um valor positivo da moeda TakerGets. (Exceção: se TakerGets especifica um token que o proprietário emite, a transação pode ter sucesso.)
tecNO_LINEOcorre se a transação envolve um token cujo emissor usa Linhas de Confiança Autorizadas e a linha de confiança necessária não existe.
tecNO_AUTHOcorre se a transação envolve um token cujo emissor usa Linhas de Confiança Autorizadas e a linha de confiança que receberia os tokens existe, mas não foi autorizada.
tecINSUF_RESERVE_OFFEROcorre se o proprietário não tem XAH suficiente para atender ao requisito de reserva para adicionar um novo objeto Oferta ao ledger, e a transação não converteu nenhuma moeda. (Se a transação negociou qualquer valor com sucesso, ela é concluída com o código de resultado tesSUCCESS, mas não cria um objeto Oferta no ledger para o restante.)
tecDIR_FULLOcorre se o proprietário possui muitos itens no ledger ou o livro de ordens já contém muitas Ofertas na mesma taxa de câmbio.