Мне нужно вызвать функцию передачи моего развернутого токена ERC20 в новом контракте, который необходимо развернуть в основной сети. Я хочу знать, возможно ли это, или это потребует много газа и, в свою очередь, высоких транзакционных издержек.
Возможно ли (с точки зрения стоимости газа) вызвать функцию развернутого контракта из другого смарт-контракта в основной сети (Ethereum)?
Ответы (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