Skip to content

Latest commit

 

History

History
392 lines (217 loc) · 19.8 KB

HISTORY.md

File metadata and controls

392 lines (217 loc) · 19.8 KB

##0.12.15

##0.12.4

##0.12.3

##0.12.2

##0.12.1

Breaking Changes

Changes

##0.12.0

Breaking Changes

Changes

##0.11.0

##0.10.0

  • Transaction changes

  • Important tef* and tel* and errors will no longer be presented as final. Rather than considering these errors final, ripple-lib will wait until the LastLedgerSequence specified in the transaction is exceeded. This makes failures more definitive, and ensures that no transaction will resubmit indefinitely.

  • A new, final tej-class error is introduced to account for transactions that are locally determined to have expired: tejMaxLedger.

  • Allow per transaction fees to be set, transaction.setFixedFee()

  • Improve memo support

    • Add MemoFormat property for memo
    • Enforce MemoFormat and MemoType to be valid ASCII
    • Support text and json MemoFormat
  • Update jscl library

    • Improved entropy by taking advantage of platform crypto
    • Use jscl's k256 curve instead of altering the c256 curve with k256 configuration
    • deprecated: the c256 curve is linked to the k256 curve to provide backwards compatibility, this link will be removed in the future
  • Fix empty queue check on reconnect

##0.9.4

##0.9.3

##0.9.2

Example on how to use paging with account_offers:

// A valid `ledger_index` or `ledger_hash` is required to provide a reliable result.
// Results can change between ledger closes, so the provided ledger will be used as base.
var options = {
    account: < rippleAccount >,
    limit: < Number between 10 and 400 >,
    ledger: < valid ledger_index or ledger_hash >
}

// The `marker` comes back in an account request if there are more results than are returned
// in the current response. The amount of results per response are determined by the `limit`.
if (marker) {
    options.marker = < marker >;
}

var request = remote.requestAccountOffers(options);

Full working example

##0.9.1

  • Switch account requests to use ledgerSelect rather than ledgerChoose (278df90)

  • Deprecated setting ident and account_index on account requests (278df90)

  • Change initial account transaction sequence to 1 (a3c1d06)

  • Fix: instance transaction withoute remote (d3b6b81)

  • Fix: account root request ledger argument (bc1f9f8)

  • Fix: rsign.js local signing and example (d3b6b81 and f1004c6)

##0.9.0

  • Add routes to the vault client for KYC attestations (ed2da574)

  • Currency: add show_interest flag to show or hide interest in Currency.to_human() and Currency.to_json() Example use in tests

  • Configurable maxAttempts for transaction submission (d107092)

  • Binformat: added missing TransactionResult options (6abed8d)

  • Breaking change: make maxLoops in seed.get_key optional. Example use in tests (23e473b)

  • Shrinkwrap packages for dependency locking (2dcd5f9)

  • Fix: Amount.to_human() precision bugs (4be209e and 7708c64)

  • Fix: change handling of requestLedger options (57b7030)

##0.8.2

  • Currency: Allow mixed letters and numbers in currencies

  • Deprecate account_tx map/reduce/filterg

  • Fix: correct requestLedger arguments

  • Fix: missing subscription on error events for some server methods

  • Fix: orderbook reset on reconnect

  • Fix: ripple-lib crashing. Add potential missing error handlers

##0.8.1

  • Wallet: Add Wallet class that generates wallets

  • Make npm test runnable in Windows.

  • Fix several stability issues, see merged PR's for details

  • Fix bug in Amount.to_human_full()

  • Fix undefined fee states when connecting to a rippled that is syncing

##0.8.0

  • Orderbook: Added tracking of offer funds for determining when offers are not funded

  • Orderbook: Added tests

  • Orderbook: Update owner funds

  • Transactions: If transaction errs with tefALREADY, wait until all possible submissions err with the same before emitting error. Fixes a client "Transaction malformed" bug.

  • Transactions: Track submissions, don't bother submitting to unconnected servers

  • Request: request.request() now accepts an array of servers as first argument. Servers can be represented with URL, or the server object itself.

  • Request: request.broadcast() now returns the number of servers request was sent to

  • Server: Acquire host information from server without additional request

  • Amount: Add a constant for the maximum canonical value that can be expressed as a Ripple value

  • Amount: Make Constants static fields on the class, instead of a seperate export

##0.7.39

  • Improvements to multi-server support. Fixed an issue where a server's score was not reset and connections would keep dropping after being connected for a significant amount of time.

  • Improvements in order book support. Added support for currency pairs with interest bearing currencies. You can request an order book with hex, ISO code or full name for the currency.

  • Fix value parsing for amount/currency order pairs, e.g. Amount.from_human("XAU 12345.6789")

  • Improved Amount parsing from human readable string given a hex currency, e.g. Amount.from_human("10 015841551A748AD2C1F76FF6ECB0CCCD00000000")

  • Improvements to username normalization in the vault client

  • Add 2-factor authentication support for vault client

  • Removed vestiges of Grunt, switched to Gulp

##0.7.37

  • Deprecations

    1. Removed humanistic amount detection in transaction.payment. Passing 1XRP as the payment amount no longer works.
    2. remote.setServer uses full server URL rather than hostname. Example: remote.setServer('wss://s.ripple.com:443')`
    3. Removed constructors for deprecated transaction types from transaction.js.
    4. Removed invoiceID option from transaction.payment. Instead, use the transaction.invoiceID method.
    5. Removed transaction.transactionManager getter.
  • Improved multi-server support. Servers are now ranked dynamically, and transactions are broadcasted to all connected servers.

  • Automatically ping connected servers. Client configuration now should contain ping: <seconds> to specify the ping interval.

  • Added transaction.lastLedger to specify LastLedgerSequence. Setting it this way also ensures that the sequence is not bumped on subsequent requests.

  • Added optional remote.accountTx binary parsing.

      {
        binary: true,
        parseBinary: false
      }
  • Added full currency name support, e.g. Currency.from_json('XRP').to_human({full_name:'Ripples'}) will return XRP - Ripples

  • Improved interest bearing currency support, e.g. Currency.from_human('USD - US Dollar (2.5%pa)')

  • Improve test coverage

  • Added blob vault client. The vault client facilitates interaction with ripple's namespace and blob vault or 3rd party blob vaults using ripple's blob vault software (https://github.com/ripple/ripple-blobvault). A list of the available functions can be found at docs/VAULTCLIENT.md

##0.7.35

  • LastLedgerSequence is set by default on outgoing transactions. This refers to the last valid ledger index (AKA sequence) for a transaction. By default, this index is set to the current index (at submission time) plus 8. In theory, this allows ripple-lib to deterministically fail a transaction whose submission request timed out, but whose associated server continues to emit ledger_closed events.

  • Transactions that err with telINSUF_FEE_P will be automatically resubmitted. This error indicates that the Fee supplied in the transaction submission request was inadquate. Ideally, the Fee is tracked by ripple-lib in real-time, and the resubmitted transaction will most likely succeed.

  • Added Transaction.iff(function(callback) { }). Callback expects first argument to be an Error or null, second argument is a boolean which indicates whether or not to proceed with the transaction submission. If an iff function is specified, it will be executed prior to every submission of the transaction (including resubmissions).

  • Transactions will now emit presubmit and postsubmit events. They will be emitted before and after a transaction is submitted, respectively.

  • Added Transaction.summary(). Returns a summary of a transaction in semi-human-readable form. JSON-stringifiable.

  • Remote.requestAccountTx() with binary: true will automatically parse transactions.

  • Added Remote.requestAccountTx filter, map, and reduce.

  remote.requestAccountTx({
    account: 'retc',
    ledger_index_min: -1,
    ledger_index_max: -1,
    limit: 100,
    binary: true,

    filter: function(transaction) {
      return transaction.tx.TransactionType === 'Payment';
    },

    map: function(transaction) {
      return Number(transaction.tx.Amount);
    },

    reduce: function(a, b) {
      return a + b;
    },

    pluck: 'transactions'
  }, console.log)
  • Added persistence hooks.

  • General performance improvements, especially for long-running processes.