- Nullable topics.
- Use http package version ^1.1.0.
- EIP-1559.
- Ditch dependency on collection.
- Fix type-error to get useful RpcError.
- Remove build.yaml that was pointing to obsolete builder.
- Deprecate async methods.
- Update dependencies.
- Refactor parts of the project into ERC20 and Web3_Browser
- 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