rubic-sdk 6.0.0-alpha.ton.15 → 6.0.0-alpha.ton.17
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/lib/core/blockchain/services/ton/tonapi-service.d.ts +2 -2
- package/lib/core/blockchain/services/ton/tonapi-service.js +12 -10
- package/lib/core/blockchain/services/ton/tonapi-service.js.map +1 -1
- package/lib/core/blockchain/web3-private-service/web3-private/ton-web3-private/ton-web3-private.js +9 -7
- package/lib/core/blockchain/web3-private-service/web3-private/ton-web3-private/ton-web3-private.js.map +1 -1
- package/package.json +1 -1
@@ -7,8 +7,8 @@ export declare class TonApiService {
|
|
7
7
|
* @param walletAddress in any format: raw or friendly
|
8
8
|
*/
|
9
9
|
fetchWalletSeqno(walletAddress: string): Promise<number>;
|
10
|
-
fetchTxInfo(
|
11
|
-
checkIsTxCompleted(
|
10
|
+
fetchTxInfo(txHash: string): Promise<TonApiTxDataByBocResp>;
|
11
|
+
checkIsTxCompleted(txHash: string): Promise<boolean>;
|
12
12
|
healthcheck(): Promise<boolean>;
|
13
13
|
fetchLastBlockInfo(): Promise<TonCenterBlockInfo>;
|
14
14
|
/**
|
@@ -4,7 +4,6 @@ exports.TonApiService = void 0;
|
|
4
4
|
const errors_1 = require("../../../../common/errors");
|
5
5
|
const injector_1 = require("../../../injector/injector");
|
6
6
|
const ton_constants_1 = require("../constants/ton-constants");
|
7
|
-
const ton_utils_1 = require("./ton-utils");
|
8
7
|
class TonApiService {
|
9
8
|
/**
|
10
9
|
*
|
@@ -17,21 +16,24 @@ class TonApiService {
|
|
17
16
|
}
|
18
17
|
return res.seqno;
|
19
18
|
}
|
20
|
-
async fetchTxInfo(
|
21
|
-
const
|
22
|
-
const res = await injector_1.Injector.httpClient.get(`${ton_constants_1.TONAPI_API_URL}/blockchain/messages/${msgHash}/transaction`, { headers: { Authorization: ton_constants_1.TONAPI_API_KEY } });
|
19
|
+
async fetchTxInfo(txHash) {
|
20
|
+
const res = await injector_1.Injector.httpClient.get(`${ton_constants_1.TONAPI_API_URL}/blockchain/messages/${txHash}/transaction`, { headers: { Authorization: ton_constants_1.TONAPI_API_KEY } });
|
23
21
|
if ('error' in res) {
|
24
22
|
throw new errors_1.RubicSdkError(`[TonApiService] Error in fetchTxInfo - ${res.error}`);
|
25
23
|
}
|
26
24
|
return res;
|
27
25
|
}
|
28
|
-
async checkIsTxCompleted(
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
26
|
+
async checkIsTxCompleted(txHash) {
|
27
|
+
try {
|
28
|
+
const res = await injector_1.Injector.httpClient.get(`${ton_constants_1.TONAPI_API_URL}/events/${txHash}`, { headers: { Authorization: ton_constants_1.TONAPI_API_KEY } });
|
29
|
+
if ('error' in res) {
|
30
|
+
throw new errors_1.RubicSdkError(`[TonApiService] Error in checkIsTxCompleted - ${res.error}`);
|
31
|
+
}
|
32
|
+
return Object.hasOwn(res, 'in_progress') && !res.in_progress;
|
33
|
+
}
|
34
|
+
catch {
|
35
|
+
return false;
|
33
36
|
}
|
34
|
-
return Object.hasOwn(res, 'in_progress') && !res.in_progress;
|
35
37
|
}
|
36
38
|
async healthcheck() {
|
37
39
|
const res = await injector_1.Injector.httpClient.get(`${ton_constants_1.TONAPI_API_URL}/status`, { headers: { Authorization: ton_constants_1.TONAPI_API_KEY } });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"tonapi-service.js","sourceRoot":"","sources":["../../../../../src/core/blockchain/services/ton/tonapi-service.ts"],"names":[],"mappings":";;;AAAA,8CAAkD;AAClD,yDAAsD;AAoBtD,8DAAkG;
|
1
|
+
{"version":3,"file":"tonapi-service.js","sourceRoot":"","sources":["../../../../../src/core/blockchain/services/ton/tonapi-service.ts"],"names":[],"mappings":"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"}
|
package/lib/core/blockchain/web3-private-service/web3-private/ton-web3-private/ton-web3-private.js
CHANGED
@@ -4,6 +4,7 @@ exports.TonWeb3Private = void 0;
|
|
4
4
|
const errors_1 = require("../../../../../common/errors");
|
5
5
|
const waitFor_1 = require("../../../../../common/utils/waitFor");
|
6
6
|
const blockchain_name_1 = require("../../../models/blockchain-name");
|
7
|
+
const ton_utils_1 = require("../../../services/ton/ton-utils");
|
7
8
|
const tonapi_service_1 = require("../../../services/ton/tonapi-service");
|
8
9
|
const ton_web3_pure_1 = require("../../../web3-pure/typed-web3-pure/ton-web3-pure/ton-web3-pure");
|
9
10
|
const evm_web3_private_1 = require("../evm-web3-private/evm-web3-private");
|
@@ -18,8 +19,9 @@ class TonWeb3Private extends web3_private_1.Web3Private {
|
|
18
19
|
validUntil: Math.floor(Date.now() / 1000) + 360,
|
19
20
|
messages: options.messages
|
20
21
|
});
|
21
|
-
|
22
|
-
|
22
|
+
const txHash = ton_utils_1.TonUtils.fromBocToBase64Hash(boc);
|
23
|
+
options.onTransactionHash?.(txHash);
|
24
|
+
const isCompleted = await this.waitForTransactionReceipt(txHash);
|
23
25
|
if (!isCompleted) {
|
24
26
|
throw new errors_1.RubicSdkError('[TonWeb3Private] TON transaction timeout expired!');
|
25
27
|
}
|
@@ -30,13 +32,13 @@ class TonWeb3Private extends web3_private_1.Web3Private {
|
|
30
32
|
throw evm_web3_private_1.EvmWeb3Private.parseError(err);
|
31
33
|
}
|
32
34
|
}
|
33
|
-
async waitForTransactionReceipt(
|
35
|
+
async waitForTransactionReceipt(txHash) {
|
34
36
|
let isCompleted = false;
|
35
37
|
let durationInSecs = 0;
|
36
|
-
const
|
38
|
+
const durationLimitInSecs = 600;
|
37
39
|
const intervalId = setInterval(() => durationInSecs++, 1000);
|
38
40
|
while (true) {
|
39
|
-
if (durationInSecs >
|
41
|
+
if (durationInSecs > durationLimitInSecs) {
|
40
42
|
clearInterval(intervalId);
|
41
43
|
return false;
|
42
44
|
}
|
@@ -44,8 +46,8 @@ class TonWeb3Private extends web3_private_1.Web3Private {
|
|
44
46
|
clearInterval(intervalId);
|
45
47
|
return true;
|
46
48
|
}
|
47
|
-
await (0, waitFor_1.waitFor)(
|
48
|
-
isCompleted = await this.tonApi.checkIsTxCompleted(
|
49
|
+
await (0, waitFor_1.waitFor)(30000);
|
50
|
+
isCompleted = await this.tonApi.checkIsTxCompleted(txHash);
|
49
51
|
}
|
50
52
|
}
|
51
53
|
constructor(tonProviderCore) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ton-web3-private.js","sourceRoot":"","sources":["../../../../../../src/core/blockchain/web3-private-service/web3-private/ton-web3-private/ton-web3-private.ts"],"names":[],"mappings":";;;AACA,8CAAkD;AAClD,sDAAmD;AACnD,gFAA6F;AAC7F,oFAAgF;AAChF,6GAAwG;AAGxG,2EAAsE;AAEtE,kDAA8C;AAG9C,MAAa,cAAe,SAAQ,0BAAW;IAOpC,KAAK,CAAC,iBAAiB;QAC1B,OAAO,iCAAe,CAAC,GAAG,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,OAA8B;QACvD,IAAI;YACA,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;gBACpD,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG;gBAC/C,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC7B,CAAC,CAAC;YACH,OAAO,CAAC,iBAAiB,EAAE,CAAC,
|
1
|
+
{"version":3,"file":"ton-web3-private.js","sourceRoot":"","sources":["../../../../../../src/core/blockchain/web3-private-service/web3-private/ton-web3-private/ton-web3-private.ts"],"names":[],"mappings":";;;AACA,8CAAkD;AAClD,sDAAmD;AACnD,gFAA6F;AAC7F,0EAAsE;AACtE,oFAAgF;AAChF,6GAAwG;AAGxG,2EAAsE;AAEtE,kDAA8C;AAG9C,MAAa,cAAe,SAAQ,0BAAW;IAOpC,KAAK,CAAC,iBAAiB;QAC1B,OAAO,iCAAe,CAAC,GAAG,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,OAA8B;QACvD,IAAI;YACA,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;gBACpD,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG;gBAC/C,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC7B,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,oBAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACjD,OAAO,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,EAAE;gBACd,MAAM,IAAI,sBAAa,CAAC,mDAAmD,CAAC,CAAC;aAChF;YACD,OAAO,GAAG,CAAC;SACd;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM,iCAAc,CAAC,UAAU,CAAC,GAAgB,CAAC,CAAC;SACrD;IACL,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,MAAc;QAClD,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,MAAM,mBAAmB,GAAG,GAAG,CAAC;QAChC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,EAAE,IAAK,CAAC,CAAC;QAC9D,OAAO,IAAI,EAAE;YACT,IAAI,cAAc,GAAG,mBAAmB,EAAE;gBACtC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC1B,OAAO,KAAK,CAAC;aAChB;YACD,IAAI,WAAW,EAAE;gBACb,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC1B,OAAO,IAAI,CAAC;aACf;YACD,MAAM,IAAA,iBAAO,EAAC,KAAM,CAAC,CAAC;YACtB,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;SAC9D;IACL,CAAC;IAED,YAAY,eAAsC;QAC9C,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAjDhB,aAAQ,GAAG,2BAAW,CAAC;QAEzB,WAAM,GAAkB,IAAI,8BAAa,EAAE,CAAC;QAgDzD,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC;IAC7C,CAAC;CACJ;AArDD,wCAqDC"}
|