Skip to content

Commit

Permalink
BREAKING CHANGE: Rename "ledgerClosed" event to "ledger" and convert …
Browse files Browse the repository at this point in the history
…drops amounts to XRP
  • Loading branch information
Chris Clark committed Nov 20, 2015
1 parent 10eb080 commit 8a3d4a6
Show file tree
Hide file tree
Showing 11 changed files with 41 additions and 53 deletions.
24 changes: 11 additions & 13 deletions docs/index.md
Expand Up @@ -56,7 +56,7 @@
- [generateAddress](#generateaddress)
- [computeLedgerHash](#computeledgerhash)
- [API Events](#api-events)
- [ledgerClosed](#ledgerclosed)
- [ledger](#ledger)
- [error](#error)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->
Expand Down Expand Up @@ -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.* 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.* reserveBaseXRP | integer | Minimum amount of XRP (not drops) 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.* reserveBaseXRP | integer | Minimum amount of XRP necessary for every account to keep in reserve.
*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.
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.
Expand Down Expand Up @@ -3311,42 +3311,40 @@ return api.computeLedgerHash(ledger);

# API Events

## ledgerClosed
## ledger

This event is emitted whenever a new ledger version is validated on the connected server.

### Return Value

Name | Type | Description
---- | ---- | -----------
feeBase | integer | Base fee, in drops.
feeReference | integer | Cost of the 'reference transaction' in 'fee units'.
baseFeeXRP | [value](#value) | Base fee, in XRP.
ledgerHash | string | Unique hash of the ledger that was closed, as hex.
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.
reserveIncrement | integer | The increase in account reserve that is added for each item the account owns, such as offers or trust lines.
reserveBaseXRP | [value](#value) | The minimum reserve, in drops of XRP, that is required for an account.
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.
ledgerVersion | integer | Ledger version of the ledger that closed.
validatedLedgerVersions | string | Range of ledgers that the server has available. This may be discontiguous.

### Example

```javascript
api.on('ledgerClosed', ledger => {
api.on('ledger', ledger => {
console.log(JSON.stringify(ledger, null, 2));
});
```


```json
{
"feeBase": 10,
"feeReference": 10,
"baseFeeXRP": "0.00001",
"ledgerVersion": 14804627,
"ledgerHash": "9141FA171F2C0CE63E609466AF728FF66C12F7ACD4B4B50B0947A7F3409D593A",
"ledgerTimestamp": "2015-07-23T05:50:40.000Z",
"reserveBase": 20000000,
"reserveIncrement": 5000000,
"reserveBaseXRP": "20",
"reserveIncrementXRP": "5",
"transactionCount": 19,
"validatedLedgerVersions": "13983423-14804627"
}
Expand Down
8 changes: 4 additions & 4 deletions docs/src/events.md.ejs
@@ -1,22 +1,22 @@
# API Events

## ledgerClosed
## ledger

This event is emitted whenever a new ledger version is validated on the connected server.

### Return Value

<%- renderSchema('output/ledger-closed.json') %>
<%- renderSchema('output/ledger-event.json') %>

### Example

```javascript
api.on('ledgerClosed', ledger => {
api.on('ledger', ledger => {
console.log(JSON.stringify(ledger, null, 2));
});
```

<%- renderFixture('responses/ledger-closed.json') %>
<%- renderFixture('responses/ledger-event.json') %>

## error

Expand Down
2 changes: 1 addition & 1 deletion src/common/schema-validator.js
Expand Up @@ -61,7 +61,7 @@ function loadSchemas() {
require('./schemas/output/get-orders.json'),
require('./schemas/output/order-change.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-server-info.json'),
require('./schemas/output/get-settings.json'),
Expand Down
4 changes: 2 additions & 2 deletions src/common/schemas/output/get-server-info.json
Expand Up @@ -93,12 +93,12 @@
"reserveBaseXRP": {
"type": "integer",
"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": {
"type": "integer",
"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": {
"type": "integer",
Expand Down
@@ -1,18 +1,12 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ledgerClosed",
"description": "A ledgerClosed event message",
"title": "ledgerEvent",
"description": "A ledger event message",
"type": "object",
"properties": {
"feeBase": {
"type": "integer",
"minimum": 0,
"description": "Base fee, in drops."
},
"feeReference": {
"type": "integer",
"minimum": 0,
"description": "Cost of the 'reference transaction' in 'fee units'."
"baseFeeXRP": {
"$ref": "value",
"description": "Base fee, in XRP."
},
"ledgerHash": {
"$ref": "hash256",
Expand All @@ -27,14 +21,12 @@
"format": "date-time",
"description": "The time at which this ledger closed."
},
"reserveBase": {
"type": "integer",
"minimum": 0,
"reserveBaseXRP": {
"$ref": "value",
"description": "The minimum reserve, in drops of XRP, that is required for an account."
},
"reserveIncrement": {
"type": "integer",
"minimum": 0,
"reserveIncrementXRP": {
"$ref": "value",
"description": "The increase in account reserve that is added for each item the account owns, such as offers or trust lines."
},
"transactionCount": {
Expand All @@ -48,7 +40,7 @@
}
},
"addtionalProperties": false,
"required": ["feeBase", "feeReference", "ledgerHash", "ledgerTimestamp",
"reserveBase", "reserveIncrement", "transactionCount",
"required": ["baseFeeXRP", "ledgerHash", "ledgerTimestamp",
"reserveBaseXRP", "reserveIncrementXRP", "transactionCount",
"ledgerVersion", "validatedLedgerVersions"]
}
2 changes: 1 addition & 1 deletion src/index.js
Expand Up @@ -82,7 +82,7 @@ class RippleAPI extends EventEmitter {
if (servers.length === 1) {
this.connection = new RestrictedConnection(servers[0], options);
this.connection.on('ledgerClosed', message => {
this.emit('ledgerClosed', server.formatLedgerClose(message));
this.emit('ledger', server.formatLedgerClose(message));
});
this.connection.on('error', (type, info) => {
this.emit('error', type, info);
Expand Down
7 changes: 3 additions & 4 deletions src/server/server.js
Expand Up @@ -30,13 +30,12 @@ function getFee(): Promise<number> {

function formatLedgerClose(ledgerClose: Object): Object {
return {
feeBase: ledgerClose.fee_base,
feeReference: ledgerClose.fee_ref,
baseFeeXRP: common.dropsToXrp(ledgerClose.fee_base),
ledgerHash: ledgerClose.ledger_hash,
ledgerVersion: ledgerClose.ledger_index,
ledgerTimestamp: common.rippleTimeToISO8601(ledgerClose.ledger_time),
reserveBase: ledgerClose.reserve_base,
reserveIncrement: ledgerClose.reserve_inc,
reserveBaseXRP: common.dropsToXrp(ledgerClose.reserve_base),
reserveIncrementXRP: common.dropsToXrp(ledgerClose.reserve_inc),
transactionCount: ledgerClose.txn_count,
validatedLedgerVersions: ledgerClose.validated_ledgers
};
Expand Down
6 changes: 3 additions & 3 deletions test/api-test.js
Expand Up @@ -896,9 +896,9 @@ describe('RippleAPI', function() {

});

it('ledgerClosed', function(done) {
this.api.on('ledgerClosed', message => {
checkResult(responses.ledgerClosed, 'ledgerClosed', message);
it('ledger event', function(done) {
this.api.on('ledger', message => {
checkResult(responses.ledgerEvent, 'ledgerEvent', message);
done();
});
closeLedger(this.api.connection);
Expand Down
2 changes: 1 addition & 1 deletion test/fixtures/responses/index.js
Expand Up @@ -77,5 +77,5 @@ module.exports = {
sign: require('./sign.json'),
signSuspended: require('./sign-suspended.json'),
submit: require('./submit.json'),
ledgerClosed: require('./ledger-closed.json')
ledgerEvent: require('./ledger-event.json')
};
@@ -1,11 +1,10 @@
{
"feeBase": 10,
"feeReference": 10,
"baseFeeXRP": "0.00001",
"ledgerVersion": 14804627,
"ledgerHash": "9141FA171F2C0CE63E609466AF728FF66C12F7ACD4B4B50B0947A7F3409D593A",
"ledgerTimestamp": "2015-07-23T05:50:40.000Z",
"reserveBase": 20000000,
"reserveIncrement": 5000000,
"reserveBaseXRP": "20",
"reserveIncrementXRP": "5",
"transactionCount": 19,
"validatedLedgerVersions": "13983423-14804627"
}
2 changes: 1 addition & 1 deletion test/setup-api.js
Expand Up @@ -25,7 +25,7 @@ function setupMockRippledConnection(testcase, port, done) {
testcase.mockRippled = createMockRippled(port);
testcase.api = new RippleAPI({servers: ['ws://localhost:' + port]});
testcase.api.connect().then(() => {
testcase.api.once('ledgerClosed', () => done());
testcase.api.once('ledger', () => done());
testcase.api.connection._ws.emit('message', JSON.stringify(ledgerClosed));
}).catch(done);
}
Expand Down

0 comments on commit 8a3d4a6

Please sign in to comment.