@hinkal/common 0.0.110 → 0.0.112
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/index-DXElTGy9.mjs +254449 -0
- package/index.js +455 -642
- package/package.json +1 -1
- package/{webworker/snarkjsWorker/snarkjsWorkerLogic.js → snarkjsWorkerLogic-CVna_BW9.mjs} +1 -1
- package/utxoWorkerLogic-B1Hh-bq4.mjs +64 -0
- package/{webworker/workerProxy.js → workerProxy-BDj498Ht.mjs} +1 -1
- package/zkProofWorkerLogic-D9rxuuiK.mjs +60 -0
- package/API/API.js +0 -58
- package/API/HinkalPointsCalls.js +0 -38
- package/API/callBeefyGraphAPI.js +0 -37
- package/API/callCurveAPI.js +0 -156
- package/API/callMonitor.js +0 -30
- package/API/callOdosAPI.js +0 -44
- package/API/callOneInchAPI.js +0 -37
- package/API/callRelayer.js +0 -32
- package/API/checkRisk.js +0 -30
- package/API/dataServerCalls.js +0 -32
- package/API/fetchCommitmentsCache.js +0 -31
- package/API/fetchNullifiers.js +0 -30
- package/API/getAxelarGasEstimate.js +0 -37
- package/API/getCoingeckoPrice.js +0 -27
- package/API/getConnextReceiveFee.js +0 -30
- package/API/getGasEstimates.js +0 -38
- package/API/getRelayerURL.js +0 -32
- package/API/getServerURL.js +0 -67
- package/API/getTokenPrice.js +0 -41
- package/API/kycCalls.js +0 -32
- package/API/passwordCalls.js +0 -36
- package/API/referralProgramCalls.js +0 -58
- package/API/relayCalls.js +0 -30
- package/API/restoreSnapshots.js +0 -32
- package/API/rewardsPointsCalls.js +0 -40
- package/API/userVerifyTransactions.js +0 -45
- package/constants/assets.constants.js +0 -16
- package/constants/axelar.constants.js +0 -55
- package/constants/backend.constants.js +0 -18
- package/constants/beefy.registry.js +0 -24
- package/constants/chains.constants.js +0 -204
- package/constants/coingecko.constants.js +0 -53
- package/constants/contracts.constants.js +0 -276
- package/constants/crvCvx.registry.js +0 -636
- package/constants/crvDynamic.registry.js +0 -24
- package/constants/deploy-data/deploy-data-arbMainnet.json.js +0 -7415
- package/constants/deploy-data/deploy-data-avalanche.json.js +0 -7411
- package/constants/deploy-data/deploy-data-axelar1.json.js +0 -4329
- package/constants/deploy-data/deploy-data-axelar2.json.js +0 -4329
- package/constants/deploy-data/deploy-data-base.json.js +0 -8425
- package/constants/deploy-data/deploy-data-blast.json.js +0 -9600
- package/constants/deploy-data/deploy-data-bnbMainnet.json.js +0 -6877
- package/constants/deploy-data/deploy-data-ethMainnet.json.js +0 -11427
- package/constants/deploy-data/deploy-data-localhost.json.js +0 -13283
- package/constants/deploy-data/deploy-data-optimism.json.js +0 -7417
- package/constants/deploy-data/deploy-data-polygon.json.js +0 -7439
- package/constants/fees.constants.js +0 -57
- package/constants/kyc.constants.js +0 -118
- package/constants/lido.constants.js +0 -13
- package/constants/pendle.registry.js +0 -253
- package/constants/protocol.constants.js +0 -26
- package/constants/reorg-depths.constants.js +0 -15
- package/constants/rewards.constants.js +0 -27
- package/constants/server.constants.js +0 -157
- package/constants/token-data/ERC20Registry.js +0 -85
- package/constants/token-data/arbMainnetRegistry.json.js +0 -946
- package/constants/token-data/arbMainnetRegistryFixed.json.js +0 -856
- package/constants/token-data/avalancheRegistry.json.js +0 -591
- package/constants/token-data/avalancheRegistryFixed.json.js +0 -591
- package/constants/token-data/baseRegistry.json.js +0 -490
- package/constants/token-data/baseRegistryFixed.json.js +0 -463
- package/constants/token-data/blastRegistry.json.js +0 -137
- package/constants/token-data/blastRegistryFixed.json.js +0 -137
- package/constants/token-data/bnbMainnetRegistry.json.js +0 -973
- package/constants/token-data/bnbMainnetRegistryFixed.json.js +0 -973
- package/constants/token-data/coingeckoRegistry.json.js +0 -115623
- package/constants/token-data/ethMainnetRegistry.json.js +0 -2700
- package/constants/token-data/ethMainnetRegistryFixed.json.js +0 -2251
- package/constants/token-data/index.js +0 -6
- package/constants/token-data/localhostRegistry.json.js +0 -2768
- package/constants/token-data/optimismRegistry.json.js +0 -1455
- package/constants/token-data/optimismRegistryFixed.json.js +0 -1392
- package/constants/token-data/polygonRegistry.json.js +0 -1327
- package/constants/token-data/polygonRegistryFixed.json.js +0 -1255
- package/constants/token-data/popularTokens.constants.js +0 -14
- package/constants/token-data/tokenPricing.consts.js +0 -8
- package/constants/vite.constants.js +0 -29
- package/crypto/babyJub.js +0 -15
- package/crypto/poseidon.js +0 -26
- package/crypto/preProcessing.js +0 -9
- package/data-structures/Hinkal/Hinkal.js +0 -299
- package/data-structures/Hinkal/hinkalActionBeefy.js +0 -101
- package/data-structures/Hinkal/hinkalActionConvex.js +0 -83
- package/data-structures/Hinkal/hinkalActionCurve.js +0 -112
- package/data-structures/Hinkal/hinkalActionLidoEth.js +0 -91
- package/data-structures/Hinkal/hinkalActionPendle.js +0 -140
- package/data-structures/Hinkal/hinkalActionPendleLP.js +0 -96
- package/data-structures/Hinkal/hinkalActionStake.js +0 -138
- package/data-structures/Hinkal/hinkalActionVolatile.js +0 -112
- package/data-structures/Hinkal/hinkalDeposit.js +0 -95
- package/data-structures/Hinkal/hinkalGetZkMeProvider.js +0 -47
- package/data-structures/Hinkal/hinkalPrivateWallet.js +0 -66
- package/data-structures/Hinkal/hinkalSwap.js +0 -98
- package/data-structures/Hinkal/hinkalTransfer.js +0 -5
- package/data-structures/Hinkal/hinkalWithdraw.js +0 -91
- package/data-structures/Hinkal/resetMerkleTrees.js +0 -49
- package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.js +0 -83
- package/data-structures/ValueCache/ValueCache.js +0 -25
- package/data-structures/crypto-keys/decodeUTXO.js +0 -40
- package/data-structures/crypto-keys/encryptDecryptUtxo.js +0 -41
- package/data-structures/crypto-keys/keyUtils.js +0 -10
- package/data-structures/crypto-keys/keys.js +0 -90
- package/data-structures/custom-token-registry/CustomTokenRegistry.js +0 -33
- package/data-structures/event-service/AbstractAccessTokenSnapshotService.js +0 -131
- package/data-structures/event-service/AbstractCommitmentsSnapshotService.js +0 -132
- package/data-structures/event-service/AbstractEventService.js +0 -118
- package/data-structures/event-service/AbstractNullifierSnapshotService.js +0 -59
- package/data-structures/event-service/AbstractSnapshotService.js +0 -35
- package/data-structures/merkle-tree/MerkleTree.js +0 -177
- package/data-structures/merkle-tree/MerkleTreeIncompleteError.js +0 -8
- package/data-structures/snapshot/ClientAccessTokenSnapshotService.js +0 -48
- package/data-structures/snapshot/ClientCommitmentsSnapshotService.js +0 -47
- package/data-structures/snapshot/ClientNullifierSnapshotService.js +0 -44
- package/data-structures/token-price-fetcher/TokenChecker.js +0 -29
- package/data-structures/token-price-fetcher/TokenPriceFetcher.js +0 -218
- package/data-structures/transactions-manager/TransactionsManager.js +0 -194
- package/data-structures/transactions-manager/history/getBeefyData.js +0 -68
- package/data-structures/transactions-manager/history/getConvexData.js +0 -57
- package/data-structures/transactions-manager/history/getCurveData.js +0 -97
- package/data-structures/transactions-manager/history/getDepositData.js +0 -36
- package/data-structures/transactions-manager/history/getLidoData.js +0 -44
- package/data-structures/transactions-manager/history/getPendleData.js +0 -59
- package/data-structures/transactions-manager/history/getSwapData.js +0 -43
- package/data-structures/transactions-manager/history/getTxDetails.js +0 -74
- package/data-structures/transactions-manager/history/getVolatileData.js +0 -75
- package/data-structures/transactions-manager/history/history.types.js +0 -62
- package/data-structures/transactions-manager/history/history.utils.js +0 -8
- package/data-structures/utxo/Utxo.js +0 -134
- package/data-structures/volatile-helper/VolatileHelper.js +0 -181
- package/error-handling/customErrors/ErrorWithAmount.js +0 -9
- package/error-handling/customErrors/FeeOverTransactionValueError.js +0 -9
- package/error-handling/customErrors/customErrors.helpers.js +0 -21
- package/error-handling/error-codes.constants.js +0 -184
- package/error-handling/get-error.message.js +0 -53
- package/error-handling/handleErrorRestore.js +0 -35
- package/error-handling/logError.js +0 -7
- package/error-handling/types.js +0 -4
- package/externalABIs/BUSD.js +0 -519
- package/externalABIs/BabPassport.json.js +0 -24
- package/externalABIs/BeefyRouterAbi.json.js +0 -1022
- package/externalABIs/BeefyStrategyAbi.json.js +0 -1423
- package/externalABIs/BeefyVaultAbi.json.js +0 -570
- package/externalABIs/BeefyZapAbi.json.js +0 -208
- package/externalABIs/BeefyZapOneInchAbi.json.js +0 -340
- package/externalABIs/ConvexBoosterAbi.json.js +0 -674
- package/externalABIs/ConvexBoosterAbiMainnet.json.js +0 -1002
- package/externalABIs/ConvexRewardPoolAbi.json.js +0 -883
- package/externalABIs/CurveReadingWrapperAbi.json.js +0 -1422
- package/externalABIs/CurveWrappedMainPool.json.js +0 -1136
- package/externalABIs/CurveZap.json.js +0 -262
- package/externalABIs/CvxCrvUtilities.json.js +0 -264
- package/externalABIs/DAI.js +0 -334
- package/externalABIs/ERC20.json.js +0 -291
- package/externalABIs/GalxePassport.json.js +0 -41
- package/externalABIs/IQuoterV2.json.js +0 -205
- package/externalABIs/ISwapRouter.json.js +0 -568
- package/externalABIs/IUniswapV3Factory.json.js +0 -201
- package/externalABIs/IUniswapV3Pool.json.js +0 -999
- package/externalABIs/LidoStEthAbi.json.js +0 -1603
- package/externalABIs/LidoStMaticAbi.json.js +0 -1764
- package/externalABIs/LidoStakeManagerAbi.json.js +0 -2082
- package/externalABIs/LidoWithdrawalQueueERC721Abi.json.js +0 -2030
- package/externalABIs/LidoWstEthAbi.json.js +0 -480
- package/externalABIs/OptimismGasPriceOracle.json.js +0 -206
- package/externalABIs/PendleRouterAbi.json.js +0 -173
- package/externalABIs/PoLidoNftAbi.json.js +0 -701
- package/externalABIs/SanctionsList.js +0 -89
- package/externalABIs/USDC.js +0 -721
- package/externalABIs/USDR.js +0 -346
- package/externalABIs/USDR3CRV.js +0 -542
- package/externalABIs/USDT.js +0 -393
- package/externalABIs/UniswapV2PoolAbi.json.js +0 -80
- package/externalABIs/WETH.js +0 -156
- package/externalABIs/amToken.js +0 -350
- package/externalABIs/transactionsProver.json.js +0 -39
- package/functions/kyc/authentoHelper.js +0 -42
- package/functions/kyc/passportHelper.js +0 -39
- package/functions/kyc/zkMeHelper.js +0 -56
- package/functions/pre-transaction/getFlatFees.js +0 -203
- package/functions/pre-transaction/interaction-to-action.js +0 -57
- package/functions/pre-transaction/outputUtxoProcessing.js +0 -45
- package/functions/pre-transaction/process-gas-estimates.js +0 -57
- package/functions/pre-transaction/processAmountChanges.js +0 -229
- package/functions/private-wallet/emporium.helpers.js +0 -19
- package/functions/private-wallet/opProducer.js +0 -24
- package/functions/protocols/convex.protocols.js +0 -41
- package/functions/protocols/curve.protocols.js +0 -45
- package/functions/protocols/pendle.helpers.js +0 -108
- package/functions/snarkjs/common.snarkjs.js +0 -96
- package/functions/snarkjs/constant.js +0 -211
- package/functions/snarkjs/constructEmporiumProof.js +0 -105
- package/functions/snarkjs/constructGeneralZkProof.js +0 -129
- package/functions/snarkjs/generateCircomData.js +0 -60
- package/functions/snarkjs/generateZkProof.js +0 -18
- package/functions/snarkjs/getZKFiles.js +0 -30
- package/functions/staking/index.js +0 -40
- package/functions/utils/amounts.utils.js +0 -70
- package/functions/utils/axelar.utils.js +0 -38
- package/functions/utils/cacheFunctions.js +0 -67
- package/functions/utils/caseInsensitive.utils.js +0 -6
- package/functions/utils/convertIntegrationProviderToExternalActionId.js +0 -16
- package/functions/utils/create-provider.js +0 -5
- package/functions/utils/enum.utils.js +0 -14
- package/functions/utils/erc20tokenFunctions.js +0 -20
- package/functions/utils/evmNetworkFunctions.js +0 -29
- package/functions/utils/external-action.utils.js +0 -61
- package/functions/utils/getDataFromTransaction.js +0 -105
- package/functions/utils/memoize.utils.js +0 -14
- package/functions/utils/nickname.utils.js +0 -7
- package/functions/utils/process.utils.js +0 -4
- package/functions/utils/reloadPage.js +0 -4
- package/functions/utils/requireEnv.js +0 -7
- package/functions/utils/resolve-sync.utils.js +0 -22
- package/functions/utils/serialize.utils.js +0 -4
- package/functions/utils/string.utils.js +0 -14
- package/functions/utils/time.utils.js +0 -8
- package/functions/utils/userAgent.js +0 -15
- package/functions/utils/volatile-patcher.utils.js +0 -40
- package/functions/web3/etherFunctions.js +0 -41
- package/functions/web3/events/balanceChangedHandler.js +0 -10
- package/functions/web3/events/getInputUtxoAndBalance.js +0 -72
- package/functions/web3/events/getShieldedBalance.js +0 -107
- package/functions/web3/events/web3RetrieveEvents.js +0 -9
- package/functions/web3/functionCalls/accessTokenCalls.js +0 -48
- package/functions/web3/functionCalls/approveToken.js +0 -153
- package/functions/web3/functionCalls/estimateGasRelayer.js +0 -18
- package/functions/web3/functionCalls/transactCallDirect.js +0 -60
- package/functions/web3/functionCalls/transactCallRelayer.js +0 -42
- package/functions/web3/odosAPI.js +0 -65
- package/functions/web3/oneInchAPI.js +0 -61
- package/functions/web3/runContractFunction.js +0 -95
- package/functions/web3/uniswapAPI.js +0 -97
- package/types/beefy.types.js +0 -21
- package/types/circom-data.types.js +0 -22
- package/types/curve.types.js +0 -25
- package/types/ethereum-network.types.js +0 -4
- package/types/external-action.types.js +0 -4
- package/types/hinkal.stake.types.js +0 -4
- package/types/hinkal.types.js +0 -15
- package/types/kyc.types.js +0 -13
- package/types/pendle.types.js +0 -15
- package/types/rewards.types.js +0 -27
- package/types/slippage.types.js +0 -15
- package/types/time.types.js +0 -58
- package/types/token.types.js +0 -4
- package/types/transactions.types.js +0 -36
- package/webworker/performTaskWithWorker.js +0 -62
- package/webworker/snarkjsWorker/snarkjsWorker.types.js +0 -4
- package/webworker/utxoWorker/utxoWorker.types.js +0 -4
- package/webworker/utxoWorker/utxoWorkerLogic.js +0 -70
- package/webworker/worker.registry.js +0 -4
- package/webworker/workerFactory.js +0 -42
- package/webworker/zkProofWorker/zkProofWorker.types.js +0 -4
- package/webworker/zkProofWorker/zkProofWorkerLogic.js +0 -66
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import "ethers";
|
|
2
|
-
import "axios";
|
|
3
|
-
import "../../constants/chains.constants.js";
|
|
4
|
-
import "../../types/circom-data.types.js";
|
|
5
|
-
import "../../types/transactions.types.js";
|
|
6
|
-
import "../../types/curve.types.js";
|
|
7
|
-
import "circomlibjs";
|
|
8
|
-
import "../crypto-keys/keys.js";
|
|
9
|
-
import "../crypto-keys/encryptDecryptUtxo.js";
|
|
10
|
-
import "../../functions/web3/events/getShieldedBalance.js";
|
|
11
|
-
import "../../webworker/workerFactory.js";
|
|
12
|
-
import "../../functions/utils/external-action.utils.js";
|
|
13
|
-
import "../custom-token-registry/CustomTokenRegistry.js";
|
|
14
|
-
import "../../functions/utils/convertIntegrationProviderToExternalActionId.js";
|
|
15
|
-
import "../../constants/coingecko.constants.js";
|
|
16
|
-
import { logError as l } from "../../error-handling/logError.js";
|
|
17
|
-
import "../../functions/utils/userAgent.js";
|
|
18
|
-
import { MerkleTreeIncompleteError as a } from "./MerkleTreeIncompleteError.js";
|
|
19
|
-
import "../../constants/reorg-depths.constants.js";
|
|
20
|
-
import "../../constants/kyc.constants.js";
|
|
21
|
-
import "../volatile-helper/VolatileHelper.js";
|
|
22
|
-
import "libsodium-wrappers";
|
|
23
|
-
import "../../constants/vite.constants.js";
|
|
24
|
-
import "../../constants/contracts.constants.js";
|
|
25
|
-
import "../../constants/axelar.constants.js";
|
|
26
|
-
import "../../constants/rewards.constants.js";
|
|
27
|
-
class o {
|
|
28
|
-
constructor(e, t, i, r, n, s) {
|
|
29
|
-
this.hashFunction = e, this.levels = t, this.defaultNodeValue = i, this.tree = r ?? /* @__PURE__ */ new Map(), this.count = s ?? 0n, this.index = n ?? 2n ** (t - 1n);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* the map where the items are stored
|
|
33
|
-
*/
|
|
34
|
-
tree;
|
|
35
|
-
/**
|
|
36
|
-
* amount of elements inserted inside the bottom row of the tree
|
|
37
|
-
*/
|
|
38
|
-
count;
|
|
39
|
-
/**
|
|
40
|
-
* the maximum index inserted into the tree
|
|
41
|
-
* used together with count to make sure that the merkle tree is complete.
|
|
42
|
-
* meaning that there aren't any missing elements between getStartIndex() and index
|
|
43
|
-
*/
|
|
44
|
-
index;
|
|
45
|
-
static createWithData(e, t, i, r, n, s) {
|
|
46
|
-
return new o(r, n, s, e, t, i);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* @param hashFunction the hashFunction used to fill the upper layers of the merkle tree
|
|
50
|
-
* @param levels the amount of layers in the merkle tree
|
|
51
|
-
* @param defaultNodeValue the default value of an empty node in the merkle tree
|
|
52
|
-
*/
|
|
53
|
-
static create(e, t, i) {
|
|
54
|
-
return new o(e, t, i);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* get starting nodeIndex from which inserts are allowed
|
|
58
|
-
*/
|
|
59
|
-
getStartIndex() {
|
|
60
|
-
return 2n ** (this.levels - 1n);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* implementation of logarithm2 function from merkle contract
|
|
64
|
-
*/
|
|
65
|
-
logarithm2(e) {
|
|
66
|
-
let t = 0n;
|
|
67
|
-
for (; 2n ** t < e; )
|
|
68
|
-
t += 1n;
|
|
69
|
-
return t;
|
|
70
|
-
}
|
|
71
|
-
bigIntMax(e, t) {
|
|
72
|
-
return e > t ? e : t;
|
|
73
|
-
}
|
|
74
|
-
forceInsert(e, t) {
|
|
75
|
-
if (t < this.getStartIndex())
|
|
76
|
-
throw new RangeError();
|
|
77
|
-
this.tree.set(t, e);
|
|
78
|
-
const i = this.index - this.getStartIndex(), r = this.logarithm2(i);
|
|
79
|
-
let n = t;
|
|
80
|
-
for (let s = 1n; s <= r; s += 1n) {
|
|
81
|
-
n /= 2n;
|
|
82
|
-
const h = this.hashFunction(
|
|
83
|
-
this.tree.get(n * 2n) || this.defaultNodeValue,
|
|
84
|
-
this.tree.get(n * 2n + 1n) || this.defaultNodeValue
|
|
85
|
-
);
|
|
86
|
-
this.tree.set(n, h);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* insert value into the merkle tree
|
|
91
|
-
* @param value the value to insert
|
|
92
|
-
* @param nodeIndex the index to insert the value, you can get starting index from getStartIndex()
|
|
93
|
-
* @return true - if added, false - if already exists
|
|
94
|
-
* @throws will throw RangeError if nodeIndex is less than getStartIndex()
|
|
95
|
-
*/
|
|
96
|
-
insert(e, t) {
|
|
97
|
-
let i = !1;
|
|
98
|
-
return this.tree.has(t) && (i = !0, l(`Editing commitment index: ${t} `)), i || (this.count += 1n), this.index = this.bigIntMax(this.index, t + 1n), this.forceInsert(e, t), !0;
|
|
99
|
-
}
|
|
100
|
-
remove(e) {
|
|
101
|
-
this.forceInsert(this.defaultNodeValue, e);
|
|
102
|
-
}
|
|
103
|
-
completenessCheck() {
|
|
104
|
-
if (this.count !== this.index - this.getStartIndex())
|
|
105
|
-
throw new a();
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* get root hash of the merkle tree
|
|
109
|
-
* @returns the hash, if the merkle tree is empty, will return
|
|
110
|
-
* @throws will throw MerkleTreeIncompleteError if there are missing elements in the tree
|
|
111
|
-
*/
|
|
112
|
-
getRootHash() {
|
|
113
|
-
this.completenessCheck();
|
|
114
|
-
for (let e = 1n; e < 2n ** this.levels; e *= 2n)
|
|
115
|
-
if (this.tree.get(e))
|
|
116
|
-
return this.tree.get(e);
|
|
117
|
-
return this.defaultNodeValue;
|
|
118
|
-
}
|
|
119
|
-
getMerkleData() {
|
|
120
|
-
return this.completenessCheck(), new Map(this.tree);
|
|
121
|
-
}
|
|
122
|
-
getSiblingIndex(e) {
|
|
123
|
-
return e === 1n ? 1n : e % 2n === 1n ? e - 1n : e + 1n;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* get sibling hashes needed by main.circom
|
|
127
|
-
* @throws will throw MerkleTreeIncompleteError if there are missing elements in the tree
|
|
128
|
-
*/
|
|
129
|
-
getSiblingHashesForVerification(e) {
|
|
130
|
-
this.completenessCheck();
|
|
131
|
-
let t;
|
|
132
|
-
for (let r = this.getStartIndex(); r < this.getStartIndex() + this.index; r += 1n)
|
|
133
|
-
if (this.tree.get(r) === e) {
|
|
134
|
-
t = r;
|
|
135
|
-
break;
|
|
136
|
-
}
|
|
137
|
-
if (t === void 0)
|
|
138
|
-
return new Array(Number(this.levels)).fill(0n);
|
|
139
|
-
const i = [];
|
|
140
|
-
for (; t !== 0n; )
|
|
141
|
-
i.push(this.tree.get(this.getSiblingIndex(t)) || this.defaultNodeValue), t /= 2n;
|
|
142
|
-
return i;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* get item's sibling hashes side
|
|
146
|
-
* @returns sibling's indexes
|
|
147
|
-
* @throws will throw MerkleTreeIncompleteError if there are missing elements in the tree
|
|
148
|
-
*/
|
|
149
|
-
getSiblingSides(e) {
|
|
150
|
-
this.completenessCheck();
|
|
151
|
-
let t;
|
|
152
|
-
for (let r = this.getStartIndex(); r < this.getStartIndex() + this.index; r += 1n)
|
|
153
|
-
if (this.tree.get(r) === e) {
|
|
154
|
-
t = r;
|
|
155
|
-
break;
|
|
156
|
-
}
|
|
157
|
-
if (t === void 0)
|
|
158
|
-
return new Array(Number(this.levels)).fill(0n);
|
|
159
|
-
const i = [];
|
|
160
|
-
for (; t !== 0n; ) {
|
|
161
|
-
const r = t % 2n === 0n ? 0n : 1n;
|
|
162
|
-
i.push(r), t /= 2n;
|
|
163
|
-
}
|
|
164
|
-
return i;
|
|
165
|
-
}
|
|
166
|
-
toJSON() {
|
|
167
|
-
const { tree: e, count: t, index: i } = this;
|
|
168
|
-
return {
|
|
169
|
-
tree: Object.fromEntries(e),
|
|
170
|
-
count: t.toString(),
|
|
171
|
-
index: i.toString()
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
export {
|
|
176
|
-
o as MerkleTree
|
|
177
|
-
};
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { AbstractAccessTokenSnapshotService as e } from "../event-service/AbstractAccessTokenSnapshotService.js";
|
|
2
|
-
import "circomlibjs";
|
|
3
|
-
import "ethers";
|
|
4
|
-
import "axios";
|
|
5
|
-
import "../../constants/chains.constants.js";
|
|
6
|
-
import "../../types/circom-data.types.js";
|
|
7
|
-
import "../../types/transactions.types.js";
|
|
8
|
-
import "../../types/curve.types.js";
|
|
9
|
-
import "../crypto-keys/keys.js";
|
|
10
|
-
import "../crypto-keys/encryptDecryptUtxo.js";
|
|
11
|
-
import "../../functions/web3/events/getShieldedBalance.js";
|
|
12
|
-
import "../../webworker/workerFactory.js";
|
|
13
|
-
import "../../functions/utils/external-action.utils.js";
|
|
14
|
-
import "../custom-token-registry/CustomTokenRegistry.js";
|
|
15
|
-
import "../../functions/utils/convertIntegrationProviderToExternalActionId.js";
|
|
16
|
-
import "../../constants/coingecko.constants.js";
|
|
17
|
-
import "../../constants/vite.constants.js";
|
|
18
|
-
import "../../functions/utils/userAgent.js";
|
|
19
|
-
import { fetchAccessTokenSnapshot as o } from "../../API/fetchCommitmentsCache.js";
|
|
20
|
-
import "../../constants/kyc.constants.js";
|
|
21
|
-
import "../volatile-helper/VolatileHelper.js";
|
|
22
|
-
import "libsodium-wrappers";
|
|
23
|
-
import "../../constants/contracts.constants.js";
|
|
24
|
-
import "../../constants/axelar.constants.js";
|
|
25
|
-
import "../../constants/rewards.constants.js";
|
|
26
|
-
import "../../constants/reorg-depths.constants.js";
|
|
27
|
-
class z extends e {
|
|
28
|
-
constructor(t, r) {
|
|
29
|
-
super(t, 0, !1, r);
|
|
30
|
-
}
|
|
31
|
-
async fetchSnapshot() {
|
|
32
|
-
const { chainId: t } = await this.contract.provider.getNetwork(), r = await o(t);
|
|
33
|
-
if (r.accessTokenContractAddress !== this.contract.address || r.chainId !== t)
|
|
34
|
-
throw Error("Commitment Snapshot: incorrect contract or chain id");
|
|
35
|
-
return {
|
|
36
|
-
latestBlockNumber: r.latestBlockNumber,
|
|
37
|
-
merkleTree: r.merkleTree,
|
|
38
|
-
senderAddresses: r.senderAddresses,
|
|
39
|
-
senderAddressIndexMap: r.senderAddressIndexMap
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
persistSnapshot(t) {
|
|
43
|
-
return Promise.resolve();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
export {
|
|
47
|
-
z as ClientAccessTokenSnapshotService
|
|
48
|
-
};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import "../../constants/chains.constants.js";
|
|
2
|
-
import "../../types/circom-data.types.js";
|
|
3
|
-
import "../../types/transactions.types.js";
|
|
4
|
-
import "../../types/curve.types.js";
|
|
5
|
-
import "ethers";
|
|
6
|
-
import "circomlibjs";
|
|
7
|
-
import "../crypto-keys/keys.js";
|
|
8
|
-
import "axios";
|
|
9
|
-
import "../crypto-keys/encryptDecryptUtxo.js";
|
|
10
|
-
import "../../functions/web3/events/getShieldedBalance.js";
|
|
11
|
-
import "../../webworker/workerFactory.js";
|
|
12
|
-
import "../../functions/utils/external-action.utils.js";
|
|
13
|
-
import "../custom-token-registry/CustomTokenRegistry.js";
|
|
14
|
-
import "../../functions/utils/convertIntegrationProviderToExternalActionId.js";
|
|
15
|
-
import "../../constants/coingecko.constants.js";
|
|
16
|
-
import "../../constants/vite.constants.js";
|
|
17
|
-
import "../../functions/utils/userAgent.js";
|
|
18
|
-
import { fetchCommitmentsSnapshot as o } from "../../API/fetchCommitmentsCache.js";
|
|
19
|
-
import "../../constants/kyc.constants.js";
|
|
20
|
-
import "../volatile-helper/VolatileHelper.js";
|
|
21
|
-
import "libsodium-wrappers";
|
|
22
|
-
import "../../constants/contracts.constants.js";
|
|
23
|
-
import "../../constants/axelar.constants.js";
|
|
24
|
-
import "../../constants/rewards.constants.js";
|
|
25
|
-
import "../../constants/reorg-depths.constants.js";
|
|
26
|
-
import { AbstractCommitmentsSnapshotService as i } from "../event-service/AbstractCommitmentsSnapshotService.js";
|
|
27
|
-
class z extends i {
|
|
28
|
-
constructor(r, t) {
|
|
29
|
-
super(r, 0, !1, t);
|
|
30
|
-
}
|
|
31
|
-
async fetchSnapshot() {
|
|
32
|
-
const { chainId: r } = await this.contract.provider.getNetwork(), t = await o(r);
|
|
33
|
-
if (t.hinkalAddress !== this.contract.address || t.chainId !== r)
|
|
34
|
-
throw Error("Commitment Snapshot: incorrect contract or chain id");
|
|
35
|
-
return {
|
|
36
|
-
latestBlockNumber: t.latestBlockNumber,
|
|
37
|
-
merkleTree: t.merkleTree,
|
|
38
|
-
encryptedOutputs: t.encryptedOutputs
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
persistSnapshot(r) {
|
|
42
|
-
return Promise.resolve();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
export {
|
|
46
|
-
z as ClientCommitmentsSnapshotService
|
|
47
|
-
};
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import "../../constants/chains.constants.js";
|
|
2
|
-
import "../../types/circom-data.types.js";
|
|
3
|
-
import "../../types/transactions.types.js";
|
|
4
|
-
import "../../types/curve.types.js";
|
|
5
|
-
import "ethers";
|
|
6
|
-
import "circomlibjs";
|
|
7
|
-
import "../crypto-keys/keys.js";
|
|
8
|
-
import "axios";
|
|
9
|
-
import "../crypto-keys/encryptDecryptUtxo.js";
|
|
10
|
-
import "../../functions/web3/events/getShieldedBalance.js";
|
|
11
|
-
import "../../webworker/workerFactory.js";
|
|
12
|
-
import "../../functions/utils/external-action.utils.js";
|
|
13
|
-
import "../custom-token-registry/CustomTokenRegistry.js";
|
|
14
|
-
import "../../functions/utils/convertIntegrationProviderToExternalActionId.js";
|
|
15
|
-
import "../../constants/coingecko.constants.js";
|
|
16
|
-
import "../../constants/vite.constants.js";
|
|
17
|
-
import "../../functions/utils/userAgent.js";
|
|
18
|
-
import { fetchNullifiers as i } from "../../API/fetchNullifiers.js";
|
|
19
|
-
import "../../constants/kyc.constants.js";
|
|
20
|
-
import "../volatile-helper/VolatileHelper.js";
|
|
21
|
-
import "libsodium-wrappers";
|
|
22
|
-
import "../../constants/contracts.constants.js";
|
|
23
|
-
import "../../constants/axelar.constants.js";
|
|
24
|
-
import "../../constants/rewards.constants.js";
|
|
25
|
-
import "../../constants/reorg-depths.constants.js";
|
|
26
|
-
import { AbstractNullifierSnapshotService as o } from "../event-service/AbstractNullifierSnapshotService.js";
|
|
27
|
-
class P extends o {
|
|
28
|
-
constructor(t, r) {
|
|
29
|
-
super(t, 0, !1, r);
|
|
30
|
-
}
|
|
31
|
-
async fetchSnapshot() {
|
|
32
|
-
const { chainId: t } = await this.contract.provider.getNetwork(), r = await i(t);
|
|
33
|
-
return {
|
|
34
|
-
latestBlockNumber: r.latestBlockNumber,
|
|
35
|
-
nullifiers: r.nullifiers
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
persistSnapshot(t) {
|
|
39
|
-
return Promise.resolve();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
export {
|
|
43
|
-
P as ClientNullifierSnapshotService
|
|
44
|
-
};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { lowerCaseIncludes as a } from "../../functions/utils/caseInsensitive.utils.js";
|
|
2
|
-
import { wstEthSymbol as r, stMaticSymbol as o } from "../../constants/lido.constants.js";
|
|
3
|
-
import { chainIds as T } from "../../constants/chains.constants.js";
|
|
4
|
-
class m {
|
|
5
|
-
static isCurveLPToken = (s, e) => a(e, s.erc20TokenAddress);
|
|
6
|
-
static isCurveStakeToken = (s) => s.name.includes("Gauge") && s.symbol.includes("-gauge");
|
|
7
|
-
static isConvexToken = (s) => s.name.includes("Convex") && s.symbol.includes("cvx");
|
|
8
|
-
static isBeefyLpToken = (s) => s.name.startsWith("moo") && s.symbol.startsWith("moo");
|
|
9
|
-
static isBeefyStakeToken = (s) => s.name.includes("-Boost") && s.symbol.includes("-Boost");
|
|
10
|
-
static isLidoToken = (s) => s.symbol === r || s.symbol === o;
|
|
11
|
-
static isCurveOrConvex = (s, e) => this.isCurveLPToken(s, e) || this.isCurveStakeToken(s) || this.isConvexToken(s);
|
|
12
|
-
static isBeefyToken = (s) => this.isBeefyLpToken(s) || this.isBeefyStakeToken(s);
|
|
13
|
-
static isStakeToken = (s) => this.isCurveStakeToken(s) || this.isConvexToken(s) || this.isBeefyStakeToken(s);
|
|
14
|
-
static isPendleYtToken = (s) => s.name.startsWith("Pendle-YT-") && s.symbol.startsWith("Pendle-YT-");
|
|
15
|
-
static isPendleLPToken = (s) => s.name.startsWith("Pendle-LP-") && s.symbol.startsWith("Pendle-LP-");
|
|
16
|
-
static isPendleSyToken = (s) => s.name.startsWith("SY ") && s.symbol.includes("SY-");
|
|
17
|
-
static isPendleNativeToken = (s) => {
|
|
18
|
-
const e = s.name.startsWith("YT ") && s.symbol.includes("YT-"), i = this.isPendleSyToken(s), t = s.name.startsWith("PT ") && s.symbol.includes("PT-"), n = s.name.startsWith("LP ") && s.symbol.includes("LP-");
|
|
19
|
-
return e || i || t || n;
|
|
20
|
-
};
|
|
21
|
-
static isPendleToken = (s) => this.isPendleYtToken(s) || this.isPendleLPToken(s) || this.isPendleNativeToken(s);
|
|
22
|
-
static isAaveToken = (s) => s.aaveToken;
|
|
23
|
-
static isNonRebasingBlastToken = (s) => s.chainId === T.blast && s.symbol.startsWith("nr");
|
|
24
|
-
static isKinzaToken = (s) => s.name.startsWith("Kinza");
|
|
25
|
-
static isProtocolToken = (s, e) => this.isCurveLPToken(s, e) || this.isCurveStakeToken(s) || this.isConvexToken(s) || this.isBeefyLpToken(s) || this.isBeefyStakeToken(s) || this.isLidoToken(s) || this.isPendleToken(s) || this.isAaveToken(s) || this.isNonRebasingBlastToken(s);
|
|
26
|
-
}
|
|
27
|
-
export {
|
|
28
|
-
m as TokenChecker
|
|
29
|
-
};
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import l from "axios";
|
|
2
|
-
import { ethers as u } from "ethers";
|
|
3
|
-
import { getCoingeckoPrice as g, getCoingeckoPrice2 as m } from "../../API/getCoingeckoPrice.js";
|
|
4
|
-
import { getCurvePoolsforPriceFetching as y } from "../../API/callCurveAPI.js";
|
|
5
|
-
import { coingeckoRegistry as P } from "../../constants/token-data/index.js";
|
|
6
|
-
import { getNonLocalhostChainId as h, chainIds as k, networkRegistry as T } from "../../constants/chains.constants.js";
|
|
7
|
-
import "../../types/circom-data.types.js";
|
|
8
|
-
import "../../types/transactions.types.js";
|
|
9
|
-
import "../../types/curve.types.js";
|
|
10
|
-
import { zeroAddress as p, beefyChainIds as v } from "../../constants/protocol.constants.js";
|
|
11
|
-
import "circomlibjs";
|
|
12
|
-
import "../crypto-keys/keys.js";
|
|
13
|
-
import "../crypto-keys/encryptDecryptUtxo.js";
|
|
14
|
-
import "../../functions/web3/events/getShieldedBalance.js";
|
|
15
|
-
import "../../webworker/workerFactory.js";
|
|
16
|
-
import "../../functions/utils/external-action.utils.js";
|
|
17
|
-
import { getERC20Token as I } from "../../functions/utils/erc20tokenFunctions.js";
|
|
18
|
-
import "../../functions/utils/convertIntegrationProviderToExternalActionId.js";
|
|
19
|
-
import { getOdosPriceForToken as b } from "../../API/callOdosAPI.js";
|
|
20
|
-
import "../../functions/utils/userAgent.js";
|
|
21
|
-
import { caseInsensitiveEqual as c } from "../../functions/utils/caseInsensitive.utils.js";
|
|
22
|
-
import "../../constants/reorg-depths.constants.js";
|
|
23
|
-
import "../../constants/kyc.constants.js";
|
|
24
|
-
import { TokenChecker as a } from "./TokenChecker.js";
|
|
25
|
-
import { abi as C } from "../../externalABIs/BeefyVaultAbi.json.js";
|
|
26
|
-
import { urlForBeefyVaultTokens as A, urlForBeefyVaultTotalInUSD as w, urlForPendleAPI as B, urlForBeefyVaultLpTokens as D } from "../../constants/token-data/tokenPricing.consts.js";
|
|
27
|
-
import "../volatile-helper/VolatileHelper.js";
|
|
28
|
-
import "../custom-token-registry/CustomTokenRegistry.js";
|
|
29
|
-
import "../../constants/vite.constants.js";
|
|
30
|
-
import "libsodium-wrappers";
|
|
31
|
-
import "../../constants/contracts.constants.js";
|
|
32
|
-
import { CoinGeckoChainLabels as R, getCoingeckoIdForNativeTokens as E, getCoingeckoPlatform as S } from "../../constants/coingecko.constants.js";
|
|
33
|
-
import "../../constants/axelar.constants.js";
|
|
34
|
-
import { getCrvCvxWithChainId as L } from "../../constants/crvCvx.registry.js";
|
|
35
|
-
import "../../constants/rewards.constants.js";
|
|
36
|
-
import { getERC20Registry as x } from "../../constants/token-data/ERC20Registry.js";
|
|
37
|
-
class Pe extends a {
|
|
38
|
-
chainId;
|
|
39
|
-
provider;
|
|
40
|
-
erc20Registry = [];
|
|
41
|
-
// Curve state variables
|
|
42
|
-
crvCvxRegistry = [];
|
|
43
|
-
curvePools = [];
|
|
44
|
-
// Beefy state variables:
|
|
45
|
-
beefyVaults = [];
|
|
46
|
-
beefyTvlData = {};
|
|
47
|
-
usdcSymbol = "USDC";
|
|
48
|
-
supportsCurve = () => h(this.chainId) !== k.bnbMainnet;
|
|
49
|
-
constructor(r, t) {
|
|
50
|
-
super(), this.chainId = r, this.provider = t;
|
|
51
|
-
const e = h(this.chainId);
|
|
52
|
-
this.erc20Registry = x(this.chainId), this.crvCvxRegistry = L(e), this.supportsCurve() && y(this.chainId).then((i) => {
|
|
53
|
-
this.curvePools = i;
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
async updateBeefyVault() {
|
|
57
|
-
this.beefyVaults.length === 0 && (this.beefyVaults = (await l.get(A)).data);
|
|
58
|
-
}
|
|
59
|
-
findTokenId(r) {
|
|
60
|
-
let t;
|
|
61
|
-
const e = R[this.chainId];
|
|
62
|
-
return r === p ? E[this.chainId] : (P.find((i) => Object.entries(i.platforms).find(
|
|
63
|
-
([s, n]) => s === e && (r ? c(r, n) : !1)
|
|
64
|
-
) ? (t = i.id, !0) : !1), t);
|
|
65
|
-
}
|
|
66
|
-
async fetchPriceById(r) {
|
|
67
|
-
const t = await g(r);
|
|
68
|
-
return { usd: t?.usd, eth: t.eth };
|
|
69
|
-
}
|
|
70
|
-
async fetchPriceByAddress(r) {
|
|
71
|
-
const t = S(this.chainId);
|
|
72
|
-
return (await m(r, t))?.usd;
|
|
73
|
-
}
|
|
74
|
-
async fetchHETHPrice(r) {
|
|
75
|
-
const t = I(r, this.chainId);
|
|
76
|
-
if (!t || t.underlyingErc20TokenAddress !== p || !t.isHToken || !this.provider)
|
|
77
|
-
return;
|
|
78
|
-
const { contractData: e } = T[this.chainId];
|
|
79
|
-
if (!e.hETHOracleAddress || !e.HTokenOracleABI)
|
|
80
|
-
return;
|
|
81
|
-
const o = await new u.Contract(
|
|
82
|
-
e.hETHOracleAddress,
|
|
83
|
-
e.HTokenOracleABI,
|
|
84
|
-
this.provider
|
|
85
|
-
).callStatic.exchangeRate(), s = Number(u.utils.formatEther(o)), n = await this.fetchPriceByTokenAddress(t.underlyingErc20TokenAddress);
|
|
86
|
-
if (n)
|
|
87
|
-
return s * n;
|
|
88
|
-
}
|
|
89
|
-
// This is general fetch price function: it has flexibility to fetch only with coingecko or also to try to find protocol specific price (use onlyMainRegistry parameter)
|
|
90
|
-
async fetchPriceByTokenAddress(r, t = !1) {
|
|
91
|
-
try {
|
|
92
|
-
console.log("fetchPriceByTokenAddress", { address: r });
|
|
93
|
-
const e = await this.fetchHETHPrice(r);
|
|
94
|
-
if (e)
|
|
95
|
-
return e;
|
|
96
|
-
const i = this.findTokenId(r);
|
|
97
|
-
if (i) {
|
|
98
|
-
const f = (await this.fetchPriceById(i)).usd;
|
|
99
|
-
if (f)
|
|
100
|
-
return f;
|
|
101
|
-
}
|
|
102
|
-
const o = await this.fetchPriceByAddress(r);
|
|
103
|
-
if (console.log({ coingecko: o }), o || t)
|
|
104
|
-
return o;
|
|
105
|
-
const s = await this.fetchProtocolPriceinUSD(r);
|
|
106
|
-
if (console.log({ protocolPrice: s }), s)
|
|
107
|
-
return s;
|
|
108
|
-
const n = await this.fetchOdosPriceinUSD(r);
|
|
109
|
-
if (console.log({ odosPrice: n }), n)
|
|
110
|
-
return n;
|
|
111
|
-
const d = await this.findBeefyLpPrice(r);
|
|
112
|
-
return console.log({ beefyLpPrice: d }), d || void 0;
|
|
113
|
-
} catch (e) {
|
|
114
|
-
console.log("fetchPriceByTokenAddress error ", e);
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
async fetchOdosPriceinUSD(r) {
|
|
119
|
-
const t = h(this.chainId), e = await b(t, r);
|
|
120
|
-
if (e)
|
|
121
|
-
return e;
|
|
122
|
-
}
|
|
123
|
-
async fetchProtocolPriceinUSD(r) {
|
|
124
|
-
const t = this.erc20Registry.find(
|
|
125
|
-
(e) => c(e.erc20TokenAddress, r)
|
|
126
|
-
);
|
|
127
|
-
if (t) {
|
|
128
|
-
if (this.supportsCurve() && this.curvePools.length === 0 && (this.curvePools = await y(this.chainId)), a.isCurveOrConvex(
|
|
129
|
-
t,
|
|
130
|
-
this.curvePools.map((e) => e.lpTokenAddress)
|
|
131
|
-
)) {
|
|
132
|
-
const e = await this.fetchCurvePriceinUSD(t.underlyingErc20TokenAddress ?? r);
|
|
133
|
-
if (e)
|
|
134
|
-
return e;
|
|
135
|
-
}
|
|
136
|
-
if (a.isBeefyToken(t)) {
|
|
137
|
-
const e = await this.findBeefyPriceInUSD(t.underlyingErc20TokenAddress ?? r);
|
|
138
|
-
if (e)
|
|
139
|
-
return e;
|
|
140
|
-
}
|
|
141
|
-
if (a.isPendleToken(t)) {
|
|
142
|
-
const e = await this.fetchPendleTokenPriceInUSD(r);
|
|
143
|
-
if (e)
|
|
144
|
-
return e;
|
|
145
|
-
}
|
|
146
|
-
if (a.isAaveToken(t)) {
|
|
147
|
-
const { underlyingErc20TokenAddress: e } = t;
|
|
148
|
-
if (!e)
|
|
149
|
-
return console.log("missing underlying token for aave"), 0;
|
|
150
|
-
const i = await this.fetchPriceByTokenAddress(e);
|
|
151
|
-
if (i)
|
|
152
|
-
return i;
|
|
153
|
-
}
|
|
154
|
-
if (a.isNonRebasingBlastToken(t)) {
|
|
155
|
-
const e = this.erc20Registry.find((o) => o.symbol === t.symbol.slice(2));
|
|
156
|
-
if (!e)
|
|
157
|
-
return console.log("missing rebasing variant for non-rebasing token"), 0;
|
|
158
|
-
const i = await this.fetchPriceByTokenAddress(e.erc20TokenAddress);
|
|
159
|
-
if (i)
|
|
160
|
-
return i;
|
|
161
|
-
}
|
|
162
|
-
if (a.isKinzaToken(t)) {
|
|
163
|
-
const { underlyingErc20TokenAddress: e } = t;
|
|
164
|
-
if (!e)
|
|
165
|
-
return console.log("underlying token does not exists for Kinza token"), 0;
|
|
166
|
-
const i = await this.fetchPriceByTokenAddress(e);
|
|
167
|
-
if (i)
|
|
168
|
-
return i;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
// this should work for Curve Pools, Curve Staking and Convex
|
|
173
|
-
async fetchCurvePriceinUSD(r) {
|
|
174
|
-
const t = this.crvCvxRegistry.find(
|
|
175
|
-
(i) => c(i.lpToken, r) || c(i.gauge, r) || c(i.cvxRewards, r)
|
|
176
|
-
), e = this.curvePools.find(
|
|
177
|
-
(i) => c(i.address, t?.pool) || c(i.lpTokenAddress, r) || c(i.gaugeAddress, r)
|
|
178
|
-
);
|
|
179
|
-
if (e?.lpPrice)
|
|
180
|
-
return e.lpPrice;
|
|
181
|
-
}
|
|
182
|
-
// this should work for Beefy Lp Provision and Beefy Staking
|
|
183
|
-
async findBeefyPriceInUSD(r) {
|
|
184
|
-
await this.updateBeefyVault();
|
|
185
|
-
const t = h(this.chainId), e = this.beefyVaults.find(
|
|
186
|
-
(i) => c(r, i.earnedTokenAddress) && v[t] === i.chain
|
|
187
|
-
);
|
|
188
|
-
if (e && this.provider) {
|
|
189
|
-
const { earnedTokenAddress: i, id: o } = e, n = (await new u.Contract(i, C, this.provider).totalSupply()).toBigInt(), d = Number(u.utils.formatUnits(n, 18));
|
|
190
|
-
Object.keys(this.beefyTvlData).length === 0 && (this.beefyTvlData = (await l.get(w)).data);
|
|
191
|
-
const f = this.beefyTvlData[t][o];
|
|
192
|
-
return !f || !d ? void 0 : f / d;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
async fetchPendleTokenPriceInUSD(r) {
|
|
196
|
-
const t = h(this.chainId), i = this.erc20Registry.find(
|
|
197
|
-
(n) => c(n.erc20TokenAddress, r)
|
|
198
|
-
)?.underlyingErc20TokenAddress ?? r;
|
|
199
|
-
console.log({ searchToken: i });
|
|
200
|
-
const o = `${t}/assets/${i}`, s = (await l.get(`${B}${o}`)).data;
|
|
201
|
-
return s ? s?.price.usd : 0;
|
|
202
|
-
}
|
|
203
|
-
async findBeefyLpPrice(r) {
|
|
204
|
-
await this.updateBeefyVault();
|
|
205
|
-
const t = this.beefyVaults.find((e) => c(r, e.tokenAddress));
|
|
206
|
-
if (t)
|
|
207
|
-
try {
|
|
208
|
-
const { oracleId: e } = t;
|
|
209
|
-
return (await l.get(D)).data?.[e];
|
|
210
|
-
} catch (e) {
|
|
211
|
-
console.log("findBeefyLpPrice error:", e);
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
export {
|
|
217
|
-
Pe as TokenPriceFetcher
|
|
218
|
-
};
|