BREAKING CHANGE: Rename "ledgerClosed" event to "ledger" and convert drops amounts to XRP

This commit is contained in:
Chris Clark
2015-11-20 11:09:26 -08:00
parent 10eb08095a
commit 8a3d4a64db
11 changed files with 41 additions and 53 deletions

View File

@@ -56,7 +56,7 @@
- [generateAddress](#generateaddress) - [generateAddress](#generateaddress)
- [computeLedgerHash](#computeledgerhash) - [computeLedgerHash](#computeledgerhash)
- [API Events](#api-events) - [API Events](#api-events)
- [ledgerClosed](#ledgerclosed) - [ledger](#ledger)
- [error](#error) - [error](#error)
<!-- END doctoc generated TOC please keep comment here to allow auto update --> <!-- END doctoc generated TOC please keep comment here to allow auto update -->
@@ -575,8 +575,8 @@ validatedLedger | object | Information about the fully-validated ledger with the
*validatedLedger.* age | integer | The time since the ledger was closed, in seconds. *validatedLedger.* age | integer | The time since the ledger was closed, in seconds.
*validatedLedger.* baseFeeXRP | number | Base fee, in XRP. This may be represented in scientific notation such as 1e-05 for 0.00005. *validatedLedger.* baseFeeXRP | number | Base fee, in XRP. This may be represented in scientific notation such as 1e-05 for 0.00005.
*validatedLedger.* hash | string | Unique hash for the ledger, as an uppercase hexadecimal string. *validatedLedger.* hash | string | Unique hash for the ledger, as an uppercase hexadecimal string.
*validatedLedger.* reserveBaseXRP | integer | Minimum amount of XRP (not drops) necessary for every account to keep in reserve. *validatedLedger.* reserveBaseXRP | integer | Minimum amount of XRP necessary for every account to keep in reserve.
*validatedLedger.* reserveIncrementXRP | integer | Amount of XRP (not drops) added to the account reserve for each object an account is responsible for in the ledger. *validatedLedger.* reserveIncrementXRP | integer | Amount of XRP added to the account reserve for each object an account is responsible for in the ledger.
*validatedLedger.* ledgerVersion | integer | Identifying sequence number of this ledger version. *validatedLedger.* ledgerVersion | integer | Identifying sequence number of this ledger version.
validationQuorum | number | Minimum number of trusted validations required in order to validate a ledger version. Some circumstances may cause the server to require more validations. validationQuorum | number | Minimum number of trusted validations required in order to validate a ledger version. Some circumstances may cause the server to require more validations.
load | object | *Optional* *(Admin only)* Detailed information about the current load state of the server. load | object | *Optional* *(Admin only)* Detailed information about the current load state of the server.
@@ -3311,7 +3311,7 @@ return api.computeLedgerHash(ledger);
# API Events # API Events
## ledgerClosed ## ledger
This event is emitted whenever a new ledger version is validated on the connected server. This event is emitted whenever a new ledger version is validated on the connected server.
@@ -3319,12 +3319,11 @@ This event is emitted whenever a new ledger version is validated on the connecte
Name | Type | Description Name | Type | Description
---- | ---- | ----------- ---- | ---- | -----------
feeBase | integer | Base fee, in drops. baseFeeXRP | [value](#value) | Base fee, in XRP.
feeReference | integer | Cost of the 'reference transaction' in 'fee units'.
ledgerHash | string | Unique hash of the ledger that was closed, as hex. ledgerHash | string | Unique hash of the ledger that was closed, as hex.
ledgerTimestamp | date-time string | The time at which this ledger closed. ledgerTimestamp | date-time string | The time at which this ledger closed.
reserveBase | integer | The minimum reserve, in drops of XRP, that is required for an account. reserveBaseXRP | [value](#value) | The minimum reserve, in drops of XRP, that is required for an account.
reserveIncrement | integer | The increase in account reserve that is added for each item the account owns, such as offers or trust lines. reserveIncrementXRP | [value](#value) | The increase in account reserve that is added for each item the account owns, such as offers or trust lines.
transactionCount | integer | Number of new transactions included in this ledger. transactionCount | integer | Number of new transactions included in this ledger.
ledgerVersion | integer | Ledger version of the ledger that closed. ledgerVersion | integer | Ledger version of the ledger that closed.
validatedLedgerVersions | string | Range of ledgers that the server has available. This may be discontiguous. validatedLedgerVersions | string | Range of ledgers that the server has available. This may be discontiguous.
@@ -3332,7 +3331,7 @@ validatedLedgerVersions | string | Range of ledgers that the server has availabl
### Example ### Example
```javascript ```javascript
api.on('ledgerClosed', ledger => { api.on('ledger', ledger => {
console.log(JSON.stringify(ledger, null, 2)); console.log(JSON.stringify(ledger, null, 2));
}); });
``` ```
@@ -3340,13 +3339,12 @@ api.on('ledgerClosed', ledger => {
```json ```json
{ {
"feeBase": 10, "baseFeeXRP": "0.00001",
"feeReference": 10,
"ledgerVersion": 14804627, "ledgerVersion": 14804627,
"ledgerHash": "9141FA171F2C0CE63E609466AF728FF66C12F7ACD4B4B50B0947A7F3409D593A", "ledgerHash": "9141FA171F2C0CE63E609466AF728FF66C12F7ACD4B4B50B0947A7F3409D593A",
"ledgerTimestamp": "2015-07-23T05:50:40.000Z", "ledgerTimestamp": "2015-07-23T05:50:40.000Z",
"reserveBase": 20000000, "reserveBaseXRP": "20",
"reserveIncrement": 5000000, "reserveIncrementXRP": "5",
"transactionCount": 19, "transactionCount": 19,
"validatedLedgerVersions": "13983423-14804627" "validatedLedgerVersions": "13983423-14804627"
} }

View File

@@ -1,22 +1,22 @@
# API Events # API Events
## ledgerClosed ## ledger
This event is emitted whenever a new ledger version is validated on the connected server. This event is emitted whenever a new ledger version is validated on the connected server.
### Return Value ### Return Value
<%- renderSchema('output/ledger-closed.json') %> <%- renderSchema('output/ledger-event.json') %>
### Example ### Example
```javascript ```javascript
api.on('ledgerClosed', ledger => { api.on('ledger', ledger => {
console.log(JSON.stringify(ledger, null, 2)); console.log(JSON.stringify(ledger, null, 2));
}); });
``` ```
<%- renderFixture('responses/ledger-closed.json') %> <%- renderFixture('responses/ledger-event.json') %>
## error ## error

View File

@@ -61,7 +61,7 @@ function loadSchemas() {
require('./schemas/output/get-orders.json'), require('./schemas/output/get-orders.json'),
require('./schemas/output/order-change.json'), require('./schemas/output/order-change.json'),
require('./schemas/output/prepare.json'), require('./schemas/output/prepare.json'),
require('./schemas/output/ledger-closed.json'), require('./schemas/output/ledger-event.json'),
require('./schemas/output/get-paths.json'), require('./schemas/output/get-paths.json'),
require('./schemas/output/get-server-info.json'), require('./schemas/output/get-server-info.json'),
require('./schemas/output/get-settings.json'), require('./schemas/output/get-settings.json'),

View File

@@ -93,12 +93,12 @@
"reserveBaseXRP": { "reserveBaseXRP": {
"type": "integer", "type": "integer",
"minimum": 0, "minimum": 0,
"description": "Minimum amount of XRP (not drops) necessary for every account to keep in reserve." "description": "Minimum amount of XRP necessary for every account to keep in reserve."
}, },
"reserveIncrementXRP": { "reserveIncrementXRP": {
"type": "integer", "type": "integer",
"minimum": 0, "minimum": 0,
"description": "Amount of XRP (not drops) added to the account reserve for each object an account is responsible for in the ledger." "description": "Amount of XRP added to the account reserve for each object an account is responsible for in the ledger."
}, },
"ledgerVersion": { "ledgerVersion": {
"type": "integer", "type": "integer",

View File

@@ -1,18 +1,12 @@
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"title": "ledgerClosed", "title": "ledgerEvent",
"description": "A ledgerClosed event message", "description": "A ledger event message",
"type": "object", "type": "object",
"properties": { "properties": {
"feeBase": { "baseFeeXRP": {
"type": "integer", "$ref": "value",
"minimum": 0, "description": "Base fee, in XRP."
"description": "Base fee, in drops."
},
"feeReference": {
"type": "integer",
"minimum": 0,
"description": "Cost of the 'reference transaction' in 'fee units'."
}, },
"ledgerHash": { "ledgerHash": {
"$ref": "hash256", "$ref": "hash256",
@@ -27,14 +21,12 @@
"format": "date-time", "format": "date-time",
"description": "The time at which this ledger closed." "description": "The time at which this ledger closed."
}, },
"reserveBase": { "reserveBaseXRP": {
"type": "integer", "$ref": "value",
"minimum": 0,
"description": "The minimum reserve, in drops of XRP, that is required for an account." "description": "The minimum reserve, in drops of XRP, that is required for an account."
}, },
"reserveIncrement": { "reserveIncrementXRP": {
"type": "integer", "$ref": "value",
"minimum": 0,
"description": "The increase in account reserve that is added for each item the account owns, such as offers or trust lines." "description": "The increase in account reserve that is added for each item the account owns, such as offers or trust lines."
}, },
"transactionCount": { "transactionCount": {
@@ -48,7 +40,7 @@
} }
}, },
"addtionalProperties": false, "addtionalProperties": false,
"required": ["feeBase", "feeReference", "ledgerHash", "ledgerTimestamp", "required": ["baseFeeXRP", "ledgerHash", "ledgerTimestamp",
"reserveBase", "reserveIncrement", "transactionCount", "reserveBaseXRP", "reserveIncrementXRP", "transactionCount",
"ledgerVersion", "validatedLedgerVersions"] "ledgerVersion", "validatedLedgerVersions"]
} }

View File

@@ -82,7 +82,7 @@ class RippleAPI extends EventEmitter {
if (servers.length === 1) { if (servers.length === 1) {
this.connection = new RestrictedConnection(servers[0], options); this.connection = new RestrictedConnection(servers[0], options);
this.connection.on('ledgerClosed', message => { this.connection.on('ledgerClosed', message => {
this.emit('ledgerClosed', server.formatLedgerClose(message)); this.emit('ledger', server.formatLedgerClose(message));
}); });
this.connection.on('error', (type, info) => { this.connection.on('error', (type, info) => {
this.emit('error', type, info); this.emit('error', type, info);

View File

@@ -30,13 +30,12 @@ function getFee(): Promise<number> {
function formatLedgerClose(ledgerClose: Object): Object { function formatLedgerClose(ledgerClose: Object): Object {
return { return {
feeBase: ledgerClose.fee_base, baseFeeXRP: common.dropsToXrp(ledgerClose.fee_base),
feeReference: ledgerClose.fee_ref,
ledgerHash: ledgerClose.ledger_hash, ledgerHash: ledgerClose.ledger_hash,
ledgerVersion: ledgerClose.ledger_index, ledgerVersion: ledgerClose.ledger_index,
ledgerTimestamp: common.rippleTimeToISO8601(ledgerClose.ledger_time), ledgerTimestamp: common.rippleTimeToISO8601(ledgerClose.ledger_time),
reserveBase: ledgerClose.reserve_base, reserveBaseXRP: common.dropsToXrp(ledgerClose.reserve_base),
reserveIncrement: ledgerClose.reserve_inc, reserveIncrementXRP: common.dropsToXrp(ledgerClose.reserve_inc),
transactionCount: ledgerClose.txn_count, transactionCount: ledgerClose.txn_count,
validatedLedgerVersions: ledgerClose.validated_ledgers validatedLedgerVersions: ledgerClose.validated_ledgers
}; };

View File

@@ -896,9 +896,9 @@ describe('RippleAPI', function() {
}); });
it('ledgerClosed', function(done) { it('ledger event', function(done) {
this.api.on('ledgerClosed', message => { this.api.on('ledger', message => {
checkResult(responses.ledgerClosed, 'ledgerClosed', message); checkResult(responses.ledgerEvent, 'ledgerEvent', message);
done(); done();
}); });
closeLedger(this.api.connection); closeLedger(this.api.connection);

View File

@@ -77,5 +77,5 @@ module.exports = {
sign: require('./sign.json'), sign: require('./sign.json'),
signSuspended: require('./sign-suspended.json'), signSuspended: require('./sign-suspended.json'),
submit: require('./submit.json'), submit: require('./submit.json'),
ledgerClosed: require('./ledger-closed.json') ledgerEvent: require('./ledger-event.json')
}; };

View File

@@ -1,11 +1,10 @@
{ {
"feeBase": 10, "baseFeeXRP": "0.00001",
"feeReference": 10,
"ledgerVersion": 14804627, "ledgerVersion": 14804627,
"ledgerHash": "9141FA171F2C0CE63E609466AF728FF66C12F7ACD4B4B50B0947A7F3409D593A", "ledgerHash": "9141FA171F2C0CE63E609466AF728FF66C12F7ACD4B4B50B0947A7F3409D593A",
"ledgerTimestamp": "2015-07-23T05:50:40.000Z", "ledgerTimestamp": "2015-07-23T05:50:40.000Z",
"reserveBase": 20000000, "reserveBaseXRP": "20",
"reserveIncrement": 5000000, "reserveIncrementXRP": "5",
"transactionCount": 19, "transactionCount": 19,
"validatedLedgerVersions": "13983423-14804627" "validatedLedgerVersions": "13983423-14804627"
} }

View File

@@ -25,7 +25,7 @@ function setupMockRippledConnection(testcase, port, done) {
testcase.mockRippled = createMockRippled(port); testcase.mockRippled = createMockRippled(port);
testcase.api = new RippleAPI({servers: ['ws://localhost:' + port]}); testcase.api = new RippleAPI({servers: ['ws://localhost:' + port]});
testcase.api.connect().then(() => { testcase.api.connect().then(() => {
testcase.api.once('ledgerClosed', () => done()); testcase.api.once('ledger', () => done());
testcase.api.connection._ws.emit('message', JSON.stringify(ledgerClosed)); testcase.api.connection._ws.emit('message', JSON.stringify(ledgerClosed));
}).catch(done); }).catch(done);
} }