@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,47 @@
1
+ import { isNode, isSandbox } from '../constants/vite.constants';
2
+ import { WorkerVariant } from './worker.registry';
3
+
4
+ export class WorkerFactory {
5
+ private constructor() {
6
+ // This class should be use as static class
7
+ }
8
+
9
+ private static resolveWorkerURL = async (workerVariant: WorkerVariant) => {
10
+ const { getWorkerViteURL }: any = await import('./viteWorkerURL.constant');
11
+
12
+ // Should be implemented as function for correct prebuild for CDN work
13
+ const workerViteURL = await getWorkerViteURL();
14
+
15
+ return workerViteURL[workerVariant];
16
+ };
17
+
18
+ private static createWorker = async (workerVariant: WorkerVariant) => {
19
+ if (isNode || isSandbox) {
20
+ let workerProxy: any; // TODO: do typing
21
+ // const workerProxy = await import(/* @vite-ignore */ workerNodeURL[workerVariant]); The vite-ignore flag need to be inside the import() call; Basically tell vite it does not have too bundle the import;
22
+ if (workerVariant === WorkerVariant.SnarkJS)
23
+ workerProxy = await import(/* @vite-ignore */ './snarkjsWorker/snarkjsWorkerLogic');
24
+ else if (workerVariant === WorkerVariant.ZKProof)
25
+ workerProxy = await import(/* @vite-ignore */ './zkProofWorker/zkProofWorkerLogic');
26
+ else if (workerVariant === WorkerVariant.UTXO)
27
+ workerProxy = await import(/* @vite-ignore */ './utxoWorker/utxoWorkerLogic');
28
+ return workerProxy.default;
29
+ }
30
+
31
+ const workerUrl = await WorkerFactory.resolveWorkerURL(workerVariant);
32
+ return new Worker(workerUrl, { type: 'module' });
33
+ };
34
+
35
+ public static getWebWorker(workerVariant: WorkerVariant) {
36
+ switch (workerVariant) {
37
+ case WorkerVariant.ZKProof:
38
+ return WorkerFactory.createWorker(workerVariant);
39
+ case WorkerVariant.SnarkJS:
40
+ return WorkerFactory.createWorker(workerVariant);
41
+ case WorkerVariant.UTXO:
42
+ return WorkerFactory.createWorker(workerVariant);
43
+ default:
44
+ throw Error(`Unknown worker type: ${workerVariant}`);
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,88 @@
1
+ /**
2
+ * This class mimic interface of real Web Worker so it can be passed to code that expect normal web
3
+ * worker on browser side and operate as if it is the same, while executing the actual code on main
4
+ * thread when Node environment is detected.
5
+ *
6
+ * The reason we need this is because hardhat, at the time of writting (Mar 12, 2024), do not support
7
+ * ES Module worker with typescript. Enabling experimental ESM support for `ts-node` does not work
8
+ * across all machines and environment, thus, we decided to run the worker's logic on main thread
9
+ * during hardhat step.
10
+ */
11
+ export class WorkerProxy {
12
+ private isNode = false;
13
+
14
+ private isSandbox = false;
15
+
16
+ /**
17
+ * This allow browser or main thread to listen for worker response message
18
+ * using the normal `worker.onmessage = () => {}` syntax. Is should only be side on the
19
+ * main thread side, not on worker side.
20
+ */
21
+ public onmessage: ((e: { data: any }) => void) | null = null;
22
+
23
+ /**
24
+ * This allow browser or main thread to listen for worker response message
25
+ * using the normal `worker.onerror = () => {}` syntax. Is should only be side on the
26
+ * main thread side, not on worker side.
27
+ */
28
+ public onerror: ((e: { data: { error: unknown } }) => void) | null = null;
29
+
30
+ private _eventEmitter: any; // node EventEmitter
31
+
32
+ private get eventEmitter() {
33
+ if (this._eventEmitter) {
34
+ return this._eventEmitter;
35
+ }
36
+ if (this.isNode) {
37
+ // eslint-disable-next-line global-require, @typescript-eslint/no-var-requires
38
+ const EventEmitter = require('events');
39
+ this._eventEmitter = new EventEmitter();
40
+ } else {
41
+ this._eventEmitter = new EventTarget();
42
+ }
43
+ return this._eventEmitter;
44
+ }
45
+
46
+ public constructor() {
47
+ this.isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
48
+ this.isSandbox = typeof window !== 'undefined' && window.origin === 'null';
49
+ }
50
+
51
+ public terminate() {}
52
+
53
+ public postMessage(message: unknown) {
54
+ if (this.isNode) {
55
+ this.eventEmitter.emit('message', message);
56
+ } else if (this.isSandbox) {
57
+ this.eventEmitter?.dispatchEvent(new CustomEvent('worker-message', { detail: message }));
58
+ } else {
59
+ postMessage(message);
60
+ }
61
+ }
62
+
63
+ public postMessageToMainThread(message: unknown) {
64
+ const event = { data: message };
65
+ if (this.onmessage) {
66
+ this.onmessage(event);
67
+ } else postMessage(message);
68
+ }
69
+
70
+ public postErrorToMainThread(error: unknown) {
71
+ const event = { data: { error } };
72
+ if (this.onerror) {
73
+ this.onerror(event);
74
+ } else postMessage(error);
75
+ }
76
+
77
+ public attachWorkerSideOnMessage(fn: (e: any) => void | Promise<void>) {
78
+ if (this.isNode) {
79
+ this.eventEmitter.on('message', (message: any) => {
80
+ fn(message);
81
+ });
82
+ } else if (this.isSandbox) {
83
+ this.eventEmitter.addEventListener('worker-message', (message: any) => {
84
+ fn(message.detail);
85
+ });
86
+ }
87
+ }
88
+ }
@@ -0,0 +1,52 @@
1
+ import { IUtxoConstructor } from '../../data-structures/utxo/Utxo';
2
+ import { type MerkleTreeJson } from '../../data-structures/merkle-tree';
3
+ import { WorkerParams, WorkerPayload } from '../worker.types';
4
+ import { ProverVersion } from '../../types/hinkal.types';
5
+
6
+ export enum ZKProofWorkerActionType {
7
+ CALC_COMMITMENTS_SIBLING_AND_SIDES,
8
+ CALC_ACCESS_TOKEN_SIBLING_AND_SIDES,
9
+ BUILD_IN_NULLIFIERS,
10
+ }
11
+
12
+ export interface ZKProofWorkerCalcCommitmentsPayload
13
+ extends WorkerPayload<{
14
+ inputUtxosSerialized: IUtxoConstructor[][];
15
+ merkleTreeSerialized: MerkleTreeJson;
16
+ userSignature: string;
17
+ }> {
18
+ type: ZKProofWorkerActionType.CALC_COMMITMENTS_SIBLING_AND_SIDES;
19
+ }
20
+ export interface ZKProofWorkerCalcCommitmentsReturn {
21
+ inCommitmentSiblings: string[][][];
22
+ inCommitmentSiblingSides: string[][][];
23
+ }
24
+
25
+ export interface ZKProofWorkerCalcAccessTokenPayload
26
+ extends WorkerPayload<{
27
+ merkleTreeAccessTokenSerialized: MerkleTreeJson;
28
+ userSignature: string;
29
+ }> {
30
+ type: ZKProofWorkerActionType.CALC_ACCESS_TOKEN_SIBLING_AND_SIDES;
31
+ }
32
+ export interface ZKProofWorkerCalcAccessTokenReturn {
33
+ accessTokenSiblings: string[];
34
+ accessTokenSiblingSides: string[];
35
+ }
36
+
37
+ export interface ZKProofWorkerBuildInNullifiersPayload
38
+ extends WorkerPayload<{
39
+ inputUtxosSerialized: IUtxoConstructor[][];
40
+ onChainCreation: boolean[];
41
+ proverVersion: ProverVersion;
42
+ }> {
43
+ type: ZKProofWorkerActionType.BUILD_IN_NULLIFIERS;
44
+ }
45
+ export type ZKProofWorkerBuildInNullifiersReturn = string[][];
46
+
47
+ export type ZKProofWorkerPayload =
48
+ | ZKProofWorkerCalcCommitmentsPayload
49
+ | ZKProofWorkerCalcAccessTokenPayload
50
+ | ZKProofWorkerBuildInNullifiersPayload;
51
+
52
+ export type ZKProofWorkerParams = WorkerParams<ZKProofWorkerPayload>;
@@ -0,0 +1,19 @@
1
+ import { Buffer } from 'buffer';
2
+ import process from 'process';
3
+ import { addWorkerErrorHandler } from '../workerErrorHandler';
4
+ import { ZKProofWorkerParams } from './zkProofWorker.types';
5
+
6
+ globalThis.process = process;
7
+ globalThis.Buffer = Buffer;
8
+
9
+ // This set up is needed because imports in logic file need
10
+ // globalThis.process and globalThis.Buffer to be declared first.
11
+ const zkProofWorker = import('./zkProofWorkerLogic');
12
+
13
+ // eslint-disable-next-line no-restricted-globals
14
+ addEventListener('message', async (e: MessageEvent<unknown>) => {
15
+ const { onWorkerMessage } = await zkProofWorker;
16
+ onWorkerMessage(e.data as ZKProofWorkerParams);
17
+ });
18
+
19
+ addWorkerErrorHandler();
@@ -0,0 +1,84 @@
1
+ import { preProcessing } from '../../crypto/preProcessing';
2
+ import { UserKeys } from '../../data-structures/crypto-keys/keys';
3
+ import { IUtxoConstructor, Utxo } from '../../data-structures/utxo/Utxo';
4
+ import {
5
+ calcAccessTokenSiblingsAndSides,
6
+ calcCommitmentsSiblingAndSides,
7
+ } from '../../functions/snarkjs/common.snarkjs';
8
+ import { WorkerProxy } from '../workerProxy';
9
+ import {
10
+ ZKProofWorkerActionType,
11
+ ZKProofWorkerBuildInNullifiersPayload,
12
+ ZKProofWorkerCalcAccessTokenPayload,
13
+ ZKProofWorkerCalcCommitmentsPayload,
14
+ ZKProofWorkerParams,
15
+ } from './zkProofWorker.types';
16
+ import { contructMerkleTreeFromSerialized } from '../../functions/utils/merkleTree.utils';
17
+
18
+ const workerProxy = new WorkerProxy();
19
+
20
+ export const handleCalcCommitmentsSiblingAndSides = (payload: ZKProofWorkerCalcCommitmentsPayload) => {
21
+ const { inputUtxosSerialized, merkleTreeSerialized } = payload.data;
22
+
23
+ const merkleTree = contructMerkleTreeFromSerialized(merkleTreeSerialized);
24
+
25
+ const inputUtxos = inputUtxosSerialized.map((utxoList: IUtxoConstructor[]) =>
26
+ utxoList.map((serializedUtxo) => new Utxo(serializedUtxo)),
27
+ );
28
+
29
+ const { inCommitmentSiblings, inCommitmentSiblingSides } = calcCommitmentsSiblingAndSides(inputUtxos, merkleTree);
30
+ workerProxy.postMessageToMainThread({ inCommitmentSiblings, inCommitmentSiblingSides });
31
+ };
32
+
33
+ export const handleCalcAccessTokenSiblingAndSides = (payload: ZKProofWorkerCalcAccessTokenPayload) => {
34
+ const { userSignature, merkleTreeAccessTokenSerialized } = payload.data;
35
+ const userKeys = new UserKeys(userSignature);
36
+
37
+ const merkleTree = contructMerkleTreeFromSerialized(merkleTreeAccessTokenSerialized);
38
+
39
+ const { accessTokenSiblings, accessTokenSiblingSides } = calcAccessTokenSiblingsAndSides(userKeys, merkleTree);
40
+ workerProxy.postMessageToMainThread({ accessTokenSiblings, accessTokenSiblingSides });
41
+ };
42
+
43
+ export const handleBuildInNullifiers = (payload: ZKProofWorkerBuildInNullifiersPayload) => {
44
+ const { inputUtxosSerialized, onChainCreation, proverVersion } = payload.data;
45
+ const inputUtxos = inputUtxosSerialized.map((utxoList: IUtxoConstructor[]) =>
46
+ utxoList.map((serializedUtxo) => new Utxo(serializedUtxo)),
47
+ );
48
+ let result: string[][] = [];
49
+ if (proverVersion === 'v1x0') {
50
+ result = inputUtxos.map((token, index) =>
51
+ token.map((utxo) => (onChainCreation[index] ? '0' : utxo.getNullifier())),
52
+ );
53
+ } else {
54
+ result = inputUtxos.map((token) => token.map((utxo) => (utxo.amount === 0n ? '0' : utxo.getNullifier())));
55
+ }
56
+
57
+ workerProxy.postMessageToMainThread(result);
58
+ };
59
+
60
+ export const onWorkerMessage = async (data: ZKProofWorkerParams) => {
61
+ try {
62
+ await preProcessing();
63
+ const { type } = data.payload;
64
+ switch (type) {
65
+ case ZKProofWorkerActionType.CALC_COMMITMENTS_SIBLING_AND_SIDES:
66
+ handleCalcCommitmentsSiblingAndSides(data.payload);
67
+ return;
68
+ case ZKProofWorkerActionType.CALC_ACCESS_TOKEN_SIBLING_AND_SIDES:
69
+ handleCalcAccessTokenSiblingAndSides(data.payload);
70
+ return;
71
+ case ZKProofWorkerActionType.BUILD_IN_NULLIFIERS:
72
+ handleBuildInNullifiers(data.payload);
73
+ return;
74
+ default:
75
+ throw Error(`Unknown worker message type ${type}`);
76
+ }
77
+ } catch (err) {
78
+ console.error(err);
79
+ workerProxy.postErrorToMainThread(err);
80
+ }
81
+ };
82
+
83
+ workerProxy.attachWorkerSideOnMessage(onWorkerMessage);
84
+ export default workerProxy;
package/tsconfig.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "extends": "../../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "declaration": true,
5
+ "forceConsistentCasingInFileNames": true,
6
+ "strict": true,
7
+ "noImplicitOverride": true,
8
+ "noPropertyAccessFromIndexSignature": true,
9
+ "noImplicitReturns": true,
10
+ "noFallthroughCasesInSwitch": true,
11
+ "allowSyntheticDefaultImports": true
12
+ },
13
+ "files": [],
14
+ "include": [],
15
+ "references": [
16
+ {
17
+ "path": "./tsconfig.lib.json"
18
+ },
19
+ {
20
+ "path": "./tsconfig.spec.json"
21
+ }
22
+ ]
23
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "../../../dist/libs/shared/common",
5
+ "declaration": true,
6
+ "types": ["node"]
7
+ },
8
+ "include": ["src/**/*.ts"],
9
+ "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "../../../dist/out-tsc",
5
+ "module": "CommonJS",
6
+ "esModuleInterop": true,
7
+ "types": ["jest", "node"],
8
+ "baseUrl": ".",
9
+ "moduleResolution": "node",
10
+ "paths": {
11
+ "@hinkal/common": ["./src/index.ts"]
12
+ }
13
+ },
14
+ "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
15
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,97 @@
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ import { defineConfig, UserConfig } from 'vite';
3
+ import type { InlineConfig } from 'vitest';
4
+ import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
5
+ import dts from 'vite-plugin-dts';
6
+ import path from 'path';
7
+ import { polyfillConstants } from '../../../vite.common';
8
+ import { copyPackage } from './copyPackageJson';
9
+ import { dependencies, devDependencies, peerDependencies } from './package.json';
10
+ type ViteConfig = UserConfig & { test: InlineConfig };
11
+
12
+ const config: ViteConfig = {
13
+ root: __dirname,
14
+ base: './',
15
+
16
+ plugins: [
17
+ polyfillConstants(),
18
+ // TODO: needs to be decided if it is needed
19
+ // polyfillWorker(),
20
+ dts({
21
+ entryRoot: 'src',
22
+ tsconfigPath: path.join(__dirname, 'tsconfig.lib.json'),
23
+ }),
24
+ nxViteTsPaths(),
25
+ {
26
+ name: 'copy-package-json',
27
+ apply: 'build',
28
+ closeBundle: copyPackage,
29
+ },
30
+ ],
31
+
32
+ worker: {
33
+ format: 'es',
34
+ plugins: () => [polyfillConstants(), nxViteTsPaths()],
35
+ },
36
+
37
+ // Configuration for building your library.
38
+ // See: https://vitejs.dev/guide/build.html#library-mode
39
+ build: {
40
+ target: 'esnext', // Ensures the output targets the latest ESM features
41
+ outDir: '../../../dist/libs/shared/common',
42
+ reportCompressedSize: true,
43
+ commonjsOptions: { transformMixedEsModules: true },
44
+ emptyOutDir: true,
45
+ lib: {
46
+ // Could also be a dictionary or array of multiple entry points.
47
+ entry: [
48
+ 'src/index.ts',
49
+ 'src/providers/WagmiProviderAdapter.ts',
50
+ 'src/providers/EthersProviderAdapter.ts',
51
+ 'src/providers/prepareWagmiHinkal.ts',
52
+ 'src/providers/prepareEthersHinkal.ts',
53
+ ],
54
+ name: 'shared-common',
55
+ fileName: (format, entryName) => `${entryName}.${format === 'cjs' ? 'cjs' : 'mjs'}`,
56
+ // Change this to the formats you want to support.
57
+ // Don't forgot to update your package.json as well.
58
+ formats: ['es', 'cjs'],
59
+ },
60
+ rollupOptions: {
61
+ output: {
62
+ preserveModules: true,
63
+ preserveModulesRoot: path.resolve(__dirname, './src'),
64
+ },
65
+ external: [
66
+ /^ethers/,
67
+ /^@wagmi/,
68
+ /^@walletconnect/,
69
+ /^@ethersproject/,
70
+ /^@hazae41/,
71
+ /^@brumewallet/,
72
+ /^@zkmelabs/,
73
+ /^@openzeppelin/,
74
+ ...Object.keys(dependencies),
75
+ ...Object.keys(devDependencies),
76
+ ...Object.keys(peerDependencies),
77
+ 'vite',
78
+ 'nx',
79
+ 'vite-plugin-dts',
80
+ 'vite-tsconfig-paths',
81
+ 'path',
82
+ 'fs',
83
+ 'crypto',
84
+ ],
85
+ },
86
+ },
87
+
88
+ test: {
89
+ globals: true,
90
+ environment: 'jsdom',
91
+ // setupFiles: './setupTests.ts',
92
+ include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
93
+ hookTimeout: 1000000,
94
+ },
95
+ };
96
+
97
+ export default defineConfig(config);
@@ -0,0 +1,51 @@
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ import { defineConfig } from 'vite';
3
+ import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
4
+ import { polyfillConstants } from '../../../vite.common';
5
+ import { proccessCDN } from './handleCDNWorkers';
6
+
7
+ const config = {
8
+ root: __dirname,
9
+ base: './',
10
+
11
+ plugins: [
12
+ polyfillConstants(),
13
+ nxViteTsPaths(),
14
+ {
15
+ name: 'procces-cdn',
16
+ apply: 'build',
17
+ closeBundle: proccessCDN,
18
+ },
19
+ ],
20
+
21
+ worker: {
22
+ format: 'es',
23
+ plugins: () => [polyfillConstants(), nxViteTsPaths()],
24
+ rollupOptions: {
25
+ output: { inlineDynamicImports: true }, // this essentially merges WorkerLogic with WorkerLauncher
26
+ },
27
+ },
28
+
29
+ // Configuration for building your library.
30
+ // See: https://vitejs.dev/guide/build.html#library-mode
31
+ build: {
32
+ target: 'esnext', // Ensures the output targets the latest ESM features
33
+ outDir: '../../../dist/libs/shared/workers-prebuild',
34
+ reportCompressedSize: true,
35
+ commonjsOptions: { transformMixedEsModules: true },
36
+ emptyOutDir: true,
37
+ lib: {
38
+ // Could also be a dictionary or array of multiple entry points.
39
+ entry: ['src/webworker/viteWorkerURL.constant.ts'],
40
+ name: 'workers-prebuild',
41
+ formats: ['es'],
42
+ fileName: (format, entryName) => `${entryName}.js`,
43
+ },
44
+ rollupOptions: {
45
+ // output: { inlineDynamicImports: true }, // this does not affect anything - there is no dynamic import
46
+ exclude: [], // why we need this?
47
+ },
48
+ },
49
+ };
50
+
51
+ export default defineConfig(config);