From 3e768b9de1d72f79d2f30ccbea8c945e1a305937 Mon Sep 17 00:00:00 2001 From: Charles Bergeron Date: Thu, 10 Aug 2023 12:34:25 -0700 Subject: [PATCH] refactor sendTransaction --- packages/library/src/drawAuction.ts | 65 ++++++++++------------------- 1 file changed, 23 insertions(+), 42 deletions(-) diff --git a/packages/library/src/drawAuction.ts b/packages/library/src/drawAuction.ts index 8aaab40..a21798b 100644 --- a/packages/library/src/drawAuction.ts +++ b/packages/library/src/drawAuction.ts @@ -1,4 +1,4 @@ -import { ethers, BigNumber, Contract } from 'ethers'; +import { ethers, BigNumber, Contract, PopulatedTransaction } from 'ethers'; import { Provider } from '@ethersproject/providers'; import { ContractsBlob, getContract } from '@generationsoftware/pt-v5-utils-js'; import { DefenderRelaySigner } from 'defender-relay-client/lib/ethers'; @@ -451,65 +451,46 @@ const sendTransaction = async ( auctionContracts: AuctionContracts, params: DrawAuctionConfigParams, ) => { - if (selectedContract === RNG_AUCTION_KEY) { - console.log(chalk.yellow(`Submitting transaction:`)); - console.log(chalk.green(`Execute RngAuction#startRngRequest`)); - printSpacer(); + const isPrivate = canUseIsPrivate(params.chainId, params.useFlashbots); + console.log(chalk.green.bold(`Flashbots (Private transaction) support:`, isPrivate)); + printSpacer(); - const isPrivate = canUseIsPrivate(params.chainId, params.useFlashbots); + console.log(chalk.yellow(`Submitting transaction:`)); - console.log(chalk.green.bold(`Flashbots (Private transaction) support:`, isPrivate)); + let populatedTx: PopulatedTransaction; + if (selectedContract === RNG_AUCTION_KEY) { + console.log(chalk.green(`Execute RngAuction#startRngRequest`)); printSpacer(); const startRngRequestTxParams = buildStartRngRequestParams(params.rewardRecipient); - const populatedTx = - await auctionContracts.rngAuctionContract.populateTransaction.startRngRequest( - ...Object.values(startRngRequestTxParams), - ); - - console.log(chalk.greenBright.bold(`Sending transaction ...`)); - const tx = await relayer.sendTransaction({ - isPrivate, - data: populatedTx.data, - to: populatedTx.to, - gasLimit: 8000000, - }); - - console.log(chalk.greenBright.bold('Transaction sent! ✔')); - console.log(chalk.blueBright.bold('Transaction hash:', tx.hash)); - - return tx; + populatedTx = await auctionContracts.rngAuctionContract.populateTransaction.startRngRequest( + ...Object.values(startRngRequestTxParams), + ); } else { - console.log(chalk.yellow(`Submitting transaction:`)); console.log(chalk.green(`Execute RngAuctionRelayerDirect#relay`)); printSpacer(); - const isPrivate = canUseIsPrivate(params.chainId, params.useFlashbots); - - console.log(chalk.green.bold(`Flashbots (Private transaction) support:`, isPrivate)); - printSpacer(); - const relayTxParams = buildRelayParams( auctionContracts.rngRelayAuctionContract.address, params.rewardRecipient, ); - const populatedTx = await auctionContracts.rngAuctionRelayerDirect.populateTransaction.relay( + populatedTx = await auctionContracts.rngAuctionRelayerDirect.populateTransaction.relay( ...Object.values(relayTxParams), ); + } - console.log(chalk.greenBright.bold(`Sending transaction ...`)); - const tx = await relayer.sendTransaction({ - isPrivate, - data: populatedTx.data, - to: populatedTx.to, - gasLimit: 8000000, - }); + console.log(chalk.greenBright.bold(`Sending transaction ...`)); + const tx = await relayer.sendTransaction({ + isPrivate, + data: populatedTx.data, + to: populatedTx.to, + gasLimit: 8000000, + }); - console.log(chalk.greenBright.bold('Transaction sent! ✔')); - console.log(chalk.blueBright.bold('Transaction hash:', tx.hash)); + console.log(chalk.greenBright.bold('Transaction sent! ✔')); + console.log(chalk.blueBright.bold('Transaction hash:', tx.hash)); - return tx; - } + return tx; }; const optionallyIncreaseRngFeeAllowance = async (