@grvt/sdk 0.0.1-beta.9 → 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 +52 -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/GrvtClient.d.ts +26 -5
- package/client/GrvtClient.js +106 -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,21 +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
|
|
108
112
|
});
|
|
109
113
|
// You can filter more & do pagination with this query if needed, please take a look at the request interface to get more details
|
|
110
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
|
|
128
|
+
});
|
|
129
|
+
// You can filter more & do pagination with this query if needed, please take a look at the request interface to get more details
|
|
130
|
+
|
|
131
|
+
|
|
111
132
|
// Get current server time, in milliseconds since epoch
|
|
112
133
|
const currentTime = await client.getCurrentTime()
|
|
113
134
|
// Example result: 1747397398409
|
|
114
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
|
|
115
156
|
|
|
116
157
|
```
|
|
117
158
|
|
|
118
159
|
### WebSocket Client
|
|
119
160
|
|
|
120
|
-
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.
|
|
121
162
|
|
|
122
163
|
```typescript
|
|
123
164
|
import { GrvtWsClient, EGrvtEnvironment } from '@grvt/sdk';
|
|
@@ -147,15 +188,18 @@ client.disconnect();
|
|
|
147
188
|
#### WebSocket Features
|
|
148
189
|
|
|
149
190
|
1. **Authentication**:
|
|
191
|
+
|
|
150
192
|
- Uses the same cookie-based authentication as the REST API
|
|
151
193
|
- Automatically refreshes cookies when needed
|
|
152
194
|
|
|
153
195
|
2. **Connection Management**:
|
|
196
|
+
|
|
154
197
|
- Automatic reconnection with exponential backoff
|
|
155
198
|
- Connection monitoring with 5-second timeout
|
|
156
199
|
- Reconnects if no messages are received within the timeout period
|
|
157
200
|
|
|
158
201
|
3. **Subscription Handling**:
|
|
202
|
+
|
|
159
203
|
- Unique subscription IDs for each subscription
|
|
160
204
|
- Subscriptions are not automatically restored after reconnection
|
|
161
205
|
- Users need to manually resubscribe after reconnection
|
|
@@ -192,7 +236,7 @@ npm run test:sdk
|
|
|
192
236
|
npm run test:ws
|
|
193
237
|
```
|
|
194
238
|
|
|
195
|
-
### Linting and
|
|
239
|
+
### Linting and Formatting
|
|
196
240
|
|
|
197
241
|
```bash
|
|
198
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"}
|
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
|
|
@@ -63,6 +73,17 @@ export declare class GrvtClient extends GrvtBaseClient {
|
|
|
63
73
|
* @returns Promise with current time in milliseconds since epoch
|
|
64
74
|
*/
|
|
65
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>;
|
|
66
87
|
private authenticatedEndpoint;
|
|
67
88
|
private getAxiosConfig;
|
|
68
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);
|
|
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);
|
|
97
154
|
const config = await this.authenticatedEndpoint();
|
|
98
|
-
|
|
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,7 @@ 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);
|
|
115
173
|
}
|
|
116
174
|
/**
|
|
117
175
|
* Get current time
|
|
@@ -121,6 +179,52 @@ class GrvtClient extends GrvtBaseClient_1.GrvtBaseClient {
|
|
|
121
179
|
const response = await this.get(`${this.marketDataBaseUrl}/time`);
|
|
122
180
|
return response.server_time;
|
|
123
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;
|
|
227
|
+
}
|
|
124
228
|
async authenticatedEndpoint() {
|
|
125
229
|
await this.refreshCookie();
|
|
126
230
|
return this.getAxiosConfig();
|
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"}
|