Làm sao để lấy balanceOf , transfer và transferFrom và các thuộc tính của token ERC20 đã có sẵn
Chào mọi người, Mn cho mình hỏi, mình muốn thêm 1 token ERC20 đã có sẵn vào trong smart contract đang viết thì làm như thế nào ah.
3 CÂU TRẢ LỜI
Mình muốn add token ERC20 (chainlink, band) vào trong smart contract đang viết luôn anh. Nhận và chuyển token ERC 20(chainlink, band..) đó thông qua smart contract
@quyphan, thế thì có hơi chút phức tạp, bạn phải import file smart contract của token ERC-20 đó vào contract của bạn, sau đó bạn tạo 1 instance contract với địa chỉ trên mạng (main hoặc test). Từ instance đó có thể gọi đến các hàm trong contract để gửi, check số dư token đó
TokenContract tokenContract = TokenContract(address);
tokenContract.transfer(_to, _value)
dạ, em cảm ơn anh ah
Em kiểm tra trên Ropsten hàm : IERC20(0x25d6c0CbA54b36FAd609425F12e0FCeB3cdFd79C).safeTransferFrom(msg.sender, address(this), amount); thì báo lỗi: Fail with error 'SafeERC20: low-level call failed' là sao vậy anh. https://ropsten.etherscan.io/tx/0xe909d506a4934fa296cc83f1bd8feef32f014f2279d3517d6486ec7737eebd01
Mình muốn add token ERC20 (chainlink, band) vào trong smart contract đang viết luôn anh. Nhận và chuyển token ERC 20(chainlink, band..) đó thông qua smart contract
Không biết bác đã có câu trả lời chưa. Theo em thì chỉ cần tạo thêm 1 interface
pragma solidity 0.4.25;
contract IERC20 {
function transfer(address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function balanceOf(address who) public view returns (uint256);
function allowance(address owner, address spender) public view returns (uint256);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
Rồi sau đó dùng chỗ nào thì gọi thôi
IERC20 public tokenAbcxyz= IERC20(0xEFbFc735105cca5B9a6449C499214F74dB321AA9);
Lưu ý địa chỉ đưa vào phải có dạng chữ hoa + chữ thường, nếu không nó sẽ warning invalid checksum.