我是新来的聪明的合同世界,有许多事情,我仍然不明白如何运作。
我用以下方法创建了一个简单的契约:
constructor()
{
tokenCreator = msg.sender;
balances[tokenCreator] = TokenMaxSupply;
IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
UniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
UniswapV2Router = uniswapV2Router;
}
/**
* @dev Returns the total supply of this token
*/
function TotalSupply() public view returns (uint256)
{
return TokenMaxSupply;
}
/**
* @dev Check the number of tokens owned by an address including holder reflections
*/
function CheckAddressBalance(address addressToCheck) public view returns (uint256)
{
return balances[addressToCheck];
}
/**
* @dev Check the allowance between addresses
*/
function CheckAllowance(address from, address to) public view returns (uint256)
{
return allowances[from][to];
}
/**
* @dev Transfers tokens from one address to another.
*/
function TransferTokens(address sendingAddress, address addressToSend, uint256 amount) public returns (bool)
{
require(addressToSend != address(0), 'Invalid Address.');
require(sendingAddress != address(0), 'Invalid sending Address.');
require(balances[sendingAddress] >= amount, 'Not enough tokens to transfer.');
//Decrease sender balance
balances[sendingAddress] = balances[sendingAddress].sub(amount);
//Add the new amount to receiver address
balances[addressToSend] = balances[addressToSend].add(amount);
emit Transfer(sendingAddress, addressToSend, amount);
return true;
}我的目标是部署合同并将其添加到pancakeswap中。
我的问题是:当有人想要在pancakeswap中购买我的令牌时,应该调用方法TransferTokens来添加/减去令牌。煎饼如何知道它需要调用这个函数?
或者,pancakeswap调用一个特定的方法,而我需要更改该方法的名称?
发布于 2021-06-30 16:39:39
这是后者。
你的合同必须完全符合ERC20 20标准。不能使用像TransferTokens函数这样的函数。
Pancakeswap (以及几乎所有其他人)将调用在ERC20中定义的函数。不属于ERC20的自定义函数永远不会被调用。
https://ethereum.stackexchange.com/questions/102736
复制相似问题