@cryptorubic/web3 0.0.34 → 0.2.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.
Files changed (49) hide show
  1. package/package.json +15 -2
  2. package/src/index.d.ts +1 -0
  3. package/src/index.js +1 -0
  4. package/src/lib/adapter/adapters/abstract-adapter.d.ts +5 -2
  5. package/src/lib/adapter/adapters/abstract-adapter.js +12 -2
  6. package/src/lib/adapter/adapters/constants/erc20-token-abi.js +12 -12
  7. package/src/lib/adapter/adapters/constants/trc-20-contract-abi.js +15 -15
  8. package/src/lib/adapter/adapters/constants/tron-multicall-abi.js +6 -6
  9. package/src/lib/adapter/adapters/evm-adapter.d.ts +30 -9
  10. package/src/lib/adapter/adapters/evm-adapter.js +121 -28
  11. package/src/lib/adapter/adapters/models/approve-adapter.d.ts +12 -6
  12. package/src/lib/adapter/adapters/models/evm-adapter-options.d.ts +1 -1
  13. package/src/lib/adapter/adapters/models/gas-price.d.ts +22 -0
  14. package/src/lib/adapter/adapters/models/gas-price.js +2 -0
  15. package/src/lib/adapter/adapters/models/ton-adapter-config.d.ts +2 -2
  16. package/src/lib/adapter/adapters/solana-adapter.d.ts +3 -3
  17. package/src/lib/adapter/adapters/solana-adapter.js +1 -1
  18. package/src/lib/adapter/adapters/ton-adapter.d.ts +6 -6
  19. package/src/lib/adapter/adapters/ton-adapter.js +8 -8
  20. package/src/lib/adapter/adapters/tron-adapter.d.ts +13 -14
  21. package/src/lib/adapter/adapters/tron-adapter.js +54 -39
  22. package/src/lib/adapter/adapters/utils/ton-api.service.d.ts +3 -3
  23. package/src/lib/adapter/adapters/utils/ton-api.service.js +4 -3
  24. package/src/lib/adapter/blockchain-adapter-factory.service.d.ts +6 -4
  25. package/src/lib/adapter/blockchain-adapter-factory.service.js +24 -13
  26. package/src/lib/adapter/constants/chain-configs/chain-configs.d.ts +1 -1
  27. package/src/lib/adapter/constants/chain-configs/chain-configs.js +589 -299
  28. package/src/lib/adapter/constants/models/wallet-provider.d.ts +3 -3
  29. package/src/lib/adapter/constants/viem-blockchain-mapping.d.ts +1 -1
  30. package/src/lib/adapter/constants/viem-blockchain-mapping.js +1 -1
  31. package/src/lib/utils/constants/changenow-api-blockchain.js +2 -2
  32. package/src/lib/utils/constants/web3-pure-store.d.ts +2 -2
  33. package/src/lib/utils/constants/web3-pure-store.js +33 -33
  34. package/src/lib/utils/models/contract-multicall-response.d.ts +1 -1
  35. package/src/lib/utils/models/primitive-types.d.ts +1 -1
  36. package/src/lib/utils/models/tron-transaction-config.d.ts +1 -1
  37. package/src/lib/utils/web3-pure.d.ts +2 -2
  38. package/src/lib/utils/web3-pure.js +6 -7
  39. package/src/lib/utils/web3-types/bitcoin-web3-pure.d.ts +1 -1
  40. package/src/lib/utils/web3-types/common-web3-pure.js +0 -2
  41. package/src/lib/utils/web3-types/evm-web3-pure.d.ts +1 -1
  42. package/src/lib/utils/web3-types/icp-web3-pure.d.ts +1 -1
  43. package/src/lib/utils/web3-types/icp-web3-pure.js +2 -1
  44. package/src/lib/utils/web3-types/solana-web3-pure.d.ts +1 -1
  45. package/src/lib/utils/web3-types/solana-web3-pure.js +1 -1
  46. package/src/lib/utils/web3-types/ton-web3-pure.d.ts +1 -1
  47. package/src/lib/utils/web3-types/ton-web3-pure.js +1 -1
  48. package/src/lib/utils/web3-types/tron-web3-pure.d.ts +7 -4
  49. package/src/lib/utils/web3-types/tron-web3-pure.js +22 -6
@@ -1,6 +1,6 @@
1
- import { CHAIN_TYPE } from "@cryptorubic/core";
2
- import { SolanaWeb3 } from "./solana-web3";
3
- import { TronWeb } from "tronweb";
1
+ import { CHAIN_TYPE } from '@cryptorubic/core';
2
+ import { SolanaWeb3 } from './solana-web3';
3
+ import { TronWeb } from 'tronweb';
4
4
  export interface WalletProviderCore<T = any> {
5
5
  /**
6
6
  * Core provider.
@@ -1,3 +1,3 @@
1
1
  import { ViemChain } from './models/viem-chain-type';
2
- import { EvmBlockchainName } from "@cryptorubic/core";
2
+ import { EvmBlockchainName } from '@cryptorubic/core';
3
3
  export declare const viemBlockchainMapping: Partial<Record<EvmBlockchainName, ViemChain>>;
@@ -70,5 +70,5 @@ exports.viemBlockchainMapping = {
70
70
  [core_1.BLOCKCHAIN_NAME.BAHAMUT]: chain_configs_1.viemConfig[core_1.BLOCKCHAIN_NAME.BAHAMUT],
71
71
  [core_1.BLOCKCHAIN_NAME.BITLAYER]: chain_configs_1.viemConfig[core_1.BLOCKCHAIN_NAME.BITLAYER],
72
72
  [core_1.BLOCKCHAIN_NAME.GRAVITY]: chain_configs_1.viemConfig[core_1.BLOCKCHAIN_NAME.GRAVITY],
73
- [core_1.BLOCKCHAIN_NAME.SEI]: chains_1.sei
73
+ [core_1.BLOCKCHAIN_NAME.SEI]: chains_1.sei,
74
74
  };
@@ -22,7 +22,7 @@ exports.changeNowEvmSupportedBlockchain = {
22
22
  [core_1.BLOCKCHAIN_NAME.XDC]: 'xdc',
23
23
  [core_1.BLOCKCHAIN_NAME.PULSECHAIN]: 'pulse',
24
24
  [core_1.BLOCKCHAIN_NAME.BASE]: 'base',
25
- [core_1.BLOCKCHAIN_NAME.ZK_SYNC]: 'zksync'
25
+ [core_1.BLOCKCHAIN_NAME.ZK_SYNC]: 'zksync',
26
26
  };
27
27
  exports.changenowApiBlockchain = {
28
28
  // Evm
@@ -104,5 +104,5 @@ exports.changenowApiBlockchain = {
104
104
  [core_1.BLOCKCHAIN_NAME.HORIZEN]: 'zen',
105
105
  [core_1.BLOCKCHAIN_NAME.ZILLIQA]: 'zil',
106
106
  [core_1.BLOCKCHAIN_NAME.TRON]: 'trx',
107
- [core_1.BLOCKCHAIN_NAME.KAVA_COSMOS]: 'kava'
107
+ [core_1.BLOCKCHAIN_NAME.KAVA_COSMOS]: 'kava',
108
108
  };
@@ -1,3 +1,3 @@
1
- import { ChainType } from "@cryptorubic/core";
2
- import { CommonWeb3Pure } from "../web3-types/common-web3-pure";
1
+ import { ChainType } from '@cryptorubic/core';
2
+ import { CommonWeb3Pure } from '../web3-types/common-web3-pure';
3
3
  export declare const web3PureStore: Record<ChainType, CommonWeb3Pure>;
@@ -22,120 +22,120 @@ exports.web3PureStore = {
22
22
  // Common Web3
23
23
  [core_1.CHAIN_TYPE.RIPPLE]: new common_web3_pure_1.CommonWeb3Pure({
24
24
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.RIPPLE,
25
- regex: /^r[1-9A-HJ-NP-Za-km-z]{25,34}$/
25
+ regex: /^r[1-9A-HJ-NP-Za-km-z]{25,34}$/,
26
26
  }),
27
27
  [core_1.CHAIN_TYPE.CARDANO]: new common_web3_pure_1.CommonWeb3Pure({
28
28
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.CARDANO,
29
- regex: /^([1-9A-HJ-NP-Za-km-z]{59,104})|([0-9A-Za-z]{58,104})$/
29
+ regex: /^([1-9A-HJ-NP-Za-km-z]{59,104})|([0-9A-Za-z]{58,104})$/,
30
30
  }),
31
31
  [core_1.CHAIN_TYPE.DOGECOIN]: new common_web3_pure_1.CommonWeb3Pure({
32
32
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.DOGECOIN,
33
- regex: /^[X|7][0-9A-Za-z]{33}$/
33
+ regex: /^[X|7][0-9A-Za-z]{33}$/,
34
34
  }),
35
35
  [core_1.CHAIN_TYPE.POLKADOT]: new common_web3_pure_1.CommonWeb3Pure({
36
36
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.POLKADOT,
37
- regex: /^1[0-9a-z-A-Z]{44,49}$/
37
+ regex: /^1[0-9a-z-A-Z]{44,49}$/,
38
38
  }),
39
39
  [core_1.CHAIN_TYPE.LITECOIN]: new common_web3_pure_1.CommonWeb3Pure({
40
40
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.LITECOIN,
41
- regex: /^(L|M|3)[A-Za-z0-9]{33}$|^(ltc1)[0-9A-Za-z]{39}$/
41
+ regex: /^(L|M|3)[A-Za-z0-9]{33}$|^(ltc1)[0-9A-Za-z]{39}$/,
42
42
  }),
43
43
  [core_1.CHAIN_TYPE.MONERO]: new common_web3_pure_1.CommonWeb3Pure({
44
44
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.MONERO,
45
- regex: /^[48][a-zA-Z|\d]{94}([a-zA-Z|\d]{11})?$/
45
+ regex: /^[48][a-zA-Z|\d]{94}([a-zA-Z|\d]{11})?$/,
46
46
  }),
47
47
  [core_1.CHAIN_TYPE.NEAR]: new common_web3_pure_1.CommonWeb3Pure({
48
48
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.NEAR,
49
- regex: /(^[a-z0-9_-]{2,64}\.near$)|(^[0-9a-f]{64}$)/
49
+ regex: /(^[a-z0-9_-]{2,64}\.near$)|(^[0-9a-f]{64}$)/,
50
50
  }),
51
51
  [core_1.CHAIN_TYPE.ALGORAND]: new common_web3_pure_1.CommonWeb3Pure({
52
52
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.ALGORAND,
53
- regex: /^[A-Z0-9]{58}/
53
+ regex: /^[A-Z0-9]{58}/,
54
54
  }),
55
55
  [core_1.CHAIN_TYPE.TEZOS]: new common_web3_pure_1.CommonWeb3Pure({
56
56
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.TEZOS,
57
- regex: /^tz1[a-zA-Z0-9]{33}$/
57
+ regex: /^tz1[a-zA-Z0-9]{33}$/,
58
58
  }),
59
59
  [core_1.CHAIN_TYPE.DASH]: new common_web3_pure_1.CommonWeb3Pure({
60
60
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.DASH,
61
- regex: /^[X|7][0-9A-Za-z]{33}$/
61
+ regex: /^[X|7][0-9A-Za-z]{33}$/,
62
62
  }),
63
63
  [core_1.CHAIN_TYPE.ZILLIQA]: new common_web3_pure_1.CommonWeb3Pure({
64
64
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.ZILLIQA,
65
- regex: /^zil1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{38}$/
65
+ regex: /^zil1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{38}$/,
66
66
  }),
67
67
  [core_1.CHAIN_TYPE.KAVA_COSMOS]: new common_web3_pure_1.CommonWeb3Pure({
68
68
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.KAVA_COSMOS,
69
- regex: /^(kava1)[0-9a-z]{38}$/
69
+ regex: /^(kava1)[0-9a-z]{38}$/,
70
70
  }),
71
71
  [core_1.CHAIN_TYPE.APTOS]: new common_web3_pure_1.CommonWeb3Pure({
72
72
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.APTOS,
73
- regex: /^(0x)[0-9A-Za-z]{64}$/
73
+ regex: /^(0x)[0-9A-Za-z]{64}$/,
74
74
  }),
75
75
  [core_1.CHAIN_TYPE.ASTAR]: new common_web3_pure_1.CommonWeb3Pure({
76
76
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.ASTAR,
77
- regex: /^[0-9a-z-A-Z]{44,50}$/
77
+ regex: /^[0-9a-z-A-Z]{44,50}$/,
78
78
  }),
79
79
  [core_1.CHAIN_TYPE.COSMOS]: new common_web3_pure_1.CommonWeb3Pure({
80
80
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.COSMOS,
81
- regex: /^(cosmos1)[0-9a-z]{38}$/
81
+ regex: /^(cosmos1)[0-9a-z]{38}$/,
82
82
  }),
83
83
  [core_1.CHAIN_TYPE.FLOW]: new common_web3_pure_1.CommonWeb3Pure({
84
84
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.FLOW,
85
- regex: /^(0x)[0-9A-Fa-f]{16}$/
85
+ regex: /^(0x)[0-9A-Fa-f]{16}$/,
86
86
  }),
87
87
  [core_1.CHAIN_TYPE.HEDERA]: new common_web3_pure_1.CommonWeb3Pure({
88
88
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.HEDERA,
89
- regex: /^0\.0\.\d{1,7}$/
89
+ regex: /^0\.0\.\d{1,7}$/,
90
90
  }),
91
91
  [core_1.CHAIN_TYPE.IOTA]: new common_web3_pure_1.CommonWeb3Pure({
92
92
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.IOTA,
93
- regex: /^(iota)[0-9a-z]{60}$/
93
+ regex: /^(iota)[0-9a-z]{60}$/,
94
94
  }),
95
95
  [core_1.CHAIN_TYPE.KADENA]: new common_web3_pure_1.CommonWeb3Pure({
96
96
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.KADENA,
97
- regex: /^k:[0-9a-zA-Z]{64}$/
97
+ regex: /^k:[0-9a-zA-Z]{64}$/,
98
98
  }),
99
99
  [core_1.CHAIN_TYPE.KUSAMA]: new common_web3_pure_1.CommonWeb3Pure({
100
100
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.KUSAMA,
101
- regex: /^[C-Z][a-km-zA-HJ-NP-Z1-9]{46}$/
101
+ regex: /^[C-Z][a-km-zA-HJ-NP-Z1-9]{46}$/,
102
102
  }),
103
103
  [core_1.CHAIN_TYPE.MINA_PROTOCOL]: new common_web3_pure_1.CommonWeb3Pure({
104
104
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.MINA_PROTOCOL,
105
- regex: /^(B62)[A-Za-z0-9]{52}$/
105
+ regex: /^(B62)[A-Za-z0-9]{52}$/,
106
106
  }),
107
107
  [core_1.CHAIN_TYPE.NEO]: new common_web3_pure_1.CommonWeb3Pure({
108
108
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.NEO,
109
- regex: /^(A)[A-Za-z0-9]{33}$/
109
+ regex: /^(A)[A-Za-z0-9]{33}$/,
110
110
  }),
111
111
  [core_1.CHAIN_TYPE.OSMOSIS]: new common_web3_pure_1.CommonWeb3Pure({
112
112
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.OSMOSIS,
113
- regex: /^(osmo1)[0-9a-z]{38}$/
113
+ regex: /^(osmo1)[0-9a-z]{38}$/,
114
114
  }),
115
115
  [core_1.CHAIN_TYPE.SIA]: new common_web3_pure_1.CommonWeb3Pure({
116
116
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.SIA,
117
- regex: /^[A-Za-z0-9]{76}$/
117
+ regex: /^[A-Za-z0-9]{76}$/,
118
118
  }),
119
119
  [core_1.CHAIN_TYPE.SECRET]: new common_web3_pure_1.CommonWeb3Pure({
120
120
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.SECRET,
121
- regex: /^(secret1)[0-9a-z]{38}$/
121
+ regex: /^(secret1)[0-9a-z]{38}$/,
122
122
  }),
123
123
  [core_1.CHAIN_TYPE.TON]: new ton_web3_pure_1.TonWeb3Pure(),
124
124
  [core_1.CHAIN_TYPE.WAVES]: new common_web3_pure_1.CommonWeb3Pure({
125
125
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.WAVES,
126
- regex: /^(3P)[0-9A-Za-z]{33}$/
126
+ regex: /^(3P)[0-9A-Za-z]{33}$/,
127
127
  }),
128
128
  [core_1.CHAIN_TYPE.WAX]: new common_web3_pure_1.CommonWeb3Pure({
129
129
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.WAX,
130
- regex: /^[a-z1-5.]{1,12}$/
130
+ regex: /^[a-z1-5.]{1,12}$/,
131
131
  }),
132
132
  [core_1.CHAIN_TYPE.STELLAR]: new common_web3_pure_1.CommonWeb3Pure({
133
133
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.STEEM,
134
- regex: /^G[A-D]{1}[A-Z2-7]{54}$/
134
+ regex: /^G[A-D]{1}[A-Z2-7]{54}$/,
135
135
  }),
136
136
  [core_1.CHAIN_TYPE.XDC]: new common_web3_pure_1.CommonWeb3Pure({
137
137
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.XDC,
138
- regex: /^xdc[a-fA-F\d]{40}$/
138
+ regex: /^xdc[a-fA-F\d]{40}$/,
139
139
  }),
140
140
  [core_1.CHAIN_TYPE.ONTOLOGY]: new common_web3_pure_1.CommonWeb3Pure({
141
141
  // @TODO
@@ -144,15 +144,15 @@ exports.web3PureStore = {
144
144
  }),
145
145
  [core_1.CHAIN_TYPE.EOS]: new common_web3_pure_1.CommonWeb3Pure({
146
146
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.EOS,
147
- regex: /^[1-5a-z]{12}$/
147
+ regex: /^[1-5a-z]{12}$/,
148
148
  }),
149
149
  [core_1.CHAIN_TYPE.FILECOIN]: new common_web3_pure_1.CommonWeb3Pure({
150
150
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.FILECOIN,
151
- regex: /[a-z0-9]{41}$|[a-z0-9]{86}$/
151
+ regex: /[a-z0-9]{41}$|[a-z0-9]{86}$/,
152
152
  }),
153
153
  [core_1.CHAIN_TYPE.CASPER]: new common_web3_pure_1.CommonWeb3Pure({
154
154
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.CASPER,
155
- regex: /^[A-Za-z0-9]{66,68}$/
155
+ regex: /^[A-Za-z0-9]{66,68}$/,
156
156
  }),
157
157
  [core_1.CHAIN_TYPE.AION]: new common_web3_pure_1.CommonWeb3Pure({
158
158
  // @TODO
@@ -333,5 +333,5 @@ exports.web3PureStore = {
333
333
  // @TODO
334
334
  // cnApiKey: changenowApiBlockchain.RIPPLE,
335
335
  // regex: ?
336
- })
336
+ }),
337
337
  };
@@ -1,4 +1,4 @@
1
- import { Web3PrimitiveType } from "./primitive-types";
1
+ import { Web3PrimitiveType } from './primitive-types';
2
2
  export interface ContractMulticallResponse<Output extends Web3PrimitiveType> {
3
3
  success: boolean;
4
4
  output: Output | null;
@@ -1,4 +1,4 @@
1
- import { BigNumber } from "@ethersproject/bignumber";
1
+ import { BigNumber } from '@ethersproject/bignumber';
2
2
  export type Web3PrimitiveType = number | string | boolean | Web3PrimitiveType[] | {
3
3
  [key: string]: Web3PrimitiveType;
4
4
  };
@@ -1,4 +1,4 @@
1
- import { TronParameters } from "./tron-parameters";
1
+ import { TronParameters } from './tron-parameters';
2
2
  export interface TronTransactionConfig {
3
3
  signature: string;
4
4
  arguments: TronParameters;
@@ -1,5 +1,5 @@
1
- import { BlockchainName, ChainType } from "@cryptorubic/core";
2
- import { CommonWeb3Pure } from "./web3-types/common-web3-pure";
1
+ import { BlockchainName, ChainType } from '@cryptorubic/core';
2
+ import { CommonWeb3Pure } from './web3-types/common-web3-pure';
3
3
  export declare class Web3Pure {
4
4
  static getInstance(blockchainName: BlockchainName): CommonWeb3Pure;
5
5
  static getInstance(chainType: ChainType): CommonWeb3Pure;
@@ -5,38 +5,37 @@ const core_1 = require("@cryptorubic/core");
5
5
  const web3_pure_store_1 = require("./constants/web3-pure-store");
6
6
  class Web3Pure {
7
7
  static getInstance(chainTypeOrChain) {
8
- const chainType = Object.values(core_1.CHAIN_TYPE).some(el => el === chainTypeOrChain)
8
+ const chainType = Object.values(core_1.CHAIN_TYPE).some((el) => el === chainTypeOrChain)
9
9
  ? chainTypeOrChain
10
10
  : core_1.BlockchainsInfo.getChainType(chainTypeOrChain);
11
11
  return web3_pure_store_1.web3PureStore[chainType];
12
12
  }
13
13
  static isNativeAddress(chainTypeOrChain, address) {
14
- const chainType = Object.values(core_1.CHAIN_TYPE).some(el => el === chainTypeOrChain)
14
+ const chainType = Object.values(core_1.CHAIN_TYPE).some((el) => el === chainTypeOrChain)
15
15
  ? chainTypeOrChain
16
16
  : core_1.BlockchainsInfo.getChainType(chainTypeOrChain);
17
17
  return web3_pure_store_1.web3PureStore[chainType].isNativeAddress(address);
18
18
  }
19
19
  static isEmptyAddress(chainTypeOrChain, address) {
20
- const chainType = Object.values(core_1.CHAIN_TYPE).some(el => el === chainTypeOrChain)
20
+ const chainType = Object.values(core_1.CHAIN_TYPE).some((el) => el === chainTypeOrChain)
21
21
  ? chainTypeOrChain
22
22
  : core_1.BlockchainsInfo.getChainType(chainTypeOrChain);
23
23
  return web3_pure_store_1.web3PureStore[chainType].isEmptyAddress(address);
24
24
  }
25
25
  static async isAddressCorrect(chainTypeOrChain, address) {
26
- const chainType = Object.values(core_1.CHAIN_TYPE).some(el => el === chainTypeOrChain)
26
+ const chainType = Object.values(core_1.CHAIN_TYPE).some((el) => el === chainTypeOrChain)
27
27
  ? chainTypeOrChain
28
28
  : core_1.BlockchainsInfo.getChainType(chainTypeOrChain);
29
29
  return web3_pure_store_1.web3PureStore[chainType].isAddressCorrect(address);
30
30
  }
31
- ;
32
31
  static getNativeTokenAddress(chainTypeOrChain) {
33
- const chainType = Object.values(core_1.CHAIN_TYPE).some(el => el === chainTypeOrChain)
32
+ const chainType = Object.values(core_1.CHAIN_TYPE).some((el) => el === chainTypeOrChain)
34
33
  ? chainTypeOrChain
35
34
  : core_1.BlockchainsInfo.getChainType(chainTypeOrChain);
36
35
  return web3_pure_store_1.web3PureStore[chainType].nativeTokenAddress;
37
36
  }
38
37
  static getEmptyTokenAddress(chainTypeOrChain) {
39
- const chainType = Object.values(core_1.CHAIN_TYPE).some(el => el === chainTypeOrChain)
38
+ const chainType = Object.values(core_1.CHAIN_TYPE).some((el) => el === chainTypeOrChain)
40
39
  ? chainTypeOrChain
41
40
  : core_1.BlockchainsInfo.getChainType(chainTypeOrChain);
42
41
  return web3_pure_store_1.web3PureStore[chainType].emptyAddress;
@@ -1,4 +1,4 @@
1
- import { CommonWeb3Pure } from "./common-web3-pure";
1
+ import { CommonWeb3Pure } from './common-web3-pure';
2
2
  export declare class BitcoinWeb3Pure extends CommonWeb3Pure {
3
3
  constructor();
4
4
  isAddressCorrect(address: string): Promise<boolean>;
@@ -30,7 +30,6 @@ class CommonWeb3Pure {
30
30
  }
31
31
  throw new Error(`Validation function is not implemented for ${this.constructor.name}`);
32
32
  }
33
- ;
34
33
  async checkCnValidity(address, chain, regEx) {
35
34
  try {
36
35
  const url = `https://api.changenow.io/v2/validate/address?currency=${chain}&address=${address}`;
@@ -41,6 +40,5 @@ class CommonWeb3Pure {
41
40
  return regEx.test(address);
42
41
  }
43
42
  }
44
- ;
45
43
  }
46
44
  exports.CommonWeb3Pure = CommonWeb3Pure;
@@ -1,4 +1,4 @@
1
- import { CommonWeb3Pure } from "./common-web3-pure";
1
+ import { CommonWeb3Pure } from './common-web3-pure';
2
2
  export declare class EvmWeb3Pure extends CommonWeb3Pure {
3
3
  constructor();
4
4
  isAddressCorrect(address: string): Promise<boolean>;
@@ -1,4 +1,4 @@
1
- import { CommonWeb3Pure } from "./common-web3-pure";
1
+ import { CommonWeb3Pure } from './common-web3-pure';
2
2
  export declare class IcpWeb3Pure extends CommonWeb3Pure {
3
3
  constructor();
4
4
  isAddressCorrect(address: string): Promise<boolean>;
@@ -13,7 +13,8 @@ class IcpWeb3Pure extends common_web3_pure_1.CommonWeb3Pure {
13
13
  }
14
14
  const buffer = this.base16Decode(address);
15
15
  const hash = CRC32.buf(buffer.slice(4));
16
- return hash === ((buffer[0] << 24) | (buffer[1] << 16) | (buffer[2] << 8) | buffer[3]);
16
+ return (hash ===
17
+ ((buffer[0] << 24) | (buffer[1] << 16) | (buffer[2] << 8) | buffer[3]));
17
18
  }
18
19
  base16Decode(str) {
19
20
  const buffer = [];
@@ -1,4 +1,4 @@
1
- import { CommonWeb3Pure } from "./common-web3-pure";
1
+ import { CommonWeb3Pure } from './common-web3-pure';
2
2
  export declare class SolanaWeb3Pure extends CommonWeb3Pure {
3
3
  readonly nativeTokenAddress = "So11111111111111111111111111111111111111111";
4
4
  constructor();
@@ -7,7 +7,7 @@ class SolanaWeb3Pure extends common_web3_pure_1.CommonWeb3Pure {
7
7
  constructor() {
8
8
  super({
9
9
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.SOLANA,
10
- regex: /^[1-9A-HJ-NP-Za-km-z]{32,44}$/
10
+ regex: /^[1-9A-HJ-NP-Za-km-z]{32,44}$/,
11
11
  });
12
12
  this.nativeTokenAddress = 'So11111111111111111111111111111111111111111';
13
13
  }
@@ -1,4 +1,4 @@
1
- import { CommonWeb3Pure } from "./common-web3-pure";
1
+ import { CommonWeb3Pure } from './common-web3-pure';
2
2
  export declare class TonWeb3Pure extends CommonWeb3Pure {
3
3
  constructor();
4
4
  }
@@ -5,7 +5,7 @@ const common_web3_pure_1 = require("./common-web3-pure");
5
5
  class TonWeb3Pure extends common_web3_pure_1.CommonWeb3Pure {
6
6
  constructor() {
7
7
  super({
8
- regex: /^(EQ|UQ)[0-9a-zA-Z-_!]{46}$/
8
+ regex: /^(EQ|UQ)[0-9a-zA-Z-_!]{46}$/,
9
9
  });
10
10
  }
11
11
  }
@@ -1,7 +1,9 @@
1
- import { CommonWeb3Pure } from "./common-web3-pure";
2
- import { TronParameters } from "../models/tron-parameters";
3
- import { TronWeb3PrimitiveType, Web3PrimitiveType } from "../models/primitive-types";
4
- import { FunctionFragment } from "tronweb/src/types/ABI";
1
+ import { CommonWeb3Pure } from './common-web3-pure';
2
+ import { TronTransactionConfig } from '../models/tron-transaction-config';
3
+ import { TronParameters } from '../models/tron-parameters';
4
+ import { TronWeb3PrimitiveType, Web3PrimitiveType } from '../models/primitive-types';
5
+ import { FunctionFragment } from 'tronweb/src/types/ABI';
6
+ import { AbiItem } from '../models/abi-types';
5
7
  export declare class TronWeb3Pure extends CommonWeb3Pure {
6
8
  constructor();
7
9
  isAddressCorrect(address: string): Promise<boolean>;
@@ -27,4 +29,5 @@ export declare class TronWeb3Pure extends CommonWeb3Pure {
27
29
  private static flattenTypesToArray;
28
30
  private static flattenParameters;
29
31
  static flattenParameterToPrimitive(parameter: TronWeb3PrimitiveType): Web3PrimitiveType;
32
+ static encodeMethodCall(contractAddress: string, contractAbi: AbiItem[], methodName: string, methodArguments: TronParameters, callValue?: string, feeLimit?: number): TronTransactionConfig;
30
33
  }
@@ -25,7 +25,7 @@ class TronWeb3Pure extends common_web3_pure_1.CommonWeb3Pure {
25
25
  * @returns An ABI encoded function call. Means function signature + parameters.
26
26
  */
27
27
  static encodeFunctionCall(contractAbi, methodName, methodArguments) {
28
- const methodSignature = contractAbi.find(abiItem => abiItem.name === methodName);
28
+ const methodSignature = contractAbi.find((abiItem) => abiItem.name === methodName);
29
29
  if (methodSignature === undefined) {
30
30
  throw Error('No such method in abi');
31
31
  }
@@ -50,7 +50,7 @@ class TronWeb3Pure extends common_web3_pure_1.CommonWeb3Pure {
50
50
  return this.flattenParameterToPrimitive(decodedParam);
51
51
  }
52
52
  static flattenTypesToString(abiInputs) {
53
- return (abiInputs?.map(abiInput => {
53
+ return (abiInputs?.map((abiInput) => {
54
54
  if (abiInput.type === 'tuple') {
55
55
  const flattenedComponents = this.flattenTypesToString(abiInput.components);
56
56
  return `(${flattenedComponents.join(',')})`;
@@ -59,7 +59,7 @@ class TronWeb3Pure extends common_web3_pure_1.CommonWeb3Pure {
59
59
  }) || []);
60
60
  }
61
61
  static flattenTypesToArray(abiInputs) {
62
- return (abiInputs?.map(abiInput => {
62
+ return (abiInputs?.map((abiInput) => {
63
63
  if (abiInput.type === 'tuple') {
64
64
  return this.flattenTypesToArray(abiInput.components);
65
65
  }
@@ -69,7 +69,7 @@ class TronWeb3Pure extends common_web3_pure_1.CommonWeb3Pure {
69
69
  static flattenParameters(parameters) {
70
70
  const types = [];
71
71
  const values = [];
72
- parameters.forEach(parameter => {
72
+ parameters.forEach((parameter) => {
73
73
  if (parameter.type === 'tuple') {
74
74
  const [tupleTypes, tupleValues] = this.flattenParameters(parameter.value);
75
75
  types.push(tupleTypes);
@@ -83,7 +83,9 @@ class TronWeb3Pure extends common_web3_pure_1.CommonWeb3Pure {
83
83
  return [types, values];
84
84
  }
85
85
  static flattenParameterToPrimitive(parameter) {
86
- if (typeof parameter === 'number' || parameter instanceof bignumber_1.BigNumber || typeof parameter === 'bigint') {
86
+ if (typeof parameter === 'number' ||
87
+ parameter instanceof bignumber_1.BigNumber ||
88
+ typeof parameter === 'bigint') {
87
89
  return parameter.toString();
88
90
  }
89
91
  if (typeof parameter === 'string' || typeof parameter === 'boolean') {
@@ -93,9 +95,23 @@ class TronWeb3Pure extends common_web3_pure_1.CommonWeb3Pure {
93
95
  const parameterField = parameter[paramKey];
94
96
  return {
95
97
  ...acc,
96
- [paramKey]: this.flattenParameterToPrimitive(parameterField)
98
+ [paramKey]: this.flattenParameterToPrimitive(parameterField),
97
99
  };
98
100
  }, {});
99
101
  }
102
+ static encodeMethodCall(contractAddress, contractAbi, methodName, methodArguments, callValue, feeLimit) {
103
+ const methodAbi = contractAbi.find((abiItem) => abiItem.name === methodName);
104
+ if (!methodAbi) {
105
+ throw new Error('Encode fail. No method in ABI');
106
+ }
107
+ const signature = `${methodAbi.name}(${this.flattenTypesToString(methodAbi.inputs).join(',')})`;
108
+ return {
109
+ to: contractAddress,
110
+ arguments: methodArguments,
111
+ signature,
112
+ ...(callValue && { callValue }),
113
+ ...(feeLimit && { feeLimit }),
114
+ };
115
+ }
100
116
  }
101
117
  exports.TronWeb3Pure = TronWeb3Pure;