All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Released with 1.0.0-beta.37 code base.
websocket
dependency fixed (#2971, #2976)requestOptions
added toWebsocketProvider
(#2979)- Node >= v8.0.0 support (#2938)
- localStorage support detection added (#3031)
- getNetworkType method extended with Görli testnet (#3095)
- supportsSubscriptions method added to providers (#3116)
- Add
eth.getChainId
method (#3113) - Minified file added to web3 package (#3131)
- The transaction confirmation workflow can now be configured (#3130)
- Additional parameters for accounts.signTransaction added (docs) (#3141)
- Emit
connected
event on subscription creation (#3028) - TypeScript type definitions added for all modules (#3132)
- Bloom filters added to web3.utils (#3137)
- Fix allow
0
as a validfromBlock
ortoBlock
filter param (#1100) - Fix randomHex returning inconsistent string lengths (#1490)
- Fix make isBN minification safe (#1777)
- Fix incorrect references to BigNumber in utils.fromWei and utils.toWei error messages (#2468)
- Fix error incorrectly thrown when receipt.status is
null
(#2183) - Fix incorrectly populating chainId param with
net_version
when signing txs (#2378) - regeneratorRuntime error fixed (#3058)
- Fix accessing event.name where event is undefined (#3014)
- fixed Web3Utils toHex() for Buffer input (#3021)
- Fix bubbling up tx signing errors (#2063, #3105)
- HttpProvider: CORS issue with Firefox and Safari (#2978)
- Ensure the immutability of the
tx
object passed to functionsignTransaction
(#2190) - Gas check fixed (#2381)
- Signing issues #1998, #2033, and #1074 fixed (#3125)
- Fix hexToNumber and hexToNumberString prefix validation (#3086)
- The receipt will now returned on a EVM error (this got removed on beta.18) (#3129)
- Fixes transaction confirmations with the HttpProvider (#3140)
- Fix perfect gas usage causes tx to error (#3175)
- Fix regenerator runtime error in web3.min.js (#3155)
- Fix TS types for eth.subscribe syncing, newBlockHeaders, pendingTransactions (#3159)
- Improve web3-eth-abi decodeParameters error message (#3134)
- Fix npm installation error for scrypt-shim and websocket (#3210)
eth_requestAccounts
asrequestAccounts
added to web3-eth package (#3219)sha3Raw
andsoliditySha3Raw
added to web3-utils package (#3226)eth_getProof
asgetProof
added to web3-eth package (#3220)BN
andBigNumber
objects are now supported by theabi.encodeParameter(s)
method (#3238)getPendingTransactions
added to web3-eth package (#3239)- Revert instruction handling added which can get activated with the
handleRevert
module property (#3248) - The
receipt
does now exist as property on the error object for transaction related errors (#3259) internalType
added toAbiInput
TS interface inweb3-utils
(#3279)- Agent option added to the
HttpProvider
options (#2980)
eth-lib
dependency updated (0.2.7 => ^0.2.8) (#3242)
- Fix crash when decoding events with identical signatures, differently indexed args (#3272)
- Fix user supplied callback not fired in eth.accounts.signTransaction (#3283)
- Fix minified bundle (#3256)
defaultBlock
property handling fixed (#3247)clearSubscriptions
does no longer throw an error if no running subscriptions do exist (#3246)- callback type definition for
Accounts.signTransaction
fixed (#3280) - fix: export bloom functions on the index.js
- Prefer receipt status to code availability on contract deployment (#3298)
- Görli testnet ENS registry added to the known registries (#3338)
- ENS registry addresses updated (#3353, https://medium.com/the-ethereum-name-service/ens-registry-migration-bug-fix-new-features-64379193a5a)
- Add revert reason support to sendSignedTransaction (#3345)
- ENS module extended with the possibility to add a custom registry (#3301)
- Missing ENS Registry methods and Resolver.supportsInterface method added (#3325)
- Add optional gas type to AbiItem typescript definitions (for ABIs generated by Vyper) (#3437)
- Add görli testnet ENS registry to the known registries (#3252)
- Add auto-reconnect option for Websockets (#3092, #1085, #1391, #1558, #1852, #1646)
- Ensure '0x' prefix is existing for Accounts.sign and Accounts.privateKeyToAccount (#3041)
- Repository cleanup (#3443)
- Removed old
docs/_build
folder - Removed old bower and meteor artifacts
- Moved logo assets to own folder
- Moved github assets to own folder
- Remove @types/node from (non-dev) dependency tree (#3965, #3227)
- Removed old
- Please note: Geth v1.9.12 contains a breaking change for
eth_call
that will not default to your first account anymore iffrom
is not set. If a sender is not explicitly defined, theeth_call
will be executed fromaddress(0)
. (#3467)- This was done to avoid the same input behaving differently in different environments. You should never do
eth_call
without explicitly setting a sender. - This means that if you're calling
view
methods that refer to amsg.sender
without explicitly setting afrom
address in your request options, you may see unexpected behavior. - In
web3.js
, thefrom
address can be specified on a per-call basis or by setting thedefaultAccount
property.
- This was done to avoid the same input behaving differently in different environments. You should never do
- Add missing subscription.on('connected') TS type definition (#3319)
- Add missing bignumber.js dependency for TS types (#3386)
- Upgrade swarm-js to 0.1.40 to remove npm vulnerability warning (#3399)
- Upgrade devDeps to resolve security warnings (#3464)
- dtslint 0.4.2 => 3.4.1
- definitelytyped-header-parser 1.0.1 => 3.9.0
- Race-condition when subscribing to historical logs as first client request (#3389)
- Fix crash when using Web-Workers by removing any-promise dependency (#3377 #2211 #1774)
- MaxListenersExceededWarning event emitter warning mitigated (#1648)
- Introduce review and release guidelines. (#3460)
- Add EIP-1193 compatible provider to
AbstractProvider
interface. (#3499) - Add Typescript definitions for contract
methods
andcall
. (#3454) - Update AbstractProvider and contract.methods TS definitions (#3521)
- Add support for ENS contenthash methods. (#3392, #2782)
- Change CI provider from Travis to Github Actions. (#3468)
- Update
web3-eth-abi
ABICoder dependency. (#3490) - Update AbiCoder param formatting (#3522)
- Improve code clarity of HttpProvider keepAlive option setting. (#3463)
- Updated type definitions for Web3 HTTP Provider. (#3482)
- Fix indentation of web3-eth documentation. (#3478)
- Fix intermittent CI build issues with
dtslint
. (#3479) - Fix WSS credentials Base64 encoding (for browser) (#3508)
- Fire provider "error" and/or "end" events when Websocket provider disconnects. (#3485)
- Remove web3-eth revert error return types to squash TS compilation errors. (#3496)
- Backfill event subscriptions when WS connection dropped across multiple blocks. (#3491)
- Stop swallowing errors when WS connection has died after exhausting reconnection attempts. (#3492)
- Fix setContenthash docs formatting (#3511)
- Add
sending
andsent
events for tx submissions (#3438) - Add
latestBlockHash
arg toconfirmation
event handler payload (#3438) - Make socket providers' max listeners threshold configurable (#3469)
- Documentation about testing & ci resources for Web3.js development (#3528)
- More detailed documentation about how to use
method.encodeABI
(#3549) - Integration tests for
transactionPollingTimeout
(#3513)
- Websocket package from @web3-js/websocket@1.0.29 to websocket@1.0.31 (#3371)
- Upgrade
@web3-js/scrypt-shim@0.1.0
toscrypt-js@3.0.1
- sendSignedTransaction revert handling synthesizes tx without network call (#3457)
- Make docs grammar more idiomatic, normalize punctuation (#3543)
- Size property de-referencing crash when calling web3.eth.clearSubscriptions (#3527)
- Abi param encoding for tuple arrays (#3538)
account.hashMessage
with non-ASCII characters (#3523)- Subscription support check in method confirmations loop (#3432)
- TS bindings for
handleRevert
added (#3452) - Docs: spelling of pre-defined block number (#3539)
- Docs: missing defaultBlock param option in
method.call
description (#3558)
- Add support for EIP-1193 provider
request
method (#3625)
- Upgrade minified bundle build process (from gulp to webpack) (#3618)
- CI improvements: add dependency caching, netlify browser test preview (#3598, #3602)
- Remove references to
genesis
block in 1.x documentation (#3594) - Disallow setting
toBlock
when subscribing to contract events (#3207)
- Extend
_txInputFormatter
with hex prefix check (#3317) - Extract revert reason string for geth >= 1.9.15 (#3520)
- Fix Incorrect param encoding of BN object in arrayed inputs (#3592)
- Remove mis-encoded whitespace characters from web3-utils files (#3601)
- Fix incompatibilities with webpack Buffer polyfill for wallet.encrypt/decrypt (#3580)
- Fix misformatted
fromBlock
value when re-subscribing to events over WS (#3596) - Support
Function
type log parameter decoding (#2826) - Add undefined callback check to websocket provider response queue (#3574)
- Fix WS clientConfig type (#3563)
- Fix Provider.request response (#3647)
- Add unit tests for isHex and isHexStrict (#3622)
- Support for typescript files (.ts) to be written alongside regular .js files (#3652)
- Add compareBlock function that allows for complex block comparisons (#3682)
- Improve RequestManager send method (#3649)
npm run build
now uses TSC to compile (.js allowed) and the build folder is now located underlib
(#3652)- Modernized web3-core to use newer es syntax (#3652)
- Bumped
web3-providers-ipc
oboe
version to 2.1.5 (#3661) - Bump lodash from 4.17.15 to 4.17.19 (#3641)
- Bump websocket version which removes node-gyp from web3.js (#3685)
- Fix parsing of non-
eth_subscription
provider events (#3660) - Fix parsedUrl problem of websocket provider (#3666)
- Fix return value for
clearSubscriptions
(#3689)
- Add
web3-eth2-core
package (#3743) (renamed toweb3-eth2-base
) - Add
web3-eth2-beaconchain
package (#3743) (renamed toweb3-eth2-beacon
) - Add
stripHexPrefix
method toweb3-utils
package (#3776)
- bump utils 0.10.0^ -> 0.12.0 (#3733)
- Removed post-install script in
packages/web3
. Added documentation to root README (#3717)
- Fix possible unhandled promise rejection when sending a transaction (#3708)
- Fixed decoding bytes and string parameters for logs emitted with solc 0.4.x (#3724, #3738)
- Grammar changes to inputAddressFormatter error message
- Fixed vulnerable dependencies
- Fix EIP-1193 provider subscriptions (#3864)
- Update
dist
to latest release (1.3.2
) (#3875)
- Fixed mutation of inputs to encoding and decoding functions (#3748)
- Fix default value for
fromBlock
option forlogs
subscriptions (defaults tolatest
) (#3883) - ethjs-signer test (#3876)
- Rename
web3-eth2-base
toweb3-eth2-core
andweb3-eth2-beacon
toweb3-eth2-beaconchain
(#3833) - Bump
ts-node
from version^8.10.2
to^9.0.0
(#3856) - Ran
npm audit fix
which fixed 4 vulnerabilities (#3856) - Correct
web3-eth2-beaconchain
type declarations (#3859) and (#3865) - Move interfaces
IBaseAPISchema
andIBaseAPIMethodSchema
toindex.d.ts
forweb3-eth2-core
(#3878) - Update dependencies for
web3-eth2-core
(#3878)
- Remove
notImplemented
flag from ETH2 Beacon Chain package methods schema (#3861) - Removes
IETH2BeaconChain
interface in favor of exporting a class type:ETH2BeaconChain
(#3878) - Remove
index.d.ts
files in favor oftypes.ts
forweb3-eth2-core
andweb3-eth2-beaconchain
(#3878) schema.ts
fromweb3-eth2-core
(#3878)dtslint
npm command fromweb3-eth2-core
andweb3-eth2-beaconchain
asindex.d.ts
files were removed (#3878)
- Add
ETH2Core
class export toindex.d.ts
forweb3-eth2-core
(#3878) - Deprecation of bzz warning (#3872)
- Deprecation of shh warning (#3888)
- Github action for running tests for
web3-eth2-core
andweb3-eth2-beaconchain
packages (#3892) - Added description to documentation on how to connect using a remote node provider (#3884)
- Added Security risk warning to docs for
web3.utils.soliditySha3
(#3908) .nvmrc
file using Node.js versionv.14.15.1
(#3817)- Add commitment to semantic versioning since version
1.3.0
and onwards (#3961)
- Unified babel compiler for
web3-eth2-core
andweb3-eth2-beaconchain
(#3892) - Renamed the
tsc
script in all packages tocompile
; updates the correspondinglerna run
usage in the mainpackage.json
(#3894) - moved deprecation warnings to postinstall scripts (#3917)
- Upgrade
@chainsafe/geth-dev-assistant
from0.1.5
to0.1.9
(#3950) - Replaced hardcoded infura link with Github Secret for some tests (#3943)
- Bump
elliptic
from6.5.3
to6.5.4
forweb3-eth-accounts
(#3941) - Bump
elliptic
from6.5.3
to6.5.4
forweb3-bzz
(#3940) - Bump
elliptic
from6.5.3
to6.5.4
forweb3-core-requestmanager
(#3945) - Rewrite
web3-eth-iban
in ES6 (#3955)
- Bump
underscore
package from1.9.1
to1.12.1
(#4051) - Bump
@ensdomains/ens
package from^0.4.5
to^0.6.0
(#4059) - Bump
ethers
package from^5.0.18
to^5.1.4
(#4059)
- Accidental commit (yarn-error.log) (#4062)
- Berlin Transaction Support (#4083)
- When signing a transaction, common object now defaults to berlin instead of petersburg
- Changed Geth Docker verision from
stable
to1.10.3
ine2e.geth.instamine.sh
andscripts/e2e.geth.automine.sh
(#4154)
- Removing the underscore package
- London transaction support (#4155)
- RPC support
eth_feehistory
call (#4191) - Add
toNumber
method toweb3.utils
(#4191)
- Grammar fix (#4088) and updated Swarm (#4151)and Whisper doc links (#4170)
- Removed deprecation notice for HttpProvider (#4008)
- Nonce added to send options in documentation and types (#4052)
- Updated Solidity example to modern syntax (#4147)
- Changing web3 connection example from lets to const (#3967)
- Updated the documentation for the transaction object to include EIP-2718 and EIP-1559 options (#4188)
maxPriorityFeePerGas
andmaxFeePerGas
now included in_txInputFormatter
(#4217)- If
maxPriorityFeePerGas
ofmaxFeePerGas
present_txInputFormatter
deletestx.gasPrice
(fixes #4211) (#4217) - Add block tag support (e.g.
latest
,pending
,earliest
) togetFeeHistory
(#4224) - Support for EIP-1559 to
web3.eth.sendTransaction
(#4220)
- Remove transaction
type
defaulting foreth.sendTransaction
,eth.sendRawTransaction
(#4241) type: 0x0
was being added to legacy transaction when usingeth.signTransaction
(#4241)
- Unable to send legacy transaction if network supported EIP-1559 (#4277)
- Fixed bug in sending transaction with providers not support "newBlockHeaders" event (#3891)
- ethers from 5.1.4 to 5.4.4 (#4231)
- karma from 5.2.3 to 6.3.4 (#4231)
- lerna from 3.22.1 to 4.0.0 (#4231)
- Dropped build tests in CI for Node v8 and v10, and added support for Node v14 (#4231)
- Change default value for
maxPriorityFeePerGas
from1 Gwei
to2.5 Gwei
(#4284) - Fixed bug in signTransaction (#4295)
- Partially replace usage of eth-lib with ethereumjs-util (#4390)
- Support for
eth_createAccessList
as both an rpc call (web3.eth.createAccessList
) and property of contract method wrappers (contractInstance.methods.getValue().createAccessList
) (#4332)
- Not considering
tx.chainId
iftx.common.customChain.chainId
is provided forweb3.eth.accounts.signTransaction
function (#4293) - Added missing PromiEvent handler types (#4194)
- Updated README to include Webpack 5 angular support instructions (#4174)
- Updated the documentation for the
Web3.utils
, removed context for_
(underscore lib) (#4403) - Emit subscription id with connect event when creating a subscription (#4300)
- Introduced new configuration "blockHeaderTimeout" for waiting of block headers for transaction receipt (#3891)
- Format
block.baseFeePerGas
to number (#4330) - Correct
web3-eth-personal.sendTransaction
example in documentation (#4409) - Updated README to include Webpack 5 angular support instructions (#4174)
- Fix 1.6.1 build size issue with removing static asset files (#4506)
- Correct
web3.rst
example in documentation (#4511) - Correct
BlockHeader
typing (receiptRoot
->receiptsRoot
) (#4452)
maxPriorityFeePerGas
andmaxFeePerGas
added toTransaction
andTransactionConfig
interfaces (#4232) (#4585)
- Fix readthedoc's build for web3js documentation (#4425)
- Fix response sorting for batch requests (#4250)
- Changed getFeeHistory first parameter type from
number
tohex
according to the spec (#4529)
transactionPollingInterval
added to web3, contract and method constructor options. defaults to 1 second. (#4584)- Add example import for package level types (#4611)
- Fix a typo in the documentation for
methods.myMethod.send
(#4599) - Use globalThis to locate global object if possible (#4613)
- Fix typos in web3-utils.rst (#4662)
- Added effectiveGasPrice to TransactionReceipt (#4692)
- Correction in documentation for
web3.eth.accounts.signTransaction
(#4576) - Updated README to include Webpack 5 create-react-app support instructions (#4173)
- Update the documentation for
methods.myMethod.estimateGas
(#4702) - Fix typos in REVIEW.md and TESTING.md (#4691)
- Fix encoding for "0x" string values (#4512)
- Muted E2E gnosis dex tests in CI until fix for issue #4436 is applied (#4701)
- Removed deprecated Morden testnet code (#4339)
- Ran
npm audit fix
to address vulnerabilities and update libraries (#4719) (#4728)
- Remove deprecated
close
event listener (#4825) (#4839)
npm audit fix
to update libraries (#4860)
- Fix jsonrpc payload and response types (#4743) (#4761)
- Allowed more flexibility in typing the overly constrained
provider.disconnect
function (#4833)
- Fixed build issues of 1.7.2
- Fix dead link in web3-eth.rst (#4916)
- Fix web3-core-method throws on
f.call = this.call
when intrinsic is frozen (#4918) (#4938) - Fix static tuple encoding (#4673) (#4884)
- Fix bug in handleRevert logic for eth_sendRawTransaction (#4902)
- Fix resolve type of getBlock function (#4911)
- Web3-utils BN fix (#5132)
- Replace deprecated String.prototype.substr() (#4855)
- Exporting AbiCoder as coder (#4937)
- Github build workflow updated min build for node.js 12 and tests for 12, 14 and 16 (#5014)
- Updated libraries using BN and the BN library (#5072)
- Exposing
web3.eth.Contract.setProvider()
as per public documentation (#4822) (#5001) - Improve npm script commands for development purposes (#4848)
npm audit fix
to address vulnerabilities and update libraries (#5014)
- Replace xhr2-cookies deps to cross-fetch for web3-providers-http (#5085)
- Documentation details about
maxFeePerGas
andmaxPriorityFeePerGas
(#5121) - Added
createAccessList
types in web3.eth (#5146)
- Improving
AbstractProvider
interface (#5150) - Fix typos in web3-eth-accounts.rst & TESTING.md (#5047)
- Fix remove wallet using an index when an account address and address lowercase are equal (#5049)
- Improve README.md & Fix typos (#4848)
- Add optional hex formatting parameter for getTransactionrReceipt (#5153)
- Fix transactionRoot -> transactionsRoot in BlockHeader (#5083)
- Fix Promise in Accounts.signTransaction() throwing errors that cannot be caught (#4724)
- Fixed unit tests & removed dead code for web3-providers-http (#5228)
- Updated
got
lib version and fixed other libs using npm audit fix (#5178) (#5254)
- Updated
sha3
andsha3Raw
type definition to acceptBuffer
- Removing legacy field in lerna.json (#5403)
- Correct
eth_sendSignedTransaction
code example (#5402)
- Browser builds support polyfills (#5031) (#5053) (#4659) (#4767)
- Update node version on actions to fix breaking mosaic test (#5354)
- Start incrementing jsonrpc.id from random number (#5327)
web3-eth-contract
'scall
andsend
methods no longer mutateoptions
argument (#5394)- Improvement using provided gas options in web3-eth-accounts for eip-1559 transactions (#5012)
- Add missing function type "receive" in
AbiType
(#5165) - Support of
safe
andfinalized
block tags added (#5410)
- Fixed types for getPastEvents (#4955) (#5260)
- Fix Log type by adding missing
removed
property (#4877)
- Updated dependencies (#5529)
- Updated Webpack 4 to Webpack 5, more details at (#5629)
crypto-browserify
module is now used only in webpack builds for polyfilling browsers (#5629)- Updated
ethereumjs-util
to7.1.5
(#5629) - Updated
lerna
4 to version 6 (#5680) - Bump utils 0.12.0 to 0.12.5 (#5691)
- Fixed types for
web3.utils._jsonInterfaceMethodToString
(#5550) - Fixed Next.js builds failing on Node.js v16, Abortcontroller added if it doesn't exist globally (#5601)
- Builds fixed by updating all typescript versions to 4.1 (#5675)
clean-webpack-plugin
has been removed from dev-dependencies (#5629)
https-browserify
,process
,stream-browserify
,stream-http
,crypto-browserify
added to dev-dependencies for polyfilling (#5629)- Add
readable-stream
to dev-dependancies for webpack (#5629)
npm audit fix
for libraries update (#5726)
- Fixed skipped ws-ganache tests (#5759)
- Fixed "provider started to reconnect error" in web3-provider-ws (#5820)
- Fixed Error: Number can only safely store up to 53 bits (#5845)
- Fixed types for packages which have default exports but not declared default export in .d.ts (#5866)
- Fixed Transaction type by adding missing properties (#5856)
- Add optional
hexFormat
param togetTransaction
andgetBlock
that accepts the value'hex'
(#5845) utils.toNumber
andutils.hexToNumber
can now return the large unsafe numbers asBigInt
, iftrue
was passed to a new optional parameter calledbigIntOnOverflow
(#5845)- Updated @types/bn.js dependency to 5.1.1 in web3, web3-core and web3-eth-contract as reason mentioned in #5640 (#5885)
- Add description to error for failed connection on websocket (#5884)
- Updated dependencies (#5885)
- Improved the error propagation in
web3-providers-http
package to effectively propagate useful error infomation about failed HTTP connections (#5955) - Fixed "Uncaught TypeError" calling a contract function that revert using MetaMask (#4454) and related "n.data.substring is not a function", that is raised when there is a revert and
web.eth.handleRevert = true
(#6000)
transaction.type
is now formatted to a hex string before being send to provider (#5979)- When sending a transaction, if
transaction.type === '0x1' && transaction.accessList === undefined
, thentransaction.accessList
is set to[]
(#5979) - Removed an unnecessary
chainId
parameter fromtoChecksumAddress()
function types (#5888)
- Added support for
getPastEvents
method to filterallEvents
and specific event (#6015)
- Updated dependencies (#6044)
- Builds fixed by updating all typescript versions to 4.9.5 (#6238)
- ABI encoding for large negative
int
s (#6239) - Updated type file for
submitWork
parameters, accepts 3 parameters instead of an array (#5200)
- Replace ethereumjs-util with @ethereumjs/util (#6283)
- Fixed broken fetch for Node.js > 18.x and fixed double callback (#6381)
web3-eth-accounts
: Bumped@ethereumjs
dependencies (#6457)- Updated dependencies (#6491)