@gurge/sdk 0.3.27 → 0.3.28

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 (140) hide show
  1. package/common/src/crypto/BabyJubRN.cjs +1 -0
  2. package/common/src/crypto/BabyJubRN.d.ts +2 -0
  3. package/common/src/crypto/BabyJubRN.mjs +66 -0
  4. package/common/src/crypto/EddsaRN.cjs +1 -0
  5. package/common/src/crypto/EddsaRN.mjs +41 -0
  6. package/common/src/crypto/babyJub.cjs +1 -1
  7. package/common/src/crypto/babyJub.mjs +6 -12
  8. package/common/src/crypto/eddsa.cjs +1 -1
  9. package/common/src/crypto/eddsa.mjs +6 -12
  10. package/common/src/crypto/poseidon.cjs +1 -1
  11. package/common/src/crypto/poseidon.mjs +6 -12
  12. package/common/src/crypto/preProcessing.cjs +1 -1
  13. package/common/src/crypto/preProcessing.mjs +13 -23
  14. package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
  15. package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +9 -9
  16. package/common/src/data-structures/Hinkal/hinkalClaimUtxo.cjs +1 -1
  17. package/common/src/data-structures/Hinkal/hinkalClaimUtxo.mjs +6 -6
  18. package/common/src/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
  19. package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +1 -1
  20. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
  21. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.mjs +18 -18
  22. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
  23. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +17 -17
  24. package/common/src/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
  25. package/common/src/data-structures/Hinkal/hinkalPrivateWallet.mjs +13 -13
  26. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +1 -1
  27. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.mjs +11 -11
  28. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
  29. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.mjs +14 -14
  30. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
  31. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +51 -51
  32. package/common/src/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
  33. package/common/src/data-structures/Hinkal/hinkalSolanaSwap.mjs +51 -51
  34. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
  35. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.mjs +20 -20
  36. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
  37. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +19 -19
  38. package/common/src/data-structures/Hinkal/hinkalSwap.cjs +1 -1
  39. package/common/src/data-structures/Hinkal/hinkalSwap.mjs +1 -1
  40. package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
  41. package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +9 -9
  42. package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
  43. package/common/src/data-structures/Hinkal/hinkalWithdraw.d.ts +3 -1
  44. package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +35 -46
  45. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
  46. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +33 -33
  47. package/common/src/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.cjs +1 -1
  48. package/common/src/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.mjs +1 -1
  49. package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs +1 -1
  50. package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs +26 -42
  51. package/common/src/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
  52. package/common/src/data-structures/crypto-keys/decodeUTXO.mjs +7 -7
  53. package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.cjs +1 -1
  54. package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.mjs +1 -1
  55. package/common/src/data-structures/utxo/Utxo.cjs +1 -1
  56. package/common/src/data-structures/utxo/Utxo.d.ts +0 -1
  57. package/common/src/data-structures/utxo/Utxo.mjs +6 -19
  58. package/common/src/functions/index.cjs +1 -1
  59. package/common/src/functions/index.mjs +4 -3
  60. package/common/src/functions/pre-transaction/buildCommitmentValidationData.cjs +1 -1
  61. package/common/src/functions/pre-transaction/buildCommitmentValidationData.mjs +43 -86
  62. package/common/src/functions/pre-transaction/outputUtxoProcessing.cjs +1 -1
  63. package/common/src/functions/pre-transaction/outputUtxoProcessing.d.ts +2 -2
  64. package/common/src/functions/pre-transaction/outputUtxoProcessing.mjs +22 -28
  65. package/common/src/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
  66. package/common/src/functions/private-wallet/emporium.swap.helpers.mjs +14 -14
  67. package/common/src/functions/snarkjs/common.snarkjs.cjs +1 -1
  68. package/common/src/functions/snarkjs/common.snarkjs.mjs +7 -7
  69. package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
  70. package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +60 -67
  71. package/common/src/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
  72. package/common/src/functions/snarkjs/constructSolanaZkProof.mjs +60 -60
  73. package/common/src/functions/snarkjs/verifyCommitmentValidationData.cjs +1 -1
  74. package/common/src/functions/snarkjs/verifyCommitmentValidationData.mjs +1 -1
  75. package/common/src/functions/utils/bigint-math.utils.cjs +1 -1
  76. package/common/src/functions/utils/bigint-math.utils.d.ts +2 -0
  77. package/common/src/functions/utils/bigint-math.utils.mjs +18 -1
  78. package/common/src/functions/utils/buildClaimableDepositPlan.cjs +1 -1
  79. package/common/src/functions/utils/buildClaimableDepositPlan.mjs +1 -1
  80. package/common/src/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
  81. package/common/src/functions/utils/getUtxosFromReceipt.utils.mjs +1 -1
  82. package/common/src/functions/utils/getUtxosFromReceiptSolana.cjs +1 -1
  83. package/common/src/functions/utils/getUtxosFromReceiptSolana.mjs +4 -4
  84. package/common/src/functions/utils/index.cjs +1 -1
  85. package/common/src/functions/utils/index.mjs +3 -3
  86. package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
  87. package/common/src/functions/web3/events/getInputUtxoAndBalance.mjs +71 -122
  88. package/common/src/functions/web3/events/getShieldedBalance.cjs +1 -1
  89. package/common/src/functions/web3/events/getShieldedBalance.mjs +64 -64
  90. package/common/src/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
  91. package/common/src/functions/web3/functionCalls/transactCallRelayer.mjs +42 -42
  92. package/common/src/types/index.cjs +1 -1
  93. package/common/src/types/index.mjs +1 -1
  94. package/common/src/webworker/logError-D8yBaP96.js +2 -0
  95. package/common/src/webworker/package.json +1 -1
  96. package/common/src/webworker/performTaskWithWorker.cjs +1 -1
  97. package/common/src/webworker/performTaskWithWorker.mjs +17 -18
  98. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
  99. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
  100. package/common/src/webworker/utxoWorkerNode.cjs +1 -1
  101. package/common/src/webworker/viteWorkerURL.constant.cjs +3 -4
  102. package/common/src/webworker/viteWorkerURL.constant.d.ts +0 -1
  103. package/common/src/webworker/viteWorkerURL.constant.mjs +3 -4
  104. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
  105. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
  106. package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
  107. package/package.json +1 -1
  108. package/react-native/HinkalWebViewWorker.cjs +4 -76
  109. package/react-native/HinkalWebViewWorker.mjs +49 -152
  110. package/react-native/bridge/HinkalRNWorker.cjs +1 -1
  111. package/react-native/bridge/HinkalRNWorker.d.ts +0 -1
  112. package/react-native/bridge/HinkalRNWorker.mjs +11 -16
  113. package/react-native/shims/circomlibjs-hinkal-fork.js +2 -2
  114. package/react-native/shims/circomlibjs.js +2 -2
  115. package/react-native/workerCDNUrls.cjs +1 -1
  116. package/react-native/workerCDNUrls.d.ts +0 -1
  117. package/react-native/workerCDNUrls.mjs +2 -2
  118. package/sdk/package.json.cjs +1 -1
  119. package/sdk/package.json.mjs +1 -1
  120. package/common/src/crypto/rnCryptoBridge.cjs +0 -1
  121. package/common/src/crypto/rnCryptoBridge.d.ts +0 -8
  122. package/common/src/crypto/rnCryptoBridge.mjs +0 -10
  123. package/common/src/crypto/rnUtxoCrypto.cjs +0 -1
  124. package/common/src/crypto/rnUtxoCrypto.d.ts +0 -25
  125. package/common/src/crypto/rnUtxoCrypto.mjs +0 -74
  126. package/common/src/functions/utils/hinkalTiming.utils.cjs +0 -1
  127. package/common/src/functions/utils/hinkalTiming.utils.d.ts +0 -11
  128. package/common/src/functions/utils/hinkalTiming.utils.mjs +0 -21
  129. package/common/src/functions/utils/utxoPadding.utils.cjs +0 -1
  130. package/common/src/functions/utils/utxoPadding.utils.d.ts +0 -2
  131. package/common/src/functions/utils/utxoPadding.utils.mjs +0 -14
  132. package/common/src/webworker/cryptoWorker/cryptoWorker.types.cjs +0 -1
  133. package/common/src/webworker/cryptoWorker/cryptoWorker.types.d.ts +0 -51
  134. package/common/src/webworker/cryptoWorker/cryptoWorker.types.mjs +0 -6
  135. package/common/src/webworker/cryptoWorker/cryptoWorkerLauncher.d.ts +0 -1
  136. package/common/src/webworker/cryptoWorker/cryptoWorkerLogic.d.ts +0 -2
  137. package/common/src/webworker/logError-Dy_GXEF5.js +0 -2
  138. package/react-native/bridge/RnWebViewCryptoBridge.cjs +0 -1
  139. package/react-native/bridge/RnWebViewCryptoBridge.d.ts +0 -7
  140. package/react-native/bridge/RnWebViewCryptoBridge.mjs +0 -49
@@ -0,0 +1 @@
1
+ const e=require(`../constants/protocol.constants.cjs`),t=require(`../functions/utils/bigint-math.utils.cjs`);var n={p:e.CIRCOM_P,zero:0n,one:1n,e:e=>t.mod(BigInt(e)),add:(e,n)=>t.mod(e+n),sub:(e,n)=>t.mod(e-n),mul:(e,n)=>t.mod(e*n),div:(e,n)=>{if(n===0n)throw Error(`Division by zero in BabyJub field`);return t.mod(e*t.modInverse(n))},toString:e=>t.mod(e).toString()},r={X:n.zero,Y:n.one,Z:n.one,T:n.zero},i=e=>{let t=n.e(e[0]),r=n.e(e[1]);return{X:t,Y:r,Z:n.one,T:n.mul(t,r)}},a=e=>{let r=t.modInverse(e.Z);return[n.mul(e.X,r),n.mul(e.Y,r)]},o=n.e(`168700`),s=n.e(`168696`),c=(e,t)=>{let r=n.mul(e.X,t.X),i=n.mul(e.Y,t.Y),a=n.mul(n.mul(e.T,t.T),s),c=n.mul(e.Z,t.Z),l=n.sub(n.mul(n.add(e.X,e.Y),n.add(t.X,t.Y)),n.add(r,i)),u=n.sub(c,a),d=n.add(c,a),f=n.sub(i,n.mul(o,r));return{X:n.mul(l,u),Y:n.mul(d,f),T:n.mul(l,f),Z:n.mul(u,d)}},l=e=>{let t=n.mul(e.X,e.X),r=n.mul(e.Y,e.Y),i=n.mul(n.mul(e.Z,e.Z),2n),a=n.mul(o,t),s=n.sub(n.mul(n.add(e.X,e.Y),n.add(e.X,e.Y)),n.add(t,r)),c=n.add(a,r),l=n.sub(c,i),u=n.sub(a,r);return{X:n.mul(s,l),Y:n.mul(c,u),T:n.mul(s,u),Z:n.mul(l,c)}},u=class{static A=o;static D=s;F=n;A=o;D=s;Base8=[n.e(`5299619240641551281634865583518297030282874472190772894086521144482721001553`),n.e(`16950150798460657717958625567821834550301663161624707787222815936182638968203`)];addPoint(e,t){return a(c(i(e),i(t)))}mulPointEscalar(e,t){let n=r,o=i(e),s=BigInt(t);for(;s!==0n;)s%2n==1n&&(n=c(n,o)),o=l(o),s/=2n;return a(n)}};exports.BabyJubRN=u;
@@ -1,4 +1,6 @@
1
1
  export declare class BabyJubRN {
2
+ static readonly A: bigint;
3
+ static readonly D: bigint;
2
4
  F: {
3
5
  p: bigint;
4
6
  zero: bigint;
@@ -0,0 +1,66 @@
1
+ import { CIRCOM_P as e } from "../constants/protocol.constants.mjs";
2
+ import { mod as t, modInverse as n } from "../functions/utils/bigint-math.utils.mjs";
3
+ //#region libs/shared/common/src/crypto/BabyJubRN.ts
4
+ var r = {
5
+ p: e,
6
+ zero: 0n,
7
+ one: 1n,
8
+ e: (e) => t(BigInt(e)),
9
+ add: (e, n) => t(e + n),
10
+ sub: (e, n) => t(e - n),
11
+ mul: (e, n) => t(e * n),
12
+ div: (e, r) => {
13
+ if (r === 0n) throw Error("Division by zero in BabyJub field");
14
+ return t(e * n(r));
15
+ },
16
+ toString: (e) => t(e).toString()
17
+ }, i = {
18
+ X: r.zero,
19
+ Y: r.one,
20
+ Z: r.one,
21
+ T: r.zero
22
+ }, a = (e) => {
23
+ let t = r.e(e[0]), n = r.e(e[1]);
24
+ return {
25
+ X: t,
26
+ Y: n,
27
+ Z: r.one,
28
+ T: r.mul(t, n)
29
+ };
30
+ }, o = (e) => {
31
+ let t = n(e.Z);
32
+ return [r.mul(e.X, t), r.mul(e.Y, t)];
33
+ }, s = r.e("168700"), c = r.e("168696"), l = (e, t) => {
34
+ let n = r.mul(e.X, t.X), i = r.mul(e.Y, t.Y), a = r.mul(r.mul(e.T, t.T), c), o = r.mul(e.Z, t.Z), l = r.sub(r.mul(r.add(e.X, e.Y), r.add(t.X, t.Y)), r.add(n, i)), u = r.sub(o, a), d = r.add(o, a), f = r.sub(i, r.mul(s, n));
35
+ return {
36
+ X: r.mul(l, u),
37
+ Y: r.mul(d, f),
38
+ T: r.mul(l, f),
39
+ Z: r.mul(u, d)
40
+ };
41
+ }, u = (e) => {
42
+ let t = r.mul(e.X, e.X), n = r.mul(e.Y, e.Y), i = r.mul(r.mul(e.Z, e.Z), 2n), a = r.mul(s, t), o = r.sub(r.mul(r.add(e.X, e.Y), r.add(e.X, e.Y)), r.add(t, n)), c = r.add(a, n), l = r.sub(c, i), u = r.sub(a, n);
43
+ return {
44
+ X: r.mul(o, l),
45
+ Y: r.mul(c, u),
46
+ T: r.mul(o, u),
47
+ Z: r.mul(l, c)
48
+ };
49
+ }, d = class {
50
+ static A = s;
51
+ static D = c;
52
+ F = r;
53
+ A = s;
54
+ D = c;
55
+ Base8 = [r.e("5299619240641551281634865583518297030282874472190772894086521144482721001553"), r.e("16950150798460657717958625567821834550301663161624707787222815936182638968203")];
56
+ addPoint(e, t) {
57
+ return o(l(a(e), a(t)));
58
+ }
59
+ mulPointEscalar(e, t) {
60
+ let n = i, r = a(e), s = BigInt(t);
61
+ for (; s !== 0n;) s % 2n == 1n && (n = l(n, r)), r = u(r), s /= 2n;
62
+ return o(n);
63
+ }
64
+ };
65
+ //#endregion
66
+ export { d as BabyJubRN };
@@ -0,0 +1 @@
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./poseidon.cjs`),t=require(`../functions/utils/bigint-math.utils.cjs`),n=require(`./babyJub.cjs`);let r=require(`@noble/hashes/blake1.js`);var i=21888242871839275222246405745257275088614511777268538073601725287587578984328n/8n,a=(e,t=0,n=e.length-t)=>{let r=0n;for(let i=n-1;i>=0;--i)r=(r<<8n)+BigInt(e[t+i]);return r},o=(e,n,r,i)=>{let a=t.mod(r);for(let t=0;t<i;t+=1)e[n+t]=Number(a&255n),a>>=8n},s=e=>t.mod(e,i),c=e=>{let t=new Uint8Array(e);return t[0]&=248,t[31]&=127,t[31]|=64,t},l=class{constructor(e,t){this.babyJub=e,this.poseidon=t}prv2pub(e){let t=a(c((0,r.blake512)(e).slice(0,32)),0,32);return this.babyJub.mulPointEscalar(this.babyJub.Base8,t/8n)}signPoseidon(e,n){let i=c((0,r.blake512)(e)),l=a(i,0,32),u=this.babyJub.mulPointEscalar(this.babyJub.Base8,l/8n),d=new Uint8Array(64);d.set(i.slice(32),0),o(d,32,n,32);let f=s(a((0,r.blake512)(d),0,64)),p=this.babyJub.mulPointEscalar(this.babyJub.Base8,f),m=this.poseidon([p[0],p[1],u[0],u[1],n]);return{R8:p,S:s(f+s(t.mod(BigInt(this.poseidon.F.toString(m)))*l))}}},u=async()=>(await e.poseidonHolder.init(),await n.jubHolder.init(),new l(n.jubHolder.getJub(),e.poseidonHolder.getPoseidon()));exports.buildEddsaRN=u;
@@ -0,0 +1,41 @@
1
+ import { poseidonHolder as e } from "./poseidon.mjs";
2
+ import { mod as t } from "../functions/utils/bigint-math.utils.mjs";
3
+ import { jubHolder as n } from "./babyJub.mjs";
4
+ import { blake512 as r } from "@noble/hashes/blake1.js";
5
+ //#region libs/shared/common/src/crypto/EddsaRN.ts
6
+ var i = 21888242871839275222246405745257275088614511777268538073601725287587578984328n / 8n, a = (e, t = 0, n = e.length - t) => {
7
+ let r = 0n;
8
+ for (let i = n - 1; i >= 0; --i) r = (r << 8n) + BigInt(e[t + i]);
9
+ return r;
10
+ }, o = (e, n, r, i) => {
11
+ let a = t(r);
12
+ for (let t = 0; t < i; t += 1) e[n + t] = Number(a & 255n), a >>= 8n;
13
+ }, s = (e) => t(e, i), c = (e) => {
14
+ let t = new Uint8Array(e);
15
+ return t[0] &= 248, t[31] &= 127, t[31] |= 64, t;
16
+ }, l = class {
17
+ constructor(e, t) {
18
+ this.babyJub = e, this.poseidon = t;
19
+ }
20
+ prv2pub(e) {
21
+ let t = a(c(r(e).slice(0, 32)), 0, 32);
22
+ return this.babyJub.mulPointEscalar(this.babyJub.Base8, t / 8n);
23
+ }
24
+ signPoseidon(e, n) {
25
+ let i = c(r(e)), l = a(i, 0, 32), u = this.babyJub.mulPointEscalar(this.babyJub.Base8, l / 8n), d = new Uint8Array(64);
26
+ d.set(i.slice(32), 0), o(d, 32, n, 32);
27
+ let f = s(a(r(d), 0, 64)), p = this.babyJub.mulPointEscalar(this.babyJub.Base8, f), m = this.poseidon([
28
+ p[0],
29
+ p[1],
30
+ u[0],
31
+ u[1],
32
+ n
33
+ ]);
34
+ return {
35
+ R8: p,
36
+ S: s(f + s(t(BigInt(this.poseidon.F.toString(m))) * l))
37
+ };
38
+ }
39
+ }, u = async () => (await e.init(), await n.init(), new l(n.getJub(), e.getPoseidon()));
40
+ //#endregion
41
+ export { u as buildEddsaRN };
@@ -1 +1 @@
1
- const e=require(`../constants/vite.constants.cjs`),t=require(`./rnCryptoBridge.cjs`);var n=new class{babyjub=void 0;async init(){if(this.babyjub)return;if(e.isReactNative){await t.getRnCryptoBridge().init();return}let{buildBabyjub:n}=await import(`circomlibjs-hinkal-fork`);this.babyjub=await n()}getJub(){if(e.isReactNative)throw Error(`babyJubInstance is unavailable on React Native main thread. Use WebView crypto bridge.`);return this.babyjub}},r=()=>n.getJub();exports.babyJubInstance=r,exports.jubHolder=n;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../constants/vite.constants.cjs`),t=require(`./BabyJubRN.cjs`);let n=require(`circomlibjs-hinkal-fork`);var r=new class{babyjub=void 0;async init(){this.babyjub||=e.isReactNative?new t.BabyJubRN:await(0,n.buildBabyjub)()}getJub(){return this.babyjub}},i=()=>r.getJub();exports.babyJubInstance=i,exports.jubHolder=r;
@@ -1,20 +1,14 @@
1
1
  import { isReactNative as e } from "../constants/vite.constants.mjs";
2
- import { getRnCryptoBridge as t } from "./rnCryptoBridge.mjs";
3
- var n = new class {
2
+ import { BabyJubRN as t } from "./BabyJubRN.mjs";
3
+ import { buildBabyjub as n } from "circomlibjs-hinkal-fork";
4
+ var r = new class {
4
5
  babyjub = void 0;
5
6
  async init() {
6
- if (this.babyjub) return;
7
- if (e) {
8
- await t().init();
9
- return;
10
- }
11
- let { buildBabyjub: n } = await import("circomlibjs-hinkal-fork");
12
- this.babyjub = await n();
7
+ this.babyjub ||= e ? new t() : await n();
13
8
  }
14
9
  getJub() {
15
- if (e) throw Error("babyJubInstance is unavailable on React Native main thread. Use WebView crypto bridge.");
16
10
  return this.babyjub;
17
11
  }
18
- }(), r = () => n.getJub();
12
+ }(), i = () => r.getJub();
19
13
  //#endregion
20
- export { r as babyJubInstance, n as jubHolder };
14
+ export { i as babyJubInstance, r as jubHolder };
@@ -1 +1 @@
1
- const e=require(`../constants/vite.constants.cjs`),t=require(`./rnCryptoBridge.cjs`);var n=new class{eddsa=void 0;async init(){if(this.eddsa)return;if(e.isReactNative){await t.getRnCryptoBridge().init();return}let{buildEddsa:n}=await import(`circomlibjs-hinkal-fork`);this.eddsa=await n()}getEddsa(){if(e.isReactNative)throw Error(`eddsaInstance is unavailable on React Native main thread. Use WebView crypto bridge.`);return this.eddsa}},r=()=>n.getEddsa();exports.eddsaHolder=n,exports.eddsaInstance=r;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../constants/vite.constants.cjs`),t=require(`./EddsaRN.cjs`);let n=require(`circomlibjs-hinkal-fork`);var r=new class{eddsa=void 0;async init(){this.eddsa||=e.isReactNative?await t.buildEddsaRN():await(0,n.buildEddsa)()}getEddsa(){return this.eddsa}},i=()=>r.getEddsa();exports.eddsaHolder=r,exports.eddsaInstance=i;
@@ -1,20 +1,14 @@
1
1
  import { isReactNative as e } from "../constants/vite.constants.mjs";
2
- import { getRnCryptoBridge as t } from "./rnCryptoBridge.mjs";
3
- var n = new class {
2
+ import { buildEddsaRN as t } from "./EddsaRN.mjs";
3
+ import { buildEddsa as n } from "circomlibjs-hinkal-fork";
4
+ var r = new class {
4
5
  eddsa = void 0;
5
6
  async init() {
6
- if (this.eddsa) return;
7
- if (e) {
8
- await t().init();
9
- return;
10
- }
11
- let { buildEddsa: n } = await import("circomlibjs-hinkal-fork");
12
- this.eddsa = await n();
7
+ this.eddsa ||= e ? await t() : await n();
13
8
  }
14
9
  getEddsa() {
15
- if (e) throw Error("eddsaInstance is unavailable on React Native main thread. Use WebView crypto bridge.");
16
10
  return this.eddsa;
17
11
  }
18
- }(), r = () => n.getEddsa();
12
+ }(), i = () => r.getEddsa();
19
13
  //#endregion
20
- export { n as eddsaHolder, r as eddsaInstance };
14
+ export { r as eddsaHolder, i as eddsaInstance };
@@ -1 +1 @@
1
- const e=require(`../../../_virtual/_rolldown/runtime.cjs`),t=require(`../constants/vite.constants.cjs`),n=require(`../functions/utils/amounts.utils.cjs`),r=require(`./rnCryptoBridge.cjs`);let i=require(`ethers`),a=require(`poseidon-lite`);a=e.__toESM(a);var o=()=>{let e=e=>{let t=a[`poseidon${e.length}`];if(!t)throw Error(`Poseidon: arity ${e.length} not supported (1..16)`);return t(e.map(e=>BigInt(e)))};return e.F={toString:e=>BigInt(e).toString()},e},s=new class{poseidon=void 0;async init(){if(this.poseidon)return;if(t.isReactNative){await r.getRnCryptoBridge().init(),this.poseidon=o();return}let{buildPoseidon:e}=await import(`circomlibjs-hinkal-fork`);this.poseidon=await e()}getPoseidon(){return this.poseidon}};function c(...e){let t=s.getPoseidon();return n.toBigInt(t.F.toString(t(e)))}var l=(...e)=>{let t=s.getPoseidon();return i.ethers.toBeHex(t.F.toString(t([...e])))};exports.poseidonFunction=c,exports.poseidonHash=l,exports.poseidonHolder=s;
1
+ const e=require(`../../../_virtual/_rolldown/runtime.cjs`),t=require(`../constants/vite.constants.cjs`),n=require(`../functions/utils/amounts.utils.cjs`);let r=require(`ethers`),i=require(`poseidon-lite`);i=e.__toESM(i);let a=require(`circomlibjs-hinkal-fork`);var o=()=>{let e=e=>{let t=i[`poseidon${e.length}`];if(!t)throw Error(`Poseidon: arity ${e.length} not supported (1..16)`);return t(e.map(e=>BigInt(e)))};return e.F={toString:e=>BigInt(e).toString()},e},s=new class{poseidon=void 0;async init(){this.poseidon||=t.isReactNative?o():await(0,a.buildPoseidon)()}getPoseidon(){return this.poseidon}};function c(...e){let t=s.getPoseidon();return n.toBigInt(t.F.toString(t(e)))}var l=(...e)=>{let t=s.getPoseidon();return r.ethers.toBeHex(t.F.toString(t([...e])))};exports.poseidonFunction=c,exports.poseidonHash=l,exports.poseidonHolder=s;
@@ -1,12 +1,12 @@
1
1
  import { isReactNative as e } from "../constants/vite.constants.mjs";
2
2
  import { toBigInt as t } from "../functions/utils/amounts.utils.mjs";
3
- import { getRnCryptoBridge as n } from "./rnCryptoBridge.mjs";
4
- import { ethers as r } from "ethers";
5
- import * as i from "poseidon-lite";
3
+ import { ethers as n } from "ethers";
4
+ import * as r from "poseidon-lite";
5
+ import { buildPoseidon as i } from "circomlibjs-hinkal-fork";
6
6
  //#region libs/shared/common/src/crypto/poseidon.ts
7
7
  var a = () => {
8
8
  let e = (e) => {
9
- let t = i[`poseidon${e.length}`];
9
+ let t = r[`poseidon${e.length}`];
10
10
  if (!t) throw Error(`Poseidon: arity ${e.length} not supported (1..16)`);
11
11
  return t(e.map((e) => BigInt(e)));
12
12
  };
@@ -14,13 +14,7 @@ var a = () => {
14
14
  }, o = new class {
15
15
  poseidon = void 0;
16
16
  async init() {
17
- if (this.poseidon) return;
18
- if (e) {
19
- await n().init(), this.poseidon = a();
20
- return;
21
- }
22
- let { buildPoseidon: t } = await import("circomlibjs-hinkal-fork");
23
- this.poseidon = await t();
17
+ this.poseidon ||= e ? a() : await i();
24
18
  }
25
19
  getPoseidon() {
26
20
  return this.poseidon;
@@ -32,7 +26,7 @@ function s(...e) {
32
26
  }
33
27
  var c = (...e) => {
34
28
  let t = o.getPoseidon();
35
- return r.toBeHex(t.F.toString(t([...e])));
29
+ return n.toBeHex(t.F.toString(t([...e])));
36
30
  };
37
31
  //#endregion
38
32
  export { s as poseidonFunction, c as poseidonHash, o as poseidonHolder };
@@ -1 +1 @@
1
- const e=require(`../../../_virtual/_rolldown/runtime.cjs`),t=require(`../constants/vite.constants.cjs`),n=require(`./rnCryptoBridge.cjs`),r=require(`./poseidon.cjs`),i=require(`./babyJub.cjs`),a=require(`./eddsa.cjs`);let o=require(`libsodium-wrappers`);o=e.__toESM(o);let s=require(`buffer`),c=require(`process`);c=e.__toESM(c);var l=async(e=!1)=>{if((typeof window<`u`||typeof self<`u`)&&(typeof window<`u`&&(window.global=window),globalThis.Buffer=s.Buffer,globalThis.process=c.default),t.isReactNative&&!e){await Promise.all([o.default.ready,n.getRnCryptoBridge().init(),r.poseidonHolder.init()]);return}await Promise.all([o.default.ready,r.poseidonHolder.init(),i.jubHolder.init(),...e?[]:[a.eddsaHolder.init()]])};exports.preProcessing=l;
1
+ const e=require(`../../../_virtual/_rolldown/runtime.cjs`),t=require(`./poseidon.cjs`),n=require(`./babyJub.cjs`),r=require(`./eddsa.cjs`);let i=require(`libsodium-wrappers`);i=e.__toESM(i);let a=require(`buffer`),o=require(`process`);o=e.__toESM(o);var s=async(e=!1)=>{(typeof window<`u`||typeof self<`u`)&&(typeof window<`u`&&(window.global=window),globalThis.Buffer=a.Buffer,globalThis.process=o.default),await Promise.all([i.default.ready,t.poseidonHolder.init(),n.jubHolder.init(),...e?[]:[r.eddsaHolder.init()]])};exports.preProcessing=s;
@@ -1,27 +1,17 @@
1
- import { isReactNative as e } from "../constants/vite.constants.mjs";
2
- import { getRnCryptoBridge as t } from "./rnCryptoBridge.mjs";
3
- import { poseidonHolder as n } from "./poseidon.mjs";
4
- import { jubHolder as r } from "./babyJub.mjs";
5
- import { eddsaHolder as i } from "./eddsa.mjs";
6
- import a from "libsodium-wrappers";
7
- import { Buffer as o } from "buffer";
8
- import s from "process";
1
+ import { poseidonHolder as e } from "./poseidon.mjs";
2
+ import { jubHolder as t } from "./babyJub.mjs";
3
+ import { eddsaHolder as n } from "./eddsa.mjs";
4
+ import r from "libsodium-wrappers";
5
+ import { Buffer as i } from "buffer";
6
+ import a from "process";
9
7
  //#region libs/shared/common/src/crypto/preProcessing.ts
10
- var c = async (c = !1) => {
11
- if ((typeof window < "u" || typeof self < "u") && (typeof window < "u" && (window.global = window), globalThis.Buffer = o, globalThis.process = s), e && !c) {
12
- await Promise.all([
13
- a.ready,
14
- t().init(),
15
- n.init()
16
- ]);
17
- return;
18
- }
19
- await Promise.all([
20
- a.ready,
21
- n.init(),
22
- r.init(),
23
- ...c ? [] : [i.init()]
8
+ var o = async (o = !1) => {
9
+ (typeof window < "u" || typeof self < "u") && (typeof window < "u" && (window.global = window), globalThis.Buffer = i, globalThis.process = a), await Promise.all([
10
+ r.ready,
11
+ e.init(),
12
+ t.init(),
13
+ ...o ? [] : [n.init()]
24
14
  ]);
25
15
  };
26
16
  //#endregion
27
- export { c as preProcessing };
17
+ export { o as preProcessing };
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`),i=require(`../../types/external-action.types.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../error-handling/customErrors/ErrorWithTx.cjs`),s=require(`../../types/transactions.types.cjs`),c=require(`../../types/admin.types.cjs`),l=require(`../../types/activities.types.cjs`),u=require(`../../types/transaction.types.cjs`),d=require(`../../types/offscreen.types.cjs`);require(`../../types/index.cjs`);const f=require(`../../error-handling/logger.cjs`),p=require(`../../API/API.cjs`),m=require(`../../functions/utils/erc20tokenFunctions.cjs`),h=require(`../../error-handling/get-error.message.cjs`);require(`../../error-handling/index.cjs`);const g=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),_=require(`../../functions/utils/create-provider.cjs`),v=require(`../../functions/pre-transaction/getFeeStructure.cjs`),y=require(`../../functions/utils/convertEmporiumOpToCallInfo.cjs`),b=require(`../../functions/utils/postToOffscreen.cjs`),x=require(`../../functions/utils/fees.utils.cjs`),S=require(`../../functions/private-wallet/emporium.helpers.cjs`),C=require(`../../functions/auto-deposit-back-helpers/get-tokens-to-deposit-back.cjs`),w=require(`../../functions/auto-deposit-back-helpers/get-gas-token-records.cjs`),T=require(`../../functions/auto-deposit-back-helpers/select-gas-token.cjs`),E=require(`../../functions/auto-deposit-back-helpers/update-hinkal.cjs`);require(`../../functions/index.cjs`);const D=require(`../IndexedDB/activity-db.cjs`);require(`../IndexedDB/index.cjs`);var O=3*1e3,k=13*1e3,A=async(A,j,M,ee,N,P,F,I)=>{if(!M||F.length===0)return;let L;try{let o=_.createJsonRpcProvider(j);await a.waitLittle(j===e.chainIds.ethMainnet?k:O);let u=await C.getTokensToDepositBack(F,N,M,o);if(!u.length){b.postToOffscreen(d.MessagesFromOffscreen.AutoShieldTxStatus,{message:n.transactionErrorCodes.AUTO_SHIELD_SKIPPED});return}let f=(await m.getErc20TokensBySymbolsFromAPI(await x.getGasTokenSymbols(j),j)).filter(e=>e!==void 0),{prices:h}=await p.API.getTokenPrices(j,f.map(e=>e.erc20TokenAddress)),R=new Map(h.map((e,t)=>[f[t].erc20TokenAddress.toLowerCase(),e])),z=u.map(({token:e})=>e),B=u.map(({balance:e})=>e),V=z.map(({erc20TokenAddress:e})=>e),H=S.createTransaferEmporiumOpsBatch(A,j,V,await g.modifyVolatileTokenAmountChanges(j,z,B,M)),U=await v.getFeeStructure(j,N,V,i.ExternalActionId.Emporium,H.map(e=>y.convertEmporiumOpToCallInfo(e,M,j))),{flatFee:W}=U??{},G=await m.getErc20TokenFromAPI(j,U.feeToken);if(!G)return;let K=r.getAmountInToken(G,W),q=(R.get(G.erc20TokenAddress.toLowerCase())??0)*Number(K),J=await T.selectGasToken(N,q,j,z,H,await w.getGasTokenRecords(f,j,A,M,o,R),U,V,M);if(!J)return;let{feeToken:Y,feeStructure:X}=J??{};if(P&&Number(P)<q){b.postToOffscreen(d.MessagesFromOffscreen.AutoShieldTxStatus,{message:n.gasErrorCodes.GAS_PRICE_EXCEEDS_AUTOSHIELD_LIMIT});return}let Z=z.findIndex(e=>t.caseInsensitiveEqual(e.erc20TokenAddress,Y));Z!==-1&&(B[Z]-=X?.flatFee??0n);let{hinkalAddress:Q}=e.networkRegistry[j].contractData,$={activityType:l.ActivityTypes.AUTO_SHIELD,chainId:j,from:M,to:Q,gasInDollar:q.toString(),tokensReceive:z.map((e,t)=>({amount:r.getAmountInToken(e,B[t]),token:e}))};L=await D.activityStorage.saveTxRequest($),b.postToOffscreen(d.MessagesFromOffscreen.AutoShieldTxStatus,{status:s.TransactionStatus.Loading}),E.updateHinkal(I,j,A);let te={id:0,success:!0,txHash:await A.actionReceive(z,B,Y,X,ee,c.AdminTransactionType.AutoShield)};await D.activityStorage.updatePendingTransactions(te,L),b.postToOffscreen(d.MessagesFromOffscreen.AutoShieldTxStatus,{status:s.TransactionStatus.Confirmed,activityRequest:$})}catch(e){let t;e instanceof o.ErrorWithRelayerTransaction&&(t=e.txHash);let n={error:e,id:0,success:!1,...t?{erroredTx:t}:{}};L&&await D.activityStorage.updatePendingTransactions(n,L),b.postToOffscreen(d.MessagesFromOffscreen.AutoShieldTxStatus,{status:s.TransactionStatus.Failed,error:h.getErrorMessageFromTransactionRequest(e,u.TransactionRequestType.ReceiveFromShieldedAccount)}),f.Logger.error(`Error in auto deposit back:`,e)}};exports.handleAutoDepositBack=A;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../../error-handling/customErrors/ErrorWithTx.cjs`),o=require(`../../types/external-action.types.cjs`),s=require(`../../types/transactions.types.cjs`),c=require(`../../types/admin.types.cjs`),l=require(`../../types/activities.types.cjs`),u=require(`../../types/transaction.types.cjs`),d=require(`../../types/offscreen.types.cjs`);require(`../../types/index.cjs`);const f=require(`../../error-handling/logger.cjs`),p=require(`../../API/API.cjs`),m=require(`../../functions/utils/erc20tokenFunctions.cjs`),h=require(`../../error-handling/get-error.message.cjs`);require(`../../error-handling/index.cjs`);const g=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),_=require(`../../functions/utils/create-provider.cjs`),v=require(`../../functions/pre-transaction/getFeeStructure.cjs`),y=require(`../../functions/utils/convertEmporiumOpToCallInfo.cjs`),b=require(`../../functions/utils/postToOffscreen.cjs`),x=require(`../../functions/utils/fees.utils.cjs`),S=require(`../../functions/private-wallet/emporium.helpers.cjs`),C=require(`../../functions/auto-deposit-back-helpers/get-tokens-to-deposit-back.cjs`),w=require(`../../functions/auto-deposit-back-helpers/get-gas-token-records.cjs`),T=require(`../../functions/auto-deposit-back-helpers/select-gas-token.cjs`),E=require(`../../functions/auto-deposit-back-helpers/update-hinkal.cjs`);require(`../../functions/index.cjs`);const D=require(`../IndexedDB/activity-db.cjs`);require(`../IndexedDB/index.cjs`);var O=3*1e3,k=13*1e3,A=async(A,j,M,ee,N,P,F,I)=>{if(!M||F.length===0)return;let L;try{let a=_.createJsonRpcProvider(j);await i.waitLittle(j===e.chainIds.ethMainnet?k:O);let u=await C.getTokensToDepositBack(F,N,M,a);if(!u.length){b.postToOffscreen(d.MessagesFromOffscreen.AutoShieldTxStatus,{message:n.transactionErrorCodes.AUTO_SHIELD_SKIPPED});return}let f=(await m.getErc20TokensBySymbolsFromAPI(await x.getGasTokenSymbols(j),j)).filter(e=>e!==void 0),{prices:h}=await p.API.getTokenPrices(j,f.map(e=>e.erc20TokenAddress)),R=new Map(h.map((e,t)=>[f[t].erc20TokenAddress.toLowerCase(),e])),z=u.map(({token:e})=>e),B=u.map(({balance:e})=>e),V=z.map(({erc20TokenAddress:e})=>e),H=S.createTransaferEmporiumOpsBatch(A,j,V,await g.modifyVolatileTokenAmountChanges(j,z,B,M)),U=await v.getFeeStructure(j,N,V,o.ExternalActionId.Emporium,H.map(e=>y.convertEmporiumOpToCallInfo(e,M,j))),{flatFee:W}=U??{},G=await m.getErc20TokenFromAPI(j,U.feeToken);if(!G)return;let K=r.getAmountInToken(G,W),q=(R.get(G.erc20TokenAddress.toLowerCase())??0)*Number(K),J=await T.selectGasToken(N,q,j,z,H,await w.getGasTokenRecords(f,j,A,M,a,R),U,V,M);if(!J)return;let{feeToken:Y,feeStructure:X}=J??{};if(P&&Number(P)<q){b.postToOffscreen(d.MessagesFromOffscreen.AutoShieldTxStatus,{message:n.gasErrorCodes.GAS_PRICE_EXCEEDS_AUTOSHIELD_LIMIT});return}let Z=z.findIndex(e=>t.caseInsensitiveEqual(e.erc20TokenAddress,Y));Z!==-1&&(B[Z]-=X?.flatFee??0n);let{hinkalAddress:Q}=e.networkRegistry[j].contractData,$={activityType:l.ActivityTypes.AUTO_SHIELD,chainId:j,from:M,to:Q,gasInDollar:q.toString(),tokensReceive:z.map((e,t)=>({amount:r.getAmountInToken(e,B[t]),token:e}))};L=await D.activityStorage.saveTxRequest($),b.postToOffscreen(d.MessagesFromOffscreen.AutoShieldTxStatus,{status:s.TransactionStatus.Loading}),E.updateHinkal(I,j,A);let te={id:0,success:!0,txHash:await A.actionReceive(z,B,Y,X,ee,c.AdminTransactionType.AutoShield)};await D.activityStorage.updatePendingTransactions(te,L),b.postToOffscreen(d.MessagesFromOffscreen.AutoShieldTxStatus,{status:s.TransactionStatus.Confirmed,activityRequest:$})}catch(e){let t;e instanceof a.ErrorWithRelayerTransaction&&(t=e.txHash);let n={error:e,id:0,success:!1,...t?{erroredTx:t}:{}};L&&await D.activityStorage.updatePendingTransactions(n,L),b.postToOffscreen(d.MessagesFromOffscreen.AutoShieldTxStatus,{status:s.TransactionStatus.Failed,error:h.getErrorMessageFromTransactionRequest(e,u.TransactionRequestType.ReceiveFromShieldedAccount)}),f.Logger.error(`Error in auto deposit back:`,e)}};exports.handleAutoDepositBack=A;
@@ -2,9 +2,9 @@ import { chainIds as e, networkRegistry as t } from "../../constants/chains.cons
2
2
  import { caseInsensitiveEqual as n } from "../../functions/utils/caseInsensitive.utils.mjs";
3
3
  import { gasErrorCodes as ee, transactionErrorCodes as r } from "../../error-handling/error-codes.constants.mjs";
4
4
  import { getAmountInToken as i } from "../../functions/web3/etherFunctions.mjs";
5
- import { ExternalActionId as a } from "../../types/external-action.types.mjs";
6
- import { waitLittle as o } from "../../functions/utils/time.utils.mjs";
7
- import { ErrorWithRelayerTransaction as s } from "../../error-handling/customErrors/ErrorWithTx.mjs";
5
+ import { waitLittle as a } from "../../functions/utils/time.utils.mjs";
6
+ import { ErrorWithRelayerTransaction as o } from "../../error-handling/customErrors/ErrorWithTx.mjs";
7
+ import { ExternalActionId as s } from "../../types/external-action.types.mjs";
8
8
  import { TransactionStatus as c } from "../../types/transactions.types.mjs";
9
9
  import { AdminTransactionType as l } from "../../types/admin.types.mjs";
10
10
  import { ActivityTypes as u } from "../../types/activities.types.mjs";
@@ -35,16 +35,16 @@ var te = 3 * 1e3, ne = 13 * 1e3, A = async (A, j, M, N, P, F, I, L) => {
35
35
  if (!M || I.length === 0) return;
36
36
  let R;
37
37
  try {
38
- let s = y(j);
39
- await o(j === e.ethMainnet ? ne : te);
40
- let d = await T(I, P, M, s);
38
+ let o = y(j);
39
+ await a(j === e.ethMainnet ? ne : te);
40
+ let d = await T(I, P, M, o);
41
41
  if (!d.length) {
42
42
  S(f.AutoShieldTxStatus, { message: r.AUTO_SHIELD_SKIPPED });
43
43
  return;
44
44
  }
45
- let p = (await g(await C(j), j)).filter((e) => e !== void 0), { prices: _ } = await m.getTokenPrices(j, p.map((e) => e.erc20TokenAddress)), z = new Map(_.map((e, t) => [p[t].erc20TokenAddress.toLowerCase(), e])), B = d.map(({ token: e }) => e), V = d.map(({ balance: e }) => e), H = B.map(({ erc20TokenAddress: e }) => e), U = w(A, j, H, await v(j, B, V, M)), W = await b(j, P, H, a.Emporium, U.map((e) => x(e, M, j))), { flatFee: G } = W ?? {}, K = await h(j, W.feeToken);
45
+ let p = (await g(await C(j), j)).filter((e) => e !== void 0), { prices: _ } = await m.getTokenPrices(j, p.map((e) => e.erc20TokenAddress)), z = new Map(_.map((e, t) => [p[t].erc20TokenAddress.toLowerCase(), e])), B = d.map(({ token: e }) => e), V = d.map(({ balance: e }) => e), H = B.map(({ erc20TokenAddress: e }) => e), U = w(A, j, H, await v(j, B, V, M)), W = await b(j, P, H, s.Emporium, U.map((e) => x(e, M, j))), { flatFee: G } = W ?? {}, K = await h(j, W.feeToken);
46
46
  if (!K) return;
47
- let q = i(K, G), J = (z.get(K.erc20TokenAddress.toLowerCase()) ?? 0) * Number(q), Y = await D(P, J, j, B, U, await E(p, j, A, M, s, z), W, H, M);
47
+ let q = i(K, G), J = (z.get(K.erc20TokenAddress.toLowerCase()) ?? 0) * Number(q), Y = await D(P, J, j, B, U, await E(p, j, A, M, o, z), W, H, M);
48
48
  if (!Y) return;
49
49
  let { feeToken: X, feeStructure: Z } = Y ?? {};
50
50
  if (F && Number(F) < J) {
@@ -76,7 +76,7 @@ var te = 3 * 1e3, ne = 13 * 1e3, A = async (A, j, M, N, P, F, I, L) => {
76
76
  });
77
77
  } catch (e) {
78
78
  let t;
79
- e instanceof s && (t = e.txHash);
79
+ e instanceof o && (t = e.txHash);
80
80
  let n = {
81
81
  error: e,
82
82
  id: 0,
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../crypto-keys/keys.cjs`),a=require(`../../types/external-action.types.cjs`),o=require(`../../functions/utils/time.utils.cjs`),s=require(`../utxo/Utxo.cjs`),c=require(`../../functions/utils/tron.utils.cjs`),l=require(`../../functions/utils/token-check.utils.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/pre-transaction/getFeeStructure.cjs`),f=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),p=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);var m=async(m,h,g,_,v)=>{let y=l.validateAndGetChainId([h]),b=e.isTronLike(y),x=h.erc20TokenAddress,S=c.addressToHexFormat(await m.getEthereumAddressByChain(y));if(!n.caseInsensitiveEqual(x,g.erc20TokenAddress))throw Error(`Off-chain UTXO token mismatch`);let C=v?new i.UserKeys(v):new i.UserKeys(g.nullifyingKey,g.nullifyingKey);if(!g.nullifyingKey&&!v)throw Error(`Claimable UTXO nullifyingKey is missing`);let w=C.getShieldedPrivateKey();if(g.nullifyingKey&&g.nullifyingKey!==w)throw Error(`Claimable UTXO key mismatch`);let T=m.getRecipientInfo(),E=s.Utxo.createFrom(g,{nullifyingKey:w}),D=new s.Utxo({amount:0n,erc20TokenAddress:E.erc20TokenAddress,mintAddress:E.mintAddress,nullifyingKey:w,...E.isNewStyle?{spendingPublicKey:C.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}}),O=_??await d.getFeeStructure(y,x,[x],a.ExternalActionId.Transact);if(!n.caseInsensitiveEqual(O.feeToken,x))throw Error(`Claim fee token mismatch: fee must be paid from claimed UTXO token`);let k=O.variableRate>0n?O.variableRate:t.HINKAL_PRIVATE_SEND_VARIABLE_RATE;if(E.amount<=O.flatFee)throw Error(r.transactionErrorCodes.INSUFFICIENT_FUNDS_TO_TRANSACT);let A=E.amount-O.flatFee,j=A*k/10000n,M=A-j;if(M<=0n)throw Error(r.transactionErrorCodes.RECIPIENT_AMOUNT_INVALID);let N={feeToken:O.feeToken,flatFee:O.flatFee+j,variableRate:0n},P=[-E.amount],F=await m.getRandomRelay(y,!0);if(!F)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let I={externalActionId:0n,externalAddress:F??S,externalActionMetadata:`0x00`},L=[[E,D]],R=[],z=o.getCurrentTimeInSeconds().toString(),{outputUtxos:B}=await u.outputUtxoProcessing(C,L[0],P[0],z,!0,T,M);R.push(B);let{zkCallData:V,circomData:H,dimData:U,commitmentValidationData:W}=await f.constructZkProof(m.merkleTreeHinkalByChain[y],L,R,C,I.externalActionId,I.externalAddress,I.externalActionMetadata,m.generateProofRemotely,N,F,y);return p.transactCallRelayer(y,V,U,H,W,void 0,void 0,void 0,await c.reorderZkCallData(b,V,U,H))};exports.hinkalClaimUtxo=m;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../crypto-keys/keys.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../utxo/Utxo.cjs`),s=require(`../../types/external-action.types.cjs`),c=require(`../../functions/utils/tron.utils.cjs`),l=require(`../../functions/utils/token-check.utils.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/pre-transaction/getFeeStructure.cjs`),f=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),p=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);var m=async(m,h,g,_,v)=>{let y=l.validateAndGetChainId([h]),b=e.isTronLike(y),x=h.erc20TokenAddress,S=c.addressToHexFormat(await m.getEthereumAddressByChain(y));if(!n.caseInsensitiveEqual(x,g.erc20TokenAddress))throw Error(`Off-chain UTXO token mismatch`);let C=v?new i.UserKeys(v):new i.UserKeys(g.nullifyingKey,g.nullifyingKey);if(!g.nullifyingKey&&!v)throw Error(`Claimable UTXO nullifyingKey is missing`);let w=C.getShieldedPrivateKey();if(g.nullifyingKey&&g.nullifyingKey!==w)throw Error(`Claimable UTXO key mismatch`);let T=m.getRecipientInfo(),E=o.Utxo.createFrom(g,{nullifyingKey:w}),D=new o.Utxo({amount:0n,erc20TokenAddress:E.erc20TokenAddress,mintAddress:E.mintAddress,nullifyingKey:w,...E.isNewStyle?{spendingPublicKey:C.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}}),O=_??await d.getFeeStructure(y,x,[x],s.ExternalActionId.Transact);if(!n.caseInsensitiveEqual(O.feeToken,x))throw Error(`Claim fee token mismatch: fee must be paid from claimed UTXO token`);let k=O.variableRate>0n?O.variableRate:t.HINKAL_PRIVATE_SEND_VARIABLE_RATE;if(E.amount<=O.flatFee)throw Error(r.transactionErrorCodes.INSUFFICIENT_FUNDS_TO_TRANSACT);let A=E.amount-O.flatFee,j=A*k/10000n,M=A-j;if(M<=0n)throw Error(r.transactionErrorCodes.RECIPIENT_AMOUNT_INVALID);let N={feeToken:O.feeToken,flatFee:O.flatFee+j,variableRate:0n},P=[-E.amount],F=await m.getRandomRelay(y,!0);if(!F)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let I={externalActionId:0n,externalAddress:F??S,externalActionMetadata:`0x00`},L=[[E,D]],R=[],z=a.getCurrentTimeInSeconds().toString(),{outputUtxos:B}=u.outputUtxoProcessing(C,L[0],P[0],z,!0,T,M);R.push(B);let{zkCallData:V,circomData:H,dimData:U,commitmentValidationData:W}=await f.constructZkProof(m.merkleTreeHinkalByChain[y],L,R,C,I.externalActionId,I.externalAddress,I.externalActionMetadata,m.generateProofRemotely,N,F,y);return p.transactCallRelayer(y,V,U,H,W,void 0,void 0,void 0,await c.reorderZkCallData(b,V,U,H))};exports.hinkalClaimUtxo=m;
@@ -3,9 +3,9 @@ import { HINKAL_PRIVATE_SEND_VARIABLE_RATE as t } from "../../constants/protocol
3
3
  import { caseInsensitiveEqual as n } from "../../functions/utils/caseInsensitive.utils.mjs";
4
4
  import { transactionErrorCodes as r } from "../../error-handling/error-codes.constants.mjs";
5
5
  import { UserKeys as i } from "../crypto-keys/keys.mjs";
6
- import { ExternalActionId as a } from "../../types/external-action.types.mjs";
7
- import { getCurrentTimeInSeconds as o } from "../../functions/utils/time.utils.mjs";
8
- import { Utxo as s } from "../utxo/Utxo.mjs";
6
+ import { getCurrentTimeInSeconds as a } from "../../functions/utils/time.utils.mjs";
7
+ import { Utxo as o } from "../utxo/Utxo.mjs";
8
+ import { ExternalActionId as s } from "../../types/external-action.types.mjs";
9
9
  import { addressToHexFormat as c, reorderZkCallData as l } from "../../functions/utils/tron.utils.mjs";
10
10
  import { validateAndGetChainId as u } from "../../functions/utils/token-check.utils.mjs";
11
11
  import { outputUtxoProcessing as d } from "../../functions/pre-transaction/outputUtxoProcessing.mjs";
@@ -20,7 +20,7 @@ var h = async (h, g, _, v, y) => {
20
20
  if (!_.nullifyingKey && !y) throw Error("Claimable UTXO nullifyingKey is missing");
21
21
  let T = w.getShieldedPrivateKey();
22
22
  if (_.nullifyingKey && _.nullifyingKey !== T) throw Error("Claimable UTXO key mismatch");
23
- let E = h.getRecipientInfo(), D = s.createFrom(_, { nullifyingKey: T }), O = new s({
23
+ let E = h.getRecipientInfo(), D = o.createFrom(_, { nullifyingKey: T }), O = new o({
24
24
  amount: 0n,
25
25
  erc20TokenAddress: D.erc20TokenAddress,
26
26
  mintAddress: D.mintAddress,
@@ -29,7 +29,7 @@ var h = async (h, g, _, v, y) => {
29
29
  spendingPublicKey: w.getSpendingKeyPair().pubSpendingBJJPoint,
30
30
  isNewStyle: !0
31
31
  } : { isNewStyle: !1 }
32
- }), k = v ?? await f(b, S, [S], a.Transact);
32
+ }), k = v ?? await f(b, S, [S], s.Transact);
33
33
  if (!n(k.feeToken, S)) throw Error("Claim fee token mismatch: fee must be paid from claimed UTXO token");
34
34
  let A = k.variableRate > 0n ? k.variableRate : t;
35
35
  if (D.amount <= k.flatFee) throw Error(r.INSUFFICIENT_FUNDS_TO_TRANSACT);
@@ -45,7 +45,7 @@ var h = async (h, g, _, v, y) => {
45
45
  externalActionId: 0n,
46
46
  externalAddress: I ?? C,
47
47
  externalActionMetadata: "0x00"
48
- }, R = [[D, O]], z = [], B = o().toString(), { outputUtxos: V } = await d(w, R[0], F[0], B, !0, E, N);
48
+ }, R = [[D, O]], z = [], B = a().toString(), { outputUtxos: V } = d(w, R[0], F[0], B, !0, E, N);
49
49
  z.push(V);
50
50
  let { zkCallData: H, circomData: U, dimData: W, commitmentValidationData: G } = await p(h.merkleTreeHinkalByChain[b], R, z, w, L.externalActionId, L.externalAddress, L.externalActionMetadata, h.generateProofRemotely, P, I, b);
51
51
  return m(b, H, W, U, G, void 0, void 0, void 0, await l(x, H, W, U));
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/tron.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/utils/tronSimulation.utils.cjs`),p=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),m=require(`../../functions/web3/functionCalls/waitForErc20Approvals.cjs`),h=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),g=require(`../../API/admin-calls.cjs`);var _=async(e,t)=>({externalActionData:{externalActionId:0n,externalAddress:s.addressToHexFormat(await e.getEthereumAddressByChain(t)),externalActionMetadata:`0x00`},contractTransaction:void 0,contractToApprove:void 0}),v=async(e,t,n,r)=>{let a=[...await l.addPaddingToUtxos(e,t,n,r)],o=[],s=i.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=await u.outputUtxoProcessing(e.userKeys,a[t],r[t],s);o.push(n)}return{inputUtxosArray:a,outputUtxosArray:o}},y=async(n,r,i,a,o,c,l,u=!0,d=!1)=>{let p=n.getTronWeb(),{hinkalAddress:h,hinkalABI:g}=e.networkRegistry[r].contractData;if(!g)throw Error(`Hinkal ABI not found`);let _=s.evmHexToTronBase58Address(h),v=await n.getEthereumAddressByChain(r),{totalTrxValue:y,tokensNeedingApproval:b}=s.splitTronTokensByNative(i,a),{a:x,b:S,c:C}=s.parseZkCalldata(o),w=await s.reorderZkCallData(!0,o,l,c,!1);if(!w)throw Error(`Tron proof signature not found`);let T=[w.v,w.r,w.s],E=[l.tokenNumber,l.nullifierAmount,l.outputAmount],D=s.circomDataToArray(c),O=y>0n?Number(y):0;if(d){let e=s.createTronCallData(g,`transact`,[T,x,S,C,E,D]),{transaction:n}=await p.transactionBuilder.triggerSmartContract(_,``,{feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN,callValue:O,input:e},[],v);return n}await s.approveTronTokens(p,v,_,b),b.size>0&&await m.waitForTronErc20Approvals(p,v,_,Array.from(b.entries()).map(([e,t])=>({tokenAddress:e,requiredAmount:t}))),u&&(await f.simulateTronTransaction(r,_,`transact`,g,[T,x,S,C,E,D],v,y>0n?y:void 0),await s.assertTronSufficientBalance(p,r,_,v,s.createTronCallData(g,`transact`,[T,x,S,C,E,D]),y));let k=await p.contract(g,_).transact(T,x,S,C,E,D).send({feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN,callValue:O}),A=typeof k==`string`?k:k?.txid??k?.transaction?.txID;if(!A)throw Error(`Tron deposit failed (missing txid)`);return A},b=async(r,i,a,o=!0,s=!1)=>{let l=c.validateAndGetChainId(i),u=e.isTronLike(l),d=i.map(e=>e.erc20TokenAddress),[{externalActionData:f,contractTransaction:m,contractToApprove:g},{inputUtxosArray:b,outputUtxosArray:x}]=await Promise.all([_(r,l),v(r,l,d,a)]),{zkCallData:S,circomData:C,dimData:w}=await p.constructZkProof(r.merkleTreeHinkalByChain[l],b,x,r.userKeys,f.externalActionId,f.externalAddress,f.externalActionMetadata,r.generateProofRemotely,n.zeroFeeStructure,t.zeroAddress,l);return u?await y(r,l,i,a,S,C,w,o,s):await h.transactCallDirect(r,l,a,i,S,C,w,g,m,o,s)},x=async(i,s,l,u,f=!0,m=!1,v)=>{let b=c.validateAndGetChainId(s),x=e.isTronLike(b),S=s.map(e=>e.erc20TokenAddress),[C,w,T,,E]=u.split(`,`);if(!o.isValidPrivateAddress(u))throw Error(r.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let D=S.map(e=>[new a.Utxo({amount:0n,erc20TokenAddress:e,nullifyingKey:i.userKeys.getShieldedPrivateKey(),spendingPublicKey:i.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}),new a.Utxo({amount:0n,erc20TokenAddress:e,nullifyingKey:i.userKeys.getShieldedPrivateKey(),spendingPublicKey:i.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0})]),O=S.map((e,t)=>[new a.Utxo({amount:l[t],erc20TokenAddress:e,H0:[BigInt(w),BigInt(T)],stealthAddress:C,encryptionKey:E,isNewStyle:!0})]),{externalActionData:k,contractTransaction:A,contractToApprove:j}=await _(i,b),{zkCallData:M,circomData:N,dimData:P}=await p.constructZkProof(i.merkleTreeHinkalByChain[b],D,O,i.userKeys,k.externalActionId,k.externalAddress,k.externalActionMetadata,i.generateProofRemotely,n.zeroFeeStructure,t.zeroAddress,b);if(x)return await y(i,b,s,l,M,N,P,f,m);let F=await h.transactCallDirect(i,b,l,s,M,N,P,j,A,f,m);return g.emitTxPublicData(d.constructAdminData(v,b,S,l,await i.getEthereumAddress())),F};exports.hinkalDeposit=b,exports.hinkalDepositForOther=x;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/tron.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/utils/tronSimulation.utils.cjs`),p=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),m=require(`../../functions/web3/functionCalls/waitForErc20Approvals.cjs`),h=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),g=require(`../../API/admin-calls.cjs`);var _=async(e,t)=>({externalActionData:{externalActionId:0n,externalAddress:s.addressToHexFormat(await e.getEthereumAddressByChain(t)),externalActionMetadata:`0x00`},contractTransaction:void 0,contractToApprove:void 0}),v=async(e,t,n,r)=>{let a=[...await l.addPaddingToUtxos(e,t,n,r)],o=[],s=i.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=u.outputUtxoProcessing(e.userKeys,a[t],r[t],s);o.push(n)}return{inputUtxosArray:a,outputUtxosArray:o}},y=async(n,r,i,a,o,c,l,u=!0,d=!1)=>{let p=n.getTronWeb(),{hinkalAddress:h,hinkalABI:g}=e.networkRegistry[r].contractData;if(!g)throw Error(`Hinkal ABI not found`);let _=s.evmHexToTronBase58Address(h),v=await n.getEthereumAddressByChain(r),{totalTrxValue:y,tokensNeedingApproval:b}=s.splitTronTokensByNative(i,a),{a:x,b:S,c:C}=s.parseZkCalldata(o),w=await s.reorderZkCallData(!0,o,l,c,!1);if(!w)throw Error(`Tron proof signature not found`);let T=[w.v,w.r,w.s],E=[l.tokenNumber,l.nullifierAmount,l.outputAmount],D=s.circomDataToArray(c),O=y>0n?Number(y):0;if(d){let e=s.createTronCallData(g,`transact`,[T,x,S,C,E,D]),{transaction:n}=await p.transactionBuilder.triggerSmartContract(_,``,{feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN,callValue:O,input:e},[],v);return n}await s.approveTronTokens(p,v,_,b),b.size>0&&await m.waitForTronErc20Approvals(p,v,_,Array.from(b.entries()).map(([e,t])=>({tokenAddress:e,requiredAmount:t}))),u&&(await f.simulateTronTransaction(r,_,`transact`,g,[T,x,S,C,E,D],v,y>0n?y:void 0),await s.assertTronSufficientBalance(p,r,_,v,s.createTronCallData(g,`transact`,[T,x,S,C,E,D]),y));let k=await p.contract(g,_).transact(T,x,S,C,E,D).send({feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN,callValue:O}),A=typeof k==`string`?k:k?.txid??k?.transaction?.txID;if(!A)throw Error(`Tron deposit failed (missing txid)`);return A},b=async(r,i,a,o=!0,s=!1)=>{let l=c.validateAndGetChainId(i),u=e.isTronLike(l),d=i.map(e=>e.erc20TokenAddress),[{externalActionData:f,contractTransaction:m,contractToApprove:g},{inputUtxosArray:b,outputUtxosArray:x}]=await Promise.all([_(r,l),v(r,l,d,a)]),{zkCallData:S,circomData:C,dimData:w}=await p.constructZkProof(r.merkleTreeHinkalByChain[l],b,x,r.userKeys,f.externalActionId,f.externalAddress,f.externalActionMetadata,r.generateProofRemotely,n.zeroFeeStructure,t.zeroAddress,l);return u?await y(r,l,i,a,S,C,w,o,s):await h.transactCallDirect(r,l,a,i,S,C,w,g,m,o,s)},x=async(i,s,l,u,f=!0,m=!1,v)=>{let b=c.validateAndGetChainId(s),x=e.isTronLike(b),S=s.map(e=>e.erc20TokenAddress),[C,w,T,,E]=u.split(`,`);if(!o.isValidPrivateAddress(u))throw Error(r.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let D=S.map(e=>[new a.Utxo({amount:0n,erc20TokenAddress:e,nullifyingKey:i.userKeys.getShieldedPrivateKey(),spendingPublicKey:i.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}),new a.Utxo({amount:0n,erc20TokenAddress:e,nullifyingKey:i.userKeys.getShieldedPrivateKey(),spendingPublicKey:i.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0})]),O=S.map((e,t)=>[new a.Utxo({amount:l[t],erc20TokenAddress:e,H0:[BigInt(w),BigInt(T)],stealthAddress:C,encryptionKey:E,isNewStyle:!0})]),{externalActionData:k,contractTransaction:A,contractToApprove:j}=await _(i,b),{zkCallData:M,circomData:N,dimData:P}=await p.constructZkProof(i.merkleTreeHinkalByChain[b],D,O,i.userKeys,k.externalActionId,k.externalAddress,k.externalActionMetadata,i.generateProofRemotely,n.zeroFeeStructure,t.zeroAddress,b);if(x)return await y(i,b,s,l,M,N,P,f,m);let F=await h.transactCallDirect(i,b,l,s,M,N,P,j,A,f,m);return g.emitTxPublicData(d.constructAdminData(v,b,S,l,await i.getEthereumAddress())),F};exports.hinkalDeposit=b,exports.hinkalDepositForOther=x;
@@ -27,7 +27,7 @@ var D = async (e, t) => ({
27
27
  }), O = async (e, t, n, r) => {
28
28
  let i = [...await y(e, t, n, r)], a = [], s = o().toString();
29
29
  for (let t = 0; t < n.length; t += 1) {
30
- let { outputUtxos: n } = await b(e.userKeys, i[t], r[t], s);
30
+ let { outputUtxos: n } = b(e.userKeys, i[t], r[t], s);
31
31
  a.push(n);
32
32
  }
33
33
  return {
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../types/external-action.types.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../utxo/Utxo.cjs`),s=require(`../../types/scheduled-transactions.types.cjs`);require(`../../types/index.cjs`);const c=require(`../../functions/utils/addresses.cjs`),l=require(`../../API/API.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/utils/erc20tokenFunctions.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`),m=require(`../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),h=require(`../../constants/addresses.constants.cjs`),g=require(`../../functions/utils/convertEmporiumOpToCallInfo.cjs`),_=require(`../../functions/utils/fees.utils.cjs`);require(`../../functions/utils/index.cjs`);const v=require(`../../functions/private-wallet/emporium.helpers.cjs`),y=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),b=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),x=require(`../../API/deposit-and-withdraw-status-calls.cjs`),S=require(`./hinkalDepositOnChainUtxos.cjs`);require(`../../functions/index.cjs`);var C=async(c,u,d,p,m,g,S,C,w,T,E)=>{if(p.length===0)throw Error(`No recipients to bridge`);let D=d.erc20TokenAddress,{contractData:O}=e.networkRegistry[u],{emporiumAddress:k}=O;if(!k)throw Error(`No Emporium Address`);let A=h.SWAP_ROUTER_ADDRESSES[i.ExternalActionId.Lifi][u];if(!A)throw Error(`LIFI not configured for chain ${u}`);let j=await c.getRandomRelay(u);if(!j)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let M=await c.getEthereumAddressByChain(u),N=a.getCurrentTimeInSeconds().toString(),P=c.generateProofRemotely?5:1,F=[];for(let e=0;e<p.length;e+=P){let r=p.slice(e,e+P),a=await Promise.all(r.map(async({utxo:e,nativeUtxo:r,bridgeAmount:a,quote:s,temporarySubAccount:p,recipientAddress:h})=>{await l.API.addTemporaryWalletNonce(u,g,p.index);let b=s.nativeFee>0n&&!n.caseInsensitiveEqual(D,t.zeroAddress),x=[D],S=[-e.amount],C=[!1],w=new o.Utxo({amount:0n,erc20TokenAddress:D,nullifyingKey:c.userKeys.getShieldedPrivateKey(),timeStamp:N,...e.isNewStyle?{spendingPublicKey:c.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}}),E=[[e,w]],O=[[w]];if(b&&r){let e=new o.Utxo({amount:0n,erc20TokenAddress:t.zeroAddress,nullifyingKey:c.userKeys.getShieldedPrivateKey(),timeStamp:N,...r.isNewStyle?{spendingPublicKey:c.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}});x.push(t.zeroAddress),S.push(-r.amount),C.push(!1),E.push([r,e]),O.push([e])}let P=v.createLifiBridgeOps(c,u,p.ethAddress,A,D,e.amount,a,s),F=await _.calculateModifiedFeeStructure(u,d,a,m),I=f.constructAdminData(T,u,x,[-e.amount],M),[{zkCallData:L,circomData:R,dimData:z,commitmentValidationData:B},V]=await Promise.all([y.constructZkProof(c.merkleTreeHinkalByChain[u],E,O,c.userKeys,i.ExternalActionId.Emporium,k,P,c.generateProofRemotely,F,j??t.zeroAddress,u,C,void 0,void 0,p.privateKey),v.getAuthorizationDataIfNeeded(u,p.privateKey)]);return{zkCallData:L,dimData:z,circomData:R,commitmentValidationData:B,authorizationData:V,recipientAddress:h,adminData:I}}));F.push(...a)}await x.safeUpdateDepositAndWithdrawStatus({id:S,chainId:u,hashedEthereumAddress:g,phase:s.DepositAndWithdrawPhase.BEFORE_SCHEDULE_WITHDRAW});let I=await b.transactCallRelayerBatch(u,F,g,C,w,E);return await x.safeUpdateDepositAndWithdrawStatus({id:S,chainId:u,hashedEthereumAddress:g,phase:s.DepositAndWithdrawPhase.AFTER_SCHEDULE_WITHDRAW,scheduleId:I}),I},w=async(e,r,a,o,s,l,f,_,y=!0)=>{let b=r.erc20TokenAddress,x=u.validateAndGetChainId([r]),w=_?c.hashString(_):void 0,T=c.hashEthereumAddress(await e.getEthereumAddressByChain(x)),E=h.SWAP_ROUTER_ADDRESSES[i.ExternalActionId.Lifi][x];if(!E)throw Error(`LIFI router not configured`);let D;if(s)D=s;else{let n=a[0],r=v.createLifiBridgeOps(e,x,n.temporarySubAccount.ethAddress,E,b,n.bridgeAmount,n.bridgeAmount,n.quote).map(e=>g.convertEmporiumOpToCallInfo(e,n.temporarySubAccount.ethAddress,x));D=await p.getFeeStructure(x,b,[b],i.ExternalActionId.Emporium,r,t.PAY_SEND_VARIABLE_RATE)}let O={feeToken:D.feeToken,flatFee:0n,variableRate:0n},k=a.reduce((e,t)=>e+t.quote.nativeFee,0n)>0n&&!n.caseInsensitiveEqual(b,t.zeroAddress),A=a.map(e=>e.bridgeAmount),j=a.map(e=>e.recipientAddress),{userDepositedUtxos:M,statusId:N,depositTxHash:P}=await S.hinkalDepositOnChainUtxos(e,x,r,A,j,D,T,y),F=[];if(k){let n=await d.getErc20TokenFromAPI(x,t.zeroAddress);if(!n)throw Error(`No native token`);let{userDepositedUtxos:r}=await S.hinkalDepositOnChainUtxos(e,x,n,a.map(e=>e.quote.nativeFee),j,O,T,y);F=r}return await m.waitForDepositedUtxosInMerkleTree(e,x,[...M,...F]),{depositTxHash:P,scheduleId:await C(e,x,r,a.map((e,t)=>({...e,utxo:M[t].utxo,nativeUtxo:k?F[t]?.utxo:void 0})),D,T,N,o,l,f,w)}};exports.hinkalDepositAndBridge=w;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../types/external-action.types.cjs`),s=require(`../../types/scheduled-transactions.types.cjs`);require(`../../types/index.cjs`);const c=require(`../../functions/utils/addresses.cjs`),l=require(`../../API/API.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/utils/erc20tokenFunctions.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`),m=require(`../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),h=require(`../../constants/addresses.constants.cjs`),g=require(`../../functions/utils/convertEmporiumOpToCallInfo.cjs`),_=require(`../../functions/utils/fees.utils.cjs`);require(`../../functions/utils/index.cjs`);const v=require(`../../functions/private-wallet/emporium.helpers.cjs`),y=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),b=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),x=require(`../../API/deposit-and-withdraw-status-calls.cjs`),S=require(`./hinkalDepositOnChainUtxos.cjs`);require(`../../functions/index.cjs`);var C=async(c,u,d,p,m,g,S,C,w,T,E)=>{if(p.length===0)throw Error(`No recipients to bridge`);let D=d.erc20TokenAddress,{contractData:O}=e.networkRegistry[u],{emporiumAddress:k}=O;if(!k)throw Error(`No Emporium Address`);let A=h.SWAP_ROUTER_ADDRESSES[o.ExternalActionId.Lifi][u];if(!A)throw Error(`LIFI not configured for chain ${u}`);let j=await c.getRandomRelay(u);if(!j)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let M=await c.getEthereumAddressByChain(u),N=i.getCurrentTimeInSeconds().toString(),P=c.generateProofRemotely?5:1,F=[];for(let e=0;e<p.length;e+=P){let r=p.slice(e,e+P),i=await Promise.all(r.map(async({utxo:e,nativeUtxo:r,bridgeAmount:i,quote:s,temporarySubAccount:p,recipientAddress:h})=>{await l.API.addTemporaryWalletNonce(u,g,p.index);let b=s.nativeFee>0n&&!n.caseInsensitiveEqual(D,t.zeroAddress),x=[D],S=[-e.amount],C=[!1],w=new a.Utxo({amount:0n,erc20TokenAddress:D,nullifyingKey:c.userKeys.getShieldedPrivateKey(),timeStamp:N,...e.isNewStyle?{spendingPublicKey:c.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}}),E=[[e,w]],O=[[w]];if(b&&r){let e=new a.Utxo({amount:0n,erc20TokenAddress:t.zeroAddress,nullifyingKey:c.userKeys.getShieldedPrivateKey(),timeStamp:N,...r.isNewStyle?{spendingPublicKey:c.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}});x.push(t.zeroAddress),S.push(-r.amount),C.push(!1),E.push([r,e]),O.push([e])}let P=v.createLifiBridgeOps(c,u,p.ethAddress,A,D,e.amount,i,s),F=await _.calculateModifiedFeeStructure(u,d,i,m),I=f.constructAdminData(T,u,x,[-e.amount],M),[{zkCallData:L,circomData:R,dimData:z,commitmentValidationData:B},V]=await Promise.all([y.constructZkProof(c.merkleTreeHinkalByChain[u],E,O,c.userKeys,o.ExternalActionId.Emporium,k,P,c.generateProofRemotely,F,j??t.zeroAddress,u,C,void 0,void 0,p.privateKey),v.getAuthorizationDataIfNeeded(u,p.privateKey)]);return{zkCallData:L,dimData:z,circomData:R,commitmentValidationData:B,authorizationData:V,recipientAddress:h,adminData:I}}));F.push(...i)}await x.safeUpdateDepositAndWithdrawStatus({id:S,chainId:u,hashedEthereumAddress:g,phase:s.DepositAndWithdrawPhase.BEFORE_SCHEDULE_WITHDRAW});let I=await b.transactCallRelayerBatch(u,F,g,C,w,E);return await x.safeUpdateDepositAndWithdrawStatus({id:S,chainId:u,hashedEthereumAddress:g,phase:s.DepositAndWithdrawPhase.AFTER_SCHEDULE_WITHDRAW,scheduleId:I}),I},w=async(e,r,i,a,s,l,f,_,y=!0)=>{let b=r.erc20TokenAddress,x=u.validateAndGetChainId([r]),w=_?c.hashString(_):void 0,T=c.hashEthereumAddress(await e.getEthereumAddressByChain(x)),E=h.SWAP_ROUTER_ADDRESSES[o.ExternalActionId.Lifi][x];if(!E)throw Error(`LIFI router not configured`);let D;if(s)D=s;else{let n=i[0],r=v.createLifiBridgeOps(e,x,n.temporarySubAccount.ethAddress,E,b,n.bridgeAmount,n.bridgeAmount,n.quote).map(e=>g.convertEmporiumOpToCallInfo(e,n.temporarySubAccount.ethAddress,x));D=await p.getFeeStructure(x,b,[b],o.ExternalActionId.Emporium,r,t.PAY_SEND_VARIABLE_RATE)}let O={feeToken:D.feeToken,flatFee:0n,variableRate:0n},k=i.reduce((e,t)=>e+t.quote.nativeFee,0n)>0n&&!n.caseInsensitiveEqual(b,t.zeroAddress),A=i.map(e=>e.bridgeAmount),j=i.map(e=>e.recipientAddress),{userDepositedUtxos:M,statusId:N,depositTxHash:P}=await S.hinkalDepositOnChainUtxos(e,x,r,A,j,D,T,y),F=[];if(k){let n=await d.getErc20TokenFromAPI(x,t.zeroAddress);if(!n)throw Error(`No native token`);let{userDepositedUtxos:r}=await S.hinkalDepositOnChainUtxos(e,x,n,i.map(e=>e.quote.nativeFee),j,O,T,y);F=r}return await m.waitForDepositedUtxosInMerkleTree(e,x,[...M,...F]),{depositTxHash:P,scheduleId:await C(e,x,r,i.map((e,t)=>({...e,utxo:M[t].utxo,nativeUtxo:k?F[t]?.utxo:void 0})),D,T,N,a,l,f,w)}};exports.hinkalDepositAndBridge=w;
@@ -2,9 +2,9 @@ import { networkRegistry as e } from "../../constants/chains.constants.mjs";
2
2
  import { PAY_SEND_VARIABLE_RATE as t, zeroAddress as n } from "../../constants/protocol.constants.mjs";
3
3
  import { caseInsensitiveEqual as r } from "../../functions/utils/caseInsensitive.utils.mjs";
4
4
  import { transactionErrorCodes as i } from "../../error-handling/error-codes.constants.mjs";
5
- import { ExternalActionId as a } from "../../types/external-action.types.mjs";
6
- import { getCurrentTimeInSeconds as o } from "../../functions/utils/time.utils.mjs";
7
- import { Utxo as s } from "../utxo/Utxo.mjs";
5
+ import { getCurrentTimeInSeconds as a } from "../../functions/utils/time.utils.mjs";
6
+ import { Utxo as o } from "../utxo/Utxo.mjs";
7
+ import { ExternalActionId as s } from "../../types/external-action.types.mjs";
8
8
  import { DepositAndWithdrawPhase as c } from "../../types/scheduled-transactions.types.mjs";
9
9
  import "../../types/index.mjs";
10
10
  import { hashEthereumAddress as l, hashString as u } from "../../functions/utils/addresses.mjs";
@@ -29,15 +29,15 @@ var E = async (t, l, u, f, p, h, g, v, T, E, D) => {
29
29
  if (f.length === 0) throw Error("No recipients to bridge");
30
30
  let O = u.erc20TokenAddress, { contractData: k } = e[l], { emporiumAddress: A } = k;
31
31
  if (!A) throw Error("No Emporium Address");
32
- let j = _[a.Lifi][l];
32
+ let j = _[s.Lifi][l];
33
33
  if (!j) throw Error(`LIFI not configured for chain ${l}`);
34
34
  let M = await t.getRandomRelay(l);
35
35
  if (!M) throw Error(i.RELAYER_NOT_AVAILABLE);
36
- let N = await t.getEthereumAddressByChain(l), P = o().toString(), F = t.generateProofRemotely ? 5 : 1, I = [];
36
+ let N = await t.getEthereumAddressByChain(l), P = a().toString(), F = t.generateProofRemotely ? 5 : 1, I = [];
37
37
  for (let e = 0; e < f.length; e += F) {
38
- let i = f.slice(e, e + F), o = await Promise.all(i.map(async ({ utxo: e, nativeUtxo: i, bridgeAmount: o, quote: c, temporarySubAccount: f, recipientAddress: g }) => {
38
+ let i = f.slice(e, e + F), a = await Promise.all(i.map(async ({ utxo: e, nativeUtxo: i, bridgeAmount: a, quote: c, temporarySubAccount: f, recipientAddress: g }) => {
39
39
  await d.addTemporaryWalletNonce(l, h, f.index);
40
- let _ = c.nativeFee > 0n && !r(O, n), v = [O], C = [-e.amount], w = [!1], T = new s({
40
+ let _ = c.nativeFee > 0n && !r(O, n), v = [O], C = [-e.amount], w = [!1], T = new o({
41
41
  amount: 0n,
42
42
  erc20TokenAddress: O,
43
43
  nullifyingKey: t.userKeys.getShieldedPrivateKey(),
@@ -48,7 +48,7 @@ var E = async (t, l, u, f, p, h, g, v, T, E, D) => {
48
48
  } : { isNewStyle: !1 }
49
49
  }), D = [[e, T]], k = [[T]];
50
50
  if (_ && i) {
51
- let e = new s({
51
+ let e = new o({
52
52
  amount: 0n,
53
53
  erc20TokenAddress: n,
54
54
  nullifyingKey: t.userKeys.getShieldedPrivateKey(),
@@ -60,7 +60,7 @@ var E = async (t, l, u, f, p, h, g, v, T, E, D) => {
60
60
  });
61
61
  v.push(n), C.push(-i.amount), w.push(!1), D.push([i, e]), k.push([e]);
62
62
  }
63
- let F = b(t, l, f.ethAddress, j, O, e.amount, o, c), I = await y(l, u, o, p), L = m(E, l, v, [-e.amount], N), [{ zkCallData: R, circomData: z, dimData: B, commitmentValidationData: V }, H] = await Promise.all([S(t.merkleTreeHinkalByChain[l], D, k, t.userKeys, a.Emporium, A, F, t.generateProofRemotely, I, M ?? n, l, w, void 0, void 0, f.privateKey), x(l, f.privateKey)]);
63
+ let F = b(t, l, f.ethAddress, j, O, e.amount, a, c), I = await y(l, u, a, p), L = m(E, l, v, [-e.amount], N), [{ zkCallData: R, circomData: z, dimData: B, commitmentValidationData: V }, H] = await Promise.all([S(t.merkleTreeHinkalByChain[l], D, k, t.userKeys, s.Emporium, A, F, t.generateProofRemotely, I, M ?? n, l, w, void 0, void 0, f.privateKey), x(l, f.privateKey)]);
64
64
  return {
65
65
  zkCallData: R,
66
66
  dimData: B,
@@ -71,7 +71,7 @@ var E = async (t, l, u, f, p, h, g, v, T, E, D) => {
71
71
  adminData: L
72
72
  };
73
73
  }));
74
- I.push(...o);
74
+ I.push(...a);
75
75
  }
76
76
  await w({
77
77
  id: g,
@@ -87,33 +87,33 @@ var E = async (t, l, u, f, p, h, g, v, T, E, D) => {
87
87
  phase: c.AFTER_SCHEDULE_WITHDRAW,
88
88
  scheduleId: L
89
89
  }), L;
90
- }, D = async (e, i, o, s, c, d, m, y, x = !0) => {
91
- let S = i.erc20TokenAddress, C = f([i]), w = y ? u(y) : void 0, D = l(await e.getEthereumAddressByChain(C)), O = _[a.Lifi][C];
90
+ }, D = async (e, i, a, o, c, d, m, y, x = !0) => {
91
+ let S = i.erc20TokenAddress, C = f([i]), w = y ? u(y) : void 0, D = l(await e.getEthereumAddressByChain(C)), O = _[s.Lifi][C];
92
92
  if (!O) throw Error("LIFI router not configured");
93
93
  let k;
94
94
  if (c) k = c;
95
95
  else {
96
- let n = o[0], r = b(e, C, n.temporarySubAccount.ethAddress, O, S, n.bridgeAmount, n.bridgeAmount, n.quote).map((e) => v(e, n.temporarySubAccount.ethAddress, C));
97
- k = await h(C, S, [S], a.Emporium, r, t);
96
+ let n = a[0], r = b(e, C, n.temporarySubAccount.ethAddress, O, S, n.bridgeAmount, n.bridgeAmount, n.quote).map((e) => v(e, n.temporarySubAccount.ethAddress, C));
97
+ k = await h(C, S, [S], s.Emporium, r, t);
98
98
  }
99
99
  let A = {
100
100
  feeToken: k.feeToken,
101
101
  flatFee: 0n,
102
102
  variableRate: 0n
103
- }, j = o.reduce((e, t) => e + t.quote.nativeFee, 0n) > 0n && !r(S, n), M = o.map((e) => e.bridgeAmount), N = o.map((e) => e.recipientAddress), { userDepositedUtxos: P, statusId: F, depositTxHash: I } = await T(e, C, i, M, N, k, D, x), L = [];
103
+ }, j = a.reduce((e, t) => e + t.quote.nativeFee, 0n) > 0n && !r(S, n), M = a.map((e) => e.bridgeAmount), N = a.map((e) => e.recipientAddress), { userDepositedUtxos: P, statusId: F, depositTxHash: I } = await T(e, C, i, M, N, k, D, x), L = [];
104
104
  if (j) {
105
105
  let t = await p(C, n);
106
106
  if (!t) throw Error("No native token");
107
- let { userDepositedUtxos: r } = await T(e, C, t, o.map((e) => e.quote.nativeFee), N, A, D, x);
107
+ let { userDepositedUtxos: r } = await T(e, C, t, a.map((e) => e.quote.nativeFee), N, A, D, x);
108
108
  L = r;
109
109
  }
110
110
  return await g(e, C, [...P, ...L]), {
111
111
  depositTxHash: I,
112
- scheduleId: await E(e, C, i, o.map((e, t) => ({
112
+ scheduleId: await E(e, C, i, a.map((e, t) => ({
113
113
  ...e,
114
114
  utxo: P[t].utxo,
115
115
  nativeUtxo: j ? L[t]?.utxo : void 0
116
- })), k, D, F, s, d, m, w)
116
+ })), k, D, F, o, d, m, w)
117
117
  };
118
118
  };
119
119
  //#endregion
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../types/external-action.types.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../utxo/Utxo.cjs`),s=require(`../../types/scheduled-transactions.types.cjs`);require(`../../types/index.cjs`);const c=require(`../../functions/utils/addresses.cjs`),l=require(`../../functions/utils/tron.utils.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/pre-transaction/getFeeStructure.cjs`),p=require(`../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),m=require(`../../functions/utils/fees.utils.cjs`),h=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),g=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),_=require(`../../API/deposit-and-withdraw-status-calls.cjs`),v=require(`./hinkalDepositOnChainUtxos.cjs`);require(`../../functions/index.cjs`);var y=async(i,c,u,f,p,v,y,b,x,S,C,w)=>{let T=e.isTronLike(c);if(f.length===0)throw Error(`userDepositedUtxos must not be empty`);let E=u.erc20TokenAddress,[D,O]=await Promise.all([i.getRandomRelay(c),i.getEthereumAddressByChain(c)]);if(!D)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let k=a.getCurrentTimeInSeconds().toString(),A=i.generateProofRemotely&&!T?5:1,j=[],M=l.addressToHexFormat(O);for(let e=0;e<f.length;e+=A){let r=f.slice(e,e+A),a=await Promise.all(r.map(async({recipientAddress:r,utxo:a},s)=>{let f=e+s,g=l.addressToHexFormat(r),_=new o.Utxo({amount:0n,erc20TokenAddress:E,nullifyingKey:i.userKeys.getShieldedPrivateKey(),timeStamp:k,...a.isNewStyle?{spendingPublicKey:i.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}}),y=[[n.caseInsensitiveEqual(a.erc20TokenAddress,E)?a:o.Utxo.createFrom(a,{erc20TokenAddress:E}),_]],b=[[_]],x={externalActionId:0n,externalAddress:g,externalActionMetadata:`0x00`},S=d.constructAdminData(C,c,[E],[-a.amount],M),w=await m.calculateModifiedFeeStructure(c,u,p[f],v),{zkCallData:O,circomData:A,dimData:j,commitmentValidationData:N}=await h.constructZkProof(i.merkleTreeHinkalByChain[c],y,b,i.userKeys,x.externalActionId,x.externalAddress,x.externalActionMetadata,i.generateProofRemotely,w,D??t.zeroAddress,c);return{zkCallData:O,dimData:j,circomData:A,commitmentValidationData:N,adminData:S,recipientAddress:r,tronProofSignature:await l.reorderZkCallData(T,O,j,A)}}));j.push(...a)}await _.safeUpdateDepositAndWithdrawStatus({id:b,chainId:c,hashedEthereumAddress:y,phase:s.DepositAndWithdrawPhase.BEFORE_SCHEDULE_WITHDRAW});let N=await g.transactCallRelayerBatch(c,j,y,x,S,w);return await _.safeUpdateDepositAndWithdrawStatus({id:b,chainId:c,hashedEthereumAddress:y,phase:s.DepositAndWithdrawPhase.AFTER_SCHEDULE_WITHDRAW,scheduleId:N}),N},b=async(e,t,n,r,a,o,s,d,m,h=!0)=>{let g=u.validateAndGetChainId([t]),_=m?c.hashString(m):void 0,b=t.erc20TokenAddress,x=c.hashEthereumAddress(l.addressToHexFormat(await e.getEthereumAddressByChain(g))),S=o??await f.getFeeStructure(g,b,[b],i.ExternalActionId.Transact,[],10n),{userDepositedUtxos:C,statusId:w,depositTxHash:T}=await v.hinkalDepositOnChainUtxos(e,g,t,n,r,S,x,h);return await p.waitForDepositedUtxosInMerkleTree(e,g,C),{depositTxHash:T,scheduleId:await y(e,g,t,C,n,S,x,w,a,s,d,_)}};exports.hinkalDepositAndWithdraw=b;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../types/external-action.types.cjs`),s=require(`../../types/scheduled-transactions.types.cjs`);require(`../../types/index.cjs`);const c=require(`../../functions/utils/addresses.cjs`),l=require(`../../functions/utils/tron.utils.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/pre-transaction/getFeeStructure.cjs`),p=require(`../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),m=require(`../../functions/utils/fees.utils.cjs`),h=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),g=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),_=require(`../../API/deposit-and-withdraw-status-calls.cjs`),v=require(`./hinkalDepositOnChainUtxos.cjs`);require(`../../functions/index.cjs`);var y=async(o,c,u,f,p,v,y,b,x,S,C,w)=>{let T=e.isTronLike(c);if(f.length===0)throw Error(`userDepositedUtxos must not be empty`);let E=u.erc20TokenAddress,[D,O]=await Promise.all([o.getRandomRelay(c),o.getEthereumAddressByChain(c)]);if(!D)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let k=i.getCurrentTimeInSeconds().toString(),A=o.generateProofRemotely&&!T?5:1,j=[],M=l.addressToHexFormat(O);for(let e=0;e<f.length;e+=A){let r=f.slice(e,e+A),i=await Promise.all(r.map(async({recipientAddress:r,utxo:i},s)=>{let f=e+s,g=l.addressToHexFormat(r),_=new a.Utxo({amount:0n,erc20TokenAddress:E,nullifyingKey:o.userKeys.getShieldedPrivateKey(),timeStamp:k,...i.isNewStyle?{spendingPublicKey:o.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}}),y=[[n.caseInsensitiveEqual(i.erc20TokenAddress,E)?i:a.Utxo.createFrom(i,{erc20TokenAddress:E}),_]],b=[[_]],x={externalActionId:0n,externalAddress:g,externalActionMetadata:`0x00`},S=d.constructAdminData(C,c,[E],[-i.amount],M),w=await m.calculateModifiedFeeStructure(c,u,p[f],v),{zkCallData:O,circomData:A,dimData:j,commitmentValidationData:N}=await h.constructZkProof(o.merkleTreeHinkalByChain[c],y,b,o.userKeys,x.externalActionId,x.externalAddress,x.externalActionMetadata,o.generateProofRemotely,w,D??t.zeroAddress,c);return{zkCallData:O,dimData:j,circomData:A,commitmentValidationData:N,adminData:S,recipientAddress:r,tronProofSignature:await l.reorderZkCallData(T,O,j,A)}}));j.push(...i)}await _.safeUpdateDepositAndWithdrawStatus({id:b,chainId:c,hashedEthereumAddress:y,phase:s.DepositAndWithdrawPhase.BEFORE_SCHEDULE_WITHDRAW});let N=await g.transactCallRelayerBatch(c,j,y,x,S,w);return await _.safeUpdateDepositAndWithdrawStatus({id:b,chainId:c,hashedEthereumAddress:y,phase:s.DepositAndWithdrawPhase.AFTER_SCHEDULE_WITHDRAW,scheduleId:N}),N},b=async(e,t,n,r,i,a,s,d,m,h=!0)=>{let g=u.validateAndGetChainId([t]),_=m?c.hashString(m):void 0,b=t.erc20TokenAddress,x=c.hashEthereumAddress(l.addressToHexFormat(await e.getEthereumAddressByChain(g))),S=a??await f.getFeeStructure(g,b,[b],o.ExternalActionId.Transact,[],10n),{userDepositedUtxos:C,statusId:w,depositTxHash:T}=await v.hinkalDepositOnChainUtxos(e,g,t,n,r,S,x,h);return await p.waitForDepositedUtxosInMerkleTree(e,g,C),{depositTxHash:T,scheduleId:await y(e,g,t,C,n,S,x,w,i,s,d,_)}};exports.hinkalDepositAndWithdraw=b;