问题标签 [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.
javascript - 为什么 balanceOf 有时在交换后返回 0?
我可能对 EVM 的工作方式有误解,但我正在运行一个脚本,该脚本使用 uniswap sdk 执行令牌交换,然后在数据库/控制台中记录这两个令牌的余额。即使交换成功,ERC20 合约的 balanceOf 函数也会间歇性地返回 0,我可以在资源管理器上看到余额不是 0。
我理解的方式是,一旦在交换中发出转移事件并且交易被挖掘(我正在等待这个),应该更新地址的余额。
下面的示例代码:
谢谢。
ethereum - 我需要支付汽油费来分发基于以太坊的加密货币吗?
如果我要创建自己的基于以太坊的名为“ExampleCoin”的加密代币,供应量为 1,000,000,000,并决定将其分发给用户玩我的游戏,我每次给用户一些 ExampleCoin 时是否需要支付汽油费?
如果我有一个游戏商店,用户可以使用 ExampleCoin 进行购买,是否需要支付 gas 费才能将 ExampleCoin 从用户发送到游戏?
blockchain - 如何运行本地极光节点?
- 我想从本地节点同步数据。
- 本地节点需要像“https://mainnet.aurora.dev”那样支持eth_rpc。
ethereum - 如何在solidity中实现O(1)除数算法
语言:solidity 平台:以太坊,EVM 问题:目前有一个红利池。2% 的交易手续费将在每天 0 UTC 分发,每笔交易的 2% 必须实时分发。如何做到每个用户都能得到自己的实际平均分,但又不会导致Gas超标?
blockchain - 无需源代码即可与solidity库交互
我正在尝试在不使用其源代码的情况下与 Solidity 库进行交互。该库位于 rospten 网络上的地址 0xc0b843678E1E73c090De725Ee1Af6a9F728E2C47。我试图创建一个“抽象合同”,我在图书馆地址调用它,但是我得到一个错误。见下文:我的错误。这是我尝试将库实现为抽象合同的方式。抽象合同。这就是我如何调用它并尝试在我的合约“令牌”中使用库中的函数。见第 19 和 20 行。看看我在哪里尝试调用库“customSend”函数
blockchain - 从solidity 开始,尝试使用另一个智能合约来部署智能合约。虚拟机错误:还原
我正在尝试使用另一个智能合约部署合约“SimpleStorage.sol”,但每次尝试使用我创建的功能时都会出错。
我认为我的代码没有任何问题,但我可能是错的。Imgur 截图链接:https ://imgur.com/a/vJYbmKi
这是 SimpleStorage.sol 合约:
这是应该部署另一个合同的合同:
错误信息是imgur中的最后一张图片,感谢任何可以提供帮助的人。
blockchain - 代币或硬币可以交易另一种加密资产吗?
我想创建一个可以交易另一个代币的代币。是否有可能这样做是为了让人们购买这种代币,其价格取决于交易操作?我知道它看起来像一个普通的交换帐户,但我不想出售机器人,我需要将机器人与令牌合并。它应该是一个稳定的代币/硬币+机器人。请给我任何建议。
ethereum - 固体/以太坊。关于天然气的更便宜的替代品
我正在学习solidity/ethereum,我遇到了这种情况:
我有一个映射(地址 => 单元)来跟踪每个地址为我的合同支付了多少,并且在某些时候,我必须计算一个用户贡献了多少% 的总池。(例如,如果总池为 100 个以太,用户贡献了 10 个以太,他贡献了总池的 10%)。
为此,我需要访问总池。我的第一直觉是有一个变量 totalPool 来跟踪总价值,因此每次地址支付合同时,totalPool += msg.value; 然而,在学习 EVM 的同时,我一直在阅读在存储上运行的成本是多么昂贵。
我的问题是,就 gas 而言,跟踪总池并在每次地址支付合同时在内存上操作,或者每次我需要找出比率贡献时计算总池,什么更便宜?
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%。
任何帮助将不胜感激。谢谢。
arrays - 如何通过可靠的函数更改/设置映射的值?
在这里再次询问,因为无法访问以太坊堆栈交换
我有以下结构,带有提到的映射
我正在使用此函数来设置/更改上述映射的值
但我没有得到任何输出。不知何故,这种变化没有得到反映。我做错了吗?希望对我的代码片段提出建议和更改。
我将不胜感激。蒂亚。
如果您需要进一步澄清,请在评论中提及。
除了我的问题:我在想,也许问题是我检索值的方式?如果是这样,这就是我检索值的方式。假设我的合同名称是 C。这是我的测试方式:
现在,在运行这些之后,我期望 t[0] 给出 1。但它什么也没给出(未定义)。
PS-1234 是我用作上述映射的测试索引的任何值。