Возможно ли (с точки зрения стоимости газа) вызвать функцию развернутого контракта из другого смарт-контракта в основной сети (Ethereum)?

Мне нужно вызвать функцию передачи моего развернутого токена ERC20 в новом контракте, который необходимо развернуть в основной сети. Я хочу знать, возможно ли это, или это потребует много газа и, в свою очередь, высоких транзакционных издержек.


person ska    schedule 19.08.2020    source источник


Ответы (1)


Да, это возможно - так контракты взаимодействуют друг с другом. В общем, мы используем интерфейс в вызывающем контракте:

pragma solidity ^0.5.0;

// Define an interface to the contract you want to call. Only need function signatures

interface YourErc20Contract {
        function transfer(address recipient, uint amount) external;
    }

contract CallingContract {
    
    address your_erc20_address = 0x.....  // called contract address here
    address recipient = 0x....  // arguments for the function call
    uint amount = 2  


    // Call the function on the other contract using the interface
    function remoteCall(address recipient, uint amount) public {
        YourErc20Contract(your_erc20_address).transfer(recipient, amount)
        }
    }
person SimonR    schedule 21.08.2020