@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,311 @@
1
+ import { ChainEventListener, IProviderAdapter } from '../data-structures/provider-adapter/IProviderAdapter';
2
+ import { chainIds, localhostNetwork, networkRegistry } from '../constants/chains.constants';
3
+ import { ContractMetadata, ContractType, EthereumNetwork } from '../types/ethereum-network.types';
4
+ import { transactionErrorCodes, UserFriendlyErrorCodes } from '../error-handling/error-codes.constants';
5
+ import { ethers, providers, Signer, utils } from 'ethers';
6
+ import { type Config, type Connector, ConnectorAlreadyConnectedError } from 'wagmi';
7
+ import {
8
+ connect,
9
+ disconnect,
10
+ getAccount,
11
+ reconnect,
12
+ signMessage,
13
+ switchChain,
14
+ watchAccount,
15
+ watchChainId,
16
+ } from 'wagmi/actions';
17
+ import {
18
+ getContract,
19
+ getContractMetadata,
20
+ getContractWithFetcherByChainId,
21
+ } from '../functions/web3/getContractMetadata';
22
+
23
+ // Should not be reexported in index for correct work on different enviroments
24
+ export class WagmiProviderAdapter implements IProviderAdapter<Connector> {
25
+ private connector: Connector | undefined;
26
+
27
+ public chainId: number | undefined;
28
+
29
+ private originalProvider: providers.Provider | undefined;
30
+
31
+ private fetchProvider: providers.Provider | undefined;
32
+
33
+ private signer: Signer | undefined;
34
+
35
+ private chainEventListener?: ChainEventListener;
36
+
37
+ private config?: Config;
38
+
39
+ private unsubscribeFns: Array<() => unknown> = [];
40
+
41
+ initConnector(connector: Connector) {
42
+ this.connector = connector;
43
+ }
44
+
45
+ getSigner(): Signer {
46
+ if (!this.signer) throw new Error('No Signer In Provider Adapter');
47
+ return this.signer;
48
+ }
49
+
50
+ requireConnector() {
51
+ if (!this.connector) throw Error('No Connector In Provider Adapter');
52
+ }
53
+
54
+ initConfig(config: any) {
55
+ this.config = config as Config;
56
+ }
57
+
58
+ async init(chainId?: number) {
59
+ this.requireConnector();
60
+ // init chainId
61
+ if (chainId) this.chainId = chainId;
62
+ // init providers
63
+ this.originalProvider = (await this.connector!.getProvider()) as providers.Provider | undefined;
64
+ this.fetchProvider = this.createFetchProvider() ?? this.originalProvider;
65
+ if (this.fetchProvider === this.originalProvider) console.warn('fetchProvider not available');
66
+ // init signer
67
+ const provider = await this.connector!.getProvider();
68
+ const account = await this.connector!.getAccounts();
69
+
70
+ this.signer = await this.walletClientToSigner({ transport: provider, account: account[0] }, this.chainId!);
71
+ }
72
+
73
+ async disconnectFromConnector() {
74
+ if (!this.config) throw new Error('No Config In Provider Adapter');
75
+
76
+ this.release();
77
+ await disconnect(this.config); // metamask does not support programmic disconnect
78
+ }
79
+
80
+ async connectToConnector(connector: Connector): Promise<number> {
81
+ if (!this.config) throw new Error('No Config In Provider Adapter');
82
+ // force walletconnect to always show modal
83
+ // wallet connect will attempt to reuse previous session
84
+ // this can lead to signMessage to hang and no matching key in history errors getting logged in console which can't be caught
85
+ // encountered this problem with safe wallet, might be problem with other wallets as well
86
+ if (connector.id === 'walletConnect')
87
+ try {
88
+ await reconnect(this.config, { connectors: [connector] });
89
+ await disconnect(this.config);
90
+ } catch (err) {
91
+ // we can ignore any errors here
92
+ }
93
+ try {
94
+ const connectResult = await connect(this.config, { connector });
95
+ return connectResult.chainId;
96
+ } catch (err) {
97
+ if (err instanceof ConnectorAlreadyConnectedError) {
98
+ return connector.getChainId();
99
+ }
100
+
101
+ let error = transactionErrorCodes.CONNECTION_FAILED;
102
+
103
+ if ((err as any)?.code === 4001) {
104
+ error = UserFriendlyErrorCodes.YOU_CANCELED_REQUEST;
105
+ }
106
+
107
+ throw new Error(error);
108
+ }
109
+ }
110
+
111
+ async waitForTransaction(transactionHash: string, confirmations: number): Promise<boolean> {
112
+ const txReceipt = await this.fetchProvider?.waitForTransaction(transactionHash, confirmations);
113
+ if (txReceipt?.status) return true;
114
+ throw Error(transactionErrorCodes.TRANSACTION_NOT_CONFIRMED);
115
+ }
116
+
117
+ async signMessage(message: string): Promise<string> {
118
+ if (!this.config) throw new Error('No Config In Provider Adapter');
119
+
120
+ const signature = await signMessage(this.config, { message });
121
+ if (!signature) throw new Error(transactionErrorCodes.SIGNING_FAILED); // coinbase wallet returns undefined in some cases.
122
+ if (signature.includes('error')) throw new Error(transactionErrorCodes.SIGNATURE_UNSUPPORTED_PERSONAL_SIGN);
123
+ return signature;
124
+ }
125
+
126
+ async signTypedData(
127
+ domain: ethers.TypedDataDomain,
128
+ types: Record<string, ethers.TypedDataField[]>,
129
+ value: Record<string, unknown>,
130
+ ): Promise<string> {
131
+ return (this.signer as providers.JsonRpcSigner)._signTypedData(domain, types, value);
132
+ }
133
+
134
+ getSelectedNetwork = (): EthereumNetwork | undefined => {
135
+ if (!this.chainId) throw new Error('Illegal state: no chaindId');
136
+ return networkRegistry[this.chainId];
137
+ };
138
+
139
+ async switchNetwork(network: EthereumNetwork) {
140
+ if (!this.config) throw new Error('No Config In Provider Adapter');
141
+
142
+ return switchChain(this.config, {
143
+ chainId: network.chainId as 1 | 137 | 56 | 42161 | 10 | 43114 | 31337 | 5042002,
144
+ });
145
+ }
146
+
147
+ private createFetchProvider() {
148
+ try {
149
+ const network = networkRegistry[this.chainId!];
150
+ const fetchRpcUrl = network?.fetchRpcUrl;
151
+ if (!fetchRpcUrl) {
152
+ return undefined;
153
+ }
154
+ return fetchRpcUrl.includes('wss')
155
+ ? new providers.WebSocketProvider(fetchRpcUrl)
156
+ : new providers.StaticJsonRpcProvider(fetchRpcUrl);
157
+ } catch (err) {
158
+ console.log('create Fetch Provider error', err);
159
+ return undefined;
160
+ }
161
+ }
162
+
163
+ async getAddress(): Promise<string> {
164
+ if (!this.config) throw new Error('No Config In Provider Adapter');
165
+
166
+ const { address } = getAccount(this.config);
167
+ if (!address) {
168
+ throw new Error('IllegalState');
169
+ }
170
+ return utils.getAddress(address);
171
+ }
172
+
173
+ setChainEventListener(chainEventListener: ChainEventListener): void {
174
+ if (!this.config) throw new Error('No Config In Provider Adapter');
175
+
176
+ this.chainEventListener = chainEventListener;
177
+
178
+ if (this.chainEventListener) {
179
+ this.unsubscribeFns.push(
180
+ watchAccount(this.config, {
181
+ onChange: ({ address }, { address: previousAddress }) => {
182
+ if (!this.chainEventListener) {
183
+ console.warn('chainEventListener is not set');
184
+ return;
185
+ }
186
+ console.log('Account changed');
187
+ // switching chains for some reason causes change event to fire with metamask mobile
188
+ if (address !== previousAddress) {
189
+ console.log('Account changed');
190
+ this.chainEventListener.onAccountChanged();
191
+ }
192
+ },
193
+ }),
194
+ );
195
+ this.unsubscribeFns.push(
196
+ watchChainId(this.config, {
197
+ onChange: (chainId) => {
198
+ if (!this.chainEventListener) {
199
+ console.warn('chainEventListener is not set');
200
+ return;
201
+ }
202
+ console.log('Chain ID changed!', chainId);
203
+ this.chainEventListener.onChainChanged(chainId);
204
+ },
205
+ }),
206
+ );
207
+ }
208
+ }
209
+
210
+ onAccountChanged(): Promise<unknown> {
211
+ return this.init();
212
+ }
213
+
214
+ onChainChanged(chainId?: number): Promise<unknown> {
215
+ return this.init(chainId);
216
+ }
217
+
218
+ release(): void {
219
+ this.removeListeners();
220
+ }
221
+
222
+ private removeListeners() {
223
+ this.unsubscribeFns.forEach((unsubscribeFn) => unsubscribeFn());
224
+ this.unsubscribeFns = [];
225
+ }
226
+
227
+ private parseChainIdParam(chainId: number | undefined) {
228
+ const resultChainId = chainId ?? this.chainId;
229
+
230
+ if (!resultChainId) {
231
+ throw new Error('No chainId provided in context');
232
+ }
233
+ return resultChainId;
234
+ }
235
+
236
+ getContractMetadata(contractType: ContractType, chainId?: number): ContractMetadata {
237
+ const resultChainId = this.parseChainIdParam(chainId);
238
+
239
+ return getContractMetadata(contractType, resultChainId);
240
+ }
241
+
242
+ getContract(contractType: ContractType, contractAddress = undefined, chainId?: number): ethers.Contract {
243
+ const resultChainId = this.parseChainIdParam(chainId);
244
+
245
+ return getContract(contractType, resultChainId, contractAddress);
246
+ }
247
+
248
+ getContractWithSigner(contract: ContractType, contractAddress = undefined): ethers.Contract {
249
+ if (!this.signer) throw new Error('IllegalState: no signer');
250
+
251
+ return this.getContract(contract, contractAddress).connect(this.signer);
252
+ }
253
+
254
+ getContractWithFetcher(contract: ContractType, contractAddress = undefined): ethers.Contract {
255
+ if (!this.fetchProvider) throw new Error('fetchProvider not initialized');
256
+
257
+ return this.getContract(contract, contractAddress).connect(this.fetchProvider);
258
+ }
259
+
260
+ getContractWithFetcherForEthereum(contract: ContractType, contractAddress = undefined): ethers.Contract {
261
+ const chainIdForRpcUrl =
262
+ this.chainId === chainIds.localhost && localhostNetwork === chainIds.ethMainnet
263
+ ? chainIds.localhost
264
+ : chainIds.ethMainnet;
265
+
266
+ return getContractWithFetcherByChainId(chainIdForRpcUrl, contract, contractAddress);
267
+ }
268
+
269
+ async sendTransaction(tx: ethers.providers.TransactionRequest) {
270
+ if (!this.signer) throw new Error('IllegalState: no signer');
271
+
272
+ const resp = await this.signer.sendTransaction(tx);
273
+
274
+ return resp;
275
+ }
276
+
277
+ async connectAndPatchProvider(connector: Connector): Promise<number> {
278
+ const chainId = await this.connectToConnector(connector);
279
+ return chainId;
280
+ }
281
+
282
+ isPermitterAvailable() {
283
+ const network = this.getSelectedNetwork();
284
+ return !!network?.contractData?.permitterAddress;
285
+ }
286
+
287
+ async getGasPrice(): Promise<bigint> {
288
+ const price = await this.fetchProvider?.getGasPrice();
289
+ if (!price) throw Error('Could not fetch gas price in getGasPrice');
290
+ return price.toBigInt();
291
+ }
292
+
293
+ async walletClientToSigner(walletClient: any, chainId: number) {
294
+ const { account, transport } = walletClient;
295
+ const network = {
296
+ chainId,
297
+ name: '',
298
+ };
299
+ const provider = new providers.Web3Provider(transport, network);
300
+ const signer = provider.getSigner(account);
301
+ return signer;
302
+ }
303
+
304
+ switchAccount(): Promise<void> {
305
+ throw new Error('Method not implemented.');
306
+ }
307
+ }
308
+
309
+ export const wagmiProviderAdapter = new WagmiProviderAdapter();
310
+
311
+ export default <T = unknown>() => new WagmiProviderAdapter() as any as IProviderAdapter<T>;
@@ -0,0 +1,11 @@
1
+ import { IProviderAdapter } from '../data-structures/provider-adapter/IProviderAdapter';
2
+
3
+ export const exportWagmiProvider = async <T = unknown>(): Promise<IProviderAdapter<T>> => {
4
+ const Provider = (await import('./WagmiProviderAdapter')) as any;
5
+ return Provider.wagmiProviderAdapter as any as IProviderAdapter<T>;
6
+ };
7
+
8
+ export const exportEthersProvider = async () => {
9
+ const Provider = await import('./EthersProviderAdapter');
10
+ return Provider.ethersProvierAdapter as IProviderAdapter;
11
+ };
@@ -0,0 +1,18 @@
1
+ import { type Signer } from 'ethers';
2
+ import { Hinkal } from '../data-structures';
3
+ import { preProcessing } from '../crypto';
4
+ // eslint-disable-next-line import/no-named-as-default
5
+ import EthersProviderAdapter from './EthersProviderAdapter';
6
+ import { type HinkalConfig } from '../types/hinkal.types';
7
+
8
+ export const prepareEthersHinkal = async (signer: Signer, hinkalConfig?: HinkalConfig): Promise<Hinkal<unknown>> => {
9
+ await preProcessing();
10
+ const hinkal = new Hinkal(hinkalConfig);
11
+ const ethersProvierAdapter = EthersProviderAdapter();
12
+ ethersProvierAdapter.initSigner?.(signer); // type discrepency comes from different version of ethers.js
13
+ await hinkal.initProviderAdapter(undefined, ethersProvierAdapter);
14
+ await hinkal.initUserKeys();
15
+ await hinkal.resetMerkle();
16
+
17
+ return hinkal;
18
+ };
@@ -0,0 +1,16 @@
1
+ import { Hinkal } from '../data-structures';
2
+ import { preProcessing } from '../crypto';
3
+ import { wagmiProviderAdapter } from './WagmiProviderAdapter';
4
+ import { type Config, type Connector } from 'wagmi';
5
+
6
+ export const prepareWagmiHinkal = async (connector: Connector, config: Config): Promise<Hinkal<unknown>> => {
7
+ await preProcessing();
8
+ const hinkal = new Hinkal();
9
+
10
+ wagmiProviderAdapter.initConfig(config);
11
+ await hinkal.initProviderAdapter(connector, wagmiProviderAdapter);
12
+ await hinkal.initUserKeys();
13
+ await hinkal.resetMerkle();
14
+
15
+ return hinkal;
16
+ };
@@ -0,0 +1,23 @@
1
+ export interface ThirdPartyLeaderBoardItem {
2
+ nickname: string;
3
+ points: number;
4
+ }
5
+
6
+ interface AssetChange {
7
+ type: string;
8
+ amount: string | null;
9
+ raw_amount: string;
10
+ dollar_value: string;
11
+ from: string;
12
+ to: string;
13
+ token_info: { standard: string; type: string; contract_address: string };
14
+ }
15
+
16
+ export type AssetChanges = AssetChange[] | null;
17
+
18
+ export interface CallInfo<T = bigint> {
19
+ from: string;
20
+ to: string;
21
+ calldata: string;
22
+ value: T;
23
+ }
@@ -0,0 +1,5 @@
1
+ export interface ICacheDevice<T = string> {
2
+ get(key: string): T | undefined;
3
+ set(key: string, value: T): void;
4
+ serialize(): Record<string, string>;
5
+ }
@@ -0,0 +1,16 @@
1
+ // importing only types prevents dependency cycles
2
+ import { type Utxo } from '../data-structures/utxo/Utxo';
3
+ import { type UserKeys } from '../data-structures/crypto-keys/keys';
4
+ import { EncryptedOutputWithSign, OutputsWithSignAndLast } from './commitments.types';
5
+
6
+ export interface IMultiThreadedUtxoUtils {
7
+ batchProcess(
8
+ encryptedOutputs: EncryptedOutputWithSign[],
9
+ lastOutput: string,
10
+ userKeys: UserKeys,
11
+ ): Promise<OutputsWithSignAndLast>;
12
+
13
+ buildBatchProcess(encryptedOutputs: EncryptedOutputWithSign[], userKeys: UserKeys): Promise<Utxo[]>;
14
+
15
+ batchFilterUtxosWithNullifier(allUtxos: Utxo[], nullifiers: Set<string>): Promise<Utxo[]>;
16
+ }
@@ -0,0 +1,12 @@
1
+ export enum MemberStatus {
2
+ Owner = 'Owner',
3
+ Member = 'Member',
4
+ Leader = 'Leader',
5
+ None = 'None',
6
+ }
7
+
8
+ export enum Rank {
9
+ Bronze = 'Bronze',
10
+ Silver = 'Silver',
11
+ Gold = 'Gold',
12
+ }
@@ -0,0 +1,30 @@
1
+ import { ethers } from 'ethers';
2
+ import { ParsedInLogicMetadata } from './hinkal.types';
3
+ import { TokenChanges } from './token.types';
4
+ import { TxParametersBase } from './wc.types';
5
+
6
+ export interface TransactionSimulatorMinimalResult<T = bigint> {
7
+ tokenChanges: TokenChanges<T>[];
8
+ error?: string;
9
+ errorReason?: string;
10
+ }
11
+
12
+ export interface TransactionSimulatorResult<T = bigint> extends TransactionSimulatorMinimalResult<T> {
13
+ isSameStateChanges: boolean;
14
+ spenderAddresses: string[];
15
+ parsedInLogicMetadata?: ParsedInLogicMetadata;
16
+ }
17
+
18
+ export interface ITransactionSimulator {
19
+ isTxStateless(
20
+ txParameters: TxParametersBase,
21
+ simulateRandomUserTx: boolean,
22
+ inLogicSigner?: ethers.Wallet,
23
+ ): Promise<TransactionSimulatorResult>;
24
+ }
25
+
26
+ export interface VolatileTokenTransferResult {
27
+ success: boolean;
28
+ balanceDifference?: bigint;
29
+ error?: string;
30
+ }
@@ -0,0 +1,44 @@
1
+ import { MemberStatus, Rank } from './RewardUserEnums';
2
+ import { AllPoints } from './all-points.types';
3
+ import { AchievementProgressItem } from './new-rewards.type';
4
+
5
+ export interface WeeklyAnalyticBase extends AllPoints {
6
+ weekStart: Date;
7
+ }
8
+
9
+ export interface BrotherhoodUserWeeklyAnalytic extends WeeklyAnalyticBase {
10
+ ethereumAddress: string;
11
+ brotherhoodId: number;
12
+ }
13
+
14
+ export interface BrotherhoodUserWeeklyAnalyticLeaderboardEntry extends BrotherhoodUserWeeklyAnalytic {
15
+ profileImage?: string;
16
+ username?: string;
17
+ memberStatus?: MemberStatus;
18
+ }
19
+
20
+ export interface BrotherhoodWeeklyAnalytic extends WeeklyAnalyticBase {
21
+ brotherhoodId: number;
22
+ multiplier: number;
23
+ createdAt: string;
24
+ updatedAt: string;
25
+ }
26
+
27
+ export interface BrotherhoodWeeklyAnalyticLeaderboardEntry extends BrotherhoodWeeklyAnalytic {
28
+ profileImage: string;
29
+ name: string;
30
+ }
31
+
32
+ export interface UserWeeklyAnalytic extends WeeklyAnalyticBase {
33
+ ethereumAddress: string;
34
+ rank: Rank;
35
+ multiplier: number;
36
+ createdAt: string;
37
+ updatedAt: string;
38
+ }
39
+
40
+ export interface UserWeeklyAnalyticLeaderboardEntry extends UserWeeklyAnalytic {
41
+ profileImage?: string;
42
+ username: string;
43
+ achievementsProgress: AchievementProgressItem[];
44
+ }
@@ -0,0 +1,90 @@
1
+ import { IntegrationProvider } from './hinkal.types';
2
+ import { ERC20Token } from './token.types';
3
+ import { BigNumber } from 'ethers';
4
+
5
+ export enum ActivityStatus {
6
+ PENDING = 'PENDING',
7
+ SUCCESSFUL = 'SUCCESSFUL',
8
+ FAILED = 'FAILED',
9
+ }
10
+
11
+ export enum ActivityTypes {
12
+ SHIELD = 'Shield',
13
+ SWAP = 'Swap',
14
+ BRIDGE = 'Bridge',
15
+ SEND = 'Send',
16
+ DAPP_INTERACTION = 'dApp interaction',
17
+ DAPP_INTERACTION_APPROVAL = 'dApp interaction approval',
18
+ RECIEVE = 'Receive',
19
+ UNSHIELD = 'Unshield',
20
+ ONBOARDING_DEPOSIT = 'Onboarding deposit',
21
+ REVOKE = 'Revoke',
22
+ UNKNOWN = 'Unknown transaction',
23
+ }
24
+
25
+ export enum TokenChangeType {
26
+ SPEND = 'SPEND',
27
+ RECEIVE = 'RECEIVE',
28
+ APPROVE = 'APPROVE',
29
+ }
30
+
31
+ export type TokenAmountInfo = {
32
+ token: ERC20Token;
33
+ amount: string;
34
+ };
35
+
36
+ export const DexProviders = [
37
+ IntegrationProvider.UNISWAP,
38
+ IntegrationProvider.ODOS,
39
+ IntegrationProvider.ONEINCH,
40
+ IntegrationProvider.LIFI,
41
+ IntegrationProvider.NONE,
42
+ ];
43
+
44
+ export const IntegrationProviderNames = {
45
+ [IntegrationProvider.UNISWAP]: 'Uniswap',
46
+ [IntegrationProvider.ODOS]: 'Odos',
47
+ [IntegrationProvider.ONEINCH]: '1inch',
48
+ [IntegrationProvider.LIFI]: 'LI.FI',
49
+ [IntegrationProvider.ALL]: 'All',
50
+ [IntegrationProvider.NONE]: 'None',
51
+ };
52
+
53
+ export type ActivityRightSideData = {
54
+ rightTop?: React.ReactNode;
55
+ rightTopClassName?: string;
56
+ rightBottom?: React.ReactNode;
57
+ rightBottomClassName?: string;
58
+ };
59
+
60
+ export interface ActivityAddRequest {
61
+ activityType: ActivityTypes;
62
+ from?: string;
63
+ to?: string;
64
+ value?: string;
65
+ status?: ActivityStatus;
66
+ txHash?: string;
67
+ gas?: BigNumber;
68
+ gasPrice?: BigNumber;
69
+ gasInDollar?: string;
70
+ tokensReceive?: TokenAmountInfo[];
71
+ tokensSpend?: TokenAmountInfo[];
72
+ tokensApprove?: TokenAmountInfo[];
73
+ chainId: number;
74
+ ownerPublicAddress?: string;
75
+ activityIcon?: string;
76
+ dappUrl?: string;
77
+ dappName?: string;
78
+ integrationProvider?: IntegrationProvider;
79
+ }
80
+
81
+ export interface Activity extends ActivityAddRequest {
82
+ id: string;
83
+ timestamp: Date;
84
+ status: ActivityStatus;
85
+ }
86
+
87
+ export type MinimalActivity = Pick<
88
+ Activity,
89
+ 'timestamp' | 'status' | 'activityType' | 'tokensReceive' | 'tokensSpend' | 'chainId'
90
+ >;
@@ -0,0 +1,30 @@
1
+ export interface AdminDataType {
2
+ hashedOwner: string;
3
+ chainId: number;
4
+ timestamp: number;
5
+ action: AdminTransactionType;
6
+ erc20TokenAddresses: string[];
7
+ erc20TokenAmount: string[];
8
+ }
9
+
10
+ export interface AdminInterface extends AdminDataType {
11
+ erc20TokenPrices: string[];
12
+ }
13
+
14
+ export enum AdminTransactionType {
15
+ PrivateToPrivateSend = 'private_to_private_send',
16
+ PrivateToPublicSend = 'private_to_public_send',
17
+ PublicToPublicSend = 'public_to_public_send',
18
+ PublicToPublicBridgeSend = 'public_to_public_bridge_send',
19
+ PrivateSwap = 'private_swap',
20
+ PublicSwap = 'public_swap',
21
+ PublicBridgeSwap = 'public_bridge_swap',
22
+ Unshield = 'unshield',
23
+ Shield = 'shield',
24
+ Onboarding = 'onboarding',
25
+ PaymentLink = 'payment_link',
26
+ FundApprove = 'fund_approve',
27
+ FundApproveAndTransact = 'fund_approve_and_transact',
28
+ PublicDappTransaction = 'public_dapp_transaction',
29
+ PrivateDappTransaction = 'private_dapp_transaction',
30
+ }
@@ -0,0 +1,8 @@
1
+ export interface AllPoints {
2
+ aumPoints: number;
3
+ tradingPoints: number;
4
+ referralPoints: number;
5
+ questPoints: number;
6
+ totalPoints: number;
7
+ mysteryBoxPoints: number;
8
+ }
@@ -0,0 +1,45 @@
1
+ import { ERC20Token } from './token.types';
2
+
3
+ export interface AlchemyBatchRequest {
4
+ jsonrpc: '2.0';
5
+ id: number;
6
+ method: string;
7
+ params: any[];
8
+ }
9
+
10
+ export interface AlchemyBatchResponse {
11
+ jsonrpc: '2.0';
12
+ id: number;
13
+ result: string;
14
+ error?: { code: number; message: string };
15
+ }
16
+
17
+ export interface TokenApproval {
18
+ token: ERC20Token;
19
+ spenderAddress: string;
20
+ allowance: bigint;
21
+ tokenId?: string;
22
+ }
23
+
24
+ export interface ApprovalPair {
25
+ contractAddress: string;
26
+ spenderAddress: string;
27
+ tokenIds?: Set<string>;
28
+ }
29
+
30
+ export interface ApprovalsBySpender {
31
+ spenderAddress: string;
32
+ approvedAssets: TokenApproval[];
33
+ }
34
+
35
+ export enum RevokeType {
36
+ ERC20 = 'ERC20',
37
+ tokenId = 'tokenId',
38
+ approvedForAll = 'approvedForAll',
39
+ }
40
+
41
+ export interface ApprovalRequestMetadata {
42
+ pairIndex: number;
43
+ type: RevokeType;
44
+ tokenId?: string;
45
+ }
@@ -0,0 +1,20 @@
1
+ import { UserKeys } from '../data-structures/crypto-keys/keys';
2
+
3
+ export enum PrivateBalanceUpdateType {
4
+ OnlyCache = 'ONLY_CACHE',
5
+ Fresh = 'FRESH',
6
+ FreshWithoutLoader = 'FRESH_WITHOUT_LOADER',
7
+ }
8
+
9
+ export interface BalanceChangeState {
10
+ chainId?: number;
11
+ ethereumAddress?: string;
12
+ userKeys?: UserKeys;
13
+ }
14
+
15
+ export type PrivateBalanceUpdateEventType = {
16
+ updateType?: PrivateBalanceUpdateType;
17
+ resetCacheBefore?: boolean;
18
+ balanceChangeState?: BalanceChangeState;
19
+ updateTokensListBefore?: boolean;
20
+ };