@hinkal/common 0.3.12 → 0.3.14
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 +67 -4
- package/common/src/API/API.cjs +1 -1
- package/common/src/API/API.d.ts +3 -2
- package/common/src/API/API.mjs +92 -91
- package/common/src/API/admin-calls.cjs +1 -1
- package/common/src/API/admin-calls.d.ts +2 -1
- package/common/src/API/admin-calls.mjs +1 -0
- package/common/src/API/evm-token-assets.cjs +1 -0
- package/common/src/API/evm-token-assets.mjs +3 -0
- package/common/src/API/get-token-price-chart-data.cjs +1 -1
- package/common/src/API/get-token-price-chart-data.mjs +2 -2
- package/common/src/API/getTokenPrice.cjs +1 -1
- package/common/src/API/getTokenPrice.mjs +2 -2
- package/common/src/API/index.cjs +1 -1
- package/common/src/API/index.d.ts +2 -0
- package/common/src/API/index.mjs +2 -0
- package/common/src/API/privacy-score-calls.cjs +1 -1
- package/common/src/API/privacy-score-calls.mjs +2 -2
- package/common/src/API/receiveVaultCalls.cjs +1 -0
- package/common/src/API/receiveVaultCalls.d.ts +12 -0
- package/common/src/API/receiveVaultCalls.mjs +36 -0
- package/common/src/constants/chains.constants.cjs +1 -1
- package/common/src/constants/chains.constants.d.ts +2 -0
- package/common/src/constants/chains.constants.mjs +106 -93
- package/common/src/constants/coingecko.constants.cjs +1 -1
- package/common/src/constants/coingecko.constants.d.ts +2 -0
- package/common/src/constants/coingecko.constants.mjs +1 -1
- package/common/src/constants/contracts.constants.cjs +1 -1
- package/common/src/constants/contracts.constants.mjs +5 -1
- package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.mjs +3 -1
- package/common/src/constants/deploy-data/deploy-data-arcTestnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-arcTestnet.json.mjs +4 -2
- package/common/src/constants/deploy-data/deploy-data-base.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-base.json.mjs +3 -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 +3 -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 +3 -1
- package/common/src/constants/deploy-data/deploy-data-localhost.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-localhost.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-optimismTest.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-optimismTest.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 +3 -1
- package/common/src/constants/deploy-data/deploy-data-sepoliaTestnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-sepoliaTestnet.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-solanaDevnet.json.cjs +1 -0
- package/common/src/constants/deploy-data/deploy-data-solanaDevnet.json.mjs +6 -0
- package/common/src/constants/deploy-data/deploy-data-tempo.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-tempo.json.mjs +3 -1
- package/common/src/constants/deploy-data/deploy-data-tronMainnet.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-tronMainnet.json.mjs +2 -1
- package/common/src/constants/deploy-data/deploy-data-tronNile.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-tronNile.json.mjs +2 -1
- package/common/src/constants/deploy-data/index.cjs +1 -1
- package/common/src/constants/deploy-data/index.d.ts +2 -1
- package/common/src/constants/deploy-data/index.mjs +7 -6
- package/common/src/constants/deploy-data/shared-deploy-data-evm.json.cjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-evm.json.mjs +2 -1
- package/common/src/constants/deploy-data/shared-deploy-data-solana.json.cjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-solana.json.mjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-tron.json.cjs +1 -1
- package/common/src/constants/deploy-data/shared-deploy-data-tron.json.mjs +3 -2
- package/common/src/constants/events.constants.d.ts +1 -0
- package/common/src/constants/index.cjs +1 -1
- package/common/src/constants/index.mjs +1 -1
- package/common/src/constants/protocol.constants.cjs +2 -2
- package/common/src/constants/protocol.constants.d.ts +4 -0
- package/common/src/constants/protocol.constants.mjs +2 -2
- package/common/src/constants/save-depths.cjs +1 -1
- package/common/src/constants/save-depths.d.ts +1 -0
- package/common/src/constants/save-depths.mjs +1 -0
- package/common/src/constants/server.constants.cjs +1 -1
- package/common/src/constants/server.constants.d.ts +13 -6
- package/common/src/constants/server.constants.mjs +13 -6
- package/common/src/constants/tokens.constants.cjs +1 -1
- package/common/src/constants/tokens.constants.mjs +1 -1
- package/common/src/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/common/src/data-structures/Hinkal/Hinkal.d.ts +8 -4
- package/common/src/data-structures/Hinkal/Hinkal.mjs +85 -73
- package/common/src/data-structures/Hinkal/IHinkal.d.ts +8 -4
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +14 -14
- package/common/src/data-structures/Hinkal/hinkalActionReceive.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalActionReceive.mjs +4 -4
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.mjs +24 -24
- package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.mjs +72 -71
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +64 -61
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalPrivateWallet.mjs +29 -29
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.d.ts +1 -1
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.mjs +22 -22
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.mjs +8 -8
- package/common/src/data-structures/Hinkal/hinkalProxySwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProxySwap.mjs +6 -6
- package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.mjs +4 -4
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultAccount.cjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultAccount.d.ts +3 -0
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultAccount.mjs +12 -0
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultCreate.cjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultCreate.d.ts +3 -0
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultCreate.mjs +29 -0
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultRecover.cjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultRecover.d.ts +5 -0
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultRecover.mjs +66 -0
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultSettle.cjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultSettle.d.ts +6 -0
- package/common/src/data-structures/Hinkal/hinkalReceiveVaultSettle.mjs +8 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.d.ts +2 -2
- package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.mjs +54 -62
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +72 -70
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySend.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxySend.mjs +9 -9
- package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +20 -20
- 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 +49 -47
- package/common/src/data-structures/Hinkal/hinkalSolanaReceiveVault.cjs +1 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaReceiveVault.d.ts +5 -0
- package/common/src/data-structures/Hinkal/hinkalSolanaReceiveVault.mjs +60 -0
- 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/hinkalSolanaWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransact.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransact.mjs +7 -6
- 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/hinkalWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +35 -26
- package/common/src/data-structures/Hinkal/index.d.ts +5 -0
- package/common/src/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
- package/common/src/data-structures/Hinkal/resetMerkleTrees.mjs +13 -13
- package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.d.ts +0 -3
- package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.d.ts +0 -1
- package/common/src/data-structures/TokenDBs/TronPublicTokensDB.d.ts +0 -2
- package/common/src/data-structures/crypto-keys/index.cjs +1 -1
- package/common/src/data-structures/crypto-keys/index.mjs +1 -1
- 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 +7 -2
- package/common/src/error-handling/get-error.message.cjs +1 -1
- package/common/src/error-handling/get-error.message.mjs +59 -49
- package/common/src/functions/index.cjs +1 -1
- package/common/src/functions/index.mjs +8 -3
- package/common/src/functions/pre-transaction/addressTableLookup.d.ts +1 -0
- package/common/src/functions/pre-transaction/build-proofless-deposit-fee.cjs +1 -0
- package/common/src/functions/pre-transaction/build-proofless-deposit-fee.d.ts +4 -0
- package/common/src/functions/pre-transaction/build-proofless-deposit-fee.mjs +3 -0
- package/common/src/functions/pre-transaction/calculateSolanaNullifierCount.cjs +1 -1
- package/common/src/functions/pre-transaction/calculateSolanaNullifierCount.mjs +7 -7
- package/common/src/functions/pre-transaction/constructAdminData.cjs +1 -1
- package/common/src/functions/pre-transaction/constructAdminData.mjs +4 -3
- package/common/src/functions/pre-transaction/index.cjs +1 -1
- package/common/src/functions/pre-transaction/index.d.ts +1 -0
- package/common/src/functions/pre-transaction/index.mjs +1 -0
- package/common/src/functions/pre-transaction/sendV0Transaction.cjs +1 -1
- package/common/src/functions/pre-transaction/sendV0Transaction.d.ts +1 -0
- package/common/src/functions/pre-transaction/sendV0Transaction.mjs +22 -2
- package/common/src/functions/private-wallet/emporium.helpers.cjs +1 -1
- package/common/src/functions/private-wallet/emporium.helpers.mjs +15 -15
- package/common/src/functions/snarkjs/constructTxEnclaveVerify.cjs +1 -1
- package/common/src/functions/snarkjs/constructTxEnclaveVerify.mjs +2 -1
- package/common/src/functions/snarkjs/fetchOnChainRootHashes.cjs +1 -1
- package/common/src/functions/snarkjs/fetchOnChainRootHashes.mjs +6 -6
- package/common/src/functions/utils/abi.utils.cjs +1 -1
- package/common/src/functions/utils/abi.utils.mjs +4 -1
- package/common/src/functions/utils/addresses.cjs +1 -1
- package/common/src/functions/utils/addresses.d.ts +4 -0
- package/common/src/functions/utils/addresses.mjs +17 -17
- package/common/src/functions/utils/admin-dimensions.cjs +1 -0
- package/common/src/functions/utils/admin-dimensions.d.ts +4 -0
- package/common/src/functions/utils/admin-dimensions.mjs +206 -0
- package/common/src/functions/utils/create-provider.cjs +1 -1
- package/common/src/functions/utils/create-provider.mjs +5 -1
- package/common/src/functions/utils/encryptInputForEnclave.cjs +1 -1
- package/common/src/functions/utils/encryptInputForEnclave.d.ts +2 -1
- package/common/src/functions/utils/encryptInputForEnclave.mjs +1 -1
- package/common/src/functions/utils/erc20tokenFunctions.cjs +1 -1
- package/common/src/functions/utils/erc20tokenFunctions.mjs +11 -11
- package/common/src/functions/utils/fees.utils.cjs +1 -1
- package/common/src/functions/utils/fees.utils.d.ts +2 -0
- package/common/src/functions/utils/fees.utils.mjs +31 -33
- package/common/src/functions/utils/gas-token.utils.cjs +1 -0
- package/common/src/functions/utils/gas-token.utils.d.ts +3 -0
- package/common/src/functions/utils/gas-token.utils.mjs +7 -0
- package/common/src/functions/utils/getSignerFromContract.cjs +1 -1
- package/common/src/functions/utils/getSignerFromContract.d.ts +1 -1
- package/common/src/functions/utils/getSignerFromContract.mjs +2 -2
- package/common/src/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
- package/common/src/functions/utils/getUtxosFromReceipt.utils.mjs +1 -1
- package/common/src/functions/utils/getUtxosFromReceiptSolana.cjs +1 -1
- package/common/src/functions/utils/getUtxosFromReceiptSolana.d.ts +9 -4
- package/common/src/functions/utils/getUtxosFromReceiptSolana.mjs +1 -1
- package/common/src/functions/utils/index.cjs +1 -1
- package/common/src/functions/utils/index.d.ts +5 -0
- package/common/src/functions/utils/index.mjs +7 -2
- package/common/src/functions/utils/isSigner.cjs +1 -0
- package/common/src/functions/utils/isSigner.d.ts +2 -0
- package/common/src/functions/utils/isSigner.mjs +7 -0
- package/common/src/functions/utils/publicBalance.utils.cjs +1 -1
- package/common/src/functions/utils/publicBalance.utils.mjs +7 -7
- package/common/src/functions/utils/receive-vault-account.utils.cjs +1 -0
- package/common/src/functions/utils/receive-vault-account.utils.d.ts +9 -0
- package/common/src/functions/utils/receive-vault-account.utils.mjs +24 -0
- package/common/src/functions/utils/receive-vault-scan.utils.cjs +1 -0
- package/common/src/functions/utils/receive-vault-scan.utils.d.ts +2 -0
- package/common/src/functions/utils/receive-vault-scan.utils.mjs +55 -0
- package/common/src/functions/utils/receive-vault-solana.utils.cjs +1 -0
- package/common/src/functions/utils/receive-vault-solana.utils.d.ts +8 -0
- package/common/src/functions/utils/receive-vault-solana.utils.mjs +45 -0
- package/common/src/functions/utils/receive-vault.utils.cjs +2 -0
- package/common/src/functions/utils/receive-vault.utils.d.ts +31 -0
- package/common/src/functions/utils/receive-vault.utils.mjs +166 -0
- package/common/src/functions/utils/string.utils.cjs +1 -1
- package/common/src/functions/utils/string.utils.mjs +12 -4
- package/common/src/functions/utils/temporary-wallet-recovery.utils.cjs +1 -1
- package/common/src/functions/utils/temporary-wallet-recovery.utils.mjs +1 -1
- package/common/src/functions/utils/token-check.utils.d.ts +1 -0
- package/common/src/functions/utils/transfer-claimable.utils.cjs +1 -1
- package/common/src/functions/utils/transfer-claimable.utils.mjs +1 -1
- package/common/src/functions/utils/wallet-token-discovery.utils.cjs +1 -0
- package/common/src/functions/utils/wallet-token-discovery.utils.d.ts +9 -0
- package/common/src/functions/utils/wallet-token-discovery.utils.mjs +30 -0
- package/common/src/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
- package/common/src/functions/web3/functionCalls/transactCallDirect.mjs +11 -11
- package/common/src/functions/web3/getContractMetadata.cjs +1 -1
- package/common/src/functions/web3/getContractMetadata.mjs +6 -6
- package/common/src/functions/web3/index.cjs +1 -1
- package/common/src/functions/web3/index.mjs +1 -1
- package/common/src/types/admin.types.cjs +1 -1
- package/common/src/types/admin.types.d.ts +64 -9
- package/common/src/types/admin.types.mjs +10 -2
- package/common/src/types/connector.types.d.ts +1 -0
- package/common/src/types/ethereum-network.types.cjs +1 -1
- package/common/src/types/ethereum-network.types.d.ts +5 -1
- package/common/src/types/ethereum-network.types.mjs +1 -1
- package/common/src/types/external-action.types.cjs +1 -1
- package/common/src/types/external-action.types.d.ts +3 -1
- package/common/src/types/external-action.types.mjs +1 -1
- package/common/src/types/index.cjs +1 -1
- package/common/src/types/index.d.ts +1 -0
- package/common/src/types/index.mjs +1 -0
- package/common/src/types/receive-vault.types.cjs +1 -0
- package/common/src/types/receive-vault.types.d.ts +63 -0
- package/common/src/types/receive-vault.types.mjs +8 -0
- package/common/src/types/remote-tx-build.types.d.ts +5 -0
- package/common/src/webworker/{logError-cvFNxc-0.js → logError-C-ej_TX9.js} +1 -1
- package/common/src/webworker/package.json +10 -1
- 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-CE-rYA3W.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/index.cjs +1 -1
- package/index.mjs +3 -2
- package/internal/monitorConnectedAddress.cjs +1 -1
- package/internal/monitorConnectedAddress.d.ts +1 -1
- package/internal/monitorConnectedAddress.mjs +1 -3
- package/package.json +10 -1
- package/providers/prepareEthersHinkal.cjs +1 -1
- package/providers/prepareEthersHinkal.mjs +1 -1
- package/providers/prepareSolanaHinkal.cjs +1 -1
- package/providers/prepareSolanaHinkal.mjs +1 -1
- package/providers/prepareTronHinkal.cjs +1 -1
- package/providers/prepareTronHinkal.mjs +1 -1
- package/providers/prepareWagmiHinkal.cjs +1 -1
- package/providers/prepareWagmiHinkal.mjs +1 -1
- package/services/Hinkal.cjs +1 -1
- package/services/Hinkal.d.ts +7 -3
- package/services/Hinkal.mjs +74 -51
- package/types/IHinkal.d.ts +7 -2
- package/types/index.cjs +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.mjs +2 -0
- package/types/receive-vault.types.cjs +1 -0
- package/types/receive-vault.types.d.ts +14 -0
- package/types/receive-vault.types.mjs +2 -0
- package/common/src/API/getOdosPriceForToken.cjs +0 -1
- package/common/src/API/getOdosPriceForToken.d.ts +0 -1
- package/common/src/API/getOdosPriceForToken.mjs +0 -14
- package/common/src/webworker/workerProxy-BHzCZ9HT.js +0 -1
|
@@ -3,44 +3,44 @@ import "../../constants/protocol.constants.mjs";
|
|
|
3
3
|
import { transactionErrorCodes as t } from "../../error-handling/error-codes.constants.mjs";
|
|
4
4
|
import { formatMintAddress as n, getSolanaTokenProgramId as r } from "../../functions/utils/solanaMint.utils.mjs";
|
|
5
5
|
import { constructStealthAddressStructure as i, getEncryptionKeyFromRecipientInfo as a, isValidPrivateAddress as o } from "../../functions/utils/addresses.mjs";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
6
|
+
import { createCustomSolanaConnection as s } from "../../functions/utils/create-provider.mjs";
|
|
7
|
+
import { validateAndGetChainId as c } from "../../functions/utils/token-check.utils.mjs";
|
|
8
|
+
import { buildAnchorStealthAddressStructure as l, getMerkleAccountPublicKey as u, getStorageAccountPublicKey as d, getStorageVaultPublicKey as f, resolveSolanaRootBuckets as p } from "../../functions/pre-transaction/solana.mjs";
|
|
9
|
+
import { constructAdminData as m } from "../../functions/pre-transaction/constructAdminData.mjs";
|
|
10
10
|
import { AccountActions as h } from "../AccountActions/AccountActions.mjs";
|
|
11
11
|
import { sendProxyV0Transaction as g } from "../../functions/pre-transaction/sendV0Transaction.mjs";
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
12
|
+
import { calculateVariableFee as _ } from "../../functions/utils/fees.utils.mjs";
|
|
13
|
+
import { createReadOnlySolanaProgram as v } from "../../functions/utils/solana-program.utils.mjs";
|
|
14
|
+
import { emitTxPublicData as y } from "../../API/admin-calls.mjs";
|
|
15
15
|
import { buildSolanaTransferInstructions as b } from "../../functions/pre-transaction/solanaTransfer.utils.mjs";
|
|
16
16
|
import { buildProoflessEncryptedOutputs as x } from "./hinkalProoflessDeposit.utils.mjs";
|
|
17
17
|
import { PublicKey as S } from "@solana/web3.js";
|
|
18
18
|
import { BN as C } from "@coral-xyz/anchor";
|
|
19
19
|
//#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.ts
|
|
20
|
-
var w = async ({ program: e, mintPublicKey: t, mintAddressString: n, tokenAmount: r, stealthAddressStructure: i, recipientEncryptionKey: a, senderPublickey: o, originalDeployer: s, storageAccount:
|
|
21
|
-
let m = new C(r.toString()), h =
|
|
20
|
+
var w = async ({ program: e, mintPublicKey: t, mintAddressString: n, tokenAmount: r, stealthAddressStructure: i, recipientEncryptionKey: a, senderPublickey: o, originalDeployer: s, storageAccount: c, storageVault: u, merkleAccount: d, rootBuckets: f, createBlockedUtxos: p }) => {
|
|
21
|
+
let m = new C(r.toString()), h = l(i), g = n === "11111111111111111111111111111111" ? null : t, _ = n === "11111111111111111111111111111111" ? null : void 0, [v] = x([i], [a]), y = Buffer.from(v.slice(2), "hex"), { current: b, next: S } = f;
|
|
22
22
|
return e.methods.prooflessDeposit(m, h, y, p).accounts({
|
|
23
23
|
mint: g,
|
|
24
24
|
signer: o,
|
|
25
25
|
signerAta: _,
|
|
26
26
|
originalDeployer: s,
|
|
27
|
-
storageAccount:
|
|
27
|
+
storageAccount: c,
|
|
28
28
|
storageVault: u,
|
|
29
29
|
merkleAccount: d,
|
|
30
30
|
rootBucketCurrent: b,
|
|
31
31
|
rootBucketNext: S ?? e.programId,
|
|
32
32
|
storageVaultAta: _
|
|
33
33
|
}).instruction();
|
|
34
|
-
}, T = async ({ chainId:
|
|
34
|
+
}, T = async ({ chainId: c, token: l, tokenAmount: m, senderAddress: h, recipientInfo: g, createBlockedUtxos: _ = !1 }) => {
|
|
35
35
|
if (!o(g)) throw Error(t.RECIPIENT_FORMAT_INCORRECT);
|
|
36
|
-
let { hinkalIdl: y, hinkalAddress: b, originalDeployer: x } = e[
|
|
36
|
+
let { hinkalIdl: y, hinkalAddress: b, originalDeployer: x } = e[c].contractData;
|
|
37
37
|
if (!y) throw Error("No IDL configured for Solana program on this network");
|
|
38
38
|
if (!x) throw Error("missing original deployer");
|
|
39
|
-
let { rpcUrl: C } = e[
|
|
39
|
+
let { rpcUrl: C } = e[c], T = s(C), E = v(T, y), D = new S(x), O = new S(b), k = new S(h), { erc20TokenAddress: A } = l, { mintPublicKey: j } = n(A), M = j.toString(), N = d(O, D), P = f(O, D), F = u(O, D), I = i(g), L = a(g), R = await p(E, F, 1), z = await w({
|
|
40
40
|
program: E,
|
|
41
41
|
mintPublicKey: j,
|
|
42
42
|
mintAddressString: M,
|
|
43
|
-
tokenAmount:
|
|
43
|
+
tokenAmount: m,
|
|
44
44
|
stealthAddressStructure: I,
|
|
45
45
|
recipientEncryptionKey: L,
|
|
46
46
|
senderPublickey: k,
|
|
@@ -49,8 +49,8 @@ var w = async ({ program: e, mintPublicKey: t, mintAddressString: n, tokenAmount
|
|
|
49
49
|
storageVault: P,
|
|
50
50
|
merkleAccount: F,
|
|
51
51
|
rootBuckets: R,
|
|
52
|
-
createBlockedUtxos:
|
|
53
|
-
}), B = r(
|
|
52
|
+
createBlockedUtxos: _
|
|
53
|
+
}), B = r(l.is2022Program);
|
|
54
54
|
return {
|
|
55
55
|
connection: T,
|
|
56
56
|
senderAddress: h,
|
|
@@ -75,21 +75,21 @@ var w = async ({ program: e, mintPublicKey: t, mintAddressString: n, tokenAmount
|
|
|
75
75
|
if (c <= 0n) return u;
|
|
76
76
|
let d = await e.getRandomRelay(n, !1);
|
|
77
77
|
if (!d) throw Error(t.RELAYER_NOT_AVAILABLE);
|
|
78
|
-
let { instructions: f } = await b(u.connection, u.senderPublickey, new S(d), r,
|
|
78
|
+
let { instructions: f } = await b(u.connection, u.senderPublickey, new S(d), r, _(i, c));
|
|
79
79
|
return {
|
|
80
80
|
...u,
|
|
81
81
|
instructions: [...f, ...u.instructions]
|
|
82
82
|
};
|
|
83
|
-
}, D = async (e, t, n, r, i, a = !1, o = 0n,
|
|
83
|
+
}, D = async (e, t, n, r, i, a = !1, o = 0n, s) => {
|
|
84
84
|
if (!r) throw Error("subAccount is required");
|
|
85
|
-
let l =
|
|
85
|
+
let l = c([t]), [{ connection: u, senderPublickey: d, instructions: f }, p] = await Promise.all([E(e, l, t, n, r, i, a, o), e.getEthereumAddress()]), h = await g({
|
|
86
86
|
connection: u,
|
|
87
87
|
chainId: l,
|
|
88
88
|
subAccount: r,
|
|
89
89
|
payerPublicKey: d,
|
|
90
90
|
instructions: f
|
|
91
91
|
});
|
|
92
|
-
return
|
|
92
|
+
return y(m(s, l, [t.erc20TokenAddress], [n], p)), h;
|
|
93
93
|
};
|
|
94
94
|
//#endregion
|
|
95
95
|
export { D as hinkalSolanaProxyShield };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../types/external-action.types.cjs`),r=require(`../../functions/utils/
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../types/external-action.types.cjs`),r=require(`../../functions/utils/create-provider.cjs`),i=require(`../../functions/utils/token-check.utils.cjs`),a=require(`../../functions/utils/erc20tokenFunctions.cjs`),o=require(`../../functions/pre-transaction/constructAdminData.cjs`),s=require(`../AccountActions/AccountActions.cjs`),c=require(`../../functions/pre-transaction/sendV0Transaction.cjs`),l=require(`../../functions/pre-transaction/getFeeStructure.cjs`),u=require(`../../functions/utils/fees.utils.cjs`),d=require(`../../API/admin-calls.cjs`);require(`../../constants/index.cjs`);const f=require(`../../functions/utils/admin-dimensions.cjs`),p=require(`../../functions/pre-transaction/solanaTransfer.utils.cjs`);require(`../AccountActions/index.cjs`);let m=require(`@solana/web3.js`);var h=async(e,t)=>{let{addressLookupTableAccount:n,instructionLists:r}=JSON.parse(t).data,i=await Promise.all(n.map(async t=>{let n=await e.getAddressLookupTable(new m.PublicKey(t));if(!n.value)throw Error(`Failed to fetch lookup table: ${t}`);return n.value}));if(r.length===0)throw Error(`No instructions found`);return{instructions:r.map(e=>new m.TransactionInstruction({keys:e.accounts.map(e=>({pubkey:new m.PublicKey(e.pubkey),isSigner:e.isSigner,isWritable:e.isWritable})),programId:new m.PublicKey(e.programId),data:Buffer.from(e.data,`base64`)})),lookupTableAccounts:i}},g=async(e,t)=>{let n=m.VersionedTransaction.deserialize(Buffer.from(t,`base64`)),r=await Promise.all(n.message.addressTableLookups.map(async({accountKey:t})=>{let n=await e.getAddressLookupTable(t);if(!n.value)throw Error(`Failed to fetch lookup table: ${t.toBase58()}`);return n.value})),{instructions:i}=m.TransactionMessage.decompile(n.message,{addressLookupTableAccounts:r});return{instructions:i,lookupTableAccounts:r}},_=async(t,i,a,o)=>{let c=s.AccountActions.getAddressFromSubAccount(t,a);if(!c)throw Error(`Public account address is not available`);let{rpcUrl:l}=e.networkRegistry[t],u=r.createCustomSolanaConnection(l),d=new m.PublicKey(c),{instructions:f,lookupTableAccounts:p}=o===n.ExternalActionId.Lifi?await g(u,i):await h(u,i);return{connection:u,walletPublicKey:d,instructions:f,lookupTableAccounts:p}},v=async(e,r,s,h,g,v,y,b,x,S,C,w)=>{let T=i.validateAndGetChainId(r),[{connection:E,walletPublicKey:D,instructions:O,lookupTableAccounts:k},A,j]=await Promise.all([_(T,h,g,v),e.getRandomRelay(T),e.getEthereumAddressByChain(T)]);if(!A)throw Error(t.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let M=O,N=x??await l.getFeeStructure(T,b,r.map(e=>e.erc20TokenAddress),n.ExternalActionId.Emporium,[],35n),P=r[1],F;if(y)F=s[1]*N.variableRate/10000n;else{let e={...N,flatFee:0n},t=C&&w!==void 0?await u.calculateModifiedFeeStructure(T,C,w,e):e;if(F=t.flatFee,F>0n){let e=await a.getErc20TokenFromAPI(T,t.feeToken);if(!e)throw Error(`Failed to find fee token`);P=e}}if(F>0n){let{instructions:e}=await p.buildSolanaTransferInstructions(E,D,new m.PublicKey(A),P,F);M=[...M,...e]}let I=await c.sendProxyV0Transaction({connection:E,chainId:T,subAccount:g,payerPublicKey:D,instructions:M,lookupTableAccounts:k}),L=f.resolveSwapPairTokens(S,r,C);return d.emitTxPublicData(o.constructAdminData(S,T,r.map(e=>e.erc20TokenAddress),s,j,L)),I};exports.hinkalSolanaProxySwap=v;
|
|
@@ -2,5 +2,5 @@ import { AdminTransactionType, ERC20Token, SubAccount } from '../../types';
|
|
|
2
2
|
import { IHinkal } from './IHinkal';
|
|
3
3
|
import { FeeStructure } from '../../types/hinkal.types';
|
|
4
4
|
import { ExternalActionId } from '../../types/external-action.types';
|
|
5
|
-
export declare const hinkalSolanaProxySwap: (hinkal: IHinkal, erc20Tokens: ERC20Token[], amountChanges: bigint[], data: string, subAccount: SubAccount, externalActionId: ExternalActionId, isTheSameChainSwap: boolean,
|
|
5
|
+
export declare const hinkalSolanaProxySwap: (hinkal: IHinkal, erc20Tokens: ERC20Token[], amountChanges: bigint[], data: string, subAccount: SubAccount, externalActionId: ExternalActionId, isTheSameChainSwap: boolean, feeTokenAddress?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType, bridgedToken?: ERC20Token, bridgedTokenAmount?: bigint) => Promise<string>;
|
|
6
6
|
export declare const getSolanaProxySwapSerializedTransaction: (chainId: number, data: string, subAccount: SubAccount, externalActionId: ExternalActionId) => Promise<string>;
|
|
@@ -2,91 +2,93 @@ import { networkRegistry as e } from "../../constants/chains.constants.mjs";
|
|
|
2
2
|
import "../../constants/protocol.constants.mjs";
|
|
3
3
|
import { transactionErrorCodes as t } from "../../error-handling/error-codes.constants.mjs";
|
|
4
4
|
import { ExternalActionId as n } from "../../types/external-action.types.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
5
|
+
import { createCustomSolanaConnection as r } from "../../functions/utils/create-provider.mjs";
|
|
6
|
+
import { validateAndGetChainId as i } from "../../functions/utils/token-check.utils.mjs";
|
|
7
|
+
import { getErc20TokenFromAPI as a } from "../../functions/utils/erc20tokenFunctions.mjs";
|
|
8
|
+
import { constructAdminData as o } from "../../functions/pre-transaction/constructAdminData.mjs";
|
|
9
9
|
import { AccountActions as s } from "../AccountActions/AccountActions.mjs";
|
|
10
10
|
import { sendProxyV0Transaction as c } from "../../functions/pre-transaction/sendV0Transaction.mjs";
|
|
11
11
|
import { getFeeStructure as l } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
12
|
-
import {
|
|
12
|
+
import { calculateModifiedFeeStructure as u } from "../../functions/utils/fees.utils.mjs";
|
|
13
|
+
import { emitTxPublicData as d } from "../../API/admin-calls.mjs";
|
|
13
14
|
import "../../constants/index.mjs";
|
|
14
|
-
import {
|
|
15
|
-
import { buildSolanaTransferInstructions as
|
|
15
|
+
import { resolveSwapPairTokens as f } from "../../functions/utils/admin-dimensions.mjs";
|
|
16
|
+
import { buildSolanaTransferInstructions as p } from "../../functions/pre-transaction/solanaTransfer.utils.mjs";
|
|
16
17
|
import "../AccountActions/index.mjs";
|
|
17
|
-
import { PublicKey as
|
|
18
|
+
import { PublicKey as m, TransactionInstruction as h, TransactionMessage as g, VersionedTransaction as _ } from "@solana/web3.js";
|
|
18
19
|
//#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.ts
|
|
19
|
-
var
|
|
20
|
+
var v = async (e, t) => {
|
|
20
21
|
let { addressLookupTableAccount: n, instructionLists: r } = JSON.parse(t).data, i = await Promise.all(n.map(async (t) => {
|
|
21
|
-
let n = await e.getAddressLookupTable(new
|
|
22
|
+
let n = await e.getAddressLookupTable(new m(t));
|
|
22
23
|
if (!n.value) throw Error(`Failed to fetch lookup table: ${t}`);
|
|
23
24
|
return n.value;
|
|
24
25
|
}));
|
|
25
26
|
if (r.length === 0) throw Error("No instructions found");
|
|
26
27
|
return {
|
|
27
|
-
instructions: r.map((e) => new
|
|
28
|
+
instructions: r.map((e) => new h({
|
|
28
29
|
keys: e.accounts.map((e) => ({
|
|
29
|
-
pubkey: new
|
|
30
|
+
pubkey: new m(e.pubkey),
|
|
30
31
|
isSigner: e.isSigner,
|
|
31
32
|
isWritable: e.isWritable
|
|
32
33
|
})),
|
|
33
|
-
programId: new
|
|
34
|
+
programId: new m(e.programId),
|
|
34
35
|
data: Buffer.from(e.data, "base64")
|
|
35
36
|
})),
|
|
36
37
|
lookupTableAccounts: i
|
|
37
38
|
};
|
|
38
|
-
},
|
|
39
|
-
let n =
|
|
39
|
+
}, y = async (e, t) => {
|
|
40
|
+
let n = _.deserialize(Buffer.from(t, "base64")), r = await Promise.all(n.message.addressTableLookups.map(async ({ accountKey: t }) => {
|
|
40
41
|
let n = await e.getAddressLookupTable(t);
|
|
41
42
|
if (!n.value) throw Error(`Failed to fetch lookup table: ${t.toBase58()}`);
|
|
42
43
|
return n.value;
|
|
43
|
-
})), { instructions: i } =
|
|
44
|
+
})), { instructions: i } = g.decompile(n.message, { addressLookupTableAccounts: r });
|
|
44
45
|
return {
|
|
45
46
|
instructions: i,
|
|
46
47
|
lookupTableAccounts: r
|
|
47
48
|
};
|
|
48
|
-
},
|
|
49
|
-
let c = s.getAddressFromSubAccount(t,
|
|
49
|
+
}, b = async (t, i, a, o) => {
|
|
50
|
+
let c = s.getAddressFromSubAccount(t, a);
|
|
50
51
|
if (!c) throw Error("Public account address is not available");
|
|
51
|
-
let { rpcUrl: l } = e[t], u =
|
|
52
|
+
let { rpcUrl: l } = e[t], u = r(l), d = new m(c), { instructions: f, lookupTableAccounts: p } = o === n.Lifi ? await y(u, i) : await v(u, i);
|
|
52
53
|
return {
|
|
53
54
|
connection: u,
|
|
54
55
|
walletPublicKey: d,
|
|
55
56
|
instructions: f,
|
|
56
|
-
lookupTableAccounts:
|
|
57
|
+
lookupTableAccounts: p
|
|
57
58
|
};
|
|
58
|
-
},
|
|
59
|
-
let
|
|
60
|
-
|
|
61
|
-
e.getRandomRelay(
|
|
62
|
-
e.getEthereumAddressByChain(
|
|
59
|
+
}, x = async (e, r, s, h, g, _, v, y, x, S, C, w) => {
|
|
60
|
+
let T = i(r), [{ connection: E, walletPublicKey: D, instructions: O, lookupTableAccounts: k }, A, j] = await Promise.all([
|
|
61
|
+
b(T, h, g, _),
|
|
62
|
+
e.getRandomRelay(T),
|
|
63
|
+
e.getEthereumAddressByChain(T)
|
|
63
64
|
]);
|
|
64
|
-
if (!
|
|
65
|
-
let
|
|
66
|
-
if (
|
|
67
|
-
|
|
68
|
-
j = [...D, ...n];
|
|
69
|
-
} else {
|
|
65
|
+
if (!A) throw Error(t.RELAYER_NOT_AVAILABLE);
|
|
66
|
+
let M = O, N = x ?? await l(T, y, r.map((e) => e.erc20TokenAddress), n.Emporium, [], 35n), P = r[1], F;
|
|
67
|
+
if (v) F = s[1] * N.variableRate / 10000n;
|
|
68
|
+
else {
|
|
70
69
|
let e = {
|
|
71
|
-
...
|
|
70
|
+
...N,
|
|
72
71
|
flatFee: 0n
|
|
73
|
-
}, t =
|
|
74
|
-
if (t.flatFee > 0n) {
|
|
75
|
-
let e = await
|
|
72
|
+
}, t = C && w !== void 0 ? await u(T, C, w, e) : e;
|
|
73
|
+
if (F = t.flatFee, F > 0n) {
|
|
74
|
+
let e = await a(T, t.feeToken);
|
|
76
75
|
if (!e) throw Error("Failed to find fee token");
|
|
77
|
-
|
|
78
|
-
j = [...D, ...n];
|
|
76
|
+
P = e;
|
|
79
77
|
}
|
|
80
78
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
79
|
+
if (F > 0n) {
|
|
80
|
+
let { instructions: e } = await p(E, D, new m(A), P, F);
|
|
81
|
+
M = [...M, ...e];
|
|
82
|
+
}
|
|
83
|
+
let I = await c({
|
|
84
|
+
connection: E,
|
|
85
|
+
chainId: T,
|
|
86
|
+
subAccount: g,
|
|
87
|
+
payerPublicKey: D,
|
|
88
|
+
instructions: M,
|
|
89
|
+
lookupTableAccounts: k
|
|
90
|
+
}), L = f(S, r, C);
|
|
91
|
+
return d(o(S, T, r.map((e) => e.erc20TokenAddress), s, j, L)), I;
|
|
90
92
|
};
|
|
91
93
|
//#endregion
|
|
92
|
-
export {
|
|
94
|
+
export { x as hinkalSolanaProxySwap };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../../functions/utils/solanaMint.utils.cjs`),i=require(`../../functions/utils/create-provider.cjs`),a=require(`../../functions/utils/receive-vault-solana.utils.cjs`),o=require(`../../functions/utils/receive-vault.utils.cjs`),s=require(`../../functions/pre-transaction/solana.cjs`),c=require(`../../functions/pre-transaction/sendV0Transaction.cjs`),l=require(`../../functions/utils/solana-program.utils.cjs`);let u=require(`@solana/web3.js`),d=require(`bs58`);d=e.__toESM(d);let f=require(`@solana/spl-token`),p=require(`@coral-xyz/anchor`);var m=e=>({recipient:s.buildAnchorStealthAddressStructure(e.recipient),owner:new u.PublicKey(e.owner),version:Number(e.version)}),h=e=>{let n=o.getReceiveVaultFactoryAddress(e);if(!n)throw Error(`receive vault: no factory on chain ${e}`);let{hinkalIdl:r}=t.networkRegistry[e].contractData;if(!r)throw Error(`No IDL configured for Solana program on this network`);let{rpcUrl:a}=t.networkRegistry[e],s=i.createCustomSolanaConnection(a),c=l.createReadOnlySolanaProgram(s,r);return{factoryAddress:n,originalDeployer:o.getSolanaOriginalDeployer(e),connection:s,program:c,hinkalIdl:r}},g=async(e,t,i,o,s,l,g,_,v)=>{let{factoryAddress:y,originalDeployer:b,hinkalIdl:x,connection:S,program:C}=h(t),w=a.computeSolanaReceiveVaultAddress(i,y,b),T=new u.PublicKey(w),E=new u.PublicKey(s),D=new u.PublicKey(_),O=o===n.solanaNativeAddress,{mintPublicKey:k}=r.formatMintAddress(o),A=O?f.TOKEN_PROGRAM_ID:(await S.getAccountInfo(k))?.owner;if(!A||!A.equals(f.TOKEN_PROGRAM_ID)&&!A.equals(f.TOKEN_2022_PROGRAM_ID))throw Error(`receive vault: unsupported token program`);let j=a.getSolanaReceiveVaultRecoveryDigest(y,b,w,o,s,l),M=a.computeSolanaRecoveryMarkerAddress(y,b,j),N=u.Ed25519Program.createInstructionWithPublicKey({publicKey:new u.PublicKey(i.owner).toBytes(),message:j,signature:d.default.decode(g)}),P=await C.methods.receiveVaultRecover(m(i),E,new p.BN(l.toString()),Array.from(j)).accounts({signer:D,originalDeployer:new u.PublicKey(b),vault:T,vaultAta:O?null:(0,f.getAssociatedTokenAddressSync)(k,T,!0,A),mint:O?null:k,destination:E,destinationAta:O?null:void 0,tokenProgram:A,recoveryMarker:M,instructionsSysvar:u.SYSVAR_INSTRUCTIONS_PUBKEY}).instruction();if(v){let{blockhash:e}=await S.getLatestBlockhash(),t=new u.Transaction;return t.feePayer=D,t.recentBlockhash=e,t.add(N,P),t.serialize({requireAllSignatures:!1}).toString(`base64`)}let{connection:F,wallet:I}=e.getSolanaProgram(x).provider;if(!I)throw Error(`missing solana wallet`);return c.sendInstructions(F,I,D,[N,P])};exports.hinkalSolanaReceiveVaultRecover=g;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TransactionInstruction } from '@solana/web3.js';
|
|
2
|
+
import { ReceiveVaultParams } from '../../types/receive-vault.types';
|
|
3
|
+
import { IHinkal } from './IHinkal';
|
|
4
|
+
export declare const buildSolanaReceiveVaultSettleInstructions: (chainId: number, params: ReceiveVaultParams, token: string, encryptedOutput: string, outputSignature: string, relayerPublicKey: string, flatFee: bigint, variableRate: bigint) => Promise<TransactionInstruction[]>;
|
|
5
|
+
export declare const hinkalSolanaReceiveVaultRecover: (hinkal: IHinkal, chainId: number, params: ReceiveVaultParams, token: string, to: string, deadline: bigint, signature: string, feePayer: string, returnTxData: boolean) => Promise<string>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { networkRegistry as e } from "../../constants/chains.constants.mjs";
|
|
2
|
+
import { solanaNativeAddress as t } from "../../constants/protocol.constants.mjs";
|
|
3
|
+
import { formatMintAddress as n } from "../../functions/utils/solanaMint.utils.mjs";
|
|
4
|
+
import { createCustomSolanaConnection as r } from "../../functions/utils/create-provider.mjs";
|
|
5
|
+
import { computeSolanaReceiveVaultAddress as i, computeSolanaRecoveryMarkerAddress as a, getSolanaReceiveVaultRecoveryDigest as o } from "../../functions/utils/receive-vault-solana.utils.mjs";
|
|
6
|
+
import { getReceiveVaultFactoryAddress as s, getSolanaOriginalDeployer as c } from "../../functions/utils/receive-vault.utils.mjs";
|
|
7
|
+
import { buildAnchorStealthAddressStructure as l } from "../../functions/pre-transaction/solana.mjs";
|
|
8
|
+
import { sendInstructions as u } from "../../functions/pre-transaction/sendV0Transaction.mjs";
|
|
9
|
+
import { createReadOnlySolanaProgram as d } from "../../functions/utils/solana-program.utils.mjs";
|
|
10
|
+
import { Ed25519Program as f, PublicKey as p, SYSVAR_INSTRUCTIONS_PUBKEY as m, Transaction as h } from "@solana/web3.js";
|
|
11
|
+
import g from "bs58";
|
|
12
|
+
import { TOKEN_2022_PROGRAM_ID as _, TOKEN_PROGRAM_ID as v, getAssociatedTokenAddressSync as y } from "@solana/spl-token";
|
|
13
|
+
import { BN as b } from "@coral-xyz/anchor";
|
|
14
|
+
//#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaReceiveVault.ts
|
|
15
|
+
var x = (e) => ({
|
|
16
|
+
recipient: l(e.recipient),
|
|
17
|
+
owner: new p(e.owner),
|
|
18
|
+
version: Number(e.version)
|
|
19
|
+
}), S = (t) => {
|
|
20
|
+
let n = s(t);
|
|
21
|
+
if (!n) throw Error(`receive vault: no factory on chain ${t}`);
|
|
22
|
+
let { hinkalIdl: i } = e[t].contractData;
|
|
23
|
+
if (!i) throw Error("No IDL configured for Solana program on this network");
|
|
24
|
+
let { rpcUrl: a } = e[t], o = r(a), l = d(o, i);
|
|
25
|
+
return {
|
|
26
|
+
factoryAddress: n,
|
|
27
|
+
originalDeployer: c(t),
|
|
28
|
+
connection: o,
|
|
29
|
+
program: l,
|
|
30
|
+
hinkalIdl: i
|
|
31
|
+
};
|
|
32
|
+
}, C = async (e, r, s, c, l, d, C, w, T) => {
|
|
33
|
+
let { factoryAddress: E, originalDeployer: D, hinkalIdl: O, connection: k, program: A } = S(r), j = i(s, E, D), M = new p(j), N = new p(l), P = new p(w), F = c === t, { mintPublicKey: I } = n(c), L = F ? v : (await k.getAccountInfo(I))?.owner;
|
|
34
|
+
if (!L || !L.equals(v) && !L.equals(_)) throw Error("receive vault: unsupported token program");
|
|
35
|
+
let R = o(E, D, j, c, l, d), z = a(E, D, R), B = f.createInstructionWithPublicKey({
|
|
36
|
+
publicKey: new p(s.owner).toBytes(),
|
|
37
|
+
message: R,
|
|
38
|
+
signature: g.decode(C)
|
|
39
|
+
}), V = await A.methods.receiveVaultRecover(x(s), N, new b(d.toString()), Array.from(R)).accounts({
|
|
40
|
+
signer: P,
|
|
41
|
+
originalDeployer: new p(D),
|
|
42
|
+
vault: M,
|
|
43
|
+
vaultAta: F ? null : y(I, M, !0, L),
|
|
44
|
+
mint: F ? null : I,
|
|
45
|
+
destination: N,
|
|
46
|
+
destinationAta: F ? null : void 0,
|
|
47
|
+
tokenProgram: L,
|
|
48
|
+
recoveryMarker: z,
|
|
49
|
+
instructionsSysvar: m
|
|
50
|
+
}).instruction();
|
|
51
|
+
if (T) {
|
|
52
|
+
let { blockhash: e } = await k.getLatestBlockhash(), t = new h();
|
|
53
|
+
return t.feePayer = P, t.recentBlockhash = e, t.add(B, V), t.serialize({ requireAllSignatures: !1 }).toString("base64");
|
|
54
|
+
}
|
|
55
|
+
let { connection: H, wallet: U } = e.getSolanaProgram(O).provider;
|
|
56
|
+
if (!U) throw Error("missing solana wallet");
|
|
57
|
+
return u(H, U, P, [B, V]);
|
|
58
|
+
};
|
|
59
|
+
//#endregion
|
|
60
|
+
export { C as hinkalSolanaReceiveVaultRecover };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/utils/addresses.cjs`),i=require(`../../types/external-action.types.cjs`),a=require(`../../types/solana-transact.types.cjs`);require(`../../types/index.cjs`);const o=require(`../../functions/utils/token-check.utils.cjs`),s=require(`../../functions/pre-transaction/constructAdminData.cjs`),c=require(`../../functions/pre-transaction/calculateSolanaNullifierCount.cjs`),l=require(`../../functions/pre-transaction/getFeeStructure.cjs`)
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/utils/addresses.cjs`),i=require(`../../types/external-action.types.cjs`),a=require(`../../types/solana-transact.types.cjs`);require(`../../types/index.cjs`);const o=require(`../../functions/utils/token-check.utils.cjs`),s=require(`../../functions/pre-transaction/constructAdminData.cjs`),c=require(`../../functions/pre-transaction/calculateSolanaNullifierCount.cjs`),l=require(`../../functions/pre-transaction/getFeeStructure.cjs`),u=require(`../../functions/utils/fees.utils.cjs`);require(`../../functions/pre-transaction/index.cjs`);const d=require(`./hinkalSolanaTransact.cjs`);var f=async(f,p,m,h,g,_,v,y=!1)=>{if(y)throw Error(`onlyGasEstimate is not supported for Solana transfer`);if(!r.isValidPrivateAddress(h))throw Error(n.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let b=o.validateAndGetChainId(p),x=[...m],S=p.map(e=>e.erc20TokenAddress);if(S.length>1)throw Error(`Solana Transfer: Only one mint address is supported`);let{originalDeployer:C}=e.networkRegistry[b].contractData;if(!C)throw Error(`missing data`);let w=g??S[0],T={mintTo:w,nullifierCount:await c.calculateSolanaNullifierCount(f,b,S,x),rootInsertCount:2},E=_??await l.getFeeStructure(b,w,S,i.ExternalActionId.Transact,[],25n,T);E.variableRate||=t.HINKAL_PRIVATE_SEND_VARIABLE_RATE;let D=-x[0],O=u.calculateTotalFee(D,E);x[0]-=O;let[k,A]=await Promise.all([f.getRandomRelay(b,!0),f.getEthereumAddressByChain(b)]);if(!k)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let j={recipient:k,mint:S[0]===`11111111111111111111111111111111`?void 0:S[0]},M=s.constructAdminData(v,b,S,x,A);return d.hinkalSolanaTransact(f,{chainId:b,mintAddresses:S,amountChanges:x,relayAddress:k,recipient:t.solanaNativeAddress,signer:k,functionName:`transfer`,accounts:j,relayerFee:O,recipientAddress:h,recipientAmounts:[D],submit:{mode:a.SolanaSubmitMode.Relayer,adminData:M}})};exports.hinkalSolanaTransfer=f;
|
|
@@ -9,8 +9,8 @@ import { validateAndGetChainId as s } from "../../functions/utils/token-check.ut
|
|
|
9
9
|
import { constructAdminData as c } from "../../functions/pre-transaction/constructAdminData.mjs";
|
|
10
10
|
import { calculateSolanaNullifierCount as l } from "../../functions/pre-transaction/calculateSolanaNullifierCount.mjs";
|
|
11
11
|
import { getFeeStructure as u } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
12
|
-
import "../../functions/pre-transaction/index.mjs";
|
|
13
12
|
import { calculateTotalFee as d } from "../../functions/utils/fees.utils.mjs";
|
|
13
|
+
import "../../functions/pre-transaction/index.mjs";
|
|
14
14
|
import { hinkalSolanaTransact as f } from "./hinkalSolanaTransact.mjs";
|
|
15
15
|
//#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaTransfer.ts
|
|
16
16
|
var p = async (p, m, h, g, _, v, y, b = !1) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../types/external-action.types.cjs`),r=require(`../../types/solana-transact.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../functions/utils/token-check.utils.cjs`),a=require(`../../functions/pre-transaction/constructAdminData.cjs`),o=require(`../../functions/pre-transaction/calculateSolanaNullifierCount.cjs`),s=require(`../../functions/pre-transaction/getFeeStructure.cjs`);require(`../../functions/pre-transaction/index.cjs`),require(`../../constants/index.cjs`);const
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../types/external-action.types.cjs`),r=require(`../../types/solana-transact.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../functions/utils/token-check.utils.cjs`),a=require(`../../functions/pre-transaction/constructAdminData.cjs`),o=require(`../../functions/pre-transaction/calculateSolanaNullifierCount.cjs`),s=require(`../../functions/pre-transaction/getFeeStructure.cjs`),c=require(`../../functions/utils/fees.utils.cjs`);require(`../../functions/pre-transaction/index.cjs`),require(`../../constants/index.cjs`);const l=require(`./hinkalSolanaTransact.cjs`);var u=async(u,d,f,p,m,h,g,_)=>{let v=i.validateAndGetChainId(d),y=d.map(e=>e.erc20TokenAddress),b=d[0];if(!b)throw Error(`Solana Withdraw: No Token Found`);let{originalDeployer:x}=e.networkRegistry[v].contractData;if(!x)throw Error(`missing data`);let S=m??y[0],C={mintTo:y[0],recipient:p,nullifierCount:await o.calculateSolanaNullifierCount(u,v,y,f)},w=h??await s.getFeeStructure(v,S,y,n.ExternalActionId.Transact,[],g,C);h&&g!==void 0&&(w={...w,variableRate:g});let T=await c.calculateModifiedFeeStructure(v,b,-f[0],w);f[0]-=T.flatFee;let[E,D]=await Promise.all([u.getRandomRelay(v,!0),u.getEthereumAddress()]);if(!E)throw Error(t.transactionErrorCodes.RELAYER_NOT_AVAILABLE);if(y.length>1)throw Error(`Solana Withdraw: Only one mint address is supported`);let O={recipient:p,mint:y[0]===`11111111111111111111111111111111`?void 0:y[0]},k=a.constructAdminData(_,v,y,f,D);return l.hinkalSolanaTransact(u,{chainId:v,mintAddresses:y,amountChanges:f,relayAddress:E,recipient:p,signer:E,functionName:`transact`,accounts:O,relayerFee:T.flatFee,variableRate:T.variableRate,submit:{mode:r.SolanaSubmitMode.Relayer,adminData:k}})};exports.hinkalSolanaWithdraw=u;
|
|
@@ -8,9 +8,9 @@ import { validateAndGetChainId as i } from "../../functions/utils/token-check.ut
|
|
|
8
8
|
import { constructAdminData as a } from "../../functions/pre-transaction/constructAdminData.mjs";
|
|
9
9
|
import { calculateSolanaNullifierCount as o } from "../../functions/pre-transaction/calculateSolanaNullifierCount.mjs";
|
|
10
10
|
import { getFeeStructure as s } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
11
|
+
import { calculateModifiedFeeStructure as c } from "../../functions/utils/fees.utils.mjs";
|
|
11
12
|
import "../../functions/pre-transaction/index.mjs";
|
|
12
13
|
import "../../constants/index.mjs";
|
|
13
|
-
import { calculateModifiedFeeStructure as c } from "../../functions/utils/fees.utils.mjs";
|
|
14
14
|
import { hinkalSolanaTransact as l } from "./hinkalSolanaTransact.mjs";
|
|
15
15
|
//#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.ts
|
|
16
16
|
var u = async (u, d, f, p, m, h, g, _) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../utxo/Utxo.cjs`),i=require(`../../types/transact.types.cjs`),a=require(`../../functions/web3/events/getShieldedBalance.cjs`),o=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),s=require(`../../functions/snarkjs/common.snarkjs.cjs`),c=require(`../../functions/snarkjs/constructTxEnclave.cjs`),l=require(`../../functions/pre-transaction/speculativeUtxo.cjs`),u=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),d=require(`../../functions/web3/functionCalls/submitProof.cjs`);var f=2,p=6,m=(e,t)=>{let n=Math.max(...t.map(e=>e.length))<=f?f:p;return t.map(t=>{let i=t[0];if(!i)throw Error(`hinkalTransact: inputUtxos must contain at least one note per token`);let a=[...t];for(;a.length<n;)a.push(new r.Utxo({amount:0n,erc20TokenAddress:i.erc20TokenAddress,mintAddress:i.mintAddress,nullifyingKey:e.getShieldedPrivateKey(),spendingPublicKey:e.getSpendingKeyPair().pubSpendingBJJPoint}));return a})},h=(e,t,n)=>{if(t.length!==1||t[0].length!==1)throw Error(`selfOutputAmounts only supports a single token with a single self-output`);let i=t[0][0],a=n.reduce((e,t)=>e+t,0n);if(a!==i.amount)throw Error(`selfOutputAmounts sum to ${a}, expected ${i.amount}`);return[n.map(t=>new r.Utxo({amount:t,erc20TokenAddress:i.erc20TokenAddress,mintAddress:i.mintAddress,nullifyingKey:e.getShieldedPrivateKey(),timeStamp:i.timeStamp,spendingPublicKey:e.getSpendingKeyPair().pubSpendingBJJPoint}))]},g=async(e,r,i)=>{let{chainId:s,erc20Addresses:c,amountChanges:d,externalAddress:f,externalActionId:p,externalActionMetadata:g,feeStructure:_,relay:v,onChainCreation:y,recipientAddress:b,recipientAmounts:x,useBlockedUtxos:S,inputUtxos:C,forceEmptyUtxos:w,originalSender:T,subAccountPrivateKey:E,emporiumOps:D,createBlockedUtxos:O,selfOutputAmounts:k,speculative:A,slippageValues:j}=r,M=C?m(i,C):[...await a.addPaddingToUtxos(e,s,c,d,void 0,w,S,y)],N=o.buildOutputUtxos(i,M,d,b,x),P=k?h(i,N,k):N,F=e.merkleTreeHinkalByChain[s],I=A?l.speculativeMerkleTree(F,M,A.pendingLeaves):F,{zkCallData:L,circomData:R,dimData:z,commitmentValidationData:B}=await u.constructZkProof(I,M,P,i,p??0n,f,D??g??`0x00`,_??n.zeroFeeStructure,v??t.zeroAddress,s,y,void 0,T,E,void 0,O,I!==F,j);return{zkCallData:L,circomData:R,dimData:z,commitmentValidationData:B}},_=async(t,n,r)=>{let{chainId:i,erc20Addresses:a,externalAddress:o,amountChanges:s,relay:l,feeStructure:u,externalActionId:d,externalActionMetadata:f,onChainCreation:p,recipientAddress:m,recipientAmounts:h,useBlockedUtxos:g,createBlockedUtxos:_,skipLock:v,selfOutputAmounts:y,forceEmptyUtxos:b,messageSeed:x,inputUtxos:S,originalSender:C,speculative:w,slippageValues:T}=n,{jobId:
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../utxo/Utxo.cjs`),i=require(`../../types/transact.types.cjs`),a=require(`../../functions/web3/events/getShieldedBalance.cjs`),o=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),s=require(`../../functions/snarkjs/common.snarkjs.cjs`),c=require(`../../functions/snarkjs/constructTxEnclave.cjs`),l=require(`../../functions/pre-transaction/speculativeUtxo.cjs`),u=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),d=require(`../../functions/web3/functionCalls/submitProof.cjs`);var f=2,p=6,m=(e,t)=>{let n=Math.max(...t.map(e=>e.length))<=f?f:p;return t.map(t=>{let i=t[0];if(!i)throw Error(`hinkalTransact: inputUtxos must contain at least one note per token`);let a=[...t];for(;a.length<n;)a.push(new r.Utxo({amount:0n,erc20TokenAddress:i.erc20TokenAddress,mintAddress:i.mintAddress,nullifyingKey:e.getShieldedPrivateKey(),spendingPublicKey:e.getSpendingKeyPair().pubSpendingBJJPoint}));return a})},h=(e,t,n)=>{if(t.length!==1||t[0].length!==1)throw Error(`selfOutputAmounts only supports a single token with a single self-output`);let i=t[0][0],a=n.reduce((e,t)=>e+t,0n);if(a!==i.amount)throw Error(`selfOutputAmounts sum to ${a}, expected ${i.amount}`);return[n.map(t=>new r.Utxo({amount:t,erc20TokenAddress:i.erc20TokenAddress,mintAddress:i.mintAddress,nullifyingKey:e.getShieldedPrivateKey(),timeStamp:i.timeStamp,spendingPublicKey:e.getSpendingKeyPair().pubSpendingBJJPoint}))]},g=async(e,r,i)=>{let{chainId:s,erc20Addresses:c,amountChanges:d,externalAddress:f,externalActionId:p,externalActionMetadata:g,feeStructure:_,relay:v,onChainCreation:y,recipientAddress:b,recipientAmounts:x,useBlockedUtxos:S,inputUtxos:C,forceEmptyUtxos:w,originalSender:T,subAccountPrivateKey:E,emporiumOps:D,createBlockedUtxos:O,selfOutputAmounts:k,speculative:A,slippageValues:j}=r,M=C?m(i,C):[...await a.addPaddingToUtxos(e,s,c,d,void 0,w,S,y)],N=o.buildOutputUtxos(i,M,d,b,x),P=k?h(i,N,k):N,F=e.merkleTreeHinkalByChain[s],I=A?l.speculativeMerkleTree(F,M,A.pendingLeaves):F,{zkCallData:L,circomData:R,dimData:z,commitmentValidationData:B}=await u.constructZkProof(I,M,P,i,p??0n,f,D??g??`0x00`,_??n.zeroFeeStructure,v??t.zeroAddress,s,y,void 0,T,E,void 0,O,I!==F,j);return{zkCallData:L,circomData:R,dimData:z,commitmentValidationData:B}},_=async(t,n,r)=>{let{chainId:i,erc20Addresses:a,externalAddress:o,amountChanges:s,relay:l,feeStructure:u,externalActionId:d,externalActionMetadata:f,onChainCreation:p,recipientAddress:m,recipientAmounts:h,useBlockedUtxos:g,createBlockedUtxos:_,skipLock:v,selfOutputAmounts:y,forceEmptyUtxos:b,messageSeed:x,inputUtxos:S,originalSender:C,speculative:w,slippageValues:T,receiveVaultAddress:E}=n,{jobId:D,signedMessageHash:O}=await c.prepareTxEnclaveCall(t,{chainId:i,hinkalAddress:e.networkRegistry[i].contractData.hinkalAddress,erc20Addresses:a,externalAddress:o,originalSender:C,amountChanges:s,relay:l,feeStructure:u,externalActionId:d,externalActionMetadata:f,onChainCreation:p,recipientAddress:m,recipientAmounts:h,useBlockedUtxos:g,createBlockedUtxos:_,skipLock:v,selfOutputAmounts:y,forceEmptyUtxos:b,messageSeed:x,inputCommitments:w?void 0:c.collectInputCommitments(S),speculative:w,slippageValues:T,receiveVaultAddress:E},r),{R8:k,S:A}=r.signEddsa(BigInt(O));return{jobId:D,eddsaSignature:{R8:k,S:A}}},v=async(e,t,n)=>{let r=await d.submitProof(e,t,n);return t.submit.mode!==i.SubmitMode.ProofOnly&&t.onTxSubmitLocally?.(n.circomData),r},y=async(e,t)=>{if(t.userKeys&&!t.inputUtxos)throw Error(`hinkalTransact: userKeys requires explicit inputUtxos`);let n=t.userKeys??e.userKeys,{chainId:r,submit:a}=t;if(e.generateProofRemotely){let{jobId:o,eddsaSignature:l}=await _(e,t,n);if(a.mode===i.SubmitMode.Relayer)return c.finalizeTxEnclaveCallRelay(o,l,r,{adminData:a.adminData,authorizationData:a.authorizationData,withUniswapWorkAround:a.withUniswapWorkAround});let{zkCallData:u,circomData:d,dimData:f,commitmentValidationData:p,tronProofSignature:m}=await c.finalizeTxEnclaveCall(o,l);return v(e,t,{zkCallData:u,circomData:s.deserializeCircomData(d),dimData:f,commitmentValidationData:p,tronProofSignature:m})}return v(e,t,await g(e,t,n))};exports.hinkalTransact=y;
|
|
@@ -47,7 +47,7 @@ var h = 2, g = 6, _ = (e, t) => {
|
|
|
47
47
|
commitmentValidationData: B
|
|
48
48
|
};
|
|
49
49
|
}, b = async (t, n, r) => {
|
|
50
|
-
let { chainId: i, erc20Addresses: a, externalAddress: o, amountChanges: s, relay: l, feeStructure: u, externalActionId: f, externalActionMetadata: p, onChainCreation: m, recipientAddress: h, recipientAmounts: g, useBlockedUtxos: _, createBlockedUtxos: v, skipLock: y, selfOutputAmounts: b, forceEmptyUtxos: x, messageSeed: S, inputUtxos: C, originalSender: w, speculative: T, slippageValues: E } = n, { jobId:
|
|
50
|
+
let { chainId: i, erc20Addresses: a, externalAddress: o, amountChanges: s, relay: l, feeStructure: u, externalActionId: f, externalActionMetadata: p, onChainCreation: m, recipientAddress: h, recipientAmounts: g, useBlockedUtxos: _, createBlockedUtxos: v, skipLock: y, selfOutputAmounts: b, forceEmptyUtxos: x, messageSeed: S, inputUtxos: C, originalSender: w, speculative: T, slippageValues: E, receiveVaultAddress: D } = n, { jobId: O, signedMessageHash: k } = await d(t, {
|
|
51
51
|
chainId: i,
|
|
52
52
|
hinkalAddress: e[i].contractData.hinkalAddress,
|
|
53
53
|
erc20Addresses: a,
|
|
@@ -69,13 +69,14 @@ var h = 2, g = 6, _ = (e, t) => {
|
|
|
69
69
|
messageSeed: S,
|
|
70
70
|
inputCommitments: T ? void 0 : c(C),
|
|
71
71
|
speculative: T,
|
|
72
|
-
slippageValues: E
|
|
73
|
-
|
|
72
|
+
slippageValues: E,
|
|
73
|
+
receiveVaultAddress: D
|
|
74
|
+
}, r), { R8: A, S: j } = r.signEddsa(BigInt(k));
|
|
74
75
|
return {
|
|
75
|
-
jobId:
|
|
76
|
+
jobId: O,
|
|
76
77
|
eddsaSignature: {
|
|
77
|
-
R8:
|
|
78
|
-
S:
|
|
78
|
+
R8: A,
|
|
79
|
+
S: j
|
|
79
80
|
}
|
|
80
81
|
};
|
|
81
82
|
}, x = async (e, t, n) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../functions/utils/tron.utils.cjs`),r=require(`../../functions/utils/addresses.cjs`),i=require(`../../types/external-action.types.cjs`),a=require(`../../types/transact.types.cjs`),o=require(`../../functions/utils/token-check.utils.cjs`),s=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),c=require(`../../functions/pre-transaction/constructAdminData.cjs`),l=require(`../../functions/pre-transaction/getFeeStructure.cjs`);require(`../../functions/pre-transaction/index.cjs`);const
|
|
1
|
+
const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../functions/utils/tron.utils.cjs`),r=require(`../../functions/utils/addresses.cjs`),i=require(`../../types/external-action.types.cjs`),a=require(`../../types/transact.types.cjs`),o=require(`../../functions/utils/token-check.utils.cjs`),s=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),c=require(`../../functions/pre-transaction/constructAdminData.cjs`),l=require(`../../functions/pre-transaction/getFeeStructure.cjs`),u=require(`../../functions/utils/fees.utils.cjs`);require(`../../functions/pre-transaction/index.cjs`);const d=require(`./hinkalTransact.cjs`),f=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var p=async(p,m,h,g,_,v,y)=>{let b=o.validateAndGetChainId(m);if(!r.isValidPrivateAddress(g))throw Error(t.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let x=n.addressToHexFormat(await p.getEthereumAddressByChain(b)),S=m.map(e=>e.erc20TokenAddress),C=await s.modifyVolatileTokenAmountChanges(b,m,h),w=v??await l.getFeeStructure(b,_,S,i.ExternalActionId.Transact,[],25n);w.variableRate||=e.HINKAL_PRIVATE_SEND_VARIABLE_RATE;let T=m[0];if(!T)throw Error(`Transfer Action: No Token Found`);let E=-C[0],D=await u.calculateModifiedFeeStructure(b,T,E,w);await f.mergeWithFeeStructure(b,S,C,D);let O=await p.getRandomRelay(b,!0);if(!O)throw Error(t.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let k=c.constructAdminData(y,b,S,C,x);return d.hinkalTransact(p,{chainId:b,erc20Addresses:S,amountChanges:C,externalAddress:O,feeStructure:D,relay:O,recipientAddress:[g],recipientAmounts:[S.map((e,t)=>t===0?E:0n)],submit:{mode:a.SubmitMode.Relayer,adminData:k}})};exports.hinkalTransfer=p;
|
|
@@ -8,9 +8,9 @@ import { validateAndGetChainId as o } from "../../functions/utils/token-check.ut
|
|
|
8
8
|
import { modifyVolatileTokenAmountChanges as s } from "../../functions/pre-transaction/getVolatileTransferAmount.mjs";
|
|
9
9
|
import { constructAdminData as c } from "../../functions/pre-transaction/constructAdminData.mjs";
|
|
10
10
|
import { getFeeStructure as l } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
11
|
+
import { calculateModifiedFeeStructure as u } from "../../functions/utils/fees.utils.mjs";
|
|
11
12
|
import "../../functions/pre-transaction/index.mjs";
|
|
12
|
-
import { hinkalTransact as
|
|
13
|
-
import { calculateModifiedFeeStructure as d } from "../../functions/utils/fees.utils.mjs";
|
|
13
|
+
import { hinkalTransact as d } from "./hinkalTransact.mjs";
|
|
14
14
|
import { mergeWithFeeStructure as f } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
|
|
15
15
|
//#region libs/shared/common/src/data-structures/Hinkal/hinkalTransfer.ts
|
|
16
16
|
var p = async (p, m, h, g, _, v, y) => {
|
|
@@ -20,12 +20,12 @@ var p = async (p, m, h, g, _, v, y) => {
|
|
|
20
20
|
w.variableRate ||= e;
|
|
21
21
|
let T = m[0];
|
|
22
22
|
if (!T) throw Error("Transfer Action: No Token Found");
|
|
23
|
-
let E = -C[0], D = await
|
|
23
|
+
let E = -C[0], D = await u(b, T, E, w);
|
|
24
24
|
await f(b, S, C, D);
|
|
25
25
|
let O = await p.getRandomRelay(b, !0);
|
|
26
26
|
if (!O) throw Error(t.RELAYER_NOT_AVAILABLE);
|
|
27
27
|
let k = c(y, b, S, C, x);
|
|
28
|
-
return
|
|
28
|
+
return d(p, {
|
|
29
29
|
chainId: b,
|
|
30
30
|
erc20Addresses: S,
|
|
31
31
|
amountChanges: C,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../error-handling/error-codes.constants.cjs`),t=require(`../../functions/utils/tron.utils.cjs`),n=require(`../../types/external-action.types.cjs`),r=require(`../../types/transact.types.cjs`),i=require(`../../functions/utils/token-check.utils.cjs`),a=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),o=require(`../../functions/pre-transaction/constructAdminData.cjs`),s=require(`../../functions/pre-transaction/getFeeStructure.cjs`);require(`../../functions/pre-transaction/index.cjs`);const
|
|
1
|
+
const e=require(`../../error-handling/error-codes.constants.cjs`),t=require(`../../functions/utils/tron.utils.cjs`),n=require(`../../types/external-action.types.cjs`),r=require(`../../types/transact.types.cjs`),i=require(`../../functions/utils/token-check.utils.cjs`),a=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),o=require(`../../functions/pre-transaction/constructAdminData.cjs`),s=require(`../../functions/pre-transaction/getFeeStructure.cjs`),c=require(`../../functions/utils/fees.utils.cjs`);require(`../../functions/pre-transaction/index.cjs`);const l=require(`./hinkalTransact.cjs`),u=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var d=async(d,f,p,m,h,g,_,v,y)=>{let b=i.validateAndGetChainId(f),x=t.addressToHexFormat(await d.getEthereumAddressByChain(b)),S=f.map(e=>e.erc20TokenAddress),C=await a.modifyVolatileTokenAmountChanges(b,f,p),w=f[0];if(!w)throw Error(`Withdraw Action: No Token Found`);let T;if(!h){T=_??await s.getFeeStructure(b,g,S,n.ExternalActionId.Transact,[],v),_&&v!==void 0&&(T={...T,variableRate:v});let e=[...C];await u.mergeWithFeeStructure(b,S,C,T),T.variableRate>0n&&f.forEach((t,n)=>{if(C[n]>=0n)return;let r=-e[n];C[n]-=c.calculateVariableFeeGrossUp(r,T.variableRate)})}let E=h?void 0:await d.getRandomRelay(b,!0);if(!h&&!E)throw Error(e.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let D=h?{mode:r.SubmitMode.Self,erc20Tokens:[w],approvalAmounts:[C[0]]}:{mode:r.SubmitMode.Relayer,adminData:o.constructAdminData(y,b,S,C,x)};return l.hinkalTransact(d,{chainId:b,erc20Addresses:S,amountChanges:C,externalAddress:t.addressToHexFormat(m),feeStructure:T,relay:E,originalSender:h?x:void 0,submit:D})};exports.hinkalWithdraw=d;
|
|
@@ -6,38 +6,47 @@ import { validateAndGetChainId as i } from "../../functions/utils/token-check.ut
|
|
|
6
6
|
import { modifyVolatileTokenAmountChanges as a } from "../../functions/pre-transaction/getVolatileTransferAmount.mjs";
|
|
7
7
|
import { constructAdminData as o } from "../../functions/pre-transaction/constructAdminData.mjs";
|
|
8
8
|
import { getFeeStructure as s } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
9
|
+
import { calculateVariableFeeGrossUp as c } from "../../functions/utils/fees.utils.mjs";
|
|
9
10
|
import "../../functions/pre-transaction/index.mjs";
|
|
10
|
-
import { hinkalTransact as
|
|
11
|
-
import { mergeWithFeeStructure as
|
|
11
|
+
import { hinkalTransact as l } from "./hinkalTransact.mjs";
|
|
12
|
+
import { mergeWithFeeStructure as u } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
|
|
12
13
|
//#region libs/shared/common/src/data-structures/Hinkal/hinkalWithdraw.ts
|
|
13
|
-
var
|
|
14
|
-
let
|
|
15
|
-
if (!
|
|
16
|
-
let
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
14
|
+
var d = async (d, f, p, m, h, g, _, v, y) => {
|
|
15
|
+
let b = i(f), x = t(await d.getEthereumAddressByChain(b)), S = f.map((e) => e.erc20TokenAddress), C = await a(b, f, p), w = f[0];
|
|
16
|
+
if (!w) throw Error("Withdraw Action: No Token Found");
|
|
17
|
+
let T;
|
|
18
|
+
if (!h) {
|
|
19
|
+
T = _ ?? await s(b, g, S, n.Transact, [], v), _ && v !== void 0 && (T = {
|
|
20
|
+
...T,
|
|
21
|
+
variableRate: v
|
|
22
|
+
});
|
|
23
|
+
let e = [...C];
|
|
24
|
+
await u(b, S, C, T), T.variableRate > 0n && f.forEach((t, n) => {
|
|
25
|
+
if (C[n] >= 0n) return;
|
|
26
|
+
let r = -e[n];
|
|
27
|
+
C[n] -= c(r, T.variableRate);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
let E = h ? void 0 : await d.getRandomRelay(b, !0);
|
|
31
|
+
if (!h && !E) throw Error(e.RELAYER_NOT_AVAILABLE);
|
|
32
|
+
let D = h ? {
|
|
24
33
|
mode: r.Self,
|
|
25
|
-
erc20Tokens: [
|
|
26
|
-
approvalAmounts: [
|
|
34
|
+
erc20Tokens: [w],
|
|
35
|
+
approvalAmounts: [C[0]]
|
|
27
36
|
} : {
|
|
28
37
|
mode: r.Relayer,
|
|
29
|
-
adminData: o(
|
|
38
|
+
adminData: o(y, b, S, C, x)
|
|
30
39
|
};
|
|
31
|
-
return
|
|
32
|
-
chainId:
|
|
33
|
-
erc20Addresses:
|
|
34
|
-
amountChanges:
|
|
35
|
-
externalAddress: t(
|
|
36
|
-
feeStructure:
|
|
37
|
-
relay:
|
|
38
|
-
originalSender:
|
|
39
|
-
submit:
|
|
40
|
+
return l(d, {
|
|
41
|
+
chainId: b,
|
|
42
|
+
erc20Addresses: S,
|
|
43
|
+
amountChanges: C,
|
|
44
|
+
externalAddress: t(m),
|
|
45
|
+
feeStructure: T,
|
|
46
|
+
relay: E,
|
|
47
|
+
originalSender: h ? x : void 0,
|
|
48
|
+
submit: D
|
|
40
49
|
});
|
|
41
50
|
};
|
|
42
51
|
//#endregion
|
|
43
|
-
export {
|
|
52
|
+
export { d as hinkalWithdraw };
|
|
@@ -22,4 +22,9 @@ export * from './hinkalPalTronDepositPrepare';
|
|
|
22
22
|
export * from './hinkalSolanaDepositAndWithdraw';
|
|
23
23
|
export * from './hinkalNearDepositAndBridge';
|
|
24
24
|
export * from './hinkalBridgePrivateToPrivate';
|
|
25
|
+
export * from './hinkalReceiveVaultAccount';
|
|
26
|
+
export * from './hinkalReceiveVaultCreate';
|
|
27
|
+
export * from './hinkalReceiveVaultRecover';
|
|
28
|
+
export * from './hinkalReceiveVaultSettle';
|
|
29
|
+
export * from './hinkalSolanaReceiveVault';
|
|
25
30
|
export * from './hinkalSolanaSponsoredShield';
|