@hinkal/common 0.3.8 → 0.3.10
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 +2 -8
- 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/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.d.ts +1 -3
- 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 +6 -9
- package/common/src/data-structures/Hinkal/Hinkal.mjs +129 -160
- package/common/src/data-structures/Hinkal/IHinkal.d.ts +5 -9
- 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/hinkalBridgePrivateToPrivate.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.mjs +1 -1
- 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 +18 -18
- 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/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/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/TokenDBs/PrivateTokensDB.cjs +1 -1
- package/common/src/data-structures/TokenDBs/PrivateTokensDB.mjs +18 -19
- 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/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 +12 -12
- 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/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 +6 -6
- package/common/src/functions/utils/publicBalance.utils.cjs +1 -1
- package/common/src/functions/utils/publicBalance.utils.mjs +9 -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 -102
- 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-CIIt1CO3.js} +1 -1
- package/common/src/webworker/package.json +5 -6
- 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/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 +5 -6
- package/services/Hinkal.cjs +1 -1
- package/services/Hinkal.d.ts +6 -2
- package/services/Hinkal.mjs +9 -4
- package/types/IHinkal.d.ts +6 -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 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../functions/utils/serialize.utils.cjs`),t=require(`../../constants/vite.constants.cjs`),n=require(`../../constants/chains.constants.cjs`),r=require(`../../constants/protocol.constants.cjs`),i=require(`../../types/hinkal.types.cjs`),a=require(`../../crypto/poseidon.cjs`),o=require(`../../error-handling/error-codes.constants.cjs`),s=require(`../crypto-keys/keys.cjs`),c=require(`../../API/scheduled-transactions-calls.cjs`),l=require(`../../API/API.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../TokenDBs/PrivateTokensDB.cjs`),f=require(`../../functions/utils/erc20tokenFunctions.cjs`),p=require(`../../functions/web3/events/getShieldedBalance.cjs`),m=require(`../../functions/web3/getContractMetadata.cjs`),h=require(`../../functions/snarkjs/fetchOnChainRootHashes.cjs`),g=require(`../../functions/private-wallet/emporium.helpers.cjs`),_=require(`./hinkalDeposit.cjs`),v=require(`../../functions/utils/reloadPage.cjs`),y=require(`../../functions/utils/cacheDevice.utils.cjs`),b=require(`../../providers/SolanaProviderAdapter.cjs`),x=require(`../../functions/utils/enclave-signature-storage.cjs`),S=require(`../../functions/utils/mnemonics.cjs`);require(`../../functions/index.cjs`);const C=require(`./hinkalDepositAndWithdraw.cjs`),w=require(`./hinkalSolanaDeposit.cjs`),T=require(`./hinkalSwap.cjs`),E=require(`./hinkalWithdraw.cjs`),D=require(`../merkle-tree/MerkleTree.cjs`);require(`../merkle-tree/index.cjs`);const O=require(`./resetMerkleTrees.cjs`);require(`../../API/index.cjs`);const k=require(`../MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs`),A=require(`./hinkalPrivateWallet.cjs`),j=require(`./hinkalGetRecipientInfo.cjs`),M=require(`./hinkalSignSubAccount.cjs`),N=require(`./hinkalActionReceive.cjs`);require(`../TokenDBs/index.cjs`);const P=require(`./hinkalProoflessDeposit.cjs`),ee=require(`./hinkalProxySwap.cjs`),F=require(`./hinkalTransfer.cjs`),I=require(`./hinkalProxyToPrivate.cjs`),L=require(`../../providers/TronProviderAdapter.cjs`),R=require(`./hinkalSolanaDepositAndWithdraw.cjs`),z=require(`./hinkalSolanaWithdraw.cjs`),B=require(`./hinkalSolanaTransfer.cjs`),V=require(`./hinkalSolanaSwap.cjs`),H=require(`./hinkalSolanaProxySend.cjs`),U=require(`./hinkalSolanaProxySwap.cjs`),W=require(`./hinkalSolanaProxyShield.cjs`),G=require(`./hinkalDepositAndBridge.cjs`),K=require(`./hinkalBridgePrivateToPrivate.cjs`),q=require(`./hinkalNearDepositAndBridge.cjs`),J=require(`./hinkalClaimUtxo.cjs`),Y=require(`./hinkalSolanaProoflessDeposit.cjs`),X=require(`./hinkalSolanaClaimUtxo.cjs`),Z=require(`./hinkalWithdrawStuckUtxos.cjs`),Q=require(`../private-balances/HinkalPrivateBalanceController.cjs`);require(`../private-balances/index.cjs`);let $=require(`@solana/web3.js`);var te=class{ethereumProviderAdapter;solanaProviderAdapter;tronProviderAdapter;userKeys;legacySignature;merkleTreeHinkalByChain={};nullifiersByChain={};encryptedOutputsByChain={};commitmentsSnapshotServiceByChain={};nullifierSnapshotServiceByChain={};privateBalances=new Q.HinkalPrivateBalanceController(this);utxoUtils;lastCallState=new Map;cacheDevice;balanceFetchingMutexByChain=new Map;generateProofRemotely;disableMerkleTreeUpdates;allowParallelBalanceLocalDecryption;constructor(e){this.userKeys=new s.UserKeys(void 0),e?.tronChainOverride&&n.setHinkalTronChainId(e.tronChainOverride),n.HINKAL_SUPPORTED_CHAINS.forEach(e=>{this.merkleTreeHinkalByChain[e]=D.MerkleTree.create(a.poseidonFunction,0n),this.nullifiersByChain[e]=new Set,this.encryptedOutputsByChain[e]=[]}),this.generateProofRemotely=e?.generateProofRemotely??!0,this.utxoUtils=new k.MultiThreadedUtxoUtils,this.cacheDevice=y.createCacheDevice(e),this.disableMerkleTreeUpdates=e?.disableMerkleTreeUpdates??!1,this.allowParallelBalanceLocalDecryption=e?.allowParallelBalanceLocalDecryption??!1}enforceRateLimit(t,n,r=1e3){let i=Date.now(),a=e.CustomJSONStringify(n),o=this.lastCallState.get(t);if(o&&o.argsKey===a&&i-o.timestamp<r)throw Error(`${t} was already called with the same arguments`);this.lastCallState.set(t,{timestamp:i,argsKey:a})}getProviderAdapter(e){let t=e;t||=this.ethereumProviderAdapter?n.chainIds.ethMainnet:this.solanaProviderAdapter?n.currentSolanaChainId:n.chainIds.tronMainnet;let r;if(r=n.isSolanaLike(t)?this.solanaProviderAdapter:n.isTronLike(t)?this.tronProviderAdapter:this.ethereumProviderAdapter,!r)throw Error(`ProviderAdapter is not initialized`);return r}async initProviderAdapter(e,t){let r=n.chainIds.ethMainnet;t instanceof b.SolanaProviderAdapter?r=n.currentSolanaChainId:t instanceof L.TronProviderAdapter&&(r=n.currentTronChainId),await this.updateProviderAdapter(r,t),t.initConnector(e);let i=await t.connectAndPatchProvider(e);await t.init(i),await this.setListeners()}getSigningMessage(e=i.LoginMessageMode.SDK){switch(e){case i.LoginMessageMode.SDK:return r.SDK_SIGNING_MESSAGE;case i.LoginMessageMode.HINKAL_DAPP:default:return r.DAPP_SIGNING_MESSAGE}}async signHinkalMessage(e=i.LoginMessageMode.SDK){let t=this.getSigningMessage(e);return this.getProviderAdapter().signMessage(t)}async signSolanaLedgerMessage(){let e=new $.Transaction({blockhash:r.DETERMINISTIC_SOLANA_LEDGER_BLOCKHASH,lastValidBlockHeight:r.DETERMINISTIC_SOLANA_LEDGER_LAST_VALID_BLOCK_HEIGHT,feePayer:this.getSolanaPublicKey()}),t=await this.getProviderAdapter().signTransactionWithoutBroadcast?.(e);if(!t)throw Error(`Failed to sign transaction without broadcast`);return{signature:t.signature,txMessageForSolanaLedger:t.transactionMessageB64}}async initUserKeys(e=i.LoginMessageMode.SDK){this.userKeys=new s.UserKeys(await this.signHinkalMessage(e))}initUserKeysWithSignature(e){this.userKeys=new s.UserKeys(e)}async initUserKeysFromSeedPhrases(e){let t=S.generateHashFromSeedPhrases(e);this.userKeys=new s.UserKeys(t)}async initUserKeysWithEnclaveSignature(e=i.LoginMessageMode.SDK){if(!await this.getEthereumAddress())throw Error(`Connected address not found`);let t=this.getProviderAdapter().isSolanaLedger?.()??!1,n,r;if(t){let e=await this.signSolanaLedgerMessage();n=e.signature,r=e.txMessageForSolanaLedger}else n=await this.getProviderAdapter().signMessage(this.getSigningMessage(e));let a=await this.storeAndGetInitialSignature(n,t,r);return this.initUserKeysWithSignature(a??n),r}async storeAndGetInitialSignature(e,t=!1,n){let r=await this.getEthereumAddress();if(!r)throw Error(`Connected address not found`);return await x.storeAndGetSignatureFromEnclave(r,e,t,n)}async resetMerkle(e){this.disableMerkleTreeUpdates||(e?.every(e=>this.isSelectedNetworkSupported(e))??!0)&&await O.resetMerkleTrees(this,e)}getTronWeb(){let e=this.tronProviderAdapter;if(!e)throw Error(`Tron provider adapter not initialized`);if(!(e instanceof L.TronProviderAdapter))throw Error(`Tron provider adapter is not a TronProviderAdapter`);let t=e.getTronWeb();if(!t)throw Error(`TronWeb not available`);return t}getSupportedChains(){return this.ethereumProviderAdapter&&this.solanaProviderAdapter?n.WALLET_SUPPORTED_CHAINS:this.ethereumProviderAdapter?n.HINKAL_SUPPORTED_CHAINS.filter(e=>!n.isSolanaLike(e)&&!n.isTronLike(e)):this.solanaProviderAdapter?n.HINKAL_SUPPORTED_CHAINS.filter(e=>n.isSolanaLike(e)):this.tronProviderAdapter?[n.currentTronChainId]:[]}async waitForTransaction(e,t,n=1){return!!await this.getProviderAdapter(e).waitForTransaction(e,t,n)}getContract(e,t,n=void 0){return this.getProviderAdapter(e).getContract(e,t,n)}getContractWithFetcherByChainId(e,t,n=void 0){return m.getContractWithFetcherByChainId(e,t,n)}async signMessage(e){return await this.getProviderAdapter().signMessage(e)}async signTypedData(e,t,n){return await this.getProviderAdapter().signTypedData(e,t,n)}async signWithSubAccount(e,t,n,r){return M.hinkalSignSubAccount(e,t,n,r)}getContractWithSigner(e,t,n=``){return this.getProviderAdapter(e).getContractWithSigner(e,t,n)}getContractWithFetcher(e,t,n=``){return this.getProviderAdapter(e).getContractWithFetcher(e,t,n)}isSelectedNetworkSupported(e){return!!n.networkRegistry[e]}async switchNetwork(e){let t=this.getProviderAdapter(),r=t.getChainId(),i=r!==void 0&&n.isSameOnchainNetwork(e.chainId,r);if(!(e.chainId===r||i))try{await t.switchNetwork(e)}catch{throw Error(o.transactionErrorCodes.FAILED_TO_SWITCH_NETWORKS)}}async disconnectFromConnector(){await this.ethereumProviderAdapter?.disconnectFromConnector(),await this.solanaProviderAdapter?.disconnectFromConnector(),await this.tronProviderAdapter?.disconnectFromConnector()}async resetProviderAdapters(){this.ethereumProviderAdapter?.release(),this.solanaProviderAdapter?.release(),this.tronProviderAdapter?.release(),this.ethereumProviderAdapter=void 0,this.solanaProviderAdapter=void 0,this.tronProviderAdapter=void 0}async updateProviderAdapter(e,t){try{n.isSolanaLike(e)?(this.solanaProviderAdapter&&this.solanaProviderAdapter.release(),this.solanaProviderAdapter=t):n.isTronLike(e)?(this.tronProviderAdapter&&this.tronProviderAdapter.release(),this.tronProviderAdapter=t):(this.ethereumProviderAdapter&&this.ethereumProviderAdapter.release(),this.ethereumProviderAdapter=t)}catch(e){throw console.error(e),Error(`updateProviderAdapter failed, please try again.`)}}async setListeners(){this.ethereumProviderAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}}),this.solanaProviderAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}}),this.tronProviderAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}})}async onAccountChanged(){await this.ethereumProviderAdapter?.onAccountChanged(),await this.solanaProviderAdapter?.onAccountChanged(),await this.tronProviderAdapter?.onAccountChanged();let e=i.EventType.AccountChanged;typeof document<`u`?document?.dispatchEvent(new Event(e)):process?.emit(`message`,e,void 0)}async onChainChanged(e){e?await this.getProviderAdapter(e).onChainChanged(e):(await this.disconnectFromConnector(),v.reloadPage())}async monitorConnectedAddress(e){await l.API.monitor(await this.getEthereumAddressByChain(e))}async getBalances(e,t,n,r,i=!1,a,o=!1){return p.getShieldedBalance(this,e,t,n,r,i,a,o)}async getTotalBalance(e,n,r,i=!1,a,o=!1){let s=r??await this.getEthereumAddressByChain(e),c=n??this.userKeys,l=await this.getBalances(e,c.getShieldedPrivateKey(),c.getShieldedPublicKey(),s,i,a,o),u=t.isExtension?await d.privateTokensDB.getPrivateTokens(e,s):await f.getErc20TokensForChainAPI(e),p=[];return u.forEach(e=>{let t=e.erc20TokenAddress.toLowerCase(),n=l.get(t),r={token:e,balance:n?.balance??0n,timestamp:n?.timestamp||`0`,nfts:n?.nfts||[]};p.push(r)}),p}async getStuckShieldedBalances(e,t,n,r=!1,i=!1){return(await this.getTotalBalance(e,t,n,r,i,!0)).filter(e=>e.balance>0n)}get privateBalancesWithUSD(){return this.privateBalances.getSnapshot()}onPrivateBalancesWithUSDChange(e){return this.privateBalances.onPrivateBalancesWithUSDChange(e)}async getHinkalTreeRootHash(e){return(await h.fetchOnChainRootHashes(e)).hinkalRootHash}async resetMerkleTreesIfNecessary(e){let t=(await Promise.all((e??this.getSupportedChains()).map(async e=>{if(this.generateProofRemotely)return{chainId:e,needsReset:!1};let t=await this.getHinkalTreeRootHash(e);return{chainId:e,needsReset:BigInt(t)!==this.merkleTreeHinkalByChain[e].getRootHash()}}))).filter(e=>e.needsReset).map(e=>e.chainId);t.length>0&&(console.log(`resetting merkle tree in resetMerkleTreesIfNecessary for chains:`,t),await this.resetMerkle(t))}async getEthereumAddress(){let e=this.ethereumProviderAdapter??this.solanaProviderAdapter??this.tronProviderAdapter;if(!e)throw Error(`No provider adapter initialized`);return e.getAddress()}getEthereumAddressByChain(e){return this.getProviderAdapter(e).getAddress()}async getRandomRelay(e,t=!1){return(await l.API.getIdleRelay(e,t)).relay}getGasPrice(e){let t=this.getProviderAdapter(e);if(!t)throw Error(`Illegal State of providerAdapter in Hinkal: no providerAdapter initialized`);return t.getGasPrice(e)}getAPI(){return l.API}snapshotsClearInterval(){this.getSupportedChains().forEach(e=>{this.commitmentsSnapshotServiceByChain[e]?.intervalClear(),this.nullifierSnapshotServiceByChain[e]?.intervalClear()})}async destroy(){this.snapshotsClearInterval(),this.privateBalances.dispose(),await this.resetProviderAdapters()}getRecipientInfo(){return j.getRecipientInfo(this)}async deposit(e,t,n=!0,r=!1){return _.hinkalDeposit(this,e,t,n,r)}async depositSolana(e,t,n=!1){return w.hinkalSolanaDeposit(this,e,t,n)}async depositForOther(e,t,n,r=!0,i=!1,a){return this.enforceRateLimit(this.depositForOther.name,[e,t,n]),_.hinkalDepositForOther(this,e,t,n,r,i,a)}async depositSolanaForOther(e,t,n,r=!1,i){return this.enforceRateLimit(this.depositSolanaForOther.name,[e,t,n]),w.hinkalSolanaDepositForOther(this,e,t,n,r,i)}async depositAndWithdraw(e,t,r,i,a,o,s,c,l=!0){return n.isSolanaLike(u.validateAndGetChainId([e]))?R.hinkalSolanaDepositAndWithdraw(this,e,t,r,i,a,o,s,c):C.hinkalDepositAndWithdraw(this,e,t,r,i,a,o,s,c,l)}async claimUtxo(e,t,r,i){return n.isSolanaLike(u.validateAndGetChainId([e]))?X.hinkalSolanaClaimUtxo(this,e,t,r,i):J.hinkalClaimUtxo(this,e,t,r,i)}async depositAndBridge(e,t,n,r,i,a,o,s=!0){return G.hinkalDepositAndBridge(this,e,t,n,r,i,a,o,s)}async bridgePrivateToPrivate(e,t,n,r,i,a,o,s){return this.enforceRateLimit(this.bridgePrivateToPrivate.name,[e,t,n]),K.hinkalBridgePrivateToPrivate(this,e,t,n,r,i,a,o,s)}async checkSendTransactionStatus(e){return c.getScheduledTransactionById(e)}async nearDepositAndBridge(e,t,n,r,i,a,o,s,c){return this.enforceRateLimit(this.nearDepositAndBridge.name,[e,t,n,r]),q.hinkalNearDepositAndBridge(this,e,t,n,r,i,a,o,s,c)}async prooflessDeposit(e,t,r,a,o=!1,s=i.zeroProoflessFeeStructure,c=``,l,d=!1){return n.isSolanaLike(u.validateAndGetChainId(e))?Y.hinkalSolanaProoflessDeposit(this,e,t,r,a,o,l,d):P.hinkalProoflessDeposit(this,e,t,r,a,o,s,c,l,d)}getSolanaProgram(e){if(!this.solanaProviderAdapter)throw Error(`No provider adapter initialized`);if(!(`getSolanaProgram`in this.solanaProviderAdapter))throw Error(`Current provider adapter is not a Solana provider adapter`);return this.solanaProviderAdapter.getSolanaProgram(e)}getSolanaPublicKey(){if(!this.solanaProviderAdapter)throw Error(`No provider adapter initialized`);if(!(`getSolanaPublicKey`in this.solanaProviderAdapter))throw Error(`Current provider adapter is not a Solana provider adapter`);return this.solanaProviderAdapter.getSolanaPublicKey()}async transfer(e,t,r,i,a,o){return this.enforceRateLimit(this.transfer.name,[e,t,r]),n.isSolanaLike(u.validateAndGetChainId(e))?B.hinkalSolanaTransfer(this,e,t,r,i,a,o):F.hinkalTransfer(this,e,t,r,i,a,o)}async withdraw(e,t,r,i,a,o,s,c){return n.isSolanaLike(u.validateAndGetChainId(e))?z.hinkalSolanaWithdraw(this,e,t,r,a,o,s,c):E.hinkalWithdraw(this,e,t,r,i,a,o,s,c)}async withdrawStuckUtxos(e,t){return Z.hinkalWithdrawStuckUtxos(this,e,t)}async swap(e,t,r,i,a,o,s,c){return n.isSolanaLike(u.validateAndGetChainId(e))?this.swapSolana(e,t,i,a,o,c):T.hinkalSwap(this,e,t,r,i,a,o,s,c)}async swapSolana(e,t,n,r,i,a){let o=JSON.parse(n),s=BigInt(o.swapperAccountSalt),{instructionLists:c,addressLookupTableAccount:l}=o.data;return V.hinkalSolanaSwap(this,e,t,s,c,l,r,i,a)}async actionReceive(e,t,r,i,a,o){if(!a)throw Error(`subAccount is required`);return n.isSolanaLike(u.validateAndGetChainId(e))?W.hinkalSolanaProxyShield(this,e[0],t[0],a,void 0,!1,i?.variableRate,o):N.hinkalActionReceive(this,e,t,r,i,a,o)}async actionPrivateWallet(e,t,n,r,i,a,o,s,c,l,u=!1,d,f,p){return this.enforceRateLimit(this.actionPrivateWallet.name,[e,t,n,r,i,a,o,s,c,p]),A.hinkalPrivateWallet(this,e,t,n,r,i,a,o,s,c,l,u,d,f,p)}async proxySwap(e,t,r,i,a,o,s,c,l=!1,d,f){return n.isSolanaLike(u.validateAndGetChainId(e))?U.hinkalSolanaProxySwap(this,e,t,i,o,r,s,c,f):ee.hinkalProxySwap(this,e,t,r,i,a,o,s,c,l,d,f)}async proxyToPrivate(e,t,r,i,a,o,s){return n.isSolanaLike(u.validateAndGetChainId(e))?(this.enforceRateLimit(this.proxyToPrivate.name,[e[0],t[0],r,i]),W.hinkalSolanaProxyShield(this,e[0],t[0],r,i,!1,o?.variableRate,s)):I.hinkalProxyToPrivate(this,e,t,i,a,o,r,s)}async proxySend(e,t,r,i,a,o,s){let c=u.validateAndGetChainId(e);if(n.isSolanaLike(c))return H.hinkalSolanaProxySend(this,e[0],t[0],r,i,s);let l=g.createTransaferEmporiumOpsBatch(this,c,e.map(e=>e.erc20TokenAddress),t,i),d=e.map((e,n)=>({token:e,amount:-1n*t[n]}));return await this.actionPrivateWallet(c,[],[],[],l,d,r,a,o,void 0,void 0,void 0,s,void 0)}areMerkleTreeUpdatesDisabled(){return this.disableMerkleTreeUpdates}updateMerkleTreeUpdates(e){this.disableMerkleTreeUpdates=e}};exports.Hinkal=te;
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../functions/utils/serialize.utils.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../../types/hinkal.types.cjs`),i=require(`../../crypto/poseidon.cjs`),a=require(`../../error-handling/error-codes.constants.cjs`),o=require(`../crypto-keys/keys.cjs`),s=require(`../../API/scheduled-transactions-calls.cjs`),c=require(`../../API/API.cjs`),l=require(`../../functions/utils/token-check.utils.cjs`),u=require(`../../functions/web3/events/getShieldedBalance.cjs`),d=require(`../../functions/web3/getContractMetadata.cjs`),f=require(`../../functions/snarkjs/fetchOnChainRootHashes.cjs`),p=require(`./hinkalDeposit.cjs`),m=require(`../../functions/utils/cacheDevice.utils.cjs`),h=require(`../../providers/SolanaProviderAdapter.cjs`),g=require(`../../functions/utils/enclave-signature-storage.cjs`),_=require(`../../functions/utils/mnemonics.cjs`),v=require(`./hinkalDepositAndWithdraw.cjs`),y=require(`./hinkalSolanaDeposit.cjs`),b=require(`./hinkalSwap.cjs`),x=require(`./hinkalWithdraw.cjs`),S=require(`../merkle-tree/MerkleTree.cjs`);require(`../merkle-tree/index.cjs`);const C=require(`./resetMerkleTrees.cjs`);require(`../../API/index.cjs`);const w=require(`../MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs`),T=require(`./hinkalPrivateWallet.cjs`),E=require(`./hinkalGetRecipientInfo.cjs`),D=require(`./hinkalSignSubAccount.cjs`),O=require(`./hinkalActionReceive.cjs`),k=require(`./hinkalProoflessDeposit.cjs`),A=require(`./hinkalProxySwap.cjs`),j=require(`./hinkalTransfer.cjs`),M=require(`./hinkalProxyToPrivate.cjs`),N=require(`../../providers/TronProviderAdapter.cjs`),P=require(`./hinkalSolanaDepositAndWithdraw.cjs`),F=require(`./hinkalSolanaWithdraw.cjs`),I=require(`./hinkalSolanaTransfer.cjs`),L=require(`./hinkalSolanaSwap.cjs`),R=require(`./hinkalSolanaProxySwap.cjs`),z=require(`./hinkalSolanaProxyShield.cjs`),B=require(`./hinkalDepositAndBridge.cjs`),V=require(`./hinkalBridgePrivateToPrivate.cjs`),H=require(`./hinkalNearDepositAndBridge.cjs`),U=require(`./hinkalClaimUtxo.cjs`),W=require(`./hinkalSolanaProoflessDeposit.cjs`),G=require(`./hinkalSolanaClaimUtxo.cjs`),K=require(`./hinkalWithdrawStuckUtxos.cjs`),q=require(`../private-balances/HinkalPrivateBalanceController.cjs`);require(`../private-balances/index.cjs`);const J=require(`./hinkalProxySend.cjs`);let Y=require(`@solana/web3.js`);var X=class{ethereumProviderAdapter;solanaProviderAdapter;tronProviderAdapter;userKeys;legacySignature;merkleTreeHinkalByChain={};nullifiersByChain={};encryptedOutputsByChain={};commitmentsSnapshotServiceByChain={};nullifierSnapshotServiceByChain={};privateBalances=new q.HinkalPrivateBalanceController(this);utxoUtils;lastCallState=new Map;cacheDevice;balanceFetchingMutexByChain=new Map;generateProofRemotely;disableMerkleTreeUpdates;allowParallelBalanceLocalDecryption;constructor(e){this.userKeys=new o.UserKeys(void 0),e?.tronChainOverride&&t.setHinkalTronChainId(e.tronChainOverride),t.HINKAL_SUPPORTED_CHAINS.forEach(e=>{this.merkleTreeHinkalByChain[e]=S.MerkleTree.create(i.poseidonFunction,0n),this.nullifiersByChain[e]=new Set,this.encryptedOutputsByChain[e]=[]}),this.generateProofRemotely=e?.generateProofRemotely??!0,this.utxoUtils=new w.MultiThreadedUtxoUtils,this.cacheDevice=m.createCacheDevice(e),this.disableMerkleTreeUpdates=e?.disableMerkleTreeUpdates??!1,this.allowParallelBalanceLocalDecryption=e?.allowParallelBalanceLocalDecryption??!1}enforceRateLimit(t,n,r=1e3){let i=Date.now(),a=e.CustomJSONStringify(n),o=this.lastCallState.get(t);if(o&&o.argsKey===a&&i-o.timestamp<r)throw Error(`${t} was already called with the same arguments`);this.lastCallState.set(t,{timestamp:i,argsKey:a})}getProviderAdapter(e){let n=e;n||=this.ethereumProviderAdapter?t.chainIds.ethMainnet:this.solanaProviderAdapter?t.currentSolanaChainId:t.chainIds.tronMainnet;let r;if(r=t.isSolanaLike(n)?this.solanaProviderAdapter:t.isTronLike(n)?this.tronProviderAdapter:this.ethereumProviderAdapter,!r)throw Error(`ProviderAdapter is not initialized`);return r}async initProviderAdapter(e,n){let r=t.chainIds.ethMainnet;n instanceof h.SolanaProviderAdapter?r=t.currentSolanaChainId:n instanceof N.TronProviderAdapter&&(r=t.currentTronChainId),await this.updateProviderAdapter(r,n),n.initConnector(e);let i=await n.connectAndPatchProvider(e);await n.init(i),await this.setListeners()}getSigningMessage(e=r.LoginMessageMode.SDK){switch(e){case r.LoginMessageMode.SDK:return n.SDK_SIGNING_MESSAGE;case r.LoginMessageMode.HINKAL_DAPP:default:return n.DAPP_SIGNING_MESSAGE}}async signHinkalMessage(e=r.LoginMessageMode.SDK){let t=this.getSigningMessage(e);return this.getProviderAdapter().signMessage(t)}async signSolanaLedgerMessage(){let e=new Y.Transaction({blockhash:n.DETERMINISTIC_SOLANA_LEDGER_BLOCKHASH,lastValidBlockHeight:n.DETERMINISTIC_SOLANA_LEDGER_LAST_VALID_BLOCK_HEIGHT,feePayer:this.getSolanaPublicKey()}),t=await this.getProviderAdapter().signTransactionWithoutBroadcast?.(e);if(!t)throw Error(`Failed to sign transaction without broadcast`);return t}async initUserKeys(e=r.LoginMessageMode.SDK){this.userKeys=new o.UserKeys(await this.signHinkalMessage(e))}initUserKeysWithSignature(e){this.userKeys=new o.UserKeys(e)}async initUserKeysFromSeedPhrases(e){let t=_.generateHashFromSeedPhrases(e);this.userKeys=new o.UserKeys(t)}async initUserKeysWithEnclaveSignature(e=r.LoginMessageMode.SDK){if(!await this.getEthereumAddress())throw Error(`Connected address not found`);let t=this.getProviderAdapter().isSolanaLedger?.()?await this.signSolanaLedgerMessage():await this.getProviderAdapter().signMessage(this.getSigningMessage(e)),n=await this.storeAndGetInitialSignature(t);this.initUserKeysWithSignature(n??t)}async storeAndGetInitialSignature(e){let t=await this.getEthereumAddress();if(!t)throw Error(`Connected address not found`);return g.storeAndGetSignatureFromEnclave(t,e)}async resetMerkle(e){this.disableMerkleTreeUpdates||(e?.every(e=>this.isSelectedNetworkSupported(e))??!0)&&await C.resetMerkleTrees(this,e)}getTronWeb(){let e=this.tronProviderAdapter;if(!e)throw Error(`Tron provider adapter not initialized`);if(!(e instanceof N.TronProviderAdapter))throw Error(`Tron provider adapter is not a TronProviderAdapter`);let t=e.getTronWeb();if(!t)throw Error(`TronWeb not available`);return t}getSupportedChains(){return this.ethereumProviderAdapter&&this.solanaProviderAdapter?t.WALLET_SUPPORTED_CHAINS:this.ethereumProviderAdapter?t.HINKAL_SUPPORTED_CHAINS.filter(e=>!t.isSolanaLike(e)&&!t.isTronLike(e)):this.solanaProviderAdapter?t.HINKAL_SUPPORTED_CHAINS.filter(e=>t.isSolanaLike(e)):this.tronProviderAdapter?[t.currentTronChainId]:[]}async waitForTransaction(e,t,n=1){return!!await this.getProviderAdapter(e).waitForTransaction(e,t,n)}getContract(e,t,n=void 0){return this.getProviderAdapter(e).getContract(e,t,n)}getContractWithFetcherByChainId(e,t,n=void 0){return d.getContractWithFetcherByChainId(e,t,n)}async signMessage(e){return await this.getProviderAdapter().signMessage(e)}async signTypedData(e,t,n){return await this.getProviderAdapter().signTypedData(e,t,n)}async signWithSubAccount(e,t,n,r){return D.hinkalSignSubAccount(e,t,n,r)}getContractWithSigner(e,t,n=``){return this.getProviderAdapter(e).getContractWithSigner(e,t,n)}getContractWithFetcher(e,t,n=``){return this.getProviderAdapter(e).getContractWithFetcher(e,t,n)}isSelectedNetworkSupported(e){return!!t.networkRegistry[e]}async switchNetwork(e){let n=this.getProviderAdapter(),r=n.getChainId(),i=r!==void 0&&t.isSameOnchainNetwork(e.chainId,r);if(!(e.chainId===r||i))try{await n.switchNetwork(e)}catch{throw Error(a.transactionErrorCodes.FAILED_TO_SWITCH_NETWORKS)}}async disconnectFromConnector(){await this.ethereumProviderAdapter?.disconnectFromConnector(),await this.solanaProviderAdapter?.disconnectFromConnector(),await this.tronProviderAdapter?.disconnectFromConnector()}async resetProviderAdapters(){this.ethereumProviderAdapter?.release(),this.solanaProviderAdapter?.release(),this.tronProviderAdapter?.release(),this.ethereumProviderAdapter=void 0,this.solanaProviderAdapter=void 0,this.tronProviderAdapter=void 0}async updateProviderAdapter(e,n){try{t.isSolanaLike(e)?(this.solanaProviderAdapter&&this.solanaProviderAdapter.release(),this.solanaProviderAdapter=n):t.isTronLike(e)?(this.tronProviderAdapter&&this.tronProviderAdapter.release(),this.tronProviderAdapter=n):(this.ethereumProviderAdapter&&this.ethereumProviderAdapter.release(),this.ethereumProviderAdapter=n)}catch(e){throw console.error(e),Error(`updateProviderAdapter failed, please try again.`)}}async setListeners(){this.ethereumProviderAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}}),this.solanaProviderAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}}),this.tronProviderAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}})}async onAccountChanged(){await this.ethereumProviderAdapter?.onAccountChanged(),await this.solanaProviderAdapter?.onAccountChanged(),await this.tronProviderAdapter?.onAccountChanged();let e=r.EventType.AccountChanged;typeof document<`u`?document?.dispatchEvent(new Event(e)):process?.emit(`message`,e,void 0)}async onChainChanged(e){e?await this.getProviderAdapter(e).onChainChanged(e):await this.disconnectFromConnector()}async monitorConnectedAddress(e){await c.API.monitor(await this.getEthereumAddressByChain(e))}async getTotalBalances(e,t,n,r=!1,i,a=!1){let o=t??this.userKeys,s=new Map(await Promise.all(e.map(async e=>[e,n??await this.getEthereumAddressByChain(e)])));return u.getShieldedBalances(this,s,o.getShieldedPrivateKey(),o.getShieldedPublicKey(),r,i,a)}async getStuckShieldedBalances(e,t,n,r=!1,i=!1){let a=await this.getTotalBalances(e,t,n,r,i,!0);return new Map([...a].map(([e,t])=>[e,t.filter(e=>e.balance>0n)]))}get privateBalancesWithUSD(){return this.privateBalances.getSnapshot()}onPrivateBalancesWithUSDChange(e){return this.privateBalances.onPrivateBalancesWithUSDChange(e)}async getHinkalTreeRootHash(e){return(await f.fetchOnChainRootHashes(e)).hinkalRootHash}async resetMerkleTreesIfNecessary(e){let t=(await Promise.all((e??this.getSupportedChains()).map(async e=>{if(this.generateProofRemotely)return{chainId:e,needsReset:!1};let t=await this.getHinkalTreeRootHash(e);return{chainId:e,needsReset:BigInt(t)!==this.merkleTreeHinkalByChain[e].getRootHash()}}))).filter(e=>e.needsReset).map(e=>e.chainId);t.length>0&&(console.log(`resetting merkle tree in resetMerkleTreesIfNecessary for chains:`,t),await this.resetMerkle(t))}async getEthereumAddress(){let e=this.ethereumProviderAdapter??this.solanaProviderAdapter??this.tronProviderAdapter;if(!e)throw Error(`No provider adapter initialized`);return e.getAddress()}getEthereumAddressByChain(e){return this.getProviderAdapter(e).getAddress()}async getRandomRelay(e,t=!1){return(await c.API.getIdleRelay(e,t)).relay}getGasPrice(e){let t=this.getProviderAdapter(e);if(!t)throw Error(`Illegal State of providerAdapter in Hinkal: no providerAdapter initialized`);return t.getGasPrice(e)}getAPI(){return c.API}snapshotsClearInterval(){this.getSupportedChains().forEach(e=>{this.commitmentsSnapshotServiceByChain[e]?.intervalClear(),this.nullifierSnapshotServiceByChain[e]?.intervalClear()})}async destroy(){this.snapshotsClearInterval(),this.privateBalances.dispose(),await this.resetProviderAdapters()}getRecipientInfo(){return E.getRecipientInfo(this)}async deposit(e,t,n=!0,r=!1){return p.hinkalDeposit(this,e,t,n,r)}async depositSolana(e,t,n=!1){return y.hinkalSolanaDeposit(this,e,t,n)}async depositForOther(e,t,n,r=!0,i=!1,a){return this.enforceRateLimit(this.depositForOther.name,[e,t,n]),p.hinkalDepositForOther(this,e,t,n,r,i,a)}async depositSolanaForOther(e,t,n,r=!1,i){return this.enforceRateLimit(this.depositSolanaForOther.name,[e,t,n]),y.hinkalSolanaDepositForOther(this,e,t,n,r,i)}async depositAndWithdraw(e,n,r,i,a,o,s,c,u=!0){return t.isSolanaLike(l.validateAndGetChainId([e]))?P.hinkalSolanaDepositAndWithdraw(this,e,n,r,i,a,o,s,c):v.hinkalDepositAndWithdraw(this,e,n,r,i,a,o,s,c,u)}async claimUtxo(e,n,r,i){return t.isSolanaLike(l.validateAndGetChainId([e]))?G.hinkalSolanaClaimUtxo(this,e,n,r,i):U.hinkalClaimUtxo(this,e,n,r,i)}async depositAndBridge(e,t,n,r,i,a,o,s=!0){return B.hinkalDepositAndBridge(this,e,t,n,r,i,a,o,s)}async bridgePrivateToPrivate(e,t,n,r,i,a,o,s){return this.enforceRateLimit(this.bridgePrivateToPrivate.name,[e,t,n]),V.hinkalBridgePrivateToPrivate(this,e,t,n,r,i,a,o,s)}async checkSendTransactionStatus(e){return s.getScheduledTransactionById(e)}async nearDepositAndBridge(e,t,n,r,i,a,o,s,c){return this.enforceRateLimit(this.nearDepositAndBridge.name,[e,t,n,r]),H.hinkalNearDepositAndBridge(this,e,t,n,r,i,a,o,s,c)}async prooflessDeposit(e,n,i,a,o=!1,s=r.zeroProoflessFeeStructure,c=``,u,d=!1){return t.isSolanaLike(l.validateAndGetChainId(e))?W.hinkalSolanaProoflessDeposit(this,e,n,i,a,o,u,d):k.hinkalProoflessDeposit(this,e,n,i,a,o,s,c,u,d)}getSolanaProgram(e){if(!this.solanaProviderAdapter)throw Error(`No provider adapter initialized`);if(!(`getSolanaProgram`in this.solanaProviderAdapter))throw Error(`Current provider adapter is not a Solana provider adapter`);return this.solanaProviderAdapter.getSolanaProgram(e)}getSolanaPublicKey(){if(!this.solanaProviderAdapter)throw Error(`No provider adapter initialized`);if(!(`getSolanaPublicKey`in this.solanaProviderAdapter))throw Error(`Current provider adapter is not a Solana provider adapter`);return this.solanaProviderAdapter.getSolanaPublicKey()}async transfer(e,n,r,i,a,o){return this.enforceRateLimit(this.transfer.name,[e,n,r]),t.isSolanaLike(l.validateAndGetChainId(e))?I.hinkalSolanaTransfer(this,e,n,r,i,a,o):j.hinkalTransfer(this,e,n,r,i,a,o)}async withdraw(e,n,r,i,a,o,s,c){return t.isSolanaLike(l.validateAndGetChainId(e))?F.hinkalSolanaWithdraw(this,e,n,r,a,o,s,c):x.hinkalWithdraw(this,e,n,r,i,a,o,s,c)}async withdrawStuckUtxos(e,t){return K.hinkalWithdrawStuckUtxos(this,e,t)}async swap(e,n,r,i,a,o,s,c){return t.isSolanaLike(l.validateAndGetChainId(e))?this.swapSolana(e,n,i,a,o,c):b.hinkalSwap(this,e,n,r,i,a,o,s,c)}async swapSolana(e,t,n,r,i,a){let o=JSON.parse(n),s=BigInt(o.swapperAccountSalt),{instructionLists:c,addressLookupTableAccount:l}=o.data;return L.hinkalSolanaSwap(this,e,t,s,c,l,r,i,a)}async actionReceive(e,n,r,i,a,o){if(!a)throw Error(`subAccount is required`);return t.isSolanaLike(l.validateAndGetChainId(e))?z.hinkalSolanaProxyShield(this,e[0],n[0],a,void 0,!1,i?.variableRate,o):O.hinkalActionReceive(this,e,n,r,i,a,o)}async actionPrivateWallet(e,t,n,r,i,a,o,s,c,l,u=!1,d,f,p){return this.enforceRateLimit(this.actionPrivateWallet.name,[e,t,n,r,i,a,o,s,c,p]),T.hinkalPrivateWallet(this,e,t,n,r,i,a,o,s,c,l,u,d,f,p)}async proxySwap(e,n,r,i,a,o,s,c,u=!1,d,f){return t.isSolanaLike(l.validateAndGetChainId(e))?R.hinkalSolanaProxySwap(this,e,n,i,o,r,s,c,f):A.hinkalProxySwap(this,e,n,r,i,a,o,s,c,u,d,f)}async proxyToPrivate(e,n,r,i,a,o,s){return t.isSolanaLike(l.validateAndGetChainId(e))?(this.enforceRateLimit(this.proxyToPrivate.name,[e[0],n[0],r,i]),z.hinkalSolanaProxyShield(this,e[0],n[0],r,i,!1,o?.variableRate,s)):M.hinkalProxyToPrivate(this,e,n,i,a,o,r,s)}async proxySend(e,t,n,r,i,a,o){return J.hinkalProxySend(this,e,t,n,r,i,a,o)}areMerkleTreeUpdatesDisabled(){return this.disableMerkleTreeUpdates}updateMerkleTreeUpdates(e){this.disableMerkleTreeUpdates=e}};exports.Hinkal=X;
|
|
@@ -50,15 +50,12 @@ export declare class Hinkal<ConnectorType> implements IHinkal {
|
|
|
50
50
|
initProviderAdapter(connector: ConnectorType, providerAdapter: IProviderAdapter<ConnectorType>): Promise<void>;
|
|
51
51
|
getSigningMessage(mode?: LoginMessageMode): string;
|
|
52
52
|
signHinkalMessage(mode?: LoginMessageMode): Promise<string>;
|
|
53
|
-
signSolanaLedgerMessage(): Promise<
|
|
54
|
-
signature: string;
|
|
55
|
-
txMessageForSolanaLedger: string;
|
|
56
|
-
}>;
|
|
53
|
+
signSolanaLedgerMessage(): Promise<string>;
|
|
57
54
|
initUserKeys(mode?: LoginMessageMode): Promise<void>;
|
|
58
55
|
initUserKeysWithSignature(signature: string): void;
|
|
59
56
|
initUserKeysFromSeedPhrases(seedPhrases: string[]): Promise<void>;
|
|
60
|
-
initUserKeysWithEnclaveSignature(signInMode?: LoginMessageMode): Promise<
|
|
61
|
-
storeAndGetInitialSignature(authSignature: string
|
|
57
|
+
initUserKeysWithEnclaveSignature(signInMode?: LoginMessageMode): Promise<void>;
|
|
58
|
+
storeAndGetInitialSignature(authSignature: string): Promise<string>;
|
|
62
59
|
resetMerkle(chains?: number[]): Promise<void>;
|
|
63
60
|
getTronWeb(): import('tronweb').TronWeb;
|
|
64
61
|
getSupportedChains(): number[];
|
|
@@ -79,9 +76,9 @@ export declare class Hinkal<ConnectorType> implements IHinkal {
|
|
|
79
76
|
private onAccountChanged;
|
|
80
77
|
private onChainChanged;
|
|
81
78
|
monitorConnectedAddress(chainId: number): Promise<void>;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
getStuckShieldedBalances(
|
|
79
|
+
/** Serves every chain from one enclave request. Chains that failed are omitted from the result. */
|
|
80
|
+
getTotalBalances(_chainIds: number[], _userKeys?: UserKeys, _ethAddress?: string, resetCacheBefore?: boolean, updateTokensListBefore?: boolean, useBlockedUtxos?: boolean): Promise<Map<number, TokenBalance[]>>;
|
|
81
|
+
getStuckShieldedBalances(_chainIds: number[], _userKeys?: UserKeys, _ethAddress?: string, resetCacheBefore?: boolean, updateTokensListBefore?: boolean): Promise<Map<number, TokenBalance[]>>;
|
|
85
82
|
get privateBalancesWithUSD(): PrivateBalancesState;
|
|
86
83
|
onPrivateBalancesWithUSDChange(callback: (state: PrivateBalancesState) => void): () => void;
|
|
87
84
|
getHinkalTreeRootHash(chainId: number): Promise<bigint>;
|
|
@@ -1,65 +1,58 @@
|
|
|
1
1
|
import { CustomJSONStringify as e } from "../../functions/utils/serialize.utils.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { poseidonFunction as ee } from "../../crypto/poseidon.mjs";
|
|
2
|
+
import { HINKAL_SUPPORTED_CHAINS as t, WALLET_SUPPORTED_CHAINS as n, chainIds as r, currentSolanaChainId as i, currentTronChainId as a, isSameOnchainNetwork as o, isSolanaLike as s, isTronLike as c, networkRegistry as l, setHinkalTronChainId as u } from "../../constants/chains.constants.mjs";
|
|
3
|
+
import { DAPP_SIGNING_MESSAGE as d, DETERMINISTIC_SOLANA_LEDGER_BLOCKHASH as f, DETERMINISTIC_SOLANA_LEDGER_LAST_VALID_BLOCK_HEIGHT as p, SDK_SIGNING_MESSAGE as m } from "../../constants/protocol.constants.mjs";
|
|
4
|
+
import { EventType as ee, LoginMessageMode as h, zeroProoflessFeeStructure as g } from "../../types/hinkal.types.mjs";
|
|
5
|
+
import { poseidonFunction as _ } from "../../crypto/poseidon.mjs";
|
|
7
6
|
import { transactionErrorCodes as te } from "../../error-handling/error-codes.constants.mjs";
|
|
8
|
-
import { UserKeys as
|
|
9
|
-
import { getScheduledTransactionById as
|
|
10
|
-
import { API as
|
|
11
|
-
import { validateAndGetChainId as
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import "
|
|
25
|
-
import { hinkalDepositAndWithdraw as I } from "./hinkalDepositAndWithdraw.mjs";
|
|
26
|
-
import { hinkalSolanaDeposit as L, hinkalSolanaDepositForOther as R } from "./hinkalSolanaDeposit.mjs";
|
|
27
|
-
import { hinkalSwap as z } from "./hinkalSwap.mjs";
|
|
28
|
-
import { hinkalWithdraw as B } from "./hinkalWithdraw.mjs";
|
|
29
|
-
import { MerkleTree as V } from "../merkle-tree/MerkleTree.mjs";
|
|
7
|
+
import { UserKeys as v } from "../crypto-keys/keys.mjs";
|
|
8
|
+
import { getScheduledTransactionById as y } from "../../API/scheduled-transactions-calls.mjs";
|
|
9
|
+
import { API as b } from "../../API/API.mjs";
|
|
10
|
+
import { validateAndGetChainId as x } from "../../functions/utils/token-check.utils.mjs";
|
|
11
|
+
import { getShieldedBalances as S } from "../../functions/web3/events/getShieldedBalance.mjs";
|
|
12
|
+
import { getContractWithFetcherByChainId as C } from "../../functions/web3/getContractMetadata.mjs";
|
|
13
|
+
import { fetchOnChainRootHashes as w } from "../../functions/snarkjs/fetchOnChainRootHashes.mjs";
|
|
14
|
+
import { hinkalDeposit as T, hinkalDepositForOther as E } from "./hinkalDeposit.mjs";
|
|
15
|
+
import { createCacheDevice as D } from "../../functions/utils/cacheDevice.utils.mjs";
|
|
16
|
+
import { SolanaProviderAdapter as O } from "../../providers/SolanaProviderAdapter.mjs";
|
|
17
|
+
import { storeAndGetSignatureFromEnclave as k } from "../../functions/utils/enclave-signature-storage.mjs";
|
|
18
|
+
import { generateHashFromSeedPhrases as A } from "../../functions/utils/mnemonics.mjs";
|
|
19
|
+
import { hinkalDepositAndWithdraw as j } from "./hinkalDepositAndWithdraw.mjs";
|
|
20
|
+
import { hinkalSolanaDeposit as M, hinkalSolanaDepositForOther as N } from "./hinkalSolanaDeposit.mjs";
|
|
21
|
+
import { hinkalSwap as P } from "./hinkalSwap.mjs";
|
|
22
|
+
import { hinkalWithdraw as F } from "./hinkalWithdraw.mjs";
|
|
23
|
+
import { MerkleTree as I } from "../merkle-tree/MerkleTree.mjs";
|
|
30
24
|
import "../merkle-tree/index.mjs";
|
|
31
|
-
import { resetMerkleTrees as
|
|
25
|
+
import { resetMerkleTrees as L } from "./resetMerkleTrees.mjs";
|
|
32
26
|
import "../../API/index.mjs";
|
|
33
|
-
import { MultiThreadedUtxoUtils as
|
|
34
|
-
import { hinkalPrivateWallet as
|
|
35
|
-
import { getRecipientInfo as
|
|
36
|
-
import { hinkalSignSubAccount as
|
|
37
|
-
import { hinkalActionReceive as
|
|
38
|
-
import "
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
46
|
-
import {
|
|
47
|
-
import {
|
|
48
|
-
import { hinkalSolanaProxySend as se } from "./hinkalSolanaProxySend.mjs";
|
|
49
|
-
import { hinkalSolanaProxySwap as ce } from "./hinkalSolanaProxySwap.mjs";
|
|
27
|
+
import { MultiThreadedUtxoUtils as R } from "../MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs";
|
|
28
|
+
import { hinkalPrivateWallet as ne } from "./hinkalPrivateWallet.mjs";
|
|
29
|
+
import { getRecipientInfo as z } from "./hinkalGetRecipientInfo.mjs";
|
|
30
|
+
import { hinkalSignSubAccount as B } from "./hinkalSignSubAccount.mjs";
|
|
31
|
+
import { hinkalActionReceive as V } from "./hinkalActionReceive.mjs";
|
|
32
|
+
import { hinkalProoflessDeposit as H } from "./hinkalProoflessDeposit.mjs";
|
|
33
|
+
import { hinkalProxySwap as U } from "./hinkalProxySwap.mjs";
|
|
34
|
+
import { hinkalTransfer as W } from "./hinkalTransfer.mjs";
|
|
35
|
+
import { hinkalProxyToPrivate as G } from "./hinkalProxyToPrivate.mjs";
|
|
36
|
+
import { TronProviderAdapter as K } from "../../providers/TronProviderAdapter.mjs";
|
|
37
|
+
import { hinkalSolanaDepositAndWithdraw as q } from "./hinkalSolanaDepositAndWithdraw.mjs";
|
|
38
|
+
import { hinkalSolanaWithdraw as J } from "./hinkalSolanaWithdraw.mjs";
|
|
39
|
+
import { hinkalSolanaTransfer as Y } from "./hinkalSolanaTransfer.mjs";
|
|
40
|
+
import { hinkalSolanaSwap as X } from "./hinkalSolanaSwap.mjs";
|
|
41
|
+
import { hinkalSolanaProxySwap as Z } from "./hinkalSolanaProxySwap.mjs";
|
|
50
42
|
import { hinkalSolanaProxyShield as Q } from "./hinkalSolanaProxyShield.mjs";
|
|
51
|
-
import { hinkalDepositAndBridge as
|
|
52
|
-
import { hinkalBridgePrivateToPrivate as
|
|
53
|
-
import { hinkalNearDepositAndBridge as
|
|
54
|
-
import { hinkalClaimUtxo as
|
|
55
|
-
import { hinkalSolanaProoflessDeposit as
|
|
56
|
-
import { hinkalSolanaClaimUtxo as
|
|
57
|
-
import { hinkalWithdrawStuckUtxos as
|
|
58
|
-
import { HinkalPrivateBalanceController as
|
|
43
|
+
import { hinkalDepositAndBridge as re } from "./hinkalDepositAndBridge.mjs";
|
|
44
|
+
import { hinkalBridgePrivateToPrivate as ie } from "./hinkalBridgePrivateToPrivate.mjs";
|
|
45
|
+
import { hinkalNearDepositAndBridge as ae } from "./hinkalNearDepositAndBridge.mjs";
|
|
46
|
+
import { hinkalClaimUtxo as oe } from "./hinkalClaimUtxo.mjs";
|
|
47
|
+
import { hinkalSolanaProoflessDeposit as $ } from "./hinkalSolanaProoflessDeposit.mjs";
|
|
48
|
+
import { hinkalSolanaClaimUtxo as se } from "./hinkalSolanaClaimUtxo.mjs";
|
|
49
|
+
import { hinkalWithdrawStuckUtxos as ce } from "./hinkalWithdrawStuckUtxos.mjs";
|
|
50
|
+
import { HinkalPrivateBalanceController as le } from "../private-balances/HinkalPrivateBalanceController.mjs";
|
|
59
51
|
import "../private-balances/index.mjs";
|
|
60
|
-
import {
|
|
52
|
+
import { hinkalProxySend as ue } from "./hinkalProxySend.mjs";
|
|
53
|
+
import { Transaction as de } from "@solana/web3.js";
|
|
61
54
|
//#region libs/shared/common/src/data-structures/Hinkal/Hinkal.ts
|
|
62
|
-
var
|
|
55
|
+
var fe = class {
|
|
63
56
|
ethereumProviderAdapter;
|
|
64
57
|
solanaProviderAdapter;
|
|
65
58
|
tronProviderAdapter;
|
|
@@ -70,7 +63,7 @@ var _e = class {
|
|
|
70
63
|
encryptedOutputsByChain = {};
|
|
71
64
|
commitmentsSnapshotServiceByChain = {};
|
|
72
65
|
nullifierSnapshotServiceByChain = {};
|
|
73
|
-
privateBalances = new
|
|
66
|
+
privateBalances = new le(this);
|
|
74
67
|
utxoUtils;
|
|
75
68
|
lastCallState = /* @__PURE__ */ new Map();
|
|
76
69
|
cacheDevice;
|
|
@@ -79,9 +72,9 @@ var _e = class {
|
|
|
79
72
|
disableMerkleTreeUpdates;
|
|
80
73
|
allowParallelBalanceLocalDecryption;
|
|
81
74
|
constructor(e) {
|
|
82
|
-
this.userKeys = new
|
|
83
|
-
this.merkleTreeHinkalByChain[e] =
|
|
84
|
-
}), this.generateProofRemotely = e?.generateProofRemotely ?? !0, this.utxoUtils = new
|
|
75
|
+
this.userKeys = new v(void 0), e?.tronChainOverride && u(e.tronChainOverride), t.forEach((e) => {
|
|
76
|
+
this.merkleTreeHinkalByChain[e] = I.create(_, 0n), this.nullifiersByChain[e] = /* @__PURE__ */ new Set(), this.encryptedOutputsByChain[e] = [];
|
|
77
|
+
}), this.generateProofRemotely = e?.generateProofRemotely ?? !0, this.utxoUtils = new R(), this.cacheDevice = D(e), this.disableMerkleTreeUpdates = e?.disableMerkleTreeUpdates ?? !1, this.allowParallelBalanceLocalDecryption = e?.allowParallelBalanceLocalDecryption ?? !1;
|
|
85
78
|
}
|
|
86
79
|
enforceRateLimit(t, n, r = 1e3) {
|
|
87
80
|
let i = Date.now(), a = e(n), o = this.lastCallState.get(t);
|
|
@@ -93,78 +86,70 @@ var _e = class {
|
|
|
93
86
|
}
|
|
94
87
|
getProviderAdapter(e) {
|
|
95
88
|
let t = e;
|
|
96
|
-
t ||= this.ethereumProviderAdapter ?
|
|
89
|
+
t ||= this.ethereumProviderAdapter ? r.ethMainnet : this.solanaProviderAdapter ? i : r.tronMainnet;
|
|
97
90
|
let n;
|
|
98
|
-
if (n =
|
|
91
|
+
if (n = s(t) ? this.solanaProviderAdapter : c(t) ? this.tronProviderAdapter : this.ethereumProviderAdapter, !n) throw Error("ProviderAdapter is not initialized");
|
|
99
92
|
return n;
|
|
100
93
|
}
|
|
101
94
|
async initProviderAdapter(e, t) {
|
|
102
|
-
let n =
|
|
103
|
-
t instanceof
|
|
104
|
-
let
|
|
105
|
-
await t.init(
|
|
95
|
+
let n = r.ethMainnet;
|
|
96
|
+
t instanceof O ? n = i : t instanceof K && (n = a), await this.updateProviderAdapter(n, t), t.initConnector(e);
|
|
97
|
+
let o = await t.connectAndPatchProvider(e);
|
|
98
|
+
await t.init(o), await this.setListeners();
|
|
106
99
|
}
|
|
107
|
-
getSigningMessage(e =
|
|
100
|
+
getSigningMessage(e = h.SDK) {
|
|
108
101
|
switch (e) {
|
|
109
|
-
case
|
|
110
|
-
case
|
|
111
|
-
default: return
|
|
102
|
+
case h.SDK: return m;
|
|
103
|
+
case h.HINKAL_DAPP:
|
|
104
|
+
default: return d;
|
|
112
105
|
}
|
|
113
106
|
}
|
|
114
|
-
async signHinkalMessage(e =
|
|
107
|
+
async signHinkalMessage(e = h.SDK) {
|
|
115
108
|
let t = this.getSigningMessage(e);
|
|
116
109
|
return this.getProviderAdapter().signMessage(t);
|
|
117
110
|
}
|
|
118
111
|
async signSolanaLedgerMessage() {
|
|
119
|
-
let e = new
|
|
120
|
-
blockhash:
|
|
121
|
-
lastValidBlockHeight:
|
|
112
|
+
let e = new de({
|
|
113
|
+
blockhash: f,
|
|
114
|
+
lastValidBlockHeight: p,
|
|
122
115
|
feePayer: this.getSolanaPublicKey()
|
|
123
116
|
}), t = await this.getProviderAdapter().signTransactionWithoutBroadcast?.(e);
|
|
124
117
|
if (!t) throw Error("Failed to sign transaction without broadcast");
|
|
125
|
-
return
|
|
126
|
-
signature: t.signature,
|
|
127
|
-
txMessageForSolanaLedger: t.transactionMessageB64
|
|
128
|
-
};
|
|
118
|
+
return t;
|
|
129
119
|
}
|
|
130
|
-
async initUserKeys(e =
|
|
131
|
-
this.userKeys = new
|
|
120
|
+
async initUserKeys(e = h.SDK) {
|
|
121
|
+
this.userKeys = new v(await this.signHinkalMessage(e));
|
|
132
122
|
}
|
|
133
123
|
initUserKeysWithSignature(e) {
|
|
134
|
-
this.userKeys = new
|
|
124
|
+
this.userKeys = new v(e);
|
|
135
125
|
}
|
|
136
126
|
async initUserKeysFromSeedPhrases(e) {
|
|
137
|
-
let t =
|
|
138
|
-
this.userKeys = new
|
|
127
|
+
let t = A(e);
|
|
128
|
+
this.userKeys = new v(t);
|
|
139
129
|
}
|
|
140
|
-
async initUserKeysWithEnclaveSignature(e =
|
|
130
|
+
async initUserKeysWithEnclaveSignature(e = h.SDK) {
|
|
141
131
|
if (!await this.getEthereumAddress()) throw Error("Connected address not found");
|
|
142
|
-
let t = this.getProviderAdapter().isSolanaLedger?.()
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
return
|
|
149
|
-
}
|
|
150
|
-
async storeAndGetInitialSignature(e, t = !1, n) {
|
|
151
|
-
let r = await this.getEthereumAddress();
|
|
152
|
-
if (!r) throw Error("Connected address not found");
|
|
153
|
-
return await P(r, e, t, n);
|
|
132
|
+
let t = this.getProviderAdapter().isSolanaLedger?.() ? await this.signSolanaLedgerMessage() : await this.getProviderAdapter().signMessage(this.getSigningMessage(e)), n = await this.storeAndGetInitialSignature(t);
|
|
133
|
+
this.initUserKeysWithSignature(n ?? t);
|
|
134
|
+
}
|
|
135
|
+
async storeAndGetInitialSignature(e) {
|
|
136
|
+
let t = await this.getEthereumAddress();
|
|
137
|
+
if (!t) throw Error("Connected address not found");
|
|
138
|
+
return k(t, e);
|
|
154
139
|
}
|
|
155
140
|
async resetMerkle(e) {
|
|
156
|
-
this.disableMerkleTreeUpdates || (e?.every((e) => this.isSelectedNetworkSupported(e)) ?? !0) && await
|
|
141
|
+
this.disableMerkleTreeUpdates || (e?.every((e) => this.isSelectedNetworkSupported(e)) ?? !0) && await L(this, e);
|
|
157
142
|
}
|
|
158
143
|
getTronWeb() {
|
|
159
144
|
let e = this.tronProviderAdapter;
|
|
160
145
|
if (!e) throw Error("Tron provider adapter not initialized");
|
|
161
|
-
if (!(e instanceof
|
|
146
|
+
if (!(e instanceof K)) throw Error("Tron provider adapter is not a TronProviderAdapter");
|
|
162
147
|
let t = e.getTronWeb();
|
|
163
148
|
if (!t) throw Error("TronWeb not available");
|
|
164
149
|
return t;
|
|
165
150
|
}
|
|
166
151
|
getSupportedChains() {
|
|
167
|
-
return this.ethereumProviderAdapter && this.solanaProviderAdapter ?
|
|
152
|
+
return this.ethereumProviderAdapter && this.solanaProviderAdapter ? n : this.ethereumProviderAdapter ? t.filter((e) => !s(e) && !c(e)) : this.solanaProviderAdapter ? t.filter((e) => s(e)) : this.tronProviderAdapter ? [a] : [];
|
|
168
153
|
}
|
|
169
154
|
async waitForTransaction(e, t, n = 1) {
|
|
170
155
|
return !!await this.getProviderAdapter(e).waitForTransaction(e, t, n);
|
|
@@ -173,7 +158,7 @@ var _e = class {
|
|
|
173
158
|
return this.getProviderAdapter(e).getContract(e, t, n);
|
|
174
159
|
}
|
|
175
160
|
getContractWithFetcherByChainId(e, t, n = void 0) {
|
|
176
|
-
return
|
|
161
|
+
return C(e, t, n);
|
|
177
162
|
}
|
|
178
163
|
async signMessage(e) {
|
|
179
164
|
return await this.getProviderAdapter().signMessage(e);
|
|
@@ -182,7 +167,7 @@ var _e = class {
|
|
|
182
167
|
return await this.getProviderAdapter().signTypedData(e, t, n);
|
|
183
168
|
}
|
|
184
169
|
async signWithSubAccount(e, t, n, r) {
|
|
185
|
-
return
|
|
170
|
+
return B(e, t, n, r);
|
|
186
171
|
}
|
|
187
172
|
getContractWithSigner(e, t, n = "") {
|
|
188
173
|
return this.getProviderAdapter(e).getContractWithSigner(e, t, n);
|
|
@@ -191,10 +176,10 @@ var _e = class {
|
|
|
191
176
|
return this.getProviderAdapter(e).getContractWithFetcher(e, t, n);
|
|
192
177
|
}
|
|
193
178
|
isSelectedNetworkSupported(e) {
|
|
194
|
-
return !!
|
|
179
|
+
return !!l[e];
|
|
195
180
|
}
|
|
196
181
|
async switchNetwork(e) {
|
|
197
|
-
let t = this.getProviderAdapter(), n = t.getChainId(), r = n !== void 0 &&
|
|
182
|
+
let t = this.getProviderAdapter(), n = t.getChainId(), r = n !== void 0 && o(e.chainId, n);
|
|
198
183
|
if (!(e.chainId === n || r)) try {
|
|
199
184
|
await t.switchNetwork(e);
|
|
200
185
|
} catch {
|
|
@@ -209,7 +194,7 @@ var _e = class {
|
|
|
209
194
|
}
|
|
210
195
|
async updateProviderAdapter(e, t) {
|
|
211
196
|
try {
|
|
212
|
-
|
|
197
|
+
s(e) ? (this.solanaProviderAdapter && this.solanaProviderAdapter.release(), this.solanaProviderAdapter = t) : c(e) ? (this.tronProviderAdapter && this.tronProviderAdapter.release(), this.tronProviderAdapter = t) : (this.ethereumProviderAdapter && this.ethereumProviderAdapter.release(), this.ethereumProviderAdapter = t);
|
|
213
198
|
} catch (e) {
|
|
214
199
|
throw console.error(e), Error("updateProviderAdapter failed, please try again.");
|
|
215
200
|
}
|
|
@@ -240,32 +225,22 @@ var _e = class {
|
|
|
240
225
|
}
|
|
241
226
|
async onAccountChanged() {
|
|
242
227
|
await this.ethereumProviderAdapter?.onAccountChanged(), await this.solanaProviderAdapter?.onAccountChanged(), await this.tronProviderAdapter?.onAccountChanged();
|
|
243
|
-
let e =
|
|
228
|
+
let e = ee.AccountChanged;
|
|
244
229
|
typeof document < "u" ? document?.dispatchEvent(new Event(e)) : process?.emit("message", e, void 0);
|
|
245
230
|
}
|
|
246
231
|
async onChainChanged(e) {
|
|
247
|
-
e ? await this.getProviderAdapter(e).onChainChanged(e) :
|
|
232
|
+
e ? await this.getProviderAdapter(e).onChainChanged(e) : await this.disconnectFromConnector();
|
|
248
233
|
}
|
|
249
234
|
async monitorConnectedAddress(e) {
|
|
250
|
-
await
|
|
251
|
-
}
|
|
252
|
-
async
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
async getTotalBalance(e, n, r, i = !1, a, o = !1) {
|
|
256
|
-
let s = r ?? await this.getEthereumAddressByChain(e), c = n ?? this.userKeys, l = await this.getBalances(e, c.getShieldedPrivateKey(), c.getShieldedPublicKey(), s, i, a, o), u = t ? await C.getPrivateTokens(e, s) : await w(e), d = [];
|
|
257
|
-
return u.forEach((e) => {
|
|
258
|
-
let t = e.erc20TokenAddress.toLowerCase(), n = l.get(t), r = {
|
|
259
|
-
token: e,
|
|
260
|
-
balance: n?.balance ?? 0n,
|
|
261
|
-
timestamp: n?.timestamp || "0",
|
|
262
|
-
nfts: n?.nfts || []
|
|
263
|
-
};
|
|
264
|
-
d.push(r);
|
|
265
|
-
}), d;
|
|
235
|
+
await b.monitor(await this.getEthereumAddressByChain(e));
|
|
236
|
+
}
|
|
237
|
+
async getTotalBalances(e, t, n, r = !1, i, a = !1) {
|
|
238
|
+
let o = t ?? this.userKeys, s = new Map(await Promise.all(e.map(async (e) => [e, n ?? await this.getEthereumAddressByChain(e)])));
|
|
239
|
+
return S(this, s, o.getShieldedPrivateKey(), o.getShieldedPublicKey(), r, i, a);
|
|
266
240
|
}
|
|
267
241
|
async getStuckShieldedBalances(e, t, n, r = !1, i = !1) {
|
|
268
|
-
|
|
242
|
+
let a = await this.getTotalBalances(e, t, n, r, i, !0);
|
|
243
|
+
return new Map([...a].map(([e, t]) => [e, t.filter((e) => e.balance > 0n)]));
|
|
269
244
|
}
|
|
270
245
|
get privateBalancesWithUSD() {
|
|
271
246
|
return this.privateBalances.getSnapshot();
|
|
@@ -274,7 +249,7 @@ var _e = class {
|
|
|
274
249
|
return this.privateBalances.onPrivateBalancesWithUSDChange(e);
|
|
275
250
|
}
|
|
276
251
|
async getHinkalTreeRootHash(e) {
|
|
277
|
-
return (await
|
|
252
|
+
return (await w(e)).hinkalRootHash;
|
|
278
253
|
}
|
|
279
254
|
async resetMerkleTreesIfNecessary(e) {
|
|
280
255
|
let t = (await Promise.all((e ?? this.getSupportedChains()).map(async (e) => {
|
|
@@ -299,7 +274,7 @@ var _e = class {
|
|
|
299
274
|
return this.getProviderAdapter(e).getAddress();
|
|
300
275
|
}
|
|
301
276
|
async getRandomRelay(e, t = !1) {
|
|
302
|
-
return (await
|
|
277
|
+
return (await b.getIdleRelay(e, t)).relay;
|
|
303
278
|
}
|
|
304
279
|
getGasPrice(e) {
|
|
305
280
|
let t = this.getProviderAdapter(e);
|
|
@@ -307,7 +282,7 @@ var _e = class {
|
|
|
307
282
|
return t.getGasPrice(e);
|
|
308
283
|
}
|
|
309
284
|
getAPI() {
|
|
310
|
-
return
|
|
285
|
+
return b;
|
|
311
286
|
}
|
|
312
287
|
snapshotsClearInterval() {
|
|
313
288
|
this.getSupportedChains().forEach((e) => {
|
|
@@ -318,46 +293,46 @@ var _e = class {
|
|
|
318
293
|
this.snapshotsClearInterval(), this.privateBalances.dispose(), await this.resetProviderAdapters();
|
|
319
294
|
}
|
|
320
295
|
getRecipientInfo() {
|
|
321
|
-
return
|
|
296
|
+
return z(this);
|
|
322
297
|
}
|
|
323
298
|
async deposit(e, t, n = !0, r = !1) {
|
|
324
|
-
return
|
|
299
|
+
return T(this, e, t, n, r);
|
|
325
300
|
}
|
|
326
301
|
async depositSolana(e, t, n = !1) {
|
|
327
|
-
return
|
|
302
|
+
return M(this, e, t, n);
|
|
328
303
|
}
|
|
329
304
|
async depositForOther(e, t, n, r = !0, i = !1, a) {
|
|
330
305
|
return this.enforceRateLimit(this.depositForOther.name, [
|
|
331
306
|
e,
|
|
332
307
|
t,
|
|
333
308
|
n
|
|
334
|
-
]),
|
|
309
|
+
]), E(this, e, t, n, r, i, a);
|
|
335
310
|
}
|
|
336
311
|
async depositSolanaForOther(e, t, n, r = !1, i) {
|
|
337
312
|
return this.enforceRateLimit(this.depositSolanaForOther.name, [
|
|
338
313
|
e,
|
|
339
314
|
t,
|
|
340
315
|
n
|
|
341
|
-
]),
|
|
316
|
+
]), N(this, e, t, n, r, i);
|
|
342
317
|
}
|
|
343
|
-
async depositAndWithdraw(e, t, n, r, i, a, o,
|
|
344
|
-
return
|
|
318
|
+
async depositAndWithdraw(e, t, n, r, i, a, o, c, l = !0) {
|
|
319
|
+
return s(x([e])) ? q(this, e, t, n, r, i, a, o, c) : j(this, e, t, n, r, i, a, o, c, l);
|
|
345
320
|
}
|
|
346
321
|
async claimUtxo(e, t, n, r) {
|
|
347
|
-
return
|
|
322
|
+
return s(x([e])) ? se(this, e, t, n, r) : oe(this, e, t, n, r);
|
|
348
323
|
}
|
|
349
324
|
async depositAndBridge(e, t, n, r, i, a, o, s = !0) {
|
|
350
|
-
return
|
|
325
|
+
return re(this, e, t, n, r, i, a, o, s);
|
|
351
326
|
}
|
|
352
327
|
async bridgePrivateToPrivate(e, t, n, r, i, a, o, s) {
|
|
353
328
|
return this.enforceRateLimit(this.bridgePrivateToPrivate.name, [
|
|
354
329
|
e,
|
|
355
330
|
t,
|
|
356
331
|
n
|
|
357
|
-
]),
|
|
332
|
+
]), ie(this, e, t, n, r, i, a, o, s);
|
|
358
333
|
}
|
|
359
334
|
async checkSendTransactionStatus(e) {
|
|
360
|
-
return
|
|
335
|
+
return y(e);
|
|
361
336
|
}
|
|
362
337
|
async nearDepositAndBridge(e, t, n, r, i, a, o, s, c) {
|
|
363
338
|
return this.enforceRateLimit(this.nearDepositAndBridge.name, [
|
|
@@ -365,10 +340,10 @@ var _e = class {
|
|
|
365
340
|
t,
|
|
366
341
|
n,
|
|
367
342
|
r
|
|
368
|
-
]),
|
|
343
|
+
]), ae(this, e, t, n, r, i, a, o, s, c);
|
|
369
344
|
}
|
|
370
|
-
async prooflessDeposit(e, t, n, r, i = !1, a =
|
|
371
|
-
return
|
|
345
|
+
async prooflessDeposit(e, t, n, r, i = !1, a = g, o = "", c, l = !1) {
|
|
346
|
+
return s(x(e)) ? $(this, e, t, n, r, i, c, l) : H(this, e, t, n, r, i, a, o, c, l);
|
|
372
347
|
}
|
|
373
348
|
getSolanaProgram(e) {
|
|
374
349
|
if (!this.solanaProviderAdapter) throw Error("No provider adapter initialized");
|
|
@@ -385,24 +360,24 @@ var _e = class {
|
|
|
385
360
|
e,
|
|
386
361
|
t,
|
|
387
362
|
n
|
|
388
|
-
]),
|
|
363
|
+
]), s(x(e)) ? Y(this, e, t, n, r, i, a) : W(this, e, t, n, r, i, a);
|
|
389
364
|
}
|
|
390
|
-
async withdraw(e, t, n, r, i, a, o,
|
|
391
|
-
return
|
|
365
|
+
async withdraw(e, t, n, r, i, a, o, c) {
|
|
366
|
+
return s(x(e)) ? J(this, e, t, n, i, a, o, c) : F(this, e, t, n, r, i, a, o, c);
|
|
392
367
|
}
|
|
393
368
|
async withdrawStuckUtxos(e, t) {
|
|
394
|
-
return
|
|
369
|
+
return ce(this, e, t);
|
|
395
370
|
}
|
|
396
|
-
async swap(e, t, n, r, i, a, o,
|
|
397
|
-
return
|
|
371
|
+
async swap(e, t, n, r, i, a, o, c) {
|
|
372
|
+
return s(x(e)) ? this.swapSolana(e, t, r, i, a, c) : P(this, e, t, n, r, i, a, o, c);
|
|
398
373
|
}
|
|
399
374
|
async swapSolana(e, t, n, r, i, a) {
|
|
400
375
|
let o = JSON.parse(n), s = BigInt(o.swapperAccountSalt), { instructionLists: c, addressLookupTableAccount: l } = o.data;
|
|
401
|
-
return
|
|
376
|
+
return X(this, e, t, s, c, l, r, i, a);
|
|
402
377
|
}
|
|
403
378
|
async actionReceive(e, t, n, r, i, a) {
|
|
404
379
|
if (!i) throw Error("subAccount is required");
|
|
405
|
-
return
|
|
380
|
+
return s(x(e)) ? Q(this, e[0], t[0], i, void 0, !1, r?.variableRate, a) : V(this, e, t, n, r, i, a);
|
|
406
381
|
}
|
|
407
382
|
async actionPrivateWallet(e, t, n, r, i, a, o, s, c, l, u = !1, d, f, p) {
|
|
408
383
|
return this.enforceRateLimit(this.actionPrivateWallet.name, [
|
|
@@ -416,27 +391,21 @@ var _e = class {
|
|
|
416
391
|
s,
|
|
417
392
|
c,
|
|
418
393
|
p
|
|
419
|
-
]),
|
|
394
|
+
]), ne(this, e, t, n, r, i, a, o, s, c, l, u, d, f, p);
|
|
420
395
|
}
|
|
421
|
-
async proxySwap(e, t, n, r, i, a, o,
|
|
422
|
-
return
|
|
396
|
+
async proxySwap(e, t, n, r, i, a, o, c, l = !1, u, d) {
|
|
397
|
+
return s(x(e)) ? Z(this, e, t, r, a, n, o, c, d) : U(this, e, t, n, r, i, a, o, c, l, u, d);
|
|
423
398
|
}
|
|
424
399
|
async proxyToPrivate(e, t, n, r, i, a, o) {
|
|
425
|
-
return
|
|
400
|
+
return s(x(e)) ? (this.enforceRateLimit(this.proxyToPrivate.name, [
|
|
426
401
|
e[0],
|
|
427
402
|
t[0],
|
|
428
403
|
n,
|
|
429
404
|
r
|
|
430
|
-
]), Q(this, e[0], t[0], n, r, !1, a?.variableRate, o)) :
|
|
405
|
+
]), Q(this, e[0], t[0], n, r, !1, a?.variableRate, o)) : G(this, e, t, r, i, a, n, o);
|
|
431
406
|
}
|
|
432
407
|
async proxySend(e, t, n, r, i, a, o) {
|
|
433
|
-
|
|
434
|
-
if (c(s)) return se(this, e[0], t[0], n, r, o);
|
|
435
|
-
let l = O(this, s, e.map((e) => e.erc20TokenAddress), t, r), u = e.map((e, n) => ({
|
|
436
|
-
token: e,
|
|
437
|
-
amount: -1n * t[n]
|
|
438
|
-
}));
|
|
439
|
-
return await this.actionPrivateWallet(s, [], [], [], l, u, n, i, a, void 0, void 0, void 0, o, void 0);
|
|
408
|
+
return ue(this, e, t, n, r, i, a, o);
|
|
440
409
|
}
|
|
441
410
|
areMerkleTreeUpdatesDisabled() {
|
|
442
411
|
return this.disableMerkleTreeUpdates;
|
|
@@ -446,4 +415,4 @@ var _e = class {
|
|
|
446
415
|
}
|
|
447
416
|
};
|
|
448
417
|
//#endregion
|
|
449
|
-
export {
|
|
418
|
+
export { fe as Hinkal };
|