问题标签 [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.
ethereum - 关于 Solidity
我制作了 2 个智能合约来接收发送的以太币,然后将其发送到特定的钱包地址。
第一个智能合约行为。 当contractaddress.transfer(value)被执行时,它只消耗9700 gas。Trx 哈希 - 0xb92aa187b9d6713f9f36ce5ce2edf00108703a9e9cf572d9a5143bb1631f98cb
第二个智能合约行为。 当contractaddress.transfer(value)被执行时,它消耗了34700 gas。Trx 哈希 - 0xa5d22d4db05f6851bb52a06ea2eefc12d75f242ee476f9dee3594c988b75eaa5
为什么这2个如此不同?我已经使用 Remix IDE 编译和部署了它们。
注意:以上 2 个合约使用不同的钱包地址集。我正在尝试使用 nanopool,他们提供的 gaslimit 只有 50k,这对于第二个智能合约来说是不够的,因为它的行为发生了变化。
struct - 为什么会出现错误:“InternalCompilerError:请求的静态内存负载超过 32 个字节”?
使用 Remix ( https://remix.ethereum.org/ ) 并使用 struct。编译器是0.4.19+commit.c4cbbb05
. “优化”未选中。
它显示错误:“InternalCompilerError:请求的静态内存负载超过 32 个字节。”
不知道为什么。在我看来,结构FooBar
只有 3 个字节大。我的两个函数都读取/写入单个FooBar
. 我在这里想念什么?
更新
稍微重构一下代码以使其更清晰:
显然,直接传递结构会导致编译错误,而传递单个字段则不会。想知道有什么区别。
javascript - 当结构有两个以上参数时,带有 array.push() 的 Solidity 函数不起作用
我已经通过 remix 将具有以下推送功能的合约部署到我的本地私有链。
如果我通过 web3Provider@remix 调用它,它可以正常工作,但是当我通过 geth 控制台或 JS 脚本调用它时contractInstance.setTestArrayByPush(<Add1>, <Add2>,<Int>)
,它不会将任何东西推送到数组中。当我从 TestComplex 结构中删除一个属性并且函数更改如下。它适用于 geth 和 remix。
所以我想知道 remix 函数调用和 geth 控制台有什么区别?我怎样才能将两个以上的参数传递到我的 Dapp 中的 stuct 数组中?
ethereum - 混音 | 无法连接到 Web3 提供程序
我在 web3 提供程序 (localhost:8545) 上运行时出错
所以我想出如下。
我在本地运行 geth,并提供了一些连接 remix 和 testnet 的选项。
我给了 -rpccorsdomain 因为混音是在 https 上。
无论如何,请检查 remix IDE 中“运行”选项卡上的“web3 证明者”。
然后,将地址修改为“ http://127.0.0.1:8545 ”而不是“ http://localhost:8545 ”。
我不知道为什么,但是当我这样修复时它仍然有效。我做了我的帐户并做了一些事情。
但是,由于某种原因,我不得不再次重新下载 geth。(我已经改变了我的电脑)。我现在正在同步块。我认为同步尚未完成,因为 blockNumber 为 0。
所以...我现在正在等待,但我想知道当 eth.syncing 未完全完成时可能会发生错误。
solidity - Solidity code gives VM exception error when called multiple times
Let's start with my solidity code :
The functions : Voting(), getAllCandidates(), setCandidate(), getVote(), setDescription(), getDescription(), getCurrentAddress() works fine when called multiple times. So, I guess we can ignore them for now.
The function setVote() runs fine the first time it executes ie. when a person votes for once. The problem arises when the same person tries to vote the second time. It gives the following error :
This might be a beginners mistake but I have been trying to fix this for 2 days straight and now I really need help.
Also,
I use Remix - browser based IDE to run/check my solidity code.
I use Ganache for test accounts.
Thanks.
ethereum - 调用部署在 Ropsten 测试网上的 SmartContract
我是智能合约开发的新手。我在以太坊区块链 Ropsten 测试网上部署了一个智能合约。我有智能合约地址和 ABI。我不确定如何从 geth 终端调用该智能合约的功能。
我是否必须同步整个区块链才能调用部署的任何智能合约功能?我尝试同步,但它从未完成。自一周以来,它一直停留在最后 100 个街区。当我在本地连接到 TestNet 时,我的以太币余额显示为 0。
反正我可以在网上做这个吗?通过 Remix IDE 或任何其他方式调用已部署的智能合约?
非常感谢任何帮助。
ethereum - Remix Ethereum 合约去哪儿了?
当我单击 remix.ethereum.org 下的创建时,我不明白智能合约的实际去向。如果我选择例如 Injected Web3,这应该将合同发布到 ropsten 测试网,对吗?但是我怎样才能访问合同呢?当我使用 metamask 时,它会在我使用 web3.js 时为我注入正确的提供者,但是如果我不想使用注入的 web3,而是在 web3.js 中手动选择提供者地址,我现在如何找到这个合约?我可以通过这种方式访问智能合约吗?
编辑:我不知道我的问题应该有什么问题。我真的没有发现如何连接到智能合约,例如在没有注入 web3 的 ropsten 测试网络中。通常你在 web3.js 中这样做:
但是,如果您没有注入的 web3,那么您将使用 localhost。但是我无法连接到智能合约,因为它不知道我实际上在哪个网络上发布了智能合约,对吧?
ethereum - 使用 Remix IDE 创建 ERC20 令牌时出错
我已经花了几个小时试图创建我的令牌,但每次我在 Remix 上单击“创建”时,它都会显示:
无效的 JSON RPC 响应:{"id":11,"jsonrpc":"2.0","error":{"code":-32603}}
我以前做过这个,它工作。我真的越来越生气了!我也讨厌使用 Truffle,所以我尝试使用它。
ethereum - Ethereum Remix 在部署合约时是否会忽略某些函数参数?
我有一份使用remix开发的合同。复制合约并编写 mocha 测试后,我在运行部署测试时收到以下错误:
错误:“未定义”的参数数量无效
1)“部署合同”的“每个之前”挂钩:错误:“未定义”的参数数量无效。得到 0 预期 1!
构造函数之前使用了一个参数,我意识到我错误地将变量类型地址作为测试(合同)构造函数的参数,而我没有在测试中提供。删除参数(未在构造函数中使用)后,测试通过。
它像我预期的那样在混音中工作(没有错误/警告),所以在将代码复制到编辑器之前我没有抓住它。
remix 在部署合约时会忽略错误参数吗?有没有办法在混音中捕捉到这个?
ethereum - Rinkeby 测试网络上的合约部署和交易不一致失败?
我正在使用 Infura 和 MetaMask 并部署到 Rinkeby 测试网络。合约在 Remix 中编译和运行没有错误。在控制台中编译合约后,它的部署不一致。当它失败时,我收到以下错误:
UnhandledPromiseRejectionWarning:错误:交易未在 50 个区块内开采,请确保您的交易已正确发送。请注意,它可能仍被开采!
在成功部署后执行事务时,我也会收到此错误。
是什么导致了这个错误?这与网络拥塞/流量有关吗?如果有帮助,我可以发布合同、编译和部署代码。