Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

getTransaction.gasPrice return type fix #6492

Closed
wants to merge 3 commits into from

Conversation

neerosity
Copy link

@neerosity neerosity commented Oct 10, 2023

Description

When we import web3 with typescript, it doesn't provide gasPrice as return param for a getTransaction function.

to reproduce issue

import { Web3 } from 'web3';

getWeb3Instance(blockchainId: string, wssURL: string): Web3 {
    if (this.blockchainWeb3Instances[blockchainId]) {
      return this.blockchainWeb3Instances[blockchainId];
    }

    const provider = new Web3.providers.WebsocketProvider(wssURL);
    const web3 = new Web3(provider);

    this.blockchainWeb3Instances[blockchainId] = web3;
    return web3;
  }
  
  async getTransactionInformation(
    transactionHash: string,
    wssURL: string,
    blockchainId: string,
  ) {
    const web3 = await this.getWeb3Instance(blockchainId, wssURL);

    const receipt = await web3.eth.getTransactionReceipt(transactionHash);

    if (!receipt)
      throw new Error();

    const transactionDetails = await web3.eth.getTransaction(
      receipt?.transactionHash,
    );
    // here it will throw error that gasPrice is not a property of transaction
    const gasPrice = BigInt(transactionDetails.gasPrice);
    // alternative way to solve this
    const gasPrice = BigInt((transactionDetails as any).gasPrice);

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Checklist:

  • I have selected the correct base branch.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have made corresponding changes to the documentation.
  • My changes generate no new warnings.
  • Any dependent changes have been merged and published in downstream modules.
  • I ran npm run lint with success and extended the tests and types if necessary.
  • I ran npm run test:unit with success.
  • I ran npm run test:coverage and my test cases cover all the lines and branches of the added code.
  • I ran npm run build and tested dist/web3.min.js in a browser.
  • I have tested my code on the live network.
  • I have checked the Deploy Preview and it looks correct.
  • I have updated the CHANGELOG.md file in the root folder.
  • I have linked Issue(s) with this PR in "Linked Issues" menu.

@avkos
Copy link
Contributor

avkos commented Oct 11, 2023

Thank you for your contribution. I've reproduced the issue locally but the fix doesn't solve it.

@@ -83,6 +83,7 @@ export type TransactionOutput = {
readonly from?: HexString;
readonly input: string;
readonly gas?: Numbers;
readonly gasPrice?: Numbers;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change will not fix issue, this type is used in formatter functions and those formatters are only for backward compatibility.

@codecov
Copy link

codecov bot commented Oct 16, 2023

Codecov Report

Merging #6492 (4a85068) into 4.x (e760667) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@           Coverage Diff           @@
##              4.x    #6492   +/-   ##
=======================================
  Coverage   89.65%   89.65%           
=======================================
  Files         213      213           
  Lines        8200     8200           
  Branches     2220     2220           
=======================================
  Hits         7352     7352           
  Misses        848      848           
Flag Coverage Δ
UnitTests 89.65% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
web3 ∅ <ø> (∅)
web3-core ∅ <ø> (∅)
web3-errors ∅ <ø> (∅)
web3-eth ∅ <ø> (∅)
web3-eth-abi ∅ <ø> (∅)
web3-eth-accounts ∅ <ø> (∅)
web3-eth-contract ∅ <ø> (∅)
web3-eth-ens ∅ <ø> (∅)
web3-eth-iban ∅ <ø> (∅)
web3-eth-personal ∅ <ø> (∅)
web3-net ∅ <ø> (∅)
web3-providers-http ∅ <ø> (∅)
web3-providers-ipc ∅ <ø> (∅)
web3-providers-ws ∅ <ø> (∅)
web3-rpc-methods ∅ <ø> (∅)
web3-utils ∅ <ø> (∅)
web3-validator ∅ <ø> (∅)

@avkos avkos closed this Oct 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants