@grvt/sdk 0.0.1-beta.2 → 0.0.1-beta.20
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/README.md +69 -15
- package/api/sanitizer.d.ts +4 -0
- package/api/sanitizer.js +40 -0
- package/api/sanitizer.js.map +1 -0
- package/api/validator.d.ts +1 -0
- package/api/validator.js +12 -0
- package/api/validator.js.map +1 -0
- package/client/GrvtBaseClient.d.ts +5 -3
- package/client/GrvtBaseClient.js +29 -5
- package/client/GrvtBaseClient.js.map +1 -1
- package/client/GrvtClient.d.ts +36 -10
- package/client/GrvtClient.js +120 -6
- package/client/GrvtClient.js.map +1 -1
- package/client/GrvtWsClient.d.ts +3 -3
- package/client/GrvtWsClient.js.map +1 -1
- package/config/config.d.ts +4 -4
- package/config/config.js +12 -12
- package/config/config.js.map +1 -1
- package/index.d.ts +5 -0
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/package.json +12 -6
- package/services/deposit.d.ts +2 -2
- package/services/deposit.js.map +1 -1
- package/signing/domain.d.ts +2 -2
- package/signing/domain.js.map +1 -1
- package/signing/transfer.d.ts +4 -3
- package/signing/transfer.js +32 -10
- package/signing/transfer.js.map +1 -1
- package/signing/validation.d.ts +4 -0
- package/signing/validation.js +38 -0
- package/signing/validation.js.map +1 -0
- package/signing/withdraw.d.ts +4 -3
- package/signing/withdraw.js +13 -9
- package/signing/withdraw.js.map +1 -1
- package/types/chain.d.ts +18 -4
- package/types/chain.js +20 -4
- package/types/chain.js.map +1 -1
- package/types/currency.d.ts +42 -0
- package/types/currency.js +87 -0
- package/types/currency.js.map +1 -0
- package/types/signature.d.ts +4 -0
- package/types/{account.js → signature.js} +1 -1
- package/types/signature.js.map +1 -0
- package/types/transfer.d.ts +3 -1
- package/types/transfer.js.map +1 -1
- package/utils/address.d.ts +10 -0
- package/utils/address.js +26 -0
- package/utils/address.js.map +1 -0
- package/utils/chain.d.ts +4 -4
- package/utils/chain.js +10 -10
- package/utils/chain.js.map +1 -1
- package/types/account.d.ts +0 -25
- package/types/account.js.map +0 -1
package/README.md
CHANGED
|
@@ -13,13 +13,23 @@ npm install @grvt/sdk
|
|
|
13
13
|
### REST API Client
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
GrvtClient,
|
|
18
|
+
ECurrency,
|
|
19
|
+
ETransferType,
|
|
20
|
+
ITransferMetadata,
|
|
21
|
+
ETransferProvider,
|
|
22
|
+
ETransferDirection,
|
|
23
|
+
EGrvtEnvironment,
|
|
24
|
+
EChain,
|
|
25
|
+
ISigningOptions
|
|
26
|
+
} from '@grvt/sdk';
|
|
17
27
|
|
|
18
28
|
// Initialize the client
|
|
19
29
|
const client = new GrvtClient({
|
|
20
30
|
apiKey: 'your-api-key',
|
|
21
31
|
apiSecret: 'your-api-secret',
|
|
22
|
-
env:
|
|
32
|
+
env: EGrvtEnvironment.DEV,
|
|
23
33
|
});
|
|
24
34
|
|
|
25
35
|
// Get funding account summary
|
|
@@ -31,7 +41,7 @@ const subAccountSummary = await client.getSubAccountSummary({
|
|
|
31
41
|
});
|
|
32
42
|
|
|
33
43
|
// Transfer examples
|
|
34
|
-
// Note:
|
|
44
|
+
// Note: the signature field is optional. If not provided, the SDK will automatically compute it using the apiSecret and provided signing options
|
|
35
45
|
|
|
36
46
|
// Standard transfer
|
|
37
47
|
const transfer1 = await client.transfer({
|
|
@@ -45,17 +55,23 @@ const transfer1 = await client.transfer({
|
|
|
45
55
|
});
|
|
46
56
|
|
|
47
57
|
|
|
48
|
-
//
|
|
49
|
-
// Note: The signature field is optional. If not provided, the SDK will automatically compute it using the apiSecret.
|
|
58
|
+
// Metadata for transfer, you can pass it as the second argument for the transfer API
|
|
50
59
|
const metadata: ITransferMetadata = {
|
|
51
|
-
provider: ETransferProvider.
|
|
52
|
-
direction: ETransferDirection.DEPOSIT
|
|
53
|
-
chainid,
|
|
60
|
+
provider: ETransferProvider.RHINO,
|
|
61
|
+
direction: ETransferDirection.DEPOSIT, // Use ETransferDirection.WITHDRAWAL for withdraw flow
|
|
62
|
+
chainid: EChain.TRON,
|
|
54
63
|
endpoint,
|
|
55
64
|
provider_tx_id: tx_hash,
|
|
56
65
|
provider_ref_id: commit_id,
|
|
57
66
|
};
|
|
58
67
|
|
|
68
|
+
// Signing options for generating the signature as the third argument for the transfer API
|
|
69
|
+
// Note: nonce must be non-negative and expiration must be within 30 days
|
|
70
|
+
const signingOptions: ISigningOptions = {
|
|
71
|
+
nonce: 12345,
|
|
72
|
+
expiration: '1746093221289693252'
|
|
73
|
+
};
|
|
74
|
+
|
|
59
75
|
const transfer2 = await client.transfer(
|
|
60
76
|
{
|
|
61
77
|
from_account_id: 'from-account-id',
|
|
@@ -64,7 +80,8 @@ const transfer2 = await client.transfer(
|
|
|
64
80
|
num_tokens: '100',
|
|
65
81
|
transfer_type: ETransferType.NON_NATIVE_BRIDGE_DEPOSIT, // Use NON_NATIVE_BRIDGE_WITHDRAW for withdraw flow
|
|
66
82
|
},
|
|
67
|
-
metadata
|
|
83
|
+
metadata,
|
|
84
|
+
signingOptions
|
|
68
85
|
);
|
|
69
86
|
|
|
70
87
|
// Request deposit approval
|
|
@@ -78,8 +95,8 @@ const depositApproval = await client.requestDepositApproval({
|
|
|
78
95
|
|
|
79
96
|
|
|
80
97
|
// Withdraw funds from your account
|
|
81
|
-
// Note:
|
|
82
|
-
const withdrawResult = await client.
|
|
98
|
+
// Note: the signature field is optional. If not provided, the SDK will automatically compute it using the apiSecret and provided signing options
|
|
99
|
+
const withdrawResult = await client.withdraw({
|
|
83
100
|
from_account_id: 'your-account-id',
|
|
84
101
|
to_eth_address: 'destination-eth-address',
|
|
85
102
|
currency: ECurrency.USDT,
|
|
@@ -87,12 +104,46 @@ const withdrawResult = await client.withdrawal({
|
|
|
87
104
|
});
|
|
88
105
|
|
|
89
106
|
// Query transfer history
|
|
107
|
+
// Note: both start_time and end_time are required for history queries
|
|
90
108
|
const transferHistory = await client.getTransferHistory({
|
|
91
|
-
start_time: '1745600642000785050' // timestamp in nanosecond, use this to
|
|
109
|
+
start_time: '1745600642000785050', // timestamp in nanosecond, use this to filter transfers with event time >= start_time
|
|
110
|
+
end_time: '17588917787741000000' // timestamp in nanoseconds, use this to filter transfers with event time <= end_time
|
|
111
|
+
});
|
|
112
|
+
// You can filter more & do pagination with this query if needed, please take a look at the request interface to get more details
|
|
113
|
+
|
|
114
|
+
// Query deposit history
|
|
115
|
+
// Note: both start_time and end_time are required for history queries
|
|
116
|
+
const depositHistory = await client.getDepositHistory({
|
|
117
|
+
start_time: '1745600642000785050', // timestamp in nanosecond, use this to filter deposits with event time >= start_time
|
|
118
|
+
end_time: '17588917787741000000' // timestamp in nanoseconds, use this to filter deposits with event time <= end_time
|
|
119
|
+
});
|
|
120
|
+
// You can filter more & do pagination with this query if needed, please take a look at the request interface to get more details
|
|
121
|
+
|
|
122
|
+
// Query withdrawal history
|
|
123
|
+
// Note: both start_time and end_time are required for history queries
|
|
124
|
+
const withdrawalHistory = await client.getWithdrawalHistory({
|
|
125
|
+
start_time: '1745600642000785050', // timestamp in nanosecond, use this to filter withdrawals with event time >= start_time
|
|
126
|
+
end_time: '17588917787741000000' // timestamp in nanoseconds, use this to filter withdrawals with event time <= end_time
|
|
92
127
|
});
|
|
93
128
|
// You can filter more & do pagination with this query if needed, please take a look at the request interface to get more details
|
|
94
129
|
|
|
95
130
|
|
|
131
|
+
// Get current server time, in milliseconds since epoch
|
|
132
|
+
const currentTime = await client.getCurrentTime()
|
|
133
|
+
// Example result: 1747397398409
|
|
134
|
+
|
|
135
|
+
// Convert Rhino chain to Gravity Echain
|
|
136
|
+
// Result will depend on the environment, specifically
|
|
137
|
+
// - DEV, STAGING - Rhino DEV
|
|
138
|
+
// - TESTNET - Rhino STG
|
|
139
|
+
// - PRODUCTION - Rhino PROD
|
|
140
|
+
// This will return null if the chain ID is not found or not supported
|
|
141
|
+
|
|
142
|
+
const chainID = await client.getGravityChainIDFromRhinoChain('BNB_SMART_CHAIN')
|
|
143
|
+
// Result:
|
|
144
|
+
// - On DEV/STAGING/TESTNET: 97
|
|
145
|
+
// - On PRODUCTION: 56
|
|
146
|
+
|
|
96
147
|
```
|
|
97
148
|
|
|
98
149
|
### WebSocket Client
|
|
@@ -100,12 +151,12 @@ const transferHistory = await client.getTransferHistory({
|
|
|
100
151
|
The WebSocket client supports real-time data streaming and follows the same authentication mechanism as the REST API client.
|
|
101
152
|
|
|
102
153
|
```typescript
|
|
103
|
-
import { GrvtWsClient,
|
|
154
|
+
import { GrvtWsClient, EGrvtEnvironment } from '@grvt/sdk';
|
|
104
155
|
|
|
105
156
|
// Initialize the WebSocket client
|
|
106
157
|
const client = new GrvtWsClient({
|
|
107
158
|
apiKey: 'your-api-key',
|
|
108
|
-
env:
|
|
159
|
+
env: EGrvtEnvironment.DEV,
|
|
109
160
|
});
|
|
110
161
|
|
|
111
162
|
// Connect to WebSocket
|
|
@@ -127,15 +178,18 @@ client.disconnect();
|
|
|
127
178
|
#### WebSocket Features
|
|
128
179
|
|
|
129
180
|
1. **Authentication**:
|
|
181
|
+
|
|
130
182
|
- Uses the same cookie-based authentication as the REST API
|
|
131
183
|
- Automatically refreshes cookies when needed
|
|
132
184
|
|
|
133
185
|
2. **Connection Management**:
|
|
186
|
+
|
|
134
187
|
- Automatic reconnection with exponential backoff
|
|
135
188
|
- Connection monitoring with 5-second timeout
|
|
136
189
|
- Reconnects if no messages are received within the timeout period
|
|
137
190
|
|
|
138
191
|
3. **Subscription Handling**:
|
|
192
|
+
|
|
139
193
|
- Unique subscription IDs for each subscription
|
|
140
194
|
- Subscriptions are not automatically restored after reconnection
|
|
141
195
|
- Users need to manually resubscribe after reconnection
|
|
@@ -172,7 +226,7 @@ npm run test:sdk
|
|
|
172
226
|
npm run test:ws
|
|
173
227
|
```
|
|
174
228
|
|
|
175
|
-
### Linting and
|
|
229
|
+
### Linting and Formatting
|
|
176
230
|
|
|
177
231
|
```bash
|
|
178
232
|
npm run lint
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { IApiDepositHistoryResponse, IApiTransferHistoryResponse, IApiWithdrawalHistoryResponse } from '@grvt/client/interfaces';
|
|
2
|
+
export declare function sanitizeTransferHistoryResponse(response: IApiTransferHistoryResponse): IApiTransferHistoryResponse;
|
|
3
|
+
export declare function sanitizeDepositHistoryResponse(response: IApiDepositHistoryResponse): IApiDepositHistoryResponse;
|
|
4
|
+
export declare function sanitizeWithdrawalHistoryResponse(response: IApiWithdrawalHistoryResponse): IApiWithdrawalHistoryResponse;
|
package/api/sanitizer.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sanitizeTransferHistoryResponse = sanitizeTransferHistoryResponse;
|
|
4
|
+
exports.sanitizeDepositHistoryResponse = sanitizeDepositHistoryResponse;
|
|
5
|
+
exports.sanitizeWithdrawalHistoryResponse = sanitizeWithdrawalHistoryResponse;
|
|
6
|
+
const address_1 = require("../utils/address");
|
|
7
|
+
function sanitizeTransferHistoryResponse(response) {
|
|
8
|
+
return {
|
|
9
|
+
...response,
|
|
10
|
+
result: response.result?.map((transfer) => ({
|
|
11
|
+
...transfer,
|
|
12
|
+
from_account_id: sanitizeNullableAddress(transfer.from_account_id),
|
|
13
|
+
to_account_id: sanitizeNullableAddress(transfer.to_account_id),
|
|
14
|
+
})),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function sanitizeDepositHistoryResponse(response) {
|
|
18
|
+
return {
|
|
19
|
+
...response,
|
|
20
|
+
result: response.result?.map((deposit) => ({
|
|
21
|
+
...deposit,
|
|
22
|
+
from_address: sanitizeNullableAddress(deposit.from_address),
|
|
23
|
+
to_account_id: sanitizeNullableAddress(deposit.to_account_id),
|
|
24
|
+
})),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function sanitizeWithdrawalHistoryResponse(response) {
|
|
28
|
+
return {
|
|
29
|
+
...response,
|
|
30
|
+
result: response.result?.map((withdrawal) => ({
|
|
31
|
+
...withdrawal,
|
|
32
|
+
from_account_id: sanitizeNullableAddress(withdrawal.from_account_id),
|
|
33
|
+
to_eth_address: sanitizeNullableAddress(withdrawal.to_eth_address),
|
|
34
|
+
})),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function sanitizeNullableAddress(address) {
|
|
38
|
+
return address ? (0, address_1.sanitizeEvmAddress)(address) : undefined;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=sanitizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitizer.js","sourceRoot":"","sources":["../../src/api/sanitizer.ts"],"names":[],"mappings":";;AAOA,0EAWC;AAED,wEAWC;AAED,8EAWC;AAvCD,8CAAsD;AAEtD,SAAgB,+BAA+B,CAC7C,QAAqC;IAErC,OAAO;QACL,GAAG,QAAQ;QACX,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC1C,GAAG,QAAQ;YACX,eAAe,EAAE,uBAAuB,CAAC,QAAQ,CAAC,eAAe,CAAC;YAClE,aAAa,EAAE,uBAAuB,CAAC,QAAQ,CAAC,aAAa,CAAC;SAC/D,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,SAAgB,8BAA8B,CAC5C,QAAoC;IAEpC,OAAO;QACL,GAAG,QAAQ;QACX,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzC,GAAG,OAAO;YACV,YAAY,EAAE,uBAAuB,CAAC,OAAO,CAAC,YAAY,CAAC;YAC3D,aAAa,EAAE,uBAAuB,CAAC,OAAO,CAAC,aAAa,CAAC;SAC9D,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,SAAgB,iCAAiC,CAC/C,QAAuC;IAEvC,OAAO;QACL,GAAG,QAAQ;QACX,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC5C,GAAG,UAAU;YACb,eAAe,EAAE,uBAAuB,CAAC,UAAU,CAAC,eAAe,CAAC;YACpE,cAAc,EAAE,uBAAuB,CAAC,UAAU,CAAC,cAAc,CAAC;SACnE,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,OAA2B;IAC1D,OAAO,OAAO,CAAC,CAAC,CAAC,IAAA,4BAAkB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function validateRequiredTimeRange(startTime?: string, endTime?: string): void;
|
package/api/validator.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateRequiredTimeRange = validateRequiredTimeRange;
|
|
4
|
+
function validateRequiredTimeRange(startTime, endTime) {
|
|
5
|
+
if (!startTime) {
|
|
6
|
+
throw new Error('startTime is required');
|
|
7
|
+
}
|
|
8
|
+
if (!endTime) {
|
|
9
|
+
throw new Error('endTime is required');
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/api/validator.ts"],"names":[],"mappings":";;AAAA,8DAOC;AAPD,SAAgB,yBAAyB,CAAC,SAAkB,EAAE,OAAgB;IAC5E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;AACH,CAAC"}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IGrvtConfig } from '../config/config';
|
|
2
2
|
interface GrvtCookie {
|
|
3
3
|
gravity: string;
|
|
4
4
|
expires: number;
|
|
5
5
|
XGrvtAccountId?: string;
|
|
6
6
|
}
|
|
7
7
|
export declare class GrvtBaseClient {
|
|
8
|
-
protected config:
|
|
8
|
+
protected config: IGrvtConfig;
|
|
9
9
|
protected cookie: GrvtCookie | null;
|
|
10
10
|
protected domain: string;
|
|
11
11
|
protected edgeBaseUrl: string;
|
|
12
|
-
constructor(config:
|
|
12
|
+
constructor(config: IGrvtConfig);
|
|
13
13
|
protected shouldRefreshCookie(): boolean;
|
|
14
14
|
protected refreshCookie(): Promise<GrvtCookie | null>;
|
|
15
15
|
protected authenticatedGet<RequestParams = Record<string, any>, ResponseData = any>(endpoint: string, params?: RequestParams): Promise<ResponseData>;
|
|
16
|
+
protected get<RequestParams = Record<string, any>, ResponseData = any>(endpoint: string, params?: RequestParams): Promise<ResponseData>;
|
|
16
17
|
protected authenticatedPost<RequestData = Record<string, any>, ResponseData = any>(endpoint: string, payload: RequestData): Promise<ResponseData>;
|
|
17
18
|
private getHeaders;
|
|
19
|
+
private getAuthenticatedHeaders;
|
|
18
20
|
private getDomain;
|
|
19
21
|
}
|
|
20
22
|
export {};
|
package/client/GrvtBaseClient.js
CHANGED
|
@@ -35,6 +35,25 @@ class GrvtBaseClient {
|
|
|
35
35
|
async authenticatedGet(endpoint, params) {
|
|
36
36
|
try {
|
|
37
37
|
await this.refreshCookie();
|
|
38
|
+
const url = new URL(endpoint);
|
|
39
|
+
if (params) {
|
|
40
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
41
|
+
url.searchParams.append(key, String(value));
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const response = await fetch(url.toString(), {
|
|
45
|
+
method: 'GET',
|
|
46
|
+
headers: this.getAuthenticatedHeaders(),
|
|
47
|
+
});
|
|
48
|
+
const data = (await response.json());
|
|
49
|
+
return data;
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
throw new Error(error instanceof Error ? error.message : 'Unknown error');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async get(endpoint, params) {
|
|
56
|
+
try {
|
|
38
57
|
const url = new URL(endpoint);
|
|
39
58
|
if (params) {
|
|
40
59
|
Object.entries(params).forEach(([key, value]) => {
|
|
@@ -57,7 +76,7 @@ class GrvtBaseClient {
|
|
|
57
76
|
await this.refreshCookie();
|
|
58
77
|
const response = await fetch(endpoint, {
|
|
59
78
|
method: 'POST',
|
|
60
|
-
headers: this.
|
|
79
|
+
headers: this.getAuthenticatedHeaders(),
|
|
61
80
|
body: JSON.stringify(payload),
|
|
62
81
|
});
|
|
63
82
|
const data = (await response.json());
|
|
@@ -68,6 +87,11 @@ class GrvtBaseClient {
|
|
|
68
87
|
}
|
|
69
88
|
}
|
|
70
89
|
getHeaders() {
|
|
90
|
+
return {
|
|
91
|
+
'Content-Type': 'application/json',
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
getAuthenticatedHeaders() {
|
|
71
95
|
const headers = {
|
|
72
96
|
'Content-Type': 'application/json',
|
|
73
97
|
};
|
|
@@ -81,13 +105,13 @@ class GrvtBaseClient {
|
|
|
81
105
|
}
|
|
82
106
|
getDomain() {
|
|
83
107
|
switch (this.config.env) {
|
|
84
|
-
case config_1.
|
|
108
|
+
case config_1.EGrvtEnvironment.PRODUCTION:
|
|
85
109
|
return 'grvt.io';
|
|
86
|
-
case config_1.
|
|
110
|
+
case config_1.EGrvtEnvironment.TESTNET:
|
|
87
111
|
return 'testnet.grvt.io';
|
|
88
|
-
case config_1.
|
|
112
|
+
case config_1.EGrvtEnvironment.STAGING:
|
|
89
113
|
return 'staging.gravitymarkets.io';
|
|
90
|
-
case config_1.
|
|
114
|
+
case config_1.EGrvtEnvironment.DEV:
|
|
91
115
|
return 'dev.gravitymarkets.io';
|
|
92
116
|
default:
|
|
93
117
|
throw new Error(`Unknown environment: ${this.config.env}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GrvtBaseClient.js","sourceRoot":"","sources":["../../src/client/GrvtBaseClient.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"GrvtBaseClient.js","sourceRoot":"","sources":["../../src/client/GrvtBaseClient.ts"],"names":[],"mappings":"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"}
|
package/client/GrvtClient.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IGrvtConfig } from '../config/config';
|
|
2
2
|
import { GrvtBaseClient } from './GrvtBaseClient';
|
|
3
|
-
import { TDG, MDG
|
|
3
|
+
import { TDG, MDG } from '@grvt/client';
|
|
4
|
+
import { IApiWithdrawalRequest, IApiTransferResponse, IApiDepositHistoryRequest, IApiDepositHistoryResponse, IApiWithdrawalHistoryRequest, IApiWithdrawalHistoryResponse, IApiSubAccountSummaryResponse, IApiFundingAccountSummaryResponse, IApiTransferHistoryRequest, IApiTransferHistoryResponse, IApiSubAccountSummaryRequest, IApiTransferRequest, IAckResponse } from '@grvt/client/interfaces';
|
|
4
5
|
import { Wallet } from 'ethers';
|
|
5
|
-
import {
|
|
6
|
+
import { EChain } from '../types/chain';
|
|
6
7
|
import { ITransferMetadata } from '../types/transfer';
|
|
7
8
|
import { IDepositOptions, IApiDepositApprovalRequest, IDepositApprovalResponse } from '../types/deposit';
|
|
9
|
+
import { ISigningOptions } from '../types/signature';
|
|
8
10
|
export declare class GrvtClient extends GrvtBaseClient {
|
|
9
11
|
protected tdgClient: TDG;
|
|
10
12
|
protected mdgClient: MDG;
|
|
@@ -12,7 +14,7 @@ export declare class GrvtClient extends GrvtBaseClient {
|
|
|
12
14
|
protected tradesBaseUrl: string;
|
|
13
15
|
protected marketDataBaseUrl: string;
|
|
14
16
|
private depositService;
|
|
15
|
-
constructor(config:
|
|
17
|
+
constructor(config: IGrvtConfig);
|
|
16
18
|
/**
|
|
17
19
|
* Get funding account summary
|
|
18
20
|
* @returns Promise with funding account summary data
|
|
@@ -26,24 +28,33 @@ export declare class GrvtClient extends GrvtBaseClient {
|
|
|
26
28
|
/**
|
|
27
29
|
* Withdraw funds from the account
|
|
28
30
|
* @param request - Withdrawal request
|
|
31
|
+
* @param options - Signing options, if not provided, nonce will be generated randomly and expiration will be 24 hours from now
|
|
29
32
|
* @returns Promise with withdrawal response
|
|
30
33
|
*/
|
|
31
|
-
|
|
32
|
-
acknowledgement: boolean;
|
|
33
|
-
}>;
|
|
34
|
+
withdraw(request: IApiWithdrawalRequest, options?: ISigningOptions): Promise<IAckResponse>;
|
|
34
35
|
/**
|
|
35
36
|
* Transfer funds between accounts
|
|
36
37
|
* @param request - Transfer request
|
|
38
|
+
* @param metadata - Transfer metadata
|
|
39
|
+
* @param options - Signing options, if not provided, nonce will be generated randomly and expiration will be 24 hours from now
|
|
37
40
|
* @returns Promise with transfer response
|
|
38
41
|
*/
|
|
39
|
-
transfer(request: IApiTransferRequest, metadata?: ITransferMetadata): Promise<
|
|
40
|
-
acknowledgement: boolean;
|
|
41
|
-
}>;
|
|
42
|
+
transfer(request: IApiTransferRequest, metadata?: ITransferMetadata, options?: ISigningOptions): Promise<IApiTransferResponse>;
|
|
42
43
|
/**
|
|
43
44
|
* Get transfer history
|
|
44
45
|
* @returns Promise with transfer history response
|
|
45
46
|
*/
|
|
46
47
|
getTransferHistory(request: IApiTransferHistoryRequest): Promise<IApiTransferHistoryResponse>;
|
|
48
|
+
/**
|
|
49
|
+
* Get deposit history
|
|
50
|
+
* @returns Promise with deposit history response
|
|
51
|
+
*/
|
|
52
|
+
getDepositHistory(request: IApiDepositHistoryRequest): Promise<IApiDepositHistoryResponse>;
|
|
53
|
+
/**
|
|
54
|
+
* Get withdrawal history
|
|
55
|
+
* @returns Promise with withdrawal history response
|
|
56
|
+
*/
|
|
57
|
+
getWithdrawalHistory(request: IApiWithdrawalHistoryRequest): Promise<IApiWithdrawalHistoryResponse>;
|
|
47
58
|
/**
|
|
48
59
|
* Deposit funds to the account using L1 bridge or direct transfer for Arbitrum
|
|
49
60
|
* @param options - Deposit options
|
|
@@ -56,6 +67,21 @@ export declare class GrvtClient extends GrvtBaseClient {
|
|
|
56
67
|
* @returns Promise with deposit approval response
|
|
57
68
|
*/
|
|
58
69
|
requestDepositApproval(request: IApiDepositApprovalRequest): Promise<IDepositApprovalResponse>;
|
|
70
|
+
/**
|
|
71
|
+
* Get current time
|
|
72
|
+
* @returns Promise with current time in milliseconds since epoch
|
|
73
|
+
*/
|
|
74
|
+
getCurrentTime(): Promise<number>;
|
|
75
|
+
/**
|
|
76
|
+
* Get the Gravity chain ID for a given Rhino chain
|
|
77
|
+
* @param rhinoChain - The Rhino chain to get the Gravity chain ID for
|
|
78
|
+
* @returns The Gravity chain ID for the given Rhino chain and associated environment, or null if the chain ID is not found
|
|
79
|
+
* Asssociation between Rhino and Gravity environment:
|
|
80
|
+
* - DEV, STAGING - Rhino DEV
|
|
81
|
+
* - TESTNET - Rhino STG
|
|
82
|
+
* - PRODUCTIOn - Rhino PROD
|
|
83
|
+
*/
|
|
84
|
+
getGravityChainIDFromRhinoChain(rhinoChain: string): Promise<EChain | null>;
|
|
59
85
|
private authenticatedEndpoint;
|
|
60
86
|
private getAxiosConfig;
|
|
61
87
|
}
|
package/client/GrvtClient.js
CHANGED
|
@@ -1,13 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.GrvtClient = void 0;
|
|
4
37
|
const transfer_1 = require("../signing/transfer");
|
|
38
|
+
const config_1 = require("../config/config");
|
|
5
39
|
const GrvtBaseClient_1 = require("./GrvtBaseClient");
|
|
6
40
|
const axios_1 = require("axios");
|
|
7
41
|
const client_1 = require("@grvt/client");
|
|
8
42
|
const ethers_1 = require("ethers");
|
|
9
43
|
const withdraw_1 = require("../signing/withdraw");
|
|
10
44
|
const deposit_1 = require("../services/deposit");
|
|
45
|
+
const validation_1 = require("../signing/validation");
|
|
46
|
+
const sanitizer = __importStar(require("../api/sanitizer"));
|
|
47
|
+
const validator_1 = require("../api/validator");
|
|
11
48
|
class GrvtClient extends GrvtBaseClient_1.GrvtBaseClient {
|
|
12
49
|
constructor(config) {
|
|
13
50
|
super(config);
|
|
@@ -43,25 +80,35 @@ class GrvtClient extends GrvtBaseClient_1.GrvtBaseClient {
|
|
|
43
80
|
/**
|
|
44
81
|
* Withdraw funds from the account
|
|
45
82
|
* @param request - Withdrawal request
|
|
83
|
+
* @param options - Signing options, if not provided, nonce will be generated randomly and expiration will be 24 hours from now
|
|
46
84
|
* @returns Promise with withdrawal response
|
|
47
85
|
*/
|
|
48
|
-
async
|
|
86
|
+
async withdraw(request, options) {
|
|
49
87
|
const config = await this.authenticatedEndpoint();
|
|
50
88
|
if (!request.signature) {
|
|
51
89
|
if (!this.wallet) {
|
|
52
90
|
throw new Error('signing requires API secret');
|
|
53
91
|
}
|
|
54
|
-
const withdrawalSignature = await (0, withdraw_1.signWithdrawal)(request, this.wallet, this.config.env);
|
|
92
|
+
const withdrawalSignature = await (0, withdraw_1.signWithdrawal)(request, this.wallet, this.config.env, options);
|
|
55
93
|
request.signature = withdrawalSignature;
|
|
56
94
|
}
|
|
95
|
+
else {
|
|
96
|
+
(0, validation_1.validateISignature)(request.signature);
|
|
97
|
+
}
|
|
57
98
|
return this.tdgClient.withdrawal(request, config);
|
|
58
99
|
}
|
|
59
100
|
/**
|
|
60
101
|
* Transfer funds between accounts
|
|
61
102
|
* @param request - Transfer request
|
|
103
|
+
* @param metadata - Transfer metadata
|
|
104
|
+
* @param options - Signing options, if not provided, nonce will be generated randomly and expiration will be 24 hours from now
|
|
62
105
|
* @returns Promise with transfer response
|
|
63
106
|
*/
|
|
64
|
-
async transfer(request, metadata) {
|
|
107
|
+
async transfer(request, metadata, options) {
|
|
108
|
+
// Make sure transfer metadata can only be set using the metadata parameter, not directly in the request
|
|
109
|
+
if (request.transfer_metadata) {
|
|
110
|
+
throw new Error('transfer_metadata must be set using the metadata parameter, not directly in the request');
|
|
111
|
+
}
|
|
65
112
|
if (metadata) {
|
|
66
113
|
request.transfer_metadata = JSON.stringify(metadata);
|
|
67
114
|
}
|
|
@@ -69,9 +116,12 @@ class GrvtClient extends GrvtBaseClient_1.GrvtBaseClient {
|
|
|
69
116
|
if (!this.wallet) {
|
|
70
117
|
throw new Error('signing requires API secret');
|
|
71
118
|
}
|
|
72
|
-
const transferSignature = await (0, transfer_1.signTransfer)(request, this.wallet, this.config.env);
|
|
119
|
+
const transferSignature = await (0, transfer_1.signTransfer)(request, this.wallet, this.config.env, options);
|
|
73
120
|
request.signature = transferSignature;
|
|
74
121
|
}
|
|
122
|
+
else {
|
|
123
|
+
(0, validation_1.validateISignature)(request.signature);
|
|
124
|
+
}
|
|
75
125
|
const config = await this.authenticatedEndpoint();
|
|
76
126
|
return this.tdgClient.transfer(request, config);
|
|
77
127
|
}
|
|
@@ -80,8 +130,30 @@ class GrvtClient extends GrvtBaseClient_1.GrvtBaseClient {
|
|
|
80
130
|
* @returns Promise with transfer history response
|
|
81
131
|
*/
|
|
82
132
|
async getTransferHistory(request) {
|
|
133
|
+
(0, validator_1.validateRequiredTimeRange)(request.start_time, request.end_time);
|
|
134
|
+
const config = await this.authenticatedEndpoint();
|
|
135
|
+
const response = await this.tdgClient.transferHistory(request, config);
|
|
136
|
+
return sanitizer.sanitizeTransferHistoryResponse(response);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Get deposit history
|
|
140
|
+
* @returns Promise with deposit history response
|
|
141
|
+
*/
|
|
142
|
+
async getDepositHistory(request) {
|
|
143
|
+
(0, validator_1.validateRequiredTimeRange)(request.start_time, request.end_time);
|
|
144
|
+
const config = await this.authenticatedEndpoint();
|
|
145
|
+
const response = await this.tdgClient.depositHistory(request, config);
|
|
146
|
+
return sanitizer.sanitizeDepositHistoryResponse(response);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Get withdrawal history
|
|
150
|
+
* @returns Promise with withdrawal history response
|
|
151
|
+
*/
|
|
152
|
+
async getWithdrawalHistory(request) {
|
|
153
|
+
(0, validator_1.validateRequiredTimeRange)(request.start_time, request.end_time);
|
|
83
154
|
const config = await this.authenticatedEndpoint();
|
|
84
|
-
|
|
155
|
+
const response = await this.tdgClient.withdrawalHistory(request, config);
|
|
156
|
+
return sanitizer.sanitizeWithdrawalHistoryResponse(response);
|
|
85
157
|
}
|
|
86
158
|
/**
|
|
87
159
|
* Deposit funds to the account using L1 bridge or direct transfer for Arbitrum
|
|
@@ -97,7 +169,49 @@ class GrvtClient extends GrvtBaseClient_1.GrvtBaseClient {
|
|
|
97
169
|
* @returns Promise with deposit approval response
|
|
98
170
|
*/
|
|
99
171
|
async requestDepositApproval(request) {
|
|
100
|
-
return this.authenticatedPost(`${this.edgeBaseUrl}/v1/deposit
|
|
172
|
+
return this.authenticatedPost(`${this.edgeBaseUrl}/api/v1/deposit-approval`, request);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Get current time
|
|
176
|
+
* @returns Promise with current time in milliseconds since epoch
|
|
177
|
+
*/
|
|
178
|
+
async getCurrentTime() {
|
|
179
|
+
const response = await this.get(`${this.marketDataBaseUrl}/time`);
|
|
180
|
+
return response.server_time;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get the Gravity chain ID for a given Rhino chain
|
|
184
|
+
* @param rhinoChain - The Rhino chain to get the Gravity chain ID for
|
|
185
|
+
* @returns The Gravity chain ID for the given Rhino chain and associated environment, or null if the chain ID is not found
|
|
186
|
+
* Asssociation between Rhino and Gravity environment:
|
|
187
|
+
* - DEV, STAGING - Rhino DEV
|
|
188
|
+
* - TESTNET - Rhino STG
|
|
189
|
+
* - PRODUCTIOn - Rhino PROD
|
|
190
|
+
*/
|
|
191
|
+
async getGravityChainIDFromRhinoChain(rhinoChain) {
|
|
192
|
+
let rhinoEnv;
|
|
193
|
+
switch (this.config.env) {
|
|
194
|
+
case config_1.EGrvtEnvironment.PRODUCTION:
|
|
195
|
+
rhinoEnv = 'prod';
|
|
196
|
+
break;
|
|
197
|
+
case config_1.EGrvtEnvironment.TESTNET:
|
|
198
|
+
rhinoEnv = 'stg';
|
|
199
|
+
break;
|
|
200
|
+
case config_1.EGrvtEnvironment.STAGING:
|
|
201
|
+
case config_1.EGrvtEnvironment.DEV:
|
|
202
|
+
rhinoEnv = 'dev';
|
|
203
|
+
break;
|
|
204
|
+
default:
|
|
205
|
+
throw new Error('Invalid environment');
|
|
206
|
+
}
|
|
207
|
+
const response = await this.get(`${this.edgeBaseUrl}/api/v1/bridge/rhino-chain-id`, {
|
|
208
|
+
chain: rhinoChain,
|
|
209
|
+
env: rhinoEnv,
|
|
210
|
+
});
|
|
211
|
+
if (!response.chain_id) {
|
|
212
|
+
return null;
|
|
213
|
+
}
|
|
214
|
+
return response.chain_id;
|
|
101
215
|
}
|
|
102
216
|
async authenticatedEndpoint() {
|
|
103
217
|
await this.refreshCookie();
|
package/client/GrvtClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GrvtClient.js","sourceRoot":"","sources":["../../src/client/GrvtClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GrvtClient.js","sourceRoot":"","sources":["../../src/client/GrvtClient.ts"],"names":[],"mappings":"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"}
|