divvy-lib-orderbook
Version:
Convenient Orderbook class.
1,069 lines (1,014 loc) • 32.2 kB
JavaScript
/* eslint-disable max-len, no-param-reassign */
'use strict' // eslint-disable-line strict
const _ = require('lodash')
const addresses = require('./addresses')
const {XDVValue, IOUValue} = require('divvy-lib-value')
const binary = require('divvy-binary-codec')
module.exports.FIAT_BALANCE = '10'
module.exports.NATIVE_BALANCE = '55'
module.exports.NATIVE_BALANCE_PREVIOUS = '100'
module.exports.TAKER_GETS = '19.84580331'
module.exports.TAKER_GETS_FINAL = '18.84580331'
module.exports.TAKER_PAYS = '3878342440'
module.exports.TAKER_PAYS_FINAL = '3078342440'
module.exports.OTHER_TAKER_GETS = '4.9656112525'
module.exports.OTHER_TAKER_GETS_FINAL = '3.9656112525'
module.exports.OTHER_TAKER_PAYS = '972251352'
module.exports.OTHER_TAKER_PAYS_FINAL = '902251352'
module.exports.LEDGER_INDEX = '06AFB03237286C1566CD649CFD5388C2C1F5BEFC5C3302A1962682803A9946FA'
module.exports.OTHER_LEDGER_INDEX = 'D3338DA77BA23122FB5647B74B53636AB54BE246D4B21707C9D6887DEB334252'
module.exports.TRANSFER_RATE = '1.002000000'
module.exports.fiatOffers = function(options) {
options = options || {}
_.defaults(options, {
account_funds: '318.3643710638508',
other_account_funds: '235.0194163432668'
})
return [
{
Account: addresses.ACCOUNT,
BookDirectory: '4627DFFCFF8B5A265EDBD8AE8C14A52325DBFEDAF4F5C32E5D06F15E821839FB',
BookNode: '0000000000000000',
Flags: 0,
Expiration: options.expiration,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000001897',
PreviousTxnID: '11BA57676711A42C2FC2191EAEE98023B04627DFA84926B0C8E9D61A9CAF13AD',
PreviousTxnLgrSeq: 8265601,
Sequence: 531927,
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: module.exports.TAKER_GETS
},
taker_gets_funded: '100',
is_fully_funded: true,
TakerPays: module.exports.TAKER_PAYS,
index: module.exports.LEDGER_INDEX,
owner_funds: options.account_funds,
quality: '195423807.2109563'
},
{
Account: addresses.ACCOUNT,
BookDirectory: '4627DFFCFF8B5A265EDBD8AE8C14A52325DBFEDAF4F5C32E5D06F4C3362FE1D0',
BookNode: '0000000000000000',
Flags: 0,
Expiration: options.expiration,
LedgerEntryType: 'Offer',
OwnerNode: '00000000000063CC',
PreviousTxnID: 'CD77500EF28984BFC123E8A257C10E44FF486EA8FC43E1356C42BD6DB853A602',
PreviousTxnLgrSeq: 8265523,
Sequence: 1139002,
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '4.9656112525'
},
taker_gets_funded: '100',
is_fully_funded: true,
TakerPays: '972251352',
index: 'X2K98DB77BA23122FB5647B74B53636AB54BE246D4B21707C9D6887DEB334252',
owner_funds: options.account_funds,
quality: '195796912.5171664'
},
{
Account: addresses.OTHER_ACCOUNT,
BookDirectory: '4627DFFCFF8B5A265EDBD8AE8C14A52325DBFEDAF4F5C32E5D06F4C3362FE1D0',
BookNode: '0000000000000000',
Flags: 0,
Expiration: options.expiration,
LedgerEntryType: 'Offer',
OwnerNode: '00000000000063CC',
PreviousTxnID: 'CD77500EF28984BFC123E8A257C10E44FF486EA8FC43E1356C42BD6DB853A602',
PreviousTxnLgrSeq: 8265523,
Sequence: 1139002,
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: module.exports.OTHER_TAKER_GETS
},
taker_gets_funded: '100',
is_fully_funded: true,
TakerPays: module.exports.OTHER_TAKER_PAYS,
index: module.exports.OTHER_LEDGER_INDEX,
owner_funds: options.other_account_funds,
quality: '195796912.5171664'
}
]
}
module.exports.NATIVE_OFFERS = [
{
Account: addresses.ACCOUNT,
BookDirectory: 'DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4C124AF94ED1781B',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '00000000000063CA',
PreviousTxnID: '51C64E0B300E9C0E877BA3E79B4ED1DBD5FDDCE58FA1A8FDA5F8DDF139787A24',
PreviousTxnLgrSeq: 8265275,
Sequence: 1138918,
TakerGets: '50',
taker_gets_funded: '100',
is_fully_funded: true,
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '5'
},
index: 'DC003E09AD1306FBBD1957C955EE668E429CC85B0EC0EC17297F6676E6108DE7',
owner_funds: '162110617177',
quality: '0.000000005148984210454555'
},
{
Account: addresses.ACCOUNT,
BookDirectory: 'DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4C124B054BAD1D79',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000001896',
PreviousTxnID: '9B21C7A4B66DC1CD5FC9D85C821C4CAA8F80E437582BAD11E88A1E9E6C7AA59C',
PreviousTxnLgrSeq: 8265118,
Sequence: 531856,
TakerGets: '10',
taker_gets_funded: '100',
is_fully_funded: true,
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '20'
},
index: '7AC0458676A54E99FAA5ED0A56CD0CB814D3DEFE1C7874F0BB39875D60668E41',
owner_funds: '430527438338',
quality: '0.000000005149035697347961'
},
{
Account: addresses.OTHER_ACCOUNT,
BookDirectory: '4627DFFCFF8B5A265EDBD8AE8C14A52325DBFEDAF4F5C32E5D06F4C3362FE1D0',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '00000000000063CC',
PreviousTxnID: 'CD77500EF28984BFC123E8A257C10E44FF486EA8FC43E1356C42BD6DB853A602',
PreviousTxnLgrSeq: 8265523,
Sequence: 1139002,
TakerGets: '972251352',
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '4.9656112525'
},
index: 'D3338DA77BA23122FB5647B74B53636AB54BE246D4B21707C9D6887DEB334252',
owner_funds: '235.0194163432668',
quality: '195796912.5171664'
}
]
module.exports.REQUEST_OFFERS = [
{
Account: addresses.ACCOUNT,
BookDirectory: '6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC985711A3A4254F5000',
BookNode: '0000000000000000',
Flags: 131072,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000000',
PreviousTxnID: '9BB337CC8B34DC8D1A3FFF468556C8BA70977C37F7436439D8DA19610F214AD1',
PreviousTxnLgrSeq: 8342933,
Sequence: 195,
TakerGets: {
currency: 'BTC',
issuer: addresses.ISSUER,
value: '0.1129232560043778'
},
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '56.06639660617357'
},
index: 'B6BC3B0F87976370EE11F5575593FE63AA5DC1D602830DC96F04B2D597F044BF',
owner_funds: '0.1129267125000245',
quality: '496.4999999999999'
},
{
Account: addresses.OTHER_ACCOUNT,
BookDirectory: '6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC985711B6D8C62EF414',
BookNode: '0000000000000000',
Expiration: 461498565,
Flags: 131072,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000144',
PreviousTxnID: 'C8296B9CCA6DC594C7CD271C5D8FD11FEE380021A07768B25935642CDB37048A',
PreviousTxnLgrSeq: 8342469,
Sequence: 29354,
TakerGets: {
currency: 'BTC',
issuer: addresses.ISSUER,
value: '0.2'
},
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '99.72233516476456'
},
index: 'A437D85DF80D250F79308F2B613CF5391C7CF8EE9099BC4E553942651CD9FA86',
owner_funds: '0.950363009783092',
quality: '498.6116758238228'
},
{
Account: addresses.THIRD_ACCOUNT,
BookDirectory: '6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC985711B6D8C62EF414',
BookNode: '0000000000000000',
Expiration: 461498565,
Flags: 131072,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000144',
PreviousTxnID: 'C8296B9CCA6DC594C7CD271C5D8FD11FEE380021A07768B25935642CDB37048A',
PreviousTxnLgrSeq: 8342469,
Sequence: 29356,
TakerGets: {
currency: 'BTC',
issuer: addresses.ISSUER,
value: '0.5'
},
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '99.72233516476456'
},
index: 'A437D85DF80D250F79308F2B613CF5391C7CF8EE9099BC4E553942651CD9FA86',
owner_funds: '0.950363009783092',
quality: '498.6116758238228'
},
{
Account: addresses.THIRD_ACCOUNT,
BookDirectory: '6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC985711B6D8C62EF414',
BookNode: '0000000000000000',
Expiration: 461498565,
Flags: 131078,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000144',
PreviousTxnID: 'C8296B9CCA6DC594C7CD271C5D8FD11FEE380021A07768B25935642CDB37048A',
PreviousTxnLgrSeq: 8342469,
Sequence: 29354,
TakerGets: {
currency: 'BTC',
issuer: addresses.ISSUER,
value: '0.5'
},
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '99.72233516476456'
},
index: 'A437D85DF80D250F79308F2B613CF5391C7CF8EE9099BC4E553942651CD9FA86',
owner_funds: '0.950363009783092',
quality: '199.4446703295291'
}
]
module.exports.REQUEST_OFFERS_NATIVE = [
{
Account: addresses.ACCOUNT,
BookDirectory: '6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC985711A3A4254F5000',
BookNode: '0000000000000000',
Flags: 131072,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000000',
Sequence: 195,
TakerGets: '1000',
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '56.06639660617357'
},
index: 'B6BC3B0F87976370EE11F5575593FE63AA5DC1D602830DC96F04B2D597F044BF',
owner_funds: '600',
quality: '.0560663966061735'
},
{
Account: addresses.OTHER_ACCOUNT,
BookDirectory: '6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC985711B6D8C62EF414',
BookNode: '0000000000000000',
Expiration: 461498565,
Flags: 131072,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000144',
Sequence: 29354,
TakerGets: '2000',
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '99.72233516476456'
},
index: 'A437D85DF80D250F79308F2B613CF5391C7CF8EE9099BC4E553942651CD9FA86',
owner_funds: '4000',
quality: '0.049861167582382'
},
{
Account: addresses.THIRD_ACCOUNT,
BookDirectory: '6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC985711B6D8C62EF414',
BookNode: '0000000000000000',
Expiration: 461498565,
Flags: 131072,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000144',
Sequence: 29356,
TakerGets: '2000',
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '99.72233516476456'
},
index: 'A437D85DF80D250F79308F2B613CF5391C7CF8EE9099BC4E553942651CD9FA86',
owner_funds: '3900',
quality: '0.049861167582382'
},
{
Account: addresses.THIRD_ACCOUNT,
BookDirectory: '6EAB7C172DEFA430DBFAD120FDC373B5F5AF8B191649EC985711B6D8C62EF414',
BookNode: '0000000000000000',
Expiration: 461498565,
Flags: 131078,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000144',
PreviousTxnID: 'C8296B9CCA6DC594C7CD271C5D8FD11FEE380021A07768B25935642CDB37048A',
PreviousTxnLgrSeq: 8342469,
Sequence: 29354,
TakerGets: '2000',
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '99.72233516476456'
},
index: 'A437D85DF80D250F79308F2B613CF5391C7CF8EE9099BC4E553942651CD9FA86',
quality: '0.049861167582382'
}
]
module.exports.QUALITY_OFFERS = [
{
Account: addresses.ACCOUNT,
BookDirectory: '4627DFFCFF8B5A265EDBD8AE8C14A52325DBFEDAF4F5C32E5C1AFE1EE71A605F',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000009',
PreviousTxnID: 'BCA728C17DBA10F100C41D4EF8B37318F33BC6156E94DB16703D2A1EE43DCCE6',
PreviousTxnLgrSeq: 11929146,
Sequence: 668643,
TakerGets: {
currency: 'USD',
issuer: 'rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B',
value: '301.3426005599325'
},
TakerPays: '22895281765',
index: '79B34D7DF703580B86099EFD6B2E419AA39A585A50C82A3F9B446721B7C1490C',
owner_funds: '5910.437716613066',
quality: '75977580.74216543'
}
]
// This fixture is to exercise a bug where taker_pays_funded = taker_gets_funded * quality
// has decimal amounts.
module.exports.DECIMAL_TAKER_PAYS_FUNDED_OFFERS = [
{
Account: addresses.ACCOUNT,
BookDirectory: '4627DFFCFF8B5A265EDBD8AE8C14A52325DBFEDAF4F5C32E5D0689673FA9094A',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000006',
PreviousTxnID: 'C1BB04CE39E30BF5982B7660793723E9B3A832F5B458DB1C5938F4737E0E9ABF',
PreviousTxnLgrSeq: 11631257,
Sequence: 2936,
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '9280.04'
},
TakerPays: '1707459061637',
index: '89D85BBE91E0F419953EB89CE62E194922ED930EE57BE0C62FCC3B22DDB20852',
owner_funds: '9280.037154029904',
quality: '183992640.2943306',
taker_gets_funded: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '9261.514125778347'
},
taker_pays_funded: '1704050437125'
}
]
module.exports.LEG_ONE_OFFERS = [
{
Account: addresses.ACCOUNT,
BookDirectory: 'DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4D043654A0DBD245',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000078',
PreviousTxnID: '27723DCE3E6DB324DBCE9F0C9110352DBBC04DD6BEFE2A57C4E524FD215144C9',
PreviousTxnLgrSeq: 12024847,
Sequence: 14532890,
TakerGets: '31461561812',
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '373.019921005'
},
index: '7EEE980B0BD43C15504B9A89164D29EF02DBBD3807DA7936F51EA2CE3D0C6324',
owner_funds: '210586312936',
quality: '0.00000001185637010756165'
},
{
Account: addresses.OTHER_ACCOUNT,
BookDirectory: 'DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4D043676B9DEA2FC',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000002',
PreviousTxnID: '1B36F7DE44C96FBDB50F8F80D24D3FA11454CB837BA4E4D667C92E01AE9225F5',
PreviousTxnLgrSeq: 12024788,
Sequence: 244399,
TakerGets: '25299728855',
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '300'
},
index: '5F8BDA3343CB792FA0DD55740F5827C5E050A287C96FDE4F7DFF548693420744',
owner_funds: '1291056089559',
quality: '0.00000001185783459259132'
},
{
Account: addresses.THIRD_ACCOUNT,
BookDirectory: 'DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4D0437FF40E6F02A',
BookNode: '0000000000000000',
Expiration: 478636633,
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000165',
PreviousTxnID: 'D42D81273BDC3ED611ED84DF07EA55E31703F4E05BC70CC12871715FCB58E160',
PreviousTxnLgrSeq: 12024847,
Sequence: 3858033,
TakerGets: '18189943147',
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '216'
},
index: 'FD5E66163DFE67919E64F31D506A8F3E94802E6A0FFEBE7A6FD40A2F1135EDD4',
owner_funds: '490342145233',
quality: '0.0000000118746935190737'
}
]
module.exports.LEG_TWO_OFFERS = [
{
Account: addresses.FOURTH_ACCOUNT,
BookDirectory: 'DA36FDE1B8CE294B214BE4E4C958DAAF9C1F46DE1FCB44115D0A4929E095B160',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000003',
PreviousTxnID: '97A8D6B2135231363EC1B3B509DF052D481A0045684464948E6DF2C2B9FC1E64',
PreviousTxnLgrSeq: 12004045,
Sequence: 384,
TakerGets: {
currency: 'EUR',
issuer: addresses.ISSUER,
value: '17.07639524223001'
},
TakerPays: '4943947661',
index: '5B00ACF35041983F070EAE2219C274D24A11D6FD6FE4306A4C72E7B769D4F914',
owner_funds: '36.40299530003982',
quality: '289519397.75'
},
{
Account: addresses.FOURTH_ACCOUNT,
BookDirectory: 'DA36FDE1B8CE294B214BE4E4C958DAAF9C1F46DE1FCB44115E12B2D070B5DBE0',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000006',
PreviousTxnID: '425EBA467DD335602BAFBAB5329B1E7FC1ABB325AA5CD4495A5085860D09F2BE',
PreviousTxnLgrSeq: 11802828,
Sequence: 605,
TakerGets: {
currency: 'EUR',
issuer: addresses.ISSUER,
value: '19.99999999954904'
},
TakerPays: '105263157889',
index: '8715E674302D446EBD520FF11B48A0F64822F4F9266D62544987223CA16EDBB1',
quality: '5263157894.7',
taker_gets_funded: {
currency: 'EUR',
issuer: 'rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B',
value: '19.25393938854825'
},
taker_pays_funded: '101336523096'
}
]
module.exports.bookOffersResponse = function(options) {
options = options || {}
_.defaults(options, {
account_funds: '2010.027702881682',
other_account_funds: '24.06086596039299',
third_account_funds: '9071.40090264774',
fourth_account_funds: '7244.053477923128'
})
return {
offers: [
{
Account: addresses.ACCOUNT,
BookDirectory: '4627DFFCFF8B5A265EDBD8AE8C14A52325DBFEDAF4F5C32E5C188F5B29EE1C14',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000006762',
PreviousTxnID: '5F08192C82CD3A598D29B51FCCDE29B6709EBCB454A3CD540C32F7A79EE7CB26',
PreviousTxnLgrSeq: 11558364,
Sequence: 1689777,
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '79.39192374'
},
TakerPays: '5488380479',
index: 'D9F821C8687E0D0EDEFF05EBB53CFDC81C5F9C4C354DAACB11F6676B5E14AEF5',
owner_funds: options.account_funds,
quality: '69130211.4932226'
},
{
Account: addresses.OTHER_ACCOUNT,
BookDirectory: '4627DFFCFF8B5A265EDBD8AE8C14A52325DBFEDAF4F5C32E5C18949C72B26C2A',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000001',
PreviousTxnID: '038ED9ACC10211A8F6768729F36B74729CECCD33057837E160131675B272E532',
PreviousTxnLgrSeq: 11558374,
Sequence: 931088,
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '24.060765960393'
},
TakerPays: '1664716059',
index: '8845F212A8B53004A14C8C029FAF51B53266C66B49281A72F6A8F41CD92FDE99',
owner_funds: options.other_account_funds,
quality: '69187991.0116049',
taker_gets_funded: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '24.01284027983332'
},
taker_pays_funded: '1661400177'
},
{
Account: addresses.THIRD_ACCOUNT,
BookDirectory: '4627DFFCFF8B5A265EDBD8AE8C14A52325DBFEDAF4F5C32E5C18949C764EA14E',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000009',
PreviousTxnID: '62B96C0E0D86827BCE59ABDCAD146CC0B09404FE5BC86E712FB6F4E473016C63',
PreviousTxnLgrSeq: 11558234,
Sequence: 617872,
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '712.60995'
},
TakerPays: '49304051247',
index: '9E5C13908F67146AC35A711A17E5EB75771FDDA816C9532891DC90F29A6A4C10',
owner_funds: options.third_account_funds,
quality: '69187991.61729358'
},
{
Account: addresses.FOURTH_ACCOUNT,
BookDirectory: '4627DFFCFF8B5A265EDBD8AE8C14A52325DBFEDAF4F5C32E5C18AA2E761B7EE6',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000000511',
PreviousTxnID: 'F18AED5EC1E7529EF03AF23ADA85F7625AA308278BACE1851F336443AA3DAAEA',
PreviousTxnLgrSeq: 11558336,
Sequence: 662712,
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '288.08'
},
TakerPays: '20000000000',
index: '606B3FC9199D5122F1DCC73EC1629E40C8A838D58AC67315A78D76699D960705',
owner_funds: options.fourth_account_funds,
quality: '69425159.67786726'
},
{
Account: addresses.ACCOUNT,
BookDirectory: '4627DFFCFF8B5A265EDBD8AE8C14A52325DBFEDAF4F5C32E5C18C3D9EF58005A',
BookNode: '0000000000000000',
Flags: 0,
LedgerEntryType: 'Offer',
OwnerNode: '0000000000006762',
PreviousTxnID: 'E3A0240001B03E4F16C4BA6C2B0CB00C01413BE331ABE9E782B6A975DC936618',
PreviousTxnLgrSeq: 11558318,
Sequence: 1689755,
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: '196.460002'
},
TakerPays: '13694716399',
index: '9A5D0AA37EA0889B876E9A3E552CACDB28BA5A3CD482A528992CD0CCFC09F6E8',
quality: '69707402.31897178'
}
]
}
}
module.exports.MODIFIED_NODES = [
{
ModifiedNode: {
FinalFields: {
Account: addresses.ACCOUNT,
BookDirectory: 'E2B91A0A170BCC2BEC5C44B492D9B672888D9267A900330F5C08953CAA35D973',
BookNode: '0000000000000000',
Flags: 131072,
OwnerNode: '0000000000000001',
Sequence: 538,
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: module.exports.TAKER_GETS_FINAL
},
TakerPays: module.exports.TAKER_PAYS_FINAL
},
LedgerEntryType: 'Offer',
LedgerIndex: module.exports.LEDGER_INDEX,
PreviousFields: {
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: module.exports.TAKER_GETS
},
TakerPays: module.exports.TAKER_PAYS
},
PreviousTxnID: '5135DF8678727A70491DE512E5F0FE586E7C1E866492293B8898BF8191CFCAEB',
PreviousTxnLgrSeq: 11676651
}
},
{
ModifiedNode: {
FinalFields: {
Account: addresses.OTHER_ACCOUNT,
BookDirectory: 'E2B91A0A170BCC2BEC5C44B492D9B672888D9267A900330F5C08953CAA35D973',
BookNode: '0000000000000000',
Flags: 131072,
OwnerNode: '0000000000000001',
Sequence: 538,
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: module.exports.OTHER_TAKER_GETS_FINAL
},
TakerPays: module.exports.OTHER_TAKER_PAYS_FINAL
},
LedgerEntryType: 'Offer',
LedgerIndex: module.exports.OTHER_LEDGER_INDEX,
PreviousFields: {
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: module.exports.OTHER_TAKER_GETS
},
TakerPays: module.exports.OTHER_TAKER_PAYS
},
PreviousTxnID: '5135DF8678727A70491DE512E5F0FE586E7C1E866492293B8898BF8191CFCAEB',
PreviousTxnLgrSeq: 11676651
}
}
]
module.exports.transactionWithDivvyState = function(options) {
options = options || {}
_.defaults(options, {
issuer: addresses.ISSUER,
account: addresses.ACCOUNT,
balance: module.exports.FIAT_BALANCE
})
return {
meta: {
AffectedNodes: [{
ModifiedNode: {
FinalFields: {
Balance: {
currency: 'USD',
issuer: 'rrrrrrrrrrrrrrrrrrrrBZbvji',
value: options.balance
},
Flags: 131072,
HighLimit: {
currency: 'USD',
issuer: options.issuer,
value: '100'
},
HighNode: '0000000000000000',
LowLimit: {
currency: 'USD',
issuer: options.account,
value: '0'
},
LowNode: '0000000000000000'
},
PreviousFields: {
Balance: {
currency: 'USD',
issuer: 'rrrrrrrrrrrrrrrrrrrrBZbvji',
value: '0'
}
},
LedgerEntryType: 'DivvyState',
LedgerIndex: 'EA4BF03B4700123CDFFB6EB09DC1D6E28D5CEB7F680FB00FC24BC1C3BB2DB959',
PreviousTxnID: '53354D84BAE8FDFC3F4DA879D984D24B929E7FEB9100D2AD9EFCD2E126BCCDC8',
PreviousTxnLgrSeq: 343570
}
}]
}
}
}
module.exports.transactionWithAccountRoot = function(options) {
options = options || {}
_.defaults(options, {
account: addresses.ACCOUNT,
balance: module.exports.NATIVE_BALANCE,
previous_balance: module.exports.NATIVE_BALANCE_PREVIOUS
})
return {
meta: {
AffectedNodes: [{
ModifiedNode: {
FinalFields: {
Account: options.account,
Balance: options.balance,
Flags: 0,
OwnerCount: 1,
Sequence: 2
},
LedgerEntryType: 'AccountRoot',
LedgerIndex: '4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05',
PreviousFields: {
Balance: options.previous_balance,
OwnerCount: 0,
Sequence: 1
},
PreviousTxnID: 'B24159F8552C355D35E43623F0E5AD965ADBF034D482421529E2703904E1EC09',
PreviousTxnLgrSeq: 16154
}
}]
}
}
}
module.exports.transactionWithInvalidAccountRoot = function(options) {
options = options || {}
_.defaults(options, {
account: addresses.ACCOUNT,
balance: module.exports.NATIVE_BALANCE
})
return {
meta: {
AffectedNodes: [{
ModifiedNode: {
FinalFields: {
Account: options.account,
Balance: options.balance,
Flags: 0,
OwnerCount: 3,
Sequence: 188
},
LedgerEntryType: 'AccountRoot',
LedgerIndex: 'B33FDD5CF3445E1A7F2BE9B06336BEBD73A5E3EE885D3EF93F7E3E2992E46F1A',
PreviousTxnID: 'E9E1988A0F061679E5D14DE77DB0163CE0BBDC00F29E396FFD1DA0366E7D8904',
PreviousTxnLgrSeq: 195455
}
}]
}
}
}
module.exports.transactionWithCreatedOffer = function(options) {
options = options || {}
_.defaults(options, {
account: addresses.ACCOUNT,
amount: '1.9951'
})
const takerGets = new IOUValue(options.amount)
const takerPays = new XDVValue(module.exports.TAKER_PAYS)
const quality = takerPays.divide(takerGets)
const BookDirectory = binary.encodeQuality(quality.toString())
const meta = {
AffectedNodes: [
{
CreatedNode: {
LedgerEntryType: 'Offer',
LedgerIndex: 'AF3C702057C9C47DB9E809FD8C76CD22521012C5CC7AE95D914EC9E226F1D7E5',
NewFields: {
Account: options.account,
BookDirectory: BookDirectory,
Flags: 131072,
Sequence: 1404,
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: options.amount
},
TakerPays: module.exports.TAKER_PAYS
}
}
}
]
}
return {
meta: meta,
transaction: {
TransactionType: 'OfferCreate',
owner_funds: '2010.027702881682'
}
}
}
module.exports.transactionWithCreatedOfferR = function(options) {
options = options || {}
_.defaults(options, {
account: addresses.ACCOUNT,
amount: '1.9951'
})
const takerGets = new IOUValue(options.amount)
const takerPays = new XDVValue(module.exports.TAKER_PAYS)
const quality = takerPays.divide(takerGets)
const BookDirectory = binary.encodeQuality(quality.toString())
const meta = {
AffectedNodes: [
{
CreatedNode: {
LedgerEntryType: 'Offer',
LedgerIndex: 'AF3C702057C9C47DB9E809FD8C76CD22521012C5CC7AE95D914EC9E226F1D7E5',
NewFields: {
Account: options.account,
BookDirectory: BookDirectory,
Flags: 131072,
Sequence: 1404,
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: options.amount
},
TakerGets: module.exports.TAKER_PAYS
}
}
}
]
}
return {
meta: meta,
transaction: {
TransactionType: 'OfferCreate',
owner_funds: '2010.027702881682'
}
}
}
module.exports.transactionWithDeletedOffer = function(options) {
options = options || {}
_.defaults(options, {
transaction_type: 'OfferCreate'
})
const meta = {
AffectedNodes: [
{
DeletedNode: {
FinalFields: {
Account: addresses.ACCOUNT,
BookDirectory: '3B95C29205977C2136BBC70F21895F8C8F471C8522BF446E570463F9CDB31517',
BookNode: '0000000000000000',
Expiration: 477086871,
Flags: 131072,
OwnerNode: '0000000000000979',
PreviousTxnID: 'DDD2AB60A2AA1690A6CB99B094BFD2E39A81AFF2AA91B5E4049D2C96A4BC8EBA',
PreviousTxnLgrSeq: 11674760,
Sequence: 85006,
TakerGets: {
currency: 'USD',
issuer: addresses.ISSUER,
value: module.exports.TAKER_GETS
},
TakerPays: module.exports.TAKER_PAYS
},
LedgerEntryType: 'Offer',
LedgerIndex: module.exports.LEDGER_INDEX
}
}
]
}
// meta.getAffectedBooks();
return {
meta: meta,
transaction: {
TransactionType: options.transaction_type,
owner_funds: '2010.027702881682'
}
}
}
module.exports.transactionWithDeletedOfferR = function(options) {
options = options || {}
_.defaults(options, {
transaction_type: 'OfferCreate'
})
const meta = {
AffectedNodes: [
{
DeletedNode: {
FinalFields: {
Account: addresses.ACCOUNT,
BookDirectory: '3B95C29205977C2136BBC70F21895F8C8F471C8522BF446E570463F9CDB31517',
BookNode: '0000000000000000',
Expiration: 477086871,
Flags: 131072,
OwnerNode: '0000000000000979',
PreviousTxnID: 'DDD2AB60A2AA1690A6CB99B094BFD2E39A81AFF2AA91B5E4049D2C96A4BC8EBA',
PreviousTxnLgrSeq: 11674760,
Sequence: 85006,
TakerPays: {
currency: 'USD',
issuer: addresses.ISSUER,
value: module.exports.TAKER_GETS
},
TakerGets: module.exports.TAKER_PAYS
},
LedgerEntryType: 'Offer',
LedgerIndex: 'B6BC3B0F87976370EE11F5575593FE63AA5DC1D602830DC96F04B2D597F044BF'
}
}
]
}
// meta.getAffectedBooks();
return {
meta: meta,
transaction: {
TransactionType: options.transaction_type,
owner_funds: '2010.027702881682'
}
}
}
module.exports.transactionWithModifiedOffer = function() {
const meta = {
AffectedNodes: module.exports.MODIFIED_NODES.slice(0, 1)
}
// meta.getAffectedBooks();
return {
meta: meta,
transaction: {
TransactionType: 'OfferCreate',
owner_funds: '2010.027702881682'
}
}
}
module.exports.transactionWithModifiedOffers = function() {
const meta = {
AffectedNodes: module.exports.MODIFIED_NODES
}
// meta.getAffectedBooks();
return {
meta: meta,
transaction: {
TransactionType: 'OfferCreate',
owner_funds: '2010.027702881682'
}
}
}
module.exports.transactionWithNoNodes = function() {
const meta = {
AffectedNodes: []
}
// meta.getAffectedBooks();
return {
meta: meta,
transaction: {
TransactionType: 'OfferCreate',
owner_funds: '2010.027702881682'
}
}
}
module.exports.accountInfoResponse = function(options) {
options = options || {}
_.defaults(options, {
account: addresses.ISSUER
})
return {
account_data: {
Account: options.account,
Balance: '6156166959471',
Domain: '6269747374616D702E6E6574',
EmailHash: '5B33B93C7FFE384D53450FC666BB11FB',
Flags: 131072,
LedgerEntryType: 'AccountRoot',
OwnerCount: 0,
PreviousTxnID: '6A7D0AB36CBA6884FDC398254BC67DE7E0B4887E9B0252568391102FBB854C09',
PreviousTxnLgrSeq: 8344426,
Sequence: 561,
TransferRate: 1002000000,
index: 'B7D526FDDF9E3B3F95C3DC97C353065B0482302500BBB8051A5C090B596C6133',
urlgravatar: 'http:www.gravatar.com/avatar/5b33b93c7ffe384d53450fc666bb11fb'
}
}
}