在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:ChainSafe/web3.js开源软件地址:https://github.com/ChainSafe/web3.js开源编程语言:JavaScript 85.5%开源软件介绍:web3.js - Ethereum JavaScript APIThis is the Ethereum JavaScript API which connects to the Generic JSON-RPC spec. You need to run a local or remote Ethereum node to use this library. Please read the documentation for more. InstallationNodenpm install web3 Yarnyarn add web3 In the BrowserUse the prebuilt npm run build Then include Or via jsDelivr CDN: <script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script> UNPKG: <script src="https://unpkg.com/web3@latest/dist/web3.min.js"></script> Usage// In Node.js
const Web3 = require('web3');
let web3 = new Web3('ws://localhost:8546');
console.log(web3);
> {
eth: ... ,
shh: ... ,
utils: ...,
...
} Additionally you can set a provider using web3.setProvider('ws://localhost:8546');
// or
web3.setProvider(new Web3.providers.WebsocketProvider('ws://localhost:8546')); There you go, now you can use it: web3.eth.getAccounts().then(console.log); Usage with TypeScriptWe support types within the repo itself. Please open an issue here if you find any wrong types. You can use import Web3 from 'web3';
import { BlockHeader, Block } from 'web3-eth' // ex. package types
const web3 = new Web3('ws://localhost:8546'); If you are using the types in a "compilerOptions": {
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
.... Troubleshooting and known issues.Web3 and Create-react-appIf you are using create-react-app version >=5 you may run into issues building. This is because NodeJS polyfills are not included in the latest version of create-react-app. Solution
If you are using yarn: yarn add --dev react-app-rewired process crypto-browserify stream-browserify assert stream-http https-browserify os-browserify url buffer If you are using npm: npm install --save-dev react-app-rewired crypto-browserify stream-browserify assert stream-http https-browserify os-browserify url buffer process
const webpack = require('webpack');
module.exports = function override(config) {
const fallback = config.resolve.fallback || {};
Object.assign(fallback, {
"crypto": require.resolve("crypto-browserify"),
"stream": require.resolve("stream-browserify"),
"assert": require.resolve("assert"),
"http": require.resolve("stream-http"),
"https": require.resolve("https-browserify"),
"os": require.resolve("os-browserify"),
"url": require.resolve("url")
})
config.resolve.fallback = fallback;
config.plugins = (config.plugins || []).concat([
new webpack.ProvidePlugin({
process: 'process/browser',
Buffer: ['buffer', 'Buffer']
})
])
return config;
}
before: "scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
}, after: "scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject"
}, The missing Nodejs polyfills should be included now and your app should be functional with web3.
In config.ignoreWarnings = [/Failed to parse source map/]; Web3 and AngularNew solutionIf you are using Angular version >11 and run into an issue building, the old solution below will not work. This is because polyfills are not included in the newest version of Angular.
npm install --save-dev crypto-browserify stream-browserify assert stream-http https-browserify os-browserify
{
"compilerOptions": {
"paths" : {
"crypto": ["./node_modules/crypto-browserify"],
"stream": ["./node_modules/stream-browserify"],
"assert": ["./node_modules/assert"],
"http": ["./node_modules/stream-http"],
"https": ["./node_modules/https-browserify"],
"os": ["./node_modules/os-browserify"],
}
}
import { Buffer } from 'buffer';
(window as any).global = window;
global.Buffer = Buffer;
global.process = {
env: { DEBUG: undefined },
version: '',
nextTick: require('next-tick')
} as any; Old solutionIf you are using Ionic/Angular at a version >5 you may run into a build error in which modules a work around for this is to go into your node-modules and at Another variation of this problem was an issue opned on angular-cli DocumentationDocumentation can be found at ReadTheDocs. BuildingRequirementssudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm Building (webpack)Build the web3.js package: npm run build Testing (mocha)npm test ContributingPlease follow the Contribution Guidelines and Review Guidelines. This project adheres to the Release Guidelines. CommunitySimilar libraries in other languages
Semantic versioningThis project follows semver as closely as possible from version 1.3.0 onwards. Earlier minor version bumps might have included breaking behavior changes. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论