@hinkal/common 0.0.104 → 0.0.107

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 (272) hide show
  1. package/API/API.js +58 -0
  2. package/API/HinkalPointsCalls.js +38 -0
  3. package/API/callBeefyGraphAPI.js +37 -0
  4. package/API/callCurveAPI.js +156 -0
  5. package/API/callMonitor.js +30 -0
  6. package/API/callOdosAPI.js +44 -0
  7. package/API/callOneInchAPI.js +37 -0
  8. package/API/callRelayer.js +32 -0
  9. package/API/checkRisk.js +30 -0
  10. package/API/dataServerCalls.js +32 -0
  11. package/API/fetchCommitmentsCache.js +31 -0
  12. package/API/fetchNullifiers.js +30 -0
  13. package/API/getAxelarGasEstimate.js +37 -0
  14. package/API/getCoingeckoPrice.js +27 -0
  15. package/API/getConnextReceiveFee.js +30 -0
  16. package/API/getGasEstimates.js +38 -0
  17. package/API/getRelayerURL.js +32 -0
  18. package/API/getServerURL.js +67 -0
  19. package/API/getTokenPrice.js +41 -0
  20. package/API/kycCalls.js +32 -0
  21. package/API/passwordCalls.js +36 -0
  22. package/API/referralProgramCalls.js +58 -0
  23. package/API/relayCalls.js +30 -0
  24. package/API/restoreSnapshots.js +32 -0
  25. package/API/rewardsPointsCalls.js +40 -0
  26. package/API/userVerifyTransactions.js +45 -0
  27. package/README.md +116 -1
  28. package/assets/{snarkjsWorkerLogic-CatB8Hso.js → snarkjsWorkerLogic-Fv0M38Mc.js} +2 -2
  29. package/assets/{utxoWorkerLogic-DDqTe7hT.js → utxoWorkerLogic-CtFLQiAX.js} +2 -2
  30. package/assets/{zkProofWorkerLauncher-C-pvCm0b.js → zkProofWorkerLauncher-J3Ts5_Ba.js} +1 -1
  31. package/assets/{zkProofWorkerLogic-CLpRqNRx.js → zkProofWorkerLogic-CPNuu61R.js} +18 -19
  32. package/constants/assets.constants.js +16 -0
  33. package/constants/axelar.constants.js +55 -0
  34. package/constants/backend.constants.js +18 -0
  35. package/constants/beefy.registry.js +24 -0
  36. package/constants/chains.constants.js +204 -0
  37. package/constants/coingecko.constants.js +53 -0
  38. package/constants/contracts.constants.js +276 -0
  39. package/constants/crvCvx.registry.js +636 -0
  40. package/constants/crvDynamic.registry.js +24 -0
  41. package/constants/deploy-data/deploy-data-arbMainnet.json.js +7415 -0
  42. package/constants/deploy-data/deploy-data-avalanche.json.js +7411 -0
  43. package/constants/deploy-data/deploy-data-axelar1.json.js +4329 -0
  44. package/constants/deploy-data/deploy-data-axelar2.json.js +4329 -0
  45. package/constants/deploy-data/deploy-data-base.json.js +8425 -0
  46. package/constants/deploy-data/deploy-data-blast.json.js +9600 -0
  47. package/constants/deploy-data/deploy-data-bnbMainnet.json.js +6877 -0
  48. package/constants/deploy-data/deploy-data-ethMainnet.json.js +11427 -0
  49. package/constants/deploy-data/deploy-data-localhost.json.js +13283 -0
  50. package/constants/deploy-data/deploy-data-optimism.json.js +7417 -0
  51. package/constants/deploy-data/deploy-data-polygon.json.js +7439 -0
  52. package/constants/fees.constants.js +57 -0
  53. package/constants/kyc.constants.js +118 -0
  54. package/constants/lido.constants.js +13 -0
  55. package/constants/pendle.registry.js +253 -0
  56. package/constants/protocol.constants.js +26 -0
  57. package/constants/reorg-depths.constants.js +15 -0
  58. package/constants/rewards.constants.js +27 -0
  59. package/constants/server.constants.js +157 -0
  60. package/constants/token-data/ERC20Registry.js +85 -0
  61. package/constants/token-data/arbMainnetRegistry.json.js +946 -0
  62. package/constants/token-data/arbMainnetRegistryFixed.json.js +856 -0
  63. package/constants/token-data/avalancheRegistry.json.js +591 -0
  64. package/constants/token-data/avalancheRegistryFixed.json.js +591 -0
  65. package/constants/token-data/baseRegistry.json.js +490 -0
  66. package/constants/token-data/baseRegistryFixed.json.js +463 -0
  67. package/constants/token-data/blastRegistry.json.js +137 -0
  68. package/constants/token-data/blastRegistryFixed.json.js +137 -0
  69. package/constants/token-data/bnbMainnetRegistry.json.js +973 -0
  70. package/constants/token-data/bnbMainnetRegistryFixed.json.js +973 -0
  71. package/constants/token-data/coingeckoRegistry.json.js +115623 -0
  72. package/constants/token-data/ethMainnetRegistry.json.js +2700 -0
  73. package/constants/token-data/ethMainnetRegistryFixed.json.js +2251 -0
  74. package/constants/token-data/index.js +6 -0
  75. package/constants/token-data/localhostRegistry.json.js +2768 -0
  76. package/constants/token-data/optimismRegistry.json.js +1455 -0
  77. package/constants/token-data/optimismRegistryFixed.json.js +1392 -0
  78. package/constants/token-data/polygonRegistry.json.js +1327 -0
  79. package/constants/token-data/polygonRegistryFixed.json.js +1255 -0
  80. package/constants/token-data/popularTokens.constants.js +14 -0
  81. package/constants/token-data/tokenPricing.consts.js +8 -0
  82. package/constants/vite.constants.js +29 -0
  83. package/crypto/babyJub.js +15 -0
  84. package/crypto/poseidon.js +26 -0
  85. package/crypto/preProcessing.js +9 -0
  86. package/data-structures/Hinkal/Hinkal.js +299 -0
  87. package/data-structures/Hinkal/hinkalActionBeefy.js +101 -0
  88. package/data-structures/Hinkal/hinkalActionConvex.js +83 -0
  89. package/data-structures/Hinkal/hinkalActionCurve.js +112 -0
  90. package/data-structures/Hinkal/hinkalActionLidoEth.js +91 -0
  91. package/data-structures/Hinkal/hinkalActionPendle.js +140 -0
  92. package/data-structures/Hinkal/hinkalActionPendleLP.js +96 -0
  93. package/data-structures/Hinkal/hinkalActionStake.js +138 -0
  94. package/data-structures/Hinkal/hinkalActionVolatile.js +112 -0
  95. package/data-structures/Hinkal/hinkalDeposit.js +95 -0
  96. package/data-structures/Hinkal/hinkalGetZkMeProvider.js +47 -0
  97. package/data-structures/Hinkal/hinkalPrivateWallet.js +66 -0
  98. package/data-structures/Hinkal/hinkalSwap.js +98 -0
  99. package/data-structures/Hinkal/hinkalTransfer.js +5 -0
  100. package/data-structures/Hinkal/hinkalWithdraw.js +91 -0
  101. package/data-structures/Hinkal/resetMerkleTrees.js +49 -0
  102. package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.js +83 -0
  103. package/data-structures/ValueCache/ValueCache.js +25 -0
  104. package/data-structures/crypto-keys/decodeUTXO.js +40 -0
  105. package/data-structures/crypto-keys/encryptDecryptUtxo.js +41 -0
  106. package/data-structures/crypto-keys/keyUtils.js +10 -0
  107. package/data-structures/crypto-keys/keys.js +90 -0
  108. package/data-structures/custom-token-registry/CustomTokenRegistry.js +33 -0
  109. package/data-structures/event-service/AbstractAccessTokenSnapshotService.js +131 -0
  110. package/data-structures/event-service/AbstractCommitmentsSnapshotService.js +132 -0
  111. package/data-structures/event-service/AbstractEventService.js +118 -0
  112. package/data-structures/event-service/AbstractNullifierSnapshotService.js +59 -0
  113. package/data-structures/event-service/AbstractSnapshotService.js +35 -0
  114. package/data-structures/merkle-tree/MerkleTree.js +177 -0
  115. package/data-structures/merkle-tree/MerkleTreeIncompleteError.js +8 -0
  116. package/data-structures/snapshot/ClientAccessTokenSnapshotService.js +48 -0
  117. package/data-structures/snapshot/ClientCommitmentsSnapshotService.js +47 -0
  118. package/data-structures/snapshot/ClientNullifierSnapshotService.js +44 -0
  119. package/data-structures/token-price-fetcher/TokenChecker.js +29 -0
  120. package/data-structures/token-price-fetcher/TokenPriceFetcher.js +218 -0
  121. package/data-structures/transactions-manager/TransactionsManager.js +194 -0
  122. package/data-structures/transactions-manager/history/getBeefyData.js +68 -0
  123. package/data-structures/transactions-manager/history/getConvexData.js +57 -0
  124. package/data-structures/transactions-manager/history/getCurveData.js +97 -0
  125. package/data-structures/transactions-manager/history/getDepositData.js +36 -0
  126. package/data-structures/transactions-manager/history/getLidoData.js +44 -0
  127. package/data-structures/transactions-manager/history/getPendleData.js +59 -0
  128. package/data-structures/transactions-manager/history/getSwapData.js +43 -0
  129. package/data-structures/transactions-manager/history/getTxDetails.js +74 -0
  130. package/data-structures/transactions-manager/history/getVolatileData.js +75 -0
  131. package/data-structures/transactions-manager/history/history.types.js +62 -0
  132. package/data-structures/transactions-manager/history/history.utils.js +8 -0
  133. package/data-structures/utxo/Utxo.js +134 -0
  134. package/data-structures/volatile-helper/VolatileHelper.js +181 -0
  135. package/error-handling/customErrors/ErrorWithAmount.js +9 -0
  136. package/error-handling/customErrors/FeeOverTransactionValueError.js +9 -0
  137. package/error-handling/customErrors/customErrors.helpers.js +21 -0
  138. package/error-handling/error-codes.constants.js +184 -0
  139. package/error-handling/get-error.message.js +53 -0
  140. package/error-handling/handleErrorRestore.js +35 -0
  141. package/error-handling/logError.js +7 -0
  142. package/error-handling/types.js +4 -0
  143. package/externalABIs/BUSD.js +519 -0
  144. package/externalABIs/BabPassport.json.js +24 -0
  145. package/externalABIs/BeefyRouterAbi.json.js +1022 -0
  146. package/externalABIs/BeefyStrategyAbi.json.js +1423 -0
  147. package/externalABIs/BeefyVaultAbi.json.js +570 -0
  148. package/externalABIs/BeefyZapAbi.json.js +208 -0
  149. package/externalABIs/BeefyZapOneInchAbi.json.js +340 -0
  150. package/externalABIs/ConvexBoosterAbi.json.js +674 -0
  151. package/externalABIs/ConvexBoosterAbiMainnet.json.js +1002 -0
  152. package/externalABIs/ConvexRewardPoolAbi.json.js +883 -0
  153. package/externalABIs/CurveReadingWrapperAbi.json.js +1422 -0
  154. package/externalABIs/CurveWrappedMainPool.json.js +1136 -0
  155. package/externalABIs/CurveZap.json.js +262 -0
  156. package/externalABIs/CvxCrvUtilities.json.js +264 -0
  157. package/externalABIs/DAI.js +334 -0
  158. package/externalABIs/ERC20.json.js +291 -0
  159. package/externalABIs/GalxePassport.json.js +41 -0
  160. package/externalABIs/IQuoterV2.json.js +205 -0
  161. package/externalABIs/ISwapRouter.json.js +568 -0
  162. package/externalABIs/IUniswapV3Factory.json.js +201 -0
  163. package/externalABIs/IUniswapV3Pool.json.js +999 -0
  164. package/externalABIs/LidoStEthAbi.json.js +1603 -0
  165. package/externalABIs/LidoStMaticAbi.json.js +1764 -0
  166. package/externalABIs/LidoStakeManagerAbi.json.js +2082 -0
  167. package/externalABIs/LidoWithdrawalQueueERC721Abi.json.js +2030 -0
  168. package/externalABIs/LidoWstEthAbi.json.js +480 -0
  169. package/externalABIs/OptimismGasPriceOracle.json.js +206 -0
  170. package/externalABIs/PendleRouterAbi.json.js +173 -0
  171. package/externalABIs/PoLidoNftAbi.json.js +701 -0
  172. package/externalABIs/SanctionsList.js +89 -0
  173. package/externalABIs/USDC.js +721 -0
  174. package/externalABIs/USDR.js +346 -0
  175. package/externalABIs/USDR3CRV.js +542 -0
  176. package/externalABIs/USDT.js +393 -0
  177. package/externalABIs/UniswapV2PoolAbi.json.js +80 -0
  178. package/externalABIs/WETH.js +156 -0
  179. package/externalABIs/amToken.js +350 -0
  180. package/externalABIs/transactionsProver.json.js +39 -0
  181. package/functions/kyc/authentoHelper.js +42 -0
  182. package/functions/kyc/passportHelper.js +39 -0
  183. package/functions/kyc/zkMeHelper.js +56 -0
  184. package/functions/pre-transaction/getFlatFees.js +203 -0
  185. package/functions/pre-transaction/interaction-to-action.js +57 -0
  186. package/functions/pre-transaction/outputUtxoProcessing.js +45 -0
  187. package/functions/pre-transaction/process-gas-estimates.js +57 -0
  188. package/functions/pre-transaction/processAmountChanges.js +229 -0
  189. package/functions/private-wallet/emporium.helpers.js +19 -0
  190. package/functions/private-wallet/opProducer.js +24 -0
  191. package/functions/protocols/convex.protocols.js +41 -0
  192. package/functions/protocols/curve.protocols.js +45 -0
  193. package/functions/protocols/pendle.helpers.js +108 -0
  194. package/functions/snarkjs/common.snarkjs.js +96 -0
  195. package/functions/snarkjs/constant.js +211 -0
  196. package/functions/snarkjs/constructEmporiumProof.js +105 -0
  197. package/functions/snarkjs/constructGeneralZkProof.js +129 -0
  198. package/functions/snarkjs/generateCircomData.js +60 -0
  199. package/functions/snarkjs/generateZkProof.js +18 -0
  200. package/functions/snarkjs/getZKFiles.js +30 -0
  201. package/functions/staking/index.js +40 -0
  202. package/functions/utils/amounts.utils.js +70 -0
  203. package/functions/utils/axelar.utils.js +38 -0
  204. package/functions/utils/cacheFunctions.js +67 -0
  205. package/functions/utils/caseInsensitive.utils.js +6 -0
  206. package/functions/utils/convertIntegrationProviderToExternalActionId.js +16 -0
  207. package/functions/utils/create-provider.js +5 -0
  208. package/functions/utils/enum.utils.js +14 -0
  209. package/functions/utils/erc20tokenFunctions.js +20 -0
  210. package/functions/utils/evmNetworkFunctions.js +29 -0
  211. package/functions/utils/external-action.utils.js +61 -0
  212. package/functions/utils/getDataFromTransaction.js +105 -0
  213. package/functions/utils/memoize.utils.js +14 -0
  214. package/functions/utils/nickname.utils.js +7 -0
  215. package/functions/utils/process.utils.js +4 -0
  216. package/functions/utils/reloadPage.js +4 -0
  217. package/functions/utils/requireEnv.js +7 -0
  218. package/functions/utils/resolve-sync.utils.js +22 -0
  219. package/functions/utils/serialize.utils.js +4 -0
  220. package/functions/utils/string.utils.js +14 -0
  221. package/functions/utils/time.utils.js +8 -0
  222. package/functions/utils/userAgent.js +15 -0
  223. package/functions/utils/volatile-patcher.utils.js +40 -0
  224. package/functions/web3/etherFunctions.js +41 -0
  225. package/functions/web3/events/balanceChangedHandler.js +10 -0
  226. package/functions/web3/events/getInputUtxoAndBalance.js +72 -0
  227. package/functions/web3/events/getShieldedBalance.js +107 -0
  228. package/functions/web3/events/web3RetrieveEvents.js +9 -0
  229. package/functions/web3/functionCalls/accessTokenCalls.js +48 -0
  230. package/functions/web3/functionCalls/approveToken.js +153 -0
  231. package/functions/web3/functionCalls/estimateGasRelayer.js +18 -0
  232. package/functions/web3/functionCalls/transactCallDirect.js +60 -0
  233. package/functions/web3/functionCalls/transactCallRelayer.js +42 -0
  234. package/functions/web3/odosAPI.js +65 -0
  235. package/functions/web3/oneInchAPI.js +61 -0
  236. package/functions/web3/runContractFunction.js +95 -0
  237. package/functions/web3/uniswapAPI.js +97 -0
  238. package/index.js +644 -0
  239. package/package.json +5 -4
  240. package/types/beefy.types.js +21 -0
  241. package/types/circom-data.types.js +22 -0
  242. package/types/curve.types.js +25 -0
  243. package/types/ethereum-network.types.js +4 -0
  244. package/types/external-action.types.js +4 -0
  245. package/types/hinkal.stake.types.js +4 -0
  246. package/types/hinkal.types.js +15 -0
  247. package/types/kyc.types.js +13 -0
  248. package/types/pendle.types.js +15 -0
  249. package/types/rewards.types.js +27 -0
  250. package/types/slippage.types.js +15 -0
  251. package/types/time.types.js +58 -0
  252. package/types/token.types.js +4 -0
  253. package/types/transactions.types.js +36 -0
  254. package/webworker/performTaskWithWorker.js +62 -0
  255. package/webworker/snarkjsWorker/snarkjsWorker.types.js +4 -0
  256. package/webworker/snarkjsWorker/snarkjsWorkerLogic.js +32 -0
  257. package/webworker/utxoWorker/utxoWorker.types.js +4 -0
  258. package/webworker/utxoWorker/utxoWorkerLogic.js +70 -0
  259. package/webworker/viteWorkerURL.constant.d.ts +3 -3
  260. package/webworker/worker.registry.js +4 -0
  261. package/webworker/workerFactory.d.ts +0 -1
  262. package/webworker/workerFactory.js +42 -0
  263. package/{workerProxy-BDj498Ht.mjs → webworker/workerProxy.js} +1 -1
  264. package/webworker/zkProofWorker/zkProofWorker.types.js +4 -0
  265. package/webworker/zkProofWorker/zkProofWorkerLogic.js +66 -0
  266. package/assets/viteWorkerURL.constant-DrIQXA2B.js +0 -11
  267. package/index-DbehuQxV.mjs +0 -398145
  268. package/index.mjs +0 -457
  269. package/snarkjsWorkerLogic-BpNWzeoy.mjs +0 -12086
  270. package/utxoWorkerLogic-D7NuHk_K.mjs +0 -64
  271. package/viteWorkerURL.constant-Bc7ufzqC.mjs +0 -9
  272. package/zkProofWorkerLogic-Bnalmuka.mjs +0 -60
@@ -0,0 +1,153 @@
1
+ import { ethers as a } from "ethers";
2
+ import { getNonLocalhostChainId as h, chainIds as I } from "../../../constants/chains.constants.js";
3
+ import "../../../types/circom-data.types.js";
4
+ import { ContractType as m } from "../../../types/ethereum-network.types.js";
5
+ import { ApprovalType as p } from "../../../types/token.types.js";
6
+ import "../../../types/transactions.types.js";
7
+ import "../../../types/curve.types.js";
8
+ import { permitSignatureValidFor as A } from "../../../constants/protocol.constants.js";
9
+ import "circomlibjs";
10
+ import "../../../data-structures/crypto-keys/keys.js";
11
+ import "axios";
12
+ import "../../../data-structures/crypto-keys/encryptDecryptUtxo.js";
13
+ import "../events/getShieldedBalance.js";
14
+ import "../../../webworker/workerFactory.js";
15
+ import "../../utils/external-action.utils.js";
16
+ import "../../../data-structures/custom-token-registry/CustomTokenRegistry.js";
17
+ import "../../utils/convertIntegrationProviderToExternalActionId.js";
18
+ import "../../../constants/coingecko.constants.js";
19
+ import "../../../constants/vite.constants.js";
20
+ import "../../utils/userAgent.js";
21
+ import "../../../constants/reorg-depths.constants.js";
22
+ import "../../../constants/kyc.constants.js";
23
+ import "../../../data-structures/volatile-helper/VolatileHelper.js";
24
+ import "libsodium-wrappers";
25
+ import "../../../constants/contracts.constants.js";
26
+ import "../../../constants/axelar.constants.js";
27
+ import "../../../constants/rewards.constants.js";
28
+ const T = async (e, n, i) => {
29
+ const t = BigInt(
30
+ await i.allowance(await i.signer.getAddress(), n.address)
31
+ );
32
+ return e === t;
33
+ }, x = async (e, n, i, t) => {
34
+ if (h(e.getCurrentChainId()) !== I.ethMainnet || i.symbol.toLowerCase() !== "usdt" || BigInt(
35
+ await t.allowance(await t.signer.getAddress(), n.address)
36
+ ) === 0n)
37
+ return;
38
+ const s = await t.approve(n.address, 0n);
39
+ s && "hash" in s && await e.waitForTransaction(s.hash);
40
+ }, k = async (e, n, i, t) => {
41
+ const o = e.getContractWithSigner(m.ERC20Contract, t.erc20TokenAddress), s = t.approvalType ?? p.Classic;
42
+ if (s === p.Classic || !e.isPermitterAvailable()) {
43
+ if (await T(i, n, o))
44
+ return;
45
+ await x(e, n, t, o);
46
+ const c = await o.approve(
47
+ n.address,
48
+ i
49
+ // { gasLimit: 10000000 }
50
+ );
51
+ c && "hash" in c && await e.waitForTransaction(c.hash);
52
+ return;
53
+ }
54
+ const d = await e.getEthereumAddress(), g = e.getContract(m.PermitterContract), C = await e.getContractWithFetcher(m.ContractWithNonces, t.erc20TokenAddress).nonces(d), l = BigInt(Date.now() + A) / 1000n, r = {
55
+ owner: d,
56
+ holder: d,
57
+ spender: g.address,
58
+ value: i,
59
+ nonce: C,
60
+ deadline: l,
61
+ expiry: l,
62
+ allowed: !0
63
+ }, { v: u, r: y, s: w } = a.utils.splitSignature(
64
+ await e.signTypedData(
65
+ {
66
+ name: await o.name(),
67
+ chainId: e.getCurrentChainId(),
68
+ version: "1",
69
+ verifyingContract: t.erc20TokenAddress
70
+ },
71
+ {
72
+ Permit: s === p.ERC20Permit ? [
73
+ {
74
+ name: "owner",
75
+ type: "address"
76
+ },
77
+ {
78
+ name: "spender",
79
+ type: "address"
80
+ },
81
+ {
82
+ name: "value",
83
+ type: "uint256"
84
+ },
85
+ {
86
+ name: "nonce",
87
+ type: "uint256"
88
+ },
89
+ {
90
+ name: "deadline",
91
+ type: "uint256"
92
+ }
93
+ ] : [
94
+ {
95
+ name: "holder",
96
+ type: "address"
97
+ },
98
+ {
99
+ name: "spender",
100
+ type: "address"
101
+ },
102
+ {
103
+ name: "nonce",
104
+ type: "uint256"
105
+ },
106
+ {
107
+ name: "expiry",
108
+ type: "uint256"
109
+ },
110
+ {
111
+ name: "allowed",
112
+ type: "bool"
113
+ }
114
+ ]
115
+ },
116
+ r
117
+ )
118
+ );
119
+ if (s === p.ERC20Permit) {
120
+ const f = new a.utils.Interface([
121
+ "function permit(address owner,address spender,uint256 value,uint256 deadline,uint8 v,bytes32 r,bytes32 s) external"
122
+ ]);
123
+ return a.utils.arrayify(
124
+ f.encodeFunctionData("permit", [
125
+ r.owner,
126
+ r.spender,
127
+ r.value,
128
+ r.deadline,
129
+ u,
130
+ a.utils.arrayify(y),
131
+ a.utils.arrayify(w)
132
+ ])
133
+ ).slice(4);
134
+ }
135
+ const v = new a.utils.Interface([
136
+ "function permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed,uint8 v,bytes32 r,bytes32 s) external"
137
+ ]);
138
+ return a.utils.arrayify(
139
+ v.encodeFunctionData("permit", [
140
+ r.holder,
141
+ r.spender,
142
+ r.nonce,
143
+ r.expiry,
144
+ r.allowed,
145
+ u,
146
+ a.utils.arrayify(y),
147
+ a.utils.arrayify(w)
148
+ ])
149
+ ).slice(4);
150
+ };
151
+ export {
152
+ k as approveTokenToHinkal
153
+ };
@@ -0,0 +1,18 @@
1
+ import "../../../types/circom-data.types.js";
2
+ import { ContractType as s } from "../../../types/ethereum-network.types.js";
3
+ import "../../../types/transactions.types.js";
4
+ import "../../../types/curve.types.js";
5
+ const h = async (r, t, o, n) => {
6
+ const a = r.getContractWithFetcher(s.HinkalContract), e = n.externalActionId === 0n ? "transact" : "transactWithExternalAction";
7
+ return (await a.estimateGas[e](
8
+ t[0],
9
+ t[1],
10
+ t[2],
11
+ o,
12
+ n,
13
+ { from: n.relay }
14
+ )).toBigInt();
15
+ };
16
+ export {
17
+ h as estimateGasRelayer
18
+ };
@@ -0,0 +1,60 @@
1
+ import "../../../constants/chains.constants.js";
2
+ import "../../../types/circom-data.types.js";
3
+ import { ContractType as A } from "../../../types/ethereum-network.types.js";
4
+ import "../../../types/transactions.types.js";
5
+ import "../../../types/curve.types.js";
6
+ import "ethers";
7
+ import { zeroAddress as d } from "../../../constants/protocol.constants.js";
8
+ import "circomlibjs";
9
+ import "../../../data-structures/crypto-keys/keys.js";
10
+ import "axios";
11
+ import "../../../data-structures/crypto-keys/encryptDecryptUtxo.js";
12
+ import "../events/getShieldedBalance.js";
13
+ import "../../../webworker/workerFactory.js";
14
+ import "../../utils/external-action.utils.js";
15
+ import "../../../data-structures/custom-token-registry/CustomTokenRegistry.js";
16
+ import "../../utils/convertIntegrationProviderToExternalActionId.js";
17
+ import "../../../constants/coingecko.constants.js";
18
+ import "../../../constants/vite.constants.js";
19
+ import "../../utils/userAgent.js";
20
+ import { waitLittle as T } from "../../utils/time.utils.js";
21
+ import { approveTokenToHinkal as y } from "./approveToken.js";
22
+ import "../../../constants/reorg-depths.constants.js";
23
+ import "../../../constants/kyc.constants.js";
24
+ import "../../../data-structures/volatile-helper/VolatileHelper.js";
25
+ import "libsodium-wrappers";
26
+ import "../../../constants/contracts.constants.js";
27
+ import "../../../constants/axelar.constants.js";
28
+ import "../../../constants/rewards.constants.js";
29
+ const $ = async (i, r, s, t, m, p, g, f) => {
30
+ const c = i.getContractWithSigner(A.HinkalContract), h = await i.getEthereumAddress(), l = g ?? c, n = f ?? c, a = "transact";
31
+ console.log("before the direct transaction"), r > 0n && s.erc20TokenAddress !== d && await y(i, l, r, s);
32
+ const e = {
33
+ value: r > 0n && s.erc20TokenAddress === d ? BigInt(r).toString() : void 0
34
+ };
35
+ let o;
36
+ try {
37
+ o = (await n.estimateGas[a](
38
+ t[0],
39
+ t[1],
40
+ t[2],
41
+ p,
42
+ m,
43
+ { ...e, from: h }
44
+ )).toNumber(), console.log({ "gas costs of deposit": o });
45
+ } catch (x) {
46
+ console.log("hinkalDeposit: gas estimation error: ", { err: x });
47
+ }
48
+ const v = o && o >= 0 ? Math.ceil(o * 12 / 10) : void 0;
49
+ return e.gasLimit = v, await T(), await n[a](
50
+ t[0],
51
+ t[1],
52
+ t[2],
53
+ p,
54
+ m,
55
+ e
56
+ );
57
+ };
58
+ export {
59
+ $ as transactCallDirect
60
+ };
@@ -0,0 +1,42 @@
1
+ import { callRelayerTransactAPI as a } from "../../../API/callRelayer.js";
2
+ import "../../../constants/chains.constants.js";
3
+ import "../../../types/circom-data.types.js";
4
+ import "../../../types/transactions.types.js";
5
+ import "../../../types/curve.types.js";
6
+ import "ethers";
7
+ import "circomlibjs";
8
+ import "../../../data-structures/crypto-keys/keys.js";
9
+ import "axios";
10
+ import "../../../data-structures/crypto-keys/encryptDecryptUtxo.js";
11
+ import "../events/getShieldedBalance.js";
12
+ import "../../utils/external-action.utils.js";
13
+ import "../../../data-structures/custom-token-registry/CustomTokenRegistry.js";
14
+ import "../../utils/convertIntegrationProviderToExternalActionId.js";
15
+ import "../../../constants/coingecko.constants.js";
16
+ import "../../../constants/vite.constants.js";
17
+ import "../../utils/userAgent.js";
18
+ import "../../../constants/reorg-depths.constants.js";
19
+ import "../../../constants/kyc.constants.js";
20
+ import "../../../webworker/workerFactory.js";
21
+ import "../../../data-structures/volatile-helper/VolatileHelper.js";
22
+ import "libsodium-wrappers";
23
+ import "../../../constants/contracts.constants.js";
24
+ import "../../../constants/axelar.constants.js";
25
+ import "../../../constants/rewards.constants.js";
26
+ import { serializeCircomData as c } from "../../snarkjs/common.snarkjs.js";
27
+ const F = async (t, r, i, m, p) => {
28
+ const s = c(m), o = await a(t, {
29
+ a: r[0],
30
+ b: r[1],
31
+ c: r[2],
32
+ dimData: i,
33
+ circomData: s,
34
+ withPrivateMempool: p
35
+ });
36
+ if (o.status === "success")
37
+ return o.message;
38
+ throw new Error(o.error);
39
+ };
40
+ export {
41
+ F as transactCallRelayer
42
+ };
@@ -0,0 +1,65 @@
1
+ import { callOdosAPI as m } from "../../API/callOdosAPI.js";
2
+ import { localhostNetwork as n, networkRegistry as d } from "../../constants/chains.constants.js";
3
+ import "../../types/circom-data.types.js";
4
+ import "../../types/transactions.types.js";
5
+ import "../../types/curve.types.js";
6
+ import { getAmountInWei as a } from "./etherFunctions.js";
7
+ import "ethers";
8
+ import { zeroAddress as c } from "../../constants/protocol.constants.js";
9
+ import "circomlibjs";
10
+ import "../../data-structures/crypto-keys/keys.js";
11
+ import { transactionErrorCodes as u } from "../../error-handling/error-codes.constants.js";
12
+ import "axios";
13
+ import "../../data-structures/crypto-keys/encryptDecryptUtxo.js";
14
+ import "./events/getShieldedBalance.js";
15
+ import "../../webworker/workerFactory.js";
16
+ import "../utils/external-action.utils.js";
17
+ import "../../data-structures/custom-token-registry/CustomTokenRegistry.js";
18
+ import "../utils/convertIntegrationProviderToExternalActionId.js";
19
+ import "../../constants/coingecko.constants.js";
20
+ import "../../constants/vite.constants.js";
21
+ import "../utils/userAgent.js";
22
+ import "../../constants/reorg-depths.constants.js";
23
+ import "../../constants/kyc.constants.js";
24
+ import "../../data-structures/volatile-helper/VolatileHelper.js";
25
+ import "libsodium-wrappers";
26
+ import "../../constants/contracts.constants.js";
27
+ import "../../constants/axelar.constants.js";
28
+ import "../../constants/rewards.constants.js";
29
+ const q = async (r, t, e, i) => {
30
+ try {
31
+ const o = {
32
+ chainId: r.getCurrentChainId() !== 31337 ? r.getCurrentChainId() : n,
33
+ inputTokens: [
34
+ {
35
+ tokenAddress: t?.wrappedErc20TokenAddress ?? t.erc20TokenAddress,
36
+ amount: a(t, i).toString()
37
+ }
38
+ ],
39
+ outputTokens: [
40
+ {
41
+ tokenAddress: e?.wrappedErc20TokenAddress ?? e.erc20TokenAddress,
42
+ proportion: 1
43
+ }
44
+ ],
45
+ userAddr: d[r.getCurrentChainId()].contractData.odosExternalActionInstanceAddress || c,
46
+ slippageLimitPercent: 10,
47
+ disableRFQs: !0
48
+ // sometimes swap fails because of RFQs
49
+ }, { odosResponse: s, status: p } = await m(
50
+ r.getCurrentChainId(),
51
+ o
52
+ );
53
+ if (p !== "success")
54
+ throw Error("Odos API Fetch Error");
55
+ return {
56
+ outSwapAmountValue: BigInt(s.outputTokens[0].amount),
57
+ odosDataValue: s.transaction.data
58
+ };
59
+ } catch (o) {
60
+ throw console.log({ error: o }), Error(u.NO_ODOS_PRICE);
61
+ }
62
+ };
63
+ export {
64
+ q as getOdosPrice
65
+ };
@@ -0,0 +1,61 @@
1
+ import { callOneInchAPI as p } from "../../API/callOneInchAPI.js";
2
+ import "../../constants/chains.constants.js";
3
+ import "../../types/circom-data.types.js";
4
+ import { ContractType as a } from "../../types/ethereum-network.types.js";
5
+ import "../../types/transactions.types.js";
6
+ import "../../types/curve.types.js";
7
+ import { getAmountInWei as c } from "./etherFunctions.js";
8
+ import "ethers";
9
+ import { zeroAddress as e, oneInchZeroAddress as s } from "../../constants/protocol.constants.js";
10
+ import "circomlibjs";
11
+ import "../../data-structures/crypto-keys/keys.js";
12
+ import { transactionErrorCodes as d } from "../../error-handling/error-codes.constants.js";
13
+ import "axios";
14
+ import "../../data-structures/crypto-keys/encryptDecryptUtxo.js";
15
+ import "./events/getShieldedBalance.js";
16
+ import "../../webworker/workerFactory.js";
17
+ import "../utils/external-action.utils.js";
18
+ import "../../data-structures/custom-token-registry/CustomTokenRegistry.js";
19
+ import "../utils/convertIntegrationProviderToExternalActionId.js";
20
+ import "../../constants/coingecko.constants.js";
21
+ import "../../constants/vite.constants.js";
22
+ import "../utils/userAgent.js";
23
+ import "../../constants/reorg-depths.constants.js";
24
+ import "../../constants/kyc.constants.js";
25
+ import "../../data-structures/volatile-helper/VolatileHelper.js";
26
+ import "libsodium-wrappers";
27
+ import "../../constants/contracts.constants.js";
28
+ import "../../constants/axelar.constants.js";
29
+ import "../../constants/rewards.constants.js";
30
+ const W = async (i, t, m, n) => {
31
+ try {
32
+ const o = {
33
+ fromTokenAddress: t.erc20TokenAddress !== e ? t.erc20TokenAddress : s,
34
+ toTokenAddress: m.erc20TokenAddress !== e ? m.erc20TokenAddress : s,
35
+ fromAddress: e,
36
+ // we user zero address here because this paramater is not relevant to us, only destReceiver is
37
+ destReceiver: i.getContractMetadata(a.OneInchExternalActionContract).address,
38
+ amount: c(t, n),
39
+ slippage: 10,
40
+ disableEstimate: !0,
41
+ // disable gas estimation, we don't need it
42
+ // disable partial filling:
43
+ // if slippage tolerance isn't satisfied 1inch will try to swap less amount of input tokens
44
+ // and returning leftover tokens to fromAddress
45
+ // this is not what we want
46
+ allowPartialFill: !1
47
+ }, r = await p(i.getCurrentChainId(), o);
48
+ if (!r || !r.tx)
49
+ throw Error("OneInch API price fetch error");
50
+ return {
51
+ outSwapAmountValue: BigInt(r.toAmount),
52
+ oneInchDataValue: r.tx.data
53
+ // calldata to use
54
+ };
55
+ } catch (o) {
56
+ throw console.log({ error: o }), Error(d.NO_ONEINCH_PRICE);
57
+ }
58
+ };
59
+ export {
60
+ W as getOneInchPrice
61
+ };
@@ -0,0 +1,95 @@
1
+ import { UserFriendlyErrorCodes as g, transactionErrorCodes as u } from "../../error-handling/error-codes.constants.js";
2
+ import "ethers";
3
+ import { getErrorMessage as l } from "../../error-handling/get-error.message.js";
4
+ import "axios";
5
+ import "../../constants/chains.constants.js";
6
+ import "../../types/circom-data.types.js";
7
+ import "../../types/transactions.types.js";
8
+ import "../../types/curve.types.js";
9
+ import "circomlibjs";
10
+ import "../../data-structures/crypto-keys/keys.js";
11
+ import "../../data-structures/crypto-keys/encryptDecryptUtxo.js";
12
+ import "./events/getShieldedBalance.js";
13
+ import "../../webworker/workerFactory.js";
14
+ import "../utils/external-action.utils.js";
15
+ import "../../data-structures/custom-token-registry/CustomTokenRegistry.js";
16
+ import "../utils/convertIntegrationProviderToExternalActionId.js";
17
+ import "../../constants/coingecko.constants.js";
18
+ import "../../constants/vite.constants.js";
19
+ import "../utils/userAgent.js";
20
+ import "../../constants/reorg-depths.constants.js";
21
+ import "../../constants/kyc.constants.js";
22
+ import "../../data-structures/volatile-helper/VolatileHelper.js";
23
+ import "libsodium-wrappers";
24
+ import "../../constants/contracts.constants.js";
25
+ import "../../constants/axelar.constants.js";
26
+ import "../../constants/rewards.constants.js";
27
+ const T = 5e4, w = 1, P = 11, d = 15, m = async (e, i) => {
28
+ try {
29
+ const t = await e.getFeeData(), a = i === 0 ? P : d, r = t.gasPrice?.mul(a).div(10) ?? void 0;
30
+ return console.log("getGasPrice , ", r?.toBigInt(), { gasPremiumType: i }), r;
31
+ } catch (t) {
32
+ console.log("getGasPrice error: ", { err: t });
33
+ return;
34
+ }
35
+ }, E = (e, i, t) => new Promise((a, r) => {
36
+ const s = setTimeout(() => {
37
+ r(new Error(u.TRANSACTION_TIMEOUT));
38
+ }, t);
39
+ e.wait(i).then((o) => {
40
+ clearTimeout(s), a(o);
41
+ }).catch((o) => {
42
+ clearTimeout(s), r(o);
43
+ });
44
+ }), p = async ({
45
+ contractFunction: e,
46
+ args: i,
47
+ gasPrice: t,
48
+ gasLimit: a,
49
+ nonce: r,
50
+ confirmations: s,
51
+ waitTime: o
52
+ }) => {
53
+ const n = await e(...i, {
54
+ type: 0,
55
+ gasLimit: a,
56
+ gasPrice: t,
57
+ nonce: r
58
+ });
59
+ return console.log("runTransaction: ", n?.hash), await E(
60
+ n,
61
+ s ?? w,
62
+ o ?? T
63
+ );
64
+ }, K = async ({
65
+ provider: e,
66
+ contractFunction: i,
67
+ args: t,
68
+ gasLimit: a,
69
+ nonce: r,
70
+ confirmations: s
71
+ }) => {
72
+ try {
73
+ const o = await m(
74
+ e,
75
+ 0
76
+ /* Initial */
77
+ );
78
+ return await p({ contractFunction: i, args: t, gasPrice: o, gasLimit: a, nonce: r, confirmations: s });
79
+ } catch (o) {
80
+ const n = l(o);
81
+ if (n === g.MAX_FEE_GAS_ERROR || n === u.TRANSACTION_TIMEOUT) {
82
+ console.log("Timeout Hit: Increase gas");
83
+ const c = await m(
84
+ e,
85
+ 1
86
+ /* Secondary */
87
+ );
88
+ return await p({ contractFunction: i, args: t, gasPrice: c, gasLimit: a, nonce: r, confirmations: s });
89
+ }
90
+ throw o;
91
+ }
92
+ };
93
+ export {
94
+ K as runContractFunction
95
+ };
@@ -0,0 +1,97 @@
1
+ import { utils as w } from "ethers";
2
+ import { networkRegistry as p, getNonLocalhostChainId as A, chainIds as C } from "../../constants/chains.constants.js";
3
+ import "../../types/circom-data.types.js";
4
+ import { ContractType as d } from "../../types/ethereum-network.types.js";
5
+ import "../../types/transactions.types.js";
6
+ import "../../types/curve.types.js";
7
+ import { getAmountInWei as g } from "./etherFunctions.js";
8
+ import { zeroAddress as I } from "../../constants/protocol.constants.js";
9
+ import "circomlibjs";
10
+ import "../../data-structures/crypto-keys/keys.js";
11
+ import { transactionErrorCodes as l } from "../../error-handling/error-codes.constants.js";
12
+ import "axios";
13
+ import "../../data-structures/crypto-keys/encryptDecryptUtxo.js";
14
+ import "./events/getShieldedBalance.js";
15
+ import "../../webworker/workerFactory.js";
16
+ import "../utils/external-action.utils.js";
17
+ import "../../data-structures/custom-token-registry/CustomTokenRegistry.js";
18
+ import "../utils/convertIntegrationProviderToExternalActionId.js";
19
+ import "../../constants/coingecko.constants.js";
20
+ import { logError as h } from "../../error-handling/logError.js";
21
+ import "../utils/userAgent.js";
22
+ import "../../constants/reorg-depths.constants.js";
23
+ import "../../constants/kyc.constants.js";
24
+ import "../../data-structures/volatile-helper/VolatileHelper.js";
25
+ import "libsodium-wrappers";
26
+ import "../../constants/vite.constants.js";
27
+ import "../../constants/contracts.constants.js";
28
+ import "../../constants/axelar.constants.js";
29
+ import "../../constants/rewards.constants.js";
30
+ const f = (r) => A(r) === C.blast, y = async (r, s, o, e) => {
31
+ const a = (await Promise.all(
32
+ [100, 500, 3e3, 1e4].map(async (t) => ({
33
+ poolAddress: await s.getPool(o, e, t),
34
+ fee: t
35
+ }))
36
+ )).filter(({ poolAddress: t }) => t !== I), n = await Promise.all(
37
+ a.map(async (t) => ({
38
+ poolAddress: t.poolAddress,
39
+ fee: t.fee,
40
+ token1Balance: (await r.balanceOf(t.poolAddress)).toBigInt()
41
+ }))
42
+ ), c = n.map((t) => t.token1Balance).reduce((t, m) => m >= t ? m : t, 0n);
43
+ if (c === 0n)
44
+ throw new Error(l.UNISWAP_NOT_ENOUGH_LIQUIDITY);
45
+ return n.find((t) => t.token1Balance === c);
46
+ }, E = async (r, s, o, e, a) => {
47
+ try {
48
+ if (!p[r.getCurrentChainId()].quoterV2Address)
49
+ throw Error("No Quoter Contract Provided");
50
+ return (await r.getContractWithFetcher(
51
+ d.UniswapV3QuoterContract,
52
+ p[r.getCurrentChainId()].quoterV2Address
53
+ ).callStatic.quoteExactInputSingle({
54
+ tokenIn: s.wrappedErc20TokenAddress ?? s.erc20TokenAddress,
55
+ tokenOut: o.wrappedErc20TokenAddress ?? o.erc20TokenAddress,
56
+ fee: e,
57
+ amountIn: a,
58
+ sqrtPriceLimitX96: 0
59
+ })).amountOut.toBigInt();
60
+ } catch (n) {
61
+ throw h(n), n;
62
+ }
63
+ }, P = async (r, s, o) => {
64
+ try {
65
+ const e = r.getCurrentChainId(), a = r.getContractWithFetcher(
66
+ d.UniswapV3FactoryContract,
67
+ p[e].uniswapV3FactoryAddress
68
+ ), n = r.getContractWithFetcher(
69
+ d.ERC20Contract,
70
+ o.wrappedErc20TokenAddress ?? o.erc20TokenAddress
71
+ ), { fee: i } = await y(
72
+ n,
73
+ a,
74
+ s.wrappedErc20TokenAddress ?? s.erc20TokenAddress,
75
+ o.wrappedErc20TokenAddress ?? o.erc20TokenAddress
76
+ );
77
+ return i;
78
+ } catch (e) {
79
+ throw console.log("Error in getUniswapFee", e), e;
80
+ }
81
+ }, $ = async (r, s, o, e) => {
82
+ try {
83
+ const a = r.getCurrentChainId();
84
+ if (!f(a) && (o.isVolatile || e.isVolatile))
85
+ throw new Error("Volatile tokens are not supported by uniswap");
86
+ const n = await P(r, o, e), i = w.defaultAbiCoder.encode(["uint24"], [n]), c = g(o, s);
87
+ return { tokenPrice: await E(r, o, e, n, c), poolFee: i };
88
+ } catch (a) {
89
+ throw console.log({ error: a }), Error(l.NO_UNISWAP_PRICE);
90
+ }
91
+ };
92
+ export {
93
+ P as getUniswapFee,
94
+ $ as getUniswapPrice,
95
+ E as getUniswapPriceHelper,
96
+ y as searchPoolAndFee
97
+ };