@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
package/src/API/API.ts ADDED
@@ -0,0 +1,203 @@
1
+ import { getIdleRelay } from './relayCalls';
2
+ import { userHasPassword, userRegisterPassword } from './passwordCalls';
3
+ import { getTokenPrice, getTokenPriceEth, getTokenPrices } from './getTokenPrice';
4
+ import {
5
+ getAccessTokenSignature,
6
+ getReclaimVerificationRequest,
7
+ getUserKycStatus,
8
+ getZkMeAccessToken,
9
+ setAiPriseVerificationUrl,
10
+ userHasKyc,
11
+ } from './kycCalls';
12
+ import { getOdosPriceForToken } from './callOdosAPI';
13
+ import { getTokenApprovalAmountRequest, getTokenSpendsFromOrderMessageRequest } from './ai-calls';
14
+ import { isTxStateless } from './is-tx-stateless';
15
+ import { simulateBatchTx } from './simulate-batch-tx';
16
+ import { tokensInfoCall } from './token-calls';
17
+ import { getTokenData } from './get-token-data';
18
+ import { decryptUtxoEnclaveCall } from './enclaveCalls';
19
+ import { getBridgeProtocols } from './getBridgeProtocols';
20
+ import { getLifiStatus } from './getLifiStatus';
21
+ import { generateAumPoints, generateTradingPoints } from './generate-trading-points';
22
+ import {
23
+ createBrotherhood,
24
+ editBrotherhood,
25
+ getBrotherhood,
26
+ getBrotherhoodUsers,
27
+ getCurrentUserBrotherhood,
28
+ getCurrentUserBrotherhoodUsers,
29
+ getPublicBrotherhoods,
30
+ joinBrotherhood,
31
+ leaveBrotherhood,
32
+ } from './brotherhoodCalls';
33
+ import { getBrotherhoodsLeaderboard, getUserCurrentLeaderboard } from './leaderboardCalls';
34
+ import { getCurrentUserAppliedReferralCode, getCurrentUserReferral, submitReferralCode } from './referralsCalls';
35
+ import {
36
+ connectRewardsUser,
37
+ disconnectSocialNetwork,
38
+ getNftMultiplier,
39
+ getSwapStreak,
40
+ getTasksProgress,
41
+ updateRewardsUser,
42
+ } from './rewardsUserCalls';
43
+ import { getBrotherhoodAnalytics, getUserAnalytics } from './weeklyAnalyticCalls';
44
+ import { sendTelegramCallback } from './send-telegram-callback';
45
+ import { getProxyAccounts, updateProxyAccounts } from './proxyAccountsCalls';
46
+ import {
47
+ claimMerchItem,
48
+ createOrUpdateMerchAddress,
49
+ getCurrentAuctionsInfo,
50
+ getCurrentDayBoxPrizeCounts,
51
+ getMerchOrders,
52
+ getMysteryBoxesHistory,
53
+ getServerUtc,
54
+ openMysteryBox,
55
+ } from './mysteryBoxesCalls';
56
+ import { monitor } from './callMonitor';
57
+
58
+ export type IAPI = {
59
+ getUserKycStatus: typeof getUserKycStatus;
60
+ setAiPriseVerificationUrl: typeof setAiPriseVerificationUrl;
61
+ getAccessTokenSignature: typeof getAccessTokenSignature;
62
+ getReclaimVerificationRequest: typeof getReclaimVerificationRequest;
63
+ getZkMeAccessToken: typeof getZkMeAccessToken;
64
+ getTokenPrice: typeof getTokenPrice;
65
+ getTokenPriceEth: typeof getTokenPriceEth;
66
+ getTokenPrices: typeof getTokenPrices;
67
+ getOdosPriceForToken: typeof getOdosPriceForToken;
68
+ getIdleRelay: typeof getIdleRelay;
69
+ userHasPassword: typeof userHasPassword;
70
+ userRegisterPassword: typeof userRegisterPassword;
71
+ getTokenApprovalAmountRequest: typeof getTokenApprovalAmountRequest;
72
+ getTokenSpendsFromOrderMessageRequest: typeof getTokenSpendsFromOrderMessageRequest;
73
+ isTxStateless: typeof isTxStateless;
74
+ simulateBatchTx: typeof simulateBatchTx;
75
+ tokensInfoCall: typeof tokensInfoCall;
76
+ getTokenData: typeof getTokenData;
77
+ decryptUtxoEnclaveCall: typeof decryptUtxoEnclaveCall;
78
+ getBridgeProtocols: typeof getBridgeProtocols;
79
+ getLifiStatus: typeof getLifiStatus;
80
+ userHasKyc: typeof userHasKyc;
81
+ generateTradingPoints: typeof generateTradingPoints;
82
+ getBrotherhoodUsers: typeof getBrotherhoodUsers;
83
+ getCurrentUserBrotherhoodUsers: typeof getCurrentUserBrotherhoodUsers;
84
+ editBrotherhood: typeof editBrotherhood;
85
+ createBrotherhood: typeof createBrotherhood;
86
+ getCurrentUserBrotherhood: typeof getCurrentUserBrotherhood;
87
+ getPublicBrotherhoods: typeof getPublicBrotherhoods;
88
+ leaveBrotherhood: typeof leaveBrotherhood;
89
+ joinBrotherhood: typeof joinBrotherhood;
90
+ getUserAnalytics: typeof getUserAnalytics;
91
+ connectRewardsUser: typeof connectRewardsUser;
92
+ getBrotherhood: typeof getBrotherhood;
93
+ updateRewardsUser: typeof updateRewardsUser;
94
+ getUserCurrentLeaderboard: typeof getUserCurrentLeaderboard;
95
+ getBrotherhoodsLeaderboard: typeof getBrotherhoodsLeaderboard;
96
+ getCurrentUserReferral: typeof getCurrentUserReferral;
97
+ submitReferralCode: typeof submitReferralCode;
98
+ getCurrentUserAppliedReferralCode: typeof getCurrentUserAppliedReferralCode;
99
+ sendTelegramCallback: typeof sendTelegramCallback;
100
+ generateAumPoints: typeof generateAumPoints;
101
+ getSwapStreak: typeof getSwapStreak;
102
+ getBrotherhoodAnalytics: typeof getBrotherhoodAnalytics;
103
+ getTasksProgress: typeof getTasksProgress;
104
+ disconnectSocialNetwork: typeof disconnectSocialNetwork;
105
+ getProxyAccounts: typeof getProxyAccounts;
106
+ updateProxyAccounts: typeof updateProxyAccounts;
107
+ openMysteryBox: typeof openMysteryBox;
108
+ getMysteryBoxesHistory: typeof getMysteryBoxesHistory;
109
+ createOrUpdateMerchAddress: typeof createOrUpdateMerchAddress;
110
+ claimMerchItem: typeof claimMerchItem;
111
+ getMerchOrders: typeof getMerchOrders;
112
+ getNftMultiplier: typeof getNftMultiplier;
113
+ getCurrentDayBoxPrizeCounts: typeof getCurrentDayBoxPrizeCounts;
114
+ getCurrentAuctionsInfo: typeof getCurrentAuctionsInfo;
115
+ getServerUtc: typeof getServerUtc;
116
+ monitor: typeof monitor;
117
+ };
118
+
119
+ export const API: IAPI = {
120
+ // KYC
121
+ getUserKycStatus,
122
+ setAiPriseVerificationUrl,
123
+ getAccessTokenSignature,
124
+ getReclaimVerificationRequest,
125
+ getZkMeAccessToken,
126
+ userHasKyc,
127
+ // Prices
128
+ getTokenPrice,
129
+ getTokenPriceEth,
130
+ getTokenPrices,
131
+ getOdosPriceForToken,
132
+ // relay
133
+ getIdleRelay,
134
+ // password
135
+ userHasPassword,
136
+ userRegisterPassword,
137
+ // points
138
+ generateTradingPoints,
139
+ generateAumPoints,
140
+ // brotherhood
141
+ getBrotherhoodUsers,
142
+ getCurrentUserBrotherhoodUsers,
143
+ getBrotherhood,
144
+ editBrotherhood,
145
+ createBrotherhood,
146
+ getCurrentUserBrotherhood,
147
+ getPublicBrotherhoods,
148
+ leaveBrotherhood,
149
+ joinBrotherhood,
150
+ // weekly analytics
151
+ getUserAnalytics,
152
+ getBrotherhoodAnalytics,
153
+ // rewards user
154
+ connectRewardsUser,
155
+ updateRewardsUser,
156
+ disconnectSocialNetwork,
157
+ // leaderboard
158
+ getUserCurrentLeaderboard,
159
+ getBrotherhoodsLeaderboard,
160
+ // referral
161
+ getCurrentUserReferral,
162
+ submitReferralCode,
163
+ getCurrentUserAppliedReferralCode,
164
+ // AI
165
+ getTokenApprovalAmountRequest,
166
+ getTokenSpendsFromOrderMessageRequest,
167
+ // tenderly
168
+ isTxStateless,
169
+ simulateBatchTx,
170
+ // token calls
171
+ tokensInfoCall,
172
+ getTokenData,
173
+ // enclave
174
+ decryptUtxoEnclaveCall,
175
+ // bridge protocols
176
+ getBridgeProtocols,
177
+ // lifi
178
+ getLifiStatus,
179
+ // callbacks
180
+ sendTelegramCallback,
181
+ // tasks
182
+ getTasksProgress,
183
+ // swap streak
184
+ getSwapStreak,
185
+ // proxy accounts
186
+ getProxyAccounts,
187
+ updateProxyAccounts,
188
+ // mystery boxes
189
+ openMysteryBox,
190
+ getMysteryBoxesHistory,
191
+ createOrUpdateMerchAddress,
192
+ claimMerchItem,
193
+ getMerchOrders,
194
+ getCurrentDayBoxPrizeCounts,
195
+ // nft multiplier
196
+ getNftMultiplier,
197
+ // auction
198
+ getCurrentAuctionsInfo,
199
+ // server utc
200
+ getServerUtc,
201
+ // hexagate
202
+ monitor,
203
+ };
@@ -0,0 +1,8 @@
1
+ import { RELAYER_CONFIG } from '../constants/server.constants';
2
+ import { getRelayerURL } from './getRelayerURL';
3
+ import { httpClient } from '../data-structures/tor';
4
+ import { AdminDataType } from '../types/admin.types';
5
+
6
+ export const emitTxPublicData = (chainId: number, adminData: AdminDataType | undefined) => {
7
+ return httpClient.post(`${getRelayerURL(chainId)}${RELAYER_CONFIG.emitTxPublicData}`, { adminData });
8
+ };
@@ -0,0 +1,48 @@
1
+ import { API_CONFIG } from '../constants/server.constants';
2
+ import { getServerURL } from './getServerURL';
3
+ import { httpClient } from '../data-structures/tor';
4
+
5
+ type TokenInfo = {
6
+ address?: string;
7
+ symbol?: string;
8
+ name?: string;
9
+ };
10
+
11
+ interface GetTokenApprovalAmountsResponse {
12
+ tokenAmount: string;
13
+ }
14
+
15
+ export const getTokenApprovalAmountRequest = async (
16
+ html: string,
17
+ tokenInfo: TokenInfo,
18
+ chainId: number,
19
+ ): Promise<GetTokenApprovalAmountsResponse> => {
20
+ return httpClient.post<GetTokenApprovalAmountsResponse>(
21
+ `${getServerURL(chainId)}${API_CONFIG.ROUTES.getTokenApprovalAmount}`,
22
+ {
23
+ html,
24
+ tokenInfo,
25
+ },
26
+ );
27
+ };
28
+
29
+ interface GetTokenSpendsFromOrderMessageResponse {
30
+ tokenSpends: {
31
+ token: string;
32
+ amount: string;
33
+ }[];
34
+ }
35
+
36
+ export const getTokenSpendsFromOrderMessageRequest = async (
37
+ chainId: number,
38
+ message: Record<string, unknown>,
39
+ types: Record<string, unknown>,
40
+ ) => {
41
+ return httpClient.post<GetTokenSpendsFromOrderMessageResponse>(
42
+ `${getServerURL(chainId)}${API_CONFIG.ROUTES.getTokenSpendsFromOrderMessage}`,
43
+ {
44
+ message,
45
+ types,
46
+ },
47
+ );
48
+ };
@@ -0,0 +1,184 @@
1
+ import { DATA_SERVER_URL } from './getServerURL';
2
+ import { DATA_SERVER_CONFIG } from '../constants/server.constants';
3
+ import {
4
+ Brotherhood,
5
+ BrotherhoodUser,
6
+ BrotherhoodUserWeeklyAnalyticLeaderboardEntry,
7
+ PublicBrotherhoodWithStats,
8
+ } from '../types';
9
+ import { httpClient } from '../data-structures/tor';
10
+ import { getSignatureHeader } from '../functions/utils/get-signature-header';
11
+
12
+ interface GetBrotherhoodProps {
13
+ brotherhoodId: number;
14
+ }
15
+
16
+ interface GetBrotherhoodRes {
17
+ brotherhood: Brotherhood | undefined;
18
+ }
19
+
20
+ export const getBrotherhood = async ({ brotherhoodId }: GetBrotherhoodProps): Promise<GetBrotherhoodRes> => {
21
+ const data = await httpClient.get(`${DATA_SERVER_URL}${DATA_SERVER_CONFIG.getBrotherhood(brotherhoodId)}`);
22
+ return data;
23
+ };
24
+
25
+ interface GetBrotherhoodUsersRes {
26
+ message: number;
27
+ brotherhoodUsers: BrotherhoodUser[];
28
+ brotherhoodUserWeeklyAnalytics: BrotherhoodUserWeeklyAnalyticLeaderboardEntry[];
29
+ }
30
+
31
+ export const getBrotherhoodUsers = async (brotherhoodId: number): Promise<GetBrotherhoodUsersRes> => {
32
+ const data = await httpClient.get(`${DATA_SERVER_URL}${DATA_SERVER_CONFIG.getBrotherhoodUsers(brotherhoodId)}`);
33
+ return data;
34
+ };
35
+
36
+ export const getCurrentUserBrotherhoodUsers = async (ethereumAddress: string): Promise<GetBrotherhoodUsersRes> => {
37
+ const data = await httpClient.get(
38
+ `${DATA_SERVER_URL}${DATA_SERVER_CONFIG.getCurrentUserBrotherhoodUsers(ethereumAddress)}`,
39
+ );
40
+ return data;
41
+ };
42
+
43
+ interface EditBrotherhoodProps {
44
+ ethereumAddress: string;
45
+ name: string;
46
+ isPublic: boolean;
47
+ description: string;
48
+ signature?: string;
49
+ proxyAddress?: string;
50
+ profileImage: string | undefined;
51
+ inviteButtonName: string | undefined;
52
+ inviteButtonLink: string | undefined;
53
+ }
54
+
55
+ interface EditBrotherhoodRes {
56
+ message: string;
57
+ brotherhood: Brotherhood;
58
+ }
59
+
60
+ export const editBrotherhood = async (inputData: EditBrotherhoodProps): Promise<EditBrotherhoodRes> => {
61
+ const data = await httpClient.patch(
62
+ `${DATA_SERVER_URL}${DATA_SERVER_CONFIG.editBrotherhood}`,
63
+ inputData,
64
+ getSignatureHeader(inputData.signature),
65
+ );
66
+ return data;
67
+ };
68
+
69
+ interface CreateBrotherhoodProps {
70
+ ethereumAddress: string;
71
+ profileImage: string | undefined;
72
+ name: string;
73
+ isPublic: boolean;
74
+ description: string;
75
+ signature?: string;
76
+ proxyAddress?: string;
77
+ }
78
+
79
+ interface CreateBrotherhoodRes {
80
+ message: string;
81
+ brotherhood: Brotherhood;
82
+ }
83
+
84
+ export const createBrotherhood = async (inputData: CreateBrotherhoodProps): Promise<CreateBrotherhoodRes> => {
85
+ const data = await httpClient.post(
86
+ `${DATA_SERVER_URL}${DATA_SERVER_CONFIG.createBrotherhood}`,
87
+ inputData,
88
+ getSignatureHeader(inputData.signature),
89
+ );
90
+ return data;
91
+ };
92
+
93
+ interface GetCurrentUserBrotherhoodProps {
94
+ ethereumAddress: string;
95
+ }
96
+
97
+ interface GetCurrentUserBrotherhoodRes {
98
+ message: string;
99
+ brotherhood: Brotherhood | undefined;
100
+ }
101
+
102
+ export const getCurrentUserBrotherhood = async ({
103
+ ethereumAddress,
104
+ }: GetCurrentUserBrotherhoodProps): Promise<GetCurrentUserBrotherhoodRes> => {
105
+ const data = await httpClient.post(`${DATA_SERVER_URL}${DATA_SERVER_CONFIG.getCurrentUserBrotherhood}`, {
106
+ ethereumAddress,
107
+ });
108
+ return data;
109
+ };
110
+
111
+ interface GetPublicBrotherhoodsRes {
112
+ message: string;
113
+ brotherhoods: PublicBrotherhoodWithStats[];
114
+ }
115
+
116
+ export const getPublicBrotherhoods = async (): Promise<GetPublicBrotherhoodsRes> => {
117
+ const data = await httpClient.get(`${DATA_SERVER_URL}${DATA_SERVER_CONFIG.getPublicBrotherhoods}`);
118
+
119
+ return data;
120
+ };
121
+
122
+ interface LeaveBrotherhoodProps {
123
+ brotherhoodId: number;
124
+ transferEthereumAddress: string | undefined;
125
+ ethereumAddress: string;
126
+ signature: string;
127
+ proxyAddress: string;
128
+ }
129
+
130
+ interface LeaveBrotherhoodRes {
131
+ message: string;
132
+ }
133
+
134
+ export const leaveBrotherhood = async ({
135
+ brotherhoodId,
136
+ transferEthereumAddress,
137
+ ethereumAddress,
138
+ signature,
139
+ proxyAddress,
140
+ }: LeaveBrotherhoodProps): Promise<LeaveBrotherhoodRes> => {
141
+ const data = await httpClient.patch(
142
+ `${DATA_SERVER_URL}${DATA_SERVER_CONFIG.leaveBrotherhood(brotherhoodId)}`,
143
+ {
144
+ transferEthereumAddress,
145
+ ethereumAddress,
146
+ proxyAddress,
147
+ },
148
+ getSignatureHeader(signature),
149
+ );
150
+
151
+ return data;
152
+ };
153
+
154
+ interface JoinBrotherhoodProps {
155
+ ethereumAddress: string;
156
+ brotherhoodId: number;
157
+ signature: string;
158
+ invitationToken?: string;
159
+ proxyAddress: string;
160
+ }
161
+
162
+ interface JoinBrotherhoodRes {
163
+ message: string;
164
+ brotherhood: Brotherhood;
165
+ }
166
+
167
+ export const joinBrotherhood = async ({
168
+ brotherhoodId,
169
+ ethereumAddress,
170
+ signature,
171
+ invitationToken,
172
+ proxyAddress,
173
+ }: JoinBrotherhoodProps): Promise<JoinBrotherhoodRes> => {
174
+ const data = await httpClient.patch(
175
+ `${DATA_SERVER_URL}${DATA_SERVER_CONFIG.joinBrotherhood(brotherhoodId)}`,
176
+ {
177
+ ethereumAddress,
178
+ invitationToken,
179
+ proxyAddress,
180
+ },
181
+ getSignatureHeader(signature),
182
+ );
183
+ return data;
184
+ };
@@ -0,0 +1,41 @@
1
+ import { getServerURL } from './getServerURL';
2
+ import { API_CONFIG } from '../constants/server.constants';
3
+ import { httpClient } from '../data-structures/tor';
4
+
5
+ export interface LifiRequestData {
6
+ fromChain: number;
7
+ toChain: number;
8
+ fromToken: string;
9
+ toToken: string;
10
+ fromAddress: string;
11
+ toAddress?: string; // if not specified same as fromAddress
12
+ fromAmount: string; // bigint-ish string
13
+ order: 'FASTEST' | 'CHEAPEST';
14
+ slippage: number; // 0.005 represents 0.5%
15
+ }
16
+
17
+ export interface LifiBridgeResponse {
18
+ id: string;
19
+ type: 'swap' | 'cross' | 'lifi';
20
+ tool: string;
21
+ transactionRequest: {
22
+ from: string;
23
+ to: string;
24
+ chainId: string;
25
+ value: string;
26
+ data: string;
27
+ };
28
+ estimate: {
29
+ tool: string;
30
+ fromAmount: string; // bigint-ish string
31
+ toAmount: string; // bigint-ish string
32
+ toAmountMin: string; // bigint-ish string
33
+ };
34
+ }
35
+
36
+ export const callLifiAPI = async (chainId: number, requestBody: LifiRequestData) => {
37
+ return httpClient.post<{ status: 'success'; lifiResponse: LifiBridgeResponse }>(
38
+ `${getServerURL(chainId)}${API_CONFIG.ROUTES.callLifiAPI}`,
39
+ requestBody,
40
+ );
41
+ };
@@ -0,0 +1,9 @@
1
+ import axios from 'axios';
2
+ import { API_CONFIG } from '../constants/server.constants';
3
+ import { getServerURL } from './getServerURL';
4
+
5
+ export const monitor = (address: string, chainId: number) =>
6
+ axios.post<void>(`${getServerURL(chainId)}${API_CONFIG.ROUTES.monitor}`, {
7
+ address,
8
+ chainId,
9
+ });
@@ -0,0 +1,89 @@
1
+ import { API_CONFIG } from '../constants/server.constants';
2
+ import { chainIds } from '../constants/chains.constants';
3
+ import { getServerURL } from './getServerURL';
4
+ import { Logger } from '../error-handling/logger';
5
+ import { httpClient } from '../data-structures/tor';
6
+
7
+ export interface OdosSwapRequest {
8
+ chainId: number;
9
+ inputTokens: {
10
+ tokenAddress: string;
11
+ amount: string;
12
+ }[];
13
+ outputTokens: {
14
+ tokenAddress: string;
15
+ proportion: number;
16
+ }[];
17
+ userAddr: string;
18
+ gasPrice?: number;
19
+ slippageLimitPercent?: number;
20
+ sourceBlacklist?: Array<string>;
21
+ sourceWhitelist?: Array<string>;
22
+ simulate?: boolean;
23
+ pathVizImage?: string;
24
+ pathVizImageConfig?: {
25
+ linkColors?: string[];
26
+ nodeColor?: string;
27
+ nodeTextColor?: string;
28
+ legendTextColor?: string;
29
+ width: number;
30
+ height: number;
31
+ };
32
+ disableRFQs?: boolean;
33
+ referralCode?: string;
34
+ compact?: boolean;
35
+ likeAsset?: boolean;
36
+ }
37
+
38
+ export interface OdosSwapData {
39
+ blockNumber: number;
40
+ gasEstimate: number;
41
+ gasEstimateValue: number;
42
+ inputTokens: {
43
+ tokenAddress: string;
44
+ amount: number;
45
+ }[];
46
+ outputTokens: {
47
+ tokenAddress: string;
48
+ amount: number;
49
+ }[];
50
+ netOutValues: Array<number>;
51
+ outValues: Array<string>;
52
+ transaction: {
53
+ gas: number;
54
+ gasPrice: number;
55
+ chainId: number;
56
+ value: string;
57
+ to: string;
58
+ data: string;
59
+ nonce: number;
60
+ };
61
+ simulation: {
62
+ isSuccess: boolean;
63
+ amountsOut: Array<number>;
64
+ simGasUsed: number;
65
+ gasEstimate: number;
66
+ simulationError: string;
67
+ };
68
+ }
69
+
70
+ // to send verification code on email through server
71
+ export async function callOdosAPI(chainId: number, requestBody: OdosSwapRequest) {
72
+ // TODO: referralCode doesn't seem to work on base, why?
73
+ if (![chainIds.base, chainIds.localhost].includes(chainId)) {
74
+ requestBody.referralCode = '702077826';
75
+ }
76
+ return httpClient.post(`${getServerURL(chainId)}${API_CONFIG.ROUTES.callOdosAPI}`, requestBody);
77
+ }
78
+
79
+ export const getOdosPriceForToken = async (chainId: number, tokenAddress: string): Promise<number | undefined> => {
80
+ try {
81
+ const response = await httpClient.get<{ price: number }>(
82
+ `${getServerURL(chainId)}${API_CONFIG.ROUTES.getOdosPriceForToken(tokenAddress)}`,
83
+ );
84
+ return response.price;
85
+ } catch (error) {
86
+ Logger.error('Error fetching Odos price:', error);
87
+ return undefined;
88
+ }
89
+ };
@@ -0,0 +1,47 @@
1
+ import { API_CONFIG } from '../constants/server.constants';
2
+ import { getNonLocalhostChainId } from '../constants/chains.constants';
3
+ import { getServerURL } from './getServerURL';
4
+ import { httpClient } from '../data-structures/tor';
5
+
6
+ // missing some parameters, here are the only fields relevant to us.
7
+ export interface OneInchRequest {
8
+ fromTokenAddress: string;
9
+ toTokenAddress: string;
10
+ // amount here should be in bigint to preserve type safety, will be converted automatically to the appropriate format
11
+ amount: bigint;
12
+ fromAddress: string;
13
+ slippage: number;
14
+ destReceiver?: string;
15
+ disableEstimate?: boolean;
16
+ allowPartialFill?: boolean;
17
+ }
18
+
19
+ // again, not all fields are listed here, only the ones that we need.
20
+
21
+ export interface OneInchTx {
22
+ data: string; // calldata that we need to use to call the contract
23
+ }
24
+
25
+ export interface OneInchResponse {
26
+ tx: OneInchTx;
27
+ toAmount: string; // bigint-like representation
28
+ }
29
+
30
+ export const callOneInchAPI = async (chainId: number, request: OneInchRequest): Promise<OneInchResponse> => {
31
+ const nonLocalhostChainId = getNonLocalhostChainId(chainId);
32
+
33
+ const paramsToUse = new URLSearchParams();
34
+ paramsToUse.append('fromTokenAddress', request.fromTokenAddress);
35
+ paramsToUse.append('toTokenAddress', request.toTokenAddress);
36
+ paramsToUse.append('amount', `${request.amount}`);
37
+ paramsToUse.append('fromAddress', request.fromAddress);
38
+ paramsToUse.append('slippage', `${request.slippage}`);
39
+ if (request.destReceiver) paramsToUse.append('destReceiver', request.destReceiver);
40
+ if (request.disableEstimate) paramsToUse.append('disableEstimate', `${request.disableEstimate}`);
41
+ if (request.allowPartialFill) paramsToUse.append('allowPartialFill', `${request.allowPartialFill}`);
42
+ const requestBody = {
43
+ url: `https://api.1inch.dev/swap/v5.2/${nonLocalhostChainId}/swap?${paramsToUse}`,
44
+ };
45
+ const oneInchData = await httpClient.post(`${getServerURL(chainId)}${API_CONFIG.ROUTES.callOneInchAPI}`, requestBody);
46
+ return oneInchData.oneInchResponse;
47
+ };
@@ -0,0 +1,23 @@
1
+ import { RELAYER_CONFIG } from '../constants/server.constants';
2
+ import { CircomDataBaseJsonType, DimDataType } from '../types/circom-data.types';
3
+ import { getRelayerURL } from './getRelayerURL';
4
+ import { AuthorizationData } from '../types/hinkal.types';
5
+ import { httpClient } from '../data-structures/tor';
6
+ import { AdminDataType } from '../types/admin.types';
7
+
8
+ export interface HinkalTransactionRequestBody {
9
+ a: [string, string];
10
+ b: [[string, string], [string, string]];
11
+ c: [string, string];
12
+ dimData: DimDataType;
13
+ circomData: CircomDataBaseJsonType;
14
+ withPrivateMempool?: boolean;
15
+ withUniswapWorkAround?: boolean;
16
+ authorizationData?: AuthorizationData;
17
+ adminData?: AdminDataType;
18
+ }
19
+
20
+ // to send verification code on email through server
21
+ export async function callRelayerTransactAPI(chainId: number, requestBody: HinkalTransactionRequestBody) {
22
+ return httpClient.post(`${getRelayerURL(chainId)}${RELAYER_CONFIG.TRANSACT}`, requestBody);
23
+ }
@@ -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 const checkRisk = async (chainId: number, address: string) => {
6
+ return httpClient.get(`${getServerURL(chainId)}${API_CONFIG.ROUTES.checkRisk(address)}`);
7
+ };
@@ -0,0 +1,26 @@
1
+ import axios from 'axios';
2
+ import { getServerURL } from './getServerURL';
3
+ import { API_CONFIG } from '../constants';
4
+
5
+ interface WalletBalancesInfo {
6
+ amount: string;
7
+ decimals: number;
8
+ address: string;
9
+ chain: string;
10
+ chain_id: number;
11
+ symbol?: string;
12
+ value_usd?: number;
13
+ }
14
+
15
+ interface IGetPublicWalletBalance {
16
+ balances: WalletBalancesInfo[];
17
+ }
18
+
19
+ export const getPublicWalletBalance = async (walletAddress: string, chainId: number): Promise<WalletBalancesInfo[]> => {
20
+ const { balances } = (
21
+ await axios.get<IGetPublicWalletBalance>(
22
+ `${getServerURL(chainId)}${API_CONFIG.ROUTES.getPublicWalletInformation(walletAddress)}`,
23
+ )
24
+ ).data;
25
+ return balances;
26
+ };