@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,5 +1,5 @@
1
- import { zeroAddress as u } from "../../constants/protocol.constants.mjs";
2
- import { getERC20Token as W } from "../../functions/utils/erc20tokenFunctions.mjs";
1
+ import { zeroAddress as E } from "../../constants/protocol.constants.mjs";
2
+ import { getERC20Token as F } from "../../functions/utils/erc20tokenFunctions.mjs";
3
3
  import { getFlatFees as N } from "../../functions/pre-transaction/getFlatFees.mjs";
4
4
  import { outputUtxoProcessing as H } from "../../functions/pre-transaction/outputUtxoProcessing.mjs";
5
5
  import { constructZkProof as L } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
@@ -12,79 +12,73 @@ import { VolatileAction as i } from "../../types/hinkal.types.mjs";
12
12
  import { ContractType as D } from "../../types/ethereum-network.types.mjs";
13
13
  import { ExternalActionId as z } from "../../types/external-action.types.mjs";
14
14
  import { transactionErrorCodes as K } from "../../error-handling/error-codes.constants.mjs";
15
- const ot = async (t, a, o, R, T) => {
16
- const { action: r, isRelayerOff: n, recipientAddress: V, baseExternalActionId: I, baseExternalActionMetadata: F } = R, m = W(a[0], t.getCurrentChainId());
15
+ const rt = async (t, a, r, R, T) => {
16
+ const { action: o, isRelayerOff: n, recipientAddress: I, baseExternalActionId: V, baseExternalActionMetadata: S } = R, m = F(a[0], t.getCurrentChainId());
17
17
  if (!m)
18
18
  throw Error("Deposit Action: No Token Found");
19
- const l = [...o], S = [...a];
20
- let A = [], x = o.map(() => 0n);
21
- ({ erc20Addresses: a, amountChanges: o, onChainCreation: A } = await C.processVolatileData(
19
+ const f = [...r], U = [...a];
20
+ let w = [], A = r.map(() => 0n);
21
+ ({ erc20Addresses: a, amountChanges: r, onChainCreation: w } = await C.processVolatileData(
22
22
  t.getCurrentChainId(),
23
- r,
23
+ o,
24
24
  a,
25
- o
26
- )), console.log("pre-amounts", o);
25
+ r
26
+ ));
27
27
  const c = await C.getVolatileExternalData(
28
28
  t,
29
- r,
30
- l,
31
- V,
29
+ o,
30
+ f,
32
31
  I,
33
- F
32
+ V,
33
+ S
34
34
  );
35
35
  if (!c)
36
36
  throw Error("No External Action Data");
37
- (r === i.Withdraw && !n || r === i.Swap) && ({ flatFees: x } = await N(
37
+ (o === i.Withdraw && !n || o === i.Swap) && ({ flatFees: A } = await N(
38
38
  t.getCurrentChainId(),
39
- S,
39
+ U,
40
40
  z.Volatile,
41
- l,
42
- r
43
- ), r === i.Swap && (o[1] = 0n), console.log("hinkalActionVolatile flatFees:", {
44
- flatFees: x,
45
- erc20Addresses: a,
46
- amountChanges: o,
47
- originalAmountChanges: l,
48
- externalActionData: c
49
- }));
50
- const g = [...await M(t, a, o)], U = `swapperM${o.length.toString()}x${g[0].length}x1`, d = [];
41
+ f,
42
+ o
43
+ ), o === i.Swap && (r[1] = 0n));
44
+ const x = [...await M(t, a, r)], W = `swapperM${r.length.toString()}x${x[0].length}x1`, g = [];
51
45
  for (let e = 0; e < a.length; e += 1) {
52
- const { outputUtxos: w } = H(t.userKeys, g[e], o[e]);
53
- d.push(w);
46
+ const { outputUtxos: d } = H(t.userKeys, x[e], r[e]);
47
+ g.push(d);
54
48
  }
55
- const E = r === i.Deposit || n ? u : await t.getRandomRelay();
56
- if (!n && !E)
49
+ const u = o === i.Deposit || n ? E : await t.getRandomRelay();
50
+ if (!n && !u)
57
51
  throw Error(K.RELAYER_NOT_AVAILABLE);
58
- const { zkCallData: s, circomData: p, dimData: f } = await L(
52
+ const { zkCallData: s, circomData: p, dimData: l } = await L(
59
53
  t.merkleTreeHinkal,
60
54
  t.merkleTreeAccessToken,
55
+ x,
61
56
  g,
62
- d,
63
57
  t.userKeys,
64
- U,
58
+ W,
65
59
  c.externalActionId,
66
60
  c.externalAddress,
67
61
  c.externalActionMetadata,
68
- n ? u : E,
62
+ n ? E : u,
69
63
  t.getCurrentChainId(),
70
- A,
71
- x
64
+ w,
65
+ A
72
66
  );
73
- if (console.log("after proof generation"), r === i.Deposit) {
74
- const e = t.getContractWithSigner(D.VolatileVault), w = t.getContractWithSigner(D.HinkalWrapper);
75
- return console.log("here", { contractToApprove: e }), await y(
67
+ if (o === i.Deposit) {
68
+ const e = t.getContractWithSigner(D.VolatileVault), d = t.getContractWithSigner(D.HinkalWrapper);
69
+ return await y(
76
70
  t,
77
- l[0],
71
+ f[0],
78
72
  m,
79
73
  s,
80
74
  p,
81
- f,
75
+ l,
82
76
  e,
83
- w
77
+ d
84
78
  );
85
79
  }
86
- return r === i.Withdraw && n ? await y(t, o[0], m, s, p, f) : T ? await b(t, s, f, p) : await P(t.getCurrentChainId(), s, f, p);
80
+ return o === i.Withdraw && n ? await y(t, r[0], m, s, p, l) : T ? await b(t, s, l, p) : await P(t.getCurrentChainId(), s, l, p);
87
81
  };
88
82
  export {
89
- ot as hinkalActionVolatile
83
+ rt as hinkalActionVolatile
90
84
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("../../constants/protocol.constants.cjs"),C=require("../../functions/utils/erc20tokenFunctions.cjs"),f=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),D=require("../../functions/snarkjs/constructGeneralZkProof.cjs"),k=require("../../functions/web3/events/getShieldedBalance.cjs"),h=require("../../functions/web3/functionCalls/transactCallDirect.cjs"),y=require("../utxo/Utxo.cjs"),q=require("../../error-handling/error-codes.constants.cjs"),I=async(t,n,o)=>{const a=C.getERC20Token(n[0],t.getCurrentChainId());if(!a)throw Error("Deposit Action: No Token Found");const c=o[0],e={externalActionId:0n,externalAddress:await t.getEthereumAddress(),externalActionMetadata:"0x00"},r=[...await k.addPaddingToUtxos(t,n,o)],d=`swapperM${o.length.toString()}x${r[0].length}x1`,i=[];for(let s=0;s<n.length;s+=1){const{outputUtxos:p}=f.outputUtxoProcessing(t.userKeys,r[s],o[s]);i.push(p)}const{zkCallData:l,circomData:g,dimData:x}=await D.constructZkProof(t.merkleTreeHinkal,t.merkleTreeAccessToken,r,i,t.userKeys,d,e.externalActionId,e.externalAddress,e.externalActionMetadata,T.zeroAddress,t.getCurrentChainId());return console.log("after proof generation"),await h.transactCallDirect(t,c,a,l,g,x)},S=async(t,n,o,a)=>{console.log({recipinetInfo:a});const[c,e,r]=a.split(","),d=!c||!e||!r,i=e?.substring(0,2)!=="0x"||r?.substring(0,2)!=="0x",l=r?.length!==66||e?.length>66||e?.length<64,g=a?.includes('"');if(d||i||l||g)throw Error(q.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);const x=[BigInt(c)],A=[e],s=n.map(u=>[new y.Utxo({amount:0n,erc20TokenAddress:u,shieldedPrivateKey:t.userKeys.getShieldedPrivateKey()}),new y.Utxo({amount:0n,erc20TokenAddress:u,shieldedPrivateKey:t.userKeys.getShieldedPrivateKey()})]),p=`swapperM${o.length.toString()}x${s[0].length}x1`,P=n.map((u,m)=>[new y.Utxo({amount:o[m],erc20TokenAddress:u,randomization:x[m],stealthAddress:A[m],encryptionKey:r})]),{zkCallData:U,circomData:E,dimData:K}=await D.constructZkProof(t.merkleTreeHinkal,t.merkleTreeAccessToken,s,P,t.userKeys,p,0n,await t.getEthereumAddress(),"0x00",T.zeroAddress,t.getCurrentChainId()),w=C.getERC20Token(n[0],t.getCurrentChainId());if(!w)throw Error("Withdraw Action: No Token Found");return await h.transactCallDirect(t,o[0],w,U,E,K)};exports.hinkalDeposit=I;exports.hinkalDepositForOther=S;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("../../constants/protocol.constants.cjs"),C=require("../../functions/utils/erc20tokenFunctions.cjs"),I=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),D=require("../../functions/snarkjs/constructGeneralZkProof.cjs"),f=require("../../functions/web3/events/getShieldedBalance.cjs"),h=require("../../functions/web3/functionCalls/transactCallDirect.cjs"),y=require("../utxo/Utxo.cjs"),k=require("../../error-handling/error-codes.constants.cjs"),q=async(t,n,r)=>{const a=C.getERC20Token(n[0],t.getCurrentChainId());if(!a)throw Error("Deposit Action: No Token Found");const c=r[0],e={externalActionId:0n,externalAddress:await t.getEthereumAddress(),externalActionMetadata:"0x00"},o=[...await f.addPaddingToUtxos(t,n,r)],d=`swapperM${r.length.toString()}x${o[0].length}x1`,i=[];for(let s=0;s<n.length;s+=1){const{outputUtxos:p}=I.outputUtxoProcessing(t.userKeys,o[s],r[s]);i.push(p)}const{zkCallData:l,circomData:x,dimData:g}=await D.constructZkProof(t.merkleTreeHinkal,t.merkleTreeAccessToken,o,i,t.userKeys,d,e.externalActionId,e.externalAddress,e.externalActionMetadata,T.zeroAddress,t.getCurrentChainId());return await h.transactCallDirect(t,c,a,l,x,g)},S=async(t,n,r,a)=>{const[c,e,o]=a.split(","),d=!c||!e||!o,i=e?.substring(0,2)!=="0x"||o?.substring(0,2)!=="0x",l=o?.length!==66||e?.length>66||e?.length<64,x=a?.includes('"');if(d||i||l||x)throw Error(k.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);const g=[BigInt(c)],A=[e],s=n.map(u=>[new y.Utxo({amount:0n,erc20TokenAddress:u,shieldedPrivateKey:t.userKeys.getShieldedPrivateKey()}),new y.Utxo({amount:0n,erc20TokenAddress:u,shieldedPrivateKey:t.userKeys.getShieldedPrivateKey()})]),p=`swapperM${r.length.toString()}x${s[0].length}x1`,P=n.map((u,m)=>[new y.Utxo({amount:r[m],erc20TokenAddress:u,randomization:g[m],stealthAddress:A[m],encryptionKey:o})]),{zkCallData:U,circomData:E,dimData:K}=await D.constructZkProof(t.merkleTreeHinkal,t.merkleTreeAccessToken,s,P,t.userKeys,p,0n,await t.getEthereumAddress(),"0x00",T.zeroAddress,t.getCurrentChainId()),w=C.getERC20Token(n[0],t.getCurrentChainId());if(!w)throw Error("Withdraw Action: No Token Found");return await h.transactCallDirect(t,r[0],w,U,E,K)};exports.hinkalDeposit=q;exports.hinkalDepositForOther=S;
@@ -1,53 +1,52 @@
1
- import { zeroAddress as f } from "../../constants/protocol.constants.mjs";
2
- import { getERC20Token as T } from "../../functions/utils/erc20tokenFunctions.mjs";
1
+ import { zeroAddress as T } from "../../constants/protocol.constants.mjs";
2
+ import { getERC20Token as f } from "../../functions/utils/erc20tokenFunctions.mjs";
3
3
  import { outputUtxoProcessing as P } from "../../functions/pre-transaction/outputUtxoProcessing.mjs";
4
4
  import { constructZkProof as C } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
5
5
  import { addPaddingToUtxos as U } from "../../functions/web3/events/getShieldedBalance.mjs";
6
6
  import { transactCallDirect as D } from "../../functions/web3/functionCalls/transactCallDirect.mjs";
7
7
  import { Utxo as A } from "../utxo/Utxo.mjs";
8
8
  import { transactionErrorCodes as z } from "../../error-handling/error-codes.constants.mjs";
9
- const k = async (t, n, e) => {
10
- const a = T(n[0], t.getCurrentChainId());
9
+ const k = async (t, n, r) => {
10
+ const a = f(n[0], t.getCurrentChainId());
11
11
  if (!a)
12
12
  throw Error("Deposit Action: No Token Found");
13
- const i = e[0], o = {
13
+ const i = r[0], e = {
14
14
  externalActionId: 0n,
15
15
  externalAddress: await t.getEthereumAddress(),
16
16
  externalActionMetadata: "0x00"
17
- }, r = [...await U(t, n, e)], m = `swapperM${e.length.toString()}x${r[0].length}x1`, c = [];
17
+ }, o = [...await U(t, n, r)], m = `swapperM${r.length.toString()}x${o[0].length}x1`, c = [];
18
18
  for (let s = 0; s < n.length; s += 1) {
19
- const { outputUtxos: x } = P(t.userKeys, r[s], e[s]);
20
- c.push(x);
19
+ const { outputUtxos: l } = P(t.userKeys, o[s], r[s]);
20
+ c.push(l);
21
21
  }
22
- const { zkCallData: u, circomData: l, dimData: p } = await C(
22
+ const { zkCallData: u, circomData: p, dimData: x } = await C(
23
23
  t.merkleTreeHinkal,
24
24
  t.merkleTreeAccessToken,
25
- r,
25
+ o,
26
26
  c,
27
27
  t.userKeys,
28
28
  m,
29
- o.externalActionId,
30
- o.externalAddress,
31
- o.externalActionMetadata,
32
- f,
29
+ e.externalActionId,
30
+ e.externalAddress,
31
+ e.externalActionMetadata,
32
+ T,
33
33
  t.getCurrentChainId()
34
34
  );
35
- return console.log("after proof generation"), await D(t, i, a, u, l, p);
36
- }, H = async (t, n, e, a) => {
37
- console.log({ recipinetInfo: a });
38
- const [i, o, r] = a.split(","), m = !i || !o || !r, c = o?.substring(0, 2) !== "0x" || r?.substring(0, 2) !== "0x", u = r?.length !== 66 || o?.length > 66 || o?.length < 64, l = a?.includes('"');
39
- if (m || c || u || l)
35
+ return await D(t, i, a, u, p, x);
36
+ }, H = async (t, n, r, a) => {
37
+ const [i, e, o] = a.split(","), m = !i || !e || !o, c = e?.substring(0, 2) !== "0x" || o?.substring(0, 2) !== "0x", u = o?.length !== 66 || e?.length > 66 || e?.length < 64, p = a?.includes('"');
38
+ if (m || c || u || p)
40
39
  throw Error(z.RECIPIENT_FORMAT_INCORRECT);
41
- const p = [BigInt(i)], y = [o], s = n.map((d) => [
40
+ const x = [BigInt(i)], y = [e], s = n.map((d) => [
42
41
  new A({ amount: 0n, erc20TokenAddress: d, shieldedPrivateKey: t.userKeys.getShieldedPrivateKey() }),
43
42
  new A({ amount: 0n, erc20TokenAddress: d, shieldedPrivateKey: t.userKeys.getShieldedPrivateKey() })
44
- ]), x = `swapperM${e.length.toString()}x${s[0].length}x1`, E = n.map((d, g) => [
43
+ ]), l = `swapperM${r.length.toString()}x${s[0].length}x1`, E = n.map((d, g) => [
45
44
  new A({
46
- amount: e[g],
45
+ amount: r[g],
47
46
  erc20TokenAddress: d,
48
- randomization: p[g],
47
+ randomization: x[g],
49
48
  stealthAddress: y[g],
50
- encryptionKey: r
49
+ encryptionKey: o
51
50
  })
52
51
  ]), { zkCallData: K, circomData: h, dimData: I } = await C(
53
52
  t.merkleTreeHinkal,
@@ -55,16 +54,16 @@ const k = async (t, n, e) => {
55
54
  s,
56
55
  E,
57
56
  t.userKeys,
58
- x,
57
+ l,
59
58
  0n,
60
59
  await t.getEthereumAddress(),
61
60
  "0x00",
62
- f,
61
+ T,
63
62
  t.getCurrentChainId()
64
- ), w = T(n[0], t.getCurrentChainId());
63
+ ), w = f(n[0], t.getCurrentChainId());
65
64
  if (!w)
66
65
  throw Error("Withdraw Action: No Token Found");
67
- return await D(t, e[0], w, K, h, I);
66
+ return await D(t, r[0], w, K, h, I);
68
67
  };
69
68
  export {
70
69
  k as hinkalDeposit,
@@ -1,4 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../crypto/poseidon.cjs");require("circomlibjs");const s=require("../merkle-tree/MerkleTree.cjs"),u=require("../../functions/utils/amounts.utils.cjs"),m=require("./AbstractSnapshotService.cjs");class p extends m.AbstractSnapshotService{constructor(e,t,n,r){super(e,{name:"NewCommitment",args:["commitment","index","encryptedOutput"]},t,n,r)}_merkleTree;_encryptedOutputs;get merkleTree(){return this._merkleTree}get encryptedOutputs(){return this._encryptedOutputs}serializeSnapshot(e){return{merkleTree:e.payload.merkleTree.toJSON(),latestBlockNumber:e.latestBlockNumber,reserveBlockNumber:e.reserveBlockNumber,encryptedOutputs:e.payload.encryptedOutputs.map(t=>({value:t.value,isPositive:String(t.isPositive)}))}}deserializeSnapshot(e){let t;if(e.latestBlockNumber&&e.merkleTree){const r=new Map(Object.entries(e.merkleTree.tree).map(([c,o])=>[BigInt(c),BigInt(o)]));t=s.MerkleTree.createWithData(r,u.toBigInt(e.merkleTree.index),u.toBigInt(e.merkleTree.count),i.poseidonFunction,25n,0n)}else t=s.MerkleTree.create(i.poseidonFunction,25n,0n);const n=e.encryptedOutputs?.map(r=>({value:r.value,isPositive:JSON.parse(r.isPositive)}));return{latestBlockNumber:e.latestBlockNumber??0,reserveBlockNumber:e.reserveBlockNumber??0,payload:{merkleTree:t,encryptedOutputs:n||[]}}}getSnapshotPayload(){return{merkleTree:this._merkleTree,encryptedOutputs:this._encryptedOutputs}}populateSnapshot({payload:{merkleTree:e,encryptedOutputs:t}}){this._merkleTree=e,this._encryptedOutputs=t}mapEvent(e){const{commitment:t,index:n,encryptedOutput:r}=e;return{commitment:u.toBigInt(t),index:u.toBigInt(n),encryptedOutput:r}}acceptEvent(e,t){if(!this.encryptedOutputs.map(n=>n.value).includes(e.encryptedOutput)){if(this.isServer&&console.log(`Adding commitment to file ${e.commitment} at index ${e.index} for encrypted output ${e.encryptedOutput}. Block Number: ${t}
2
-
3
-
4
- `),!this._merkleTree.insert(e.commitment,e.index>=0?e.index:-1n*e.index))return console.log(`Could not add ${e.commitment} at index ${e.index} `),!1;const r={value:e.encryptedOutput,isPositive:e.index>=0n};return this._encryptedOutputs.push(r),!0}return!1}}exports.AbstractCommitmentsSnapshotService=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../crypto/poseidon.cjs");require("circomlibjs");const c=require("../merkle-tree/MerkleTree.cjs"),u=require("../../functions/utils/amounts.utils.cjs"),m=require("./AbstractSnapshotService.cjs");class p extends m.AbstractSnapshotService{constructor(e,t,n,r){super(e,{name:"NewCommitment",args:["commitment","index","encryptedOutput"]},t,n,r)}_merkleTree;_encryptedOutputs;get merkleTree(){return this._merkleTree}get encryptedOutputs(){return this._encryptedOutputs}serializeSnapshot(e){return{merkleTree:e.payload.merkleTree.toJSON(),latestBlockNumber:e.latestBlockNumber,reserveBlockNumber:e.reserveBlockNumber,encryptedOutputs:e.payload.encryptedOutputs.map(t=>({value:t.value,isPositive:String(t.isPositive)}))}}deserializeSnapshot(e){let t;if(e.latestBlockNumber&&e.merkleTree){const r=new Map(Object.entries(e.merkleTree.tree).map(([i,o])=>[BigInt(i),BigInt(o)]));t=c.MerkleTree.createWithData(r,u.toBigInt(e.merkleTree.index),u.toBigInt(e.merkleTree.count),s.poseidonFunction,25n,0n)}else t=c.MerkleTree.create(s.poseidonFunction,25n,0n);const n=e.encryptedOutputs?.map(r=>({value:r.value,isPositive:JSON.parse(r.isPositive)}));return{latestBlockNumber:e.latestBlockNumber??0,reserveBlockNumber:e.reserveBlockNumber??0,payload:{merkleTree:t,encryptedOutputs:n||[]}}}getSnapshotPayload(){return{merkleTree:this._merkleTree,encryptedOutputs:this._encryptedOutputs}}populateSnapshot({payload:{merkleTree:e,encryptedOutputs:t}}){this._merkleTree=e,this._encryptedOutputs=t}mapEvent(e){const{commitment:t,index:n,encryptedOutput:r}=e;return{commitment:u.toBigInt(t),index:u.toBigInt(n),encryptedOutput:r}}acceptEvent(e,t){if(!this.encryptedOutputs.map(n=>n.value).includes(e.encryptedOutput)){if(!this._merkleTree.insert(e.commitment,e.index>=0?e.index:-1n*e.index))return!1;const r={value:e.encryptedOutput,isPositive:e.index>=0n};return this._encryptedOutputs.push(r),!0}return!1}}exports.AbstractCommitmentsSnapshotService=p;
@@ -1,9 +1,9 @@
1
- import { poseidonFunction as m } from "../../crypto/poseidon.mjs";
1
+ import { poseidonFunction as s } from "../../crypto/poseidon.mjs";
2
2
  import "circomlibjs";
3
- import { MerkleTree as i } from "../merkle-tree/MerkleTree.mjs";
3
+ import { MerkleTree as m } from "../merkle-tree/MerkleTree.mjs";
4
4
  import { toBigInt as n } from "../../functions/utils/amounts.utils.mjs";
5
- import { AbstractSnapshotService as o } from "./AbstractSnapshotService.mjs";
6
- class O extends o {
5
+ import { AbstractSnapshotService as i } from "./AbstractSnapshotService.mjs";
6
+ class O extends i {
7
7
  constructor(e, t, u, r) {
8
8
  super(
9
9
  e,
@@ -39,21 +39,21 @@ class O extends o {
39
39
  let t;
40
40
  if (e.latestBlockNumber && e.merkleTree) {
41
41
  const r = new Map(
42
- Object.entries(e.merkleTree.tree).map(([c, s]) => [
42
+ Object.entries(e.merkleTree.tree).map(([c, p]) => [
43
43
  BigInt(c),
44
- BigInt(s)
44
+ BigInt(p)
45
45
  ])
46
46
  );
47
- t = i.createWithData(
47
+ t = m.createWithData(
48
48
  r,
49
49
  n(e.merkleTree.index),
50
50
  n(e.merkleTree.count),
51
- m,
51
+ s,
52
52
  25n,
53
53
  0n
54
54
  );
55
55
  } else
56
- t = i.create(m, 25n, 0n);
56
+ t = m.create(s, 25n, 0n);
57
57
  const u = e.encryptedOutputs?.map((r) => ({
58
58
  value: r.value,
59
59
  isPositive: JSON.parse(r.isPositive)
@@ -88,13 +88,8 @@ class O extends o {
88
88
  }
89
89
  acceptEvent(e, t) {
90
90
  if (!this.encryptedOutputs.map((u) => u.value).includes(e.encryptedOutput)) {
91
- if (this.isServer && console.log(
92
- `Adding commitment to file ${e.commitment} at index ${e.index} for encrypted output ${e.encryptedOutput}. Block Number: ${t}
93
-
94
-
95
- `
96
- ), !this._merkleTree.insert(e.commitment, e.index >= 0 ? e.index : -1n * e.index))
97
- return console.log(`Could not add ${e.commitment} at index ${e.index} `), !1;
91
+ if (!this._merkleTree.insert(e.commitment, e.index >= 0 ? e.index : -1n * e.index))
92
+ return !1;
98
93
  const r = {
99
94
  value: e.encryptedOutput,
100
95
  isPositive: e.index >= 0n
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("../../constants/chains.constants.cjs");require("../../constants/vite.constants.cjs");require("axios");require("../../constants/coingecko.constants.cjs");const f=require("../../API/API.cjs");require("ethers");require("../../types/curve.types.cjs");const A=require("../../constants/contracts.constants.cjs");require("../../constants/kyc.constants.cjs");require("../../constants/axelar.constants.cjs");require("../../constants/rewards.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const k=require("../../functions/snarkjs/generateZkProof.cjs");require("../../types/circom-data.types.cjs");const q=require("../../types/transactions.types.cjs"),I=require("../../types/time.types.cjs"),x=require("./history/getTxDetails.cjs");require("circomlibjs");const P=require("../../error-handling/error-codes.constants.cjs"),C=require("../crypto-keys/keys.cjs"),w=require("../crypto-keys/encryptDecryptUtxo.cjs"),p=require("../../functions/utils/getDataFromTransaction.cjs"),S=require("../../functions/utils/cacheFunctions.cjs");class v{circuitSize=50;hinkalContract;init(e){this.hinkalContract=e}requireInit(){if(!this.hinkalContract)throw Error("TransactionsManager not initialized")}filterOwnTransactions=async(e,r,t,a)=>{const{transactMethodId:s,transactWithExternalActionMethodId:n,hinkalInterface:i}=A.getHinkalParameters(T.getNonLocalhostChainId(e)),c=o=>"decodedInput"in o,l=r.filter(o=>o.methodId===s||o.methodId===n).map(o=>c(o)?o:{...o,decodedInput:p.decodeTxInput(i,o.input),status:o.isError==="0"?"SUCCESS":"FAILURE"}),h=t.getShieldedPrivateKey();return l.filter(o=>{try{if(c(o)){if(w.decryptUtxo(Buffer.from(o.decodedInput.encryptedOutputs[0].slice(2),"hex"),t),!a&&o.methodId===s){const{extraRandomization:g,H0:y,H1:m}=o.decodedInput.stealthAddressStructure;return C.UserKeys.checkSignature(g,y,m,h)}return!0}return!1}catch{return!1}})};saveTxsInStorage=(e,r,t,a)=>{const s=t.getShieldedPublicKey();return S.saveTxsCache(e,r,s,this.hinkalContract.address,a)};loadTxsFromStorage=async(e,r)=>{const t=r.getShieldedPublicKey();return await S.loadTxsCache(e,t,this.hinkalContract.address)};getAllTransactions=async(e,r,t)=>{if(t){const{transactions:i}=await f.API.userGetTransactions(e,t);return i}const{decodedTxs:a,lastHash:s}=await this.loadTxsFromStorage(e,r),{transactions:n}=await f.API.userGetTransactions(e,t,s);return[...n,...a]};getHinkalHistoryBase=async(e,r,t,a=!1)=>{this.requireInit();const s=await this.getAllTransactions(e,r,t)??[];s.sort((i,c)=>c.timeStamp-i.timeStamp);const n=await this.filterOwnTransactions(e,s,r,a);return!t&&s.length>0&&await this.saveTxsInStorage(n,e,r,s[0].hash),n};getHinkalHistory=async(e,r)=>{const t=await this.getHinkalHistoryBase(e,r,void 0,!0),a=p.decodeTxLogs(e,t);return await Promise.all(a.map(async n=>({...n,status:n.status,details:await x.getTxDetails(e,n.decodedInput,n.utxosArray)})))};sortInBatches=e=>{const r=[];let t=0,a=0;e.forEach(i=>{t===0&&r.push([]),r[a].push(i),t+=1,t===this.circuitSize&&(t=0,a+=1)});const s=r[r.length-1],n=s.length;if(n<this.circuitSize){const i=this.circuitSize-n,c=new Array(i).fill(q.emptyDecodedTx);r[r.length-1]=s.concat(c)}return r};generateTransactionsProof=async(e,r,t)=>{const a=this.sortInBatches(r),s=new Array(a.length).fill([]);for(let n=0;n<a.length;n+=1){const i=a[n].map(d=>d.decodedInput.stealthAddressStructure),c=i.map(d=>d.extraRandomization),u=i.map(d=>d.stealthAddress);console.log({extraRandomizations:c,stealthAddresses:u});const l={shieldedPrivateKey:t,extraRandomizations:c,stealthAddresses:u};console.log({chainId:e,input:l});const{zkCallData:h}=await k.generateZkProof(e,"transactionsProver",l);console.log({zkCallData:h}),s[n]=h}return{zkCallDataArray:s}};userVerifyTransactions=async(e,r,t,a,s,n)=>await f.API.userVerifyTransactions(e,r,t,a,s,n);processAndSendTransactionsForVerification=async(e,r,t,a)=>{this.requireInit();const s=I.getCurrentWeek(),n=a?s-1:s;console.log("retrieving transactions in processAndSendTransactionsForVerification",{week:n});const i=await this.getHinkalHistoryBase(e,r,n);console.log("retrieved transactions",i);let c=[],u=[];i.length>0&&({zkCallDataArray:u}=await this.generateTransactionsProof(e,i,r.getShieldedPrivateKey()),c=i.map(y=>y.hash));const l=r.getBackendToken(),{trade:h,transactions:d,lockedDeposit:o,verification:g}=await this.userVerifyTransactions(e,c,u,l,t,n);return{trade:h,transactions:d,lockedDeposit:o,verification:g}};multiProcessAndSendTransactionsForVerification=async(e,r)=>{console.log("Multi Certify Starts");const t=T.chainIdsByType[T.EthereumNetworkType.Mainnet];let a=!0;for(let s=0;s<t.length;s+=1)try{const{hasCertified:n}=await f.API.verificationStartDate(t[s],r);if(console.log(`certification status for chain ${t[s]} is ${n}`),n)continue;const{trade:i,transactions:c,lockedDeposit:u,verification:l}=await this.processAndSendTransactionsForVerification(t[s],e,r,!0);if(console.log({chainId:t[s],trade:i,totalTransactions:c,lockedDeposit:u,verification:l}),a=a&&l,!a)break}catch(n){console.log(`current chain ${t[s]} certification error`,{err:n}),a=!1;break}if(!a)throw Error(P.transactionErrorCodes.MULTI_VERIFICATION_FAILED);return!0}}exports.TransactionsManager=v;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("../../constants/chains.constants.cjs");require("../../constants/vite.constants.cjs");require("axios");require("../../constants/coingecko.constants.cjs");const y=require("../../API/API.cjs");require("ethers");require("../../types/curve.types.cjs");const A=require("../../constants/contracts.constants.cjs");require("../../constants/kyc.constants.cjs");require("../../constants/axelar.constants.cjs");require("../../constants/rewards.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const k=require("../../functions/snarkjs/generateZkProof.cjs");require("../../types/circom-data.types.cjs");const q=require("../../types/transactions.types.cjs"),I=require("../../types/time.types.cjs"),x=require("./history/getTxDetails.cjs");require("circomlibjs");const P=require("../../error-handling/error-codes.constants.cjs"),w=require("../crypto-keys/keys.cjs"),C=require("../crypto-keys/encryptDecryptUtxo.cjs"),p=require("../../functions/utils/getDataFromTransaction.cjs"),S=require("../../functions/utils/cacheFunctions.cjs");class v{circuitSize=50;hinkalContract;init(e){this.hinkalContract=e}requireInit(){if(!this.hinkalContract)throw Error("TransactionsManager not initialized")}filterOwnTransactions=async(e,t,r,n)=>{const{transactMethodId:s,transactWithExternalActionMethodId:a,hinkalInterface:i}=A.getHinkalParameters(T.getNonLocalhostChainId(e)),c=o=>"decodedInput"in o,d=t.filter(o=>o.methodId===s||o.methodId===a).map(o=>c(o)?o:{...o,decodedInput:p.decodeTxInput(i,o.input),status:o.isError==="0"?"SUCCESS":"FAILURE"}),h=r.getShieldedPrivateKey();return d.filter(o=>{try{if(c(o)){if(C.decryptUtxo(Buffer.from(o.decodedInput.encryptedOutputs[0].slice(2),"hex"),r),!n&&o.methodId===s){const{extraRandomization:f,H0:g,H1:m}=o.decodedInput.stealthAddressStructure;return w.UserKeys.checkSignature(f,g,m,h)}return!0}return!1}catch{return!1}})};saveTxsInStorage=(e,t,r,n)=>{const s=r.getShieldedPublicKey();return S.saveTxsCache(e,t,s,this.hinkalContract.address,n)};loadTxsFromStorage=async(e,t)=>{const r=t.getShieldedPublicKey();return await S.loadTxsCache(e,r,this.hinkalContract.address)};getAllTransactions=async(e,t,r)=>{if(r){const{transactions:i}=await y.API.userGetTransactions(e,r);return i}const{decodedTxs:n,lastHash:s}=await this.loadTxsFromStorage(e,t),{transactions:a}=await y.API.userGetTransactions(e,r,s);return[...a,...n]};getHinkalHistoryBase=async(e,t,r,n=!1)=>{this.requireInit();const s=await this.getAllTransactions(e,t,r)??[];s.sort((i,c)=>c.timeStamp-i.timeStamp);const a=await this.filterOwnTransactions(e,s,t,n);return!r&&s.length>0&&await this.saveTxsInStorage(a,e,t,s[0].hash),a};getHinkalHistory=async(e,t)=>{const r=await this.getHinkalHistoryBase(e,t,void 0,!0),n=p.decodeTxLogs(e,r);return await Promise.all(n.map(async a=>({...a,status:a.status,details:await x.getTxDetails(e,a.decodedInput,a.utxosArray)})))};sortInBatches=e=>{const t=[];let r=0,n=0;e.forEach(i=>{r===0&&t.push([]),t[n].push(i),r+=1,r===this.circuitSize&&(r=0,n+=1)});const s=t[t.length-1],a=s.length;if(a<this.circuitSize){const i=this.circuitSize-a,c=new Array(i).fill(q.emptyDecodedTx);t[t.length-1]=s.concat(c)}return t};generateTransactionsProof=async(e,t,r)=>{const n=this.sortInBatches(t),s=new Array(n.length).fill([]);for(let a=0;a<n.length;a+=1){const i=n[a].map(u=>u.decodedInput.stealthAddressStructure),c=i.map(u=>u.extraRandomization),l=i.map(u=>u.stealthAddress),d={shieldedPrivateKey:r,extraRandomizations:c,stealthAddresses:l},{zkCallData:h}=await k.generateZkProof(e,"transactionsProver",d);s[a]=h}return{zkCallDataArray:s}};userVerifyTransactions=async(e,t,r,n,s,a)=>await y.API.userVerifyTransactions(e,t,r,n,s,a);processAndSendTransactionsForVerification=async(e,t,r,n)=>{this.requireInit();const s=I.getCurrentWeek(),a=n?s-1:s,i=await this.getHinkalHistoryBase(e,t,a);let c=[],l=[];i.length>0&&({zkCallDataArray:l}=await this.generateTransactionsProof(e,i,t.getShieldedPrivateKey()),c=i.map(g=>g.hash));const d=t.getBackendToken(),{trade:h,transactions:u,lockedDeposit:o,verification:f}=await this.userVerifyTransactions(e,c,l,d,r,a);return{trade:h,transactions:u,lockedDeposit:o,verification:f}};multiProcessAndSendTransactionsForVerification=async(e,t)=>{const r=T.chainIdsByType[T.EthereumNetworkType.Mainnet];let n=!0;for(let s=0;s<r.length;s+=1)try{const{hasCertified:a}=await y.API.verificationStartDate(r[s],t);if(a)continue;const{verification:i}=await this.processAndSendTransactionsForVerification(r[s],e,t,!0);if(n=n&&i,!n)break}catch(a){console.log(`current chain ${r[s]} certification error`,{err:a}),n=!1;break}if(!n)throw Error(P.transactionErrorCodes.MULTI_VERIFICATION_FAILED);return!0}}exports.TransactionsManager=v;
@@ -1,8 +1,8 @@
1
- import { getNonLocalhostChainId as T, chainIdsByType as y, EthereumNetworkType as S } from "../../constants/chains.constants.mjs";
1
+ import { getNonLocalhostChainId as g, chainIdsByType as y, EthereumNetworkType as S } from "../../constants/chains.constants.mjs";
2
2
  import "../../constants/vite.constants.mjs";
3
3
  import "axios";
4
4
  import "../../constants/coingecko.constants.mjs";
5
- import { API as m } from "../../API/API.mjs";
5
+ import { API as f } from "../../API/API.mjs";
6
6
  import "ethers";
7
7
  import "../../types/curve.types.mjs";
8
8
  import { getHinkalParameters as k } from "../../constants/contracts.constants.mjs";
@@ -18,8 +18,8 @@ import { getTxDetails as w } from "./history/getTxDetails.mjs";
18
18
  import "circomlibjs";
19
19
  import { transactionErrorCodes as C } from "../../error-handling/error-codes.constants.mjs";
20
20
  import { UserKeys as P } from "../crypto-keys/keys.mjs";
21
- import { decryptUtxo as v } from "../crypto-keys/encryptDecryptUtxo.mjs";
22
- import { decodeTxInput as H, decodeTxLogs as z } from "../../functions/utils/getDataFromTransaction.mjs";
21
+ import { decryptUtxo as H } from "../crypto-keys/encryptDecryptUtxo.mjs";
22
+ import { decodeTxInput as v, decodeTxLogs as z } from "../../functions/utils/getDataFromTransaction.mjs";
23
23
  import { saveTxsCache as E, loadTxsCache as b } from "../../functions/utils/cacheFunctions.mjs";
24
24
  class et {
25
25
  circuitSize = 50;
@@ -31,22 +31,22 @@ class et {
31
31
  if (!this.hinkalContract)
32
32
  throw Error("TransactionsManager not initialized");
33
33
  }
34
- filterOwnTransactions = async (r, e, t, n) => {
34
+ filterOwnTransactions = async (r, t, e, n) => {
35
35
  const { transactMethodId: a, transactWithExternalActionMethodId: s, hinkalInterface: i } = k(
36
- T(r)
37
- ), c = (o) => "decodedInput" in o, l = e.filter(
36
+ g(r)
37
+ ), c = (o) => "decodedInput" in o, h = t.filter(
38
38
  (o) => o.methodId === a || o.methodId === s
39
39
  ).map((o) => c(o) ? o : {
40
40
  ...o,
41
- decodedInput: H(i, o.input),
41
+ decodedInput: v(i, o.input),
42
42
  status: o.isError === "0" ? "SUCCESS" : "FAILURE"
43
- }), u = t.getShieldedPrivateKey();
44
- return l.filter((o) => {
43
+ }), u = e.getShieldedPrivateKey();
44
+ return h.filter((o) => {
45
45
  try {
46
46
  if (c(o)) {
47
- if (v(Buffer.from(o.decodedInput.encryptedOutputs[0].slice(2), "hex"), t), !n && o.methodId === a) {
48
- const { extraRandomization: f, H0: p, H1: g } = o.decodedInput.stealthAddressStructure;
49
- return P.checkSignature(f, p, g, u);
47
+ if (H(Buffer.from(o.decodedInput.encryptedOutputs[0].slice(2), "hex"), e), !n && o.methodId === a) {
48
+ const { extraRandomization: m, H0: p, H1: T } = o.decodedInput.stealthAddressStructure;
49
+ return P.checkSignature(m, p, T, u);
50
50
  }
51
51
  return !0;
52
52
  }
@@ -56,31 +56,31 @@ class et {
56
56
  }
57
57
  });
58
58
  };
59
- saveTxsInStorage = (r, e, t, n) => {
60
- const a = t.getShieldedPublicKey();
61
- return E(r, e, a, this.hinkalContract.address, n);
59
+ saveTxsInStorage = (r, t, e, n) => {
60
+ const a = e.getShieldedPublicKey();
61
+ return E(r, t, a, this.hinkalContract.address, n);
62
62
  };
63
- loadTxsFromStorage = async (r, e) => {
64
- const t = e.getShieldedPublicKey();
65
- return await b(r, t, this.hinkalContract.address);
63
+ loadTxsFromStorage = async (r, t) => {
64
+ const e = t.getShieldedPublicKey();
65
+ return await b(r, e, this.hinkalContract.address);
66
66
  };
67
- getAllTransactions = async (r, e, t) => {
68
- if (t) {
69
- const { transactions: i } = await m.userGetTransactions(r, t);
67
+ getAllTransactions = async (r, t, e) => {
68
+ if (e) {
69
+ const { transactions: i } = await f.userGetTransactions(r, e);
70
70
  return i;
71
71
  }
72
- const { decodedTxs: n, lastHash: a } = await this.loadTxsFromStorage(r, e), { transactions: s } = await m.userGetTransactions(r, t, a);
72
+ const { decodedTxs: n, lastHash: a } = await this.loadTxsFromStorage(r, t), { transactions: s } = await f.userGetTransactions(r, e, a);
73
73
  return [...s, ...n];
74
74
  };
75
- getHinkalHistoryBase = async (r, e, t, n = !1) => {
75
+ getHinkalHistoryBase = async (r, t, e, n = !1) => {
76
76
  this.requireInit();
77
- const a = await this.getAllTransactions(r, e, t) ?? [];
77
+ const a = await this.getAllTransactions(r, t, e) ?? [];
78
78
  a.sort((i, c) => c.timeStamp - i.timeStamp);
79
- const s = await this.filterOwnTransactions(r, a, e, n);
80
- return !t && a.length > 0 && await this.saveTxsInStorage(s, r, e, a[0].hash), s;
79
+ const s = await this.filterOwnTransactions(r, a, t, n);
80
+ return !e && a.length > 0 && await this.saveTxsInStorage(s, r, t, a[0].hash), s;
81
81
  };
82
- getHinkalHistory = async (r, e) => {
83
- const t = await this.getHinkalHistoryBase(r, e, void 0, !0), n = z(r, t);
82
+ getHinkalHistory = async (r, t) => {
83
+ const e = await this.getHinkalHistoryBase(r, t, void 0, !0), n = z(r, e);
84
84
  return await Promise.all(
85
85
  n.map(async (s) => ({
86
86
  ...s,
@@ -90,90 +90,82 @@ class et {
90
90
  );
91
91
  };
92
92
  sortInBatches = (r) => {
93
- const e = [];
94
- let t = 0, n = 0;
93
+ const t = [];
94
+ let e = 0, n = 0;
95
95
  r.forEach((i) => {
96
- t === 0 && e.push([]), e[n].push(i), t += 1, t === this.circuitSize && (t = 0, n += 1);
96
+ e === 0 && t.push([]), t[n].push(i), e += 1, e === this.circuitSize && (e = 0, n += 1);
97
97
  });
98
- const a = e[e.length - 1], s = a.length;
98
+ const a = t[t.length - 1], s = a.length;
99
99
  if (s < this.circuitSize) {
100
100
  const i = this.circuitSize - s, c = new Array(i).fill(I);
101
- e[e.length - 1] = a.concat(c);
101
+ t[t.length - 1] = a.concat(c);
102
102
  }
103
- return e;
103
+ return t;
104
104
  };
105
- generateTransactionsProof = async (r, e, t) => {
106
- const n = this.sortInBatches(e), a = new Array(n.length).fill([]);
105
+ generateTransactionsProof = async (r, t, e) => {
106
+ const n = this.sortInBatches(t), a = new Array(n.length).fill([]);
107
107
  for (let s = 0; s < n.length; s += 1) {
108
108
  const i = n[s].map(
109
- (h) => h.decodedInput.stealthAddressStructure
110
- ), c = i.map((h) => h.extraRandomization), d = i.map((h) => h.stealthAddress);
111
- console.log({ extraRandomizations: c, stealthAddresses: d });
112
- const l = {
113
- shieldedPrivateKey: t,
109
+ (l) => l.decodedInput.stealthAddressStructure
110
+ ), c = i.map((l) => l.extraRandomization), d = i.map((l) => l.stealthAddress), h = {
111
+ shieldedPrivateKey: e,
114
112
  extraRandomizations: c,
115
113
  stealthAddresses: d
116
- };
117
- console.log({ chainId: r, input: l });
118
- const { zkCallData: u } = await A(r, "transactionsProver", l);
119
- console.log({ zkCallData: u }), a[s] = u;
114
+ }, { zkCallData: u } = await A(r, "transactionsProver", h);
115
+ a[s] = u;
120
116
  }
121
117
  return { zkCallDataArray: a };
122
118
  };
123
- userVerifyTransactions = async (r, e, t, n, a, s) => await m.userVerifyTransactions(
119
+ userVerifyTransactions = async (r, t, e, n, a, s) => await f.userVerifyTransactions(
124
120
  r,
125
- e,
126
121
  t,
122
+ e,
127
123
  n,
128
124
  a,
129
125
  s
130
126
  );
131
- processAndSendTransactionsForVerification = async (r, e, t, n) => {
127
+ processAndSendTransactionsForVerification = async (r, t, e, n) => {
132
128
  this.requireInit();
133
- const a = x(), s = n ? a - 1 : a;
134
- console.log("retrieving transactions in processAndSendTransactionsForVerification", { week: s });
135
- const i = await this.getHinkalHistoryBase(r, e, s);
136
- console.log("retrieved transactions", i);
129
+ const a = x(), s = n ? a - 1 : a, i = await this.getHinkalHistoryBase(r, t, s);
137
130
  let c = [], d = [];
138
131
  i.length > 0 && ({ zkCallDataArray: d } = await this.generateTransactionsProof(
139
132
  r,
140
133
  i,
141
- e.getShieldedPrivateKey()
134
+ t.getShieldedPrivateKey()
142
135
  ), c = i.map((p) => p.hash));
143
- const l = e.getBackendToken(), {
136
+ const h = t.getBackendToken(), {
144
137
  trade: u,
145
- transactions: h,
138
+ transactions: l,
146
139
  lockedDeposit: o,
147
- verification: f
140
+ verification: m
148
141
  } = await this.userVerifyTransactions(
149
142
  r,
150
143
  c,
151
144
  d,
152
- l,
153
- t,
145
+ h,
146
+ e,
154
147
  s
155
148
  );
156
- return { trade: u, transactions: h, lockedDeposit: o, verification: f };
149
+ return { trade: u, transactions: l, lockedDeposit: o, verification: m };
157
150
  };
158
- multiProcessAndSendTransactionsForVerification = async (r, e) => {
159
- console.log("Multi Certify Starts");
160
- const t = y[S.Mainnet];
151
+ multiProcessAndSendTransactionsForVerification = async (r, t) => {
152
+ const e = y[S.Mainnet];
161
153
  let n = !0;
162
- for (let a = 0; a < t.length; a += 1)
154
+ for (let a = 0; a < e.length; a += 1)
163
155
  try {
164
- const { hasCertified: s } = await m.verificationStartDate(t[a], e);
165
- if (console.log(`certification status for chain ${t[a]} is ${s}`), s)
156
+ const { hasCertified: s } = await f.verificationStartDate(e[a], t);
157
+ if (s)
166
158
  continue;
167
- const {
168
- trade: i,
169
- transactions: c,
170
- lockedDeposit: d,
171
- verification: l
172
- } = await this.processAndSendTransactionsForVerification(t[a], r, e, !0);
173
- if (console.log({ chainId: t[a], trade: i, totalTransactions: c, lockedDeposit: d, verification: l }), n = n && l, !n)
159
+ const { verification: i } = await this.processAndSendTransactionsForVerification(
160
+ e[a],
161
+ r,
162
+ t,
163
+ !0
164
+ );
165
+ if (n = n && i, !n)
174
166
  break;
175
167
  } catch (s) {
176
- console.log(`current chain ${t[a]} certification error`, { err: s }), n = !1;
168
+ console.log(`current chain ${e[a]} certification error`, { err: s }), n = !1;
177
169
  break;
178
170
  }
179
171
  if (!n)
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./history.types.cjs");require("../../../types/circom-data.types.cjs");const u=require("../../../types/hinkal.types.cjs");require("../../../types/transactions.types.cjs");require("../../../types/curve.types.cjs");const d=require("../../../functions/utils/erc20tokenFunctions.cjs"),a=require("../../../functions/utils/caseInsensitive.utils.cjs"),v=require("../../../constants/token-data/ERC20Registry.cjs"),y=require("../../volatile-helper/VolatileHelper.cjs"),B=async(n,f,s)=>{const c=v.getERC20Registry(s),{externalActionMetadata:V}=n,{volatileAmounts:k,redirectActionId:q,volatileAction:T}=y.VolatileHelper.decodeVolatileMetadata(V);if(T===u.VolatileAction.Deposit){const r=n.erc20TokenAddresses[0],e=c.find(o=>a.caseInsensitiveEqual(o.sharedAddress,r));if(!e)throw Error("Volatile not found in statistics");return{tokenWithBalance:{token:d.getERC20Token(e.erc20TokenAddress,s)??{erc20TokenAddress:e.erc20TokenAddress},balance:k[0].toBigInt()},type:l.TransactionType.DEPOSIT}}if(T===u.VolatileAction.Withdraw){const r=n.erc20TokenAddresses[0],e=c.find(o=>a.caseInsensitiveEqual(o.sharedAddress,r));if(!e)throw Error("Volatile not found in statistics");return{tokenWithBalance:{token:d.getERC20Token(e.erc20TokenAddress,s)??{erc20TokenAddress:e.erc20TokenAddress},balance:k[0].toBigInt()},type:l.TransactionType.WITHDRAW}}if(T===u.VolatileAction.Swap){const r=n.erc20TokenAddresses[0],e=n.erc20TokenAddresses[1],A=n.amountChanges[0].toBigInt(),i=c.find(t=>a.caseInsensitiveEqual(t.sharedAddress,r)),o=c.find(t=>a.caseInsensitiveEqual(t.sharedAddress,e));if(!i&&!o)throw Error("Volatile not found in swap statistics");const p={token:d.getERC20Token(i?i.erc20TokenAddress:r,s),balance:i?k[0].toBigInt():A},g=f.find(t=>a.caseInsensitiveEqual(t.erc20TokenAddress,e));let E={token:d.getERC20Token(e,s),balance:g?.amount};if(o){const t=await y.VolatileHelper.getVolatileTokenBalance(s,e,g?.amount??0n);console.log("VOLATILE OUTPUT BALANCE: ",{balance:t}),E={token:o,balance:t}}return{tokenIn:p,tokenOut:E,type:l.TransactionType.SWAP,protocol:q.toBigInt()}}return{type:l.TransactionType.UNKNOWN}};exports.getVolatileData=B;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./history.types.cjs");require("../../../types/circom-data.types.cjs");const A=require("../../../types/hinkal.types.cjs");require("../../../types/transactions.types.cjs");require("../../../types/curve.types.cjs");const d=require("../../../functions/utils/erc20tokenFunctions.cjs"),a=require("../../../functions/utils/caseInsensitive.utils.cjs"),v=require("../../../constants/token-data/ERC20Registry.cjs"),E=require("../../volatile-helper/VolatileHelper.cjs"),h=async(o,f,s)=>{const c=v.getERC20Registry(s),{externalActionMetadata:V}=o,{volatileAmounts:k,redirectActionId:q,volatileAction:T}=E.VolatileHelper.decodeVolatileMetadata(V);if(T===A.VolatileAction.Deposit){const r=o.erc20TokenAddresses[0],e=c.find(t=>a.caseInsensitiveEqual(t.sharedAddress,r));if(!e)throw Error("Volatile not found in statistics");return{tokenWithBalance:{token:d.getERC20Token(e.erc20TokenAddress,s)??{erc20TokenAddress:e.erc20TokenAddress},balance:k[0].toBigInt()},type:l.TransactionType.DEPOSIT}}if(T===A.VolatileAction.Withdraw){const r=o.erc20TokenAddresses[0],e=c.find(t=>a.caseInsensitiveEqual(t.sharedAddress,r));if(!e)throw Error("Volatile not found in statistics");return{tokenWithBalance:{token:d.getERC20Token(e.erc20TokenAddress,s)??{erc20TokenAddress:e.erc20TokenAddress},balance:k[0].toBigInt()},type:l.TransactionType.WITHDRAW}}if(T===A.VolatileAction.Swap){const r=o.erc20TokenAddresses[0],e=o.erc20TokenAddresses[1],u=o.amountChanges[0].toBigInt(),i=c.find(n=>a.caseInsensitiveEqual(n.sharedAddress,r)),t=c.find(n=>a.caseInsensitiveEqual(n.sharedAddress,e));if(!i&&!t)throw Error("Volatile not found in swap statistics");const p={token:d.getERC20Token(i?i.erc20TokenAddress:r,s),balance:i?k[0].toBigInt():u},g=f.find(n=>a.caseInsensitiveEqual(n.erc20TokenAddress,e));let y={token:d.getERC20Token(e,s),balance:g?.amount};if(t){const n=await E.VolatileHelper.getVolatileTokenBalance(s,e,g?.amount??0n);y={token:t,balance:n}}return{tokenIn:p,tokenOut:y,type:l.TransactionType.SWAP,protocol:q.toBigInt()}}return{type:l.TransactionType.UNKNOWN}};exports.getVolatileData=h;