@hinkal/common 0.3.11 → 0.3.13
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 +13 -13
- package/common/src/API/API.cjs +1 -1
- package/common/src/API/API.d.ts +3 -0
- package/common/src/API/API.mjs +5 -2
- package/common/src/API/evm-token-assets.cjs +1 -0
- package/common/src/API/evm-token-assets.mjs +14 -0
- package/common/src/API/index.cjs +1 -1
- package/common/src/API/index.d.ts +1 -0
- package/common/src/API/index.mjs +1 -0
- package/common/src/API/receiveVaultCalls.cjs +1 -0
- package/common/src/API/receiveVaultCalls.d.ts +10 -0
- package/common/src/API/receiveVaultCalls.mjs +32 -0
- 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 +2 -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 +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-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 +2 -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-tempo.json.cjs +1 -1
- package/common/src/constants/deploy-data/deploy-data-tempo.json.mjs +2 -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/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-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/protocol.constants.cjs +1 -1
- package/common/src/constants/protocol.constants.d.ts +6 -0
- package/common/src/constants/protocol.constants.mjs +2 -2
- package/common/src/constants/server.constants.cjs +1 -1
- package/common/src/constants/server.constants.d.ts +5 -0
- package/common/src/constants/server.constants.mjs +5 -0
- package/common/src/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/common/src/data-structures/Hinkal/Hinkal.d.ts +6 -2
- package/common/src/data-structures/Hinkal/Hinkal.mjs +62 -50
- package/common/src/data-structures/Hinkal/IHinkal.d.ts +6 -2
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
- package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +10 -10
- 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 +33 -33
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +8 -8
- 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 +5 -5
- 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 +20 -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 +33 -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 +59 -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 +61 -49
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +7 -7
- package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +8 -8
- 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 +55 -40
- 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/index.d.ts +4 -0
- 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 +4 -0
- package/common/src/error-handling/error-codes.constants.mjs +5 -2
- package/common/src/error-handling/get-error.message.cjs +1 -1
- package/common/src/error-handling/get-error.message.mjs +50 -49
- package/common/src/functions/index.cjs +1 -1
- package/common/src/functions/index.mjs +2 -1
- 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/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/snarkjs/constructTxEnclaveVerify.cjs +1 -1
- package/common/src/functions/snarkjs/constructTxEnclaveVerify.mjs +2 -1
- 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/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.mjs +1 -1
- 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.mjs +1 -1
- 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 +2 -1
- 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/receive-vault-account.utils.cjs +1 -0
- package/common/src/functions/utils/receive-vault-account.utils.d.ts +8 -0
- package/common/src/functions/utils/receive-vault-account.utils.mjs +23 -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 +60 -0
- package/common/src/functions/utils/receive-vault.utils.cjs +2 -0
- package/common/src/functions/utils/receive-vault.utils.d.ts +29 -0
- package/common/src/functions/utils/receive-vault.utils.mjs +151 -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/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 +4 -0
- package/common/src/functions/utils/wallet-token-discovery.utils.mjs +36 -0
- package/common/src/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
- package/common/src/functions/web3/functionCalls/transactCallDirect.mjs +11 -11
- package/common/src/types/ethereum-network.types.cjs +1 -1
- package/common/src/types/ethereum-network.types.d.ts +4 -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 +2 -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 +68 -0
- package/common/src/types/receive-vault.types.mjs +6 -0
- package/common/src/types/remote-tx-build.types.d.ts +5 -0
- package/common/src/webworker/{logError-cvFNxc-0.js → logError-BeXPKuv9.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-DF35H7vU.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 +10 -1
- package/services/Hinkal.cjs +1 -1
- package/services/Hinkal.d.ts +1 -1
- package/services/Hinkal.mjs +2 -2
- package/types/IHinkal.d.ts +1 -1
- package/common/src/webworker/workerProxy-BHzCZ9HT.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
var e=`0x${`00`.repeat(20)}`,t=`11111111111111111111111111111111`,n=1e9,r=`0x566de53cee38c8e4e87636e137b206b4799ae79b87d563f416008946bdf14427`,i=`0x655C3Aa937530E06A336458D1CF168d297B597A2`,a=21888242871839275222246405745257275088548364400416034343698204186575808495617n,o=a/2n,s=2n**250n,c=200n,l=function(e){return e.ERC20=`ERC20`,e.ERC721=`ERC721`,e.ERC1155=`ERC1155`,e.MetaplexNFT=`Metaplex NFT`,e.Token2022NFT=`Token-2022 NFT`,e.CompressedNFT=`Compressed NFT`,e}({}),u=35n,d=25n,f=25n,p=25n,m=15e5,h=14e5,g=256*1024,_=2e5,v=.2,y=`v1x1`,b=`BjNVy3aJw55TpQApJZ2v9pxkmeXr5KcwzEvcJ1e1E8hY`,x=394466828,S=`Sign to deterministically derive your Hinkal shielded account keys.
|
|
2
|
-
WARNING: Only sign this on official Hinkal domains. Signing it anywhere else can expose your funds to theft.`,C=`Sign to deterministically derive your Hinkal shielded account keys
|
|
2
|
+
WARNING: Only sign this on official Hinkal domains. Signing it anywhere else can expose your funds to theft.`,C=`Sign to deterministically derive your Hinkal shielded account keys.`,w=1440*60,T=f,E=3n;exports.CIRCOM_P=a,exports.CIRCOM_P_HALF=o,exports.COMPUTE_UNIT_PADDING_PERCENTAGE=v,exports.DAPP_SIGNING_MESSAGE=S,exports.DETERMINISTIC_SOLANA_LEDGER_BLOCKHASH=b,exports.DETERMINISTIC_SOLANA_LEDGER_LAST_VALID_BLOCK_HEIGHT=x,exports.ENCLAVE_PUBKEY=r,exports.ENCLAVE_SIGNER_ADDRESS=i,exports.HINKAL_PRIVATE_SEND_VARIABLE_RATE=d,exports.HINKAL_SHIELD_VARIABLE_RATE=f,exports.HINKAL_SWAP_VARIABLE_RATE=u,exports.MAX_COMPUTE_UNIT_LIMIT=h,exports.MAX_MICRO_LAMPORTS_PER_CU=m,exports.MAX_SOLANA_HEAP_FRAME_BYTES=g,exports.MERKLE_LEVELS=c,exports.MIN_COMPUTE_UNIT_LIMIT=_,exports.NULLIFYING_PRIVATE_KEY_MOD=s,exports.PAY_SEND_VARIABLE_RATE=p,exports.RECEIVE_VAULT_EXPIRY_SECONDS=w,exports.RECEIVE_VAULT_FEE_CEILING_MULTIPLIER=E,exports.RECEIVE_VAULT_VARIABLE_RATE=T,exports.SDK_SIGNING_MESSAGE=C,exports.SIGNATURE_FROM_MNEMONIC_VERSION=y,exports.TRON_DEFAULT_FEE_LIMIT_SUN=n,exports.TokenType=l,exports.solanaNativeAddress=t,exports.zeroAddress=e;
|
|
@@ -40,6 +40,7 @@ export declare enum TokenType {
|
|
|
40
40
|
CompressedNFT = "Compressed NFT"
|
|
41
41
|
}
|
|
42
42
|
export declare const ARC_TESTNET_USDC_ADDRESS = "0x3600000000000000000000000000000000000000";
|
|
43
|
+
export declare const ARC_TESTNET_NATIVE_LOG_ADDRESS = "0xffffFFFfFFffffffffffffffFfFFFfffFFFfFFfE";
|
|
43
44
|
export declare const HINKAL_SWAP_VARIABLE_RATE = 35n;
|
|
44
45
|
export declare const HINKAL_PRIVATE_SEND_VARIABLE_RATE = 25n;
|
|
45
46
|
export declare const HINKAL_SHIELD_VARIABLE_RATE = 25n;
|
|
@@ -72,3 +73,8 @@ export declare const DETERMINISTIC_SOLANA_LEDGER_BLOCKHASH = "BjNVy3aJw55TpQApJZ
|
|
|
72
73
|
export declare const DETERMINISTIC_SOLANA_LEDGER_LAST_VALID_BLOCK_HEIGHT = 394466828;
|
|
73
74
|
export declare const DAPP_SIGNING_MESSAGE = "Sign to deterministically derive your Hinkal shielded account keys. \nWARNING: Only sign this on official Hinkal domains. Signing it anywhere else can expose your funds to theft.";
|
|
74
75
|
export declare const SDK_SIGNING_MESSAGE = "Sign to deterministically derive your Hinkal shielded account keys.";
|
|
76
|
+
export declare const RECEIVE_VAULT_SETTLE_REQUEST_TTL_SECONDS: number;
|
|
77
|
+
export declare const RECEIVE_VAULT_RECOVERY_TTL_SECONDS: number;
|
|
78
|
+
export declare const RECEIVE_VAULT_EXPIRY_SECONDS: number;
|
|
79
|
+
export declare const RECEIVE_VAULT_VARIABLE_RATE = 25n;
|
|
80
|
+
export declare const RECEIVE_VAULT_FEE_CEILING_MULTIPLIER = 3n;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region libs/shared/common/src/constants/protocol.constants.ts
|
|
2
2
|
var e = `0x${"00".repeat(20)}`, t = "11111111111111111111111111111111", n = 1e9, r = "0x566de53cee38c8e4e87636e137b206b4799ae79b87d563f416008946bdf14427", i = "0x655C3Aa937530E06A336458D1CF168d297B597A2", a = 21888242871839275222246405745257275088548364400416034343698204186575808495617n, o = a / 2n, s = 2n ** 250n, c = 200n, l = /* @__PURE__ */ function(e) {
|
|
3
3
|
return e.ERC20 = "ERC20", e.ERC721 = "ERC721", e.ERC1155 = "ERC1155", e.MetaplexNFT = "Metaplex NFT", e.Token2022NFT = "Token-2022 NFT", e.CompressedNFT = "Compressed NFT", e;
|
|
4
|
-
}({}), u = 35n, d = 25n, f = 25n, p = 25n, m = 15e5, h = 14e5, g = 256 * 1024, _ = 2e5, v = .2, y = "v1x1", b = "BjNVy3aJw55TpQApJZ2v9pxkmeXr5KcwzEvcJ1e1E8hY", x = 394466828, S = "Sign to deterministically derive your Hinkal shielded account keys. \nWARNING: Only sign this on official Hinkal domains. Signing it anywhere else can expose your funds to theft.", C = "Sign to deterministically derive your Hinkal shielded account keys.";
|
|
4
|
+
}({}), u = 35n, d = 25n, f = 25n, p = 25n, m = 15e5, h = 14e5, g = 256 * 1024, _ = 2e5, v = .2, y = "v1x1", b = "BjNVy3aJw55TpQApJZ2v9pxkmeXr5KcwzEvcJ1e1E8hY", x = 394466828, S = "Sign to deterministically derive your Hinkal shielded account keys. \nWARNING: Only sign this on official Hinkal domains. Signing it anywhere else can expose your funds to theft.", C = "Sign to deterministically derive your Hinkal shielded account keys.", w = 1440 * 60, T = f, E = 3n;
|
|
5
5
|
//#endregion
|
|
6
|
-
export { a as CIRCOM_P, o as CIRCOM_P_HALF, v as COMPUTE_UNIT_PADDING_PERCENTAGE, S as DAPP_SIGNING_MESSAGE, b as DETERMINISTIC_SOLANA_LEDGER_BLOCKHASH, x as DETERMINISTIC_SOLANA_LEDGER_LAST_VALID_BLOCK_HEIGHT, r as ENCLAVE_PUBKEY, i as ENCLAVE_SIGNER_ADDRESS, d as HINKAL_PRIVATE_SEND_VARIABLE_RATE, f as HINKAL_SHIELD_VARIABLE_RATE, u as HINKAL_SWAP_VARIABLE_RATE, h as MAX_COMPUTE_UNIT_LIMIT, m as MAX_MICRO_LAMPORTS_PER_CU, g as MAX_SOLANA_HEAP_FRAME_BYTES, c as MERKLE_LEVELS, _ as MIN_COMPUTE_UNIT_LIMIT, s as NULLIFYING_PRIVATE_KEY_MOD, p as PAY_SEND_VARIABLE_RATE, C as SDK_SIGNING_MESSAGE, y as SIGNATURE_FROM_MNEMONIC_VERSION, n as TRON_DEFAULT_FEE_LIMIT_SUN, l as TokenType, t as solanaNativeAddress, e as zeroAddress };
|
|
6
|
+
export { a as CIRCOM_P, o as CIRCOM_P_HALF, v as COMPUTE_UNIT_PADDING_PERCENTAGE, S as DAPP_SIGNING_MESSAGE, b as DETERMINISTIC_SOLANA_LEDGER_BLOCKHASH, x as DETERMINISTIC_SOLANA_LEDGER_LAST_VALID_BLOCK_HEIGHT, r as ENCLAVE_PUBKEY, i as ENCLAVE_SIGNER_ADDRESS, d as HINKAL_PRIVATE_SEND_VARIABLE_RATE, f as HINKAL_SHIELD_VARIABLE_RATE, u as HINKAL_SWAP_VARIABLE_RATE, h as MAX_COMPUTE_UNIT_LIMIT, m as MAX_MICRO_LAMPORTS_PER_CU, g as MAX_SOLANA_HEAP_FRAME_BYTES, c as MERKLE_LEVELS, _ as MIN_COMPUTE_UNIT_LIMIT, s as NULLIFYING_PRIVATE_KEY_MOD, p as PAY_SEND_VARIABLE_RATE, w as RECEIVE_VAULT_EXPIRY_SECONDS, E as RECEIVE_VAULT_FEE_CEILING_MULTIPLIER, T as RECEIVE_VAULT_VARIABLE_RATE, C as SDK_SIGNING_MESSAGE, y as SIGNATURE_FROM_MNEMONIC_VERSION, n as TRON_DEFAULT_FEE_LIMIT_SUN, l as TokenType, t as solanaNativeAddress, e as zeroAddress };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./vite.constants.cjs`);var t={ROUTES:{getSnapshots:e=>`/snapshots/${e}`,getMerkleTreeSiblings:`/merkle-tree-siblings`,getTronInsertionSiblings:`/tron-insertion-siblings`,getSnapshotServerEvents:`/events`,callLifiAPI:`/LifiBridgeData`,callOkxAPI:`/OkxSwapData`,callNearIntentsQuote:`/near-intents/quote`,callNearIntentsTokens:`/near-intents/tokens`,getOdosPriceForToken:(e,t)=>`/getOdosPriceForToken/${e}/${t}`,monitor:`/monitor`,monitorBatch:`/monitor/batch`,checkRisk:e=>`/check-risk/${e}`,simulateTransaction:`/simulate-transaction`,simulateBatchTx:`/simulate-batch-tx`,simulateVolatileTokenTransfer:`/simulate-volatile-token-transfer`,getTokensInfo:`/get-tokens-info`,getTokensForChain:`/get-tokens-for-chain`,getTokensBySymbols:`/get-tokens-by-symbols`,getTokenData:e=>`/get-token-data/${e}`,getProxyAccounts:e=>`/get-proxy-accounts/${e}`,updateProxyAccounts:`/update-proxy-accounts`,getTemporaryWalletNonces:(e,t)=>`/temporary-wallets/nonces/${e}/${t}`,addTemporaryWalletNonce:`/temporary-wallets/add-nonce`,encodeMoonPayBuyUrl:`/moonpay-buy-url`,getMoonPayQuote:`/moonpay-quote`,privateSendNonceSync:`/private-send-nonce/sync`,privateSendNonceReserve:`/private-send-nonce/reserve`,getDashboardAccount:`/get-dashboard-account`,updateDashboardAccount:`/update-dashboard-account`,deleteDashboardAccount:`/delete-dashboard-account`,updateUserProfile:`/update-user-profile`,addDashboardContact:`/add-dashboard-contact`,deleteDashboardContact:`/delete-dashboard-contact`,updateDashboardContact:`/update-dashboard-contact`,getDashboardContacts:`/get-dashboard-contacts`,sendDashboardInvitationEmail:`/send-dashboard-invitation-email`,resolveInviteRequest:`/resolve-invite-request`,deleteInviteRequest:`/delete-invite-request`,removeMember:`/remove-member`,editMember:`/edit-member`,createDashboardPayout:`/create-dashboard-payout`,getDashboardPayouts:`/get-dashboard-payouts`,syncDashboardBalances:`/sync-dashboard-balances`,getDashboardBalances:`/get-dashboard-balances`,changePayoutStatus:`/change-payout-status`,getPayoutNotifications:`/get-payout-notifications`,markPayoutNotificationsRead:`/mark-payout-notifications-read`,dismissPayoutNotification:`/dismiss-payout-notification`,getDashboardTransactions:`/get-dashboard-transactions`,createDashboardTransactions:`/create-dashboard-transactions`,getDashboardScheduledTransactions:`/get-dashboard-scheduled-transactions`,tronSubsidyEligibility:`/tron-subsidy/eligibility`,tronSubsidyRecord:`/tron-subsidy/record`,solanaPriorityFee:`/solana-priority-fee`,solanaNftAssets:`/solana-nft-assets`,routeConfig:`/rc`,evmTokenBalances:`/evm-token-balances`,evmNftAssets:`/evm-nft-assets`}},n={getGasEstimate:(e,t,n,r)=>`/gas-estimation/${e}/${n}/${t}/${r}`,getTokenPrices:`/get-token-prices`,TRANSACT:`/general-transact`,TRANSACT_BATCH:`/general-transact-batch`,SOLANA_TRANSACT:`/solana-transact`,SOLANA_TRANSACT_BATCH:`/solana-transact-batch`,SOLANA_SPONSORED_BUILD:`/solana-sponsored-build`,SOLANA_SPONSORED_SUBMIT:`/solana-sponsored-submit`,getIdleRelay:`/get-idle-relay`,emitTxPublicData:`/emit-tx-public-data`,emitReferralTx:`/emit-referral-tx`,getScheduledTransactionById:e=>`/scheduled-transactions/${e}`,getScheduledTransactionsNullifierIndexes:`/scheduled-transactions/nullifier-indexes`,getTokenPriceChartData:`/get-token-price-chart-data`,getTokenPreviousDayPrices:`/get-token-previous-day-prices`,getPrivateTransactionsRatio:e=>`/get-private-transactions-ratio/${e}`,savePrivacyScoreAndGetPrivacyRank:`/save-privacy-score-and-get-privacy-rank`},r={createPresaleReferral:`/create-presale-referral`,updatePresaleReferralList:`/update-presale-referral-list`,getUserAnalytics:`/get-user-analytics`,updateRewardsUser:`/update-rewards-user`,getRewardsUser:e=>`/get-rewards-user/${e}`,checkUsernameAvailability:e=>`/check-username/${encodeURIComponent(e)}`,seedlessInit:`/seedless/init`,seedlessBackup:`/seedless/backup`,seedlessCheckPassword:`/seedless/check-password`,seedlessStatus:`/seedless/status`,seedlessSalt:`/seedless/salt`,sendPrivateSendEmailNotifications:`/private-send-email-notifications`,webflowBlogPosts:`/webflow-blog-posts`,brevoSubscribe:`/brevo-subscribe`,versionChecker:e=>`/version-checker/${e}`};e.isNotProduction?e.deploymentMode:`${e.deploymentMode}`;var i=`https://wallet-playground.hinkal.io`,a=`https://wallet-staging-v2.hinkal.io`,o=`https://wallet-prodv12.hinkal.io`,s=`/server`,c=`/relayer`,l=`/snapshot-server`,u=`/data-server`,d=`/compliance-server`,f=`https://api-staging.hinkal.io`,p=`https://api.hinkal.io`;exports.API_CONFIG=t,exports.DATA_SERVER_CONFIG=r,exports.DATA_SERVER_URL_ENDPOINT=u,exports.ENCLAVE_API_PRODUCTION_URL=p,exports.ENCLAVE_API_STAGING_URL=f,exports.FUND_COMPLIANCE_URL_ENDPOINT=d,exports.PLAYGROUND_URL=i,exports.PRODUCTION_URL=o,exports.RELAYER_CONFIG=n,exports.RELAYER_URL_ENDPOINT=c,exports.SERVER_URL_ENDPOINT=s,exports.SNAPSHOT_SERVER_URL_ENDPOINT=l,exports.STAGING_URL=a;
|
|
1
|
+
const e=require(`./vite.constants.cjs`);var t={ROUTES:{getSnapshots:e=>`/snapshots/${e}`,getMerkleTreeSiblings:`/merkle-tree-siblings`,getTronInsertionSiblings:`/tron-insertion-siblings`,getSnapshotServerEvents:`/events`,callLifiAPI:`/LifiBridgeData`,callOkxAPI:`/OkxSwapData`,callNearIntentsQuote:`/near-intents/quote`,callNearIntentsTokens:`/near-intents/tokens`,getOdosPriceForToken:(e,t)=>`/getOdosPriceForToken/${e}/${t}`,monitor:`/monitor`,monitorBatch:`/monitor/batch`,checkRisk:e=>`/check-risk/${e}`,simulateTransaction:`/simulate-transaction`,simulateBatchTx:`/simulate-batch-tx`,simulateVolatileTokenTransfer:`/simulate-volatile-token-transfer`,getTokensInfo:`/get-tokens-info`,getTokensForChain:`/get-tokens-for-chain`,getTokensBySymbols:`/get-tokens-by-symbols`,getTokenData:e=>`/get-token-data/${e}`,getProxyAccounts:e=>`/get-proxy-accounts/${e}`,updateProxyAccounts:`/update-proxy-accounts`,getTemporaryWalletNonces:(e,t)=>`/temporary-wallets/nonces/${e}/${t}`,addTemporaryWalletNonce:`/temporary-wallets/add-nonce`,registerReceiveVault:`/receive-vault/register`,receiveVaultAccount:`/receive-vault/account`,listReceiveVaults:`/receive-vault/list`,markReceiveVaultBlocked:`/receive-vault/blocked`,markReceiveVaultSettled:`/receive-vault/settled`,encodeMoonPayBuyUrl:`/moonpay-buy-url`,getMoonPayQuote:`/moonpay-quote`,privateSendNonceSync:`/private-send-nonce/sync`,privateSendNonceReserve:`/private-send-nonce/reserve`,getDashboardAccount:`/get-dashboard-account`,updateDashboardAccount:`/update-dashboard-account`,deleteDashboardAccount:`/delete-dashboard-account`,updateUserProfile:`/update-user-profile`,addDashboardContact:`/add-dashboard-contact`,deleteDashboardContact:`/delete-dashboard-contact`,updateDashboardContact:`/update-dashboard-contact`,getDashboardContacts:`/get-dashboard-contacts`,sendDashboardInvitationEmail:`/send-dashboard-invitation-email`,resolveInviteRequest:`/resolve-invite-request`,deleteInviteRequest:`/delete-invite-request`,removeMember:`/remove-member`,editMember:`/edit-member`,createDashboardPayout:`/create-dashboard-payout`,getDashboardPayouts:`/get-dashboard-payouts`,syncDashboardBalances:`/sync-dashboard-balances`,getDashboardBalances:`/get-dashboard-balances`,changePayoutStatus:`/change-payout-status`,getPayoutNotifications:`/get-payout-notifications`,markPayoutNotificationsRead:`/mark-payout-notifications-read`,dismissPayoutNotification:`/dismiss-payout-notification`,getDashboardTransactions:`/get-dashboard-transactions`,createDashboardTransactions:`/create-dashboard-transactions`,getDashboardScheduledTransactions:`/get-dashboard-scheduled-transactions`,tronSubsidyEligibility:`/tron-subsidy/eligibility`,tronSubsidyRecord:`/tron-subsidy/record`,solanaPriorityFee:`/solana-priority-fee`,solanaNftAssets:`/solana-nft-assets`,routeConfig:`/rc`,evmTokenBalances:`/evm-token-balances`,evmNftAssets:`/evm-nft-assets`}},n={getGasEstimate:(e,t,n,r)=>`/gas-estimation/${e}/${n}/${t}/${r}`,getTokenPrices:`/get-token-prices`,TRANSACT:`/general-transact`,TRANSACT_BATCH:`/general-transact-batch`,SOLANA_TRANSACT:`/solana-transact`,SOLANA_TRANSACT_BATCH:`/solana-transact-batch`,SOLANA_SPONSORED_BUILD:`/solana-sponsored-build`,SOLANA_SPONSORED_SUBMIT:`/solana-sponsored-submit`,getIdleRelay:`/get-idle-relay`,emitTxPublicData:`/emit-tx-public-data`,emitReferralTx:`/emit-referral-tx`,getScheduledTransactionById:e=>`/scheduled-transactions/${e}`,getScheduledTransactionsNullifierIndexes:`/scheduled-transactions/nullifier-indexes`,getTokenPriceChartData:`/get-token-price-chart-data`,getTokenPreviousDayPrices:`/get-token-previous-day-prices`,getPrivateTransactionsRatio:e=>`/get-private-transactions-ratio/${e}`,savePrivacyScoreAndGetPrivacyRank:`/save-privacy-score-and-get-privacy-rank`},r={createPresaleReferral:`/create-presale-referral`,updatePresaleReferralList:`/update-presale-referral-list`,getUserAnalytics:`/get-user-analytics`,updateRewardsUser:`/update-rewards-user`,getRewardsUser:e=>`/get-rewards-user/${e}`,checkUsernameAvailability:e=>`/check-username/${encodeURIComponent(e)}`,seedlessInit:`/seedless/init`,seedlessBackup:`/seedless/backup`,seedlessCheckPassword:`/seedless/check-password`,seedlessStatus:`/seedless/status`,seedlessSalt:`/seedless/salt`,sendPrivateSendEmailNotifications:`/private-send-email-notifications`,webflowBlogPosts:`/webflow-blog-posts`,brevoSubscribe:`/brevo-subscribe`,versionChecker:e=>`/version-checker/${e}`};e.isNotProduction?e.deploymentMode:`${e.deploymentMode}`;var i=`https://wallet-playground.hinkal.io`,a=`https://wallet-staging-v2.hinkal.io`,o=`https://wallet-prodv12.hinkal.io`,s=`/server`,c=`/relayer`,l=`/snapshot-server`,u=`/data-server`,d=`/compliance-server`,f=`https://api-staging.hinkal.io`,p=`https://api.hinkal.io`;exports.API_CONFIG=t,exports.DATA_SERVER_CONFIG=r,exports.DATA_SERVER_URL_ENDPOINT=u,exports.ENCLAVE_API_PRODUCTION_URL=p,exports.ENCLAVE_API_STAGING_URL=f,exports.FUND_COMPLIANCE_URL_ENDPOINT=d,exports.PLAYGROUND_URL=i,exports.PRODUCTION_URL=o,exports.RELAYER_CONFIG=n,exports.RELAYER_URL_ENDPOINT=c,exports.SERVER_URL_ENDPOINT=s,exports.SNAPSHOT_SERVER_URL_ENDPOINT=l,exports.STAGING_URL=a;
|
|
@@ -23,6 +23,11 @@ export declare const API_CONFIG: {
|
|
|
23
23
|
updateProxyAccounts: string;
|
|
24
24
|
getTemporaryWalletNonces: (hashedEthereumAddress: string, chainId: number) => string;
|
|
25
25
|
addTemporaryWalletNonce: string;
|
|
26
|
+
registerReceiveVault: string;
|
|
27
|
+
receiveVaultAccount: string;
|
|
28
|
+
listReceiveVaults: string;
|
|
29
|
+
markReceiveVaultBlocked: string;
|
|
30
|
+
markReceiveVaultSettled: string;
|
|
26
31
|
encodeMoonPayBuyUrl: string;
|
|
27
32
|
getMoonPayQuote: string;
|
|
28
33
|
privateSendNonceSync: string;
|
|
@@ -24,6 +24,11 @@ var n = { ROUTES: {
|
|
|
24
24
|
updateProxyAccounts: "/update-proxy-accounts",
|
|
25
25
|
getTemporaryWalletNonces: (e, t) => `/temporary-wallets/nonces/${e}/${t}`,
|
|
26
26
|
addTemporaryWalletNonce: "/temporary-wallets/add-nonce",
|
|
27
|
+
registerReceiveVault: "/receive-vault/register",
|
|
28
|
+
receiveVaultAccount: "/receive-vault/account",
|
|
29
|
+
listReceiveVaults: "/receive-vault/list",
|
|
30
|
+
markReceiveVaultBlocked: "/receive-vault/blocked",
|
|
31
|
+
markReceiveVaultSettled: "/receive-vault/settled",
|
|
27
32
|
encodeMoonPayBuyUrl: "/moonpay-buy-url",
|
|
28
33
|
getMoonPayQuote: "/moonpay-quote",
|
|
29
34
|
privateSendNonceSync: "/private-send-nonce/sync",
|
|
@@ -1 +1 @@
|
|
|
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)}initUserKeysWithNullifyingKey(e){this.userKeys=new o.UserKeys(void 0,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,p,m){return t.isSolanaLike(l.validateAndGetChainId(e))?R.hinkalSolanaProxySwap(this,e,n,i,o,r,a,s,c,m):A.hinkalProxySwap(this,e,n,r,i,a,o,s,c,u,d,m,f,p)}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;
|
|
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(`./hinkalReceiveVaultAccount.cjs`),D=require(`./hinkalReceiveVaultCreate.cjs`),O=require(`./hinkalReceiveVaultRecover.cjs`),k=require(`./hinkalGetRecipientInfo.cjs`),A=require(`./hinkalSignSubAccount.cjs`),j=require(`./hinkalActionReceive.cjs`),M=require(`./hinkalProoflessDeposit.cjs`),N=require(`./hinkalProxySwap.cjs`),P=require(`./hinkalTransfer.cjs`),F=require(`./hinkalProxyToPrivate.cjs`),I=require(`../../providers/TronProviderAdapter.cjs`),L=require(`./hinkalSolanaDepositAndWithdraw.cjs`),R=require(`./hinkalSolanaWithdraw.cjs`),z=require(`./hinkalSolanaTransfer.cjs`),B=require(`./hinkalSolanaSwap.cjs`),V=require(`./hinkalSolanaProxySwap.cjs`),H=require(`./hinkalSolanaProxyShield.cjs`),U=require(`./hinkalDepositAndBridge.cjs`),W=require(`./hinkalBridgePrivateToPrivate.cjs`),G=require(`./hinkalNearDepositAndBridge.cjs`),K=require(`./hinkalClaimUtxo.cjs`),q=require(`./hinkalSolanaProoflessDeposit.cjs`),J=require(`./hinkalSolanaClaimUtxo.cjs`),Y=require(`./hinkalWithdrawStuckUtxos.cjs`),X=require(`../private-balances/HinkalPrivateBalanceController.cjs`);require(`../private-balances/index.cjs`);const Z=require(`./hinkalProxySend.cjs`);let Q=require(`@solana/web3.js`);var $=class{ethereumProviderAdapter;solanaProviderAdapter;tronProviderAdapter;userKeys;legacySignature;merkleTreeHinkalByChain={};nullifiersByChain={};encryptedOutputsByChain={};commitmentsSnapshotServiceByChain={};nullifierSnapshotServiceByChain={};privateBalances=new X.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 I.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 Q.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)}initUserKeysWithNullifyingKey(e){this.userKeys=new o.UserKeys(void 0,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 I.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 A.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 k.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=0n,a){return this.enforceRateLimit(this.depositSolanaForOther.name,[e,t,n]),y.hinkalSolanaDepositForOther(this,e,t,n,r,i,a)}async depositAndWithdraw(e,n,r,i,a,o,s,c,u=!0){return t.isSolanaLike(l.validateAndGetChainId([e]))?L.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]))?J.hinkalSolanaClaimUtxo(this,e,n,r,i):K.hinkalClaimUtxo(this,e,n,r,i)}async depositAndBridge(e,t,n,r,i,a,o,s=!0){return U.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]),W.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]),G.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,f=!1){return t.isSolanaLike(l.validateAndGetChainId(e))?q.hinkalSolanaProoflessDeposit(this,e,n,i,a,o,u,f):M.hinkalProoflessDeposit(this,e,n,i,a,o,s,c,u,d,f)}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))?z.hinkalSolanaTransfer(this,e,n,r,i,a,o):P.hinkalTransfer(this,e,n,r,i,a,o)}async withdraw(e,n,r,i,a,o,s,c){return t.isSolanaLike(l.validateAndGetChainId(e))?R.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 Y.hinkalWithdrawStuckUtxos(this,e,t)}async createReceiveAddress(e,t,n=!1){return D.hinkalReceiveVaultCreate(this,e,t,n)}async getReceiveVaultAccount(){return E.hinkalGetReceiveVaultAccount(this)}async recoverReceiveVault(e,t,n,r,i=!1){return O.hinkalReceiveVaultRecover(this,e,t,n,r,i)}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 B.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))?H.hinkalSolanaProxyShield(this,e[0],n[0],a,void 0,!1,i?.variableRate,o):j.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,p,m){return t.isSolanaLike(l.validateAndGetChainId(e))?V.hinkalSolanaProxySwap(this,e,n,i,o,r,a,s,c,m,f,p):N.hinkalProxySwap(this,e,n,r,i,a,o,s,c,u,d,m,f,p)}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]),H.hinkalSolanaProxyShield(this,e[0],n[0],r,i,!1,o?.variableRate,s)):F.hinkalProxyToPrivate(this,e,n,i,a,o,r,s)}async proxySend(e,t,n,r,i,a,o){return Z.hinkalProxySend(this,e,t,n,r,i,a,o)}areMerkleTreeUpdatesDisabled(){return this.disableMerkleTreeUpdates}updateMerkleTreeUpdates(e){this.disableMerkleTreeUpdates=e}};exports.Hinkal=$;
|
|
@@ -11,6 +11,7 @@ import { IProviderAdapter } from '../provider-adapter/IProviderAdapter';
|
|
|
11
11
|
import { IHinkal } from './IHinkal';
|
|
12
12
|
import { MerkleTree } from '../merkle-tree';
|
|
13
13
|
import { IAPI } from '../../API';
|
|
14
|
+
import { ReceiveVaultAccount, ReceiveVaultRecord } from '../../types/receive-vault.types';
|
|
14
15
|
import { ICacheDevice } from '../../types/ICacheDevice';
|
|
15
16
|
import { StealthAddressStructure, TypedData } from '../../types/circom-data.types';
|
|
16
17
|
import { SubAccount } from '../../types/proxy.types';
|
|
@@ -95,19 +96,22 @@ export declare class Hinkal<ConnectorType> implements IHinkal {
|
|
|
95
96
|
deposit(erc20Tokens: ERC20Token[], amountChanges: bigint[], preEstimateGas?: boolean, returnTxData?: boolean): Promise<ethers.TransactionResponse | ethers.TransactionRequest | string | TronWebTypes.Transaction<TronWebTypes.TriggerSmartContract>>;
|
|
96
97
|
depositSolana(amount: bigint, token: ERC20Token, returnTxData?: boolean): Promise<string>;
|
|
97
98
|
depositForOther(erc20Tokens: ERC20Token[], amountChanges: bigint[], recipientInfo: string, preEstimateGas?: boolean, returnTxData?: boolean, action?: AdminTransactionType): Promise<ethers.TransactionResponse | ethers.TransactionRequest | string | TronWebTypes.Transaction<TronWebTypes.TriggerSmartContract>>;
|
|
98
|
-
depositSolanaForOther(amount: bigint, token: ERC20Token, recipientInfo: string, returnTxData?: boolean, action?: AdminTransactionType): Promise<string>;
|
|
99
|
+
depositSolanaForOther(amount: bigint, token: ERC20Token, recipientInfo: string, returnTxData?: boolean, variableRate?: bigint, action?: AdminTransactionType): Promise<string>;
|
|
99
100
|
depositAndWithdraw(erc20Token: ERC20Token, recipientAmounts: bigint[], recipientAddresses: string[], txCompletionTime?: number, feeStructureOverride?: FeeStructure, ref?: string, action?: AdminTransactionType, dashboardAccountId?: string, preEstimateGas?: boolean): Promise<DepositAndSendExtendedResult>;
|
|
100
101
|
claimUtxo(erc20Token: ERC20Token, utxo: Utxo, claimableSignature: string, feeStructureOverride?: FeeStructure): Promise<string>;
|
|
101
102
|
depositAndBridge(erc20Token: ERC20Token, recipientBridges: PublicBridgeRecipient[], txCompletionTime?: number, feeStructureOverride?: FeeStructure, ref?: string, action?: AdminTransactionType, dashboardAccountId?: string, preEstimateGas?: boolean): Promise<DepositAndSendExtendedResult>;
|
|
102
103
|
bridgePrivateToPrivate(sourceToken: ERC20Token, destToken: ERC20Token, amount: string, recipient: PrivateBridgeRecipient, slippage?: number, feeToken?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType): Promise<PrivateBridgeResult>;
|
|
103
104
|
checkSendTransactionStatus(scheduleId: string): Promise<ScheduledTransactionByIdResponse>;
|
|
104
105
|
nearDepositAndBridge(erc20Token: ERC20Token, recipientAmounts: bigint[], recipientAddresses: string[], params: NearBridgeParams, txCompletionTime?: number, feeStructureOverride?: FeeStructure, ref?: string, action?: AdminTransactionType, dashboardAccountId?: string): Promise<NearBridgeResult>;
|
|
105
|
-
prooflessDeposit(erc20Tokens: ERC20Token[], amountChanges: bigint[], stealthAddressStructures?: StealthAddressStructure[], recipientEncryptionKeys?: string[], createBlockedUtxos?: boolean, feeStructure?: ProoflessFeeStructure, orderId?: string, action?: AdminTransactionType, returnTxData?: boolean): Promise<string | ethers.TransactionRequest | TronWebTypes.Transaction<TronWebTypes.TriggerSmartContract>>;
|
|
106
|
+
prooflessDeposit(erc20Tokens: ERC20Token[], amountChanges: bigint[], stealthAddressStructures?: StealthAddressStructure[], recipientEncryptionKeys?: string[], createBlockedUtxos?: boolean, feeStructure?: ProoflessFeeStructure, orderId?: string, action?: AdminTransactionType, skipDuplicateCheck?: boolean, returnTxData?: boolean): Promise<string | ethers.TransactionRequest | TronWebTypes.Transaction<TronWebTypes.TriggerSmartContract>>;
|
|
106
107
|
getSolanaProgram(idl: Idl): Program;
|
|
107
108
|
getSolanaPublicKey(): PublicKey;
|
|
108
109
|
transfer(erc20Tokens: ERC20Token[], amountChanges: bigint[], recipientAddress: string, feeToken?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType): Promise<string>;
|
|
109
110
|
withdraw(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], recipientAddress: string, isRelayerOff: boolean, feeToken?: string, feeStructureOverride?: FeeStructure, variableRateOverride?: bigint, action?: AdminTransactionType): Promise<ethers.TransactionResponse | string>;
|
|
110
111
|
withdrawStuckUtxos(erc20Token: ERC20Token, recipientAddress: string): Promise<string[]>;
|
|
112
|
+
createReceiveAddress(chainId: number, token: string, forceFresh?: boolean): Promise<ReceiveVaultRecord>;
|
|
113
|
+
getReceiveVaultAccount(): Promise<ReceiveVaultAccount>;
|
|
114
|
+
recoverReceiveVault(record: ReceiveVaultRecord, token: string, chainId: number, to: string, returnTxData?: boolean): Promise<string | ethers.TransactionRequest | TronWebTypes.Transaction<TronWebTypes.TriggerSmartContract>>;
|
|
111
115
|
swap(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], externalActionId: ExternalActionId, swapData: string, feeToken?: string, feeStructureOverride?: FeeStructure, slippagePercentage?: number, action?: AdminTransactionType): Promise<string>;
|
|
112
116
|
swapSolana(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], swapData: string, feeToken?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType): Promise<string>;
|
|
113
117
|
actionReceive(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], feeToken?: string, feeStructureOverride?: FeeStructure, subAccount?: SubAccount, action?: AdminTransactionType): Promise<string>;
|
|
@@ -25,34 +25,37 @@ import "../merkle-tree/index.mjs";
|
|
|
25
25
|
import { resetMerkleTrees as L } from "./resetMerkleTrees.mjs";
|
|
26
26
|
import "../../API/index.mjs";
|
|
27
27
|
import { MultiThreadedUtxoUtils as R } from "../MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs";
|
|
28
|
-
import { hinkalPrivateWallet as
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
import {
|
|
28
|
+
import { hinkalPrivateWallet as z } from "./hinkalPrivateWallet.mjs";
|
|
29
|
+
import { hinkalGetReceiveVaultAccount as B } from "./hinkalReceiveVaultAccount.mjs";
|
|
30
|
+
import { hinkalReceiveVaultCreate as V } from "./hinkalReceiveVaultCreate.mjs";
|
|
31
|
+
import { hinkalReceiveVaultRecover as H } from "./hinkalReceiveVaultRecover.mjs";
|
|
32
|
+
import { getRecipientInfo as ne } from "./hinkalGetRecipientInfo.mjs";
|
|
33
|
+
import { hinkalSignSubAccount as U } from "./hinkalSignSubAccount.mjs";
|
|
34
|
+
import { hinkalActionReceive as W } from "./hinkalActionReceive.mjs";
|
|
35
|
+
import { hinkalProoflessDeposit as G } from "./hinkalProoflessDeposit.mjs";
|
|
36
|
+
import { hinkalProxySwap as K } from "./hinkalProxySwap.mjs";
|
|
37
|
+
import { hinkalTransfer as q } from "./hinkalTransfer.mjs";
|
|
38
|
+
import { hinkalProxyToPrivate as J } from "./hinkalProxyToPrivate.mjs";
|
|
39
|
+
import { TronProviderAdapter as Y } from "../../providers/TronProviderAdapter.mjs";
|
|
40
|
+
import { hinkalSolanaDepositAndWithdraw as X } from "./hinkalSolanaDepositAndWithdraw.mjs";
|
|
41
|
+
import { hinkalSolanaWithdraw as Z } from "./hinkalSolanaWithdraw.mjs";
|
|
42
|
+
import { hinkalSolanaTransfer as re } from "./hinkalSolanaTransfer.mjs";
|
|
43
|
+
import { hinkalSolanaSwap as ie } from "./hinkalSolanaSwap.mjs";
|
|
44
|
+
import { hinkalSolanaProxySwap as ae } from "./hinkalSolanaProxySwap.mjs";
|
|
42
45
|
import { hinkalSolanaProxyShield as Q } from "./hinkalSolanaProxyShield.mjs";
|
|
43
|
-
import { hinkalDepositAndBridge as
|
|
44
|
-
import { hinkalBridgePrivateToPrivate as
|
|
45
|
-
import { hinkalNearDepositAndBridge as
|
|
46
|
-
import { hinkalClaimUtxo as
|
|
47
|
-
import { hinkalSolanaProoflessDeposit as
|
|
48
|
-
import { hinkalSolanaClaimUtxo as
|
|
49
|
-
import { hinkalWithdrawStuckUtxos as
|
|
50
|
-
import { HinkalPrivateBalanceController as
|
|
46
|
+
import { hinkalDepositAndBridge as oe } from "./hinkalDepositAndBridge.mjs";
|
|
47
|
+
import { hinkalBridgePrivateToPrivate as $ } from "./hinkalBridgePrivateToPrivate.mjs";
|
|
48
|
+
import { hinkalNearDepositAndBridge as se } from "./hinkalNearDepositAndBridge.mjs";
|
|
49
|
+
import { hinkalClaimUtxo as ce } from "./hinkalClaimUtxo.mjs";
|
|
50
|
+
import { hinkalSolanaProoflessDeposit as le } from "./hinkalSolanaProoflessDeposit.mjs";
|
|
51
|
+
import { hinkalSolanaClaimUtxo as ue } from "./hinkalSolanaClaimUtxo.mjs";
|
|
52
|
+
import { hinkalWithdrawStuckUtxos as de } from "./hinkalWithdrawStuckUtxos.mjs";
|
|
53
|
+
import { HinkalPrivateBalanceController as fe } from "../private-balances/HinkalPrivateBalanceController.mjs";
|
|
51
54
|
import "../private-balances/index.mjs";
|
|
52
|
-
import { hinkalProxySend as
|
|
53
|
-
import { Transaction as
|
|
55
|
+
import { hinkalProxySend as pe } from "./hinkalProxySend.mjs";
|
|
56
|
+
import { Transaction as me } from "@solana/web3.js";
|
|
54
57
|
//#region libs/shared/common/src/data-structures/Hinkal/Hinkal.ts
|
|
55
|
-
var
|
|
58
|
+
var he = class {
|
|
56
59
|
ethereumProviderAdapter;
|
|
57
60
|
solanaProviderAdapter;
|
|
58
61
|
tronProviderAdapter;
|
|
@@ -63,7 +66,7 @@ var fe = class {
|
|
|
63
66
|
encryptedOutputsByChain = {};
|
|
64
67
|
commitmentsSnapshotServiceByChain = {};
|
|
65
68
|
nullifierSnapshotServiceByChain = {};
|
|
66
|
-
privateBalances = new
|
|
69
|
+
privateBalances = new fe(this);
|
|
67
70
|
utxoUtils;
|
|
68
71
|
lastCallState = /* @__PURE__ */ new Map();
|
|
69
72
|
cacheDevice;
|
|
@@ -93,7 +96,7 @@ var fe = class {
|
|
|
93
96
|
}
|
|
94
97
|
async initProviderAdapter(e, t) {
|
|
95
98
|
let n = r.ethMainnet;
|
|
96
|
-
t instanceof O ? n = i : t instanceof
|
|
99
|
+
t instanceof O ? n = i : t instanceof Y && (n = a), await this.updateProviderAdapter(n, t), t.initConnector(e);
|
|
97
100
|
let o = await t.connectAndPatchProvider(e);
|
|
98
101
|
await t.init(o), await this.setListeners();
|
|
99
102
|
}
|
|
@@ -109,7 +112,7 @@ var fe = class {
|
|
|
109
112
|
return this.getProviderAdapter().signMessage(t);
|
|
110
113
|
}
|
|
111
114
|
async signSolanaLedgerMessage() {
|
|
112
|
-
let e = new
|
|
115
|
+
let e = new me({
|
|
113
116
|
blockhash: f,
|
|
114
117
|
lastValidBlockHeight: p,
|
|
115
118
|
feePayer: this.getSolanaPublicKey()
|
|
@@ -146,7 +149,7 @@ var fe = class {
|
|
|
146
149
|
getTronWeb() {
|
|
147
150
|
let e = this.tronProviderAdapter;
|
|
148
151
|
if (!e) throw Error("Tron provider adapter not initialized");
|
|
149
|
-
if (!(e instanceof
|
|
152
|
+
if (!(e instanceof Y)) throw Error("Tron provider adapter is not a TronProviderAdapter");
|
|
150
153
|
let t = e.getTronWeb();
|
|
151
154
|
if (!t) throw Error("TronWeb not available");
|
|
152
155
|
return t;
|
|
@@ -170,7 +173,7 @@ var fe = class {
|
|
|
170
173
|
return await this.getProviderAdapter().signTypedData(e, t, n);
|
|
171
174
|
}
|
|
172
175
|
async signWithSubAccount(e, t, n, r) {
|
|
173
|
-
return
|
|
176
|
+
return U(e, t, n, r);
|
|
174
177
|
}
|
|
175
178
|
getContractWithSigner(e, t, n = "") {
|
|
176
179
|
return this.getProviderAdapter(e).getContractWithSigner(e, t, n);
|
|
@@ -296,7 +299,7 @@ var fe = class {
|
|
|
296
299
|
this.snapshotsClearInterval(), this.privateBalances.dispose(), await this.resetProviderAdapters();
|
|
297
300
|
}
|
|
298
301
|
getRecipientInfo() {
|
|
299
|
-
return
|
|
302
|
+
return ne(this);
|
|
300
303
|
}
|
|
301
304
|
async deposit(e, t, n = !0, r = !1) {
|
|
302
305
|
return T(this, e, t, n, r);
|
|
@@ -311,28 +314,28 @@ var fe = class {
|
|
|
311
314
|
n
|
|
312
315
|
]), E(this, e, t, n, r, i, a);
|
|
313
316
|
}
|
|
314
|
-
async depositSolanaForOther(e, t, n, r = !1, i) {
|
|
317
|
+
async depositSolanaForOther(e, t, n, r = !1, i = 0n, a) {
|
|
315
318
|
return this.enforceRateLimit(this.depositSolanaForOther.name, [
|
|
316
319
|
e,
|
|
317
320
|
t,
|
|
318
321
|
n
|
|
319
|
-
]), N(this, e, t, n, r, i);
|
|
322
|
+
]), N(this, e, t, n, r, i, a);
|
|
320
323
|
}
|
|
321
324
|
async depositAndWithdraw(e, t, n, r, i, a, o, c, l = !0) {
|
|
322
|
-
return s(x([e])) ?
|
|
325
|
+
return s(x([e])) ? X(this, e, t, n, r, i, a, o, c) : j(this, e, t, n, r, i, a, o, c, l);
|
|
323
326
|
}
|
|
324
327
|
async claimUtxo(e, t, n, r) {
|
|
325
|
-
return s(x([e])) ?
|
|
328
|
+
return s(x([e])) ? ue(this, e, t, n, r) : ce(this, e, t, n, r);
|
|
326
329
|
}
|
|
327
330
|
async depositAndBridge(e, t, n, r, i, a, o, s = !0) {
|
|
328
|
-
return
|
|
331
|
+
return oe(this, e, t, n, r, i, a, o, s);
|
|
329
332
|
}
|
|
330
333
|
async bridgePrivateToPrivate(e, t, n, r, i, a, o, s) {
|
|
331
334
|
return this.enforceRateLimit(this.bridgePrivateToPrivate.name, [
|
|
332
335
|
e,
|
|
333
336
|
t,
|
|
334
337
|
n
|
|
335
|
-
]),
|
|
338
|
+
]), $(this, e, t, n, r, i, a, o, s);
|
|
336
339
|
}
|
|
337
340
|
async checkSendTransactionStatus(e) {
|
|
338
341
|
return y(e);
|
|
@@ -343,10 +346,10 @@ var fe = class {
|
|
|
343
346
|
t,
|
|
344
347
|
n,
|
|
345
348
|
r
|
|
346
|
-
]),
|
|
349
|
+
]), se(this, e, t, n, r, i, a, o, s, c);
|
|
347
350
|
}
|
|
348
|
-
async prooflessDeposit(e, t, n, r, i = !1, a = g, o = "", c, l = !1) {
|
|
349
|
-
return s(x(e)) ?
|
|
351
|
+
async prooflessDeposit(e, t, n, r, i = !1, a = g, o = "", c, l = !1, u = !1) {
|
|
352
|
+
return s(x(e)) ? le(this, e, t, n, r, i, c, u) : G(this, e, t, n, r, i, a, o, c, l, u);
|
|
350
353
|
}
|
|
351
354
|
getSolanaProgram(e) {
|
|
352
355
|
if (!this.solanaProviderAdapter) throw Error("No provider adapter initialized");
|
|
@@ -363,24 +366,33 @@ var fe = class {
|
|
|
363
366
|
e,
|
|
364
367
|
t,
|
|
365
368
|
n
|
|
366
|
-
]), s(x(e)) ?
|
|
369
|
+
]), s(x(e)) ? re(this, e, t, n, r, i, a) : q(this, e, t, n, r, i, a);
|
|
367
370
|
}
|
|
368
371
|
async withdraw(e, t, n, r, i, a, o, c) {
|
|
369
|
-
return s(x(e)) ?
|
|
372
|
+
return s(x(e)) ? Z(this, e, t, n, i, a, o, c) : F(this, e, t, n, r, i, a, o, c);
|
|
370
373
|
}
|
|
371
374
|
async withdrawStuckUtxos(e, t) {
|
|
372
|
-
return
|
|
375
|
+
return de(this, e, t);
|
|
376
|
+
}
|
|
377
|
+
async createReceiveAddress(e, t, n = !1) {
|
|
378
|
+
return V(this, e, t, n);
|
|
379
|
+
}
|
|
380
|
+
async getReceiveVaultAccount() {
|
|
381
|
+
return B(this);
|
|
382
|
+
}
|
|
383
|
+
async recoverReceiveVault(e, t, n, r, i = !1) {
|
|
384
|
+
return H(this, e, t, n, r, i);
|
|
373
385
|
}
|
|
374
386
|
async swap(e, t, n, r, i, a, o, c) {
|
|
375
387
|
return s(x(e)) ? this.swapSolana(e, t, r, i, a, c) : P(this, e, t, n, r, i, a, o, c);
|
|
376
388
|
}
|
|
377
389
|
async swapSolana(e, t, n, r, i, a) {
|
|
378
390
|
let o = JSON.parse(n), s = BigInt(o.swapperAccountSalt), { instructionLists: c, addressLookupTableAccount: l } = o.data;
|
|
379
|
-
return
|
|
391
|
+
return ie(this, e, t, s, c, l, r, i, a);
|
|
380
392
|
}
|
|
381
393
|
async actionReceive(e, t, n, r, i, a) {
|
|
382
394
|
if (!i) throw Error("subAccount is required");
|
|
383
|
-
return s(x(e)) ? Q(this, e[0], t[0], i, void 0, !1, r?.variableRate, a) :
|
|
395
|
+
return s(x(e)) ? Q(this, e[0], t[0], i, void 0, !1, r?.variableRate, a) : W(this, e, t, n, r, i, a);
|
|
384
396
|
}
|
|
385
397
|
async actionPrivateWallet(e, t, n, r, i, a, o, s, c, l, u = !1, d, f, p) {
|
|
386
398
|
return this.enforceRateLimit(this.actionPrivateWallet.name, [
|
|
@@ -394,10 +406,10 @@ var fe = class {
|
|
|
394
406
|
s,
|
|
395
407
|
c,
|
|
396
408
|
p
|
|
397
|
-
]),
|
|
409
|
+
]), z(this, e, t, n, r, i, a, o, s, c, l, u, d, f, p);
|
|
398
410
|
}
|
|
399
411
|
async proxySwap(e, t, n, r, i, a, o, c, l = !1, u, d, f, p) {
|
|
400
|
-
return s(x(e)) ?
|
|
412
|
+
return s(x(e)) ? ae(this, e, t, r, a, n, i, o, c, p, d, f) : K(this, e, t, n, r, i, a, o, c, l, u, p, d, f);
|
|
401
413
|
}
|
|
402
414
|
async proxyToPrivate(e, t, n, r, i, a, o) {
|
|
403
415
|
return s(x(e)) ? (this.enforceRateLimit(this.proxyToPrivate.name, [
|
|
@@ -405,10 +417,10 @@ var fe = class {
|
|
|
405
417
|
t[0],
|
|
406
418
|
n,
|
|
407
419
|
r
|
|
408
|
-
]), Q(this, e[0], t[0], n, r, !1, a?.variableRate, o)) :
|
|
420
|
+
]), Q(this, e[0], t[0], n, r, !1, a?.variableRate, o)) : J(this, e, t, r, i, a, n, o);
|
|
409
421
|
}
|
|
410
422
|
async proxySend(e, t, n, r, i, a, o) {
|
|
411
|
-
return
|
|
423
|
+
return pe(this, e, t, n, r, i, a, o);
|
|
412
424
|
}
|
|
413
425
|
areMerkleTreeUpdatesDisabled() {
|
|
414
426
|
return this.disableMerkleTreeUpdates;
|
|
@@ -418,4 +430,4 @@ var fe = class {
|
|
|
418
430
|
}
|
|
419
431
|
};
|
|
420
432
|
//#endregion
|
|
421
|
-
export {
|
|
433
|
+
export { he as Hinkal };
|
|
@@ -20,6 +20,7 @@ import { PublicKey } from '@solana/web3.js';
|
|
|
20
20
|
import { PrivateBridgeRecipient, PrivateBridgeResult, PublicBridgeRecipient } from '../../types/bridging-tx.types';
|
|
21
21
|
import { NearBridgeParams, NearBridgeResult } from '../../types/near-intents.types';
|
|
22
22
|
import { PrivateBalancesState } from '../../types/balances.types';
|
|
23
|
+
import { ReceiveVaultAccount, ReceiveVaultRecord } from '../../types/receive-vault.types';
|
|
23
24
|
import { Utxo } from '../utxo/Utxo';
|
|
24
25
|
import { ScheduledTransactionByIdResponse } from '../../API/scheduled-transactions-calls';
|
|
25
26
|
import { DepositAndSendExtendedResult } from '../../types/scheduled-transactions.types';
|
|
@@ -61,14 +62,17 @@ export interface IHinkal<ConnectorType = unknown> {
|
|
|
61
62
|
bridgePrivateToPrivate(sourceToken: ERC20Token, destToken: ERC20Token, amount: string, recipient: PrivateBridgeRecipient, slippage?: number, feeToken?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType): Promise<PrivateBridgeResult>;
|
|
62
63
|
checkSendTransactionStatus(scheduleId: string): Promise<ScheduledTransactionByIdResponse>;
|
|
63
64
|
nearDepositAndBridge(erc20Token: ERC20Token, recipientAmounts: bigint[], recipientAddresses: string[], params: NearBridgeParams, txCompletionTime?: number, feeStructureOverride?: FeeStructure, ref?: string, action?: AdminTransactionType, dashboardAccountId?: string): Promise<NearBridgeResult>;
|
|
64
|
-
prooflessDeposit(erc20Tokens: ERC20Token[], amountChanges: bigint[], stealthAddressStructures?: StealthAddressStructure[], recipientEncryptionKeys?: string[], createBlockedUtxos?: boolean, feeStructure?: ProoflessFeeStructure, orderId?: string, action?: AdminTransactionType, returnTxData?: boolean): Promise<string | ethers.TransactionRequest | TronWebTypes.Transaction<TronWebTypes.TriggerSmartContract>>;
|
|
65
|
+
prooflessDeposit(erc20Tokens: ERC20Token[], amountChanges: bigint[], stealthAddressStructures?: StealthAddressStructure[], recipientEncryptionKeys?: string[], createBlockedUtxos?: boolean, feeStructure?: ProoflessFeeStructure, orderId?: string, action?: AdminTransactionType, skipDuplicateCheck?: boolean, returnTxData?: boolean): Promise<string | ethers.TransactionRequest | TronWebTypes.Transaction<TronWebTypes.TriggerSmartContract>>;
|
|
65
66
|
getSolanaProgram(idl: Idl): Program;
|
|
66
67
|
getSolanaPublicKey(): PublicKey;
|
|
67
68
|
depositSolana(amount: bigint, token: ERC20Token): Promise<string>;
|
|
68
|
-
depositSolanaForOther(amount: bigint, token: ERC20Token, recipientInfo: string, returnTxData?: boolean, action?: AdminTransactionType): Promise<string>;
|
|
69
|
+
depositSolanaForOther(amount: bigint, token: ERC20Token, recipientInfo: string, returnTxData?: boolean, variableRate?: bigint, action?: AdminTransactionType): Promise<string>;
|
|
69
70
|
transfer(erc20Tokens: ERC20Token[], amountChanges: bigint[], recipientAddress: string, feeToken?: string, feeStructureOverride?: FeeStructure, action?: AdminTransactionType): Promise<string>;
|
|
70
71
|
withdraw(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], recipientAddress: string, isRelayerOff: boolean, feeToken?: string, feeStructureOverride?: FeeStructure, variableRateOverride?: bigint, action?: AdminTransactionType): Promise<ethers.TransactionResponse | string>;
|
|
71
72
|
withdrawStuckUtxos(erc20Token: ERC20Token, recipientAddress: string): Promise<string[]>;
|
|
73
|
+
createReceiveAddress(chainId: number, token: string, forceFresh?: boolean): Promise<ReceiveVaultRecord>;
|
|
74
|
+
getReceiveVaultAccount(): Promise<ReceiveVaultAccount>;
|
|
75
|
+
recoverReceiveVault(record: ReceiveVaultRecord, token: string, chainId: number, to: string, returnTxData?: boolean): Promise<string | ethers.TransactionRequest | TronWebTypes.Transaction<TronWebTypes.TriggerSmartContract>>;
|
|
72
76
|
swap(erc20Tokens: ERC20Token[], deltaAmounts: bigint[], externalActionId: ExternalActionId, swapData: string, feeToken?: string, feeStructureOverride?: FeeStructure, slippagePercentage?: number, action?: AdminTransactionType): Promise<string>;
|
|
73
77
|
getProviderAdapter(chainId?: number): IProviderAdapter;
|
|
74
78
|
getTronWeb(): TronWeb;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../../error-handling/customErrors/ErrorWithTx.cjs`),o=require(`../../error-handling/logger.cjs`),s=require(`../../types/external-action.types.cjs`),c=require(`../../types/transactions.types.cjs`),l=require(`../../types/admin.types.cjs`),u=require(`../../types/activities.types.cjs`),d=require(`../../types/transaction.types.cjs`),f=require(`../../types/offscreen.types.cjs`);require(`../../types/index.cjs`);const ee=require(`../../API/API.cjs`),p=require(`../../functions/utils/erc20tokenFunctions.cjs`),m=require(`../../error-handling/get-error.message.cjs`);require(`../../error-handling/index.cjs`);const h=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),g=require(`../../functions/utils/create-provider.cjs`),_=require(`../../functions/pre-transaction/getFeeStructure.cjs`),v=require(`../../functions/
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../../error-handling/customErrors/ErrorWithTx.cjs`),o=require(`../../error-handling/logger.cjs`),s=require(`../../types/external-action.types.cjs`),c=require(`../../types/transactions.types.cjs`),l=require(`../../types/admin.types.cjs`),u=require(`../../types/activities.types.cjs`),d=require(`../../types/transaction.types.cjs`),f=require(`../../types/offscreen.types.cjs`);require(`../../types/index.cjs`);const ee=require(`../../API/API.cjs`),p=require(`../../functions/utils/erc20tokenFunctions.cjs`),m=require(`../../error-handling/get-error.message.cjs`);require(`../../error-handling/index.cjs`);const h=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),g=require(`../../functions/utils/create-provider.cjs`),_=require(`../../functions/pre-transaction/getFeeStructure.cjs`),v=require(`../../functions/utils/fees.utils.cjs`),y=require(`../../functions/private-wallet/emporium.helpers.cjs`),b=require(`../../functions/utils/convertEmporiumOpToCallInfo.cjs`),x=require(`../../functions/utils/postToOffscreen.cjs`),S=require(`../../functions/auto-deposit-back-helpers/get-tokens-to-deposit-back.cjs`),C=require(`../../functions/auto-deposit-back-helpers/get-gas-token-records.cjs`),w=require(`../../functions/auto-deposit-back-helpers/select-gas-token.cjs`),T=require(`../../functions/auto-deposit-back-helpers/update-hinkal.cjs`);require(`../../functions/index.cjs`);const E=require(`../IndexedDB/activity-db.cjs`);require(`../IndexedDB/index.cjs`);var D=3*1e3,O=13*1e3,k=async(k,A,j,M,N,P,F,I)=>{if(!j||F.length===0)return;let L;try{let a=g.createJsonRpcProvider(A);await i.waitLittle(A===e.chainIds.ethMainnet?O:D);let o=await S.getTokensToDepositBack(F,N,j,a);if(!o.length){x.postToOffscreen(f.MessagesFromOffscreen.AutoShieldTxStatus,{message:n.transactionErrorCodes.AUTO_SHIELD_SKIPPED});return}let d=(await p.getErc20TokensBySymbolsFromAPI(await v.getGasTokenSymbols(A),A)).filter(e=>e!==void 0),{prices:m}=await ee.API.getTokenPrices(A,d.map(e=>e.erc20TokenAddress)),R=new Map(m.map((e,t)=>[d[t].erc20TokenAddress.toLowerCase(),e])),z=o.map(({token:e})=>e),B=o.map(({balance:e})=>e),V=z.map(({erc20TokenAddress:e})=>e),H=y.createTransaferEmporiumOpsBatch(k,A,V,await h.modifyVolatileTokenAmountChanges(A,z,B,j)),U=await _.getFeeStructure(A,N,V,s.ExternalActionId.Emporium,H.map(e=>b.convertEmporiumOpToCallInfo(e,j,A))),{flatFee:W}=U??{},G=await p.getErc20TokenFromAPI(A,U.feeToken);if(!G)return;let K=r.getAmountInToken(G,W),q=(R.get(G.erc20TokenAddress.toLowerCase())??0)*Number(K),J=await w.selectGasToken(N,q,A,z,H,await C.getGasTokenRecords(d,A,k,j,a,R),U,V,j);if(!J)return;let{feeToken:Y,feeStructure:X}=J??{};if(P&&Number(P)<q){x.postToOffscreen(f.MessagesFromOffscreen.AutoShieldTxStatus,{message:n.gasErrorCodes.GAS_PRICE_EXCEEDS_AUTOSHIELD_LIMIT});return}let Z=z.findIndex(e=>t.caseInsensitiveEqual(e.erc20TokenAddress,Y));Z!==-1&&(B[Z]-=X?.flatFee??0n);let{hinkalAddress:Q}=e.networkRegistry[A].contractData,$={activityType:u.ActivityTypes.AUTO_SHIELD,chainId:A,from:j,to:Q,gasInDollar:q.toString(),tokensReceive:z.map((e,t)=>({amount:r.getAmountInToken(e,B[t]),token:e}))};if(L=await E.activityStorage.saveTxRequest($),x.postToOffscreen(f.MessagesFromOffscreen.AutoShieldTxStatus,{status:c.TransactionStatus.Loading}),I)T.updateHinkal(A,k,I.inputNullifiers?.flat(),I.outCommitments?.flat(),I.encryptedOutputs?.flat());else if(!k.generateProofRemotely)throw Error(`Circomdata should be passed if tx is done locally`);let te={id:0,success:!0,txHash:await k.actionReceive(z,B,Y,X,M,l.AdminTransactionType.AutoShield)};await E.activityStorage.updatePendingTransactions(te,L),x.postToOffscreen(f.MessagesFromOffscreen.AutoShieldTxStatus,{status:c.TransactionStatus.Confirmed,activityRequest:$})}catch(e){let t;e instanceof a.ErrorWithRelayerTransaction&&(t=e.txHash);let n={error:e,id:0,success:!1,...t?{erroredTx:t}:{}};L&&await E.activityStorage.updatePendingTransactions(n,L),x.postToOffscreen(f.MessagesFromOffscreen.AutoShieldTxStatus,{status:c.TransactionStatus.Failed,error:m.getErrorMessageFromTransactionRequest(e,d.TransactionRequestType.ReceiveFromShieldedAccount)}),o.Logger.error(`Error in auto deposit back:`,e)}};exports.handleAutoDepositBack=k;
|
|
@@ -19,10 +19,10 @@ import "../../error-handling/index.mjs";
|
|
|
19
19
|
import { modifyVolatileTokenAmountChanges as te } from "../../functions/pre-transaction/getVolatileTransferAmount.mjs";
|
|
20
20
|
import { createJsonRpcProvider as v } from "../../functions/utils/create-provider.mjs";
|
|
21
21
|
import { getFeeStructure as y } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
22
|
+
import { getGasTokenSymbols as b } from "../../functions/utils/fees.utils.mjs";
|
|
23
|
+
import { createTransaferEmporiumOpsBatch as x } from "../../functions/private-wallet/emporium.helpers.mjs";
|
|
24
|
+
import { convertEmporiumOpToCallInfo as S } from "../../functions/utils/convertEmporiumOpToCallInfo.mjs";
|
|
25
|
+
import { postToOffscreen as C } from "../../functions/utils/postToOffscreen.mjs";
|
|
26
26
|
import { getTokensToDepositBack as w } from "../../functions/auto-deposit-back-helpers/get-tokens-to-deposit-back.mjs";
|
|
27
27
|
import { getGasTokenRecords as T } from "../../functions/auto-deposit-back-helpers/get-gas-token-records.mjs";
|
|
28
28
|
import { selectGasToken as E } from "../../functions/auto-deposit-back-helpers/select-gas-token.mjs";
|
|
@@ -39,16 +39,16 @@ var k = 3 * 1e3, ne = 13 * 1e3, A = async (A, j, M, N, P, F, I, L) => {
|
|
|
39
39
|
await ee(j === e.ethMainnet ? ne : k);
|
|
40
40
|
let s = await w(I, P, M, o);
|
|
41
41
|
if (!s.length) {
|
|
42
|
-
|
|
42
|
+
C(p.AutoShieldTxStatus, { message: i.AUTO_SHIELD_SKIPPED });
|
|
43
43
|
return;
|
|
44
44
|
}
|
|
45
|
-
let f = (await g(await
|
|
45
|
+
let f = (await g(await b(j), j)).filter((e) => e !== void 0), { prices: _ } = await m.getTokenPrices(j, f.map((e) => e.erc20TokenAddress)), z = new Map(_.map((e, t) => [f[t].erc20TokenAddress.toLowerCase(), e])), B = s.map(({ token: e }) => e), V = s.map(({ balance: e }) => e), H = B.map(({ erc20TokenAddress: e }) => e), U = x(A, j, H, await te(j, B, V, M)), W = await y(j, P, H, c.Emporium, U.map((e) => S(e, M, j))), { flatFee: G } = W ?? {}, K = await h(j, W.feeToken);
|
|
46
46
|
if (!K) return;
|
|
47
47
|
let q = a(K, G), J = (z.get(K.erc20TokenAddress.toLowerCase()) ?? 0) * Number(q), Y = await E(P, J, j, B, U, await T(f, j, A, M, o, z), W, H, M);
|
|
48
48
|
if (!Y) return;
|
|
49
49
|
let { feeToken: X, feeStructure: Z } = Y ?? {};
|
|
50
50
|
if (F && Number(F) < J) {
|
|
51
|
-
|
|
51
|
+
C(p.AutoShieldTxStatus, { message: r.GAS_PRICE_EXCEEDS_AUTOSHIELD_LIMIT });
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
54
|
let Q = B.findIndex((e) => n(e.erc20TokenAddress, X));
|
|
@@ -64,14 +64,14 @@ var k = 3 * 1e3, ne = 13 * 1e3, A = async (A, j, M, N, P, F, I, L) => {
|
|
|
64
64
|
token: e
|
|
65
65
|
}))
|
|
66
66
|
};
|
|
67
|
-
if (R = await O.saveTxRequest($),
|
|
67
|
+
if (R = await O.saveTxRequest($), C(p.AutoShieldTxStatus, { status: l.Loading }), L) D(j, A, L.inputNullifiers?.flat(), L.outCommitments?.flat(), L.encryptedOutputs?.flat());
|
|
68
68
|
else if (!A.generateProofRemotely) throw Error("Circomdata should be passed if tx is done locally");
|
|
69
69
|
let ie = {
|
|
70
70
|
id: 0,
|
|
71
71
|
success: !0,
|
|
72
72
|
txHash: await A.actionReceive(B, V, X, Z, N, u.AutoShield)
|
|
73
73
|
};
|
|
74
|
-
await O.updatePendingTransactions(ie, R),
|
|
74
|
+
await O.updatePendingTransactions(ie, R), C(p.AutoShieldTxStatus, {
|
|
75
75
|
status: l.Confirmed,
|
|
76
76
|
activityRequest: $
|
|
77
77
|
});
|
|
@@ -84,7 +84,7 @@ var k = 3 * 1e3, ne = 13 * 1e3, A = async (A, j, M, N, P, F, I, L) => {
|
|
|
84
84
|
success: !1,
|
|
85
85
|
...t ? { erroredTx: t } : {}
|
|
86
86
|
};
|
|
87
|
-
R && await O.updatePendingTransactions(n, R),
|
|
87
|
+
R && await O.updatePendingTransactions(n, R), C(p.AutoShieldTxStatus, {
|
|
88
88
|
status: l.Failed,
|
|
89
89
|
error: _(e, f.ReceiveFromShieldedAccount)
|
|
90
90
|
}), s.error("Error in auto deposit back:", e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../constants/protocol.constants.cjs`);const e=require(`../../types/external-action.types.cjs`),t=require(`../../functions/utils/token-check.utils.cjs`),n=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),r=require(`../AccountActions/AccountActions.cjs`),i=require(`../../functions/pre-transaction/getFeeStructure.cjs`),a=require(`../../functions/
|
|
1
|
+
require(`../../constants/protocol.constants.cjs`);const e=require(`../../types/external-action.types.cjs`),t=require(`../../functions/utils/token-check.utils.cjs`),n=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),r=require(`../AccountActions/AccountActions.cjs`),i=require(`../../functions/pre-transaction/getFeeStructure.cjs`),a=require(`../../functions/utils/fees.utils.cjs`),o=require(`../../functions/private-wallet/emporium.helpers.cjs`),s=require(`../../functions/utils/convertEmporiumOpToCallInfo.cjs`);var c=async(c,l,u,d,f,p,m)=>{if(!p)throw Error(`hinkalActionReceive: subAccount should be provided`);if(!d)throw Error(`Fee token is required in hinkalActionReceive`);let h=t.validateAndGetChainId(l),g=r.AccountActions.getAddressFromSubAccount(h,p);if(!g)throw Error(`Public account address is not available`);let _=l.map(e=>e.erc20TokenAddress),v=await n.modifyVolatileTokenAmountChanges(h,l,u,g),y=o.createTransaferEmporiumOpsBatch(c,h,_,v),b=await a.calculateModifiedFeeStructureForTokens(h,l,v,f??await i.getFeeStructure(h,d,_,e.ExternalActionId.Emporium,y.map(e=>s.convertEmporiumOpToCallInfo(e,g,h)),25n)),x=l.map((e,t)=>({token:e,amount:-1n*v[t]}));return c.actionPrivateWallet(h,l,v,v.map(()=>!1),y,x,p,d,b,void 0,void 0,void 0,m,void 0)};exports.hinkalActionReceive=c;
|
|
@@ -4,16 +4,16 @@ import { validateAndGetChainId as t } from "../../functions/utils/token-check.ut
|
|
|
4
4
|
import { modifyVolatileTokenAmountChanges as n } from "../../functions/pre-transaction/getVolatileTransferAmount.mjs";
|
|
5
5
|
import { AccountActions as r } from "../AccountActions/AccountActions.mjs";
|
|
6
6
|
import { getFeeStructure as i } from "../../functions/pre-transaction/getFeeStructure.mjs";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import { calculateModifiedFeeStructureForTokens as a } from "../../functions/utils/fees.utils.mjs";
|
|
8
|
+
import { createTransaferEmporiumOpsBatch as o } from "../../functions/private-wallet/emporium.helpers.mjs";
|
|
9
|
+
import { convertEmporiumOpToCallInfo as s } from "../../functions/utils/convertEmporiumOpToCallInfo.mjs";
|
|
10
10
|
//#region libs/shared/common/src/data-structures/Hinkal/hinkalActionReceive.ts
|
|
11
11
|
var c = async (c, l, u, d, f, p, m) => {
|
|
12
12
|
if (!p) throw Error("hinkalActionReceive: subAccount should be provided");
|
|
13
13
|
if (!d) throw Error("Fee token is required in hinkalActionReceive");
|
|
14
14
|
let h = t(l), g = r.getAddressFromSubAccount(h, p);
|
|
15
15
|
if (!g) throw Error("Public account address is not available");
|
|
16
|
-
let _ = l.map((e) => e.erc20TokenAddress), v = await n(h, l, u, g), y =
|
|
16
|
+
let _ = l.map((e) => e.erc20TokenAddress), v = await n(h, l, u, g), y = o(c, h, _, v), b = await a(h, l, v, f ?? await i(h, d, _, e.Emporium, y.map((e) => s(e, g, h)), 25n)), x = l.map((e, t) => ({
|
|
17
17
|
token: e,
|
|
18
18
|
amount: -1n * v[t]
|
|
19
19
|
}));
|