simolus3 / web3dart

Ethereum library, written in Dart.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Getting transactions with eth_getBlockByNumber

alexeyinkin opened this issue · comments

eth_getBlockByNumber returns either transaction hashes or full transactions depending on the second boolean argument. For this we have Web3Client.getBlockInformation that also has an optional boolean argument which is sent but the transactions from the response are never parsed.

I need to parse them and so to add this functionality. We need to decide on Dart data structure because it is a bad practice to use List<dynamic> for this.

I suggest to:

  1. Subclass BlockInformation with BlockInformationWithTransactions and BlockInformationWithTransactionHashes. The subclasses would have transactions field of corresponding list type. The base class would not have this field.

  2. Add 2 methods to Web3Client: getBlockByNumberWithTransactions, getBlockByNumberWithTransactionHashes. They would return the corresponding block types. Their names are chosen to more closely match the RPC names. They would accept BlockNum as the first argument instead of String that getBlockInformation currently accepts, this is for consistency across other methods and for ease of calling.

  3. Deprecate the existing getBlockInformation method.

I can do this myself.
@simolus3 what do you think?