@cryptorubic/web3 0.0.3 → 0.0.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptorubic/web3",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },
@@ -1,6 +1,7 @@
1
1
  import { Abi, MulticallResponse, MulticallParameters, PublicActions, PublicClient, WalletClient, WalletActions } from 'viem';
2
2
  import { AbstractAdapter } from './abstract-adapter';
3
- import { EvmBlockchainName, ICustomLogger, Token, TokenAmount } from '@cryptorubic/core';
3
+ import { EvmBlockchainName, ICustomLogger, Token, TokenAmount, PriceTokenAmount } from '@cryptorubic/core';
4
+ import BigNumber from "bignumber.js";
4
5
  import { EvmAdapterOptions } from "./models/evm-adapter-options";
5
6
  import { EvmTransactionConfig } from "../../utils/models/evm-transaction-config";
6
7
  export declare class EvmAdapter extends AbstractAdapter<PublicActions & PublicClient, WalletClient & WalletActions, EvmBlockchainName> {
@@ -17,4 +18,12 @@ export declare class EvmAdapter extends AbstractAdapter<PublicActions & PublicCl
17
18
  simulateTransaction(config: EvmTransactionConfig, from: string): Promise<void>;
18
19
  callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token<EvmBlockchainName>[]>;
19
20
  getGasPrice(): Promise<string>;
21
+ checkEnoughBalance(token: TokenAmount | PriceTokenAmount, walletAddress: string, amount?: BigNumber): Promise<boolean>;
22
+ /**
23
+ * @param walletAddress
24
+ * @param tokenAddress
25
+ * @returns wei amount
26
+ */
27
+ getBalance(walletAddress: string, tokenAddress?: string): Promise<BigNumber>;
28
+ getTransactionCount(walletAddress: string): Promise<number>;
20
29
  }
@@ -203,6 +203,32 @@ class EvmAdapter extends abstract_adapter_1.AbstractAdapter {
203
203
  const bigIntGas = await this.public.getGasPrice();
204
204
  return String(bigIntGas);
205
205
  }
206
+ async checkEnoughBalance(token, walletAddress, amount = token.tokenAmount) {
207
+ const weiBalance = await this.getBalance(walletAddress, token.isNative ? undefined : token.address);
208
+ const balance = core_1.Token.fromWei(weiBalance, token.decimals);
209
+ return balance.gte(amount);
210
+ }
211
+ /**
212
+ * @param walletAddress
213
+ * @param tokenAddress
214
+ * @returns wei amount
215
+ */
216
+ async getBalance(walletAddress, tokenAddress) {
217
+ if (!tokenAddress) {
218
+ const nativeBalance = await this.public.getBalance({
219
+ address: walletAddress
220
+ });
221
+ return new bignumber_js_1.default(nativeBalance.toString());
222
+ }
223
+ const tokenBalance = await this.read(tokenAddress, erc20_token_abi_1.erc20TokenAbi, 'balanceOf', [walletAddress]);
224
+ return new bignumber_js_1.default(tokenBalance);
225
+ }
226
+ async getTransactionCount(walletAddress) {
227
+ const transactionCount = await this.public?.getTransactionCount({
228
+ address: walletAddress
229
+ });
230
+ return transactionCount ?? 0;
231
+ }
206
232
  }
207
233
  exports.EvmAdapter = EvmAdapter;
208
234
  //# sourceMappingURL=evm-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evm-adapter.js","sourceRoot":"","sources":["../../../../../../../packages/web3/src/lib/adapter/adapters/evm-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm-adapter.js","sourceRoot":"","sources":["../../../../../../../packages/web3/src/lib/adapter/adapters/evm-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ export type TonApiResp<SuccessRespType> = TonApiFailResp | SuccessRespType;
2
+ export type TonApiAccountStatus = 'active' | 'uninit' | 'frozen' | 'nonexist';
3
+ export interface TonApiFailResp {
4
+ error: string;
5
+ }
6
+ export interface TonApiSeqnoResp {
7
+ seqno: number;
8
+ }
9
+ export interface TonApiTxDataByBocResp {
10
+ hash: string;
11
+ lt: number;
12
+ success: boolean;
13
+ aborted: boolean;
14
+ destroyed: boolean;
15
+ total_fees: number;
16
+ in_msg: object;
17
+ out_msgs: {
18
+ hash: string;
19
+ }[];
20
+ account: {
21
+ address: string;
22
+ };
23
+ }
24
+ export interface TonApiStatusByBocResp {
25
+ in_progress: boolean;
26
+ lt: number;
27
+ }
28
+ export interface TonApiHealthcheckResp {
29
+ rest_online: boolean;
30
+ indexing_latency: number;
31
+ }
32
+ export interface TonApiAccountInfoResp {
33
+ /** raw address */
34
+ address: string;
35
+ balance: number;
36
+ /** in unix format */
37
+ last_activity: number;
38
+ status: TonApiAccountStatus;
39
+ interfaces: string[];
40
+ get_methods: string[];
41
+ is_wallet: boolean;
42
+ }
43
+ export interface TonApiCallContractCommonResp<T> {
44
+ success: boolean;
45
+ exit_code: number;
46
+ stack: Array<{
47
+ type: string;
48
+ num: string;
49
+ }>;
50
+ decoded: T;
51
+ }
52
+ export interface TonApiParseAddressResp {
53
+ raw_form: string;
54
+ bounceable: {
55
+ b64: string;
56
+ b64url: string;
57
+ };
58
+ non_bounceable: {
59
+ b64: string;
60
+ b64url: string;
61
+ };
62
+ given_type: string;
63
+ test_only: false;
64
+ }
65
+ export interface TonApiAllNonNullableTokenInfoForWalletResp {
66
+ balances: TonApiTokenInfoForWalletResp[];
67
+ }
68
+ export interface TonApiTokenInfoForWalletResp {
69
+ balance: string;
70
+ price?: {
71
+ prices: {
72
+ [k: string]: string;
73
+ };
74
+ };
75
+ wallet_address: {
76
+ /** address of user's contract for this token */
77
+ address: string;
78
+ is_scam: boolean;
79
+ is_wallet: boolean;
80
+ };
81
+ jetton: {
82
+ /** address of token(jetton) contract. Similaer to ERC20 contract address in EVM */
83
+ address: string;
84
+ name: string;
85
+ symbol: string;
86
+ decimals: number;
87
+ image: string;
88
+ verification: string;
89
+ };
90
+ }
91
+ export interface TonApiTokenInfoResp {
92
+ mintable: boolean;
93
+ total_supply: string;
94
+ metadata: {
95
+ address: string;
96
+ name: string;
97
+ symbol: string;
98
+ decimals: string;
99
+ image: string;
100
+ };
101
+ verification: string;
102
+ holders_count: number;
103
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=tonapi-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tonapi-models.js","sourceRoot":"","sources":["../../../../../../../../packages/web3/src/lib/adapter/adapters/models/tonapi-models.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ export type TonCenterResp<SuccessRespType> = TonCenterFailResp | SuccessRespType;
2
+ export interface TonCenterFailResp {
3
+ detail: Array<{
4
+ msg: string;
5
+ }>;
6
+ }
7
+ export interface TonCenterBlocksResp {
8
+ blocks: TonCenterBlockInfo[];
9
+ }
10
+ export interface TonCenterBlockInfo {
11
+ workchain: 0 | -1;
12
+ shard: string;
13
+ seqno: number;
14
+ root_hash: string;
15
+ file_hash: string;
16
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=toncenter-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toncenter-types.js","sourceRoot":"","sources":["../../../../../../../../packages/web3/src/lib/adapter/adapters/models/toncenter-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { AbstractAdapter } from '@cryptorubic/web3';
2
+ import { BlockchainName, HttpClient, ICustomLogger, Token, TonBlockchainName } from '@cryptorubic/core';
3
+ import { TonClient } from "@ton/ton";
4
+ export declare class TonAdapter extends AbstractAdapter<TonClient, TonClient, TonBlockchainName> {
5
+ private readonly tonApi;
6
+ protected get core(): TonClient;
7
+ private static tonClient;
8
+ static getTonClient(): TonClient;
9
+ constructor(httpClient: HttpClient, tonApiKey: string, logger?: ICustomLogger);
10
+ callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token<BlockchainName>[]>;
11
+ read<T>(args: unknown): Promise<T>;
12
+ write(args: unknown): Promise<string>;
13
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TonAdapter = void 0;
4
+ const web3_1 = require("@cryptorubic/web3");
5
+ const core_1 = require("@cryptorubic/core");
6
+ const ton_api_service_1 = require("./utils/ton-api.service");
7
+ const ton_1 = require("@ton/ton");
8
+ class TonAdapter extends web3_1.AbstractAdapter {
9
+ get core() {
10
+ return TonAdapter.getTonClient();
11
+ }
12
+ static getTonClient() {
13
+ if (!this.tonClient) {
14
+ this.tonClient = new ton_1.TonClient({
15
+ apiKey: '65e9a5af974c9f8e00b726fc25972fd228a49236d960b7bdce9f24ed6c54a45e',
16
+ endpoint: 'https://toncenter.com/api/v2/jsonRPC'
17
+ });
18
+ }
19
+ return this.tonClient;
20
+ }
21
+ constructor(httpClient, tonApiKey, logger) {
22
+ super(core_1.BLOCKCHAIN_NAME.TON, logger);
23
+ this.tonApi = new ton_api_service_1.TonApiService(httpClient, tonApiKey);
24
+ }
25
+ async callForTokensInfo(tokenAddresses) {
26
+ const info = await Promise.all(tokenAddresses.map((address) => {
27
+ if (web3_1.Web3Pure.isNativeAddress(core_1.BLOCKCHAIN_NAME.TON, address)) {
28
+ const nativeToken = core_1.nativeTokensList[core_1.BLOCKCHAIN_NAME.TON];
29
+ return nativeToken;
30
+ }
31
+ return this.tonApi.fetchTokenInfo(address);
32
+ }));
33
+ if (!info.length)
34
+ return [];
35
+ const necessaryInfo = info.map(({ decimals, name, symbol, address }) => new core_1.Token({
36
+ address,
37
+ blockchain: core_1.BLOCKCHAIN_NAME.TON,
38
+ decimals: Number(decimals),
39
+ name,
40
+ symbol
41
+ }));
42
+ return necessaryInfo;
43
+ }
44
+ read(args) {
45
+ throw new Error('Not implemented');
46
+ }
47
+ write(args) {
48
+ throw new Error('Not implemented');
49
+ }
50
+ }
51
+ exports.TonAdapter = TonAdapter;
52
+ TonAdapter.tonClient = null;
53
+ //# sourceMappingURL=ton-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ton-adapter.js","sourceRoot":"","sources":["../../../../../../../packages/web3/src/lib/adapter/adapters/ton-adapter.ts"],"names":[],"mappings":";;;AAAA,4CAA8D;AAC9D,4CAQ2B;AAC3B,6DAAsD;AACtD,kCAAmC;AAEnC,MAAa,UAAW,SAAQ,sBAAwD;IAGpF,IAAc,IAAI;QACd,OAAO,UAAU,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAIM,MAAM,CAAC,YAAY;QACtB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAS,CAAC;gBAC3B,MAAM,EAAE,kEAAkE;gBAC1E,QAAQ,EAAE,sCAAsC;aACnD,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,YAAY,UAAsB,EAAE,SAAiB,EAAE,MAAsB;QACzE,KAAK,CAAC,sBAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,+BAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;IAEe,KAAK,CAAC,iBAAiB,CAAC,cAAgD;QACpF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1B,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,eAAQ,CAAC,eAAe,CAAC,sBAAe,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;gBACzD,MAAM,WAAW,GAAG,uBAAgB,CAAC,sBAAe,CAAC,GAAG,CAAC,CAAC;gBAC1D,OAAO,WAAW,CAAC;YACvB,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC,CACL,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC1B,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CACpC,IAAI,YAAK,CAAC;YACN,OAAO;YACP,UAAU,EAAE,sBAAe,CAAC,GAAG;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;YAC1B,IAAI;YACJ,MAAM;SACT,CAAC,CACT,CAAC;QAEF,OAAO,aAAa,CAAC;IACzB,CAAC;IAEM,IAAI,CAAI,IAAa;QACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,IAAa;QACtB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;;AAzDL,gCA0DC;AAnDkB,oBAAS,GAAqB,IAAI,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { TonApiAccountInfoResp, TonApiAllNonNullableTokenInfoForWalletResp, TonApiParseAddressResp, TonApiTokenInfoForWalletResp, TonApiTokenInfoResp, TonApiTxDataByBocResp } from '../models/tonapi-models';
2
+ import { TonCenterBlockInfo } from '../models/toncenter-types';
3
+ import { HttpClient } from "@cryptorubic/core";
4
+ import { Web3PrimitiveType } from "@cryptorubic/web3";
5
+ export declare class TonApiService {
6
+ private readonly httpClient;
7
+ private readonly tonApiUrl;
8
+ private readonly apiKey;
9
+ private readonly tonCenterV3Url;
10
+ constructor(httpClient: HttpClient, tonApiKey: string);
11
+ /**
12
+ * @param walletAddress in any format: raw or friendly
13
+ */
14
+ getAllFormatsOfAddress(walletAddress: string): Promise<TonApiParseAddressResp>;
15
+ /**
16
+ *
17
+ * @param walletAddress in any format: raw or friendly
18
+ */
19
+ fetchWalletSeqno(walletAddress: string): Promise<number>;
20
+ fetchTxInfo(txHash: string): Promise<TonApiTxDataByBocResp>;
21
+ fetchTxInfoByMessageHash(txHash: string): Promise<TonApiTxDataByBocResp>;
22
+ checkIsTxCompleted(txHash: string): Promise<boolean>;
23
+ healthcheck(): Promise<boolean>;
24
+ fetchLastBlockInfo(): Promise<TonCenterBlockInfo>;
25
+ /**
26
+ *
27
+ * @param address address of account or jetton wallet or jetton master in any format: raw or friendly
28
+ */
29
+ callContractMethod<T>(address: string, methodName: string, methodArgs: Web3PrimitiveType[]): Promise<T>;
30
+ fetchTokenInfo(tokenAddress: string): Promise<TonApiTokenInfoResp['metadata']>;
31
+ /**
32
+ *
33
+ * @param tokenAddress in any form: raw or friendly
34
+ * @returns balance, decimals, name, symbol, walletJettonAddress, jettonAddress
35
+ */
36
+ fetchTokenInfoForWallet(walletAddress: string, tokenAddress: string): Promise<TonApiTokenInfoForWalletResp>;
37
+ fetchAllNonNullableTokensInfoForWallet(walletAddress: string): Promise<TonApiAllNonNullableTokenInfoForWalletResp['balances']>;
38
+ /**
39
+ * @returns available methods for walletAddress(contract), raw address and native coin TON balance
40
+ */
41
+ fetchAccountInfo(walletAddress: string): Promise<TonApiAccountInfoResp>;
42
+ }
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TonApiService = void 0;
4
+ class TonApiService {
5
+ constructor(httpClient, tonApiKey) {
6
+ this.httpClient = httpClient;
7
+ this.tonApiUrl = 'https://tonapi.io';
8
+ this.tonCenterV3Url = 'https://toncenter.com/api/v3';
9
+ this.apiKey = tonApiKey;
10
+ }
11
+ /**
12
+ * @param walletAddress in any format: raw or friendly
13
+ */
14
+ async getAllFormatsOfAddress(walletAddress) {
15
+ const res = await this.httpClient.get(`${this.tonApiUrl}/v2/address/${walletAddress}/parse`, {
16
+ headers: {
17
+ Authorization: this.apiKey
18
+ }
19
+ });
20
+ if ('error' in res) {
21
+ throw new Error(`[TonWeb3Pure] Error in getAllFormatsOfAddress - ${res.error}`);
22
+ }
23
+ return res;
24
+ }
25
+ /**
26
+ *
27
+ * @param walletAddress in any format: raw or friendly
28
+ */
29
+ async fetchWalletSeqno(walletAddress) {
30
+ const res = await this.httpClient.get(`${this.tonApiUrl}/v2/wallet/${walletAddress}/seqno`, {
31
+ headers: { Authorization: this.apiKey }
32
+ });
33
+ if ('error' in res) {
34
+ throw new Error(`[TonApiService] Error in fetchWalletSeqno - ${res.error}`);
35
+ }
36
+ return res.seqno;
37
+ }
38
+ async fetchTxInfo(txHash) {
39
+ const res = await this.httpClient.get(`${this.tonApiUrl}/v2/blockchain/transactions/${txHash}`, {
40
+ headers: { Authorization: this.apiKey }
41
+ });
42
+ if ('error' in res) {
43
+ throw new Error(`[TonApiService] Error in fetchTxInfo - ${res.error}`);
44
+ }
45
+ return res;
46
+ }
47
+ async fetchTxInfoByMessageHash(txHash) {
48
+ const res = await this.httpClient.get(`${this.tonApiUrl}/v2/blockchain/messages/${txHash}/transaction`, { headers: { Authorization: this.apiKey } });
49
+ if ('error' in res) {
50
+ throw new Error(`[TonApiService] Error in fetchTxInfoByMessageHash - ${res.error}`);
51
+ }
52
+ return res;
53
+ }
54
+ async checkIsTxCompleted(txHash) {
55
+ try {
56
+ const res = await this.httpClient.get(`${this.tonApiUrl}/v2/events/${txHash}`, {
57
+ headers: { Authorization: this.apiKey }
58
+ });
59
+ if ('error' in res) {
60
+ throw new Error(`[TonApiService] Error in checkIsTxCompleted - ${res.error}`);
61
+ }
62
+ return res.hasOwnProperty('in_progress') && !res.in_progress;
63
+ }
64
+ catch {
65
+ return false;
66
+ }
67
+ }
68
+ async healthcheck() {
69
+ const res = await this.httpClient.get(`${this.tonApiUrl}/v2/status`, {
70
+ headers: { Authorization: this.apiKey }
71
+ });
72
+ if ('error' in res || !res.rest_online) {
73
+ return false;
74
+ }
75
+ return true;
76
+ }
77
+ async fetchLastBlockInfo() {
78
+ const res = await this.httpClient.get(`${this.tonCenterV3Url}/blocks`, {
79
+ params: {
80
+ limit: 1,
81
+ offset: 0,
82
+ sort: 'desc'
83
+ }
84
+ });
85
+ if ('detail' in res) {
86
+ throw new Error(`[TonApiService] Error in fetchWalletSeqno - ${res.detail[0]?.msg}`);
87
+ }
88
+ return res.blocks[0];
89
+ }
90
+ /**
91
+ *
92
+ * @param address address of account or jetton wallet or jetton master in any format: raw or friendly
93
+ */
94
+ async callContractMethod(address, methodName, methodArgs) {
95
+ let argsParam = '';
96
+ if (methodArgs.length) {
97
+ argsParam += '?' + methodArgs.map((param) => `args=${param}`).join('&');
98
+ }
99
+ const res = await this.httpClient.get(`${this.tonApiUrl}/v2/blockchain/accounts/${address}/methods/${methodName}${argsParam}`, { headers: { Authorization: this.apiKey } });
100
+ if ('error' in res) {
101
+ throw new Error(`[TonApiService] Error in callContractMethod - ${res.error}`);
102
+ }
103
+ return res.decoded;
104
+ }
105
+ async fetchTokenInfo(tokenAddress) {
106
+ const res = await this.httpClient.get(`${this.tonApiUrl}/v2/jettons/${tokenAddress}`, {
107
+ headers: { Authorization: this.apiKey }
108
+ });
109
+ if ('error' in res) {
110
+ throw new Error(`[TonApiService] Error in fetchTokenInfo - ${res.error}`);
111
+ }
112
+ return res.metadata;
113
+ }
114
+ /**
115
+ *
116
+ * @param tokenAddress in any form: raw or friendly
117
+ * @returns balance, decimals, name, symbol, walletJettonAddress, jettonAddress
118
+ */
119
+ async fetchTokenInfoForWallet(walletAddress, tokenAddress) {
120
+ const res = await this.httpClient.get(`${this.tonApiUrl}/v2/accounts/${walletAddress}/jettons/${tokenAddress}`, { headers: { Authorization: this.apiKey } });
121
+ if ('error' in res) {
122
+ throw new Error(`[TonApiService] Error in fetchTokenInfoForWallet - ${res.error}`);
123
+ }
124
+ return res;
125
+ }
126
+ async fetchAllNonNullableTokensInfoForWallet(walletAddress) {
127
+ const res = await this.httpClient.get(`${this.tonApiUrl}/v2/accounts/${walletAddress}/jettons`, {
128
+ headers: { Authorization: this.apiKey }
129
+ });
130
+ if ('error' in res) {
131
+ throw new Error(`[TonApiService] Error in fetchAllNonNullableTokensInfoForWallet - ${res.error}`);
132
+ }
133
+ return res.balances;
134
+ }
135
+ /**
136
+ * @returns available methods for walletAddress(contract), raw address and native coin TON balance
137
+ */
138
+ async fetchAccountInfo(walletAddress) {
139
+ const res = await this.httpClient.get(`${this.tonApiUrl}/v2/accounts/${walletAddress}`, {
140
+ headers: { Authorization: this.apiKey }
141
+ });
142
+ if ('error' in res) {
143
+ throw new Error(`[TonApiService] Error in fetchAccountInfo - ${res.error}`);
144
+ }
145
+ return res;
146
+ }
147
+ }
148
+ exports.TonApiService = TonApiService;
149
+ //# sourceMappingURL=ton-api.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ton-api.service.js","sourceRoot":"","sources":["../../../../../../../../packages/web3/src/lib/adapter/adapters/utils/ton-api.service.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,16 @@ import { SolanaAdapter } from './adapters/solana-adapter';
3
3
  import { TronAdapter } from './adapters/tron-adapter';
4
4
  import { AbstractAdapter } from './adapters/abstract-adapter';
5
5
  import { WalletProvider } from "./constants/models/wallet-provider";
6
- import { BlockchainName, EvmBlockchainName, SolanaBlockchainName, TronBlockchainName, ICustomLogger } from "@cryptorubic/core";
6
+ import { BlockchainName, EvmBlockchainName, SolanaBlockchainName, TronBlockchainName, ICustomLogger, HttpClient } from "@cryptorubic/core";
7
7
  export declare class BlockchainAdapterFactoryService {
8
8
  private readonly rpcList;
9
9
  private readonly createLogger?;
10
+ private readonly httpClient?;
11
+ private readonly tonApiKey?;
10
12
  readonly adapterStore: Partial<Record<BlockchainName, AbstractAdapter<unknown, unknown, BlockchainName>>>;
11
13
  protected readonly logger?: ICustomLogger;
12
- constructor(rpcList: Partial<Record<EvmBlockchainName, string[]>>, createLogger?: ((label: string) => ICustomLogger) | undefined);
14
+ private constructor();
15
+ static createFactory(rpcList: Partial<Record<EvmBlockchainName, string[]>>, httpClient?: HttpClient, tonApiKey?: string, createLogger?: (label: string) => ICustomLogger): Promise<BlockchainAdapterFactoryService>;
13
16
  getAdapter(blockchain: SolanaBlockchainName): SolanaAdapter;
14
17
  getAdapter(blockchain: EvmBlockchainName): EvmAdapter;
15
18
  getAdapter(blockchain: TronBlockchainName): TronAdapter;
@@ -7,16 +7,25 @@ const solana_adapter_1 = require("./adapters/solana-adapter");
7
7
  const tron_adapter_1 = require("./adapters/tron-adapter");
8
8
  const viem_1 = require("viem");
9
9
  const core_1 = require("@cryptorubic/core");
10
+ const ton_adapter_1 = require("./adapters/ton-adapter");
10
11
  class BlockchainAdapterFactoryService {
11
- constructor(rpcList, createLogger) {
12
+ constructor(rpcList, createLogger, httpClient, tonApiKey) {
12
13
  this.rpcList = rpcList;
13
14
  this.createLogger = createLogger;
15
+ this.httpClient = httpClient;
16
+ this.tonApiKey = tonApiKey;
14
17
  this.adapterStore = {};
15
18
  this.adapterStore = this.createStorage();
16
19
  if (this.createLogger) {
17
20
  this.logger = this.createLogger('BlockchainAdapterFactory');
18
21
  }
19
22
  }
23
+ static async createFactory(rpcList, httpClient, tonApiKey, createLogger) {
24
+ // @TODO Add default logger
25
+ const loggerFn = createLogger || undefined;
26
+ const resolvedHttpClient = httpClient ?? await Promise.resolve().then(() => require('axios'));
27
+ return new this(rpcList, createLogger, resolvedHttpClient, tonApiKey);
28
+ }
20
29
  getAdapter(blockchain) {
21
30
  const adapter = this.adapterStore?.[blockchain];
22
31
  if (!adapter) {
@@ -29,15 +38,23 @@ class BlockchainAdapterFactoryService {
29
38
  const adapters = Object.entries(this.rpcList)
30
39
  .map(([blockchain, rpcs]) => {
31
40
  const adapter = this.createAdapter(blockchain, rpcs || []);
41
+ return [blockchain, adapter || null];
32
42
  if (adapter) {
33
43
  this.logger?.customLog(`Creating adapter for ${blockchain} blockchain`);
34
44
  return [blockchain, adapter];
35
45
  }
36
46
  this.logger?.customWarn(`Failed to create adapter for ${blockchain} blockchain`);
37
47
  return [blockchain, null];
38
- })
39
- .filter(([_, adapter]) => Boolean(adapter));
40
- const store = Object.fromEntries(adapters);
48
+ });
49
+ const tonAdapter = this.createAdapter(core_1.BLOCKCHAIN_NAME.TON, []);
50
+ adapters.push(tonAdapter ? [core_1.BLOCKCHAIN_NAME.TON, tonAdapter] : [core_1.BLOCKCHAIN_NAME.TON, null]);
51
+ const activeAdapters = adapters.filter(([blockchain, adapter]) => {
52
+ const adapterExists = Boolean(adapter);
53
+ const message = adapterExists ? `Creating adapter for ${blockchain} blockchain` : `Failed to create adapter for ${blockchain} blockchain`;
54
+ this.logger?.customLog(message);
55
+ return adapterExists;
56
+ });
57
+ const store = Object.fromEntries(activeAdapters);
41
58
  this.logger?.customLog('Adapters store created');
42
59
  return store;
43
60
  }
@@ -59,6 +76,11 @@ class BlockchainAdapterFactoryService {
59
76
  return new solana_adapter_1.SolanaAdapter(rpcs, this.createLogger?.(`SOLANA_ADAPTER`));
60
77
  }
61
78
  }
79
+ if (this.tonApiKey && blockchain === core_1.BLOCKCHAIN_NAME.TON && this.httpClient) {
80
+ return new ton_adapter_1.TonAdapter(this.httpClient, this.tonApiKey, this.createLogger?.(`TON_ADAPTER`));
81
+ }
82
+ else {
83
+ }
62
84
  return null;
63
85
  }
64
86
  connectWallet(walletProvider) {
@@ -1 +1 @@
1
- {"version":3,"file":"blockchain-adapter-factory.service.js","sourceRoot":"","sources":["../../../../../../packages/web3/src/lib/adapter/blockchain-adapter-factory.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blockchain-adapter-factory.service.js","sourceRoot":"","sources":["../../../../../../packages/web3/src/lib/adapter/blockchain-adapter-factory.service.ts"],"names":[],"mappings":"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"}