Security News
ESLint is Now Language-Agnostic: Linting JSON, Markdown, and Beyond
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
web3-core
Advanced tools
The web3-core package is a core module of the Web3.js library, which is used to interact with the Ethereum blockchain. It provides essential functionalities such as managing accounts, sending transactions, and interacting with smart contracts.
Managing Accounts
This feature allows you to create and manage Ethereum accounts. The code sample demonstrates how to create a new Ethereum account using the web3-core package.
const Web3 = require('web3');
const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
// Create a new account
const account = web3.eth.accounts.create();
console.log(account);
Sending Transactions
This feature allows you to send transactions on the Ethereum network. The code sample demonstrates how to sign and send a transaction using the web3-core package.
const Web3 = require('web3');
const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
const transaction = {
to: '0xRecipientAddress',
value: web3.utils.toWei('0.1', 'ether'),
gas: 2000000
};
web3.eth.accounts.signTransaction(transaction, 'YOUR_PRIVATE_KEY').then(signedTx => {
web3.eth.sendSignedTransaction(signedTx.rawTransaction).on('receipt', console.log);
});
Interacting with Smart Contracts
This feature allows you to interact with smart contracts deployed on the Ethereum network. The code sample demonstrates how to call a method on a smart contract using the web3-core package.
const Web3 = require('web3');
const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
const contractABI = [/* ABI array */];
const contractAddress = '0xContractAddress';
const contract = new web3.eth.Contract(contractABI, contractAddress);
contract.methods.myMethod().call().then(console.log);
The ethers.js library is a complete and compact library for interacting with the Ethereum blockchain and its ecosystem. It provides similar functionalities to web3-core, such as managing accounts, sending transactions, and interacting with smart contracts. Ethers.js is known for its simplicity and ease of use.
Truffle Contract is a library that provides a better abstraction for interacting with Ethereum smart contracts. It is part of the Truffle Suite and offers a higher-level API compared to web3-core, making it easier to work with smart contracts. It integrates seamlessly with the Truffle framework for development and testing.
This is a sub-package of web3.js.
web3-core
package contains core functions for web3.js packages.
You can install the package either using NPM or using Yarn
npm install web3-core
yarn add web3-core
Script | Description |
---|---|
clean | Uses rimraf to remove dist/ |
build | Uses tsc to build package and dependent packages |
lint | Uses eslint to lint package |
lint:fix | Uses eslint to check and fix any warnings |
format | Uses prettier to format the code |
test | Uses jest to run unit tests |
test:integration | Uses jest to run tests under /test/integration |
test:unit | Uses jest to run tests under /test/unit |
[4.1.0]
RpcErrorMessages
that contains mapping for standard RPC Errors and their messages. (#6230)TransactionGasMismatchInnerError
for clarity on the error in TransactionGasMismatchError
(#6215)MissingGasInnerError
for clarity on the error in MissingGasError
(#6215)rpc_method_wrapper
(signTypedData
) for the rpc calls eth_signTypedData
and eth_signTypedData_v4
(#6286)signTypedData
method to the Web3Eth
class (#6286)getEncodedEip712Data
method that takes an EIP-712 typed data object and returns the encoded data with the option to also keccak256 hash it (#6286)signTypedData
method to eth_rpc_methods
for the rpc calls eth_signTypedData
and eth_signTypedData_v4
(#6286)eth_signTypedData
and eth_signTypedData_v4
to web3_eth_execution_api
(#6286)Eip712TypeDetails
and Eip712TypedData
to eth_types
(#6286)json-schema
as a main json schema type (#6264)estimateGas
unless transaction builder options.fillGas
is false. (#6249)blockHeaderSchema
properties causing some properties to not appear in response of newHeads
subscription (#6243)blockHeaderSchema
properties causing some properties to not appear in response of newHeads
subscription (#6243)CommonSubscriptionEvents &
at every child class of Web3Subscription
(#6262)_processSubscriptionResult
and _processSubscriptionError
has been written in the base class Web3Subscription
and maid public
. (#6262)formatSubscriptionResult
could be used to customize data formatting instead of re-implementing _processSubscriptionResult
. (#6262)CommonSubscriptionEvents &
for the first generic parameter of Web3Subscription
when inheriting from it. (#6262)MissingGasError
error message changed for clarity (#6215)input
and data
are no longer auto populated for transaction objects if they are not present. Instead, whichever property is provided by the user is formatted and sent to the RPC provider. Transaction objects returned from RPC responses are still formatted to contain both input
and data
properties (#6294)input
and data
are now optional properties on PopulatedUnsignedBaseTransaction
(previously input
was a required property, and data
was not available) (#6294)is-my-json-valid
with zod
dependency. Related code was changed (#6264)ValidationError
and JsonSchema
were changed (#6264)blockHeaderSchema
properties causing some properties to not appear in response of newHeads
subscription (#6243)RawValidationError
was removed (#6264)RawValidationError
was removed (#6264)FAQs
Web3 core tools for sub-packages. This is an internal package.
The npm package web3-core receives a total of 439,421 weekly downloads. As such, web3-core popularity was classified as popular.
We found that web3-core demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
Security News
Members Hub is conducting large-scale campaigns to artificially boost Discord server metrics, undermining community trust and platform integrity.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.