问题标签 [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.

0 投票
0 回答
64 浏览

ethereum - 关于 Solidity

我制作了 2 个智能合约来接收发送的以太币,然后将其发送到特定的钱包地址。

第一个智能合约行为。 当contractaddress.transfer(value)被执行时,它只消耗9700 gas。Trx 哈希 - 0xb92aa187b9d6713f9f36ce5ce2edf00108703a9e9cf572d9a5143bb1631f98cb

第二个智能合约行为。 当contractaddress.transfer(value)被执行时,它消耗了34700 gas。Trx 哈希 - 0xa5d22d4db05f6851bb52a06ea2eefc12d75f242ee476f9dee3594c988b75eaa5

为什么这2个如此不同?我已经使用 Remix IDE 编译和部署了它们。

注意:以上 2 个合约使用不同的钱包地址集。我正在尝试使用 nanopool,他们提供的 gaslimit 只有 50k,这对于第二个智能合约来说是不够的,因为它的行为发生了变化。

0 投票
1 回答
610 浏览

struct - 为什么会出现错误:“InternalCompilerError:请求的静态内存负载超过 32 个字节”?

使用 Remix ( https://remix.ethereum.org/ ) 并使用 struct。编译器是0.4.19+commit.c4cbbb05. “优化”未选中。

它显示错误:“InternalCompilerError:请求的静态内存负载超过 32 个字节。”

不知道为什么。在我看来,结构FooBar只有 3 个字节大。我的两个函数都读取/写入单个FooBar. 我在这里想念什么?

更新

稍微重构一下代码以使其更清晰:

显然,直接传递结构会导致编译错误,而传递单个字段则不会。想知道有什么区别。

0 投票
1 回答
2995 浏览

javascript - 当结构有两个以上参数时,带有 array.push() 的 Solidity 函数不起作用

我已经通过 remix 将具有以下推送功能的合约部署到我的本地私有链。

如果我通过 web3Provider@remix 调用它,它可以正常工作,但是当我通过 geth 控制台或 JS 脚本调用它时contractInstance.setTestArrayByPush(<Add1>, <Add2>,<Int>),它不会将任何东西推送到数组中。当我从 TestComplex 结构中删除一个属性并且函数更改如下。它适用于 geth 和 remix。

所以我想知道 remix 函数调用和 geth 控制台有什么区别?我怎样才能将两个以上的参数传递到我的 Dapp 中的 stuct 数组中?

0 投票
6 回答
9423 浏览

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 未完全完成时可能会发生错误。

0 投票
1 回答
344 浏览

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 :

enter image description here

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.

0 投票
1 回答
1334 浏览

ethereum - 调用部署在 Ropsten 测试网上的 SmartContract

我是智能合约开发的新手。我在以太坊区块链 Ropsten 测试网上部署了一个智能合约。我有智能合约地址和 ABI。我不确定如何从 geth 终端调用该智能合约的功能。

  1. 我是否必须同步整个区块链才能调用部署的任何智能合约功能?我尝试同步,但它从未完成。自一周以来,它一直停留在最后 100 个街区。当我在本地连接到 TestNet 时,我的以太币余额显示为 0。

  2. 反正我可以在网上做这个吗?通过 Remix IDE 或任何其他方式调用已部署的智能合约?

非常感谢任何帮助。

0 投票
1 回答
2420 浏览

ethereum - Remix Ethereum 合约去哪儿了?

当我单击 remix.ethereum.org 下的创建时,我不明白智能合约的实际去向。如果我选择例如 Injected Web3,这应该将合同发布到 ropsten 测试网,对吗?但是我怎样才能访问合同呢?当我使用 metamask 时,它会在我使用 web3.js 时为我注入正确的提供者,但是如果我不想使用注入的 web3,而是在 web3.js 中手动选择提供者地址,我现在如何找到这个合约?我可以通过这种方式访问​​智能合约吗?

编辑:我不知道我的问题应该有什么问题。我真的没有发现如何连接到智能合约,例如在没有注入 web3 的 ropsten 测试网络中。通常你在 web3.js 中这样做:

但是,如果您没有注入的 web3,那么您将使用 localhost。但是我无法连接到智能合约,因为它不知道我实际上在哪个网络上发布了智能合约,对吧?

0 投票
0 回答
401 浏览

ethereum - 使用 Remix IDE 创建 ERC20 令牌时出错

我已经花了几个小时试图创建我的令牌,但每次我在 Remix 上单击“创建”时,它都会显示:

无效的 JSON RPC 响应:{"id":11,"jsonrpc":"2.0","error":{"code":-32603}}

我以前做过这个,它工作。我真的越来越生气了!我也讨厌使用 Truffle,所以我尝试使用它。

0 投票
1 回答
916 浏览

ethereum - Ethereum Remix 在部署合约时是否会忽略某些函数参数?

我有一份使用remix开发的合同。复制合约并编写 mocha 测试后,我在运行部署测试时收到以下错误:

错误:“未定义”的参数数量无效

1)“部署合同”的“每个之前”挂钩:错误:“未定义”的参数数量无效。得到 0 预期 1!

构造函数之前使用了一个参数,我意识到我错误地将变量类型地址作为测试(合同)构造函数的参数,而我没有在测试中提供。删除参数(未在构造函数中使用)后,测试通过。

它像我预期的那样在混音中工作(没有错误/警告),所以在将代码复制到编辑器之前我没有抓住它。

remix 在部署合约时会忽略错误参数吗?有没有办法在混音中捕捉到这个?

0 投票
1 回答
574 浏览

ethereum - Rinkeby 测试网络上的合约部署和交易不一致失败?

我正在使用 Infura 和 MetaMask 并部署到 Rinkeby 测试网络。合约在 Remix 中编译和运行没有错误。在控制台中编译合约后,它的部署不一致。当它失败时,我收到以下错误:

UnhandledPromiseRejectionWarning:错误:交易未在 50 个区块内开采,请确保您的交易已正确发送。请注意,它可能仍被开采!

在成功部署后执行事务时,我也会收到此错误。

是什么导致了这个错误?这与网络拥塞/流量有关吗?如果有帮助,我可以发布合同、编译和部署代码。