@hinkal/common 0.2.10 → 0.2.11

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.d.mts +49 -0
  2. package/API/HinkalPointsCalls.d.mts +20 -0
  3. package/API/callBeefyGraphAPI.d.mts +2 -0
  4. package/API/callCurveAPI.d.mts +9 -0
  5. package/API/callMonitor.d.mts +1 -0
  6. package/API/callOdosAPI.d.mts +63 -0
  7. package/API/callOneInchAPI.d.mts +18 -0
  8. package/API/callRelayer.d.mts +10 -0
  9. package/API/checkRisk.d.mts +1 -0
  10. package/API/dataServerCalls.d.mts +2 -0
  11. package/API/duneAPI.d.mts +11 -0
  12. package/API/fetchCommitmentsCache.d.mts +20 -0
  13. package/API/fetchNullifiers.d.mts +5 -0
  14. package/API/getAxelarGasEstimate.d.mts +5 -0
  15. package/API/getCoingeckoPrice.d.mts +22 -0
  16. package/API/getConnextReceiveFee.d.mts +2 -0
  17. package/API/getGasEstimates.d.mts +9 -0
  18. package/API/getRelayerURL.d.mts +1 -0
  19. package/API/getServerURL.d.mts +2 -0
  20. package/API/getTokenPrice.d.mts +16 -0
  21. package/API/index.d.mts +14 -0
  22. package/API/kycCalls.d.mts +30 -0
  23. package/API/passwordCalls.d.mts +9 -0
  24. package/API/referralProgramCalls.d.mts +36 -0
  25. package/API/relayCalls.d.mts +5 -0
  26. package/API/restoreSnapshots.d.mts +1 -0
  27. package/API/rewardsPointsCalls.d.mts +13 -0
  28. package/API/userVerifyTransactions.d.mts +19 -0
  29. package/constants/assets.constants.d.mts +13 -0
  30. package/constants/axelar.constants.d.mts +5 -0
  31. package/constants/backend.constants.d.mts +11 -0
  32. package/constants/beefy.registry.d.mts +8 -0
  33. package/constants/chains.constants.d.mts +36 -0
  34. package/constants/coingecko.constants.d.mts +13 -0
  35. package/constants/contracts.constants.d.mts +119 -0
  36. package/constants/crvCvx.registry.d.mts +20 -0
  37. package/constants/crvDynamic.registry.d.mts +1 -0
  38. package/constants/deploy-data/index.d.mts +11 -0
  39. package/constants/fees.constants.d.mts +11 -0
  40. package/constants/index.d.mts +20 -0
  41. package/constants/kyc.constants.d.mts +28 -0
  42. package/constants/lido.constants.d.mts +10 -0
  43. package/constants/pendle.registry.d.mts +21 -0
  44. package/constants/protocol.constants.d.mts +18 -0
  45. package/constants/reorg-depths.constants.d.mts +3 -0
  46. package/constants/rewards.constants.d.mts +19 -0
  47. package/constants/server.constants.d.mts +155 -0
  48. package/constants/token-data/ERC20Registry.d.mts +3 -0
  49. package/constants/token-data/index.d.mts +976 -0
  50. package/constants/token-data/popularTokens.constants.d.mts +3 -0
  51. package/constants/token-data/tokenPricing.consts.d.mts +5 -0
  52. package/constants/vite.constants.d.mts +14 -0
  53. package/crypto/babyJub.d.mts +16 -0
  54. package/crypto/index.d.mts +3 -0
  55. package/crypto/poseidon.d.mts +15 -0
  56. package/crypto/preProcessing.d.mts +1 -0
  57. package/data-structures/Hinkal/Hinkal.d.mts +100 -0
  58. package/data-structures/Hinkal/IHinkal.d.mts +93 -0
  59. package/data-structures/Hinkal/hinkalActionBeefy.d.mts +3 -0
  60. package/data-structures/Hinkal/hinkalActionConvex.d.mts +12 -0
  61. package/data-structures/Hinkal/hinkalActionCurve.d.mts +12 -0
  62. package/data-structures/Hinkal/hinkalActionLidoEth.d.mts +4 -0
  63. package/data-structures/Hinkal/hinkalActionPendle.d.mts +3 -0
  64. package/data-structures/Hinkal/hinkalActionPendleLP.d.mts +7 -0
  65. package/data-structures/Hinkal/hinkalActionStake.d.mts +3 -0
  66. package/data-structures/Hinkal/hinkalActionVolatile.d.mts +3 -0
  67. package/data-structures/Hinkal/hinkalDeposit.d.mts +3 -0
  68. package/data-structures/Hinkal/hinkalGetRecipientInfo.d.mts +2 -0
  69. package/data-structures/Hinkal/hinkalGetZkMeProvider.d.mts +3 -0
  70. package/data-structures/Hinkal/hinkalPrivateWallet.d.mts +2 -0
  71. package/data-structures/Hinkal/hinkalSwap.d.mts +3 -0
  72. package/data-structures/Hinkal/hinkalTransfer.d.mts +1 -0
  73. package/data-structures/Hinkal/hinkalWithdraw.d.mts +2 -0
  74. package/data-structures/Hinkal/index.d.mts +12 -0
  75. package/data-structures/Hinkal/resetMerkleTrees.d.mts +2 -0
  76. package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.d.mts +20 -0
  77. package/data-structures/ValueCache/ValueCache.d.mts +10 -0
  78. package/data-structures/ValueCache/index.d.mts +1 -0
  79. package/data-structures/cacheDevices/BaseCacheDevice.d.mts +8 -0
  80. package/data-structures/cacheDevices/FileCacheDevice.d.mts +9 -0
  81. package/data-structures/cacheDevices/LocalStorageCacheDevice.d.mts +7 -0
  82. package/data-structures/cacheDevices/index.d.mts +2 -0
  83. package/data-structures/crypto-keys/decodeUTXO.d.mts +14 -0
  84. package/data-structures/crypto-keys/encryptDecryptUtxo.d.mts +18 -0
  85. package/data-structures/crypto-keys/index.d.mts +4 -0
  86. package/data-structures/crypto-keys/keyUtils.d.mts +2 -0
  87. package/data-structures/crypto-keys/keys.d.mts +58 -0
  88. package/data-structures/custom-token-registry/CustomTokenRegistry.d.mts +13 -0
  89. package/data-structures/event-service/AbstractAccessTokenSnapshotService.d.mts +35 -0
  90. package/data-structures/event-service/AbstractCommitmentsSnapshotService.d.mts +30 -0
  91. package/data-structures/event-service/AbstractEventService.d.mts +31 -0
  92. package/data-structures/event-service/AbstractNullifierSnapshotService.d.mts +22 -0
  93. package/data-structures/event-service/AbstractSnapshotService.d.mts +23 -0
  94. package/data-structures/event-service/index.d.mts +5 -0
  95. package/data-structures/index.d.mts +13 -0
  96. package/data-structures/merkle-tree/MerkleTree.d.mts +78 -0
  97. package/data-structures/merkle-tree/MerkleTreeIncompleteError.d.mts +3 -0
  98. package/data-structures/merkle-tree/getPatchedAccessTokenMerkleTree.d.mts +3 -0
  99. package/data-structures/merkle-tree/index.d.mts +3 -0
  100. package/data-structures/provider-adapter/IProviderAdapter.d.mts +35 -0
  101. package/data-structures/snapshot/ClientAccessTokenSnapshotService.d.mts +7 -0
  102. package/data-structures/snapshot/ClientCommitmentsSnapshotService.d.mts +7 -0
  103. package/data-structures/snapshot/ClientNullifierSnapshotService.d.mts +7 -0
  104. package/data-structures/token-price-fetcher/TokenChecker.d.mts +20 -0
  105. package/data-structures/token-price-fetcher/index.d.mts +1 -0
  106. package/data-structures/transactions-manager/TransactionsManager.d.mts +27 -0
  107. package/data-structures/transactions-manager/history/getBeefyData.d.mts +3 -0
  108. package/data-structures/transactions-manager/history/getConvexData.d.mts +6 -0
  109. package/data-structures/transactions-manager/history/getCurveData.d.mts +6 -0
  110. package/data-structures/transactions-manager/history/getDepositData.d.mts +2 -0
  111. package/data-structures/transactions-manager/history/getLidoData.d.mts +10 -0
  112. package/data-structures/transactions-manager/history/getPendleData.d.mts +3 -0
  113. package/data-structures/transactions-manager/history/getSwapData.d.mts +3 -0
  114. package/data-structures/transactions-manager/history/getTxDetails.d.mts +3 -0
  115. package/data-structures/transactions-manager/history/getVolatileData.d.mts +32 -0
  116. package/data-structures/transactions-manager/history/history.types.d.mts +95 -0
  117. package/data-structures/transactions-manager/history/history.utils.d.mts +8 -0
  118. package/data-structures/transactions-manager/index.d.mts +2 -0
  119. package/data-structures/utxo/Utxo.d.mts +63 -0
  120. package/data-structures/volatile-helper/VolatileHelper.d.mts +57 -0
  121. package/data-structures/volatile-helper/index.d.mts +1 -0
  122. package/error-handling/customErrors/ErrorWithAmount.d.mts +4 -0
  123. package/error-handling/customErrors/FeeOverTransactionValueError.d.mts +9 -0
  124. package/error-handling/customErrors/customErrors.helpers.d.mts +5 -0
  125. package/error-handling/customErrors/index.d.mts +3 -0
  126. package/error-handling/error-codes.constants.d.mts +181 -0
  127. package/error-handling/get-error.message.d.mts +3 -0
  128. package/error-handling/handleErrorRestore.d.mts +2 -0
  129. package/error-handling/index.d.mts +7 -0
  130. package/error-handling/logError.d.mts +1 -0
  131. package/error-handling/types.d.mts +5 -0
  132. package/externalABIs/BUSD.d.mts +38 -0
  133. package/externalABIs/DAI.d.mts +45 -0
  134. package/externalABIs/ERC20.d.mts +1 -0
  135. package/externalABIs/SanctionsList.d.mts +35 -0
  136. package/externalABIs/USDC.d.mts +28 -0
  137. package/externalABIs/USDR.d.mts +28 -0
  138. package/externalABIs/USDR3CRV.d.mts +49 -0
  139. package/externalABIs/USDT.d.mts +41 -0
  140. package/externalABIs/WETH.d.mts +38 -0
  141. package/externalABIs/amToken.d.mts +28 -0
  142. package/externalABIs/crvFRAX.d.mts +38 -0
  143. package/externalABIs/index.d.mts +323 -0
  144. package/externalABIs/swapAbi.d.mts +77 -0
  145. package/functions/index.d.mts +14 -0
  146. package/functions/kyc/aiPriseHelper.d.mts +0 -0
  147. package/functions/kyc/authentoHelper.d.mts +12 -0
  148. package/functions/kyc/index.d.mts +3 -0
  149. package/functions/kyc/openDefaultPassportWindow.d.mts +1 -0
  150. package/functions/kyc/passportHelper.d.mts +3 -0
  151. package/functions/kyc/zkMeHelper.d.mts +4 -0
  152. package/functions/pre-transaction/getFlatFees.d.mts +12 -0
  153. package/functions/pre-transaction/index.d.mts +5 -0
  154. package/functions/pre-transaction/interaction-to-action.d.mts +2 -0
  155. package/functions/pre-transaction/outputUtxoProcessing.d.mts +5 -0
  156. package/functions/pre-transaction/process-gas-estimates.d.mts +5 -0
  157. package/functions/pre-transaction/processAmountChanges.d.mts +12 -0
  158. package/functions/private-wallet/emporium.helpers.d.mts +5 -0
  159. package/functions/private-wallet/index.d.mts +2 -0
  160. package/functions/private-wallet/opProducer.d.mts +5 -0
  161. package/functions/protocols/convex.protocols.d.mts +1 -0
  162. package/functions/protocols/curve.protocols.d.mts +1 -0
  163. package/functions/protocols/index.d.mts +3 -0
  164. package/functions/protocols/pendle.helpers.d.mts +8 -0
  165. package/functions/snarkjs/common.snarkjs.d.mts +22 -0
  166. package/functions/snarkjs/constant.d.mts +151 -0
  167. package/functions/snarkjs/constructEmporiumProof.d.mts +10 -0
  168. package/functions/snarkjs/constructGeneralZkProof.d.mts +12 -0
  169. package/functions/snarkjs/generateCircomData.d.mts +4 -0
  170. package/functions/snarkjs/generateZkProof.d.mts +5 -0
  171. package/functions/snarkjs/generateZkProofEnclave.d.mts +5 -0
  172. package/functions/snarkjs/generateZkProofSelf.d.mts +5 -0
  173. package/functions/snarkjs/getZKFiles.d.mts +2 -0
  174. package/functions/snarkjs/index.d.mts +4 -0
  175. package/functions/staking/index.d.mts +11 -0
  176. package/functions/utils/amounts.utils.d.mts +21 -0
  177. package/functions/utils/axelar.utils.d.mts +2 -0
  178. package/functions/utils/cacheDevice.utils.d.mts +3 -0
  179. package/functions/utils/cacheFunctions.d.mts +17 -0
  180. package/functions/utils/caseInsensitive.utils.d.mts +3 -0
  181. package/functions/utils/convertIntegrationProviderToExternalActionId.d.mts +2 -0
  182. package/functions/utils/create-provider.d.mts +2 -0
  183. package/functions/utils/enum.utils.d.mts +9 -0
  184. package/functions/utils/erc20tokenFunctions.d.mts +4 -0
  185. package/functions/utils/evmNetworkFunctions.d.mts +4 -0
  186. package/functions/utils/external-action.utils.d.mts +8 -0
  187. package/functions/utils/getDataFromTransaction.d.mts +45 -0
  188. package/functions/utils/index.d.mts +21 -0
  189. package/functions/utils/memoize.utils.d.mts +1 -0
  190. package/functions/utils/nickname.utils.d.mts +1 -0
  191. package/functions/utils/process.utils.d.mts +7 -0
  192. package/functions/utils/reloadPage.d.mts +1 -0
  193. package/functions/utils/requireEnv.d.mts +1 -0
  194. package/functions/utils/resolve-sync.utils.d.mts +6 -0
  195. package/functions/utils/serialize.utils.d.mts +1 -0
  196. package/functions/utils/string.utils.d.mts +8 -0
  197. package/functions/utils/time.utils.d.mts +1 -0
  198. package/functions/utils/userAgent.d.mts +2 -0
  199. package/functions/utils/volatile-patcher.utils.d.mts +1 -0
  200. package/functions/web3/etherFunctions.d.mts +20 -0
  201. package/functions/web3/events/balanceChangedHandler.d.mts +1 -0
  202. package/functions/web3/events/getInputUtxoAndBalance.d.mts +24 -0
  203. package/functions/web3/events/getShieldedBalance.d.mts +18 -0
  204. package/functions/web3/events/index.d.mts +4 -0
  205. package/functions/web3/events/web3RetrieveEvents.d.mts +14 -0
  206. package/functions/web3/functionCalls/accessTokenCalls.d.mts +6 -0
  207. package/functions/web3/functionCalls/approveToken.d.mts +4 -0
  208. package/functions/web3/functionCalls/estimateGasRelayer.d.mts +4 -0
  209. package/functions/web3/functionCalls/getRootHash.d.mts +2 -0
  210. package/functions/web3/functionCalls/relayFunctions.d.mts +17 -0
  211. package/functions/web3/functionCalls/transactCallDirect.d.mts +6 -0
  212. package/functions/web3/functionCalls/transactCallRelayer.d.mts +7 -0
  213. package/functions/web3/getContractMetadata.d.mts +5 -0
  214. package/functions/web3/index.d.mts +6 -0
  215. package/functions/web3/odosAPI.d.mts +5 -0
  216. package/functions/web3/oneInchAPI.d.mts +5 -0
  217. package/functions/web3/runContractFunction.d.mts +15 -0
  218. package/functions/web3/uniswapAPI.d.mts +16 -0
  219. package/index.d.mts +8 -0
  220. package/package.json +41 -11
  221. package/providers/EthersProviderAdapter.d.mts +39 -0
  222. package/providers/WagmiProviderAdapter.d.mts +46 -0
  223. package/providers/exportProviers.d.mts +3 -0
  224. package/providers/prepareEthersHinkal.d.mts +4 -0
  225. package/providers/prepareWagmiHinkal.d.mts +3 -0
  226. package/types/API.types.d.mts +23 -0
  227. package/types/ICacheDevice.d.mts +4 -0
  228. package/types/IMultiThreadedUtxoUtils.d.mts +8 -0
  229. package/types/admin.types.d.mts +22 -0
  230. package/types/axelar.types.d.mts +14 -0
  231. package/types/beefy.types.d.mts +11 -0
  232. package/types/big-intable.types.d.mts +2 -0
  233. package/types/circom-data.types.d.mts +70 -0
  234. package/types/coingecko.types.d.mts +8 -0
  235. package/types/commitments.types.d.mts +26 -0
  236. package/types/connext.types.d.mts +13 -0
  237. package/types/crypto.types.d.mts +7 -0
  238. package/types/curve.types.d.mts +133 -0
  239. package/types/duneAPI.types.d.mts +9 -0
  240. package/types/ethereum-network.types.d.mts +142 -0
  241. package/types/external-action.types.d.mts +28 -0
  242. package/types/hinkal.stake.types.d.mts +11 -0
  243. package/types/hinkal.types.d.mts +150 -0
  244. package/types/hinkalTvl.types.d.mts +4 -0
  245. package/types/index.d.mts +27 -0
  246. package/types/kyc.types.d.mts +39 -0
  247. package/types/pendle.api.types.d.mts +233 -0
  248. package/types/pendle.types.d.mts +222 -0
  249. package/types/relayer.types.d.mts +25 -0
  250. package/types/remote-proof.types.d.mts +15 -0
  251. package/types/rewards.types.d.mts +230 -0
  252. package/types/slippage.types.d.mts +15 -0
  253. package/types/snark.types.d.mts +40 -0
  254. package/types/time.types.d.mts +31 -0
  255. package/types/token.types.d.mts +36 -0
  256. package/types/transactions.types.d.mts +55 -0
  257. package/webworker/performTaskWithWorker.d.mts +5 -0
  258. package/webworker/snarkjsWorker/snarkjsWorker.types.d.mts +14 -0
  259. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.d.mts +1 -0
  260. package/webworker/snarkjsWorker/snarkjsWorkerLogic.d.mts +10 -0
  261. package/webworker/utxoWorker/utxoWorker.types.d.mts +29 -0
  262. package/webworker/utxoWorker/utxoWorkerLauncher.d.mts +1 -0
  263. package/webworker/utxoWorker/utxoWorkerLogic.d.mts +8 -0
  264. package/webworker/viteWorkerURL.constant.d.mts +9 -0
  265. package/webworker/worker.registry.d.mts +10 -0
  266. package/webworker/worker.types.d.mts +33 -0
  267. package/webworker/workerErrorHandler.d.mts +1 -0
  268. package/webworker/workerFactory.d.mts +7 -0
  269. package/webworker/workerProxy.d.mts +40 -0
  270. package/webworker/zkProofWorker/zkProofWorker.types.d.mts +38 -0
  271. package/webworker/zkProofWorker/zkProofWorkerLauncher.d.mts +1 -0
  272. package/webworker/zkProofWorker/zkProofWorkerLogic.d.mts +8 -0
@@ -0,0 +1,30 @@
1
+ import { ethers } from 'ethers';
2
+ import { MerkleTree, MerkleTreeJson } from '../merkle-tree';
3
+ import { CommitmentEvent, EncryptedOutputWithSign } from '../../types';
4
+ import { AbstractSnapshotService, Snapshot } from './AbstractSnapshotService';
5
+ export type CommitmentsSnapshotPayload = {
6
+ readonly merkleTree: MerkleTree<bigint>;
7
+ readonly encryptedOutputs: EncryptedOutputWithSign[];
8
+ };
9
+ export type CommitmentsSerializedSnapshot = {
10
+ latestBlockNumber?: number;
11
+ reserveBlockNumber?: number;
12
+ merkleTree?: MerkleTreeJson;
13
+ encryptedOutputs?: EncryptedOutputWithSign<string>[];
14
+ };
15
+ export declare abstract class AbstractCommitmentsSnapshotService extends AbstractSnapshotService<CommitmentEvent<bigint>, CommitmentEvent, CommitmentsSnapshotPayload, CommitmentsSerializedSnapshot> {
16
+ constructor(contract: ethers.Contract, initialBlockNumber: number, isServer: boolean, maxPageSize?: number);
17
+ private _merkleTree;
18
+ private _encryptedOutputs;
19
+ get merkleTree(): MerkleTree<bigint>;
20
+ get encryptedOutputs(): EncryptedOutputWithSign<boolean>[];
21
+ protected serializeSnapshot(snapshot: Snapshot<CommitmentsSnapshotPayload>): CommitmentsSerializedSnapshot;
22
+ protected deserializeSnapshot(serializedSnapshot: CommitmentsSerializedSnapshot): Snapshot<CommitmentsSnapshotPayload>;
23
+ protected getSnapshotPayload(): {
24
+ merkleTree: MerkleTree<bigint>;
25
+ encryptedOutputs: EncryptedOutputWithSign<boolean>[];
26
+ };
27
+ protected populateSnapshot({ payload: { merkleTree, encryptedOutputs }, }: Snapshot<CommitmentsSnapshotPayload>): void;
28
+ protected mapEvent(event: CommitmentEvent): CommitmentEvent<bigint>;
29
+ protected acceptEvent(event: CommitmentEvent<bigint>, _blockNumber: number): boolean;
30
+ }
@@ -0,0 +1,31 @@
1
+ import { ethers } from 'ethers';
2
+ export type NewEventListener<E> = (event?: E) => unknown;
3
+ export interface EventConfig {
4
+ name: string;
5
+ args: string[];
6
+ }
7
+ export declare abstract class AbstractEventService<EventType, SerializedEventType = unknown> {
8
+ protected readonly contract: ethers.Contract;
9
+ protected readonly eventConfig: EventConfig;
10
+ protected _latestBlockNumber: number;
11
+ private readonly maxPageSize?;
12
+ private isReady;
13
+ private _onNewEvent?;
14
+ protected isServer: boolean;
15
+ protected intervalId?: any;
16
+ protected inProgress: boolean;
17
+ protected constructor(contract: ethers.Contract, eventConfig: EventConfig, initialBlockNumber: number, isServer: boolean, maxPageSize?: number);
18
+ get latestBlockNumber(): number;
19
+ set onNewEvent(value: NewEventListener<EventType>);
20
+ intervalClear(): void;
21
+ init(): Promise<void>;
22
+ protected requireReady(): void;
23
+ protected emitNewEvent(event?: EventType): void;
24
+ private getLastBlockNumberForEventRequest;
25
+ protected retrieveEvents(fromBlockNumber: number, useForce?: boolean): Promise<boolean>;
26
+ private processEventsPage;
27
+ protected handleEvent: (...args: unknown[]) => Promise<void>;
28
+ protected abstract acceptEvent(event: EventType, blockNumber: number): boolean | Promise<boolean>;
29
+ protected abstract mapEvent(event: SerializedEventType): EventType;
30
+ protected abstract afterEventsAccepted(): Promise<unknown>;
31
+ }
@@ -0,0 +1,22 @@
1
+ import { BigNumber, ethers } from 'ethers';
2
+ import { NullifierEvent } from '../../types/commitments.types';
3
+ import { AbstractSnapshotService, Snapshot } from './AbstractSnapshotService';
4
+ export type NullifierSnapshotPayload = {
5
+ readonly nullifiers: Set<string>;
6
+ };
7
+ export type NullifierSerializedSnapshot = {
8
+ latestBlockNumber?: number;
9
+ reserveBlockNumber?: number;
10
+ nullifiers?: string[];
11
+ };
12
+ export declare abstract class AbstractNullifierSnapshotService extends AbstractSnapshotService<NullifierEvent<string>, NullifierEvent<BigNumber>, NullifierSnapshotPayload, NullifierSerializedSnapshot> {
13
+ constructor(contract: ethers.Contract, initialBlockNumber: number, isServer: boolean, maxPageSize?: number);
14
+ private _nullifiers;
15
+ get nullifiers(): Set<string>;
16
+ protected serializeSnapshot(snapshot: Snapshot<NullifierSnapshotPayload>): NullifierSerializedSnapshot;
17
+ protected deserializeSnapshot(serializedSnapshot: NullifierSerializedSnapshot): Snapshot<NullifierSnapshotPayload>;
18
+ protected acceptEvent(event: NullifierEvent<string>, _blockNumber: number): boolean;
19
+ protected mapEvent(event: NullifierEvent<BigNumber>): NullifierEvent<string>;
20
+ protected getSnapshotPayload(): NullifierSnapshotPayload;
21
+ protected populateSnapshot({ payload: { nullifiers } }: Snapshot<NullifierSnapshotPayload>): void;
22
+ }
@@ -0,0 +1,23 @@
1
+ import { ethers } from 'ethers';
2
+ import { AbstractEventService, EventConfig } from './AbstractEventService';
3
+ export interface Snapshot<SnapshotPayloadType> {
4
+ readonly latestBlockNumber: number;
5
+ readonly reserveBlockNumber: number;
6
+ readonly payload: SnapshotPayloadType;
7
+ }
8
+ export declare abstract class AbstractSnapshotService<EventType, SerializedEventType, SnapshotPayloadType, SerializedSnapshotType> extends AbstractEventService<EventType, SerializedEventType> {
9
+ protected reserveBlockNumber: number;
10
+ protected constructor(contract: ethers.Contract, eventConfig: EventConfig, initialBlockNumber: number, isServer: boolean, maxPageSize?: number);
11
+ init(): Promise<void>;
12
+ retrieveEventsFromLatestBlock(): Promise<void>;
13
+ restoreSnapshotState(): Promise<void>;
14
+ private loadSnapshot;
15
+ protected saveSnapshot(): Promise<unknown>;
16
+ protected afterEventsAccepted(): Promise<unknown>;
17
+ protected abstract getSnapshotPayload(): SnapshotPayloadType;
18
+ protected abstract populateSnapshot(snapshot: Snapshot<SnapshotPayloadType>): void;
19
+ protected abstract serializeSnapshot(snapshot: Snapshot<SnapshotPayloadType>): SerializedSnapshotType;
20
+ protected abstract deserializeSnapshot(serializedSnapshot: SerializedSnapshotType): Snapshot<SnapshotPayloadType>;
21
+ protected abstract fetchSnapshot(): Promise<SerializedSnapshotType>;
22
+ protected abstract persistSnapshot(serializedSnapshot: SerializedSnapshotType): Promise<unknown>;
23
+ }
@@ -0,0 +1,5 @@
1
+ export * from './AbstractAccessTokenSnapshotService';
2
+ export * from './AbstractCommitmentsSnapshotService';
3
+ export * from './AbstractNullifierSnapshotService';
4
+ export * from './AbstractSnapshotService';
5
+ export * from './AbstractEventService';
@@ -0,0 +1,13 @@
1
+ export * from './ValueCache';
2
+ export * from './crypto-keys';
3
+ export * from './Hinkal';
4
+ export * from './merkle-tree';
5
+ export * from './provider-adapter/IProviderAdapter';
6
+ export * from './event-service';
7
+ export * from './utxo/Utxo';
8
+ export * from './custom-token-registry/CustomTokenRegistry';
9
+ export * from './token-price-fetcher';
10
+ export * from './transactions-manager';
11
+ export * from './volatile-helper';
12
+ export * from './MultiThreadedUtxoUtils/MultiThreadedUtxoUtils';
13
+ export * from './cacheDevices';
@@ -0,0 +1,78 @@
1
+ export type MerkleTreeJson = {
2
+ tree: Record<string, string>;
3
+ count: string;
4
+ index: string;
5
+ };
6
+ /**
7
+ * Merkle tree implementation that allows the user to insert in specific places in the tree
8
+ *
9
+ */
10
+ export declare class MerkleTree<T> {
11
+ private hashFunction;
12
+ private levels;
13
+ private defaultNodeValue;
14
+ /**
15
+ * the map where the items are stored
16
+ */
17
+ private readonly tree;
18
+ /**
19
+ * amount of elements inserted inside the bottom row of the tree
20
+ */
21
+ private count;
22
+ /**
23
+ * the maximum index inserted into the tree
24
+ * used together with count to make sure that the merkle tree is complete.
25
+ * meaning that there aren't any missing elements between getStartIndex() and index
26
+ */
27
+ private index;
28
+ static createWithData<T>(tree: Map<bigint, T>, index: bigint, count: bigint, hashFunction: (a: T, b: T) => T, levels: bigint, defaultNodeValue: T): MerkleTree<T>;
29
+ /**
30
+ * @param hashFunction the hashFunction used to fill the upper layers of the merkle tree
31
+ * @param levels the amount of layers in the merkle tree
32
+ * @param defaultNodeValue the default value of an empty node in the merkle tree
33
+ */
34
+ static create<T>(hashFunction: (a: T, b: T) => T, levels: bigint, defaultNodeValue: T): MerkleTree<T>;
35
+ private constructor();
36
+ /**
37
+ * get starting nodeIndex from which inserts are allowed
38
+ */
39
+ getStartIndex(): bigint;
40
+ /**
41
+ * implementation of logarithm2 function from merkle contract
42
+ */
43
+ logarithm2(a: bigint): bigint;
44
+ bigIntMax(a: bigint, b: bigint): bigint;
45
+ private forceInsert;
46
+ /**
47
+ * insert value into the merkle tree
48
+ * @param value the value to insert
49
+ * @param nodeIndex the index to insert the value, you can get starting index from getStartIndex()
50
+ * @return true - if added, false - if already exists
51
+ * @throws will throw RangeError if nodeIndex is less than getStartIndex()
52
+ */
53
+ insert(value: T, nodeIndex: bigint): boolean;
54
+ remove(nodeIndex: bigint): void;
55
+ private completenessCheck;
56
+ /**
57
+ * get root hash of the merkle tree
58
+ * @returns the hash, if the merkle tree is empty, will return
59
+ * @throws will throw MerkleTreeIncompleteError if there are missing elements in the tree
60
+ */
61
+ getRootHash(): T | undefined;
62
+ getMerkleData(): Map<bigint, T>;
63
+ getSiblingIndex(index: bigint): bigint;
64
+ /**
65
+ * get sibling hashes needed by main.circom
66
+ * @throws will throw MerkleTreeIncompleteError if there are missing elements in the tree
67
+ */
68
+ getSiblingHashesForVerification(item: T): bigint[] | T[];
69
+ /**
70
+ * get item's sibling hashes side
71
+ * @returns sibling's indexes
72
+ * @throws will throw MerkleTreeIncompleteError if there are missing elements in the tree
73
+ */
74
+ getSiblingSides(item: T): bigint[];
75
+ toJSON(): MerkleTreeJson;
76
+ clone(): MerkleTree<T>;
77
+ getIndex(): bigint;
78
+ }
@@ -0,0 +1,3 @@
1
+ export declare class MerkleTreeIncompleteError extends Error {
2
+ constructor();
3
+ }
@@ -0,0 +1,3 @@
1
+ import { UserKeys } from '../crypto-keys/keys';
2
+ import { MerkleTree } from './MerkleTree';
3
+ export declare const getPatchedAccessTokenMerkleTree: (merkleTreeAccessToken: MerkleTree<bigint>, userKeys: UserKeys, hasAccessToken: boolean) => MerkleTree<bigint>;
@@ -0,0 +1,3 @@
1
+ export * from './MerkleTree';
2
+ export * from './getPatchedAccessTokenMerkleTree';
3
+ export * from './MerkleTreeIncompleteError';
@@ -0,0 +1,35 @@
1
+ import { TransactionRequest, TransactionResponse } from '@ethersproject/providers';
2
+ import { ContractMetadata, ContractType, EthereumNetwork } from '../../types/ethereum-network.types';
3
+ import { Contract, ethers, Signer } from 'ethers';
4
+ export interface ChainEventListener {
5
+ onAccountChanged(): void;
6
+ onChainChanged(chainId?: number): void;
7
+ }
8
+ export interface IProviderAdapter<ConnectorType = unknown> {
9
+ chainId: number | undefined;
10
+ initConnector(connector: ConnectorType): void;
11
+ initSigner?(signer: Signer): void;
12
+ init(chainId?: number): Promise<void>;
13
+ initConfig?(config?: any): Promise<void> | void;
14
+ connectToConnector(connector: ConnectorType): Promise<number>;
15
+ disconnectFromConnector(): Promise<void>;
16
+ connectAndPatchProvider(connector: ConnectorType): Promise<number>;
17
+ waitForTransaction(transactionHash: string, confirmations: number): Promise<boolean>;
18
+ signMessage(message: string | Uint8Array): Promise<string>;
19
+ getAddress(): Promise<string>;
20
+ getSelectedNetwork(): EthereumNetwork | undefined;
21
+ setChainEventListener(chainEventListener: ChainEventListener): void;
22
+ release(): void;
23
+ getContractMetadata(contractType: ContractType, chainId?: number): ContractMetadata;
24
+ getContract(contractType: ContractType, contractAddress?: string, chainId?: number): ethers.Contract;
25
+ getContractWithSigner(contract: ContractType, contractAddress?: string): Contract;
26
+ getContractWithFetcher(contract: ContractType, contractAddress?: string): Contract;
27
+ getContractWithFetcherForEthereum(contract: ContractType, contractAddress?: string): Contract;
28
+ sendTransaction(tx: TransactionRequest): Promise<TransactionResponse>;
29
+ switchNetwork(network: EthereumNetwork): Promise<unknown>;
30
+ onAccountChanged(): Promise<unknown>;
31
+ onChainChanged(chainId?: number): Promise<unknown>;
32
+ isPermitterAvailable(): boolean;
33
+ getGasPrice(): Promise<bigint>;
34
+ signTypedData(domain: ethers.TypedDataDomain, types: Record<string, ethers.TypedDataField[]>, value: Record<string, unknown>): Promise<string>;
35
+ }
@@ -0,0 +1,7 @@
1
+ import { AbstractAccessTokenSnapshotService, AccessTokenSerializedSnapshot } from '../event-service';
2
+ import { Contract } from 'ethers';
3
+ export declare class ClientAccessTokenSnapshotService extends AbstractAccessTokenSnapshotService {
4
+ constructor(contract: Contract, maxPageSize?: number);
5
+ protected fetchSnapshot(): Promise<AccessTokenSerializedSnapshot>;
6
+ protected persistSnapshot(_serializedSnapshot: AccessTokenSerializedSnapshot): Promise<unknown>;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { AbstractCommitmentsSnapshotService, CommitmentsSerializedSnapshot } from '../event-service';
2
+ import { Contract } from 'ethers';
3
+ export declare class ClientCommitmentsSnapshotService extends AbstractCommitmentsSnapshotService {
4
+ constructor(contract: Contract, maxPageSize?: number);
5
+ protected fetchSnapshot(): Promise<CommitmentsSerializedSnapshot>;
6
+ protected persistSnapshot(_serializedSnapshot: CommitmentsSerializedSnapshot): Promise<unknown>;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { AbstractNullifierSnapshotService, NullifierSerializedSnapshot } from '../event-service';
2
+ import { Contract } from 'ethers';
3
+ export declare class ClientNullifierSnapshotService extends AbstractNullifierSnapshotService {
4
+ constructor(contract: Contract, maxPageSize?: number);
5
+ protected fetchSnapshot(): Promise<NullifierSerializedSnapshot>;
6
+ protected persistSnapshot(_serializedSnapshot: NullifierSerializedSnapshot): Promise<unknown>;
7
+ }
@@ -0,0 +1,20 @@
1
+ import { ERC20Token } from '../../types/token.types';
2
+ export declare class TokenChecker {
3
+ static isCurveLPToken: (token: ERC20Token, curveTokens: string[]) => boolean;
4
+ static isCurveStakeToken: (token: ERC20Token) => boolean;
5
+ static isConvexToken: (token: ERC20Token) => boolean;
6
+ static isBeefyLpToken: (token: ERC20Token) => boolean;
7
+ static isBeefyStakeToken: (token: ERC20Token) => boolean;
8
+ static isLidoToken: (token: ERC20Token) => boolean;
9
+ static isCurveOrConvex: (token: ERC20Token, curveTokens: string[]) => boolean;
10
+ static isBeefyToken: (token: ERC20Token) => boolean;
11
+ static isStakeToken: (token: ERC20Token) => boolean;
12
+ static isPendleYtToken: (token: ERC20Token) => boolean;
13
+ static isPendleLPToken: (token: ERC20Token) => boolean;
14
+ static isPendleSyToken: (token: ERC20Token) => boolean;
15
+ static isPendleNativeToken: (token: ERC20Token) => boolean;
16
+ static isPendleToken: (token: ERC20Token) => boolean;
17
+ static isAaveToken: (token: ERC20Token) => boolean | undefined;
18
+ static isKinzaToken: (token: ERC20Token) => boolean;
19
+ static isProtocolToken: (token: ERC20Token, curveTokens: string[]) => boolean | undefined;
20
+ }
@@ -0,0 +1 @@
1
+ export * from './TokenChecker';
@@ -0,0 +1,27 @@
1
+ import { Contract } from 'ethers';
2
+ import { DecodedTx, HashInfoByChain, RawTx } from '../../types';
3
+ import { TransactionField } from './history/history.types';
4
+ import { UserKeys } from '../crypto-keys';
5
+ export declare class TransactionsManager {
6
+ readonly circuitSize: number;
7
+ hinkalContract: Contract;
8
+ init(hinkalContract: Contract): void;
9
+ requireInit(): void;
10
+ private filterOwnTransactions;
11
+ private saveTxsInStorage;
12
+ private loadTxsFromStorage;
13
+ getAllTransactions: (chainId: number, userKeys: UserKeys, week?: number, startWeek?: number) => Promise<RawTx[]>;
14
+ getHinkalHistoryBase: (chainId: number, userKeys: UserKeys, week?: number, includeOthersDeposits?: boolean, startWeek?: number) => Promise<DecodedTx[]>;
15
+ getHinkalHistory: (chainId: number, userKeys: UserKeys) => Promise<TransactionField[]>;
16
+ private sortInBatches;
17
+ private generateTransactionsProof;
18
+ private userVerifyTransactions;
19
+ private verifyTransactionsInBatches;
20
+ processAndSendTransactionsForVerification: (chainId: number, userKeys: UserKeys, ethereumAddress: string, latestCertifiedHash?: string, startWeek?: number) => Promise<{
21
+ trade: number;
22
+ transactions: number;
23
+ lockedDeposit: number;
24
+ verification: boolean;
25
+ }>;
26
+ multiProcessAndSendTransactionsForVerification: (userKeys: UserKeys, ethereumAddress: string, lastCertifiedHashes?: HashInfoByChain) => Promise<boolean>;
27
+ }
@@ -0,0 +1,3 @@
1
+ import { BeefyResult, PastTransaction } from './history.types';
2
+ import { OnChainUtxo } from '../../../types';
3
+ export declare const getBeefyData: (input: PastTransaction, utxosArray: OnChainUtxo[], chainId: number) => BeefyResult;
@@ -0,0 +1,6 @@
1
+ import { ConvexAction, OnChainUtxo } from '../../../types';
2
+ import { ConvexStakeUnstake, PastTransaction, TransactionType } from './history.types';
3
+ export declare const getConvexData: (input: PastTransaction, utxosArray: OnChainUtxo[], chainId: number) => ConvexStakeUnstake | {
4
+ type: TransactionType;
5
+ convexAction: ConvexAction;
6
+ };
@@ -0,0 +1,6 @@
1
+ import { CurveAction, OnChainUtxo } from '../../../types';
2
+ import { CurveDepositWithdrawResult, CurveStakeUnstake, PastTransaction, TransactionType } from './history.types';
3
+ export declare const getCurveData: (input: PastTransaction, utxosArray: OnChainUtxo[], chainId: number) => CurveDepositWithdrawResult | CurveStakeUnstake | {
4
+ type: TransactionType;
5
+ curveAction: CurveAction;
6
+ };
@@ -0,0 +1,2 @@
1
+ import { DepositResult, PastTransaction, WithdrawResult } from './history.types';
2
+ export declare const getDepositData: (input: PastTransaction, chainId: number) => DepositResult | WithdrawResult;
@@ -0,0 +1,10 @@
1
+ import { ERC20Token, OnChainUtxo } from '../../../types';
2
+ import { PastTransaction, TransactionType } from './history.types';
3
+ export declare const getLidoData: (input: PastTransaction, utxosArray: OnChainUtxo[], chainId: number) => {
4
+ lidoToken: {
5
+ token: ERC20Token | undefined;
6
+ balance: bigint;
7
+ };
8
+ type: TransactionType;
9
+ lidoAction: any;
10
+ };
@@ -0,0 +1,3 @@
1
+ import { PastTransaction, PendleResult } from './history.types';
2
+ import { OnChainUtxo } from '../../../types';
3
+ export declare const getPendleData: (input: PastTransaction, utxosArray: OnChainUtxo[], chainId: number) => PendleResult;
@@ -0,0 +1,3 @@
1
+ import { OnChainUtxo } from '../../../types';
2
+ import { PastTransaction, SwapResult } from './history.types';
3
+ export declare const getSwapData: (input: PastTransaction, utxosArray: OnChainUtxo[], chainId: number) => SwapResult;
@@ -0,0 +1,3 @@
1
+ import { OnChainUtxo } from '../../../types';
2
+ import { PastTransaction, TransactionDetails } from './history.types';
3
+ export declare const getTxDetails: (chainId: number, input: PastTransaction, utxosArray?: OnChainUtxo[]) => Promise<TransactionDetails>;
@@ -0,0 +1,32 @@
1
+ import { PastTransaction, TransactionType } from './history.types';
2
+ import { OnChainUtxo } from '../../../types';
3
+ export declare const getVolatileData: (input: PastTransaction, utxosArray: OnChainUtxo[], chainId: number) => Promise<{
4
+ tokenWithBalance: {
5
+ token: import('../../../types/token.types').ERC20Token | {
6
+ erc20TokenAddress: string;
7
+ };
8
+ balance: bigint;
9
+ };
10
+ type: TransactionType;
11
+ tokenIn?: undefined;
12
+ tokenOut?: undefined;
13
+ protocol?: undefined;
14
+ } | {
15
+ tokenIn: {
16
+ token: import('../../../types/token.types').ERC20Token | undefined;
17
+ balance: bigint;
18
+ };
19
+ tokenOut: {
20
+ token: import('../../../types/token.types').ERC20Token | undefined;
21
+ balance: bigint | undefined;
22
+ };
23
+ type: TransactionType;
24
+ protocol: bigint;
25
+ tokenWithBalance?: undefined;
26
+ } | {
27
+ type: TransactionType;
28
+ tokenWithBalance?: undefined;
29
+ tokenIn?: undefined;
30
+ tokenOut?: undefined;
31
+ protocol?: undefined;
32
+ }>;
@@ -0,0 +1,95 @@
1
+ import { BeefyAction, ConvexAction, CurveAction, HookDataType, LidoAction, PendleAction, TokenBalance } from '../../../types';
2
+ import { BigNumber } from 'ethers';
3
+ export type PastTransaction = {
4
+ erc20TokenAddresses: string[];
5
+ amountChanges: BigNumber[];
6
+ externalActionId: BigNumber;
7
+ externalActionMetadata: string;
8
+ hookData: HookDataType;
9
+ };
10
+ export declare enum TransactionType {
11
+ DEPOSIT = 0,
12
+ WITHDRAW = 1,
13
+ SWAP = 2,
14
+ BEEFY = 3,
15
+ CURVE = 4,
16
+ CONVEX = 5,
17
+ LIDO = 6,
18
+ PENDLE = 7,
19
+ VOLATILE = 8,
20
+ UNKNOWN = 9
21
+ }
22
+ export declare const externalActionToTransactionType: (input: PastTransaction) => TransactionType.DEPOSIT | TransactionType.WITHDRAW | TransactionType.SWAP | TransactionType.BEEFY | TransactionType.CURVE | TransactionType.CONVEX | TransactionType.LIDO | TransactionType.PENDLE | TransactionType.UNKNOWN;
23
+ export interface TransactionDetails {
24
+ type: TransactionType;
25
+ }
26
+ export type HistoryTokenBalance = TokenBalance | {
27
+ token: {
28
+ erc20TokenAddress: string;
29
+ };
30
+ balance: bigint;
31
+ };
32
+ export interface DepositResult extends TransactionDetails {
33
+ tokenWithBalance: HistoryTokenBalance;
34
+ type: TransactionType.DEPOSIT;
35
+ }
36
+ export interface WithdrawResult extends TransactionDetails {
37
+ tokenWithBalance: HistoryTokenBalance;
38
+ type: TransactionType.WITHDRAW;
39
+ }
40
+ export interface SwapResult extends TransactionDetails {
41
+ tokenIn: HistoryTokenBalance;
42
+ tokenOut: HistoryTokenBalance;
43
+ type: TransactionType.SWAP;
44
+ protocol: bigint;
45
+ }
46
+ export interface BeefyResult extends TransactionDetails {
47
+ erc20Token: HistoryTokenBalance;
48
+ mooToken: HistoryTokenBalance;
49
+ type: TransactionType.BEEFY;
50
+ beefyAction: BeefyAction;
51
+ }
52
+ export interface CurveDepositWithdrawResult extends TransactionDetails {
53
+ inTokens: HistoryTokenBalance[];
54
+ poolToken: HistoryTokenBalance;
55
+ type: TransactionType.CURVE;
56
+ curveAction: CurveAction;
57
+ }
58
+ export interface CurveStakeUnstake extends TransactionDetails {
59
+ poolToken: HistoryTokenBalance;
60
+ type: TransactionType.CURVE;
61
+ curveAction: CurveAction;
62
+ }
63
+ export interface ConvexStakeUnstake extends TransactionDetails {
64
+ poolToken: HistoryTokenBalance;
65
+ type: TransactionType.CONVEX;
66
+ convexAction: ConvexAction;
67
+ }
68
+ export interface LidoResult extends TransactionDetails {
69
+ lidoToken: HistoryTokenBalance;
70
+ type: TransactionType.LIDO;
71
+ lidoAction: LidoAction;
72
+ }
73
+ export interface PendleResult extends TransactionDetails {
74
+ pendleTokens: HistoryTokenBalance[];
75
+ nonPendleTokens: HistoryTokenBalance[];
76
+ syToken?: HistoryTokenBalance;
77
+ type: TransactionType.PENDLE;
78
+ pendleAction: PendleAction | undefined;
79
+ }
80
+ export interface VolatileResult extends TransactionDetails {
81
+ token: HistoryTokenBalance;
82
+ type: TransactionType.VOLATILE;
83
+ }
84
+ export interface UnknownTransaction extends TransactionDetails {
85
+ type: TransactionType.UNKNOWN;
86
+ }
87
+ export type TransactionField = {
88
+ blockNumber: number;
89
+ timeStamp: number;
90
+ gas: number;
91
+ gasPrice: number;
92
+ hash: string;
93
+ status: 'SUCCESS' | 'FAILURE';
94
+ details: TransactionDetails;
95
+ };
@@ -0,0 +1,8 @@
1
+ import { PastTransaction } from './history.types';
2
+ export declare const txHistoryToBigInt: (input: PastTransaction) => {
3
+ amountChanges: bigint[];
4
+ externalActionId: bigint;
5
+ erc20TokenAddresses: string[];
6
+ externalActionMetadata: string;
7
+ hookData: import('../../../index.ts').HookDataType;
8
+ };
@@ -0,0 +1,2 @@
1
+ export * from './TransactionsManager';
2
+ export * from './history/history.types';
@@ -0,0 +1,63 @@
1
+ export type IUtxoConstructor = {
2
+ amount: bigint;
3
+ erc20TokenAddress: string;
4
+ timeStamp?: string;
5
+ shieldedPrivateKey?: string;
6
+ randomization?: bigint;
7
+ stealthAddress?: string;
8
+ encryptionKey?: string;
9
+ tokenId?: number;
10
+ isStake?: boolean;
11
+ isStakeOrUnstakeInput?: boolean;
12
+ isUnstakeOutput?: boolean;
13
+ commitment?: string;
14
+ nullifier?: string;
15
+ };
16
+ /**
17
+ * UTXO class for transactions
18
+ */
19
+ export declare class Utxo {
20
+ amount: bigint;
21
+ erc20TokenAddress: string;
22
+ timeStamp: string;
23
+ tokenId: number;
24
+ shieldedPrivateKey?: string;
25
+ randomization: bigint;
26
+ stealthAddress?: string;
27
+ encryptionKey?: string;
28
+ commitment?: string;
29
+ nullifier?: string;
30
+ isStake: boolean;
31
+ isStakeOrUnstakeInput: boolean;
32
+ isUnstakeOutput: boolean;
33
+ /**
34
+ * creates new UTXO instance
35
+ * @param amount UTXO amount
36
+ * @param erc20TokenAddress contract address of ERC-20/ERC-721 token
37
+ * @param timeStamp timestamp
38
+ * @param tokenId tokenId
39
+ * @param randomization randomization parameter
40
+ * @param stealthAddress stealth address as a parameter(e.g. in case of transfers we will not know private key and randomization of payee
41
+ * @param encryptionKey encryption public key
42
+ * @param shieldedPrivateKey private key for nullification
43
+ * @param commitment [optional] commitment value if already computed
44
+ * @param nullifier [optional] nullifier value if already computed
45
+ */
46
+ constructor({ amount, erc20TokenAddress, timeStamp, tokenId, shieldedPrivateKey, randomization, stealthAddress, encryptionKey, commitment, nullifier, isStake, isStakeOrUnstakeInput, isUnstakeOutput, }: IUtxoConstructor);
47
+ static createFrom(utxoToCreateFrom: Utxo, patch: Partial<IUtxoConstructor>): Utxo;
48
+ getConstructableParams(): IUtxoConstructor;
49
+ /**
50
+ * @returns commitment hash of the UTXO instance
51
+ */
52
+ getCommitment(): string;
53
+ /**
54
+ * @returns nullifier hash of the UTXO instance
55
+ */
56
+ getNullifier(): string;
57
+ /**
58
+ * @returns stealth address from randomization and private shieldedPrivateKey
59
+ */
60
+ getStealthAddress(): string;
61
+ getEncryptionKey(): string;
62
+ static findCorrectRandomization(initialRandomization: bigint, privateKey?: string): bigint;
63
+ }