@hinkal/common 0.1.33 → 0.1.35
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.
- package/constants/chains.constants.cjs +1 -1
- package/constants/chains.constants.mjs +29 -29
- package/constants/fees.constants.cjs +1 -1
- package/constants/fees.constants.mjs +22 -22
- package/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/data-structures/Hinkal/Hinkal.d.ts +1 -0
- package/data-structures/Hinkal/Hinkal.mjs +13 -10
- package/data-structures/Hinkal/IHinkal.d.ts +2 -1
- package/data-structures/Hinkal/hinkalActionBeefy.cjs +1 -1
- package/data-structures/Hinkal/hinkalActionBeefy.mjs +18 -20
- package/data-structures/Hinkal/hinkalActionConvex.cjs +1 -1
- package/data-structures/Hinkal/hinkalActionConvex.mjs +18 -21
- package/data-structures/Hinkal/hinkalActionLidoEth.cjs +1 -1
- package/data-structures/Hinkal/hinkalActionLidoEth.mjs +31 -31
- package/data-structures/Hinkal/hinkalActionPendle.cjs +1 -1
- package/data-structures/Hinkal/hinkalActionPendle.mjs +77 -80
- package/data-structures/Hinkal/hinkalActionPendleLP.cjs +1 -1
- package/data-structures/Hinkal/hinkalActionPendleLP.mjs +34 -34
- package/data-structures/Hinkal/hinkalActionStake.cjs +1 -1
- package/data-structures/Hinkal/hinkalActionStake.mjs +48 -52
- package/data-structures/Hinkal/hinkalActionVolatile.cjs +1 -1
- package/data-structures/Hinkal/hinkalActionVolatile.mjs +38 -44
- package/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
- package/data-structures/Hinkal/hinkalDeposit.mjs +27 -28
- package/data-structures/event-service/AbstractCommitmentsSnapshotService.cjs +1 -4
- package/data-structures/event-service/AbstractCommitmentsSnapshotService.mjs +11 -16
- package/data-structures/transactions-manager/TransactionsManager.cjs +1 -1
- package/data-structures/transactions-manager/TransactionsManager.mjs +66 -74
- package/data-structures/transactions-manager/history/getVolatileData.cjs +1 -1
- package/data-structures/transactions-manager/history/getVolatileData.mjs +13 -13
- package/data-structures/volatile-helper/VolatileHelper.cjs +1 -1
- package/data-structures/volatile-helper/VolatileHelper.mjs +60 -60
- package/functions/pre-transaction/getFlatFees.cjs +1 -1
- package/functions/pre-transaction/getFlatFees.mjs +42 -42
- package/functions/pre-transaction/process-gas-estimates.cjs +1 -1
- package/functions/pre-transaction/process-gas-estimates.mjs +17 -26
- package/functions/protocols/pendle.helpers.cjs +1 -1
- package/functions/protocols/pendle.helpers.mjs +27 -27
- package/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
- package/functions/snarkjs/constructGeneralZkProof.mjs +35 -37
- package/functions/utils/cacheFunctions.cjs +1 -1
- package/functions/utils/cacheFunctions.mjs +27 -30
- package/functions/web3/events/getShieldedBalance.cjs +2 -2
- package/functions/web3/events/getShieldedBalance.mjs +25 -25
- package/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
- package/functions/web3/functionCalls/transactCallDirect.mjs +15 -15
- package/functions/web3/runContractFunction.cjs +1 -1
- package/functions/web3/runContractFunction.mjs +37 -37
- package/functions/web3/uniswapAPI.cjs +1 -1
- package/functions/web3/uniswapAPI.mjs +28 -28
- package/package.json +1 -1
- package/types/relayer.types.d.ts +22 -0
- package/webworker/snarkjsWorker/snarkjsWorkerLauncher.cjs +1 -1
- package/webworker/snarkjsWorker/snarkjsWorkerLauncher.mjs +1 -1
- package/webworker/snarkjsWorker/snarkjsWorkerLogic.cjs +1 -1
- package/webworker/snarkjsWorker/snarkjsWorkerLogic.mjs +16 -17
|
@@ -6,102 +6,102 @@ import "../../types/curve.types.mjs";
|
|
|
6
6
|
import { getERC20Token as T } from "../utils/erc20tokenFunctions.mjs";
|
|
7
7
|
import { processGasEstimates as R } from "./process-gas-estimates.mjs";
|
|
8
8
|
import { getInteractionFromAction as A } from "./interaction-to-action.mjs";
|
|
9
|
-
const
|
|
9
|
+
const F = async (t, _, D, N, n, W) => {
|
|
10
10
|
let k;
|
|
11
|
-
const
|
|
12
|
-
if (
|
|
11
|
+
const P = A(D, n);
|
|
12
|
+
if (P === a.NONE)
|
|
13
13
|
throw Error("No interaction was choosen");
|
|
14
|
-
let
|
|
15
|
-
switch (
|
|
14
|
+
let L, o, b;
|
|
15
|
+
switch (P) {
|
|
16
16
|
case a.WITHDRAW:
|
|
17
|
-
k = T(
|
|
17
|
+
k = T(_[0], t);
|
|
18
18
|
break;
|
|
19
19
|
case a.SWAP:
|
|
20
|
-
k = T(
|
|
20
|
+
k = T(_[1], t);
|
|
21
21
|
break;
|
|
22
22
|
case a.CURVE_DEPOSIT:
|
|
23
|
-
k = T(
|
|
23
|
+
k = T(_[_.length - 1], t);
|
|
24
24
|
break;
|
|
25
25
|
case a.CURVE_WITHDRAW: {
|
|
26
|
-
if (b =
|
|
27
|
-
(
|
|
28
|
-
),
|
|
26
|
+
if (b = _.findIndex(
|
|
27
|
+
(r) => r.toLowerCase() === W?.toLowerCase()
|
|
28
|
+
), b === -1)
|
|
29
29
|
throw Error("Curve Withdraw Token Index not found");
|
|
30
|
-
k = T(
|
|
30
|
+
k = T(_[b], t);
|
|
31
31
|
break;
|
|
32
32
|
}
|
|
33
33
|
case a.STAKING:
|
|
34
34
|
case a.UNSTAKING:
|
|
35
|
-
k = T(
|
|
35
|
+
k = T(_[1], t);
|
|
36
36
|
break;
|
|
37
37
|
case a.CLAIMING:
|
|
38
|
-
k = T(
|
|
38
|
+
k = T(_[1], t);
|
|
39
39
|
break;
|
|
40
40
|
case a.BEEFY:
|
|
41
|
-
|
|
41
|
+
L = f(n) ? 1 : 0, k = T(_[L], t);
|
|
42
42
|
break;
|
|
43
43
|
case a.BEEFY_STAKE:
|
|
44
44
|
case a.BEEFY_UNSTAKE:
|
|
45
|
-
k = T(
|
|
45
|
+
k = T(_[1], t);
|
|
46
46
|
break;
|
|
47
47
|
case a.BEEFY_GET_REWARDS:
|
|
48
|
-
k = T(
|
|
48
|
+
k = T(_[1], t);
|
|
49
49
|
break;
|
|
50
50
|
case a.LIDO_STAKE:
|
|
51
|
-
k = T(
|
|
51
|
+
k = T(_[0], t);
|
|
52
52
|
break;
|
|
53
53
|
case a.LIDO_REQUEST:
|
|
54
|
-
k = T(
|
|
54
|
+
k = T(_[1], t);
|
|
55
55
|
break;
|
|
56
56
|
case a.LIDO_CLAIM:
|
|
57
|
-
k = T(
|
|
57
|
+
k = T(_[1], t);
|
|
58
58
|
break;
|
|
59
59
|
case a.PENDLE_TRANSACT:
|
|
60
|
-
k = T(
|
|
60
|
+
k = T(_[0], t);
|
|
61
61
|
break;
|
|
62
62
|
case a.PENDLE_YT_IN_SWAP:
|
|
63
|
-
k = T(
|
|
63
|
+
k = T(_[1], t);
|
|
64
64
|
break;
|
|
65
65
|
case a.PENDLE_YT_OUT_SWAP:
|
|
66
|
-
k = T(
|
|
66
|
+
k = T(_[0], t);
|
|
67
67
|
break;
|
|
68
68
|
case a.PENDLE_PT_SWAP:
|
|
69
|
-
k = T(
|
|
69
|
+
k = T(_[1], t);
|
|
70
70
|
break;
|
|
71
71
|
case a.PENDLE_MINT:
|
|
72
|
-
k = T(
|
|
72
|
+
k = T(_[1], t);
|
|
73
73
|
break;
|
|
74
74
|
case a.PENDLE_REDEEM:
|
|
75
|
-
k = T(
|
|
75
|
+
k = T(_[2], t);
|
|
76
76
|
break;
|
|
77
77
|
case a.PENDLE_CLAIM:
|
|
78
|
-
k = T(
|
|
78
|
+
k = T(_[1], t);
|
|
79
79
|
break;
|
|
80
80
|
case a.VOLATILE_WITHDRAW:
|
|
81
|
-
k = T(
|
|
81
|
+
k = T(_[0], t);
|
|
82
82
|
break;
|
|
83
83
|
case a.VOLATILE_SWAP:
|
|
84
|
-
k = T(
|
|
84
|
+
k = T(_[1], t);
|
|
85
85
|
break;
|
|
86
86
|
case a.PENDLE_LP:
|
|
87
|
-
|
|
87
|
+
o = N.findIndex((r) => r > 0), k = T(_[o], t);
|
|
88
88
|
break;
|
|
89
89
|
case a.PENDLE_LP_CLAIM:
|
|
90
|
-
k = T(
|
|
90
|
+
k = T(_[1], t);
|
|
91
91
|
break;
|
|
92
92
|
case a.EMPORIUM:
|
|
93
93
|
}
|
|
94
|
-
let E,
|
|
95
|
-
const
|
|
96
|
-
k && ({ priceOfTransactionInToken: E, priceOfTransactionInUSD:
|
|
97
|
-
|
|
94
|
+
let E, S;
|
|
95
|
+
const I = N.length;
|
|
96
|
+
k && ({ priceOfTransactionInToken: E, priceOfTransactionInUSD: S } = await R(
|
|
97
|
+
t,
|
|
98
98
|
k,
|
|
99
99
|
D,
|
|
100
100
|
n,
|
|
101
|
-
|
|
101
|
+
I
|
|
102
102
|
));
|
|
103
|
-
const e = new Array(
|
|
104
|
-
switch (
|
|
103
|
+
const e = new Array(I).fill(0n);
|
|
104
|
+
switch (P) {
|
|
105
105
|
case a.WITHDRAW:
|
|
106
106
|
e[0] = E || 0n;
|
|
107
107
|
break;
|
|
@@ -122,7 +122,7 @@ const i = async (_, t, D, N, n, S) => {
|
|
|
122
122
|
e[1] = E || 0n;
|
|
123
123
|
break;
|
|
124
124
|
case a.BEEFY:
|
|
125
|
-
|
|
125
|
+
L && (e[L] = E || 0n);
|
|
126
126
|
break;
|
|
127
127
|
case a.BEEFY_STAKE:
|
|
128
128
|
e[1] = E || 0n, e[0] = E || 0n;
|
|
@@ -167,7 +167,7 @@ const i = async (_, t, D, N, n, S) => {
|
|
|
167
167
|
e[1] = E || 0n;
|
|
168
168
|
break;
|
|
169
169
|
case a.PENDLE_LP:
|
|
170
|
-
|
|
170
|
+
o !== void 0 && (e[o] = E || 0n);
|
|
171
171
|
break;
|
|
172
172
|
case a.PENDLE_LP_CLAIM:
|
|
173
173
|
e[1] = E || 0n;
|
|
@@ -175,8 +175,8 @@ const i = async (_, t, D, N, n, S) => {
|
|
|
175
175
|
case a.EMPORIUM:
|
|
176
176
|
break;
|
|
177
177
|
}
|
|
178
|
-
return { flatFees: e, priceOfTransactionInToken: E, feeUnit: k, priceOfTransactionInUSD:
|
|
178
|
+
return { flatFees: e, priceOfTransactionInToken: E, feeUnit: k, priceOfTransactionInUSD: S };
|
|
179
179
|
};
|
|
180
180
|
export {
|
|
181
|
-
|
|
181
|
+
F as getFlatFees
|
|
182
182
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../constants/chains.constants.cjs");require("../../constants/vite.constants.cjs");require("axios");require("../../constants/coingecko.constants.cjs");const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../constants/chains.constants.cjs");require("../../constants/vite.constants.cjs");require("axios");require("../../constants/coingecko.constants.cjs");const q=require("../../API/getGasEstimates.cjs");require("ethers");require("../../types/curve.types.cjs");const l=require("../../error-handling/logError.cjs"),m=require("../utils/amounts.utils.cjs");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 g=require("../web3/etherFunctions.cjs"),T=async(s,e,i,n,o,a)=>{let t,r;try{({priceOfTransactionInUSD:t,priceOfTransactionInToken:r}=await q.getGasEstimates(s,e.erc20TokenAddress,i,n,o,a))}catch(u){l.logError("processGasEstimates error:",u)}const c=r?g.getAmountInWei(e,m.getValueFirstNDigit(r,e.decimals)):void 0;return{priceOfTransactionInUSD:t,priceOfTransactionInToken:c}};exports.processGasEstimates=T;
|
|
@@ -2,43 +2,34 @@ import "../../constants/chains.constants.mjs";
|
|
|
2
2
|
import "../../constants/vite.constants.mjs";
|
|
3
3
|
import "axios";
|
|
4
4
|
import "../../constants/coingecko.constants.mjs";
|
|
5
|
-
import { getGasEstimates as
|
|
5
|
+
import { getGasEstimates as c } from "../../API/getGasEstimates.mjs";
|
|
6
6
|
import "ethers";
|
|
7
7
|
import "../../types/curve.types.mjs";
|
|
8
|
-
import { logError as
|
|
9
|
-
import { getValueFirstNDigit as
|
|
8
|
+
import { logError as f } from "../../error-handling/logError.mjs";
|
|
9
|
+
import { getValueFirstNDigit as T } from "../utils/amounts.utils.mjs";
|
|
10
10
|
import "../../constants/contracts.constants.mjs";
|
|
11
11
|
import "../../constants/kyc.constants.mjs";
|
|
12
12
|
import "../../constants/axelar.constants.mjs";
|
|
13
13
|
import "../../constants/rewards.constants.mjs";
|
|
14
14
|
import "../../constants/reorg-depths.constants.mjs";
|
|
15
|
-
import { getAmountInWei as
|
|
16
|
-
const
|
|
17
|
-
let
|
|
15
|
+
import { getAmountInWei as g } from "../web3/etherFunctions.mjs";
|
|
16
|
+
const F = async (i, r, e, m, s, p) => {
|
|
17
|
+
let o, t;
|
|
18
18
|
try {
|
|
19
|
-
({
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
} = await T(
|
|
19
|
+
({ priceOfTransactionInUSD: o, priceOfTransactionInToken: t } = await c(
|
|
20
|
+
i,
|
|
21
|
+
r.erc20TokenAddress,
|
|
22
|
+
e,
|
|
24
23
|
m,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
p,
|
|
28
|
-
n,
|
|
29
|
-
c
|
|
24
|
+
s,
|
|
25
|
+
p
|
|
30
26
|
));
|
|
31
|
-
} catch (
|
|
32
|
-
|
|
27
|
+
} catch (n) {
|
|
28
|
+
f("processGasEstimates error:", n);
|
|
33
29
|
}
|
|
34
|
-
const
|
|
35
|
-
return
|
|
36
|
-
status: i,
|
|
37
|
-
priceOfTransactionInUSD: o,
|
|
38
|
-
priceOfTransactionInTokenEstimate: r,
|
|
39
|
-
priceOfTransactionInToken: s
|
|
40
|
-
}), { priceOfTransactionInUSD: o, priceOfTransactionInToken: s };
|
|
30
|
+
const a = t ? g(r, T(t, r.decimals)) : void 0;
|
|
31
|
+
return { priceOfTransactionInUSD: o, priceOfTransactionInToken: a };
|
|
41
32
|
};
|
|
42
33
|
export {
|
|
43
|
-
|
|
34
|
+
F as processGasEstimates
|
|
44
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../constants/chains.constants.cjs");require("../../constants/vite.constants.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/kyc.constants.cjs");const o=require("../../constants/server.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/axelar.constants.cjs");require("../../constants/rewards.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const i=require("../utils/caseInsensitive.utils.cjs");require("../../types/circom-data.types.cjs");const s=require("../../types/hinkal.types.cjs");require("../../types/transactions.types.cjs");const n=require("../../types/pendle.types.cjs");require("../../types/curve.types.cjs");require("ethers");require("circomlibjs");require("../../data-structures/crypto-keys/keys.cjs");require("idb-keyval");require("../utils/external-action.utils.cjs");const c=require("../utils/erc20tokenFunctions.cjs");require("../utils/convertIntegrationProviderToExternalActionId.cjs");require("axios");require("../utils/userAgent.cjs");require("../../data-structures/custom-token-registry/CustomTokenRegistry.cjs");require("../../data-structures/volatile-helper/VolatileHelper.cjs");const T=require("../utils/enum.utils.cjs");function P(e){if(!e)return;const r=c.getERC20Token(e.address,e.chainId);if(!r?.isVolatile)return r
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../constants/chains.constants.cjs");require("../../constants/vite.constants.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/kyc.constants.cjs");const o=require("../../constants/server.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/axelar.constants.cjs");require("../../constants/rewards.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const i=require("../utils/caseInsensitive.utils.cjs");require("../../types/circom-data.types.cjs");const s=require("../../types/hinkal.types.cjs");require("../../types/transactions.types.cjs");const n=require("../../types/pendle.types.cjs");require("../../types/curve.types.cjs");require("ethers");require("circomlibjs");require("../../data-structures/crypto-keys/keys.cjs");require("idb-keyval");require("../utils/external-action.utils.cjs");const c=require("../utils/erc20tokenFunctions.cjs");require("../utils/convertIntegrationProviderToExternalActionId.cjs");require("axios");require("../utils/userAgent.cjs");require("../../data-structures/custom-token-registry/CustomTokenRegistry.cjs");require("../../data-structures/volatile-helper/VolatileHelper.cjs");const T=require("../utils/enum.utils.cjs");function P(e){if(!e)return;const r=c.getERC20Token(e.address,e.chainId);if(!r?.isVolatile)return r}function w(e,r){if(!e||!r)return;let t;switch(r){case n.PendleAssetType.YT:t=e?.yt;break;case n.PendleAssetType.PT:t=e?.pt;break;case n.PendleAssetType.PENDLE_LP:t=e?.lp;break;case n.PendleAssetType.SY:t=e?.sy;break;default:t=void 0;break}return t}const F=(e,r,t)=>{if(i.caseInsensitiveEqual(e.yt.address,t.erc20TokenAddress))return n.PendleSwapType.SwapExactTokenForYt;if(i.caseInsensitiveEqual(e.pt.address,t.erc20TokenAddress))return n.PendleSwapType.SwapExactTokenForPt;if(i.caseInsensitiveEqual(e.yt.address,r.erc20TokenAddress))return n.PendleSwapType.SwapExactYtForToken;if(i.caseInsensitiveEqual(e.pt.address,r.erc20TokenAddress))return n.PendleSwapType.SwapExactPtForToken},q=e=>{let r;switch(e){case n.PendleSwapType.SwapExactTokenForYt:r=o.API_CONFIG.ROUTES.pendleSwapExactTokenForYT;break;case n.PendleSwapType.SwapExactTokenForPt:r=o.API_CONFIG.ROUTES.pendleSwapExactTokenForPt;break;case n.PendleSwapType.SwapExactYtForToken:r=o.API_CONFIG.ROUTES.pendleSwapExactYtForToken;break;case n.PendleSwapType.SwapExactPtForToken:r=o.API_CONFIG.ROUTES.pendleSwapExactPtForToken;break;default:throw new Error("Cant determine Pendle Swap Type Api Route")}return r},k=(e,r,t,a)=>{if(!T.isInEnum(s.PendleAction,e))throw new Error("getTokenIndexForPendleFlatFee: Invalid Pendle Action");if(a)return t.findIndex(d=>d.toLowerCase()===a?.toLowerCase());const l=r.findIndex(d=>d>0n),p=r.length-1;if(r[p]<=0n)throw new Error("getTokenIndexForPendleFlatFee: Last token in amountChange is not > 0");let u=l;return(e===s.PendleAction.Mint||e===s.PendleAction.Redeem||e===s.PendleAction.PoolRemove)&&(u=l),u};exports.determinePendleSwapType=F;exports.determinePendleSwapTypeApiRoute=q;exports.erc20TokenFromPendleAsset=P;exports.getAssetTypeFromPendleMarket=w;exports.getTokenIndexForPendleFlatFee=k;
|
|
@@ -11,7 +11,7 @@ import { caseInsensitiveEqual as i } from "../utils/caseInsensitive.utils.mjs";
|
|
|
11
11
|
import "../../types/circom-data.types.mjs";
|
|
12
12
|
import { PendleAction as p } from "../../types/hinkal.types.mjs";
|
|
13
13
|
import "../../types/transactions.types.mjs";
|
|
14
|
-
import { PendleAssetType as d, PendleSwapType as
|
|
14
|
+
import { PendleAssetType as d, PendleSwapType as o } from "../../types/pendle.types.mjs";
|
|
15
15
|
import "../../types/curve.types.mjs";
|
|
16
16
|
import "ethers";
|
|
17
17
|
import "circomlibjs";
|
|
@@ -24,77 +24,77 @@ import "axios";
|
|
|
24
24
|
import "../utils/userAgent.mjs";
|
|
25
25
|
import "../../data-structures/custom-token-registry/CustomTokenRegistry.mjs";
|
|
26
26
|
import "../../data-structures/volatile-helper/VolatileHelper.mjs";
|
|
27
|
-
import { isInEnum as
|
|
27
|
+
import { isInEnum as k } from "../utils/enum.utils.mjs";
|
|
28
28
|
function V(e) {
|
|
29
29
|
if (!e)
|
|
30
30
|
return;
|
|
31
31
|
const r = T(e.address, e.chainId);
|
|
32
32
|
if (!r?.isVolatile)
|
|
33
|
-
return r
|
|
33
|
+
return r;
|
|
34
34
|
}
|
|
35
35
|
function j(e, r) {
|
|
36
36
|
if (!e || !r)
|
|
37
37
|
return;
|
|
38
|
-
let
|
|
38
|
+
let t;
|
|
39
39
|
switch (r) {
|
|
40
40
|
case d.YT:
|
|
41
|
-
|
|
41
|
+
t = e?.yt;
|
|
42
42
|
break;
|
|
43
43
|
case d.PT:
|
|
44
|
-
|
|
44
|
+
t = e?.pt;
|
|
45
45
|
break;
|
|
46
46
|
case d.PENDLE_LP:
|
|
47
|
-
|
|
47
|
+
t = e?.lp;
|
|
48
48
|
break;
|
|
49
49
|
case d.SY:
|
|
50
|
-
|
|
50
|
+
t = e?.sy;
|
|
51
51
|
break;
|
|
52
52
|
default:
|
|
53
|
-
|
|
53
|
+
t = void 0;
|
|
54
54
|
break;
|
|
55
55
|
}
|
|
56
|
-
return
|
|
56
|
+
return t;
|
|
57
57
|
}
|
|
58
|
-
const z = (e, r,
|
|
59
|
-
if (i(e.yt.address,
|
|
60
|
-
return
|
|
61
|
-
if (i(e.pt.address,
|
|
62
|
-
return
|
|
58
|
+
const z = (e, r, t) => {
|
|
59
|
+
if (i(e.yt.address, t.erc20TokenAddress))
|
|
60
|
+
return o.SwapExactTokenForYt;
|
|
61
|
+
if (i(e.pt.address, t.erc20TokenAddress))
|
|
62
|
+
return o.SwapExactTokenForPt;
|
|
63
63
|
if (i(e.yt.address, r.erc20TokenAddress))
|
|
64
|
-
return
|
|
64
|
+
return o.SwapExactYtForToken;
|
|
65
65
|
if (i(e.pt.address, r.erc20TokenAddress))
|
|
66
|
-
return
|
|
66
|
+
return o.SwapExactPtForToken;
|
|
67
67
|
}, H = (e) => {
|
|
68
68
|
let r;
|
|
69
69
|
switch (e) {
|
|
70
|
-
case
|
|
70
|
+
case o.SwapExactTokenForYt:
|
|
71
71
|
r = n.ROUTES.pendleSwapExactTokenForYT;
|
|
72
72
|
break;
|
|
73
|
-
case
|
|
73
|
+
case o.SwapExactTokenForPt:
|
|
74
74
|
r = n.ROUTES.pendleSwapExactTokenForPt;
|
|
75
75
|
break;
|
|
76
|
-
case
|
|
76
|
+
case o.SwapExactYtForToken:
|
|
77
77
|
r = n.ROUTES.pendleSwapExactYtForToken;
|
|
78
78
|
break;
|
|
79
|
-
case
|
|
79
|
+
case o.SwapExactPtForToken:
|
|
80
80
|
r = n.ROUTES.pendleSwapExactPtForToken;
|
|
81
81
|
break;
|
|
82
82
|
default:
|
|
83
83
|
throw new Error("Cant determine Pendle Swap Type Api Route");
|
|
84
84
|
}
|
|
85
85
|
return r;
|
|
86
|
-
}, J = (e, r,
|
|
87
|
-
if (!
|
|
86
|
+
}, J = (e, r, t, s) => {
|
|
87
|
+
if (!k(p, e))
|
|
88
88
|
throw new Error("getTokenIndexForPendleFlatFee: Invalid Pendle Action");
|
|
89
89
|
if (s)
|
|
90
|
-
return
|
|
90
|
+
return t.findIndex(
|
|
91
91
|
(a) => a.toLowerCase() === s?.toLowerCase()
|
|
92
92
|
);
|
|
93
|
-
const
|
|
93
|
+
const c = r.findIndex((a) => a > 0n), m = r.length - 1;
|
|
94
94
|
if (r[m] <= 0n)
|
|
95
95
|
throw new Error("getTokenIndexForPendleFlatFee: Last token in amountChange is not > 0");
|
|
96
|
-
let
|
|
97
|
-
return (e === p.Mint || e === p.Redeem || e === p.PoolRemove) && (
|
|
96
|
+
let l = c;
|
|
97
|
+
return (e === p.Mint || e === p.Redeem || e === p.PoolRemove) && (l = c), l;
|
|
98
98
|
};
|
|
99
99
|
export {
|
|
100
100
|
z as determinePendleSwapType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const V=require("../../constants/chains.constants.cjs"),j=require("../../constants/protocol.constants.cjs"),G=require("../../data-structures/utxo/Utxo.cjs"),m=require("../../types/hinkal.stake.types.cjs"),k=require("../../webworker/performTaskWithWorker.cjs"),S=require("../../webworker/worker.registry.cjs"),p=require("../../webworker/zkProofWorker/zkProofWorker.types.cjs"),J=require("../web3/etherFunctions.cjs"),i=require("./common.snarkjs.cjs"),F=require("./generateCircomData.cjs"),Q=require("./generateZkProof.cjs"),X=async(u,f,a,r,h,g,y,T,C,P=j.zeroAddress,z=V.chainIds.localhost,s=a.map(()=>!1),_=a.map(()=>0n),I=void 0,n)=>{const W=u.getRootHash(),H=f.getRootHash(),b=a.map(e=>e.map(t=>t.getConstructableParams())),D=h.getSignature(),{accessTokenSiblings:Z,accessTokenSiblingSides:K}=await k.performTaskWithWorker({type:S.WorkerVariant.ZKProof,payload:{type:p.ZKProofWorkerActionType.CALC_ACCESS_TOKEN_SIBLING_AND_SIDES,data:{userSignature:D,merkleTreeAccessTokenSerialized:f.toJSON()}}}),{inCommitmentSiblings:O,inCommitmentSiblingSides:R}=await k.performTaskWithWorker({type:S.WorkerVariant.ZKProof,payload:{type:p.ZKProofWorkerActionType.CALC_COMMITMENTS_SIBLING_AND_SIDES,data:{inputUtxosSerialized:b,userSignature:D,merkleTreeSerialized:u.toJSON()}}}),B=i.calcAmountChanges(a,r),d=i.calcEncryptedOutputs(r,(n&&n.mode!==m.HinkalStakeMode.Deposit)??!1),l=h.getShieldedPrivateKey(),N=G.Utxo.findCorrectRandomization(J.randomBigInt(31),l),E=await k.performTaskWithWorker({type:S.WorkerVariant.ZKProof,payload:{type:p.ZKProofWorkerActionType.BUILD_IN_NULLIFIERS,data:{inputUtxosSerialized:b,onChainCreation:s}}}),o={rootHashHinkal:W,shieldedPrivateKey:l,erc20TokenAddresses:a.map(e=>e[0].erc20TokenAddress),inAmounts:a.map(e=>e.map(t=>t.amount.toString())),inTimeStamps:a.map(e=>e.map(t=>t.timeStamp)),inRandomizations:a.map(e=>e.map(t=>t.randomization)),inNullifiers:E,inCommitmentSiblings:O,inCommitmentSiblingSides:R,outAmounts:r.map(e=>e.map(t=>t.amount.toString())),outTimeStamp:BigInt(r[0][0].timeStamp),outPublicKeys:r.map(e=>e.map(t=>t.getStealthAddress())),extraRandomization:N,amountChanges:B,outCommitments:i.buildOutCommitments(r,s),rootHashAccessToken:H,accessTokenSiblings:Z,accessTokenSiblingSides:K,calldataHash:0n};n||(o.onChainCreation=s);const c=a.map(e=>e[0].tokenId??0),q=c.reduce((e,t)=>e+t,0)>0?c.length:0;q>0&&(o.tokenIds=c);const A=i.calcPublicSignalCount(g,o.erc20TokenAddresses,o.amountChanges,o.inNullifiers,o.outCommitments,q);o.calldataHash=i.createCallDataHash(A,P,T,y,C,d,_,I),n&&(n.mode===m.HinkalStakeMode.Deposit&&(o.mode=0),n.mode===m.HinkalStakeMode.Stake&&(o.mode=1),n.mode===m.HinkalStakeMode.Unstake&&(o.mode=2),o.stakedTokenRecipient=n.stakedTokenRecipient,o.stakeBlinding=n.stakeBlinding,o.depositorAddress=n.depositorAddress);const{zkCallData:L}=await Q.generateZkProof(z,g,o),M=i.calcStealthAddressStructure(N,l),w=await F.generateCircomData(W,H,a,r,d,_,A,y,T,C,P,o.calldataHash,c,M,s,I),v={tokenNumber:a.length,nullifierAmount:a[0].length,outputAmount:r[0].length};return{zkCallData:L,circomData:w,dimData:v,encryptedOutputs:d}};exports.constructZkProof=X;
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { chainIds as
|
|
2
|
-
import { zeroAddress as
|
|
3
|
-
import { Utxo as
|
|
4
|
-
import { HinkalStakeMode as
|
|
1
|
+
import { chainIds as G } from "../../constants/chains.constants.mjs";
|
|
2
|
+
import { zeroAddress as J } from "../../constants/protocol.constants.mjs";
|
|
3
|
+
import { Utxo as V } from "../../data-structures/utxo/Utxo.mjs";
|
|
4
|
+
import { HinkalStakeMode as d } from "../../types/hinkal.stake.types.mjs";
|
|
5
5
|
import { performTaskWithWorker as l } from "../../webworker/performTaskWithWorker.mjs";
|
|
6
6
|
import { WorkerVariant as p } from "../../webworker/worker.registry.mjs";
|
|
7
7
|
import { ZKProofWorkerActionType as S } from "../../webworker/zkProofWorker/zkProofWorker.types.mjs";
|
|
8
|
-
import { randomBigInt as
|
|
9
|
-
import { calcAmountChanges as
|
|
10
|
-
import { generateCircomData as
|
|
11
|
-
import { generateZkProof as
|
|
12
|
-
const
|
|
13
|
-
const
|
|
8
|
+
import { randomBigInt as j } from "../web3/etherFunctions.mjs";
|
|
9
|
+
import { calcAmountChanges as q, calcEncryptedOutputs as F, buildOutCommitments as Q, calcPublicSignalCount as X, createCallDataHash as Y, calcStealthAddressStructure as $ } from "./common.snarkjs.mjs";
|
|
10
|
+
import { generateCircomData as U } from "./generateCircomData.mjs";
|
|
11
|
+
import { generateZkProof as x } from "./generateZkProof.mjs";
|
|
12
|
+
const po = async (f, g, a, n, h, k, u, C, I, T = J, R = G.localhost, m = a.map(() => !1), y = a.map(() => 0n), N = void 0, i) => {
|
|
13
|
+
const P = f.getRootHash(), D = g.getRootHash(), _ = a.map((o) => o.map((t) => t.getConstructableParams())), b = h.getSignature(), { accessTokenSiblings: B, accessTokenSiblingSides: E } = await l({
|
|
14
14
|
type: p.ZKProof,
|
|
15
15
|
payload: {
|
|
16
16
|
type: S.CALC_ACCESS_TOKEN_SIBLING_AND_SIDES,
|
|
17
17
|
data: {
|
|
18
|
-
userSignature:
|
|
18
|
+
userSignature: b,
|
|
19
19
|
merkleTreeAccessTokenSerialized: g.toJSON()
|
|
20
20
|
}
|
|
21
21
|
}
|
|
@@ -23,19 +23,19 @@ const So = async (f, g, a, n, h, u, k, C, I, T = V, R = J.localhost, m = a.map((
|
|
|
23
23
|
type: p.ZKProof,
|
|
24
24
|
payload: {
|
|
25
25
|
type: S.CALC_COMMITMENTS_SIBLING_AND_SIDES,
|
|
26
|
-
data: { inputUtxosSerialized:
|
|
26
|
+
data: { inputUtxosSerialized: _, userSignature: b, merkleTreeSerialized: f.toJSON() }
|
|
27
27
|
}
|
|
28
|
-
}), O =
|
|
28
|
+
}), O = q(a, n), c = F(
|
|
29
29
|
n,
|
|
30
|
-
(i && i.mode !==
|
|
31
|
-
), s = h.getShieldedPrivateKey(), H =
|
|
30
|
+
(i && i.mode !== d.Deposit) ?? !1
|
|
31
|
+
), s = h.getShieldedPrivateKey(), H = V.findCorrectRandomization(j(31), s), Z = await l({
|
|
32
32
|
type: p.ZKProof,
|
|
33
33
|
payload: {
|
|
34
34
|
type: S.BUILD_IN_NULLIFIERS,
|
|
35
|
-
data: { inputUtxosSerialized:
|
|
35
|
+
data: { inputUtxosSerialized: _, onChainCreation: m }
|
|
36
36
|
}
|
|
37
37
|
}), e = {
|
|
38
|
-
rootHashHinkal:
|
|
38
|
+
rootHashHinkal: P,
|
|
39
39
|
shieldedPrivateKey: s,
|
|
40
40
|
erc20TokenAddresses: a.map((o) => o[0].erc20TokenAddress),
|
|
41
41
|
inAmounts: a.map((o) => o.map((t) => t.amount.toString())),
|
|
@@ -49,8 +49,8 @@ const So = async (f, g, a, n, h, u, k, C, I, T = V, R = J.localhost, m = a.map((
|
|
|
49
49
|
outPublicKeys: n.map((o) => o.map((t) => t.getStealthAddress())),
|
|
50
50
|
extraRandomization: H,
|
|
51
51
|
amountChanges: O,
|
|
52
|
-
outCommitments:
|
|
53
|
-
rootHashAccessToken:
|
|
52
|
+
outCommitments: Q(n, m),
|
|
53
|
+
rootHashAccessToken: D,
|
|
54
54
|
accessTokenSiblings: B,
|
|
55
55
|
accessTokenSiblingSides: E,
|
|
56
56
|
calldataHash: 0n
|
|
@@ -58,50 +58,48 @@ const So = async (f, g, a, n, h, u, k, C, I, T = V, R = J.localhost, m = a.map((
|
|
|
58
58
|
i || (e.onChainCreation = m);
|
|
59
59
|
const r = a.map((o) => o[0].tokenId ?? 0), z = r.reduce((o, t) => o + t, 0) > 0 ? r.length : 0;
|
|
60
60
|
z > 0 && (e.tokenIds = r);
|
|
61
|
-
const A =
|
|
62
|
-
|
|
61
|
+
const A = X(
|
|
62
|
+
k,
|
|
63
63
|
e.erc20TokenAddresses,
|
|
64
64
|
e.amountChanges,
|
|
65
65
|
e.inNullifiers,
|
|
66
66
|
e.outCommitments,
|
|
67
67
|
z
|
|
68
68
|
);
|
|
69
|
-
e.calldataHash =
|
|
69
|
+
e.calldataHash = Y(
|
|
70
70
|
A,
|
|
71
71
|
T,
|
|
72
72
|
C,
|
|
73
|
-
|
|
73
|
+
u,
|
|
74
74
|
I,
|
|
75
|
-
|
|
75
|
+
c,
|
|
76
76
|
y,
|
|
77
|
-
|
|
78
|
-
), i && (i.mode ===
|
|
79
|
-
const { zkCallData: w
|
|
80
|
-
console.log("publicSignals", W);
|
|
81
|
-
const v = U(H, s), M = await x(
|
|
82
|
-
N,
|
|
77
|
+
N
|
|
78
|
+
), i && (i.mode === d.Deposit && (e.mode = 0), i.mode === d.Stake && (e.mode = 1), i.mode === d.Unstake && (e.mode = 2), e.stakedTokenRecipient = i.stakedTokenRecipient, e.stakeBlinding = i.stakeBlinding, e.depositorAddress = i.depositorAddress);
|
|
79
|
+
const { zkCallData: w } = await x(R, k, e), W = $(H, s), v = await U(
|
|
83
80
|
P,
|
|
81
|
+
D,
|
|
84
82
|
a,
|
|
85
83
|
n,
|
|
86
|
-
|
|
84
|
+
c,
|
|
87
85
|
y,
|
|
88
86
|
A,
|
|
89
|
-
|
|
87
|
+
u,
|
|
90
88
|
C,
|
|
91
89
|
I,
|
|
92
90
|
T,
|
|
93
91
|
e.calldataHash,
|
|
94
92
|
r,
|
|
95
|
-
|
|
93
|
+
W,
|
|
96
94
|
m,
|
|
97
|
-
|
|
98
|
-
),
|
|
95
|
+
N
|
|
96
|
+
), M = {
|
|
99
97
|
tokenNumber: a.length,
|
|
100
98
|
nullifierAmount: a[0].length,
|
|
101
99
|
outputAmount: n[0].length
|
|
102
100
|
};
|
|
103
|
-
return { zkCallData: w, circomData:
|
|
101
|
+
return { zkCallData: w, circomData: v, dimData: M, encryptedOutputs: c };
|
|
104
102
|
};
|
|
105
103
|
export {
|
|
106
|
-
|
|
104
|
+
po as constructZkProof
|
|
107
105
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("./getDataFromTransaction.cjs"),C=require("idb-keyval"),u={encryptedOutputs:[],lastOutput:""},l=(e,t)=>{const s=e.substring(0,25),r=t.substring(0,25);return{shortPublicKey:s,shortHinkalAddress:r}},d=new Map,x=(e,t,s)=>{if(!e||!t||!s)throw Error("GetHinkalCache: incorrect arguments");const{shortPublicKey:r,shortHinkalAddress:a}=l(t,s);return JSON.parse(typeof localStorage<"u"?localStorage.getItem(`hinkalCache-${e}-${r}-${a}`)??JSON.stringify(u):d.get(`hinkalCache-${e}-${r}-${a}`)??JSON.stringify(u))},S=(e,t,s,r)=>{if(!t||!s||!r)throw Error("SetHinkalCache: incorrect arguments");const{shortPublicKey:a,shortHinkalAddress:o}=l(s,r);typeof localStorage<"u"?localStorage.setItem(`hinkalCache-${t}-${a}-${o}`,JSON.stringify(e)):d.set(`hinkalCache-${t}-${a}-${o}`,JSON.stringify(e))},H=(e,t,s)=>{S(u,e,t,s)},f=(e,t,s)=>`txsCache-${e}-${t}-${s}`,T=async(e,t,s,r,a)=>{if(!t||!s||!r)throw Error("saveTxsCache: incorrect arguments");const{shortPublicKey:o,shortHinkalAddress:n}=l(s,r),h=y.serializeDecodedTxs(e),c=f(t,o,n),g=JSON.stringify({serializedTxs:h,lastHash:a});try{await C.set(c,g)}catch{localStorage.setItem(c,g)}},m={serializedTxs:[],lastHash:""},$=async(e,t,s)=>{if(!e||!t||!s)throw Error("loadTxsCache: incorrect arguments");const{shortPublicKey:r,shortHinkalAddress:a}=l(t,s),o=f(e,r,a);let n;try{const i=await C.get(o);if(!i)throw new Error("Empty indexedDB cache");n=i}catch{n=localStorage.getItem(o)}const{serializedTxs:h,lastHash:c}=JSON.parse(n??JSON.stringify(m));return{decodedTxs:h.map(i=>y.deserializeDecodedTxs(i)),lastHash:c===""?void 0:c}};exports.getHinkalCache=x;exports.loadTxsCache=$;exports.resetCache=H;exports.saveTxsCache=T;exports.setHinkalCache=S;
|
|
@@ -1,57 +1,54 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { set as p, get as x } from "idb-keyval";
|
|
1
|
+
import { serializeDecodedTxs as C, deserializeDecodedTxs as S } from "./getDataFromTransaction.mjs";
|
|
2
|
+
import { set as d, get as m } from "idb-keyval";
|
|
4
3
|
const y = {
|
|
5
4
|
encryptedOutputs: [],
|
|
6
5
|
lastOutput: ""
|
|
7
|
-
},
|
|
6
|
+
}, l = (e, t) => {
|
|
8
7
|
const r = e.substring(0, 25), s = t.substring(0, 25);
|
|
9
8
|
return { shortPublicKey: r, shortHinkalAddress: s };
|
|
10
|
-
}, u = /* @__PURE__ */ new Map(),
|
|
9
|
+
}, u = /* @__PURE__ */ new Map(), k = (e, t, r) => {
|
|
11
10
|
if (!e || !t || !r)
|
|
12
11
|
throw Error("GetHinkalCache: incorrect arguments");
|
|
13
|
-
const { shortPublicKey: s, shortHinkalAddress: o } =
|
|
12
|
+
const { shortPublicKey: s, shortHinkalAddress: o } = l(t, r);
|
|
14
13
|
return JSON.parse(
|
|
15
14
|
typeof localStorage < "u" ? localStorage.getItem(`hinkalCache-${e}-${s}-${o}`) ?? JSON.stringify(y) : u.get(`hinkalCache-${e}-${s}-${o}`) ?? JSON.stringify(y)
|
|
16
15
|
);
|
|
17
|
-
},
|
|
16
|
+
}, p = (e, t, r, s) => {
|
|
18
17
|
if (!t || !r || !s)
|
|
19
18
|
throw Error("SetHinkalCache: incorrect arguments");
|
|
20
|
-
const { shortPublicKey: o, shortHinkalAddress: a } =
|
|
19
|
+
const { shortPublicKey: o, shortHinkalAddress: a } = l(r, s);
|
|
21
20
|
typeof localStorage < "u" ? localStorage.setItem(`hinkalCache-${t}-${o}-${a}`, JSON.stringify(e)) : u.set(`hinkalCache-${t}-${o}-${a}`, JSON.stringify(e));
|
|
22
|
-
},
|
|
23
|
-
|
|
24
|
-
},
|
|
21
|
+
}, T = (e, t, r) => {
|
|
22
|
+
p(y, e, t, r);
|
|
23
|
+
}, f = (e, t, r) => `txsCache-${e}-${t}-${r}`, O = async (e, t, r, s, o) => {
|
|
25
24
|
if (!t || !r || !s)
|
|
26
25
|
throw Error("saveTxsCache: incorrect arguments");
|
|
27
|
-
const { shortPublicKey: a, shortHinkalAddress:
|
|
28
|
-
f("saveTxsCache before saving", { serializedTxs: l });
|
|
29
|
-
const n = C(t, a, c), i = JSON.stringify({ serializedTxs: l, lastHash: o });
|
|
26
|
+
const { shortPublicKey: a, shortHinkalAddress: n } = l(r, s), g = C(e), c = f(t, a, n), h = JSON.stringify({ serializedTxs: g, lastHash: o });
|
|
30
27
|
try {
|
|
31
|
-
await
|
|
28
|
+
await d(c, h);
|
|
32
29
|
} catch {
|
|
33
|
-
localStorage.setItem(
|
|
30
|
+
localStorage.setItem(c, h);
|
|
34
31
|
}
|
|
35
|
-
},
|
|
32
|
+
}, x = { serializedTxs: [], lastHash: "" }, w = async (e, t, r) => {
|
|
36
33
|
if (!e || !t || !r)
|
|
37
34
|
throw Error("loadTxsCache: incorrect arguments");
|
|
38
|
-
const { shortPublicKey: s, shortHinkalAddress: o } =
|
|
39
|
-
let
|
|
35
|
+
const { shortPublicKey: s, shortHinkalAddress: o } = l(t, r), a = f(e, s, o);
|
|
36
|
+
let n;
|
|
40
37
|
try {
|
|
41
|
-
const
|
|
42
|
-
if (!
|
|
38
|
+
const i = await m(a);
|
|
39
|
+
if (!i)
|
|
43
40
|
throw new Error("Empty indexedDB cache");
|
|
44
|
-
|
|
41
|
+
n = i;
|
|
45
42
|
} catch {
|
|
46
|
-
|
|
43
|
+
n = localStorage.getItem(a);
|
|
47
44
|
}
|
|
48
|
-
const { serializedTxs:
|
|
49
|
-
return
|
|
45
|
+
const { serializedTxs: g, lastHash: c } = JSON.parse(n ?? JSON.stringify(x));
|
|
46
|
+
return { decodedTxs: g.map((i) => S(i)), lastHash: c === "" ? void 0 : c };
|
|
50
47
|
};
|
|
51
48
|
export {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
k as getHinkalCache,
|
|
50
|
+
w as loadTxsCache,
|
|
51
|
+
T as resetCache,
|
|
52
|
+
O as saveTxsCache,
|
|
53
|
+
p as setHinkalCache
|
|
57
54
|
};
|