@kapa123456789/sdk 0.0.65 → 0.0.67
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/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +35 -2
- package/common/src/data-structures/Hinkal/hinkalSwap.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalSwap.mjs +49 -9
- package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +59 -12
- package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +58 -13
- package/common/src/error-handling/logger.cjs +1 -1
- package/common/src/error-handling/logger.mjs +7 -15
- package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +161 -48
- package/common/src/functions/snarkjs/generateZkProof.cjs +1 -1
- package/common/src/functions/snarkjs/generateZkProof.mjs +6 -1
- package/common/src/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
- package/common/src/functions/web3/functionCalls/transactCallDirect.mjs +159 -38
- package/common/src/webworker/package.json +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/package.json +1 -1
- package/react-native/HinkalWebViewWorker.cjs +3 -3
- package/react-native/HinkalWebViewWorker.mjs +53 -55
- package/react-native/metro-config.js +3 -2
- package/react-native/shims/constants.js +7 -0
- package/sdk/package.json.cjs +1 -1
- package/sdk/package.json.mjs +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../types/ethereum-network.types.cjs`),n=require(`../../types/admin.types.cjs`);require(`../../types/index.cjs`);const r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/pre-transaction/constructAdminData.cjs`),d=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),f=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),p=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),m=require(`../../API/admin-calls.cjs`);var h=async(e,t,n,r)=>{let i=await e.getEthereumAddressByChain(t),{patchAccessTokenMerkleTree:a,signatureData:o}=await d.getKycAndSignatureData(e,t,n,r,i);return{signatureData:o,externalActionData:{externalActionId:0n,externalAddress:i,externalActionMetadata:`0x00`},contractTransaction:void 0,contractToApprove:void 0,patchAccessTokenMerkleTree:a}},g=async(e,t,n,r)=>{let a=[...await c.addPaddingToUtxos(e,t,n,r)],o=[],s=i.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,a[t],r[t],s);o.push(n)}return{inputUtxosArray:a,outputUtxosArray:o}},_=async(r,i,a,o=!0,c=!1)=>{let l=s.validateAndGetChainId(i)
|
|
1
|
+
const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../types/ethereum-network.types.cjs`),n=require(`../../types/admin.types.cjs`);require(`../../types/index.cjs`);const r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/pre-transaction/constructAdminData.cjs`),d=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),f=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),p=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),m=require(`../../API/admin-calls.cjs`);var h=async(e,t,n,r)=>{let i=await e.getEthereumAddressByChain(t),{patchAccessTokenMerkleTree:a,signatureData:o}=await d.getKycAndSignatureData(e,t,n,r,i);return{signatureData:o,externalActionData:{externalActionId:0n,externalAddress:i,externalActionMetadata:`0x00`},contractTransaction:void 0,contractToApprove:void 0,patchAccessTokenMerkleTree:a}},g=async(e,t,n,r)=>{let a=[...await c.addPaddingToUtxos(e,t,n,r)],o=[],s=i.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,a[t],r[t],s);o.push(n)}return{inputUtxosArray:a,outputUtxosArray:o}},_=async(r,i,a,o=!0,c=!1)=>{console.log(`[hinkalDeposit] start`,{tokenCount:i.length,amountChanges:a,preEstimateGas:o,returnTxData:c});let l=s.validateAndGetChainId(i);console.log(`[hinkalDeposit] chainId`,l);let d=i.map(e=>e.erc20TokenAddress);console.log(`[hinkalDeposit] erc20Addresses`,d),console.log(`[hinkalDeposit] loading transaction parameters and utxos`);let[{externalActionData:_,contractTransaction:v,contractToApprove:y,patchAccessTokenMerkleTree:b,signatureData:x},{inputUtxosArray:S,outputUtxosArray:C}]=await Promise.all([h(r,l,d,a),g(r,l,d,a)]);console.log(`[hinkalDeposit] transaction parameters ready`,{externalActionData:_,hasContractTransaction:!!v,hasContractToApprove:!!y,hasPatchAccessTokenMerkleTree:!!b,hasSignatureData:!!x}),console.log(`[hinkalDeposit] utxos ready`,{inputUtxoGroups:S.length,outputUtxoGroups:C.length,inputUtxoSizes:S.map(e=>e.length),outputUtxoSizes:C.map(e=>e.length)});let w=`swapperM${a.length.toString()}x${S[0].length}x1`;console.log(`[hinkalDeposit] circuitName`,w),console.log(`[hinkalDeposit] constructing zk proof`);let{zkCallData:T,circomData:E,dimData:D}=await f.constructZkProof(r.merkleTreeHinkalByChain[l],r.merkleTreeAccessTokenByChain[l],S,C,r.userKeys,w,_.externalActionId,_.externalAddress,_.externalActionMetadata,r.generateProofRemotely,e.zeroAddress,l,void 0,void 0,void 0,b,void 0,void 0,r.getContractWithFetcher(l,t.ContractType.HinkalHelperContract),x);console.log(`[hinkalDeposit] zk proof ready`,{zkCallDataLength:T?.length,circomDataLength:Array.isArray(E)?E.length:void 0,dimDataLength:Array.isArray(D)?D.length:void 0}),console.log(`[hinkalDeposit] calling transactCallDirect`);let O=await p.transactCallDirect(r,l,a,i,T,E,D,y,v,o,c);console.log(`[hinkalDeposit] transactCallDirect result`,O),console.log(`[hinkalDeposit] constructing admin data`);let k=u.constructAdminData(n.AdminTransactionType.Onboarding,l,d,a,await r.getEthereumAddress());return console.log(`[hinkalDeposit] adminData`,k),console.log(`[hinkalDeposit] emitting public tx data`),m.emitTxPublicData(k),console.log(`[hinkalDeposit] complete`),O},v=async(i,c,l,d,g=!0,_=!1)=>{let v=s.validateAndGetChainId(c),y=c.map(e=>e.erc20TokenAddress),[b,x,S]=d.split(`,`);if(!o.isValidPrivateAddress(d))throw Error(r.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let C=y.map(e=>[new a.Utxo({amount:0n,erc20TokenAddress:e,shieldedPrivateKey:i.userKeys.getShieldedPrivateKey()}),new a.Utxo({amount:0n,erc20TokenAddress:e,shieldedPrivateKey:i.userKeys.getShieldedPrivateKey()})]),w=`swapperM${l.length.toString()}x${C[0].length}x1`,T=y.map((e,t)=>[new a.Utxo({amount:l[t],erc20TokenAddress:e,randomization:BigInt(b),stealthAddress:x,encryptionKey:S})]),{externalActionData:E,contractTransaction:D,contractToApprove:O,patchAccessTokenMerkleTree:k}=await h(i,v,y,l),{zkCallData:A,circomData:j,dimData:M}=await f.constructZkProof(i.merkleTreeHinkalByChain[v],i.merkleTreeAccessTokenByChain[v],C,T,i.userKeys,w,E.externalActionId,E.externalAddress,E.externalActionMetadata,i.generateProofRemotely,e.zeroAddress,v,void 0,void 0,void 0,k,void 0,void 0,i.getContractWithFetcher(v,t.ContractType.HinkalHelperContract)),N=await p.transactCallDirect(i,v,l,c,A,j,M,O,D,g,_);return m.emitTxPublicData(u.constructAdminData(n.AdminTransactionType.PaymentLink,v,y,l,await i.getEthereumAddress())),N};exports.hinkalDeposit=_,exports.hinkalDepositForOther=v;
|
|
@@ -39,8 +39,41 @@ var h = async (e, t, n, r) => {
|
|
|
39
39
|
outputUtxosArray: o
|
|
40
40
|
};
|
|
41
41
|
}, _ = async (r, i, a, o = !0, c = !1) => {
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
console.log("[hinkalDeposit] start", {
|
|
43
|
+
tokenCount: i.length,
|
|
44
|
+
amountChanges: a,
|
|
45
|
+
preEstimateGas: o,
|
|
46
|
+
returnTxData: c
|
|
47
|
+
});
|
|
48
|
+
let l = s(i);
|
|
49
|
+
console.log("[hinkalDeposit] chainId", l);
|
|
50
|
+
let d = i.map((e) => e.erc20TokenAddress);
|
|
51
|
+
console.log("[hinkalDeposit] erc20Addresses", d), console.log("[hinkalDeposit] loading transaction parameters and utxos");
|
|
52
|
+
let [{ externalActionData: _, contractTransaction: v, contractToApprove: y, patchAccessTokenMerkleTree: b, signatureData: x }, { inputUtxosArray: S, outputUtxosArray: C }] = await Promise.all([h(r, l, d, a), g(r, l, d, a)]);
|
|
53
|
+
console.log("[hinkalDeposit] transaction parameters ready", {
|
|
54
|
+
externalActionData: _,
|
|
55
|
+
hasContractTransaction: !!v,
|
|
56
|
+
hasContractToApprove: !!y,
|
|
57
|
+
hasPatchAccessTokenMerkleTree: !!b,
|
|
58
|
+
hasSignatureData: !!x
|
|
59
|
+
}), console.log("[hinkalDeposit] utxos ready", {
|
|
60
|
+
inputUtxoGroups: S.length,
|
|
61
|
+
outputUtxoGroups: C.length,
|
|
62
|
+
inputUtxoSizes: S.map((e) => e.length),
|
|
63
|
+
outputUtxoSizes: C.map((e) => e.length)
|
|
64
|
+
});
|
|
65
|
+
let w = `swapperM${a.length.toString()}x${S[0].length}x1`;
|
|
66
|
+
console.log("[hinkalDeposit] circuitName", w), console.log("[hinkalDeposit] constructing zk proof");
|
|
67
|
+
let { zkCallData: T, circomData: E, dimData: D } = await f(r.merkleTreeHinkalByChain[l], r.merkleTreeAccessTokenByChain[l], S, C, r.userKeys, w, _.externalActionId, _.externalAddress, _.externalActionMetadata, r.generateProofRemotely, e, l, void 0, void 0, void 0, b, void 0, void 0, r.getContractWithFetcher(l, t.HinkalHelperContract), x);
|
|
68
|
+
console.log("[hinkalDeposit] zk proof ready", {
|
|
69
|
+
zkCallDataLength: T?.length,
|
|
70
|
+
circomDataLength: Array.isArray(E) ? E.length : void 0,
|
|
71
|
+
dimDataLength: Array.isArray(D) ? D.length : void 0
|
|
72
|
+
}), console.log("[hinkalDeposit] calling transactCallDirect");
|
|
73
|
+
let O = await p(r, l, a, i, T, E, D, y, v, o, c);
|
|
74
|
+
console.log("[hinkalDeposit] transactCallDirect result", O), console.log("[hinkalDeposit] constructing admin data");
|
|
75
|
+
let k = u(n.Onboarding, l, d, a, await r.getEthereumAddress());
|
|
76
|
+
return console.log("[hinkalDeposit] adminData", k), console.log("[hinkalDeposit] emitting public tx data"), m(k), console.log("[hinkalDeposit] complete"), O;
|
|
44
77
|
}, v = async (i, c, l, d, g = !0, _ = !1) => {
|
|
45
78
|
let v = s(c), y = c.map((e) => e.erc20TokenAddress), [b, x, S] = d.split(",");
|
|
46
79
|
if (!o(d)) throw Error(r.RECIPIENT_FORMAT_INCORRECT);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../constants/protocol.constants.cjs`);const e=require(`../../types/ethereum-network.types.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../functions/utils/time.utils.cjs`),r=require(`../../functions/utils/token-check.utils.cjs`),i=require(`../../functions/web3/events/getShieldedBalance.cjs`),a=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),o=require(`../../functions/pre-transaction/constructAdminData.cjs`),s=require(`../../functions/pre-transaction/getFeeStructure.cjs`),c=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),l=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const u=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),d=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),f=require(`../../functions/pre-transaction/getExternalSwapAddress.cjs`),p=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var m=async(e,t,r,o)=>{let s=[...await i.addPaddingToUtxos(e,t,r,o)],c=[],l=n.getCurrentTimeInSeconds().toString();for(let t=0;t<r.length;t+=1){let{outputUtxos:n}=a.outputUtxoProcessing(e.userKeys,s[t],o[t],l);c.push(n)}return{inputUtxosArray:s,outputUtxosArray:c}},h=async(n,i,a,h,g,_,v,y)=>{let b=r.validateAndGetChainId(i)
|
|
1
|
+
require(`../../constants/protocol.constants.cjs`);const e=require(`../../types/ethereum-network.types.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../../functions/utils/time.utils.cjs`),r=require(`../../functions/utils/token-check.utils.cjs`),i=require(`../../functions/web3/events/getShieldedBalance.cjs`),a=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),o=require(`../../functions/pre-transaction/constructAdminData.cjs`),s=require(`../../functions/pre-transaction/getFeeStructure.cjs`),c=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),l=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const u=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),d=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),f=require(`../../functions/pre-transaction/getExternalSwapAddress.cjs`),p=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var m=async(e,t,r,o)=>{let s=[...await i.addPaddingToUtxos(e,t,r,o)],c=[],l=n.getCurrentTimeInSeconds().toString();for(let t=0;t<r.length;t+=1){let{outputUtxos:n}=a.outputUtxoProcessing(e.userKeys,s[t],o[t],l);c.push(n)}return{inputUtxosArray:s,outputUtxosArray:c}},h=async(n,i,a,h,g,_,v,y)=>{console.log(`[hinkalSwap] start`,{tokenCount:i.length,deltaAmounts:a,externalActionId:h,data:g,feeToken:_,hasFeeStructureOverride:!!v,action:y});let b=r.validateAndGetChainId(i);console.log(`[hinkalSwap] chainId`,b);let x=i.map(e=>e.erc20TokenAddress);console.log(`[hinkalSwap] erc20Addresses`,x);let S=await n.getEthereumAddressByChain(b);console.log(`[hinkalSwap] ethereumAddress`,S),console.log(`[hinkalSwap] resolving fee structure`);let C=v??await s.getFeeStructure(b,_,x,h,void 0,35n);console.log(`[hinkalSwap] feeStructure`,C),p.mergeWithFeeStructure(b,x,a,C),console.log(`[hinkalSwap] deltaAmounts after fee merge`,a);let w=f.getExternalSwapAddress(b,h);console.log(`[hinkalSwap] externalAddress`,w);let T={externalActionId:h,externalAddress:w,externalActionMetadata:g};console.log(`[hinkalSwap] externalActionData`,T),console.log(`[hinkalSwap] loading relay, kyc data, and utxos`);let[E,{patchAccessTokenMerkleTree:D,signatureData:O},{inputUtxosArray:k,outputUtxosArray:A}]=await Promise.all([n.getRandomRelay(b,!0),c.getKycAndSignatureData(n,b,x,a,S),m(n,b,x,a)]);if(console.log(`[hinkalSwap] relay and proof inputs ready`,{relay:E,hasPatchAccessTokenMerkleTree:!!D,hasSignatureData:!!O,inputUtxoGroups:k.length,outputUtxoGroups:A.length,inputUtxoSizes:k.map(e=>e.length),outputUtxoSizes:A.map(e=>e.length)}),!E)throw Error(t.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let j=`swapperM${a.length.toString()}x${k[0].length}x1`;console.log(`[hinkalSwap] circuitName`,j);let M=[!1,!0,!1].slice(0,a.length);console.log(`[hinkalSwap] onChainCreation`,M),console.log(`[hinkalSwap] constructing zk proof and commitment validation data`);let[{zkCallData:N,circomData:P,dimData:F},I]=await Promise.all([u.constructZkProof(n.merkleTreeHinkalByChain[b],n.merkleTreeAccessTokenByChain[b],k,A,n.userKeys,j,T.externalActionId,T.externalAddress,T.externalActionMetadata,n.generateProofRemotely,E,b,M,void 0,void 0,D,void 0,C,n.getContractWithFetcher(b,e.ContractType.HinkalHelperContract),O),l.buildCommitmentValidationData(b,n.userKeys,x,k)]);console.log(`[hinkalSwap] proof data ready`,{zkCallDataLength:N?.length,circomDataLength:Array.isArray(P)?P.length:void 0,dimDataLength:Array.isArray(F)?F.length:void 0,commitmentValidationData:I});let L=o.constructAdminData(y,b,x,a,S,i);console.log(`[hinkalSwap] adminData`,L),console.log(`[hinkalSwap] calling transactCallRelayer`);let R=await d.transactCallRelayer(b,N,F,P,I,void 0,void 0,L);return console.log(`[hinkalSwap] txHash`,R),R};exports.hinkalSwap=h;
|
|
@@ -26,24 +26,64 @@ var m = async (e, t, r, o) => {
|
|
|
26
26
|
outputUtxosArray: c
|
|
27
27
|
};
|
|
28
28
|
}, h = async (n, i, a, h, g, _, v, y) => {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
console.log("[hinkalSwap] start", {
|
|
30
|
+
tokenCount: i.length,
|
|
31
|
+
deltaAmounts: a,
|
|
32
32
|
externalActionId: h,
|
|
33
|
-
|
|
33
|
+
data: g,
|
|
34
|
+
feeToken: _,
|
|
35
|
+
hasFeeStructureOverride: !!v,
|
|
36
|
+
action: y
|
|
37
|
+
});
|
|
38
|
+
let b = r(i);
|
|
39
|
+
console.log("[hinkalSwap] chainId", b);
|
|
40
|
+
let x = i.map((e) => e.erc20TokenAddress);
|
|
41
|
+
console.log("[hinkalSwap] erc20Addresses", x);
|
|
42
|
+
let S = await n.getEthereumAddressByChain(b);
|
|
43
|
+
console.log("[hinkalSwap] ethereumAddress", S), console.log("[hinkalSwap] resolving fee structure");
|
|
44
|
+
let C = v ?? await s(b, _, x, h, void 0, 35n);
|
|
45
|
+
console.log("[hinkalSwap] feeStructure", C), p(b, x, a, C), console.log("[hinkalSwap] deltaAmounts after fee merge", a);
|
|
46
|
+
let w = f(b, h);
|
|
47
|
+
console.log("[hinkalSwap] externalAddress", w);
|
|
48
|
+
let T = {
|
|
49
|
+
externalActionId: h,
|
|
50
|
+
externalAddress: w,
|
|
34
51
|
externalActionMetadata: g
|
|
35
|
-
}
|
|
52
|
+
};
|
|
53
|
+
console.log("[hinkalSwap] externalActionData", T), console.log("[hinkalSwap] loading relay, kyc data, and utxos");
|
|
54
|
+
let [E, { patchAccessTokenMerkleTree: D, signatureData: O }, { inputUtxosArray: k, outputUtxosArray: A }] = await Promise.all([
|
|
36
55
|
n.getRandomRelay(b, !0),
|
|
37
56
|
c(n, b, x, a, S),
|
|
38
57
|
m(n, b, x, a)
|
|
39
58
|
]);
|
|
40
|
-
if (
|
|
41
|
-
|
|
59
|
+
if (console.log("[hinkalSwap] relay and proof inputs ready", {
|
|
60
|
+
relay: E,
|
|
61
|
+
hasPatchAccessTokenMerkleTree: !!D,
|
|
62
|
+
hasSignatureData: !!O,
|
|
63
|
+
inputUtxoGroups: k.length,
|
|
64
|
+
outputUtxoGroups: A.length,
|
|
65
|
+
inputUtxoSizes: k.map((e) => e.length),
|
|
66
|
+
outputUtxoSizes: A.map((e) => e.length)
|
|
67
|
+
}), !E) throw Error(t.RELAYER_NOT_AVAILABLE);
|
|
68
|
+
let j = `swapperM${a.length.toString()}x${k[0].length}x1`;
|
|
69
|
+
console.log("[hinkalSwap] circuitName", j);
|
|
70
|
+
let M = [
|
|
42
71
|
!1,
|
|
43
72
|
!0,
|
|
44
73
|
!1
|
|
45
|
-
].slice(0, a.length)
|
|
46
|
-
|
|
74
|
+
].slice(0, a.length);
|
|
75
|
+
console.log("[hinkalSwap] onChainCreation", M), console.log("[hinkalSwap] constructing zk proof and commitment validation data");
|
|
76
|
+
let [{ zkCallData: N, circomData: P, dimData: F }, I] = await Promise.all([u(n.merkleTreeHinkalByChain[b], n.merkleTreeAccessTokenByChain[b], k, A, n.userKeys, j, T.externalActionId, T.externalAddress, T.externalActionMetadata, n.generateProofRemotely, E, b, M, void 0, void 0, D, void 0, C, n.getContractWithFetcher(b, e.HinkalHelperContract), O), l(b, n.userKeys, x, k)]);
|
|
77
|
+
console.log("[hinkalSwap] proof data ready", {
|
|
78
|
+
zkCallDataLength: N?.length,
|
|
79
|
+
circomDataLength: Array.isArray(P) ? P.length : void 0,
|
|
80
|
+
dimDataLength: Array.isArray(F) ? F.length : void 0,
|
|
81
|
+
commitmentValidationData: I
|
|
82
|
+
});
|
|
83
|
+
let L = o(y, b, x, a, S, i);
|
|
84
|
+
console.log("[hinkalSwap] adminData", L), console.log("[hinkalSwap] calling transactCallRelayer");
|
|
85
|
+
let R = await d(b, N, F, P, I, void 0, void 0, L);
|
|
86
|
+
return console.log("[hinkalSwap] txHash", R), R;
|
|
47
87
|
};
|
|
48
88
|
//#endregion
|
|
49
89
|
export { h as hinkalSwap };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/tron.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/utils/fees.utils.cjs`),f=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),p=require(`../../functions/pre-transaction/constructAdminData.cjs`),m=require(`../../functions/pre-transaction/getFeeStructure.cjs`),h=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),g=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const _=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),y=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var b=async(e,t,n,r,i,o)=>{let s=[...await l.addPaddingToUtxos(e,t,n,r)],c=[],d=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=u.outputUtxoProcessing(e.userKeys,s[t],r[t],d,void 0,!0,i,t===0?o:0n);c.push(n)}return{inputUtxosArray:s,outputUtxosArray:c}},x=async(a,l,u,x,S,C,w)=>{let T=c.validateAndGetChainId(l)
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/tron.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/utils/fees.utils.cjs`),f=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),p=require(`../../functions/pre-transaction/constructAdminData.cjs`),m=require(`../../functions/pre-transaction/getFeeStructure.cjs`),h=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),g=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const _=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),y=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var b=async(e,t,n,r,i,o)=>{let s=[...await l.addPaddingToUtxos(e,t,n,r)],c=[],d=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=u.outputUtxoProcessing(e.userKeys,s[t],r[t],d,void 0,!0,i,t===0?o:0n);c.push(n)}return{inputUtxosArray:s,outputUtxosArray:c}},x=async(a,l,u,x,S,C,w)=>{console.log(`[hinkalTransfer] start`,{tokenCount:l.length,amountChangesBase:u,recipientAddress:x,feeToken:S,hasFeeStructureOverride:!!C,action:w});let T=c.validateAndGetChainId(l);console.log(`[hinkalTransfer] chainId`,T);let E=e.isTronLike(T);if(console.log(`[hinkalTransfer] isTron`,E),!o.isValidPrivateAddress(x))throw console.log(`[hinkalTransfer] invalid recipientAddress`,x),Error(i.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);console.log(`[hinkalTransfer] recipientAddress validated`);let D=s.addressToHexFormat(await a.getEthereumAddressByChain(T));console.log(`[hinkalTransfer] ethereumAddress`,D);let O=l.map(e=>e.erc20TokenAddress);console.log(`[hinkalTransfer] erc20Addresses`,O);let k=await f.modifyVolatileTokenAmountChanges(T,l,u);console.log(`[hinkalTransfer] amountChanges`,k),console.log(`[hinkalTransfer] resolving fee structure`);let A=C??await m.getFeeStructure(T,S,O,r.ExternalActionId.Transact,[],5n);console.log(`[hinkalTransfer] feeStructure initial`,A),A.variableRate||=t.HINKAL_PRIVATE_SEND_VARIABLE_RATE,console.log(`[hinkalTransfer] feeStructure normalized`,A);let j=d.calculateTotalFee(-k[0],A);console.log(`[hinkalTransfer] totalFee`,j);let M=-k[0];console.log(`[hinkalTransfer] recipientAmount`,M);let N={feeToken:A.feeToken,flatFee:j,variableRate:0n};console.log(`[hinkalTransfer] transferFeeStructure`,N),y.mergeWithFeeStructure(T,O,k,N),console.log(`[hinkalTransfer] amountChanges after fee merge`,k);let P=l[0];if(console.log(`[hinkalTransfer] primary token`,P),!P)throw Error(`Transfer Action: No Token Found`);console.log(`[hinkalTransfer] loading relay, kyc data, and utxos`);let[F,{patchAccessTokenMerkleTree:I,signatureData:L},{inputUtxosArray:R,outputUtxosArray:z}]=await Promise.all([a.getRandomRelay(T,!0),h.getKycAndSignatureData(a,T,O,k,D),b(a,T,O,k,x,M)]);if(console.log(`[hinkalTransfer] relay and proof inputs ready`,{relay:F,hasPatchAccessTokenMerkleTree:!!I,hasSignatureData:!!L,inputUtxoGroups:R.length,outputUtxoGroups:z.length,inputUtxoSizes:R.map(e=>e.length),outputUtxoSizes:z.map(e=>e.length)}),!F)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let B={externalActionId:0n,externalAddress:F,externalActionMetadata:`0x00`};console.log(`[hinkalTransfer] externalActionData`,B);let V=`swapperM${k.length}x${R[0].length}x2`;console.log(`[hinkalTransfer] circuitName`,V),console.log(`[hinkalTransfer] constructing zk proof and commitment validation data`);let[{zkCallData:H,circomData:U,dimData:W},G]=await Promise.all([_.constructZkProof(a.merkleTreeHinkalByChain[T],a.merkleTreeAccessTokenByChain[T],R,z,a.userKeys,V,B.externalActionId,B.externalAddress,B.externalActionMetadata,a.generateProofRemotely,F,T,void 0,void 0,void 0,I,void 0,N,a.getContractWithFetcher(T,n.ContractType.HinkalHelperContract),L),g.buildCommitmentValidationData(T,a.userKeys,O,R)]);console.log(`[hinkalTransfer] proof data ready`,{zkCallDataLength:H?.length,circomDataLength:Array.isArray(U)?U.length:void 0,dimDataLength:Array.isArray(W)?W.length:void 0,commitmentValidationData:G});let K=await s.reorderZkCallData(E,H,W,U);console.log(`[hinkalTransfer] tronProofSignature`,K);let q=p.constructAdminData(w,T,O,k,D);console.log(`[hinkalTransfer] adminData`,q),console.log(`[hinkalTransfer] calling transactCallRelayer`);let J=await v.transactCallRelayer(T,H,W,U,G,void 0,void 0,q,K);return console.log(`[hinkalTransfer] txHash`,J),J};exports.hinkalTransfer=x;
|
|
@@ -32,28 +32,75 @@ var x = async (e, t, n, r, i, o) => {
|
|
|
32
32
|
outputUtxosArray: c
|
|
33
33
|
};
|
|
34
34
|
}, S = async (a, u, d, S, C, w, T) => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
console.log("[hinkalTransfer] start", {
|
|
36
|
+
tokenCount: u.length,
|
|
37
|
+
amountChangesBase: d,
|
|
38
|
+
recipientAddress: S,
|
|
39
|
+
feeToken: C,
|
|
40
|
+
hasFeeStructureOverride: !!w,
|
|
41
|
+
action: T
|
|
42
|
+
});
|
|
43
|
+
let E = l(u);
|
|
44
|
+
console.log("[hinkalTransfer] chainId", E);
|
|
45
|
+
let D = e(E);
|
|
46
|
+
if (console.log("[hinkalTransfer] isTron", D), !o(S)) throw console.log("[hinkalTransfer] invalid recipientAddress", S), Error(i.RECIPIENT_FORMAT_INCORRECT);
|
|
47
|
+
console.log("[hinkalTransfer] recipientAddress validated");
|
|
48
|
+
let O = s(await a.getEthereumAddressByChain(E));
|
|
49
|
+
console.log("[hinkalTransfer] ethereumAddress", O);
|
|
50
|
+
let k = u.map((e) => e.erc20TokenAddress);
|
|
51
|
+
console.log("[hinkalTransfer] erc20Addresses", k);
|
|
52
|
+
let A = await p(E, u, d);
|
|
53
|
+
console.log("[hinkalTransfer] amountChanges", A), console.log("[hinkalTransfer] resolving fee structure");
|
|
54
|
+
let j = w ?? await h(E, C, k, r.Transact, [], 5n);
|
|
55
|
+
console.log("[hinkalTransfer] feeStructure initial", j), j.variableRate ||= t, console.log("[hinkalTransfer] feeStructure normalized", j);
|
|
56
|
+
let M = f(-A[0], j);
|
|
57
|
+
console.log("[hinkalTransfer] totalFee", M);
|
|
58
|
+
let N = -A[0];
|
|
59
|
+
console.log("[hinkalTransfer] recipientAmount", N);
|
|
60
|
+
let P = {
|
|
40
61
|
feeToken: j.feeToken,
|
|
41
62
|
flatFee: M,
|
|
42
63
|
variableRate: 0n
|
|
43
64
|
};
|
|
44
|
-
|
|
45
|
-
let
|
|
65
|
+
console.log("[hinkalTransfer] transferFeeStructure", P), b(E, k, A, P), console.log("[hinkalTransfer] amountChanges after fee merge", A);
|
|
66
|
+
let F = u[0];
|
|
67
|
+
if (console.log("[hinkalTransfer] primary token", F), !F) throw Error("Transfer Action: No Token Found");
|
|
68
|
+
console.log("[hinkalTransfer] loading relay, kyc data, and utxos");
|
|
69
|
+
let [I, { patchAccessTokenMerkleTree: L, signatureData: R }, { inputUtxosArray: z, outputUtxosArray: B }] = await Promise.all([
|
|
46
70
|
a.getRandomRelay(E, !0),
|
|
47
71
|
g(a, E, k, A, O),
|
|
48
72
|
x(a, E, k, A, S, N)
|
|
49
73
|
]);
|
|
50
|
-
if (
|
|
51
|
-
|
|
74
|
+
if (console.log("[hinkalTransfer] relay and proof inputs ready", {
|
|
75
|
+
relay: I,
|
|
76
|
+
hasPatchAccessTokenMerkleTree: !!L,
|
|
77
|
+
hasSignatureData: !!R,
|
|
78
|
+
inputUtxoGroups: z.length,
|
|
79
|
+
outputUtxoGroups: B.length,
|
|
80
|
+
inputUtxoSizes: z.map((e) => e.length),
|
|
81
|
+
outputUtxoSizes: B.map((e) => e.length)
|
|
82
|
+
}), !I) throw Error(i.RELAYER_NOT_AVAILABLE);
|
|
83
|
+
let V = {
|
|
52
84
|
externalActionId: 0n,
|
|
53
|
-
externalAddress:
|
|
85
|
+
externalAddress: I,
|
|
54
86
|
externalActionMetadata: "0x00"
|
|
55
|
-
}
|
|
56
|
-
|
|
87
|
+
};
|
|
88
|
+
console.log("[hinkalTransfer] externalActionData", V);
|
|
89
|
+
let H = `swapperM${A.length}x${z[0].length}x2`;
|
|
90
|
+
console.log("[hinkalTransfer] circuitName", H), console.log("[hinkalTransfer] constructing zk proof and commitment validation data");
|
|
91
|
+
let [{ zkCallData: U, circomData: W, dimData: G }, K] = await Promise.all([v(a.merkleTreeHinkalByChain[E], a.merkleTreeAccessTokenByChain[E], z, B, a.userKeys, H, V.externalActionId, V.externalAddress, V.externalActionMetadata, a.generateProofRemotely, I, E, void 0, void 0, void 0, L, void 0, P, a.getContractWithFetcher(E, n.HinkalHelperContract), R), _(E, a.userKeys, k, z)]);
|
|
92
|
+
console.log("[hinkalTransfer] proof data ready", {
|
|
93
|
+
zkCallDataLength: U?.length,
|
|
94
|
+
circomDataLength: Array.isArray(W) ? W.length : void 0,
|
|
95
|
+
dimDataLength: Array.isArray(G) ? G.length : void 0,
|
|
96
|
+
commitmentValidationData: K
|
|
97
|
+
});
|
|
98
|
+
let q = await c(D, U, G, W);
|
|
99
|
+
console.log("[hinkalTransfer] tronProofSignature", q);
|
|
100
|
+
let J = m(T, E, k, A, O);
|
|
101
|
+
console.log("[hinkalTransfer] adminData", J), console.log("[hinkalTransfer] calling transactCallRelayer");
|
|
102
|
+
let Y = await y(E, U, G, W, K, void 0, void 0, J, q);
|
|
103
|
+
return console.log("[hinkalTransfer] txHash", Y), Y;
|
|
57
104
|
};
|
|
58
105
|
//#endregion
|
|
59
106
|
export { S as hinkalTransfer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/tron.utils.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/utils/fees.utils.cjs`),d=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`),m=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),h=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const g=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),_=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),y=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var b=async(e,t,n,r)=>{let i=[...await c.addPaddingToUtxos(e,t,n,r)],o=[],s=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,i[t],r[t],s);o.push(n)}return{inputUtxosArray:i,outputUtxosArray:o}},x=async(a,c,l,x,S,C,w,T)=>{let E=s.validateAndGetChainId(c)
|
|
1
|
+
const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/tron.utils.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/utils/fees.utils.cjs`),d=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`),m=require(`../../functions/pre-transaction/getKycAndSignatureData.cjs`),h=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const g=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),_=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),y=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var b=async(e,t,n,r)=>{let i=[...await c.addPaddingToUtxos(e,t,n,r)],o=[],s=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,i[t],r[t],s);o.push(n)}return{inputUtxosArray:i,outputUtxosArray:o}},x=async(a,c,l,x,S,C,w,T)=>{console.log(`[hinkalWithdraw] start`,{tokenCount:c.length,deltaAmountsBase:l,recipientAddress:x,isRelayerOff:S,feeToken:C,hasFeeStructureOverride:!!w,action:T});let E=s.validateAndGetChainId(c);console.log(`[hinkalWithdraw] chainId`,E);let D=e.isTronLike(E);console.log(`[hinkalWithdraw] isTron`,D);let O=o.addressToHexFormat(await a.getEthereumAddressByChain(E));console.log(`[hinkalWithdraw] ethereumAddress`,O);let k=c.map(e=>e.erc20TokenAddress);console.log(`[hinkalWithdraw] erc20Addresses`,k);let A=await d.modifyVolatileTokenAmountChanges(E,c,l);console.log(`[hinkalWithdraw] deltaAmounts`,A);let j;if(console.log(`[hinkalWithdraw] feeStructure initialized as undefined`),!S){console.log(`[hinkalWithdraw] resolving relayer fee structure`);let e=w??await p.getFeeStructure(E,C,k,r.ExternalActionId.Transact);console.log(`[hinkalWithdraw] rawFeeStructure`,e);let t=u.calculateTotalFee(-A[0],e);console.log(`[hinkalWithdraw] totalFee`,t),j={feeToken:e.feeToken,flatFee:t,variableRate:0n},console.log(`[hinkalWithdraw] feeStructure`,j),y.mergeWithFeeStructure(E,k,A,j),console.log(`[hinkalWithdraw] deltaAmounts after fee merge`,A)}let M=c[0];if(console.log(`[hinkalWithdraw] primary token`,M),!M)throw Error(`Deposit Action: No Token Found`);let N={externalActionId:0n,externalAddress:o.addressToHexFormat(x),externalActionMetadata:`0x00`};console.log(`[hinkalWithdraw] externalActionData`,N),console.log(`[hinkalWithdraw] loading relay, kyc data, and utxos`);let[P,{patchAccessTokenMerkleTree:F,signatureData:I},{inputUtxosArray:L,outputUtxosArray:R}]=await Promise.all([a.getRandomRelay(E,!0),m.getKycAndSignatureData(a,E,k,A,O),b(a,E,k,A)]);if(console.log(`[hinkalWithdraw] relay and proof inputs ready`,{relay:P,hasPatchAccessTokenMerkleTree:!!F,hasSignatureData:!!I,inputUtxoGroups:L.length,outputUtxoGroups:R.length,inputUtxoSizes:L.map(e=>e.length),outputUtxoSizes:R.map(e=>e.length)}),!S&&!P)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let z=`swapperM${A.length.toString()}x${L[0].length}x1`;console.log(`[hinkalWithdraw] circuitName`,z),console.log(`[hinkalWithdraw] constructing zk proof and commitment validation data`);let[{zkCallData:B,circomData:V,dimData:H},U]=await Promise.all([g.constructZkProof(a.merkleTreeHinkalByChain[E],a.merkleTreeAccessTokenByChain[E],L,R,a.userKeys,z,N.externalActionId,N.externalAddress,N.externalActionMetadata,a.generateProofRemotely,S?t.zeroAddress:P,E,void 0,void 0,void 0,F,void 0,j,a.getContractWithFetcher(E,n.ContractType.HinkalHelperContract),I,S?O:void 0),h.buildCommitmentValidationData(E,a.userKeys,k,L)]);console.log(`[hinkalWithdraw] proof data ready`,{zkCallDataLength:B?.length,circomDataLength:Array.isArray(V)?V.length:void 0,dimDataLength:Array.isArray(H)?H.length:void 0,commitmentValidationData:U});let W=await o.reorderZkCallData(D,B,H,V);if(console.log(`[hinkalWithdraw] tronProofSignature`,W),S){if(console.log(`[hinkalWithdraw] relayer disabled, using direct transaction path`),!M)throw Error(`Withdraw Action: No Token Found`);let e=await _.transactCallDirect(a,E,A[0],M,B,V,H);return console.log(`[hinkalWithdraw] direct transaction result`,e),e}let G=f.constructAdminData(T,E,k,A,O);console.log(`[hinkalWithdraw] adminData`,G),console.log(`[hinkalWithdraw] calling transactCallRelayer`);let K=await v.transactCallRelayer(E,B,H,V,U,void 0,void 0,G,W);return console.log(`[hinkalWithdraw] txHash`,K),K};exports.hinkalWithdraw=x;
|
|
@@ -32,33 +32,78 @@ var x = async (e, t, n, r) => {
|
|
|
32
32
|
outputUtxosArray: o
|
|
33
33
|
};
|
|
34
34
|
}, S = async (a, l, u, S, C, w, T, E) => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
console.log("[hinkalWithdraw] start", {
|
|
36
|
+
tokenCount: l.length,
|
|
37
|
+
deltaAmountsBase: u,
|
|
38
|
+
recipientAddress: S,
|
|
39
|
+
isRelayerOff: C,
|
|
40
|
+
feeToken: w,
|
|
41
|
+
hasFeeStructureOverride: !!T,
|
|
42
|
+
action: E
|
|
43
|
+
});
|
|
44
|
+
let D = c(l);
|
|
45
|
+
console.log("[hinkalWithdraw] chainId", D);
|
|
46
|
+
let O = e(D);
|
|
47
|
+
console.log("[hinkalWithdraw] isTron", O);
|
|
48
|
+
let k = o(await a.getEthereumAddressByChain(D));
|
|
49
|
+
console.log("[hinkalWithdraw] ethereumAddress", k);
|
|
50
|
+
let A = l.map((e) => e.erc20TokenAddress);
|
|
51
|
+
console.log("[hinkalWithdraw] erc20Addresses", A);
|
|
52
|
+
let j = await f(D, l, u);
|
|
53
|
+
console.log("[hinkalWithdraw] deltaAmounts", j);
|
|
54
|
+
let M;
|
|
55
|
+
if (console.log("[hinkalWithdraw] feeStructure initialized as undefined"), !C) {
|
|
56
|
+
console.log("[hinkalWithdraw] resolving relayer fee structure");
|
|
57
|
+
let e = T ?? await m(D, w, A, r.Transact);
|
|
58
|
+
console.log("[hinkalWithdraw] rawFeeStructure", e);
|
|
59
|
+
let t = d(-j[0], e);
|
|
60
|
+
console.log("[hinkalWithdraw] totalFee", t), M = {
|
|
39
61
|
feeToken: e.feeToken,
|
|
40
62
|
flatFee: t,
|
|
41
63
|
variableRate: 0n
|
|
42
|
-
}, b(D, A, j, M);
|
|
64
|
+
}, console.log("[hinkalWithdraw] feeStructure", M), b(D, A, j, M), console.log("[hinkalWithdraw] deltaAmounts after fee merge", j);
|
|
43
65
|
}
|
|
44
66
|
let N = l[0];
|
|
45
|
-
if (!N) throw Error("Deposit Action: No Token Found");
|
|
67
|
+
if (console.log("[hinkalWithdraw] primary token", N), !N) throw Error("Deposit Action: No Token Found");
|
|
46
68
|
let P = {
|
|
47
69
|
externalActionId: 0n,
|
|
48
70
|
externalAddress: o(S),
|
|
49
71
|
externalActionMetadata: "0x00"
|
|
50
|
-
}
|
|
72
|
+
};
|
|
73
|
+
console.log("[hinkalWithdraw] externalActionData", P), console.log("[hinkalWithdraw] loading relay, kyc data, and utxos");
|
|
74
|
+
let [F, { patchAccessTokenMerkleTree: I, signatureData: L }, { inputUtxosArray: R, outputUtxosArray: z }] = await Promise.all([
|
|
51
75
|
a.getRandomRelay(D, !0),
|
|
52
76
|
h(a, D, A, j, k),
|
|
53
77
|
x(a, D, A, j)
|
|
54
78
|
]);
|
|
55
|
-
if (
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
79
|
+
if (console.log("[hinkalWithdraw] relay and proof inputs ready", {
|
|
80
|
+
relay: F,
|
|
81
|
+
hasPatchAccessTokenMerkleTree: !!I,
|
|
82
|
+
hasSignatureData: !!L,
|
|
83
|
+
inputUtxoGroups: R.length,
|
|
84
|
+
outputUtxoGroups: z.length,
|
|
85
|
+
inputUtxoSizes: R.map((e) => e.length),
|
|
86
|
+
outputUtxoSizes: z.map((e) => e.length)
|
|
87
|
+
}), !C && !F) throw Error(i.RELAYER_NOT_AVAILABLE);
|
|
88
|
+
let B = `swapperM${j.length.toString()}x${R[0].length}x1`;
|
|
89
|
+
console.log("[hinkalWithdraw] circuitName", B), console.log("[hinkalWithdraw] constructing zk proof and commitment validation data");
|
|
90
|
+
let [{ zkCallData: V, circomData: H, dimData: U }, W] = await Promise.all([_(a.merkleTreeHinkalByChain[D], a.merkleTreeAccessTokenByChain[D], R, z, a.userKeys, B, P.externalActionId, P.externalAddress, P.externalActionMetadata, a.generateProofRemotely, C ? t : F, D, void 0, void 0, void 0, I, void 0, M, a.getContractWithFetcher(D, n.HinkalHelperContract), L, C ? k : void 0), g(D, a.userKeys, A, R)]);
|
|
91
|
+
console.log("[hinkalWithdraw] proof data ready", {
|
|
92
|
+
zkCallDataLength: V?.length,
|
|
93
|
+
circomDataLength: Array.isArray(H) ? H.length : void 0,
|
|
94
|
+
dimDataLength: Array.isArray(U) ? U.length : void 0,
|
|
95
|
+
commitmentValidationData: W
|
|
96
|
+
});
|
|
97
|
+
let G = await s(O, V, U, H);
|
|
98
|
+
if (console.log("[hinkalWithdraw] tronProofSignature", G), C) {
|
|
99
|
+
if (console.log("[hinkalWithdraw] relayer disabled, using direct transaction path"), !N) throw Error("Withdraw Action: No Token Found");
|
|
100
|
+
let e = await v(a, D, j[0], N, V, H, U);
|
|
101
|
+
return console.log("[hinkalWithdraw] direct transaction result", e), e;
|
|
60
102
|
}
|
|
61
|
-
|
|
103
|
+
let K = p(E, D, A, j, k);
|
|
104
|
+
console.log("[hinkalWithdraw] adminData", K), console.log("[hinkalWithdraw] calling transactCallRelayer");
|
|
105
|
+
let q = await y(D, V, U, H, W, void 0, void 0, K, G);
|
|
106
|
+
return console.log("[hinkalWithdraw] txHash", q), q;
|
|
62
107
|
};
|
|
63
108
|
//#endregion
|
|
64
109
|
export { S as hinkalWithdraw };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(
|
|
1
|
+
const e=require(`./logError.cjs`);var t=class{static log(...e){}static logObject(e){}static error(...t){e.logError(t)}};exports.Logger=t;
|
|
@@ -1,19 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { logError as t } from "./logError.mjs";
|
|
1
|
+
import { logError as e } from "./logError.mjs";
|
|
3
2
|
//#region libs/shared/common/src/error-handling/logger.ts
|
|
4
|
-
var
|
|
5
|
-
static log(...
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
e && console.dir(t, {
|
|
10
|
-
depth: null,
|
|
11
|
-
colors: !0
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
static error(...e) {
|
|
15
|
-
t(e);
|
|
3
|
+
var t = class {
|
|
4
|
+
static log(...e) {}
|
|
5
|
+
static logObject(e) {}
|
|
6
|
+
static error(...t) {
|
|
7
|
+
e(t);
|
|
16
8
|
}
|
|
17
9
|
};
|
|
18
10
|
//#endregion
|
|
19
|
-
export {
|
|
11
|
+
export { t as Logger };
|
|
@@ -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`),ee=require(`../../types/hinkal.types.cjs`),te=require(`../web3/etherFunctions.cjs`),ne=require(`../../data-structures/utxo/Utxo.cjs`),re=require(`../../error-handling/logger.cjs`),n=require(`./common.snarkjs.cjs`),ie=require(`./generateCircomData.cjs`),ae=require(`./generateZkProof.cjs`),oe=require(`../utils/fees.utils.cjs`),r=require(`../../data-structures/Hinkal/hinkalCheckTokenRegistry.cjs`),se=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`);var i=`[constructZkProof]`,a=e=>typeof e==`bigint`?e.toString():e,o=e=>({tokenGroupCount:e.length,groupSizes:e.map(e=>e.length),tokenAddresses:e.map(e=>e[0]?.erc20TokenAddress),amounts:e.map(e=>e.map(e=>e.amount.toString()))}),ce=e=>e?{feeToken:e.feeToken,flatFee:e.flatFee.toString(),variableRate:e.variableRate.toString()}:void 0,s=async(s,le,c,l,u,d,f,p,m,h,g=t.zeroAddress,_=e.chainIds.localhost,v=c.map(()=>!1),y=c.map(()=>0n),b=void 0,x=!1,S,C=void 0,w,T=t.defaultSignatureData,E)=>{console.log(`${i} start`,{chainId:_,verifierName:d,externalActionId:a(f),externalAddress:p,externalActionMetadataLength:m?.length,generateProofRemotely:h,relay:g,patchAccessTokenMerkleTree:x,onChainCreation:v,flatFees:y.map(e=>e.toString()),hasHookData:!!b,hasHinkalHelper:!!w,hasOriginalSender:!!E,inputUtxos:o(c),outputUtxos:o(l)});let D=n.calcAmountChanges(c,l),O=c.map(e=>e[0].erc20TokenAddress),k=n.calcEncryptedOutputs(l);console.log(`${i} derived base values`,{amountChanges:D.map(e=>e.toString()),erc20TokenAddresses:O,encryptedOutputGroupCount:k.length,encryptedOutputSizes:k.map(e=>e.length)});let A=u.getShieldedPrivateKey();console.log(`${i} shielded key ready`,{shieldedPrivateKeyLength:A?.toString()?.length});let j=ne.Utxo.findCorrectRandomization(te.randomBigInt(31),A);console.log(`${i} extra randomization ready`,{extraRandomization:j.toString()});let M=n.calcAmountChanges(c,l,!0);console.log(`${i} token registry check start`,{isTronLike:e.isTronLike(_),erc20TokenAddresses:O,signedAmountChanges:M.map(e=>e.toString())});let N=e.isTronLike(_)?await r.hinkalCheckTronTokenRegistry(O,M,_):await r.hinkalCheckTokenRegistry(w??r.createHinkalHelperFromData(_),O,M);console.log(`${i} token registry check complete`,{kycRequired:N});let P=e.isTronLike(_)?x||N:x;console.log(`${i} effective access token patch flag`,{effectivePatchAccessTokenMerkleTree:P});let F=c.map(e=>e.map(e=>e.getConstructableParams()));console.log(`${i} input utxos serialized`,{serializedGroupCount:F.length,serializedGroupSizes:F.map(e=>e.length)}),console.log(`${i} worker data fetch start`);let{inCommitmentSiblings:I,inCommitmentSiblingSides:L,accessTokenSiblings:R,accessTokenSiblingSides:z,rootHashHinkal:B,rootHashAccessToken:V,inNullifiers:H}=await se.getDataFromWorkers(_,s,le,u,F,P,N);console.log(`${i} worker data fetch complete`,{inNullifierGroupCount:H.length,inNullifierSizes:H.map(e=>e.length),inCommitmentSiblingGroupCount:I.length,inCommitmentSiblingSizes:I.map(e=>e.length),accessTokenSiblingGroupCount:R.length,accessTokenSiblingSizes:R.map(e=>e.length),rootHashHinkal:a(B),rootHashAccessToken:a(V),inCommitmentSiblingSidesGroupCount:L.length,accessTokenSiblingSidesGroupCount:z.length});let U=n.buildOutCommitments(l);console.log(`${i} out commitments built`,{outCommitmentGroupCount:U.length,outCommitmentSizes:U.map(e=>e.length)});let W={rootHashHinkal:B,shieldedPrivateKey:A,erc20TokenAddresses:O,inAmounts:c.map(e=>e.map(e=>e.amount.toString())),inTimeStamps:c.map(e=>e.map(e=>e.timeStamp)),inRandomizations:c.map(e=>e.map(e=>e.randomization)),inNullifiers:H,inCommitmentSiblings:I,inCommitmentSiblingSides:L,outAmounts:l.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:BigInt(l[0][0].timeStamp),outPublicKeys:l.map(e=>e.map(e=>e.getStealthAddress())),extraRandomization:j,amountChanges:D,outCommitments:U,rootHashAccessToken:V,accessTokenSiblings:R,accessTokenSiblingSides:z,calldataHash:0n};console.log(`${i} proof input prepared`,{inAmountGroupCount:W.inAmounts.length,outAmountGroupCount:W.outAmounts.length,outTimeStamp:W.outTimeStamp.toString(),extraRandomization:W.extraRandomization.toString(),amountChanges:W.amountChanges.map(e=>e.toString())});let G=c.map(e=>e[0].tokenId??0),K=G.reduce((e,t)=>e+t,0)>0?G.length:0;K>0&&(W.tokenIds=G),console.log(`${i} token ids analyzed`,{tokenIds:G,tokenIdsPositive:K});let q=n.calcPublicSignalCount(d,W.erc20TokenAddresses,W.amountChanges,W.inNullifiers,W.outCommitments,K);console.log(`${i} public signal count ready`,{publicSignalCount:q});let J=ee.defaultHinkalLogicArgs(D.length,u);W.interactionAddress=J.interactionAddress,W.externalApprovalAddresses=J.useApprovalUtxoData?.map(({externalApprovalAddresses:e})=>e),console.log(`${i} hinkal logic args ready`,{interactionAddress:J.interactionAddress,externalApprovalAddressesCount:W.externalApprovalAddresses?.length}),C||=(console.log(`${i} generating fee structure`),oe.generateFeeStructure(y,c.map(e=>e[0].erc20TokenAddress))),console.log(`${i} fee structure ready`,ce(C));let Y=M;console.log(`${i} signed amount changes ready`,{amountChangesBased:Y.map(e=>e.toString())}),S||=(console.log(`${i} generating slippage values`),n.getSlippageValues(Y)),console.log(`${i} slippage values ready`,{slippageValues:S.map(e=>e.toString())}),re.Logger.log({publicSignalCount:q}),console.log(`${i} calldata hash start`),W.calldataHash=n.createCallDataHash(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`);let{zkCallData:X}=await ae.generateZkProof(_,d,W,h);console.log(`${i} generateZkProof complete`,{aLength:X?.[0]?.length,bOuterLength:X?.[1]?.length,bInnerLengths:X?.[1]?.map(e=>e.length),cLength:X?.[2]?.length,inputLength:X?.[3]?.length});let Z=n.calcStealthAddressStructure(j,A);console.log(`${i} stealth address structure ready`,{extraRandomization:a(Z.extraRandomization),stealthAddress:a(Z.stealthAddress)});let Q=ie.generateCircomData(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);console.log(`${i} circom data ready`,{tokenCount:Q.erc20TokenAddresses.length,amountChanges:Q.amountChanges.map(e=>e.toString()),inputNullifierGroupCount:Q.inputNullifiers.length,outCommitmentGroupCount:Q.outCommitments.length,encryptedOutputGroupCount:Q.encryptedOutputs.length,rootHashHinkal:a(Q.rootHashHinkal),rootHashAccessToken:a(Q.rootHashAccessToken),relay:Q.relay,externalAddress:Q.externalAddress,externalActionId:a(Q.externalActionId),calldataHash:a(Q.calldataHash)});let $={tokenNumber:c.length,nullifierAmount:c[0].length,outputAmount:l[0].length};return console.log(`${i} dim data ready`,$),console.log(`${i} complete`),{zkCallData:X,circomData:Q,dimData:$,encryptedOutputs:k}};exports.constructZkProof=s;
|