我使用 Webpack 5 创建了一个新的 React 项目,npx create-react-app client
并遇到了一些问题。最初,我在 、 和 方面遇到了错误assert
,os
但stream
通过安装它们并将它们包含在webpack.config.js
. 该文件位于client/src
文件夹中。
错误如下所示:
Compiled with problems:
ERROR in ./node_modules/eth-lib/lib/bytes.js 9:193-227
Module not found: Error: Can't resolve 'crypto' in 'C:\Users\Username\Projects\testProject\client\node_modules\eth-lib\lib'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a …
Run Code Online (Sandbox Code Playgroud) 我正在使用 MetaMask 将交易发送到我的 DApp 中的合约。我需要有关如何在用户单击注销按钮时断开 MetaMask 帐户与我的 DApp 的帮助。
前端:ReactJS
后端:Web3js、Solidity(以太坊)
我正在尝试提取钱包地址持有的代币合约列表,类似于 bscscan 的做法,但以编程方式除外。bscscan.com/apis 没有端点,web3js 似乎只报告 ETH 余额。
这是可以实现的,因为 bscscan 报告列表并且许多令牌跟踪器(例如 farmfol.io )似乎也提取该信息。我只是没有找到正确的方法
我的 dApp 必须连接到 MetaMask。文档中有两种粗鲁的解决方案:让用户每次手动单击连接 btn 或在页面加载后弹出连接确认。我想实现唯一方便的解决方案:第一次用户通过单击连接 btn 并与 MetaMask 弹出窗口交互来手动连接,然后我的 dApp 检测到连接仍然建立并使用此连接。我找不到解决方案,但我在其他 dApp 中看到了这个(例如捕获以太)我使用:
import detectEthereumProvider from '@metamask/detect-provider';
const provider = await detectEthereumProvider();
if (provider) {
connect(provider)
} else {
// kind of "Install the MetaMask please!"
}
function connect(provider) {
// How to check if the connection is here
if (//connection established) {
// Show the user connected account address
} else {
// Connect
provider.request({ method: "eth_requestAccounts" })
.then // some logic
}
}
Run Code Online (Sandbox Code Playgroud) 我试着去整合web3js与Trezor在松露开发网络或使用设有通往Ropsten测试网络.
我们的想法是使用硬件钱包签署交易,然后使用web3js发送原始交易
我得到了我们没有平衡来进行交易,可能是因为web3js没有使用10个松露帐户中的一个并使用不在我的本地网络中的trezor地址.
在ropsten我有一些醚,我得到"无效地址"
有没有办法使用web3js将已签名的交易(使用trezor)发送到松露开发网络?我的意思是,有没有办法将trezor地址包含在松露网络中?
松露的情况在这里有更详细的解释,但问题可以概括为" 有没有办法将硬件钱包纳入松露开发网络? ":https://github.com/trufflesuite/truffle/issues/973
使用ropsten我已经设法发送一个事务并在回调中接收一个事务哈希,但如果我们查询该事务,我们得到该事务不存在..所以..这怎么可能?
我也尝试将合同部署到Ropsten,现在我在调用智能合约函数时得到"无效地址".也许签名功能错了?有人可以将Trezor交易登录与web3js集成吗?
你们看到我们遵循的签名和发送过程中有什么问题吗?也许R,V和S参数处理有问题..
另一个重要的事情是我使用https://github.com/ethereumjs/ethereumjs-tx来创建原始事务
web3js,truffle和trezzor中发布的问题可以提供更多信息:
亲切的问候
trezorLogin = async()=> {
let trezor= await this.getTrezor();
// site icon, optional. at least 48x48px
let hosticon = 'https://doc.satoshilabs.com/trezor-apps/_images/copay_logo.png';
// server-side generated and randomized challenges
let challenge_hidden = '';
let challenge_visual = '';
//use anonimous functions on callback otherwise returns cross origin errors …
Run Code Online (Sandbox Code Playgroud) 我目前正在升级以太坊 dApp(使用 React JS)以符合新的 EIP-1559 标准(又名伦敦硬分叉)。该应用程序使用 web3.js (v1.5.2) 发起交易,其形式类似于
const contract = new web3.eth.Contract(
contractABI,
CONTRACT_ADDRESS,
);
await contract.methods
.deposit(recepient, amount)
.send({ from: account, value })
Run Code Online (Sandbox Code Playgroud)
我们鼓励用户使用 MetaMask 与我们的应用程序交互。
尽管我在发送交易时既没有指定gasPrice
、gasLimit
、 也没有指定等效项maxPriorityFeePerGas
或maxFeePerGas
由 EIP-1559 指定,MetaMask 仍然警告(在我的本地测试环境中)“localhost 建议的汽油费”,并带有“未知的处理时间”和潜在的潜在风险。巨额费用。
单击“编辑”时会出现另一条警告消息,更糟糕的是,根据 MetaMask 的估计,我(或我猜 web3)所谓“建议”的值并不合理。
有没有办法使用 web3 与 MetaMask 接口来接受 MetaMask 的建议值,删除这些 MetaMask 警告并确保费用计算正确?我注意到查看https://app.uniswap.org/时发现,尽管 MetaMask 仍然显示第一个“app.unswap.org 建议的汽油费”警告,但 txn 时间已正确计算,并且单击“编辑”不会出现任何进一步的警告警告。Uniswap 与 MetaMask 更合理的交互是否可以使用 web3.js 复制?
如何使用 Solana 的 web3.js sdk 传输 SOL?
我已经在这里发布了使用创建的 react-native 应用程序
react-native init myapp
added web3 in package.json
npm install
react-native run-ios
Run Code Online (Sandbox Code Playgroud)
但我收到了无法从 web3-eth-accounts 解析模块加密的错误。有没有什么办法解决这一问题
我想在 vue 和 laravel 8 上使用“web3”和“walletconnect/web3-provider”包。我通过 npm i --save web3 @walletconnect/web3-provider 命令安装它,然后添加以下代码以导入到 vue。
import Vue from "vue";
import Web3 from "web3";
import WalletConnect from "@walletconnect/client";
import QRCodeModal from "@walletconnect/qrcode-modal"
import WalletConnectProvider from "@walletconnect/web3-provider";
const connector = new WalletConnect({
bridge: "https://bridge.walletconnect.org", // Required
qrcodeModal: QRCodeModal,
});
window.walletConnector = connector;
// Create WalletConnect Provider
const provider = new WalletConnectProvider({
infuraId: "27e484dcd9e3efcfd25a83a78777cdf1",
});
// Enable session (triggers QR Code modal)
await provider.enable();
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
./node_modules/cipher-base/index.js 2:16-43 中的错误:找不到模块:错误:无法解析“/var/www/tok/node_modules/cipher-base”中的“流”
重大更改:webpack < 5 …