Ich muss die Funktionen des ERC20-Vertrags in einem anderen Vertrag nutzen.
Der ERC20-Vertrag stammt aus der Vertragsbibliothek von openZeppelin. Ich habe auf einer Website folgenden Code gefunden:
import "../../node_modules/zeppelin-solidity/contracts/token/ERC20/ERC20.sol";
contract Escrow is Ownable {
ERC20 public currency;
address public collectionAddress;
function Escrow(ERC20 _currency, address _collectionAddress) public {
currency = _currency;
collectionAddress = _collectionAddress;
}
}
In diesem Code wird die ERC20-Instanz als Argument an den Konstruktor von Escrow übergeben. Das bedeutet, dass die ERC20-Instanz zum Zeitpunkt der Bereitstellung des Escrow-Vertrags in der Zustandsvariablen des Escrow-Vertrags gespeichert wird.
Ich möchte wissen, wie man den Bereitstellungscode schreibt, um eine Vertragsinstanz als Argument an den Konstruktor eines anderen Vertrags in Trüffel zu übergeben.
Sollte der ERC20-Vertrag vor dem Escrow-Vertrag in Truffle bereitgestellt werden oder können beide Verträge zusammen bereitgestellt werden?
Wenn ja, wie würde dann das Bereitstellungsskript in Truffle aussehen?
Noch nie probiert, scheint möglich zu sein.
Migrationsskript:
module.exports = function (deployer) {
deployer.deploy(TestCoin).then(x => {
deployer.deploy(Escrow, x.address, collectionAddress)
});
};
TestCoin ist ein ERC20-Token:
pragma solidity ^0.4.24;
import "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol";
import "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol";
contract TestCoin is ERC20, ERC20Detailed {
uint256 public constant INITIAL_SUPPLY = 10000 * (10 ** uint256(decimals()));
constructor() public ERC20Detailed("TestCoin", "TC", 18) {
_mint(msg.sender, INITIAL_SUPPLY);
}
}
Wiederholung 122442
Saurab marjara