Wie übergeben wir Konstruktorparameter an einen Vertrag, den wir testen möchten? Ich verstehe, dass die anfängliche Vertragsbereitstellung in der migrations
Datei erfolgt, aber wenn wir zu Test-/Debugzwecken den Vertrag in der Truffle Console bereitstellen und instanziieren möchten, wie machen wir das? Wie wäre es mit unseren Testdateien?
Angenommen, unsere ExampleContract.sol
Datei ist:
contract ExampleContract { function ExampleContract(uint256 my_param){} })
Und unsere 2_deploy_contracts.js
Datei hat diese Zeile oben, stellt aber den Vertrag nicht bereit:
var ExampleContract = artifacts.require("./ExampleContract.sol");
Wir öffnen eine Truffle Ganache-Konsole und migrieren dann unsere Sachen in:
truffle console --network ganache
migrate --compile-all
Jetzt haben wir die Vertragsinformationen (einschließlich seiner Adresse) in gespeichert ExampleContract
, aber wie können wir sie dann mit Parametern instanziieren, die wir an seinen Konstruktor übergeben möchten? Was ist das Äquivalent des deployer.deploy
Objekts, an migrations
das wir Parameter übergeben können?
Es ist wenig wortreich auf der Kommandozeile.
Sie suchen new
.
Versuchen:
var c;
ExampleContract.new(arg1, arg2)
.then(function(instance) {
c = instance;
});
Dadurch wird ein neues mit an den Konstruktor übergebenen Argumenten bereitgestellt.
Der Deployer wurde nicht verwendet, daher wird die Migrationsregistrierung nicht aktualisiert.
Ich hoffe es hilft.