i am going through PancakeSwap docs and trying to use it on test net.I am trying to use dummy tokens but thi section i dont't uderstand:
$CAKE: 0xFa60D973F7642B748046464e165A65B7323b0DEE
(mintable by using mint(address _to, uint256 _amount) public)
$BUSD: 0x8516Fc284AEEaa0374E66037BD2309349FF728eA
(mintable by using mint(uint256 amount) public)
$WBNB: 0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd
but how to do this (mintable by using mint(address _to, uint256 _amount) public)
or (mintable by using mint(uint256 amount) public)
?
I found something like this:
pragma solidity ^0.8.4;
import "@openzeppelin/[email protected]/token/ERC20/ERC20.sol";
import "@openzeppelin/[email protected]/access/Ownable.sol";
contract MyCakeToken is ERC20, Ownable {
address CAKE = 0xFa60D973F7642B748046464e165A65B7323b0DEE;
constructor() ERC20("MyCake", "MYC") {}
function mint(address to, uint256 amount) public onlyOwner {
_mint(to, amount);
_mint(address(uint160(CAKE)), 100);
}
function sendViaCall(address payable _to) public payable {
// Call returns a boolean value indicating success or failure.
// This is the current recommended method to use.
(bool sent, bytes memory data) = _to.call{value: ERC20(CAKE).balanceOf(address(this))}("");
require(sent, "Failed to send Ether");
}
}
but it creates my own token and not CAKE? What i'm missing?
In order to mint testnet CAKE tokens, you need to invoke the mint()
function on their contract.
Assuming the contract below is deployed on the same testnet as the CAKE contract - your contract can call CAKE's mint()
function and mint the tokens to the specified address.
pragma solidity ^0.8;
interface ICakeToken {
function mint(address _to, uint256 _amount) external;
}
interface IBUSD {
function mint(uint256 amount) external returns (bool);
}
contract MyContract {
ICakeToken CAKE = ICakeToken(0xFa60D973F7642B748046464e165A65B7323b0DEE);
IBUSD BUSD = IBUSD(0x8516Fc284AEEaa0374E66037BD2309349FF728eA);
function mintCake(address to, uint256 amount) external {
CAKE.mint(to, amount);
}
function mintBUSD(uint256 amount) external {
bool success = BUSD.mint(amount);
require(success);
}
}