问题标签 [evm]

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 回答
50 浏览

javascript - 为什么 balanceOf 有时在交换后返回 0?

我可能对 EVM 的工作方式有误解,但我正在运行一个脚本,该脚本使用 uniswap sdk 执行令牌交换,然后在数据库/控制台中记录这两个令牌的余额。即使交换成功,ERC20 合约的 balanceOf 函数也会间歇性地返回 0,我可以在资源管理器上看到余额不是 0。

我理解的方式是,一旦在交换中发出转移事件并且交易被挖掘(我正在等待这个),应该更新地址的余额。

下面的示例代码:

谢谢。

0 投票
2 回答
170 浏览

ethereum - 我需要支付汽油费来分发基于以太坊的加密货币吗?

如果我要创建自己的基于以太坊的名为“ExampleCoin”的加密代币,供应量为 1,000,000,000,并决定将其分发给用户玩我的游戏,我每次给用户一些 ExampleCoin 时是否需要支付汽油费?

如果我有一个游戏商店,用户可以使用 ExampleCoin 进行购买,是否需要支付 gas 费才能将 ExampleCoin 从用户发送到游戏?

0 投票
1 回答
263 浏览

blockchain - 如何运行本地极光节点?

  • 我想从本地节点同步数据。
  • 本地节点需要像“https://mainnet.aurora.dev”那样支持eth_rpc。
0 投票
0 回答
51 浏览

ethereum - 如何在solidity中实现O(1)除数算法

语言:solidity 平台:以太坊,EVM 问题:目前有一个红利池。2% 的交易手续费将在每天 0 UTC 分发,每笔交易的 2% 必须实时分发。如何做到每个用户都能得到自己的实际平均分,但又不会导致Gas超标?

0 投票
2 回答
51 浏览

blockchain - 无需源代码即可与solidity库交互

我正在尝试在不使用其源代码的情况下与 Solidity 库进行交互。该库位于 rospten 网络上的地址 0xc0b843678E1E73c090De725Ee1Af6a9F728E2C47。我试图创建一个“抽象合同”,我在图书馆地址调用它,但是我得到一个错误。见下文:我的错误。这是我尝试将库实现为抽象合同的方式。抽象合同。这就是我如何调用它并尝试在我的合约“令牌”中使用库中的函数。见第 19 和 20 行看看我在哪里尝试调用库“customSend”函数

0 投票
0 回答
22 浏览

blockchain - 从solidity 开始,尝试使用另一个智能合约来部署智能合约。虚拟机错误:还原

我正在尝试使用另一个智能合约部署合约“SimpleStorage.sol”,但每次尝试使用我创建的功能时都会出错。

我认为我的代码没有任何问题,但我可能是错的。Imgur 截图链接:https ://imgur.com/a/vJYbmKi

这是 SimpleStorage.sol 合约:

这是应该部署另一个合同的合同:

错误信息是imgur中的最后一张图片,感谢任何可以提供帮助的人。

0 投票
0 回答
18 浏览

blockchain - 代币或硬币可以交易另一种加密资产吗?

我想创建一个可以交易另一个代币的代币。是否有可能这样做是为了让人们购买这种代币,其价格取决于交易操作?我知道它看起来像一个普通的交换帐户,但我不想出售机器人,我需要将机器人与令牌合并。它应该是一个稳定的代币/硬币+机器人。请给我任何建议。

0 投票
1 回答
42 浏览

ethereum - 固体/以太坊。关于天然气的更便宜的替代品

我正在学习solidity/ethereum,我遇到了这种情况:

我有一个映射(地址 => 单元)来跟踪每个地址为我的合同支付了多少,并且在某些时候,我必须计算一个用户贡献了多少% 的总池。(例如,如果总池为 100 个以太,用户贡献了 10 个以太,他贡献了总池的 10%)。

为此,我需要访问总池。我的第一直觉是有一个变量 totalPool 来跟踪总价值,因此每次地址支付合同时,totalPool += msg.value; 然而,在学习 EVM 的同时,我一直在阅读在存储上运行的成本是多么昂贵。

我的问题是,就 gas 而言,跟踪总池并在每次地址支付合同时在内存上操作,或者每次我需要找出比率贡献时计算总池,什么更便宜?

0 投票
1 回答
48 浏览

blockchain - Web3.js。无法通过 Rinkeby 测试网发送 ERC20 代币?终端说交易已被 EVM 还原

问题

为了在 EVM 上成功交易,我需要进行哪些更改?我在下面的代码中哪里出错了。

我做了什么

我正在尝试使用 Web3 将代币从我的钱包地址发送到另一个钱包地址。以下是我尝试执行此操作的方法,但我的交易从未成功。

初始化我的令牌 web3 和 ABI 代码

将令牌 TXN 发送到地址的函数

这给了我错误Error: Transaction has been reverted by the EVM: 和一个女巫的交易哈希,你可以在https://rinkeby.etherscan.io/tx/0x7f0ca267163219d2c8c783e9fdc8ec3a4c1d1c0c1c52d6a405c3763cac240d9c0x7f0ca267163219d2c8c783e9fdc8ec3a4c1d1c0c1c52d6a405c3763cac240d9c看到自己

我尝试更改许多变量(尤其是 gas 和 Ga),试图让代币从我的地址发送到,TA1.address但交易不断被 EVM 还原

另一件事。我注意到,无论我设置的 gas 限制有多高,Etherscan 都表示它已经使用了 100%。我已经为非常高的数字设置了气体限制,但使用率始终是 100%。

任何帮助将不胜感激。谢谢。

0 投票
0 回答
116 浏览

arrays - 如何通过可靠的函数更改/设置映射的值?

在这里再次询问,因为无法访问以太坊堆栈交换

我有以下结构,带有提到的映射

我正在使用此函数来设置/更改上述映射的值

但我没有得到任何输出。不知何故,这种变化没有得到反映。我做错了吗?希望对我的代码片段提出建议和更改。

我将不胜感激。蒂亚。

如果您需要进一步澄清,请在评论中提及。

除了我的问题:我在想,也许问题是我检索值的方式?如果是这样,这就是我检索值的方式。假设我的合同名称是 C。这是我的测试方式:

现在,在运行这些之后,我期望 t[0] 给出 1。但它什么也没给出(未定义)。

PS-1234 是我用作上述映射的测试索引的任何值。