diff --git a/src/common/schemas/output/get-server-info.json b/src/common/schemas/output/get-server-info.json index 76fdd25c..3ffd4489 100644 --- a/src/common/schemas/output/get-server-info.json +++ b/src/common/schemas/output/get-server-info.json @@ -12,7 +12,7 @@ "pattern": "[0-9,-]+", "description": "Range expression indicating the sequence numbers of the ledger versions the local rippled has in its database. It is possible to be a disjoint sequence, e.g. “2500-5000,32570-7695432”." }, - "hostid": { + "hostID": { "type": "string", "description": "On an admin request, returns the hostname of the server running the rippled instance; otherwise, returns a unique four letter word." }, @@ -42,7 +42,7 @@ "properties": { "convergeTimeS": { "type": "number", - "description": "The time it took to reach a consensus for the last ledger closing." + "description": "The time it took to reach a consensus for the last ledger closing, in seconds." }, "proposers": { "type": "integer", @@ -82,7 +82,7 @@ "minimum": 0, "description": "The time since the ledger was closed, in seconds." }, - "baseFeeXrp": { + "baseFeeXRP": { "type": "number", "description": "Base fee, in XRP. This may be represented in scientific notation such as 1e-05 for 0.00005." }, @@ -90,30 +90,30 @@ "$ref": "hash256", "description": "Unique hash for the ledger, as an uppercase hexadecimal string." }, - "reserveBaseXrp": { + "reserveBaseXRP": { "type": "integer", "minimum": 0, "description": "Minimum amount of XRP (not drops) necessary for every account to keep in reserve." }, - "reserveIncXrp": { + "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." }, - "seq": { + "ledgerVersion": { "type": "integer", "minimum": 0, "description": "Identifying sequence number of this ledger version." } }, "additionalProperties": false, - "required": ["age", "baseFeeXrp", "hash", "reserveBaseXrp", "reserveIncXrp", "seq"] + "required": ["age", "baseFeeXRP", "hash", "reserveBaseXRP", "reserveIncrementXRP", "ledgerVersion"] }, "validationQuorum": { "type": "number", "description": "Minimum number of trusted validations required in order to validate a ledger version. Some circumstances may cause the server to require more validations." } }, - "required": ["buildVersion", "completeLedgers", "hostid", "ioLatencyMs", "lastClose", "loadFactor", "peers", "pubkeyNode", "serverState", "validatedLedger", "validationQuorum"], + "required": ["buildVersion", "completeLedgers", "hostID", "ioLatencyMs", "lastClose", "loadFactor", "peers", "pubkeyNode", "serverState", "validatedLedger", "validationQuorum"], "additionalProperties": false } diff --git a/src/common/serverinfo.js b/src/common/serverinfo.js index 05a64368..9f4ff19b 100644 --- a/src/common/serverinfo.js +++ b/src/common/serverinfo.js @@ -32,16 +32,31 @@ export type GetServerInfoResponse = { validationQuorum: number } +function renameKeys(object, mapping) { + _.forEach(mapping, (to, from) => { + object[to] = object[from]; + delete object[from]; + }); +} + function getServerInfo(connection: Connection): Promise { - return connection.request({command: 'server_info'}).then(response => - convertKeysFromSnakeCaseToCamelCase(response.info) - ); + return connection.request({command: 'server_info'}).then(response => { + const info = convertKeysFromSnakeCaseToCamelCase(response.info); + renameKeys(info, {hostid: 'hostID'}); + renameKeys(info.validatedLedger, { + baseFeeXrp: 'baseFeeXRP', + reserveBaseXrp: 'reserveBaseXRP', + reserveIncXrp: 'reserveIncrementXRP', + seq: 'ledgerVersion' + }); + return info; + }); } function computeFeeFromServerInfo(cushion: number, serverInfo: GetServerInfoResponse ): number { - return (Number(serverInfo.validatedLedger.baseFeeXrp) + return (Number(serverInfo.validatedLedger.baseFeeXRP) * Number(serverInfo.loadFactor) * cushion).toString(); } diff --git a/test/fixtures/responses/get-server-info.json b/test/fixtures/responses/get-server-info.json index 6a765d30..c44622a2 100644 --- a/test/fixtures/responses/get-server-info.json +++ b/test/fixtures/responses/get-server-info.json @@ -1,7 +1,7 @@ { "buildVersion": "0.24.0-rc1", "completeLedgers": "32570-6595042", - "hostid": "ARTS", + "hostID": "ARTS", "ioLatencyMs": 1, "lastClose": { "convergeTimeS": 2.007, @@ -13,11 +13,11 @@ "serverState": "full", "validatedLedger": { "age": 5, - "baseFeeXrp": 0.00001, + "baseFeeXRP": 0.00001, "hash": "4482DEE5362332F54A4036ED57EE1767C9F33CF7CE5A6670355C16CECE381D46", - "reserveBaseXrp": 20, - "reserveIncXrp": 5, - "seq": 6595042 + "reserveBaseXRP": 20, + "reserveIncrementXRP": 5, + "ledgerVersion": 6595042 }, "validationQuorum": 3 }