- Renaming library to WebThree in order to maintain a community developed fork.
- Bumping version number to 2.5.0, pull requests are greatly appreciated. No breaking changes were made.
- the reason for creating this fork from https://github.com/simulous/web3dart 2.3.5 was that web3dart 2.4.1 currently published at https://pub.dev/packages/web3dart/ Github repo https://github.com/xclud/web3dart has factored out contract generator and metamask integration, making a breaking change.
The following changes were implemented:
- added stubs for dart_wrappers.dart and dart:js, added conditional dependencies import to metamask example in order to support web and other platform builds from a single codebase
- fix signPersonalMessage to use modern personal_sign instead of eth_sign
- fix type issues in getTransactionHistory
- Merged all reasonamble commits from the forks network, thank you @@simolus3 @superkeka @alexeyinkin @xclud @TheGreatAxios @rgplvr @thegamenicorus @MahmoudKhalid @superkeka from @superkeka/web3dart
- Make EthereumAddress Comparable
- StateMutability error when parsing json abi that contains an event simolus3#13
- Make getTransactionByHash nullable
- Expose number utility functions simolus3#3
- decodeCall Uses the known types of the function parameters to parse them from the binary call data. The reverse of [encodeCall].
- make rpc call public
- Add block number to BlockInformation, add BlockInformationWithTransactions, add getBlockByNumberWithTransactions
- API Documentation on how to create the wallet files, HD wallets simolus3#2
- Fix fetching mempool transactions that do not yet have blockHash
- Erc20 class support for name, symbol and decimals functions. from @GangemiLorenzo/web3dart
- add sender to generated contract read
- add argSender to generated contracts from @kryptogo/web3dart
- add toMap for tx receipt
- add value for eth_call from @thegamenicorus/web3dart
- fix filter not found
- add getTransactionHistory
- keep rpc running
- add getPendingTransactions from @thelazyindian/web3dart
- Accept Null message Fix EIP1559Information from @MahmoudKhalid/web3dart
- Fix EIP1559Information
- Added getGasInEIP1559 method
- Added feeHistory method from @rgplvr/web3dart fix fetchChainIdFromNetworkId from @naiba/web3dart
- fix uint8list overflow
- Ensuring quality and performance.
- Adds
name
,symbol
anddecimals
functions to ERC20.
- Fix signing legacy transactions without gas and without a client.
- Support EIP-1559 transactions.
- Fix the
Web3Client.custom
constructor not setting all required fields.
- Support overloaded methods for generated contracts
- Add
EthPrivateKey.publicKey
getters - Fix
window.ethereum
always being non-null, even if no provider is available
- Fix a generator crash for unexpected
devdoc
values
- Fix
EthPrivateKey.createRandom
sometimes failing
- Fix contract generation for events
- Don't generate a method for the fallback method
- Fix parsing contract abis in the presence of unknown function types
- Respect the
value
parameter inestimateGas
- Add
package:web3dart/browser.dart
, a library for using this package in Ethereum-enabled browsers. - Add code generator for smart contracts. To use it, just put the generated abi
json into a
.abi.json
file, add a dev-dependency onbuild_runner
and run(flutter | dart) pub run build_runner build
. - Add the
package:web3dart/contracts/erc20.dart
library for interacting with an ERC-20 smart contract.
- Breaking: Renamed
TransactionReceipt.fromJson
toTransactionReceipt.fromMap
- Breaking: Removed the
backgroundIsolate
option fromWeb3Client
. For background isolates, instead userunner: await IsolateRunner.spawn()
frompackage:isolate
. - Breaking: Changed
TransactionInformation.r
andTransactionInformation.s
fromUint8List
toBigInt
- Breaking: When not setting the
maxGas
argument, this library will now estimate it instead of using a fixed upper bound. - Migrate to null safety
- Add
ecRecover
andisValidSignature
to verify messages. Thanks, brickpop! - Add
compressPublicKey
anddecompressPublicKey
to obtain a compressed or expanded version of keys. - Add
getLogs
method toWeb3Client
. Thanks, jmank88! - Add
sendRawTransaction
to send a raw, signed transaction. - Fix
hexToDartInt
not actually parsing hex (#81) - Support for background isolates is temporarily disabled until
package:isolate
migrates to null safety
- include a
0x
for hex data ineth_estimateGas
- thanks, @Botary
- Fixed a bug when decoding negative integers (#73)
- Added
estimateGas
method onWeb3Client
to estimate the amount of gas that would be used by a transaction.
In 1.2.1, the atBlock
parameter on estimateGas
was deprecated and will be ignored.
- Fix parsing transaction receipts when the block number is not yet available. Thanks to @chart21 for the fix.
- Fix a typo that made it impossible to load the coinbase address. Thanks to @modulovalue for the fix.
- Added
getTransactionReceipt
to get more detailed information about a transaction, including whether it was executed successfully or not.
Basically a complete rewrite of the library - countless bug fixes, a more fluent and consistent api and more features:
- experimental api to perform expensive operations in a background isolate. Set
enableBackgroundIsolate
to true when creating aWeb3Client
to try it out. - Events! Use
addedBlocks
,pendingTransactions
andevents
for auto-updating streams. - The client now has a
dispose()
method which should be called to stop the background isolate and terminate all running streams.
This version contains breaking changes! Here is an overview listing some of them.
Before | Updated API |
---|---|
Creating credentials via Credentials.fromPrivateKeyHex |
Use the EthPrivateKey class or, even better, client.credentialsFromPrivateKey |
Sending transactions or calling contract functions | The api has been changed to just a single methods instead of a transaction builder. See the examples for details. |
Low-level cryptographic operations like signing, hashing and converting hex <-> byte array <-> integer | Not available in the core library. Import package:web3dart/crypto.dart instead |
If you run into problems after updating, please create an issue.
- Added
getTransactionByHash
method - thank you, maxholman! - Allow a different N parameter for scrypt when creating new wallets.
- New APIs allowing for a simpler access to wallets, credentials and addresses
- More examples in the README
- More solidity types, not with encoding.
- Send transactions and call messages from smart contracts on the Blockchain.
- Create new Ethereum accounts
- Send and sign transactions
- Initial version, created by Stagehand