@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 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
- ISigningOption
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; // Use ETransferDirection.WITHDRAWAL for withdraw flow
61
- chainid: Echain.TRON,
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: ISigningOption = {
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 get all transfers with event time >= start_time
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 mehanism as the REST API client.
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 Formating
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;
@@ -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;
@@ -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 {};
@@ -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.getHeaders(),
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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"}
@@ -1,11 +1,13 @@
1
1
  import { IGrvtConfig } from '../config/config';
2
2
  import { GrvtBaseClient } from './GrvtBaseClient';
3
- import { TDG, MDG, IApiWithdrawalRequest, IApiTransferResponse } from '@grvt/client';
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 { IApiSubAccountSummaryResponse, IApiFundingAccountSummaryResponse, IApiTransferHistoryRequest, IApiTransferHistoryResponse, IApiSubAccountSummaryRequest, IApiTransferRequest } from '@grvt/client';
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
  }
@@ -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
- return this.tdgClient.transferHistory(request, config);
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/approval`, request);
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();
@@ -1 +1 @@
1
- {"version":3,"file":"GrvtClient.js","sourceRoot":"","sources":["../../src/client/GrvtClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GrvtClient.js","sourceRoot":"","sources":["../../src/client/GrvtClient.ts"],"names":[],"mappings":"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"}
@@ -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;AAElC,6CAA6C;AAC7C,oDAAiD;AACjD,kBAAe,uBAAU,CAAC"}
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-beta.8",
3
+ "version": "0.0.1",
4
4
  "description": "TypeScript SDK for GRVT",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
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:sdk": "ts-node -r dotenv/config tests/test.ts dotenv_config_path=./tests/.env",
21
- "test:ws": "ts-node -r dotenv/config tests/ws.test.ts dotenv_config_path=./tests/.env"
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.4.3",
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",
@@ -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>;
@@ -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 client_1 = require("@grvt/client");
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(client_1.ECurrency).indexOf(transfer.currency) + 1 : 0,
23
- numTokens: transfer.num_tokens ? Math.floor(parseFloat(transfer.num_tokens) * 1e6) : 0,
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
@@ -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;AAEnC,yCAA0E;AAE1E,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;IACxC,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,kBAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,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;AArCW,QAAA,YAAY,gBAqCvB"}
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"}
@@ -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;
@@ -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>;
@@ -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 client_1 = require("@grvt/client");
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(client_1.ECurrency).indexOf(withdrawal.currency) + 1
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,
@@ -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;AAErC,yCAA4E;AAE5E,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,kBAAS,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"}
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
- POLYGON_ZKEVM_TEST = "1442",
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["POLYGON_ZKEVM_TEST"] = "1442";
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";
@@ -1 +1 @@
1
- {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/types/chain.ts"],"names":[],"mappings":";;;AAAA,IAAY,MAqBX;AArBD,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,qCAA2B,CAAA;IAC3B,gCAAsB,CAAA;IACtB,wCAA8B,CAAA;IAC9B,oCAA0B,CAAA;AAC5B,CAAC,EArBW,MAAM,sBAAN,MAAM,QAqBjB"}
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
@@ -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;
@@ -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"}