@kapa123456789/sdk 0.0.56 → 0.0.57
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/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalWithdraw.mjs +1 -1
- package/functions/web3/functionCalls/transactCallDirectTron.cjs +1 -1
- package/functions/web3/functionCalls/transactCallDirectTron.mjs +25 -27
- package/package.json +1 -1
- package/webworker/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../types/ethereum-network.types.cjs`),t=require(`../../types/external-action.types.cjs`),n=require(`../../constants/chains.constants.cjs`),r=require(`../../constants/protocol.constants.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/transactCallDirectTron.cjs`),y=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),b=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var x=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}},S=async(a,c,l,S,C,w,T,E)=>{let D=s.validateAndGetChainId(c),O=n.isTronLike(D),k=o.addressToHexFormat(await a.getEthereumAddressByChain(D)),A=c.map(e=>e.erc20TokenAddress),j=await d.modifyVolatileTokenAmountChanges(D,c,l),M;if(!C){let e=T??await p.getFeeStructure(D,w,A,t.ExternalActionId.Transact),n=u.calculateTotalFee(-j[0],e);M={feeToken:e.feeToken,flatFee:n,variableRate:0n},b.mergeWithFeeStructure(D,A,j,M)}let N=c[0];if(!N)throw Error(`Deposit Action: No Token Found`);let P={externalActionId:0n,externalAddress:o.addressToHexFormat(S),externalActionMetadata:`0x00`},[F,{patchAccessTokenMerkleTree:I,signatureData:L},{inputUtxosArray:R,outputUtxosArray:z}]=await Promise.all([a.getRandomRelay(D,!0),m.getKycAndSignatureData(a,D,A,j,k),x(a,D,A,j)]);if(!C&&!F)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let B=`swapperM${j.length.toString()}x${R[0].length}x1`,[{zkCallData:V,circomData:H,dimData:U},W]=await Promise.all([g.constructZkProof(a.merkleTreeHinkalByChain[D],a.merkleTreeAccessTokenByChain[D],R,z,a.userKeys,B,P.externalActionId,P.externalAddress,P.externalActionMetadata,a.generateProofRemotely,C?r.zeroAddress:F,D,void 0,void 0,void 0,I,void 0,M,a.getContractWithFetcher(D,e.ContractType.HinkalHelperContract),L,C?k:void 0),h.buildCommitmentValidationData(D,a.userKeys,A,R)]),G=O&&C?void 0:await o.reorderZkCallData(O,V,U,H);if(console.log(`tronProofSignature`,G||`undefined`),C){if(console.log(`isTron`,O||`undefined`),!N)throw Error(`Withdraw Action: No Token Found`);if(O){console.log(`isTron`,O||`undefined`);let e=await v.transactCallDirectTron(a,D,j[0],N,V,H,U);console.log(`result`,e||`undefined`)}let e=await _.transactCallDirect(a,D,j[0],N,V,H,U);return console.log(`tx`,e||`undefined`),console.log(`isTron`,O||`undefined`),e}return await y.transactCallRelayer(D,V,U,H,W,void 0,void 0,f.constructAdminData(E,D,A,j,k),G)};exports.hinkalWithdraw=S;
|
|
1
|
+
const e=require(`../../types/ethereum-network.types.cjs`),t=require(`../../types/external-action.types.cjs`),n=require(`../../constants/chains.constants.cjs`),r=require(`../../constants/protocol.constants.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/transactCallDirectTron.cjs`),y=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),b=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var x=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}},S=async(a,c,l,S,C,w,T,E)=>{let D=s.validateAndGetChainId(c),O=n.isTronLike(D),k=o.addressToHexFormat(await a.getEthereumAddressByChain(D)),A=c.map(e=>e.erc20TokenAddress),j=await d.modifyVolatileTokenAmountChanges(D,c,l),M;if(!C){let e=T??await p.getFeeStructure(D,w,A,t.ExternalActionId.Transact),n=u.calculateTotalFee(-j[0],e);M={feeToken:e.feeToken,flatFee:n,variableRate:0n},b.mergeWithFeeStructure(D,A,j,M)}let N=c[0];if(!N)throw Error(`Deposit Action: No Token Found`);let P={externalActionId:0n,externalAddress:o.addressToHexFormat(S),externalActionMetadata:`0x00`},[F,{patchAccessTokenMerkleTree:I,signatureData:L},{inputUtxosArray:R,outputUtxosArray:z}]=await Promise.all([a.getRandomRelay(D,!0),m.getKycAndSignatureData(a,D,A,j,k),x(a,D,A,j)]);if(!C&&!F)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let B=`swapperM${j.length.toString()}x${R[0].length}x1`,[{zkCallData:V,circomData:H,dimData:U},W]=await Promise.all([g.constructZkProof(a.merkleTreeHinkalByChain[D],a.merkleTreeAccessTokenByChain[D],R,z,a.userKeys,B,P.externalActionId,P.externalAddress,P.externalActionMetadata,a.generateProofRemotely,C?r.zeroAddress:F,D,void 0,void 0,void 0,I,void 0,M,a.getContractWithFetcher(D,e.ContractType.HinkalHelperContract),L,C?k:void 0),h.buildCommitmentValidationData(D,a.userKeys,A,R)]),G=O&&C?void 0:await o.reorderZkCallData(O,V,U,H);if(console.log(`tronProofSignature`,G||`undefined`),C){if(console.log(`isTron`,O||`undefined`),!N)throw Error(`Withdraw Action: No Token Found`);if(O){console.log(`isTron`,O||`undefined`);let e=await v.transactCallDirectTron(a,D,j[0],N,V,H,U);return console.log(`result`,e||`undefined`),e}let e=await _.transactCallDirect(a,D,j[0],N,V,H,U);return console.log(`tx`,e||`undefined`),console.log(`isTron`,O||`undefined`),e}return await y.transactCallRelayer(D,V,U,H,W,void 0,void 0,f.constructAdminData(E,D,A,j,k),G)};exports.hinkalWithdraw=S;
|
|
@@ -60,7 +60,7 @@ var S = async (e, t, n, r) => {
|
|
|
60
60
|
if (k) {
|
|
61
61
|
console.log("isTron", k || "undefined");
|
|
62
62
|
let e = await y(a, O, M[0], P, H, U, W);
|
|
63
|
-
console.log("result", e || "undefined");
|
|
63
|
+
return console.log("result", e || "undefined"), e;
|
|
64
64
|
}
|
|
65
65
|
let e = await v(a, O, M[0], P, H, U, W);
|
|
66
66
|
return console.log("tx", e || "undefined"), console.log("isTron", k || "undefined"), e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`../../../constants/chains.constants.cjs`),t=require(`../../../constants/protocol.constants.cjs`),n=require(`../../utils/caseInsensitive.utils.cjs`),r=require(`../../../externalABIs/index.cjs`),i=require(`../../../error-handling/error-codes.constants.cjs`),a=require(`../../utils/tron.utils.cjs`),o=require(`../../../error-handling/logger.cjs`),s=require(`../../utils/tronSimulation.utils.cjs`),c=require(`./waitForErc20Approvals.cjs`);var l=async(l,u,d,f,p,m,h,g,_,v=!0)=>{let y=l.getTronWeb(),b=a.evmHexToTronBase58Address(f.erc20TokenAddress),x=await l.getEthereumAddressByChain(u),{hinkalAddress:S,hinkalABI:C}=e.networkRegistry[u].contractData,w=y.contract(C,a.evmHexToTronBase58Address(S)),T=g??w,E=_??w;if(!T.address)throw Error(`contractForApproval address not set`);if(!E.address)throw Error(`contractForTransaction address not set`);let D=n.caseInsensitiveEqual(f.erc20TokenAddress,t.zeroAddress)
|
|
1
|
+
const e=require(`../../../constants/chains.constants.cjs`),t=require(`../../../constants/protocol.constants.cjs`),n=require(`../../utils/caseInsensitive.utils.cjs`),r=require(`../../../externalABIs/index.cjs`),i=require(`../../../error-handling/error-codes.constants.cjs`),a=require(`../../utils/tron.utils.cjs`),o=require(`../../../error-handling/logger.cjs`),s=require(`../../utils/tronSimulation.utils.cjs`),c=require(`./waitForErc20Approvals.cjs`);var l=async(l,u,d,f,p,m,h,g,_,v=!0)=>{let y=l.getTronWeb(),b=a.evmHexToTronBase58Address(f.erc20TokenAddress),x=await l.getEthereumAddressByChain(u),{hinkalAddress:S,hinkalABI:C}=e.networkRegistry[u].contractData,w=y.contract(C,a.evmHexToTronBase58Address(S)),T=g??w,E=_??w;if(!T.address)throw Error(`contractForApproval address not set`);if(!E.address)throw Error(`contractForTransaction address not set`);let D=n.caseInsensitiveEqual(f.erc20TokenAddress,t.zeroAddress);if(!D&&d>0n){let e=T.address;if(!e)throw Error(`token approval spender not set`);let n=d,i=await y.contract(r.ERC20ABI,b).allowance(x,e).call({from:x});if(BigInt(String(i))<n){let{transaction:r}=await y.transactionBuilder.triggerSmartContract(b,`approve(address,uint256)`,{feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN},[{type:`address`,value:e},{type:`uint256`,value:n.toString()}],x),i=await y.trx.sign(r),a=await y.trx.sendRawTransaction(i);if(!a.result){let e=a.code??`UNKNOWN`,t=a.message?Buffer.from(a.message,`hex`).toString():`no message`;throw Error(`Tron token approval failed: ${e} - ${t}`)}await c.waitForTronErc20Approvals(y,x,e,[{tokenAddress:b,requiredAmount:n}])}}let{a:O,b:k,c:A}=a.parseZkCalldata(p),j=await a.reorderZkCallData(!0,p,h,m,!1);if(!j)throw Error(`Tron proof signature not found`);let M=[j.v,j.r,j.s],N=[h.tokenNumber,h.nullifierAmount,h.outputAmount],P=a.circomDataToArray(m);if(v&&(await s.simulateTronTransaction(u,E.address,`transact`,E.abi,[M,O,k,A,N,P],x,D?d:0n),D)){let e=BigInt(await y.trx.getBalance(x)),n=BigInt(t.TRON_DEFAULT_FEE_LIMIT_SUN);try{let e=a.createTronCallData(E.abi,`transact`,[M,O,k,A,N,P]);n=await a.estimateTronFeeSunWithPadding(y,u,E.address,x,e,d)}catch(e){o.Logger.error(`Error estimating Tron transact fee`,e)}if(console.log(`estimatedFeeSun`,n||`undefined`),e<d+n)throw Error(i.insufficientResourcesErrorCodes.INSUFFICIENT_TRON_BALANCE_FOR_FEE)}let F=await E.transact(M,O,k,A,N,P).send({feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN,callValue:D?Number(d):0}),I=typeof F==`string`?F:F?.txid??F?.transaction?.txID??F?.transaction?.txid;if(!I)throw Error(`Tron transact failed (missing txid)`);return I};exports.transactCallDirectTron=l;
|
|
@@ -12,7 +12,7 @@ var h = async (h, g, _, v, y, b, x, S, C, w = !0) => {
|
|
|
12
12
|
let T = h.getTronWeb(), E = l(v.erc20TokenAddress), D = await h.getEthereumAddressByChain(g), { hinkalAddress: O, hinkalABI: k } = e[g].contractData, A = T.contract(k, l(O)), j = S ?? A, M = C ?? A;
|
|
13
13
|
if (!j.address) throw Error("contractForApproval address not set");
|
|
14
14
|
if (!M.address) throw Error("contractForTransaction address not set");
|
|
15
|
-
let N = r(v.erc20TokenAddress, n)
|
|
15
|
+
let N = r(v.erc20TokenAddress, n);
|
|
16
16
|
if (!N && _ > 0n) {
|
|
17
17
|
let e = j.address;
|
|
18
18
|
if (!e) throw Error("token approval spender not set");
|
|
@@ -35,49 +35,47 @@ var h = async (h, g, _, v, y, b, x, S, C, w = !0) => {
|
|
|
35
35
|
}]);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
let { a:
|
|
39
|
-
if (!
|
|
40
|
-
let
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
],
|
|
38
|
+
let { a: P, b: F, c: I } = u(y), L = await d(!0, y, x, b, !1);
|
|
39
|
+
if (!L) throw Error("Tron proof signature not found");
|
|
40
|
+
let R = [
|
|
41
|
+
L.v,
|
|
42
|
+
L.r,
|
|
43
|
+
L.s
|
|
44
|
+
], z = [
|
|
45
45
|
x.tokenNumber,
|
|
46
46
|
x.nullifierAmount,
|
|
47
47
|
x.outputAmount
|
|
48
|
-
],
|
|
48
|
+
], B = o(b);
|
|
49
49
|
if (w && (await p(g, M.address, "transact", M.abi, [
|
|
50
|
-
|
|
50
|
+
R,
|
|
51
|
+
P,
|
|
51
52
|
F,
|
|
52
53
|
I,
|
|
53
|
-
|
|
54
|
-
B
|
|
55
|
-
|
|
56
|
-
], D, P), N && P > 0n)) {
|
|
54
|
+
z,
|
|
55
|
+
B
|
|
56
|
+
], D, N ? _ : 0n), N)) {
|
|
57
57
|
let e = BigInt(await T.trx.getBalance(D)), n = BigInt(t);
|
|
58
58
|
try {
|
|
59
59
|
let e = s(M.abi, "transact", [
|
|
60
|
-
|
|
60
|
+
R,
|
|
61
|
+
P,
|
|
61
62
|
F,
|
|
62
63
|
I,
|
|
63
|
-
|
|
64
|
-
B
|
|
65
|
-
V
|
|
64
|
+
z,
|
|
65
|
+
B
|
|
66
66
|
]);
|
|
67
|
-
n = await c(T, g, M.address, D, e,
|
|
67
|
+
n = await c(T, g, M.address, D, e, _);
|
|
68
68
|
} catch (e) {
|
|
69
69
|
f.error("Error estimating Tron transact fee", e);
|
|
70
70
|
}
|
|
71
|
-
console.log("estimatedFeeSun", n || "undefined");
|
|
72
|
-
let r = P + n;
|
|
73
|
-
if (console.log("totalRequiredSun", r || "undefined"), e < r) throw Error(a.INSUFFICIENT_TRON_BALANCE_FOR_FEE);
|
|
71
|
+
if (console.log("estimatedFeeSun", n || "undefined"), e < _ + n) throw Error(a.INSUFFICIENT_TRON_BALANCE_FOR_FEE);
|
|
74
72
|
}
|
|
75
|
-
let
|
|
73
|
+
let V = await M.transact(R, P, F, I, z, B).send({
|
|
76
74
|
feeLimit: t,
|
|
77
|
-
callValue: Number(
|
|
78
|
-
}),
|
|
79
|
-
if (!
|
|
80
|
-
return
|
|
75
|
+
callValue: N ? Number(_) : 0
|
|
76
|
+
}), H = typeof V == "string" ? V : V?.txid ?? V?.transaction?.txID ?? V?.transaction?.txid;
|
|
77
|
+
if (!H) throw Error("Tron transact failed (missing txid)");
|
|
78
|
+
return H;
|
|
81
79
|
};
|
|
82
80
|
//#endregion
|
|
83
81
|
export { h as transactCallDirectTron };
|
package/package.json
CHANGED