Я могу отправить эфир только в том случае, если я внесу эфир при создании контракта. Но в этом случае, даже если эфир находится в моем кошельке, я могу отправить столько эфира, сколько эфира указано в контракте. Например: у меня в учетной записи 100 эфириумов, и я использовал 10 эфиров при создании смарт-контракта, но мне нужно отправить 15 эфиров на другую учетную запись. Но отправить не могу, потому что это больше суммы эфирного контракта. Мне нужно отправить эфир на другую учетную запись из моего кошелька.
Среда — это Remix IDE, контрактные версии — это pragma solidity ^ 0.5.0;
function payBack (address payable user) public payable returns(bool) {
uint256 money = balanceOf(user)*convertNumber/1e18;
require (msg.sender.balance/1e18 > money, "not enough money" );
user.send(money*1000000000000000000);
return true;
}
???? Добро пожаловать в Stack Overflow
Если вы используете https://remix.ethereum.org, вы можете увидеть «Среда» вверху правый угол IDE.
Согласно документам:
Эти три среды:
JavascriptVM запускает изолированную цепочку блоков в вашем браузере, где выполнение выполняется в вашем браузере. Это означает, что вам не нужно какое-либо другое программное обеспечение или узел Ethereum для его запуска. Это упрощает развертывание контрактов, а взаимодействие с ними ограничивает ваши возможности по управлению аккаунтом
Провайдер Web3 подключит remix к удаленному узлу. Вам нужно будет предоставить URL-адрес выбранному провайдеру: geth, parity или любой клиент Ethereum. Вы можете использовать такой инструмент, как
ganache-cli
, который также имитирует блокчейн локально на вашем компьютере.Введенный провайдер заставит ремикс подключиться к внедренному провайдеру web3. Metamask — это пример провайдеров, которые внедряют web3, поэтому его можно использовать с этой опцией.
Дополнительную информацию о средах см. в документации.
Я собираюсь предположить, что вы используете среду JavaScriptVM, что означает, к сожалению, у вас не будет доступа к
web3
командным инструментам (для которых требуется Web3 Provider или Injection). Без web3 вы не можете перемещать средства между счетами путем построения транзакций.Что вы можете сделать, так это загрузить
ganache-cli
или вашего любимого провайдера web3 и управлять учетными записями с терминала с помощью команд web3.Например:
спасибо за ваш ответ. Теперь я использую ganache-cli, и моя текущая среда — поставщик web3. Но все же я могу отправить эфир столько, сколько значение поля значения (вверху и справа под лимитом газа). Также я попытался использовать метамаску с помощью мнемоники локального тестового блокчейна. Если я правильно понял, вы предлагаете
web3.sendTransaction({to:receiver, from:sender, value:web3.toWei("0.5", "ether")})
Есть ли способ сделать это в Remix IDE — person osman sönmeztürk; 07.06.2019