From ad9956375f2628d912f827291f58844272e5819e Mon Sep 17 00:00:00 2001 From: Ivan Tivonenko Date: Mon, 8 Jun 2015 20:38:22 +0300 Subject: [PATCH 1/6] [FIX] change var to let and const --- src/autobridgecalculator.js | 76 ++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/src/autobridgecalculator.js b/src/autobridgecalculator.js index 7b0dec80..c2efa787 100644 --- a/src/autobridgecalculator.js +++ b/src/autobridgecalculator.js @@ -1,10 +1,10 @@ 'use strict'; -var _ = require('lodash'); -var assert = require('assert'); -var UInt160 = require('./uint160').UInt160; -var Amount = require('./amount').Amount; -var Utils = require('./orderbookutils'); +const _ = require('lodash'); +const assert = require('assert'); +const UInt160 = require('./uint160').UInt160; +const Amount = require('./amount').Amount; +const Utils = require('./orderbookutils'); function assertValidNumber(number, message) { assert(!_.isNull(number) && !isNaN(number), message); @@ -34,18 +34,18 @@ function AutobridgeCalculator(currencyGets, currencyPays, */ AutobridgeCalculator.prototype.calculate = function() { - var legOnePointer = 0; - var legTwoPointer = 0; + let legOnePointer = 0; + let legTwoPointer = 0; - var offersAutobridged = []; + let offersAutobridged = []; this.clearOwnerFundsLeftover(); while (this.legOneOffers[legOnePointer] && this.legTwoOffers[legTwoPointer]) { - var legOneOffer = this.legOneOffers[legOnePointer]; - var legTwoOffer = this.legTwoOffers[legTwoPointer]; - var leftoverFunds = this.getLeftoverOwnerFunds(legOneOffer.Account); - var autobridgedOffer; + const legOneOffer = this.legOneOffers[legOnePointer]; + const legTwoOffer = this.legTwoOffers[legTwoPointer]; + const leftoverFunds = this.getLeftoverOwnerFunds(legOneOffer.Account); + let autobridgedOffer; if (legOneOffer.Account === legTwoOffer.Account) { this.unclampLegOneOwnerFunds(legOneOffer); @@ -53,8 +53,8 @@ AutobridgeCalculator.prototype.calculate = function() { this.adjustLegOneFundedAmount(legOneOffer); } - var legOneTakerGetsFunded = Utils.getOfferTakerGetsFunded(legOneOffer); - var legTwoTakerPaysFunded = Utils.getOfferTakerPaysFunded(legTwoOffer); + const legOneTakerGetsFunded = Utils.getOfferTakerGetsFunded(legOneOffer); + const legTwoTakerPaysFunded = Utils.getOfferTakerPaysFunded(legTwoOffer); if (legOneTakerGetsFunded.is_zero()) { legOnePointer++; @@ -110,23 +110,23 @@ AutobridgeCalculator.prototype.calculate = function() { AutobridgeCalculator.prototype.getAutobridgedOfferWithClampedLegOne = function(legOneOffer, legTwoOffer) { - var legOneTakerGetsFunded = Utils.getOfferTakerGetsFunded(legOneOffer); - var legTwoTakerPaysFunded = Utils.getOfferTakerPaysFunded(legTwoOffer); - var legOneQuality = Utils.getOfferQuality(legOneOffer, this._currencyGets); + const legOneTakerGetsFunded = Utils.getOfferTakerGetsFunded(legOneOffer); + const legTwoTakerPaysFunded = Utils.getOfferTakerPaysFunded(legTwoOffer); + const legOneQuality = Utils.getOfferQuality(legOneOffer, this._currencyGets); - var autobridgedTakerGets = Utils.getOfferTakerGetsFunded(legTwoOffer); - var autobridgedTakerPays = legTwoTakerPaysFunded.multiply(legOneQuality); + const autobridgedTakerGets = Utils.getOfferTakerGetsFunded(legTwoOffer); + const autobridgedTakerPays = legTwoTakerPaysFunded.multiply(legOneQuality); if (legOneOffer.Account === legTwoOffer.Account) { - var legOneTakerGets = Utils.getOfferTakerGets(legOneOffer); - var updatedTakerGets = legOneTakerGets.subtract(legTwoTakerPaysFunded); + const legOneTakerGets = Utils.getOfferTakerGets(legOneOffer); + const updatedTakerGets = legOneTakerGets.subtract(legTwoTakerPaysFunded); this.setLegOneTakerGets(legOneOffer, updatedTakerGets); this.clampLegOneOwnerFunds(legOneOffer); } else { // Update funded amount since leg one offer was not completely consumed - var updatedTakerGetsFunded = legOneTakerGetsFunded + const updatedTakerGetsFunded = legOneTakerGetsFunded .subtract(legTwoTakerPaysFunded); this.setLegOneTakerGetsFunded(legOneOffer, updatedTakerGetsFunded); @@ -150,12 +150,12 @@ function(legOneOffer, legTwoOffer) { AutobridgeCalculator.prototype.getAutobridgedOfferWithClampedLegTwo = function(legOneOffer, legTwoOffer) { - var legOneTakerGetsFunded = Utils.getOfferTakerGetsFunded(legOneOffer); - var legTwoTakerPaysFunded = Utils.getOfferTakerPaysFunded(legTwoOffer); - var legTwoQuality = Utils.getOfferQuality(legTwoOffer, this._currencyGets); + const legOneTakerGetsFunded = Utils.getOfferTakerGetsFunded(legOneOffer); + const legTwoTakerPaysFunded = Utils.getOfferTakerPaysFunded(legTwoOffer); + const legTwoQuality = Utils.getOfferQuality(legTwoOffer, this._currencyGets); - var autobridgedTakerGets = legOneTakerGetsFunded.divide(legTwoQuality); - var autobridgedTakerPays = Utils.getOfferTakerPaysFunded(legOneOffer); + const autobridgedTakerGets = legOneTakerGetsFunded.divide(legTwoQuality); + const autobridgedTakerPays = Utils.getOfferTakerPaysFunded(legOneOffer); // Update funded amount since leg two offer was not completely consumed legTwoOffer.taker_gets_funded = Utils.getOfferTakerGetsFunded(legTwoOffer) @@ -182,8 +182,8 @@ function(legOneOffer, legTwoOffer) { AutobridgeCalculator.prototype.getAutobridgedOfferWithoutClamps = function(legOneOffer, legTwoOffer) { - var autobridgedTakerGets = Utils.getOfferTakerGetsFunded(legTwoOffer); - var autobridgedTakerPays = Utils.getOfferTakerPaysFunded(legOneOffer); + const autobridgedTakerGets = Utils.getOfferTakerGetsFunded(legTwoOffer); + const autobridgedTakerPays = Utils.getOfferTakerPaysFunded(legOneOffer); return this.formatAutobridgedOffer( autobridgedTakerGets, @@ -226,7 +226,7 @@ AutobridgeCalculator.prototype.resetOwnerFundsLeftover = function(account) { AutobridgeCalculator.prototype.getLeftoverOwnerFunds = function(account) { assert(UInt160.is_valid(account), 'Account is invalid'); - var amount = this._ownerFundsLeftover[account]; + let amount = this._ownerFundsLeftover[account]; if (!amount) { amount = Utils.normalizeAmount('0'); @@ -284,8 +284,8 @@ function(takerGets, takerPays) { assert(takerGets instanceof Amount, 'Autobridged taker gets is invalid'); assert(takerPays instanceof Amount, 'Autobridged taker pays is invalid'); - var autobridgedOffer = {}; - var quality = takerPays.divide(takerGets); + const autobridgedOffer = {}; + const quality = takerPays.divide(takerGets); autobridgedOffer.TakerGets = { value: takerGets.to_text(), @@ -348,13 +348,13 @@ AutobridgeCalculator.prototype.unclampLegOneOwnerFunds = function(legOneOffer) { AutobridgeCalculator.prototype.clampLegOneOwnerFunds = function(legOneOffer) { assertValidLegOneOffer(legOneOffer, 'Leg one offer is invalid'); - var takerGets = Utils.getOfferTakerGets(legOneOffer); + const takerGets = Utils.getOfferTakerGets(legOneOffer); if (takerGets.compareTo(legOneOffer.initTakerGetsFunded) > 0) { // After clamping, TakerGets is still greater than initial funded amount this.setLegOneTakerGetsFunded(legOneOffer, legOneOffer.initTakerGetsFunded); } else { - var updatedLeftover = legOneOffer.initTakerGetsFunded.subtract(takerGets); + const updatedLeftover = legOneOffer.initTakerGetsFunded.subtract(takerGets); this.setLegOneTakerGetsFunded(legOneOffer, takerGets); this.addLeftoverOwnerFunds(legOneOffer.Account, updatedLeftover); @@ -373,13 +373,13 @@ function(legOneOffer) { assertValidLegOneOffer(legOneOffer, 'Leg one offer is invalid'); assert(!legOneOffer.is_fully_funded, 'Leg one offer cannot be fully funded'); - var fundedSum = Utils.getOfferTakerGetsFunded(legOneOffer) + const fundedSum = Utils.getOfferTakerGetsFunded(legOneOffer) .add(this.getLeftoverOwnerFunds(legOneOffer.Account)); if (fundedSum.compareTo(Utils.getOfferTakerGets(legOneOffer)) >= 0) { // There are enough extra funds to fully fund the offer - var legOneTakerGets = Utils.getOfferTakerGets(legOneOffer); - var updatedLeftover = fundedSum.subtract(legOneTakerGets); + const legOneTakerGets = Utils.getOfferTakerGets(legOneOffer); + const updatedLeftover = fundedSum.subtract(legOneTakerGets); this.setLegOneTakerGetsFunded(legOneOffer, legOneTakerGets); this.setLeftoverOwnerFunds(legOneOffer.Account, updatedLeftover); @@ -426,7 +426,7 @@ function(legOneOffer, takerGets) { assertValidLegOneOffer(legOneOffer, 'Leg one offer is invalid'); assert(takerGets instanceof Amount, 'Taker gets funded is invalid'); - var legOneQuality = Utils.getOfferQuality(legOneOffer, this._currencyGets); + const legOneQuality = Utils.getOfferQuality(legOneOffer, this._currencyGets); legOneOffer.TakerGets = takerGets.to_text(); legOneOffer.TakerPays = takerGets.multiply(legOneQuality); From 1fff5ea6dcbcee856536df26f3b9cf1aec3c3b55 Mon Sep 17 00:00:00 2001 From: Ivan Tivonenko Date: Sun, 7 Jun 2015 01:35:49 +0300 Subject: [PATCH 2/6] [FIX] fix AutobridgeCalculator (RT-3445) pass issuers to AutobridgeCalculator so it can create offers with right issuers --- src/autobridgecalculator.js | 4 +++- src/orderbook.js | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/autobridgecalculator.js b/src/autobridgecalculator.js index c2efa787..746a085d 100644 --- a/src/autobridgecalculator.js +++ b/src/autobridgecalculator.js @@ -18,9 +18,11 @@ function assertValidLegOneOffer(legOneOffer, message) { } function AutobridgeCalculator(currencyGets, currencyPays, - legOneOffers, legTwoOffers) { + legOneOffers, legTwoOffers, issuerGets, issuerPays) { this._currencyGets = currencyGets; this._currencyPays = currencyPays; + this._issuerGets = issuerGets; + this._issuerPays = issuerPays; this.legOneOffers = _.cloneDeep(legOneOffers); this.legTwoOffers = _.cloneDeep(legTwoOffers); diff --git a/src/orderbook.js b/src/orderbook.js index 08fab417..b71a3b8a 100644 --- a/src/orderbook.js +++ b/src/orderbook.js @@ -1189,7 +1189,9 @@ OrderBook.prototype.computeAutobridgedOffers = function() { this._currencyGets, this._currencyPays, this._legOneBook.getOffersSync(), - this._legTwoBook.getOffersSync() + this._legTwoBook.getOffersSync(), + this._issuerGets, + this._issuerPays ); this._offersAutobridged = autobridgeCalculator.calculate(); From 56bbe1d437ef39d3ac259aae571b48b76e3e015c Mon Sep 17 00:00:00 2001 From: Geert Weening Date: Wed, 22 Jul 2015 11:42:34 -0700 Subject: [PATCH 3/6] Update shrinkwrap --- npm-shrinkwrap.json | 18 +++++++++--------- src/js | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) create mode 160000 src/js diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index d02334d6..26b85a7a 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -2,19 +2,19 @@ "name": "ripple-lib", "version": "0.12.5-rc2", "npm-shrinkwrap-version": "5.4.0", - "node-version": "v0.12.3", + "node-version": "v0.12.6", "dependencies": { "async": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" }, "babel-runtime": { - "version": "5.4.7", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.4.7.tgz", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.3.tgz", "dependencies": { "core-js": { - "version": "0.9.13", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-0.9.13.tgz" + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-0.9.18.tgz" } } }, @@ -27,8 +27,8 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-1.2.1.tgz" }, "lodash": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.9.3.tgz" + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.0.tgz" }, "lru-cache": { "version": "2.5.2", @@ -65,8 +65,8 @@ "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz" }, "ultron": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.1.tgz" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz" }, "utf-8-validate": { "version": "1.1.0", diff --git a/src/js b/src/js new file mode 160000 index 00000000..16dde36f --- /dev/null +++ b/src/js @@ -0,0 +1 @@ +Subproject commit 16dde36fa2a58845f639429acd5bc4e4ebb5a0f1 From 030e2786d1ca7827a72a107596cf1394a69fb943 Mon Sep 17 00:00:00 2001 From: Geert Weening Date: Wed, 22 Jul 2015 11:48:34 -0700 Subject: [PATCH 4/6] Update release notes --- HISTORY.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/HISTORY.md b/HISTORY.md index b4818cb7..0115a20f 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -2,8 +2,22 @@ + [Add offer autobridging](https://github.com/ripple/ripple-lib/commit/c7bbce83719c1e8c6a4fae5ca850e7515db1a4a5) ++ [Prevent crash when listening for "model" events on the OrderBook class](https://github.com/ripple/ripple-lib/commit/5824c3cb7cb6bd834d6e037f69943aebf3d83351) + + [Fix empty order edgecase](https://github.com/ripple/ripple-lib/commit/64809d9ae23dc24f47accd4b4788b48f49880d3e) ++ [Fix AutobridgeCalculator (RT-3445)](https://github.com/ripple/ripple-lib/commit/1fff5ea6dcbcee856536df26f3b9cf1aec3c3b55) + ++ [Update sjcl and delete custom ripemd160, montgomery, and jacobi](https://github.com/ripple/ripple-lib/commit/50cda426eb83599c38c0b725e1524a01fc415da2) + ++ [Fix transaction summary for transactions that fail with remoteError](https://github.com/ripple/ripple-lib/commit/5e714f6143464d7912f42537acaa553b88eaf6dc) + ++ [Fix serializedobject append for excessively large bytes length](https://github.com/ripple/ripple-lib/commit/e93f1ab6f4aaad347450aee75a169af0faa2121c) + ++ [Switch to sjcl npm module](https://github.com/ripple/ripple-lib/commit/9a502580fd89ec6a9aa55f4e5847f6a4a2cb5bba) + ++ [Add babel transpiler](https://github.com/ripple/ripple-lib/commit/398f8d001f758bf575b959537a17e79e4042d17b) + + [Remove unused float.js and wallet.js](https://github.com/ripple/ripple-lib/commit/d4a4b5f4fbbf09677a59ce81bace35c6426a2fda) + [Remove config singleton to reduce global state](https://github.com/ripple/ripple-lib/commit/c655c2a20ee5d150a4b5a1b6717b9fb81f636025) From a93c580c926d377add0350433f973d50ff5de818 Mon Sep 17 00:00:00 2001 From: Geert Weening Date: Wed, 22 Jul 2015 11:49:08 -0700 Subject: [PATCH 5/6] Bump version to 0.12.5-rc3 --- npm-shrinkwrap.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 26b85a7a..2ba62581 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "ripple-lib", - "version": "0.12.5-rc2", + "version": "0.12.5-rc3", "npm-shrinkwrap-version": "5.4.0", "node-version": "v0.12.6", "dependencies": { diff --git a/package.json b/package.json index 826da3ab..6a25584b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ripple-lib", - "version": "0.12.5-rc2", + "version": "0.12.5-rc3", "description": "A JavaScript API for interacting with Ripple in Node.js and the browser", "files": [ "dist/npm/*", From b1b47d7d9196dd7f4af7aebd9d89dc87c3140527 Mon Sep 17 00:00:00 2001 From: Geert Weening Date: Wed, 22 Jul 2015 11:53:13 -0700 Subject: [PATCH 6/6] Bump version to 0.12.5 --- npm-shrinkwrap.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 2ba62581..83766b82 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "ripple-lib", - "version": "0.12.5-rc3", + "version": "0.12.5", "npm-shrinkwrap-version": "5.4.0", "node-version": "v0.12.6", "dependencies": { diff --git a/package.json b/package.json index 6a25584b..f078a588 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ripple-lib", - "version": "0.12.5-rc3", + "version": "0.12.5", "description": "A JavaScript API for interacting with Ripple in Node.js and the browser", "files": [ "dist/npm/*",