@hinkal/common 0.3.12 → 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/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.mjs +4 -4
- 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
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { isTronLike as e, networkRegistry as t } from "../../constants/chains.constants.mjs";
|
|
2
|
+
import { RECEIVE_VAULT_EXPIRY_SECONDS as n, RECEIVE_VAULT_FEE_CEILING_MULTIPLIER as r, RECEIVE_VAULT_VARIABLE_RATE as i, zeroAddress as a } from "../../constants/protocol.constants.mjs";
|
|
3
|
+
import { UserKeys as o } from "../../data-structures/crypto-keys/keys.mjs";
|
|
4
|
+
import { Utxo as s } from "../../data-structures/utxo/Utxo.mjs";
|
|
5
|
+
import { addressToHexFormat as c, evmHexToTronBase58Address as l } from "./tron.utils.mjs";
|
|
6
|
+
import "../../data-structures/crypto-keys/index.mjs";
|
|
7
|
+
import { ethers as u } from "ethers";
|
|
8
|
+
//#region libs/shared/common/src/functions/utils/receive-vault.utils.ts
|
|
9
|
+
var d = "HINKAL_RECEIVE_V1", f = "HINKAL_RECEIVE_RECOVERY_V1", p = "HINKAL_RECEIVE_RECOVER", m = "HINKAL_RECEIVE_OUTPUT", h = "HINKAL_RECEIVE_ACCOUNT_V1", g = "HINKAL_RECEIVE_VAULT_ACCOUNT", _ = ({ chainId: e, token: t, index: n }) => `${e}:${c(t).toLowerCase()}:${n}`, v = (e) => e * r, y = () => BigInt(Math.floor(Date.now() / 1e3) + n), b = (e, t) => {
|
|
10
|
+
let n = u.keccak256(u.toUtf8Bytes(`${f}:${e.getShieldedPrivateKey()}:${_(t)}`));
|
|
11
|
+
return new u.Wallet(n);
|
|
12
|
+
}, x = (e) => o.getEncryptionKeyPair(e.getShieldedPrivateKey()).publicKey, S = (e, t) => {
|
|
13
|
+
let n = e.getShieldedPrivateKey(), r = BigInt(u.keccak256(u.toUtf8Bytes(`${d}:${n}:${_(t)}`))), l = new s({
|
|
14
|
+
amount: 0n,
|
|
15
|
+
erc20TokenAddress: a,
|
|
16
|
+
nullifyingKey: n,
|
|
17
|
+
randomization: o.findCorrectRandomization(r, n),
|
|
18
|
+
spendingPublicKey: e.getSpendingKeyPair().pubSpendingBJJPoint
|
|
19
|
+
}), { H0: f } = l;
|
|
20
|
+
if (!f) throw Error("receive vault: H0 is not set");
|
|
21
|
+
let p = o.getH1FromH0(f, n);
|
|
22
|
+
return {
|
|
23
|
+
recipient: {
|
|
24
|
+
H0x: f[0],
|
|
25
|
+
H0y: f[1],
|
|
26
|
+
H1x: p[0],
|
|
27
|
+
H1y: p[1],
|
|
28
|
+
stealthAddress: BigInt(l.getStealthAddress())
|
|
29
|
+
},
|
|
30
|
+
owner: b(e, t).address,
|
|
31
|
+
token: c(t.token),
|
|
32
|
+
maxFlatFee: BigInt(t.maxFlatFee),
|
|
33
|
+
maxVariableRate: Number(i),
|
|
34
|
+
expiry: BigInt(t.expiry)
|
|
35
|
+
};
|
|
36
|
+
}, C = (e) => u.AbiCoder.defaultAbiCoder().encode(["tuple(tuple(uint256,uint256,uint256,uint256,uint256),address,address,uint256,uint16,uint64)"], [[
|
|
37
|
+
[
|
|
38
|
+
e.recipient.H0x,
|
|
39
|
+
e.recipient.H0y,
|
|
40
|
+
e.recipient.H1x,
|
|
41
|
+
e.recipient.H1y,
|
|
42
|
+
e.recipient.stealthAddress
|
|
43
|
+
],
|
|
44
|
+
e.owner,
|
|
45
|
+
e.token,
|
|
46
|
+
e.maxFlatFee,
|
|
47
|
+
e.maxVariableRate,
|
|
48
|
+
e.expiry
|
|
49
|
+
]]), w = (t) => e(t) ? "0x41" : "0xff", T = (e) => [
|
|
50
|
+
[
|
|
51
|
+
e.recipient.H0x,
|
|
52
|
+
e.recipient.H0y,
|
|
53
|
+
e.recipient.H1x,
|
|
54
|
+
e.recipient.H1y,
|
|
55
|
+
e.recipient.stealthAddress
|
|
56
|
+
],
|
|
57
|
+
e.owner,
|
|
58
|
+
e.token,
|
|
59
|
+
e.maxFlatFee,
|
|
60
|
+
e.maxVariableRate,
|
|
61
|
+
e.expiry
|
|
62
|
+
], E = (e, t, n, r) => u.getAddress(u.dataSlice(u.solidityPackedKeccak256([
|
|
63
|
+
"bytes1",
|
|
64
|
+
"address",
|
|
65
|
+
"bytes32",
|
|
66
|
+
"bytes32"
|
|
67
|
+
], [
|
|
68
|
+
w(r),
|
|
69
|
+
c(t),
|
|
70
|
+
u.keccak256(C(e)),
|
|
71
|
+
n
|
|
72
|
+
]), 12)), D = (e) => t[e]?.contractData?.receiveVaultFactoryAddress || void 0, O = "0xe5f823a7777291668021ab2734f77bc16b4854c16034051c86967a5eb2415e54", k = "0xedef7fda070f3ae59616c754f3f10ec4dfe4cb5c531ae39141ab2d323b36e3ec", A = (t) => e(t) ? k : O, j = (e) => !!D(e), M = (t, n) => {
|
|
73
|
+
let r = D(n);
|
|
74
|
+
if (!r) throw Error(`receive vault: no factory on chain ${n}`);
|
|
75
|
+
let i = E(t, r, A(n), n);
|
|
76
|
+
return e(n) ? l(i) : i;
|
|
77
|
+
}, N = (e, t) => ({
|
|
78
|
+
...t,
|
|
79
|
+
vaultAddress: M(S(e, t), t.chainId)
|
|
80
|
+
}), P = ({ expiry: e }) => BigInt(e) < BigInt(Math.floor(Date.now() / 1e3)), F = (e) => ({
|
|
81
|
+
recipient: {
|
|
82
|
+
H0x: e.recipient.H0x.toString(),
|
|
83
|
+
H0y: e.recipient.H0y.toString(),
|
|
84
|
+
H1x: e.recipient.H1x.toString(),
|
|
85
|
+
H1y: e.recipient.H1y.toString(),
|
|
86
|
+
stealthAddress: e.recipient.stealthAddress.toString()
|
|
87
|
+
},
|
|
88
|
+
owner: e.owner,
|
|
89
|
+
token: e.token,
|
|
90
|
+
maxFlatFee: e.maxFlatFee.toString(),
|
|
91
|
+
maxVariableRate: e.maxVariableRate,
|
|
92
|
+
expiry: e.expiry.toString()
|
|
93
|
+
}), I = (e) => new u.Wallet(u.keccak256(u.toUtf8Bytes(`${h}:${e.getShieldedPrivateKey()}`))), L = (e) => I(e).address, R = (e, t) => u.keccak256(u.solidityPacked([
|
|
94
|
+
"string",
|
|
95
|
+
"address",
|
|
96
|
+
"uint256"
|
|
97
|
+
], [
|
|
98
|
+
g,
|
|
99
|
+
e,
|
|
100
|
+
t
|
|
101
|
+
])), z = async (e, t) => {
|
|
102
|
+
let n = I(e), r = R(n.address, t);
|
|
103
|
+
return {
|
|
104
|
+
accountKey: n.address,
|
|
105
|
+
deadline: t.toString(),
|
|
106
|
+
signature: await n.signMessage(u.getBytes(r))
|
|
107
|
+
};
|
|
108
|
+
}, B = (e, t, n, r) => u.keccak256(u.solidityPacked([
|
|
109
|
+
"string",
|
|
110
|
+
"uint256",
|
|
111
|
+
"address",
|
|
112
|
+
"address",
|
|
113
|
+
"bytes32"
|
|
114
|
+
], [
|
|
115
|
+
m,
|
|
116
|
+
BigInt(e),
|
|
117
|
+
c(t),
|
|
118
|
+
c(n),
|
|
119
|
+
u.keccak256(r)
|
|
120
|
+
])), V = async (e, t, n) => {
|
|
121
|
+
let r = D(t.chainId);
|
|
122
|
+
if (!r) throw Error(`receive vault: no factory on chain ${t.chainId}`);
|
|
123
|
+
let i = B(t.chainId, r, t.vaultAddress, n);
|
|
124
|
+
return b(e, t).signMessage(u.getBytes(i));
|
|
125
|
+
}, H = (t, n, r, i, a, o) => {
|
|
126
|
+
let s = u.keccak256(u.solidityPacked([
|
|
127
|
+
"string",
|
|
128
|
+
"uint256",
|
|
129
|
+
"address",
|
|
130
|
+
"address",
|
|
131
|
+
"address",
|
|
132
|
+
"address",
|
|
133
|
+
"uint256"
|
|
134
|
+
], [
|
|
135
|
+
p,
|
|
136
|
+
BigInt(t),
|
|
137
|
+
c(n),
|
|
138
|
+
c(r),
|
|
139
|
+
c(i),
|
|
140
|
+
c(a),
|
|
141
|
+
o
|
|
142
|
+
]));
|
|
143
|
+
return e(t) ? u.keccak256(u.concat([u.toUtf8Bytes("TRON Signed Message:\n32"), s])) : s;
|
|
144
|
+
}, U = async (t, n, r, i, a, o) => {
|
|
145
|
+
let s = D(i);
|
|
146
|
+
if (!s) throw Error(`receive vault: no factory on chain ${i}`);
|
|
147
|
+
let c = H(i, s, n.vaultAddress, r, a, o), l = b(t, n);
|
|
148
|
+
return e(i) ? new u.SigningKey(l.privateKey).sign(c).serialized : l.signMessage(u.getBytes(c));
|
|
149
|
+
};
|
|
150
|
+
//#endregion
|
|
151
|
+
export { N as buildReceiveVaultRecord, E as computeReceiveVaultAddress, C as encodeReceiveVaultParams, L as getReceiveVaultAccountKey, M as getReceiveVaultAddress, x as getReceiveVaultEncryptionKey, y as getReceiveVaultExpiry, D as getReceiveVaultFactoryAddress, v as getReceiveVaultFeeCeiling, A as getReceiveVaultInitCodeHash, B as getReceiveVaultOutputDigest, S as getReceiveVaultParams, H as getReceiveVaultRecoveryDigest, b as getReceiveVaultRecoveryWallet, P as isReceiveVaultExpired, j as isReceiveVaultSupported, T as receiveVaultParamsToTuple, F as serializeReceiveVaultParams, z as signReceiveVaultAccount, V as signReceiveVaultOutput, U as signReceiveVaultRecovery };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`);var t=(t,n)=>{let r=`${t}-${n}`;return e.isSolanaLike(n)||e.isTronLike(n)?r:r.toLowerCase()},
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`);var t=e=>{e.startsWith(`0x`)&&(e=e.slice(2));let t=[];for(let n=0;n<e.length;n+=2){let r=parseInt(e.slice(n,n+2),16);t.push(r)}return new TextDecoder(`utf-8`).decode(new Uint8Array(t))},n=(t,n)=>{let r=`${t}-${n}`;return e.isSolanaLike(n)||e.isTronLike(n)?r:r.toLowerCase()},r=(t,n,r=!1)=>{let i=`${t}-${n}`;if(r){let{hinkalAddress:t}=e.networkRegistry[n].contractData;return`${i}-${t}`.toLowerCase()}return i.toLowerCase()},i=(e,t,n)=>{if(!t||!n)throw Error(`oldPart and newPart must be provided`);return e.toLowerCase().split(t.toLowerCase()).join(n.toLowerCase())};exports.getStateKey=r,exports.getTokenStateKey=n,exports.hexToUtf8=t,exports.replaceAllInstances=i;
|
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
import { isSolanaLike as e, isTronLike as t, networkRegistry as n } from "../../constants/chains.constants.mjs";
|
|
2
2
|
//#region libs/shared/common/src/functions/utils/string.utils.ts
|
|
3
|
-
var r = (
|
|
3
|
+
var r = (e) => {
|
|
4
|
+
e.startsWith("0x") && (e = e.slice(2));
|
|
5
|
+
let t = [];
|
|
6
|
+
for (let n = 0; n < e.length; n += 2) {
|
|
7
|
+
let r = parseInt(e.slice(n, n + 2), 16);
|
|
8
|
+
t.push(r);
|
|
9
|
+
}
|
|
10
|
+
return new TextDecoder("utf-8").decode(new Uint8Array(t));
|
|
11
|
+
}, i = (n, r) => {
|
|
4
12
|
let i = `${n}-${r}`;
|
|
5
13
|
return e(r) || t(r) ? i : i.toLowerCase();
|
|
6
|
-
},
|
|
14
|
+
}, a = (e, t, r = !1) => {
|
|
7
15
|
let i = `${e}-${t}`;
|
|
8
16
|
if (r) {
|
|
9
17
|
let { hinkalAddress: e } = n[t].contractData;
|
|
10
18
|
return `${i}-${e}`.toLowerCase();
|
|
11
19
|
}
|
|
12
20
|
return i.toLowerCase();
|
|
13
|
-
},
|
|
21
|
+
}, o = (e, t, n) => {
|
|
14
22
|
if (!t || !n) throw Error("oldPart and newPart must be provided");
|
|
15
23
|
return e.toLowerCase().split(t.toLowerCase()).join(n.toLowerCase());
|
|
16
24
|
};
|
|
17
25
|
//#endregion
|
|
18
|
-
export {
|
|
26
|
+
export { a as getStateKey, i as getTokenStateKey, r as hexToUtf8, o as replaceAllInstances };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../error-handling/error-codes.constants.cjs`),require(`../web3/etherFunctions.cjs`),require(`../../data-structures/crypto-keys/keys.cjs`),require(`./addresses.cjs`),require(`../pre-transaction/getFeeStructure.cjs`),require(`./
|
|
1
|
+
require(`../../error-handling/error-codes.constants.cjs`),require(`../web3/etherFunctions.cjs`),require(`../../data-structures/crypto-keys/keys.cjs`),require(`./addresses.cjs`),require(`../pre-transaction/getFeeStructure.cjs`),require(`./fees.utils.cjs`),require(`./getRecipientInfoFromUserKeys.cjs`),require(`./enclave-utxo-storage.cjs`),require(`../../data-structures/Hinkal/hinkalSolanaSponsoredShield.cjs`),require(`./enclave-recipient-info-storage.cjs`);
|
|
@@ -3,8 +3,8 @@ import "../web3/etherFunctions.mjs";
|
|
|
3
3
|
import "../../data-structures/crypto-keys/keys.mjs";
|
|
4
4
|
import "./addresses.mjs";
|
|
5
5
|
import "../pre-transaction/getFeeStructure.mjs";
|
|
6
|
-
import "./getRecipientInfoFromUserKeys.mjs";
|
|
7
6
|
import "./fees.utils.mjs";
|
|
7
|
+
import "./getRecipientInfoFromUserKeys.mjs";
|
|
8
8
|
import "./enclave-utxo-storage.mjs";
|
|
9
9
|
import "../../data-structures/Hinkal/hinkalSolanaSponsoredShield.mjs";
|
|
10
10
|
import "./enclave-recipient-info-storage.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./token-check.utils.cjs`),require(`../../error-handling/index.cjs`),require(`../../constants/index.cjs`),require(
|
|
1
|
+
require(`../../data-structures/crypto-keys/index.cjs`),require(`./token-check.utils.cjs`),require(`../../error-handling/index.cjs`),require(`../../constants/index.cjs`),require(`./getRecipientInfoFromUserKeys.cjs`),require(`./enclave-utxo-storage.cjs`),require(`./tx-confirmation.utils.cjs`);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import "../../data-structures/crypto-keys/index.mjs";
|
|
1
2
|
import "./token-check.utils.mjs";
|
|
2
3
|
import "../../error-handling/index.mjs";
|
|
3
4
|
import "../../constants/index.mjs";
|
|
4
|
-
import "../../data-structures/crypto-keys/index.mjs";
|
|
5
5
|
import "./getRecipientInfoFromUserKeys.mjs";
|
|
6
6
|
import "./enclave-utxo-storage.mjs";
|
|
7
7
|
import "./tx-confirmation.utils.mjs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`../../constants/chains.constants.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../data-structures/http/HttpClient.cjs`);require(`../../data-structures/http/index.cjs`);const n=require(`./tron.utils.cjs`);require(`./create-provider.cjs`);const r=require(`./publicBalance.utils.cjs`),i=require(`../../API/evm-token-assets.cjs`);require(`@solana/web3.js`),require(`@solana/spl-token`);var a=async(t,n)=>{let[a,o]=await Promise.all([r.getPublicBalanceByTokenAddress(t,n,e.zeroAddress),i.getEvmTokenBalancesFromServer(t,n)]);a&&a>0n&&o.push({contractAddress:e.zeroAddress,tokenBalance:a.toString()});let s={};return o.forEach(e=>{(!s[e.contractAddress]||BigInt(e.tokenBalance)>0n)&&(s[e.contractAddress]=e)}),Object.keys(s)},o=200,s=async(e,r)=>{let i=`${n.getTronWalletRpcUrl(r)}/v1/accounts/${e}/transactions/trc20?only_to=true&limit=${o}`,a=((await t.httpClient.get(i))?.data??[]).map(e=>e.token_info?.address).filter(e=>!!e).map(n.addressToHexFormat);return Array.from(new Set(a))},c=async(r,i)=>{let a=n.toTronBase58IfHex(r),o=`${n.getTronWalletRpcUrl(i)}/v1/accounts/${a}`,c=(await t.httpClient.get(o))?.data?.[0];if(!c)return s(a,i);let l=[];return c.balance&&c.balance>0&&l.push(e.zeroAddress),(c.trc20??[]).forEach(e=>{Object.entries(e).forEach(([e,t])=>{BigInt(t)>0n&&l.push(n.addressToHexFormat(e))})}),Array.from(new Set(l))};exports.getEvmWalletTokenAddresses=a,exports.getTronWalletTokenAddresses=c;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const getEvmWalletTokenAddresses: (chainId: number, walletAddress: string) => Promise<string[]>;
|
|
2
|
+
export declare const getSolanaWalletTokenAddresses: (chainId: number, walletAddress: string) => Promise<string[]>;
|
|
3
|
+
export declare const getWalletTokenAddresses: (chainId: number, walletAddress: string) => Promise<string[]>;
|
|
4
|
+
export declare const getTronWalletTokenAddresses: (walletAddress: string, chainId: number) => Promise<string[]>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import "../../constants/chains.constants.mjs";
|
|
2
|
+
import { zeroAddress as e } from "../../constants/protocol.constants.mjs";
|
|
3
|
+
import { httpClient as t } from "../../data-structures/http/HttpClient.mjs";
|
|
4
|
+
import "../../data-structures/http/index.mjs";
|
|
5
|
+
import { addressToHexFormat as n, getTronWalletRpcUrl as r, toTronBase58IfHex as i } from "./tron.utils.mjs";
|
|
6
|
+
import "./create-provider.mjs";
|
|
7
|
+
import { getPublicBalanceByTokenAddress as a } from "./publicBalance.utils.mjs";
|
|
8
|
+
import { getEvmTokenBalancesFromServer as o } from "../../API/evm-token-assets.mjs";
|
|
9
|
+
import "@solana/web3.js";
|
|
10
|
+
import "@solana/spl-token";
|
|
11
|
+
//#region libs/shared/common/src/functions/utils/wallet-token-discovery.utils.ts
|
|
12
|
+
var s = async (t, n) => {
|
|
13
|
+
let [r, i] = await Promise.all([a(t, n, e), o(t, n)]);
|
|
14
|
+
r && r > 0n && i.push({
|
|
15
|
+
contractAddress: e,
|
|
16
|
+
tokenBalance: r.toString()
|
|
17
|
+
});
|
|
18
|
+
let s = {};
|
|
19
|
+
return i.forEach((e) => {
|
|
20
|
+
(!s[e.contractAddress] || BigInt(e.tokenBalance) > 0n) && (s[e.contractAddress] = e);
|
|
21
|
+
}), Object.keys(s);
|
|
22
|
+
}, c = 200, l = async (e, i) => {
|
|
23
|
+
let a = `${r(i)}/v1/accounts/${e}/transactions/trc20?only_to=true&limit=${c}`, o = ((await t.get(a))?.data ?? []).map((e) => e.token_info?.address).filter((e) => !!e).map(n);
|
|
24
|
+
return Array.from(new Set(o));
|
|
25
|
+
}, u = async (a, o) => {
|
|
26
|
+
let s = i(a), c = `${r(o)}/v1/accounts/${s}`, u = (await t.get(c))?.data?.[0];
|
|
27
|
+
if (!u) return l(s, o);
|
|
28
|
+
let d = [];
|
|
29
|
+
return u.balance && u.balance > 0 && d.push(e), (u.trc20 ?? []).forEach((e) => {
|
|
30
|
+
Object.entries(e).forEach(([e, t]) => {
|
|
31
|
+
BigInt(t) > 0n && d.push(n(e));
|
|
32
|
+
});
|
|
33
|
+
}), Array.from(new Set(d));
|
|
34
|
+
};
|
|
35
|
+
//#endregion
|
|
36
|
+
export { s as getEvmWalletTokenAddresses, u as getTronWalletTokenAddresses };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const e=require(`../../../constants/protocol.constants.cjs`),t=require(`../../utils/time.utils.cjs`),n=require(`../../../types/ethereum-network.types.cjs`),r=require(`../../utils/getContractAddress.cjs`),i=require(`../../utils/isSigner.cjs`),a=require(`./recoverTransactionFromError.cjs`),o=require(`./approveTokensToHinkal.cjs`),s=require(`./constructBatchCall.cjs`),c=require(`./waitForErc20Approvals.cjs`);var l=async(l,u,d,f,p,m,h,g,_,v=!0,y=!1)=>{let b=Array.isArray(d)?d:[d],x=Array.isArray(f)?f:[f];if(b.length!==x.length)throw Error(`token and amount length mismatch`);let S=l.getContractWithSigner(u,n.ContractType.HinkalContract),C=await l.getEthereumAddressByChain(u),w=g??S,T=_??S,E=`transact`,D=x.findIndex(({erc20TokenAddress:t})=>t===e.zeroAddress),O=x.some(({erc20TokenAddress:t})=>t!==e.zeroAddress),k=D===-1?0n:b[D],A=l.getProviderAdapter(u),j=await A.supportsBatchCall?.(u);if(!y&&O&&j&&A.sendBatchCallsTransaction){let e=s.buildApproveAndTransactCalls(x.map(e=>e.erc20TokenAddress),b,r.getContractAddress(w),T,p,h,m,k);return await A.sendBatchCallsTransaction(u,e)}if(!y&&(await o.approveTokensToHinkal(l,u,w,x,b),O)){let e=x.map(({erc20TokenAddress:e},t)=>({tokenAddress:e,requiredAmount:b[t]}));await c.waitForErc20Approvals(l,u,C,r.getContractAddress(w),e)}let M={value:k>0n?BigInt(k).toString():void 0,gasLimit:void 0},N,P=[p[0],p[1],p[2],h,m,{...M,from:C}],{runner:F}=T;if(!i.isSigner(F))throw Error(`expected signer`);if(v)try{N=Number(await T[E].estimateGas(...P))}catch(e){console.log(`hinkalDeposit: gas estimation error`,{err:e})}let I=N&&N>=0?Math.ceil(N*12/10):void 0;I&&(P[5].gasLimit=I),await t.waitLittle();let L;try{L=y?await T[E].populateTransaction(...P):await T[E](...P)}catch(e){if(!e?.transactionHash||!F.provider)throw e;let t=await a.recoverTransactionFromError(F.provider,e.transactionHash);if(!t)throw e;L=t}return L};exports.transactCallDirect=l;
|
|
@@ -2,26 +2,26 @@ import { zeroAddress as e } from "../../../constants/protocol.constants.mjs";
|
|
|
2
2
|
import { waitLittle as t } from "../../utils/time.utils.mjs";
|
|
3
3
|
import { ContractType as n } from "../../../types/ethereum-network.types.mjs";
|
|
4
4
|
import { getContractAddress as r } from "../../utils/getContractAddress.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
5
|
+
import { isSigner as i } from "../../utils/isSigner.mjs";
|
|
6
|
+
import { recoverTransactionFromError as a } from "./recoverTransactionFromError.mjs";
|
|
7
|
+
import { approveTokensToHinkal as o } from "./approveTokensToHinkal.mjs";
|
|
8
|
+
import { buildApproveAndTransactCalls as s } from "./constructBatchCall.mjs";
|
|
9
|
+
import { waitForErc20Approvals as c } from "./waitForErc20Approvals.mjs";
|
|
10
10
|
//#region libs/shared/common/src/functions/web3/functionCalls/transactCallDirect.ts
|
|
11
11
|
var l = async (l, u, d, f, p, m, h, g, _, v = !0, y = !1) => {
|
|
12
12
|
let b = Array.isArray(d) ? d : [d], x = Array.isArray(f) ? f : [f];
|
|
13
13
|
if (b.length !== x.length) throw Error("token and amount length mismatch");
|
|
14
14
|
let S = l.getContractWithSigner(u, n.HinkalContract), C = await l.getEthereumAddressByChain(u), w = g ?? S, T = _ ?? S, E = "transact", D = x.findIndex(({ erc20TokenAddress: t }) => t === e), O = x.some(({ erc20TokenAddress: t }) => t !== e), k = D === -1 ? 0n : b[D], A = l.getProviderAdapter(u), j = await A.supportsBatchCall?.(u);
|
|
15
15
|
if (!y && O && j && A.sendBatchCallsTransaction) {
|
|
16
|
-
let e =
|
|
16
|
+
let e = s(x.map((e) => e.erc20TokenAddress), b, r(w), T, p, h, m, k);
|
|
17
17
|
return await A.sendBatchCallsTransaction(u, e);
|
|
18
18
|
}
|
|
19
|
-
if (!y && (await
|
|
19
|
+
if (!y && (await o(l, u, w, x, b), O)) {
|
|
20
20
|
let e = x.map(({ erc20TokenAddress: e }, t) => ({
|
|
21
21
|
tokenAddress: e,
|
|
22
22
|
requiredAmount: b[t]
|
|
23
23
|
}));
|
|
24
|
-
await
|
|
24
|
+
await c(l, u, C, r(w), e);
|
|
25
25
|
}
|
|
26
26
|
let M = {
|
|
27
27
|
value: k > 0n ? BigInt(k).toString() : void 0,
|
|
@@ -37,7 +37,7 @@ var l = async (l, u, d, f, p, m, h, g, _, v = !0, y = !1) => {
|
|
|
37
37
|
from: C
|
|
38
38
|
}
|
|
39
39
|
], { runner: F } = T;
|
|
40
|
-
if (!(F
|
|
40
|
+
if (!i(F)) throw Error("expected signer");
|
|
41
41
|
if (v) try {
|
|
42
42
|
N = Number(await T[E].estimateGas(...P));
|
|
43
43
|
} catch (e) {
|
|
@@ -49,8 +49,8 @@ var l = async (l, u, d, f, p, m, h, g, _, v = !0, y = !1) => {
|
|
|
49
49
|
try {
|
|
50
50
|
L = y ? await T[E].populateTransaction(...P) : await T[E](...P);
|
|
51
51
|
} catch (e) {
|
|
52
|
-
if (!e?.transactionHash) throw e;
|
|
53
|
-
let t = await
|
|
52
|
+
if (!e?.transactionHash || !F.provider) throw e;
|
|
53
|
+
let t = await a(F.provider, e.transactionHash);
|
|
54
54
|
if (!t) throw e;
|
|
55
55
|
L = t;
|
|
56
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=function(e){return e[e.HinkalContract=0]=`HinkalContract`,e[e.HinkalHelperContract=1]=`HinkalHelperContract`,e[e.HinkalWrapperContract=2]=`HinkalWrapperContract`,e[e.DepositOnChainUtxosContract=3]=`DepositOnChainUtxosContract`,e[e.ERC20Contract=4]=`ERC20Contract`,e[e.ERC721Contract=5]=`ERC721Contract`,e[e.ERC1155Contract=6]=`ERC1155Contract`,e[e.WATokenContract=7]=`WATokenContract`,e[e.MerkleTreeContract=8]=`MerkleTreeContract`,e}({});exports.ContractType=e;
|
|
1
|
+
var e=function(e){return e[e.HinkalContract=0]=`HinkalContract`,e[e.HinkalHelperContract=1]=`HinkalHelperContract`,e[e.HinkalWrapperContract=2]=`HinkalWrapperContract`,e[e.DepositOnChainUtxosContract=3]=`DepositOnChainUtxosContract`,e[e.ERC20Contract=4]=`ERC20Contract`,e[e.ERC721Contract=5]=`ERC721Contract`,e[e.ERC1155Contract=6]=`ERC1155Contract`,e[e.WATokenContract=7]=`WATokenContract`,e[e.MerkleTreeContract=8]=`MerkleTreeContract`,e[e.ReceiveVaultFactoryContract=9]=`ReceiveVaultFactoryContract`,e}({});exports.ContractType=e;
|
|
@@ -13,7 +13,8 @@ export declare enum ContractType {
|
|
|
13
13
|
ERC721Contract = 5,
|
|
14
14
|
ERC1155Contract = 6,
|
|
15
15
|
WATokenContract = 7,
|
|
16
|
-
MerkleTreeContract = 8
|
|
16
|
+
MerkleTreeContract = 8,
|
|
17
|
+
ReceiveVaultFactoryContract = 9
|
|
17
18
|
}
|
|
18
19
|
export interface ContractData {
|
|
19
20
|
hinkalAddress: string;
|
|
@@ -23,6 +24,8 @@ export interface ContractData {
|
|
|
23
24
|
hinkalHelperABI?: InterfaceAbi;
|
|
24
25
|
hinkalWrapperAddress?: string;
|
|
25
26
|
hinkalWrapperABI?: InterfaceAbi;
|
|
27
|
+
receiveVaultFactoryAddress?: string;
|
|
28
|
+
receiveVaultFactoryABI?: InterfaceAbi;
|
|
26
29
|
depositOnChainUtxosExternalActionAddress?: string;
|
|
27
30
|
depositOnChainUtxosExternalActionABI?: InterfaceAbi;
|
|
28
31
|
lifiExternalActionInstanceAddress?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region libs/shared/common/src/types/ethereum-network.types.ts
|
|
2
2
|
var e = /* @__PURE__ */ function(e) {
|
|
3
|
-
return e[e.HinkalContract = 0] = "HinkalContract", e[e.HinkalHelperContract = 1] = "HinkalHelperContract", e[e.HinkalWrapperContract = 2] = "HinkalWrapperContract", e[e.DepositOnChainUtxosContract = 3] = "DepositOnChainUtxosContract", e[e.ERC20Contract = 4] = "ERC20Contract", e[e.ERC721Contract = 5] = "ERC721Contract", e[e.ERC1155Contract = 6] = "ERC1155Contract", e[e.WATokenContract = 7] = "WATokenContract", e[e.MerkleTreeContract = 8] = "MerkleTreeContract", e;
|
|
3
|
+
return e[e.HinkalContract = 0] = "HinkalContract", e[e.HinkalHelperContract = 1] = "HinkalHelperContract", e[e.HinkalWrapperContract = 2] = "HinkalWrapperContract", e[e.DepositOnChainUtxosContract = 3] = "DepositOnChainUtxosContract", e[e.ERC20Contract = 4] = "ERC20Contract", e[e.ERC721Contract = 5] = "ERC721Contract", e[e.ERC1155Contract = 6] = "ERC1155Contract", e[e.WATokenContract = 7] = "WATokenContract", e[e.MerkleTreeContract = 8] = "MerkleTreeContract", e[e.ReceiveVaultFactoryContract = 9] = "ReceiveVaultFactoryContract", e;
|
|
4
4
|
}({});
|
|
5
5
|
//#endregion
|
|
6
6
|
export { e as ContractType };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=function(e){return e.Transact=`Transact`,e.Lifi=`Lifi`,e.Okx=`Okx`,e.Emporium=`Emporium`,e.Wallet=`Wallet`,e.DepositOnChainUtxos=`DepositOnChainUtxos`,e.ProofLess=`ProofLess`,e}({});exports.ExternalActionId=e;
|
|
1
|
+
var e=function(e){return e.Transact=`Transact`,e.Lifi=`Lifi`,e.Okx=`Okx`,e.Emporium=`Emporium`,e.Wallet=`Wallet`,e.DepositOnChainUtxos=`DepositOnChainUtxos`,e.ProofLess=`ProofLess`,e.ReceiveVaultSettle=`ReceiveVaultSettle`,e}({});exports.ExternalActionId=e;
|
|
@@ -5,7 +5,8 @@ export declare enum ExternalActionId {
|
|
|
5
5
|
Emporium = "Emporium",
|
|
6
6
|
Wallet = "Wallet",
|
|
7
7
|
DepositOnChainUtxos = "DepositOnChainUtxos",
|
|
8
|
-
ProofLess = "ProofLess"
|
|
8
|
+
ProofLess = "ProofLess",// Note: not an actual external action, added to handle proofless deposit gas calculation
|
|
9
|
+
ReceiveVaultSettle = "ReceiveVaultSettle"
|
|
9
10
|
}
|
|
10
11
|
export interface ExternalActionData<T = 0n | ExternalActionId> {
|
|
11
12
|
externalActionId: T;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region libs/shared/common/src/types/external-action.types.ts
|
|
2
2
|
var e = /* @__PURE__ */ function(e) {
|
|
3
|
-
return e.Transact = "Transact", e.Lifi = "Lifi", e.Okx = "Okx", e.Emporium = "Emporium", e.Wallet = "Wallet", e.DepositOnChainUtxos = "DepositOnChainUtxos", e.ProofLess = "ProofLess", e;
|
|
3
|
+
return e.Transact = "Transact", e.Lifi = "Lifi", e.Okx = "Okx", e.Emporium = "Emporium", e.Wallet = "Wallet", e.DepositOnChainUtxos = "DepositOnChainUtxos", e.ProofLess = "ProofLess", e.ReceiveVaultSettle = "ReceiveVaultSettle", e;
|
|
4
4
|
}({});
|
|
5
5
|
//#endregion
|
|
6
6
|
export { e as ExternalActionId };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./chains.types.cjs`),require(`./hinkal.types.cjs`),require(`./circom-data.types.cjs`),require(`./ethereum-network.types.cjs`),require(`./external-action.types.cjs`),require(`./token.types.cjs`),require(`./transactions.types.cjs`),require(`./admin.types.cjs`),require(`./activities.types.cjs`),require(`./transaction.types.cjs`),require(`./balances.types.cjs`),require(`./cache.types.cjs`),require(`./eip5792.types.cjs`),require(`./offscreen.types.cjs`),require(`./solana.types.cjs`),require(`./events.types.cjs`),require(`./schedule.types.cjs`),require(`./transact.types.cjs`),require(`./solana-transact.types.cjs`);
|
|
1
|
+
require(`./chains.types.cjs`),require(`./hinkal.types.cjs`),require(`./circom-data.types.cjs`),require(`./ethereum-network.types.cjs`),require(`./external-action.types.cjs`),require(`./token.types.cjs`),require(`./transactions.types.cjs`),require(`./admin.types.cjs`),require(`./activities.types.cjs`),require(`./transaction.types.cjs`),require(`./balances.types.cjs`),require(`./cache.types.cjs`),require(`./eip5792.types.cjs`),require(`./offscreen.types.cjs`),require(`./solana.types.cjs`),require(`./events.types.cjs`),require(`./schedule.types.cjs`),require(`./transact.types.cjs`),require(`./solana-transact.types.cjs`),require(`./receive-vault.types.cjs`);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=function(e){return e.Expired=`expired`,e.NotShieldable=`notShieldable`,e.RiskySender=`riskySender`,e}({});exports.ReceiveVaultBlockReason=e;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { StealthAddressStructure } from './circom-data.types';
|
|
2
|
+
import { ERC20Token } from './token.types';
|
|
3
|
+
/** Every field is part of the vault's CREATE2 salt, so the relayer cannot change one and still
|
|
4
|
+
* point at an address that holds anything. */
|
|
5
|
+
export type ReceiveVaultParams<T = bigint> = {
|
|
6
|
+
recipient: StealthAddressStructure<T>;
|
|
7
|
+
owner: string;
|
|
8
|
+
token: string;
|
|
9
|
+
maxFlatFee: T;
|
|
10
|
+
maxVariableRate: number;
|
|
11
|
+
expiry: T;
|
|
12
|
+
};
|
|
13
|
+
/** The terms sit in the salt, so a fresh quote cannot reproduce them: re-deriving a handed-out
|
|
14
|
+
* address needs the ones it was built with. */
|
|
15
|
+
export type ReceiveVaultRecord = {
|
|
16
|
+
index: number;
|
|
17
|
+
chainId: number;
|
|
18
|
+
token: string;
|
|
19
|
+
maxFlatFee: string;
|
|
20
|
+
maxVariableRate: number;
|
|
21
|
+
expiry: string;
|
|
22
|
+
vaultAddress: string;
|
|
23
|
+
};
|
|
24
|
+
/** Why a balance sitting in a deposit address is the owner's to recover rather than shieldable. */
|
|
25
|
+
export declare enum ReceiveVaultBlockReason {
|
|
26
|
+
Expired = "expired",
|
|
27
|
+
NotShieldable = "notShieldable",
|
|
28
|
+
RiskySender = "riskySender"
|
|
29
|
+
}
|
|
30
|
+
/** The relayer declining to shield a token is the one thing the owner cannot work out on their own,
|
|
31
|
+
* so it is the only thing recorded. The balance itself is read off chain. */
|
|
32
|
+
export type ReceiveVaultBlock = {
|
|
33
|
+
vaultAddress: string;
|
|
34
|
+
chainId: number;
|
|
35
|
+
token: string;
|
|
36
|
+
};
|
|
37
|
+
export type ReceiveVaultRegistration = {
|
|
38
|
+
vaultAddress: string;
|
|
39
|
+
params: ReceiveVaultParams<string>;
|
|
40
|
+
encryptionKey: string;
|
|
41
|
+
encryptedOutput: string;
|
|
42
|
+
outputSignature: string;
|
|
43
|
+
chainId: number;
|
|
44
|
+
};
|
|
45
|
+
/** Proves control of the shielded account itself, rather than of one deposit address, so the terms
|
|
46
|
+
* needed to re-derive an address can be fetched back after local storage is gone. */
|
|
47
|
+
export type ReceiveVaultAccountProof = {
|
|
48
|
+
accountKey: string;
|
|
49
|
+
deadline: string;
|
|
50
|
+
signature: string;
|
|
51
|
+
};
|
|
52
|
+
/** A deposit address the user has handed out, with its token resolved. */
|
|
53
|
+
export type ReceiveVaultEntry = {
|
|
54
|
+
record: ReceiveVaultRecord;
|
|
55
|
+
token: ERC20Token;
|
|
56
|
+
expiresAt: Date;
|
|
57
|
+
};
|
|
58
|
+
/** A balance the relayer declined to shield, sitting in a vault only its owner can derive. */
|
|
59
|
+
export type ReceiveVaultBlockedFund = {
|
|
60
|
+
record: ReceiveVaultRecord;
|
|
61
|
+
token: ERC20Token;
|
|
62
|
+
amount: bigint;
|
|
63
|
+
reason: ReceiveVaultBlockReason;
|
|
64
|
+
};
|
|
65
|
+
export type ReceiveVaultAccount = {
|
|
66
|
+
entries: ReceiveVaultEntry[];
|
|
67
|
+
blockedFunds: ReceiveVaultBlockedFund[];
|
|
68
|
+
};
|
|
@@ -111,6 +111,9 @@ export interface PrepareTxParams extends PrepareTxBase {
|
|
|
111
111
|
selfOutputAmounts?: bigint[];
|
|
112
112
|
messageSeed?: bigint;
|
|
113
113
|
slippageValues?: bigint[];
|
|
114
|
+
/** Makes the enclave take the recipient's encryption key from the vault's sealed registration
|
|
115
|
+
* rather than from recipientAddress, so a relayer cannot address the note to its own key. */
|
|
116
|
+
receiveVaultAddress?: string;
|
|
114
117
|
}
|
|
115
118
|
export interface PrepareTxRequestType extends PrepareTxBase {
|
|
116
119
|
amountChanges: string[];
|
|
@@ -120,6 +123,7 @@ export interface PrepareTxRequestType extends PrepareTxBase {
|
|
|
120
123
|
nullifyingKey: string;
|
|
121
124
|
spendingPublicKey: [string, string];
|
|
122
125
|
slippageValues?: string[];
|
|
126
|
+
receiveVaultAddress?: string;
|
|
123
127
|
}
|
|
124
128
|
export interface EchoedPrepareTxRequestType {
|
|
125
129
|
chainId: string;
|
|
@@ -148,6 +152,7 @@ export interface EchoedPrepareTxRequestType {
|
|
|
148
152
|
skipLock: boolean;
|
|
149
153
|
speculative?: SpeculativeTreeParams;
|
|
150
154
|
slippageValues: string[] | null;
|
|
155
|
+
receiveVaultAddress?: string;
|
|
151
156
|
}
|
|
152
157
|
export interface EstimateNullifiersParams {
|
|
153
158
|
chainId: number;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`./workerProxy-
|
|
1
|
+
const e=require(`./workerProxy-DF35H7vU.js`);let t=require(`buffer`),n=require(`process`);n=e.c(n);let r=require(`circomlibjs-hinkal-fork`),i=require(`ethers`),a=require(`libsodium-wrappers`);a=e.c(a);let o=require(`@solana/web3.js`),s=require(`bs58`);s=e.c(s);let c=require(`tweetnacl`);c=e.c(c);let l=require(`tronweb`);var u=e=>JSON.stringify(e,(e,t)=>typeof t==`bigint`?`bigint:${t.toString()}`:t),d=e=>JSON.parse(e,(e,t)=>typeof t==`string`&&t.startsWith(`bigint:`)?BigInt(t.slice(7)):t),f=new class{babyjub=void 0;async init(){this.babyjub||=e.o?(0,r.buildBabyJubRN)():await(0,r.buildBabyjub)()}getJub(){return this.babyjub}},p=()=>f.getJub(),m=new class{eddsa=void 0;async init(){this.eddsa||=e.o?await(0,r.buildEddsaRN)():await(0,r.buildEddsa)()}getEddsa(){return this.eddsa}},h=()=>m.getEddsa();function g(e){return typeof e==`object`&&`toBigInt`in e?e.toBigInt():BigInt(e)}var _=new class{poseidon=void 0;async init(){this.poseidon||=e.o?(0,r.buildPoseidonRN)():await(0,r.buildPoseidon)()}getPoseidon(){return this.poseidon}};function v(...e){let t=_.getPoseidon();return g(t.F.toString(t(e)))}var y=(...e)=>{let t=_.getPoseidon();return i.ethers.toBeHex(t.F.toString(t([...e])))},b=async(e=!1)=>{(typeof window<`u`||typeof self<`u`)&&(typeof window<`u`&&(window.global=window),globalThis.Buffer=t.Buffer,globalThis.process=n.default),await Promise.all([a.default.ready,_.init(),f.init(),...e?[]:[m.init()]])};`${`00`.repeat(20)}`;var x=21888242871839275222246405745257275088548364400416034343698204186575808495617n,S=x/2n,C=2n**250n,w=200n,T=class{inMemoryCache=new Map;constructor(e){e&&this.mergeWithSerialized(e)}getInMemory(e){return this.inMemoryCache.get(e)??void 0}setInMemory(e,t){this.inMemoryCache.set(e,t)}deleteInMemory(e){this.inMemoryCache.delete(e)}mergeWithSerialized(e){Object.entries(e).forEach(([e,t])=>{this.set(e,d(t))})}},E=class extends T{isAttached=!1;get(e){return this.getInMemory(e)}set(e,t){this.setInMemory(e,t)}serialize(){return Object.fromEntries([...this.inMemoryCache].map(([e,t])=>[e,u(t)]))}attach(e){if(this.isAttached)throw Error(`can't reattach cache device`);return this.isAttached=!0,(...t)=>{let n=u(t),r=this.get(n);if(r!==void 0)return r;let i=e(...t);return this.set(n,i),i}}},D=e=>{if(e<0n||e>=21888242871839275222246405745257275088548364400416034343698204186575808495617n)throw RangeError();return e>S},O=e=>D(e)?1n:0n,k=new E,A=class{signature;nullifyingKey;PREFIX_FOR_SPENDING_PAIR=`1`;constructor(e,t){this.signature=e,this.nullifyingKey=t}getSignature(){return this.requireSignature(),this.signature}hasSignature(){return!!this.signature}setSignature(e){this.signature=e}requireSignature(){if(!this.signature)throw Error(`No signature provided`)}requireKeyMaterial(){if(!this.signature&&!this.nullifyingKey)throw Error(`No signature or private key provided`)}verifyTronMessage(e,t){return this.requireSignature(),t===l.Trx.verifyMessageV2(e,this.signature)}getShieldedPrivateKey=()=>{if(this.requireKeyMaterial(),!this.nullifyingKey){let e=BigInt(y(this.signature));this.nullifyingKey=i.ethers.toBeHex(e%C)}return this.nullifyingKey};getShieldedPrivateKeySeed=()=>i.ethers.keccak256(this.getShieldedPrivateKey());getShieldedPublicKey=()=>(this.requireKeyMaterial(),y(this.getShieldedPrivateKey()));getSpendingKeyPair=()=>{this.requireSignature();let e=h(),t=p(),n=y(this.PREFIX_FOR_SPENDING_PAIR,this.getSignature()),r=Buffer.from(i.ethers.getBytes(n)),a=e.prv2pub(r);return{privSpendingKey:n,pubSpendingBJJPoint:[BigInt(t.F.toString(a[0])),BigInt(t.F.toString(a[1]))]}};signEddsa=e=>{this.requireSignature();let t=p(),n=h(),r=Buffer.from(i.ethers.getBytes(this.getSpendingKeyPair().privSpendingKey)),a=t.F.e(e),o=n.signPoseidon(r,a);return{R8:[BigInt(t.F.toString(o.R8[0])),BigInt(t.F.toString(o.R8[1]))],S:BigInt(o.S)}};getShieldedPrivateKeyFromNonce=e=>{this.requireKeyMaterial();let t=y(e,this.getShieldedPrivateKey(),this.getShieldedPublicKey());return i.ethers.keccak256(i.ethers.toUtf8Bytes(`hinkal-offchain-shielded-key:${t}`))};getClaimableSignatureFromNonce=e=>{this.requireKeyMaterial();let t=y(e,this.getShieldedPrivateKey(),this.getShieldedPublicKey());return i.ethers.keccak256(i.ethers.toUtf8Bytes(`hinkal-claimable-utxo-signature:${t}`))};getNearIntentsAccountId=()=>{this.requireKeyMaterial();let e=o.Keypair.fromSeed(i.ethers.getBytes(this.getShieldedPrivateKeySeed()));return i.ethers.hexlify(e.publicKey.toBytes()).slice(2)};getNearIntentsKeyPairString=()=>{this.requireKeyMaterial();let e=o.Keypair.fromSeed(i.ethers.getBytes(this.getShieldedPrivateKeySeed()));return`ed25519:${s.default.encode(e.secretKey)}`};getSignerPrivateKeyFromNonce=e=>{this.requireKeyMaterial();let t=y(e,this.getShieldedPrivateKey(),this.getShieldedPublicKey());return i.ethers.keccak256(i.ethers.toUtf8Bytes(t))};getSignerSolanaPrivateKeyFromNonce=e=>{let t=this.getSignerPrivateKeyFromNonce(e),n=i.ethers.getBytes(t),r=o.Keypair.fromSeed(n);return s.default.encode(r.secretKey)};verifyMessage(e){return this.requireSignature(),i.ethers.verifyMessage(e,this.signature)}verifySolanaMessage(e,t){this.requireSignature();let n=new TextEncoder().encode(e),r=i.ethers.getBytes(this.signature),a=new o.PublicKey(t).toBytes();return c.default.sign.detached.verify(n,r,a)}static getRandomizedStealthPair=k.attach((e,t)=>{let n=p(),r=n.mulPointEscalar(n.Base8,e),i=n.mulPointEscalar(r,BigInt(t));return{H0:[BigInt(n.F.toString(r[0])),BigInt(n.F.toString(r[1]))],H1:[BigInt(n.F.toString(i[0])),BigInt(n.F.toString(i[1]))]}});static getH1FromH0=(e,t)=>{let n=p(),r=[n.F.e(e[0]),n.F.e(e[1])],i=n.mulPointEscalar(r,BigInt(t));return[BigInt(n.F.toString(i[0])),BigInt(n.F.toString(i[1]))]};static verifyStealthPair=(e,t,n,r=!0)=>{let i=this.getH1FromH0(e,n);return r?i[1]===t[1]:i===t};static getStealthAddress=(e,t,n)=>{if(n?.length!==2)throw Error(`Spending public key must be an array of 2 elements`);let r=this.getH1FromH0(e,t);return y(2n*O(e[0])+O(r[0]),e[1],r[1],n[0],n[1],t)};static findCorrectRandomization(e,t){if(!t)throw Error(`No Private Shielded Key Provided`);let n=BigInt(t),r,i,a=0n;do r=e*10n**a%x,i=r*n%x,a+=1n;while(i>=2n**250n||r>=2n**250n);return r}static getH0FromRandomization=e=>{let t=p(),n=t.mulPointEscalar(t.Base8,e);return[BigInt(t.F.toString(n[0])),BigInt(t.F.toString(n[1]))]};static findH0(e,t){if(!t)return;let{H0:n}=this.getRandomizedStealthPair(e,t);return n}static getEncryptionKeyPair=e=>{let t=a.default.crypto_box_seed_keypair(i.ethers.getBytes(i.ethers.keccak256(e)));return{privateKey:i.ethers.hexlify(t.privateKey),publicKey:i.ethers.hexlify(t.publicKey)}};getAccessKey=()=>(this.requireKeyMaterial(),y(this.getShieldedPrivateKey(),this.getShieldedPublicKey()));getBackendToken=()=>(this.requireKeyMaterial(),y(this.getAccessKey(),this.getShieldedPublicKey()))},j={WC_NO_MATCHING_KEY:`creating the transaction failed
|
|
2
2
|
version`,CONNECTION_PROBLEM:`Failed to connect wallet. Please try again.`,REQUEST_PENDING:`request of type 'wallet_requestpermissions' already pending for origin`},M={INSUFFICIENT_FUNDS:`Insufficient funds`,INSUFFICIENT_FUNDS_WITHDRAW:`Not enough funds to withdraw`,INSUFFICIENT_FUNDS_TRANSFER:`Not enough funds to transfer`,INSUFFICIENT_FUNDS_TO_TRANSACT:`Not enough funds to transact`,INSUFFICIENT_FUNDS_GAS:`Insufficient funds for gas * price`,INSUFFICIENT_TRON_BALANCE_FOR_FEE:`Insufficient TRX balance to cover transfer amount and transaction fee reserve`,INSUFFICIENT_SOL_BALANCE:`Insufficient SOL balance`},N={GAS_PRICE_EXCEEDS_AUTOSHIELD_LIMIT:`Skipped shielding due to gas fee exceeding your limit.`,AUTO_SHIELD_INSUFFICIENT_GAS:`Auto-Shield skipped due to insufficient gas.`};({...j,...M,...N});var P=e=>BigInt(i.ethers.hexlify(i.ethers.randomBytes(e))),F=()=>Math.floor(Date.now()/1e3),I=class t{amount;erc20TokenAddress;mintAddress;timeStamp;nullifyingKey;spendingPublicKey;H0;stealthAddress;encryptionKey;commitment;nullifier;isBlocked;constructor({amount:e,erc20TokenAddress:t,mintAddress:n,timeStamp:r,nullifyingKey:i,spendingPublicKey:a,randomization:o,H0:s,stealthAddress:c,encryptionKey:l,commitment:u=void 0,nullifier:d=void 0,isBlocked:f=!1}){if(this.amount=e,this.erc20TokenAddress=t,this.mintAddress=n,this.timeStamp=r??F().toString(),this.nullifyingKey=i,this.spendingPublicKey=a,this.stealthAddress=c,this.encryptionKey=l,this.commitment=u,this.nullifier=d,this.isBlocked=f,s!==void 0)this.H0=s;else{let e=o??(i?A.findCorrectRandomization(P(31),i):void 0);if(this.H0=e?A.findH0(e,i):void 0,!this.H0)throw Error(`UTXO requires H0 or nullifyingKey`)}}static createFrom(e,n){return new t({...e.getConstructableParams(),nullifier:void 0,commitment:void 0,...n})}getConstructableParams(){return{amount:this.amount,erc20TokenAddress:this.erc20TokenAddress,mintAddress:this.mintAddress,timeStamp:this.timeStamp,nullifyingKey:this.nullifyingKey,spendingPublicKey:this.spendingPublicKey,stealthAddress:this.stealthAddress,encryptionKey:this.encryptionKey,commitment:this.commitment,nullifier:this.nullifier,isBlocked:this.isBlocked,H0:this.H0}}getBasicUtxoParams(){return{amount:this.amount,erc20TokenAddress:this.erc20TokenAddress,mintAddress:this.mintAddress,timeStamp:this.timeStamp,stealthAddress:this.stealthAddress,commitment:this.commitment,nullifier:this.nullifier,isBlocked:this.isBlocked,H0:this.H0}}getCommitment(){if(!this.commitment){let e=[this.amount,this.erc20TokenAddress,BigInt(this.getStealthAddress()),this.timeStamp];this.commitment=y(...e)}return this.commitment}getNullifier(){if(!this.nullifier){if(!this.nullifyingKey)throw Error(`No Nullifiers if private key is not provided`);let e=this.getCommitment(),t=y(this.nullifyingKey,e);this.nullifier=y(e,t)}return this.nullifier}getStealthAddress(){if(!this.stealthAddress){if(!this.nullifyingKey)throw Error(`No stealth address in UTXO if private key is not provided`);if(!this.H0)throw Error(`No H0 point provided`);this.stealthAddress=A.getStealthAddress(this.H0,this.nullifyingKey,this.spendingPublicKey)}return this.stealthAddress}getTokenAddress(t){let n=e.r(t)?this.mintAddress:this.erc20TokenAddress;if(!n)throw Error(`No token address provided`);return n}getEncryptionKey(){if(!this.nullifyingKey){if(!this.encryptionKey)throw Error(`No encryption key provided in UTXO`);return this.encryptionKey}return A.getEncryptionKeyPair(this.nullifyingKey).publicKey}},L=()=>a.default.crypto_box_SEALBYTES+a.default.crypto_secretbox_KEYBYTES,R=e=>{let t=a.default.crypto_secretbox_NONCEBYTES,n=L(),r=0,i=e[r];r+=1;let o=e.slice(r,r+t);r+=t;let s=[];for(let t=0;t<i;t+=1)s.push(e.slice(r,r+n)),r+=n;return{nonce:o,sealedKeys:s,ciphertext:e.slice(r)}},z=(e,t,n,r)=>{let{nonce:o,sealedKeys:s,ciphertext:c}=R(e),l=a.default.crypto_box_seal_open(s[r],i.ethers.getBytes(n),i.ethers.getBytes(t)),u=a.default.crypto_secretbox_open_easy(c,o,l);return Buffer.from(u)},B=(e,t)=>{let{privateKey:n,publicKey:r}=A.getEncryptionKeyPair(t.getShieldedPrivateKey()),i=z(e,n,r,0),a=Buffer.from(i).toString(`utf-8`).split(`0x`).filter(e=>e.length!==0),s=e=>BigInt(`0x${e}`),c=e=>`0x${e}`,l=a[7]?c(a[7]):void 0,u=l?new o.PublicKey(Buffer.from(l.slice(2),`hex`)).toString():void 0;return{amount:s(a[0]),erc20TokenAddress:c(a[1]),stealthAddress:c(a[2]),nullifyingKey:t.getShieldedPrivateKey(),timeStamp:s(a[3]).toString(),H0:[s(a[4]),s(a[5])],mintAddress:u}},V=(e,t)=>new I(B(e,t)),H=(...t)=>{e.a&&console.log(...t)};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return y}});
|