如果我在创建合同时存入以太币,我只能发送以太币。但是,在这种情况下,即使以太币在我的钱包中,我也可以发送与合同中以太币一样多的以太币。例如: 我的账户中有100个以太坊,创建智能合约时我使用了10个以太坊,但是我必须向其他账户发送15个以太坊。但是我不能发送,因为它超出了以太合约的数量。我需要从我的钱包中将以太币发送到其他帐户。
环境是Remix IDE,合同版本是 实用性坚固度^ 0.5.0;
<canvas id="area_c">
</canvas>
答案 0 :(得分:0)
欢迎使用堆栈溢出
如果您使用的是https://remix.ethereum.org,则可以在IDE的右上角看到“环境”。
根据文档:
可以将Remix插入到3种环境中:Javascript VM,Injected提供程序或Web3提供程序。 (有关详细信息,请参阅运行事务)
这三个环境是:
JavascriptVM 在您的浏览器中运行沙盒区块链,并在您的浏览器中运行。这意味着您不需要任何其他软件或以太坊节点即可运行它。 这使得部署合同和与合同进行交互非常简单,从而限制了您管理帐户的能力
Web3提供程序将使混音连接到远程节点。您将需要提供URL地址给选定的提供者:geth,奇偶校验或任何以太坊客户端。您可以使用ganache-cli
之类的工具在计算机上本地模拟区块链。
注入的提供程序将使混音连接到注入的Web3提供程序。 Metamask是注入web3的提供程序的一个示例,因此可以与该选项一起使用。
See docs了解有关环境的更多信息。
我猜您正在使用 JavaScriptVM 环境,这意味着,很遗憾,您将无法使用web3
命令工具(需要使用Web3 Provider或Injection) 。没有web3,就无法通过构建交易在帐户之间转移资金。
您可以做的是下载ganache-cli
或您喜欢的web3提供程序,然后使用web3命令从终端操作帐户。
例如:
$ ganache-cli
Available Accounts <ADDRESSES YOU CAN MOVE FUNDS BETWEEN>
==================
(0) 0x9f0bf61721a61e7f72abac48eed65e318668e71f (~100 ETH)
(1) 0x74bc67c48eefc359d296023acd4ac9158575ab56 (~100 ETH)
(2) 0xec548e4b5246795b81904bc67cedfe26b528b173 (~100 ETH)
(3) 0x06fe6ca72d985252729a2ba2a40147d4905a56c4 (~100 ETH)
(4) 0x262498200090fdaa7db8d430e681e39d6257d3ce (~100 ETH)
(5) 0x9736aa7dc69bee01166352c3e51023ee5ab57a08 (~100 ETH)
(6) 0x19ee475e3c64935546d9c4a67d01232c53d45c2b (~100 ETH)
(7) 0xee4dec500f7b08dfe20646a8a6661a81204eb1cb (~100 ETH)
(8) 0xf5b6a5ce718ad527eb877a0c8554e1d2382c9beb (~100 ETH)
(9) 0x590e03591cc82e9308d1e8e8869c248e13356920 (~100 ETH)
<Secret private keys not shown >
HD Wallet
==================
<Mnemonics not shown >
Base HD Path: m/44'/60'/0'/0/{account_index}
Gas Price
==================
20000000000
Gas Limit
==================
6721975
Listening on 127.0.0.1:8545