@cryptorubic/web3 0.0.35 → 0.0.37-alpha-1212.0

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 (293) hide show
  1. package/package.json +42 -15
  2. package/src/index.d.ts +130 -20
  3. package/src/index.js +130 -18
  4. package/src/lib/adapter/adapters/adapter-bitcoin/bitcoin-adapter.d.ts +40 -0
  5. package/src/lib/adapter/adapters/adapter-bitcoin/bitcoin-adapter.js +177 -0
  6. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-send-tx-params.d.ts +5 -0
  7. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-psbt-encoded-config.d.ts +5 -0
  8. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-psbt-encoded-config.js +2 -0
  9. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-trade-types.d.ts +7 -0
  10. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-trade-types.js +2 -0
  11. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-transfer-encoded-config.d.ts +6 -0
  12. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-transfer-encoded-config.js +2 -0
  13. package/src/lib/adapter/adapters/adapter-bitcoin/signer/bitcoin-adapter-signer.d.ts +17 -0
  14. package/src/lib/adapter/adapters/adapter-bitcoin/signer/bitcoin-adapter-signer.js +131 -0
  15. package/src/lib/adapter/adapters/adapter-evm/constants/proxy-hash-errors.d.ts +4 -0
  16. package/src/lib/adapter/adapters/adapter-evm/constants/proxy-hash-errors.js +705 -0
  17. package/src/lib/adapter/adapters/adapter-evm/evm-adapter.d.ts +120 -0
  18. package/src/lib/adapter/adapters/adapter-evm/evm-adapter.js +498 -0
  19. package/src/lib/adapter/adapters/adapter-evm/models/evm-send-tx-params.d.ts +38 -0
  20. package/src/lib/adapter/adapters/adapter-evm/models/evm-send-tx-params.js +2 -0
  21. package/src/lib/adapter/adapters/adapter-evm/signer/evm-adapter-signer.d.ts +53 -0
  22. package/src/lib/adapter/adapters/adapter-evm/signer/evm-adapter-signer.js +263 -0
  23. package/src/lib/adapter/adapters/adapter-evm/utils/parse-evm-error.d.ts +12 -0
  24. package/src/lib/adapter/adapters/adapter-evm/utils/parse-evm-error.js +70 -0
  25. package/src/lib/adapter/adapters/adapter-solana/models/solana-send-tx-params.d.ts +16 -0
  26. package/src/lib/adapter/adapters/adapter-solana/models/solana-send-tx-params.js +2 -0
  27. package/src/lib/adapter/adapters/adapter-solana/services/solana-tokens-service.d.ts +22 -0
  28. package/src/lib/adapter/adapters/adapter-solana/services/solana-tokens-service.js +138 -0
  29. package/src/lib/adapter/adapters/adapter-solana/signer/solana-adapter-signer.d.ts +17 -0
  30. package/src/lib/adapter/adapters/adapter-solana/signer/solana-adapter-signer.js +87 -0
  31. package/src/lib/adapter/adapters/adapter-solana/solana-adapter.d.ts +49 -0
  32. package/src/lib/adapter/adapters/adapter-solana/solana-adapter.js +231 -0
  33. package/src/lib/adapter/adapters/adapter-stellar/constants/fake-stellar-wallet.d.ts +1 -0
  34. package/src/lib/adapter/adapters/adapter-stellar/constants/fake-stellar-wallet.js +4 -0
  35. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-client.d.ts +2 -0
  36. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-client.js +2 -0
  37. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-rpc-provider.d.ts +6 -0
  38. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-rpc-provider.js +2 -0
  39. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-send-tx-params.d.ts +8 -0
  40. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-send-tx-params.js +2 -0
  41. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-wallet.d.ts +87 -0
  42. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-wallet.js +2 -0
  43. package/src/lib/adapter/adapters/adapter-stellar/signer/stellar-adapter-signer.d.ts +18 -0
  44. package/src/lib/adapter/adapters/adapter-stellar/signer/stellar-adapter-signer.js +75 -0
  45. package/src/lib/adapter/adapters/adapter-stellar/stellar-adapter.d.ts +54 -0
  46. package/src/lib/adapter/adapters/adapter-stellar/stellar-adapter.js +253 -0
  47. package/src/lib/adapter/adapters/adapter-sui/models/sui-send-tx-params.d.ts +8 -0
  48. package/src/lib/adapter/adapters/adapter-sui/models/sui-send-tx-params.js +2 -0
  49. package/src/lib/adapter/adapters/adapter-sui/signer/sui-adapter-signer.d.ts +17 -0
  50. package/src/lib/adapter/adapters/adapter-sui/signer/sui-adapter-signer.js +55 -0
  51. package/src/lib/adapter/adapters/adapter-sui/sui-adapter.d.ts +32 -0
  52. package/src/lib/adapter/adapters/adapter-sui/sui-adapter.js +111 -0
  53. package/src/lib/adapter/adapters/adapter-ton/models/ton-send-tx-params.d.ts +26 -0
  54. package/src/lib/adapter/adapters/adapter-ton/models/ton-send-tx-params.js +2 -0
  55. package/src/lib/adapter/adapters/{utils → adapter-ton/services}/ton-api.service.d.ts +8 -7
  56. package/src/lib/adapter/adapters/{utils → adapter-ton/services}/ton-api.service.js +39 -56
  57. package/src/lib/adapter/adapters/adapter-ton/signer/ton-adapter-signer.d.ts +43 -0
  58. package/src/lib/adapter/adapters/adapter-ton/signer/ton-adapter-signer.js +166 -0
  59. package/src/lib/adapter/adapters/adapter-ton/ton-adapter.d.ts +32 -0
  60. package/src/lib/adapter/adapters/adapter-ton/ton-adapter.js +104 -0
  61. package/src/lib/adapter/adapters/adapter-tron/models/tron-send-tx-params.d.ts +13 -0
  62. package/src/lib/adapter/adapters/adapter-tron/models/tron-send-tx-params.js +2 -0
  63. package/src/lib/adapter/adapters/adapter-tron/models/tron-transfer-tx-params.d.ts +7 -0
  64. package/src/lib/adapter/adapters/adapter-tron/models/tron-transfer-tx-params.js +2 -0
  65. package/src/lib/adapter/adapters/adapter-tron/models/tron-web-provider.d.ts +4 -0
  66. package/src/lib/adapter/adapters/adapter-tron/models/tron-web-provider.js +2 -0
  67. package/src/lib/adapter/adapters/adapter-tron/signer/tron-adapter-signer.d.ts +19 -0
  68. package/src/lib/adapter/adapters/adapter-tron/signer/tron-adapter-signer.js +81 -0
  69. package/src/lib/adapter/adapters/adapter-tron/tron-adapter.d.ts +57 -0
  70. package/src/lib/adapter/adapters/{tron-adapter.js → adapter-tron/tron-adapter.js} +142 -69
  71. package/src/lib/adapter/adapters/adapter-tron/utils/parse-tron-error.d.ts +2 -0
  72. package/src/lib/adapter/adapters/adapter-tron/utils/parse-tron-error.js +20 -0
  73. package/src/lib/adapter/adapters/common/abstract-adapter.d.ts +84 -0
  74. package/src/lib/adapter/adapters/common/abstract-adapter.js +82 -0
  75. package/src/lib/adapter/adapters/common/signer/abstract-adapter-signer.d.ts +22 -0
  76. package/src/lib/adapter/adapters/common/signer/abstract-adapter-signer.js +42 -0
  77. package/src/lib/adapter/adapters/constants/possible-errors.d.ts +1 -0
  78. package/src/lib/adapter/adapters/constants/possible-errors.js +14 -0
  79. package/src/lib/adapter/adapters/constants/tron-multicall-abi.d.ts +1 -1
  80. package/src/lib/adapter/adapters/constants/uni-v3-permit-abi.d.ts +2 -0
  81. package/src/lib/adapter/adapters/constants/uni-v3-permit-abi.js +72 -0
  82. package/src/lib/adapter/adapters/models/approve-adapter.d.ts +16 -8
  83. package/src/lib/adapter/adapters/models/approve-adapter.js +4 -0
  84. package/src/lib/adapter/adapters/models/basic-transaction-options.d.ts +7 -0
  85. package/src/lib/adapter/adapters/models/basic-transaction-options.js +2 -0
  86. package/src/lib/adapter/adapters/models/bitcoin-user-address-info.d.ts +53 -0
  87. package/src/lib/adapter/adapters/models/bitcoin-user-address-info.js +2 -0
  88. package/src/lib/adapter/adapters/models/btc-wallet-provider.d.ts +10 -0
  89. package/src/lib/adapter/adapters/models/btc-wallet-provider.js +2 -0
  90. package/src/lib/adapter/adapters/models/evm-adapter-options.d.ts +1 -1
  91. package/src/lib/adapter/adapters/models/evm-web3-public-models/batch-call.d.ts +5 -0
  92. package/src/lib/adapter/adapters/models/evm-web3-public-models/batch-call.js +2 -0
  93. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-call.d.ts +4 -0
  94. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-call.js +2 -0
  95. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-multicall-response.d.ts +4 -0
  96. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-multicall-response.js +2 -0
  97. package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price-viem.d.ts +18 -0
  98. package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price-viem.js +2 -0
  99. package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price.js +2 -0
  100. package/src/lib/adapter/adapters/models/evm-web3-public-models/permit2-contract-types.d.ts +10 -0
  101. package/src/lib/adapter/adapters/models/evm-web3-public-models/permit2-contract-types.js +2 -0
  102. package/src/lib/adapter/adapters/models/evm-web3-public-models/rpc-response.d.ts +5 -0
  103. package/src/lib/adapter/adapters/models/evm-web3-public-models/rpc-response.js +2 -0
  104. package/src/lib/adapter/adapters/models/old-features-models/contract-params.d.ts +23 -0
  105. package/src/lib/adapter/adapters/models/old-features-models/contract-params.js +2 -0
  106. package/src/lib/adapter/adapters/models/old-features-models/encode-transaction-options.d.ts +32 -0
  107. package/src/lib/adapter/adapters/models/old-features-models/encode-transaction-options.js +2 -0
  108. package/src/lib/adapter/adapters/models/old-features-models/is-deflation-token.d.ts +6 -0
  109. package/src/lib/adapter/adapters/models/old-features-models/is-deflation-token.js +2 -0
  110. package/src/lib/adapter/adapters/models/old-features-models/non-evm-chain-address-correct-response.d.ts +5 -0
  111. package/src/lib/adapter/adapters/models/old-features-models/non-evm-chain-address-correct-response.js +2 -0
  112. package/src/lib/adapter/adapters/models/old-features-models/swap-transaction-options.d.ts +65 -0
  113. package/src/lib/adapter/adapters/models/old-features-models/swap-transaction-options.js +2 -0
  114. package/src/lib/adapter/adapters/models/permit2-contract-types.d.ts +1 -0
  115. package/src/lib/adapter/adapters/models/permit2-contract-types.js +2 -0
  116. package/src/lib/adapter/adapters/models/solana-web3-types.d.ts +60 -0
  117. package/src/lib/adapter/adapters/models/solana-web3-types.js +2 -0
  118. package/src/lib/adapter/adapters/models/status-manager-models/tx-status-data.d.ts +8 -0
  119. package/src/lib/adapter/adapters/models/status-manager-models/tx-status-data.js +2 -0
  120. package/src/lib/adapter/adapters/models/token-models.d.ts +1 -0
  121. package/src/lib/adapter/adapters/models/token-models.js +2 -0
  122. package/src/lib/adapter/adapters/models/ton-adapter-config.d.ts +2 -2
  123. package/src/lib/adapter/adapters/models/ton-api-config.d.ts +1 -1
  124. package/src/lib/adapter/adapters/models/tonapi-models.d.ts +2 -2
  125. package/src/lib/adapter/adapters/models/web3-public-models/contract-multicall-response.d.ts +5 -0
  126. package/src/lib/adapter/adapters/models/web3-public-models/contract-multicall-response.js +2 -0
  127. package/src/lib/adapter/adapters/models/web3-public-models/method-data.d.ts +4 -0
  128. package/src/lib/adapter/adapters/models/web3-public-models/method-data.js +2 -0
  129. package/src/lib/adapter/adapters/models/web3-public-models/supported-token-field.d.ts +1 -0
  130. package/src/lib/adapter/adapters/models/web3-public-models/supported-token-field.js +2 -0
  131. package/src/lib/adapter/adapters/models/web3-public-models/tx-status.d.ts +13 -0
  132. package/src/lib/adapter/adapters/models/web3-public-models/tx-status.js +15 -0
  133. package/src/lib/adapter/adapters/utils/errors.d.ts +2 -0
  134. package/src/lib/adapter/adapters/utils/errors.js +10 -0
  135. package/src/lib/adapter/adapters/utils/options.d.ts +10 -0
  136. package/src/lib/adapter/adapters/utils/options.js +59 -0
  137. package/src/lib/adapter/adapters/utils/timeout.d.ts +1 -0
  138. package/src/lib/adapter/adapters/utils/timeout.js +15 -0
  139. package/src/lib/adapter/adapters/utils/waitFor.d.ts +1 -0
  140. package/src/lib/adapter/adapters/utils/waitFor.js +6 -0
  141. package/src/lib/adapter/blockchain-adapter-factory.service.d.ts +19 -11
  142. package/src/lib/adapter/blockchain-adapter-factory.service.js +58 -57
  143. package/src/lib/adapter/constants/chain-configs/chain-configs.d.ts +1 -1
  144. package/src/lib/adapter/constants/chain-configs/chain-configs.js +603 -138
  145. package/src/lib/adapter/constants/models/env-type.d.ts +1 -0
  146. package/src/lib/adapter/constants/models/env-type.js +2 -0
  147. package/src/lib/adapter/constants/models/solana-web3.d.ts +1 -1
  148. package/src/lib/adapter/constants/models/wallet-provider.d.ts +9 -3
  149. package/src/lib/adapter/constants/rubic-api-link-mapping.d.ts +2 -0
  150. package/src/lib/adapter/constants/rubic-api-link-mapping.js +16 -0
  151. package/src/lib/adapter/constants/viem-blockchain-mapping.d.ts +1 -1
  152. package/src/lib/adapter/constants/viem-blockchain-mapping.js +16 -7
  153. package/src/lib/adapter/models/create-factory-params.d.ts +24 -0
  154. package/src/lib/adapter/models/create-factory-params.js +2 -0
  155. package/src/lib/errors/blockchain/deflation-token.error.d.ts +11 -0
  156. package/src/lib/errors/blockchain/deflation-token.error.js +16 -0
  157. package/src/lib/errors/blockchain/healthcheck.error.d.ts +8 -0
  158. package/src/lib/errors/blockchain/healthcheck.error.js +15 -0
  159. package/src/lib/errors/blockchain/inactive-account.error.d.ts +4 -0
  160. package/src/lib/errors/blockchain/inactive-account.error.js +11 -0
  161. package/src/lib/errors/blockchain/invalid-address.error.d.ts +8 -0
  162. package/src/lib/errors/blockchain/invalid-address.error.js +15 -0
  163. package/src/lib/errors/blockchain/low-gas.error.d.ts +7 -0
  164. package/src/lib/errors/blockchain/low-gas.error.js +14 -0
  165. package/src/lib/errors/blockchain/transaction-reverted.error.d.ts +7 -0
  166. package/src/lib/errors/blockchain/transaction-reverted.error.js +14 -0
  167. package/src/lib/errors/blockchain/tron-insufficient-native-balance.d.ts +7 -0
  168. package/src/lib/errors/blockchain/tron-insufficient-native-balance.js +14 -0
  169. package/src/lib/errors/blockchain/tron-transaction-expired.d.ts +7 -0
  170. package/src/lib/errors/blockchain/tron-transaction-expired.js +14 -0
  171. package/src/lib/errors/blockchain/user-reject.error.d.ts +7 -0
  172. package/src/lib/errors/blockchain/user-reject.error.js +14 -0
  173. package/src/lib/errors/blockchain/wrong-from-address.error.d.ts +7 -0
  174. package/src/lib/errors/blockchain/wrong-from-address.error.js +14 -0
  175. package/src/lib/errors/blockchain/wrong-receiver-address.error.d.ts +7 -0
  176. package/src/lib/errors/blockchain/wrong-receiver-address.error.js +14 -0
  177. package/src/lib/errors/common/timeout.error.d.ts +4 -0
  178. package/src/lib/errors/common/timeout.error.js +12 -0
  179. package/src/lib/errors/common/tx-reverted-in-chain.error.d.ts +4 -0
  180. package/src/lib/errors/common/tx-reverted-in-chain.error.js +11 -0
  181. package/src/lib/errors/cross-chain/cross-chain-is-unavailable.error.d.ts +7 -0
  182. package/src/lib/errors/cross-chain/cross-chain-is-unavailable.error.js +14 -0
  183. package/src/lib/errors/cross-chain/insufficient-funds-gas-price-value.error.d.ts +7 -0
  184. package/src/lib/errors/cross-chain/insufficient-funds-gas-price-value.error.js +14 -0
  185. package/src/lib/errors/cross-chain/low-to-slippage.error.d.ts +6 -0
  186. package/src/lib/errors/cross-chain/low-to-slippage.error.js +10 -0
  187. package/src/lib/errors/cross-chain/max-gas-price-overflow.error.d.ts +8 -0
  188. package/src/lib/errors/cross-chain/max-gas-price-overflow.error.js +15 -0
  189. package/src/lib/errors/cross-chain/too-low-amount.error.d.ts +7 -0
  190. package/src/lib/errors/cross-chain/too-low-amount.error.js +14 -0
  191. package/src/lib/errors/cross-chain/unsupported-receiver-address.error.d.ts +4 -0
  192. package/src/lib/errors/cross-chain/unsupported-receiver-address.error.js +11 -0
  193. package/src/lib/errors/cross-chain/updated-rates-error.d.ts +10 -0
  194. package/src/lib/errors/cross-chain/updated-rates-error.js +17 -0
  195. package/src/lib/errors/models/rubic-api-error.d.ts +21 -0
  196. package/src/lib/errors/models/rubic-api-error.js +2 -0
  197. package/src/lib/errors/on-chain/on-chain-is-unavailable.error.d.ts +7 -0
  198. package/src/lib/errors/on-chain/on-chain-is-unavailable.error.js +14 -0
  199. package/src/lib/errors/proxy/unapproved-contract-error.d.ts +8 -0
  200. package/src/lib/errors/proxy/unapproved-contract-error.js +15 -0
  201. package/src/lib/errors/proxy/unapproved-method-error.d.ts +8 -0
  202. package/src/lib/errors/proxy/unapproved-method-error.js +15 -0
  203. package/src/lib/errors/proxy/unlisted-error.d.ts +9 -0
  204. package/src/lib/errors/proxy/unlisted-error.js +16 -0
  205. package/src/lib/errors/rubic-sdk.error.d.ts +6 -0
  206. package/src/lib/errors/rubic-sdk.error.js +13 -0
  207. package/src/lib/errors/swap/bridgers-pair-is-unavailable.error.d.ts +7 -0
  208. package/src/lib/errors/swap/bridgers-pair-is-unavailable.error.js +14 -0
  209. package/src/lib/errors/swap/failed-to-check-for-transaction-receipt.error.d.ts +8 -0
  210. package/src/lib/errors/swap/failed-to-check-for-transaction-receipt.error.js +15 -0
  211. package/src/lib/errors/swap/insufficient-funds-oneinch.error.d.ts +9 -0
  212. package/src/lib/errors/swap/insufficient-funds-oneinch.error.js +15 -0
  213. package/src/lib/errors/swap/insufficient-funds.error.d.ts +11 -0
  214. package/src/lib/errors/swap/insufficient-funds.error.js +18 -0
  215. package/src/lib/errors/swap/insufficient-liquidity.error.d.ts +7 -0
  216. package/src/lib/errors/swap/insufficient-liquidity.error.js +14 -0
  217. package/src/lib/errors/swap/lifi-pair-is-unavailable.error.d.ts +7 -0
  218. package/src/lib/errors/swap/lifi-pair-is-unavailable.error.js +14 -0
  219. package/src/lib/errors/swap/low-slippage-deflationary-token.error.d.ts +7 -0
  220. package/src/lib/errors/swap/low-slippage-deflationary-token.error.js +14 -0
  221. package/src/lib/errors/swap/low-slippage.error.d.ts +8 -0
  222. package/src/lib/errors/swap/low-slippage.error.js +15 -0
  223. package/src/lib/errors/swap/max-amount.error.d.ts +7 -0
  224. package/src/lib/errors/swap/max-amount.error.js +14 -0
  225. package/src/lib/errors/swap/max-decimals.error.d.ts +5 -0
  226. package/src/lib/errors/swap/max-decimals.error.js +12 -0
  227. package/src/lib/errors/swap/min-amount.error.d.ts +7 -0
  228. package/src/lib/errors/swap/min-amount.error.js +14 -0
  229. package/src/lib/errors/swap/no-linked-account-erros.d.ts +4 -0
  230. package/src/lib/errors/swap/no-linked-account-erros.js +11 -0
  231. package/src/lib/errors/swap/not-supported-blockchain.d.ts +8 -0
  232. package/src/lib/errors/swap/not-supported-blockchain.js +15 -0
  233. package/src/lib/errors/swap/not-supported-region.d.ts +7 -0
  234. package/src/lib/errors/swap/not-supported-region.js +14 -0
  235. package/src/lib/errors/swap/not-supported-tokens.error.d.ts +7 -0
  236. package/src/lib/errors/swap/not-supported-tokens.error.js +14 -0
  237. package/src/lib/errors/swap/not-whitelisted-provider.error.d.ts +10 -0
  238. package/src/lib/errors/swap/not-whitelisted-provider.error.js +17 -0
  239. package/src/lib/errors/swap/simulation-failed.error.d.ts +6 -0
  240. package/src/lib/errors/swap/simulation-failed.error.js +12 -0
  241. package/src/lib/errors/swap/swap-error-on-provider-side.d.ts +7 -0
  242. package/src/lib/errors/swap/swap-error-on-provider-side.js +14 -0
  243. package/src/lib/errors/swap/swap-request.error.d.ts +7 -0
  244. package/src/lib/errors/swap/swap-request.error.js +14 -0
  245. package/src/lib/errors/swap/trade-expired.error.d.ts +4 -0
  246. package/src/lib/errors/swap/trade-expired.error.js +11 -0
  247. package/src/lib/errors/swap/unnecessary-approve.error.d.ts +7 -0
  248. package/src/lib/errors/swap/unnecessary-approve.error.js +14 -0
  249. package/src/lib/errors/swap/wallet-not-connected.error.d.ts +8 -0
  250. package/src/lib/errors/swap/wallet-not-connected.error.js +15 -0
  251. package/src/lib/errors/swap/wrong-network.error.d.ts +10 -0
  252. package/src/lib/errors/swap/wrong-network.error.js +16 -0
  253. package/src/lib/utils/constants/changenow-api-blockchain.d.ts +1 -2
  254. package/src/lib/utils/constants/changenow-api-blockchain.js +1 -1
  255. package/src/lib/utils/constants/web3-pure-store.d.ts +2 -2
  256. package/src/lib/utils/constants/web3-pure-store.js +20 -18
  257. package/src/lib/utils/models/contract-multicall-response.d.ts +1 -1
  258. package/src/lib/utils/models/evm-transaction-config.d.ts +2 -0
  259. package/src/lib/utils/models/primitive-types.d.ts +1 -1
  260. package/src/lib/utils/models/stellar-transaction-config.d.ts +3 -0
  261. package/src/lib/utils/models/stellar-transaction-config.js +2 -0
  262. package/src/lib/utils/models/tron-transaction-config.d.ts +1 -1
  263. package/src/lib/utils/web3-pure.d.ts +2 -2
  264. package/src/lib/utils/web3-pure.js +6 -7
  265. package/src/lib/utils/web3-types/bitcoin-web3-pure.d.ts +1 -1
  266. package/src/lib/utils/web3-types/common-web3-pure.js +0 -2
  267. package/src/lib/utils/web3-types/evm-web3-pure.d.ts +1 -1
  268. package/src/lib/utils/web3-types/icp-web3-pure.d.ts +1 -1
  269. package/src/lib/utils/web3-types/near-web3-pure.d.ts +6 -0
  270. package/src/lib/utils/web3-types/near-web3-pure.js +24 -0
  271. package/src/lib/utils/web3-types/solana-web3-pure.d.ts +2 -1
  272. package/src/lib/utils/web3-types/solana-web3-pure.js +11 -1
  273. package/src/lib/utils/web3-types/stellar-web3-pure.d.ts +5 -0
  274. package/src/lib/utils/web3-types/stellar-web3-pure.js +30 -0
  275. package/src/lib/utils/web3-types/sui-web3-pure.d.ts +8 -0
  276. package/src/lib/utils/web3-types/sui-web3-pure.js +27 -0
  277. package/src/lib/utils/web3-types/ton-web3-pure.d.ts +2 -1
  278. package/src/lib/utils/web3-types/ton-web3-pure.js +6 -0
  279. package/src/lib/utils/web3-types/tron-web3-pure.d.ts +7 -8
  280. package/src/lib/utils/web3-types/tron-web3-pure.js +5 -5
  281. package/src/lib/utils/web3-types/zcash-web3-pure.d.ts +5 -0
  282. package/src/lib/utils/web3-types/zcash-web3-pure.js +17 -0
  283. package/src/lib/adapter/adapters/abstract-adapter.d.ts +0 -22
  284. package/src/lib/adapter/adapters/abstract-adapter.js +0 -61
  285. package/src/lib/adapter/adapters/evm-adapter.d.ts +0 -55
  286. package/src/lib/adapter/adapters/evm-adapter.js +0 -326
  287. package/src/lib/adapter/adapters/solana-adapter.d.ts +0 -15
  288. package/src/lib/adapter/adapters/solana-adapter.js +0 -59
  289. package/src/lib/adapter/adapters/ton-adapter.d.ts +0 -22
  290. package/src/lib/adapter/adapters/ton-adapter.js +0 -100
  291. package/src/lib/adapter/adapters/tron-adapter.d.ts +0 -35
  292. /package/src/lib/adapter/adapters/{models/gas-price.js → adapter-bitcoin/models/btc-send-tx-params.js} +0 -0
  293. /package/src/lib/adapter/adapters/models/{gas-price.d.ts → evm-web3-public-models/gas-price.d.ts} +0 -0
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZcashWeb3Pure = void 0;
4
+ const changenow_api_blockchain_1 = require("../constants/changenow-api-blockchain");
5
+ const common_web3_pure_1 = require("./common-web3-pure");
6
+ class ZcashWeb3Pure extends common_web3_pure_1.CommonWeb3Pure {
7
+ constructor() {
8
+ super({
9
+ cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.ZCASH,
10
+ regex: /^(t1[a-zA-Z0-9]{33}|zs[a-zA-Z0-9]{76,}|u1[a-z0-9]{76,})$/
11
+ });
12
+ }
13
+ async isAddressCorrect(address) {
14
+ return /^(t1[a-zA-Z0-9]{33}|zs[a-zA-Z0-9]{76,}|u1[a-z0-9]{76,})$/.test(address);
15
+ }
16
+ }
17
+ exports.ZcashWeb3Pure = ZcashWeb3Pure;
@@ -1,22 +0,0 @@
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
- private _walletAddress;
13
- set walletAddress(value: string | null);
14
- get walletAddress(): string;
15
- protected constructor(blockchain: B, logger?: ICustomLogger);
16
- abstract callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token<BlockchainName>[]>;
17
- needPreswapAction(token: TokenAmount, contractAddress: string, walletAddress: string, amount: string | BigNumber): Promise<boolean>;
18
- handlePreswap(contractAddress: string, walletAddress: string, tokenAmount: TokenAmount): Promise<void>;
19
- abstract read<T>(...args: unknown[]): Promise<T>;
20
- abstract write(...args: unknown[]): Promise<string>;
21
- static getRandomBytes(bytes: number): string;
22
- }
@@ -1,61 +0,0 @@
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
- set walletAddress(value) {
29
- this._walletAddress = value;
30
- }
31
- get walletAddress() {
32
- if (!this._walletAddress) {
33
- const msg = 'Trying to access undefined walletAddress';
34
- this.logger?.customLog(msg);
35
- throw new Error(msg);
36
- }
37
- return this._walletAddress;
38
- }
39
- constructor(blockchain, logger) {
40
- this._public = null;
41
- this._wallet = null;
42
- this._walletAddress = null;
43
- this.blockchain = blockchain;
44
- if (logger) {
45
- this.logger = logger;
46
- }
47
- }
48
- needPreswapAction(token, contractAddress, walletAddress, amount) {
49
- return Promise.resolve(false);
50
- }
51
- ;
52
- handlePreswap(contractAddress, walletAddress, tokenAmount) {
53
- return Promise.resolve();
54
- }
55
- ;
56
- static getRandomBytes(bytes) {
57
- const randomBytes = crypto.getRandomValues(new Uint8Array(bytes));
58
- return (0, viem_1.bytesToHex)(randomBytes);
59
- }
60
- }
61
- exports.AbstractAdapter = AbstractAdapter;
@@ -1,55 +0,0 @@
1
- import { Abi, MulticallResponse, MulticallParameters, PublicActions, PublicClient, WalletClient, WalletActions, BlockNumber, BlockTag, GetBlockReturnType } from 'viem';
2
- import { AbstractAdapter } from './abstract-adapter';
3
- import { EvmBlockchainName, ICustomLogger, Token, TokenAmount, PriceTokenAmount } from '@cryptorubic/core';
4
- import BigNumber from "bignumber.js";
5
- import { EvmAdapterOptions } from "./models/evm-adapter-options";
6
- import { EvmTransactionConfig } from "../../utils/models/evm-transaction-config";
7
- import { ApproveAdapter } from "./models/approve-adapter";
8
- import { AllowanceInfo } from "./models/common-types";
9
- import { GasPrice } from "./models/gas-price";
10
- export declare class EvmAdapter extends AbstractAdapter<PublicActions & PublicClient, WalletClient & WalletActions, EvmBlockchainName> implements ApproveAdapter<EvmTransactionConfig> {
11
- needPreswapAction(token: TokenAmount, contractAddress: string, walletAddress: string, amount: string): Promise<boolean>;
12
- handlePreswap(contractAddress: string, walletAddress: string, tokenAmount: TokenAmount): Promise<void>;
13
- constructor(adapterOptions: EvmAdapterOptions, logger?: ICustomLogger);
14
- protected createPublicClient(rpcList: string[]): PublicActions & PublicClient | null;
15
- read<T>(address: string, abi: Abi, method: string, methodArgs?: unknown[]): Promise<T>;
16
- writeContract(address: string, abi: Abi, method: string, value?: string, methodArgs?: unknown[]): Promise<string>;
17
- write(address: string, to: string, value: string, data: string): Promise<string>;
18
- multicallByContract<T>(contracts: MulticallParameters, allowErrors?: boolean): Promise<MulticallResponse<T>[]>;
19
- multicallByAddress<T>(address: string, abi: Abi, method: string, methodArgs?: unknown[][], allowErrors?: boolean): Promise<MulticallResponse<T>[]>;
20
- static encodeMethodCall(contractAddress: string, contractAbi: Abi, method: string, parameters?: unknown[], value?: string): EvmTransactionConfig;
21
- simulateTransaction(config: EvmTransactionConfig, from: string): Promise<string>;
22
- callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token<EvmBlockchainName>[]>;
23
- getGasPrice(): Promise<string>;
24
- checkEnoughBalance(token: TokenAmount | PriceTokenAmount, walletAddress: string, amount?: BigNumber): Promise<boolean>;
25
- /**
26
- * @param walletAddress
27
- * @param tokenAddress
28
- * @returns wei amount
29
- */
30
- getBalance(walletAddress: string, tokenAddress?: string): Promise<BigNumber>;
31
- getTransactionCount(walletAddress: string): Promise<number>;
32
- getAllowance(fromTokenAddress: string, walletAddress: string, spenderAddress: string): Promise<AllowanceInfo>;
33
- encodeApprove(tokenAddress: string, spenderAddress: string, amount?: string): EvmTransactionConfig;
34
- needApprove(token: TokenAmount, contractAddress: string, walletAddress: string, amount: string): Promise<boolean>;
35
- approve(fromAddress: string, tokenAddress: string, spenderAddress: string, amount?: string): Promise<string>;
36
- /**
37
- * Calculates EIP-1559 specific gas details.
38
- * @see {@link https://github.com/ethers-io/ethers.js/blob/master/packages/abstract-provider/src.ts/index.ts#L235}
39
- * @returns block baseFee, average maxPriorityFeePerGas, and maxFeePerGas.
40
- */
41
- getPriorityFeeGas(): Promise<GasPrice>;
42
- /**
43
- * Gets block by block id.
44
- * @param [blockId] Block id: hash, number ... Default is 'latest'.
45
- * @returns Block by blockId parameter.
46
- */
47
- getBlock(blockType?: BlockNumber | BlockTag): Promise<GetBlockReturnType>;
48
- /**
49
- * Estimates average maxPriorityFeePerGas for EIP-1559 transactions based on last 20 blocks.
50
- * @see {@link https://docs.alchemy.com/docs/how-to-build-a-gas-fee-estimator-using-eip-1559}
51
- * @returns Average maxPriorityFeePerGas in wei
52
- */
53
- getMaxPriorityFeePerGas(): Promise<number>;
54
- getBaseFeePerGas(blockNumber: bigint): Promise<number>;
55
- }
@@ -1,326 +0,0 @@
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(token, contractAddress, walletAddress, amount) {
13
- return this.needApprove(token, contractAddress, walletAddress, amount);
14
- }
15
- async handlePreswap(contractAddress, walletAddress, tokenAmount) {
16
- const approveAmount = this.blockchain === core_1.BLOCKCHAIN_NAME.GNOSIS ||
17
- this.blockchain === core_1.BLOCKCHAIN_NAME.CRONOS
18
- ? tokenAmount.stringWeiAmount
19
- : tokenAmount.stringTokenAmount;
20
- const isNative = web3_pure_1.Web3Pure.isNativeAddress(this.blockchain, tokenAmount.address);
21
- const fromTokenAddress = isNative && tokenAmount.blockchain === core_1.BLOCKCHAIN_NAME.METIS
22
- ? '0xdeaddeaddeaddeaddeaddeaddeaddeaddead0000'
23
- : tokenAmount.blockchain;
24
- await this.writeContract(fromTokenAddress, erc20_token_abi_1.erc20TokenAbi, 'approve', '0', [approveAmount]);
25
- }
26
- constructor(adapterOptions, logger) {
27
- super(adapterOptions.blockchain, logger);
28
- this.public = this.createPublicClient(adapterOptions.rpcList);
29
- if (adapterOptions?.walletAddress) {
30
- }
31
- }
32
- createPublicClient(rpcList) {
33
- if (!rpcList?.[0]) {
34
- this.logger?.customError('RPC list is empty');
35
- return null;
36
- }
37
- const transports = rpcList.map((rpc) => (0, viem_1.http)(rpc, {
38
- batch: { batchSize: 2000, wait: 16 },
39
- onFetchResponse: (response) => {
40
- if ('error' in response) {
41
- this.logger?.customError('Rpc fetch error', response.error);
42
- }
43
- },
44
- retryCount: 5,
45
- retryDelay: 100,
46
- timeout: 5000
47
- }));
48
- const chain = viem_blockchain_mapping_1.viemBlockchainMapping[this.blockchain];
49
- return (0, viem_1.createPublicClient)({
50
- // @ts-ignore
51
- chain,
52
- transport: (0, viem_1.fallback)(transports, {
53
- rank: true
54
- })
55
- });
56
- }
57
- async read(address, abi, method, methodArgs = []) {
58
- const result = await this.public.readContract({
59
- abi,
60
- address: address,
61
- args: methodArgs,
62
- functionName: method
63
- });
64
- return result;
65
- }
66
- async writeContract(address, abi, method, value = '0', methodArgs = []) {
67
- const result = await this.wallet.writeContract({
68
- abi,
69
- address: address,
70
- account: address,
71
- args: methodArgs,
72
- functionName: method,
73
- chain: this.public.chain,
74
- value: (0, viem_1.parseEther)(value)
75
- });
76
- return result;
77
- }
78
- async write(address, to, value, data) {
79
- const result = await this.wallet.sendTransaction({
80
- account: address,
81
- to: to,
82
- value: (0, viem_1.parseEther)(value),
83
- data: data,
84
- chain: this.public.chain
85
- });
86
- return result;
87
- }
88
- async multicallByContract(contracts, allowErrors = true) {
89
- const results = await this.public.multicall(contracts);
90
- const rpcRequestFail = results.every((result) => result?.status === 'failure');
91
- if (rpcRequestFail) {
92
- // @ts-ignore
93
- if (rpcRequestFail?.[0]?.stats === 'failure') {
94
- // @ts-ignore
95
- throw new Error(rpcRequestFail?.[0]?.error);
96
- }
97
- }
98
- const hasErrors = results.find((result) => {
99
- if (result?.error || result.status !== 'success') {
100
- this.logger?.customWarn('Multicall error', result?.error?.data || result?.error?.message || result?.error);
101
- return true;
102
- }
103
- return false;
104
- });
105
- if (hasErrors && !allowErrors) {
106
- throw new Error('Multicall error');
107
- }
108
- return results;
109
- }
110
- async multicallByAddress(address, abi, method, methodArgs = [], allowErrors = true) {
111
- const contract = { abi, address: address, functionName: method };
112
- const contracts = methodArgs.map((multicallArguments) => ({
113
- ...contract,
114
- args: multicallArguments
115
- }));
116
- return this.multicallByContract({ contracts }, allowErrors);
117
- }
118
- static encodeMethodCall(contractAddress, contractAbi, method, parameters = [], value) {
119
- try {
120
- const data = (0, viem_1.encodeFunctionData)({ abi: contractAbi, args: parameters, functionName: method });
121
- return {
122
- data: data,
123
- to: contractAddress,
124
- value: value || '0'
125
- };
126
- }
127
- catch (err) {
128
- throw err;
129
- }
130
- }
131
- async simulateTransaction(config, from) {
132
- try {
133
- const callParams = {
134
- account: from,
135
- data: config.data,
136
- to: config.to,
137
- ...(config.value && { value: BigInt(config.value) })
138
- };
139
- const gasLimitWei = await this.public.estimateGas(callParams);
140
- return gasLimitWei.toString();
141
- }
142
- catch (err) {
143
- this.logger?.customError('Error while simulating transaction', err);
144
- throw err;
145
- }
146
- }
147
- async callForTokensInfo(tokenAddresses) {
148
- const nativeTokenIndex = tokenAddresses.findIndex((address) => (0, core_1.compareAddresses)(address, '0x0000000000000000000000000000000000000000'));
149
- const filteredTokenAddresses = tokenAddresses.filter((_, index) => index !== nativeTokenIndex);
150
- const contracts = filteredTokenAddresses.flatMap((contractAddress) => {
151
- const contract = {
152
- abi: erc20_token_abi_1.erc20TokenAbi,
153
- address: contractAddress
154
- };
155
- return ['decimals', 'symbol', 'name'].map((method) => ({ ...contract, functionName: method }));
156
- });
157
- const results = contracts.length ? (await this.multicallByContract({ contracts })) : [];
158
- const tokens = [];
159
- for (let i = 0; i < results.length; i += 3) {
160
- try {
161
- const decimals = Number(results[i].result);
162
- const symbol = results[i + 1].result;
163
- const name = results[i + 2].result;
164
- const token = new core_1.Token({
165
- address: filteredTokenAddresses[i / 3],
166
- blockchain: this.blockchain,
167
- decimals,
168
- name,
169
- symbol
170
- });
171
- tokens.push(token);
172
- }
173
- catch (err) {
174
- this.logger?.customError('Error while loading token', err);
175
- tokens.push(null);
176
- }
177
- }
178
- if (nativeTokenIndex === -1) {
179
- return tokens.filter(Boolean);
180
- }
181
- const blockchainNativeToken = core_1.nativeTokensList[this.blockchain];
182
- tokens.splice(nativeTokenIndex, 0, blockchainNativeToken);
183
- return tokens.filter(Boolean);
184
- }
185
- async getGasPrice() {
186
- const bigIntGas = await this.public.getGasPrice();
187
- return String(bigIntGas);
188
- }
189
- async checkEnoughBalance(token, walletAddress, amount = token.tokenAmount) {
190
- const weiBalance = await this.getBalance(walletAddress, token.isNative ? undefined : token.address);
191
- const balance = core_1.Token.fromWei(weiBalance, token.decimals);
192
- return balance.gte(amount);
193
- }
194
- /**
195
- * @param walletAddress
196
- * @param tokenAddress
197
- * @returns wei amount
198
- */
199
- async getBalance(walletAddress, tokenAddress) {
200
- if (!tokenAddress) {
201
- const nativeBalance = await this.public.getBalance({
202
- address: walletAddress
203
- });
204
- return new bignumber_js_1.default(nativeBalance.toString());
205
- }
206
- const tokenBalance = await this.read(tokenAddress, erc20_token_abi_1.erc20TokenAbi, 'balanceOf', [walletAddress]);
207
- return new bignumber_js_1.default(tokenBalance);
208
- }
209
- async getTransactionCount(walletAddress) {
210
- const transactionCount = await this.public?.getTransactionCount({
211
- address: walletAddress
212
- });
213
- return transactionCount ?? 0;
214
- }
215
- async getAllowance(fromTokenAddress, walletAddress, spenderAddress) {
216
- const [decimals, allowance] = await Promise.all([
217
- this.read(fromTokenAddress, erc20_token_abi_1.erc20TokenAbi, 'decimals'),
218
- this.read(fromTokenAddress, erc20_token_abi_1.erc20TokenAbi, 'allowance', [walletAddress, spenderAddress])
219
- ]);
220
- const allowanceWeiBN = new bignumber_js_1.default(allowance);
221
- const allowanceNonWei = core_1.Token.fromWei(allowanceWeiBN, Number(decimals));
222
- return { allowanceNonWei, allowanceWei: allowanceWeiBN };
223
- }
224
- ;
225
- encodeApprove(tokenAddress, spenderAddress, amount) {
226
- const amountWei = amount ?? new bignumber_js_1.default(2).pow(256).minus(1).toFixed();
227
- const tx = EvmAdapter.encodeMethodCall(tokenAddress, erc20_token_abi_1.erc20TokenAbi, 'approve', [spenderAddress, amountWei]);
228
- return {
229
- data: tx.data,
230
- to: tx.to,
231
- value: tx.value
232
- };
233
- }
234
- ;
235
- async needApprove(token, contractAddress, walletAddress, amount) {
236
- // Native coin in METIS can be Token required approve
237
- if (token.isNative && token.blockchain !== core_1.BLOCKCHAIN_NAME.METIS) {
238
- return false;
239
- }
240
- // Special native address for METIS native coin
241
- const fromTokenAddress = token.isNative && token.blockchain === core_1.BLOCKCHAIN_NAME.METIS ? '0xdeaddeaddeaddeaddeaddeaddeaddeaddead0000' : token.address;
242
- const { allowanceWei } = await this.getAllowance(fromTokenAddress, walletAddress, contractAddress);
243
- return allowanceWei.lt(token.weiAmount);
244
- }
245
- ;
246
- async approve(fromAddress, tokenAddress, spenderAddress, amount) {
247
- const config = this.encodeApprove(tokenAddress, spenderAddress, amount);
248
- return this.write(fromAddress, config.to, config.value, config.data);
249
- }
250
- ;
251
- /**
252
- * Calculates EIP-1559 specific gas details.
253
- * @see {@link https://github.com/ethers-io/ethers.js/blob/master/packages/abstract-provider/src.ts/index.ts#L235}
254
- * @returns block baseFee, average maxPriorityFeePerGas, and maxFeePerGas.
255
- */
256
- async getPriorityFeeGas() {
257
- const block = await this.getBlock('latest');
258
- let lastBaseFeePerGas = null;
259
- let maxFeePerGas = null;
260
- let maxPriorityFeePerGas = null;
261
- if (block && block.baseFeePerGas) {
262
- const baseFeePerGas = await this.getBaseFeePerGas(block.number);
263
- try {
264
- lastBaseFeePerGas = baseFeePerGas;
265
- maxPriorityFeePerGas = await this.getMaxPriorityFeePerGas();
266
- maxFeePerGas = baseFeePerGas * 2 + maxPriorityFeePerGas;
267
- }
268
- catch (err) {
269
- console.debug(err);
270
- }
271
- }
272
- return {
273
- baseFee: lastBaseFeePerGas?.toFixed(),
274
- maxFeePerGas: maxFeePerGas?.toFixed(),
275
- maxPriorityFeePerGas: maxPriorityFeePerGas?.toFixed()
276
- };
277
- }
278
- /**
279
- * Gets block by block id.
280
- * @param [blockId] Block id: hash, number ... Default is 'latest'.
281
- * @returns Block by blockId parameter.
282
- */
283
- getBlock(blockType = 'latest') {
284
- if (typeof blockType === 'string') {
285
- // @TODO FIX TYPE
286
- return this.public.getBlock({ blockTag: blockType });
287
- }
288
- return this.public.getBlock({ blockNumber: blockType });
289
- }
290
- /**
291
- * Estimates average maxPriorityFeePerGas for EIP-1559 transactions based on last 20 blocks.
292
- * @see {@link https://docs.alchemy.com/docs/how-to-build-a-gas-fee-estimator-using-eip-1559}
293
- * @returns Average maxPriorityFeePerGas in wei
294
- */
295
- async getMaxPriorityFeePerGas() {
296
- const HISTORICAL_BLOCKS = 20;
297
- const feeHistory = await this.public.getFeeHistory({
298
- blockCount: HISTORICAL_BLOCKS,
299
- rewardPercentiles: [50],
300
- blockTag: 'pending'
301
- });
302
- if (!feeHistory?.reward) {
303
- throw new Error('No fee history found');
304
- }
305
- const blocks = feeHistory.reward.map(x => x.map(reward => Number(reward)));
306
- const rewardSum = blocks
307
- .map(x => x[0])
308
- .reduce((acc, v) => acc + (v || 0), 0);
309
- return Math.round(rewardSum / blocks.length);
310
- }
311
- async getBaseFeePerGas(blockNumber) {
312
- const feeHistory = await this.public.getFeeHistory({
313
- blockCount: 1,
314
- rewardPercentiles: [50],
315
- // blockTag: 'pending',
316
- blockNumber: blockNumber
317
- });
318
- if (!feeHistory?.baseFeePerGas.length) {
319
- throw new Error('No fee history found');
320
- }
321
- const feedSum = feeHistory.baseFeePerGas
322
- .reduce((acc, v) => acc.plus(v.toString() || 0), new bignumber_js_1.default(0));
323
- return feedSum.dividedBy(feeHistory.baseFeePerGas.length).toNumber();
324
- }
325
- }
326
- exports.EvmAdapter = EvmAdapter;
@@ -1,15 +0,0 @@
1
- import { Abi, MulticallResponse, MulticallParameters } from 'viem';
2
- import { AbstractAdapter } from './abstract-adapter';
3
- import { Connection } from "@solana/web3.js";
4
- import { ICustomLogger, SolanaBlockchainName, Token } from "@cryptorubic/core";
5
- import { EvmTransactionConfig } from "../../utils/models/evm-transaction-config";
6
- export declare class SolanaAdapter extends AbstractAdapter<Connection, Connection, SolanaBlockchainName> {
7
- constructor(rpcList: string[], logger?: ICustomLogger);
8
- private createPublicClient;
9
- read<T>(_address: string, _abi: Abi, _method: string, _methodArgs?: unknown[]): Promise<T>;
10
- write<T>(_address: string, _abi: Abi, _method: string, _methodArgs?: unknown[]): Promise<T>;
11
- multicallByContract<T>(_contracts: MulticallParameters, _allowErrors?: boolean): Promise<MulticallResponse<T>[]>;
12
- multicallByAddress<T>(_address: string, _abi: Abi, _method: string, _methodArgs?: unknown[][], _allowErrors?: boolean): Promise<MulticallResponse<T>[]>;
13
- simulateTransaction(_config: EvmTransactionConfig, _from: string): Promise<void>;
14
- callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token<SolanaBlockchainName>[]>;
15
- }
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SolanaAdapter = void 0;
4
- const abstract_adapter_1 = require("./abstract-adapter");
5
- const web3_js_1 = require("@solana/web3.js");
6
- const utl_sdk_1 = require("@solflare-wallet/utl-sdk");
7
- const core_1 = require("@cryptorubic/core");
8
- const web3_pure_1 = require("../../utils/web3-pure");
9
- class SolanaAdapter extends abstract_adapter_1.AbstractAdapter {
10
- constructor(rpcList, logger) {
11
- super(core_1.BLOCKCHAIN_NAME.SOLANA, logger);
12
- this.public = this.createPublicClient(rpcList);
13
- }
14
- createPublicClient(rpcList) {
15
- if (!rpcList?.[0]) {
16
- this.logger?.customError('RPC list is empty');
17
- return null;
18
- }
19
- else {
20
- return new web3_js_1.Connection(rpcList[0], 'confirmed');
21
- }
22
- }
23
- async read(_address, _abi, _method, _methodArgs = []) {
24
- throw new Error('Method multicall is not supported');
25
- }
26
- async write(_address, _abi, _method, _methodArgs = []) {
27
- throw new Error('Method multicall is not supported');
28
- }
29
- async multicallByContract(_contracts, _allowErrors = true) {
30
- throw new Error('Method multicall is not supported');
31
- }
32
- async multicallByAddress(_address, _abi, _method, _methodArgs = [], _allowErrors = true) {
33
- throw new Error('Method multicall is not supported');
34
- }
35
- async simulateTransaction(_config, _from) { }
36
- async callForTokensInfo(tokenAddresses) {
37
- const nativeTokenIndex = tokenAddresses.findIndex((address) => web3_pure_1.Web3Pure.isNativeAddress(core_1.CHAIN_TYPE.SOLANA, address));
38
- const filteredTokenAddresses = tokenAddresses.filter((_, index) => index !== nativeTokenIndex);
39
- const mints = filteredTokenAddresses.map((address) => new web3_js_1.PublicKey(address));
40
- const tokenSdk = new utl_sdk_1.Client();
41
- const tokensMint = await tokenSdk.fetchMints(mints);
42
- const tokens = tokensMint.map((token) => {
43
- return new core_1.Token({
44
- address: token.address.toString(),
45
- blockchain: core_1.BLOCKCHAIN_NAME.SOLANA,
46
- decimals: token.decimals,
47
- name: token.name,
48
- symbol: token.symbol
49
- });
50
- });
51
- if (nativeTokenIndex === -1) {
52
- return tokens;
53
- }
54
- const blockchainNativeToken = core_1.nativeTokensList[core_1.BLOCKCHAIN_NAME.SOLANA];
55
- tokens.splice(nativeTokenIndex, 0, blockchainNativeToken);
56
- return tokens;
57
- }
58
- }
59
- exports.SolanaAdapter = SolanaAdapter;
@@ -1,22 +0,0 @@
1
- import { BlockchainName, HttpClient, ICustomLogger, PriceTokenAmount, Token, TokenAmount, TonBlockchainName } from '@cryptorubic/core';
2
- import { Address, TonClient } from "@ton/ton";
3
- import { TonApiParseAddressResp } from "./models/tonapi-models";
4
- import { TonAdapterConfig } from "./models/ton-adapter-config";
5
- import BigNumber from "bignumber.js";
6
- import { TonTransactionConfig } from "../../utils/models/ton-transaction-config";
7
- import { AbstractAdapter } from "./abstract-adapter";
8
- export declare class TonAdapter extends AbstractAdapter<TonClient, TonClient, TonBlockchainName> {
9
- private readonly tonApi;
10
- readonly tonClient: TonClient;
11
- constructor(httpClient: HttpClient, config: TonAdapterConfig, logger?: ICustomLogger);
12
- callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token<BlockchainName>[]>;
13
- read<T>(args: unknown): Promise<T>;
14
- write(args: unknown): Promise<string>;
15
- getAllFormatsOfAddress(walletAddress: string): Promise<TonApiParseAddressResp>;
16
- getWalletAddress(address: Address, contractAddress: Address): Promise<Address>;
17
- checkEnoughTokenBalance(token: TokenAmount | PriceTokenAmount, walletAddress: string, amount?: BigNumber): Promise<boolean>;
18
- getBalance(walletAddress: string, tokenAddress?: string): Promise<BigNumber>;
19
- getTransferEncodedConfig(tokenAddress: string, walletAddress: string, receiver: string, amount: string): Promise<TonTransactionConfig>;
20
- private getTransferNativeConfig;
21
- private getTransferJettonConfig;
22
- }