问题标签 [remix]
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.
solidity - 如何在 REMIX(Solidity IDE)中从 web3 调用带有参数的构造函数
所以我用 Remix IDE 和一个带有这个合同参数的构造函数做了一个名为“投票”的合同
我通过这样做调用了合同:
所以直到现在一切正常!但现在我需要使用带有参数的构造函数部署智能
我发现很少有这样的方法:
但这对我不起作用!我怎么能用来自 web3.eth.contract 的 REMIX 中的参数调用我的智能合约构造函数!感谢:D
javascript - 通过 web3 访问 Ganache 帐户
如何使用专用网络在 web3 中创建帐户变量?现在我在 ganache 端口:7545
我在我的代码中写了这个变量:
当我记录它时,它只返回当前在我的元掩码中选择的变量。
因此,如果我在元掩码中的帐户 1 上,那么这个^ var 记录地址帐户 1,如果我在帐户 2 上,相同的 var 将记录帐户 2 地址。
那么如何制作一个可以访问我目前没有选择的导入的 ganache 元掩码帐户的 var?
即我在我的元掩码中选择了 Account1,我想要
抢Account2
arguments - Solidity Remix:传递多个 bytes32 类型参数
如何在 Remix 中传递多个参数?无论我以哪种方式将参数传递给setOrder
函数,都会得到不同的错误:
SyntaxError:位置 1 处的 JSON 中的意外标记
错误:无效的 bytes32 值(arg=undefined,type="string",value="abc")
这是代码:
javascript - 简单传输在注入的 Web3 中不起作用
我有一个非常简单的solidity函数,仅用于将一些以太币从一个地址转移到另一个地址
在混音中,当我只是在 Javascript VM 上时,它可以正常工作
但是当我切换到注入的 web3 时,我遇到了一些意想不到的错误。
一方面,我的元掩码显示为以太币将发送到合同的地址,而不是我试图将其发送到的地址,加上元掩码中的值由于某种原因而为 0,而我试图发送我的总合约余额肯定知道是 5 醚。
这是我的控制台中记录的内容:
transact to SimpleDapp.transferEtherTo errored: Error: Error: [ethjs-rpc] rpc error with payload {"id":41874278090,"jsonrpc":"2.0","params":["0xf88a2b8501a13b860082786c9459a42535f42048040c3f5a1152c94af40c7169db80a45c4bade1000000000000000000000000c5fdf4076b8f3a5357c5e395ab970b5b54098fef822d46a09f632a5dbe56be62a9c245f23fa62d9fd8aee230bbda026c6d5822339d2bf9b3a01b4a248bca87bcb491f6f11a572bf158ba86459336e5b1b7eb91f1dda5fde87d"],"method":" eth_sendRawTransaction"} 错误:处理事务时出现 VM 异常:气体不足
知道为什么这在 JavacsriptVM 中工作正常而不是在注入的 web 3 中工作吗?
ethereum - remix JS VM 环境是否与 Solidity 开发的本地环境相同?
我为此花了几个小时有点迷茫,但我不知道为什么,基本上我有这个 Solidity 合约(引诱区块链的第 3 天)。该代码在 remix JS VM 环境中工作,但是当我尝试构建本地并使用 web3 在 ganache-cli 中运行它时,它将部署第一个工厂合同,但它不会使用工厂 createFund 函数来制作第二个合同。是否有不同的形式将 JS VM 环境重新混合到本地环境。还是我只是因为我还是新手而错过了什么?
下面是我正在玩的代码。
return-value - 来自合约的合约调用失败(在 VM 中成功)
以下测试合约通过 Remix 在 JavaScript VM 中部署和运行时按预期工作,但是当使用“Injected Web3”运行时,二级合约 TestA02 T2 的生成按预期生成和填充,所有 get 函数都通过主合约 TestA01 调用返回“0”值。如果您复制 TestA02 合约的地址并直接从 Remix 中寻址,则会返回预期值。代码如下。
这是我的错误还是误解?
说明:使用 Mist 版本 0.10.0 中的 Remix 编译和部署主合约代码 TestA01。
调用传递任何地址的 genEntry 函数。
然后调用任何 get 函数。
代码:
主合约代码TestA01:
二级合约代码TestA02:
blockchain - Solidity 状态变量在函数内部重置为默认值
对于这个项目,我正在使用 Solidity 为以太坊编写智能合约。
在以下代码中,变量numCertificates
最初应为 1。尽管如此,newCertificateId 在分配时为 0。根据调试器(我正在使用 remix.ethereum.org),由于某种原因,一旦到达分配 newCertificateId 的行,numCertificates 就会变为 0。
我玩过很多混音,根据它,numCertificates 是 1,直到达到上述行。另外,我认为如果我在另一个函数中修改 numCertificates,该变量将保持与以前相同。
我试图弄清楚这一点的尝试使我相信,当我访问 numCertificates 时,我访问的不是公共状态变量,而是其他东西。
为什么这段代码会出现这个问题,如何解决?
solidity - 如果 for 循环中的语句没有过滤掉可靠的项目
结果应该是与输入的物理地址匹配的 id 列表,但它不会过滤,而是返回所有可用的房屋。当我更改为使用 String utils 时,没有任何变化。
这是整个代码: