@grvt/sdk 0.0.1-beta.3 → 0.0.1-beta.5
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 +24 -9
- package/client/GrvtClient.d.ts +6 -2
- package/client/GrvtClient.js +11 -4
- package/client/GrvtClient.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/signing/transfer.d.ts +2 -1
- package/signing/transfer.js +7 -7
- package/signing/transfer.js.map +1 -1
- package/signing/withdraw.d.ts +2 -1
- package/signing/withdraw.js +7 -7
- package/signing/withdraw.js.map +1 -1
- package/types/chain.d.ts +17 -4
- package/types/chain.js +19 -4
- package/types/chain.js.map +1 -1
- package/types/signature.d.ts +4 -0
- package/types/signature.js +3 -0
- package/types/signature.js.map +1 -0
- package/types/transfer.d.ts +2 -1
- package/types/transfer.js.map +1 -1
- package/utils/chain.d.ts +2 -2
- package/utils/chain.js +6 -6
- package/utils/chain.js.map +1 -1
package/README.md
CHANGED
|
@@ -13,7 +13,16 @@ npm install @grvt/sdk
|
|
|
13
13
|
### REST API Client
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
ECurrency,
|
|
18
|
+
ETransferType,
|
|
19
|
+
ITransferMetadata,
|
|
20
|
+
ETransferProvider,
|
|
21
|
+
ETransferDirection,
|
|
22
|
+
EGrvtEnvironment,
|
|
23
|
+
EChain,
|
|
24
|
+
ISigningOption
|
|
25
|
+
} from '@grvt/sdk';
|
|
17
26
|
|
|
18
27
|
// Initialize the client
|
|
19
28
|
const client = new GrvtClient({
|
|
@@ -31,7 +40,7 @@ const subAccountSummary = await client.getSubAccountSummary({
|
|
|
31
40
|
});
|
|
32
41
|
|
|
33
42
|
// Transfer examples
|
|
34
|
-
// Note:
|
|
43
|
+
// Note: the signature field is optional. If not provided, the SDK will automatically compute it using the apiSecret and provided signing options
|
|
35
44
|
|
|
36
45
|
// Standard transfer
|
|
37
46
|
const transfer1 = await client.transfer({
|
|
@@ -45,17 +54,22 @@ const transfer1 = await client.transfer({
|
|
|
45
54
|
});
|
|
46
55
|
|
|
47
56
|
|
|
48
|
-
//
|
|
49
|
-
// Note: The signature field is optional. If not provided, the SDK will automatically compute it using the apiSecret.
|
|
57
|
+
// Metadata for transfer, you can pass it as the second argument for the transfer API
|
|
50
58
|
const metadata: ITransferMetadata = {
|
|
51
59
|
provider: ETransferProvider.RHINO;
|
|
52
60
|
direction: ETransferDirection.DEPOSIT; // Use ETransferDirection.WITHDRAWAL for withdraw flow
|
|
53
|
-
chainid,
|
|
61
|
+
chainid: Echain.TRON,
|
|
54
62
|
endpoint,
|
|
55
63
|
provider_tx_id: tx_hash,
|
|
56
64
|
provider_ref_id: commit_id,
|
|
57
65
|
};
|
|
58
66
|
|
|
67
|
+
// Signing options for generating the signature as the third argument for the transfer API
|
|
68
|
+
const signingOptions: ISigningOption = {
|
|
69
|
+
nonce: 12345,
|
|
70
|
+
expiration: '1746093221289693252'
|
|
71
|
+
};
|
|
72
|
+
|
|
59
73
|
const transfer2 = await client.transfer(
|
|
60
74
|
{
|
|
61
75
|
from_account_id: 'from-account-id',
|
|
@@ -64,7 +78,8 @@ const transfer2 = await client.transfer(
|
|
|
64
78
|
num_tokens: '100',
|
|
65
79
|
transfer_type: ETransferType.NON_NATIVE_BRIDGE_DEPOSIT, // Use NON_NATIVE_BRIDGE_WITHDRAW for withdraw flow
|
|
66
80
|
},
|
|
67
|
-
metadata
|
|
81
|
+
metadata,
|
|
82
|
+
signingOptions
|
|
68
83
|
);
|
|
69
84
|
|
|
70
85
|
// Request deposit approval
|
|
@@ -78,8 +93,8 @@ const depositApproval = await client.requestDepositApproval({
|
|
|
78
93
|
|
|
79
94
|
|
|
80
95
|
// Withdraw funds from your account
|
|
81
|
-
// Note:
|
|
82
|
-
const withdrawResult = await client.
|
|
96
|
+
// Note: the signature field is optional. If not provided, the SDK will automatically compute it using the apiSecret and provided signing options
|
|
97
|
+
const withdrawResult = await client.withdraw({
|
|
83
98
|
from_account_id: 'your-account-id',
|
|
84
99
|
to_eth_address: 'destination-eth-address',
|
|
85
100
|
currency: ECurrency.USDT,
|
|
@@ -97,7 +112,7 @@ const transferHistory = await client.getTransferHistory({
|
|
|
97
112
|
|
|
98
113
|
### WebSocket Client
|
|
99
114
|
|
|
100
|
-
The WebSocket client supports real-time data streaming and follows the same authentication
|
|
115
|
+
The WebSocket client supports real-time data streaming and follows the same authentication mehanism as the REST API client.
|
|
101
116
|
|
|
102
117
|
```typescript
|
|
103
118
|
import { GrvtWsClient, EGrvtEnvironment } from '@grvt/sdk';
|
package/client/GrvtClient.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { Wallet } from 'ethers';
|
|
|
5
5
|
import { IApiSubAccountSummaryResponse, IApiFundingAccountSummaryResponse, IApiTransferHistoryRequest, IApiTransferHistoryResponse, IApiSubAccountSummaryRequest, IApiTransferRequest } from '@grvt/client';
|
|
6
6
|
import { ITransferMetadata } from '../types/transfer';
|
|
7
7
|
import { IDepositOptions, IApiDepositApprovalRequest, IDepositApprovalResponse } from '../types/deposit';
|
|
8
|
+
import { ISigningOptions } from '../types/signature';
|
|
8
9
|
export declare class GrvtClient extends GrvtBaseClient {
|
|
9
10
|
protected tdgClient: TDG;
|
|
10
11
|
protected mdgClient: MDG;
|
|
@@ -26,17 +27,20 @@ export declare class GrvtClient extends GrvtBaseClient {
|
|
|
26
27
|
/**
|
|
27
28
|
* Withdraw funds from the account
|
|
28
29
|
* @param request - Withdrawal request
|
|
30
|
+
* @param options - Signing options, if not provided, nonce will be generated randomly and expiration will be 24 hours from now
|
|
29
31
|
* @returns Promise with withdrawal response
|
|
30
32
|
*/
|
|
31
|
-
|
|
33
|
+
withdraw(request: IApiWithdrawalRequest, options?: ISigningOptions): Promise<{
|
|
32
34
|
acknowledgement: boolean;
|
|
33
35
|
}>;
|
|
34
36
|
/**
|
|
35
37
|
* Transfer funds between accounts
|
|
36
38
|
* @param request - Transfer request
|
|
39
|
+
* @param metadata - Transfer metadata
|
|
40
|
+
* @param options - Signing options, if not provided, nonce will be generated randomly and expiration will be 24 hours from now
|
|
37
41
|
* @returns Promise with transfer response
|
|
38
42
|
*/
|
|
39
|
-
transfer(request: IApiTransferRequest, metadata?: ITransferMetadata): Promise<{
|
|
43
|
+
transfer(request: IApiTransferRequest, metadata?: ITransferMetadata, options?: ISigningOptions): Promise<{
|
|
40
44
|
acknowledgement: boolean;
|
|
41
45
|
}>;
|
|
42
46
|
/**
|
package/client/GrvtClient.js
CHANGED
|
@@ -43,15 +43,16 @@ class GrvtClient extends GrvtBaseClient_1.GrvtBaseClient {
|
|
|
43
43
|
/**
|
|
44
44
|
* Withdraw funds from the account
|
|
45
45
|
* @param request - Withdrawal request
|
|
46
|
+
* @param options - Signing options, if not provided, nonce will be generated randomly and expiration will be 24 hours from now
|
|
46
47
|
* @returns Promise with withdrawal response
|
|
47
48
|
*/
|
|
48
|
-
async
|
|
49
|
+
async withdraw(request, options) {
|
|
49
50
|
const config = await this.authenticatedEndpoint();
|
|
50
51
|
if (!request.signature) {
|
|
51
52
|
if (!this.wallet) {
|
|
52
53
|
throw new Error('signing requires API secret');
|
|
53
54
|
}
|
|
54
|
-
const withdrawalSignature = await (0, withdraw_1.signWithdrawal)(request, this.wallet, this.config.env);
|
|
55
|
+
const withdrawalSignature = await (0, withdraw_1.signWithdrawal)(request, this.wallet, this.config.env, options);
|
|
55
56
|
request.signature = withdrawalSignature;
|
|
56
57
|
}
|
|
57
58
|
return this.tdgClient.withdrawal(request, config);
|
|
@@ -59,9 +60,15 @@ class GrvtClient extends GrvtBaseClient_1.GrvtBaseClient {
|
|
|
59
60
|
/**
|
|
60
61
|
* Transfer funds between accounts
|
|
61
62
|
* @param request - Transfer request
|
|
63
|
+
* @param metadata - Transfer metadata
|
|
64
|
+
* @param options - Signing options, if not provided, nonce will be generated randomly and expiration will be 24 hours from now
|
|
62
65
|
* @returns Promise with transfer response
|
|
63
66
|
*/
|
|
64
|
-
async transfer(request, metadata) {
|
|
67
|
+
async transfer(request, metadata, options) {
|
|
68
|
+
// Make sure transfer metadata can only be set using the metadata parameter, not directly in the request
|
|
69
|
+
if (request.transfer_metadata) {
|
|
70
|
+
throw new Error('transfer_metadata must be set using the metadata parameter, not directly in the request');
|
|
71
|
+
}
|
|
65
72
|
if (metadata) {
|
|
66
73
|
request.transfer_metadata = JSON.stringify(metadata);
|
|
67
74
|
}
|
|
@@ -69,7 +76,7 @@ class GrvtClient extends GrvtBaseClient_1.GrvtBaseClient {
|
|
|
69
76
|
if (!this.wallet) {
|
|
70
77
|
throw new Error('signing requires API secret');
|
|
71
78
|
}
|
|
72
|
-
const transferSignature = await (0, transfer_1.signTransfer)(request, this.wallet, this.config.env);
|
|
79
|
+
const transferSignature = await (0, transfer_1.signTransfer)(request, this.wallet, this.config.env, options);
|
|
73
80
|
request.signature = transferSignature;
|
|
74
81
|
}
|
|
75
82
|
const config = await this.authenticatedEndpoint();
|
package/client/GrvtClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GrvtClient.js","sourceRoot":"","sources":["../../src/client/GrvtClient.ts"],"names":[],"mappings":";;;AAAA,kDAAmD;AAEnD,qDAAkD;AAClD,iCAAyD;AACzD,yCAA+D;AAC/D,mCAAgC;AAUhC,kDAAqD;AACrD,iDAAqD;
|
|
1
|
+
{"version":3,"file":"GrvtClient.js","sourceRoot":"","sources":["../../src/client/GrvtClient.ts"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -5,8 +5,10 @@ export * from './config/config';
|
|
|
5
5
|
export * from './signing/transfer';
|
|
6
6
|
export * from './signing/utils';
|
|
7
7
|
export * from './signing/withdraw';
|
|
8
|
+
export * from './signing/types';
|
|
8
9
|
export * from './types/chain';
|
|
9
10
|
export * from './types/deposit';
|
|
10
11
|
export * from './types/transfer';
|
|
12
|
+
export * from './types/signature';
|
|
11
13
|
import { GrvtClient } from './client/GrvtClient';
|
|
12
14
|
export default GrvtClient;
|
package/index.js
CHANGED
|
@@ -21,9 +21,11 @@ __exportStar(require("./config/config"), exports);
|
|
|
21
21
|
__exportStar(require("./signing/transfer"), exports);
|
|
22
22
|
__exportStar(require("./signing/utils"), exports);
|
|
23
23
|
__exportStar(require("./signing/withdraw"), exports);
|
|
24
|
+
__exportStar(require("./signing/types"), exports);
|
|
24
25
|
__exportStar(require("./types/chain"), exports);
|
|
25
26
|
__exportStar(require("./types/deposit"), exports);
|
|
26
27
|
__exportStar(require("./types/transfer"), exports);
|
|
28
|
+
__exportStar(require("./types/signature"), exports);
|
|
27
29
|
// Re-export the main client class as default
|
|
28
30
|
const GrvtClient_1 = require("./client/GrvtClient");
|
|
29
31
|
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,gDAA8B;AAC9B,kDAAgC;AAChC,mDAAiC;
|
|
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"}
|
package/package.json
CHANGED
package/signing/transfer.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EGrvtEnvironment } from '../config/config';
|
|
2
2
|
import { Wallet } from 'ethers';
|
|
3
3
|
import { IApiTransferRequest, ISignature } from '@grvt/client';
|
|
4
|
-
|
|
4
|
+
import { ISigningOptions } from '../types/signature';
|
|
5
|
+
export declare const signTransfer: (transfer: IApiTransferRequest, wallet: Wallet, env: EGrvtEnvironment, options?: ISigningOptions) => Promise<ISignature>;
|
package/signing/transfer.js
CHANGED
|
@@ -6,9 +6,9 @@ const utils_1 = require("./utils");
|
|
|
6
6
|
const signer_1 = require("./signer");
|
|
7
7
|
const types_1 = require("./types");
|
|
8
8
|
const client_1 = require("@grvt/client");
|
|
9
|
-
const signTransfer = async (transfer, wallet, env,
|
|
10
|
-
const
|
|
11
|
-
const
|
|
9
|
+
const signTransfer = async (transfer, wallet, env, options) => {
|
|
10
|
+
const nonce = options?.nonce || (0, utils_1.GenerateNonce)();
|
|
11
|
+
const expiration = options?.expiration || (0, utils_1.GenerateExpiration)();
|
|
12
12
|
const domain = (0, domain_1.getEIP712DomainData)(env);
|
|
13
13
|
const messageData = {
|
|
14
14
|
fromAccount: transfer.from_account_id || '',
|
|
@@ -17,8 +17,8 @@ const signTransfer = async (transfer, wallet, env, nonce, expirationInHours) =>
|
|
|
17
17
|
toSubAccount: transfer.to_sub_account_id || '',
|
|
18
18
|
tokenCurrency: transfer.currency ? Object.keys(client_1.ECurrency).indexOf(transfer.currency) + 1 : 0,
|
|
19
19
|
numTokens: transfer.num_tokens ? Math.floor(parseFloat(transfer.num_tokens) * 1e6) : 0,
|
|
20
|
-
nonce:
|
|
21
|
-
expiration:
|
|
20
|
+
nonce: nonce,
|
|
21
|
+
expiration: expiration,
|
|
22
22
|
};
|
|
23
23
|
const signature = await signer_1.Signer.sign(wallet.privateKey, {
|
|
24
24
|
...types_1.Transfer,
|
|
@@ -31,8 +31,8 @@ const signTransfer = async (transfer, wallet, env, nonce, expirationInHours) =>
|
|
|
31
31
|
s: s,
|
|
32
32
|
v: v,
|
|
33
33
|
signer: wallet.address,
|
|
34
|
-
nonce:
|
|
35
|
-
expiration:
|
|
34
|
+
nonce: nonce,
|
|
35
|
+
expiration: expiration,
|
|
36
36
|
};
|
|
37
37
|
};
|
|
38
38
|
exports.signTransfer = signTransfer;
|
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;AAEnC,yCAA0E;
|
|
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;AAGnE,MAAM,YAAY,GAAG,KAAK,EAC/B,QAA6B,EAC7B,MAAc,EACd,GAAqB,EACrB,OAAyB,EACJ,EAAE;IACvB,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;AAlCW,QAAA,YAAY,gBAkCvB"}
|
package/signing/withdraw.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EGrvtEnvironment } from '../config/config';
|
|
2
2
|
import { Wallet } from 'ethers';
|
|
3
3
|
import { IApiWithdrawalRequest, ISignature } from '@grvt/client';
|
|
4
|
-
|
|
4
|
+
import { ISigningOptions } from '../types/signature';
|
|
5
|
+
export declare const signWithdrawal: (withdrawal: IApiWithdrawalRequest, wallet: Wallet, env: EGrvtEnvironment, options?: ISigningOptions) => Promise<ISignature>;
|
package/signing/withdraw.js
CHANGED
|
@@ -6,9 +6,9 @@ const utils_1 = require("./utils");
|
|
|
6
6
|
const signer_1 = require("./signer");
|
|
7
7
|
const types_1 = require("./types");
|
|
8
8
|
const client_1 = require("@grvt/client");
|
|
9
|
-
const signWithdrawal = async (withdrawal, wallet, env,
|
|
10
|
-
const
|
|
11
|
-
const
|
|
9
|
+
const signWithdrawal = async (withdrawal, wallet, env, options) => {
|
|
10
|
+
const nonce = options?.nonce || (0, utils_1.GenerateNonce)();
|
|
11
|
+
const expiration = options?.expiration || (0, utils_1.GenerateExpiration)();
|
|
12
12
|
const domain = (0, domain_1.getEIP712DomainData)(env);
|
|
13
13
|
const messageData = {
|
|
14
14
|
fromAccount: withdrawal.from_account_id || '',
|
|
@@ -17,8 +17,8 @@ const signWithdrawal = async (withdrawal, wallet, env, nonce, expirationInHours)
|
|
|
17
17
|
? Object.keys(client_1.ECurrency).indexOf(withdrawal.currency) + 1
|
|
18
18
|
: 0,
|
|
19
19
|
numTokens: withdrawal.num_tokens ? Math.floor(parseFloat(withdrawal.num_tokens) * 1e6) : 0,
|
|
20
|
-
nonce:
|
|
21
|
-
expiration:
|
|
20
|
+
nonce: nonce,
|
|
21
|
+
expiration: expiration,
|
|
22
22
|
};
|
|
23
23
|
const signature = await signer_1.Signer.sign(wallet.privateKey, {
|
|
24
24
|
...types_1.Withdrawal,
|
|
@@ -31,8 +31,8 @@ const signWithdrawal = async (withdrawal, wallet, env, nonce, expirationInHours)
|
|
|
31
31
|
s: s,
|
|
32
32
|
v: v,
|
|
33
33
|
signer: wallet.address,
|
|
34
|
-
nonce:
|
|
35
|
-
expiration:
|
|
34
|
+
nonce: nonce,
|
|
35
|
+
expiration: expiration,
|
|
36
36
|
};
|
|
37
37
|
};
|
|
38
38
|
exports.signWithdrawal = signWithdrawal;
|
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;AAErC,yCAA4E;
|
|
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;AAGrE,MAAM,cAAc,GAAG,KAAK,EACjC,UAAiC,EACjC,MAAc,EACd,GAAqB,EACrB,OAAyB,EACJ,EAAE;IACvB,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;AAnCW,QAAA,cAAc,kBAmCzB"}
|
package/types/chain.d.ts
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
export declare enum EChain {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
ARBITRUM_ONE = "42161",
|
|
3
|
+
BNB_SMART_CHAIN = "56",
|
|
4
|
+
BASE = "8453",
|
|
5
|
+
ETHEREUM = "1",
|
|
6
|
+
POLYGON = "137",
|
|
7
|
+
POLYGON_ZKEVM = "1101",
|
|
8
|
+
ZKSYNC_ERA = "324",
|
|
9
|
+
SOLANA = "solana",
|
|
10
|
+
TRON = "tron",
|
|
11
|
+
ARBITRUM_SEPOLIA = "421614",
|
|
12
|
+
BNB_TESTNET = "97",
|
|
13
|
+
BASE_SEPOLIA = "84532",
|
|
14
|
+
ETHEREUM_SEPOLIA = "11155111",
|
|
15
|
+
POLYGON_ZKEVM_TEST = "1442",
|
|
16
|
+
ZKSYNC_SEPOLIA = "300",
|
|
17
|
+
SOLANA_TESTNET = "solana_test",
|
|
18
|
+
TRON_TESTNET = "tron_test"
|
|
6
19
|
}
|
package/types/chain.js
CHANGED
|
@@ -3,9 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.EChain = void 0;
|
|
4
4
|
var EChain;
|
|
5
5
|
(function (EChain) {
|
|
6
|
-
|
|
7
|
-
EChain[
|
|
8
|
-
EChain[
|
|
9
|
-
EChain[
|
|
6
|
+
// Mainnet
|
|
7
|
+
EChain["ARBITRUM_ONE"] = "42161";
|
|
8
|
+
EChain["BNB_SMART_CHAIN"] = "56";
|
|
9
|
+
EChain["BASE"] = "8453";
|
|
10
|
+
EChain["ETHEREUM"] = "1";
|
|
11
|
+
EChain["POLYGON"] = "137";
|
|
12
|
+
EChain["POLYGON_ZKEVM"] = "1101";
|
|
13
|
+
EChain["ZKSYNC_ERA"] = "324";
|
|
14
|
+
EChain["SOLANA"] = "solana";
|
|
15
|
+
EChain["TRON"] = "tron";
|
|
16
|
+
// Testnet
|
|
17
|
+
EChain["ARBITRUM_SEPOLIA"] = "421614";
|
|
18
|
+
EChain["BNB_TESTNET"] = "97";
|
|
19
|
+
EChain["BASE_SEPOLIA"] = "84532";
|
|
20
|
+
EChain["ETHEREUM_SEPOLIA"] = "11155111";
|
|
21
|
+
EChain["POLYGON_ZKEVM_TEST"] = "1442";
|
|
22
|
+
EChain["ZKSYNC_SEPOLIA"] = "300";
|
|
23
|
+
EChain["SOLANA_TESTNET"] = "solana_test";
|
|
24
|
+
EChain["TRON_TESTNET"] = "tron_test";
|
|
10
25
|
})(EChain || (exports.EChain = EChain = {}));
|
|
11
26
|
//# sourceMappingURL=chain.js.map
|
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,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/types/signature.ts"],"names":[],"mappings":""}
|
package/types/transfer.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EChain } from './chain';
|
|
1
2
|
export declare enum ETransferProvider {
|
|
2
3
|
RHINO = "rhino"
|
|
3
4
|
}
|
|
@@ -8,7 +9,7 @@ export declare enum ETransferDirection {
|
|
|
8
9
|
export interface ITransferMetadata {
|
|
9
10
|
provider: ETransferProvider;
|
|
10
11
|
direction: ETransferDirection;
|
|
11
|
-
chainid:
|
|
12
|
+
chainid: EChain;
|
|
12
13
|
endpoint: string;
|
|
13
14
|
provider_tx_id?: string;
|
|
14
15
|
provider_ref_id?: string;
|
package/types/transfer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/types/transfer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/types/transfer.ts"],"names":[],"mappings":";;;AAEA,IAAY,iBAEX;AAFD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;AACjB,CAAC,EAFW,iBAAiB,iCAAjB,iBAAiB,QAE5B;AAED,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,+CAAyB,CAAA;AAC3B,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B"}
|
package/utils/chain.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { EChain } from '../types/chain';
|
|
|
2
2
|
import { EGrvtEnvironment } from '../config/config';
|
|
3
3
|
export declare class ChainUtils {
|
|
4
4
|
static isArbitrum(chainId?: number | EChain): boolean;
|
|
5
|
-
static getL1TokenAddress(chainId:
|
|
5
|
+
static getL1TokenAddress(chainId: EChain): string | undefined;
|
|
6
6
|
static getL1BridgeAddress(env: EGrvtEnvironment): string;
|
|
7
|
-
static getRpcUrl(chainId:
|
|
7
|
+
static getRpcUrl(chainId: EChain): string | undefined;
|
|
8
8
|
}
|
package/utils/chain.js
CHANGED
|
@@ -11,10 +11,10 @@ class ChainUtils {
|
|
|
11
11
|
// Map of chain IDs to L1 token addresses
|
|
12
12
|
const l1TokenAddresses = {
|
|
13
13
|
// Mainnet
|
|
14
|
-
[chain_1.EChain.
|
|
14
|
+
[chain_1.EChain.ETHEREUM]: '0xdac17f958d2ee523a2206206994597c13d831ec7', // USDT on Ethereum
|
|
15
15
|
[chain_1.EChain.ARBITRUM_ONE]: '0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9', // USDT on Arbitrum
|
|
16
16
|
// Testnet
|
|
17
|
-
[chain_1.EChain.
|
|
17
|
+
[chain_1.EChain.ETHEREUM_SEPOLIA]: '0xfb122130c4d28860dbc050a8e024a71a558eb0c1', // USDT on Sepolia
|
|
18
18
|
[chain_1.EChain.ARBITRUM_SEPOLIA]: '0x0a8ca9a01e03b8076c3b9bfe304781a0acab9a34', // USDT on Arbitrum Sepolia
|
|
19
19
|
};
|
|
20
20
|
return l1TokenAddresses[chainId];
|
|
@@ -36,11 +36,11 @@ class ChainUtils {
|
|
|
36
36
|
// Map of chain IDs to RPC URLs
|
|
37
37
|
const rpcUrls = {
|
|
38
38
|
// Mainnet
|
|
39
|
-
[chain_1.EChain.
|
|
40
|
-
[chain_1.EChain.ARBITRUM_ONE]: 'https://arb1.arbitrum.io/rpc',
|
|
39
|
+
[chain_1.EChain.ETHEREUM]: 'https://eth.llamarpc.com',
|
|
40
|
+
[chain_1.EChain.ARBITRUM_ONE]: 'https://arb1.arbitrum.io/rpc',
|
|
41
41
|
// Testnet
|
|
42
|
-
[chain_1.EChain.
|
|
43
|
-
[chain_1.EChain.ARBITRUM_SEPOLIA]: 'https://sepolia-rollup.arbitrum.io/rpc',
|
|
42
|
+
[chain_1.EChain.ETHEREUM_SEPOLIA]: 'https://rpc.sepolia.org',
|
|
43
|
+
[chain_1.EChain.ARBITRUM_SEPOLIA]: 'https://sepolia-rollup.arbitrum.io/rpc',
|
|
44
44
|
};
|
|
45
45
|
return rpcUrls[chainId];
|
|
46
46
|
}
|
package/utils/chain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/utils/chain.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AACxC,6CAAoD;AAEpD,MAAa,UAAU;IACrB,MAAM,CAAC,UAAU,CAAC,OAAyB;QACzC,OAAO,OAAO,KAAK,cAAM,CAAC,YAAY,IAAI,OAAO,KAAK,cAAM,CAAC,gBAAgB,CAAC;IAChF,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/utils/chain.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AACxC,6CAAoD;AAEpD,MAAa,UAAU;IACrB,MAAM,CAAC,UAAU,CAAC,OAAyB;QACzC,OAAO,OAAO,KAAK,cAAM,CAAC,YAAY,IAAI,OAAO,KAAK,cAAM,CAAC,gBAAgB,CAAC;IAChF,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,OAAe;QACtC,yCAAyC;QACzC,MAAM,gBAAgB,GAAoC;YACxD,UAAU;YACV,CAAC,cAAM,CAAC,QAAQ,CAAC,EAAE,4CAA4C,EAAE,mBAAmB;YACpF,CAAC,cAAM,CAAC,YAAY,CAAC,EAAE,4CAA4C,EAAE,mBAAmB;YACxF,UAAU;YACV,CAAC,cAAM,CAAC,gBAAgB,CAAC,EAAE,4CAA4C,EAAE,kBAAkB;YAC3F,CAAC,cAAM,CAAC,gBAAgB,CAAC,EAAE,4CAA4C,EAAE,2BAA2B;SACrG,CAAC;QACF,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAqB;QAC7C,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,yBAAgB,CAAC,GAAG;gBACvB,OAAO,4CAA4C,CAAC;YACtD,KAAK,yBAAgB,CAAC,OAAO;gBAC3B,OAAO,4CAA4C,CAAC;YACtD,KAAK,yBAAgB,CAAC,OAAO;gBAC3B,OAAO,4CAA4C,CAAC;YACtD,KAAK,yBAAgB,CAAC,UAAU;gBAC9B,OAAO,4CAA4C,CAAC;QACxD,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,MAAM,CAAC,SAAS,CAAC,OAAe;QAC9B,+BAA+B;QAC/B,MAAM,OAAO,GAAoC;YAC/C,UAAU;YACV,CAAC,cAAM,CAAC,QAAQ,CAAC,EAAE,0BAA0B;YAC7C,CAAC,cAAM,CAAC,YAAY,CAAC,EAAE,8BAA8B;YACrD,UAAU;YACV,CAAC,cAAM,CAAC,gBAAgB,CAAC,EAAE,yBAAyB;YACpD,CAAC,cAAM,CAAC,gBAAgB,CAAC,EAAE,wCAAwC;SACpE,CAAC;QACF,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;CACF;AA5CD,gCA4CC"}
|