@dydxprotocol/v4-client-js 0.36.2 → 0.37.2
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/__tests__/modules/client/AccountEndpoints.test.ts +0 -14
- package/build/__tests__/modules/client/AccountEndpoints.test.js +1 -14
- package/build/examples/account_endpoints.js +1 -15
- package/build/examples/human_readable_short_term_orders.json +42 -0
- package/build/examples/short_term_composite_example.d.ts +1 -0
- package/build/examples/short_term_composite_example.js +67 -0
- package/build/src/clients/composite-client.d.ts +55 -0
- package/build/src/clients/composite-client.js +92 -1
- package/build/src/clients/constants.d.ts +1 -0
- package/build/src/clients/constants.js +3 -2
- package/build/src/clients/modules/account.d.ts +0 -1
- package/build/src/clients/modules/account.js +1 -11
- package/examples/account_endpoints.ts +0 -14
- package/examples/human_readable_short_term_orders.json +42 -0
- package/examples/short_term_composite_example.ts +81 -0
- package/package.json +1 -1
- package/src/clients/composite-client.ts +151 -1
- package/src/clients/constants.ts +2 -0
- package/src/clients/modules/account.ts +0 -17
|
@@ -78,20 +78,6 @@ describe('IndexerClient', () => {
|
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
|
|
81
|
-
/*
|
|
82
|
-
** Funding endpoint is not implemented in the indexer yet
|
|
83
|
-
it('Funding', async () => {
|
|
84
|
-
const response = await client.account.getSubaccountFunding(DYDX_TEST_ADDRESS, 0);
|
|
85
|
-
expect(response).not.toBeNull();
|
|
86
|
-
const funding = response.funding;
|
|
87
|
-
expect(funding).not.toBeNull();
|
|
88
|
-
if (funding.length > 0) {
|
|
89
|
-
const funding0 = funding[0];
|
|
90
|
-
expect(funding0).not.toBeNull();
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
*/
|
|
94
|
-
|
|
95
81
|
it('Historical PNL', async () => {
|
|
96
82
|
const response = await client.account.getSubaccountHistoricalPNLs(DYDX_TEST_ADDRESS, 0);
|
|
97
83
|
expect(response).not.toBeNull();
|
|
@@ -71,19 +71,6 @@ describe('IndexerClient', () => {
|
|
|
71
71
|
expect(fill).not.toBeNull();
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
|
-
/*
|
|
75
|
-
** Funding endpoint is not implemented in the indexer yet
|
|
76
|
-
it('Funding', async () => {
|
|
77
|
-
const response = await client.account.getSubaccountFunding(DYDX_TEST_ADDRESS, 0);
|
|
78
|
-
expect(response).not.toBeNull();
|
|
79
|
-
const funding = response.funding;
|
|
80
|
-
expect(funding).not.toBeNull();
|
|
81
|
-
if (funding.length > 0) {
|
|
82
|
-
const funding0 = funding[0];
|
|
83
|
-
expect(funding0).not.toBeNull();
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
*/
|
|
87
74
|
it('Historical PNL', async () => {
|
|
88
75
|
const response = await client.account.getSubaccountHistoricalPNLs(constants_2.DYDX_TEST_ADDRESS, 0);
|
|
89
76
|
expect(response).not.toBeNull();
|
|
@@ -96,4 +83,4 @@ describe('IndexerClient', () => {
|
|
|
96
83
|
});
|
|
97
84
|
});
|
|
98
85
|
});
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNjb3VudEVuZHBvaW50cy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vX190ZXN0c19fL21vZHVsZXMvY2xpZW50L0FjY291bnRFbmRwb2ludHMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDhEQUF5RDtBQUN6RCx3RUFBb0U7QUFDcEUsMkNBQWdEO0FBRWhELFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksOEJBQWEsQ0FBQyxtQkFBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRWxFLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsRUFBRSxDQUFDLGFBQWEsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMzQixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLDZCQUFpQixDQUFDLENBQUM7WUFDeEUsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztZQUN6QyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7WUFDdEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGNBQWMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM1QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLDZCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFFLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxV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
|
|
@@ -106,20 +106,6 @@ async function test() {
|
|
|
106
106
|
catch (error) {
|
|
107
107
|
console.log(error.message);
|
|
108
108
|
}
|
|
109
|
-
// Get funding payments
|
|
110
|
-
try {
|
|
111
|
-
const response = await client.account.getSubaccountFunding(address, 0);
|
|
112
|
-
console.log(response);
|
|
113
|
-
const fundingPayments = response.fundingPayments;
|
|
114
|
-
console.log(fundingPayments);
|
|
115
|
-
if (fundingPayments.length > 0) {
|
|
116
|
-
const fundingPayments0 = fundingPayments[0];
|
|
117
|
-
console.log(fundingPayments0);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
catch (error) {
|
|
121
|
-
console.log(error.message);
|
|
122
|
-
}
|
|
123
109
|
// Get historical pnl
|
|
124
110
|
try {
|
|
125
111
|
const response = await client.account.getSubaccountHistoricalPNLs(address, 0);
|
|
@@ -139,4 +125,4 @@ test().then(() => {
|
|
|
139
125
|
}).catch((error) => {
|
|
140
126
|
console.log(error.message);
|
|
141
127
|
});
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9lbmRwb2ludHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9leGFtcGxlcy9hY2NvdW50X2VuZHBvaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7O0FBRUgsd0RBQW1EO0FBQ25ELGtFQUE4RDtBQUM5RCwyQ0FBZ0Q7QUFFaEQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSw4QkFBYSxDQUFDLG1CQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbEUsTUFBTSxPQUFPLEdBQUcsNkJBQWlCLENBQUM7SUFFbEMsa0JBQWtCO0lBQ2xCLElBQUk7UUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlELE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEIsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNyRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0FDL0I7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzVCO0lBRUQsbUJBQW1CO0lBQ25CLElBQUk7UUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QixNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNyRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0FDL0I7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzVCO0lBRUQsc0JBQXNCO0lBQ3RCLElBQUk7UUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEIsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEIsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDekI7S0FDRjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDNUI7SUFFRCxxQkFBcUI7SUFDckIsSUFBSTtRQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkIsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN4QixNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN6QjtLQUNGO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUM1QjtJQUVELGdCQUFnQjtJQUNoQixJQUFJO1FBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3hCO0tBQ0Y7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzVCO0lBRUQsYUFBYTtJQUNiLElBQUk7UUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkI7S0FDRjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDNUI7SUFFRCxZQUFZO0lBQ1osSUFBSTtRQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjtLQUNGO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUM1QjtJQUVELHFCQUFxQjtJQUNyQixJQUFJO1FBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQixJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzdCO0tBQ0Y7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQztBQUVELElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7QUFDakIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"timeInForce": "DEFAULT",
|
|
4
|
+
"side": "BUY",
|
|
5
|
+
"price": 40000
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"timeInForce": "DEFAULT",
|
|
9
|
+
"side": "SELL",
|
|
10
|
+
"price": 1000
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"timeInForce": "FOK",
|
|
14
|
+
"side": "BUY",
|
|
15
|
+
"price": 1000
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"timeInForce": "FOK",
|
|
19
|
+
"side": "SELL",
|
|
20
|
+
"price": 40000
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"timeInForce": "IOC",
|
|
24
|
+
"side": "BUY",
|
|
25
|
+
"price": 40000
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"timeInForce": "IOC",
|
|
29
|
+
"side": "SELL",
|
|
30
|
+
"price": 1000
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"timeInForce": "POST_ONLY",
|
|
34
|
+
"side": "BUY",
|
|
35
|
+
"price": 1000
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"timeInForce": "POST_ONLY",
|
|
39
|
+
"side": "SELL",
|
|
40
|
+
"price": 40000
|
|
41
|
+
}
|
|
42
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
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 order_1 = require("@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order");
|
|
7
|
+
const src_1 = require("../src");
|
|
8
|
+
const composite_client_1 = require("../src/clients/composite-client");
|
|
9
|
+
const constants_1 = require("../src/clients/constants");
|
|
10
|
+
const local_wallet_1 = __importDefault(require("../src/clients/modules/local-wallet"));
|
|
11
|
+
const subaccount_1 = require("../src/clients/subaccount");
|
|
12
|
+
const utils_1 = require("../src/lib/utils");
|
|
13
|
+
const constants_2 = require("./constants");
|
|
14
|
+
const human_readable_short_term_orders_json_1 = __importDefault(require("./human_readable_short_term_orders.json"));
|
|
15
|
+
async function sleep(ms) {
|
|
16
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
17
|
+
}
|
|
18
|
+
async function test() {
|
|
19
|
+
var _a;
|
|
20
|
+
const wallet = await local_wallet_1.default.fromMnemonic(constants_2.DYDX_TEST_MNEMONIC, src_1.BECH32_PREFIX);
|
|
21
|
+
console.log(wallet);
|
|
22
|
+
const network = constants_1.Network.staging();
|
|
23
|
+
const client = await composite_client_1.CompositeClient.connect(network);
|
|
24
|
+
console.log('**Client**');
|
|
25
|
+
console.log(client);
|
|
26
|
+
const subaccount = new subaccount_1.Subaccount(wallet, 0);
|
|
27
|
+
for (const orderParams of human_readable_short_term_orders_json_1.default) {
|
|
28
|
+
try {
|
|
29
|
+
const side = constants_1.OrderSide[orderParams.side];
|
|
30
|
+
const price = (_a = orderParams.price) !== null && _a !== void 0 ? _a : 1350;
|
|
31
|
+
const currentBlock = await client.validatorClient.get.latestBlockHeight();
|
|
32
|
+
const nextValidBlockHeight = currentBlock + 1;
|
|
33
|
+
// Note, you can change this to any number between `next_valid_block_height`
|
|
34
|
+
// to `next_valid_block_height + SHORT_BLOCK_WINDOW`
|
|
35
|
+
const goodTilBlock = nextValidBlockHeight + 10;
|
|
36
|
+
const timeInForce = orderExecutionToTimeInForce(orderParams.timeInForce);
|
|
37
|
+
// uint32
|
|
38
|
+
const clientId = (0, utils_1.randomInt)(2 ** 32 - 1);
|
|
39
|
+
const tx = await client.placeShortTermOrder(subaccount, 'ETH-USD', side, price, 0.01, clientId, timeInForce, goodTilBlock, false);
|
|
40
|
+
console.log('**Order Tx**');
|
|
41
|
+
console.log(tx.hash.toString());
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
console.log(error.message);
|
|
45
|
+
}
|
|
46
|
+
await sleep(5000); // wait for placeOrder to complete
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function orderExecutionToTimeInForce(orderExecution) {
|
|
50
|
+
switch (orderExecution) {
|
|
51
|
+
case constants_1.OrderExecution.DEFAULT:
|
|
52
|
+
return order_1.Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED;
|
|
53
|
+
case constants_1.OrderExecution.FOK:
|
|
54
|
+
return order_1.Order_TimeInForce.TIME_IN_FORCE_FILL_OR_KILL;
|
|
55
|
+
case constants_1.OrderExecution.IOC:
|
|
56
|
+
return order_1.Order_TimeInForce.TIME_IN_FORCE_IOC;
|
|
57
|
+
case constants_1.OrderExecution.POST_ONLY:
|
|
58
|
+
return order_1.Order_TimeInForce.TIME_IN_FORCE_POST_ONLY;
|
|
59
|
+
default:
|
|
60
|
+
throw new Error('Unrecognized order execution');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
test().then(() => {
|
|
64
|
+
}).catch((error) => {
|
|
65
|
+
console.log(error.message);
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnRfdGVybV9jb21wb3NpdGVfZXhhbXBsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2V4YW1wbGVzL3Nob3J0X3Rlcm1fY29tcG9zaXRlX2V4YW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzRkFBK0Y7QUFFL0YsZ0NBQXVDO0FBQ3ZDLHNFQUFrRTtBQUNsRSx3REFFa0M7QUFDbEMsdUZBQThEO0FBQzlELDBEQUF1RDtBQUN2RCw0Q0FBNkM7QUFDN0MsMkNBQWlEO0FBQ2pELG9IQUFtRTtBQUVuRSxLQUFLLFVBQVUsS0FBSyxDQUFDLEVBQVU7SUFDN0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxLQUFLLFVBQVUsSUFBSTs7SUFDakIsTUFBTSxNQUFNLEdBQUcsTUFBTSxzQkFBVyxDQUFDLFlBQVksQ0FBQyw4QkFBa0IsRUFBRSxtQkFBYSxDQUFDLENBQUM7SUFDakYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQixNQUFNLE9BQU8sR0FBRyxtQkFBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLE1BQU0sa0NBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BCLE1BQU0sVUFBVSxHQUFHLElBQUksdUJBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0MsS0FBSyxNQUFNLFdBQVcsSUFBSSwrQ0FBWSxFQUFFO1FBQ3RDLElBQUk7WUFDRixNQUFNLElBQUksR0FBRyxxQkFBUyxDQUFDLFdBQVcsQ0FBQyxJQUE4QixDQUFDLENBQUM7WUFDbkUsTUFBTSxLQUFLLEdBQUcsTUFBQSxXQUFXLENBQUMsS0FBSyxtQ0FBSSxJQUFJLENBQUM7WUFFeEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzFFLE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUM5Qyw0RUFBNEU7WUFDNUUsb0RBQW9EO1lBQ3BELE1BQU0sWUFBWSxHQUFHLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztZQUUvQyxNQUFNLFdBQVcsR0FBRywyQkFBMkIsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFekUsU0FBUztZQUNULE1BQU0sUUFBUSxHQUFHLElBQUEsaUJBQVMsRUFBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRXhDLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLG1CQUFtQixDQUN6QyxVQUFVLEVBQ1YsU0FBUyxFQUNULElBQUksRUFDSixLQUFLLEVBQ0wsSUFBSSxFQUNKLFFBQVEsRUFDUixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssQ0FDTixDQUFDO1lBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNqQztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUI7UUFFRCxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLGtDQUFrQztLQUN2RDtBQUNILENBQUM7QUFFRCxTQUFTLDJCQUEyQixDQUFDLGNBQXNCO0lBQ3pELFFBQVEsY0FBYyxFQUFFO1FBQ3RCLEtBQUssMEJBQWMsQ0FBQyxPQUFPO1lBQ3pCLE9BQU8seUJBQWlCLENBQUMseUJBQXlCLENBQUM7UUFDckQsS0FBSywwQkFBYyxDQUFDLEdBQUc7WUFDckIsT0FBTyx5QkFBaUIsQ0FBQywwQkFBMEIsQ0FBQztRQUN0RCxLQUFLLDBCQUFjLENBQUMsR0FBRztZQUNyQixPQUFPLHlCQUFpQixDQUFDLGlCQUFpQixDQUFDO1FBQzdDLEtBQUssMEJBQWMsQ0FBQyxTQUFTO1lBQzNCLE9BQU8seUJBQWlCLENBQUMsdUJBQXVCLENBQUM7UUFDbkQ7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7S0FDbkQ7QUFDSCxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNqQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtJQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EncodeObject } from '@cosmjs/proto-signing';
|
|
2
2
|
import { GasPrice, IndexedTx, StdFee } from '@cosmjs/stargate';
|
|
3
3
|
import { BroadcastTxAsyncResponse, BroadcastTxSyncResponse } from '@cosmjs/tendermint-rpc/build/tendermint37';
|
|
4
|
+
import { Order_TimeInForce } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order';
|
|
4
5
|
import { OrderFlags } from '../types';
|
|
5
6
|
import { Network, OrderExecution, OrderSide, OrderTimeInForce, OrderType } from './constants';
|
|
6
7
|
import { IndexerClient } from './indexer-client';
|
|
@@ -66,6 +67,16 @@ export declare class CompositeClient {
|
|
|
66
67
|
* @returns The goodTilBlock value
|
|
67
68
|
*/
|
|
68
69
|
private calculateGoodTilBlock;
|
|
70
|
+
/**
|
|
71
|
+
* @description Calculate the goodTilBlock value for a SHORT_TERM order
|
|
72
|
+
*
|
|
73
|
+
* @param goodTilBlock Number of blocks from the current block height the order will
|
|
74
|
+
* be valid for.
|
|
75
|
+
*
|
|
76
|
+
* @throws UnexpectedClientError if a malformed response is returned with no GRPC error
|
|
77
|
+
* at any point.
|
|
78
|
+
*/
|
|
79
|
+
private validateGoodTilBlock;
|
|
69
80
|
/**
|
|
70
81
|
* @description Calculate the goodTilBlockTime value for a LONG_TERM order
|
|
71
82
|
* the calling function is responsible for creating the messages.
|
|
@@ -77,6 +88,28 @@ export declare class CompositeClient {
|
|
|
77
88
|
* @returns The goodTilBlockTime value
|
|
78
89
|
*/
|
|
79
90
|
private calculateGoodTilBlockTime;
|
|
91
|
+
/**
|
|
92
|
+
* @description Place a short term order with human readable input.
|
|
93
|
+
*
|
|
94
|
+
* Use human readable form of input, including price and size
|
|
95
|
+
* The quantum and subticks are calculated and submitted
|
|
96
|
+
*
|
|
97
|
+
* @param subaccount The subaccount to place the order under
|
|
98
|
+
* @param marketId The market to place the order on
|
|
99
|
+
* @param side The side of the order to place
|
|
100
|
+
* @param price The price of the order to place
|
|
101
|
+
* @param size The size of the order to place
|
|
102
|
+
* @param clientId The client id of the order to place
|
|
103
|
+
* @param timeInForce The time in force of the order to place
|
|
104
|
+
* @param goodTilBlock The goodTilBlock of the order to place
|
|
105
|
+
* @param reduceOnly The reduceOnly of the order to place
|
|
106
|
+
*
|
|
107
|
+
*
|
|
108
|
+
* @throws UnexpectedClientError if a malformed response is returned with no GRPC error
|
|
109
|
+
* at any point.
|
|
110
|
+
* @returns The transaction hash.
|
|
111
|
+
*/
|
|
112
|
+
placeShortTermOrder(subaccount: Subaccount, marketId: string, side: OrderSide, price: number, size: number, clientId: number, goodTilBlock: number, timeInForce: Order_TimeInForce, reduceOnly: boolean): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx>;
|
|
80
113
|
/**
|
|
81
114
|
* @description Place an order with human readable input.
|
|
82
115
|
*
|
|
@@ -129,6 +162,28 @@ export declare class CompositeClient {
|
|
|
129
162
|
* @returns The message to be passed into the protocol
|
|
130
163
|
*/
|
|
131
164
|
private placeOrderMessage;
|
|
165
|
+
/**
|
|
166
|
+
* @description Calculate and create the short term place order message
|
|
167
|
+
*
|
|
168
|
+
* Use human readable form of input, including price and size
|
|
169
|
+
* The quantum and subticks are calculated and submitted
|
|
170
|
+
*
|
|
171
|
+
* @param subaccount The subaccount to place the order under
|
|
172
|
+
* @param marketId The market to place the order on
|
|
173
|
+
* @param side The side of the order to place
|
|
174
|
+
* @param price The price of the order to place
|
|
175
|
+
* @param size The size of the order to place
|
|
176
|
+
* @param clientId The client id of the order to place
|
|
177
|
+
* @param timeInForce The time in force of the order to place
|
|
178
|
+
* @param goodTilBlock The goodTilBlock of the order to place
|
|
179
|
+
* @param reduceOnly The reduceOnly of the order to place
|
|
180
|
+
*
|
|
181
|
+
*
|
|
182
|
+
* @throws UnexpectedClientError if a malformed response is returned with no GRPC error
|
|
183
|
+
* at any point.
|
|
184
|
+
* @returns The message to be passed into the protocol
|
|
185
|
+
*/
|
|
186
|
+
private placeShortTermOrderMessage;
|
|
132
187
|
/**
|
|
133
188
|
* @description Cancel an order with human readable input.
|
|
134
189
|
*
|
|
@@ -4,12 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.CompositeClient = void 0;
|
|
7
|
+
const order_1 = require("@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order");
|
|
7
8
|
const long_1 = __importDefault(require("long"));
|
|
8
9
|
const protobufjs_1 = __importDefault(require("protobufjs"));
|
|
9
10
|
const types_1 = require("../types");
|
|
10
11
|
const constants_1 = require("./constants");
|
|
11
12
|
const chain_helpers_1 = require("./helpers/chain-helpers");
|
|
12
13
|
const indexer_client_1 = require("./indexer-client");
|
|
14
|
+
const errors_1 = require("./lib/errors");
|
|
13
15
|
const validator_client_1 = require("./validator-client");
|
|
14
16
|
// Required for encoding and decoding queries that are of type Long.
|
|
15
17
|
// Must be done once but since the individal modules should be usable
|
|
@@ -103,6 +105,26 @@ class CompositeClient {
|
|
|
103
105
|
const height = await this.validatorClient.get.latestBlockHeight();
|
|
104
106
|
return height + 3;
|
|
105
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* @description Calculate the goodTilBlock value for a SHORT_TERM order
|
|
110
|
+
*
|
|
111
|
+
* @param goodTilBlock Number of blocks from the current block height the order will
|
|
112
|
+
* be valid for.
|
|
113
|
+
*
|
|
114
|
+
* @throws UnexpectedClientError if a malformed response is returned with no GRPC error
|
|
115
|
+
* at any point.
|
|
116
|
+
*/
|
|
117
|
+
async validateGoodTilBlock(goodTilBlock) {
|
|
118
|
+
const height = await this.validatorClient.get.latestBlockHeight();
|
|
119
|
+
const nextValidBlockHeight = height + 1;
|
|
120
|
+
const lowerBound = nextValidBlockHeight;
|
|
121
|
+
const upperBound = nextValidBlockHeight + constants_1.SHORT_BLOCK_WINDOW;
|
|
122
|
+
if (goodTilBlock < lowerBound || goodTilBlock > upperBound) {
|
|
123
|
+
throw new errors_1.UserError(`Invalid Short-Term order GoodTilBlock.
|
|
124
|
+
Should be greater-than-or-equal-to ${lowerBound} and less-than-or-equal-to ${upperBound}.
|
|
125
|
+
Provided good til block: ${goodTilBlock}`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
106
128
|
/**
|
|
107
129
|
* @description Calculate the goodTilBlockTime value for a LONG_TERM order
|
|
108
130
|
* the calling function is responsible for creating the messages.
|
|
@@ -120,6 +142,36 @@ class CompositeClient {
|
|
|
120
142
|
const future = new Date(now.valueOf() + interval);
|
|
121
143
|
return Math.round(future.getTime() / 1000);
|
|
122
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* @description Place a short term order with human readable input.
|
|
147
|
+
*
|
|
148
|
+
* Use human readable form of input, including price and size
|
|
149
|
+
* The quantum and subticks are calculated and submitted
|
|
150
|
+
*
|
|
151
|
+
* @param subaccount The subaccount to place the order under
|
|
152
|
+
* @param marketId The market to place the order on
|
|
153
|
+
* @param side The side of the order to place
|
|
154
|
+
* @param price The price of the order to place
|
|
155
|
+
* @param size The size of the order to place
|
|
156
|
+
* @param clientId The client id of the order to place
|
|
157
|
+
* @param timeInForce The time in force of the order to place
|
|
158
|
+
* @param goodTilBlock The goodTilBlock of the order to place
|
|
159
|
+
* @param reduceOnly The reduceOnly of the order to place
|
|
160
|
+
*
|
|
161
|
+
*
|
|
162
|
+
* @throws UnexpectedClientError if a malformed response is returned with no GRPC error
|
|
163
|
+
* at any point.
|
|
164
|
+
* @returns The transaction hash.
|
|
165
|
+
*/
|
|
166
|
+
async placeShortTermOrder(subaccount, marketId, side, price, size, clientId, goodTilBlock, timeInForce, reduceOnly) {
|
|
167
|
+
const msgs = new Promise((resolve) => {
|
|
168
|
+
const msg = this.placeShortTermOrderMessage(subaccount, marketId, side, price, size, clientId, timeInForce, goodTilBlock, reduceOnly);
|
|
169
|
+
msg.then((it) => resolve([it])).catch((err) => {
|
|
170
|
+
console.log(err);
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
return this.send(subaccount.wallet, () => msgs, true);
|
|
174
|
+
}
|
|
123
175
|
/**
|
|
124
176
|
* @description Place an order with human readable input.
|
|
125
177
|
*
|
|
@@ -212,6 +264,45 @@ class CompositeClient {
|
|
|
212
264
|
const conditionalOrderTriggerSubticks = (0, chain_helpers_1.calculateConditionalOrderTriggerSubticks)(type, atomicResolution, quantumConversionExponent, subticksPerTick, triggerPrice);
|
|
213
265
|
return this.validatorClient.post.composer.composeMsgPlaceOrder(subaccount.address, subaccount.subaccountNumber, clientId, clobPairId, orderFlags, goodTilBlock, goodTilBlockTime, orderSide, quantums, subticks, orderTimeInForce, reduceOnly !== null && reduceOnly !== void 0 ? reduceOnly : false, clientMetadata, conditionalType, conditionalOrderTriggerSubticks);
|
|
214
266
|
}
|
|
267
|
+
/**
|
|
268
|
+
* @description Calculate and create the short term place order message
|
|
269
|
+
*
|
|
270
|
+
* Use human readable form of input, including price and size
|
|
271
|
+
* The quantum and subticks are calculated and submitted
|
|
272
|
+
*
|
|
273
|
+
* @param subaccount The subaccount to place the order under
|
|
274
|
+
* @param marketId The market to place the order on
|
|
275
|
+
* @param side The side of the order to place
|
|
276
|
+
* @param price The price of the order to place
|
|
277
|
+
* @param size The size of the order to place
|
|
278
|
+
* @param clientId The client id of the order to place
|
|
279
|
+
* @param timeInForce The time in force of the order to place
|
|
280
|
+
* @param goodTilBlock The goodTilBlock of the order to place
|
|
281
|
+
* @param reduceOnly The reduceOnly of the order to place
|
|
282
|
+
*
|
|
283
|
+
*
|
|
284
|
+
* @throws UnexpectedClientError if a malformed response is returned with no GRPC error
|
|
285
|
+
* at any point.
|
|
286
|
+
* @returns The message to be passed into the protocol
|
|
287
|
+
*/
|
|
288
|
+
async placeShortTermOrderMessage(subaccount, marketId, side, price, size, clientId, goodTilBlock, timeInForce, reduceOnly) {
|
|
289
|
+
await this.validateGoodTilBlock(goodTilBlock);
|
|
290
|
+
const marketsResponse = await this.indexerClient.markets.getPerpetualMarkets(marketId);
|
|
291
|
+
const market = marketsResponse.markets[marketId];
|
|
292
|
+
const clobPairId = market.clobPairId;
|
|
293
|
+
const atomicResolution = market.atomicResolution;
|
|
294
|
+
const stepBaseQuantums = market.stepBaseQuantums;
|
|
295
|
+
const quantumConversionExponent = market.quantumConversionExponent;
|
|
296
|
+
const subticksPerTick = market.subticksPerTick;
|
|
297
|
+
const orderSide = (0, chain_helpers_1.calculateSide)(side);
|
|
298
|
+
const quantums = (0, chain_helpers_1.calculateQuantums)(size, atomicResolution, stepBaseQuantums);
|
|
299
|
+
const subticks = (0, chain_helpers_1.calculateSubticks)(price, atomicResolution, quantumConversionExponent, subticksPerTick);
|
|
300
|
+
const orderFlags = types_1.OrderFlags.SHORT_TERM;
|
|
301
|
+
return this.validatorClient.post.composer.composeMsgPlaceOrder(subaccount.address, subaccount.subaccountNumber, clientId, clobPairId, orderFlags, goodTilBlock, 0, // Short term orders use goodTilBlock.
|
|
302
|
+
orderSide, quantums, subticks, timeInForce, reduceOnly, 0, // Client metadata is 0 for short term orders.
|
|
303
|
+
order_1.Order_ConditionType.CONDITION_TYPE_UNSPECIFIED, // Short term orders cannot be conditional.
|
|
304
|
+
long_1.default.fromInt(0));
|
|
305
|
+
}
|
|
215
306
|
/**
|
|
216
307
|
* @description Cancel an order with human readable input.
|
|
217
308
|
*
|
|
@@ -370,4 +461,4 @@ class CompositeClient {
|
|
|
370
461
|
}
|
|
371
462
|
}
|
|
372
463
|
exports.CompositeClient = CompositeClient;
|
|
373
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnRzL2NvbXBvc2l0ZS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsZ0RBQXdCO0FBQ3hCLDREQUFrQztBQUVsQyxvQ0FBc0M7QUFDdEMsMkNBSXFCO0FBQ3JCLDJEQVNpQztBQUNqQyxxREFBaUQ7QUFHakQseURBQXFEO0FBRXJELG9FQUFvRTtBQUNwRSxxRUFBcUU7QUFDckUsd0VBQXdFO0FBQ3hFLGtFQUFrRTtBQUNsRSxvQkFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBSSxDQUFDO0FBQzFCLG9CQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7QUFFckIsTUFBYSxlQUFlO0lBVzFCLFlBQ0UsT0FBZ0IsRUFDaEIsVUFBbUI7UUFFbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLDhCQUFhLENBQ3JDLE9BQU8sQ0FBQyxhQUFhLEVBQ3JCLFVBQVUsQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQWZELE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQWdCO1FBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLE1BQU0sTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzFCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFhTyxLQUFLLENBQUMsVUFBVTtRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxrQ0FBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZjs7V0FFRztRQUNILE9BQU8sSUFBSSxDQUFDLGNBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pC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
|
|
464
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnRzL2NvbXBvc2l0ZS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0Esc0ZBQW9IO0FBQ3BILGdEQUF3QjtBQUN4Qiw0REFBa0M7QUFFbEMsb0NBQXNDO0FBQ3RDLDJDQUlxQjtBQUNyQiwyREFTaUM7QUFDakMscURBQWlEO0FBQ2pELHlDQUF5QztBQUd6Qyx5REFBcUQ7QUFFckQsb0VBQW9FO0FBQ3BFLHFFQUFxRTtBQUNyRSx3RUFBd0U7QUFDeEUsa0VBQWtFO0FBQ2xFLG9CQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFJLENBQUM7QUFDMUIsb0JBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUVyQixNQUFhLGVBQWU7SUFXMUIsWUFDRSxPQUFnQixFQUNoQixVQUFtQjtRQUVuQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksOEJBQWEsQ0FDckMsT0FBTyxDQUFDLGFBQWEsRUFDckIsVUFBVSxDQUNYLENBQUM7SUFDSixDQUFDO0lBZkQsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBZ0I7UUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsTUFBTSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDMUIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQWFPLEtBQUssQ0FBQyxVQUFVO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLGtDQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmOztXQUVHO1FBQ0gsT0FBTyxJQUFJLENBQUMsY0FBZSxDQUFDO0lBQzlC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
|
|
@@ -80,6 +80,7 @@ export declare enum TimePeriod {
|
|
|
80
80
|
}
|
|
81
81
|
export declare const DEFAULT_API_TIMEOUT: number;
|
|
82
82
|
export declare const MAX_MEMO_CHARACTERS: number;
|
|
83
|
+
export declare const SHORT_BLOCK_WINDOW: number;
|
|
83
84
|
export declare const PAGE_REQUEST: PageRequest;
|
|
84
85
|
export declare class IndexerConfig {
|
|
85
86
|
restEndpoint: string;
|
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.Network = exports.ValidatorConfig = exports.IndexerConfig = exports.PAGE_REQUEST = exports.MAX_MEMO_CHARACTERS = exports.DEFAULT_API_TIMEOUT = exports.TimePeriod = exports.PositionStatus = exports.TickerType = exports.OrderStatus = exports.OrderExecution = exports.OrderTimeInForce = exports.OrderSide = exports.OrderType = exports.MarketStatisticDay = exports.NETWORK_ID_TESTNET = exports.NETWORK_ID_MAINNET = exports.NetworkId = exports.ValidatorApiHost = exports.FaucetApiHost = exports.IndexerWSHost = exports.IndexerApiHost = exports.TESTNET_CHAIN_ID = exports.STAGING_CHAIN_ID = exports.DEV_CHAIN_ID = void 0;
|
|
20
|
+
exports.Network = exports.ValidatorConfig = exports.IndexerConfig = exports.PAGE_REQUEST = exports.SHORT_BLOCK_WINDOW = exports.MAX_MEMO_CHARACTERS = exports.DEFAULT_API_TIMEOUT = exports.TimePeriod = exports.PositionStatus = exports.TickerType = exports.OrderStatus = exports.OrderExecution = exports.OrderTimeInForce = exports.OrderSide = exports.OrderType = exports.MarketStatisticDay = exports.NETWORK_ID_TESTNET = exports.NETWORK_ID_MAINNET = exports.NetworkId = exports.ValidatorApiHost = exports.FaucetApiHost = exports.IndexerWSHost = exports.IndexerApiHost = exports.TESTNET_CHAIN_ID = exports.STAGING_CHAIN_ID = exports.DEV_CHAIN_ID = void 0;
|
|
21
21
|
const long_1 = __importDefault(require("long"));
|
|
22
22
|
__exportStar(require("../lib/constants"), exports);
|
|
23
23
|
// Chain ID
|
|
@@ -133,6 +133,7 @@ var TimePeriod;
|
|
|
133
133
|
// ------------ API Defaults ------------
|
|
134
134
|
exports.DEFAULT_API_TIMEOUT = 3000;
|
|
135
135
|
exports.MAX_MEMO_CHARACTERS = 256;
|
|
136
|
+
exports.SHORT_BLOCK_WINDOW = 20;
|
|
136
137
|
// Querying
|
|
137
138
|
exports.PAGE_REQUEST = {
|
|
138
139
|
key: new Uint8Array(),
|
|
@@ -186,4 +187,4 @@ class Network {
|
|
|
186
187
|
}
|
|
187
188
|
}
|
|
188
189
|
exports.Network = Network;
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsZ0RBQXdCO0FBSXhCLG1EQUFpQztBQUVqQyxXQUFXO0FBQ0UsUUFBQSxZQUFZLEdBQUcsc0JBQXNCLENBQUM7QUFDdEMsUUFBQSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQztBQUMxQyxRQUFBLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBRWpELHFDQUFxQztBQUNyQyxJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDeEIsNkRBQTJDLENBQUE7SUFDM0MscUVBQW1ELENBQUE7SUFDbkQsK0RBQTZDLENBQUE7SUFDN0Msb0JBQW9CO0FBQ3RCLENBQUMsRUFMVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQUt6QjtBQUVELElBQVksYUFLWDtBQUxELFdBQVksYUFBYTtJQUN2QixnRUFBK0MsQ0FBQTtJQUMvQyx3RUFBdUQsQ0FBQTtJQUN2RCxrRUFBaUQsQ0FBQTtJQUNqRCxvQkFBb0I7QUFDdEIsQ0FBQyxFQUxXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBS3hCO0FBRUQsSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLDZEQUE0QyxDQUFBO0lBQzVDLG1FQUFrRCxDQUFBO0lBQ2xELG1FQUFrRCxDQUFBO0FBQ3BELENBQUMsRUFKVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQUl4QjtBQUVELElBQVksZ0JBS1g7QUFMRCxXQUFZLGdCQUFnQjtJQUMxQixpRUFBNkMsQ0FBQTtJQUM3Qyx5RUFBcUQsQ0FBQTtJQUNyRCw0RUFBd0QsQ0FBQTtJQUN4RCxvQkFBb0I7QUFDdEIsQ0FBQyxFQUxXLGdCQUFnQixHQUFoQix3QkFBZ0IsS0FBaEIsd0JBQWdCLFFBSzNCO0FBRUQsd0NBQXdDO0FBRXhDLElBQVksU0FL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
|
|
@@ -13,6 +13,5 @@ export default class AccountClient extends RestClient {
|
|
|
13
13
|
getSubaccountOrders(address: string, subaccountNumber: number, ticker?: string | null, tickerType?: TickerType, side?: OrderSide | null, status?: OrderStatus | null, type?: OrderType | null, limit?: number | null, goodTilBlockBeforeOrAt?: number | null, goodTilBlockTimeBeforeOrAt?: string | null, returnLatestOrders?: boolean | null): Promise<Data>;
|
|
14
14
|
getOrder(orderId: string): Promise<Data>;
|
|
15
15
|
getSubaccountFills(address: string, subaccountNumber: number, ticker?: string | null, tickerType?: TickerType, limit?: number | null, createdBeforeOrAtHeight?: number | null, createdBeforeOrAt?: string | null): Promise<Data>;
|
|
16
|
-
getSubaccountFunding(address: string, subaccountNumber: number, limit?: number | null, createdBeforeOrAtHeight?: number | null, createdBeforeOrAt?: string | null): Promise<Data>;
|
|
17
16
|
getSubaccountHistoricalPNLs(address: string, subaccountNumber: number, effectiveBeforeOrAt?: string | null, effectiveAtOrAfter?: string | null): Promise<Data>;
|
|
18
17
|
}
|
|
@@ -81,16 +81,6 @@ class AccountClient extends rest_1.default {
|
|
|
81
81
|
createdBeforeOrAt,
|
|
82
82
|
});
|
|
83
83
|
}
|
|
84
|
-
async getSubaccountFunding(address, subaccountNumber, limit, createdBeforeOrAtHeight, createdBeforeOrAt) {
|
|
85
|
-
const uri = '/v4/funding';
|
|
86
|
-
return this.get(uri, {
|
|
87
|
-
address,
|
|
88
|
-
subaccountNumber,
|
|
89
|
-
limit,
|
|
90
|
-
createdBeforeOrAtHeight,
|
|
91
|
-
createdBeforeOrAt,
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
84
|
async getSubaccountHistoricalPNLs(address, subaccountNumber, effectiveBeforeOrAt, effectiveAtOrAfter) {
|
|
95
85
|
const uri = '/v4/historical-pnl';
|
|
96
86
|
return this.get(uri, {
|
|
@@ -102,4 +92,4 @@ class AccountClient extends rest_1.default {
|
|
|
102
92
|
}
|
|
103
93
|
}
|
|
104
94
|
exports.default = AccountClient;
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnRzL21vZHVsZXMvYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUVzQjtBQUV0QixrREFBZ0M7QUFFaEM7O0dBRUc7QUFDSCxNQUFxQixhQUFjLFNBQVEsY0FBVTtJQUNuRCxLQUFLLENBQUMsY0FBYyxDQUNsQixPQUFlLEVBQ2YsS0FBYztRQUVkLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixPQUFPLEVBQUUsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDakIsT0FBZSxFQUNmLGdCQUF3QjtRQUV4QixNQUFNLEdBQUcsR0FBRyxpQkFBaUIsT0FBTyxxQkFBcUIsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQywrQkFBK0IsQ0FDbkMsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixNQUE4QixFQUM5QixLQUFxQixFQUNyQix1QkFBdUMsRUFDdkMsaUJBQWlDO1FBRWpDLE1BQU0sR0FBRyxHQUFHLHdCQUF3QixDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sS0FBSztZQUNMLHVCQUF1QjtZQUN2QixpQkFBaUI7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkIsQ0FDL0IsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixNQUE4QixFQUM5QixLQUFxQixFQUNyQix1QkFBdUMsRUFDdkMsaUJBQWlDO1FBRWpDLE1BQU0sR0FBRyxHQUFHLG9CQUFvQixDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sS0FBSztZQUNMLHVCQUF1QjtZQUN2QixpQkFBaUI7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBc0IsQ0FDMUIsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixLQUFxQixFQUNyQix1QkFBdUMsRUFDdkMsaUJBQWlDO1FBRWpDLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ25CLE9BQU87WUFDUCxnQkFBZ0I7WUFDaEIsS0FBSztZQUNMLHVCQUF1QjtZQUN2QixpQkFBaUI7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsT0FBZSxFQUNmLGdCQUF3QixFQUN4QixNQUFzQixFQUN0QixhQUF5QixzQkFBVSxDQUFDLFNBQVMsRUFDN0MsSUFBdUIsRUFDdkIsTUFBMkIsRUFDM0IsSUFBdUIsRUFDdkIsS0FBcUIsRUFDckIsc0JBQXNDLEVBQ3RDLDBCQUEwQyxFQUMxQyxrQkFBbUM7UUFFbkMsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sVUFBVTtZQUNWLElBQUk7WUFDSixNQUFNO1lBQ04sSUFBSTtZQUNKLEtBQUs7WUFDTCxzQkFBc0I7WUFDdEIsMEJBQTBCO1lBQzFCLGtCQUFrQjtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFlO1FBQzVCLE1BQU0sR0FBRyxHQUFHLGFBQWEsT0FBTyxFQUFFLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQ3RCLE9BQWUsRUFDZixnQkFBd0IsRUFDeEIsTUFBc0IsRUFDdEIsYUFBeUIsc0JBQVUsQ0FBQyxTQUFTLEVBQzdDLEtBQXFCLEVBQ3JCLHVCQUF1QyxFQUN2QyxpQkFBaUM7UUFFakMsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsT0FBTztZQUNQLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sVUFBVTtZQUNWLEtBQUs7WUFDTCx1QkFBdUI7WUFDdkIsaUJBQWlCO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsMkJBQTJCLENBQy9CLE9BQWUsRUFDZixnQkFBd0IsRUFDeEIsbUJBQW1DLEVBQ25DLGtCQUFrQztRQUVsQyxNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ25CLE9BQU87WUFDUCxnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLGtCQUFrQjtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE3SUQsZ0NBNklDIn0=
|
|
@@ -107,20 +107,6 @@ async function test(): Promise<void> {
|
|
|
107
107
|
console.log(error.message);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
// Get funding payments
|
|
111
|
-
try {
|
|
112
|
-
const response = await client.account.getSubaccountFunding(address, 0);
|
|
113
|
-
console.log(response);
|
|
114
|
-
const fundingPayments = response.fundingPayments;
|
|
115
|
-
console.log(fundingPayments);
|
|
116
|
-
if (fundingPayments.length > 0) {
|
|
117
|
-
const fundingPayments0 = fundingPayments[0];
|
|
118
|
-
console.log(fundingPayments0);
|
|
119
|
-
}
|
|
120
|
-
} catch (error) {
|
|
121
|
-
console.log(error.message);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
110
|
// Get historical pnl
|
|
125
111
|
try {
|
|
126
112
|
const response = await client.account.getSubaccountHistoricalPNLs(address, 0);
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"timeInForce": "DEFAULT",
|
|
4
|
+
"side": "BUY",
|
|
5
|
+
"price": 40000
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"timeInForce": "DEFAULT",
|
|
9
|
+
"side": "SELL",
|
|
10
|
+
"price": 1000
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"timeInForce": "FOK",
|
|
14
|
+
"side": "BUY",
|
|
15
|
+
"price": 1000
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"timeInForce": "FOK",
|
|
19
|
+
"side": "SELL",
|
|
20
|
+
"price": 40000
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"timeInForce": "IOC",
|
|
24
|
+
"side": "BUY",
|
|
25
|
+
"price": 40000
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"timeInForce": "IOC",
|
|
29
|
+
"side": "SELL",
|
|
30
|
+
"price": 1000
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"timeInForce": "POST_ONLY",
|
|
34
|
+
"side": "BUY",
|
|
35
|
+
"price": 1000
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"timeInForce": "POST_ONLY",
|
|
39
|
+
"side": "SELL",
|
|
40
|
+
"price": 40000
|
|
41
|
+
}
|
|
42
|
+
]
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Order_TimeInForce } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order';
|
|
2
|
+
|
|
3
|
+
import { BECH32_PREFIX } from '../src';
|
|
4
|
+
import { CompositeClient } from '../src/clients/composite-client';
|
|
5
|
+
import {
|
|
6
|
+
Network, OrderExecution, OrderSide,
|
|
7
|
+
} from '../src/clients/constants';
|
|
8
|
+
import LocalWallet from '../src/clients/modules/local-wallet';
|
|
9
|
+
import { Subaccount } from '../src/clients/subaccount';
|
|
10
|
+
import { randomInt } from '../src/lib/utils';
|
|
11
|
+
import { DYDX_TEST_MNEMONIC } from './constants';
|
|
12
|
+
import ordersParams from './human_readable_short_term_orders.json';
|
|
13
|
+
|
|
14
|
+
async function sleep(ms: number): Promise<void> {
|
|
15
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
async function test(): Promise<void> {
|
|
19
|
+
const wallet = await LocalWallet.fromMnemonic(DYDX_TEST_MNEMONIC, BECH32_PREFIX);
|
|
20
|
+
console.log(wallet);
|
|
21
|
+
const network = Network.staging();
|
|
22
|
+
const client = await CompositeClient.connect(network);
|
|
23
|
+
console.log('**Client**');
|
|
24
|
+
console.log(client);
|
|
25
|
+
const subaccount = new Subaccount(wallet, 0);
|
|
26
|
+
for (const orderParams of ordersParams) {
|
|
27
|
+
try {
|
|
28
|
+
const side = OrderSide[orderParams.side as keyof typeof OrderSide];
|
|
29
|
+
const price = orderParams.price ?? 1350;
|
|
30
|
+
|
|
31
|
+
const currentBlock = await client.validatorClient.get.latestBlockHeight();
|
|
32
|
+
const nextValidBlockHeight = currentBlock + 1;
|
|
33
|
+
// Note, you can change this to any number between `next_valid_block_height`
|
|
34
|
+
// to `next_valid_block_height + SHORT_BLOCK_WINDOW`
|
|
35
|
+
const goodTilBlock = nextValidBlockHeight + 10;
|
|
36
|
+
|
|
37
|
+
const timeInForce = orderExecutionToTimeInForce(orderParams.timeInForce);
|
|
38
|
+
|
|
39
|
+
// uint32
|
|
40
|
+
const clientId = randomInt(2 ** 32 - 1);
|
|
41
|
+
|
|
42
|
+
const tx = await client.placeShortTermOrder(
|
|
43
|
+
subaccount,
|
|
44
|
+
'ETH-USD',
|
|
45
|
+
side,
|
|
46
|
+
price,
|
|
47
|
+
0.01,
|
|
48
|
+
clientId,
|
|
49
|
+
timeInForce,
|
|
50
|
+
goodTilBlock,
|
|
51
|
+
false,
|
|
52
|
+
);
|
|
53
|
+
console.log('**Order Tx**');
|
|
54
|
+
console.log(tx.hash.toString());
|
|
55
|
+
} catch (error) {
|
|
56
|
+
console.log(error.message);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
await sleep(5000); // wait for placeOrder to complete
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function orderExecutionToTimeInForce(orderExecution: string): Order_TimeInForce {
|
|
64
|
+
switch (orderExecution) {
|
|
65
|
+
case OrderExecution.DEFAULT:
|
|
66
|
+
return Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED;
|
|
67
|
+
case OrderExecution.FOK:
|
|
68
|
+
return Order_TimeInForce.TIME_IN_FORCE_FILL_OR_KILL;
|
|
69
|
+
case OrderExecution.IOC:
|
|
70
|
+
return Order_TimeInForce.TIME_IN_FORCE_IOC;
|
|
71
|
+
case OrderExecution.POST_ONLY:
|
|
72
|
+
return Order_TimeInForce.TIME_IN_FORCE_POST_ONLY;
|
|
73
|
+
default:
|
|
74
|
+
throw new Error('Unrecognized order execution');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
test().then(() => {
|
|
79
|
+
}).catch((error) => {
|
|
80
|
+
console.log(error.message);
|
|
81
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EncodeObject } from '@cosmjs/proto-signing';
|
|
2
2
|
import { GasPrice, IndexedTx, StdFee } from '@cosmjs/stargate';
|
|
3
3
|
import { BroadcastTxAsyncResponse, BroadcastTxSyncResponse } from '@cosmjs/tendermint-rpc/build/tendermint37';
|
|
4
|
+
import { Order_ConditionType, Order_TimeInForce } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order';
|
|
4
5
|
import Long from 'long';
|
|
5
6
|
import protobuf from 'protobufjs';
|
|
6
7
|
|
|
@@ -8,7 +9,7 @@ import { OrderFlags } from '../types';
|
|
|
8
9
|
import {
|
|
9
10
|
DYDX_DENOM,
|
|
10
11
|
GAS_PRICE,
|
|
11
|
-
Network, OrderExecution, OrderSide, OrderTimeInForce, OrderType,
|
|
12
|
+
Network, OrderExecution, OrderSide, OrderTimeInForce, OrderType, SHORT_BLOCK_WINDOW,
|
|
12
13
|
} from './constants';
|
|
13
14
|
import {
|
|
14
15
|
calculateQuantums,
|
|
@@ -21,6 +22,7 @@ import {
|
|
|
21
22
|
calculateConditionalOrderTriggerSubticks,
|
|
22
23
|
} from './helpers/chain-helpers';
|
|
23
24
|
import { IndexerClient } from './indexer-client';
|
|
25
|
+
import { UserError } from './lib/errors';
|
|
24
26
|
import LocalWallet from './modules/local-wallet';
|
|
25
27
|
import { Subaccount } from './subaccount';
|
|
26
28
|
import { ValidatorClient } from './validator-client';
|
|
@@ -157,6 +159,27 @@ export class CompositeClient {
|
|
|
157
159
|
return height + 3;
|
|
158
160
|
}
|
|
159
161
|
|
|
162
|
+
/**
|
|
163
|
+
* @description Calculate the goodTilBlock value for a SHORT_TERM order
|
|
164
|
+
*
|
|
165
|
+
* @param goodTilBlock Number of blocks from the current block height the order will
|
|
166
|
+
* be valid for.
|
|
167
|
+
*
|
|
168
|
+
* @throws UnexpectedClientError if a malformed response is returned with no GRPC error
|
|
169
|
+
* at any point.
|
|
170
|
+
*/
|
|
171
|
+
private async validateGoodTilBlock(goodTilBlock: number): Promise<void> {
|
|
172
|
+
const height = await this.validatorClient.get.latestBlockHeight();
|
|
173
|
+
const nextValidBlockHeight = height + 1;
|
|
174
|
+
const lowerBound = nextValidBlockHeight;
|
|
175
|
+
const upperBound = nextValidBlockHeight + SHORT_BLOCK_WINDOW;
|
|
176
|
+
if (goodTilBlock < lowerBound || goodTilBlock > upperBound) {
|
|
177
|
+
throw new UserError(`Invalid Short-Term order GoodTilBlock.
|
|
178
|
+
Should be greater-than-or-equal-to ${lowerBound} and less-than-or-equal-to ${upperBound}.
|
|
179
|
+
Provided good til block: ${goodTilBlock}`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
160
183
|
/**
|
|
161
184
|
* @description Calculate the goodTilBlockTime value for a LONG_TERM order
|
|
162
185
|
* the calling function is responsible for creating the messages.
|
|
@@ -175,6 +198,60 @@ export class CompositeClient {
|
|
|
175
198
|
return Math.round(future.getTime() / 1000);
|
|
176
199
|
}
|
|
177
200
|
|
|
201
|
+
/**
|
|
202
|
+
* @description Place a short term order with human readable input.
|
|
203
|
+
*
|
|
204
|
+
* Use human readable form of input, including price and size
|
|
205
|
+
* The quantum and subticks are calculated and submitted
|
|
206
|
+
*
|
|
207
|
+
* @param subaccount The subaccount to place the order under
|
|
208
|
+
* @param marketId The market to place the order on
|
|
209
|
+
* @param side The side of the order to place
|
|
210
|
+
* @param price The price of the order to place
|
|
211
|
+
* @param size The size of the order to place
|
|
212
|
+
* @param clientId The client id of the order to place
|
|
213
|
+
* @param timeInForce The time in force of the order to place
|
|
214
|
+
* @param goodTilBlock The goodTilBlock of the order to place
|
|
215
|
+
* @param reduceOnly The reduceOnly of the order to place
|
|
216
|
+
*
|
|
217
|
+
*
|
|
218
|
+
* @throws UnexpectedClientError if a malformed response is returned with no GRPC error
|
|
219
|
+
* at any point.
|
|
220
|
+
* @returns The transaction hash.
|
|
221
|
+
*/
|
|
222
|
+
async placeShortTermOrder(
|
|
223
|
+
subaccount: Subaccount,
|
|
224
|
+
marketId: string,
|
|
225
|
+
side: OrderSide,
|
|
226
|
+
price: number,
|
|
227
|
+
size: number,
|
|
228
|
+
clientId: number,
|
|
229
|
+
goodTilBlock: number,
|
|
230
|
+
timeInForce: Order_TimeInForce,
|
|
231
|
+
reduceOnly: boolean,
|
|
232
|
+
): Promise<BroadcastTxAsyncResponse | BroadcastTxSyncResponse | IndexedTx> {
|
|
233
|
+
const msgs: Promise<EncodeObject[]> = new Promise((resolve) => {
|
|
234
|
+
const msg = this.placeShortTermOrderMessage(
|
|
235
|
+
subaccount,
|
|
236
|
+
marketId,
|
|
237
|
+
side,
|
|
238
|
+
price,
|
|
239
|
+
size,
|
|
240
|
+
clientId,
|
|
241
|
+
timeInForce,
|
|
242
|
+
goodTilBlock,
|
|
243
|
+
reduceOnly,
|
|
244
|
+
);
|
|
245
|
+
msg.then((it) => resolve([it])).catch((err) => {
|
|
246
|
+
console.log(err);
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
return this.send(
|
|
250
|
+
subaccount.wallet,
|
|
251
|
+
() => msgs,
|
|
252
|
+
true);
|
|
253
|
+
}
|
|
254
|
+
|
|
178
255
|
/**
|
|
179
256
|
* @description Place an order with human readable input.
|
|
180
257
|
*
|
|
@@ -341,6 +418,79 @@ export class CompositeClient {
|
|
|
341
418
|
);
|
|
342
419
|
}
|
|
343
420
|
|
|
421
|
+
/**
|
|
422
|
+
* @description Calculate and create the short term place order message
|
|
423
|
+
*
|
|
424
|
+
* Use human readable form of input, including price and size
|
|
425
|
+
* The quantum and subticks are calculated and submitted
|
|
426
|
+
*
|
|
427
|
+
* @param subaccount The subaccount to place the order under
|
|
428
|
+
* @param marketId The market to place the order on
|
|
429
|
+
* @param side The side of the order to place
|
|
430
|
+
* @param price The price of the order to place
|
|
431
|
+
* @param size The size of the order to place
|
|
432
|
+
* @param clientId The client id of the order to place
|
|
433
|
+
* @param timeInForce The time in force of the order to place
|
|
434
|
+
* @param goodTilBlock The goodTilBlock of the order to place
|
|
435
|
+
* @param reduceOnly The reduceOnly of the order to place
|
|
436
|
+
*
|
|
437
|
+
*
|
|
438
|
+
* @throws UnexpectedClientError if a malformed response is returned with no GRPC error
|
|
439
|
+
* at any point.
|
|
440
|
+
* @returns The message to be passed into the protocol
|
|
441
|
+
*/
|
|
442
|
+
private async placeShortTermOrderMessage(
|
|
443
|
+
subaccount: Subaccount,
|
|
444
|
+
marketId: string,
|
|
445
|
+
side: OrderSide,
|
|
446
|
+
price: number,
|
|
447
|
+
size: number,
|
|
448
|
+
clientId: number,
|
|
449
|
+
goodTilBlock: number,
|
|
450
|
+
timeInForce: Order_TimeInForce,
|
|
451
|
+
reduceOnly: boolean,
|
|
452
|
+
): Promise<EncodeObject> {
|
|
453
|
+
await this.validateGoodTilBlock(goodTilBlock);
|
|
454
|
+
|
|
455
|
+
const marketsResponse = await this.indexerClient.markets.getPerpetualMarkets(marketId);
|
|
456
|
+
const market = marketsResponse.markets[marketId];
|
|
457
|
+
const clobPairId = market.clobPairId;
|
|
458
|
+
const atomicResolution = market.atomicResolution;
|
|
459
|
+
const stepBaseQuantums = market.stepBaseQuantums;
|
|
460
|
+
const quantumConversionExponent = market.quantumConversionExponent;
|
|
461
|
+
const subticksPerTick = market.subticksPerTick;
|
|
462
|
+
const orderSide = calculateSide(side);
|
|
463
|
+
const quantums = calculateQuantums(
|
|
464
|
+
size,
|
|
465
|
+
atomicResolution,
|
|
466
|
+
stepBaseQuantums,
|
|
467
|
+
);
|
|
468
|
+
const subticks = calculateSubticks(
|
|
469
|
+
price,
|
|
470
|
+
atomicResolution,
|
|
471
|
+
quantumConversionExponent,
|
|
472
|
+
subticksPerTick,
|
|
473
|
+
);
|
|
474
|
+
const orderFlags = OrderFlags.SHORT_TERM;
|
|
475
|
+
return this.validatorClient.post.composer.composeMsgPlaceOrder(
|
|
476
|
+
subaccount.address,
|
|
477
|
+
subaccount.subaccountNumber,
|
|
478
|
+
clientId,
|
|
479
|
+
clobPairId,
|
|
480
|
+
orderFlags,
|
|
481
|
+
goodTilBlock,
|
|
482
|
+
0, // Short term orders use goodTilBlock.
|
|
483
|
+
orderSide,
|
|
484
|
+
quantums,
|
|
485
|
+
subticks,
|
|
486
|
+
timeInForce,
|
|
487
|
+
reduceOnly,
|
|
488
|
+
0, // Client metadata is 0 for short term orders.
|
|
489
|
+
Order_ConditionType.CONDITION_TYPE_UNSPECIFIED, // Short term orders cannot be conditional.
|
|
490
|
+
Long.fromInt(0), // Short term orders cannot be conditional.
|
|
491
|
+
);
|
|
492
|
+
}
|
|
493
|
+
|
|
344
494
|
/**
|
|
345
495
|
* @description Cancel an order with human readable input.
|
|
346
496
|
*
|
package/src/clients/constants.ts
CHANGED
|
@@ -123,6 +123,8 @@ export const DEFAULT_API_TIMEOUT: number = 3_000;
|
|
|
123
123
|
|
|
124
124
|
export const MAX_MEMO_CHARACTERS: number = 256;
|
|
125
125
|
|
|
126
|
+
export const SHORT_BLOCK_WINDOW: number = 20;
|
|
127
|
+
|
|
126
128
|
// Querying
|
|
127
129
|
export const PAGE_REQUEST: PageRequest = {
|
|
128
130
|
key: new Uint8Array(),
|
|
@@ -134,23 +134,6 @@ export default class AccountClient extends RestClient {
|
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
async getSubaccountFunding(
|
|
138
|
-
address: string,
|
|
139
|
-
subaccountNumber: number,
|
|
140
|
-
limit?: number | null,
|
|
141
|
-
createdBeforeOrAtHeight?: number | null,
|
|
142
|
-
createdBeforeOrAt?: string | null,
|
|
143
|
-
): Promise<Data> {
|
|
144
|
-
const uri = '/v4/funding';
|
|
145
|
-
return this.get(uri, {
|
|
146
|
-
address,
|
|
147
|
-
subaccountNumber,
|
|
148
|
-
limit,
|
|
149
|
-
createdBeforeOrAtHeight,
|
|
150
|
-
createdBeforeOrAt,
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
|
|
154
137
|
async getSubaccountHistoricalPNLs(
|
|
155
138
|
address: string,
|
|
156
139
|
subaccountNumber: number,
|