@grvt/sdk 0.0.1-beta.8 → 0.0.1
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 +56 -8
- 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 +2 -0
- package/client/GrvtBaseClient.js +25 -1
- package/client/GrvtBaseClient.js.map +1 -1
- package/client/GrvtClient.d.ts +31 -5
- package/client/GrvtClient.js +114 -2
- package/client/GrvtClient.js.map +1 -1
- package/client/GrvtWsClient.d.ts +1 -1
- package/index.d.ts +4 -0
- package/index.js +4 -0
- package/index.js.map +1 -1
- package/package.json +12 -6
- package/signing/transfer.d.ts +1 -1
- package/signing/transfer.js +21 -3
- package/signing/transfer.js.map +1 -1
- package/signing/validation.d.ts +1 -1
- package/signing/withdraw.d.ts +1 -1
- package/signing/withdraw.js +2 -2
- package/signing/withdraw.js.map +1 -1
- package/types/chain.d.ts +2 -1
- package/types/chain.js +2 -1
- 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/kya.d.ts +13 -0
- package/types/kya.js +9 -0
- package/types/kya.js.map +1 -0
- package/utils/address.d.ts +10 -0
- package/utils/address.js +26 -0
- package/utils/address.js.map +1 -0
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@ npm install @grvt/sdk
|
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
16
|
import {
|
|
17
|
+
GrvtClient,
|
|
17
18
|
ECurrency,
|
|
18
19
|
ETransferType,
|
|
19
20
|
ITransferMetadata,
|
|
@@ -21,7 +22,8 @@ import {
|
|
|
21
22
|
ETransferDirection,
|
|
22
23
|
EGrvtEnvironment,
|
|
23
24
|
EChain,
|
|
24
|
-
|
|
25
|
+
ISigningOptions,
|
|
26
|
+
EKYACheckStatus
|
|
25
27
|
} from '@grvt/sdk';
|
|
26
28
|
|
|
27
29
|
// Initialize the client
|
|
@@ -56,9 +58,9 @@ const transfer1 = await client.transfer({
|
|
|
56
58
|
|
|
57
59
|
// Metadata for transfer, you can pass it as the second argument for the transfer API
|
|
58
60
|
const metadata: ITransferMetadata = {
|
|
59
|
-
provider: ETransferProvider.RHINO
|
|
60
|
-
direction: ETransferDirection.DEPOSIT
|
|
61
|
-
chainid:
|
|
61
|
+
provider: ETransferProvider.RHINO,
|
|
62
|
+
direction: ETransferDirection.DEPOSIT, // Use ETransferDirection.WITHDRAWAL for withdraw flow
|
|
63
|
+
chainid: EChain.TRON,
|
|
62
64
|
endpoint,
|
|
63
65
|
provider_tx_id: tx_hash,
|
|
64
66
|
provider_ref_id: commit_id,
|
|
@@ -66,7 +68,7 @@ const metadata: ITransferMetadata = {
|
|
|
66
68
|
|
|
67
69
|
// Signing options for generating the signature as the third argument for the transfer API
|
|
68
70
|
// Note: nonce must be non-negative and expiration must be within 30 days
|
|
69
|
-
const signingOptions:
|
|
71
|
+
const signingOptions: ISigningOptions = {
|
|
70
72
|
nonce: 12345,
|
|
71
73
|
expiration: '1746093221289693252'
|
|
72
74
|
};
|
|
@@ -103,17 +105,60 @@ const withdrawResult = await client.withdraw({
|
|
|
103
105
|
});
|
|
104
106
|
|
|
105
107
|
// Query transfer history
|
|
108
|
+
// Note: both start_time and end_time are required for history queries
|
|
106
109
|
const transferHistory = await client.getTransferHistory({
|
|
107
|
-
start_time: '1745600642000785050' // timestamp in nanosecond, use this to
|
|
110
|
+
start_time: '1745600642000785050', // timestamp in nanosecond, use this to filter transfers with event time >= start_time
|
|
111
|
+
end_time: '17588917787741000000' // timestamp in nanoseconds, use this to filter transfers with event time <= end_time
|
|
112
|
+
});
|
|
113
|
+
// You can filter more & do pagination with this query if needed, please take a look at the request interface to get more details
|
|
114
|
+
|
|
115
|
+
// Query deposit history
|
|
116
|
+
// Note: both start_time and end_time are required for history queries
|
|
117
|
+
const depositHistory = await client.getDepositHistory({
|
|
118
|
+
start_time: '1745600642000785050', // timestamp in nanosecond, use this to filter deposits with event time >= start_time
|
|
119
|
+
end_time: '17588917787741000000' // timestamp in nanoseconds, use this to filter deposits with event time <= end_time
|
|
120
|
+
});
|
|
121
|
+
// You can filter more & do pagination with this query if needed, please take a look at the request interface to get more details
|
|
122
|
+
|
|
123
|
+
// Query withdrawal history
|
|
124
|
+
// Note: both start_time and end_time are required for history queries
|
|
125
|
+
const withdrawalHistory = await client.getWithdrawalHistory({
|
|
126
|
+
start_time: '1745600642000785050', // timestamp in nanosecond, use this to filter withdrawals with event time >= start_time
|
|
127
|
+
end_time: '17588917787741000000' // timestamp in nanoseconds, use this to filter withdrawals with event time <= end_time
|
|
108
128
|
});
|
|
109
129
|
// You can filter more & do pagination with this query if needed, please take a look at the request interface to get more details
|
|
110
130
|
|
|
111
131
|
|
|
132
|
+
// Get current server time, in milliseconds since epoch
|
|
133
|
+
const currentTime = await client.getCurrentTime()
|
|
134
|
+
// Example result: 1747397398409
|
|
135
|
+
|
|
136
|
+
// Convert Rhino chain to Gravity Echain
|
|
137
|
+
// Result will depend on the environment, specifically
|
|
138
|
+
// - DEV, STAGING - Rhino DEV
|
|
139
|
+
// - TESTNET - Rhino STG
|
|
140
|
+
// - PRODUCTION - Rhino PROD
|
|
141
|
+
// This will return null if the chain ID is not found or not supported
|
|
142
|
+
|
|
143
|
+
const chainID = await client.getGravityChainIDFromRhinoChain('BNB_SMART_CHAIN')
|
|
144
|
+
// Result:
|
|
145
|
+
// - On DEV/STAGING/TESTNET: 97
|
|
146
|
+
// - On PRODUCTION: 56
|
|
147
|
+
|
|
148
|
+
// Check KYA (Know Your Asset) status for Rhino SDA deposit
|
|
149
|
+
// This API checks if a deposit through Rhino SDA deposit pass KYA check
|
|
150
|
+
const kyaStatus = await client.kyaCheckRhinoSDADeposit(
|
|
151
|
+
'sender-address', // The sender's address
|
|
152
|
+
'BNB_SMART_CHAIN', // Rhino chain name
|
|
153
|
+
'smart-deposit-address' // Smart deposit address
|
|
154
|
+
);
|
|
155
|
+
// Returns EKYACheckStatus.CLEARED or EKYACheckStatus.DIRTY
|
|
156
|
+
|
|
112
157
|
```
|
|
113
158
|
|
|
114
159
|
### WebSocket Client
|
|
115
160
|
|
|
116
|
-
The WebSocket client supports real-time data streaming and follows the same authentication
|
|
161
|
+
The WebSocket client supports real-time data streaming and follows the same authentication mechanism as the REST API client.
|
|
117
162
|
|
|
118
163
|
```typescript
|
|
119
164
|
import { GrvtWsClient, EGrvtEnvironment } from '@grvt/sdk';
|
|
@@ -143,15 +188,18 @@ client.disconnect();
|
|
|
143
188
|
#### WebSocket Features
|
|
144
189
|
|
|
145
190
|
1. **Authentication**:
|
|
191
|
+
|
|
146
192
|
- Uses the same cookie-based authentication as the REST API
|
|
147
193
|
- Automatically refreshes cookies when needed
|
|
148
194
|
|
|
149
195
|
2. **Connection Management**:
|
|
196
|
+
|
|
150
197
|
- Automatic reconnection with exponential backoff
|
|
151
198
|
- Connection monitoring with 5-second timeout
|
|
152
199
|
- Reconnects if no messages are received within the timeout period
|
|
153
200
|
|
|
154
201
|
3. **Subscription Handling**:
|
|
202
|
+
|
|
155
203
|
- Unique subscription IDs for each subscription
|
|
156
204
|
- Subscriptions are not automatically restored after reconnection
|
|
157
205
|
- Users need to manually resubscribe after reconnection
|
|
@@ -188,7 +236,7 @@ npm run test:sdk
|
|
|
188
236
|
npm run test:ws
|
|
189
237
|
```
|
|
190
238
|
|
|
191
|
-
### Linting and
|
|
239
|
+
### Linting and Formatting
|
|
192
240
|
|
|
193
241
|
```bash
|
|
194
242
|
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"}
|
|
@@ -13,8 +13,10 @@ export declare class GrvtBaseClient {
|
|
|
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
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GrvtBaseClient.js","sourceRoot":"","sources":["../../src/client/GrvtBaseClient.ts"],"names":[],"mappings":"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
|
|
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,11 +1,13 @@
|
|
|
1
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';
|
|
8
9
|
import { ISigningOptions } from '../types/signature';
|
|
10
|
+
import { EKYACheckStatus } from '../types/kya';
|
|
9
11
|
export declare class GrvtClient extends GrvtBaseClient {
|
|
10
12
|
protected tdgClient: TDG;
|
|
11
13
|
protected mdgClient: MDG;
|
|
@@ -30,9 +32,7 @@ export declare class GrvtClient extends GrvtBaseClient {
|
|
|
30
32
|
* @param options - Signing options, if not provided, nonce will be generated randomly and expiration will be 24 hours from now
|
|
31
33
|
* @returns Promise with withdrawal response
|
|
32
34
|
*/
|
|
33
|
-
withdraw(request: IApiWithdrawalRequest, options?: ISigningOptions): Promise<
|
|
34
|
-
acknowledgement: boolean;
|
|
35
|
-
}>;
|
|
35
|
+
withdraw(request: IApiWithdrawalRequest, options?: ISigningOptions): Promise<IAckResponse>;
|
|
36
36
|
/**
|
|
37
37
|
* Transfer funds between accounts
|
|
38
38
|
* @param request - Transfer request
|
|
@@ -46,6 +46,16 @@ export declare class GrvtClient extends GrvtBaseClient {
|
|
|
46
46
|
* @returns Promise with transfer history response
|
|
47
47
|
*/
|
|
48
48
|
getTransferHistory(request: IApiTransferHistoryRequest): Promise<IApiTransferHistoryResponse>;
|
|
49
|
+
/**
|
|
50
|
+
* Get deposit history
|
|
51
|
+
* @returns Promise with deposit history response
|
|
52
|
+
*/
|
|
53
|
+
getDepositHistory(request: IApiDepositHistoryRequest): Promise<IApiDepositHistoryResponse>;
|
|
54
|
+
/**
|
|
55
|
+
* Get withdrawal history
|
|
56
|
+
* @returns Promise with withdrawal history response
|
|
57
|
+
*/
|
|
58
|
+
getWithdrawalHistory(request: IApiWithdrawalHistoryRequest): Promise<IApiWithdrawalHistoryResponse>;
|
|
49
59
|
/**
|
|
50
60
|
* Deposit funds to the account using L1 bridge or direct transfer for Arbitrum
|
|
51
61
|
* @param options - Deposit options
|
|
@@ -58,6 +68,22 @@ export declare class GrvtClient extends GrvtBaseClient {
|
|
|
58
68
|
* @returns Promise with deposit approval response
|
|
59
69
|
*/
|
|
60
70
|
requestDepositApproval(request: IApiDepositApprovalRequest): Promise<IDepositApprovalResponse>;
|
|
71
|
+
/**
|
|
72
|
+
* Get current time
|
|
73
|
+
* @returns Promise with current time in milliseconds since epoch
|
|
74
|
+
*/
|
|
75
|
+
getCurrentTime(): Promise<number>;
|
|
76
|
+
/**
|
|
77
|
+
* Get the Gravity chain ID for a given Rhino chain
|
|
78
|
+
* @param rhinoChain - The Rhino chain to get the Gravity chain ID for
|
|
79
|
+
* @returns The Gravity chain ID for the given Rhino chain and associated environment, or null if the chain ID is not found
|
|
80
|
+
* Asssociation between Rhino and Gravity environment:
|
|
81
|
+
* - DEV, STAGING - Rhino DEV
|
|
82
|
+
* - TESTNET - Rhino STG
|
|
83
|
+
* - PRODUCTION - Rhino PROD
|
|
84
|
+
*/
|
|
85
|
+
getGravityChainIDFromRhinoChain(rhinoChain: string): Promise<EChain | null>;
|
|
86
|
+
kyaCheckRhinoSDADeposit(senderAddress: string, rhinoChain: string, smartDepositAddress: string): Promise<EKYACheckStatus>;
|
|
61
87
|
private authenticatedEndpoint;
|
|
62
88
|
private getAxiosConfig;
|
|
63
89
|
}
|
package/client/GrvtClient.js
CHANGED
|
@@ -1,7 +1,41 @@
|
|
|
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");
|
|
@@ -9,6 +43,8 @@ const ethers_1 = require("ethers");
|
|
|
9
43
|
const withdraw_1 = require("../signing/withdraw");
|
|
10
44
|
const deposit_1 = require("../services/deposit");
|
|
11
45
|
const validation_1 = require("../signing/validation");
|
|
46
|
+
const sanitizer = __importStar(require("../api/sanitizer"));
|
|
47
|
+
const validator_1 = require("../api/validator");
|
|
12
48
|
class GrvtClient extends GrvtBaseClient_1.GrvtBaseClient {
|
|
13
49
|
constructor(config) {
|
|
14
50
|
super(config);
|
|
@@ -94,8 +130,30 @@ class GrvtClient extends GrvtBaseClient_1.GrvtBaseClient {
|
|
|
94
130
|
* @returns Promise with transfer history response
|
|
95
131
|
*/
|
|
96
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);
|
|
97
144
|
const config = await this.authenticatedEndpoint();
|
|
98
|
-
|
|
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);
|
|
154
|
+
const config = await this.authenticatedEndpoint();
|
|
155
|
+
const response = await this.tdgClient.withdrawalHistory(request, config);
|
|
156
|
+
return sanitizer.sanitizeWithdrawalHistoryResponse(response);
|
|
99
157
|
}
|
|
100
158
|
/**
|
|
101
159
|
* Deposit funds to the account using L1 bridge or direct transfer for Arbitrum
|
|
@@ -111,7 +169,61 @@ class GrvtClient extends GrvtBaseClient_1.GrvtBaseClient {
|
|
|
111
169
|
* @returns Promise with deposit approval response
|
|
112
170
|
*/
|
|
113
171
|
async requestDepositApproval(request) {
|
|
114
|
-
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;
|
|
215
|
+
}
|
|
216
|
+
async kyaCheckRhinoSDADeposit(senderAddress, rhinoChain, smartDepositAddress) {
|
|
217
|
+
const grvtChainId = await this.getGravityChainIDFromRhinoChain(rhinoChain);
|
|
218
|
+
if (!grvtChainId) {
|
|
219
|
+
throw new Error('Invalid Rhino chain');
|
|
220
|
+
}
|
|
221
|
+
const response = await this.authenticatedPost(`${this.edgeBaseUrl}/api/v1/kya`, {
|
|
222
|
+
sender_address: senderAddress,
|
|
223
|
+
chain_id: grvtChainId,
|
|
224
|
+
smart_deposit_address: smartDepositAddress,
|
|
225
|
+
});
|
|
226
|
+
return response.status;
|
|
115
227
|
}
|
|
116
228
|
async authenticatedEndpoint() {
|
|
117
229
|
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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"}
|
package/client/GrvtWsClient.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EGrvtEnvironment } from '../config/config';
|
|
2
2
|
import { GrvtBaseClient } from './GrvtBaseClient';
|
|
3
3
|
import { TMessageHandler } from '@grvt/client/ws';
|
|
4
|
-
import { IWSTransferFeedDataV1 } from '@grvt/client';
|
|
4
|
+
import { IWSTransferFeedDataV1 } from '@grvt/client/interfaces';
|
|
5
5
|
export declare class GrvtWsClient extends GrvtBaseClient {
|
|
6
6
|
private ws;
|
|
7
7
|
private readonly url;
|
package/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export * from '@grvt/client';
|
|
2
|
+
export * from '@grvt/client/interfaces';
|
|
3
|
+
export * from '@grvt/client/interfaces/codegen/enums/transfer-type';
|
|
2
4
|
export * from './client/GrvtClient';
|
|
3
5
|
export * from './client/GrvtWsClient';
|
|
4
6
|
export * from './config/config';
|
|
@@ -7,8 +9,10 @@ export * from './signing/utils';
|
|
|
7
9
|
export * from './signing/withdraw';
|
|
8
10
|
export * from './signing/types';
|
|
9
11
|
export * from './types/chain';
|
|
12
|
+
export * from './types/kya';
|
|
10
13
|
export * from './types/deposit';
|
|
11
14
|
export * from './types/transfer';
|
|
12
15
|
export * from './types/signature';
|
|
16
|
+
export * from './types/currency';
|
|
13
17
|
import { GrvtClient } from './client/GrvtClient';
|
|
14
18
|
export default GrvtClient;
|
package/index.js
CHANGED
|
@@ -15,6 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("@grvt/client"), exports);
|
|
18
|
+
__exportStar(require("@grvt/client/interfaces"), exports);
|
|
19
|
+
__exportStar(require("@grvt/client/interfaces/codegen/enums/transfer-type"), exports);
|
|
18
20
|
__exportStar(require("./client/GrvtClient"), exports);
|
|
19
21
|
__exportStar(require("./client/GrvtWsClient"), exports);
|
|
20
22
|
__exportStar(require("./config/config"), exports);
|
|
@@ -23,9 +25,11 @@ __exportStar(require("./signing/utils"), exports);
|
|
|
23
25
|
__exportStar(require("./signing/withdraw"), exports);
|
|
24
26
|
__exportStar(require("./signing/types"), exports);
|
|
25
27
|
__exportStar(require("./types/chain"), exports);
|
|
28
|
+
__exportStar(require("./types/kya"), exports);
|
|
26
29
|
__exportStar(require("./types/deposit"), exports);
|
|
27
30
|
__exportStar(require("./types/transfer"), exports);
|
|
28
31
|
__exportStar(require("./types/signature"), exports);
|
|
32
|
+
__exportStar(require("./types/currency"), exports);
|
|
29
33
|
// Re-export the main client class as default
|
|
30
34
|
const GrvtClient_1 = require("./client/GrvtClient");
|
|
31
35
|
exports.default = GrvtClient_1.GrvtClient;
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,sDAAoC;AACpC,wDAAsC;AACtC,kDAAgC;AAChC,qDAAmC;AACnC,kDAAgC;AAChC,qDAAmC;AACnC,kDAAgC;AAChC,gDAA8B;AAC9B,kDAAgC;AAChC,mDAAiC;AACjC,oDAAkC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,0DAAwC;AACxC,sFAAoE;AACpE,sDAAoC;AACpC,wDAAsC;AACtC,kDAAgC;AAChC,qDAAmC;AACnC,kDAAgC;AAChC,qDAAmC;AACnC,kDAAgC;AAChC,gDAA8B;AAC9B,8CAA4B;AAC5B,kDAAgC;AAChC,mDAAiC;AACjC,oDAAkC;AAClC,mDAAiC;AAEjC,6CAA6C;AAC7C,oDAAiD;AACjD,kBAAe,uBAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grvt/sdk",
|
|
3
|
-
"version": "0.0.1
|
|
3
|
+
"version": "0.0.1",
|
|
4
4
|
"description": "TypeScript SDK for GRVT",
|
|
5
|
-
"main": "
|
|
6
|
-
"types": "
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"types": "index.d.ts",
|
|
7
7
|
"engines": {
|
|
8
8
|
"node": ">=20"
|
|
9
9
|
},
|
|
@@ -17,8 +17,11 @@
|
|
|
17
17
|
"link-local": "cp package.json dist/ && cd dist/ && npm link && cd ..",
|
|
18
18
|
"lint": "npx eslint --config eslint.config.js .",
|
|
19
19
|
"format": "npx prettier --write \"src/**/*.ts\"",
|
|
20
|
-
"test
|
|
21
|
-
"test:
|
|
20
|
+
"test": "jest",
|
|
21
|
+
"test:watch": "jest --watch",
|
|
22
|
+
"test:coverage": "jest --coverage",
|
|
23
|
+
"playground": "ts-node -r dotenv/config tests/playground.ts dotenv_config_path=./tests/.env",
|
|
24
|
+
"playground:ws": "ts-node -r dotenv/config tests/ws.playground.ts dotenv_config_path=./tests/.env"
|
|
22
25
|
},
|
|
23
26
|
"keywords": [
|
|
24
27
|
"grvt",
|
|
@@ -30,6 +33,7 @@
|
|
|
30
33
|
"author": "",
|
|
31
34
|
"license": "MIT",
|
|
32
35
|
"devDependencies": {
|
|
36
|
+
"@types/jest": "^29.5.14",
|
|
33
37
|
"@types/set-cookie-parser": "^2.4.10",
|
|
34
38
|
"@typescript-eslint/eslint-plugin": "^8.31.0",
|
|
35
39
|
"@typescript-eslint/parser": "^8.31.0",
|
|
@@ -37,13 +41,15 @@
|
|
|
37
41
|
"eslint": "^9.25.1",
|
|
38
42
|
"eslint-config-prettier": "^10.1.2",
|
|
39
43
|
"eslint-plugin-prettier": "^5.2.6",
|
|
44
|
+
"jest": "^29.7.0",
|
|
40
45
|
"prettier": "^3.5.3",
|
|
41
46
|
"rimraf": "^6.0.1",
|
|
47
|
+
"ts-jest": "^29.4.0",
|
|
42
48
|
"ts-node": "^10.9.2",
|
|
43
49
|
"typescript": "^5.8.3"
|
|
44
50
|
},
|
|
45
51
|
"dependencies": {
|
|
46
|
-
"@grvt/client": "^1.
|
|
52
|
+
"@grvt/client": "^1.6.5",
|
|
47
53
|
"@metamask/eth-sig-util": "^8.2.0",
|
|
48
54
|
"@types/ws": "^8.18.1",
|
|
49
55
|
"ethers": "^6.13.5",
|
package/signing/transfer.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EGrvtEnvironment } from '../config/config';
|
|
2
2
|
import { Wallet } from 'ethers';
|
|
3
|
-
import { IApiTransferRequest, ISignature } from '@grvt/client';
|
|
3
|
+
import { IApiTransferRequest, ISignature } from '@grvt/client/interfaces';
|
|
4
4
|
import { ISigningOptions } from '../types/signature';
|
|
5
5
|
export declare const signTransfer: (transfer: IApiTransferRequest, wallet: Wallet, env: EGrvtEnvironment, options?: ISigningOptions) => Promise<ISignature>;
|
package/signing/transfer.js
CHANGED
|
@@ -5,7 +5,8 @@ const domain_1 = require("./domain");
|
|
|
5
5
|
const utils_1 = require("./utils");
|
|
6
6
|
const signer_1 = require("./signer");
|
|
7
7
|
const types_1 = require("./types");
|
|
8
|
-
const
|
|
8
|
+
const ethers_1 = require("ethers");
|
|
9
|
+
const currency_1 = require("../types/currency");
|
|
9
10
|
const validation_1 = require("./validation");
|
|
10
11
|
const signTransfer = async (transfer, wallet, env, options) => {
|
|
11
12
|
if (options) {
|
|
@@ -14,13 +15,17 @@ const signTransfer = async (transfer, wallet, env, options) => {
|
|
|
14
15
|
const nonce = options?.nonce ?? (0, utils_1.GenerateNonce)();
|
|
15
16
|
const expiration = options?.expiration || (0, utils_1.GenerateExpiration)();
|
|
16
17
|
const domain = (0, domain_1.getEIP712DomainData)(env);
|
|
18
|
+
if (!transfer.num_tokens) {
|
|
19
|
+
throw new Error('num_tokens is required');
|
|
20
|
+
}
|
|
21
|
+
const numTokens = parseNumTokens(transfer.num_tokens);
|
|
17
22
|
const messageData = {
|
|
18
23
|
fromAccount: transfer.from_account_id || '',
|
|
19
24
|
fromSubAccount: transfer.from_sub_account_id || '',
|
|
20
25
|
toAccount: transfer.to_account_id || '',
|
|
21
26
|
toSubAccount: transfer.to_sub_account_id || '',
|
|
22
|
-
tokenCurrency: transfer.currency ? Object.keys(
|
|
23
|
-
numTokens:
|
|
27
|
+
tokenCurrency: transfer.currency ? Object.keys(currency_1.ECurrency).indexOf(transfer.currency) + 1 : 0,
|
|
28
|
+
numTokens: numTokens,
|
|
24
29
|
nonce: nonce,
|
|
25
30
|
expiration: expiration,
|
|
26
31
|
};
|
|
@@ -40,4 +45,17 @@ const signTransfer = async (transfer, wallet, env, options) => {
|
|
|
40
45
|
};
|
|
41
46
|
};
|
|
42
47
|
exports.signTransfer = signTransfer;
|
|
48
|
+
function parseNumTokens(numTokens) {
|
|
49
|
+
// Check for more than one decimal point
|
|
50
|
+
const parts = numTokens.split('.');
|
|
51
|
+
if (parts.length > 2) {
|
|
52
|
+
throw new Error('num_tokens cannot have more than one decimal point');
|
|
53
|
+
}
|
|
54
|
+
// Check for more than 6 decimal places
|
|
55
|
+
if (parts.length === 2 && parts[1].length > 6) {
|
|
56
|
+
throw new Error('num_tokens cannot have more than 6 decimal places');
|
|
57
|
+
}
|
|
58
|
+
const numTokensNumber = Number((0, ethers_1.parseUnits)(numTokens, 6));
|
|
59
|
+
return numTokensNumber;
|
|
60
|
+
}
|
|
43
61
|
//# sourceMappingURL=transfer.js.map
|
package/signing/transfer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/signing/transfer.ts"],"names":[],"mappings":";;;AACA,qCAA+C;AAC/C,mCAA4D;AAC5D,qCAAkC;AAClC,mCAAmC;
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/signing/transfer.ts"],"names":[],"mappings":";;;AACA,qCAA+C;AAC/C,mCAA4D;AAC5D,qCAAkC;AAClC,mCAAmC;AACnC,mCAA4C;AAE5C,gDAA8C;AAE9C,6CAAuD;AAEhD,MAAM,YAAY,GAAG,KAAK,EAC/B,QAA6B,EAC7B,MAAc,EACd,GAAqB,EACrB,OAAyB,EACJ,EAAE;IACvB,IAAI,OAAO,EAAE,CAAC;QACZ,IAAA,oCAAuB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAA,qBAAa,GAAE,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAA,0BAAkB,GAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAA,4BAAmB,EAAC,GAAG,CAAC,CAAC;IAExC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG;QAClB,WAAW,EAAE,QAAQ,CAAC,eAAe,IAAI,EAAE;QAC3C,cAAc,EAAE,QAAQ,CAAC,mBAAmB,IAAI,EAAE;QAClD,SAAS,EAAE,QAAQ,CAAC,aAAa,IAAI,EAAE;QACvC,YAAY,EAAE,QAAQ,CAAC,iBAAiB,IAAI,EAAE;QAC9C,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,UAAU;KACvB,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;QACrD,GAAG,gBAAQ;QACX,MAAM;QACN,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IACH,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,eAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE7C,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,MAAM,EAAE,MAAM,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,UAAU;KACvB,CAAC;AACJ,CAAC,CAAC;AA1CW,QAAA,YAAY,gBA0CvB;AAEF,SAAS,cAAc,CAAC,SAAiB;IACvC,wCAAwC;IACxC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,uCAAuC;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAA,mBAAU,EAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IACzD,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
package/signing/validation.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ISignature } from '@grvt/client';
|
|
1
|
+
import { ISignature } from '@grvt/client/interfaces';
|
|
2
2
|
import { ISigningOptions } from '../types/signature';
|
|
3
3
|
export declare const validateISigningOptions: (options: ISigningOptions) => void;
|
|
4
4
|
export declare const validateISignature: (signature: ISignature) => void;
|
package/signing/withdraw.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EGrvtEnvironment } from '../config/config';
|
|
2
2
|
import { Wallet } from 'ethers';
|
|
3
|
-
import { IApiWithdrawalRequest, ISignature } from '@grvt/client';
|
|
3
|
+
import { IApiWithdrawalRequest, ISignature } from '@grvt/client/interfaces';
|
|
4
4
|
import { ISigningOptions } from '../types/signature';
|
|
5
5
|
export declare const signWithdrawal: (withdrawal: IApiWithdrawalRequest, wallet: Wallet, env: EGrvtEnvironment, options?: ISigningOptions) => Promise<ISignature>;
|
package/signing/withdraw.js
CHANGED
|
@@ -5,7 +5,7 @@ const domain_1 = require("./domain");
|
|
|
5
5
|
const utils_1 = require("./utils");
|
|
6
6
|
const signer_1 = require("./signer");
|
|
7
7
|
const types_1 = require("./types");
|
|
8
|
-
const
|
|
8
|
+
const currency_1 = require("../types/currency");
|
|
9
9
|
const validation_1 = require("./validation");
|
|
10
10
|
const signWithdrawal = async (withdrawal, wallet, env, options) => {
|
|
11
11
|
if (options) {
|
|
@@ -18,7 +18,7 @@ const signWithdrawal = async (withdrawal, wallet, env, options) => {
|
|
|
18
18
|
fromAccount: withdrawal.from_account_id || '',
|
|
19
19
|
toEthAddress: withdrawal.to_eth_address || '',
|
|
20
20
|
tokenCurrency: withdrawal.currency
|
|
21
|
-
? Object.keys(
|
|
21
|
+
? Object.keys(currency_1.ECurrency).indexOf(withdrawal.currency) + 1
|
|
22
22
|
: 0,
|
|
23
23
|
numTokens: withdrawal.num_tokens ? Math.floor(parseFloat(withdrawal.num_tokens) * 1e6) : 0,
|
|
24
24
|
nonce: nonce,
|
package/signing/withdraw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../src/signing/withdraw.ts"],"names":[],"mappings":";;;AACA,qCAA+C;AAC/C,mCAA4D;AAC5D,qCAAkC;AAClC,mCAAqC;
|
|
1
|
+
{"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../src/signing/withdraw.ts"],"names":[],"mappings":";;;AACA,qCAA+C;AAC/C,mCAA4D;AAC5D,qCAAkC;AAClC,mCAAqC;AAGrC,gDAA8C;AAE9C,6CAAuD;AAEhD,MAAM,cAAc,GAAG,KAAK,EACjC,UAAiC,EACjC,MAAc,EACd,GAAqB,EACrB,OAAyB,EACJ,EAAE;IACvB,IAAI,OAAO,EAAE,CAAC;QACZ,IAAA,oCAAuB,EAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAA,qBAAa,GAAE,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAA,0BAAkB,GAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAA,4BAAmB,EAAC,GAAG,CAAC,CAAC;IAExC,MAAM,WAAW,GAAG;QAClB,WAAW,EAAE,UAAU,CAAC,eAAe,IAAI,EAAE;QAC7C,YAAY,EAAE,UAAU,CAAC,cAAc,IAAI,EAAE;QAC7C,aAAa,EAAE,UAAU,CAAC,QAAQ;YAChC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAS,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;YACzD,CAAC,CAAC,CAAC;QACL,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,UAAU;KACvB,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;QACrD,GAAG,kBAAU;QACb,MAAM;QACN,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IACH,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,eAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE7C,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,MAAM,EAAE,MAAM,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,UAAU;KACvB,CAAC;AACJ,CAAC,CAAC;AAtCW,QAAA,cAAc,kBAsCzB"}
|
package/types/chain.d.ts
CHANGED
|
@@ -12,7 +12,8 @@ export declare enum EChain {
|
|
|
12
12
|
BNB_TESTNET = "97",
|
|
13
13
|
BASE_SEPOLIA = "84532",
|
|
14
14
|
ETHEREUM_SEPOLIA = "11155111",
|
|
15
|
-
|
|
15
|
+
POLYGON_AMOY = "80002",
|
|
16
|
+
POLYGON_ZKEVM_CARDONA_TEST = "2442",
|
|
16
17
|
ZKSYNC_SEPOLIA = "300",
|
|
17
18
|
SOLANA_TESTNET = "solana_test",
|
|
18
19
|
TRON_TESTNET = "tron_test"
|
package/types/chain.js
CHANGED
|
@@ -18,7 +18,8 @@ var EChain;
|
|
|
18
18
|
EChain["BNB_TESTNET"] = "97";
|
|
19
19
|
EChain["BASE_SEPOLIA"] = "84532";
|
|
20
20
|
EChain["ETHEREUM_SEPOLIA"] = "11155111";
|
|
21
|
-
EChain["
|
|
21
|
+
EChain["POLYGON_AMOY"] = "80002";
|
|
22
|
+
EChain["POLYGON_ZKEVM_CARDONA_TEST"] = "2442";
|
|
22
23
|
EChain["ZKSYNC_SEPOLIA"] = "300";
|
|
23
24
|
EChain["SOLANA_TESTNET"] = "solana_test";
|
|
24
25
|
EChain["TRON_TESTNET"] = "tron_test";
|
package/types/chain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/types/chain.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/types/chain.ts"],"names":[],"mappings":";;;AAAA,IAAY,MAsBX;AAtBD,WAAY,MAAM;IAChB,UAAU;IACV,gCAAsB,CAAA;IACtB,gCAAsB,CAAA;IACtB,uBAAa,CAAA;IACb,wBAAc,CAAA;IACd,yBAAe,CAAA;IACf,gCAAsB,CAAA;IACtB,4BAAkB,CAAA;IAClB,2BAAiB,CAAA;IACjB,uBAAa,CAAA;IAEb,UAAU;IACV,qCAA2B,CAAA;IAC3B,4BAAkB,CAAA;IAClB,gCAAsB,CAAA;IACtB,uCAA6B,CAAA;IAC7B,gCAAsB,CAAA;IACtB,6CAAmC,CAAA;IACnC,gCAAsB,CAAA;IACtB,wCAA8B,CAAA;IAC9B,oCAA0B,CAAA;AAC5B,CAAC,EAtBW,MAAM,sBAAN,MAAM,QAsBjB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export declare enum ECurrency {
|
|
2
|
+
USD = "USD",
|
|
3
|
+
USDC = "USDC",
|
|
4
|
+
USDT = "USDT",
|
|
5
|
+
ETH = "ETH",
|
|
6
|
+
BTC = "BTC",
|
|
7
|
+
SOL = "SOL",
|
|
8
|
+
ARB = "ARB",
|
|
9
|
+
BNB = "BNB",
|
|
10
|
+
ZK = "ZK",
|
|
11
|
+
POL = "POL",
|
|
12
|
+
OP = "OP",
|
|
13
|
+
ATOM = "ATOM",
|
|
14
|
+
KPEPE = "KPEPE",
|
|
15
|
+
TON = "TON",
|
|
16
|
+
XRP = "XRP",
|
|
17
|
+
XLM = "XLM",
|
|
18
|
+
WLD = "WLD",
|
|
19
|
+
WIF = "WIF",
|
|
20
|
+
VIRTUAL = "VIRTUAL",
|
|
21
|
+
TRUMP = "TRUMP",
|
|
22
|
+
SUI = "SUI",
|
|
23
|
+
KSHIB = "KSHIB",
|
|
24
|
+
POPCAT = "POPCAT",
|
|
25
|
+
PENGU = "PENGU",
|
|
26
|
+
LINK = "LINK",
|
|
27
|
+
KBONK = "KBONK",
|
|
28
|
+
JUP = "JUP",
|
|
29
|
+
FARTCOIN = "FARTCOIN",
|
|
30
|
+
ENA = "ENA",
|
|
31
|
+
DOGE = "DOGE",
|
|
32
|
+
AIXBT = "AIXBT",
|
|
33
|
+
AI16Z = "AI16Z",
|
|
34
|
+
ADA = "ADA",
|
|
35
|
+
AAVE = "AAVE",
|
|
36
|
+
BERA = "BERA",
|
|
37
|
+
VINE = "VINE",
|
|
38
|
+
PENDLE = "PENDLE",
|
|
39
|
+
UXLINK = "UXLINK",
|
|
40
|
+
KAITO = "KAITO",
|
|
41
|
+
IP = "IP"
|
|
42
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ECurrency = void 0;
|
|
4
|
+
var ECurrency;
|
|
5
|
+
(function (ECurrency) {
|
|
6
|
+
// the USD fiat currency
|
|
7
|
+
ECurrency["USD"] = "USD";
|
|
8
|
+
// the USDC token
|
|
9
|
+
ECurrency["USDC"] = "USDC";
|
|
10
|
+
// the USDT token
|
|
11
|
+
ECurrency["USDT"] = "USDT";
|
|
12
|
+
// the ETH token
|
|
13
|
+
ECurrency["ETH"] = "ETH";
|
|
14
|
+
// the BTC token
|
|
15
|
+
ECurrency["BTC"] = "BTC";
|
|
16
|
+
// the SOL token
|
|
17
|
+
ECurrency["SOL"] = "SOL";
|
|
18
|
+
// the ARB token
|
|
19
|
+
ECurrency["ARB"] = "ARB";
|
|
20
|
+
// the BNB token
|
|
21
|
+
ECurrency["BNB"] = "BNB";
|
|
22
|
+
// the ZK token
|
|
23
|
+
ECurrency["ZK"] = "ZK";
|
|
24
|
+
// the POL token
|
|
25
|
+
ECurrency["POL"] = "POL";
|
|
26
|
+
// the OP token
|
|
27
|
+
ECurrency["OP"] = "OP";
|
|
28
|
+
// the ATOM token
|
|
29
|
+
ECurrency["ATOM"] = "ATOM";
|
|
30
|
+
// the 1000PEPE token
|
|
31
|
+
ECurrency["KPEPE"] = "KPEPE";
|
|
32
|
+
// the TON token
|
|
33
|
+
ECurrency["TON"] = "TON";
|
|
34
|
+
// the XRP token
|
|
35
|
+
ECurrency["XRP"] = "XRP";
|
|
36
|
+
// the XLM token
|
|
37
|
+
ECurrency["XLM"] = "XLM";
|
|
38
|
+
// the WLD token
|
|
39
|
+
ECurrency["WLD"] = "WLD";
|
|
40
|
+
// the WIF token
|
|
41
|
+
ECurrency["WIF"] = "WIF";
|
|
42
|
+
// the VIRTUAL token
|
|
43
|
+
ECurrency["VIRTUAL"] = "VIRTUAL";
|
|
44
|
+
// the TRUMP token
|
|
45
|
+
ECurrency["TRUMP"] = "TRUMP";
|
|
46
|
+
// the SUI token
|
|
47
|
+
ECurrency["SUI"] = "SUI";
|
|
48
|
+
// the 1000SHIB token
|
|
49
|
+
ECurrency["KSHIB"] = "KSHIB";
|
|
50
|
+
// the POPCAT token
|
|
51
|
+
ECurrency["POPCAT"] = "POPCAT";
|
|
52
|
+
// the PENGU token
|
|
53
|
+
ECurrency["PENGU"] = "PENGU";
|
|
54
|
+
// the LINK token
|
|
55
|
+
ECurrency["LINK"] = "LINK";
|
|
56
|
+
// the 1000BONK token
|
|
57
|
+
ECurrency["KBONK"] = "KBONK";
|
|
58
|
+
// the JUP token
|
|
59
|
+
ECurrency["JUP"] = "JUP";
|
|
60
|
+
// the FARTCOIN token
|
|
61
|
+
ECurrency["FARTCOIN"] = "FARTCOIN";
|
|
62
|
+
// the ENA token
|
|
63
|
+
ECurrency["ENA"] = "ENA";
|
|
64
|
+
// the DOGE token
|
|
65
|
+
ECurrency["DOGE"] = "DOGE";
|
|
66
|
+
// the AIXBT token
|
|
67
|
+
ECurrency["AIXBT"] = "AIXBT";
|
|
68
|
+
// the AI16Z token
|
|
69
|
+
ECurrency["AI16Z"] = "AI16Z";
|
|
70
|
+
// the ADA token
|
|
71
|
+
ECurrency["ADA"] = "ADA";
|
|
72
|
+
// the AAVE token
|
|
73
|
+
ECurrency["AAVE"] = "AAVE";
|
|
74
|
+
// the BERA token
|
|
75
|
+
ECurrency["BERA"] = "BERA";
|
|
76
|
+
// the VINE token
|
|
77
|
+
ECurrency["VINE"] = "VINE";
|
|
78
|
+
// the PENDLE token
|
|
79
|
+
ECurrency["PENDLE"] = "PENDLE";
|
|
80
|
+
// the UXLINK token
|
|
81
|
+
ECurrency["UXLINK"] = "UXLINK";
|
|
82
|
+
// the KAITO token
|
|
83
|
+
ECurrency["KAITO"] = "KAITO";
|
|
84
|
+
// the IP token
|
|
85
|
+
ECurrency["IP"] = "IP";
|
|
86
|
+
})(ECurrency || (exports.ECurrency = ECurrency = {}));
|
|
87
|
+
//# sourceMappingURL=currency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currency.js","sourceRoot":"","sources":["../../src/types/currency.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAiFX;AAjFD,WAAY,SAAS;IACnB,wBAAwB;IACxB,wBAAW,CAAA;IACX,iBAAiB;IACjB,0BAAa,CAAA;IACb,iBAAiB;IACjB,0BAAa,CAAA;IACb,gBAAgB;IAChB,wBAAW,CAAA;IACX,gBAAgB;IAChB,wBAAW,CAAA;IACX,gBAAgB;IAChB,wBAAW,CAAA;IACX,gBAAgB;IAChB,wBAAW,CAAA;IACX,gBAAgB;IAChB,wBAAW,CAAA;IACX,eAAe;IACf,sBAAS,CAAA;IACT,gBAAgB;IAChB,wBAAW,CAAA;IACX,eAAe;IACf,sBAAS,CAAA;IACT,iBAAiB;IACjB,0BAAa,CAAA;IACb,qBAAqB;IACrB,4BAAe,CAAA;IACf,gBAAgB;IAChB,wBAAW,CAAA;IACX,gBAAgB;IAChB,wBAAW,CAAA;IACX,gBAAgB;IAChB,wBAAW,CAAA;IACX,gBAAgB;IAChB,wBAAW,CAAA;IACX,gBAAgB;IAChB,wBAAW,CAAA;IACX,oBAAoB;IACpB,gCAAmB,CAAA;IACnB,kBAAkB;IAClB,4BAAe,CAAA;IACf,gBAAgB;IAChB,wBAAW,CAAA;IACX,qBAAqB;IACrB,4BAAe,CAAA;IACf,mBAAmB;IACnB,8BAAiB,CAAA;IACjB,kBAAkB;IAClB,4BAAe,CAAA;IACf,iBAAiB;IACjB,0BAAa,CAAA;IACb,qBAAqB;IACrB,4BAAe,CAAA;IACf,gBAAgB;IAChB,wBAAW,CAAA;IACX,qBAAqB;IACrB,kCAAqB,CAAA;IACrB,gBAAgB;IAChB,wBAAW,CAAA;IACX,iBAAiB;IACjB,0BAAa,CAAA;IACb,kBAAkB;IAClB,4BAAe,CAAA;IACf,kBAAkB;IAClB,4BAAe,CAAA;IACf,gBAAgB;IAChB,wBAAW,CAAA;IACX,iBAAiB;IACjB,0BAAa,CAAA;IACb,iBAAiB;IACjB,0BAAa,CAAA;IACb,iBAAiB;IACjB,0BAAa,CAAA;IACb,mBAAmB;IACnB,8BAAiB,CAAA;IACjB,mBAAmB;IACnB,8BAAiB,CAAA;IACjB,kBAAkB;IAClB,4BAAe,CAAA;IACf,eAAe;IACf,sBAAS,CAAA;AACX,CAAC,EAjFW,SAAS,yBAAT,SAAS,QAiFpB"}
|
package/types/kya.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EChain } from './chain';
|
|
2
|
+
export interface IKYACheckRhinoSDADepositRequest {
|
|
3
|
+
sender_address: string;
|
|
4
|
+
chain_id: EChain;
|
|
5
|
+
smart_deposit_address: string;
|
|
6
|
+
}
|
|
7
|
+
export declare enum EKYACheckStatus {
|
|
8
|
+
CLEARED = "CLEAN",
|
|
9
|
+
DIRTY = "DIRTY"
|
|
10
|
+
}
|
|
11
|
+
export interface IKYACheckRhinoSDADepositResponse {
|
|
12
|
+
status: EKYACheckStatus;
|
|
13
|
+
}
|
package/types/kya.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EKYACheckStatus = void 0;
|
|
4
|
+
var EKYACheckStatus;
|
|
5
|
+
(function (EKYACheckStatus) {
|
|
6
|
+
EKYACheckStatus["CLEARED"] = "CLEAN";
|
|
7
|
+
EKYACheckStatus["DIRTY"] = "DIRTY";
|
|
8
|
+
})(EKYACheckStatus || (exports.EKYACheckStatus = EKYACheckStatus = {}));
|
|
9
|
+
//# sourceMappingURL=kya.js.map
|
package/types/kya.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kya.js","sourceRoot":"","sources":["../../src/types/kya.ts"],"names":[],"mappings":";;;AAQA,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,kCAAe,CAAA;AACjB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitize an EVM address to:
|
|
3
|
+
* - trim the address
|
|
4
|
+
* - lowercase the address
|
|
5
|
+
* - add 0 padding to the left if it's less than 42 characters
|
|
6
|
+
* - add prefix 0x if it doesn't have it
|
|
7
|
+
* @param address - The address to sanitize
|
|
8
|
+
* @returns The sanitized address
|
|
9
|
+
*/
|
|
10
|
+
export declare function sanitizeEvmAddress(address: string): string;
|
package/utils/address.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sanitizeEvmAddress = sanitizeEvmAddress;
|
|
4
|
+
/**
|
|
5
|
+
* Sanitize an EVM address to:
|
|
6
|
+
* - trim the address
|
|
7
|
+
* - lowercase the address
|
|
8
|
+
* - add 0 padding to the left if it's less than 42 characters
|
|
9
|
+
* - add prefix 0x if it doesn't have it
|
|
10
|
+
* @param address - The address to sanitize
|
|
11
|
+
* @returns The sanitized address
|
|
12
|
+
*/
|
|
13
|
+
function sanitizeEvmAddress(address) {
|
|
14
|
+
// 1. Trim the address
|
|
15
|
+
address = address.trim();
|
|
16
|
+
// 2. Remove the 0x prefix if it exists
|
|
17
|
+
address = address.replace(/^0x/, '');
|
|
18
|
+
// 3. Add 0 padding to the left if it's less than 40 characters
|
|
19
|
+
address = address.padStart(40, '0');
|
|
20
|
+
// 3. Add 0x prefix if it doesn't have it
|
|
21
|
+
address = `0x${address}`;
|
|
22
|
+
// 4. Lowercase the address (this is done by default in the EVM)
|
|
23
|
+
address = address.toLowerCase();
|
|
24
|
+
return address;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/utils/address.ts"],"names":[],"mappings":";;AASA,gDAYC;AArBD;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAAC,OAAe;IAChD,sBAAsB;IACtB,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACzB,uCAAuC;IACvC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,+DAA+D;IAC/D,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACpC,yCAAyC;IACzC,OAAO,GAAG,KAAK,OAAO,EAAE,CAAC;IACzB,gEAAgE;IAChE,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|