@kapa123456789/sdk 0.0.67 → 0.0.69
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/constants/vite.constants.cjs +1 -1
- package/common/src/constants/vite.constants.mjs +6 -2
- package/common/src/crypto/BabyJubRN.cjs +1 -0
- package/common/src/crypto/BabyJubRN.d.ts +18 -0
- package/common/src/crypto/BabyJubRN.mjs +33 -0
- package/common/src/crypto/babyJub.cjs +1 -1
- package/common/src/crypto/babyJub.mjs +6 -34
- package/common/src/crypto/poseidon.cjs +1 -1
- package/common/src/crypto/poseidon.mjs +13 -14
- package/common/src/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +2 -35
- package/common/src/data-structures/Hinkal/hinkalSwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSwap.mjs +9 -49
- package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +12 -59
- package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +13 -58
- package/common/src/error-handling/logger.cjs +1 -1
- package/common/src/error-handling/logger.mjs +15 -7
- package/common/src/functions/index.cjs +1 -1
- package/common/src/functions/index.mjs +1 -0
- package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +48 -161
- package/common/src/functions/snarkjs/generateZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/generateZkProof.mjs +1 -6
- package/common/src/functions/utils/bigint-math.utils.cjs +1 -0
- package/common/src/functions/utils/bigint-math.utils.d.ts +2 -0
- package/common/src/functions/utils/bigint-math.utils.mjs +12 -0
- 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 +1 -0
- package/common/src/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
- package/common/src/functions/web3/functionCalls/transactCallDirect.mjs +38 -159
- package/common/src/webworker/{logError-DlIdq8zv.js → logError-D7JCP4vy.js} +5 -5
- package/common/src/webworker/package.json +2 -2
- package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +1 -1
- package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +1 -1
- package/common/src/webworker/snarkjsWorkerNode.cjs +1 -1
- package/common/src/webworker/utxoWorker/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 +4 -4
- package/common/src/webworker/viteWorkerURL.constant.mjs +4 -4
- package/common/src/webworker/workerFactory.cjs +1 -1
- package/common/src/webworker/workerFactory.mjs +1 -1
- package/common/src/webworker/{workerProxy-Cr4zT_SW.js → workerProxy-C1ojG-04.js} +1 -1
- 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 +2 -2
- package/react-native/HinkalWebViewWorker.cjs +3 -3
- package/react-native/HinkalWebViewWorker.mjs +46 -68
- package/react-native/bridge/HinkalRNWorker.cjs +1 -0
- package/react-native/bridge/HinkalRNWorker.d.ts +13 -0
- package/react-native/bridge/HinkalRNWorker.mjs +26 -0
- package/react-native/bridge/serialization.utils.cjs +1 -0
- package/react-native/bridge/serialization.utils.d.ts +3 -0
- package/react-native/bridge/serialization.utils.mjs +13 -0
- package/react-native/metro-config.js +9 -7
- package/react-native/shims/circomlibjs-hinkal-fork.js +1 -1
- package/react-native/shims/circomlibjs.js +1 -1
- package/react-native/shims/crypto.js +23 -16
- package/react-native/shims/globals.js +6 -4
- package/react-native/shims/idb-keyval.js +13 -5
- package/react-native/shims/path.js +20 -7
- package/react-native/shims/snarkjs.js +7 -6
- package/react-native/workerCDNUrls.cjs +1 -1
- package/react-native/workerCDNUrls.mjs +2 -4
- package/sdk/package.json.cjs +1 -1
- package/sdk/package.json.mjs +2 -2
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isNotClientProduction as e } from "../constants/vite.constants.mjs";
|
|
2
|
+
import { logError as t } from "./logError.mjs";
|
|
2
3
|
//#region libs/shared/common/src/error-handling/logger.ts
|
|
3
|
-
var
|
|
4
|
-
static log(...
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
var n = class {
|
|
5
|
+
static log(...t) {
|
|
6
|
+
e && console.log(...t);
|
|
7
|
+
}
|
|
8
|
+
static logObject(t) {
|
|
9
|
+
e && console.dir(t, {
|
|
10
|
+
depth: null,
|
|
11
|
+
colors: !0
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
static error(...e) {
|
|
15
|
+
t(e);
|
|
8
16
|
}
|
|
9
17
|
};
|
|
10
18
|
//#endregion
|
|
11
|
-
export {
|
|
19
|
+
export { n as Logger };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./utils/serialize.utils.cjs`),require(`./utils/amounts.utils.cjs`),require(`./pre-transaction/solana.cjs`),require(`./web3/functionCalls/accessTokenCalls.cjs`),require(`./web3/etherFunctions.cjs`),require(`./utils/erc20tokenFunctions.cjs`),require(`./utils/caseInsensitive.utils.cjs`),require(`./utils/time.utils.cjs`),require(`./utils/upToDateState.cjs`),require(`./utils/getContractAddress.cjs`),require(`./utils/cacheFunctions.cjs`),require(`./utils/encryptInputForEnclave.cjs`),require(`./utils/solanaMint.utils.cjs`),require(`./utils/addresses.cjs`),require(`./utils/tron.utils.cjs`),require(`./web3/events/getInputUtxoAndBalance.cjs`),require(`./utils/get-signature-header.cjs`),require(`./utils/auth.utils.cjs`),require(`./utils/string.utils.cjs`),require(`./utils/token-check.utils.cjs`),require(`./utils/mutexes.utils.cjs`),require(`./web3/events/getShieldedBalance.cjs`),require(`./pre-transaction/outputUtxoProcessing.cjs`),require(`./utils/external-action.utils.cjs`),require(`./snarkjs/common.snarkjs.cjs`),require(`./snarkjs/generateZkProof.cjs`),require(`./utils/fees.utils.cjs`),require(`./utils/create-provider.cjs`),require(`./utils/resolve-sync.utils.cjs`),require(`./pre-transaction/process-gas-estimates.cjs`),require(`./pre-transaction/getFlatFees.cjs`),require(`./pre-transaction/getVolatileTransferAmount.cjs`),require(`./pre-transaction/constructAdminData.cjs`),require(`./pre-transaction/convert-okx-instructions.cjs`),require(`./web3/getSolanaPriorityFee.cjs`),require(`./utils/process.utils.cjs`),require(`./pre-transaction/sendV0Transaction.cjs`),require(`./utils/bytes32.utils.cjs`),require(`./pre-transaction/recipientUtxoProcessing.cjs`),require(`./pre-transaction/ensureAmountChanges.cjs`),require(`./pre-transaction/getFeeStructure.cjs`),require(`./pre-transaction/getKycAndSignatureData.cjs`),require(`./pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),require(`./pre-transaction/buildCommitmentValidationData.cjs`),require(`./pre-transaction/index.cjs`),require(`./kyc/openDefaultPassportWindow.cjs`),require(`./utils/reloadPage.cjs`),require(`./utils/cacheDevice.utils.cjs`),require(`./utils/involves-permit2-op.cjs`),require(`./utils/convertEmporiumOpToCallInfo.cjs`),require(`./utils/getRecipientInfoFromUserKeys.cjs`),require(`./utils/publicBalance.utils.cjs`),require(`./utils/postToOffscreen.cjs`),require(`./utils/getUtxosFromReceipt.utils.cjs`),require(`./utils/getUtxosFromReceiptSolana.cjs`),require(`./utils/tx-confirmation.utils.cjs`),require(`./utils/tronSimulation.utils.cjs`),require(`./utils/getSignerFromContract.cjs`),require(`./web3/events/balanceChangedHandler.cjs`),require(`./utils/index.cjs`),require(`./snarkjs/fetchOnChainRootHashes.cjs`),require(`./snarkjs/constructGeneralZkProof.cjs`),require(`./private-wallet/emporium.helpers.cjs`),require(`./snarkjs/constructEmporiumProof.cjs`),require(`./snarkjs/constructSolanaZkProof.cjs`),require(`./snarkjs/index.cjs`),require(`./web3/uniswapAPI.cjs`),require(`./web3/odosAPI.cjs`),require(`./web3/oneInchAPI.cjs`),require(`./web3/lifiAPI.cjs`),require(`./web3/okxAPI.cjs`),require(`./web3/signAndSendSerializedTransaction.cjs`),require(`./web3/index.cjs`),require(`./kyc/checkTokenLimitsUSD.cjs`),require(`./kyc/index.cjs`),require(`./private-wallet/emporium.swap.helpers.cjs`),require(`./private-wallet/index.cjs`),require(`./auto-deposit-back-helpers/get-tokens-to-deposit-back.cjs`),require(`./auto-deposit-back-helpers/get-gas-token-records.cjs`),require(`./auto-deposit-back-helpers/select-gas-token.cjs`),require(`./auto-deposit-back-helpers/update-hinkal.cjs`),require(`./auto-deposit-back-helpers/index.cjs`);
|
|
1
|
+
require(`./utils/serialize.utils.cjs`),require(`./utils/amounts.utils.cjs`),require(`./pre-transaction/solana.cjs`),require(`./web3/functionCalls/accessTokenCalls.cjs`),require(`./web3/etherFunctions.cjs`),require(`./utils/erc20tokenFunctions.cjs`),require(`./utils/caseInsensitive.utils.cjs`),require(`./utils/bigint-math.utils.cjs`),require(`./utils/time.utils.cjs`),require(`./utils/upToDateState.cjs`),require(`./utils/getContractAddress.cjs`),require(`./utils/cacheFunctions.cjs`),require(`./utils/encryptInputForEnclave.cjs`),require(`./utils/solanaMint.utils.cjs`),require(`./utils/addresses.cjs`),require(`./utils/tron.utils.cjs`),require(`./web3/events/getInputUtxoAndBalance.cjs`),require(`./utils/get-signature-header.cjs`),require(`./utils/auth.utils.cjs`),require(`./utils/string.utils.cjs`),require(`./utils/token-check.utils.cjs`),require(`./utils/mutexes.utils.cjs`),require(`./web3/events/getShieldedBalance.cjs`),require(`./pre-transaction/outputUtxoProcessing.cjs`),require(`./utils/external-action.utils.cjs`),require(`./snarkjs/common.snarkjs.cjs`),require(`./snarkjs/generateZkProof.cjs`),require(`./utils/fees.utils.cjs`),require(`./utils/create-provider.cjs`),require(`./utils/resolve-sync.utils.cjs`),require(`./pre-transaction/process-gas-estimates.cjs`),require(`./pre-transaction/getFlatFees.cjs`),require(`./pre-transaction/getVolatileTransferAmount.cjs`),require(`./pre-transaction/constructAdminData.cjs`),require(`./pre-transaction/convert-okx-instructions.cjs`),require(`./web3/getSolanaPriorityFee.cjs`),require(`./utils/process.utils.cjs`),require(`./pre-transaction/sendV0Transaction.cjs`),require(`./utils/bytes32.utils.cjs`),require(`./pre-transaction/recipientUtxoProcessing.cjs`),require(`./pre-transaction/ensureAmountChanges.cjs`),require(`./pre-transaction/getFeeStructure.cjs`),require(`./pre-transaction/getKycAndSignatureData.cjs`),require(`./pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),require(`./pre-transaction/buildCommitmentValidationData.cjs`),require(`./pre-transaction/index.cjs`),require(`./kyc/openDefaultPassportWindow.cjs`),require(`./utils/reloadPage.cjs`),require(`./utils/cacheDevice.utils.cjs`),require(`./utils/involves-permit2-op.cjs`),require(`./utils/convertEmporiumOpToCallInfo.cjs`),require(`./utils/getRecipientInfoFromUserKeys.cjs`),require(`./utils/publicBalance.utils.cjs`),require(`./utils/postToOffscreen.cjs`),require(`./utils/getUtxosFromReceipt.utils.cjs`),require(`./utils/getUtxosFromReceiptSolana.cjs`),require(`./utils/tx-confirmation.utils.cjs`),require(`./utils/tronSimulation.utils.cjs`),require(`./utils/getSignerFromContract.cjs`),require(`./web3/events/balanceChangedHandler.cjs`),require(`./utils/index.cjs`),require(`./snarkjs/fetchOnChainRootHashes.cjs`),require(`./snarkjs/constructGeneralZkProof.cjs`),require(`./private-wallet/emporium.helpers.cjs`),require(`./snarkjs/constructEmporiumProof.cjs`),require(`./snarkjs/constructSolanaZkProof.cjs`),require(`./snarkjs/index.cjs`),require(`./web3/uniswapAPI.cjs`),require(`./web3/odosAPI.cjs`),require(`./web3/oneInchAPI.cjs`),require(`./web3/lifiAPI.cjs`),require(`./web3/okxAPI.cjs`),require(`./web3/signAndSendSerializedTransaction.cjs`),require(`./web3/index.cjs`),require(`./kyc/checkTokenLimitsUSD.cjs`),require(`./kyc/index.cjs`),require(`./private-wallet/emporium.swap.helpers.cjs`),require(`./private-wallet/index.cjs`),require(`./auto-deposit-back-helpers/get-tokens-to-deposit-back.cjs`),require(`./auto-deposit-back-helpers/get-gas-token-records.cjs`),require(`./auto-deposit-back-helpers/select-gas-token.cjs`),require(`./auto-deposit-back-helpers/update-hinkal.cjs`),require(`./auto-deposit-back-helpers/index.cjs`);
|
|
@@ -5,6 +5,7 @@ import "./web3/functionCalls/accessTokenCalls.mjs";
|
|
|
5
5
|
import "./web3/etherFunctions.mjs";
|
|
6
6
|
import "./utils/erc20tokenFunctions.mjs";
|
|
7
7
|
import "./utils/caseInsensitive.utils.mjs";
|
|
8
|
+
import "./utils/bigint-math.utils.mjs";
|
|
8
9
|
import "./utils/time.utils.mjs";
|
|
9
10
|
import "./utils/upToDateState.mjs";
|
|
10
11
|
import "./utils/getContractAddress.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../web3/etherFunctions.cjs`),i=require(`../../data-structures/utxo/Utxo.cjs`),a=require(`../../error-handling/logger.cjs`),o=require(`./common.snarkjs.cjs`),s=require(`./generateCircomData.cjs`),c=require(`./generateZkProof.cjs`),l=require(`../utils/fees.utils.cjs`),u=require(`../../data-structures/Hinkal/hinkalCheckTokenRegistry.cjs`),d=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`);var f=async(f,p,m,h,g,_,v,y,b,x,S=t.zeroAddress,C=e.chainIds.localhost,w=m.map(()=>!1),T=m.map(()=>0n),E=void 0,D=!1,O,k=void 0,A,j=t.defaultSignatureData,M)=>{let N=o.calcAmountChanges(m,h),P=m.map(e=>e[0].erc20TokenAddress),F=o.calcEncryptedOutputs(h),I=g.getShieldedPrivateKey(),L=i.Utxo.findCorrectRandomization(r.randomBigInt(31),I),R=e.isTronLike(C)?await u.hinkalCheckTronTokenRegistry(P,o.calcAmountChanges(m,h,!0),C):await u.hinkalCheckTokenRegistry(A??u.createHinkalHelperFromData(C),P,o.calcAmountChanges(m,h,!0)),z=e.isTronLike(C)?D||R:D,{inCommitmentSiblings:B,inCommitmentSiblingSides:V,accessTokenSiblings:H,accessTokenSiblingSides:U,rootHashHinkal:W,rootHashAccessToken:G,inNullifiers:K}=await d.getDataFromWorkers(C,f,p,g,m.map(e=>e.map(e=>e.getConstructableParams())),z,R),q=o.buildOutCommitments(h),J={rootHashHinkal:W,shieldedPrivateKey:I,erc20TokenAddresses:P,inAmounts:m.map(e=>e.map(e=>e.amount.toString())),inTimeStamps:m.map(e=>e.map(e=>e.timeStamp)),inRandomizations:m.map(e=>e.map(e=>e.randomization)),inNullifiers:K,inCommitmentSiblings:B,inCommitmentSiblingSides:V,outAmounts:h.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:BigInt(h[0][0].timeStamp),outPublicKeys:h.map(e=>e.map(e=>e.getStealthAddress())),extraRandomization:L,amountChanges:N,outCommitments:q,rootHashAccessToken:G,accessTokenSiblings:H,accessTokenSiblingSides:U,calldataHash:0n},Y=m.map(e=>e[0].tokenId??0),X=Y.reduce((e,t)=>e+t,0)>0?Y.length:0;X>0&&(J.tokenIds=Y);let Z=o.calcPublicSignalCount(_,J.erc20TokenAddresses,J.amountChanges,J.inNullifiers,J.outCommitments,X),Q=n.defaultHinkalLogicArgs(N.length,g);J.interactionAddress=Q.interactionAddress,J.externalApprovalAddresses=Q.useApprovalUtxoData?.map(({externalApprovalAddresses:e})=>e),k||=l.generateFeeStructure(T,m.map(e=>e[0].erc20TokenAddress));let $=o.calcAmountChanges(m,h,!0);O||=o.getSlippageValues($),a.Logger.log({publicSignalCount:Z}),J.calldataHash=o.createCallDataHash(Z,S,y,v,b,F,T,E,O,w,Q,k,j,M);let{zkCallData:ee}=await c.generateZkProof(C,_,J,x),te=o.calcStealthAddressStructure(L,I);return{zkCallData:ee,circomData:s.generateCircomData(q,K,W,G,$,P,h,F,Z,v,y,b,S,J.calldataHash,Y,te,w,E,void 0,Q,O,k,j,M),dimData:{tokenNumber:m.length,nullifierAmount:m[0].length,outputAmount:h[0].length},encryptedOutputs:F}};exports.constructZkProof=f;
|
|
@@ -1,167 +1,54 @@
|
|
|
1
1
|
import { chainIds as e, isTronLike as t } from "../../constants/chains.constants.mjs";
|
|
2
|
-
import { defaultSignatureData as
|
|
3
|
-
import { defaultHinkalLogicArgs as
|
|
4
|
-
import { randomBigInt as
|
|
5
|
-
import { Utxo as
|
|
6
|
-
import { Logger as
|
|
7
|
-
import { buildOutCommitments as
|
|
8
|
-
import { generateCircomData as
|
|
9
|
-
import { generateZkProof as
|
|
10
|
-
import { generateFeeStructure as
|
|
11
|
-
import { createHinkalHelperFromData as
|
|
12
|
-
import { getDataFromWorkers as
|
|
2
|
+
import { defaultSignatureData as n, zeroAddress as r } from "../../constants/protocol.constants.mjs";
|
|
3
|
+
import { defaultHinkalLogicArgs as ee } from "../../types/hinkal.types.mjs";
|
|
4
|
+
import { randomBigInt as te } from "../web3/etherFunctions.mjs";
|
|
5
|
+
import { Utxo as ne } from "../../data-structures/utxo/Utxo.mjs";
|
|
6
|
+
import { Logger as re } from "../../error-handling/logger.mjs";
|
|
7
|
+
import { buildOutCommitments as ie, calcAmountChanges as i, calcEncryptedOutputs as a, calcPublicSignalCount as o, calcStealthAddressStructure as s, createCallDataHash as ae, getSlippageValues as c } from "./common.snarkjs.mjs";
|
|
8
|
+
import { generateCircomData as oe } from "./generateCircomData.mjs";
|
|
9
|
+
import { generateZkProof as se } from "./generateZkProof.mjs";
|
|
10
|
+
import { generateFeeStructure as ce } from "../utils/fees.utils.mjs";
|
|
11
|
+
import { createHinkalHelperFromData as l, hinkalCheckTokenRegistry as u, hinkalCheckTronTokenRegistry as le } from "../../data-structures/Hinkal/hinkalCheckTokenRegistry.mjs";
|
|
12
|
+
import { getDataFromWorkers as d } from "./getMerkleTreeSiblingsAndRootHashes.mjs";
|
|
13
13
|
//#region libs/shared/common/src/functions/snarkjs/constructGeneralZkProof.ts
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
flatFees: y.map((e) => e.toString()),
|
|
35
|
-
hasHookData: !!b,
|
|
36
|
-
hasHinkalHelper: !!w,
|
|
37
|
-
hasOriginalSender: !!E,
|
|
38
|
-
inputUtxos: o(c),
|
|
39
|
-
outputUtxos: o(l)
|
|
40
|
-
});
|
|
41
|
-
let D = n(c, l), O = c.map((e) => e[0].erc20TokenAddress), k = se(l);
|
|
42
|
-
console.log(`${i} derived base values`, {
|
|
43
|
-
amountChanges: D.map((e) => e.toString()),
|
|
44
|
-
erc20TokenAddresses: O,
|
|
45
|
-
encryptedOutputGroupCount: k.length,
|
|
46
|
-
encryptedOutputSizes: k.map((e) => e.length)
|
|
47
|
-
});
|
|
48
|
-
let A = u.getShieldedPrivateKey();
|
|
49
|
-
console.log(`${i} shielded key ready`, { shieldedPrivateKeyLength: A?.toString()?.length });
|
|
50
|
-
let j = ie.findCorrectRandomization(re(31), A);
|
|
51
|
-
console.log(`${i} extra randomization ready`, { extraRandomization: j.toString() });
|
|
52
|
-
let M = n(c, l, !0);
|
|
53
|
-
console.log(`${i} token registry check start`, {
|
|
54
|
-
isTronLike: t(_),
|
|
55
|
-
erc20TokenAddresses: O,
|
|
56
|
-
signedAmountChanges: M.map((e) => e.toString())
|
|
57
|
-
});
|
|
58
|
-
let N = t(_) ? await ge(O, M, _) : await he(w ?? me(_), O, M);
|
|
59
|
-
console.log(`${i} token registry check complete`, { kycRequired: N });
|
|
60
|
-
let P = t(_) ? x || N : x;
|
|
61
|
-
console.log(`${i} effective access token patch flag`, { effectivePatchAccessTokenMerkleTree: P });
|
|
62
|
-
let F = c.map((e) => e.map((e) => e.getConstructableParams()));
|
|
63
|
-
console.log(`${i} input utxos serialized`, {
|
|
64
|
-
serializedGroupCount: F.length,
|
|
65
|
-
serializedGroupSizes: F.map((e) => e.length)
|
|
66
|
-
}), console.log(`${i} worker data fetch start`);
|
|
67
|
-
let { inCommitmentSiblings: I, inCommitmentSiblingSides: L, accessTokenSiblings: R, accessTokenSiblingSides: z, rootHashHinkal: B, rootHashAccessToken: V, inNullifiers: H } = await _e(_, s, ye, u, F, P, N);
|
|
68
|
-
console.log(`${i} worker data fetch complete`, {
|
|
69
|
-
inNullifierGroupCount: H.length,
|
|
70
|
-
inNullifierSizes: H.map((e) => e.length),
|
|
71
|
-
inCommitmentSiblingGroupCount: I.length,
|
|
72
|
-
inCommitmentSiblingSizes: I.map((e) => e.length),
|
|
73
|
-
accessTokenSiblingGroupCount: R.length,
|
|
74
|
-
accessTokenSiblingSizes: R.map((e) => e.length),
|
|
75
|
-
rootHashHinkal: a(B),
|
|
76
|
-
rootHashAccessToken: a(V),
|
|
77
|
-
inCommitmentSiblingSidesGroupCount: L.length,
|
|
78
|
-
accessTokenSiblingSidesGroupCount: z.length
|
|
79
|
-
});
|
|
80
|
-
let U = oe(l);
|
|
81
|
-
console.log(`${i} out commitments built`, {
|
|
82
|
-
outCommitmentGroupCount: U.length,
|
|
83
|
-
outCommitmentSizes: U.map((e) => e.length)
|
|
84
|
-
});
|
|
85
|
-
let W = {
|
|
86
|
-
rootHashHinkal: B,
|
|
87
|
-
shieldedPrivateKey: A,
|
|
88
|
-
erc20TokenAddresses: O,
|
|
89
|
-
inAmounts: c.map((e) => e.map((e) => e.amount.toString())),
|
|
90
|
-
inTimeStamps: c.map((e) => e.map((e) => e.timeStamp)),
|
|
91
|
-
inRandomizations: c.map((e) => e.map((e) => e.randomization)),
|
|
92
|
-
inNullifiers: H,
|
|
93
|
-
inCommitmentSiblings: I,
|
|
94
|
-
inCommitmentSiblingSides: L,
|
|
95
|
-
outAmounts: l.map((e) => e.map((e) => e.amount.toString())),
|
|
96
|
-
outTimeStamp: BigInt(l[0][0].timeStamp),
|
|
97
|
-
outPublicKeys: l.map((e) => e.map((e) => e.getStealthAddress())),
|
|
98
|
-
extraRandomization: j,
|
|
99
|
-
amountChanges: D,
|
|
100
|
-
outCommitments: U,
|
|
101
|
-
rootHashAccessToken: V,
|
|
102
|
-
accessTokenSiblings: R,
|
|
103
|
-
accessTokenSiblingSides: z,
|
|
14
|
+
var f = async (f, p, m, h, g, _, v, y, b, x, S = r, C = e.localhost, w = m.map(() => !1), T = m.map(() => 0n), E = void 0, D = !1, O, k = void 0, A, j = n, M) => {
|
|
15
|
+
let N = i(m, h), P = m.map((e) => e[0].erc20TokenAddress), F = a(h), I = g.getShieldedPrivateKey(), L = ne.findCorrectRandomization(te(31), I), R = t(C) ? await le(P, i(m, h, !0), C) : await u(A ?? l(C), P, i(m, h, !0)), z = t(C) ? D || R : D, { inCommitmentSiblings: B, inCommitmentSiblingSides: V, accessTokenSiblings: H, accessTokenSiblingSides: U, rootHashHinkal: W, rootHashAccessToken: G, inNullifiers: K } = await d(C, f, p, g, m.map((e) => e.map((e) => e.getConstructableParams())), z, R), q = ie(h), J = {
|
|
16
|
+
rootHashHinkal: W,
|
|
17
|
+
shieldedPrivateKey: I,
|
|
18
|
+
erc20TokenAddresses: P,
|
|
19
|
+
inAmounts: m.map((e) => e.map((e) => e.amount.toString())),
|
|
20
|
+
inTimeStamps: m.map((e) => e.map((e) => e.timeStamp)),
|
|
21
|
+
inRandomizations: m.map((e) => e.map((e) => e.randomization)),
|
|
22
|
+
inNullifiers: K,
|
|
23
|
+
inCommitmentSiblings: B,
|
|
24
|
+
inCommitmentSiblingSides: V,
|
|
25
|
+
outAmounts: h.map((e) => e.map((e) => e.amount.toString())),
|
|
26
|
+
outTimeStamp: BigInt(h[0][0].timeStamp),
|
|
27
|
+
outPublicKeys: h.map((e) => e.map((e) => e.getStealthAddress())),
|
|
28
|
+
extraRandomization: L,
|
|
29
|
+
amountChanges: N,
|
|
30
|
+
outCommitments: q,
|
|
31
|
+
rootHashAccessToken: G,
|
|
32
|
+
accessTokenSiblings: H,
|
|
33
|
+
accessTokenSiblingSides: U,
|
|
104
34
|
calldataHash: 0n
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
W.interactionAddress = J.interactionAddress, W.externalApprovalAddresses = J.useApprovalUtxoData?.map(({ externalApprovalAddresses: e }) => e), console.log(`${i} hinkal logic args ready`, {
|
|
122
|
-
interactionAddress: J.interactionAddress,
|
|
123
|
-
externalApprovalAddressesCount: W.externalApprovalAddresses?.length
|
|
124
|
-
}), C ||= (console.log(`${i} generating fee structure`), pe(y, c.map((e) => e[0].erc20TokenAddress))), console.log(`${i} fee structure ready`, ve(C));
|
|
125
|
-
let Y = M;
|
|
126
|
-
console.log(`${i} signed amount changes ready`, { amountChangesBased: Y.map((e) => e.toString()) }), S ||= (console.log(`${i} generating slippage values`), de(Y)), console.log(`${i} slippage values ready`, { slippageValues: S.map((e) => e.toString()) }), ae.log({ publicSignalCount: q }), console.log(`${i} calldata hash start`), W.calldataHash = ue(q, g, p, f, m, k, y, b, S, v, J, C, T, E), console.log(`${i} calldata hash complete`, { calldataHash: W.calldataHash.toString() }), console.log(`${i} generateZkProof start`);
|
|
127
|
-
let { zkCallData: X } = await r(_, d, W, h);
|
|
128
|
-
console.log(`${i} generateZkProof complete`, {
|
|
129
|
-
aLength: X?.[0]?.length,
|
|
130
|
-
bOuterLength: X?.[1]?.length,
|
|
131
|
-
bInnerLengths: X?.[1]?.map((e) => e.length),
|
|
132
|
-
cLength: X?.[2]?.length,
|
|
133
|
-
inputLength: X?.[3]?.length
|
|
134
|
-
});
|
|
135
|
-
let Z = le(j, A);
|
|
136
|
-
console.log(`${i} stealth address structure ready`, {
|
|
137
|
-
extraRandomization: a(Z.extraRandomization),
|
|
138
|
-
stealthAddress: a(Z.stealthAddress)
|
|
139
|
-
});
|
|
140
|
-
let Q = fe(U, H, B, V, Y, O, l, k, q, f, p, m, g, W.calldataHash, G, Z, v, b, void 0, J, S, C, T, E);
|
|
141
|
-
console.log(`${i} circom data ready`, {
|
|
142
|
-
tokenCount: Q.erc20TokenAddresses.length,
|
|
143
|
-
amountChanges: Q.amountChanges.map((e) => e.toString()),
|
|
144
|
-
inputNullifierGroupCount: Q.inputNullifiers.length,
|
|
145
|
-
outCommitmentGroupCount: Q.outCommitments.length,
|
|
146
|
-
encryptedOutputGroupCount: Q.encryptedOutputs.length,
|
|
147
|
-
rootHashHinkal: a(Q.rootHashHinkal),
|
|
148
|
-
rootHashAccessToken: a(Q.rootHashAccessToken),
|
|
149
|
-
relay: Q.relay,
|
|
150
|
-
externalAddress: Q.externalAddress,
|
|
151
|
-
externalActionId: a(Q.externalActionId),
|
|
152
|
-
calldataHash: a(Q.calldataHash)
|
|
153
|
-
});
|
|
154
|
-
let $ = {
|
|
155
|
-
tokenNumber: c.length,
|
|
156
|
-
nullifierAmount: c[0].length,
|
|
157
|
-
outputAmount: l[0].length
|
|
158
|
-
};
|
|
159
|
-
return console.log(`${i} dim data ready`, $), console.log(`${i} complete`), {
|
|
160
|
-
zkCallData: X,
|
|
161
|
-
circomData: Q,
|
|
162
|
-
dimData: $,
|
|
163
|
-
encryptedOutputs: k
|
|
35
|
+
}, Y = m.map((e) => e[0].tokenId ?? 0), X = Y.reduce((e, t) => e + t, 0) > 0 ? Y.length : 0;
|
|
36
|
+
X > 0 && (J.tokenIds = Y);
|
|
37
|
+
let Z = o(_, J.erc20TokenAddresses, J.amountChanges, J.inNullifiers, J.outCommitments, X), Q = ee(N.length, g);
|
|
38
|
+
J.interactionAddress = Q.interactionAddress, J.externalApprovalAddresses = Q.useApprovalUtxoData?.map(({ externalApprovalAddresses: e }) => e), k ||= ce(T, m.map((e) => e[0].erc20TokenAddress));
|
|
39
|
+
let $ = i(m, h, !0);
|
|
40
|
+
O ||= c($), re.log({ publicSignalCount: Z }), J.calldataHash = ae(Z, S, y, v, b, F, T, E, O, w, Q, k, j, M);
|
|
41
|
+
let { zkCallData: ue } = await se(C, _, J, x), de = s(L, I);
|
|
42
|
+
return {
|
|
43
|
+
zkCallData: ue,
|
|
44
|
+
circomData: oe(q, K, W, G, $, P, h, F, Z, v, y, b, S, J.calldataHash, Y, de, w, E, void 0, Q, O, k, j, M),
|
|
45
|
+
dimData: {
|
|
46
|
+
tokenNumber: m.length,
|
|
47
|
+
nullifierAmount: m[0].length,
|
|
48
|
+
outputAmount: h[0].length
|
|
49
|
+
},
|
|
50
|
+
encryptedOutputs: F
|
|
164
51
|
};
|
|
165
52
|
};
|
|
166
53
|
//#endregion
|
|
167
|
-
export {
|
|
54
|
+
export { f as constructZkProof };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../error-handling/logger.cjs`),t=require(`./generateZkProofEnclave.cjs`),n=require(`./generateZkProofSelf.cjs`);var r=async(r,i,a,o)=>{if(
|
|
1
|
+
const e=require(`../../error-handling/logger.cjs`),t=require(`./generateZkProofEnclave.cjs`),n=require(`./generateZkProofSelf.cjs`);var r=async(r,i,a,o)=>{if(o)try{return await t.generateZkProofEnclave(r,i,a)}catch(t){e.Logger.error(`enclave proof error`,t)}return n.generateZkProofSelf(r,i,a)};exports.generateZkProof=r;
|
|
@@ -3,12 +3,7 @@ import { generateZkProofEnclave as t } from "./generateZkProofEnclave.mjs";
|
|
|
3
3
|
import { generateZkProofSelf as n } from "./generateZkProofSelf.mjs";
|
|
4
4
|
//#region libs/shared/common/src/functions/snarkjs/generateZkProof.ts
|
|
5
5
|
var r = async (r, i, a, o) => {
|
|
6
|
-
if (
|
|
7
|
-
chainId: r,
|
|
8
|
-
verifierName: i,
|
|
9
|
-
input: a,
|
|
10
|
-
remotely: o
|
|
11
|
-
}), o) try {
|
|
6
|
+
if (o) try {
|
|
12
7
|
return await t(r, i, a);
|
|
13
8
|
} catch (t) {
|
|
14
9
|
e.error("enclave proof error", t);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`../../constants/protocol.constants.cjs`);var t=(t,n=e.CIRCOM_P)=>{let r=t%n;return r>=0n?r:r+n},n=(e,n,r)=>{let i=1n,a=t(e,r),o=n;for(;o>0n;)o%2n==1n&&(i=i*a%r),o/=2n,a=a*a%r;return i};exports.mod=t,exports.modpow=n;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CIRCOM_P as e } from "../../constants/protocol.constants.mjs";
|
|
2
|
+
//#region libs/shared/common/src/functions/utils/bigint-math.utils.ts
|
|
3
|
+
var t = (t, n = e) => {
|
|
4
|
+
let r = t % n;
|
|
5
|
+
return r >= 0n ? r : r + n;
|
|
6
|
+
}, n = (e, n, r) => {
|
|
7
|
+
let i = 1n, a = t(e, r), o = n;
|
|
8
|
+
for (; o > 0n;) o % 2n == 1n && (i = i * a % r), o /= 2n, a = a * a % r;
|
|
9
|
+
return i;
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { t as mod, n as modpow };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./serialize.utils.cjs`),require(`./amounts.utils.cjs`),require(`../pre-transaction/solana.cjs`),require(`./erc20tokenFunctions.cjs`),require(`./caseInsensitive.utils.cjs`),require(`./time.utils.cjs`),require(`./upToDateState.cjs`),require(`./getContractAddress.cjs`),require(`./cacheFunctions.cjs`),require(`./encryptInputForEnclave.cjs`),require(`./solanaMint.utils.cjs`),require(`./addresses.cjs`),require(`./tron.utils.cjs`),require(`./get-signature-header.cjs`),require(`./auth.utils.cjs`),require(`./string.utils.cjs`),require(`./token-check.utils.cjs`),require(`./mutexes.utils.cjs`),require(`../pre-transaction/outputUtxoProcessing.cjs`),require(`./external-action.utils.cjs`),require(`./fees.utils.cjs`),require(`./create-provider.cjs`),require(`./resolve-sync.utils.cjs`),require(`./convertIntegrationProviderToExternalActionId.cjs`),require(`../pre-transaction/process-gas-estimates.cjs`),require(`../pre-transaction/getVolatileTransferAmount.cjs`),require(`../pre-transaction/constructAdminData.cjs`),require(`../pre-transaction/convert-okx-instructions.cjs`),require(`./process.utils.cjs`),require(`../pre-transaction/sendV0Transaction.cjs`),require(`./bytes32.utils.cjs`),require(`../pre-transaction/recipientUtxoProcessing.cjs`),require(`../pre-transaction/ensureAmountChanges.cjs`),require(`../pre-transaction/getFeeStructure.cjs`),require(`../pre-transaction/getKycAndSignatureData.cjs`),require(`../pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),require(`../pre-transaction/buildCommitmentValidationData.cjs`),require(`../pre-transaction/index.cjs`),require(`./evmNetworkFunctions.cjs`),require(`./userAgent.cjs`),require(`./reloadPage.cjs`),require(`./cacheDevice.utils.cjs`),require(`./getBlockExplorerUrl.cjs`),require(`./involves-permit2-op.cjs`),require(`./convertEmporiumOpToCallInfo.cjs`),require(`./getRecipientInfoFromUserKeys.cjs`),require(`./publicBalance.utils.cjs`),require(`./rpc-int-encode.cjs`),require(`./walletBalances.utils.cjs`),require(`./nftTokenFunctions.cjs`),require(`./inLogicMetadata.cjs`),require(`./networks.utils.cjs`),require(`./postToOffscreen.cjs`),require(`./prepareHinkal.cjs`),require(`./getUtxosFromReceipt.utils.cjs`),require(`./getUtxosFromReceiptSolana.cjs`),require(`./enclave-utxo-storage.cjs`),require(`./enclave-signature-storage.cjs`),require(`./tx-confirmation.utils.cjs`),require(`./buildClaimableDepositPlan.cjs`),require(`./formatter.cjs`),require(`./tronSimulation.utils.cjs`),require(`./getSignerFromContract.cjs`),require(`./deposit-claimable.utils.cjs`),require(`./transfer-claimable.utils.cjs`),require(`./dispatchBalanceRefreshes.cjs`),require(`./lifi.utils.cjs`),require(`./enclave-recipient-info-storage.cjs`);
|
|
1
|
+
require(`./serialize.utils.cjs`),require(`./amounts.utils.cjs`),require(`../pre-transaction/solana.cjs`),require(`./erc20tokenFunctions.cjs`),require(`./caseInsensitive.utils.cjs`),require(`./bigint-math.utils.cjs`),require(`./time.utils.cjs`),require(`./upToDateState.cjs`),require(`./getContractAddress.cjs`),require(`./cacheFunctions.cjs`),require(`./encryptInputForEnclave.cjs`),require(`./solanaMint.utils.cjs`),require(`./addresses.cjs`),require(`./tron.utils.cjs`),require(`./get-signature-header.cjs`),require(`./auth.utils.cjs`),require(`./string.utils.cjs`),require(`./token-check.utils.cjs`),require(`./mutexes.utils.cjs`),require(`../pre-transaction/outputUtxoProcessing.cjs`),require(`./external-action.utils.cjs`),require(`./fees.utils.cjs`),require(`./create-provider.cjs`),require(`./resolve-sync.utils.cjs`),require(`./convertIntegrationProviderToExternalActionId.cjs`),require(`../pre-transaction/process-gas-estimates.cjs`),require(`../pre-transaction/getVolatileTransferAmount.cjs`),require(`../pre-transaction/constructAdminData.cjs`),require(`../pre-transaction/convert-okx-instructions.cjs`),require(`./process.utils.cjs`),require(`../pre-transaction/sendV0Transaction.cjs`),require(`./bytes32.utils.cjs`),require(`../pre-transaction/recipientUtxoProcessing.cjs`),require(`../pre-transaction/ensureAmountChanges.cjs`),require(`../pre-transaction/getFeeStructure.cjs`),require(`../pre-transaction/getKycAndSignatureData.cjs`),require(`../pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),require(`../pre-transaction/buildCommitmentValidationData.cjs`),require(`../pre-transaction/index.cjs`),require(`./evmNetworkFunctions.cjs`),require(`./userAgent.cjs`),require(`./reloadPage.cjs`),require(`./cacheDevice.utils.cjs`),require(`./getBlockExplorerUrl.cjs`),require(`./involves-permit2-op.cjs`),require(`./convertEmporiumOpToCallInfo.cjs`),require(`./getRecipientInfoFromUserKeys.cjs`),require(`./publicBalance.utils.cjs`),require(`./rpc-int-encode.cjs`),require(`./walletBalances.utils.cjs`),require(`./nftTokenFunctions.cjs`),require(`./inLogicMetadata.cjs`),require(`./networks.utils.cjs`),require(`./postToOffscreen.cjs`),require(`./prepareHinkal.cjs`),require(`./getUtxosFromReceipt.utils.cjs`),require(`./getUtxosFromReceiptSolana.cjs`),require(`./enclave-utxo-storage.cjs`),require(`./enclave-signature-storage.cjs`),require(`./tx-confirmation.utils.cjs`),require(`./buildClaimableDepositPlan.cjs`),require(`./formatter.cjs`),require(`./tronSimulation.utils.cjs`),require(`./getSignerFromContract.cjs`),require(`./deposit-claimable.utils.cjs`),require(`./transfer-claimable.utils.cjs`),require(`./dispatchBalanceRefreshes.cjs`),require(`./lifi.utils.cjs`),require(`./enclave-recipient-info-storage.cjs`);
|
|
@@ -3,6 +3,7 @@ import "./amounts.utils.mjs";
|
|
|
3
3
|
import "../pre-transaction/solana.mjs";
|
|
4
4
|
import "./erc20tokenFunctions.mjs";
|
|
5
5
|
import "./caseInsensitive.utils.mjs";
|
|
6
|
+
import "./bigint-math.utils.mjs";
|
|
6
7
|
import "./time.utils.mjs";
|
|
7
8
|
import "./upToDateState.mjs";
|
|
8
9
|
import "./getContractAddress.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants/protocol.constants.cjs`),t=require(`../../../types/ethereum-network.types.cjs`),n=require(`../../utils/time.utils.cjs`),r=require(`../../utils/getContractAddress.cjs`),i=require(`./recoverTransactionFromError.cjs`),a=require(`./approveTokensToHinkal.cjs`),o=require(`./constructBatchCall.cjs`),s=require(`./waitForErc20Approvals.cjs`);let c=require(`ethers`);var l
|
|
1
|
+
require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants/protocol.constants.cjs`),t=require(`../../../types/ethereum-network.types.cjs`),n=require(`../../utils/time.utils.cjs`),r=require(`../../utils/getContractAddress.cjs`),i=require(`./recoverTransactionFromError.cjs`),a=require(`./approveTokensToHinkal.cjs`),o=require(`./constructBatchCall.cjs`),s=require(`./waitForErc20Approvals.cjs`);let c=require(`ethers`);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,t.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=o.buildApproveAndTransactCalls(x.map(e=>e.erc20TokenAddress),b,r.getContractAddress(w),T,p,h,m,k);return await A.sendBatchCallsTransaction(u,e)}if(!y&&(await a.approveTokensToHinkal(l,u,w,x,b),O)){let e=x.map(({erc20TokenAddress:e},t)=>({tokenAddress:e,requiredAmount:b[t]}));await s.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(!(F instanceof c.ethers.AbstractSigner))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 n.waitLittle();let L;try{L=y?await T[E].populateTransaction(...P):await T[E](...P)}catch(e){if(!e?.transactionHash)throw e;let t=await i.recoverTransactionFromError(F.provider,e.transactionHash);if(!t)throw e;L=t}return L};exports.transactCallDirect=l;
|
|
@@ -8,174 +8,53 @@ import { buildApproveAndTransactCalls as o } from "./constructBatchCall.mjs";
|
|
|
8
8
|
import { waitForErc20Approvals as s } from "./waitForErc20Approvals.mjs";
|
|
9
9
|
import { ethers as c } from "ethers";
|
|
10
10
|
//#region libs/shared/common/src/functions/web3/functionCalls/transactCallDirect.ts
|
|
11
|
-
var l =
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
tokenCount: e.erc20TokenAddresses?.length,
|
|
19
|
-
tokenAddresses: e.erc20TokenAddresses,
|
|
20
|
-
amountChanges: e.amountChanges?.map((e) => e.toString()),
|
|
21
|
-
inputNullifierGroupCount: e.inputNullifiers?.length,
|
|
22
|
-
inputNullifierSizes: e.inputNullifiers?.map((e) => e.length),
|
|
23
|
-
outCommitmentGroupCount: e.outCommitments?.length,
|
|
24
|
-
outCommitmentSizes: e.outCommitments?.map((e) => e.length),
|
|
25
|
-
encryptedOutputGroupCount: e.encryptedOutputs?.length,
|
|
26
|
-
encryptedOutputSizes: e.encryptedOutputs?.map((e) => e.length),
|
|
27
|
-
rootHashHinkal: u(e.rootHashHinkal),
|
|
28
|
-
rootHashAccessToken: u(e.rootHashAccessToken),
|
|
29
|
-
relay: e.relay,
|
|
30
|
-
externalAddress: e.externalAddress,
|
|
31
|
-
externalActionId: u(e.externalActionId),
|
|
32
|
-
calldataHash: u(e.calldataHash),
|
|
33
|
-
publicSignalCount: e.publicSignalCount,
|
|
34
|
-
originalSender: e.originalSender
|
|
35
|
-
}), p = (e) => ({
|
|
36
|
-
hash: "hash" in e ? e.hash : void 0,
|
|
37
|
-
to: e.to,
|
|
38
|
-
from: e.from,
|
|
39
|
-
nonce: e.nonce,
|
|
40
|
-
value: typeof e.value == "bigint" ? e.value.toString() : e.value,
|
|
41
|
-
gasLimit: typeof e.gasLimit == "bigint" ? e.gasLimit.toString() : e.gasLimit,
|
|
42
|
-
dataLength: typeof e.data == "string" ? e.data.length : void 0
|
|
43
|
-
}), m = async (u, m, h, g, _, v, y, b, x, S = !0, C = !1) => {
|
|
44
|
-
console.log(`${l} start`, {
|
|
45
|
-
chainId: m,
|
|
46
|
-
preEstimateGas: S,
|
|
47
|
-
returnTxData: C,
|
|
48
|
-
amountIsArray: Array.isArray(h),
|
|
49
|
-
tokenIsArray: Array.isArray(g),
|
|
50
|
-
zkCallData: d(_),
|
|
51
|
-
dimData: y,
|
|
52
|
-
circomData: f(v)
|
|
53
|
-
});
|
|
54
|
-
let w = Array.isArray(h) ? h : [h], T = Array.isArray(g) ? g : [g];
|
|
55
|
-
if (console.log(`${l} normalized inputs`, {
|
|
56
|
-
amounts: w.map((e) => e.toString()),
|
|
57
|
-
tokenAddresses: T.map(({ erc20TokenAddress: e }) => e),
|
|
58
|
-
tokenSymbols: T.map(({ symbol: e }) => e)
|
|
59
|
-
}), w.length !== T.length) throw Error("token and amount length mismatch");
|
|
60
|
-
console.log(`${l} fetching signer contract`);
|
|
61
|
-
let E = u.getContractWithSigner(m, t.HinkalContract);
|
|
62
|
-
console.log(`${l} signer contract ready`, { hinkalContractAddress: r(E) }), console.log(`${l} fetching ethereum address`);
|
|
63
|
-
let D = await u.getEthereumAddressByChain(m);
|
|
64
|
-
console.log(`${l} ethereum address ready`, { ethereumAddress: D });
|
|
65
|
-
let O = b ?? E, k = x ?? E;
|
|
66
|
-
console.log(`${l} contracts resolved`, {
|
|
67
|
-
approvalContractAddress: r(O),
|
|
68
|
-
transactionContractAddress: r(k),
|
|
69
|
-
usedCustomApprovalContract: !!b,
|
|
70
|
-
usedCustomTransactionContract: !!x
|
|
71
|
-
});
|
|
72
|
-
let A = "transact", j = T.findIndex(({ erc20TokenAddress: t }) => t === e), M = T.some(({ erc20TokenAddress: t }) => t !== e), N = j === -1 ? 0n : w[j];
|
|
73
|
-
console.log(`${l} token analysis`, {
|
|
74
|
-
ethIndex: j,
|
|
75
|
-
needsApproval: M,
|
|
76
|
-
ethAmount: N.toString()
|
|
77
|
-
}), console.log(`${l} fetching provider adapter`);
|
|
78
|
-
let P = u.getProviderAdapter(m);
|
|
79
|
-
console.log(`${l} provider adapter ready`, { providerAdapterType: P?.constructor?.name }), console.log(`${l} checking batch support`);
|
|
80
|
-
let F = await P.supportsBatchCall?.(m);
|
|
81
|
-
if (console.log(`${l} batch support resolved`, {
|
|
82
|
-
supportsBatchCall: F,
|
|
83
|
-
hasSendBatchCallsTransaction: !!P.sendBatchCallsTransaction
|
|
84
|
-
}), !C && M && F && P.sendBatchCallsTransaction) {
|
|
85
|
-
console.log(`${l} entering batch call path`);
|
|
86
|
-
let e = T.map((e) => e.erc20TokenAddress), t = o(e, w, r(O), k, _, y, v, N);
|
|
87
|
-
console.log(`${l} batch calls built`, {
|
|
88
|
-
batchCallCount: t.length,
|
|
89
|
-
tokenAddresses: e,
|
|
90
|
-
approvalContractAddress: r(O),
|
|
91
|
-
transactionContractAddress: r(k)
|
|
92
|
-
}), console.log(`${l} sending batch calls transaction`);
|
|
93
|
-
let n = await P.sendBatchCallsTransaction(m, t);
|
|
94
|
-
return console.log(`${l} batch calls transaction sent`, p(n)), n;
|
|
11
|
+
var l = async (l, u, d, f, p, m, h, g, _, v = !0, y = !1) => {
|
|
12
|
+
let b = Array.isArray(d) ? d : [d], x = Array.isArray(f) ? f : [f];
|
|
13
|
+
if (b.length !== x.length) throw Error("token and amount length mismatch");
|
|
14
|
+
let S = l.getContractWithSigner(u, t.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
|
+
if (!y && O && j && A.sendBatchCallsTransaction) {
|
|
16
|
+
let e = o(x.map((e) => e.erc20TokenAddress), b, r(w), T, p, h, m, k);
|
|
17
|
+
return await A.sendBatchCallsTransaction(u, e);
|
|
95
18
|
}
|
|
96
|
-
if (!
|
|
97
|
-
let e =
|
|
19
|
+
if (!y && (await a(l, u, w, x, b), O)) {
|
|
20
|
+
let e = x.map(({ erc20TokenAddress: e }, t) => ({
|
|
98
21
|
tokenAddress: e,
|
|
99
|
-
requiredAmount:
|
|
22
|
+
requiredAmount: b[t]
|
|
100
23
|
}));
|
|
101
|
-
|
|
102
|
-
ownerAddress: D,
|
|
103
|
-
spenderAddress: r(O),
|
|
104
|
-
requirements: e.map(({ tokenAddress: e, requiredAmount: t }) => ({
|
|
105
|
-
tokenAddress: e,
|
|
106
|
-
requiredAmount: t.toString()
|
|
107
|
-
}))
|
|
108
|
-
}), await s(u, m, D, r(O), e), console.log(`${l} waiting for approvals complete`);
|
|
24
|
+
await s(l, u, C, r(w), e);
|
|
109
25
|
}
|
|
110
|
-
let
|
|
111
|
-
value:
|
|
26
|
+
let M = {
|
|
27
|
+
value: k > 0n ? BigInt(k).toString() : void 0,
|
|
112
28
|
gasLimit: void 0
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
y,
|
|
120
|
-
v,
|
|
29
|
+
}, N, P = [
|
|
30
|
+
p[0],
|
|
31
|
+
p[1],
|
|
32
|
+
p[2],
|
|
33
|
+
h,
|
|
34
|
+
m,
|
|
121
35
|
{
|
|
122
|
-
...
|
|
123
|
-
from:
|
|
36
|
+
...M,
|
|
37
|
+
from: C
|
|
124
38
|
}
|
|
125
|
-
];
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
let
|
|
135
|
-
if (console.log(`${l} runner resolved`, {
|
|
136
|
-
runnerType: z?.constructor?.name,
|
|
137
|
-
hasProvider: !!z?.provider
|
|
138
|
-
}), !(z instanceof c.AbstractSigner)) throw console.log(`${l} runner is not a signer`, { runnerType: z?.constructor?.name }), Error("expected signer");
|
|
139
|
-
if (S) {
|
|
140
|
-
console.log(`${l} estimateGas start`);
|
|
141
|
-
try {
|
|
142
|
-
L = Number(await k[A].estimateGas(...R)), console.log(`${l} estimateGas success`, { gasCosts: L });
|
|
143
|
-
} catch (e) {
|
|
144
|
-
console.log(`${l} estimateGas error`, {
|
|
145
|
-
message: e?.message,
|
|
146
|
-
code: e?.code,
|
|
147
|
-
shortMessage: e?.shortMessage,
|
|
148
|
-
reason: e?.reason,
|
|
149
|
-
data: e?.data,
|
|
150
|
-
error: e
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
} else console.log(`${l} estimateGas skipped`);
|
|
154
|
-
let B = L && L >= 0 ? Math.ceil(L * 12 / 10) : void 0;
|
|
155
|
-
B && (R[5].gasLimit = B), console.log(`${l} gas configuration final`, {
|
|
156
|
-
gasCosts: L,
|
|
157
|
-
extendedGasCosts: B,
|
|
158
|
-
finalOverrides: R[5]
|
|
159
|
-
}), console.log(`${l} waitLittle start`), await n(), console.log(`${l} waitLittle complete`);
|
|
160
|
-
let V;
|
|
39
|
+
], { runner: F } = T;
|
|
40
|
+
if (!(F instanceof c.AbstractSigner)) throw Error("expected signer");
|
|
41
|
+
if (v) try {
|
|
42
|
+
N = Number(await T[E].estimateGas(...P));
|
|
43
|
+
} catch (e) {
|
|
44
|
+
console.log("hinkalDeposit: gas estimation error", { err: e });
|
|
45
|
+
}
|
|
46
|
+
let I = N && N >= 0 ? Math.ceil(N * 12 / 10) : void 0;
|
|
47
|
+
I && (P[5].gasLimit = I), await n();
|
|
48
|
+
let L;
|
|
161
49
|
try {
|
|
162
|
-
|
|
50
|
+
L = y ? await T[E].populateTransaction(...P) : await T[E](...P);
|
|
163
51
|
} catch (e) {
|
|
164
|
-
if (
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
reason: e?.reason,
|
|
169
|
-
transactionHash: e?.transactionHash,
|
|
170
|
-
data: e?.data,
|
|
171
|
-
error: e
|
|
172
|
-
}), !e?.transactionHash) throw e;
|
|
173
|
-
console.log(`${l} recoverTransactionFromError start`, { transactionHash: e.transactionHash });
|
|
174
|
-
let t = await i(z.provider, e.transactionHash);
|
|
175
|
-
if (!t) throw console.log(`${l} recoverTransactionFromError failed`), e;
|
|
176
|
-
console.log(`${l} recoverTransactionFromError success`, p(t)), V = t;
|
|
52
|
+
if (!e?.transactionHash) throw e;
|
|
53
|
+
let t = await i(F.provider, e.transactionHash);
|
|
54
|
+
if (!t) throw e;
|
|
55
|
+
L = t;
|
|
177
56
|
}
|
|
178
|
-
return
|
|
57
|
+
return L;
|
|
179
58
|
};
|
|
180
59
|
//#endregion
|
|
181
|
-
export {
|
|
60
|
+
export { l as transactCallDirect };
|