@hinkal/common 0.3.9 → 0.3.11
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/README.md +26 -10
- package/common/src/API/API.cjs +1 -1
- package/common/src/API/API.d.ts +4 -5
- package/common/src/API/API.mjs +79 -80
- package/common/src/API/callRelayer.d.ts +1 -0
- package/common/src/API/dashboardTransactionCalls.cjs +1 -1
- package/common/src/API/dashboardTransactionCalls.d.ts +4 -1
- package/common/src/API/dashboardTransactionCalls.mjs +2 -2
- package/common/src/API/enclaveRecipientInfoCalls.d.ts +0 -2
- package/common/src/API/enclaveSignatureCalls.cjs +1 -1
- package/common/src/API/enclaveSignatureCalls.d.ts +2 -1
- package/common/src/API/enclaveSignatureCalls.mjs +5 -8
- package/common/src/API/enclaveUtxoCalls.cjs +1 -1
- package/common/src/API/enclaveUtxoCalls.d.ts +12 -8
- package/common/src/API/enclaveUtxoCalls.mjs +17 -20
- package/common/src/API/privateSendRecipientInfoCalls.cjs +1 -1
- package/common/src/API/privateSendRecipientInfoCalls.d.ts +3 -6
- package/common/src/API/privateSendRecipientInfoCalls.mjs +12 -6
- package/common/src/API/scheduled-transactions-calls.cjs +1 -1
- package/common/src/API/scheduled-transactions-calls.d.ts +1 -5
- package/common/src/API/scheduled-transactions-calls.mjs +2 -6
- package/common/src/constants/bridging.constants.cjs +1 -1
- package/common/src/constants/bridging.constants.d.ts +1 -0
- package/common/src/constants/bridging.constants.mjs +1 -1
- package/common/src/constants/chains.constants.cjs +1 -1
- package/common/src/constants/chains.constants.d.ts +18 -17
- package/common/src/constants/chains.constants.mjs +108 -89
- package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-base.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-base.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-bnbMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-bnbMainnet.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-optimism.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-optimism.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-polygon.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-polygon.json.mjs +2 -1
- package/common/src/constants/events.constants.cjs +1 -1
- package/common/src/constants/events.constants.mjs +1 -16
- package/common/src/constants/protocol.constants.cjs +1 -1
- package/common/src/constants/protocol.constants.d.ts +11 -8
- package/common/src/constants/protocol.constants.mjs +1 -1
- package/common/src/constants/server.constants.cjs +1 -1
- package/common/src/constants/server.constants.d.ts +1 -4
- package/common/src/constants/server.constants.mjs +1 -4
- package/common/src/constants/tx-confirmation.constants.cjs +1 -1
- package/common/src/constants/tx-confirmation.constants.d.ts +1 -0
- package/common/src/constants/tx-confirmation.constants.mjs +2 -2
- package/common/src/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/common/src/data-structures/Hinkal/Hinkal.d.ts +8 -10
- package/common/src/data-structures/Hinkal/Hinkal.mjs +132 -160
- package/common/src/data-structures/Hinkal/IHinkal.d.ts +7 -10
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +23 -23
- package/common/src/data-structures/Hinkal/hinkalActionReceive.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalActionReceive.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.mjs +57 -57
- package/common/src/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +10 -10
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +19 -19
- package/common/src/data-structures/Hinkal/hinkalNearDepositAndBridge.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalNearDepositAndBridge.mjs +3 -2
- package/common/src/data-structures/Hinkal/hinkalProxySend.cjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalProxySend.d.ts +6 -0
- package/common/src/data-structures/Hinkal/hinkalProxySend.mjs +16 -0
- package/common/src/data-structures/Hinkal/hinkalProxySwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProxySwap.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalProxySwap.mjs +13 -12
- package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +9 -9
- package/common/src/data-structures/Hinkal/hinkalSolanaSponsoredShield.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaSponsoredShield.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaSponsoredShield.mjs +15 -14
- package/common/src/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaSwap.mjs +44 -47
- package/common/src/data-structures/Hinkal/hinkalSolanaTransact.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaTransact.mjs +2 -2
- package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransact.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransact.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +4 -4
- package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +101 -94
- package/common/src/data-structures/Hinkal/index.d.ts +0 -1
- package/common/src/data-structures/IndexedDB/activity-db.cjs +1 -1
- package/common/src/data-structures/IndexedDB/activity-db.mjs +34 -34
- package/common/src/data-structures/IndexedDB/index.cjs +1 -1
- package/common/src/data-structures/IndexedDB/index.d.ts +1 -0
- package/common/src/data-structures/IndexedDB/index.mjs +1 -0
- package/common/src/data-structures/IndexedDB/scheduled-transactions-db.cjs +1 -0
- package/common/src/data-structures/IndexedDB/scheduled-transactions-db.d.ts +11 -0
- package/common/src/data-structures/IndexedDB/scheduled-transactions-db.mjs +34 -0
- package/common/src/data-structures/IndexedDB/signatures-db.cjs +1 -1
- package/common/src/data-structures/IndexedDB/signatures-db.mjs +11 -11
- package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs +1 -1
- package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.d.ts +1 -0
- package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs +6 -3
- package/common/src/data-structures/TokenDBs/PrivateTokensDB.cjs +1 -1
- package/common/src/data-structures/TokenDBs/PrivateTokensDB.mjs +18 -19
- package/common/src/data-structures/crypto-keys/keys.cjs +1 -1
- package/common/src/data-structures/crypto-keys/keys.d.ts +1 -0
- package/common/src/data-structures/crypto-keys/keys.mjs +3 -0
- package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
- package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.mjs +11 -11
- package/common/src/data-structures/event-service/helpers/ClientEventHelper.cjs +1 -1
- package/common/src/data-structures/event-service/helpers/ClientEventHelper.mjs +6 -6
- package/common/src/data-structures/private-balances/HinkalPrivateBalanceController.cjs +1 -1
- package/common/src/data-structures/private-balances/HinkalPrivateBalanceController.d.ts +1 -0
- package/common/src/data-structures/private-balances/HinkalPrivateBalanceController.mjs +79 -75
- package/common/src/data-structures/provider-adapter/IProviderAdapter.d.ts +1 -4
- package/common/src/data-structures/token-price-fetcher/TokenChecker.cjs +1 -1
- package/common/src/data-structures/token-price-fetcher/TokenChecker.d.ts +1 -0
- package/common/src/data-structures/token-price-fetcher/TokenChecker.mjs +1 -0
- package/common/src/error-handling/error-codes.constants.cjs +1 -1
- package/common/src/error-handling/error-codes.constants.d.ts +6 -0
- package/common/src/error-handling/error-codes.constants.mjs +10 -4
- package/common/src/functions/auto-deposit-back-helpers/get-gas-token-records.cjs +1 -1
- package/common/src/functions/auto-deposit-back-helpers/get-gas-token-records.mjs +7 -6
- package/common/src/functions/auto-deposit-back-helpers/select-gas-token.cjs +1 -1
- package/common/src/functions/auto-deposit-back-helpers/select-gas-token.mjs +8 -8
- package/common/src/functions/index.cjs +1 -1
- package/common/src/functions/index.mjs +1 -2
- package/common/src/functions/pre-transaction/getVolatileTransferAmount.cjs +1 -1
- package/common/src/functions/pre-transaction/getVolatileTransferAmount.mjs +13 -13
- package/common/src/functions/private-wallet/emporium.helpers.cjs +1 -1
- package/common/src/functions/private-wallet/emporium.helpers.mjs +13 -13
- package/common/src/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
- package/common/src/functions/private-wallet/emporium.swap.helpers.mjs +13 -13
- package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +4 -4
- package/common/src/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructSolanaZkProof.mjs +5 -5
- package/common/src/functions/snarkjs/constructTxEnclave.cjs +1 -1
- package/common/src/functions/snarkjs/constructTxEnclave.d.ts +1 -1
- package/common/src/functions/snarkjs/constructTxEnclave.mjs +61 -133
- package/common/src/functions/snarkjs/constructTxEnclaveVerify.cjs +1 -0
- package/common/src/functions/snarkjs/constructTxEnclaveVerify.d.ts +5 -0
- package/common/src/functions/snarkjs/constructTxEnclaveVerify.mjs +295 -0
- package/common/src/functions/utils/addresses.cjs +1 -1
- package/common/src/functions/utils/addresses.d.ts +1 -0
- package/common/src/functions/utils/addresses.mjs +13 -12
- package/common/src/functions/utils/bridge-arrival.utils.cjs +1 -1
- package/common/src/functions/utils/bridge-arrival.utils.mjs +12 -11
- package/common/src/functions/utils/bridge-claimable-utxo.utils.cjs +1 -1
- package/common/src/functions/utils/bridge-claimable-utxo.utils.d.ts +1 -1
- package/common/src/functions/utils/bridge-claimable-utxo.utils.mjs +4 -4
- package/common/src/functions/utils/create-provider.cjs +1 -1
- package/common/src/functions/utils/create-provider.mjs +4 -1
- package/common/src/functions/utils/enclave-recipient-info-storage.cjs +1 -1
- package/common/src/functions/utils/enclave-recipient-info-storage.d.ts +4 -1
- package/common/src/functions/utils/enclave-recipient-info-storage.mjs +1 -0
- package/common/src/functions/utils/enclave-signature-storage.cjs +1 -1
- package/common/src/functions/utils/enclave-signature-storage.d.ts +1 -1
- package/common/src/functions/utils/enclave-signature-storage.mjs +3 -3
- package/common/src/functions/utils/enclave-utxo-storage.cjs +1 -1
- package/common/src/functions/utils/enclave-utxo-storage.d.ts +3 -3
- package/common/src/functions/utils/enclave-utxo-storage.mjs +8 -5
- package/common/src/functions/utils/encryptInputForEnclave.cjs +1 -1
- package/common/src/functions/utils/encryptInputForEnclave.d.ts +8 -0
- package/common/src/functions/utils/encryptInputForEnclave.mjs +43 -23
- package/common/src/functions/utils/erc20tokenFunctions.cjs +1 -1
- package/common/src/functions/utils/erc20tokenFunctions.mjs +2 -15
- package/common/src/functions/utils/fees.utils.cjs +1 -1
- package/common/src/functions/utils/fees.utils.mjs +6 -6
- package/common/src/functions/utils/index.cjs +1 -1
- package/common/src/functions/utils/index.d.ts +1 -0
- package/common/src/functions/utils/index.mjs +3 -3
- package/common/src/functions/utils/ipfs.d.ts +2 -3
- package/common/src/functions/utils/lifi.utils.d.ts +2 -0
- package/common/src/functions/utils/nearIntents.utils.cjs +1 -1
- package/common/src/functions/utils/nearIntents.utils.mjs +7 -7
- package/common/src/functions/utils/publicBalance.utils.cjs +1 -1
- package/common/src/functions/utils/publicBalance.utils.mjs +10 -10
- package/common/src/functions/utils/temporary-wallet-recovery.utils.cjs +1 -0
- package/common/src/functions/utils/temporary-wallet-recovery.utils.d.ts +7 -0
- package/common/src/functions/utils/temporary-wallet-recovery.utils.mjs +10 -0
- package/common/src/functions/utils/tron.utils.cjs +1 -1
- package/common/src/functions/utils/tron.utils.mjs +16 -29
- package/common/src/functions/utils/tx-confirmation.utils.cjs +1 -1
- package/common/src/functions/utils/tx-confirmation.utils.d.ts +1 -0
- package/common/src/functions/utils/tx-confirmation.utils.mjs +16 -13
- package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
- package/common/src/functions/web3/events/getInputUtxoAndBalance.mjs +5 -5
- package/common/src/functions/web3/events/getInputUtxosEnclave.cjs +1 -1
- package/common/src/functions/web3/events/getInputUtxosEnclave.d.ts +1 -1
- package/common/src/functions/web3/events/getInputUtxosEnclave.mjs +19 -11
- package/common/src/functions/web3/events/getShieldedBalance.cjs +1 -1
- package/common/src/functions/web3/events/getShieldedBalance.d.ts +4 -4
- package/common/src/functions/web3/events/getShieldedBalance.mjs +113 -101
- package/common/src/functions/web3/functionCalls/transactCallDirectTron.cjs +1 -1
- package/common/src/functions/web3/functionCalls/transactCallDirectTron.mjs +16 -16
- package/common/src/providers/SolanaProviderAdapter.cjs +1 -1
- package/common/src/providers/SolanaProviderAdapter.d.ts +1 -4
- package/common/src/providers/SolanaProviderAdapter.mjs +3 -6
- package/common/src/providers/WagmiProviderAdapter.cjs +1 -1
- package/common/src/providers/WagmiProviderAdapter.mjs +5 -5
- package/common/src/types/cache.types.cjs +1 -1
- package/common/src/types/cache.types.d.ts +2 -1
- package/common/src/types/cache.types.mjs +1 -1
- package/common/src/types/enclaveApi.types.d.ts +2 -3
- package/common/src/types/ethereum-network.types.d.ts +1 -0
- package/common/src/types/events.types.d.ts +1 -0
- package/common/src/types/near-intents.types.d.ts +1 -0
- package/common/src/types/remote-proof.types.d.ts +5 -0
- package/common/src/types/remote-tx-build.types.d.ts +37 -4
- package/common/src/types/scheduled-transactions.types.d.ts +18 -0
- package/common/src/types/solana.types.d.ts +0 -3
- package/common/src/webworker/{logError-RKYfeI6h.js → logError-cvFNxc-0.js} +1 -1
- package/common/src/webworker/package.json +1 -2
- package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/snarkjsWorkerNode.cjs +1 -1
- package/common/src/webworker/utxoWorker/utxoWorker.types.d.ts +4 -2
- package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/utxoWorkerNode.cjs +1 -1
- package/common/src/webworker/viteWorkerURL.constant.cjs +3 -3
- package/common/src/webworker/viteWorkerURL.constant.mjs +3 -3
- package/common/src/webworker/workerProxy-BHzCZ9HT.js +1 -0
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
- package/package.json +1 -2
- package/providers/prepareEthersHinkal.cjs +1 -1
- package/providers/prepareEthersHinkal.d.ts +1 -0
- package/providers/prepareEthersHinkal.mjs +2 -2
- package/providers/prepareSolanaHinkal.cjs +1 -1
- package/providers/prepareSolanaHinkal.d.ts +1 -0
- package/providers/prepareSolanaHinkal.mjs +2 -2
- package/providers/prepareTronHinkal.cjs +1 -1
- package/providers/prepareTronHinkal.d.ts +1 -0
- package/providers/prepareTronHinkal.mjs +2 -2
- package/providers/prepareWagmiHinkal.cjs +1 -1
- package/providers/prepareWagmiHinkal.d.ts +1 -0
- package/providers/prepareWagmiHinkal.mjs +2 -2
- package/services/Hinkal.cjs +1 -1
- package/services/Hinkal.d.ts +8 -2
- package/services/Hinkal.mjs +15 -4
- package/types/IHinkal.d.ts +8 -2
- package/common/src/API/evm-token-assets.cjs +0 -1
- package/common/src/API/evm-token-assets.mjs +0 -20
- package/common/src/API/getAnyRecipientInfo.d.ts +0 -1
- package/common/src/API/solana-nft-assets.cjs +0 -1
- package/common/src/API/solana-nft-assets.mjs +0 -11
- package/common/src/data-structures/Hinkal/hinkalSolanaSponsoredProxySend.d.ts +0 -5
- package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +0 -1
- package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.mjs +0 -109
- package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.cjs +0 -1
- package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.mjs +0 -94
- package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.cjs +0 -1
- package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.mjs +0 -134
- package/common/src/data-structures/TokenDBs/PublicTokensDB.cjs +0 -1
- package/common/src/data-structures/TokenDBs/PublicTokensDB.mjs +0 -32
- package/common/src/data-structures/TokenDBs/TempoPublicTokensDB.cjs +0 -1
- package/common/src/data-structures/TokenDBs/TempoPublicTokensDB.mjs +0 -37
- package/common/src/data-structures/TokenDBs/TronPublicTokensDB.cjs +0 -1
- package/common/src/data-structures/TokenDBs/TronPublicTokensDB.mjs +0 -51
- package/common/src/data-structures/TokenDBs/index.cjs +0 -1
- package/common/src/data-structures/TokenDBs/index.mjs +0 -6
- package/common/src/functions/utils/ipfs.cjs +0 -1
- package/common/src/functions/utils/ipfs.mjs +0 -1
- package/common/src/functions/utils/reloadPage.cjs +0 -1
- package/common/src/functions/utils/reloadPage.mjs +0 -4
- package/common/src/webworker/workerProxy-COB7g4Qc.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../types/cache.types.cjs`),i=require(`../../API/API.cjs`),a=require(`../../error-handling/logger.cjs`),o=require(`../../functions/utils/string.utils.cjs`),s=require(`./token-visibility-db.cjs`),c=require(`../../functions/utils/erc20tokenFunctions.cjs`),l=require(`../../functions/utils/create-provider.cjs`),u=require(`../../functions/utils/publicBalance.utils.cjs`),d=require(`../../API/solana-nft-assets.cjs`),f=require(`../../API/evm-token-assets.cjs`);let p=require(`@solana/web3.js`),m=require(`idb-keyval`),h=require(`@solana/spl-token`);var g=new class{fetchedTokens={};KNOWN_GOOD_NFTS={[e.chainIds.base]:[`0x20bc8d248fe9c18a947406cea50d716828ab821f`],[e.chainIds.optimism]:[`0x3c3e0e73b53a19bcaf4178b8f9c9428fd2a2775e`]};isWhitelistedNFT(e,t){return this.KNOWN_GOOD_NFTS[t]?this.KNOWN_GOOD_NFTS[t].some(t=>n.caseInsensitiveEqual(e,t)):!1}async getPublicTokens(e,t){let n=o.getStateKey(t,e);return c.overlayTokensWithRegistryData((await(0,m.get)(r.StorageKeys.ALCHEMY_PUBLIC_TOKENS))?.[n]||[],e)}async getFetchedTokens(e,t){let n=o.getStateKey(t,e);return c.overlayTokensWithRegistryData(this.fetchedTokens[n]||[],e)}fetchAndUpdatePublicTokens(t,n){return e.isSolanaLike(n)?this.fetchAndUpdateSolanaTokens(t,n):this.fetchAndUpdateEVMTokens(t,n)}async fetchAndUpdateSolanaTokens(e,t){let a=o.getStateKey(e,t),[c,l]=await Promise.all([this.getSolanaTokenAddresses(t,e),this.getNFTAddresses(e)]),u=Array.from(new Set([...c,...l]));if(!u.length)return;let d=(await i.API.tokensInfoCall(t,u)).filter(e=>!!e),f=await s.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(t,d),p=d.filter(e=>!n.lowerCaseIncludes(f,e.erc20TokenAddress));await(0,m.update)(r.StorageKeys.ALCHEMY_PUBLIC_TOKENS,(e={})=>{let t={...e,[a]:p};return this.fetchedTokens=t,t})}async getWalletTokenAddresses(t,n){return e.isSolanaLike(t)?this.getSolanaTokenAddresses(t,n):this.getEVMTokenAddresses(t,n)}async fetchAndUpdateEVMTokens(e,a){let c=o.getStateKey(e,a),l=await this.getEVMTokenAddresses(a,e),u=await this.getNFTTokens(a,e),d=u.map(e=>e.contractAddress),f=[...l,...d];if(!f.length)return;let p=(await i.API.tokensInfoCall(a,f)).map((e,r)=>{if(e)return e;let i=f[r],o=u.find(e=>n.caseInsensitiveEqual(e.contractAddress,i));return o&&o.tokenIds&&o.tokenIds.length>0&&this.isWhitelistedNFT(i,a)?{chainId:a,name:`Unknown NFT`,symbol:`NFT`,erc20TokenAddress:i,decimals:0,nftTokenType:t.TokenType.ERC721,tokenIds:o.tokenIds}:null}).filter(e=>!!e),h=await s.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(a,p),g=p.filter(e=>!n.lowerCaseIncludes(h,e.erc20TokenAddress)).map(e=>({...e,tokenIds:u.find(t=>n.caseInsensitiveEqual(t.contractAddress,e.erc20TokenAddress))?.tokenIds}));await(0,m.update)(r.StorageKeys.ALCHEMY_PUBLIC_TOKENS,(e={})=>{let t={...e,[c]:g};return this.fetchedTokens=t,t})}async getSolanaTokenAddresses(n,r){let{rpcUrl:i}=e.networkRegistry[n],a=l.createCustomSolanaConnection(i),o=await a.getBalance(new p.PublicKey(r)),[s,c]=await Promise.all([a.getParsedTokenAccountsByOwner(new p.PublicKey(r),{programId:h.TOKEN_PROGRAM_ID}),a.getParsedTokenAccountsByOwner(new p.PublicKey(r),{programId:h.TOKEN_2022_PROGRAM_ID})]),u=[...s.value,...c.value].filter(e=>{let{amount:t}=e.account.data.parsed.info.tokenAmount;return BigInt(t)>0n}).map(e=>e.account.data.parsed.info.mint);return o>0&&u.unshift(t.solanaNativeAddress),Array.from(new Set(u))}async getNFTAddresses(e){try{return await d.getSolanaNftAssetsFromServer(e)}catch(e){return a.Logger.error(`Failed to fetch NFTs from DAS API`,e),[]}}async getEVMTokenAddresses(e,n){let[r,i]=await Promise.all([u.getPublicBalanceByTokenAddress(e,n,t.zeroAddress),f.getEvmTokenBalancesFromServer(e,n)]);r&&r>0n&&i.push({contractAddress:t.zeroAddress,tokenBalance:r.toString()});let a={};return i.forEach(e=>{(!a[e.contractAddress]||BigInt(e.tokenBalance)>0n)&&(a[e.contractAddress]=e)}),Object.keys(a)}async getNFTTokens(e,t){return f.getEvmNftAssetsFromServer(e,t)}};exports.alchemyPublicTokensDB=g;
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { chainIds as e, isSolanaLike as t, networkRegistry as n } from "../../constants/chains.constants.mjs";
|
|
2
|
-
import { TokenType as r, solanaNativeAddress as i, zeroAddress as a } from "../../constants/protocol.constants.mjs";
|
|
3
|
-
import { caseInsensitiveEqual as o, lowerCaseIncludes as s } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
4
|
-
import { StorageKeys as c } from "../../types/cache.types.mjs";
|
|
5
|
-
import { API as l } from "../../API/API.mjs";
|
|
6
|
-
import { Logger as u } from "../../error-handling/logger.mjs";
|
|
7
|
-
import { getStateKey as d } from "../../functions/utils/string.utils.mjs";
|
|
8
|
-
import { tokenVisibilityStorage as f } from "./token-visibility-db.mjs";
|
|
9
|
-
import { overlayTokensWithRegistryData as p } from "../../functions/utils/erc20tokenFunctions.mjs";
|
|
10
|
-
import { createCustomSolanaConnection as m } from "../../functions/utils/create-provider.mjs";
|
|
11
|
-
import { getPublicBalanceByTokenAddress as h } from "../../functions/utils/publicBalance.utils.mjs";
|
|
12
|
-
import { getSolanaNftAssetsFromServer as g } from "../../API/solana-nft-assets.mjs";
|
|
13
|
-
import { getEvmNftAssetsFromServer as _, getEvmTokenBalancesFromServer as v } from "../../API/evm-token-assets.mjs";
|
|
14
|
-
import { PublicKey as y } from "@solana/web3.js";
|
|
15
|
-
import { get as b, update as x } from "idb-keyval";
|
|
16
|
-
import { TOKEN_2022_PROGRAM_ID as S, TOKEN_PROGRAM_ID as C } from "@solana/spl-token";
|
|
17
|
-
var w = new class {
|
|
18
|
-
fetchedTokens = {};
|
|
19
|
-
KNOWN_GOOD_NFTS = {
|
|
20
|
-
[e.base]: ["0x20bc8d248fe9c18a947406cea50d716828ab821f"],
|
|
21
|
-
[e.optimism]: ["0x3c3e0e73b53a19bcaf4178b8f9c9428fd2a2775e"]
|
|
22
|
-
};
|
|
23
|
-
isWhitelistedNFT(e, t) {
|
|
24
|
-
return this.KNOWN_GOOD_NFTS[t] ? this.KNOWN_GOOD_NFTS[t].some((t) => o(e, t)) : !1;
|
|
25
|
-
}
|
|
26
|
-
async getPublicTokens(e, t) {
|
|
27
|
-
let n = d(t, e);
|
|
28
|
-
return p((await b(c.ALCHEMY_PUBLIC_TOKENS))?.[n] || [], e);
|
|
29
|
-
}
|
|
30
|
-
async getFetchedTokens(e, t) {
|
|
31
|
-
let n = d(t, e);
|
|
32
|
-
return p(this.fetchedTokens[n] || [], e);
|
|
33
|
-
}
|
|
34
|
-
fetchAndUpdatePublicTokens(e, n) {
|
|
35
|
-
return t(n) ? this.fetchAndUpdateSolanaTokens(e, n) : this.fetchAndUpdateEVMTokens(e, n);
|
|
36
|
-
}
|
|
37
|
-
async fetchAndUpdateSolanaTokens(e, t) {
|
|
38
|
-
let n = d(e, t), [r, i] = await Promise.all([this.getSolanaTokenAddresses(t, e), this.getNFTAddresses(e)]), a = Array.from(new Set([...r, ...i]));
|
|
39
|
-
if (!a.length) return;
|
|
40
|
-
let o = (await l.tokensInfoCall(t, a)).filter((e) => !!e), u = await f.hideSpamsAndFetchHiddenTokensAddresses(t, o), p = o.filter((e) => !s(u, e.erc20TokenAddress));
|
|
41
|
-
await x(c.ALCHEMY_PUBLIC_TOKENS, (e = {}) => {
|
|
42
|
-
let t = {
|
|
43
|
-
...e,
|
|
44
|
-
[n]: p
|
|
45
|
-
};
|
|
46
|
-
return this.fetchedTokens = t, t;
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
async getWalletTokenAddresses(e, n) {
|
|
50
|
-
return t(e) ? this.getSolanaTokenAddresses(e, n) : this.getEVMTokenAddresses(e, n);
|
|
51
|
-
}
|
|
52
|
-
async fetchAndUpdateEVMTokens(e, t) {
|
|
53
|
-
let n = d(e, t), i = await this.getEVMTokenAddresses(t, e), a = await this.getNFTTokens(t, e), u = a.map((e) => e.contractAddress), p = [...i, ...u];
|
|
54
|
-
if (!p.length) return;
|
|
55
|
-
let m = (await l.tokensInfoCall(t, p)).map((e, n) => {
|
|
56
|
-
if (e) return e;
|
|
57
|
-
let i = p[n], s = a.find((e) => o(e.contractAddress, i));
|
|
58
|
-
return s && s.tokenIds && s.tokenIds.length > 0 && this.isWhitelistedNFT(i, t) ? {
|
|
59
|
-
chainId: t,
|
|
60
|
-
name: "Unknown NFT",
|
|
61
|
-
symbol: "NFT",
|
|
62
|
-
erc20TokenAddress: i,
|
|
63
|
-
decimals: 0,
|
|
64
|
-
nftTokenType: r.ERC721,
|
|
65
|
-
tokenIds: s.tokenIds
|
|
66
|
-
} : null;
|
|
67
|
-
}).filter((e) => !!e), h = await f.hideSpamsAndFetchHiddenTokensAddresses(t, m), g = m.filter((e) => !s(h, e.erc20TokenAddress)).map((e) => ({
|
|
68
|
-
...e,
|
|
69
|
-
tokenIds: a.find((t) => o(t.contractAddress, e.erc20TokenAddress))?.tokenIds
|
|
70
|
-
}));
|
|
71
|
-
await x(c.ALCHEMY_PUBLIC_TOKENS, (e = {}) => {
|
|
72
|
-
let t = {
|
|
73
|
-
...e,
|
|
74
|
-
[n]: g
|
|
75
|
-
};
|
|
76
|
-
return this.fetchedTokens = t, t;
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
async getSolanaTokenAddresses(e, t) {
|
|
80
|
-
let { rpcUrl: r } = n[e], a = m(r), o = await a.getBalance(new y(t)), [s, c] = await Promise.all([a.getParsedTokenAccountsByOwner(new y(t), { programId: C }), a.getParsedTokenAccountsByOwner(new y(t), { programId: S })]), l = [...s.value, ...c.value].filter((e) => {
|
|
81
|
-
let { amount: t } = e.account.data.parsed.info.tokenAmount;
|
|
82
|
-
return BigInt(t) > 0n;
|
|
83
|
-
}).map((e) => e.account.data.parsed.info.mint);
|
|
84
|
-
return o > 0 && l.unshift(i), Array.from(new Set(l));
|
|
85
|
-
}
|
|
86
|
-
async getNFTAddresses(e) {
|
|
87
|
-
try {
|
|
88
|
-
return await g(e);
|
|
89
|
-
} catch (e) {
|
|
90
|
-
return u.error("Failed to fetch NFTs from DAS API", e), [];
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
async getEVMTokenAddresses(e, t) {
|
|
94
|
-
let [n, r] = await Promise.all([h(e, t, a), v(e, t)]);
|
|
95
|
-
n && n > 0n && r.push({
|
|
96
|
-
contractAddress: a,
|
|
97
|
-
tokenBalance: n.toString()
|
|
98
|
-
});
|
|
99
|
-
let i = {};
|
|
100
|
-
return r.forEach((e) => {
|
|
101
|
-
(!i[e.contractAddress] || BigInt(e.tokenBalance) > 0n) && (i[e.contractAddress] = e);
|
|
102
|
-
}), Object.keys(i);
|
|
103
|
-
}
|
|
104
|
-
async getNFTTokens(e, t) {
|
|
105
|
-
return _(e, t);
|
|
106
|
-
}
|
|
107
|
-
}();
|
|
108
|
-
//#endregion
|
|
109
|
-
export { w as alchemyPublicTokensDB };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../../functions/utils/caseInsensitive.utils.cjs`),i=require(`../../types/ethereum-network.types.cjs`),a=require(`../../types/cache.types.cjs`),o=require(`../../API/API.cjs`),s=require(`../../error-handling/logger.cjs`),c=require(`../../functions/utils/string.utils.cjs`),l=require(`./token-visibility-db.cjs`),u=require(`../../functions/web3/getContractMetadata.cjs`);let d=require(`idb-keyval`),f=require(`axios`);f=e.__toESM(f);var p=class{API_BASE=`https://testnet.arcscan.app/api`;fetchedTokens={};async getPublicTokens(e){let n=c.getStateKey(e,t.chainIds.arcTestnet);return(await(0,d.get)(a.StorageKeys.ARC_PUBLIC_TOKENS))?.[n]||[]}getFetchedTokens(e){let n=c.getStateKey(e,t.chainIds.arcTestnet);return this.fetchedTokens[n]||[]}async fetchAndUpdatePublicTokens(e){let i=c.getStateKey(e,t.chainIds.arcTestnet),s=await this.getERC20TokenAddresses(e),u=await this.getNFTTokens(e),f=u.map(e=>e.contractAddress),p=[...s,...f];if(!p.length)return;let m=(await o.API.tokensInfoCall(t.chainIds.arcTestnet,p)).map((e,i)=>{if(e)return e;let a=p[i],o=u.find(e=>r.caseInsensitiveEqual(e.contractAddress,a));return o&&o.tokenIds&&o.tokenIds.length>0?{chainId:t.chainIds.arcTestnet,name:`Unknown NFT`,symbol:`NFT`,erc20TokenAddress:a,decimals:0,nftTokenType:n.TokenType.ERC721,tokenIds:o.tokenIds}:null}).filter(e=>!!e),h=await l.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(t.chainIds.arcTestnet,m),g=m.filter(e=>!r.lowerCaseIncludes(h,e.erc20TokenAddress)).map(e=>({...e,tokenIds:u.find(t=>r.caseInsensitiveEqual(t.contractAddress,e.erc20TokenAddress))?.tokenIds}));await(0,d.update)(a.StorageKeys.ARC_PUBLIC_TOKENS,(e={})=>{let t={...e,[i]:g};return this.fetchedTokens=t,t})}async getERC20TokenAddresses(e){let n=[];try{let r=(await f.default.post(`${this.API_BASE}?module=account&action=tokentx&address=${e}`)).data;if(r.status===`1`&&r.result){let a=[...new Set(r.result.map(({contractAddress:e})=>e))];for(let r of a)try{let a=u.getContractWithFetcherByChainId(t.chainIds.arcTestnet,i.ContractType.ERC20Contract,r),o=BigInt(await a.balanceOf(e));o>0n&&n.push({contractAddress:r,tokenBalance:o.toString()})}catch(e){s.Logger.error(`Error fetching ARC testnet token balance:`,e)}}}catch(e){s.Logger.error(`Error fetching ARC testnet token transactions:`,e)}return n.filter(({tokenBalance:e})=>Number(e)!==0).map(({contractAddress:e})=>e)}async getNFTTokens(e){let t=`${this.API_BASE}/v2/addresses/${e}/nft?type=ERC-721,ERC-1155`,n=[],r;do{let e=r?`&${new URLSearchParams(r)}`:``,{data:i}=await f.default.get(`${t}${e}`),{items:a=[],next_page_params:o}=i;n.push(...a),r=o?{token_contract_address_hash:o.token_contract_address_hash,token_id:o.token_id,token_type:o.token_type}:void 0}while(r);let i=n.reduce((e,t)=>{let n=t.token.address_hash.toLowerCase(),r=t.id;return e.has(n)||e.set(n,[]),e.get(n)?.push(r),e},new Map);return Array.from(i.entries()).map(([e,t])=>({contractAddress:e,tokenIds:t}))}},m=new p;exports.ArcPublicTokensDB=p,exports.arcPublicTokensDB=m;
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { chainIds as e } from "../../constants/chains.constants.mjs";
|
|
2
|
-
import { TokenType as t } from "../../constants/protocol.constants.mjs";
|
|
3
|
-
import { caseInsensitiveEqual as n, lowerCaseIncludes as r } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
4
|
-
import { ContractType as i } from "../../types/ethereum-network.types.mjs";
|
|
5
|
-
import { StorageKeys as a } from "../../types/cache.types.mjs";
|
|
6
|
-
import { API as o } from "../../API/API.mjs";
|
|
7
|
-
import { Logger as s } from "../../error-handling/logger.mjs";
|
|
8
|
-
import { getStateKey as c } from "../../functions/utils/string.utils.mjs";
|
|
9
|
-
import { tokenVisibilityStorage as l } from "./token-visibility-db.mjs";
|
|
10
|
-
import { getContractWithFetcherByChainId as u } from "../../functions/web3/getContractMetadata.mjs";
|
|
11
|
-
import { get as d, update as f } from "idb-keyval";
|
|
12
|
-
import p from "axios";
|
|
13
|
-
//#region libs/shared/common/src/data-structures/TokenDBs/ArcPublicTokensDB.ts
|
|
14
|
-
var m = class {
|
|
15
|
-
API_BASE = "https://testnet.arcscan.app/api";
|
|
16
|
-
fetchedTokens = {};
|
|
17
|
-
async getPublicTokens(t) {
|
|
18
|
-
let n = c(t, e.arcTestnet);
|
|
19
|
-
return (await d(a.ARC_PUBLIC_TOKENS))?.[n] || [];
|
|
20
|
-
}
|
|
21
|
-
getFetchedTokens(t) {
|
|
22
|
-
let n = c(t, e.arcTestnet);
|
|
23
|
-
return this.fetchedTokens[n] || [];
|
|
24
|
-
}
|
|
25
|
-
async fetchAndUpdatePublicTokens(i) {
|
|
26
|
-
let s = c(i, e.arcTestnet), u = await this.getERC20TokenAddresses(i), d = await this.getNFTTokens(i), p = d.map((e) => e.contractAddress), m = [...u, ...p];
|
|
27
|
-
if (!m.length) return;
|
|
28
|
-
let h = (await o.tokensInfoCall(e.arcTestnet, m)).map((r, i) => {
|
|
29
|
-
if (r) return r;
|
|
30
|
-
let a = m[i], o = d.find((e) => n(e.contractAddress, a));
|
|
31
|
-
return o && o.tokenIds && o.tokenIds.length > 0 ? {
|
|
32
|
-
chainId: e.arcTestnet,
|
|
33
|
-
name: "Unknown NFT",
|
|
34
|
-
symbol: "NFT",
|
|
35
|
-
erc20TokenAddress: a,
|
|
36
|
-
decimals: 0,
|
|
37
|
-
nftTokenType: t.ERC721,
|
|
38
|
-
tokenIds: o.tokenIds
|
|
39
|
-
} : null;
|
|
40
|
-
}).filter((e) => !!e), g = await l.hideSpamsAndFetchHiddenTokensAddresses(e.arcTestnet, h), _ = h.filter((e) => !r(g, e.erc20TokenAddress)).map((e) => ({
|
|
41
|
-
...e,
|
|
42
|
-
tokenIds: d.find((t) => n(t.contractAddress, e.erc20TokenAddress))?.tokenIds
|
|
43
|
-
}));
|
|
44
|
-
await f(a.ARC_PUBLIC_TOKENS, (e = {}) => {
|
|
45
|
-
let t = {
|
|
46
|
-
...e,
|
|
47
|
-
[s]: _
|
|
48
|
-
};
|
|
49
|
-
return this.fetchedTokens = t, t;
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
async getERC20TokenAddresses(t) {
|
|
53
|
-
let n = [];
|
|
54
|
-
try {
|
|
55
|
-
let r = (await p.post(`${this.API_BASE}?module=account&action=tokentx&address=${t}`)).data;
|
|
56
|
-
if (r.status === "1" && r.result) {
|
|
57
|
-
let a = [...new Set(r.result.map(({ contractAddress: e }) => e))];
|
|
58
|
-
for (let r of a) try {
|
|
59
|
-
let a = u(e.arcTestnet, i.ERC20Contract, r), o = BigInt(await a.balanceOf(t));
|
|
60
|
-
o > 0n && n.push({
|
|
61
|
-
contractAddress: r,
|
|
62
|
-
tokenBalance: o.toString()
|
|
63
|
-
});
|
|
64
|
-
} catch (e) {
|
|
65
|
-
s.error("Error fetching ARC testnet token balance:", e);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
} catch (e) {
|
|
69
|
-
s.error("Error fetching ARC testnet token transactions:", e);
|
|
70
|
-
}
|
|
71
|
-
return n.filter(({ tokenBalance: e }) => Number(e) !== 0).map(({ contractAddress: e }) => e);
|
|
72
|
-
}
|
|
73
|
-
async getNFTTokens(e) {
|
|
74
|
-
let t = `${this.API_BASE}/v2/addresses/${e}/nft?type=ERC-721,ERC-1155`, n = [], r;
|
|
75
|
-
do {
|
|
76
|
-
let e = r ? `&${new URLSearchParams(r)}` : "", { data: i } = await p.get(`${t}${e}`), { items: a = [], next_page_params: o } = i;
|
|
77
|
-
n.push(...a), r = o ? {
|
|
78
|
-
token_contract_address_hash: o.token_contract_address_hash,
|
|
79
|
-
token_id: o.token_id,
|
|
80
|
-
token_type: o.token_type
|
|
81
|
-
} : void 0;
|
|
82
|
-
} while (r);
|
|
83
|
-
let i = n.reduce((e, t) => {
|
|
84
|
-
let n = t.token.address_hash.toLowerCase(), r = t.id;
|
|
85
|
-
return e.has(n) || e.set(n, []), e.get(n)?.push(r), e;
|
|
86
|
-
}, /* @__PURE__ */ new Map());
|
|
87
|
-
return Array.from(i.entries()).map(([e, t]) => ({
|
|
88
|
-
contractAddress: e,
|
|
89
|
-
tokenIds: t
|
|
90
|
-
}));
|
|
91
|
-
}
|
|
92
|
-
}, h = new m();
|
|
93
|
-
//#endregion
|
|
94
|
-
export { m as ArcPublicTokensDB, h as arcPublicTokensDB };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../../functions/utils/tron.utils.cjs`),r=require(`../../types/cache.types.cjs`),i=require(`../../API/API.cjs`),a=require(`../../error-handling/logger.cjs`),o=require(`../../functions/utils/string.utils.cjs`),s=require(`./token-visibility-db.cjs`),c=require(`../../functions/utils/erc20tokenFunctions.cjs`),l=require(`../../functions/utils/create-provider.cjs`),u=require(`../../constants/events.constants.cjs`);require(`../../functions/index.cjs`);let d=require(`ethers`),f=require(`idb-keyval`),p=require(`async-mutex`);var m=new class{fetchedTokens={};updateMutexes={};transferEventTopic=d.ethers.id(`Transfer(address,address,uint256)`);chunkSize=2e3;getMutex(e){return this.updateMutexes[e]||(this.updateMutexes[e]=new p.Mutex),this.updateMutexes[e]}async getPublicTokens(e,t){let n=o.getStateKey(t,e);return c.overlayTokensWithRegistryData((await(0,f.get)(r.StorageKeys.EVENTS_PUBLIC_TOKENS))?.[n]||[],e)}async getFetchedTokens(e,t){let n=o.getStateKey(t,e);return c.overlayTokensWithRegistryData(this.fetchedTokens[n]||[],e)}async fetchAndUpdatePublicTokens(e,n){let i=o.getStateKey(e,n);await this.getMutex(i).runExclusive(async()=>{try{let a=(await this.getPublicTokens(n,e)).map(e=>e.erc20TokenAddress),{toEvents:o,fromEvents:c,latestBlock:l}=await this.getEvents(e,n),u=[...o,...c],{erc20Tokens:d}=await this.fetchPublicTokens(u,n,a),p=await s.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(n,d),m=d.filter(e=>!t.lowerCaseIncludes(p,e.erc20TokenAddress));await(0,f.update)(r.StorageKeys.EVENTS_PUBLIC_TOKENS,(e={})=>{let n=e[i]||[],r=n.map(e=>e.erc20TokenAddress),a=m.filter(e=>!t.lowerCaseIncludes(r,e.erc20TokenAddress));n.push(...a);let s=this.updateTokenIds(c,o,n),l={...e,[i]:s};return this.fetchedTokens=l,l}),l&&await this.updateLastProcessedBlock(n,e,l)}catch(e){a.Logger.error(`public tokens db error`,e)}})}async getLastProcessedBlock(e,t){return(await(0,f.get)(r.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS)||{})[o.getStateKey(t,e)]||u.EVENTS_INITIAL_BLOCKS[e]}async updateLastProcessedBlock(e,t,n){await(0,f.update)(r.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS,(r={})=>{let i=o.getStateKey(t,e);return{...r,[i]:n}})}async getEvents(e,t){try{let r=l.createJsonRpcProvider(t),i=await this.getLastProcessedBlock(t,e)+1,a=await r.getBlockNumber(),o=n.addressToHexFormat(e),s=d.ethers.zeroPadValue(o,32),c=[],u=[];for(let e=i;e<=a;e+=this.chunkSize){let t=Math.min(e+this.chunkSize-1,a),n={topics:[this.transferEventTopic,null,s],fromBlock:e,toBlock:t},i={topics:[this.transferEventTopic,s,null],fromBlock:e,toBlock:t},[o,l]=await Promise.all([r.getLogs(n),r.getLogs(i)]);c.push(...o),u.push(...l)}return{toEvents:c,fromEvents:u,latestBlock:a}}catch(n){return a.Logger.error(`Error fetching events:`,n,`chainId`,t,`walletAddress`,e),{toEvents:[],fromEvents:[],latestBlock:void 0}}}updateTokenIds(e,t,n){let r=new Map;return n.forEach(e=>{if(c.isNFTToken(e)&&e.tokenIds){let t=e.erc20TokenAddress.toLowerCase();r.set(t,[...e.tokenIds])}}),t.forEach(e=>{if(e.topics.length<=3)return;let t=e.address.toLowerCase(),n=BigInt(e.topics[3]).toString();r.has(t)||r.set(t,[]),r.get(t)?.push(n)}),e.forEach(e=>{if(e.topics.length<=3)return;let t=e.address.toLowerCase(),n=r.get(t);if(n?.length){let t=BigInt(e.topics[3]).toString(),r=n.indexOf(t);r!==-1&&n.splice(r,1)}}),n.forEach(e=>{if(c.isNFTToken(e)){let t=e.erc20TokenAddress.toLowerCase(),n=r.get(t);e.tokenIds=n?.length&&n.length>0?n:void 0}}),n}async fetchPublicTokens(n,r,o){try{let a=[e.zeroAddress,...new Set(n.map(e=>e.address))].filter(e=>e&&!t.lowerCaseIncludes(o,e));return a.length?{erc20Tokens:(await i.API.tokensInfoCall(r,a)).filter(e=>!!e)}:{erc20Tokens:[]}}catch(e){return a.Logger.error(`Error fetching public tokens:`,e),{erc20Tokens:[]}}}};exports.eventsPublicTokensDB=m;
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { zeroAddress as e } from "../../constants/protocol.constants.mjs";
|
|
2
|
-
import { lowerCaseIncludes as t } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
3
|
-
import { addressToHexFormat as n } from "../../functions/utils/tron.utils.mjs";
|
|
4
|
-
import { StorageKeys as r } from "../../types/cache.types.mjs";
|
|
5
|
-
import { API as i } from "../../API/API.mjs";
|
|
6
|
-
import { Logger as a } from "../../error-handling/logger.mjs";
|
|
7
|
-
import { getStateKey as o } from "../../functions/utils/string.utils.mjs";
|
|
8
|
-
import { tokenVisibilityStorage as s } from "./token-visibility-db.mjs";
|
|
9
|
-
import { isNFTToken as c, overlayTokensWithRegistryData as l } from "../../functions/utils/erc20tokenFunctions.mjs";
|
|
10
|
-
import { createJsonRpcProvider as u } from "../../functions/utils/create-provider.mjs";
|
|
11
|
-
import { EVENTS_INITIAL_BLOCKS as d } from "../../constants/events.constants.mjs";
|
|
12
|
-
import "../../functions/index.mjs";
|
|
13
|
-
import { ethers as f } from "ethers";
|
|
14
|
-
import { get as p, update as m } from "idb-keyval";
|
|
15
|
-
import { Mutex as h } from "async-mutex";
|
|
16
|
-
var g = new class {
|
|
17
|
-
fetchedTokens = {};
|
|
18
|
-
updateMutexes = {};
|
|
19
|
-
transferEventTopic = f.id("Transfer(address,address,uint256)");
|
|
20
|
-
chunkSize = 2e3;
|
|
21
|
-
getMutex(e) {
|
|
22
|
-
return this.updateMutexes[e] || (this.updateMutexes[e] = new h()), this.updateMutexes[e];
|
|
23
|
-
}
|
|
24
|
-
async getPublicTokens(e, t) {
|
|
25
|
-
let n = o(t, e);
|
|
26
|
-
return l((await p(r.EVENTS_PUBLIC_TOKENS))?.[n] || [], e);
|
|
27
|
-
}
|
|
28
|
-
async getFetchedTokens(e, t) {
|
|
29
|
-
let n = o(t, e);
|
|
30
|
-
return l(this.fetchedTokens[n] || [], e);
|
|
31
|
-
}
|
|
32
|
-
async fetchAndUpdatePublicTokens(e, n) {
|
|
33
|
-
let i = o(e, n);
|
|
34
|
-
await this.getMutex(i).runExclusive(async () => {
|
|
35
|
-
try {
|
|
36
|
-
let a = (await this.getPublicTokens(n, e)).map((e) => e.erc20TokenAddress), { toEvents: o, fromEvents: c, latestBlock: l } = await this.getEvents(e, n), u = [...o, ...c], { erc20Tokens: d } = await this.fetchPublicTokens(u, n, a), f = await s.hideSpamsAndFetchHiddenTokensAddresses(n, d), p = d.filter((e) => !t(f, e.erc20TokenAddress));
|
|
37
|
-
await m(r.EVENTS_PUBLIC_TOKENS, (e = {}) => {
|
|
38
|
-
let n = e[i] || [], r = n.map((e) => e.erc20TokenAddress), a = p.filter((e) => !t(r, e.erc20TokenAddress));
|
|
39
|
-
n.push(...a);
|
|
40
|
-
let s = this.updateTokenIds(c, o, n), l = {
|
|
41
|
-
...e,
|
|
42
|
-
[i]: s
|
|
43
|
-
};
|
|
44
|
-
return this.fetchedTokens = l, l;
|
|
45
|
-
}), l && await this.updateLastProcessedBlock(n, e, l);
|
|
46
|
-
} catch (e) {
|
|
47
|
-
a.error("public tokens db error", e);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
async getLastProcessedBlock(e, t) {
|
|
52
|
-
return (await p(r.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS) || {})[o(t, e)] || d[e];
|
|
53
|
-
}
|
|
54
|
-
async updateLastProcessedBlock(e, t, n) {
|
|
55
|
-
await m(r.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS, (r = {}) => {
|
|
56
|
-
let i = o(t, e);
|
|
57
|
-
return {
|
|
58
|
-
...r,
|
|
59
|
-
[i]: n
|
|
60
|
-
};
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
async getEvents(e, t) {
|
|
64
|
-
try {
|
|
65
|
-
let r = u(t), i = await this.getLastProcessedBlock(t, e) + 1, a = await r.getBlockNumber(), o = n(e), s = f.zeroPadValue(o, 32), c = [], l = [];
|
|
66
|
-
for (let e = i; e <= a; e += this.chunkSize) {
|
|
67
|
-
let t = Math.min(e + this.chunkSize - 1, a), n = {
|
|
68
|
-
topics: [
|
|
69
|
-
this.transferEventTopic,
|
|
70
|
-
null,
|
|
71
|
-
s
|
|
72
|
-
],
|
|
73
|
-
fromBlock: e,
|
|
74
|
-
toBlock: t
|
|
75
|
-
}, i = {
|
|
76
|
-
topics: [
|
|
77
|
-
this.transferEventTopic,
|
|
78
|
-
s,
|
|
79
|
-
null
|
|
80
|
-
],
|
|
81
|
-
fromBlock: e,
|
|
82
|
-
toBlock: t
|
|
83
|
-
}, [o, u] = await Promise.all([r.getLogs(n), r.getLogs(i)]);
|
|
84
|
-
c.push(...o), l.push(...u);
|
|
85
|
-
}
|
|
86
|
-
return {
|
|
87
|
-
toEvents: c,
|
|
88
|
-
fromEvents: l,
|
|
89
|
-
latestBlock: a
|
|
90
|
-
};
|
|
91
|
-
} catch (n) {
|
|
92
|
-
return a.error("Error fetching events:", n, "chainId", t, "walletAddress", e), {
|
|
93
|
-
toEvents: [],
|
|
94
|
-
fromEvents: [],
|
|
95
|
-
latestBlock: void 0
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
updateTokenIds(e, t, n) {
|
|
100
|
-
let r = /* @__PURE__ */ new Map();
|
|
101
|
-
return n.forEach((e) => {
|
|
102
|
-
if (c(e) && e.tokenIds) {
|
|
103
|
-
let t = e.erc20TokenAddress.toLowerCase();
|
|
104
|
-
r.set(t, [...e.tokenIds]);
|
|
105
|
-
}
|
|
106
|
-
}), t.forEach((e) => {
|
|
107
|
-
if (e.topics.length <= 3) return;
|
|
108
|
-
let t = e.address.toLowerCase(), n = BigInt(e.topics[3]).toString();
|
|
109
|
-
r.has(t) || r.set(t, []), r.get(t)?.push(n);
|
|
110
|
-
}), e.forEach((e) => {
|
|
111
|
-
if (e.topics.length <= 3) return;
|
|
112
|
-
let t = e.address.toLowerCase(), n = r.get(t);
|
|
113
|
-
if (n?.length) {
|
|
114
|
-
let t = BigInt(e.topics[3]).toString(), r = n.indexOf(t);
|
|
115
|
-
r !== -1 && n.splice(r, 1);
|
|
116
|
-
}
|
|
117
|
-
}), n.forEach((e) => {
|
|
118
|
-
if (c(e)) {
|
|
119
|
-
let t = e.erc20TokenAddress.toLowerCase(), n = r.get(t);
|
|
120
|
-
e.tokenIds = n?.length && n.length > 0 ? n : void 0;
|
|
121
|
-
}
|
|
122
|
-
}), n;
|
|
123
|
-
}
|
|
124
|
-
async fetchPublicTokens(n, r, o) {
|
|
125
|
-
try {
|
|
126
|
-
let a = [e, ...new Set(n.map((e) => e.address))].filter((e) => e && !t(o, e));
|
|
127
|
-
return a.length ? { erc20Tokens: (await i.tokensInfoCall(r, a)).filter((e) => !!e) } : { erc20Tokens: [] };
|
|
128
|
-
} catch (e) {
|
|
129
|
-
return a.error("Error fetching public tokens:", e), { erc20Tokens: [] };
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}();
|
|
133
|
-
//#endregion
|
|
134
|
-
export { g as eventsPublicTokensDB };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../error-handling/logger.cjs`),n=require(`../../functions/utils/string.utils.cjs`),r=require(`./AlchemyPublicTokensDB.cjs`),i=require(`./EventsPublicTokensDB.cjs`),a=require(`./ArcPublicTokensDB.cjs`),o=require(`./TronPublicTokensDB.cjs`),s=require(`./TempoPublicTokensDB.cjs`);var c=class{useAlternativeDB={};async getPublicTokens(t,c){let l=n.getStateKey(c,t);return this.useAlternativeDB[l]?i.eventsPublicTokensDB.getPublicTokens(t,c):t===e.chainIds.arcTestnet?a.arcPublicTokensDB.getPublicTokens(c):e.isTronLike(t)?o.tronPublicTokensDB.getPublicTokens(c,t):e.isTempo(t)?s.tempoPublicTokensDB.getPublicTokens(c,t):r.alchemyPublicTokensDB.getPublicTokens(t,c)}async getFetchedTokens(t,c){let l=n.getStateKey(c,t);return this.useAlternativeDB[l]?i.eventsPublicTokensDB.getFetchedTokens(t,c):t===e.chainIds.arcTestnet?a.arcPublicTokensDB.getFetchedTokens(c):e.isTronLike(t)?o.tronPublicTokensDB.getFetchedTokens(c,t):e.isTempo(t)?s.tempoPublicTokensDB.getFetchedTokens(c,t):r.alchemyPublicTokensDB.getFetchedTokens(t,c)}async fetchAndUpdatePublicTokens(c,l){let u=n.getStateKey(c,l);try{l===e.chainIds.arcTestnet?await a.arcPublicTokensDB.fetchAndUpdatePublicTokens(c):e.isTronLike(l)?await o.tronPublicTokensDB.fetchAndUpdatePublicTokens(c,l):e.isTempo(l)?await s.tempoPublicTokensDB.fetchAndUpdatePublicTokens(c,l):await r.alchemyPublicTokensDB.fetchAndUpdatePublicTokens(c,l),this.useAlternativeDB[u]=!1}catch(n){if(t.Logger.error(`error`,n),e.isSolanaLike(l))return;await i.eventsPublicTokensDB.fetchAndUpdatePublicTokens(c,l),this.useAlternativeDB[u]=!0}}};new c,exports.PublicTokensDB=c;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { chainIds as e, isSolanaLike as t, isTempo as n, isTronLike as r } from "../../constants/chains.constants.mjs";
|
|
2
|
-
import { Logger as i } from "../../error-handling/logger.mjs";
|
|
3
|
-
import { getStateKey as a } from "../../functions/utils/string.utils.mjs";
|
|
4
|
-
import { alchemyPublicTokensDB as o } from "./AlchemyPublicTokensDB.mjs";
|
|
5
|
-
import { eventsPublicTokensDB as s } from "./EventsPublicTokensDB.mjs";
|
|
6
|
-
import { arcPublicTokensDB as c } from "./ArcPublicTokensDB.mjs";
|
|
7
|
-
import { tronPublicTokensDB as l } from "./TronPublicTokensDB.mjs";
|
|
8
|
-
import { tempoPublicTokensDB as u } from "./TempoPublicTokensDB.mjs";
|
|
9
|
-
//#region libs/shared/common/src/data-structures/TokenDBs/PublicTokensDB.ts
|
|
10
|
-
var d = class {
|
|
11
|
-
useAlternativeDB = {};
|
|
12
|
-
async getPublicTokens(t, i) {
|
|
13
|
-
let d = a(i, t);
|
|
14
|
-
return this.useAlternativeDB[d] ? s.getPublicTokens(t, i) : t === e.arcTestnet ? c.getPublicTokens(i) : r(t) ? l.getPublicTokens(i, t) : n(t) ? u.getPublicTokens(i, t) : o.getPublicTokens(t, i);
|
|
15
|
-
}
|
|
16
|
-
async getFetchedTokens(t, i) {
|
|
17
|
-
let d = a(i, t);
|
|
18
|
-
return this.useAlternativeDB[d] ? s.getFetchedTokens(t, i) : t === e.arcTestnet ? c.getFetchedTokens(i) : r(t) ? l.getFetchedTokens(i, t) : n(t) ? u.getFetchedTokens(i, t) : o.getFetchedTokens(t, i);
|
|
19
|
-
}
|
|
20
|
-
async fetchAndUpdatePublicTokens(d, f) {
|
|
21
|
-
let p = a(d, f);
|
|
22
|
-
try {
|
|
23
|
-
f === e.arcTestnet ? await c.fetchAndUpdatePublicTokens(d) : r(f) ? await l.fetchAndUpdatePublicTokens(d, f) : n(f) ? await u.fetchAndUpdatePublicTokens(d, f) : await o.fetchAndUpdatePublicTokens(d, f), this.useAlternativeDB[p] = !1;
|
|
24
|
-
} catch (e) {
|
|
25
|
-
if (i.error("error", e), t(f)) return;
|
|
26
|
-
await s.fetchAndUpdatePublicTokens(d, f), this.useAlternativeDB[p] = !0;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
new d();
|
|
31
|
-
//#endregion
|
|
32
|
-
export { d as PublicTokensDB };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../functions/utils/caseInsensitive.utils.cjs`),t=require(`../../types/cache.types.cjs`),n=require(`../../API/API.cjs`),r=require(`../../functions/utils/string.utils.cjs`),i=require(`./token-visibility-db.cjs`),a=require(`../../functions/utils/erc20tokenFunctions.cjs`);let o=require(`idb-keyval`);var s=class{fetchedTokens={};async getPublicTokens(e,n){let i=r.getStateKey(e,n);return a.overlayTokensWithRegistryData((await(0,o.get)(t.StorageKeys.TEMPO_PUBLIC_TOKENS))?.[i]||[],n)}async getFetchedTokens(e,t){let n=r.getStateKey(e,t);return a.overlayTokensWithRegistryData(this.fetchedTokens[n]||[],t)}async fetchAndUpdatePublicTokens(a,s){let c=r.getStateKey(a,s),l=await this.getHeldTokenAddresses(s);if(!l.length)return;let u=(await n.API.tokensInfoCall(s,l)).filter(e=>!!e),d=await i.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(s,u),f=u.filter(t=>!e.lowerCaseIncludes(d,t.erc20TokenAddress));await(0,o.update)(t.StorageKeys.TEMPO_PUBLIC_TOKENS,(e={})=>{let t={...e,[c]:f};return this.fetchedTokens=t,t})}async getHeldTokenAddresses(e){let t=await a.getErc20TokensForChainAPI(e);return Array.from(new Set(t.map(({erc20TokenAddress:e})=>e)))}},c=new s;exports.TempoPublicTokensDB=s,exports.tempoPublicTokensDB=c;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { lowerCaseIncludes as e } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
2
|
-
import { StorageKeys as t } from "../../types/cache.types.mjs";
|
|
3
|
-
import { API as n } from "../../API/API.mjs";
|
|
4
|
-
import { getStateKey as r } from "../../functions/utils/string.utils.mjs";
|
|
5
|
-
import { tokenVisibilityStorage as i } from "./token-visibility-db.mjs";
|
|
6
|
-
import { getErc20TokensForChainAPI as a, overlayTokensWithRegistryData as o } from "../../functions/utils/erc20tokenFunctions.mjs";
|
|
7
|
-
import { get as s, update as c } from "idb-keyval";
|
|
8
|
-
//#region libs/shared/common/src/data-structures/TokenDBs/TempoPublicTokensDB.ts
|
|
9
|
-
var l = class {
|
|
10
|
-
fetchedTokens = {};
|
|
11
|
-
async getPublicTokens(e, n) {
|
|
12
|
-
let i = r(e, n);
|
|
13
|
-
return o((await s(t.TEMPO_PUBLIC_TOKENS))?.[i] || [], n);
|
|
14
|
-
}
|
|
15
|
-
async getFetchedTokens(e, t) {
|
|
16
|
-
let n = r(e, t);
|
|
17
|
-
return o(this.fetchedTokens[n] || [], t);
|
|
18
|
-
}
|
|
19
|
-
async fetchAndUpdatePublicTokens(a, o) {
|
|
20
|
-
let s = r(a, o), l = await this.getHeldTokenAddresses(o);
|
|
21
|
-
if (!l.length) return;
|
|
22
|
-
let u = (await n.tokensInfoCall(o, l)).filter((e) => !!e), d = await i.hideSpamsAndFetchHiddenTokensAddresses(o, u), f = u.filter((t) => !e(d, t.erc20TokenAddress));
|
|
23
|
-
await c(t.TEMPO_PUBLIC_TOKENS, (e = {}) => {
|
|
24
|
-
let t = {
|
|
25
|
-
...e,
|
|
26
|
-
[s]: f
|
|
27
|
-
};
|
|
28
|
-
return this.fetchedTokens = t, t;
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
async getHeldTokenAddresses(e) {
|
|
32
|
-
let t = await a(e);
|
|
33
|
-
return Array.from(new Set(t.map(({ erc20TokenAddress: e }) => e)));
|
|
34
|
-
}
|
|
35
|
-
}, u = new l();
|
|
36
|
-
//#endregion
|
|
37
|
-
export { l as TempoPublicTokensDB, u as tempoPublicTokensDB };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../http/HttpClient.cjs`);require(`../http/index.cjs`);const r=require(`../../functions/utils/tron.utils.cjs`),i=require(`../../types/cache.types.cjs`),a=require(`../../API/API.cjs`),o=require(`../../functions/utils/string.utils.cjs`),s=require(`./token-visibility-db.cjs`),c=require(`../../functions/utils/erc20tokenFunctions.cjs`);let l=require(`idb-keyval`);var u=200,d=class{fetchedTokens={};async getPublicTokens(e,t){let n=o.getStateKey(e,t);return c.overlayTokensWithRegistryData((await(0,l.get)(i.StorageKeys.TRON_PUBLIC_TOKENS))?.[n]||[],t)}async getFetchedTokens(e,t){let n=o.getStateKey(e,t);return c.overlayTokensWithRegistryData(this.fetchedTokens[n]||[],t)}async fetchAndUpdatePublicTokens(e,n){let r=o.getStateKey(e,n),c=await this.getHeldTokenAddresses(e,n);if(!c.length)return;let u=(await a.API.tokensInfoCall(n,c)).filter(e=>!!e),d=await s.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(n,u),f=u.filter(e=>!t.lowerCaseIncludes(d,e.erc20TokenAddress));await(0,l.update)(i.StorageKeys.TRON_PUBLIC_TOKENS,(e={})=>{let t={...e,[r]:f};return this.fetchedTokens=t,t})}async getHeldTokenAddresses(t,i){let a=r.toTronBase58IfHex(t),o=`${r.getTronWalletRpcUrl(i)}/v1/accounts/${a}`,s=(await n.httpClient.get(o))?.data?.[0];if(!s)return this.getTokenAddressesFromTransferHistory(a,i);let c=[];return s.balance&&s.balance>0&&c.push(e.zeroAddress),(s.trc20??[]).forEach(e=>{Object.entries(e).forEach(([e,t])=>{BigInt(t)>0n&&c.push(r.addressToHexFormat(e))})}),Array.from(new Set(c))}async getTokenAddressesFromTransferHistory(e,t){let i=`${r.getTronWalletRpcUrl(t)}/v1/accounts/${e}/transactions/trc20?only_to=true&limit=${u}`,a=((await n.httpClient.get(i))?.data??[]).map(e=>e.token_info?.address).filter(e=>!!e).map(r.addressToHexFormat);return Array.from(new Set(a))}},f=new d;exports.TronPublicTokensDB=d,exports.tronPublicTokensDB=f;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { zeroAddress as e } from "../../constants/protocol.constants.mjs";
|
|
2
|
-
import { lowerCaseIncludes as t } from "../../functions/utils/caseInsensitive.utils.mjs";
|
|
3
|
-
import { httpClient as n } from "../http/HttpClient.mjs";
|
|
4
|
-
import "../http/index.mjs";
|
|
5
|
-
import { addressToHexFormat as r, getTronWalletRpcUrl as i, toTronBase58IfHex as a } from "../../functions/utils/tron.utils.mjs";
|
|
6
|
-
import { StorageKeys as o } from "../../types/cache.types.mjs";
|
|
7
|
-
import { API as s } from "../../API/API.mjs";
|
|
8
|
-
import { getStateKey as c } from "../../functions/utils/string.utils.mjs";
|
|
9
|
-
import { tokenVisibilityStorage as l } from "./token-visibility-db.mjs";
|
|
10
|
-
import { overlayTokensWithRegistryData as u } from "../../functions/utils/erc20tokenFunctions.mjs";
|
|
11
|
-
import { get as d, update as f } from "idb-keyval";
|
|
12
|
-
//#region libs/shared/common/src/data-structures/TokenDBs/TronPublicTokensDB.ts
|
|
13
|
-
var p = 200, m = class {
|
|
14
|
-
fetchedTokens = {};
|
|
15
|
-
async getPublicTokens(e, t) {
|
|
16
|
-
let n = c(e, t);
|
|
17
|
-
return u((await d(o.TRON_PUBLIC_TOKENS))?.[n] || [], t);
|
|
18
|
-
}
|
|
19
|
-
async getFetchedTokens(e, t) {
|
|
20
|
-
let n = c(e, t);
|
|
21
|
-
return u(this.fetchedTokens[n] || [], t);
|
|
22
|
-
}
|
|
23
|
-
async fetchAndUpdatePublicTokens(e, n) {
|
|
24
|
-
let r = c(e, n), i = await this.getHeldTokenAddresses(e, n);
|
|
25
|
-
if (!i.length) return;
|
|
26
|
-
let a = (await s.tokensInfoCall(n, i)).filter((e) => !!e), u = await l.hideSpamsAndFetchHiddenTokensAddresses(n, a), d = a.filter((e) => !t(u, e.erc20TokenAddress));
|
|
27
|
-
await f(o.TRON_PUBLIC_TOKENS, (e = {}) => {
|
|
28
|
-
let t = {
|
|
29
|
-
...e,
|
|
30
|
-
[r]: d
|
|
31
|
-
};
|
|
32
|
-
return this.fetchedTokens = t, t;
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
async getHeldTokenAddresses(t, o) {
|
|
36
|
-
let s = a(t), c = `${i(o)}/v1/accounts/${s}`, l = (await n.get(c))?.data?.[0];
|
|
37
|
-
if (!l) return this.getTokenAddressesFromTransferHistory(s, o);
|
|
38
|
-
let u = [];
|
|
39
|
-
return l.balance && l.balance > 0 && u.push(e), (l.trc20 ?? []).forEach((e) => {
|
|
40
|
-
Object.entries(e).forEach(([e, t]) => {
|
|
41
|
-
BigInt(t) > 0n && u.push(r(e));
|
|
42
|
-
});
|
|
43
|
-
}), Array.from(new Set(u));
|
|
44
|
-
}
|
|
45
|
-
async getTokenAddressesFromTransferHistory(e, t) {
|
|
46
|
-
let a = `${i(t)}/v1/accounts/${e}/transactions/trc20?only_to=true&limit=${p}`, o = ((await n.get(a))?.data ?? []).map((e) => e.token_info?.address).filter((e) => !!e).map(r);
|
|
47
|
-
return Array.from(new Set(o));
|
|
48
|
-
}
|
|
49
|
-
}, h = new m();
|
|
50
|
-
//#endregion
|
|
51
|
-
export { m as TronPublicTokensDB, h as tronPublicTokensDB };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`./token-visibility-db.cjs`),require(`./PrivateTokensDB.cjs`),require(`./ArcPublicTokensDB.cjs`),require(`./TronPublicTokensDB.cjs`),require(`./TempoPublicTokensDB.cjs`),require(`./PublicTokensDB.cjs`);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require(`multiformats`);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "multiformats";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=()=>window.location.reload();exports.reloadPage=e;
|