Skip to content

Releases: web3/web3.js

v4.0.1-alpha.3

05 Jan 00:13
65cdda8
Compare
Choose a tag to compare
v4.0.1-alpha.3 Pre-release
Pre-release

Fixed

web3-validator

  • Fix issue when importing web3-validator package within browser environments (Webpack minified filename changed from index.min.js to web3-validator.min.js) (#5710)
  • Fix build error '"type"' does not satisfy the constraint (#5712)

web3-eth-abi

  • Parameters decoding error for nested components (#5714)

v4.0.1-alpha.2

08 Dec 19:16
Compare
Choose a tag to compare
v4.0.1-alpha.2 Pre-release
Pre-release

Added

web3-eth-contract

  • Decoding error data, using Error ABI if available, if error was returned from a smart contract function call (#5662).

web3-types

  • These types were moved from web3-eth-accounts to web3-types package: Cipher, CipherOptions, ScryptParams, PBKDF2SHA256Params, KeyStore (#5581 )

web3-utils

  • Export a new function uuidV4 that generates a random v4 Uuid (#5373).
  • Enable passing a starting number, to increment based on it, for the Json Rpc Request id (#5652).
  • Export a new function isPromise that checks if an object is a promise (#5652).

web3-eth-contract

  • SpecialOutput type was added as a generic type into the call function to support reassigning output types (#5631)
  • Overloaded functions types (ContractOverloadedMethodInputs, ContractOverloadedMethodOutputs) was added (#5631)

Fixed

web3-eth-contract

  • Emit past contract events based on fromBlock when passed to contract.events.someEventName (#5201)
  • Use different types for ContractOptions -> jsonInterface setter and getter (#5474)
  • An issue within the Contract constructor where provider wasn't being set when provided within the optionsOrContextOrReturnFormat argument (#5669)

web3-types

  • Make the request method of EIP1193Provider class, compatible with EIP 1193 (#5591)

web3-utils

  • Use Uuid for the response id, to fix the issue "Responses get mixed up due to conflicting payload IDs" (#5373).

web3-validator

  • Fix isHexreturning false for -123, fix isHexStrict returning true for -0x, and fix isHex returning true for empty strings `` (#5373).

web3-eth-abi

  • Fix ContractMethodOutputParameters type to support output object types by index and string key. Also, it returns void if ABI doesn't have outputs and returns exactly one type if the output array has only one element. (#5631)

Removed

web3-eth-accounts

  • These types were moved from web3-eth-accounts to web3-types package: Cipher, CipherOptions, ScryptParams, PBKDF2SHA256Params, KeyStore (#5581 )

v1.8.1

10 Nov 15:15
65d27a5
Compare
Choose a tag to compare

Fixed

  • Fixed types for getPastEvents (#4955) (#5260)
  • Fix Log type by adding missing removed property (#4877)

Changed

  • Updated dependencies (#5529)

v4.0.1-alpha.1

03 Nov 17:26
a754e3a
Compare
Choose a tag to compare
v4.0.1-alpha.1 Pre-release
Pre-release

Added

web3-core

  • If the response error was execution reverted, raise ContractExecutionError and pass the response error to it in order to be set as innerError (this innerError will be decoded at web3-eth-contract if its ABI was provided according to EIP-838). (#5434)
  • Added a new configuration variable enableExperimentalFeatures. (#5481)
  • registerPlugin method to Web3Context (#5393)
  • Web3PluginBase exported abstract class (#5393)
  • Web3EthPluginBase exported abstract class (#5393)

web3-error

  • Add optional innerError property to the abstract class Web3Error. This innerError could be Error, Error[] or undefined. (#5435) (#5434)
  • The class Web3ContractError is moved to this package from web3-eth-contract. (#5434)
  • Added the error code ERR_TX_SIGNING and used it inside TransactionSigningError (#5462)
  • Added the error code ERR_TX_GAS_MISMATCH and used it inside TransactionGasMismatchError (#5462)
  • Added SignatureError to web3-errors/src/errors/signature_errors.ts (moved from web3-eth/src/errors.ts) (#5462)
  • Added the errors' classes to web3-errors/src/errors/transaction_errors.ts from web3-eth/src/errors.ts (#5462)
  • Added TransactionBlockTimeoutError class and its error code ERR_TX_BLOCK_TIMEOUT (#5294)
  • ExistingPluginNamespaceError class and it's error code ERR_EXISTING_PLUGIN_NAMESPACE (#5393)

web3-eth

  • web3-rpc-methods dependency (#5441)
  • Added chain and hardfork validation for transaction and transaction.common object in validateTransactionForSigning

web3-eth-abi

  • If an error happens when decoding a value, preserve that exception at innerError inside the error class AbiError. (#5435)
  • Add basic functionality that is used, by web3-eth-contract, when decoding error data according to EIP-838. (#5434)

web3-eth-contract

  • Decoding error data, using Error ABI if available, according to EIP-838. (#5434)
  • The class Web3ContractError is moved from this package to web3-error. (#5434)

web3-plugin-example

  • Example plugin for wrapping contract methods to provide custom functionality (#5393)
  • Example plugin for custom RPC methods using the requestManager (#5393)

web3-utils

  • Added and exported three reusable utility functions: pollTillDefined, rejectIfTimeout and rejectIfConditionAtInterval which are useful when dealing with promises that involves polling, rejecting after timeout or rejecting if a condition was met when calling repeatably at every time intervals.

web3-eth-personal

  • web3-rpc-methods dependency (#5441)

web3-eth-net

  • web3-rpc-methods dependency (#5441)

web3-providers-ipc

  • Show error message and return dummy promise if socket is not writable (#5294)

web3-rpc-methods

  • web3-rpc-methods package added

web3-types

  • Web3EthExecutionAPI export (#5441)
  • Web3NetAPI export (#5441)
  • EthPersonalAPI export (#5441)

Changed

web3-core

  • Default value for API generic for Web3ContextObject from any to unknown (#5393)
  • Default value for API generic for Web3ContextInitOptions from any to unknown (#5393)
  • Added validation when defaultHardfork and defaultCommon.hardfork are different in web3config
  • Added validation when defaultChain and defaultCommon.basechain are different in web3config
  • Added a new configuration variable enableExperimentalFeatures. (#5481)

web3-error

  • Moved SignerError from web3-errors/src/errors/signature_errors.ts to web3-errors/src/errors/transaction_errors.ts, and renamed it to TransactionSigningError (#5462)
  • Corrected the error code for JSONRPC_ERR_UNAUTHORIZED to be 4100 (#5462)

web3-eth

  • Web3EthExecutionAPI is now imported via web3-types instead of web3_eth_execution_api.ts (#5441)
  • Replace the imported methods from rpc_methods.ts with ethRpcMethods imports from web3-rpc-methods (#5441)
  • Web3NetAPI is now imported from web3-types instead of web3-net (#5441)
  • Moved rpc_methods tests to web3-rpc-methods (#5441)
  • Implemented the logic for transactionBlockTimeout (#5294)
  • Use subscription at rejectIfBlockTimeout when the provider supports subscription. Implement this as an experimental feature (if useSubscriptionWhenCheckingBlockTimeout at enableExperimentalFeatures is true). (#5481)
  • At some test cases, optimized some codes. (#5481)

web3-eth-accounts

  • signTransaction and privateKeyToAccount will throw TransactionSigningError instead of SignerError now (#5462)

web3-eth-ens

  • Web3NetAPI is now imported from web3-types instead of web3-net (#5441)

web3-eth-personal

  • Import EthPersonalAPI from web3-types instead of local import (#5441)
  • Replace the imported methods from rcp_methods.ts with personalRpcMethods imports from web3-rpc-methods (#5441)
  • Replace use of EthPersonalAPIManager with Web3RequestManager<EthPersonalAPI> (#5441)

web3-eth-net

  • Web3NetAPI is now imported from web3-types instead of web3_net_api.ts (#5441)
  • Replace the imported methods from rpc_methods.ts with netRpcMethods imports from web3-rpc-methods (#5441)

web3-types

  • Web3APISpec, Web3APIMethod, and Web3APIParams now supports unknown APIs (#5393)

Fixed

web3-error

  • Corrected the error code for JSONRPC_ERR_UNAUTHORIZED to be 4100 (#5462)

web3-eth

web3-eth-contract

  • According to the latest change in web3-eth-abi, the decoded values of the large numbers, returned from function calls or events, are now available as BigInt. (#5435)

web3-eth-abi

  • Return BigInt instead of string when decoding function parameters for large numbers, such as uint256. (#5435)

web3-types

  • Web3APISpec, Web3APIMethod, and Web3APIParams now supports unknown APIs (#5393)

Removed

web3-eth

  • Moved the errors' classes from web3-eth/src/errors.ts to web3-errors/src/errors/transaction_errors.ts (#5462)

web3-eth-personal

  • Exported type EthPersonalAPIManager, EthPersonalAPI is not exported via web3-types (#5441)

web3-eth-net

  • rpcMethods export, these methods are now exported via web3-rpc-methods as netRpcMethods (#5441)
  • Web3NetAPI export, now exported via web3-types as Web3NetAPI (#5441)

web3-validator

  • Removed direct function toJSON() in Web3ValidatorError class as its available via base class (#5435)

v1.8.1-rc.0

28 Oct 13:41
Compare
Choose a tag to compare
v1.8.1-rc.0 Pre-release
Pre-release

Fixed

  • Fixed types for getPastEvents (#4955) (#5260)
  • Fix Log type by adding missing removed property (#4877)

Changed

  • Updated dependencies (#5529)

v1.8.0

14 Sep 11:02
59b657b
Compare
Choose a tag to compare

Changed

  • Updated sha3 and sha3Raw type definition to accept Buffer (#5357)
  • Removing legacy field in lerna.json (#5403)
  • Correct eth_sendSignedTransaction code example (#5402)

Fixed

  • 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's call and send methods no longer mutate options argument (#5394)
  • Improvement using provided gas options in web3-eth-accounts for eip-1559 transactions (#5012)

Added

  • Add missing function type "receive" in AbiType (#5165)
  • Support of safe and finalized block tags added (#5410)

v1.8.0-rc.0

08 Sep 13:53
09634f9
Compare
Choose a tag to compare
v1.8.0-rc.0 Pre-release
Pre-release

Changed

  • Updated sha3 and sha3Raw type definition to accept Buffer (#5357)
  • Removing legacy field in lerna.json (#5403)
  • Correct eth_sendSignedTransaction code example (#5402)

Fixed

  • 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's call and send methods no longer mutate options argument (#5394)
  • Improvement using provided gas options in web3-eth-accounts for eip-1559 transactions (#5012)

Added

  • Add missing function type "receive" in AbiType (#5165)
  • Support of safe and finalized block tags added (#5410)

v4.0.1-alpha.0

25 Aug 20:19
766ebd9
Compare
Choose a tag to compare
v4.0.1-alpha.0 Pre-release
Pre-release

Fixed

  • Dependency tree cannot be resolved by Yarn due to old deprecated packages picked by yarn - fixed (#5382)

v4.0.0-alpha.0

24 Aug 21:15
483464f
Compare
Choose a tag to compare
v4.0.0-alpha.0 Pre-release
Pre-release

Note: Yarn is resolving to some old deprecated package versions for 4.0.0-alpha.0 instead of latest alpha versions. A patch bump is posted so yarn users should use 4.0.1-alpha.0 for testing.

Summary

Web3.js 4.0.0-alpha.0 is a complete overhaul. This alpha version is written in TypeScript and has many exciting features. Features such as:

  • Full types support ( including Dynamic Contracts Typing )
  • ETH functions optional data formatters
  • ETH RPC method wrappers for advance users
  • Validation functionality using schema
  • Configurable behavior of the sendTransaction
  • Easy extensibility and high readability
  • Clear specs of base wallet, base providers and much more

Check out our 4.x API documentation (https://docs.web3js.org/) for the full details. The release contains mostly 1.x parity functionality with some documented breaking changes. Most of the packages in this release have been unit tested and only selected packages are E2E tested (web3, web3-eth, web3-contracts, web3-eth-personal, web3-providers-http and web3-providers-ws).

Checkout our 1.x to 4.x migration guide (https://docs.web3js.org/docs/guides/web3_migration_guide) for testing the 4.0.0-alpha.0 release and share your feedback with us.

Added

web3-errors

  • web3-errors new package is created, it has Web3 Error codes and classes

web3-types

  • web3-types new package is created, it provides the common data structures and interfaces for web3 modules

web3-validator

  • web3-validator new package is created, it has JSON-Schema compatible validator functionality for Web3

Removed

web3-bzz

  • This Package is deprecated

web3-shh

  • This Package is deprecated

web3-core-helpers

  • This Package is removed, errors are moved to web3-errors package and formatters are moved in web3-core package

web3-core-method

  • This Package is removed, and web3-core-method functionality is moved to web3-eth package

web3-core-promieevent

  • This Package is removed, and core promi events functionality is moved to web3-core package

web3-core-requestmanager

  • This Package is removed, batch requests and request manager functionality is moved to web3-core package

web3-core-subscription

  • This Package is removed, and core subscription functionality is moved to web3-core package

Changed

web3

  • Passing callbacks to functions is no longer supported, except for event listeners.
  • Method extend is deprecated

web3-core

  • The function outputBigNumberFormatter in web3-core-helper renamed to outputBigIntFormatter under web3-core
  • Removed this.defaultBlock context from inputDefaultBlockNumberFormatter in web3-core-helper and converted to additional parameter
  • Removed this.defaultBlock context from inputTransactionFormatter in web3-core-helper and converted to additional parameter

web3-utils

  • The following functions soliditySha3 soliditySha3Raw encodePacked now includes type validation and requires type specification, instead of guessing the value type
  • The functions soliditySha3, soliditySha3Raw and encodePacked did not support BN; But, now supports BigInt
  • The functions flattenTypes and jsonInterfaceMethodToString moved to the web3-eth-abi package
  • The function isAddress now includes an optional parameter checkChecksum type boolean
  • isBoolean now accept 1, and 0 as valid values to test. Ref: web3-validator

web3-eth-accounts

  • create function does not take in the optional parameter entropy
  • Wallet.create function doesn't accept entropy param

web3-validator

  • isBoolean now accept 1, and 0 as valid values to test.

web3-eth-contract

  • Event logs do not support types for indexed properties, but named properties are supported.
  • Types for overloaded ABI functions are not yet supported.
  • signTransaction will not fill any default values, and it will only sign and return result. For filling default values, use web3-eth package
  • recover function's last param is boolean hashed, it is used to indicate if data provided is already hashed or not. By default, this function will assume data is not hashed.
  • The Wallet no longer supports address/number indexing. Have to use wallet.get instead.
  • Wallet.create function doesn't accept entropy param
  • contract.method.send() will resolve to transaction receipt instead of transactionHash. User can use receipt.transactionHash instead.

web3-net

  • Package will not support web3.bzz.net and web3.shh.net

web3-eth-iban

  • IBAN constructor now has validation checks for indirect/direct iban.
  • isDirect, isValid, isIndirect are now also included as static methods.

web3-eth-ens

web3-eth-abi

  • internalType was renamed to baseType in all abi types

web3-eth

  • givenProvider default value is undefined
  • defaultHardfork default value is 'london'
  • defaultAccount default value is undefined
  • defaultNetworkId default value is undefined
  • When sending a transaction, if Ethereum Node does not respond within transactionSendTimeout, throw an Error.

web3-eth-subscribe

  • clearSubscriptions Instead of returning true , clearSubscriptions now returns array of subscription's ids

web3-eth-personal

  • givenProvider default value is undefined
  • currentProvider default value is undefined

v1.7.5

01 Aug 13:24
02895cb
Compare
Choose a tag to compare

1.7.5

Changed

  • Replace xhr2-cookies deps to cross-fetch for web3-providers-http (#5085)

Added

  • Documentation details about maxFeePerGas and maxPriorityFeePerGas (#5121)
  • Added createAccessList types in web3.eth (#5146)

Fixed

  • 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)

Security

  • Updated got lib version and fixed other libs using npm audit fix (#5178) (#5254)