问题标签 [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.
blockchain - Msg.sender 在“视图”函数中不起作用,为什么?有解决方法吗?
我想创建一个可查看的函数(需要向用户返回一个字符串)来搜索 msg.sender 的映射,如果 senders 值为 x,我希望合同相应地进行。这一切都在混音中有效,但如果我将它上传到 ropsten,它就不再适用了。这是一个已知的问题?我也尝试过 tx.origin ,结果相同。那是我尝试过的有问题的代码:
编辑:我认为问题是,当使用可查看功能时,没有 msg.sender 因为没有实际交易?有没有办法在不使用“视图”功能的情况下向用户返回值?
ethereum - 类型错误:变量查找 balanceOf[msg.sender] = totalSupply_ 后未找到匹配声明
因此,我使用 Openzepplin solidity 合约的组合来创建一个供应上限为 300 万的可燃烧代币。我在上一份合同中不断收到上述错误,我不知道为什么。我尝试用 balances[msg.sender] 替换 balanceOf[msg.sender],用 totalSupply 替换 totalSupply_,并在本地合约中重新声明公共 uint256 的存在(尽管它应该被继承。
以下是我的所有依赖项的扁平化合同(感谢您的帮助!):
ethereum - 如何在实体映射中使用字符串数组?
我需要存储一个字符串到solidity
合同中 128 字节长的项目之间的映射。问题是最长的字节数据类型是bytes32
,它不够长,如果我尝试将字符串存储在 a 中,则会string array
出现以下错误:
所以我不能使用bytes32
,因为它不够大。我不能使用bytes
,因为它不受支持。而且我不能使用string[]
,因为它是实验性的,不推荐在生产中使用。
有什么解决办法吗?
这是我正在使用的合同:
solidity - 使用 Web3 提供程序在 Remix IDE 上部署智能合约的问题
当我将 Remix 中的环境从 JavaScript VM 更改为 Web3 Provider 然后单击部署时,我在控制台中收到一条消息,指出我的智能合约处于待处理状态。还会显示一个红色 X。
这是我一直在关注的教程:https://coursetro.com/posts/code/99/Interacting-with-a-Smart-Contract-through-Web3.js-(Tutorial)
blockchain - 如何在不每次部署的情况下测试合约?
4天前我开始学习solidity。每次我按照以下步骤操作时:
1 - 打开 remix Solidity Ide 站点 2 - 设置 ropsten 测试网络(注入 web3) 3 - 部署 4 - 使用 web3 js 进行一些反应编码 5 - 尝试来自我的前端应用程序或来自 remix 站点中的蓝色/红色按钮的一些调用
一切似乎都有效,但例如,如果编译器不会在代码中发现错误但我错了一些逻辑,我需要使用其 kill 函数终止现有合同,然后通过编辑部署一个新合同。
我知道单元测试有松露,我希望将来使用,但我需要一个“手动”测试来重现与元掩码的手动交互。
remix - 如何使混音连接到仲裁网络
如何使混音连接到仲裁网络?
我在 vagrant 中使用了最新版本的示例/7nodes。我正在尝试使用此网址:127.0.0.1:22000 我正在尝试通过在 Windows 上重新混合来连接到仲裁。
在此先感谢您的帮助。
solidity - Solidity TypeError:此类型仅在新的实验性 ABI 编码器中支持
我正在练习我的 Solidity 技能,虽然我确实希望得到一个错误,但我没想到这个错误
TypeError:此类型仅在新的实验性 ABI 编码器中支持。使用“pragma Experimental ABIEncoderV2;” 启用该功能。函数 getArray() 公共视图返回 (string[]) {
这是我在 Remix 中的代码:
这里给出了什么?
这是因为标准 ABI 不支持动态嵌套数组吗?
我只是想确认我对错误的理解。它告诉我,我当前的版本不支持函数参数和返回值中的任意嵌套数组,但在新的实验性 ABI 编码器中,这是它的意思吗?
ethereum - 如何计算美元交易成本
我在 Remix 上完成了一笔交易,它花费了 199093 天然气。在撰写本文时,这里 ethgas 站的汽油价格为 7.2 Gwei(0.031 美元)
如果我想计算我应该为这笔交易支付多少,这意味着:
199093 * 7.2 = 1433469.6 Gwei = 0.0014334696 eth
在美元中,它是 199093 * 0.031 $ = 6171.883 $
那是对的吗 ??只为一笔交易支付太多了。
如果我想更快地处理交易,那意味着我将使用 gas price 20 Gwei 。 从 ethgas 站
所以成本会高很多。。
请提供任何帮助。
谢谢
ethereum - 通过 new 创建实例时调用方法在另一个合约中失败
我正在尝试将合同实例用作另一个合同的变量,例如下面的示例。
而当我在 remix 和 truffle 中测试合约时,它运行良好。 在此处输入图像描述, 但由于我在我的专用网络上部署了合同“父”,parent.getNum1() 返回了“0”而不是“10”。
此外,我尝试了其他类型的构造函数,例如将“基本”地址作为参数,但效果不佳。
我还尝试了一些将另一个合同实例作为变量的合同,它们在专用网络上都无法正常工作。
有人遇到过这个问题吗?帮助!!!
blockchain - 制作智能合约跟踪汇率并只接受设定值的付款
我已经制定了一个接收付款的智能合约,然后支付给其他 2 个地址,将收到的总价值分别分成 10% 和 90% 的 2 份。它将与付费专区一起在网站上使用。我不久前做了这个,它似乎有效(6 个月前在主网上发布,在此页面上使用:http ://www.linebreakrecords.com/plaintext.php不是一个严肃的商店更多只是我学习如何使用区块链网站)。但是,我使用的代码是基本的,现在在某些地方已弃用(当我在 Remix 中查看时,我现在收到有关不使用“发出前缀和“可能违反检查-效果-交互模式”以及“回退功能”的警告。 .需要太多的气体(无限)')。
首先,我希望获得有关如何使此代码更健壮/安全并符合当前最佳实践的建议。其次,我希望提供有关如何使合同仅接受高于一定价值(例如 2 美元)的交易并跟踪当前汇率的建议(因此我可以将应付的最小值设置为 2 美元并使其遵循汇率所以无论市场如何变化,它都保持在 2 美元)。我知道这是非常基本的东西,我在这里给出的代码可能是原始的 AF,我正在努力学习,如果可以,请提供帮助。万分感谢。