有什么方法可以防止智能合约中将令牌从地址A转移到地址B?假设它需要智能合约所有者的某种批准。假设它不是ERC-20令牌。
答案 0 :(得分:1)
有很多方法可以在代码逻辑中实现这种限制。
例如,您可以使用仅智能合约所有者可以向其添加条目的地址来创建映射。 (使用onlyOwner modifier)。然后实现一个require函数,该函数仅在地址位于映射中时才允许传输。
mapping (address=>bool) addr_mapping;
function transferToken(address sender, address receiver) public{
require(addr_mapping[sender] == true, "Sender not in mapping");
require(addr_mapping[receiver] == true, "Receiver not in mapping");
...
}
function addToMapping(address addr) onlyOwner {
...
}
PS。不确定是否可以进行布尔比较,但是您可以创建自己的标志。