@cryptorubic/web3 0.8.16-alpha-usdt-zero-bridge.1 → 0.8.16-alpha-usdt-zero-bridge.2

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 (225) hide show
  1. package/package.json +3 -1
  2. package/src/index.d.ts +130 -22
  3. package/src/index.js +130 -20
  4. package/src/lib/adapter/adapters/adapter-bitcoin/bitcoin-adapter.d.ts +38 -0
  5. package/src/lib/adapter/adapters/{bitcoin-adapter.js → adapter-bitcoin/bitcoin-adapter.js} +35 -13
  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/{evm-adapter.js → adapter-evm/evm-adapter.js} +215 -87
  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 +268 -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/{utils → adapter-solana/services}/solana-tokens-service.d.ts +1 -1
  28. package/src/lib/adapter/adapters/{utils → adapter-solana/services}/solana-tokens-service.js +2 -2
  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/{solana-adapter.d.ts → adapter-solana/solana-adapter.d.ts} +25 -15
  32. package/src/lib/adapter/adapters/{solana-adapter.js → adapter-solana/solana-adapter.js} +60 -38
  33. package/src/lib/adapter/adapters/adapter-sui/models/sui-send-tx-params.d.ts +8 -0
  34. package/src/lib/adapter/adapters/adapter-sui/models/sui-send-tx-params.js +2 -0
  35. package/src/lib/adapter/adapters/adapter-sui/signer/sui-adapter-signer.d.ts +17 -0
  36. package/src/lib/adapter/adapters/adapter-sui/signer/sui-adapter-signer.js +55 -0
  37. package/src/lib/adapter/adapters/adapter-sui/sui-adapter.d.ts +32 -0
  38. package/src/lib/adapter/adapters/{sui-adapter.js → adapter-sui/sui-adapter.js} +45 -9
  39. package/src/lib/adapter/adapters/adapter-ton/models/ton-send-tx-params.d.ts +26 -0
  40. package/src/lib/adapter/adapters/adapter-ton/models/ton-send-tx-params.js +2 -0
  41. package/src/lib/adapter/adapters/{utils → adapter-ton/services}/ton-api.service.d.ts +4 -4
  42. package/src/lib/adapter/adapters/adapter-ton/signer/ton-adapter-signer.d.ts +43 -0
  43. package/src/lib/adapter/adapters/adapter-ton/signer/ton-adapter-signer.js +166 -0
  44. package/src/lib/adapter/adapters/adapter-ton/ton-adapter.d.ts +32 -0
  45. package/src/lib/adapter/adapters/adapter-ton/ton-adapter.js +104 -0
  46. package/src/lib/adapter/adapters/adapter-tron/models/tron-send-tx-params.d.ts +13 -0
  47. package/src/lib/adapter/adapters/adapter-tron/models/tron-send-tx-params.js +2 -0
  48. package/src/lib/adapter/adapters/adapter-tron/models/tron-web-provider.d.ts +4 -0
  49. package/src/lib/adapter/adapters/adapter-tron/models/tron-web-provider.js +2 -0
  50. package/src/lib/adapter/adapters/adapter-tron/signer/tron-adapter-signer.d.ts +17 -0
  51. package/src/lib/adapter/adapters/adapter-tron/signer/tron-adapter-signer.js +57 -0
  52. package/src/lib/adapter/adapters/adapter-tron/tron-adapter.d.ts +57 -0
  53. package/src/lib/adapter/adapters/{tron-adapter.js → adapter-tron/tron-adapter.js} +131 -66
  54. package/src/lib/adapter/adapters/adapter-tron/utils/parse-tron-error.d.ts +2 -0
  55. package/src/lib/adapter/adapters/adapter-tron/utils/parse-tron-error.js +20 -0
  56. package/src/lib/adapter/adapters/common/abstract-adapter.d.ts +84 -0
  57. package/src/lib/adapter/adapters/common/abstract-adapter.js +82 -0
  58. package/src/lib/adapter/adapters/common/signer/abstract-adapter-signer.d.ts +22 -0
  59. package/src/lib/adapter/adapters/common/signer/abstract-adapter-signer.js +42 -0
  60. package/src/lib/adapter/adapters/models/approve-adapter.d.ts +12 -8
  61. package/src/lib/adapter/adapters/models/approve-adapter.js +1 -1
  62. package/src/lib/adapter/adapters/models/basic-transaction-options.d.ts +1 -1
  63. package/src/lib/adapter/adapters/models/evm-web3-public-models/batch-call.d.ts +5 -0
  64. package/src/lib/adapter/adapters/models/evm-web3-public-models/batch-call.js +2 -0
  65. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-call.d.ts +4 -0
  66. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-call.js +2 -0
  67. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-multicall-response.d.ts +4 -0
  68. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-multicall-response.js +2 -0
  69. package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price-viem.d.ts +18 -0
  70. package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price-viem.js +2 -0
  71. package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price.js +2 -0
  72. package/src/lib/adapter/adapters/models/evm-web3-public-models/permit2-contract-types.d.ts +10 -0
  73. package/src/lib/adapter/adapters/models/evm-web3-public-models/permit2-contract-types.js +2 -0
  74. package/src/lib/adapter/adapters/models/evm-web3-public-models/rpc-response.d.ts +5 -0
  75. package/src/lib/adapter/adapters/models/evm-web3-public-models/rpc-response.js +2 -0
  76. package/src/lib/adapter/adapters/models/old-features-models/contract-params.d.ts +23 -0
  77. package/src/lib/adapter/adapters/models/old-features-models/contract-params.js +2 -0
  78. package/src/lib/adapter/adapters/models/old-features-models/encode-transaction-options.d.ts +32 -0
  79. package/src/lib/adapter/adapters/models/old-features-models/encode-transaction-options.js +2 -0
  80. package/src/lib/adapter/adapters/models/old-features-models/is-deflation-token.d.ts +6 -0
  81. package/src/lib/adapter/adapters/models/old-features-models/is-deflation-token.js +2 -0
  82. package/src/lib/adapter/adapters/models/old-features-models/non-evm-chain-address-correct-response.d.ts +5 -0
  83. package/src/lib/adapter/adapters/models/old-features-models/non-evm-chain-address-correct-response.js +2 -0
  84. package/src/lib/adapter/adapters/models/old-features-models/swap-transaction-options.d.ts +65 -0
  85. package/src/lib/adapter/adapters/models/old-features-models/swap-transaction-options.js +2 -0
  86. package/src/lib/adapter/adapters/models/status-manager-models/tx-status-data.d.ts +8 -0
  87. package/src/lib/adapter/adapters/models/status-manager-models/tx-status-data.js +2 -0
  88. package/src/lib/adapter/adapters/models/web3-public-models/contract-multicall-response.d.ts +5 -0
  89. package/src/lib/adapter/adapters/models/web3-public-models/contract-multicall-response.js +2 -0
  90. package/src/lib/adapter/adapters/models/web3-public-models/method-data.d.ts +4 -0
  91. package/src/lib/adapter/adapters/models/web3-public-models/method-data.js +2 -0
  92. package/src/lib/adapter/adapters/models/web3-public-models/supported-token-field.d.ts +1 -0
  93. package/src/lib/adapter/adapters/models/web3-public-models/supported-token-field.js +2 -0
  94. package/src/lib/adapter/adapters/models/web3-public-models/tx-status.d.ts +10 -0
  95. package/src/lib/adapter/adapters/models/web3-public-models/tx-status.js +12 -0
  96. package/src/lib/adapter/adapters/utils/errors.d.ts +2 -0
  97. package/src/lib/adapter/adapters/utils/errors.js +10 -0
  98. package/src/lib/adapter/adapters/utils/options.d.ts +10 -0
  99. package/src/lib/adapter/adapters/utils/options.js +59 -0
  100. package/src/lib/adapter/adapters/utils/waitFor.d.ts +1 -0
  101. package/src/lib/adapter/adapters/utils/waitFor.js +6 -0
  102. package/src/lib/adapter/blockchain-adapter-factory.service.d.ts +15 -13
  103. package/src/lib/adapter/blockchain-adapter-factory.service.js +44 -61
  104. package/src/lib/adapter/constants/chain-configs/chain-configs.d.ts +1 -1
  105. package/src/lib/adapter/constants/chain-configs/chain-configs.js +92 -56
  106. package/src/lib/adapter/constants/models/env-type.d.ts +1 -0
  107. package/src/lib/adapter/constants/models/env-type.js +2 -0
  108. package/src/lib/adapter/constants/models/solana-web3.d.ts +1 -1
  109. package/src/lib/adapter/constants/rubic-api-link-mapping.d.ts +2 -0
  110. package/src/lib/adapter/constants/rubic-api-link-mapping.js +16 -0
  111. package/src/lib/adapter/constants/viem-blockchain-mapping.d.ts +1 -1
  112. package/src/lib/adapter/constants/viem-blockchain-mapping.js +4 -3
  113. package/src/lib/adapter/models/create-factory-params.d.ts +23 -0
  114. package/src/lib/adapter/models/create-factory-params.js +2 -0
  115. package/src/lib/errors/blockchain/deflation-token.error.d.ts +11 -0
  116. package/src/lib/errors/blockchain/deflation-token.error.js +16 -0
  117. package/src/lib/errors/blockchain/healthcheck.error.d.ts +8 -0
  118. package/src/lib/errors/blockchain/healthcheck.error.js +15 -0
  119. package/src/lib/errors/blockchain/invalid-address.error.d.ts +8 -0
  120. package/src/lib/errors/blockchain/invalid-address.error.js +15 -0
  121. package/src/lib/errors/blockchain/low-gas.error.d.ts +7 -0
  122. package/src/lib/errors/blockchain/low-gas.error.js +14 -0
  123. package/src/lib/errors/blockchain/transaction-reverted.error.d.ts +7 -0
  124. package/src/lib/errors/blockchain/transaction-reverted.error.js +14 -0
  125. package/src/lib/errors/blockchain/tron-insufficient-native-balance.d.ts +7 -0
  126. package/src/lib/errors/blockchain/tron-insufficient-native-balance.js +14 -0
  127. package/src/lib/errors/blockchain/tron-transaction-expired.d.ts +7 -0
  128. package/src/lib/errors/blockchain/tron-transaction-expired.js +14 -0
  129. package/src/lib/errors/blockchain/user-reject.error.d.ts +7 -0
  130. package/src/lib/errors/blockchain/user-reject.error.js +14 -0
  131. package/src/lib/errors/blockchain/wrong-from-address.error.d.ts +7 -0
  132. package/src/lib/errors/blockchain/wrong-from-address.error.js +14 -0
  133. package/src/lib/errors/blockchain/wrong-receiver-address.error.d.ts +7 -0
  134. package/src/lib/errors/blockchain/wrong-receiver-address.error.js +14 -0
  135. package/src/lib/errors/common/timeout.error.d.ts +4 -0
  136. package/src/lib/errors/common/timeout.error.js +12 -0
  137. package/src/lib/errors/common/tx-reverted-in-chain.error.d.ts +4 -0
  138. package/src/lib/errors/common/tx-reverted-in-chain.error.js +11 -0
  139. package/src/lib/errors/cross-chain/cross-chain-is-unavailable.error.d.ts +7 -0
  140. package/src/lib/errors/cross-chain/cross-chain-is-unavailable.error.js +14 -0
  141. package/src/lib/errors/cross-chain/insufficient-funds-gas-price-value.error.d.ts +7 -0
  142. package/src/lib/errors/cross-chain/insufficient-funds-gas-price-value.error.js +14 -0
  143. package/src/lib/errors/cross-chain/low-to-slippage.error.d.ts +6 -0
  144. package/src/lib/errors/cross-chain/low-to-slippage.error.js +10 -0
  145. package/src/lib/errors/cross-chain/max-gas-price-overflow.error.d.ts +8 -0
  146. package/src/lib/errors/cross-chain/max-gas-price-overflow.error.js +15 -0
  147. package/src/lib/errors/cross-chain/too-low-amount.error.d.ts +7 -0
  148. package/src/lib/errors/cross-chain/too-low-amount.error.js +14 -0
  149. package/src/lib/errors/cross-chain/unsupported-receiver-address.error.d.ts +4 -0
  150. package/src/lib/errors/cross-chain/unsupported-receiver-address.error.js +11 -0
  151. package/src/lib/errors/cross-chain/updated-rates-error.d.ts +10 -0
  152. package/src/lib/errors/cross-chain/updated-rates-error.js +17 -0
  153. package/src/lib/errors/models/rubic-api-error.d.ts +21 -0
  154. package/src/lib/errors/models/rubic-api-error.js +2 -0
  155. package/src/lib/errors/on-chain/on-chain-is-unavailable.error.d.ts +7 -0
  156. package/src/lib/errors/on-chain/on-chain-is-unavailable.error.js +14 -0
  157. package/src/lib/errors/proxy/unapproved-contract-error.d.ts +8 -0
  158. package/src/lib/errors/proxy/unapproved-contract-error.js +15 -0
  159. package/src/lib/errors/proxy/unapproved-method-error.d.ts +8 -0
  160. package/src/lib/errors/proxy/unapproved-method-error.js +15 -0
  161. package/src/lib/errors/proxy/unlisted-error.d.ts +9 -0
  162. package/src/lib/errors/proxy/unlisted-error.js +16 -0
  163. package/src/lib/errors/rubic-sdk.error.d.ts +6 -0
  164. package/src/lib/errors/rubic-sdk.error.js +13 -0
  165. package/src/lib/errors/swap/bridgers-pair-is-unavailable.error.d.ts +7 -0
  166. package/src/lib/errors/swap/bridgers-pair-is-unavailable.error.js +14 -0
  167. package/src/lib/errors/swap/failed-to-check-for-transaction-receipt.error.d.ts +8 -0
  168. package/src/lib/errors/swap/failed-to-check-for-transaction-receipt.error.js +15 -0
  169. package/src/lib/errors/swap/insufficient-funds-oneinch.error.d.ts +9 -0
  170. package/src/lib/errors/swap/insufficient-funds-oneinch.error.js +15 -0
  171. package/src/lib/errors/swap/insufficient-funds.error.d.ts +11 -0
  172. package/src/lib/errors/swap/insufficient-funds.error.js +18 -0
  173. package/src/lib/errors/swap/insufficient-liquidity.error.d.ts +7 -0
  174. package/src/lib/errors/swap/insufficient-liquidity.error.js +14 -0
  175. package/src/lib/errors/swap/lifi-pair-is-unavailable.error.d.ts +7 -0
  176. package/src/lib/errors/swap/lifi-pair-is-unavailable.error.js +14 -0
  177. package/src/lib/errors/swap/low-slippage-deflationary-token.error.d.ts +7 -0
  178. package/src/lib/errors/swap/low-slippage-deflationary-token.error.js +14 -0
  179. package/src/lib/errors/swap/low-slippage.error.d.ts +8 -0
  180. package/src/lib/errors/swap/low-slippage.error.js +15 -0
  181. package/src/lib/errors/swap/max-amount.error.d.ts +7 -0
  182. package/src/lib/errors/swap/max-amount.error.js +14 -0
  183. package/src/lib/errors/swap/max-decimals.error.d.ts +5 -0
  184. package/src/lib/errors/swap/max-decimals.error.js +12 -0
  185. package/src/lib/errors/swap/min-amount.error.d.ts +7 -0
  186. package/src/lib/errors/swap/min-amount.error.js +14 -0
  187. package/src/lib/errors/swap/no-linked-account-erros.d.ts +4 -0
  188. package/src/lib/errors/swap/no-linked-account-erros.js +11 -0
  189. package/src/lib/errors/swap/not-supported-blockchain.d.ts +8 -0
  190. package/src/lib/errors/swap/not-supported-blockchain.js +15 -0
  191. package/src/lib/errors/swap/not-supported-region.d.ts +7 -0
  192. package/src/lib/errors/swap/not-supported-region.js +14 -0
  193. package/src/lib/errors/swap/not-supported-tokens.error.d.ts +7 -0
  194. package/src/lib/errors/swap/not-supported-tokens.error.js +14 -0
  195. package/src/lib/errors/swap/not-whitelisted-provider.error.d.ts +10 -0
  196. package/src/lib/errors/swap/not-whitelisted-provider.error.js +17 -0
  197. package/src/lib/errors/swap/simulation-failed.error.d.ts +6 -0
  198. package/src/lib/errors/swap/simulation-failed.error.js +12 -0
  199. package/src/lib/errors/swap/swap-error-on-provider-side.d.ts +7 -0
  200. package/src/lib/errors/swap/swap-error-on-provider-side.js +14 -0
  201. package/src/lib/errors/swap/swap-request.error.d.ts +7 -0
  202. package/src/lib/errors/swap/swap-request.error.js +14 -0
  203. package/src/lib/errors/swap/trade-expired.error.d.ts +4 -0
  204. package/src/lib/errors/swap/trade-expired.error.js +11 -0
  205. package/src/lib/errors/swap/unnecessary-approve.error.d.ts +7 -0
  206. package/src/lib/errors/swap/unnecessary-approve.error.js +14 -0
  207. package/src/lib/errors/swap/wallet-not-connected.error.d.ts +8 -0
  208. package/src/lib/errors/swap/wallet-not-connected.error.js +15 -0
  209. package/src/lib/errors/swap/wrong-network.error.d.ts +10 -0
  210. package/src/lib/errors/swap/wrong-network.error.js +16 -0
  211. package/src/lib/utils/constants/web3-pure-store.js +10 -6
  212. package/src/lib/utils/models/evm-transaction-config.d.ts +2 -0
  213. package/src/lib/utils/web3-types/zcash-web3-pure.d.ts +5 -0
  214. package/src/lib/utils/web3-types/zcash-web3-pure.js +17 -0
  215. package/src/lib/adapter/adapters/abstract-adapter.d.ts +0 -23
  216. package/src/lib/adapter/adapters/abstract-adapter.js +0 -59
  217. package/src/lib/adapter/adapters/bitcoin-adapter.d.ts +0 -18
  218. package/src/lib/adapter/adapters/evm-adapter.d.ts +0 -59
  219. package/src/lib/adapter/adapters/sui-adapter.d.ts +0 -17
  220. package/src/lib/adapter/adapters/ton-adapter.d.ts +0 -22
  221. package/src/lib/adapter/adapters/ton-adapter.js +0 -100
  222. package/src/lib/adapter/adapters/tron-adapter.d.ts +0 -37
  223. /package/src/lib/adapter/adapters/{models/gas-price.js → adapter-bitcoin/models/btc-send-tx-params.js} +0 -0
  224. /package/src/lib/adapter/adapters/{utils → adapter-ton/services}/ton-api.service.js +0 -0
  225. /package/src/lib/adapter/adapters/models/{gas-price.d.ts → evm-web3-public-models/gas-price.d.ts} +0 -0
@@ -12,6 +12,7 @@ const sui_web3_pure_1 = require("../web3-types/sui-web3-pure");
12
12
  const ton_web3_pure_1 = require("../web3-types/ton-web3-pure");
13
13
  const tron_web3_pure_1 = require("../web3-types/tron-web3-pure");
14
14
  const changenow_api_blockchain_1 = require("./changenow-api-blockchain");
15
+ const zcash_web3_pure_1 = require("../web3-types/zcash-web3-pure");
15
16
  exports.web3PureStore = {
16
17
  [core_1.CHAIN_TYPE.EVM]: new evm_web3_pure_1.EvmWeb3Pure(),
17
18
  [core_1.CHAIN_TYPE.SUI]: new sui_web3_pure_1.SuiWeb3Pure(),
@@ -23,13 +24,16 @@ exports.web3PureStore = {
23
24
  [core_1.CHAIN_TYPE.BITCOIN_GOLD]: new bitcoin_web3_pure_1.BitcoinWeb3Pure(),
24
25
  [core_1.CHAIN_TYPE.BSV]: new bitcoin_web3_pure_1.BitcoinWeb3Pure(),
25
26
  [core_1.CHAIN_TYPE.NEAR]: new near_web3_pure_1.NearWeb3Pure(),
27
+ [core_1.CHAIN_TYPE.ZCASH]: new zcash_web3_pure_1.ZcashWeb3Pure(),
26
28
  // Common Web3
27
29
  [core_1.CHAIN_TYPE.RIPPLE]: new common_web3_pure_1.CommonWeb3Pure({
28
30
  cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.RIPPLE,
29
31
  regex: /^r[1-9A-HJ-NP-Za-km-z]{25,34}$/
30
32
  }),
31
33
  [core_1.CHAIN_TYPE.CARDANO]: new common_web3_pure_1.CommonWeb3Pure({
32
- cnApiKey: changenow_api_blockchain_1.changenowApiBlockchain.CARDANO,
34
+ /*
35
+ * cnApi returns invalid info
36
+ */
33
37
  regex: /^([1-9A-HJ-NP-Za-km-z]{59,104})|([0-9A-Za-z]{58,104})$/
34
38
  }),
35
39
  [core_1.CHAIN_TYPE.DOGECOIN]: new common_web3_pure_1.CommonWeb3Pure({
@@ -214,6 +218,11 @@ exports.web3PureStore = {
214
218
  // cnApiKey: changenowApiBlockchain.RIPPLE,
215
219
  // regex: ?
216
220
  }),
221
+ [core_1.CHAIN_TYPE.STARKNET]: new common_web3_pure_1.CommonWeb3Pure({
222
+ // @TODO
223
+ // cnApiKey: changenowApiBlockchain.RIPPLE,
224
+ // regex: ?
225
+ }),
217
226
  [core_1.CHAIN_TYPE.IOST]: new common_web3_pure_1.CommonWeb3Pure({
218
227
  // @TODO
219
228
  // cnApiKey: changenowApiBlockchain.RIPPLE,
@@ -319,11 +328,6 @@ exports.web3PureStore = {
319
328
  // cnApiKey: changenowApiBlockchain.RIPPLE,
320
329
  // regex: ?
321
330
  }),
322
- [core_1.CHAIN_TYPE.ZCASH]: new common_web3_pure_1.CommonWeb3Pure({
323
- // @TODO
324
- // cnApiKey: changenowApiBlockchain.RIPPLE,
325
- // regex: ?
326
- }),
327
331
  [core_1.CHAIN_TYPE.HORIZEN]: new common_web3_pure_1.CommonWeb3Pure({
328
332
  // @TODO
329
333
  // cnApiKey: changenowApiBlockchain.RIPPLE,
@@ -1,3 +1,4 @@
1
+ import { ErrorInterface } from '@cryptorubic/core';
1
2
  export interface EvmTransactionConfig {
2
3
  to: string;
3
4
  data: string;
@@ -6,4 +7,5 @@ export interface EvmTransactionConfig {
6
7
  gasPrice?: string;
7
8
  maxFeePerGas?: string;
8
9
  maxPriorityFeePerGas?: string;
10
+ warnings?: ErrorInterface[];
9
11
  }
@@ -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,23 +0,0 @@
1
- import BigNumber from 'bignumber.js';
2
- import { ICustomLogger, Token, TokenAmount, BlockchainName, PriceTokenAmount } 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 checkEnoughBalance(token: TokenAmount | PriceTokenAmount, walletAddress: string): Promise<boolean>;
17
- abstract callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token<BlockchainName>[]>;
18
- needPreswapAction(token: TokenAmount, contractAddress: string, walletAddress: string, amount: string | BigNumber): Promise<boolean>;
19
- handlePreswap(contractAddress: string, walletAddress: string, tokenAmount: TokenAmount): Promise<void>;
20
- abstract read<T>(...args: unknown[]): Promise<T>;
21
- abstract write(...args: unknown[]): Promise<string>;
22
- static getRandomBytes(bytes: number): string;
23
- }
@@ -1,59 +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
- handlePreswap(contractAddress, walletAddress, tokenAmount) {
52
- return Promise.resolve();
53
- }
54
- static getRandomBytes(bytes) {
55
- const randomBytes = crypto.getRandomValues(new Uint8Array(bytes));
56
- return (0, viem_1.bytesToHex)(randomBytes);
57
- }
58
- }
59
- exports.AbstractAdapter = AbstractAdapter;
@@ -1,18 +0,0 @@
1
- import { BitcoinBlockchainName, BlockchainName, HttpClient, ICustomLogger, PriceTokenAmount, Token, TokenAmount } from '@cryptorubic/core';
2
- import BigNumber from 'bignumber.js';
3
- import { AbstractAdapter } from './abstract-adapter';
4
- import { BasicTransactionOptions } from './models/basic-transaction-options';
5
- import { BtcWallet } from './models/btc-wallet-provider';
6
- export declare class BitcoinAdapter extends AbstractAdapter<BtcWallet, BtcWallet, BitcoinBlockchainName> {
7
- private readonly httpClient;
8
- constructor(httpClient: HttpClient, logger?: ICustomLogger);
9
- getBalance(userAddress: string): Promise<BigNumber>;
10
- getPublicKey(userAddress: string): Promise<string | null>;
11
- checkEnoughBalance(token: TokenAmount | PriceTokenAmount, walletAddress: string): Promise<boolean>;
12
- callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token<BlockchainName>[]>;
13
- read<T>(args: unknown): Promise<T>;
14
- write(args: unknown): Promise<string>;
15
- getPublicKeyFromWallet(): Promise<string>;
16
- transfer(recipient: string, amount: string, fromAddress: string, memo?: string, options?: BasicTransactionOptions): Promise<string>;
17
- sendPsbtTransaction(psbt: string, userAddress: string, inputIndexes: number[], options?: BasicTransactionOptions): Promise<string>;
18
- }
@@ -1,59 +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, timeout?: number): 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
- needPermit2Approve(token: TokenAmount, permit2Address: string, walletAddress: string, spenderAddress: string): Promise<boolean>;
37
- encodePermit2Approve(tokenAddress: string, spenderAddress: string, permit2Address: string, expiration: string, amount: string): EvmTransactionConfig;
38
- approveOnPermit2(fromAddress: string, tokenAddress: string, permit2Address: string, spenderAddress: string, deadline?: BigNumber, amount?: BigNumber): Promise<string>;
39
- /**
40
- * Calculates EIP-1559 specific gas details.
41
- * @see {@link https://github.com/ethers-io/ethers.js/blob/master/packages/abstract-provider/src.ts/index.ts#L235}
42
- * @returns block baseFee, average maxPriorityFeePerGas, and maxFeePerGas.
43
- */
44
- getPriorityFeeGas(): Promise<GasPrice>;
45
- /**
46
- * Gets block by block id.
47
- * @param [blockId] Block id: hash, number ... Default is 'latest'.
48
- * @returns Block by blockId parameter.
49
- */
50
- getBlock(blockType?: BlockNumber | BlockTag): Promise<GetBlockReturnType>;
51
- /**
52
- * Estimates average maxPriorityFeePerGas for EIP-1559 transactions based on last 20 blocks.
53
- * @see {@link https://docs.alchemy.com/docs/how-to-build-a-gas-fee-estimator-using-eip-1559}
54
- * @returns Average maxPriorityFeePerGas in wei
55
- */
56
- getMaxPriorityFeePerGas(): Promise<number>;
57
- getBaseFeePerGas(blockNumber: bigint): Promise<number>;
58
- private handlePossibleError;
59
- }
@@ -1,17 +0,0 @@
1
- import { Abi, MulticallResponse, MulticallParameters } from 'viem';
2
- import { AbstractAdapter } from './abstract-adapter';
3
- import { ICustomLogger, PriceTokenAmount, SuiBlockchainName, Token, TokenAmount } from '@cryptorubic/core';
4
- import { EvmTransactionConfig } from '../../utils/models/evm-transaction-config';
5
- import { SuiClient } from '@mysten/sui/client';
6
- import BigNumber from 'bignumber.js';
7
- export declare class SuiAdapter extends AbstractAdapter<SuiClient, SuiClient, SuiBlockchainName> {
8
- constructor(rpcList: string[], logger?: ICustomLogger);
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<SuiBlockchainName>[]>;
15
- checkEnoughBalance(token: TokenAmount | PriceTokenAmount, walletAddress: string): Promise<boolean>;
16
- getBalance(userAddress: string, tokenAddress: string): Promise<BigNumber>;
17
- }
@@ -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
- checkEnoughBalance(token: TokenAmount | PriceTokenAmount, walletAddress: string): 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, logger);
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 checkEnoughBalance(token, walletAddress) {
51
- const weiBalance = await this.getBalance(walletAddress, token.address);
52
- const balance = core_1.Token.fromWei(weiBalance, token.decimals);
53
- return balance.gte(token.tokenAmount);
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;
@@ -1,37 +0,0 @@
1
- import BigNumber from 'bignumber.js';
2
- import { AbstractAdapter } from './abstract-adapter';
3
- import { TronWeb } from 'tronweb';
4
- import { ICustomLogger, PriceTokenAmount, Token, TokenAmount, TronBlockchainName } from '@cryptorubic/core';
5
- import { TronTransactionConfig } from '../../utils/models/tron-transaction-config';
6
- import { TronParameters } from '../../utils/models/tron-parameters';
7
- import { Abi } from 'viem';
8
- import { ApproveAdapter } from './models/approve-adapter';
9
- import { AllowanceInfo } from './models/common-types';
10
- import { ContractMulticallResponse } from '../../utils/models/contract-multicall-response';
11
- import { TronWeb3PrimitiveType } from '../../utils/models/primitive-types';
12
- import { MethodData } from '../../utils/models/method-data';
13
- export declare class TronAdapter extends AbstractAdapter<TronWeb, TronWeb, TronBlockchainName> implements ApproveAdapter<TronTransactionConfig> {
14
- private readonly multicallAddress;
15
- needPreswapAction(token: TokenAmount, contractAddress: string, walletAddress: string, amount: string): Promise<boolean>;
16
- constructor(rpcList: string[], logger?: ICustomLogger);
17
- checkEnoughBalance(token: TokenAmount | PriceTokenAmount, walletAddress: string): Promise<boolean>;
18
- multicallContractsMethods<Output extends TronWeb3PrimitiveType>(contractAbi: any, contractsData: {
19
- contractAddress: string;
20
- methodsData: MethodData[];
21
- }[]): Promise<ContractMulticallResponse<any>[][]>;
22
- private multicall;
23
- read<T>(contractAddress: string, contractAbi: any, methodName: string, methodArguments?: unknown[]): Promise<T>;
24
- private multicallContractsMethodsByOne;
25
- getTokensBalances(userAddress: string, tokensAddresses: string[]): Promise<BigNumber[]>;
26
- callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token[]>;
27
- getBalance(userAddress: string, tokenAddress?: string): Promise<BigNumber>;
28
- getTokenBalance(userAddress: string, tokenAddress: string): Promise<BigNumber>;
29
- convertTronAddressToHex(address: string): Promise<string>;
30
- static encodeMethodCall(contractAddress: string, contractAbi: Abi, methodName: string, methodArguments: TronParameters, callValue?: string, feeLimit?: number): TronTransactionConfig;
31
- private static flattenTypesToString;
32
- needApprove(from: TokenAmount | PriceTokenAmount, walletAddress: string, spender: string): Promise<boolean>;
33
- encodeApprove(tokenAddress: string, spenderAddress: string, amount?: string): TronTransactionConfig;
34
- getAllowance(fromTokenAddress: string, walletAddress: string, spender: string): Promise<AllowanceInfo>;
35
- write(contractAddress: string, methodSignature: string, parameters: TronParameters): Promise<string>;
36
- approve(fromAddress: string, tokenAddress: string, spenderAddress: string, amount?: string): Promise<string>;
37
- }