@cryptorubic/web3 0.0.34 → 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 -19
  3. package/src/index.js +130 -17
  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-send-tx-params.js +2 -0
  8. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-psbt-encoded-config.d.ts +5 -0
  9. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-psbt-encoded-config.js +2 -0
  10. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-trade-types.d.ts +7 -0
  11. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-trade-types.js +2 -0
  12. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-transfer-encoded-config.d.ts +6 -0
  13. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-transfer-encoded-config.js +2 -0
  14. package/src/lib/adapter/adapters/adapter-bitcoin/signer/bitcoin-adapter-signer.d.ts +17 -0
  15. package/src/lib/adapter/adapters/adapter-bitcoin/signer/bitcoin-adapter-signer.js +131 -0
  16. package/src/lib/adapter/adapters/adapter-evm/constants/proxy-hash-errors.d.ts +4 -0
  17. package/src/lib/adapter/adapters/adapter-evm/constants/proxy-hash-errors.js +705 -0
  18. package/src/lib/adapter/adapters/adapter-evm/evm-adapter.d.ts +120 -0
  19. package/src/lib/adapter/adapters/adapter-evm/evm-adapter.js +498 -0
  20. package/src/lib/adapter/adapters/adapter-evm/models/evm-send-tx-params.d.ts +38 -0
  21. package/src/lib/adapter/adapters/adapter-evm/models/evm-send-tx-params.js +2 -0
  22. package/src/lib/adapter/adapters/adapter-evm/signer/evm-adapter-signer.d.ts +53 -0
  23. package/src/lib/adapter/adapters/adapter-evm/signer/evm-adapter-signer.js +263 -0
  24. package/src/lib/adapter/adapters/adapter-evm/utils/parse-evm-error.d.ts +12 -0
  25. package/src/lib/adapter/adapters/adapter-evm/utils/parse-evm-error.js +70 -0
  26. package/src/lib/adapter/adapters/adapter-solana/models/solana-send-tx-params.d.ts +16 -0
  27. package/src/lib/adapter/adapters/adapter-solana/models/solana-send-tx-params.js +2 -0
  28. package/src/lib/adapter/adapters/adapter-solana/services/solana-tokens-service.d.ts +22 -0
  29. package/src/lib/adapter/adapters/adapter-solana/services/solana-tokens-service.js +138 -0
  30. package/src/lib/adapter/adapters/adapter-solana/signer/solana-adapter-signer.d.ts +17 -0
  31. package/src/lib/adapter/adapters/adapter-solana/signer/solana-adapter-signer.js +87 -0
  32. package/src/lib/adapter/adapters/adapter-solana/solana-adapter.d.ts +49 -0
  33. package/src/lib/adapter/adapters/adapter-solana/solana-adapter.js +231 -0
  34. package/src/lib/adapter/adapters/adapter-stellar/constants/fake-stellar-wallet.d.ts +1 -0
  35. package/src/lib/adapter/adapters/adapter-stellar/constants/fake-stellar-wallet.js +4 -0
  36. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-client.d.ts +2 -0
  37. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-client.js +2 -0
  38. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-rpc-provider.d.ts +6 -0
  39. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-rpc-provider.js +2 -0
  40. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-send-tx-params.d.ts +8 -0
  41. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-send-tx-params.js +2 -0
  42. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-wallet.d.ts +87 -0
  43. package/src/lib/adapter/adapters/adapter-stellar/models/stellar-wallet.js +2 -0
  44. package/src/lib/adapter/adapters/adapter-stellar/signer/stellar-adapter-signer.d.ts +18 -0
  45. package/src/lib/adapter/adapters/adapter-stellar/signer/stellar-adapter-signer.js +75 -0
  46. package/src/lib/adapter/adapters/adapter-stellar/stellar-adapter.d.ts +54 -0
  47. package/src/lib/adapter/adapters/adapter-stellar/stellar-adapter.js +253 -0
  48. package/src/lib/adapter/adapters/adapter-sui/models/sui-send-tx-params.d.ts +8 -0
  49. package/src/lib/adapter/adapters/adapter-sui/models/sui-send-tx-params.js +2 -0
  50. package/src/lib/adapter/adapters/adapter-sui/signer/sui-adapter-signer.d.ts +17 -0
  51. package/src/lib/adapter/adapters/adapter-sui/signer/sui-adapter-signer.js +55 -0
  52. package/src/lib/adapter/adapters/adapter-sui/sui-adapter.d.ts +32 -0
  53. package/src/lib/adapter/adapters/adapter-sui/sui-adapter.js +111 -0
  54. package/src/lib/adapter/adapters/adapter-ton/models/ton-send-tx-params.d.ts +26 -0
  55. package/src/lib/adapter/adapters/adapter-ton/models/ton-send-tx-params.js +2 -0
  56. package/src/lib/adapter/adapters/{utils → adapter-ton/services}/ton-api.service.d.ts +8 -7
  57. package/src/lib/adapter/adapters/{utils → adapter-ton/services}/ton-api.service.js +39 -56
  58. package/src/lib/adapter/adapters/adapter-ton/signer/ton-adapter-signer.d.ts +43 -0
  59. package/src/lib/adapter/adapters/adapter-ton/signer/ton-adapter-signer.js +166 -0
  60. package/src/lib/adapter/adapters/adapter-ton/ton-adapter.d.ts +32 -0
  61. package/src/lib/adapter/adapters/adapter-ton/ton-adapter.js +104 -0
  62. package/src/lib/adapter/adapters/adapter-tron/models/tron-send-tx-params.d.ts +13 -0
  63. package/src/lib/adapter/adapters/adapter-tron/models/tron-send-tx-params.js +2 -0
  64. package/src/lib/adapter/adapters/adapter-tron/models/tron-transfer-tx-params.d.ts +7 -0
  65. package/src/lib/adapter/adapters/adapter-tron/models/tron-transfer-tx-params.js +2 -0
  66. package/src/lib/adapter/adapters/adapter-tron/models/tron-web-provider.d.ts +4 -0
  67. package/src/lib/adapter/adapters/adapter-tron/models/tron-web-provider.js +2 -0
  68. package/src/lib/adapter/adapters/adapter-tron/signer/tron-adapter-signer.d.ts +19 -0
  69. package/src/lib/adapter/adapters/adapter-tron/signer/tron-adapter-signer.js +81 -0
  70. package/src/lib/adapter/adapters/adapter-tron/tron-adapter.d.ts +57 -0
  71. package/src/lib/adapter/adapters/{tron-adapter.js → adapter-tron/tron-adapter.js} +145 -70
  72. package/src/lib/adapter/adapters/adapter-tron/utils/parse-tron-error.d.ts +2 -0
  73. package/src/lib/adapter/adapters/adapter-tron/utils/parse-tron-error.js +20 -0
  74. package/src/lib/adapter/adapters/common/abstract-adapter.d.ts +84 -0
  75. package/src/lib/adapter/adapters/common/abstract-adapter.js +82 -0
  76. package/src/lib/adapter/adapters/common/signer/abstract-adapter-signer.d.ts +22 -0
  77. package/src/lib/adapter/adapters/common/signer/abstract-adapter-signer.js +42 -0
  78. package/src/lib/adapter/adapters/constants/possible-errors.d.ts +1 -0
  79. package/src/lib/adapter/adapters/constants/possible-errors.js +14 -0
  80. package/src/lib/adapter/adapters/constants/tron-multicall-abi.d.ts +1 -1
  81. package/src/lib/adapter/adapters/constants/uni-v3-permit-abi.d.ts +2 -0
  82. package/src/lib/adapter/adapters/constants/uni-v3-permit-abi.js +72 -0
  83. package/src/lib/adapter/adapters/models/approve-adapter.d.ts +20 -6
  84. package/src/lib/adapter/adapters/models/approve-adapter.js +4 -0
  85. package/src/lib/adapter/adapters/models/basic-transaction-options.d.ts +7 -0
  86. package/src/lib/adapter/adapters/models/basic-transaction-options.js +2 -0
  87. package/src/lib/adapter/adapters/models/bitcoin-user-address-info.d.ts +53 -0
  88. package/src/lib/adapter/adapters/models/bitcoin-user-address-info.js +2 -0
  89. package/src/lib/adapter/adapters/models/btc-wallet-provider.d.ts +10 -0
  90. package/src/lib/adapter/adapters/models/btc-wallet-provider.js +2 -0
  91. package/src/lib/adapter/adapters/models/evm-adapter-options.d.ts +1 -1
  92. package/src/lib/adapter/adapters/models/evm-web3-public-models/batch-call.d.ts +5 -0
  93. package/src/lib/adapter/adapters/models/evm-web3-public-models/batch-call.js +2 -0
  94. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-call.d.ts +4 -0
  95. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-call.js +2 -0
  96. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-multicall-response.d.ts +4 -0
  97. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-multicall-response.js +2 -0
  98. package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price-viem.d.ts +18 -0
  99. package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price-viem.js +2 -0
  100. package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price.d.ts +22 -0
  101. package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price.js +2 -0
  102. package/src/lib/adapter/adapters/models/evm-web3-public-models/permit2-contract-types.d.ts +10 -0
  103. package/src/lib/adapter/adapters/models/evm-web3-public-models/permit2-contract-types.js +2 -0
  104. package/src/lib/adapter/adapters/models/evm-web3-public-models/rpc-response.d.ts +5 -0
  105. package/src/lib/adapter/adapters/models/evm-web3-public-models/rpc-response.js +2 -0
  106. package/src/lib/adapter/adapters/models/old-features-models/contract-params.d.ts +23 -0
  107. package/src/lib/adapter/adapters/models/old-features-models/contract-params.js +2 -0
  108. package/src/lib/adapter/adapters/models/old-features-models/encode-transaction-options.d.ts +32 -0
  109. package/src/lib/adapter/adapters/models/old-features-models/encode-transaction-options.js +2 -0
  110. package/src/lib/adapter/adapters/models/old-features-models/is-deflation-token.d.ts +6 -0
  111. package/src/lib/adapter/adapters/models/old-features-models/is-deflation-token.js +2 -0
  112. package/src/lib/adapter/adapters/models/old-features-models/non-evm-chain-address-correct-response.d.ts +5 -0
  113. package/src/lib/adapter/adapters/models/old-features-models/non-evm-chain-address-correct-response.js +2 -0
  114. package/src/lib/adapter/adapters/models/old-features-models/swap-transaction-options.d.ts +65 -0
  115. package/src/lib/adapter/adapters/models/old-features-models/swap-transaction-options.js +2 -0
  116. package/src/lib/adapter/adapters/models/permit2-contract-types.d.ts +1 -0
  117. package/src/lib/adapter/adapters/models/permit2-contract-types.js +2 -0
  118. package/src/lib/adapter/adapters/models/solana-web3-types.d.ts +60 -0
  119. package/src/lib/adapter/adapters/models/solana-web3-types.js +2 -0
  120. package/src/lib/adapter/adapters/models/status-manager-models/tx-status-data.d.ts +8 -0
  121. package/src/lib/adapter/adapters/models/status-manager-models/tx-status-data.js +2 -0
  122. package/src/lib/adapter/adapters/models/token-models.d.ts +1 -0
  123. package/src/lib/adapter/adapters/models/token-models.js +2 -0
  124. package/src/lib/adapter/adapters/models/ton-adapter-config.d.ts +2 -2
  125. package/src/lib/adapter/adapters/models/ton-api-config.d.ts +1 -1
  126. package/src/lib/adapter/adapters/models/tonapi-models.d.ts +2 -2
  127. package/src/lib/adapter/adapters/models/web3-public-models/contract-multicall-response.d.ts +5 -0
  128. package/src/lib/adapter/adapters/models/web3-public-models/contract-multicall-response.js +2 -0
  129. package/src/lib/adapter/adapters/models/web3-public-models/method-data.d.ts +4 -0
  130. package/src/lib/adapter/adapters/models/web3-public-models/method-data.js +2 -0
  131. package/src/lib/adapter/adapters/models/web3-public-models/supported-token-field.d.ts +1 -0
  132. package/src/lib/adapter/adapters/models/web3-public-models/supported-token-field.js +2 -0
  133. package/src/lib/adapter/adapters/models/web3-public-models/tx-status.d.ts +13 -0
  134. package/src/lib/adapter/adapters/models/web3-public-models/tx-status.js +15 -0
  135. package/src/lib/adapter/adapters/utils/errors.d.ts +2 -0
  136. package/src/lib/adapter/adapters/utils/errors.js +10 -0
  137. package/src/lib/adapter/adapters/utils/options.d.ts +10 -0
  138. package/src/lib/adapter/adapters/utils/options.js +59 -0
  139. package/src/lib/adapter/adapters/utils/timeout.d.ts +1 -0
  140. package/src/lib/adapter/adapters/utils/timeout.js +15 -0
  141. package/src/lib/adapter/adapters/utils/waitFor.d.ts +1 -0
  142. package/src/lib/adapter/adapters/utils/waitFor.js +6 -0
  143. package/src/lib/adapter/blockchain-adapter-factory.service.d.ts +20 -10
  144. package/src/lib/adapter/blockchain-adapter-factory.service.js +58 -53
  145. package/src/lib/adapter/constants/chain-configs/chain-configs.d.ts +1 -1
  146. package/src/lib/adapter/constants/chain-configs/chain-configs.js +603 -138
  147. package/src/lib/adapter/constants/models/env-type.d.ts +1 -0
  148. package/src/lib/adapter/constants/models/env-type.js +2 -0
  149. package/src/lib/adapter/constants/models/solana-web3.d.ts +1 -1
  150. package/src/lib/adapter/constants/models/wallet-provider.d.ts +9 -3
  151. package/src/lib/adapter/constants/rubic-api-link-mapping.d.ts +2 -0
  152. package/src/lib/adapter/constants/rubic-api-link-mapping.js +16 -0
  153. package/src/lib/adapter/constants/viem-blockchain-mapping.d.ts +1 -1
  154. package/src/lib/adapter/constants/viem-blockchain-mapping.js +16 -7
  155. package/src/lib/adapter/models/create-factory-params.d.ts +24 -0
  156. package/src/lib/adapter/models/create-factory-params.js +2 -0
  157. package/src/lib/errors/blockchain/deflation-token.error.d.ts +11 -0
  158. package/src/lib/errors/blockchain/deflation-token.error.js +16 -0
  159. package/src/lib/errors/blockchain/healthcheck.error.d.ts +8 -0
  160. package/src/lib/errors/blockchain/healthcheck.error.js +15 -0
  161. package/src/lib/errors/blockchain/inactive-account.error.d.ts +4 -0
  162. package/src/lib/errors/blockchain/inactive-account.error.js +11 -0
  163. package/src/lib/errors/blockchain/invalid-address.error.d.ts +8 -0
  164. package/src/lib/errors/blockchain/invalid-address.error.js +15 -0
  165. package/src/lib/errors/blockchain/low-gas.error.d.ts +7 -0
  166. package/src/lib/errors/blockchain/low-gas.error.js +14 -0
  167. package/src/lib/errors/blockchain/transaction-reverted.error.d.ts +7 -0
  168. package/src/lib/errors/blockchain/transaction-reverted.error.js +14 -0
  169. package/src/lib/errors/blockchain/tron-insufficient-native-balance.d.ts +7 -0
  170. package/src/lib/errors/blockchain/tron-insufficient-native-balance.js +14 -0
  171. package/src/lib/errors/blockchain/tron-transaction-expired.d.ts +7 -0
  172. package/src/lib/errors/blockchain/tron-transaction-expired.js +14 -0
  173. package/src/lib/errors/blockchain/user-reject.error.d.ts +7 -0
  174. package/src/lib/errors/blockchain/user-reject.error.js +14 -0
  175. package/src/lib/errors/blockchain/wrong-from-address.error.d.ts +7 -0
  176. package/src/lib/errors/blockchain/wrong-from-address.error.js +14 -0
  177. package/src/lib/errors/blockchain/wrong-receiver-address.error.d.ts +7 -0
  178. package/src/lib/errors/blockchain/wrong-receiver-address.error.js +14 -0
  179. package/src/lib/errors/common/timeout.error.d.ts +4 -0
  180. package/src/lib/errors/common/timeout.error.js +12 -0
  181. package/src/lib/errors/common/tx-reverted-in-chain.error.d.ts +4 -0
  182. package/src/lib/errors/common/tx-reverted-in-chain.error.js +11 -0
  183. package/src/lib/errors/cross-chain/cross-chain-is-unavailable.error.d.ts +7 -0
  184. package/src/lib/errors/cross-chain/cross-chain-is-unavailable.error.js +14 -0
  185. package/src/lib/errors/cross-chain/insufficient-funds-gas-price-value.error.d.ts +7 -0
  186. package/src/lib/errors/cross-chain/insufficient-funds-gas-price-value.error.js +14 -0
  187. package/src/lib/errors/cross-chain/low-to-slippage.error.d.ts +6 -0
  188. package/src/lib/errors/cross-chain/low-to-slippage.error.js +10 -0
  189. package/src/lib/errors/cross-chain/max-gas-price-overflow.error.d.ts +8 -0
  190. package/src/lib/errors/cross-chain/max-gas-price-overflow.error.js +15 -0
  191. package/src/lib/errors/cross-chain/too-low-amount.error.d.ts +7 -0
  192. package/src/lib/errors/cross-chain/too-low-amount.error.js +14 -0
  193. package/src/lib/errors/cross-chain/unsupported-receiver-address.error.d.ts +4 -0
  194. package/src/lib/errors/cross-chain/unsupported-receiver-address.error.js +11 -0
  195. package/src/lib/errors/cross-chain/updated-rates-error.d.ts +10 -0
  196. package/src/lib/errors/cross-chain/updated-rates-error.js +17 -0
  197. package/src/lib/errors/models/rubic-api-error.d.ts +21 -0
  198. package/src/lib/errors/models/rubic-api-error.js +2 -0
  199. package/src/lib/errors/on-chain/on-chain-is-unavailable.error.d.ts +7 -0
  200. package/src/lib/errors/on-chain/on-chain-is-unavailable.error.js +14 -0
  201. package/src/lib/errors/proxy/unapproved-contract-error.d.ts +8 -0
  202. package/src/lib/errors/proxy/unapproved-contract-error.js +15 -0
  203. package/src/lib/errors/proxy/unapproved-method-error.d.ts +8 -0
  204. package/src/lib/errors/proxy/unapproved-method-error.js +15 -0
  205. package/src/lib/errors/proxy/unlisted-error.d.ts +9 -0
  206. package/src/lib/errors/proxy/unlisted-error.js +16 -0
  207. package/src/lib/errors/rubic-sdk.error.d.ts +6 -0
  208. package/src/lib/errors/rubic-sdk.error.js +13 -0
  209. package/src/lib/errors/swap/bridgers-pair-is-unavailable.error.d.ts +7 -0
  210. package/src/lib/errors/swap/bridgers-pair-is-unavailable.error.js +14 -0
  211. package/src/lib/errors/swap/failed-to-check-for-transaction-receipt.error.d.ts +8 -0
  212. package/src/lib/errors/swap/failed-to-check-for-transaction-receipt.error.js +15 -0
  213. package/src/lib/errors/swap/insufficient-funds-oneinch.error.d.ts +9 -0
  214. package/src/lib/errors/swap/insufficient-funds-oneinch.error.js +15 -0
  215. package/src/lib/errors/swap/insufficient-funds.error.d.ts +11 -0
  216. package/src/lib/errors/swap/insufficient-funds.error.js +18 -0
  217. package/src/lib/errors/swap/insufficient-liquidity.error.d.ts +7 -0
  218. package/src/lib/errors/swap/insufficient-liquidity.error.js +14 -0
  219. package/src/lib/errors/swap/lifi-pair-is-unavailable.error.d.ts +7 -0
  220. package/src/lib/errors/swap/lifi-pair-is-unavailable.error.js +14 -0
  221. package/src/lib/errors/swap/low-slippage-deflationary-token.error.d.ts +7 -0
  222. package/src/lib/errors/swap/low-slippage-deflationary-token.error.js +14 -0
  223. package/src/lib/errors/swap/low-slippage.error.d.ts +8 -0
  224. package/src/lib/errors/swap/low-slippage.error.js +15 -0
  225. package/src/lib/errors/swap/max-amount.error.d.ts +7 -0
  226. package/src/lib/errors/swap/max-amount.error.js +14 -0
  227. package/src/lib/errors/swap/max-decimals.error.d.ts +5 -0
  228. package/src/lib/errors/swap/max-decimals.error.js +12 -0
  229. package/src/lib/errors/swap/min-amount.error.d.ts +7 -0
  230. package/src/lib/errors/swap/min-amount.error.js +14 -0
  231. package/src/lib/errors/swap/no-linked-account-erros.d.ts +4 -0
  232. package/src/lib/errors/swap/no-linked-account-erros.js +11 -0
  233. package/src/lib/errors/swap/not-supported-blockchain.d.ts +8 -0
  234. package/src/lib/errors/swap/not-supported-blockchain.js +15 -0
  235. package/src/lib/errors/swap/not-supported-region.d.ts +7 -0
  236. package/src/lib/errors/swap/not-supported-region.js +14 -0
  237. package/src/lib/errors/swap/not-supported-tokens.error.d.ts +7 -0
  238. package/src/lib/errors/swap/not-supported-tokens.error.js +14 -0
  239. package/src/lib/errors/swap/not-whitelisted-provider.error.d.ts +10 -0
  240. package/src/lib/errors/swap/not-whitelisted-provider.error.js +17 -0
  241. package/src/lib/errors/swap/simulation-failed.error.d.ts +6 -0
  242. package/src/lib/errors/swap/simulation-failed.error.js +12 -0
  243. package/src/lib/errors/swap/swap-error-on-provider-side.d.ts +7 -0
  244. package/src/lib/errors/swap/swap-error-on-provider-side.js +14 -0
  245. package/src/lib/errors/swap/swap-request.error.d.ts +7 -0
  246. package/src/lib/errors/swap/swap-request.error.js +14 -0
  247. package/src/lib/errors/swap/trade-expired.error.d.ts +4 -0
  248. package/src/lib/errors/swap/trade-expired.error.js +11 -0
  249. package/src/lib/errors/swap/unnecessary-approve.error.d.ts +7 -0
  250. package/src/lib/errors/swap/unnecessary-approve.error.js +14 -0
  251. package/src/lib/errors/swap/wallet-not-connected.error.d.ts +8 -0
  252. package/src/lib/errors/swap/wallet-not-connected.error.js +15 -0
  253. package/src/lib/errors/swap/wrong-network.error.d.ts +10 -0
  254. package/src/lib/errors/swap/wrong-network.error.js +16 -0
  255. package/src/lib/utils/constants/changenow-api-blockchain.d.ts +1 -2
  256. package/src/lib/utils/constants/changenow-api-blockchain.js +1 -1
  257. package/src/lib/utils/constants/web3-pure-store.d.ts +2 -2
  258. package/src/lib/utils/constants/web3-pure-store.js +20 -18
  259. package/src/lib/utils/models/contract-multicall-response.d.ts +1 -1
  260. package/src/lib/utils/models/evm-transaction-config.d.ts +2 -0
  261. package/src/lib/utils/models/primitive-types.d.ts +1 -1
  262. package/src/lib/utils/models/stellar-transaction-config.d.ts +3 -0
  263. package/src/lib/utils/models/stellar-transaction-config.js +2 -0
  264. package/src/lib/utils/models/tron-transaction-config.d.ts +1 -1
  265. package/src/lib/utils/web3-pure.d.ts +2 -2
  266. package/src/lib/utils/web3-pure.js +6 -7
  267. package/src/lib/utils/web3-types/bitcoin-web3-pure.d.ts +1 -1
  268. package/src/lib/utils/web3-types/common-web3-pure.js +0 -2
  269. package/src/lib/utils/web3-types/evm-web3-pure.d.ts +1 -1
  270. package/src/lib/utils/web3-types/icp-web3-pure.d.ts +1 -1
  271. package/src/lib/utils/web3-types/near-web3-pure.d.ts +6 -0
  272. package/src/lib/utils/web3-types/near-web3-pure.js +24 -0
  273. package/src/lib/utils/web3-types/solana-web3-pure.d.ts +2 -1
  274. package/src/lib/utils/web3-types/solana-web3-pure.js +11 -1
  275. package/src/lib/utils/web3-types/stellar-web3-pure.d.ts +5 -0
  276. package/src/lib/utils/web3-types/stellar-web3-pure.js +30 -0
  277. package/src/lib/utils/web3-types/sui-web3-pure.d.ts +8 -0
  278. package/src/lib/utils/web3-types/sui-web3-pure.js +27 -0
  279. package/src/lib/utils/web3-types/ton-web3-pure.d.ts +2 -1
  280. package/src/lib/utils/web3-types/ton-web3-pure.js +6 -0
  281. package/src/lib/utils/web3-types/tron-web3-pure.d.ts +8 -6
  282. package/src/lib/utils/web3-types/tron-web3-pure.js +18 -4
  283. package/src/lib/utils/web3-types/zcash-web3-pure.d.ts +5 -0
  284. package/src/lib/utils/web3-types/zcash-web3-pure.js +17 -0
  285. package/src/lib/adapter/adapters/abstract-adapter.d.ts +0 -19
  286. package/src/lib/adapter/adapters/abstract-adapter.js +0 -49
  287. package/src/lib/adapter/adapters/evm-adapter.d.ts +0 -34
  288. package/src/lib/adapter/adapters/evm-adapter.js +0 -247
  289. package/src/lib/adapter/adapters/solana-adapter.d.ts +0 -15
  290. package/src/lib/adapter/adapters/solana-adapter.js +0 -59
  291. package/src/lib/adapter/adapters/ton-adapter.d.ts +0 -22
  292. package/src/lib/adapter/adapters/ton-adapter.js +0 -100
  293. package/src/lib/adapter/adapters/tron-adapter.d.ts +0 -36
@@ -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);
@@ -97,5 +97,19 @@ class TronWeb3Pure extends common_web3_pure_1.CommonWeb3Pure {
97
97
  };
98
98
  }, {});
99
99
  }
100
+ static encodeMethodCall(contractAddress, contractAbi, methodName, methodArguments, callValue, feeLimit) {
101
+ const methodAbi = contractAbi.find((abiItem) => abiItem.name === methodName);
102
+ if (!methodAbi) {
103
+ throw new Error('Encode fail. No method in ABI');
104
+ }
105
+ const signature = `${methodAbi.name}(${this.flattenTypesToString(methodAbi.inputs).join(',')})`;
106
+ return {
107
+ to: contractAddress,
108
+ arguments: methodArguments,
109
+ signature,
110
+ ...(callValue && { callValue }),
111
+ ...(feeLimit && { feeLimit })
112
+ };
113
+ }
100
114
  }
101
115
  exports.TronWeb3Pure = TronWeb3Pure;
@@ -0,0 +1,5 @@
1
+ import { CommonWeb3Pure } from './common-web3-pure';
2
+ export declare class ZcashWeb3Pure extends CommonWeb3Pure {
3
+ constructor();
4
+ isAddressCorrect(address: string): Promise<boolean>;
5
+ }
@@ -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,19 +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
- protected constructor(blockchain: B, logger?: ICustomLogger);
13
- abstract callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token<BlockchainName>[]>;
14
- needPreswapAction(token: TokenAmount, contractAddress: 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
- }
@@ -1,49 +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
- 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(token, contractAddress, 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;
@@ -1,34 +0,0 @@
1
- import { Abi, MulticallResponse, MulticallParameters, PublicActions, PublicClient, WalletClient, WalletActions } 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
- export declare class EvmAdapter extends AbstractAdapter<PublicActions & PublicClient, WalletClient & WalletActions, EvmBlockchainName> implements ApproveAdapter {
10
- needPreswapAction(token: TokenAmount, contractAddress: string, walletAddress: string, amount: string): Promise<boolean>;
11
- handlePreswap(contractAddress: string, walletAddress: string, tokenAmount: TokenAmount): Promise<void>;
12
- constructor(adapterOptions: EvmAdapterOptions, logger?: ICustomLogger);
13
- protected createPublicClient(rpcList: string[]): PublicActions & PublicClient | null;
14
- read<T>(address: string, abi: Abi, method: string, methodArgs?: unknown[]): Promise<T>;
15
- writeContract(address: string, abi: Abi, method: string, value?: string, methodArgs?: unknown[]): Promise<string>;
16
- write(address: string, to: string, value: string, data: string): Promise<string>;
17
- multicallByContract<T>(contracts: MulticallParameters, allowErrors?: boolean): Promise<MulticallResponse<T>[]>;
18
- multicallByAddress<T>(address: string, abi: Abi, method: string, methodArgs?: unknown[][], allowErrors?: boolean): Promise<MulticallResponse<T>[]>;
19
- static encodeMethodCall(contractAddress: string, contractAbi: Abi, method: string, parameters?: unknown[], value?: string): EvmTransactionConfig;
20
- simulateTransaction(config: EvmTransactionConfig, from: string): Promise<void>;
21
- callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token<EvmBlockchainName>[]>;
22
- getGasPrice(): Promise<string>;
23
- checkEnoughBalance(token: TokenAmount | PriceTokenAmount, walletAddress: string, amount?: BigNumber): Promise<boolean>;
24
- /**
25
- * @param walletAddress
26
- * @param tokenAddress
27
- * @returns wei amount
28
- */
29
- getBalance(walletAddress: string, tokenAddress?: string): Promise<BigNumber>;
30
- getTransactionCount(walletAddress: string): Promise<number>;
31
- getAllowance(fromTokenAddress: string, walletAddress: string, spenderAddress: string): Promise<AllowanceInfo>;
32
- encodeApprove(tokenAddress: string, spenderAddress: string, amount?: string): EvmTransactionConfig;
33
- needApprove(token: TokenAmount, contractAddress: string, walletAddress: string, amount: string): Promise<boolean>;
34
- }
@@ -1,247 +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
- // @ts-ignore
140
- await this.core.call(callParams);
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
- }
247
- 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
- }
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TonAdapter = void 0;
4
- const core_1 = require("@cryptorubic/core");
5
- const ton_api_service_1 = require("./utils/ton-api.service");
6
- const ton_1 = require("@ton/ton");
7
- const bignumber_js_1 = require("bignumber.js");
8
- const abstract_adapter_1 = require("./abstract-adapter");
9
- const web3_pure_1 = require("../../utils/web3-pure");
10
- class TonAdapter extends abstract_adapter_1.AbstractAdapter {
11
- constructor(httpClient, config, logger) {
12
- super(core_1.BLOCKCHAIN_NAME.TON, logger);
13
- this.tonApi = new ton_api_service_1.TonApiService(httpClient, config.tonApiConfig);
14
- this.tonClient = new ton_1.TonClient(config.tonClientConfig);
15
- }
16
- async callForTokensInfo(tokenAddresses) {
17
- const info = await Promise.all(tokenAddresses.map((address) => {
18
- if (web3_pure_1.Web3Pure.isNativeAddress(core_1.BLOCKCHAIN_NAME.TON, address)) {
19
- const nativeToken = core_1.nativeTokensList[core_1.BLOCKCHAIN_NAME.TON];
20
- return nativeToken;
21
- }
22
- return this.tonApi.fetchTokenInfo(address);
23
- }));
24
- if (!info.length)
25
- return [];
26
- const necessaryInfo = info.map(({ decimals, name, symbol, address }) => new core_1.Token({
27
- address,
28
- blockchain: core_1.BLOCKCHAIN_NAME.TON,
29
- decimals: Number(decimals),
30
- name,
31
- symbol
32
- }));
33
- return necessaryInfo;
34
- }
35
- read(args) {
36
- throw new Error('Not implemented');
37
- }
38
- write(args) {
39
- throw new Error('Not implemented');
40
- }
41
- async getAllFormatsOfAddress(walletAddress) {
42
- return this.tonApi.getAllFormatsOfAddress(walletAddress);
43
- }
44
- async getWalletAddress(address, contractAddress) {
45
- const addressResult = await this.tonClient.runMethod(contractAddress, 'get_wallet_address', [
46
- { cell: (0, ton_1.beginCell)().storeAddress(address).endCell(), type: 'slice' }
47
- ]);
48
- return addressResult.stack.readAddress();
49
- }
50
- async checkEnoughTokenBalance(token, walletAddress, amount = token.tokenAmount) {
51
- const weiBalance = await this.getBalance(walletAddress, token.isNative ? undefined : token.address);
52
- const balance = core_1.Token.fromWei(weiBalance, token.decimals);
53
- return balance.gte(amount);
54
- }
55
- async getBalance(walletAddress, tokenAddress) {
56
- const isNative = !tokenAddress || web3_pure_1.Web3Pure.isNativeAddress(core_1.BLOCKCHAIN_NAME.TON, tokenAddress);
57
- const tokenBalance = isNative
58
- ? (await this.tonApi.fetchAccountInfo(walletAddress)).balance
59
- : (await this.tonApi.fetchTokenInfoForWallet(walletAddress, tokenAddress)).balance;
60
- return new bignumber_js_1.default(tokenBalance || 0);
61
- }
62
- getTransferEncodedConfig(tokenAddress, walletAddress, receiver, amount) {
63
- if ((0, core_1.compareAddresses)(core_1.nativeTokensList.TON.address, tokenAddress)) {
64
- return this.getTransferNativeConfig(receiver, amount);
65
- }
66
- return this.getTransferJettonConfig(tokenAddress, walletAddress, receiver, amount);
67
- }
68
- async getTransferNativeConfig(receiver, amount) {
69
- const transferAmount = BigInt(amount);
70
- const encodeConfig = {
71
- address: receiver,
72
- amount: transferAmount.toString()
73
- };
74
- return encodeConfig;
75
- }
76
- async getTransferJettonConfig(tokenAddress, walletAddress, receiver, amount) {
77
- const fromAddress = ton_1.Address.parse(walletAddress);
78
- const contractAddress = ton_1.Address.parse(tokenAddress);
79
- const transferAmount = BigInt(amount);
80
- const receiverAddress = ton_1.Address.parse(receiver);
81
- const jettonWalletAddress = await this.getWalletAddress(fromAddress, contractAddress);
82
- const body = (0, ton_1.beginCell)()
83
- .storeUint(0xf8a7ea5, 32)
84
- .storeUint(0, 64)
85
- .storeCoins(transferAmount)
86
- .storeAddress(receiverAddress)
87
- .storeAddress(receiverAddress)
88
- .storeBit(0)
89
- .storeCoins((0, ton_1.toNano)('0.02'))
90
- .storeBit(0)
91
- .endCell();
92
- const encodeConfig = {
93
- address: jettonWalletAddress.toRawString(),
94
- amount: (0, ton_1.toNano)('0.05').toString(),
95
- payload: body.toBoc().toString('base64')
96
- };
97
- return encodeConfig;
98
- }
99
- }
100
- exports.TonAdapter = TonAdapter;