@hinkal/common 0.1.33 → 0.1.34

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 (53) hide show
  1. package/constants/fees.constants.cjs +1 -1
  2. package/constants/fees.constants.mjs +22 -22
  3. package/data-structures/Hinkal/Hinkal.cjs +1 -1
  4. package/data-structures/Hinkal/Hinkal.d.ts +1 -0
  5. package/data-structures/Hinkal/Hinkal.mjs +13 -10
  6. package/data-structures/Hinkal/IHinkal.d.ts +2 -1
  7. package/data-structures/Hinkal/hinkalActionBeefy.cjs +1 -1
  8. package/data-structures/Hinkal/hinkalActionBeefy.mjs +18 -20
  9. package/data-structures/Hinkal/hinkalActionConvex.cjs +1 -1
  10. package/data-structures/Hinkal/hinkalActionConvex.mjs +18 -21
  11. package/data-structures/Hinkal/hinkalActionLidoEth.cjs +1 -1
  12. package/data-structures/Hinkal/hinkalActionLidoEth.mjs +31 -31
  13. package/data-structures/Hinkal/hinkalActionPendle.cjs +1 -1
  14. package/data-structures/Hinkal/hinkalActionPendle.mjs +77 -80
  15. package/data-structures/Hinkal/hinkalActionPendleLP.cjs +1 -1
  16. package/data-structures/Hinkal/hinkalActionPendleLP.mjs +34 -34
  17. package/data-structures/Hinkal/hinkalActionStake.cjs +1 -1
  18. package/data-structures/Hinkal/hinkalActionStake.mjs +48 -52
  19. package/data-structures/Hinkal/hinkalActionVolatile.cjs +1 -1
  20. package/data-structures/Hinkal/hinkalActionVolatile.mjs +38 -44
  21. package/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
  22. package/data-structures/Hinkal/hinkalDeposit.mjs +27 -28
  23. package/data-structures/event-service/AbstractCommitmentsSnapshotService.cjs +1 -4
  24. package/data-structures/event-service/AbstractCommitmentsSnapshotService.mjs +11 -16
  25. package/data-structures/transactions-manager/TransactionsManager.cjs +1 -1
  26. package/data-structures/transactions-manager/TransactionsManager.mjs +66 -74
  27. package/data-structures/transactions-manager/history/getVolatileData.cjs +1 -1
  28. package/data-structures/transactions-manager/history/getVolatileData.mjs +13 -13
  29. package/data-structures/volatile-helper/VolatileHelper.cjs +1 -1
  30. package/data-structures/volatile-helper/VolatileHelper.mjs +60 -60
  31. package/functions/pre-transaction/getFlatFees.cjs +1 -1
  32. package/functions/pre-transaction/getFlatFees.mjs +42 -42
  33. package/functions/pre-transaction/process-gas-estimates.cjs +1 -1
  34. package/functions/pre-transaction/process-gas-estimates.mjs +17 -26
  35. package/functions/protocols/pendle.helpers.cjs +1 -1
  36. package/functions/protocols/pendle.helpers.mjs +27 -27
  37. package/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
  38. package/functions/snarkjs/constructGeneralZkProof.mjs +35 -37
  39. package/functions/utils/cacheFunctions.cjs +1 -1
  40. package/functions/utils/cacheFunctions.mjs +27 -30
  41. package/functions/web3/events/getShieldedBalance.cjs +2 -2
  42. package/functions/web3/events/getShieldedBalance.mjs +25 -25
  43. package/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
  44. package/functions/web3/functionCalls/transactCallDirect.mjs +15 -15
  45. package/functions/web3/runContractFunction.cjs +1 -1
  46. package/functions/web3/runContractFunction.mjs +37 -37
  47. package/functions/web3/uniswapAPI.cjs +1 -1
  48. package/functions/web3/uniswapAPI.mjs +28 -28
  49. package/package.json +1 -1
  50. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.cjs +1 -1
  51. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.mjs +1 -1
  52. package/webworker/snarkjsWorker/snarkjsWorkerLogic.cjs +1 -1
  53. package/webworker/snarkjsWorker/snarkjsWorkerLogic.mjs +16 -17
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../functions/utils/amounts.utils.cjs"),I=require("../types/slippage.types.cjs"),u=require("./vite.constants.cjs"),i=(u.isDevelopment,8n),r=(u.isDevelopment,3n),A=e=>e?i:r,g=(e,n=!1)=>{const t=a.absBigInt(e);return A(n)*t/10000n},p=(e,n)=>{const t=a.absBigInt(e),s=I.slippageLevels[n];return BigInt(Math.round(s*100))*t/10000n},c=(e,n=!1)=>{const t=a.absBigInt(e),s=g(t,n);return t-s},b=(e,n=!1)=>a.absBigInt(e)*10000n/(10000n-A(n)),F=(e,n,t=!1)=>{const s=a.absBigInt(e),o=a.absBigInt(n),l=c(s,t)-o;return console.log("flatFee",{flatFeesAbs:o,afterFlatFee:l,totalFee:n+g(s,t)}),l},m=(e,n)=>{const t=a.absBigInt(e),s=p(t,n);return t-s},R=(e,n,t,s=!1)=>{const o=a.absBigInt(e),l=a.absBigInt(n),f=m(o,t);return F(f,l,s)};exports.HINKAL_EXTERNAL_ACTION_FEE=r;exports.HINKAL_UNIVERSAL_FEE=i;exports.getAmountAfterRelayAndFlatFees=F;exports.getAmountAfterRelayAndFlatFeesAndSlippage=R;exports.getAmountAfterRelayFee=c;exports.getAmountAfterSlippage=m;exports.getAmountWithoutFee=b;exports.getHinkalFeeRateInBeeps=A;exports.getRelayFee=g;exports.getSlippageFee=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../functions/utils/amounts.utils.cjs"),I=require("../types/slippage.types.cjs"),g=require("./vite.constants.cjs"),i=(g.isDevelopment,8n),r=(g.isDevelopment,3n),l=e=>e?i:r,u=(e,n=!1)=>{const t=a.absBigInt(e);return l(n)*t/10000n},p=(e,n)=>{const t=a.absBigInt(e),s=I.slippageLevels[n];return BigInt(Math.round(s*100))*t/10000n},c=(e,n=!1)=>{const t=a.absBigInt(e),s=u(t,n);return t-s},b=(e,n=!1)=>a.absBigInt(e)*10000n/(10000n-l(n)),F=(e,n,t=!1)=>{const s=a.absBigInt(e),o=a.absBigInt(n);return c(s,t)-o},m=(e,n)=>{const t=a.absBigInt(e),s=p(t,n);return t-s},R=(e,n,t,s=!1)=>{const o=a.absBigInt(e),A=a.absBigInt(n),f=m(o,t);return F(f,A,s)};exports.HINKAL_EXTERNAL_ACTION_FEE=r;exports.HINKAL_UNIVERSAL_FEE=i;exports.getAmountAfterRelayAndFlatFees=F;exports.getAmountAfterRelayAndFlatFeesAndSlippage=R;exports.getAmountAfterRelayFee=c;exports.getAmountAfterSlippage=m;exports.getAmountWithoutFee=b;exports.getHinkalFeeRateInBeeps=l;exports.getRelayFee=u;exports.getSlippageFee=p;
@@ -1,34 +1,34 @@
1
- import { absBigInt as s } from "../functions/utils/amounts.utils.mjs";
2
- import { slippageLevels as u } from "../types/slippage.types.mjs";
3
- import { isDevelopment as r } from "./vite.constants.mjs";
4
- const m = 8n, g = 3n, p = (e) => e ? m : g, A = (e, n = !1) => {
5
- const t = s(e);
1
+ import { absBigInt as o } from "../functions/utils/amounts.utils.mjs";
2
+ import { slippageLevels as c } from "../types/slippage.types.mjs";
3
+ import { isDevelopment as l } from "./vite.constants.mjs";
4
+ const u = 8n, m = 3n, p = (e) => e ? u : m, f = (e, n = !1) => {
5
+ const t = o(e);
6
6
  return p(n) * t / 10000n;
7
- }, f = (e, n) => {
8
- const t = s(e), o = u[n];
9
- return BigInt(Math.round(o * 100)) * t / 10000n;
7
+ }, g = (e, n) => {
8
+ const t = o(e), s = c[n];
9
+ return BigInt(Math.round(s * 100)) * t / 10000n;
10
10
  }, i = (e, n = !1) => {
11
- const t = s(e), o = A(t, n);
12
- return t - o;
13
- }, E = (e, n = !1) => s(e) * 10000n / (10000n - p(n)), F = (e, n, t = !1) => {
14
- const o = s(e), a = s(n), l = i(o, t) - a;
15
- return console.log("flatFee", { flatFeesAbs: a, afterFlatFee: l, totalFee: n + A(o, t) }), l;
11
+ const t = o(e), s = f(t, n);
12
+ return t - s;
13
+ }, E = (e, n = !1) => o(e) * 10000n / (10000n - p(n)), F = (e, n, t = !1) => {
14
+ const s = o(e), a = o(n);
15
+ return i(s, t) - a;
16
16
  }, b = (e, n) => {
17
- const t = s(e), o = f(t, n);
18
- return t - o;
19
- }, y = (e, n, t, o = !1) => {
20
- const a = s(e), l = s(n), c = b(a, t);
21
- return F(c, l, o);
17
+ const t = o(e), s = g(t, n);
18
+ return t - s;
19
+ }, y = (e, n, t, s = !1) => {
20
+ const a = o(e), r = o(n), A = b(a, t);
21
+ return F(A, r, s);
22
22
  };
23
23
  export {
24
- g as HINKAL_EXTERNAL_ACTION_FEE,
25
- m as HINKAL_UNIVERSAL_FEE,
24
+ m as HINKAL_EXTERNAL_ACTION_FEE,
25
+ u as HINKAL_UNIVERSAL_FEE,
26
26
  F as getAmountAfterRelayAndFlatFees,
27
27
  y as getAmountAfterRelayAndFlatFeesAndSlippage,
28
28
  i as getAmountAfterRelayFee,
29
29
  b as getAmountAfterSlippage,
30
30
  E as getAmountWithoutFee,
31
31
  p as getHinkalFeeRateInBeeps,
32
- A as getRelayFee,
33
- f as getSlippageFee
32
+ f as getRelayFee,
33
+ g as getSlippageFee
34
34
  };
@@ -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"),y=require("../../functions/web3/events/getShieldedBalance.cjs"),o=require("../crypto-keys/keys.cjs"),v=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"),q=require("./resetMerkleTrees.cjs"),l=require("../merkle-tree/MerkleTree.cjs"),u=require("../../crypto/poseidon.cjs");require("circomlibjs");const S=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 q.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!!S.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 y.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}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,A=!1){return v.hinkalActionBeefy(this,e,t,r,n,i,s,A)}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"),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;
@@ -73,6 +73,7 @@ export declare class Hinkal<ConnectorType> implements IHinkal {
73
73
  getRandomRelay(): Promise<string | undefined>;
74
74
  getGasPrice(): Promise<bigint>;
75
75
  getAPI(): IAPI;
76
+ snapshotsClearInterval(): void;
76
77
  deposit(erc20Addresses: string[], amountChanges: bigint[]): Promise<ethers.ContractTransaction>;
77
78
  depositForOther(erc20Addresses: string[], amountChanges: bigint[], recipientInfo: string): Promise<ethers.ContractTransaction>;
78
79
  withdraw(erc20Addresses: string[], amountChanges: bigint[], recipientAddress: string, isRelayerOff: boolean, onlyGasEstimate?: boolean): Promise<ethers.ContractTransaction | RelayerTransaction | bigint>;
@@ -1,12 +1,12 @@
1
1
  import { EventType as o } from "../../types/hinkal.types.mjs";
2
2
  import { ContractType as c } from "../../types/ethereum-network.types.mjs";
3
- import { checkHinkalAccessToken as g, mintAccessToken as u, mintTokenCrossChain as k } from "../../functions/web3/functionCalls/accessTokenCalls.mjs";
4
- import { getShieldedBalance as A } from "../../functions/web3/events/getShieldedBalance.mjs";
3
+ import { checkHinkalAccessToken as g, mintAccessToken as u, mintTokenCrossChain as v } from "../../functions/web3/functionCalls/accessTokenCalls.mjs";
4
+ import { getShieldedBalance as k } from "../../functions/web3/events/getShieldedBalance.mjs";
5
5
  import { UserKeys as s } from "../crypto-keys/keys.mjs";
6
- import { hinkalActionBeefy as v } from "./hinkalActionBeefy.mjs";
6
+ import { hinkalActionBeefy as A } from "./hinkalActionBeefy.mjs";
7
7
  import { hinkalActionConvex as y } from "./hinkalActionConvex.mjs";
8
- import { hinkalActionCurve as f } from "./hinkalActionCurve.mjs";
9
- import { hinkalActionPendle as C } from "./hinkalActionPendle.mjs";
8
+ import { hinkalActionCurve as C } from "./hinkalActionCurve.mjs";
9
+ import { hinkalActionPendle as f } from "./hinkalActionPendle.mjs";
10
10
  import { hinkalDeposit as w, hinkalDepositForOther as P } from "./hinkalDeposit.mjs";
11
11
  import { hinkalSwap as T } from "./hinkalSwap.mjs";
12
12
  import { hinkalWithdraw as S } from "./hinkalWithdraw.mjs";
@@ -162,7 +162,7 @@ class Le {
162
162
  F(await this.getEthereumAddress(), this.getCurrentChainId());
163
163
  }
164
164
  async getBalances() {
165
- return A(this);
165
+ return k(this);
166
166
  }
167
167
  getSupportedPassportLinks() {
168
168
  return L;
@@ -186,7 +186,7 @@ class Le {
186
186
  return u(this, e);
187
187
  }
188
188
  async mintHinkalAccessTokenCrossChain(e, t) {
189
- return k(this, e, t);
189
+ return v(this, e, t);
190
190
  }
191
191
  async getHinkalTreeRootHash() {
192
192
  return this.getContractWithFetcher(c.HinkalContract).getRootHash();
@@ -224,6 +224,9 @@ class Le {
224
224
  getAPI() {
225
225
  return l;
226
226
  }
227
+ snapshotsClearInterval() {
228
+ this.commitmentsSnapshotService?.intervalClear(), this.accessTokenSnapshotService?.intervalClear(), this.nullifierSnapshotService?.intervalClear();
229
+ }
227
230
  async deposit(e, t) {
228
231
  return w(this, e, t);
229
232
  }
@@ -248,13 +251,13 @@ class Le {
248
251
  );
249
252
  }
250
253
  async actionCurve(e, t, r, i, n, a = !1) {
251
- return f(this, e, t, r, i, n, a);
254
+ return C(this, e, t, r, i, n, a);
252
255
  }
253
256
  async actionConvex(e, t, r, i, n = !1) {
254
257
  return y(this, e, t, r, i, n);
255
258
  }
256
259
  async actionBeefy(e, t, r, i, n, a, m = !1) {
257
- return v(
260
+ return A(
258
261
  this,
259
262
  e,
260
263
  t,
@@ -269,7 +272,7 @@ class Le {
269
272
  return I(this, e, t, r, i, n, a);
270
273
  }
271
274
  async actionPendle(e, t, r, i, n = !1) {
272
- return C(this, e, t, r, i, n);
275
+ return f(this, e, t, r, i, n);
273
276
  }
274
277
  async actionPendleLP(e, t, r, i, n = !1) {
275
278
  return K(
@@ -44,6 +44,7 @@ export interface IHinkal<ConnectorType = unknown> {
44
44
  getRandomRelay(): Promise<string | undefined>;
45
45
  getGasPrice(): Promise<bigint>;
46
46
  getAPI(): IAPI;
47
+ snapshotsClearInterval(): void;
47
48
  deposit(erc20Addresses: string[], amountChanges: bigint[]): Promise<ethers.ContractTransaction>;
48
49
  depositForOther(erc20Addresses: string[], amountChanges: bigint[], recepinetInfo: string): Promise<ethers.ContractTransaction>;
49
50
  withdraw(erc20Addresses: string[], amountChanges: bigint[], recipientAddress: string, isRelayerOff: boolean, onlyGasEstimate?: boolean): Promise<ethers.ContractTransaction | RelayerTransaction | bigint>;
@@ -78,7 +79,7 @@ export interface IHinkal<ConnectorType = unknown> {
78
79
  actionPendle(erc20Addresses: string[], amountChanges: bigint[], pendleMetadata: PendleMetadata, gasTokenAddress?: string, onlyGasEstimate?: boolean): Promise<RelayerTransaction | ContractTransaction | bigint>;
79
80
  actionPendleLP(erc20Addresses: string[], amountChanges: bigint[], pendleLPMetadata: PendleLPMetadata, gasTokenAddress?: string, onlyGasEstimate?: boolean): Promise<RelayerTransaction | bigint>;
80
81
  actionVolatile(erc20Addresses: string[], amountChanges: bigint[], volatileHelperData: VolatileHelperData, onlyGasEstimate?: boolean): Promise<RelayerTransaction | ContractTransaction | bigint>;
81
- actionPrivateWallet(erc20Addresses: string[], amountChanges: bigint[], onChainCreation: boolean[], ops: string[], walletNonce: bigint | undefined, onlyGasEstimate: boolean): Promise<RelayerTransaction | bigint>;
82
+ actionPrivateWallet(erc20Addresses: string[], amountChanges: bigint[], onChainCreation: boolean[], ops: string[], walletNonce?: bigint, onlyGasEstimate?: boolean): Promise<RelayerTransaction | bigint>;
82
83
  getPendleLPClaimableParams(wlpTokenAddress: string, wlpTokenBalance: bigint): Promise<{
83
84
  amount: bigint;
84
85
  timestamp: string;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("ethers"),S=require("../../constants/chains.constants.cjs"),I=require("../../error-handling/error-codes.constants.cjs"),k=require("../../functions/pre-transaction/getFlatFees.cjs"),M=require("../../functions/pre-transaction/processAmountChanges.cjs"),N=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),P=require("../../functions/snarkjs/constructGeneralZkProof.cjs"),T=require("../../functions/web3/events/getShieldedBalance.cjs"),U=require("../../functions/web3/functionCalls/estimateGasRelayer.cjs"),_=require("../../functions/web3/functionCalls/transactCallRelayer.cjs"),F=require("../../types/hinkal.types.cjs"),i=require("../../types/external-action.types.cjs"),G=(e,r,t,n,l,d)=>{let a;return l===i.ExternalActionId.BeefyStake?(a=u.utils.defaultAbiCoder.encode(["uint8","address","uint256","uint256"],[Number(n),d,e[0][0].amount,e[0][0].timeStamp]),a):(r.length===1?a=u.utils.defaultAbiCoder.encode(["uint8","bytes","bytes","address"],[Number(n),r[0],"0x00",t]):r.length===2?a=u.utils.defaultAbiCoder.encode(["uint8","bytes","bytes","address"],[Number(n),r[0],r[1],t]):a=u.utils.defaultAbiCoder.encode(["uint8","bytes","bytes","address"],[Number(n),"0x00","0x00",t]),a)},O=(e,r,t)=>r===i.ExternalActionId.BeefyStake?t===F.BeefyAction.GetRewards?[!1,!0]:[!1,!1,!0]:e.map(n=>n>0n),L=async(e,r,t,n,l,d,a,p=!1)=>{const c=[...await T.addPaddingToUtxos(e,r,t)],q=`swapper${a?"MO":"M"}${t.length.toString()}x${c[0].length}x1`,s=a?i.ExternalActionId.BeefyStake:i.ExternalActionId.Beefy,{flatFees:f,feeUnit:b}=await k.getFlatFees(e.getCurrentChainId(),r,s,t,n);t=M.processAmountChanges({erc20Addresses:r,amountChanges:t,flatFees:f,feeUnit:b,externalActionId:s,action:n});const x=O(t,s,n);console.log({amountChanges:t,onChainCreation:x});const y=[];for(let o=0;o<r.length;o+=1){const{outputUtxos:R}=N.outputUtxoProcessing(e.userKeys,c[o],t[o]);y.push(R)}const{contractData:g}=S.networkRegistry[e.getCurrentChainId()],w=s===i.ExternalActionId.BeefyStake?g.beefyStakeExternalActionInstanceAddress:g.beefyExternalActionInstanceAddress,B=G(c,l,d,n,s,a),A=await e.getRandomRelay();if(!A)throw Error(I.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const{zkCallData:C,circomData:E,dimData:m}=await P.constructZkProof(e.merkleTreeHinkal,e.merkleTreeAccessToken,c,y,e.userKeys,q,s,w,B,A,e.getCurrentChainId(),x,f);return p?await U.estimateGasRelayer(e,C,m,E):await _.transactCallRelayer(e.getCurrentChainId(),C,m,E)};exports.hinkalActionBeefy=L;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("ethers"),S=require("../../constants/chains.constants.cjs"),I=require("../../error-handling/error-codes.constants.cjs"),k=require("../../functions/pre-transaction/getFlatFees.cjs"),M=require("../../functions/pre-transaction/processAmountChanges.cjs"),N=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),P=require("../../functions/snarkjs/constructGeneralZkProof.cjs"),T=require("../../functions/web3/events/getShieldedBalance.cjs"),U=require("../../functions/web3/functionCalls/estimateGasRelayer.cjs"),_=require("../../functions/web3/functionCalls/transactCallRelayer.cjs"),F=require("../../types/hinkal.types.cjs"),i=require("../../types/external-action.types.cjs"),G=(e,r,t,n,l,d)=>{let a;return l===i.ExternalActionId.BeefyStake?(a=u.utils.defaultAbiCoder.encode(["uint8","address","uint256","uint256"],[Number(n),d,e[0][0].amount,e[0][0].timeStamp]),a):(r.length===1?a=u.utils.defaultAbiCoder.encode(["uint8","bytes","bytes","address"],[Number(n),r[0],"0x00",t]):r.length===2?a=u.utils.defaultAbiCoder.encode(["uint8","bytes","bytes","address"],[Number(n),r[0],r[1],t]):a=u.utils.defaultAbiCoder.encode(["uint8","bytes","bytes","address"],[Number(n),"0x00","0x00",t]),a)},O=(e,r,t)=>r===i.ExternalActionId.BeefyStake?t===F.BeefyAction.GetRewards?[!1,!0]:[!1,!1,!0]:e.map(n=>n>0n),L=async(e,r,t,n,l,d,a,E=!1)=>{const c=[...await T.addPaddingToUtxos(e,r,t)],p=`swapper${a?"MO":"M"}${t.length.toString()}x${c[0].length}x1`,s=a?i.ExternalActionId.BeefyStake:i.ExternalActionId.Beefy,{flatFees:f,feeUnit:q}=await k.getFlatFees(e.getCurrentChainId(),r,s,t,n);t=M.processAmountChanges({erc20Addresses:r,amountChanges:t,flatFees:f,feeUnit:q,externalActionId:s,action:n});const b=O(t,s,n),x=[];for(let o=0;o<r.length;o+=1){const{outputUtxos:R}=N.outputUtxoProcessing(e.userKeys,c[o],t[o]);x.push(R)}const{contractData:y}=S.networkRegistry[e.getCurrentChainId()],w=s===i.ExternalActionId.BeefyStake?y.beefyStakeExternalActionInstanceAddress:y.beefyExternalActionInstanceAddress,B=G(c,l,d,n,s,a),g=await e.getRandomRelay();if(!g)throw Error(I.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const{zkCallData:A,circomData:C,dimData:m}=await P.constructZkProof(e.merkleTreeHinkal,e.merkleTreeAccessToken,c,x,e.userKeys,p,s,w,B,g,e.getCurrentChainId(),b,f);return E?await U.estimateGasRelayer(e,A,m,C):await _.transactCallRelayer(e.getCurrentChainId(),A,m,C)};exports.hinkalActionBeefy=L;
@@ -10,11 +10,11 @@ import { estimateGasRelayer as L } from "../../functions/web3/functionCalls/esti
10
10
  import { transactCallRelayer as O } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
11
11
  import { BeefyAction as P } from "../../types/hinkal.types.mjs";
12
12
  import { ExternalActionId as s } from "../../types/external-action.types.mjs";
13
- const $ = (t, r, e, o, f, u) => {
13
+ const $ = (t, r, e, o, u, f) => {
14
14
  let a;
15
- return f === s.BeefyStake ? (a = m.defaultAbiCoder.encode(
15
+ return u === s.BeefyStake ? (a = m.defaultAbiCoder.encode(
16
16
  ["uint8", "address", "uint256", "uint256"],
17
- [Number(o), u, t[0][0].amount, t[0][0].timeStamp]
17
+ [Number(o), f, t[0][0].amount, t[0][0].timeStamp]
18
18
  ), a) : (r.length === 1 ? a = m.defaultAbiCoder.encode(
19
19
  ["uint8", "bytes", "bytes", "address"],
20
20
  [Number(o), r[0], "0x00", e]
@@ -25,8 +25,8 @@ const $ = (t, r, e, o, f, u) => {
25
25
  ["uint8", "bytes", "bytes", "address"],
26
26
  [Number(o), "0x00", "0x00", e]
27
27
  ), a);
28
- }, G = (t, r, e) => r === s.BeefyStake ? e === P.GetRewards ? [!1, !0] : [!1, !1, !0] : t.map((o) => o > 0n), X = async (t, r, e, o, f, u, a, E = !1) => {
29
- const c = [...await F(t, r, e)], w = `swapper${a ? "MO" : "M"}${e.length.toString()}x${c[0].length}x1`, n = a ? s.BeefyStake : s.Beefy, { flatFees: l, feeUnit: b } = await M(
28
+ }, G = (t, r, e) => r === s.BeefyStake ? e === P.GetRewards ? [!1, !0] : [!1, !1, !0] : t.map((o) => o > 0n), X = async (t, r, e, o, u, f, a, A = !1) => {
29
+ const c = [...await F(t, r, e)], E = `swapper${a ? "MO" : "M"}${e.length.toString()}x${c[0].length}x1`, n = a ? s.BeefyStake : s.Beefy, { flatFees: l, feeUnit: w } = await M(
30
30
  t.getCurrentChainId(),
31
31
  r,
32
32
  n,
@@ -37,43 +37,41 @@ const $ = (t, r, e, o, f, u) => {
37
37
  erc20Addresses: r,
38
38
  amountChanges: e,
39
39
  flatFees: l,
40
- feeUnit: b,
40
+ feeUnit: w,
41
41
  externalActionId: n,
42
42
  action: o
43
43
  });
44
- const d = G(e, n, o);
45
- console.log({ amountChanges: e, onChainCreation: d });
46
- const p = [];
44
+ const b = G(e, n, o), d = [];
47
45
  for (let i = 0; i < r.length; i += 1) {
48
46
  const { outputUtxos: S } = U(t.userKeys, c[i], e[i]);
49
- p.push(S);
47
+ d.push(S);
50
48
  }
51
- const { contractData: x } = N[t.getCurrentChainId()], B = n === s.BeefyStake ? x.beefyStakeExternalActionInstanceAddress : x.beefyExternalActionInstanceAddress, R = $(
49
+ const { contractData: p } = N[t.getCurrentChainId()], B = n === s.BeefyStake ? p.beefyStakeExternalActionInstanceAddress : p.beefyExternalActionInstanceAddress, R = $(
52
50
  c,
53
- f,
54
51
  u,
52
+ f,
55
53
  o,
56
54
  n,
57
55
  a
58
- ), y = await t.getRandomRelay();
59
- if (!y)
56
+ ), x = await t.getRandomRelay();
57
+ if (!x)
60
58
  throw Error(I.RELAYER_NOT_AVAILABLE);
61
- const { zkCallData: g, circomData: C, dimData: A } = await k(
59
+ const { zkCallData: y, circomData: g, dimData: C } = await k(
62
60
  t.merkleTreeHinkal,
63
61
  t.merkleTreeAccessToken,
64
62
  c,
65
- p,
63
+ d,
66
64
  t.userKeys,
67
- w,
65
+ E,
68
66
  n,
69
67
  B,
70
68
  R,
71
- y,
69
+ x,
72
70
  t.getCurrentChainId(),
73
- d,
71
+ b,
74
72
  l
75
73
  );
76
- return E ? await L(t, g, A, C) : await O(t.getCurrentChainId(), g, A, C);
74
+ return A ? await L(t, y, C, g) : await O(t.getCurrentChainId(), y, C, g);
77
75
  };
78
76
  export {
79
77
  X as hinkalActionBeefy
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("ethers"),s=require("../../constants/chains.constants.cjs"),R=require("../../error-handling/error-codes.constants.cjs"),P=require("../../functions/pre-transaction/getFlatFees.cjs"),U=require("../../functions/pre-transaction/processAmountChanges.cjs"),L=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),S=require("../../functions/snarkjs/constructGeneralZkProof.cjs"),T=require("../../functions/web3/events/getShieldedBalance.cjs"),_=require("../../functions/web3/functionCalls/estimateGasRelayer.cjs"),F=require("../../functions/web3/functionCalls/transactCallRelayer.cjs"),y=require("../../types/hinkal.types.cjs"),M=require("../../types/external-action.types.cjs"),O=async(t,o,e,A,a,f=!1)=>{const n=[...await T.addPaddingToUtxos(t,o,e)],p=`swapperMO${e.length.toString()}x${n[0].length}x1`,u=s.getNonLocalhostChainId(t.getCurrentChainId());console.log({inputUtxosArray:n});const c=M.ExternalActionId.Convex,{flatFees:l,feeUnit:I}=await P.getFlatFees(t.getCurrentChainId(),o,c,e,a);e=U.processAmountChanges({erc20Addresses:o,amountChanges:e,flatFees:l,feeUnit:I,externalActionId:c,action:a}),console.log("new amount changes",{amountChanges:e});const h=[y.ConvexAction.StakeLP,y.ConvexAction.UnStakeLP].includes(a)?[!1,!1,...u===s.chainIds.ethMainnet?[!0,!0]:[!0]]:[!1,...u===s.chainIds.ethMainnet?[!0,!0]:[!0]],i=[];for(let r=0;r<o.length;r+=1){const{outputUtxos:w}=L.outputUtxoProcessing(t.userKeys,n[r],e[r]);i.push(w)}console.log({outputUtxosArray:i});const m=s.networkRegistry[t.getCurrentChainId()].contractData.convexExternalActionInstanceAddress,q=E.utils.defaultAbiCoder.encode(["uint8","uint256","uint256","uint256"],[Number(a),A,n[0][0].amount,n[0][0].timeStamp]),d=await t.getRandomRelay();if(!d)throw Error(R.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const{zkCallData:g,circomData:C,dimData:x}=await S.constructZkProof(t.merkleTreeHinkal,t.merkleTreeAccessToken,n,i,t.userKeys,p,c,m,q,d,t.getCurrentChainId(),h,l);return f?await _.estimateGasRelayer(t,g,x,C):await F.transactCallRelayer(t.getCurrentChainId(),g,x,C)};exports.hinkalActionConvex=O;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("ethers"),s=require("../../constants/chains.constants.cjs"),R=require("../../error-handling/error-codes.constants.cjs"),P=require("../../functions/pre-transaction/getFlatFees.cjs"),U=require("../../functions/pre-transaction/processAmountChanges.cjs"),L=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),S=require("../../functions/snarkjs/constructGeneralZkProof.cjs"),T=require("../../functions/web3/events/getShieldedBalance.cjs"),_=require("../../functions/web3/functionCalls/estimateGasRelayer.cjs"),F=require("../../functions/web3/functionCalls/transactCallRelayer.cjs"),y=require("../../types/hinkal.types.cjs"),M=require("../../types/external-action.types.cjs"),O=async(t,o,e,A,a,f=!1)=>{const n=[...await T.addPaddingToUtxos(t,o,e)],p=`swapperMO${e.length.toString()}x${n[0].length}x1`,c=s.getNonLocalhostChainId(t.getCurrentChainId()),i=M.ExternalActionId.Convex,{flatFees:u,feeUnit:I}=await P.getFlatFees(t.getCurrentChainId(),o,i,e,a);e=U.processAmountChanges({erc20Addresses:o,amountChanges:e,flatFees:u,feeUnit:I,externalActionId:i,action:a});const h=[y.ConvexAction.StakeLP,y.ConvexAction.UnStakeLP].includes(a)?[!1,!1,...c===s.chainIds.ethMainnet?[!0,!0]:[!0]]:[!1,...c===s.chainIds.ethMainnet?[!0,!0]:[!0]],l=[];for(let r=0;r<o.length;r+=1){const{outputUtxos:w}=L.outputUtxoProcessing(t.userKeys,n[r],e[r]);l.push(w)}const m=s.networkRegistry[t.getCurrentChainId()].contractData.convexExternalActionInstanceAddress,q=E.utils.defaultAbiCoder.encode(["uint8","uint256","uint256","uint256"],[Number(a),A,n[0][0].amount,n[0][0].timeStamp]),d=await t.getRandomRelay();if(!d)throw Error(R.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const{zkCallData:C,circomData:g,dimData:x}=await S.constructZkProof(t.merkleTreeHinkal,t.merkleTreeAccessToken,n,l,t.userKeys,p,i,m,q,d,t.getCurrentChainId(),h,u);return f?await _.estimateGasRelayer(t,C,x,g):await F.transactCallRelayer(t.getCurrentChainId(),C,x,g)};exports.hinkalActionConvex=O;
@@ -8,12 +8,10 @@ import { constructZkProof as N } from "../../functions/snarkjs/constructGeneralZ
8
8
  import { addPaddingToUtxos as O } from "../../functions/web3/events/getShieldedBalance.mjs";
9
9
  import { estimateGasRelayer as S } from "../../functions/web3/functionCalls/estimateGasRelayer.mjs";
10
10
  import { transactCallRelayer as F } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
11
- import { ConvexAction as g } from "../../types/hinkal.types.mjs";
11
+ import { ConvexAction as C } from "../../types/hinkal.types.mjs";
12
12
  import { ExternalActionId as b } from "../../types/external-action.types.mjs";
13
- const Q = async (t, n, e, C, a, x = !1) => {
14
- const o = [...await O(t, n, e)], A = `swapperMO${e.length.toString()}x${o[0].length}x1`, c = U(t.getCurrentChainId());
15
- console.log({ inputUtxosArray: o });
16
- const i = b.Convex, { flatFees: m, feeUnit: I } = await T(
13
+ const Q = async (t, n, e, x, a, g = !1) => {
14
+ const r = [...await O(t, n, e)], A = `swapperMO${e.length.toString()}x${r[0].length}x1`, s = U(t.getCurrentChainId()), i = b.Convex, { flatFees: c, feeUnit: I } = await T(
17
15
  t.getCurrentChainId(),
18
16
  n,
19
17
  i,
@@ -23,39 +21,38 @@ const Q = async (t, n, e, C, a, x = !1) => {
23
21
  e = D({
24
22
  erc20Addresses: n,
25
23
  amountChanges: e,
26
- flatFees: m,
24
+ flatFees: c,
27
25
  feeUnit: I,
28
26
  externalActionId: i,
29
27
  action: a
30
- }), console.log("new amount changes", { amountChanges: e });
31
- const w = [g.StakeLP, g.UnStakeLP].includes(a) ? [!1, !1, ...c === d.ethMainnet ? [!0, !0] : [!0]] : [!1, ...c === d.ethMainnet ? [!0, !0] : [!0]], s = [];
32
- for (let r = 0; r < n.length; r += 1) {
33
- const { outputUtxos: L } = M(t.userKeys, o[r], e[r]);
34
- s.push(L);
28
+ });
29
+ const y = [C.StakeLP, C.UnStakeLP].includes(a) ? [!1, !1, ...s === d.ethMainnet ? [!0, !0] : [!0]] : [!1, ...s === d.ethMainnet ? [!0, !0] : [!0]], m = [];
30
+ for (let o = 0; o < n.length; o += 1) {
31
+ const { outputUtxos: L } = M(t.userKeys, r[o], e[o]);
32
+ m.push(L);
35
33
  }
36
- console.log({ outputUtxosArray: s });
37
- const y = h[t.getCurrentChainId()].contractData.convexExternalActionInstanceAddress, E = R.defaultAbiCoder.encode(
34
+ const w = h[t.getCurrentChainId()].contractData.convexExternalActionInstanceAddress, E = R.defaultAbiCoder.encode(
38
35
  ["uint8", "uint256", "uint256", "uint256"],
39
- [Number(a), C, o[0][0].amount, o[0][0].timeStamp]
36
+ [Number(a), x, r[0][0].amount, r[0][0].timeStamp]
40
37
  ), u = await t.getRandomRelay();
41
38
  if (!u)
42
39
  throw Error(P.RELAYER_NOT_AVAILABLE);
43
- const { zkCallData: l, circomData: f, dimData: p } = await N(
40
+ const { zkCallData: f, circomData: l, dimData: p } = await N(
44
41
  t.merkleTreeHinkal,
45
42
  t.merkleTreeAccessToken,
46
- o,
47
- s,
43
+ r,
44
+ m,
48
45
  t.userKeys,
49
46
  A,
50
47
  i,
51
- y,
48
+ w,
52
49
  E,
53
50
  u,
54
51
  t.getCurrentChainId(),
55
- w,
56
- m
52
+ y,
53
+ c
57
54
  );
58
- return x ? await S(t, l, p, f) : await F(t.getCurrentChainId(), l, p, f);
55
+ return g ? await S(t, f, p, l) : await F(t.getCurrentChainId(), f, p, l);
59
56
  };
60
57
  export {
61
58
  Q as hinkalActionConvex
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("ethers"),F=require("../../constants/chains.constants.cjs"),M=require("../../error-handling/error-codes.constants.cjs"),P=require("../../functions/web3/events/getShieldedBalance.cjs"),U=require("../../functions/snarkjs/constructGeneralZkProof.cjs"),h=require("../../functions/pre-transaction/getFlatFees.cjs"),S=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),_=require("../../functions/pre-transaction/processAmountChanges.cjs"),N=require("../../functions/web3/functionCalls/estimateGasRelayer.cjs"),b=require("../../functions/web3/functionCalls/transactCallRelayer.cjs"),c=require("../../types/external-action.types.cjs"),o=require("../../types/hinkal.types.cjs"),D=(t,a)=>{if(t===o.LidoVariant.Ethereum)return a===o.LidoAction.Stake?c.ExternalActionId.LidoETH:c.ExternalActionId.LidoETHNFT;if(t===o.LidoVariant.Polygon)return a===o.LidoAction.Stake?c.ExternalActionId.LidoMATIC:c.ExternalActionId.LidoMATICNFT;throw new Error("Invalid LidoVariant used")},k=t=>R.ethers.utils.defaultAbiCoder.encode(["uint8"],[Number(t)]),v=async(t,a,n,s,r,x,g=!1)=>{const u=[...await P.addPaddingToUtxos(t,s,r,6,x)],p=u[0].length,C=`${n===o.LidoAction.Stake?"swapperM":"swapperToken"}2x${p}x1`,i=D(a,n),{flatFees:A,feeUnit:f}=await h.getFlatFees(t.getCurrentChainId(),s,i,r,n);r=_.processAmountChanges({erc20Addresses:s,amountChanges:r,flatFees:A,feeUnit:f,externalActionId:i,action:n});const w=n===o.LidoAction.Request?r.map(()=>!1):r.map(e=>e>0n),E=[];for(let e=0;e<s.length;e+=1){const{outputUtxos:T}=S.outputUtxoProcessing(t.userKeys,u[e],r[e],void 0,x[e]);E.push(T)}if(!await t.getRandomRelay())throw Error(M.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const{lidoExternalActionEthAddress:m,lidoExternalActionMaticAddress:q}=F.networkRegistry[t.getCurrentChainId()].contractData,d=a===o.LidoVariant.Ethereum?m:q;if(!d)throw new Error("Can't find external action address");const I=k(n),{zkCallData:y,circomData:l,dimData:L}=await U.constructZkProof(t.merkleTreeHinkal,t.merkleTreeAccessToken,u,E,t.userKeys,C,i,d,I,await t.getRandomRelay(),t.getCurrentChainId(),w,A);return console.log({externalActionAddress:d,externalActionId:i,circomData:l}),g?await N.estimateGasRelayer(t,y,L,l):await b.transactCallRelayer(t.getCurrentChainId(),y,L,l)};exports.hinkalActionLido=v;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("ethers"),F=require("../../constants/chains.constants.cjs"),M=require("../../error-handling/error-codes.constants.cjs"),P=require("../../functions/web3/events/getShieldedBalance.cjs"),U=require("../../functions/snarkjs/constructGeneralZkProof.cjs"),h=require("../../functions/pre-transaction/getFlatFees.cjs"),S=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),_=require("../../functions/pre-transaction/processAmountChanges.cjs"),N=require("../../functions/web3/functionCalls/estimateGasRelayer.cjs"),b=require("../../functions/web3/functionCalls/transactCallRelayer.cjs"),i=require("../../types/external-action.types.cjs"),o=require("../../types/hinkal.types.cjs"),D=(t,a)=>{if(t===o.LidoVariant.Ethereum)return a===o.LidoAction.Stake?i.ExternalActionId.LidoETH:i.ExternalActionId.LidoETHNFT;if(t===o.LidoVariant.Polygon)return a===o.LidoAction.Stake?i.ExternalActionId.LidoMATIC:i.ExternalActionId.LidoMATICNFT;throw new Error("Invalid LidoVariant used")},k=t=>R.ethers.utils.defaultAbiCoder.encode(["uint8"],[Number(t)]),v=async(t,a,n,s,r,d,p=!1)=>{const c=[...await P.addPaddingToUtxos(t,s,r,6,d)],g=c[0].length,C=`${n===o.LidoAction.Stake?"swapperM":"swapperToken"}2x${g}x1`,u=D(a,n),{flatFees:l,feeUnit:f}=await h.getFlatFees(t.getCurrentChainId(),s,u,r,n);r=_.processAmountChanges({erc20Addresses:s,amountChanges:r,flatFees:l,feeUnit:f,externalActionId:u,action:n});const w=n===o.LidoAction.Request?r.map(()=>!1):r.map(e=>e>0n),x=[];for(let e=0;e<s.length;e+=1){const{outputUtxos:T}=S.outputUtxoProcessing(t.userKeys,c[e],r[e],void 0,d[e]);x.push(T)}if(!await t.getRandomRelay())throw Error(M.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const{lidoExternalActionEthAddress:m,lidoExternalActionMaticAddress:q}=F.networkRegistry[t.getCurrentChainId()].contractData,A=a===o.LidoVariant.Ethereum?m:q;if(!A)throw new Error("Can't find external action address");const I=k(n),{zkCallData:E,circomData:y,dimData:L}=await U.constructZkProof(t.merkleTreeHinkal,t.merkleTreeAccessToken,c,x,t.userKeys,C,u,A,I,await t.getRandomRelay(),t.getCurrentChainId(),w,l);return p?await N.estimateGasRelayer(t,E,L,y):await b.transactCallRelayer(t.getCurrentChainId(),E,L,y)};exports.hinkalActionLido=v;
@@ -8,62 +8,62 @@ import { outputUtxoProcessing as S } from "../../functions/pre-transaction/outpu
8
8
  import { processAmountChanges as b } from "../../functions/pre-transaction/processAmountChanges.mjs";
9
9
  import { estimateGasRelayer as v } from "../../functions/web3/functionCalls/estimateGasRelayer.mjs";
10
10
  import { transactCallRelayer as K } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
11
- import { ExternalActionId as s } from "../../types/external-action.types.mjs";
12
- import { LidoAction as c, LidoVariant as u } from "../../types/hinkal.types.mjs";
11
+ import { ExternalActionId as i } from "../../types/external-action.types.mjs";
12
+ import { LidoAction as s, LidoVariant as d } from "../../types/hinkal.types.mjs";
13
13
  const _ = (t, a) => {
14
- if (t === u.Ethereum)
15
- return a === c.Stake ? s.LidoETH : s.LidoETHNFT;
16
- if (t === u.Polygon)
17
- return a === c.Stake ? s.LidoMATIC : s.LidoMATICNFT;
14
+ if (t === d.Ethereum)
15
+ return a === s.Stake ? i.LidoETH : i.LidoETHNFT;
16
+ if (t === d.Polygon)
17
+ return a === s.Stake ? i.LidoMATIC : i.LidoMATICNFT;
18
18
  throw new Error("Invalid LidoVariant used");
19
- }, $ = (t) => M.utils.defaultAbiCoder.encode(["uint8"], [Number(t)]), X = async (t, a, e, n, o, f, A = !1) => {
20
- const m = [...await D(t, n, o, 6, f)], y = m[0].length, C = `${e === c.Stake ? "swapperM" : "swapperToken"}2x${y}x1`, i = _(a, e), { flatFees: x, feeUnit: L } = await H(
19
+ }, $ = (t) => M.utils.defaultAbiCoder.encode(["uint8"], [Number(t)]), X = async (t, a, o, n, e, p, A = !1) => {
20
+ const c = [...await D(t, n, e, 6, p)], y = c[0].length, C = `${o === s.Stake ? "swapperM" : "swapperToken"}2x${y}x1`, m = _(a, o), { flatFees: u, feeUnit: L } = await H(
21
21
  t.getCurrentChainId(),
22
22
  n,
23
- i,
24
- o,
25
- e
23
+ m,
24
+ e,
25
+ o
26
26
  );
27
- o = b({
27
+ e = b({
28
28
  erc20Addresses: n,
29
- amountChanges: o,
30
- flatFees: x,
29
+ amountChanges: e,
30
+ flatFees: u,
31
31
  feeUnit: L,
32
- externalActionId: i,
33
- action: e
32
+ externalActionId: m,
33
+ action: o
34
34
  });
35
- const g = e === c.Request ? o.map(() => !1) : o.map((r) => r > 0n), l = [];
35
+ const T = o === s.Request ? e.map(() => !1) : e.map((r) => r > 0n), f = [];
36
36
  for (let r = 0; r < n.length; r += 1) {
37
37
  const { outputUtxos: F } = S(
38
38
  t.userKeys,
39
- m[r],
40
- o[r],
39
+ c[r],
40
+ e[r],
41
41
  void 0,
42
- f[r]
42
+ p[r]
43
43
  );
44
- l.push(F);
44
+ f.push(F);
45
45
  }
46
46
  if (!await t.getRandomRelay())
47
47
  throw Error(N.RELAYER_NOT_AVAILABLE);
48
- const { lidoExternalActionEthAddress: T, lidoExternalActionMaticAddress: I } = U[t.getCurrentChainId()].contractData, d = a === u.Ethereum ? T : I;
49
- if (!d)
48
+ const { lidoExternalActionEthAddress: g, lidoExternalActionMaticAddress: I } = U[t.getCurrentChainId()].contractData, x = a === d.Ethereum ? g : I;
49
+ if (!x)
50
50
  throw new Error("Can't find external action address");
51
- const R = $(e), { zkCallData: E, circomData: p, dimData: w } = await P(
51
+ const R = $(o), { zkCallData: E, circomData: l, dimData: w } = await P(
52
52
  t.merkleTreeHinkal,
53
53
  t.merkleTreeAccessToken,
54
- m,
55
- l,
54
+ c,
55
+ f,
56
56
  t.userKeys,
57
57
  C,
58
- i,
59
- d,
58
+ m,
59
+ x,
60
60
  R,
61
61
  await t.getRandomRelay(),
62
62
  t.getCurrentChainId(),
63
- g,
64
- x
63
+ T,
64
+ u
65
65
  );
66
- return console.log({ externalActionAddress: d, externalActionId: i, circomData: p }), A ? await v(t, E, w, p) : await K(t.getCurrentChainId(), E, w, p);
66
+ return A ? await v(t, E, w, l) : await K(t.getCurrentChainId(), E, w, l);
67
67
  };
68
68
  export {
69
69
  X as hinkalActionLido
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("ethers"),q=require("../../constants/protocol.constants.cjs"),Y=require("../../constants/chains.constants.cjs"),x=require("../../functions/utils/erc20tokenFunctions.cjs"),b=require("../../functions/pre-transaction/getFlatFees.cjs"),O=require("../../functions/pre-transaction/processAmountChanges.cjs"),U=require("../../functions/snarkjs/constructGeneralZkProof.cjs"),W=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),H=require("../../functions/web3/events/getShieldedBalance.cjs"),z=require("../../functions/web3/functionCalls/estimateGasRelayer.cjs"),G=require("../../functions/web3/functionCalls/transactCallRelayer.cjs"),m=require("../../functions/web3/functionCalls/transactCallDirect.cjs"),D=require("../../types/ethereum-network.types.cjs"),N=require("../../types/circom-data.types.cjs"),v=require("../../types/external-action.types.cjs"),t=require("../../types/hinkal.types.cjs"),L=require("../../error-handling/error-codes.constants.cjs"),$=e=>{let o=[];return e===t.PendleAction.Deposit?o=[!1,!0]:e===t.PendleAction.Withdraw?o=[!1,!0]:e===t.PendleAction.SwapFromYt?o=[!1,!0,!0]:e===t.PendleAction.SwapToYt?o=[!1,!1,!0]:e===t.PendleAction.SwapPt?o=[!1,!0]:e===t.PendleAction.Mint?o=[!1,!0,!1,!0]:e===t.PendleAction.Redeem?o=[!1,!1,!0,!0]:e===t.PendleAction.Checkpoint&&(o=[!1,!0]),o},B=(e,o)=>{const{pendleAction:r,ytAddress:s,userAddress:f,evmData:P}=e,i=P??"0x00",c=f??q.zeroAddress;if([t.PendleAction.Deposit,t.PendleAction.Withdraw,t.PendleAction.SwapFromYt,t.PendleAction.SwapToYt,t.PendleAction.SwapPt,t.PendleAction.Mint,t.PendleAction.Redeem,t.PendleAction.Checkpoint].includes(e.pendleAction))return _.utils.defaultAbiCoder.encode(["uint8","address","uint256","uint256","address","bool","bytes"],[r,s,o[0][0].amount,o[0][0].timeStamp,c,!0,i]);throw new Error("Not implemented")},K=async(e,o,r,s,f,P=!1)=>{const i=v.ExternalActionId.Pendle,{pendleAction:c}=s,a=[...await H.addPaddingToUtxos(e,o,r)],y=`swapperMO${r.length.toString()}x${a[0].length}x1`;console.log({inputUtxosArray:a,circuitName:y,pendleMetadata:s});const{flatFees:p,feeUnit:R}=await b.getFlatFees(e.getCurrentChainId(),o,i,r,c,f);console.log("hinkalActionPendle flatFees:",p),r=O.processAmountChanges({erc20Addresses:o,amountChanges:r,flatFees:p,feeUnit:R,externalActionId:i,action:c,gasTokenAddress:f});const C=[];for(let n=0;n<o.length;n+=1){const{outputUtxos:A}=W.outputUtxoProcessing(e.userKeys,a[n],r[n]);C.push(A)}const T=$(c),{contractData:E}=Y.networkRegistry[e.getCurrentChainId()],h=E?.pendleExternalActionInstanceAddress,S=B(s,a),g=c===t.PendleAction.Deposit||s.isRelayerOff?q.zeroAddress:await e.getRandomRelay();if(!g)throw Error(L.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const k=`0x0${c.toString(16)}`,I={...N.defaultHookData,preHookMetadata:k},{zkCallData:l,circomData:u,dimData:d}=await U.constructZkProof(e.merkleTreeHinkal,e.merkleTreeAccessToken,a,C,e.userKeys,y,i,h,S,g,e.getCurrentChainId(),T,p,I);if(console.log("hinkalActionPendle: zkCallData, dimData, circomData:",{zkCallData:l,dimData:d,circomData:u}),P)return await z.estimateGasRelayer(e,l,d,u);const w=e.getCurrentChainId();if(c===t.PendleAction.Deposit){console.log("inside pendle deposit");const n=x.getERC20Token(s.ytAddress,w);if(!n)throw Error("Yt Token not found");const A=e.getContractWithSigner(D.ContractType.PendleGeneralExternalAction),F=e.getContractWithSigner(D.ContractType.HinkalWrapper);return await m.transactCallDirect(e,r[0],n,l,u,d,A,F)}if(c===t.PendleAction.Withdraw&&s.isRelayerOff){const n=x.getERC20Token(s.ytAddress,w);if(!n)throw Error("Yt Token not found");return await m.transactCallDirect(e,r[0],n,l,u,d)}return await G.transactCallRelayer(e.getCurrentChainId(),l,d,u)};exports.hinkalActionPendle=K;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("ethers"),q=require("../../constants/protocol.constants.cjs"),Y=require("../../constants/chains.constants.cjs"),g=require("../../functions/utils/erc20tokenFunctions.cjs"),b=require("../../functions/pre-transaction/getFlatFees.cjs"),O=require("../../functions/pre-transaction/processAmountChanges.cjs"),U=require("../../functions/snarkjs/constructGeneralZkProof.cjs"),W=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),H=require("../../functions/web3/events/getShieldedBalance.cjs"),G=require("../../functions/web3/functionCalls/estimateGasRelayer.cjs"),N=require("../../functions/web3/functionCalls/transactCallRelayer.cjs"),x=require("../../functions/web3/functionCalls/transactCallDirect.cjs"),m=require("../../types/ethereum-network.types.cjs"),v=require("../../types/circom-data.types.cjs"),z=require("../../types/external-action.types.cjs"),t=require("../../types/hinkal.types.cjs"),L=require("../../error-handling/error-codes.constants.cjs"),$=e=>{let r=[];return e===t.PendleAction.Deposit?r=[!1,!0]:e===t.PendleAction.Withdraw?r=[!1,!0]:e===t.PendleAction.SwapFromYt?r=[!1,!0,!0]:e===t.PendleAction.SwapToYt?r=[!1,!1,!0]:e===t.PendleAction.SwapPt?r=[!1,!0]:e===t.PendleAction.Mint?r=[!1,!0,!1,!0]:e===t.PendleAction.Redeem?r=[!1,!1,!0,!0]:e===t.PendleAction.Checkpoint&&(r=[!1,!0]),r},B=(e,r)=>{const{pendleAction:o,ytAddress:c,userAddress:a,evmData:P}=e,i=P??"0x00",s=a??q.zeroAddress;if([t.PendleAction.Deposit,t.PendleAction.Withdraw,t.PendleAction.SwapFromYt,t.PendleAction.SwapToYt,t.PendleAction.SwapPt,t.PendleAction.Mint,t.PendleAction.Redeem,t.PendleAction.Checkpoint].includes(e.pendleAction))return F.utils.defaultAbiCoder.encode(["uint8","address","uint256","uint256","address","bool","bytes"],[o,c,r[0][0].amount,r[0][0].timeStamp,s,!0,i]);throw new Error("Not implemented")},K=async(e,r,o,c,a,P=!1)=>{const i=z.ExternalActionId.Pendle,{pendleAction:s}=c,l=[...await H.addPaddingToUtxos(e,r,o)],R=`swapperMO${o.length.toString()}x${l[0].length}x1`,{flatFees:y,feeUnit:T}=await b.getFlatFees(e.getCurrentChainId(),r,i,o,s,a);o=O.processAmountChanges({erc20Addresses:r,amountChanges:o,flatFees:y,feeUnit:T,externalActionId:i,action:s,gasTokenAddress:a});const p=[];for(let n=0;n<r.length;n+=1){const{outputUtxos:A}=W.outputUtxoProcessing(e.userKeys,l[n],o[n]);p.push(A)}const D=$(s),{contractData:E}=Y.networkRegistry[e.getCurrentChainId()],S=E?.pendleExternalActionInstanceAddress,h=B(c,l),C=s===t.PendleAction.Deposit||c.isRelayerOff?q.zeroAddress:await e.getRandomRelay();if(!C)throw Error(L.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const I=`0x0${s.toString(16)}`,k={...v.defaultHookData,preHookMetadata:I},{zkCallData:u,circomData:d,dimData:f}=await U.constructZkProof(e.merkleTreeHinkal,e.merkleTreeAccessToken,l,p,e.userKeys,R,i,S,h,C,e.getCurrentChainId(),D,y,k);if(P)return await G.estimateGasRelayer(e,u,f,d);const w=e.getCurrentChainId();if(s===t.PendleAction.Deposit){const n=g.getERC20Token(c.ytAddress,w);if(!n)throw Error("Yt Token not found");const A=e.getContractWithSigner(m.ContractType.PendleGeneralExternalAction),_=e.getContractWithSigner(m.ContractType.HinkalWrapper);return await x.transactCallDirect(e,o[0],n,u,d,f,A,_)}if(s===t.PendleAction.Withdraw&&c.isRelayerOff){const n=g.getERC20Token(c.ytAddress,w);if(!n)throw Error("Yt Token not found");return await x.transactCallDirect(e,o[0],n,u,d,f)}return await N.transactCallRelayer(e.getCurrentChainId(),u,f,d)};exports.hinkalActionPendle=K;