@sabaaa1/common 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. package/.env.example +5 -0
  2. package/.eslintrc.json +18 -0
  3. package/README.md +164 -0
  4. package/copyPackageJson.js +81 -0
  5. package/handleCDNWorkers.js +92 -0
  6. package/jest.config.ts +10 -0
  7. package/package.json +101 -0
  8. package/polyfillWorker.ts +15 -0
  9. package/project.json +32 -0
  10. package/src/API/API.ts +203 -0
  11. package/src/API/admin-calls.ts +8 -0
  12. package/src/API/ai-calls.ts +48 -0
  13. package/src/API/brotherhoodCalls.ts +184 -0
  14. package/src/API/callLifiAPI.ts +41 -0
  15. package/src/API/callMonitor.ts +9 -0
  16. package/src/API/callOdosAPI.ts +89 -0
  17. package/src/API/callOneInchAPI.ts +47 -0
  18. package/src/API/callRelayer.ts +23 -0
  19. package/src/API/checkRisk.ts +7 -0
  20. package/src/API/duneAPI.ts +26 -0
  21. package/src/API/enclaveCalls.ts +23 -0
  22. package/src/API/fetchCommitmentsCache.ts +63 -0
  23. package/src/API/generate-trading-points.ts +77 -0
  24. package/src/API/get-token-data.ts +12 -0
  25. package/src/API/getBridgeProtocols.ts +16 -0
  26. package/src/API/getCoingeckoPrice.ts +59 -0
  27. package/src/API/getGasEstimates.ts +30 -0
  28. package/src/API/getLifiStatus.ts +35 -0
  29. package/src/API/getRelayerURL.ts +27 -0
  30. package/src/API/getServerURL.ts +116 -0
  31. package/src/API/getTokenPrice.ts +39 -0
  32. package/src/API/getWebsiteURL.ts +58 -0
  33. package/src/API/index.ts +19 -0
  34. package/src/API/is-tx-stateless.ts +32 -0
  35. package/src/API/kycCalls.ts +81 -0
  36. package/src/API/leaderboardCalls.ts +32 -0
  37. package/src/API/mysteryBoxesCalls.ts +141 -0
  38. package/src/API/passwordCalls.ts +34 -0
  39. package/src/API/proxyAccountsCalls.ts +40 -0
  40. package/src/API/referralsCalls.ts +52 -0
  41. package/src/API/relayCalls.ts +14 -0
  42. package/src/API/restoreSnapshots.ts +7 -0
  43. package/src/API/rewardsUserCalls.ts +124 -0
  44. package/src/API/send-telegram-callback.ts +17 -0
  45. package/src/API/simulate-batch-tx.ts +19 -0
  46. package/src/API/tenderly.api.ts +96 -0
  47. package/src/API/token-calls.ts +19 -0
  48. package/src/API/weeklyAnalyticCalls.ts +43 -0
  49. package/src/constants/activity.constants.ts +10 -0
  50. package/src/constants/addresses.constants.ts +74 -0
  51. package/src/constants/assets.constants.ts +15 -0
  52. package/src/constants/backend.constants.ts +16 -0
  53. package/src/constants/balance.constants.ts +1 -0
  54. package/src/constants/bridging.constants.ts +5 -0
  55. package/src/constants/chains.constants.ts +194 -0
  56. package/src/constants/coingecko.constants.ts +67 -0
  57. package/src/constants/contracts.constants.ts +106 -0
  58. package/src/constants/conversion.constants.ts +1 -0
  59. package/src/constants/deploy-data/deploy-data-arbMainnet.json +5685 -0
  60. package/src/constants/deploy-data/deploy-data-arcTestnet.json +6157 -0
  61. package/src/constants/deploy-data/deploy-data-avalanche.json +5921 -0
  62. package/src/constants/deploy-data/deploy-data-base.json +5695 -0
  63. package/src/constants/deploy-data/deploy-data-bnbMainnet.json +5921 -0
  64. package/src/constants/deploy-data/deploy-data-ethMainnet.json +5922 -0
  65. package/src/constants/deploy-data/deploy-data-localhost.json +5921 -0
  66. package/src/constants/deploy-data/deploy-data-optimism.json +5687 -0
  67. package/src/constants/deploy-data/deploy-data-polygon.json +5695 -0
  68. package/src/constants/deploy-data/index.ts +21 -0
  69. package/src/constants/events.constants.ts +10 -0
  70. package/src/constants/fees.constants.ts +4 -0
  71. package/src/constants/function-signatures.constants.ts +6 -0
  72. package/src/constants/index.ts +30 -0
  73. package/src/constants/kyc.constants.ts +202 -0
  74. package/src/constants/lifi.constants.ts +1 -0
  75. package/src/constants/mediaUrls.constants.ts +25 -0
  76. package/src/constants/mystery-boxes.constants.ts +402 -0
  77. package/src/constants/oauthUrls.constants.ts +7 -0
  78. package/src/constants/permit2.constants.ts +28 -0
  79. package/src/constants/presale.constants.ts +503 -0
  80. package/src/constants/protocol.constants.ts +65 -0
  81. package/src/constants/reorg-depths.constants.ts +13 -0
  82. package/src/constants/rewards.constants.ts +27 -0
  83. package/src/constants/save-depths.ts +13 -0
  84. package/src/constants/server.constants.ts +233 -0
  85. package/src/constants/tasks.constants.ts +205 -0
  86. package/src/constants/token-data/ERC20Registry.ts +90 -0
  87. package/src/constants/token-data/arbMainnetRegistry.json +1841 -0
  88. package/src/constants/token-data/arbMainnetRegistryFixed.json +1841 -0
  89. package/src/constants/token-data/arcTestnetRegistry.json +436 -0
  90. package/src/constants/token-data/avalancheRegistry.json +729 -0
  91. package/src/constants/token-data/avalancheRegistryFixed.json +729 -0
  92. package/src/constants/token-data/baseRegistry.json +1134 -0
  93. package/src/constants/token-data/baseRegistryFixed.json +1134 -0
  94. package/src/constants/token-data/bnbMainnetRegistry.json +900 -0
  95. package/src/constants/token-data/bnbMainnetRegistryFixed.json +900 -0
  96. package/src/constants/token-data/ethMainnetRegistry.json +4298 -0
  97. package/src/constants/token-data/ethMainnetRegistryFixed.json +4298 -0
  98. package/src/constants/token-data/index.ts +60 -0
  99. package/src/constants/token-data/localhostRegistry.json +2784 -0
  100. package/src/constants/token-data/optimismRegistry.json +701 -0
  101. package/src/constants/token-data/optimismRegistryFixed.json +701 -0
  102. package/src/constants/token-data/polygonRegistry.json +2309 -0
  103. package/src/constants/token-data/polygonRegistryFixed.json +2309 -0
  104. package/src/constants/token-data/popularTokens.constants.ts +11 -0
  105. package/src/constants/token-data/tokenPricing.consts.ts +2 -0
  106. package/src/constants/token.limits.constants.ts +31 -0
  107. package/src/constants/vite.constants.ts +74 -0
  108. package/src/constants/wallet.constants.ts +9 -0
  109. package/src/crypto/babyJub.ts +31 -0
  110. package/src/crypto/index.ts +3 -0
  111. package/src/crypto/poseidon.ts +36 -0
  112. package/src/crypto/preProcessing.ts +20 -0
  113. package/src/data-structures/ApprovalDBs/EventsPublicApprovalsDB.ts +288 -0
  114. package/src/data-structures/ApprovalDBs/index.ts +1 -0
  115. package/src/data-structures/Hinkal/Hinkal.ts +746 -0
  116. package/src/data-structures/Hinkal/IHinkal.ts +315 -0
  117. package/src/data-structures/Hinkal/handleAutoDepositBack.ts +138 -0
  118. package/src/data-structures/Hinkal/hinkalActionFundApproveAndTransact.ts +64 -0
  119. package/src/data-structures/Hinkal/hinkalActionReceive.ts +65 -0
  120. package/src/data-structures/Hinkal/hinkalActionStake.ts +152 -0
  121. package/src/data-structures/Hinkal/hinkalApprove.ts +170 -0
  122. package/src/data-structures/Hinkal/hinkalCheckTokenRegistry.ts +26 -0
  123. package/src/data-structures/Hinkal/hinkalDeposit.ts +199 -0
  124. package/src/data-structures/Hinkal/hinkalGetRecipientInfo.ts +12 -0
  125. package/src/data-structures/Hinkal/hinkalGetZkMeProvider.ts +31 -0
  126. package/src/data-structures/Hinkal/hinkalInsideTransact.ts +190 -0
  127. package/src/data-structures/Hinkal/hinkalMultiSend.ts +26 -0
  128. package/src/data-structures/Hinkal/hinkalPrivateWallet.ts +198 -0
  129. package/src/data-structures/Hinkal/hinkalProoflessDeposit.ts +91 -0
  130. package/src/data-structures/Hinkal/hinkalProxySwap.ts +91 -0
  131. package/src/data-structures/Hinkal/hinkalSignSubAccount.ts +28 -0
  132. package/src/data-structures/Hinkal/hinkalSwap.ts +157 -0
  133. package/src/data-structures/Hinkal/hinkalTransfer.ts +171 -0
  134. package/src/data-structures/Hinkal/hinkalWithdraw.ts +161 -0
  135. package/src/data-structures/Hinkal/index.ts +9 -0
  136. package/src/data-structures/Hinkal/resetMerkleTrees.ts +64 -0
  137. package/src/data-structures/IndexedDB/activity-db.ts +204 -0
  138. package/src/data-structures/IndexedDB/balances-db.ts +97 -0
  139. package/src/data-structures/IndexedDB/contact-db.ts +81 -0
  140. package/src/data-structures/IndexedDB/index.ts +6 -0
  141. package/src/data-structures/IndexedDB/prices-db.ts +89 -0
  142. package/src/data-structures/IndexedDB/private-balances-db.ts +31 -0
  143. package/src/data-structures/IndexedDB/signatures-db.ts +62 -0
  144. package/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.ts +152 -0
  145. package/src/data-structures/TokenDBs/AlchemyPublicTokensDB.ts +224 -0
  146. package/src/data-structures/TokenDBs/ArcPublicTokensDB.ts +198 -0
  147. package/src/data-structures/TokenDBs/EventsPublicTokensDB.ts +216 -0
  148. package/src/data-structures/TokenDBs/IPublicTokensDB.ts +7 -0
  149. package/src/data-structures/TokenDBs/PrivateTokensDB.ts +96 -0
  150. package/src/data-structures/TokenDBs/PublicTokensDB.ts +49 -0
  151. package/src/data-structures/TokenDBs/index.ts +4 -0
  152. package/src/data-structures/TokenDBs/token-visibility-db.ts +154 -0
  153. package/src/data-structures/ValueCache/ValueCache.ts +29 -0
  154. package/src/data-structures/ValueCache/index.ts +1 -0
  155. package/src/data-structures/cacheDevices/AttachableMemoryCacheDevice.ts +33 -0
  156. package/src/data-structures/cacheDevices/BaseCacheDevice.ts +30 -0
  157. package/src/data-structures/cacheDevices/FileCacheDevice.ts +59 -0
  158. package/src/data-structures/cacheDevices/LocalStorageCacheDevice.ts +36 -0
  159. package/src/data-structures/cacheDevices/index.ts +2 -0
  160. package/src/data-structures/crypto-keys/decodeUTXO.ts +60 -0
  161. package/src/data-structures/crypto-keys/encryptDecryptUtxo.ts +74 -0
  162. package/src/data-structures/crypto-keys/index.ts +4 -0
  163. package/src/data-structures/crypto-keys/keyUtils.ts +8 -0
  164. package/src/data-structures/crypto-keys/keys.ts +203 -0
  165. package/src/data-structures/custom-token-registry/CustomTokenRegistry.ts +49 -0
  166. package/src/data-structures/event-service/AbstractAccessTokenSnapshotService.ts +142 -0
  167. package/src/data-structures/event-service/AbstractApprovalsSnapshotService.ts +152 -0
  168. package/src/data-structures/event-service/AbstractCommitmentsSnapshotService.ts +116 -0
  169. package/src/data-structures/event-service/AbstractEventService.ts +44 -0
  170. package/src/data-structures/event-service/AbstractNullifierSnapshotService.ts +76 -0
  171. package/src/data-structures/event-service/AbstractSnapshotService.ts +63 -0
  172. package/src/data-structures/event-service/BlockchainEventEmitter.ts +132 -0
  173. package/src/data-structures/event-service/index.ts +7 -0
  174. package/src/data-structures/index.ts +18 -0
  175. package/src/data-structures/merkle-tree/MerkleTree.test.ts +77 -0
  176. package/src/data-structures/merkle-tree/MerkleTree.ts +253 -0
  177. package/src/data-structures/merkle-tree/MerkleTreeIncompleteError.ts +6 -0
  178. package/src/data-structures/merkle-tree/getPatchedAccessTokenMerkleTree.ts +24 -0
  179. package/src/data-structures/merkle-tree/index.ts +3 -0
  180. package/src/data-structures/presale/PresaleContractWrapper.ts +80 -0
  181. package/src/data-structures/presale/index.ts +1 -0
  182. package/src/data-structures/provider-adapter/IProviderAdapter.ts +43 -0
  183. package/src/data-structures/snapshot/ClientAccessTokenSnapshotService.ts +41 -0
  184. package/src/data-structures/snapshot/ClientApprovalsSnapshotService.ts +36 -0
  185. package/src/data-structures/snapshot/ClientCommitmentsSnapshotService.ts +30 -0
  186. package/src/data-structures/snapshot/ClientNullifierSnapshotService.ts +28 -0
  187. package/src/data-structures/snapshot/SnapshotFetcherService.ts +68 -0
  188. package/src/data-structures/snapshot/index.ts +1 -0
  189. package/src/data-structures/token-price-fetcher/TokenChecker.ts +45 -0
  190. package/src/data-structures/token-price-fetcher/index.ts +1 -0
  191. package/src/data-structures/tor/HttpClient.ts +118 -0
  192. package/src/data-structures/tor/TorAdapter.ts +94 -0
  193. package/src/data-structures/tor/TorClient.ts +283 -0
  194. package/src/data-structures/tor/WebSocketDuplex.ts +32 -0
  195. package/src/data-structures/tor/index.ts +3 -0
  196. package/src/data-structures/transactions-manager/history/history.types.ts +14 -0
  197. package/src/data-structures/transactions-manager/index.ts +1 -0
  198. package/src/data-structures/utxo/Utxo.ts +189 -0
  199. package/src/error-handling/customErrors/ErrorWithAmount.ts +8 -0
  200. package/src/error-handling/customErrors/ErrorWithTx.ts +10 -0
  201. package/src/error-handling/customErrors/FeeOverTransactionValueError.ts +16 -0
  202. package/src/error-handling/customErrors/SimulationFailureError.ts +9 -0
  203. package/src/error-handling/customErrors/customErrors.helpers.ts +39 -0
  204. package/src/error-handling/customErrors/index.ts +5 -0
  205. package/src/error-handling/error-codes.constants.ts +214 -0
  206. package/src/error-handling/get-error.message.ts +149 -0
  207. package/src/error-handling/handleErrorRestore.ts +25 -0
  208. package/src/error-handling/index.ts +7 -0
  209. package/src/error-handling/logError.ts +8 -0
  210. package/src/error-handling/logger.ts +21 -0
  211. package/src/error-handling/types.ts +10 -0
  212. package/src/externalABIs/BUSD.ts +516 -0
  213. package/src/externalABIs/BabPassport.json +24 -0
  214. package/src/externalABIs/DAI.ts +331 -0
  215. package/src/externalABIs/ERC1155.json +316 -0
  216. package/src/externalABIs/ERC20.json +297 -0
  217. package/src/externalABIs/ERC20.ts +1 -0
  218. package/src/externalABIs/ERC721.json +205 -0
  219. package/src/externalABIs/GalxePassport.json +23 -0
  220. package/src/externalABIs/IQuoterV2.json +211 -0
  221. package/src/externalABIs/ISwapRouter.json +568 -0
  222. package/src/externalABIs/IUniswapV3Factory.json +207 -0
  223. package/src/externalABIs/IUniswapV3Pool.json +999 -0
  224. package/src/externalABIs/NodeInterfaceABI.json +1 -0
  225. package/src/externalABIs/OptimismGasPriceOracle.json +1 -0
  226. package/src/externalABIs/PoLidoNftAbi.json +307 -0
  227. package/src/externalABIs/SanctionsList.ts +86 -0
  228. package/src/externalABIs/USDC.ts +718 -0
  229. package/src/externalABIs/USDR.ts +343 -0
  230. package/src/externalABIs/USDR3CRV.ts +539 -0
  231. package/src/externalABIs/USDT.ts +390 -0
  232. package/src/externalABIs/UniswapV2PoolAbi.json +66 -0
  233. package/src/externalABIs/WETH.ts +153 -0
  234. package/src/externalABIs/amToken.ts +347 -0
  235. package/src/externalABIs/index.ts +53 -0
  236. package/src/externalABIs/swapAbi.ts +442 -0
  237. package/src/externalABIs/transactionsProver.json +45 -0
  238. package/src/functions/index.ts +16 -0
  239. package/src/functions/kyc/aiPriseHelper.ts +0 -0
  240. package/src/functions/kyc/authentoHelper.ts +44 -0
  241. package/src/functions/kyc/index.ts +3 -0
  242. package/src/functions/kyc/openDefaultPassportWindow.ts +9 -0
  243. package/src/functions/kyc/passportHelper.ts +13 -0
  244. package/src/functions/kyc/zkMeHelper.ts +69 -0
  245. package/src/functions/pre-transaction/constructAdminData.ts +21 -0
  246. package/src/functions/pre-transaction/getExternalSwapAddress.ts +30 -0
  247. package/src/functions/pre-transaction/getFeeStructure.ts +44 -0
  248. package/src/functions/pre-transaction/getFlatFees.ts +88 -0
  249. package/src/functions/pre-transaction/getSignatureDataForTransact.ts +16 -0
  250. package/src/functions/pre-transaction/getVolatileTransferAmount.ts +56 -0
  251. package/src/functions/pre-transaction/index.ts +7 -0
  252. package/src/functions/pre-transaction/interaction-to-action.ts +17 -0
  253. package/src/functions/pre-transaction/merge-with-fee-structure-emporium.ts +50 -0
  254. package/src/functions/pre-transaction/merge-with-fee-structure.ts +35 -0
  255. package/src/functions/pre-transaction/outputApprovalDataProcessing.ts +95 -0
  256. package/src/functions/pre-transaction/outputUtxoProcessing.ts +52 -0
  257. package/src/functions/pre-transaction/process-gas-estimates.ts +36 -0
  258. package/src/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.ts +15 -0
  259. package/src/functions/private-wallet/emporium.helpers.ts +296 -0
  260. package/src/functions/private-wallet/emporium.swap.helpers.ts +284 -0
  261. package/src/functions/private-wallet/index.ts +3 -0
  262. package/src/functions/private-wallet/opProducer.ts +33 -0
  263. package/src/functions/snarkjs/common.snarkjs.ts +377 -0
  264. package/src/functions/snarkjs/constant.ts +490 -0
  265. package/src/functions/snarkjs/constructEmporiumProof.ts +301 -0
  266. package/src/functions/snarkjs/constructGeneralZkProof.ts +281 -0
  267. package/src/functions/snarkjs/generateCircomData.ts +81 -0
  268. package/src/functions/snarkjs/generateZkProof.ts +21 -0
  269. package/src/functions/snarkjs/generateZkProofEnclave.ts +45 -0
  270. package/src/functions/snarkjs/generateZkProofSelf.ts +29 -0
  271. package/src/functions/snarkjs/getOriginalSender.ts +4 -0
  272. package/src/functions/snarkjs/getZKFiles.ts +29 -0
  273. package/src/functions/snarkjs/index.ts +4 -0
  274. package/src/functions/staking/index.ts +78 -0
  275. package/src/functions/utils/addresses.ts +37 -0
  276. package/src/functions/utils/amounts.utils.test.ts +91 -0
  277. package/src/functions/utils/amounts.utils.ts +119 -0
  278. package/src/functions/utils/arraysMatch.ts +4 -0
  279. package/src/functions/utils/cacheDevice.utils.ts +21 -0
  280. package/src/functions/utils/cacheFunctions.ts +154 -0
  281. package/src/functions/utils/caseInsensitive.utils.ts +10 -0
  282. package/src/functions/utils/convertEmporiumOpToCallInfo.ts +19 -0
  283. package/src/functions/utils/convertIntegrationProviderToExternalActionId.ts +14 -0
  284. package/src/functions/utils/create-provider.ts +11 -0
  285. package/src/functions/utils/encodeTokenWithId.ts +4 -0
  286. package/src/functions/utils/encryptInputForEnclave.ts +119 -0
  287. package/src/functions/utils/enum.utils.ts +30 -0
  288. package/src/functions/utils/erc20tokenFunctions.ts +110 -0
  289. package/src/functions/utils/ethers-formatter.utils.ts +32 -0
  290. package/src/functions/utils/evmNetworkFunctions.ts +9 -0
  291. package/src/functions/utils/external-action.utils.ts +15 -0
  292. package/src/functions/utils/fees.utils.ts +26 -0
  293. package/src/functions/utils/get-hinkal-approvals.ts +36 -0
  294. package/src/functions/utils/get-signature-header.ts +5 -0
  295. package/src/functions/utils/getBlockExplorerUrl.ts +14 -0
  296. package/src/functions/utils/getDataFromTransaction.ts +79 -0
  297. package/src/functions/utils/getRecipientInfoFromUserKeys.ts +28 -0
  298. package/src/functions/utils/inLogicMetadata.ts +9 -0
  299. package/src/functions/utils/index.ts +43 -0
  300. package/src/functions/utils/involves-permit2-op.ts +17 -0
  301. package/src/functions/utils/ipfs.ts +74 -0
  302. package/src/functions/utils/is-valid-url.ts +5 -0
  303. package/src/functions/utils/lifi.utils.ts +3 -0
  304. package/src/functions/utils/memoize.utils.ts +23 -0
  305. package/src/functions/utils/merkleTree.utils.ts +27 -0
  306. package/src/functions/utils/mutexes.utils.ts +3 -0
  307. package/src/functions/utils/mystery-box-auction.utils.ts +61 -0
  308. package/src/functions/utils/networks.utils.ts +6 -0
  309. package/src/functions/utils/nftTokenFunctions.ts +25 -0
  310. package/src/functions/utils/nickname.utils.ts +4 -0
  311. package/src/functions/utils/postToOffscreen.ts +6 -0
  312. package/src/functions/utils/prepareHinkal.ts +78 -0
  313. package/src/functions/utils/process.utils.ts +23 -0
  314. package/src/functions/utils/processUseApprovalUtxoData.ts +26 -0
  315. package/src/functions/utils/publicBalance.utils.ts +131 -0
  316. package/src/functions/utils/reloadPage.ts +1 -0
  317. package/src/functions/utils/replaceAddressInCalldata.ts +6 -0
  318. package/src/functions/utils/requireEnv.ts +10 -0
  319. package/src/functions/utils/resolve-sync.utils.ts +40 -0
  320. package/src/functions/utils/rpc-int-encode.ts +7 -0
  321. package/src/functions/utils/serialize.utils.ts +12 -0
  322. package/src/functions/utils/string.utils.ts +92 -0
  323. package/src/functions/utils/time.utils.ts +80 -0
  324. package/src/functions/utils/token-check.utils.ts +12 -0
  325. package/src/functions/utils/trimFieldValues.ts +24 -0
  326. package/src/functions/utils/upToDateState.ts +12 -0
  327. package/src/functions/utils/userAgent.ts +26 -0
  328. package/src/functions/utils/walletBalances.utils.ts +117 -0
  329. package/src/functions/web3/EIP-712.test.ts +302 -0
  330. package/src/functions/web3/EIP-712.ts +243 -0
  331. package/src/functions/web3/etherFunctions.test.ts +129 -0
  332. package/src/functions/web3/etherFunctions.ts +84 -0
  333. package/src/functions/web3/events/balanceChangedCustomHandler.ts +13 -0
  334. package/src/functions/web3/events/balanceChangedHandler.ts +10 -0
  335. package/src/functions/web3/events/getApprovedBalance.ts +154 -0
  336. package/src/functions/web3/events/getInputUtxoAndBalance.ts +305 -0
  337. package/src/functions/web3/events/getInputUtxosEnclave.ts +40 -0
  338. package/src/functions/web3/events/getShieldedBalance.ts +163 -0
  339. package/src/functions/web3/events/getTransactionLogEvents.ts +55 -0
  340. package/src/functions/web3/events/index.ts +7 -0
  341. package/src/functions/web3/events/web3RetrieveEvents.ts +33 -0
  342. package/src/functions/web3/functionCalls/accessTokenCalls.ts +27 -0
  343. package/src/functions/web3/functionCalls/approveToken.ts +180 -0
  344. package/src/functions/web3/functionCalls/approveTokensToHinkal.ts +21 -0
  345. package/src/functions/web3/functionCalls/estimateGasRelayer.ts +40 -0
  346. package/src/functions/web3/functionCalls/getRootHash.ts +7 -0
  347. package/src/functions/web3/functionCalls/inHinkalApprovalCalls.ts +60 -0
  348. package/src/functions/web3/functionCalls/relayFunctions.ts +12 -0
  349. package/src/functions/web3/functionCalls/transactCallDirect.ts +71 -0
  350. package/src/functions/web3/functionCalls/transactCallRelayer.ts +57 -0
  351. package/src/functions/web3/getContractMetadata.ts +43 -0
  352. package/src/functions/web3/getPublicAddressBalance.ts +17 -0
  353. package/src/functions/web3/getTokenHolder.ts +53 -0
  354. package/src/functions/web3/index.ts +9 -0
  355. package/src/functions/web3/lifiAPI.ts +41 -0
  356. package/src/functions/web3/odosAPI.ts +50 -0
  357. package/src/functions/web3/oneInchAPI.ts +47 -0
  358. package/src/functions/web3/runContractFunction.ts +116 -0
  359. package/src/functions/web3/uniswapAPI.ts +156 -0
  360. package/src/index.ts +9 -0
  361. package/src/mutexes/index.ts +1 -0
  362. package/src/mutexes/mutex.ts +3 -0
  363. package/src/providers/EthersProviderAdapter.ts +230 -0
  364. package/src/providers/TorExternalProvider.ts +36 -0
  365. package/src/providers/WagmiProviderAdapter.ts +311 -0
  366. package/src/providers/exportProviers.ts +11 -0
  367. package/src/providers/prepareEthersHinkal.ts +18 -0
  368. package/src/providers/prepareWagmiHinkal.ts +16 -0
  369. package/src/types/API.types.ts +23 -0
  370. package/src/types/ICacheDevice.ts +5 -0
  371. package/src/types/IMultiThreadedUtxoUtils.ts +16 -0
  372. package/src/types/RewardUserEnums.ts +12 -0
  373. package/src/types/TransactionSimulator.types.ts +30 -0
  374. package/src/types/WeeklyAnalytics.types.ts +44 -0
  375. package/src/types/activities.types.ts +90 -0
  376. package/src/types/admin.types.ts +30 -0
  377. package/src/types/all-points.types.ts +8 -0
  378. package/src/types/approvals.types.ts +45 -0
  379. package/src/types/balances.types.ts +20 -0
  380. package/src/types/big-intable.types.ts +3 -0
  381. package/src/types/bridging.types.ts +30 -0
  382. package/src/types/brotherhood-user.types.ts +13 -0
  383. package/src/types/cache.types.ts +42 -0
  384. package/src/types/circom-data.types.ts +120 -0
  385. package/src/types/coingecko.types.ts +216 -0
  386. package/src/types/commitments.types.ts +39 -0
  387. package/src/types/confirmation-request.types.ts +10 -0
  388. package/src/types/contacts.types.ts +6 -0
  389. package/src/types/crypto.types.ts +8 -0
  390. package/src/types/duneAPI.types.ts +9 -0
  391. package/src/types/eip5792.types.ts +31 -0
  392. package/src/types/ethereum-network.types.ts +70 -0
  393. package/src/types/external-action.types.ts +19 -0
  394. package/src/types/fee.types.ts +11 -0
  395. package/src/types/generatePoints.ts +14 -0
  396. package/src/types/hinkal.stake.types.ts +12 -0
  397. package/src/types/hinkal.types.ts +150 -0
  398. package/src/types/index.ts +50 -0
  399. package/src/types/kyc.types.ts +49 -0
  400. package/src/types/merch-order.types.ts +18 -0
  401. package/src/types/message.types.ts +6 -0
  402. package/src/types/mystery-boxes.types.ts +50 -0
  403. package/src/types/new-rewards.type.ts +181 -0
  404. package/src/types/offscreen.types.ts +8 -0
  405. package/src/types/presaleReferral.types.ts +4 -0
  406. package/src/types/proxy.types.ts +11 -0
  407. package/src/types/referral.types.ts +13 -0
  408. package/src/types/relayer.types.ts +16 -0
  409. package/src/types/remote-proof.types.ts +18 -0
  410. package/src/types/rewards.types.ts +53 -0
  411. package/src/types/routing.types.ts +7 -0
  412. package/src/types/sandbox.types.ts +246 -0
  413. package/src/types/session.types.ts +12 -0
  414. package/src/types/signature.types.ts +11 -0
  415. package/src/types/slippage.types.ts +3 -0
  416. package/src/types/snark.types.ts +43 -0
  417. package/src/types/tenderly.api.types.ts +200 -0
  418. package/src/types/token-prices.types.ts +8 -0
  419. package/src/types/token-with-id.types.ts +4 -0
  420. package/src/types/token.types.ts +86 -0
  421. package/src/types/transactions.types.ts +120 -0
  422. package/src/types/wc.types.ts +83 -0
  423. package/src/types/with-id.types.ts +1 -0
  424. package/src/webworker/performTaskWithWorker.ts +50 -0
  425. package/src/webworker/snarkjsWorker/snarkjs.d.ts +2 -0
  426. package/src/webworker/snarkjsWorker/snarkjsWorker.types.ts +18 -0
  427. package/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts +19 -0
  428. package/src/webworker/snarkjsWorker/snarkjsWorkerLogic.ts +90 -0
  429. package/src/webworker/utxoWorker/utxoWorker.types.ts +41 -0
  430. package/src/webworker/utxoWorker/utxoWorkerLauncher.ts +19 -0
  431. package/src/webworker/utxoWorker/utxoWorkerLogic.ts +107 -0
  432. package/src/webworker/viteWorkerURL.constant.ts +25 -0
  433. package/src/webworker/worker.registry.ts +11 -0
  434. package/src/webworker/worker.types.ts +35 -0
  435. package/src/webworker/workerErrorHandler.ts +10 -0
  436. package/src/webworker/workerFactory.ts +47 -0
  437. package/src/webworker/workerProxy.ts +88 -0
  438. package/src/webworker/zkProofWorker/zkProofWorker.types.ts +52 -0
  439. package/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts +19 -0
  440. package/src/webworker/zkProofWorker/zkProofWorkerLogic.ts +84 -0
  441. package/tsconfig.json +23 -0
  442. package/tsconfig.lib.json +10 -0
  443. package/tsconfig.spec.json +15 -0
  444. package/vite.config.ts +97 -0
  445. package/vite.config.workers.ts +51 -0
@@ -0,0 +1,81 @@
1
+ import { API_CONFIG } from '../constants/server.constants';
2
+ import { getServerURL } from './getServerURL';
3
+ import { KycVerificationResult, Passports, VERIFICATION_TYPE } from '../types/kyc.types';
4
+ import { SignatureData } from '../types/crypto.types';
5
+ import { httpClient } from '../data-structures/tor';
6
+
7
+ interface IGetKycStatus {
8
+ verificationResult: KycVerificationResult;
9
+ passportIds?: Passports[];
10
+ }
11
+
12
+ export async function getUserKycStatus(chainId: number, ethereumAddress: string): Promise<IGetKycStatus> {
13
+ return httpClient.post<IGetKycStatus>(`${getServerURL(chainId)}${API_CONFIG.ROUTES.checkKycStatus}`, {
14
+ ethereumAddress,
15
+ });
16
+ }
17
+
18
+ // to send verification code on email through server
19
+ export async function setAiPriseVerificationUrl(
20
+ chainId: number,
21
+ ethereumAddress: string,
22
+ verificationSessionId: string,
23
+ verificationType: VERIFICATION_TYPE,
24
+ ) {
25
+ return httpClient.post(`${getServerURL(chainId)}${API_CONFIG.ROUTES.startUserVerification}`, {
26
+ ethereumAddress,
27
+ verificationSessionId,
28
+ verificationType,
29
+ });
30
+ }
31
+
32
+ interface AccessTokenSignatureResponse {
33
+ signatureData: SignatureData;
34
+ }
35
+
36
+ export async function getAccessTokenSignature(
37
+ chainId: number,
38
+ ethereumAddress: string,
39
+ accessKey: string,
40
+ ): Promise<AccessTokenSignatureResponse> {
41
+ return httpClient.post(`${getServerURL(chainId)}${API_CONFIG.ROUTES.getUserSignature}`, {
42
+ ethereumAddress,
43
+ accessKey,
44
+ });
45
+ }
46
+
47
+ interface ReclaimVerificationRequestResponse {
48
+ reclaimProofRequestConfig: string;
49
+ message?: string;
50
+ }
51
+
52
+ export async function getReclaimVerificationRequest(
53
+ chainId: number,
54
+ providerId: string,
55
+ ethereumAddress: string,
56
+ userSignature: string,
57
+ withSignature: boolean,
58
+ ): Promise<ReclaimVerificationRequestResponse> {
59
+ return httpClient.post(`${getServerURL(chainId)}${API_CONFIG.ROUTES.startReclaimVerification}`, {
60
+ ethereumAddress,
61
+ providerId,
62
+ userSignature,
63
+ withSignature,
64
+ });
65
+ }
66
+
67
+ export const getZkMeAccessToken = async (chainId: number) => {
68
+ return (await httpClient.get(`${getServerURL(chainId)}${API_CONFIG.ROUTES.zkMeAccessToken}`)).accessToken;
69
+ };
70
+
71
+ type IUserHasKyc = {
72
+ updated: boolean;
73
+ };
74
+
75
+ export const userHasKyc = async (chainId: number, ethereumAddress: string, hasKyc: boolean) => {
76
+ const response = await httpClient.post<IUserHasKyc>(`${getServerURL(chainId)}${API_CONFIG.ROUTES.userHasKyc}`, {
77
+ ethereumAddress,
78
+ hasKyc,
79
+ });
80
+ return response;
81
+ };
@@ -0,0 +1,32 @@
1
+ import { DATA_SERVER_URL } from './getServerURL';
2
+ import { DATA_SERVER_CONFIG } from '../constants/server.constants';
3
+ import { BrotherhoodWeeklyAnalyticLeaderboardEntry, UserWeeklyAnalyticLeaderboardEntry } from '../types';
4
+ import { httpClient } from '../data-structures/tor';
5
+
6
+ interface GetUserCurrentLeaderboardProps {
7
+ ethereumAddress: string;
8
+ }
9
+
10
+ interface GetUserCurrentLeaderboardRes {
11
+ message: string;
12
+ sortedUsers: UserWeeklyAnalyticLeaderboardEntry[];
13
+ }
14
+
15
+ export const getUserCurrentLeaderboard = async ({
16
+ ethereumAddress,
17
+ }: GetUserCurrentLeaderboardProps): Promise<GetUserCurrentLeaderboardRes> => {
18
+ return httpClient.get<GetUserCurrentLeaderboardRes>(
19
+ `${DATA_SERVER_URL}${DATA_SERVER_CONFIG.getUserCurrentLeaderboard}`,
20
+ {
21
+ params: { ethereumAddress },
22
+ },
23
+ );
24
+ };
25
+
26
+ interface GetBrotherhoodLeaderboardRes {
27
+ analytics: BrotherhoodWeeklyAnalyticLeaderboardEntry[];
28
+ }
29
+
30
+ export const getBrotherhoodsLeaderboard = async (): Promise<GetBrotherhoodLeaderboardRes> => {
31
+ return httpClient.get(`${DATA_SERVER_URL}${DATA_SERVER_CONFIG.getBrotherhoodsLeaderboard}`);
32
+ };
@@ -0,0 +1,141 @@
1
+ import { Address, MerchOrder, MysteryBoxItem, MysteryBoxReward, Rank } from '../types';
2
+ import { DATA_SERVER_CONFIG } from '../constants/server.constants';
3
+ import { getDataServerURL } from './getServerURL';
4
+ import { httpClient } from '../data-structures/tor';
5
+ import { getSignatureHeader } from '../functions/utils/get-signature-header';
6
+
7
+ interface OpenMysteryBoxRes {
8
+ message: string;
9
+ reward?: MysteryBoxItem;
10
+ rewardsHistory?: MysteryBoxReward[];
11
+ paid: number;
12
+ }
13
+
14
+ interface OpenMysteryBoxProps {
15
+ ethereumAddress: string;
16
+ rank: Rank;
17
+ signature: string;
18
+ proxyAddress: string;
19
+ }
20
+
21
+ export const openMysteryBox = async ({
22
+ ethereumAddress,
23
+ rank,
24
+ signature,
25
+ proxyAddress,
26
+ }: OpenMysteryBoxProps): Promise<OpenMysteryBoxRes> => {
27
+ const data = await httpClient.post(
28
+ `${getDataServerURL()}${DATA_SERVER_CONFIG.openMysteryBox}`,
29
+ {
30
+ ethereumAddress,
31
+ rank,
32
+ proxyAddress,
33
+ },
34
+ getSignatureHeader(signature),
35
+ );
36
+ return data;
37
+ };
38
+
39
+ interface HistoryListRes {
40
+ rewardsHistory: MysteryBoxReward[];
41
+ }
42
+
43
+ interface HistoryListProps {
44
+ ethereumAddress: string;
45
+ }
46
+
47
+ export const getMysteryBoxesHistory = async ({ ethereumAddress }: HistoryListProps): Promise<HistoryListRes> => {
48
+ const data = await httpClient.get(
49
+ `${getDataServerURL()}${DATA_SERVER_CONFIG.getMysteryBoxesHistory(ethereumAddress)}`,
50
+ );
51
+
52
+ return data;
53
+ };
54
+
55
+ interface CreationOrUpdateMerchAddressProps {
56
+ ethereumAddress: string;
57
+ address: Address;
58
+ }
59
+
60
+ interface CreateOrUpdateMerchAddressRes {
61
+ message: string;
62
+ address: Address;
63
+ }
64
+
65
+ export const createOrUpdateMerchAddress = async ({
66
+ ethereumAddress,
67
+ address,
68
+ }: CreationOrUpdateMerchAddressProps): Promise<CreateOrUpdateMerchAddressRes> => {
69
+ const data = await httpClient.post(`${getDataServerURL()}${DATA_SERVER_CONFIG.createOrUpdateMerchAddress}`, {
70
+ ethereumAddress,
71
+ address,
72
+ });
73
+
74
+ return data;
75
+ };
76
+
77
+ interface ClaimMerchItemsRes {
78
+ message: string;
79
+ orders?: MerchOrder[];
80
+ rewardsHistory?: MysteryBoxReward[];
81
+ }
82
+ interface ClaimMerchItemsProps {
83
+ ethereumAddress: string;
84
+ merchId: number;
85
+ }
86
+
87
+ export const claimMerchItem = async ({
88
+ ethereumAddress,
89
+ merchId,
90
+ }: ClaimMerchItemsProps): Promise<ClaimMerchItemsRes> => {
91
+ const data = await httpClient.post(`${getDataServerURL()}${DATA_SERVER_CONFIG.claimMerchItem}`, {
92
+ ethereumAddress,
93
+ merchId,
94
+ });
95
+
96
+ return data;
97
+ };
98
+
99
+ interface GetMerchOrdersRes {
100
+ orders: MerchOrder[];
101
+ }
102
+
103
+ interface GetMerchOrdersProps {
104
+ ethereumAddress: string;
105
+ }
106
+
107
+ export const getMerchOrders = async ({ ethereumAddress }: GetMerchOrdersProps): Promise<GetMerchOrdersRes> => {
108
+ const data = await httpClient.get(`${getDataServerURL()}${DATA_SERVER_CONFIG.getMerchOrders(ethereumAddress)}`);
109
+
110
+ return data;
111
+ };
112
+
113
+ interface GetCurrentDayBoxPrizeCountsRes {
114
+ currentDayBoxCounts: Record<Rank, number>;
115
+ }
116
+
117
+ export const getCurrentDayBoxPrizeCounts = async (): Promise<GetCurrentDayBoxPrizeCountsRes> => {
118
+ const data = await httpClient.get(`${getDataServerURL()}${DATA_SERVER_CONFIG.getCurrentDayBoxPrizeCounts}`);
119
+
120
+ return data;
121
+ };
122
+
123
+ interface GetCurrentAuctionsInfoRes {
124
+ purchasedRanks: Record<Rank, boolean>;
125
+ }
126
+
127
+ export const getCurrentAuctionsInfo = async (): Promise<GetCurrentAuctionsInfoRes> => {
128
+ const data = await httpClient.get(`${getDataServerURL()}${DATA_SERVER_CONFIG.getCurrentAuctionsInfo}`);
129
+
130
+ return data;
131
+ };
132
+
133
+ interface GetServerUtcRes {
134
+ utc: number;
135
+ }
136
+
137
+ export const getServerUtc = async (): Promise<GetServerUtcRes> => {
138
+ const data = await httpClient.get(`${getDataServerURL()}${DATA_SERVER_CONFIG.getServerUtc}`);
139
+
140
+ return data;
141
+ };
@@ -0,0 +1,34 @@
1
+ import axios from 'axios';
2
+ import { API_CONFIG } from '../constants/server.constants';
3
+ import { getServerURL } from './getServerURL';
4
+
5
+ type OptionalUserPassword = {
6
+ passwordHash: string | null;
7
+ };
8
+
9
+ type UserPassword = {
10
+ passwordHash: string;
11
+ };
12
+
13
+ export const userHasPassword = async (chainId: number, ethereumAddress: string): Promise<OptionalUserPassword> => {
14
+ const response = (
15
+ await axios.get<OptionalUserPassword>(
16
+ `${getServerURL(chainId)}${API_CONFIG.ROUTES.userHasPassword(ethereumAddress)}`,
17
+ )
18
+ ).data;
19
+ return response;
20
+ };
21
+
22
+ export const userRegisterPassword = async (
23
+ chainId: number,
24
+ ethereumAddress: string,
25
+ passwordHash: string,
26
+ ): Promise<UserPassword> => {
27
+ const response = (
28
+ await axios.post<UserPassword>(`${getServerURL(chainId)}${API_CONFIG.ROUTES.userRegisterPassword}`, {
29
+ ethereumAddress,
30
+ passwordHash,
31
+ })
32
+ ).data;
33
+ return response;
34
+ };
@@ -0,0 +1,40 @@
1
+ import { API_CONFIG } from '../constants/server.constants';
2
+ import { getServerURL } from './getServerURL';
3
+ import type { SubAccountLight } from '../types/proxy.types';
4
+ import { UserKeys } from '../data-structures/crypto-keys';
5
+ import { ethers } from 'ethers';
6
+ import { hashEthereumAddress } from '../functions/utils/addresses';
7
+ import { httpClient } from '../data-structures/tor';
8
+
9
+ const generateSecureProxyKey = (ethereumAddress: string, userKeys: UserKeys): string => {
10
+ const shieldedPrivateKey = userKeys.getShieldedPrivateKey();
11
+
12
+ const combinedString = `HinkalProxyAccounts|${ethereumAddress.toLowerCase()}|${shieldedPrivateKey}`;
13
+
14
+ // Use keccak256 for consistent hashing
15
+ return ethers.utils.keccak256(ethers.utils.toUtf8Bytes(combinedString));
16
+ };
17
+
18
+ export const getProxyAccounts = async (chainId: number, ethereumAddress: string, userKeys: UserKeys) => {
19
+ const secureKey = generateSecureProxyKey(ethereumAddress, userKeys);
20
+ const response = await httpClient.get<SubAccountLight[]>(
21
+ `${getServerURL(chainId)}${API_CONFIG.ROUTES.getProxyAccounts(secureKey)}`,
22
+ );
23
+ return response;
24
+ };
25
+
26
+ export const updateProxyAccounts = async (
27
+ chainId: number,
28
+ ethereumAddress: string,
29
+ userKeys: UserKeys,
30
+ proxyAccounts: SubAccountLight[],
31
+ ) => {
32
+ const secureKey = generateSecureProxyKey(ethereumAddress, userKeys);
33
+ const hashedEthereumAddress = hashEthereumAddress(ethereumAddress);
34
+ const response = await httpClient.post(`${getServerURL(chainId)}${API_CONFIG.ROUTES.updateProxyAccounts}`, {
35
+ secureKey,
36
+ hashedEthereumAddress,
37
+ proxyAccounts,
38
+ });
39
+ return response;
40
+ };
@@ -0,0 +1,52 @@
1
+ import { DATA_SERVER_URL } from './getServerURL';
2
+ import { DATA_SERVER_CONFIG } from '../constants/server.constants';
3
+ import { Referral } from '../types';
4
+ import { httpClient } from '../data-structures/tor';
5
+
6
+ interface GetCurrentUserReferralProps {
7
+ ethereumAddress: string;
8
+ }
9
+
10
+ interface GetCurrentUserReferralRes {
11
+ referral: Referral | undefined;
12
+ }
13
+
14
+ export const getCurrentUserReferral = async ({
15
+ ethereumAddress,
16
+ }: GetCurrentUserReferralProps): Promise<GetCurrentUserReferralRes> => {
17
+ return httpClient.get(`${DATA_SERVER_URL}${DATA_SERVER_CONFIG.getCurrentUserReferral}`, {
18
+ params: { ethereumAddress },
19
+ });
20
+ };
21
+
22
+ interface SubmitReferralCodeProps {
23
+ referralCode: string;
24
+ ethereumAddress: string;
25
+ }
26
+
27
+ export interface SubmitReferralCodeRes {
28
+ message: string;
29
+ success: boolean;
30
+ }
31
+
32
+ export const submitReferralCode = async ({
33
+ referralCode,
34
+ ethereumAddress,
35
+ }: SubmitReferralCodeProps): Promise<SubmitReferralCodeRes> => {
36
+ return httpClient.post(`${DATA_SERVER_URL}${DATA_SERVER_CONFIG.submitReferralCode}`, {
37
+ referralCode,
38
+ ethereumAddress,
39
+ });
40
+ };
41
+
42
+ interface GetCurrentUserAppliedReferralCodeRes {
43
+ appliedReferralCode: string | undefined;
44
+ }
45
+
46
+ export const getCurrentUserAppliedReferralCode = async (
47
+ ethereumAddress: string,
48
+ ): Promise<GetCurrentUserAppliedReferralCodeRes> => {
49
+ return httpClient.get(`${DATA_SERVER_URL}${DATA_SERVER_CONFIG.getCurrentUserAppliedReferralCode}`, {
50
+ params: { ethereumAddress },
51
+ });
52
+ };
@@ -0,0 +1,14 @@
1
+ import { getRelayerURL } from './getRelayerURL';
2
+ import { RELAYER_CONFIG } from '../constants/server.constants';
3
+ import { httpClient } from '../data-structures/tor';
4
+
5
+ interface IGetIdleRelay {
6
+ relay: string | undefined;
7
+ }
8
+
9
+ export const getIdleRelay = async (chainId: number, markAsPending = false): Promise<IGetIdleRelay> => {
10
+ const response = await httpClient.get<IGetIdleRelay>(
11
+ `${getRelayerURL(chainId)}${RELAYER_CONFIG.getIdleRelay}?markAsPending=${markAsPending}`,
12
+ );
13
+ return response;
14
+ };
@@ -0,0 +1,7 @@
1
+ import { API_CONFIG } from '../constants/server.constants';
2
+ import { getServerURL } from './getServerURL';
3
+ import { httpClient } from '../data-structures/tor';
4
+
5
+ export async function restoreSnapshots(chainId: number) {
6
+ return httpClient.post(`${getServerURL(chainId)}${API_CONFIG.ROUTES.restoreSnapshots}`);
7
+ }
@@ -0,0 +1,124 @@
1
+ import { DATA_SERVER_URL } from './getServerURL';
2
+ import { DATA_SERVER_CONFIG } from '../constants/server.constants';
3
+ import { AchievementProgressItem, RewardsUser, SwapStreakClient, TaskProgress } from '../types';
4
+ import { httpClient } from '../data-structures/tor';
5
+ import { getSignatureHeader } from '../functions/utils/get-signature-header';
6
+
7
+ interface ConnectRewardsUserRes {
8
+ message: string;
9
+ user: RewardsUser;
10
+ isFirstTimeUser: boolean;
11
+ signature: string;
12
+ }
13
+
14
+ export const connectRewardsUser = async (
15
+ ethereumAddress: string,
16
+ signature: string,
17
+ firstProxyAddress: string,
18
+ ): Promise<ConnectRewardsUserRes> => {
19
+ const data = await httpClient.post(
20
+ `${DATA_SERVER_URL}${DATA_SERVER_CONFIG.connectRewardsUser}`,
21
+ {
22
+ ethereumAddress,
23
+ proxyAddress: firstProxyAddress,
24
+ },
25
+ getSignatureHeader(signature),
26
+ );
27
+ return data;
28
+ };
29
+
30
+ interface InputDataTypes {
31
+ ethereumAddress: string;
32
+ signature: string;
33
+ username?: string;
34
+ profileImage?: string;
35
+ proxyAddress?: string;
36
+ }
37
+
38
+ interface UpdateRewardsUserRes {
39
+ message: string;
40
+ user: RewardsUser;
41
+ }
42
+
43
+ export const updateRewardsUser = async (inputData: InputDataTypes): Promise<UpdateRewardsUserRes> => {
44
+ const data = await httpClient.patch(
45
+ `${DATA_SERVER_URL}${DATA_SERVER_CONFIG.updateRewardsUser}`,
46
+ inputData,
47
+ getSignatureHeader(inputData.signature),
48
+ );
49
+
50
+ return data;
51
+ };
52
+
53
+ interface GetSwapStreakRes {
54
+ message: string;
55
+ swapStreak: SwapStreakClient;
56
+ }
57
+
58
+ export const getSwapStreak = async (ethereumAddress: string): Promise<GetSwapStreakRes> => {
59
+ const data = await httpClient.get<GetSwapStreakRes>(`${DATA_SERVER_URL}${DATA_SERVER_CONFIG.getSwapStreak}`, {
60
+ params: { ethereumAddress },
61
+ });
62
+
63
+ return data;
64
+ };
65
+
66
+ interface GetTasksProgressRes {
67
+ success: boolean;
68
+ userTasks: TaskProgress[];
69
+ userAchievements: AchievementProgressItem[];
70
+ brotherhoodTasks: TaskProgress[];
71
+ completedTasks: string[];
72
+ brotherhoodCompletedTasks: string[];
73
+ pointsToShowInCongratsPopup: number;
74
+ }
75
+
76
+ export const getTasksProgress = async (ethereumAddress: string): Promise<GetTasksProgressRes> => {
77
+ const data = await httpClient.get<GetTasksProgressRes>(
78
+ `${DATA_SERVER_URL}${DATA_SERVER_CONFIG.getTasksProgress(ethereumAddress)}`,
79
+ );
80
+
81
+ return data;
82
+ };
83
+
84
+ interface DisconnectSocialNetworkRes {
85
+ message: string;
86
+ user: RewardsUser;
87
+ }
88
+
89
+ interface DisconnectSocialNetworkProps {
90
+ ethereumAddress: string;
91
+ socialWebsiteId: string;
92
+ signature: string;
93
+ proxyAddress: string;
94
+ }
95
+
96
+ export const disconnectSocialNetwork = async ({
97
+ ethereumAddress,
98
+ socialWebsiteId,
99
+ signature,
100
+ proxyAddress,
101
+ }: DisconnectSocialNetworkProps): Promise<DisconnectSocialNetworkRes> => {
102
+ const data = await httpClient.patch<DisconnectSocialNetworkRes>(
103
+ `${DATA_SERVER_URL}${DATA_SERVER_CONFIG.disconnectSocialNetwork}`,
104
+ {
105
+ ethereumAddress,
106
+ socialWebsiteId,
107
+ proxyAddress,
108
+ },
109
+ getSignatureHeader(signature),
110
+ );
111
+
112
+ return data;
113
+ };
114
+
115
+ interface GetNftMultiplierRes {
116
+ nftMultiplier: number;
117
+ }
118
+
119
+ export const getNftMultiplier = async (ethereumAddress: string): Promise<GetNftMultiplierRes> => {
120
+ const data = await httpClient.get<GetNftMultiplierRes>(
121
+ `${DATA_SERVER_URL}${DATA_SERVER_CONFIG.getNftMultiplier(ethereumAddress)}`,
122
+ );
123
+ return data;
124
+ };
@@ -0,0 +1,17 @@
1
+ import { DATA_SERVER_CONFIG } from '../constants/server.constants';
2
+ import { DATA_SERVER_URL } from './getServerURL';
3
+ import { TelegramUser } from '../types';
4
+ import { httpClient } from '../data-structures/tor';
5
+
6
+ interface TelegramCallbackProps {
7
+ ethereumAddress: string;
8
+ telegramUser: TelegramUser;
9
+ }
10
+
11
+ export const sendTelegramCallback = async ({ ethereumAddress, telegramUser }: TelegramCallbackProps) => {
12
+ const data = await httpClient.post(`${DATA_SERVER_URL}${DATA_SERVER_CONFIG.getTelegramCallback}`, {
13
+ ethereumAddress,
14
+ telegramUser,
15
+ });
16
+ return data;
17
+ };
@@ -0,0 +1,19 @@
1
+ import { TransactionSimulatorMinimalResult } from '../types/TransactionSimulator.types';
2
+ import { getServerURL } from './getServerURL';
3
+ import { API_CONFIG } from '../constants/server.constants';
4
+ import { WCTransactionParameters } from '../types';
5
+ import { httpClient } from '../data-structures/tor';
6
+
7
+ export const simulateBatchTx = async (
8
+ chainId: number,
9
+ batchCalls: WCTransactionParameters[],
10
+ ): Promise<TransactionSimulatorMinimalResult<string>> => {
11
+ const response = await httpClient.post<TransactionSimulatorMinimalResult<string>>(
12
+ `${getServerURL(chainId)}${API_CONFIG.ROUTES.simulateBatchTx}`,
13
+ {
14
+ batchCalls,
15
+ },
16
+ );
17
+
18
+ return response;
19
+ };
@@ -0,0 +1,96 @@
1
+ import type {
2
+ RpcSimulateResult,
3
+ RpcSimulateTransactionBody,
4
+ RpcSimulateTransactionResponse,
5
+ RpcTransactionParams,
6
+ SimulateTxBody,
7
+ SimulateTxResponse,
8
+ } from '../types/tenderly.api.types';
9
+ import { chainIds } from '../constants/chains.constants';
10
+ import { httpClient } from '../data-structures/tor';
11
+
12
+ const TENDERLY_API_KEY = '7o1iPUgCIjLI0rSxj2yuz9-Z3052uUc4';
13
+
14
+ const accountSlug = 'hinkal-org';
15
+ const projectSlug = 'project';
16
+
17
+ const baseUrl = `https://api.tenderly.co/api/v1/account/${accountSlug}/project/${projectSlug}`;
18
+
19
+ const HEADERS = { 'X-Access-Key': TENDERLY_API_KEY };
20
+
21
+ // SIMULATE TRANSACTION ON ACTUAL NETWORK
22
+ export const simulateTx = async (simulateTxBody: SimulateTxBody): Promise<SimulateTxResponse> => {
23
+ const response = await httpClient.post<SimulateTxResponse>(
24
+ `${baseUrl}/simulate`,
25
+ { ...simulateTxBody },
26
+ {
27
+ headers: HEADERS,
28
+ },
29
+ );
30
+ return response;
31
+ };
32
+
33
+ // TENDERLY RPC SIMULATE TRANSACTION
34
+ export const tenderlyRpcLinks = {
35
+ [chainIds.optimism]: 'https://optimism.gateway.tenderly.co/2A3r4RCMoAZVmQOpNqRO29',
36
+ [chainIds.base]: 'https://base.gateway.tenderly.co/73UtIBn1YiCyhqRJuKTkWl',
37
+ [chainIds.ethMainnet]: 'https://mainnet.gateway.tenderly.co/SW3mROrzKEQYSq3RkStJ7',
38
+ [chainIds.avalanche]: 'https://avalanche.gateway.tenderly.co/2YdoJTNLCUHfzwvqIUVgwZ',
39
+ [chainIds.arbMainnet]: 'https://arbitrum.gateway.tenderly.co/4dUF2wEnsmvFw9fqLpoLga',
40
+ [chainIds.polygon]: 'https://polygon.gateway.tenderly.co/32hCaUScB41nXgyzCmeDVu',
41
+ // Arc Testnet is not supported by Tenderly
42
+ };
43
+
44
+ export const rpcSimulateTransaction = async (
45
+ chainId: number,
46
+ simulateTxBody: RpcSimulateTransactionBody,
47
+ ): Promise<RpcSimulateTransactionResponse> => {
48
+ const response = await httpClient.post<RpcSimulateTransactionResponse>(
49
+ tenderlyRpcLinks[chainId],
50
+ { jsonrpc: '2.0', id: 0, method: 'tenderly_simulateTransaction', params: simulateTxBody.params },
51
+ {
52
+ headers: HEADERS,
53
+ },
54
+ );
55
+ return response;
56
+ };
57
+
58
+ export const rpcSimulateBundle = async (
59
+ chainId: number,
60
+ simulateTxBody: RpcSimulateTransactionBody<RpcTransactionParams[]>,
61
+ ): Promise<RpcSimulateTransactionResponse<RpcSimulateResult[]>> => {
62
+ const response = await httpClient.post(
63
+ tenderlyRpcLinks[chainId],
64
+ { jsonrpc: '2.0', id: 0, method: 'tenderly_simulateBundle', params: simulateTxBody.params },
65
+ { headers: HEADERS },
66
+ );
67
+ return response;
68
+ };
69
+
70
+ export const rpcGetStorageChanges = async (chainId: number, address: string, offset: string) => {
71
+ const response = await httpClient.post<any>(
72
+ tenderlyRpcLinks[chainId],
73
+ {
74
+ jsonrpc: '2.0',
75
+ id: 0,
76
+ method: 'tenderly_getStorageChanges',
77
+ params: [
78
+ {
79
+ address,
80
+ offset,
81
+ },
82
+ ],
83
+ },
84
+ {
85
+ headers: HEADERS,
86
+ },
87
+ );
88
+ return response;
89
+ };
90
+
91
+ export const WALLET_API = {
92
+ rpcGetStorageChanges,
93
+ rpcSimulateTransaction,
94
+ rpcSimulateBundle,
95
+ simulateTx,
96
+ };
@@ -0,0 +1,19 @@
1
+ import { API_CONFIG } from '../constants/server.constants';
2
+ import { getServerURL } from './getServerURL';
3
+ import { ERC20Token } from '../types';
4
+ import { httpClient } from '../data-structures/tor';
5
+
6
+ export const tokensInfoCall = async (
7
+ chainId: number,
8
+ tokenAddresses: string[],
9
+ waitForOffsetUpdate = false,
10
+ ): Promise<(ERC20Token | undefined)[]> => {
11
+ const response = await httpClient.post<(ERC20Token | undefined)[]>(
12
+ `${getServerURL(chainId)}${API_CONFIG.ROUTES.getTokensInfo}`,
13
+ {
14
+ tokenAddresses,
15
+ waitForOffsetUpdate,
16
+ },
17
+ );
18
+ return response;
19
+ };