我正在尝试签订一份合同,其中有两种不同的令牌用于合同的不同方面。我希望这两个令牌能够符合ERC20标准,但我不确定如何为每个令牌指定唯一的变量和函数。
答案 0 :(得分:2)
如果你考虑一个ERC 20令牌的结构:https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts/Token.sol,你会看到你提出的建议虽然可能,但会有点混乱。但更重要的是,会将您的令牌合同转换为非ERC20令牌。
uint256 public totalSupply;需要替换为映射或两个单独的参数。
管理余额也是如此,您需要更改每个方法的签名,以获取指定所需令牌的附加参数,或为合同中的每个令牌创建特定方法:
function balanceOf(address _owner) constant returns (uint256 balance);
需要成为:
$(document).ready(function (){
// read value and set value of totalAmount to hiddentotal;
var hiddenTotal = $("#hiddenTotal").val() || 0; //use the hiddenTotal value or if not present set 0 as the default value
$(".totalAmount").val(hiddentotal)
}
或
function balanceOf(address _owner, uint256 token_id) constant returns (uint256 balance);
function balanceOfTokenA(address _owner) constant returns (uint256 balance);
但就像我说的那样,任何一种实现都会使您的令牌合约成为非ERC20令牌。
你最好有两份合同,然后两者都是ERC20兼容的。如果您的要求是需要通过单一合同进行接口,那么您可以编写第三份合同来管理它们。
答案 1 :(得分:0)
如今,ERC1155是一种“多令牌”标准,对于需要多个令牌的合同来说似乎是一个不错的选择:
简单摘要:
用于管理多种令牌类型的合同的标准接口。一种 单个已部署合同可以包括可互换的任何组合 令牌,不可替代的令牌或其他配置(例如 半替代令牌)。