From 91e0307cdd9a518cbaf6b32d85e3a3c264573b59 Mon Sep 17 00:00:00 2001 From: aniket866 Date: Fri, 30 Jan 2026 23:29:43 +0530 Subject: [PATCH 1/3] refactor djed-sdk\src\djed\tradeUtils.js --- djed-sdk/src/djed/tradeUtils.js | 37 +++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/djed-sdk/src/djed/tradeUtils.js b/djed-sdk/src/djed/tradeUtils.js index 456f1f1..c34168a 100644 --- a/djed-sdk/src/djed/tradeUtils.js +++ b/djed-sdk/src/djed/tradeUtils.js @@ -13,10 +13,12 @@ import { } from "../helpers"; export const scalingFactor = decimalUnscaling("1", SCALING_DECIMALS); + export const FEE_UI_UNSCALED = decimalUnscaling( - (FEE_UI / 100).toString(), + FEE_UI.toString(), SCALING_DECIMALS ); + export const tradeDataPriceCore = (djed, method, decimals, amountScaled) => { const amountUnscaled = decimalUnscaling(amountScaled, decimals); return scaledUnscaledPromise(web3Promise(djed, method, 0), BC_DECIMALS).then( @@ -118,23 +120,36 @@ export const isTxLimitReached = (amountUSD, totalSCSupply, thresholdSCSupply) => amountUSD > TRANSACTION_USD_LIMIT && BigInt(totalSCSupply) >= BigInt(thresholdSCSupply); -export const promiseTx = (isWalletConnected, tx, signer) => { +export const promiseTx = (isWalletConnected, tx, web3) => { if (!isWalletConnected) { return Promise.reject(new Error("Metamask not connected!")); } - if (!signer) { - return Promise.reject(new Error("Couldn't get Signer")); + if (!web3?.eth) { + return Promise.reject(new Error("Couldn't get Web3 provider")); } - return signer.sendTransaction(tx); + return web3.eth.sendTransaction(tx); }; export const verifyTx = (web3, hash) => { - return new Promise((res) => { - setTimeout(() => { - web3.eth - .getTransactionReceipt(hash) - .then((receipt) => res(receipt.status)); - }, CONFIRMATION_WAIT_PERIOD); + const start = Date.now(); + const timeout = 60_000; + + return new Promise((resolve, reject) => { + const poll = async () => { + try { + const receipt = await web3.eth.getTransactionReceipt(hash); + if (receipt) { + return resolve(receipt.status); + } + if (Date.now() - start >= timeout) { + return reject(new Error("Transaction confirmation timeout")); + } + setTimeout(poll, CONFIRMATION_WAIT_PERIOD); + } catch (e) { + reject(e); + } + }; + poll(); }); }; From 1cf4709a88640b713264eb81f1ac077eb63a4797 Mon Sep 17 00:00:00 2001 From: Aniket Date: Fri, 30 Jan 2026 23:49:47 +0530 Subject: [PATCH 2/3] Code rabbit follow-up --- djed-sdk/src/djed/tradeUtils.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/djed-sdk/src/djed/tradeUtils.js b/djed-sdk/src/djed/tradeUtils.js index c34168a..d0fbf5a 100644 --- a/djed-sdk/src/djed/tradeUtils.js +++ b/djed-sdk/src/djed/tradeUtils.js @@ -120,14 +120,14 @@ export const isTxLimitReached = (amountUSD, totalSCSupply, thresholdSCSupply) => amountUSD > TRANSACTION_USD_LIMIT && BigInt(totalSCSupply) >= BigInt(thresholdSCSupply); -export const promiseTx = (isWalletConnected, tx, web3) => { +export const promiseTx = (isWalletConnected, tx, Singer) => { if (!isWalletConnected) { return Promise.reject(new Error("Metamask not connected!")); } - if (!web3?.eth) { - return Promise.reject(new Error("Couldn't get Web3 provider")); + if (!signer) { + return Promise.reject(new Error("Couldn't get Signer")); } - return web3.eth.sendTransaction(tx); + return signer.sendTransaction(tx); }; export const verifyTx = (web3, hash) => { From 64782f00b0e4fea99c959e8e8c870bb1f84bfdb2 Mon Sep 17 00:00:00 2001 From: Aniket Date: Fri, 30 Jan 2026 23:58:04 +0530 Subject: [PATCH 3/3] Code rabbit follow-up --- djed-sdk/src/djed/tradeUtils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/djed-sdk/src/djed/tradeUtils.js b/djed-sdk/src/djed/tradeUtils.js index d0fbf5a..5b0e507 100644 --- a/djed-sdk/src/djed/tradeUtils.js +++ b/djed-sdk/src/djed/tradeUtils.js @@ -120,7 +120,7 @@ export const isTxLimitReached = (amountUSD, totalSCSupply, thresholdSCSupply) => amountUSD > TRANSACTION_USD_LIMIT && BigInt(totalSCSupply) >= BigInt(thresholdSCSupply); -export const promiseTx = (isWalletConnected, tx, Singer) => { +export const promiseTx = (isWalletConnected, tx, singer) => { if (!isWalletConnected) { return Promise.reject(new Error("Metamask not connected!")); }