Как я могу отправить эфир между двумя АККАУНТАМИ в remix IDE?

Я могу отправить эфир только в том случае, если я внесу эфир при создании контракта. Но в этом случае, даже если эфир находится в моем кошельке, я могу отправить столько эфира, сколько эфира указано в контракте. Например: у меня в учетной записи 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;

    }

См. также:  Произошла незаконная операция доступа с отражением
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. osman sönmeztürk

    ???? Добро пожаловать в Stack Overflow

    Если вы используете https://remix.ethereum.org, вы можете увидеть «Среда» вверху правый угол IDE.

    Согласно документам:

    Существует 3 типа сред, к которым можно подключить Remix: виртуальная машина Javascript, внедренный поставщик или поставщик Web3. (подробнее см. Выполняемые транзакции)

    Эти три среды:

    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 
    
    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
    

    спасибо за ваш ответ. Теперь я использую 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

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: