@hinkal/common 0.1.36 → 0.1.38

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 (29) hide show
  1. package/constants/rewards.constants.d.ts +1 -1
  2. package/constants/vite.constants.cjs +1 -1
  3. package/constants/vite.constants.d.ts +3 -2
  4. package/constants/vite.constants.mjs +15 -14
  5. package/data-structures/Hinkal/Hinkal.cjs +1 -1
  6. package/data-structures/Hinkal/Hinkal.mjs +20 -20
  7. package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs +1 -1
  8. package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.d.ts +0 -1
  9. package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs +29 -31
  10. package/data-structures/event-service/AbstractEventService.cjs +1 -1
  11. package/data-structures/event-service/AbstractEventService.mjs +17 -8
  12. package/data-structures/snapshot/ClientAccessTokenSnapshotService.cjs +1 -1
  13. package/data-structures/snapshot/ClientAccessTokenSnapshotService.mjs +14 -9
  14. package/data-structures/snapshot/ClientCommitmentsSnapshotService.cjs +1 -1
  15. package/data-structures/snapshot/ClientCommitmentsSnapshotService.mjs +14 -9
  16. package/data-structures/snapshot/ClientNullifierSnapshotService.cjs +1 -1
  17. package/data-structures/snapshot/ClientNullifierSnapshotService.mjs +8 -3
  18. package/error-handling/logError.cjs +1 -1
  19. package/error-handling/logError.mjs +3 -3
  20. package/functions/utils/process.utils.cjs +1 -1
  21. package/functions/utils/process.utils.d.ts +0 -2
  22. package/functions/utils/process.utils.mjs +8 -10
  23. package/index.cjs +1 -1
  24. package/index.mjs +360 -362
  25. package/package.json +1 -1
  26. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.cjs +1 -1
  27. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.mjs +1 -1
  28. package/webworker/zkProofWorker/zkProofWorkerLauncher.cjs +1 -1
  29. package/webworker/zkProofWorker/zkProofWorkerLauncher.mjs +1 -1
@@ -15,4 +15,4 @@ export declare const RafflePrizePoints: {
15
15
  Silver: number;
16
16
  Gold: number;
17
17
  };
18
- export type PointsProvider = 'Hinkal' | 'EtherFi' | 'Renzo' | 'Kelp' | 'Zircuit';
18
+ export type PointsProvider = 'Hinkal';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("../functions/utils/enum.utils.cjs"),s=require("../functions/utils/process.utils.cjs");var r=(e=>(e.DEVELOPMENT="development",e.STAGING="staging",e.PLAYGROUND="playground",e.PRODUCTION="production",e))(r||{});const o={development:["localhost","192.","127."],playground:["playground"],staging:["working-branch"]};function t(e,l){return l.some(c=>e.includes(c))}const g=()=>(require("dotenv").config({path:"DOTENV_OVERRIDE"in process.env?process.env.DOTENV_OVERRIDE:void 0}),p.toEnumValue(r,process.env.DEPLOYMENT_MODE)||"development"),a=()=>{if(!s.isOnServer()&&typeof window>"u")return;if(s.isOnServer())return g();const e=window?.location?.host;return t(e,o.development)?"development":t(e,o.playground)?"playground":t(e,o.staging)?"staging":"production"},v=typeof process<"u"&&process.versions!=null&&process.versions.node!=null,y=typeof __webpack_require__<"u",n=a(),i=n==="staging",d=n==="playground",u=n==="development",m=i||u||d;exports.DEPLOYMENT_MODE=r;exports.deploymentMode=n;exports.isDevelopment=u;exports.isNode=v;exports.isNotProduction=m;exports.isPlayground=d;exports.isStaging=i;exports.isWebpack=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../functions/utils/enum.utils.cjs"),s=typeof process<"u"&&process?.release?.name==="node",g=typeof process<"u"&&process.versions!=null&&process.versions.node!=null,y=typeof __webpack_require__<"u";var r=(e=>(e.DEVELOPMENT="development",e.STAGING="staging",e.PLAYGROUND="playground",e.PRODUCTION="production",e))(r||{});const o={development:["localhost","192.","127."],playground:["playground"],staging:["working-branch"]};function t(e,l){return l.some(p=>e.includes(p))}const m=()=>(require("dotenv").config({path:"DOTENV_OVERRIDE"in process.env?process.env.DOTENV_OVERRIDE:void 0}),a.toEnumValue(r,process.env.DEPLOYMENT_MODE)||"development"),v=()=>{if(!s&&typeof window>"u")return;if(s)return m();const e=window?.location?.host;return t(e,o.development)?"development":t(e,o.playground)?"playground":t(e,o.staging)?"staging":"production"},n=v(),i=n==="staging",d=n==="playground",u=n==="development",c=i||u||d,f=c||n==="production"&&s;exports.DEPLOYMENT_MODE=r;exports.deploymentMode=n;exports.isDevelopment=u;exports.isNode=g;exports.isNotClientProduction=f;exports.isNotProduction=c;exports.isPlayground=d;exports.isStaging=i;exports.isWebpack=y;
@@ -1,13 +1,14 @@
1
+ export declare const isNode: boolean;
2
+ export declare const isWebpack: boolean;
1
3
  export declare enum DEPLOYMENT_MODE {
2
4
  DEVELOPMENT = "development",
3
5
  STAGING = "staging",
4
6
  PLAYGROUND = "playground",
5
7
  PRODUCTION = "production"
6
8
  }
7
- export declare const isNode: boolean;
8
- export declare const isWebpack: boolean;
9
9
  export declare const deploymentMode: DEPLOYMENT_MODE | undefined;
10
10
  export declare const isStaging: boolean;
11
11
  export declare const isPlayground: boolean;
12
12
  export declare const isDevelopment: boolean;
13
13
  export declare const isNotProduction: boolean;
14
+ export declare const isNotClientProduction: boolean;
@@ -1,34 +1,35 @@
1
1
  import { toEnumValue as p } from "../functions/utils/enum.utils.mjs";
2
- import { isOnServer as r } from "../functions/utils/process.utils.mjs";
2
+ const r = typeof process < "u" && process?.release?.name === "node", y = typeof process < "u" && process.versions != null && process.versions.node != null, f = typeof __webpack_require__ < "u";
3
3
  var s = /* @__PURE__ */ ((e) => (e.DEVELOPMENT = "development", e.STAGING = "staging", e.PLAYGROUND = "playground", e.PRODUCTION = "production", e))(s || {});
4
- const n = {
4
+ const o = {
5
5
  development: ["localhost", "192.", "127."],
6
6
  playground: ["playground"],
7
7
  // The code deployed to the 'playground' branch is hosted by Netlify at 'hinkal-playground.netlify.app'
8
8
  staging: ["working-branch"]
9
9
  // The code deployed to the 'new' branch is hosted by Netlify at 'working-branch.netlify.app'
10
10
  };
11
- function o(e, i) {
11
+ function t(e, i) {
12
12
  return i.some((d) => e.includes(d));
13
13
  }
14
- const u = () => (require("dotenv").config({
14
+ const c = () => (require("dotenv").config({
15
15
  // allow overriding .env file path, see startServer.sh script for explenation on why it is needed
16
16
  path: "DOTENV_OVERRIDE" in process.env ? process.env.DOTENV_OVERRIDE : void 0
17
- }), p(s, process.env.DEPLOYMENT_MODE) || "development"), c = () => {
18
- if (!r() && typeof window > "u")
17
+ }), p(s, process.env.DEPLOYMENT_MODE) || "development"), u = () => {
18
+ if (!r && typeof window > "u")
19
19
  return;
20
- if (r())
21
- return u();
20
+ if (r)
21
+ return c();
22
22
  const e = window?.location?.host;
23
- return o(e, n.development) ? "development" : o(e, n.playground) ? "playground" : o(e, n.staging) ? "staging" : "production";
24
- }, y = typeof process < "u" && process.versions != null && process.versions.node != null, f = typeof __webpack_require__ < "u", t = c(), l = t === "staging", g = t === "playground", a = t === "development", R = l || a || g;
23
+ return t(e, o.development) ? "development" : t(e, o.playground) ? "playground" : t(e, o.staging) ? "staging" : "production";
24
+ }, n = u(), l = n === "staging", a = n === "playground", g = n === "development", m = l || g || a, N = m || n === "production" && r;
25
25
  export {
26
26
  s as DEPLOYMENT_MODE,
27
- t as deploymentMode,
28
- a as isDevelopment,
27
+ n as deploymentMode,
28
+ g as isDevelopment,
29
29
  y as isNode,
30
- R as isNotProduction,
31
- g as isPlayground,
30
+ N as isNotClientProduction,
31
+ m as isNotProduction,
32
+ a as isPlayground,
32
33
  l as isStaging,
33
34
  f as isWebpack
34
35
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../../types/hinkal.types.cjs"),h=require("../../types/ethereum-network.types.cjs"),a=require("../../functions/web3/functionCalls/accessTokenCalls.cjs"),A=require("../../functions/web3/events/getShieldedBalance.cjs"),o=require("../crypto-keys/keys.cjs"),y=require("./hinkalActionBeefy.cjs"),C=require("./hinkalActionConvex.cjs"),P=require("./hinkalActionCurve.cjs"),w=require("./hinkalActionPendle.cjs"),d=require("./hinkalDeposit.cjs"),m=require("./hinkalSwap.cjs"),T=require("./hinkalWithdraw.cjs"),S=require("./resetMerkleTrees.cjs"),l=require("../merkle-tree/MerkleTree.cjs"),u=require("../../crypto/poseidon.cjs");require("circomlibjs");const q=require("../../constants/chains.constants.cjs"),g=require("../../error-handling/error-codes.constants.cjs"),f=require("../../API/callMonitor.cjs"),E=require("./hinkalActionLidoEth.cjs");require("../../constants/vite.constants.cjs");require("axios");require("../../constants/coingecko.constants.cjs");const F=require("../../API/getAxelarGasEstimate.cjs"),p=require("../../API/API.cjs");require("ethers");require("../../types/curve.types.cjs");require("../../constants/contracts.constants.cjs");const H=require("../../constants/kyc.constants.cjs");require("../../constants/axelar.constants.cjs");require("../../constants/rewards.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const I=require("../transactions-manager/TransactionsManager.cjs");require("../../functions/utils/external-action.utils.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");const M=require("../../functions/utils/reloadPage.cjs"),R=require("./hinkalActionVolatile.cjs"),k=require("./hinkalActionPendleLP.cjs"),L=require("../../API/getConnextReceiveFee.cjs"),W=require("./hinkalActionStake.cjs"),K=require("../MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs"),N=require("./hinkalPrivateWallet.cjs");class x{providerAdapter;userKeys;signingMessage="Login to Hinkal Protocol";merkleTreeHinkal;merkleTreeAccessToken;nullifiers;encryptedOutputs;commitmentsSnapshotService;nullifierSnapshotService;accessTokenSnapshotService;transactionsManager;utxoUtils=K.multiThreadedUtxoUtils;constructor(){this.userKeys=new o.UserKeys(void 0),this.merkleTreeHinkal=l.MerkleTree.create(u.poseidonFunction,25n,0n),this.merkleTreeAccessToken=l.MerkleTree.create(u.poseidonFunction,25n,0n),this.nullifiers=new Set,this.encryptedOutputs=[],this.transactionsManager=new I.TransactionsManager}async initProviderAdapter(e,t){await this.updateProviderAdapter(t),this.providerAdapter?.initConnector(e);const r=await this.connectAndPatchProvider(e);await t.init(r),await this.setListeners()}async initUserKeys(){this.userKeys=new o.UserKeys(await this.getProviderAdapter().signMessage(this.signingMessage))}async initUserKeysWithPassword(e){this.userKeys=new o.UserKeys(e)}async resetMerkle(){this.isSelectedNetworkSupported()&&await S.resetMerkleTrees(this)}getProviderAdapter(){if(!this.providerAdapter)throw new Error("ProviderAdapter is not initialized");return this.providerAdapter}async waitForTransaction(e,t=1){return!!await this.providerAdapter?.waitForTransaction(e,t)}getContractMetadata(e,t){return this.getProviderAdapter().getContractMetadata(e,t)}getContract(e,t=void 0,r){return this.getProviderAdapter().getContract(e,t,r)}async signMessage(e){return await this.getProviderAdapter().signMessage(e)}async signTypedData(e,t,r){return await this.getProviderAdapter().signTypedData(e,t,r)}getContractWithSigner(e,t=""){return this.getProviderAdapter().getContractWithSigner(e,t)}getContractWithFetcher(e,t=""){return this.getProviderAdapter().getContractWithFetcher(e,t)}getContractWithFetcherForEthereum(e,t){return this.getProviderAdapter().getContractWithFetcherForEthereum(e,t)}isSelectedNetworkSupported(){return!!q.networkRegistry[this.getCurrentChainId()]}async switchNetwork(e){try{await this.getProviderAdapter().switchNetwork(e)}catch{throw new Error(g.transactionErrorCodes.FAILED_TO_SWITCH_NETWORKS)}}getCurrentChainId(){const{chainId:e}=this.getProviderAdapter();if(!e)throw new Error("Illegal State: no chainId");return e}getSelectedNetwork(){return this.providerAdapter?.getSelectedNetwork()}isPermitterAvailable(){return this.getProviderAdapter().isPermitterAvailable()}async connectAndPatchProvider(e){return await this.getProviderAdapter().connectAndPatchProvider(e)}async disconnectFromConnector(){await this.getProviderAdapter().disconnectFromConnector()}async updateProviderAdapter(e){try{this.providerAdapter&&this.providerAdapter.release(),this.providerAdapter=e}catch(t){throw console.error(t),Error("updateProviderAdapter failed, please try again.")}}async setListeners(){this.providerAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}})}async onAccountChanged(){await this.getProviderAdapter().onAccountChanged();const e=c.EventType.AccountChanged;typeof document<"u"?document?.dispatchEvent(new Event(e)):process?.emit("message",e,void 0)}async onChainChanged(e){if(e){await this.getProviderAdapter().onChainChanged(e);const t=c.EventType.NetworkChange;typeof document<"u"?document.dispatchEvent(new Event(t)):process?.emit("message",t,void 0)}else await this.disconnectFromConnector(),M.reloadPage()}async monitorConnectedAddress(){f.monitor(await this.getEthereumAddress(),this.getCurrentChainId())}async getBalances(){return A.getShieldedBalance(this)}getSupportedPassportLinks(){return H.supportedPassportLinks}checkAccessToken(){return a.checkHinkalAccessToken(this)}async getAxelarEstimate(e,t,r,n){return F.getAxelarGasEstimate(e,t,r,n,this.userKeys.getAccessKey())}async getConnextReceiveFee(e,t){return L.getConnextReceiveFee(this.getCurrentChainId(),e,t)}async mintHinkalAccessToken(e){return a.mintAccessToken(this,e)}async mintHinkalAccessTokenCrossChain(e,t){return a.mintTokenCrossChain(this,e,t)}async getHinkalTreeRootHash(){return this.getContractWithFetcher(h.ContractType.HinkalContract).getRootHash()}async getAccessTokenTreeRootHash(){return this.getContractWithFetcher(h.ContractType.CrossChainAccessTokenContract).getRootHash()}async resetMerkleTreesIfNecessary(){if(!this.isSelectedNetworkSupported())throw new Error(g.transactionErrorCodes.UNSUPPORTED_NETWORK);const[e,t]=await Promise.all([this.getHinkalTreeRootHash(),this.getAccessTokenTreeRootHash()]);(e.toBigInt()!==this.merkleTreeHinkal.getRootHash()||t.toBigInt()!==this.merkleTreeAccessToken.getRootHash())&&await this.resetMerkle()}async getEventsFromHinkal(){await Promise.all([this.accessTokenSnapshotService?.retrieveEventsFromLatestBlock(),this.commitmentsSnapshotService?.retrieveEventsFromLatestBlock(),this.nullifierSnapshotService?.retrieveEventsFromLatestBlock()])}getEthereumAddress(){return this.getProviderAdapter().getAddress()}async getRandomRelay(){return(await p.API.getIdleRelay(this.getCurrentChainId())).relay}getGasPrice(){if(!this.providerAdapter?.chainId)throw new Error("Illegal State of providerAdapter in Hinkal: no chainId");return this.providerAdapter.getGasPrice()}getAPI(){return p.API}snapshotsClearInterval(){this.commitmentsSnapshotService?.intervalClear(),this.accessTokenSnapshotService?.intervalClear(),this.nullifierSnapshotService?.intervalClear()}async deposit(e,t){return d.hinkalDeposit(this,e,t)}async depositForOther(e,t,r){return d.hinkalDepositForOther(this,e,t,r)}async withdraw(e,t,r,n,i=!1){return T.hinkalWithdraw(this,e,t,r,n,i)}async swap(e,t,r,n,i=!1,s=!1){return m.hinkalSwap(this,e,t,r,n,i,s)}async actionCurve(e,t,r,n,i,s=!1){return P.hinkalActionCurve(this,e,t,r,n,i,s)}async actionConvex(e,t,r,n,i=!1){return C.hinkalActionConvex(this,e,t,r,n,i)}async actionBeefy(e,t,r,n,i,s,v=!1){return y.hinkalActionBeefy(this,e,t,r,n,i,s,v)}async actionLido(e,t,r,n,i,s=!1){return E.hinkalActionLido(this,e,t,r,n,i,s)}async actionPendle(e,t,r,n,i=!1){return w.hinkalActionPendle(this,e,t,r,n,i)}async actionPendleLP(e,t,r,n,i=!1){return k.hinkalActionPendleLP(this,e,t,r,n,i)}async actionVolatile(e,t,r,n=!1){return R.hinkalActionVolatile(this,e,t,r,n)}async actionStake(e,t,r,n){return W.hinkalActionStake(this,e,t,r,n)}async actionPrivateWallet(e,t,r,n=[],i,s=!1){return N.hinkalPrivateWallet(this,e,t,r,n,i,s)}async getPendleLPClaimableParams(e,t){return k.hinkalGetPendleLPClaimableParams(this,e,t)}}exports.Hinkal=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../../types/hinkal.types.cjs"),h=require("../../types/ethereum-network.types.cjs"),a=require("../../functions/web3/functionCalls/accessTokenCalls.cjs"),A=require("../../functions/web3/events/getShieldedBalance.cjs"),o=require("../crypto-keys/keys.cjs"),y=require("./hinkalActionBeefy.cjs"),C=require("./hinkalActionConvex.cjs"),P=require("./hinkalActionCurve.cjs"),w=require("./hinkalActionPendle.cjs"),d=require("./hinkalDeposit.cjs"),T=require("./hinkalSwap.cjs"),m=require("./hinkalWithdraw.cjs"),S=require("./resetMerkleTrees.cjs"),l=require("../merkle-tree/MerkleTree.cjs"),u=require("../../crypto/poseidon.cjs");require("circomlibjs");const q=require("../../constants/chains.constants.cjs"),g=require("../../error-handling/error-codes.constants.cjs"),f=require("../../API/callMonitor.cjs"),E=require("./hinkalActionLidoEth.cjs");require("../../constants/vite.constants.cjs");require("axios");require("../../constants/coingecko.constants.cjs");const F=require("../../API/getAxelarGasEstimate.cjs"),p=require("../../API/API.cjs");require("ethers");require("../../types/curve.types.cjs");require("../../constants/contracts.constants.cjs");const H=require("../../constants/kyc.constants.cjs");require("../../constants/axelar.constants.cjs");require("../../constants/rewards.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const I=require("../transactions-manager/TransactionsManager.cjs");require("../../functions/utils/external-action.utils.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");const M=require("../../functions/utils/reloadPage.cjs"),R=require("./hinkalActionVolatile.cjs"),k=require("./hinkalActionPendleLP.cjs"),L=require("../../API/getConnextReceiveFee.cjs"),W=require("./hinkalActionStake.cjs"),x=require("../MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs"),K=require("./hinkalPrivateWallet.cjs");class N{providerAdapter;userKeys;signingMessage="Login to Hinkal Protocol";merkleTreeHinkal;merkleTreeAccessToken;nullifiers;encryptedOutputs;commitmentsSnapshotService;nullifierSnapshotService;accessTokenSnapshotService;transactionsManager;utxoUtils;constructor(){this.userKeys=new o.UserKeys(void 0),this.merkleTreeHinkal=l.MerkleTree.create(u.poseidonFunction,25n,0n),this.merkleTreeAccessToken=l.MerkleTree.create(u.poseidonFunction,25n,0n),this.nullifiers=new Set,this.encryptedOutputs=[],this.transactionsManager=new I.TransactionsManager,this.utxoUtils=new x.MultiThreadedUtxoUtils}async initProviderAdapter(e,t){await this.updateProviderAdapter(t),this.providerAdapter?.initConnector(e);const r=await this.connectAndPatchProvider(e);await t.init(r),await this.setListeners()}async initUserKeys(){this.userKeys=new o.UserKeys(await this.getProviderAdapter().signMessage(this.signingMessage))}async initUserKeysWithPassword(e){this.userKeys=new o.UserKeys(e)}async resetMerkle(){this.isSelectedNetworkSupported()&&await S.resetMerkleTrees(this)}getProviderAdapter(){if(!this.providerAdapter)throw new Error("ProviderAdapter is not initialized");return this.providerAdapter}async waitForTransaction(e,t=1){return!!await this.providerAdapter?.waitForTransaction(e,t)}getContractMetadata(e,t){return this.getProviderAdapter().getContractMetadata(e,t)}getContract(e,t=void 0,r){return this.getProviderAdapter().getContract(e,t,r)}async signMessage(e){return await this.getProviderAdapter().signMessage(e)}async signTypedData(e,t,r){return await this.getProviderAdapter().signTypedData(e,t,r)}getContractWithSigner(e,t=""){return this.getProviderAdapter().getContractWithSigner(e,t)}getContractWithFetcher(e,t=""){return this.getProviderAdapter().getContractWithFetcher(e,t)}getContractWithFetcherForEthereum(e,t){return this.getProviderAdapter().getContractWithFetcherForEthereum(e,t)}isSelectedNetworkSupported(){return!!q.networkRegistry[this.getCurrentChainId()]}async switchNetwork(e){try{await this.getProviderAdapter().switchNetwork(e)}catch{throw new Error(g.transactionErrorCodes.FAILED_TO_SWITCH_NETWORKS)}}getCurrentChainId(){const{chainId:e}=this.getProviderAdapter();if(!e)throw new Error("Illegal State: no chainId");return e}getSelectedNetwork(){return this.providerAdapter?.getSelectedNetwork()}isPermitterAvailable(){return this.getProviderAdapter().isPermitterAvailable()}async connectAndPatchProvider(e){return await this.getProviderAdapter().connectAndPatchProvider(e)}async disconnectFromConnector(){await this.getProviderAdapter().disconnectFromConnector()}async updateProviderAdapter(e){try{this.providerAdapter&&this.providerAdapter.release(),this.providerAdapter=e}catch(t){throw console.error(t),Error("updateProviderAdapter failed, please try again.")}}async setListeners(){this.providerAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}})}async onAccountChanged(){await this.getProviderAdapter().onAccountChanged();const e=c.EventType.AccountChanged;typeof document<"u"?document?.dispatchEvent(new Event(e)):process?.emit("message",e,void 0)}async onChainChanged(e){if(e){await this.getProviderAdapter().onChainChanged(e);const t=c.EventType.NetworkChange;typeof document<"u"?document.dispatchEvent(new Event(t)):process?.emit("message",t,void 0)}else await this.disconnectFromConnector(),M.reloadPage()}async monitorConnectedAddress(){f.monitor(await this.getEthereumAddress(),this.getCurrentChainId())}async getBalances(){return A.getShieldedBalance(this)}getSupportedPassportLinks(){return H.supportedPassportLinks}checkAccessToken(){return a.checkHinkalAccessToken(this)}async getAxelarEstimate(e,t,r,n){return F.getAxelarGasEstimate(e,t,r,n,this.userKeys.getAccessKey())}async getConnextReceiveFee(e,t){return L.getConnextReceiveFee(this.getCurrentChainId(),e,t)}async mintHinkalAccessToken(e){return a.mintAccessToken(this,e)}async mintHinkalAccessTokenCrossChain(e,t){return a.mintTokenCrossChain(this,e,t)}async getHinkalTreeRootHash(){return this.getContractWithFetcher(h.ContractType.HinkalContract).getRootHash()}async getAccessTokenTreeRootHash(){return this.getContractWithFetcher(h.ContractType.CrossChainAccessTokenContract).getRootHash()}async resetMerkleTreesIfNecessary(){if(!this.isSelectedNetworkSupported())throw new Error(g.transactionErrorCodes.UNSUPPORTED_NETWORK);const[e,t]=await Promise.all([this.getHinkalTreeRootHash(),this.getAccessTokenTreeRootHash()]);(e.toBigInt()!==this.merkleTreeHinkal.getRootHash()||t.toBigInt()!==this.merkleTreeAccessToken.getRootHash())&&await this.resetMerkle()}async getEventsFromHinkal(){await Promise.all([this.accessTokenSnapshotService?.retrieveEventsFromLatestBlock(),this.commitmentsSnapshotService?.retrieveEventsFromLatestBlock(),this.nullifierSnapshotService?.retrieveEventsFromLatestBlock()])}getEthereumAddress(){return this.getProviderAdapter().getAddress()}async getRandomRelay(){return(await p.API.getIdleRelay(this.getCurrentChainId())).relay}getGasPrice(){if(!this.providerAdapter?.chainId)throw new Error("Illegal State of providerAdapter in Hinkal: no chainId");return this.providerAdapter.getGasPrice()}getAPI(){return p.API}snapshotsClearInterval(){this.commitmentsSnapshotService?.intervalClear(),this.accessTokenSnapshotService?.intervalClear(),this.nullifierSnapshotService?.intervalClear()}async deposit(e,t){return d.hinkalDeposit(this,e,t)}async depositForOther(e,t,r){return d.hinkalDepositForOther(this,e,t,r)}async withdraw(e,t,r,n,i=!1){return m.hinkalWithdraw(this,e,t,r,n,i)}async swap(e,t,r,n,i=!1,s=!1){return T.hinkalSwap(this,e,t,r,n,i,s)}async actionCurve(e,t,r,n,i,s=!1){return P.hinkalActionCurve(this,e,t,r,n,i,s)}async actionConvex(e,t,r,n,i=!1){return C.hinkalActionConvex(this,e,t,r,n,i)}async actionBeefy(e,t,r,n,i,s,v=!1){return y.hinkalActionBeefy(this,e,t,r,n,i,s,v)}async actionLido(e,t,r,n,i,s=!1){return E.hinkalActionLido(this,e,t,r,n,i,s)}async actionPendle(e,t,r,n,i=!1){return w.hinkalActionPendle(this,e,t,r,n,i)}async actionPendleLP(e,t,r,n,i=!1){return k.hinkalActionPendleLP(this,e,t,r,n,i)}async actionVolatile(e,t,r,n=!1){return R.hinkalActionVolatile(this,e,t,r,n)}async actionStake(e,t,r,n){return W.hinkalActionStake(this,e,t,r,n)}async actionPrivateWallet(e,t,r,n=[],i,s=!1){return K.hinkalPrivateWallet(this,e,t,r,n,i,s)}async getPendleLPClaimableParams(e,t){return k.hinkalGetPendleLPClaimableParams(this,e,t)}}exports.Hinkal=N;
@@ -2,7 +2,7 @@ import { EventType as o } from "../../types/hinkal.types.mjs";
2
2
  import { ContractType as c } from "../../types/ethereum-network.types.mjs";
3
3
  import { checkHinkalAccessToken as g, mintAccessToken as u, mintTokenCrossChain as v } from "../../functions/web3/functionCalls/accessTokenCalls.mjs";
4
4
  import { getShieldedBalance as k } from "../../functions/web3/events/getShieldedBalance.mjs";
5
- import { UserKeys as s } from "../crypto-keys/keys.mjs";
5
+ import { UserKeys as a } from "../crypto-keys/keys.mjs";
6
6
  import { hinkalActionBeefy as A } from "./hinkalActionBeefy.mjs";
7
7
  import { hinkalActionConvex as y } from "./hinkalActionConvex.mjs";
8
8
  import { hinkalActionCurve as C } from "./hinkalActionCurve.mjs";
@@ -36,10 +36,10 @@ import "../../types/circom-data.types.mjs";
36
36
  import "../../types/transactions.types.mjs";
37
37
  import { reloadPage as W } from "../../functions/utils/reloadPage.mjs";
38
38
  import { hinkalActionVolatile as N } from "./hinkalActionVolatile.mjs";
39
- import { hinkalActionPendleLP as K, hinkalGetPendleLPClaimableParams as O } from "./hinkalActionPendleLP.mjs";
40
- import { getConnextReceiveFee as x } from "../../API/getConnextReceiveFee.mjs";
39
+ import { hinkalActionPendleLP as K, hinkalGetPendleLPClaimableParams as x } from "./hinkalActionPendleLP.mjs";
40
+ import { getConnextReceiveFee as O } from "../../API/getConnextReceiveFee.mjs";
41
41
  import { hinkalActionStake as B } from "./hinkalActionStake.mjs";
42
- import { multiThreadedUtxoUtils as U } from "../MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs";
42
+ import { MultiThreadedUtxoUtils as U } from "../MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs";
43
43
  import { hinkalPrivateWallet as b } from "./hinkalPrivateWallet.mjs";
44
44
  class Le {
45
45
  providerAdapter;
@@ -53,9 +53,9 @@ class Le {
53
53
  nullifierSnapshotService;
54
54
  accessTokenSnapshotService;
55
55
  transactionsManager;
56
- utxoUtils = U;
56
+ utxoUtils;
57
57
  constructor() {
58
- this.userKeys = new s(void 0), this.merkleTreeHinkal = h.create(d, 25n, 0n), this.merkleTreeAccessToken = h.create(d, 25n, 0n), this.nullifiers = /* @__PURE__ */ new Set(), this.encryptedOutputs = [], this.transactionsManager = new M();
58
+ this.userKeys = new a(void 0), this.merkleTreeHinkal = h.create(d, 25n, 0n), this.merkleTreeAccessToken = h.create(d, 25n, 0n), this.nullifiers = /* @__PURE__ */ new Set(), this.encryptedOutputs = [], this.transactionsManager = new M(), this.utxoUtils = new U();
59
59
  }
60
60
  async initProviderAdapter(e, t) {
61
61
  await this.updateProviderAdapter(t), this.providerAdapter?.initConnector(e);
@@ -63,10 +63,10 @@ class Le {
63
63
  await t.init(r), await this.setListeners();
64
64
  }
65
65
  async initUserKeys() {
66
- this.userKeys = new s(await this.getProviderAdapter().signMessage(this.signingMessage));
66
+ this.userKeys = new a(await this.getProviderAdapter().signMessage(this.signingMessage));
67
67
  }
68
68
  async initUserKeysWithPassword(e) {
69
- this.userKeys = new s(e);
69
+ this.userKeys = new a(e);
70
70
  }
71
71
  async resetMerkle() {
72
72
  this.isSelectedNetworkSupported() && await E(this);
@@ -180,7 +180,7 @@ class Le {
180
180
  );
181
181
  }
182
182
  async getConnextReceiveFee(e, t) {
183
- return x(this.getCurrentChainId(), e, t);
183
+ return O(this.getCurrentChainId(), e, t);
184
184
  }
185
185
  async mintHinkalAccessToken(e) {
186
186
  return u(this, e);
@@ -239,7 +239,7 @@ class Le {
239
239
  async withdraw(e, t, r, i, n = !1) {
240
240
  return S(this, e, t, r, i, n);
241
241
  }
242
- async swap(e, t, r, i, n = !1, a = !1) {
242
+ async swap(e, t, r, i, n = !1, s = !1) {
243
243
  return T(
244
244
  this,
245
245
  e,
@@ -247,16 +247,16 @@ class Le {
247
247
  r,
248
248
  i,
249
249
  n,
250
- a
250
+ s
251
251
  );
252
252
  }
253
- async actionCurve(e, t, r, i, n, a = !1) {
254
- return C(this, e, t, r, i, n, a);
253
+ async actionCurve(e, t, r, i, n, s = !1) {
254
+ return C(this, e, t, r, i, n, s);
255
255
  }
256
256
  async actionConvex(e, t, r, i, n = !1) {
257
257
  return y(this, e, t, r, i, n);
258
258
  }
259
- async actionBeefy(e, t, r, i, n, a, m = !1) {
259
+ async actionBeefy(e, t, r, i, n, s, m = !1) {
260
260
  return A(
261
261
  this,
262
262
  e,
@@ -264,12 +264,12 @@ class Le {
264
264
  r,
265
265
  i,
266
266
  n,
267
- a,
267
+ s,
268
268
  m
269
269
  );
270
270
  }
271
- async actionLido(e, t, r, i, n, a = !1) {
272
- return I(this, e, t, r, i, n, a);
271
+ async actionLido(e, t, r, i, n, s = !1) {
272
+ return I(this, e, t, r, i, n, s);
273
273
  }
274
274
  async actionPendle(e, t, r, i, n = !1) {
275
275
  return f(this, e, t, r, i, n);
@@ -290,11 +290,11 @@ class Le {
290
290
  async actionStake(e, t, r, i) {
291
291
  return B(this, e, t, r, i);
292
292
  }
293
- async actionPrivateWallet(e, t, r, i = [], n, a = !1) {
294
- return b(this, e, t, r, i, n, a);
293
+ async actionPrivateWallet(e, t, r, i = [], n, s = !1) {
294
+ return b(this, e, t, r, i, n, s);
295
295
  }
296
296
  async getPendleLPClaimableParams(e, t) {
297
- return O(this, e, t);
297
+ return x(this, e, t);
298
298
  }
299
299
  }
300
300
  export {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("../utxo/Utxo.cjs"),u=require("../../webworker/utxoWorker/utxoWorker.types.cjs"),R=require("../../webworker/performTaskWithWorker.cjs"),d=require("../../webworker/worker.registry.cjs"),h=require("../../constants/vite.constants.cjs");class U{NUM_WORKERS;NUM_WORKERS_BATCH_PROCESS;constructor(){h.isNode?(this.NUM_WORKERS=1,this.NUM_WORKERS_BATCH_PROCESS=1):(this.NUM_WORKERS=3,this.NUM_WORKERS_BATCH_PROCESS=Math.ceil(navigator.deviceMemory??4))}async createUtxoPromise(t){return await R.performTaskWithWorker({type:d.WorkerVariant.UTXO,payload:t})}async batchFilterUtxosWithNullifier(t,e){const i=this.sliceArrayIntoParts(t,this.NUM_WORKERS).map(s=>this.createUtxoPromise({type:u.UtxoWorkerActionType.BATCH_FILTER_UTXOS_WITH_NULLIFIER,data:{utxos:s.map(r=>r.getConstructableParams()),nullifiers:e}}));return(await Promise.all(i)).flat().map(s=>new p.Utxo(s))}async buildBatchProcess(t,e){const i=this.sliceArrayIntoParts(t,this.NUM_WORKERS).map(r=>this.createUtxoPromise({type:u.UtxoWorkerActionType.BUILD_UTXOS,data:{signature:e.getSignature(),encryptedOutputs:r}}));return(await Promise.all(i)).flat().map(r=>new p.Utxo(r))}sliceArrayIntoParts(t,e){const a=Math.ceil(t.length/e);return Array.from({length:e},(c,s)=>t.slice(a*s,a*(s+1)))}async batchProcess(t,e,a){const c=this.sliceArrayIntoParts(t,this.NUM_WORKERS_BATCH_PROCESS).map(o=>{const n={type:u.UtxoWorkerActionType.DECIPHER_OUTPUTS,data:{encryptedOutputs:o,lastOutput:e,signature:a.getSignature()}};return this.createUtxoPromise(n)}),s=(await Promise.all(c)).map(({additionalEncryptedOutputs:o})=>o).flat(),r=new Set,l=s.reduce((o,n)=>r.has(n.value)?o:(r.add(n.value),[...o,n]),[]);return{additionalEncryptedOutputs:l,lastOutput:l.at(-1)?.value??e}}}const y=new U;exports.MultiThreadedUtxoUtils=U;exports.multiThreadedUtxoUtils=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("../utxo/Utxo.cjs"),u=require("../../webworker/utxoWorker/utxoWorker.types.cjs"),U=require("../../webworker/performTaskWithWorker.cjs"),y=require("../../webworker/worker.registry.cjs"),d=require("../../constants/vite.constants.cjs");class S{NUM_WORKERS;NUM_WORKERS_BATCH_PROCESS;constructor(){d.isNode?(this.NUM_WORKERS=1,this.NUM_WORKERS_BATCH_PROCESS=1):(this.NUM_WORKERS=3,this.NUM_WORKERS_BATCH_PROCESS=Math.ceil(navigator.deviceMemory??4))}async createUtxoPromise(e){return await U.performTaskWithWorker({type:y.WorkerVariant.UTXO,payload:e})}async batchFilterUtxosWithNullifier(e,s){const i=this.sliceArrayIntoParts(e,this.NUM_WORKERS).map(t=>this.createUtxoPromise({type:u.UtxoWorkerActionType.BATCH_FILTER_UTXOS_WITH_NULLIFIER,data:{utxos:t.map(r=>r.getConstructableParams()),nullifiers:s}}));return(await Promise.all(i)).flat().map(t=>new p.Utxo(t))}async buildBatchProcess(e,s){const i=this.sliceArrayIntoParts(e,this.NUM_WORKERS).map(r=>this.createUtxoPromise({type:u.UtxoWorkerActionType.BUILD_UTXOS,data:{signature:s.getSignature(),encryptedOutputs:r}}));return(await Promise.all(i)).flat().map(r=>new p.Utxo(r))}sliceArrayIntoParts(e,s){const o=Math.ceil(e.length/s);return Array.from({length:s},(c,t)=>e.slice(o*t,o*(t+1)))}async batchProcess(e,s,o){const c=this.sliceArrayIntoParts(e,this.NUM_WORKERS_BATCH_PROCESS).map(a=>{const n={type:u.UtxoWorkerActionType.DECIPHER_OUTPUTS,data:{encryptedOutputs:a,lastOutput:s,signature:o.getSignature()}};return this.createUtxoPromise(n)}),t=await Promise.all(c),r=t.map(({additionalEncryptedOutputs:a})=>a).flat(),l=new Set,R=r.reduce((a,n)=>l.has(n.value)?a:(l.add(n.value),[...a,n]),[]),h=t.length?t[t.length-1]?.lastOutput:void 0;return{additionalEncryptedOutputs:R,lastOutput:h??s}}}exports.MultiThreadedUtxoUtils=S;
@@ -17,4 +17,3 @@ export declare class MultiThreadedUtxoUtils implements IMultiThreadedUtxoUtils {
17
17
  sliceArrayIntoParts<T>(arr: T[], numberOfParts: number): T[][];
18
18
  batchProcess(encryptedOutputs: EncryptedOutputWithSign[], lastOutput: string, userKeys: UserKeys): Promise<OutputsWithSignAndLast<boolean>>;
19
19
  }
20
- export declare const multiThreadedUtxoUtils: MultiThreadedUtxoUtils;
@@ -1,70 +1,68 @@
1
1
  import { Utxo as p } from "../utxo/Utxo.mjs";
2
2
  import { UtxoWorkerActionType as u } from "../../webworker/utxoWorker/utxoWorker.types.mjs";
3
- import { performTaskWithWorker as m } from "../../webworker/performTaskWithWorker.mjs";
4
- import { WorkerVariant as R } from "../../webworker/worker.registry.mjs";
5
- import { isNode as h } from "../../constants/vite.constants.mjs";
6
- class U {
3
+ import { performTaskWithWorker as h } from "../../webworker/performTaskWithWorker.mjs";
4
+ import { WorkerVariant as S } from "../../webworker/worker.registry.mjs";
5
+ import { isNode as U } from "../../constants/vite.constants.mjs";
6
+ class W {
7
7
  NUM_WORKERS;
8
8
  NUM_WORKERS_BATCH_PROCESS;
9
9
  constructor() {
10
- h ? (this.NUM_WORKERS = 1, this.NUM_WORKERS_BATCH_PROCESS = 1) : (this.NUM_WORKERS = 3, this.NUM_WORKERS_BATCH_PROCESS = Math.ceil(navigator.deviceMemory ?? 4));
10
+ U ? (this.NUM_WORKERS = 1, this.NUM_WORKERS_BATCH_PROCESS = 1) : (this.NUM_WORKERS = 3, this.NUM_WORKERS_BATCH_PROCESS = Math.ceil(navigator.deviceMemory ?? 4));
11
11
  }
12
- async createUtxoPromise(t) {
13
- return await m({
14
- type: R.UTXO,
15
- payload: t
12
+ async createUtxoPromise(s) {
13
+ return await h({
14
+ type: S.UTXO,
15
+ payload: s
16
16
  });
17
17
  }
18
- async batchFilterUtxosWithNullifier(t, s) {
19
- const i = this.sliceArrayIntoParts(t, this.NUM_WORKERS).map(
20
- (e) => this.createUtxoPromise({
18
+ async batchFilterUtxosWithNullifier(s, e) {
19
+ const i = this.sliceArrayIntoParts(s, this.NUM_WORKERS).map(
20
+ (t) => this.createUtxoPromise({
21
21
  type: u.BATCH_FILTER_UTXOS_WITH_NULLIFIER,
22
22
  data: {
23
- utxos: e.map((r) => r.getConstructableParams()),
24
- nullifiers: s
23
+ utxos: t.map((r) => r.getConstructableParams()),
24
+ nullifiers: e
25
25
  }
26
26
  })
27
27
  );
28
- return (await Promise.all(i)).flat().map((e) => new p(e));
28
+ return (await Promise.all(i)).flat().map((t) => new p(t));
29
29
  }
30
- async buildBatchProcess(t, s) {
31
- const i = this.sliceArrayIntoParts(t, this.NUM_WORKERS).map(
30
+ async buildBatchProcess(s, e) {
31
+ const i = this.sliceArrayIntoParts(s, this.NUM_WORKERS).map(
32
32
  (r) => this.createUtxoPromise({
33
33
  type: u.BUILD_UTXOS,
34
- data: { signature: s.getSignature(), encryptedOutputs: r }
34
+ data: { signature: e.getSignature(), encryptedOutputs: r }
35
35
  })
36
36
  );
37
37
  return (await Promise.all(i)).flat().map((r) => new p(r));
38
38
  }
39
- sliceArrayIntoParts(t, s) {
40
- const a = Math.ceil(t.length / s);
39
+ sliceArrayIntoParts(s, e) {
40
+ const a = Math.ceil(s.length / e);
41
41
  return Array.from(
42
- { length: s },
43
- (c, e) => t.slice(a * e, a * (e + 1))
42
+ { length: e },
43
+ (c, t) => s.slice(a * t, a * (t + 1))
44
44
  );
45
45
  }
46
- async batchProcess(t, s, a) {
47
- const c = this.sliceArrayIntoParts(t, this.NUM_WORKERS_BATCH_PROCESS).map((o) => {
46
+ async batchProcess(s, e, a) {
47
+ const c = this.sliceArrayIntoParts(s, this.NUM_WORKERS_BATCH_PROCESS).map((o) => {
48
48
  const n = {
49
49
  type: u.DECIPHER_OUTPUTS,
50
50
  data: {
51
51
  encryptedOutputs: o,
52
- lastOutput: s,
52
+ lastOutput: e,
53
53
  // doesn't matter what we pass here, it will not be used regardless
54
54
  signature: a.getSignature()
55
55
  }
56
56
  };
57
57
  return this.createUtxoPromise(n);
58
- }), e = (await Promise.all(c)).map(({ additionalEncryptedOutputs: o }) => o).flat(), r = /* @__PURE__ */ new Set(), l = e.reduce((o, n) => r.has(n.value) ? o : (r.add(n.value), [...o, n]), []);
58
+ }), t = await Promise.all(c), r = t.map(({ additionalEncryptedOutputs: o }) => o).flat(), l = /* @__PURE__ */ new Set(), m = r.reduce((o, n) => l.has(n.value) ? o : (l.add(n.value), [...o, n]), []), R = t.length ? t[t.length - 1]?.lastOutput : void 0;
59
59
  return {
60
- additionalEncryptedOutputs: l,
61
- lastOutput: l.at(-1)?.value ?? s
60
+ additionalEncryptedOutputs: m,
61
+ lastOutput: R ?? e
62
62
  // keep the last output the same if no new output is present
63
63
  };
64
64
  }
65
65
  }
66
- const g = new U();
67
66
  export {
68
- U as MultiThreadedUtxoUtils,
69
- g as multiThreadedUtxoUtils
67
+ W as MultiThreadedUtxoUtils
70
68
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("../../constants/reorg-depths.constants.cjs"),o=require("../../functions/utils/resolve-sync.utils.cjs");class u{contract;eventConfig;_latestBlockNumber;maxPageSize;isReady=!1;_onNewEvent;isServer;intervalId;inProgress;constructor(e,s,t,r,n){this.contract=e,this.eventConfig=s,this._latestBlockNumber=t,this.maxPageSize=n,this.isServer=r,this.inProgress=!1}get latestBlockNumber(){return this._latestBlockNumber}set onNewEvent(e){this._onNewEvent=e}intervalClear(){this.isReady=!1,this._onNewEvent=void 0,clearInterval(this.intervalId)}async init(){if(this.isReady)throw new Error("Already initialized");this.isReady=!0,await this.retrieveEvents(this._latestBlockNumber+1),this.intervalId=setInterval(async()=>{await this.retrieveEvents(this.latestBlockNumber)},3500)}requireReady(){if(!this.isReady)throw new Error("Not ready")}emitNewEvent(e){this._onNewEvent?.(e)}getLastBlockNumberForEventRequest=async()=>{const e=await this.contract.provider.getBlockNumber();if(!this.isServer)return e;const{chainId:s}=await this.contract.provider.getNetwork();return Math.max(this.latestBlockNumber,e-v.blockReorgDepth[s]+1)};async retrieveEvents(e,s=!1){try{if(this.requireReady(),this.inProgress&&!s)return!1;this.inProgress=!0;const t=await this.getLastBlockNumberForEventRequest();if(t<e)return this.inProgress=!1,!1;const r=o.getSequence(e,t,this.maxPageSize);return await o.resolveSync(r.map(({from:n,to:i})=>async()=>{const c=await this.contract.queryFilter(this.contract.filters[this.eventConfig.name](),n,i);let a=[];c.length>0&&(a=await this.processEventsPage(c)),this._latestBlockNumber=i,await this.afterEventsAccepted(),a.length>0&&this.emitNewEvent()})),this.inProgress=!1,!0}catch(t){return console.log("retrieveEvents error:",{err:t}),this.inProgress=!1,!1}}async processEventsPage(e){const s=[];return await o.resolveSync(e.map(t=>async()=>{const{args:r,blockNumber:n}=t;if(!r)throw new Error("Wrong event structure");const i=this.mapEvent(r);await this.acceptEvent(i,n)&&s.push(i)})),s}handleEvent=async(...e)=>{const{args:s}=this.eventConfig,{blockNumber:t}=e[e.length-1],r=e.slice(0,s.length),n=s.reduce((a,l,h)=>(a[l]=r[h],a),{});if(!t)throw new Error("Wrong event structure");const i=this.mapEvent(n);if(!await this.acceptEvent(i,t))throw new Error("Failed to retrieve events");this._latestBlockNumber=t,await this.afterEventsAccepted(),this.emitNewEvent(i)}}exports.AbstractEventService=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("../../constants/reorg-depths.constants.cjs"),o=require("../../functions/utils/resolve-sync.utils.cjs");require("ethers");require("axios");require("../../constants/chains.constants.cjs");require("../../constants/vite.constants.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");require("../../types/curve.types.cjs");require("circomlibjs");const u=require("../../error-handling/logError.cjs");class g{contract;eventConfig;_latestBlockNumber;maxPageSize;isReady=!1;_onNewEvent;isServer;intervalId;inProgress;constructor(e,r,t,s,n){this.contract=e,this.eventConfig=r,this._latestBlockNumber=t,this.maxPageSize=n,this.isServer=s,this.inProgress=!1}get latestBlockNumber(){return this._latestBlockNumber}set onNewEvent(e){this._onNewEvent=e}intervalClear(){this.isReady=!1,this._onNewEvent=void 0,clearInterval(this.intervalId)}async init(){if(this.isReady)throw new Error("Already initialized");this.isReady=!0,await this.retrieveEvents(this._latestBlockNumber+1),this.intervalId=setInterval(async()=>{await this.retrieveEvents(this.latestBlockNumber)},3500)}requireReady(){if(!this.isReady)throw new Error("Not ready")}emitNewEvent(e){this._onNewEvent?.(e)}getLastBlockNumberForEventRequest=async()=>{const e=await this.contract.provider.getBlockNumber();if(!this.isServer)return e;const{chainId:r}=await this.contract.provider.getNetwork();return Math.max(this.latestBlockNumber,e-v.blockReorgDepth[r]+1)};async retrieveEvents(e,r=!1){try{if(this.requireReady(),this.inProgress&&!r)return!1;this.inProgress=!0;const t=await this.getLastBlockNumberForEventRequest();if(t<e)return this.inProgress=!1,!1;const s=o.getSequence(e,t,this.maxPageSize);return await o.resolveSync(s.map(({from:n,to:i})=>async()=>{const c=await this.contract.queryFilter(this.contract.filters[this.eventConfig.name](),n,i);let a=[];c.length>0&&(a=await this.processEventsPage(c)),this._latestBlockNumber=i,await this.afterEventsAccepted(),a.length>0&&this.emitNewEvent()})),this.inProgress=!1,!0}catch(t){return u.logError("retrieveEvents error:",{err:t}),this.inProgress=!1,!1}}async processEventsPage(e){const r=[];return await o.resolveSync(e.map(t=>async()=>{const{args:s,blockNumber:n}=t;if(!s)throw new Error("Wrong event structure");const i=this.mapEvent(s);await this.acceptEvent(i,n)&&r.push(i)})),r}handleEvent=async(...e)=>{const{args:r}=this.eventConfig,{blockNumber:t}=e[e.length-1],s=e.slice(0,r.length),n=r.reduce((a,l,h)=>(a[l]=s[h],a),{});if(!t)throw new Error("Wrong event structure");const i=this.mapEvent(n);if(!await this.acceptEvent(i,t))throw new Error("Failed to retrieve events");this._latestBlockNumber=t,await this.afterEventsAccepted(),this.emitNewEvent(i)}}exports.AbstractEventService=g;
@@ -1,6 +1,15 @@
1
1
  import { blockReorgDepth as v } from "../../constants/reorg-depths.constants.mjs";
2
- import { getSequence as u, resolveSync as o } from "../../functions/utils/resolve-sync.utils.mjs";
3
- class w {
2
+ import { getSequence as u, resolveSync as c } from "../../functions/utils/resolve-sync.utils.mjs";
3
+ import "ethers";
4
+ import "axios";
5
+ import "../../constants/chains.constants.mjs";
6
+ import "../../constants/vite.constants.mjs";
7
+ import "../../types/circom-data.types.mjs";
8
+ import "../../types/transactions.types.mjs";
9
+ import "../../types/curve.types.mjs";
10
+ import "circomlibjs";
11
+ import { logError as m } from "../../error-handling/logError.mjs";
12
+ class R {
4
13
  contract;
5
14
  eventConfig;
6
15
  _latestBlockNumber;
@@ -53,24 +62,24 @@ class w {
53
62
  if (t < e)
54
63
  return this.inProgress = !1, !1;
55
64
  const r = u(e, t, this.maxPageSize);
56
- return await o(
65
+ return await c(
57
66
  r.map(({ from: n, to: i }) => async () => {
58
- const c = await this.contract.queryFilter(
67
+ const o = await this.contract.queryFilter(
59
68
  this.contract.filters[this.eventConfig.name](),
60
69
  n,
61
70
  i
62
71
  );
63
72
  let a = [];
64
- c.length > 0 && (a = await this.processEventsPage(c)), this._latestBlockNumber = i, await this.afterEventsAccepted(), a.length > 0 && this.emitNewEvent();
73
+ o.length > 0 && (a = await this.processEventsPage(o)), this._latestBlockNumber = i, await this.afterEventsAccepted(), a.length > 0 && this.emitNewEvent();
65
74
  })
66
75
  ), this.inProgress = !1, !0;
67
76
  } catch (t) {
68
- return console.log("retrieveEvents error:", { err: t }), this.inProgress = !1, !1;
77
+ return m("retrieveEvents error:", { err: t }), this.inProgress = !1, !1;
69
78
  }
70
79
  }
71
80
  async processEventsPage(e) {
72
81
  const s = [];
73
- return await o(
82
+ return await c(
74
83
  e.map((t) => async () => {
75
84
  const { args: r, blockNumber: n } = t;
76
85
  if (!r)
@@ -91,5 +100,5 @@ class w {
91
100
  };
92
101
  }
93
102
  export {
94
- w as AbstractEventService
103
+ R as AbstractEventService
95
104
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../event-service/AbstractAccessTokenSnapshotService.cjs");require("circomlibjs");require("ethers");require("../../constants/vite.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const t=require("../../API/fetchCommitmentsCache.cjs");class c extends r.AbstractAccessTokenSnapshotService{constructor(s,e){super(s,0,!1,e)}async fetchSnapshot(){const{chainId:s}=await this.contract.provider.getNetwork(),e=await t.fetchAccessTokenSnapshot(s);if(e.accessTokenContractAddress!==this.contract.address||e.chainId!==s)throw Error("Commitment Snapshot: incorrect contract or chain id");return{latestBlockNumber:e.latestBlockNumber,merkleTree:e.merkleTree,senderAddresses:e.senderAddresses,senderAddressIndexMap:e.senderAddressIndexMap}}persistSnapshot(s){return Promise.resolve()}}exports.ClientAccessTokenSnapshotService=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../event-service/AbstractAccessTokenSnapshotService.cjs");require("circomlibjs");require("ethers");require("../../constants/vite.constants.cjs");require("../../constants/reorg-depths.constants.cjs");require("axios");require("../../constants/chains.constants.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");require("../../types/curve.types.cjs");const t=require("../../API/fetchCommitmentsCache.cjs");class c extends s.AbstractAccessTokenSnapshotService{constructor(r,e){super(r,0,!1,e)}async fetchSnapshot(){const{chainId:r}=await this.contract.provider.getNetwork(),e=await t.fetchAccessTokenSnapshot(r);if(e.accessTokenContractAddress!==this.contract.address||e.chainId!==r)throw Error("Commitment Snapshot: incorrect contract or chain id");return{latestBlockNumber:e.latestBlockNumber,merkleTree:e.merkleTree,senderAddresses:e.senderAddresses,senderAddressIndexMap:e.senderAddressIndexMap}}persistSnapshot(r){return Promise.resolve()}}exports.ClientAccessTokenSnapshotService=c;
@@ -1,16 +1,21 @@
1
- import { AbstractAccessTokenSnapshotService as r } from "../event-service/AbstractAccessTokenSnapshotService.mjs";
1
+ import { AbstractAccessTokenSnapshotService as t } from "../event-service/AbstractAccessTokenSnapshotService.mjs";
2
2
  import "circomlibjs";
3
3
  import "ethers";
4
4
  import "../../constants/vite.constants.mjs";
5
5
  import "../../constants/reorg-depths.constants.mjs";
6
- import { fetchAccessTokenSnapshot as t } from "../../API/fetchCommitmentsCache.mjs";
7
- class h extends r {
8
- constructor(s, e) {
9
- super(s, 0, !1, e);
6
+ import "axios";
7
+ import "../../constants/chains.constants.mjs";
8
+ import "../../types/circom-data.types.mjs";
9
+ import "../../types/transactions.types.mjs";
10
+ import "../../types/curve.types.mjs";
11
+ import { fetchAccessTokenSnapshot as s } from "../../API/fetchCommitmentsCache.mjs";
12
+ class A extends t {
13
+ constructor(r, e) {
14
+ super(r, 0, !1, e);
10
15
  }
11
16
  async fetchSnapshot() {
12
- const { chainId: s } = await this.contract.provider.getNetwork(), e = await t(s);
13
- if (e.accessTokenContractAddress !== this.contract.address || e.chainId !== s)
17
+ const { chainId: r } = await this.contract.provider.getNetwork(), e = await s(r);
18
+ if (e.accessTokenContractAddress !== this.contract.address || e.chainId !== r)
14
19
  throw Error("Commitment Snapshot: incorrect contract or chain id");
15
20
  return {
16
21
  latestBlockNumber: e.latestBlockNumber,
@@ -19,10 +24,10 @@ class h extends r {
19
24
  senderAddressIndexMap: e.senderAddressIndexMap
20
25
  };
21
26
  }
22
- persistSnapshot(s) {
27
+ persistSnapshot(r) {
23
28
  return Promise.resolve();
24
29
  }
25
30
  }
26
31
  export {
27
- h as ClientAccessTokenSnapshotService
32
+ A as ClientAccessTokenSnapshotService
28
33
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("circomlibjs");require("ethers");require("../../constants/vite.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const r=require("../event-service/AbstractCommitmentsSnapshotService.cjs"),s=require("../../API/fetchCommitmentsCache.cjs");class n extends r.AbstractCommitmentsSnapshotService{constructor(e,t){super(e,0,!1,t)}async fetchSnapshot(){const{chainId:e}=await this.contract.provider.getNetwork(),t=await s.fetchCommitmentsSnapshot(e);if(t.hinkalAddress!==this.contract.address||t.chainId!==e)throw Error("Commitment Snapshot: incorrect contract or chain id");return{latestBlockNumber:t.latestBlockNumber,merkleTree:t.merkleTree,encryptedOutputs:t.encryptedOutputs}}persistSnapshot(e){return Promise.resolve()}}exports.ClientCommitmentsSnapshotService=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("circomlibjs");require("ethers");require("../../constants/vite.constants.cjs");require("../../constants/reorg-depths.constants.cjs");require("axios");require("../../constants/chains.constants.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");require("../../types/curve.types.cjs");const r=require("../../API/fetchCommitmentsCache.cjs"),s=require("../event-service/AbstractCommitmentsSnapshotService.cjs");class i extends s.AbstractCommitmentsSnapshotService{constructor(t,e){super(t,0,!1,e)}async fetchSnapshot(){const{chainId:t}=await this.contract.provider.getNetwork(),e=await r.fetchCommitmentsSnapshot(t);if(e.hinkalAddress!==this.contract.address||e.chainId!==t)throw Error("Commitment Snapshot: incorrect contract or chain id");return{latestBlockNumber:e.latestBlockNumber,merkleTree:e.merkleTree,encryptedOutputs:e.encryptedOutputs}}persistSnapshot(t){return Promise.resolve()}}exports.ClientCommitmentsSnapshotService=i;
@@ -2,15 +2,20 @@ import "circomlibjs";
2
2
  import "ethers";
3
3
  import "../../constants/vite.constants.mjs";
4
4
  import "../../constants/reorg-depths.constants.mjs";
5
- import { AbstractCommitmentsSnapshotService as r } from "../event-service/AbstractCommitmentsSnapshotService.mjs";
6
- import { fetchCommitmentsSnapshot as o } from "../../API/fetchCommitmentsCache.mjs";
7
- class h extends r {
8
- constructor(e, t) {
9
- super(e, 0, !1, t);
5
+ import "axios";
6
+ import "../../constants/chains.constants.mjs";
7
+ import "../../types/circom-data.types.mjs";
8
+ import "../../types/transactions.types.mjs";
9
+ import "../../types/curve.types.mjs";
10
+ import { fetchCommitmentsSnapshot as e } from "../../API/fetchCommitmentsCache.mjs";
11
+ import { AbstractCommitmentsSnapshotService as o } from "../event-service/AbstractCommitmentsSnapshotService.mjs";
12
+ class f extends o {
13
+ constructor(r, t) {
14
+ super(r, 0, !1, t);
10
15
  }
11
16
  async fetchSnapshot() {
12
- const { chainId: e } = await this.contract.provider.getNetwork(), t = await o(e);
13
- if (t.hinkalAddress !== this.contract.address || t.chainId !== e)
17
+ const { chainId: r } = await this.contract.provider.getNetwork(), t = await e(r);
18
+ if (t.hinkalAddress !== this.contract.address || t.chainId !== r)
14
19
  throw Error("Commitment Snapshot: incorrect contract or chain id");
15
20
  return {
16
21
  latestBlockNumber: t.latestBlockNumber,
@@ -18,10 +23,10 @@ class h extends r {
18
23
  encryptedOutputs: t.encryptedOutputs
19
24
  };
20
25
  }
21
- persistSnapshot(e) {
26
+ persistSnapshot(r) {
22
27
  return Promise.resolve();
23
28
  }
24
29
  }
25
30
  export {
26
- h as ClientCommitmentsSnapshotService
31
+ f as ClientCommitmentsSnapshotService
27
32
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("circomlibjs");require("ethers");require("../../constants/vite.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const t=require("../event-service/AbstractNullifierSnapshotService.cjs"),i=require("../../API/fetchNullifiers.cjs");class s extends t.AbstractNullifierSnapshotService{constructor(e,r){super(e,0,!1,r)}async fetchSnapshot(){const{chainId:e}=await this.contract.provider.getNetwork(),r=await i.fetchNullifiers(e);return{latestBlockNumber:r.latestBlockNumber,nullifiers:r.nullifiers}}persistSnapshot(e){return Promise.resolve()}}exports.ClientNullifierSnapshotService=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("circomlibjs");require("ethers");require("../../constants/vite.constants.cjs");require("../../constants/reorg-depths.constants.cjs");require("axios");require("../../constants/chains.constants.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");require("../../types/curve.types.cjs");const i=require("../../API/fetchNullifiers.cjs"),t=require("../event-service/AbstractNullifierSnapshotService.cjs");class s extends t.AbstractNullifierSnapshotService{constructor(e,r){super(e,0,!1,r)}async fetchSnapshot(){const{chainId:e}=await this.contract.provider.getNetwork(),r=await i.fetchNullifiers(e);return{latestBlockNumber:r.latestBlockNumber,nullifiers:r.nullifiers}}persistSnapshot(e){return Promise.resolve()}}exports.ClientNullifierSnapshotService=s;
@@ -2,9 +2,14 @@ import "circomlibjs";
2
2
  import "ethers";
3
3
  import "../../constants/vite.constants.mjs";
4
4
  import "../../constants/reorg-depths.constants.mjs";
5
- import { AbstractNullifierSnapshotService as e } from "../event-service/AbstractNullifierSnapshotService.mjs";
5
+ import "axios";
6
+ import "../../constants/chains.constants.mjs";
7
+ import "../../types/circom-data.types.mjs";
8
+ import "../../types/transactions.types.mjs";
9
+ import "../../types/curve.types.mjs";
6
10
  import { fetchNullifiers as i } from "../../API/fetchNullifiers.mjs";
7
- class u extends e {
11
+ import { AbstractNullifierSnapshotService as e } from "../event-service/AbstractNullifierSnapshotService.mjs";
12
+ class N extends e {
8
13
  constructor(t, r) {
9
14
  super(t, 0, !1, r);
10
15
  }
@@ -20,5 +25,5 @@ class u extends e {
20
25
  }
21
26
  }
22
27
  export {
23
- u as ClientNullifierSnapshotService
28
+ N as ClientNullifierSnapshotService
24
29
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../constants/vite.constants.cjs"),r=(...o)=>{e.isDevelopment&&console.log(...o)};exports.logError=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../constants/vite.constants.cjs"),r=(...o)=>{t.isNotClientProduction&&console.log(...o)};exports.logError=r;
@@ -1,7 +1,7 @@
1
- import { isDevelopment as r } from "../constants/vite.constants.mjs";
2
- const l = (...o) => {
1
+ import { isNotClientProduction as r } from "../constants/vite.constants.mjs";
2
+ const i = (...o) => {
3
3
  r && console.log(...o);
4
4
  };
5
5
  export {
6
- l as logError
6
+ i as logError
7
7
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=()=>typeof process<"u"&&process?.release?.name==="node",u=()=>typeof window<"u",s=e=>new Promise(t=>{setTimeout(t,e)});function c(e,t){let n;return function(...o){const i=()=>{clearTimeout(n),e(...o)};clearTimeout(n),n=setTimeout(i,t)}}exports.debounce=c;exports.isOnClient=u;exports.isOnServer=r;exports.wait=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=e=>new Promise(t=>{setTimeout(t,e)});function c(e,t){let o;return function(...u){const i=()=>{clearTimeout(o),e(...u)};clearTimeout(o),o=setTimeout(i,t)}}exports.debounce=c;exports.wait=n;
@@ -1,5 +1,3 @@
1
- export declare const isOnServer: () => boolean;
2
- export declare const isOnClient: () => boolean;
3
1
  /** pause execution for a number of miliseconds */
4
2
  export declare const wait: (miliseconds: number) => Promise<unknown>;
5
3
  /** only call function once with a given number of milliseconds