mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-20 12:15:51 +00:00
Rename server info response fields
This commit is contained in:
@@ -12,7 +12,7 @@
|
|||||||
"pattern": "[0-9,-]+",
|
"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”."
|
"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",
|
"type": "string",
|
||||||
"description": "On an admin request, returns the hostname of the server running the rippled instance; otherwise, returns a unique four letter word."
|
"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": {
|
"properties": {
|
||||||
"convergeTimeS": {
|
"convergeTimeS": {
|
||||||
"type": "number",
|
"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": {
|
"proposers": {
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
"minimum": 0,
|
"minimum": 0,
|
||||||
"description": "The time since the ledger was closed, in seconds."
|
"description": "The time since the ledger was closed, in seconds."
|
||||||
},
|
},
|
||||||
"baseFeeXrp": {
|
"baseFeeXRP": {
|
||||||
"type": "number",
|
"type": "number",
|
||||||
"description": "Base fee, in XRP. This may be represented in scientific notation such as 1e-05 for 0.00005."
|
"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",
|
"$ref": "hash256",
|
||||||
"description": "Unique hash for the ledger, as an uppercase hexadecimal string."
|
"description": "Unique hash for the ledger, as an uppercase hexadecimal string."
|
||||||
},
|
},
|
||||||
"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 (not drops) necessary for every account to keep in reserve."
|
||||||
},
|
},
|
||||||
"reserveIncXrp": {
|
"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 (not drops) added to the account reserve for each object an account is responsible for in the ledger."
|
||||||
},
|
},
|
||||||
"seq": {
|
"ledgerVersion": {
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"minimum": 0,
|
"minimum": 0,
|
||||||
"description": "Identifying sequence number of this ledger version."
|
"description": "Identifying sequence number of this ledger version."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"additionalProperties": false,
|
"additionalProperties": false,
|
||||||
"required": ["age", "baseFeeXrp", "hash", "reserveBaseXrp", "reserveIncXrp", "seq"]
|
"required": ["age", "baseFeeXRP", "hash", "reserveBaseXRP", "reserveIncrementXRP", "ledgerVersion"]
|
||||||
},
|
},
|
||||||
"validationQuorum": {
|
"validationQuorum": {
|
||||||
"type": "number",
|
"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."
|
"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
|
"additionalProperties": false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,16 +32,31 @@ export type GetServerInfoResponse = {
|
|||||||
validationQuorum: number
|
validationQuorum: number
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function renameKeys(object, mapping) {
|
||||||
|
_.forEach(mapping, (to, from) => {
|
||||||
|
object[to] = object[from];
|
||||||
|
delete object[from];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function getServerInfo(connection: Connection): Promise<GetServerInfoResponse> {
|
function getServerInfo(connection: Connection): Promise<GetServerInfoResponse> {
|
||||||
return connection.request({command: 'server_info'}).then(response =>
|
return connection.request({command: 'server_info'}).then(response => {
|
||||||
convertKeysFromSnakeCaseToCamelCase(response.info)
|
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,
|
function computeFeeFromServerInfo(cushion: number,
|
||||||
serverInfo: GetServerInfoResponse
|
serverInfo: GetServerInfoResponse
|
||||||
): number {
|
): number {
|
||||||
return (Number(serverInfo.validatedLedger.baseFeeXrp)
|
return (Number(serverInfo.validatedLedger.baseFeeXRP)
|
||||||
* Number(serverInfo.loadFactor) * cushion).toString();
|
* Number(serverInfo.loadFactor) * cushion).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
10
test/fixtures/responses/get-server-info.json
vendored
10
test/fixtures/responses/get-server-info.json
vendored
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"buildVersion": "0.24.0-rc1",
|
"buildVersion": "0.24.0-rc1",
|
||||||
"completeLedgers": "32570-6595042",
|
"completeLedgers": "32570-6595042",
|
||||||
"hostid": "ARTS",
|
"hostID": "ARTS",
|
||||||
"ioLatencyMs": 1,
|
"ioLatencyMs": 1,
|
||||||
"lastClose": {
|
"lastClose": {
|
||||||
"convergeTimeS": 2.007,
|
"convergeTimeS": 2.007,
|
||||||
@@ -13,11 +13,11 @@
|
|||||||
"serverState": "full",
|
"serverState": "full",
|
||||||
"validatedLedger": {
|
"validatedLedger": {
|
||||||
"age": 5,
|
"age": 5,
|
||||||
"baseFeeXrp": 0.00001,
|
"baseFeeXRP": 0.00001,
|
||||||
"hash": "4482DEE5362332F54A4036ED57EE1767C9F33CF7CE5A6670355C16CECE381D46",
|
"hash": "4482DEE5362332F54A4036ED57EE1767C9F33CF7CE5A6670355C16CECE381D46",
|
||||||
"reserveBaseXrp": 20,
|
"reserveBaseXRP": 20,
|
||||||
"reserveIncXrp": 5,
|
"reserveIncrementXRP": 5,
|
||||||
"seq": 6595042
|
"ledgerVersion": 6595042
|
||||||
},
|
},
|
||||||
"validationQuorum": 3
|
"validationQuorum": 3
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user