@dydxprotocol/v4-client-js 0.35.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__native__/__ios__/v4-native-client.js +1026 -3963
- package/__native__/__ios__/v4-native-client.js.map +1 -0
- package/__tests__/modules/client/MarketsEndpoints.test.ts +1 -15
- package/__tests__/modules/client/UtilityEndpoints.test.ts +29 -0
- package/build/__tests__/modules/client/MarketsEndpoints.test.js +2 -14
- package/build/__tests__/modules/client/UtilityEndpoints.test.d.ts +1 -0
- package/build/__tests__/modules/client/UtilityEndpoints.test.js +28 -0
- package/build/examples/markets_endpoints.d.ts +1 -1
- package/build/examples/markets_endpoints.js +2 -28
- package/build/examples/utility_endpoints.d.ts +4 -0
- package/build/examples/utility_endpoints.js +41 -0
- package/build/src/clients/indexer-client.d.ts +6 -0
- package/build/src/clients/indexer-client.js +9 -1
- package/build/src/clients/modules/markets.d.ts +0 -2
- package/build/src/clients/modules/markets.js +1 -9
- package/build/src/clients/modules/utility.d.ts +20 -0
- package/build/src/clients/modules/utility.js +35 -0
- package/build/src/clients/types.d.ts +11 -0
- package/build/src/clients/types.js +1 -1
- package/build/src/network_optimizer.js +1 -1
- package/build/src/types.d.ts +0 -11
- package/build/src/types.js +2 -10
- package/examples/markets_endpoints.ts +1 -27
- package/examples/utility_endpoints.ts +41 -0
- package/package.json +1 -1
- package/src/clients/indexer-client.ts +10 -0
- package/src/clients/modules/markets.ts +0 -10
- package/src/clients/modules/utility.ts +32 -0
- package/src/clients/types.ts +15 -0
- package/src/network_optimizer.ts +1 -1
- package/src/types.ts +0 -14
|
@@ -7,21 +7,7 @@ export const MARKET_BTC_USD: string = 'BTC-USD';
|
|
|
7
7
|
describe('IndexerClient', () => {
|
|
8
8
|
const client = new IndexerClient(Network.staging().indexerConfig);
|
|
9
9
|
|
|
10
|
-
describe('
|
|
11
|
-
it('Indexer time', async () => {
|
|
12
|
-
const response = await client.markets.getTime();
|
|
13
|
-
const iso = response.iso;
|
|
14
|
-
expect(iso).not.toBeUndefined();
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
it('Indexer height', async () => {
|
|
18
|
-
const response = await client.markets.getHeight();
|
|
19
|
-
const height = response.height;
|
|
20
|
-
const time = response.time;
|
|
21
|
-
expect(height).not.toBeUndefined();
|
|
22
|
-
expect(time).not.toBeUndefined();
|
|
23
|
-
});
|
|
24
|
-
|
|
10
|
+
describe('Market Endpoints', () => {
|
|
25
11
|
it('Markets', async () => {
|
|
26
12
|
const response = await client.markets.getPerpetualMarkets();
|
|
27
13
|
const btc = response.markets[MARKET_BTC_USD];
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { IndexerClient } from '../../../src';
|
|
2
|
+
import { Network } from '../../../src/clients/constants';
|
|
3
|
+
import { DYDX_TEST_ADDRESS } from './constants';
|
|
4
|
+
|
|
5
|
+
describe('IndexerClient', () => {
|
|
6
|
+
const client = new IndexerClient(Network.staging().indexerConfig);
|
|
7
|
+
|
|
8
|
+
describe('Utility Endpoints', () => {
|
|
9
|
+
it('getTime', async () => {
|
|
10
|
+
const response = await client.utility.getTime();
|
|
11
|
+
const iso = response.iso;
|
|
12
|
+
expect(iso).not.toBeUndefined();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('getHeight', async () => {
|
|
16
|
+
const response = await client.utility.getHeight();
|
|
17
|
+
const height = response.height;
|
|
18
|
+
const time = response.time;
|
|
19
|
+
expect(height).not.toBeUndefined();
|
|
20
|
+
expect(time).not.toBeUndefined();
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it('Screen Address', async () => {
|
|
24
|
+
const response = await client.utility.screen(DYDX_TEST_ADDRESS);
|
|
25
|
+
const { restricted } = response ?? {};
|
|
26
|
+
expect(restricted).toBeDefined();
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
});
|
|
@@ -7,19 +7,7 @@ const indexer_client_1 = require("../../../src/clients/indexer-client");
|
|
|
7
7
|
exports.MARKET_BTC_USD = 'BTC-USD';
|
|
8
8
|
describe('IndexerClient', () => {
|
|
9
9
|
const client = new indexer_client_1.IndexerClient(constants_1.Network.staging().indexerConfig);
|
|
10
|
-
describe('
|
|
11
|
-
it('Indexer time', async () => {
|
|
12
|
-
const response = await client.markets.getTime();
|
|
13
|
-
const iso = response.iso;
|
|
14
|
-
expect(iso).not.toBeUndefined();
|
|
15
|
-
});
|
|
16
|
-
it('Indexer height', async () => {
|
|
17
|
-
const response = await client.markets.getHeight();
|
|
18
|
-
const height = response.height;
|
|
19
|
-
const time = response.time;
|
|
20
|
-
expect(height).not.toBeUndefined();
|
|
21
|
-
expect(time).not.toBeUndefined();
|
|
22
|
-
});
|
|
10
|
+
describe('Market Endpoints', () => {
|
|
23
11
|
it('Markets', async () => {
|
|
24
12
|
const response = await client.markets.getPerpetualMarkets();
|
|
25
13
|
const btc = response.markets[exports.MARKET_BTC_USD];
|
|
@@ -66,4 +54,4 @@ describe('IndexerClient', () => {
|
|
|
66
54
|
});
|
|
67
55
|
});
|
|
68
56
|
});
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFya2V0c0VuZHBvaW50cy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vX190ZXN0c19fL21vZHVsZXMvY2xpZW50L01hcmtldHNFbmRwb2ludHMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4REFBeUQ7QUFDekQsd0VBQW9FO0FBRXBFLG9DQUFvQztBQUN2QixRQUFBLGNBQWMsR0FBVyxTQUFTLENBQUM7QUFFaEQsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7SUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSw4QkFBYSxDQUFDLG1CQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFbEUsUUFBUSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtRQUNoQyxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3ZCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzVELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsc0JBQWMsQ0FBQyxDQUFDO1lBQzdDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDMUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLHNCQUFjLENBQUMsQ0FBQztZQUMxRSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLHNCQUFjLENBQUMsQ0FBQztZQUM3QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxNQUFNLENB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const src_1 = require("../../../src");
|
|
4
|
+
const constants_1 = require("../../../src/clients/constants");
|
|
5
|
+
const constants_2 = require("./constants");
|
|
6
|
+
describe('IndexerClient', () => {
|
|
7
|
+
const client = new src_1.IndexerClient(constants_1.Network.staging().indexerConfig);
|
|
8
|
+
describe('Utility Endpoints', () => {
|
|
9
|
+
it('getTime', async () => {
|
|
10
|
+
const response = await client.utility.getTime();
|
|
11
|
+
const iso = response.iso;
|
|
12
|
+
expect(iso).not.toBeUndefined();
|
|
13
|
+
});
|
|
14
|
+
it('getHeight', async () => {
|
|
15
|
+
const response = await client.utility.getHeight();
|
|
16
|
+
const height = response.height;
|
|
17
|
+
const time = response.time;
|
|
18
|
+
expect(height).not.toBeUndefined();
|
|
19
|
+
expect(time).not.toBeUndefined();
|
|
20
|
+
});
|
|
21
|
+
it('Screen Address', async () => {
|
|
22
|
+
const response = await client.utility.screen(constants_2.DYDX_TEST_ADDRESS);
|
|
23
|
+
const { restricted } = response !== null && response !== void 0 ? response : {};
|
|
24
|
+
expect(restricted).toBeDefined();
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbGl0eUVuZHBvaW50cy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vX190ZXN0c19fL21vZHVsZXMvY2xpZW50L1V0aWxpdHlFbmRwb2ludHMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNDQUE2QztBQUM3Qyw4REFBeUQ7QUFDekQsMkNBQWdEO0FBRWhELFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksbUJBQWEsQ0FBQyxtQkFBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRWxFLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN2QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEQsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUN6QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN6QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMvQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLDZCQUFpQixDQUFDLENBQUM7WUFDaEUsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLFFBQVEsYUFBUixRQUFRLGNBQVIsUUFBUSxHQUFJLEVBQUUsQ0FBQztZQUN0QyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Simple JS example demostrating accessing
|
|
3
|
+
* Simple JS example demostrating accessing market data with Indexer REST endpoints
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.MARKET_BTC_USD = void 0;
|
|
@@ -10,32 +10,6 @@ const indexer_client_1 = require("../src/clients/indexer-client");
|
|
|
10
10
|
exports.MARKET_BTC_USD = 'BTC-USD';
|
|
11
11
|
async function test() {
|
|
12
12
|
const client = new indexer_client_1.IndexerClient(constants_1.Network.staging().indexerConfig);
|
|
13
|
-
// Get indexer server time
|
|
14
|
-
try {
|
|
15
|
-
const response = await client.markets.getTime();
|
|
16
|
-
console.log(response);
|
|
17
|
-
const timeIso = response.iso;
|
|
18
|
-
const timeEpoch = response.epoch;
|
|
19
|
-
console.log('time');
|
|
20
|
-
console.log(timeIso);
|
|
21
|
-
console.log(timeEpoch);
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
console.log(error.message);
|
|
25
|
-
}
|
|
26
|
-
// Get indexer server height
|
|
27
|
-
try {
|
|
28
|
-
const response = await client.markets.getHeight();
|
|
29
|
-
console.log(response);
|
|
30
|
-
const height = response.height;
|
|
31
|
-
const heightTime = response.time;
|
|
32
|
-
console.log('height');
|
|
33
|
-
console.log(height);
|
|
34
|
-
console.log(heightTime);
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
console.log(error.message);
|
|
38
|
-
}
|
|
39
13
|
// Get perp markets
|
|
40
14
|
try {
|
|
41
15
|
const response = await client.markets.getPerpetualMarkets();
|
|
@@ -156,4 +130,4 @@ test().then(() => {
|
|
|
156
130
|
}).catch((error) => {
|
|
157
131
|
console.log(error.message);
|
|
158
132
|
});
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0c19lbmRwb2ludHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9leGFtcGxlcy9tYXJrZXRzX2VuZHBvaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQUVILHdEQUFtRDtBQUNuRCxrRUFBOEQ7QUFFOUQsb0NBQW9DO0FBQ3ZCLFFBQUEsY0FBYyxHQUFXLFNBQVMsQ0FBQztBQUVoRCxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLDhCQUFhLENBQUMsbUJBQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVsRSxtQkFBbUI7SUFDbkIsSUFBSTtRQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzVELE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUM5QjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDNUI7SUFFRCxJQUFJO1FBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLHNCQUFjLENBQUMsQ0FBQztRQUMxRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkIsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLE9B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
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Simple JS example demostrating accessing public data with Indexer REST endpoints
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const constants_1 = require("../src/clients/constants");
|
|
7
|
+
const indexer_client_1 = require("../src/clients/indexer-client");
|
|
8
|
+
async function test() {
|
|
9
|
+
const client = new indexer_client_1.IndexerClient(constants_1.Network.staging().indexerConfig);
|
|
10
|
+
// Get indexer server time
|
|
11
|
+
try {
|
|
12
|
+
const response = await client.utility.getTime();
|
|
13
|
+
console.log(response);
|
|
14
|
+
const timeIso = response.iso;
|
|
15
|
+
const timeEpoch = response.epoch;
|
|
16
|
+
console.log('time');
|
|
17
|
+
console.log(timeIso);
|
|
18
|
+
console.log(timeEpoch);
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
console.log(error.message);
|
|
22
|
+
}
|
|
23
|
+
// Get indexer server height
|
|
24
|
+
try {
|
|
25
|
+
const response = await client.utility.getHeight();
|
|
26
|
+
console.log(response);
|
|
27
|
+
const height = response.height;
|
|
28
|
+
const heightTime = response.time;
|
|
29
|
+
console.log('height');
|
|
30
|
+
console.log(height);
|
|
31
|
+
console.log(heightTime);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
console.log(error.message);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
test().then(() => {
|
|
38
|
+
}).catch((error) => {
|
|
39
|
+
console.log(error.message);
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eV9lbmRwb2ludHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9leGFtcGxlcy91dGlsaXR5X2VuZHBvaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7O0FBRUgsd0RBQW1EO0FBQ25ELGtFQUE4RDtBQUU5RCxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLDhCQUFhLENBQUMsbUJBQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVsRSwwQkFBMEI7SUFDMUIsSUFBSTtRQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoRCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDN0IsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUN4QjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDNUI7SUFFRCw0QkFBNEI7SUFDNUIsSUFBSTtRQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsRCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDL0IsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUN6QjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNqQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IndexerConfig } from './constants';
|
|
2
2
|
import AccountClient from './modules/account';
|
|
3
3
|
import MarketsClient from './modules/markets';
|
|
4
|
+
import UtilityClient from './modules/utility';
|
|
4
5
|
/**
|
|
5
6
|
* @description Client for Indexer
|
|
6
7
|
*/
|
|
@@ -9,6 +10,7 @@ export declare class IndexerClient {
|
|
|
9
10
|
readonly apiTimeout: number;
|
|
10
11
|
readonly _markets: MarketsClient;
|
|
11
12
|
readonly _account: AccountClient;
|
|
13
|
+
readonly _utility: UtilityClient;
|
|
12
14
|
constructor(config: IndexerConfig, apiTimeout?: number);
|
|
13
15
|
/**
|
|
14
16
|
* @description Get the public module, used for interacting with public endpoints.
|
|
@@ -22,4 +24,8 @@ export declare class IndexerClient {
|
|
|
22
24
|
* @returns The private module
|
|
23
25
|
*/
|
|
24
26
|
get account(): AccountClient;
|
|
27
|
+
/**
|
|
28
|
+
* @description Get the utility module, used for interacting with non-market public endpoints.
|
|
29
|
+
*/
|
|
30
|
+
get utility(): UtilityClient;
|
|
25
31
|
}
|
|
@@ -7,6 +7,7 @@ exports.IndexerClient = void 0;
|
|
|
7
7
|
const constants_1 = require("./constants");
|
|
8
8
|
const account_1 = __importDefault(require("./modules/account"));
|
|
9
9
|
const markets_1 = __importDefault(require("./modules/markets"));
|
|
10
|
+
const utility_1 = __importDefault(require("./modules/utility"));
|
|
10
11
|
/**
|
|
11
12
|
* @description Client for Indexer
|
|
12
13
|
*/
|
|
@@ -16,6 +17,7 @@ class IndexerClient {
|
|
|
16
17
|
this.apiTimeout = apiTimeout !== null && apiTimeout !== void 0 ? apiTimeout : constants_1.DEFAULT_API_TIMEOUT;
|
|
17
18
|
this._markets = new markets_1.default(config.restEndpoint);
|
|
18
19
|
this._account = new account_1.default(config.restEndpoint);
|
|
20
|
+
this._utility = new utility_1.default(config.restEndpoint);
|
|
19
21
|
}
|
|
20
22
|
/**
|
|
21
23
|
* @description Get the public module, used for interacting with public endpoints.
|
|
@@ -33,6 +35,12 @@ class IndexerClient {
|
|
|
33
35
|
get account() {
|
|
34
36
|
return this._account;
|
|
35
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* @description Get the utility module, used for interacting with non-market public endpoints.
|
|
40
|
+
*/
|
|
41
|
+
get utility() {
|
|
42
|
+
return this._utility;
|
|
43
|
+
}
|
|
36
44
|
}
|
|
37
45
|
exports.IndexerClient = IndexerClient;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlci1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50cy9pbmRleGVyLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQ0FBaUU7QUFDakUsZ0VBQThDO0FBQzlDLGdFQUE4QztBQUM5QyxnRUFBOEM7QUFFOUM7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFPdEIsWUFBWSxNQUFxQixFQUFFLFVBQW1CO1FBQ3BELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxhQUFWLFVBQVUsY0FBVixVQUFVLEdBQUksK0JBQW1CLENBQUM7UUFFcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGlCQUFhLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxpQkFBYSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksaUJBQWEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7Q0FDSjtBQXhDRCxzQ0F3Q0MifQ==
|
|
@@ -10,6 +10,4 @@ export default class MarketsClient extends RestClient {
|
|
|
10
10
|
getPerpetualMarketCandles(market: string, resolution: string, fromISO?: string | null, toISO?: string | null, limit?: number | null): Promise<Data>;
|
|
11
11
|
getPerpetualMarketHistoricalFunding(market: string, effectiveBeforeOrAt?: string | null, effectiveBeforeOrAtHeight?: number | null, limit?: number | null): Promise<Data>;
|
|
12
12
|
getPerpetualMarketSparklines(period?: string): Promise<Data>;
|
|
13
|
-
getTime(): Promise<Data>;
|
|
14
|
-
getHeight(): Promise<Data>;
|
|
15
13
|
}
|
|
@@ -47,14 +47,6 @@ class MarketsClient extends rest_1.default {
|
|
|
47
47
|
timePeriod: period,
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
|
-
async getTime() {
|
|
51
|
-
const uri = '/v4/time';
|
|
52
|
-
return this.get(uri);
|
|
53
|
-
}
|
|
54
|
-
async getHeight() {
|
|
55
|
-
const uri = '/v4/height';
|
|
56
|
-
return this.get(uri);
|
|
57
|
-
}
|
|
58
50
|
}
|
|
59
51
|
exports.default = MarketsClient;
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvbWFya2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUEwQztBQUUxQyxrREFBZ0M7QUFFaEM7O0dBRUc7QUFDSCxNQUFxQixhQUFjLFNBQVEsY0FBVTtJQUNuRCxLQUFLLENBQUMsbUJBQW1CLENBQUMsTUFBZTtRQUN2QyxNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxNQUFjO1FBQzlDLE1BQU0sR0FBRyxHQUFHLGtDQUFrQyxNQUFNLEVBQUUsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyx3QkFBd0IsQ0FDNUIsTUFBYyxFQUNkLHdCQUF3QyxFQUN4QyxLQUFxQjtRQUVyQixNQUFNLEdBQUcsR0FBRyw4QkFBOEIsTUFBTSxFQUFFLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNuQix1QkFBdUIsRUFBRSx3QkFBd0I7WUFDakQsS0FBSztTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMseUJBQXlCLENBQzdCLE1BQWMsRUFDZCxVQUFrQixFQUNsQixPQUF1QixFQUN2QixLQUFxQixFQUNyQixLQUFxQjtRQUVyQixNQUFNLEdBQUcsR0FBRyxnQ0FBZ0MsTUFBTSxFQUFFLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNuQixVQUFVO1lBQ1YsT0FBTztZQUNQLEtBQUs7WUFDTCxLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxtQ0FBbUMsQ0FDdkMsTUFBYyxFQUNkLG1CQUFtQyxFQUNuQyx5QkFBeUMsRUFDekMsS0FBcUI7UUFFckIsTUFBTSxHQUFHLEdBQUcseUJBQXlCLE1BQU0sRUFBRSxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsbUJBQW1CO1lBQ25CLHlCQUF5QjtZQUN6QixLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxTQUFpQixzQkFBVSxDQUFDLE9BQU87UUFDcEUsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNuQixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzREQsZ0NBMkRDIn0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ComplianceResponse, HeightResponse, TimeResponse } from '../types';
|
|
2
|
+
import RestClient from './rest';
|
|
3
|
+
export default class UtilityClient extends RestClient {
|
|
4
|
+
/**
|
|
5
|
+
* @description Get the current time of the Indexer
|
|
6
|
+
* @returns {TimeResponse} isoString and epoch
|
|
7
|
+
*/
|
|
8
|
+
getTime(): Promise<TimeResponse>;
|
|
9
|
+
/**
|
|
10
|
+
* @description Get the block height of the most recent block processed by the Indexer
|
|
11
|
+
* @returns {HeightResponse} block height and time
|
|
12
|
+
*/
|
|
13
|
+
getHeight(): Promise<HeightResponse>;
|
|
14
|
+
/**
|
|
15
|
+
* @description Screen an address to see if it is restricted
|
|
16
|
+
* @param {string} address evm or dydx address
|
|
17
|
+
* @returns {ComplianceResponse} whether the specified address is restricted
|
|
18
|
+
*/
|
|
19
|
+
screen(address: string): Promise<ComplianceResponse>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const rest_1 = __importDefault(require("./rest"));
|
|
7
|
+
class UtilityClient extends rest_1.default {
|
|
8
|
+
/**
|
|
9
|
+
* @description Get the current time of the Indexer
|
|
10
|
+
* @returns {TimeResponse} isoString and epoch
|
|
11
|
+
*/
|
|
12
|
+
async getTime() {
|
|
13
|
+
const uri = '/v4/time';
|
|
14
|
+
return this.get(uri);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @description Get the block height of the most recent block processed by the Indexer
|
|
18
|
+
* @returns {HeightResponse} block height and time
|
|
19
|
+
*/
|
|
20
|
+
async getHeight() {
|
|
21
|
+
const uri = '/v4/height';
|
|
22
|
+
return this.get(uri);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @description Screen an address to see if it is restricted
|
|
26
|
+
* @param {string} address evm or dydx address
|
|
27
|
+
* @returns {ComplianceResponse} whether the specified address is restricted
|
|
28
|
+
*/
|
|
29
|
+
async screen(address) {
|
|
30
|
+
const uri = '/v4/screen';
|
|
31
|
+
return this.get(uri, { address });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.default = UtilityClient;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvdXRpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGtEQUFnQztBQUVoQyxNQUFxQixhQUFjLFNBQVEsY0FBVTtJQUNuRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxTQUFTO1FBQ2IsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBZTtRQUMxQixNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBNUJELGdDQTRCQyJ9
|
|
@@ -44,4 +44,15 @@ export interface BroadcastOptions {
|
|
|
44
44
|
broadcastTimeoutMs: number;
|
|
45
45
|
}
|
|
46
46
|
export declare type BroadcastMode = (Method.BroadcastTxAsync | Method.BroadcastTxSync | Method.BroadcastTxCommit);
|
|
47
|
+
export interface TimeResponse {
|
|
48
|
+
iso: string;
|
|
49
|
+
epoch: number;
|
|
50
|
+
}
|
|
51
|
+
export interface HeightResponse {
|
|
52
|
+
height: number;
|
|
53
|
+
time: string;
|
|
54
|
+
}
|
|
55
|
+
export interface ComplianceResponse {
|
|
56
|
+
restricted: boolean;
|
|
57
|
+
}
|
|
47
58
|
export * from './modules/proto-includes';
|
|
@@ -23,4 +23,4 @@ var OrderFlags;
|
|
|
23
23
|
OrderFlags[OrderFlags["CONDITIONAL"] = 32] = "CONDITIONAL";
|
|
24
24
|
})(OrderFlags = exports.OrderFlags || (exports.OrderFlags = {}));
|
|
25
25
|
__exportStar(require("./modules/proto-includes"), exports);
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50cy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQTJCQSxzRUFBc0U7QUFDdEUsSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLHVEQUFjLENBQUE7SUFDZCxzREFBYyxDQUFBO0lBQ2QsMERBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQUpXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBSXJCO0FBdURELDJEQUF5QyJ9
|
|
@@ -67,7 +67,7 @@ class NetworkOptimizer {
|
|
|
67
67
|
const clients = this.indexerClients(endpointUrls);
|
|
68
68
|
const responses = (await Promise.all(clients
|
|
69
69
|
.map(async (client) => {
|
|
70
|
-
const block = await client.
|
|
70
|
+
const block = await client.utility.getHeight();
|
|
71
71
|
const response = new PingResponse(+block.height);
|
|
72
72
|
return {
|
|
73
73
|
endpoint: client.config.restEndpoint,
|
package/build/src/types.d.ts
CHANGED
|
@@ -22,14 +22,3 @@ export interface Options {
|
|
|
22
22
|
export declare enum ClobPairId {
|
|
23
23
|
PERPETUAL_PAIR_BTC_USD = 0
|
|
24
24
|
}
|
|
25
|
-
export declare enum MarketId {
|
|
26
|
-
PERPETUAL_PRICE_BTC_USD = 0
|
|
27
|
-
}
|
|
28
|
-
export declare enum PerpetualId {
|
|
29
|
-
PERPETUAL_BTC_USD = 0
|
|
30
|
-
}
|
|
31
|
-
export interface FaucetRequest {
|
|
32
|
-
address: string;
|
|
33
|
-
subaccountNumber: number;
|
|
34
|
-
amount: number;
|
|
35
|
-
}
|
package/build/src/types.js
CHANGED
|
@@ -14,19 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
17
|
+
exports.ClobPairId = void 0;
|
|
18
18
|
__exportStar(require("./clients/types"), exports);
|
|
19
19
|
__exportStar(require("./clients/constants"), exports);
|
|
20
20
|
var ClobPairId;
|
|
21
21
|
(function (ClobPairId) {
|
|
22
22
|
ClobPairId[ClobPairId["PERPETUAL_PAIR_BTC_USD"] = 0] = "PERPETUAL_PAIR_BTC_USD";
|
|
23
23
|
})(ClobPairId = exports.ClobPairId || (exports.ClobPairId = {}));
|
|
24
|
-
|
|
25
|
-
(function (MarketId) {
|
|
26
|
-
MarketId[MarketId["PERPETUAL_PRICE_BTC_USD"] = 0] = "PERPETUAL_PRICE_BTC_USD";
|
|
27
|
-
})(MarketId = exports.MarketId || (exports.MarketId = {}));
|
|
28
|
-
var PerpetualId;
|
|
29
|
-
(function (PerpetualId) {
|
|
30
|
-
PerpetualId[PerpetualId["PERPETUAL_BTC_USD"] = 0] = "PERPETUAL_BTC_USD";
|
|
31
|
-
})(PerpetualId = exports.PerpetualId || (exports.PerpetualId = {}));
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxrREFBZ0M7QUFDaEMsc0RBQW9DO0FBaUNwQyxJQUFZLFVBRVg7QUFGRCxXQUFZLFVBQVU7SUFDcEIsK0VBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUZXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBRXJCO0FBRUQsSUFBWSxRQUVYO0FBRkQsV0FBWSxRQUFRO0lBQ2xCLDZFQUEyQixDQUFBO0FBQzdCLENBQUMsRUFGVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQUVuQjtBQUVELElBQVksV0FFWDtBQUZELFdBQVksV0FBVztJQUNyQix1RUFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBRlcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFFdEIifQ==
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxrREFBZ0M7QUFDaEMsc0RBQW9DO0FBaUNwQyxJQUFZLFVBRVg7QUFGRCxXQUFZLFVBQVU7SUFDcEIsK0VBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUZXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBRXJCIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Simple JS example demostrating accessing
|
|
2
|
+
* Simple JS example demostrating accessing market data with Indexer REST endpoints
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import { Network } from '../src/clients/constants';
|
|
@@ -11,32 +11,6 @@ export const MARKET_BTC_USD: string = 'BTC-USD';
|
|
|
11
11
|
async function test(): Promise<void> {
|
|
12
12
|
const client = new IndexerClient(Network.staging().indexerConfig);
|
|
13
13
|
|
|
14
|
-
// Get indexer server time
|
|
15
|
-
try {
|
|
16
|
-
const response = await client.markets.getTime();
|
|
17
|
-
console.log(response);
|
|
18
|
-
const timeIso = response.iso;
|
|
19
|
-
const timeEpoch = response.epoch;
|
|
20
|
-
console.log('time');
|
|
21
|
-
console.log(timeIso);
|
|
22
|
-
console.log(timeEpoch);
|
|
23
|
-
} catch (error) {
|
|
24
|
-
console.log(error.message);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// Get indexer server height
|
|
28
|
-
try {
|
|
29
|
-
const response = await client.markets.getHeight();
|
|
30
|
-
console.log(response);
|
|
31
|
-
const height = response.height;
|
|
32
|
-
const heightTime = response.time;
|
|
33
|
-
console.log('height');
|
|
34
|
-
console.log(height);
|
|
35
|
-
console.log(heightTime);
|
|
36
|
-
} catch (error) {
|
|
37
|
-
console.log(error.message);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
14
|
// Get perp markets
|
|
41
15
|
try {
|
|
42
16
|
const response = await client.markets.getPerpetualMarkets();
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple JS example demostrating accessing public data with Indexer REST endpoints
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { Network } from '../src/clients/constants';
|
|
6
|
+
import { IndexerClient } from '../src/clients/indexer-client';
|
|
7
|
+
|
|
8
|
+
async function test(): Promise<void> {
|
|
9
|
+
const client = new IndexerClient(Network.staging().indexerConfig);
|
|
10
|
+
|
|
11
|
+
// Get indexer server time
|
|
12
|
+
try {
|
|
13
|
+
const response = await client.utility.getTime();
|
|
14
|
+
console.log(response);
|
|
15
|
+
const timeIso = response.iso;
|
|
16
|
+
const timeEpoch = response.epoch;
|
|
17
|
+
console.log('time');
|
|
18
|
+
console.log(timeIso);
|
|
19
|
+
console.log(timeEpoch);
|
|
20
|
+
} catch (error) {
|
|
21
|
+
console.log(error.message);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Get indexer server height
|
|
25
|
+
try {
|
|
26
|
+
const response = await client.utility.getHeight();
|
|
27
|
+
console.log(response);
|
|
28
|
+
const height = response.height;
|
|
29
|
+
const heightTime = response.time;
|
|
30
|
+
console.log('height');
|
|
31
|
+
console.log(height);
|
|
32
|
+
console.log(heightTime);
|
|
33
|
+
} catch (error) {
|
|
34
|
+
console.log(error.message);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
test().then(() => {
|
|
39
|
+
}).catch((error) => {
|
|
40
|
+
console.log(error.message);
|
|
41
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IndexerConfig, DEFAULT_API_TIMEOUT } from './constants';
|
|
2
2
|
import AccountClient from './modules/account';
|
|
3
3
|
import MarketsClient from './modules/markets';
|
|
4
|
+
import UtilityClient from './modules/utility';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* @description Client for Indexer
|
|
@@ -10,6 +11,7 @@ export class IndexerClient {
|
|
|
10
11
|
readonly apiTimeout: number;
|
|
11
12
|
readonly _markets: MarketsClient;
|
|
12
13
|
readonly _account: AccountClient;
|
|
14
|
+
readonly _utility: UtilityClient;
|
|
13
15
|
|
|
14
16
|
constructor(config: IndexerConfig, apiTimeout?: number) {
|
|
15
17
|
this.config = config;
|
|
@@ -17,6 +19,7 @@ export class IndexerClient {
|
|
|
17
19
|
|
|
18
20
|
this._markets = new MarketsClient(config.restEndpoint);
|
|
19
21
|
this._account = new AccountClient(config.restEndpoint);
|
|
22
|
+
this._utility = new UtilityClient(config.restEndpoint);
|
|
20
23
|
}
|
|
21
24
|
|
|
22
25
|
/**
|
|
@@ -36,4 +39,11 @@ export class IndexerClient {
|
|
|
36
39
|
get account(): AccountClient {
|
|
37
40
|
return this._account;
|
|
38
41
|
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @description Get the utility module, used for interacting with non-market public endpoints.
|
|
45
|
+
*/
|
|
46
|
+
get utility(): UtilityClient {
|
|
47
|
+
return this._utility;
|
|
48
|
+
}
|
|
39
49
|
}
|
|
@@ -64,14 +64,4 @@ export default class MarketsClient extends RestClient {
|
|
|
64
64
|
timePeriod: period,
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
|
-
|
|
68
|
-
async getTime(): Promise<Data> {
|
|
69
|
-
const uri = '/v4/time';
|
|
70
|
-
return this.get(uri);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
async getHeight(): Promise<Data> {
|
|
74
|
-
const uri = '/v4/height';
|
|
75
|
-
return this.get(uri);
|
|
76
|
-
}
|
|
77
67
|
}
|