@cryptorubic/web3 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.
Files changed (113) hide show
  1. package/README.md +1 -0
  2. package/package.json +17 -0
  3. package/src/index.d.ts +25 -0
  4. package/src/index.js +27 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/adapter/adapters/abstract-adapter.d.ts +19 -0
  7. package/src/lib/adapter/adapters/abstract-adapter.js +50 -0
  8. package/src/lib/adapter/adapters/abstract-adapter.js.map +1 -0
  9. package/src/lib/adapter/adapters/constants/erc20-token-abi.d.ts +2 -0
  10. package/src/lib/adapter/adapters/constants/erc20-token-abi.js +87 -0
  11. package/src/lib/adapter/adapters/constants/erc20-token-abi.js.map +1 -0
  12. package/src/lib/adapter/adapters/constants/trc-20-contract-abi.d.ts +12 -0
  13. package/src/lib/adapter/adapters/constants/trc-20-contract-abi.js +85 -0
  14. package/src/lib/adapter/adapters/constants/trc-20-contract-abi.js.map +1 -0
  15. package/src/lib/adapter/adapters/constants/tron-multicall-abi.d.ts +2 -0
  16. package/src/lib/adapter/adapters/constants/tron-multicall-abi.js +27 -0
  17. package/src/lib/adapter/adapters/constants/tron-multicall-abi.js.map +1 -0
  18. package/src/lib/adapter/adapters/evm-adapter.d.ts +20 -0
  19. package/src/lib/adapter/adapters/evm-adapter.js +208 -0
  20. package/src/lib/adapter/adapters/evm-adapter.js.map +1 -0
  21. package/src/lib/adapter/adapters/models/evm-adapter-options.d.ts +6 -0
  22. package/src/lib/adapter/adapters/models/evm-adapter-options.js +3 -0
  23. package/src/lib/adapter/adapters/models/evm-adapter-options.js.map +1 -0
  24. package/src/lib/adapter/adapters/solana-adapter.d.ts +15 -0
  25. package/src/lib/adapter/adapters/solana-adapter.js +60 -0
  26. package/src/lib/adapter/adapters/solana-adapter.js.map +1 -0
  27. package/src/lib/adapter/adapters/tron-adapter.d.ts +25 -0
  28. package/src/lib/adapter/adapters/tron-adapter.js +190 -0
  29. package/src/lib/adapter/adapters/tron-adapter.js.map +1 -0
  30. package/src/lib/adapter/blockchain-adapter-factory.service.d.ts +19 -0
  31. package/src/lib/adapter/blockchain-adapter-factory.service.js +86 -0
  32. package/src/lib/adapter/blockchain-adapter-factory.service.js.map +1 -0
  33. package/src/lib/adapter/constants/chain-configs/chain-configs.d.ts +3 -0
  34. package/src/lib/adapter/constants/chain-configs/chain-configs.js +1040 -0
  35. package/src/lib/adapter/constants/chain-configs/chain-configs.js.map +1 -0
  36. package/src/lib/adapter/constants/models/solana-web3.d.ts +26 -0
  37. package/src/lib/adapter/constants/models/solana-web3.js +3 -0
  38. package/src/lib/adapter/constants/models/solana-web3.js.map +1 -0
  39. package/src/lib/adapter/constants/models/viem-chain-type.d.ts +2 -0
  40. package/src/lib/adapter/constants/models/viem-chain-type.js +3 -0
  41. package/src/lib/adapter/constants/models/viem-chain-type.js.map +1 -0
  42. package/src/lib/adapter/constants/models/wallet-provider.d.ts +28 -0
  43. package/src/lib/adapter/constants/models/wallet-provider.js +4 -0
  44. package/src/lib/adapter/constants/models/wallet-provider.js.map +1 -0
  45. package/src/lib/adapter/constants/viem-blockchain-mapping.d.ts +3 -0
  46. package/src/lib/adapter/constants/viem-blockchain-mapping.js +74 -0
  47. package/src/lib/adapter/constants/viem-blockchain-mapping.js.map +1 -0
  48. package/src/lib/utils/constants/changenow-api-blockchain.d.ts +123 -0
  49. package/src/lib/utils/constants/changenow-api-blockchain.js +109 -0
  50. package/src/lib/utils/constants/changenow-api-blockchain.js.map +1 -0
  51. package/src/lib/utils/constants/web3-pure-store.d.ts +3 -0
  52. package/src/lib/utils/constants/web3-pure-store.js +335 -0
  53. package/src/lib/utils/constants/web3-pure-store.js.map +1 -0
  54. package/src/lib/utils/models/abi-types.d.ts +26 -0
  55. package/src/lib/utils/models/abi-types.js +3 -0
  56. package/src/lib/utils/models/abi-types.js.map +1 -0
  57. package/src/lib/utils/models/cn-validation-response.d.ts +5 -0
  58. package/src/lib/utils/models/cn-validation-response.js +3 -0
  59. package/src/lib/utils/models/cn-validation-response.js.map +1 -0
  60. package/src/lib/utils/models/contract-multicall-response.d.ts +5 -0
  61. package/src/lib/utils/models/contract-multicall-response.js +3 -0
  62. package/src/lib/utils/models/contract-multicall-response.js.map +1 -0
  63. package/src/lib/utils/models/evm-transaction-config.d.ts +9 -0
  64. package/src/lib/utils/models/evm-transaction-config.js +3 -0
  65. package/src/lib/utils/models/evm-transaction-config.js.map +1 -0
  66. package/src/lib/utils/models/method-data.d.ts +4 -0
  67. package/src/lib/utils/models/method-data.js +3 -0
  68. package/src/lib/utils/models/method-data.js.map +1 -0
  69. package/src/lib/utils/models/primitive-types.d.ts +7 -0
  70. package/src/lib/utils/models/primitive-types.js +3 -0
  71. package/src/lib/utils/models/primitive-types.js.map +1 -0
  72. package/src/lib/utils/models/tron-block.d.ts +7 -0
  73. package/src/lib/utils/models/tron-block.js +3 -0
  74. package/src/lib/utils/models/tron-block.js.map +1 -0
  75. package/src/lib/utils/models/tron-call.d.ts +5 -0
  76. package/src/lib/utils/models/tron-call.js +3 -0
  77. package/src/lib/utils/models/tron-call.js.map +1 -0
  78. package/src/lib/utils/models/tron-multicall-response.d.ts +4 -0
  79. package/src/lib/utils/models/tron-multicall-response.js +3 -0
  80. package/src/lib/utils/models/tron-multicall-response.js.map +1 -0
  81. package/src/lib/utils/models/tron-parameters.d.ts +4 -0
  82. package/src/lib/utils/models/tron-parameters.js +3 -0
  83. package/src/lib/utils/models/tron-parameters.js.map +1 -0
  84. package/src/lib/utils/models/tron-transaction-config.d.ts +6 -0
  85. package/src/lib/utils/models/tron-transaction-config.js +3 -0
  86. package/src/lib/utils/models/tron-transaction-config.js.map +1 -0
  87. package/src/lib/utils/models/tron-transaction-info.d.ts +15 -0
  88. package/src/lib/utils/models/tron-transaction-info.js +3 -0
  89. package/src/lib/utils/models/tron-transaction-info.js.map +1 -0
  90. package/src/lib/utils/web3-pure.d.ts +16 -0
  91. package/src/lib/utils/web3-pure.js +46 -0
  92. package/src/lib/utils/web3-pure.js.map +1 -0
  93. package/src/lib/utils/web3-types/bitcoin-web3-pure.d.ts +5 -0
  94. package/src/lib/utils/web3-types/bitcoin-web3-pure.js +15 -0
  95. package/src/lib/utils/web3-types/bitcoin-web3-pure.js.map +1 -0
  96. package/src/lib/utils/web3-types/common-web3-pure.d.ts +15 -0
  97. package/src/lib/utils/web3-types/common-web3-pure.js +47 -0
  98. package/src/lib/utils/web3-types/common-web3-pure.js.map +1 -0
  99. package/src/lib/utils/web3-types/evm-web3-pure.d.ts +5 -0
  100. package/src/lib/utils/web3-types/evm-web3-pure.js +15 -0
  101. package/src/lib/utils/web3-types/evm-web3-pure.js.map +1 -0
  102. package/src/lib/utils/web3-types/icp-web3-pure.d.ts +6 -0
  103. package/src/lib/utils/web3-types/icp-web3-pure.js +29 -0
  104. package/src/lib/utils/web3-types/icp-web3-pure.js.map +1 -0
  105. package/src/lib/utils/web3-types/solana-web3-pure.d.ts +5 -0
  106. package/src/lib/utils/web3-types/solana-web3-pure.js +16 -0
  107. package/src/lib/utils/web3-types/solana-web3-pure.js.map +1 -0
  108. package/src/lib/utils/web3-types/ton-web3-pure.d.ts +4 -0
  109. package/src/lib/utils/web3-types/ton-web3-pure.js +13 -0
  110. package/src/lib/utils/web3-types/ton-web3-pure.js.map +1 -0
  111. package/src/lib/utils/web3-types/tron-web3-pure.d.ts +38 -0
  112. package/src/lib/utils/web3-types/tron-web3-pure.js +117 -0
  113. package/src/lib/utils/web3-types/tron-web3-pure.js.map +1 -0
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # web3
package/package.json ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "@cryptorubic/web3",
3
+ "version": "0.0.1",
4
+ "dependencies": {
5
+ "tslib": "^2.3.0"
6
+ },
7
+ "type": "commonjs",
8
+ "main": "./src/index.js",
9
+ "typings": "./src/index.d.ts",
10
+ "publishConfig": {
11
+ "access": "public"
12
+ },
13
+ "author": {
14
+ "name": "Sleta Dmitrii"
15
+ },
16
+ "types": "./src/index.d.ts"
17
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ declare global {
2
+ type Timer = NodeJS.Timer;
3
+ }
4
+ export * from './lib/adapter/blockchain-adapter-factory.service';
5
+ export * from './lib/adapter/constants/models/solana-web3';
6
+ export * from './lib/adapter/constants/models/viem-chain-type';
7
+ export * from './lib/adapter/constants/models/wallet-provider';
8
+ export * from './lib/adapter/constants/chain-configs/chain-configs';
9
+ export * from './lib/adapter/constants/viem-blockchain-mapping';
10
+ export * from './lib/adapter/adapters/constants/erc20-token-abi';
11
+ export * from './lib/adapter/adapters/constants/trc-20-contract-abi';
12
+ export * from './lib/adapter/adapters/constants/tron-multicall-abi';
13
+ export * from './lib/adapter/adapters/models/evm-adapter-options';
14
+ export * from './lib/adapter/adapters/abstract-adapter';
15
+ export * from './lib/adapter/adapters/evm-adapter';
16
+ export * from './lib/adapter/adapters/solana-adapter';
17
+ export * from './lib/adapter/adapters/tron-adapter';
18
+ export * from './lib/utils/web3-pure';
19
+ export * from './lib/utils/models/evm-transaction-config';
20
+ export * from './lib/utils/web3-types/bitcoin-web3-pure';
21
+ export * from './lib/utils/web3-types/common-web3-pure';
22
+ export * from './lib/utils/web3-types/evm-web3-pure';
23
+ export * from './lib/utils/web3-types/icp-web3-pure';
24
+ export * from './lib/utils/web3-types/solana-web3-pure';
25
+ export * from './lib/utils/web3-types/tron-web3-pure';
package/src/index.js ADDED
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./lib/adapter/blockchain-adapter-factory.service"), exports);
5
+ tslib_1.__exportStar(require("./lib/adapter/constants/models/solana-web3"), exports);
6
+ tslib_1.__exportStar(require("./lib/adapter/constants/models/viem-chain-type"), exports);
7
+ tslib_1.__exportStar(require("./lib/adapter/constants/models/wallet-provider"), exports);
8
+ tslib_1.__exportStar(require("./lib/adapter/constants/chain-configs/chain-configs"), exports);
9
+ tslib_1.__exportStar(require("./lib/adapter/constants/viem-blockchain-mapping"), exports);
10
+ tslib_1.__exportStar(require("./lib/adapter/adapters/constants/erc20-token-abi"), exports);
11
+ tslib_1.__exportStar(require("./lib/adapter/adapters/constants/trc-20-contract-abi"), exports);
12
+ tslib_1.__exportStar(require("./lib/adapter/adapters/constants/tron-multicall-abi"), exports);
13
+ tslib_1.__exportStar(require("./lib/adapter/adapters/models/evm-adapter-options"), exports);
14
+ tslib_1.__exportStar(require("./lib/adapter/adapters/abstract-adapter"), exports);
15
+ tslib_1.__exportStar(require("./lib/adapter/adapters/evm-adapter"), exports);
16
+ tslib_1.__exportStar(require("./lib/adapter/adapters/solana-adapter"), exports);
17
+ tslib_1.__exportStar(require("./lib/adapter/adapters/tron-adapter"), exports);
18
+ // utils aka web3pure
19
+ tslib_1.__exportStar(require("./lib/utils/web3-pure"), exports);
20
+ tslib_1.__exportStar(require("./lib/utils/models/evm-transaction-config"), exports);
21
+ tslib_1.__exportStar(require("./lib/utils/web3-types/bitcoin-web3-pure"), exports);
22
+ tslib_1.__exportStar(require("./lib/utils/web3-types/common-web3-pure"), exports);
23
+ tslib_1.__exportStar(require("./lib/utils/web3-types/evm-web3-pure"), exports);
24
+ tslib_1.__exportStar(require("./lib/utils/web3-types/icp-web3-pure"), exports);
25
+ tslib_1.__exportStar(require("./lib/utils/web3-types/solana-web3-pure"), exports);
26
+ tslib_1.__exportStar(require("./lib/utils/web3-types/tron-web3-pure"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/web3/src/index.ts"],"names":[],"mappings":";;;AAEA,2FAAiE;AACjE,qFAA2D;AAC3D,yFAA+D;AAC/D,yFAA+D;AAC/D,8FAAoE;AACpE,0FAAgE;AAChE,2FAAiE;AACjE,+FAAqE;AACrE,8FAAoE;AACpE,4FAAkE;AAClE,kFAAwD;AACxD,6EAAmD;AACnD,gFAAsD;AACtD,8EAAoD;AAEpD,qBAAqB;AACrB,gEAAsC;AACtC,oFAA0D;AAC1D,mFAAyD;AACzD,kFAAwD;AACxD,+EAAqD;AACrD,+EAAqD;AACrD,kFAAwD;AACxD,gFAAsD"}
@@ -0,0 +1,19 @@
1
+ import BigNumber from "bignumber.js";
2
+ import { ICustomLogger, Token, TokenAmount, BlockchainName } from "@cryptorubic/core";
3
+ export declare abstract class AbstractAdapter<P, W, B extends BlockchainName> {
4
+ protected readonly logger?: ICustomLogger;
5
+ protected readonly blockchain: B;
6
+ private _public;
7
+ protected set public(value: P | null);
8
+ get public(): P;
9
+ private _wallet;
10
+ set wallet(value: W | null);
11
+ get wallet(): W;
12
+ protected constructor(blockchain: B, logger?: ICustomLogger);
13
+ abstract callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token<BlockchainName>[]>;
14
+ needPreswapAction(contractAddress: string, tokenAddress: string, walletAddress: string, amount: string | BigNumber): Promise<boolean>;
15
+ handlePreswap(contractAddress: string, walletAddress: string, tokenAmount: TokenAmount): Promise<void>;
16
+ abstract read<T>(...args: unknown[]): Promise<T>;
17
+ abstract write(...args: unknown[]): Promise<string>;
18
+ static getRandomBytes(bytes: number): string;
19
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractAdapter = void 0;
4
+ const viem_1 = require("viem");
5
+ class AbstractAdapter {
6
+ set public(value) {
7
+ this._public = value;
8
+ }
9
+ get public() {
10
+ if (!this._public) {
11
+ const msg = 'Trying to access undefined client';
12
+ this.logger?.customLog(msg);
13
+ throw new Error(msg);
14
+ }
15
+ return this._public;
16
+ }
17
+ set wallet(value) {
18
+ this._wallet = value;
19
+ }
20
+ get wallet() {
21
+ if (!this._wallet) {
22
+ const msg = 'Trying to access undefined client';
23
+ this.logger?.customLog(msg);
24
+ throw new Error(msg);
25
+ }
26
+ return this._wallet;
27
+ }
28
+ constructor(blockchain, logger) {
29
+ this._public = null;
30
+ this._wallet = null;
31
+ this.blockchain = blockchain;
32
+ if (logger) {
33
+ this.logger = logger;
34
+ }
35
+ }
36
+ needPreswapAction(contractAddress, tokenAddress, walletAddress, amount) {
37
+ return Promise.resolve(false);
38
+ }
39
+ ;
40
+ handlePreswap(contractAddress, walletAddress, tokenAmount) {
41
+ return Promise.resolve();
42
+ }
43
+ ;
44
+ static getRandomBytes(bytes) {
45
+ const randomBytes = crypto.getRandomValues(new Uint8Array(bytes));
46
+ return (0, viem_1.bytesToHex)(randomBytes);
47
+ }
48
+ }
49
+ exports.AbstractAdapter = AbstractAdapter;
50
+ //# sourceMappingURL=abstract-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-adapter.js","sourceRoot":"","sources":["../../../../../../../packages/web3/src/lib/adapter/adapters/abstract-adapter.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAIlC,MAAsB,eAAe;IAOjC,IAAc,MAAM,CAAC,KAAe;QAChC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAW,MAAM;QACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,mCAAmC,CAAC;YAChD,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAID,IAAW,MAAM,CAAC,KAAe;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAW,MAAM;QACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,mCAAmC,CAAC;YAChD,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,YAAsB,UAAa,EAAG,MAAsB;QA9BpD,YAAO,GAAa,IAAI,CAAC;QAezB,YAAO,GAAa,IAAI,CAAC;QAgB7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;IACL,CAAC;IAIM,iBAAiB,CACpB,eAAuB,EACvB,YAAoB,EACpB,aAAqB,EACrB,MAA0B;QAE1B,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IAAA,CAAC;IAEK,aAAa,CAChB,eAAuB,EACvB,aAAqB,EACrB,WAAwB;QAExB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAAA,CAAC;IAMK,MAAM,CAAC,cAAc,CAAC,KAAa;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,OAAO,IAAA,iBAAU,EAAC,WAAW,CAAC,CAAC;IACnC,CAAC;CACJ;AArED,0CAqEC"}
@@ -0,0 +1,2 @@
1
+ import { Abi } from 'viem';
2
+ export declare const erc20TokenAbi: Abi;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.erc20TokenAbi = void 0;
4
+ exports.erc20TokenAbi = [
5
+ {
6
+ constant: true,
7
+ inputs: [],
8
+ name: 'name',
9
+ outputs: [{ name: '', type: 'string' }],
10
+ payable: false,
11
+ stateMutability: 'view',
12
+ type: 'function'
13
+ },
14
+ {
15
+ constant: false,
16
+ inputs: [
17
+ { name: '_spender', type: 'address' },
18
+ { name: '_value', type: 'uint256' }
19
+ ],
20
+ name: 'approve',
21
+ outputs: [],
22
+ payable: false,
23
+ stateMutability: 'nonpayable',
24
+ type: 'function'
25
+ },
26
+ {
27
+ constant: true,
28
+ inputs: [],
29
+ name: 'totalSupply',
30
+ outputs: [{ name: '', type: 'uint256' }],
31
+ payable: false,
32
+ stateMutability: 'view',
33
+ type: 'function'
34
+ },
35
+ {
36
+ constant: true,
37
+ inputs: [],
38
+ name: 'decimals',
39
+ outputs: [{ name: '', type: 'uint256' }],
40
+ payable: false,
41
+ stateMutability: 'view',
42
+ type: 'function'
43
+ },
44
+ {
45
+ constant: true,
46
+ inputs: [{ name: 'who', type: 'address' }],
47
+ name: 'balanceOf',
48
+ outputs: [{ name: '', type: 'uint256' }],
49
+ payable: false,
50
+ stateMutability: 'view',
51
+ type: 'function'
52
+ },
53
+ {
54
+ constant: true,
55
+ inputs: [],
56
+ name: 'symbol',
57
+ outputs: [{ name: '', type: 'string' }],
58
+ payable: false,
59
+ stateMutability: 'view',
60
+ type: 'function'
61
+ },
62
+ {
63
+ constant: false,
64
+ inputs: [
65
+ { name: '_to', type: 'address' },
66
+ { name: '_value', type: 'uint256' }
67
+ ],
68
+ name: 'transfer',
69
+ outputs: [],
70
+ payable: false,
71
+ stateMutability: 'nonpayable',
72
+ type: 'function'
73
+ },
74
+ {
75
+ constant: true,
76
+ inputs: [
77
+ { name: '_owner', type: 'address' },
78
+ { name: '_spender', type: 'address' }
79
+ ],
80
+ name: 'allowance',
81
+ outputs: [{ name: 'remaining', type: 'uint256' }],
82
+ payable: false,
83
+ stateMutability: 'view',
84
+ type: 'function'
85
+ }
86
+ ];
87
+ //# sourceMappingURL=erc20-token-abi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc20-token-abi.js","sourceRoot":"","sources":["../../../../../../../../packages/web3/src/lib/adapter/adapters/constants/erc20-token-abi.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAQ;IAC9B;QACI,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACvC,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE;YACJ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;YACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;SACtC;QACD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACnB;IACD;QACI,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC1C,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACvC,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE;YACJ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;YAChC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;SACtC;QACD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACnB;IACD;QACI,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;SACxC;QACD,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACjD,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACnB;CACK,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const TRC20_CONTRACT_ABI: {
2
+ inputs: {
3
+ name: string;
4
+ type: string;
5
+ }[];
6
+ name: string;
7
+ outputs: {
8
+ type: string;
9
+ }[];
10
+ stateMutability: string;
11
+ type: string;
12
+ }[];
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TRC20_CONTRACT_ABI = void 0;
4
+ exports.TRC20_CONTRACT_ABI = [
5
+ {
6
+ inputs: [],
7
+ name: 'symbol',
8
+ outputs: [{ type: 'string' }],
9
+ stateMutability: 'view',
10
+ type: 'function'
11
+ },
12
+ {
13
+ inputs: [
14
+ { name: 'owner', type: 'address' },
15
+ { name: 'spender', type: 'address' }
16
+ ],
17
+ name: 'allowance',
18
+ outputs: [{ type: 'uint256' }],
19
+ stateMutability: 'view',
20
+ type: 'function'
21
+ },
22
+ {
23
+ inputs: [
24
+ { name: 'spender', type: 'address' },
25
+ { name: 'value', type: 'uint256' }
26
+ ],
27
+ name: 'approve',
28
+ outputs: [{ type: 'bool' }],
29
+ stateMutability: 'nonpayable',
30
+ type: 'function'
31
+ },
32
+ {
33
+ inputs: [{ name: 'account', type: 'address' }],
34
+ name: 'balanceOf',
35
+ outputs: [{ type: 'uint256' }],
36
+ stateMutability: 'view',
37
+ type: 'function'
38
+ },
39
+ {
40
+ inputs: [],
41
+ name: 'decimals',
42
+ outputs: [{ type: 'uint8' }],
43
+ stateMutability: 'view',
44
+ type: 'function'
45
+ },
46
+ {
47
+ inputs: [],
48
+ name: 'name',
49
+ outputs: [{ type: 'string' }],
50
+ stateMutability: 'view',
51
+ type: 'function'
52
+ },
53
+ {
54
+ inputs: [],
55
+ name: 'totalSupply',
56
+ outputs: [{ type: 'uint256' }],
57
+ stateMutability: 'view',
58
+ type: 'function'
59
+ },
60
+ {
61
+ inputs: [
62
+ { name: 'to', type: 'address' },
63
+ { name: 'value', type: 'uint256' }
64
+ ],
65
+ name: 'transfer',
66
+ outputs: [{ type: 'bool' }],
67
+ stateMutability: 'nonpayable',
68
+ type: 'function'
69
+ },
70
+ {
71
+ inputs: [
72
+ { name: 'from', type: 'address' },
73
+ { name: 'to', type: 'address' },
74
+ {
75
+ name: 'value',
76
+ type: 'uint256'
77
+ }
78
+ ],
79
+ name: 'transferFrom',
80
+ outputs: [{ type: 'bool' }],
81
+ stateMutability: 'nonpayable',
82
+ type: 'function'
83
+ }
84
+ ];
85
+ //# sourceMappingURL=trc-20-contract-abi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trc-20-contract-abi.js","sourceRoot":"","sources":["../../../../../../../../packages/web3/src/lib/adapter/adapters/constants/trc-20-contract-abi.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG;IAC9B;QACI,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,MAAM,EAAE;YACJ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;SACvC;QACD,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,MAAM,EAAE;YACJ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;SACrC;QACD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACnB;IACD;QACI,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC5B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,MAAM,EAAE;YACJ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;YAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;SACrC;QACD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACnB;IACD;QACI,MAAM,EAAE;YACJ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;YAC/B;gBACI,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACnB;CACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { AbiItem } from 'web3-utils';
2
+ export declare const TRON_MULTICALL_ABI: AbiItem[];
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TRON_MULTICALL_ABI = void 0;
4
+ exports.TRON_MULTICALL_ABI = [
5
+ {
6
+ inputs: [
7
+ {
8
+ components: [
9
+ { internalType: 'address', name: 'target', type: 'address' },
10
+ { internalType: 'bytes', name: 'callData', type: 'bytes' }
11
+ ],
12
+ internalType: 'struct Multicall.Call[]',
13
+ name: 'calls',
14
+ type: 'tuple[]'
15
+ }
16
+ ],
17
+ name: 'aggregateViewCalls',
18
+ outputs: [
19
+ { internalType: 'uint256', name: 'blockNumber', type: 'uint256' },
20
+ { internalType: 'bytes[]', name: 'returnData', type: 'bytes[]' },
21
+ { internalType: 'bool[]', name: 'results', type: 'bool[]' }
22
+ ],
23
+ stateMutability: 'view',
24
+ type: 'function'
25
+ }
26
+ ];
27
+ //# sourceMappingURL=tron-multicall-abi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tron-multicall-abi.js","sourceRoot":"","sources":["../../../../../../../../packages/web3/src/lib/adapter/adapters/constants/tron-multicall-abi.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAG;IAC9B;QACI,MAAM,EAAE;YACJ;gBACI,UAAU,EAAE;oBACR,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC5D,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;iBAC7D;gBACD,YAAY,EAAE,yBAAyB;gBACvC,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE;YACL,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;YACjE,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;YAChE,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC9D;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACnB;CACS,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { Abi, MulticallResponse, MulticallParameters, PublicActions, PublicClient, WalletClient, WalletActions } from 'viem';
2
+ import { AbstractAdapter } from './abstract-adapter';
3
+ import { EvmBlockchainName, ICustomLogger, Token, TokenAmount } from '@cryptorubic/core';
4
+ import { EvmAdapterOptions } from "./models/evm-adapter-options";
5
+ import { EvmTransactionConfig } from "../../utils/models/evm-transaction-config";
6
+ export declare class EvmAdapter extends AbstractAdapter<PublicActions & PublicClient, WalletClient & WalletActions, EvmBlockchainName> {
7
+ needPreswapAction(contractAddress: string, tokenAddress: string, walletAddress: string, amount: string): Promise<boolean>;
8
+ handlePreswap(contractAddress: string, walletAddress: string, tokenAmount: TokenAmount): Promise<void>;
9
+ constructor(adapterOptions: EvmAdapterOptions, logger?: ICustomLogger);
10
+ protected createPublicClient(rpcList: string[]): PublicActions & PublicClient | null;
11
+ read<T>(address: string, abi: Abi, method: string, methodArgs?: unknown[]): Promise<T>;
12
+ writeContract(address: string, abi: Abi, method: string, value?: string, methodArgs?: unknown[]): Promise<string>;
13
+ write(address: string, to: string, value: string, data: string): Promise<string>;
14
+ multicallByContract<T>(contracts: MulticallParameters, allowErrors?: boolean): Promise<MulticallResponse<T>[]>;
15
+ multicallByAddress<T>(address: string, abi: Abi, method: string, methodArgs?: unknown[][], allowErrors?: boolean): Promise<MulticallResponse<T>[]>;
16
+ static encodeMethodCall(contractAddress: string, contractAbi: Abi, method: string, parameters?: unknown[], value?: string): EvmTransactionConfig;
17
+ simulateTransaction(config: EvmTransactionConfig, from: string): Promise<void>;
18
+ callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token<EvmBlockchainName>[]>;
19
+ getGasPrice(): Promise<string>;
20
+ }
@@ -0,0 +1,208 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EvmAdapter = void 0;
4
+ const viem_1 = require("viem");
5
+ const viem_blockchain_mapping_1 = require("../constants/viem-blockchain-mapping");
6
+ const erc20_token_abi_1 = require("./constants/erc20-token-abi");
7
+ const abstract_adapter_1 = require("./abstract-adapter");
8
+ const core_1 = require("@cryptorubic/core");
9
+ const bignumber_js_1 = require("bignumber.js");
10
+ const web3_pure_1 = require("../../utils/web3-pure");
11
+ class EvmAdapter extends abstract_adapter_1.AbstractAdapter {
12
+ async needPreswapAction(contractAddress, tokenAddress, walletAddress, amount) {
13
+ // this.checkWalletConnected();
14
+ const isNative = web3_pure_1.Web3Pure.isNativeAddress(this.blockchain, tokenAddress);
15
+ if (isNative && this.blockchain !== core_1.BLOCKCHAIN_NAME.METIS) {
16
+ return false;
17
+ }
18
+ const fromTokenAddress = isNative && this.blockchain === core_1.BLOCKCHAIN_NAME.METIS
19
+ ? '0xdeaddeaddeaddeaddeaddeaddeaddeaddead0000'
20
+ : tokenAddress;
21
+ try {
22
+ const allowance = await this.read(fromTokenAddress, erc20_token_abi_1.erc20TokenAbi, 'allowance', [walletAddress, contractAddress]);
23
+ return new bignumber_js_1.default(allowance).gt(amount);
24
+ }
25
+ catch (err) {
26
+ console.error(err);
27
+ return false;
28
+ }
29
+ }
30
+ async handlePreswap(contractAddress, walletAddress, tokenAmount) {
31
+ // this.checkWalletConnected();
32
+ // await this.checkBlockchainCorrect();
33
+ const approveAmount = this.blockchain === core_1.BLOCKCHAIN_NAME.GNOSIS ||
34
+ this.blockchain === core_1.BLOCKCHAIN_NAME.CRONOS
35
+ ? tokenAmount.stringWeiAmount
36
+ : tokenAmount.stringTokenAmount;
37
+ const isNative = web3_pure_1.Web3Pure.isNativeAddress(this.blockchain, tokenAmount.address);
38
+ const fromTokenAddress = isNative && tokenAmount.blockchain === core_1.BLOCKCHAIN_NAME.METIS
39
+ ? '0xdeaddeaddeaddeaddeaddeaddeaddeaddead0000'
40
+ : tokenAmount.blockchain;
41
+ await this.writeContract(fromTokenAddress, erc20_token_abi_1.erc20TokenAbi, 'approve', '0', [approveAmount]);
42
+ }
43
+ constructor(adapterOptions, logger) {
44
+ super(adapterOptions.blockchain, logger);
45
+ this.public = this.createPublicClient(adapterOptions.rpcList);
46
+ if (adapterOptions?.walletAddress) {
47
+ }
48
+ }
49
+ createPublicClient(rpcList) {
50
+ if (!rpcList?.[0]) {
51
+ this.logger?.customError('RPC list is empty');
52
+ return null;
53
+ }
54
+ const transports = rpcList.map((rpc) => (0, viem_1.http)(rpc, {
55
+ batch: { batchSize: 2000, wait: 16 },
56
+ onFetchResponse: (response) => {
57
+ if ('error' in response) {
58
+ this.logger?.customError('Rpc fetch error', response.error);
59
+ }
60
+ },
61
+ retryCount: 5,
62
+ retryDelay: 100,
63
+ timeout: 5000
64
+ }));
65
+ const chain = viem_blockchain_mapping_1.viemBlockchainMapping[this.blockchain];
66
+ return (0, viem_1.createPublicClient)({
67
+ // @ts-ignore
68
+ chain,
69
+ transport: (0, viem_1.fallback)(transports, {
70
+ rank: true
71
+ })
72
+ });
73
+ }
74
+ async read(address, abi, method, methodArgs = []) {
75
+ const result = await this.public.readContract({
76
+ abi,
77
+ address: address,
78
+ args: methodArgs,
79
+ functionName: method
80
+ });
81
+ return result;
82
+ }
83
+ async writeContract(address, abi, method, value = '0', methodArgs = []) {
84
+ const result = await this.wallet.writeContract({
85
+ abi,
86
+ address: address,
87
+ account: address,
88
+ args: methodArgs,
89
+ functionName: method,
90
+ chain: this.public.chain,
91
+ value: (0, viem_1.parseEther)(value)
92
+ });
93
+ return result;
94
+ }
95
+ async write(address, to, value, data) {
96
+ const result = await this.wallet.sendTransaction({
97
+ account: address,
98
+ to: to,
99
+ value: (0, viem_1.parseEther)(value),
100
+ data: data,
101
+ chain: this.public.chain
102
+ });
103
+ return result;
104
+ }
105
+ async multicallByContract(contracts, allowErrors = true) {
106
+ const results = await this.public.multicall(contracts);
107
+ const rpcRequestFail = results.every((result) => result?.status === 'failure');
108
+ if (rpcRequestFail) {
109
+ // @ts-ignore
110
+ if (rpcRequestFail?.[0]?.stats === 'failure') {
111
+ // @ts-ignore
112
+ throw new Error(rpcRequestFail?.[0]?.error);
113
+ }
114
+ }
115
+ const hasErrors = results.find((result) => {
116
+ if (result?.error || result.status !== 'success') {
117
+ this.logger?.customWarn('Multicall error', result?.error?.data || result?.error?.message || result?.error);
118
+ return true;
119
+ }
120
+ return false;
121
+ });
122
+ if (hasErrors && !allowErrors) {
123
+ throw new Error('Multicall error');
124
+ }
125
+ return results;
126
+ }
127
+ async multicallByAddress(address, abi, method, methodArgs = [], allowErrors = true) {
128
+ const contract = { abi, address: address, functionName: method };
129
+ const contracts = methodArgs.map((multicallArguments) => ({
130
+ ...contract,
131
+ args: multicallArguments
132
+ }));
133
+ return this.multicallByContract({ contracts }, allowErrors);
134
+ }
135
+ static encodeMethodCall(contractAddress, contractAbi, method, parameters = [], value) {
136
+ try {
137
+ const data = (0, viem_1.encodeFunctionData)({ abi: contractAbi, args: parameters, functionName: method });
138
+ return {
139
+ data: data,
140
+ to: contractAddress,
141
+ value: value || '0'
142
+ };
143
+ }
144
+ catch (err) {
145
+ throw err;
146
+ }
147
+ }
148
+ async simulateTransaction(config, from) {
149
+ try {
150
+ const callParams = {
151
+ account: from,
152
+ data: config.data,
153
+ to: config.to,
154
+ ...(config.value && { value: BigInt(config.value) })
155
+ };
156
+ // @ts-ignore
157
+ await this.core.call(callParams);
158
+ }
159
+ catch (err) {
160
+ this.logger?.customError('Error while simulating transaction', err);
161
+ throw err;
162
+ }
163
+ }
164
+ async callForTokensInfo(tokenAddresses) {
165
+ const nativeTokenIndex = tokenAddresses.findIndex((address) => (0, core_1.compareAddresses)(address, '0x0000000000000000000000000000000000000000'));
166
+ const filteredTokenAddresses = tokenAddresses.filter((_, index) => index !== nativeTokenIndex);
167
+ const contracts = filteredTokenAddresses.flatMap((contractAddress) => {
168
+ const contract = {
169
+ abi: erc20_token_abi_1.erc20TokenAbi,
170
+ address: contractAddress
171
+ };
172
+ return ['decimals', 'symbol', 'name'].map((method) => ({ ...contract, functionName: method }));
173
+ });
174
+ const results = contracts.length ? (await this.multicallByContract({ contracts })) : [];
175
+ const tokens = [];
176
+ for (let i = 0; i < results.length; i += 3) {
177
+ try {
178
+ const decimals = Number(results[i].result);
179
+ const symbol = results[i + 1].result;
180
+ const name = results[i + 2].result;
181
+ const token = new core_1.Token({
182
+ address: filteredTokenAddresses[i / 3],
183
+ blockchain: this.blockchain,
184
+ decimals,
185
+ name,
186
+ symbol
187
+ });
188
+ tokens.push(token);
189
+ }
190
+ catch (err) {
191
+ this.logger?.customError('Error while loading token', err);
192
+ tokens.push(null);
193
+ }
194
+ }
195
+ if (nativeTokenIndex === -1) {
196
+ return tokens.filter(Boolean);
197
+ }
198
+ const blockchainNativeToken = core_1.nativeTokensList[this.blockchain];
199
+ tokens.splice(nativeTokenIndex, 0, blockchainNativeToken);
200
+ return tokens.filter(Boolean);
201
+ }
202
+ async getGasPrice() {
203
+ const bigIntGas = await this.public.getGasPrice();
204
+ return String(bigIntGas);
205
+ }
206
+ }
207
+ exports.EvmAdapter = EvmAdapter;
208
+ //# sourceMappingURL=evm-adapter.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,6 @@
1
+ import { EvmBlockchainName } from "@cryptorubic/core";
2
+ export interface EvmAdapterOptions {
3
+ blockchain: EvmBlockchainName;
4
+ rpcList: string[];
5
+ walletAddress?: string;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=evm-adapter-options.js.map