问题标签 [web3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 关于我使用本地 RPC、Web3 和 Remix 的第一份合同的一些问题
我是新手,我为 POC 创建了我的第一个智能合约。这个想法是模拟一个预订过程,客人支付初始押金(unlockDoor 方法),当他离开房间时,他将根据使用时间获得退款。
我将事件连接到我的树莓派,以便打开相关房间的灯。
它适用于 javascript 虚拟机,但使用本地 RPC 我有一些问题,我不明白为什么。
- 使用 html 页面中的简单按钮,unlockDoor 和 lockDoor 方法不会打开元掩码弹出窗口以接受交易。控制台内没有错误。
- 将 remix 与本地 RPC 一起使用:解锁门有效,锁门生成错误错误:执行事务时 VM 异常:气体不足。很多文章说要增加gas值,但它不起作用。可能我错过了什么。我不明白什么。使用 javascript 虚拟机所有方法都可以正常工作。
- 使用 RPC(和测试网),lock 方法中的双重传输可能会产生一些奇怪的东西。这些双重操作正确吗?我必须以其他方式管理它们吗?
- 基于第 2 点和第 3 点:对如何使用“应付”指令产生了混淆。
Index.html 的 javascript
合同。注意:成本是每秒仅用于测试pourpose
javascript - 关于通过 web3 转移以太坊代币的问题
我正在尝试实现令牌转移,我在第一次测试时做到了。
它能够签入https://etherscan.io/tx/0x91ed7e481e0cced5600bb91498017a9ec02064710395363f57f2aa8c0a480b44
但我收到错误消息,例如“交易未在 50 个区块内开采,请确保您的交易已正确发送。请注意,它可能仍被开采!
让我知道是什么问题。
这是简单的代码,但它在第一时间被唤醒。我能够了解。请帮帮我
javascript - Solidity 函数修改值失败
使用 Truffle 开发框架(web3、react 和solidity)来测试一个简单的智能合约。当我按下 UI 上的按钮时,我正在测试一个基本功能,但它似乎没有按我预期的方式工作。我希望合同能够增加价值并返回 true。请注意,该值稍后会显示在前端,因为这是我正在玩的。代码如下:
Solidity 合约
应用程序.js
为澄清起见,当单击 HTML 按钮时调用 modiftyTotal。控制台语句返回值“false”,实际总值似乎永远不会改变。有任何想法吗?
javascript - 使用 web3 传输自定义 ERC20 令牌(无效地址错误)
我正在使用 web3 库版本 0.20.2。我想用我的智能合约做的只是转移自定义的 erc20 代币。
下面的智能合约代码(sloidity)
我想使用此功能将我的自定义令牌转移到 _to(地址)。
这是我的控制台。
我不知道怎么了,我错过了什么吗?请让我知道如何解决此“无效地址”错误。谢谢!
javascript - 适当的 node.js 抽象以防止访问以太坊区块链时出现竞争条件
我正在使用 web3 版本1.0.0-beta.27
,其中对区块链的所有访问都是异步的,显然这开启了竞争条件的可能性,即:
上面的最后一行是人为的,它在那里证明我想accounts
在评估后使用它。即,最终我想从前端express.js
Web 应用程序甚至移动应用程序修改/读取区块链,所以为了严谨起见,node.js
确保竞争条件永远不会发生的常用工具是什么?这些工具存在吗?如果不是什么是一些常见的做法。我node.js
也是新手。
ethereum - web3.toAscii 不是函数
我正在尝试Bytes32
使用 web3.toAscii 将数据转换为以太坊(智能合约)中的字符串。但是,它给我一个错误(web3.toAscii 不是一个函数)。只是想知道这是一个已知问题还是 web3 API 中的错误?
node.js - web3.eth.subscribe 未针对 web3 版本 1.0.0-beta.27 实现
我使用的是 web3 版本1.0.0-beta.27
,并且我正在运行一个私有以太坊区块链以进行测试。区块链正在挖矿并且有两个用户,现在我想subscribe
在区块链中进行事件并执行一些操作。代码如下:
我得到类似的东西:
从某种意义上说,这并不奇怪,因为当我web3.eth.subscribe
在node.js
控制台上这样做时,我得到:
即使web3-1.0.0
声明该功能的文档也可以使用:https ://web3js.readthedocs.io/en/1.0/web3-eth-subscribe.html 。
那么这仅仅是文档与实际实现不同步的问题吗?我用错了吗?
如果没有实现,那么在链中监听变化的最佳方式是什么?例如,如果我想实时更新用户的账户余额?除了一个简单的实现功能之外,它每隔
n
几分之一秒就对链进行 ping 操作。
javascript - 使用 web3 发送 ERC20 令牌
我目前正在使用 0.2xx 版本的 Web3 Javascript API。我通过在 Solidity 中创建智能合约(在 REMIX IDE 上)部署了我的自定义 ERC20 代币。我安装了 MetaMask 并在https://wallet.ethereum.org/上进行了测试,以将一些自定义 ERC 令牌发送到我的另一个帐户。它运作良好。我想使用 Web3 在我的 javascript 代码中添加“发送自定义 ERC20 令牌”功能。
下面是我的代码。
我正在开发“Ropsten 测试网”,并使用sendRawTransaction()
. 但我想做的只是发送我的自定义 ERC20 令牌。不是以太。如何在此脚本中发送我自己的令牌?我不知道。我试着sendTransaction()
像下面这样使用。
我不断收到错误。
我真的无法理解它有什么问题。请让我知道一些处理这个问题的方法。谢谢!
python - 如何修复 web3 模块 AttributeError?
我正在尝试在 python 中使用 web3。
我正在尝试按照http://web3py.readthedocs.io/en/stable/web3.eth.html#web3.eth.Eth中的步骤进行操作
但是得到了AttributeError: module 'web3.eth' has no attribute 'getBlock'
。
我在 python 3 和 python 2.7 中都试过,得到了相同的结果。
有什么建议吗?
谢谢
javascript - 未处理的拒绝错误:无效的 JSON RPC 响应:“”
我正在尝试在我的 ERC20 代币合约上调用一个方法。我正在连接到“ https://rinkeby.infura.io/”httpProvider。我可以call()常量方法,但是当我想通过调用send()函数来更改合约的状态时,我得到了这个提到的错误。如果您认为发布 ABI JSON 或 Solidity 合同有帮助,我也可以提供。我认为我的问题纯粹是web3相关的。我认为我需要(逻辑上)签署交易,但 web3 文档没有提及任何内容。http://web3js.readthedocs.io/en/1.0/web3-eth-contract.html#methods-mymethod-send
这是我得到的错误:
从调用此方法:
这是该方法的 ABI 片段: