2017-03-14 1 views

Répondre

2

Si vous considérez la structure d'un jeton ERC 20: https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts/Token.sol, vous verrez que ce que vous proposez, bien que possible, serait un peu compliqué. Mais plus important encore, transformerait votre contrat de jeton en un jeton non-ERC20.

uint256 public totalSupply; devra être remplacé par un mappage ou deux paramètres distincts.

serait la même pour la gestion des soldes, vous devez changer la signature de chaque méthode pour prendre un paramètre supplémentaire pour spécifier le jeton que vous voulez ou créer méthode spécifique pour chaque jeton dans le contrat:

function balanceOf(address _owner) constant returns (uint256 balance);

aurait besoin d'être:

function balanceOf(address _owner, uint256 token_id) constant returns (uint256 balance);

ou

function balanceOfTokenA(address _owner) constant returns (uint256 balance);

function balanceOfTokenB(address _owner) constant returns (uint256 balance);

Mais comme je l'ai dit, que ce soit la mise en œuvre serait votre contrat symbolique d'un jeton non ERC20.


Vous seriez mieux d'avoir deux contrats, puis les deux seraient ERC20 compatibles. Vous pourriez alors écrire un troisième contrat pour les gérer si vos besoins sont qu'ils doivent être interfacés via un contrat unique.

+0

Comment les gérer? Je comprends que vous pouvez avoir deux contrats uniques qui représentent des jetons différents qui correspondent à ERC20, mais lorsque vous appelez les variables du troisième contrat, comment pouvez-vous les garder séparées les unes des autres, car les contrats de jetons auront la même variable. Je suppose que c'est une question de quelle est la meilleure façon de faire l'héritage ici? –

+0

Quelle est la raison pour laquelle vous ne pouvez pas avoir 2 contrats de jetons ERC20? –