Ich habe zwei Verträge "College" und "Department". Sie sind abhängige Vertrag. Wie stelle ich sie in Ethereum Wallet bereit?
Beispielcode :
contract Department {
function enroll(uint depID, address student) returns (bool ret) {
return true;
}
}
contract College {
address student;
Department dept_instance;
function College ( address _student , address _department ) {
student = _student;
dept_instance = _department;
}
function chooseDept ( uint id ) payable returns (bool value) {
bool ret = student.send(msg.value);
if (!ret)
return dept_instance.enroll(id, msg.sender);
else
throw;
}
}
Mit "Brieftasche" meinen Sie wohl Mist.
Wenn eine Quelldatei wie oben zwei Verträge hat, lässt Mist Sie wählen, welchen Vertrag Sie bereitstellen möchten. Stellen Sie in diesem Fall zuerst die Abteilung bereit.
Finden Sie den bereitgestellten Abteilungsvertrag und kopieren Sie seine Adresse in die Zwischenablage. Es ist nicht offensichtlich, aber mit etwas Beharrlichkeit können Sie die vollständige Adresse auf dem Bildschirm anzeigen und kopieren.
Kehren Sie dann zu "Verträge" zurück, um das College bereitzustellen.
Da der Konstruktor von College benötigt address _department
, bietet Mist ein Feld an, in dem Sie die Daten angeben können. Einfügen, damit die Adresse der Abteilung an den Konstruktor übergeben wird.
Verwenden Sie in Zeile 13 _department, um eine Instanz von Department zu erstellen. So was:dept_instance = Department(_department);
contract Department {
function enroll(uint depID, address student) returns (bool ret) {
return true;
}
}
contract College {
address student;
Department dept_instance;
function College ( address _student , address _department ) {
student = _student;
dept_instance = Department(_department);
}
function chooseDept ( uint id ) payable returns (bool value) {
bool ret = student.send(msg.value);
if (!ret)
return dept_instance.enroll(id, msg.sender);
else
throw;
}
}
Ich hoffe es hilft.
Sonne
Rob Hitchens
Sonne
Rob Hitchens