Übergeben Sie Parameter von Truffle CONSOLE an Solidity Constructor

Wie übergeben wir Konstruktorparameter an einen Vertrag, den wir testen möchten? Ich verstehe, dass die anfängliche Vertragsbereitstellung in der migrationsDatei 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.solDatei ist:

contract ExampleContract { function ExampleContract(uint256 my_param){} })

Und unsere 2_deploy_contracts.jsDatei 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.deployObjekts, an migrationsdas wir Parameter übergeben können?

Antworten (1)

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.