Zugreifen auf/Ändern von Optionsparametern im Vertrag

Ich verwende Truffle und Metamask, um einen sehr einfachen Vertrag bereitzustellen, der die Übertragung von Ether von einem Testkonto auf ein anderes ermöglicht.

Wie verwende ich meine JavaScript-Datei, um auf die Optionsparameter zuzugreifen, die während der Bereitstellung übergeben wurden? Können die beim Deployment übergebenen Konstruktorparameter nachträglich geändert werden?

Hier ist die Zeile in 2_deploy_contracts.js:

deployer.deploy(EscrowPayment, web3.eth.accounts[1], web3.eth.accounts[2], {gas: 4400000, value: web3.toWei(20, 'ether')});

Der Optionsparameter wäre{gas: 4400000, value: web3.toWei(20, 'ether')}

Hier ist der Konstruktor im Vertrag:

function EscrowPayment(address _seller, address _judge) payable {
    buyer = msg.sender;
    seller = _seller;
    judge = _judge;
}

Ich habe diese Dokumentation gelesen , konnte aber so etwas wie "myContract.options" nicht ausführen.

Antworten (1)

Die Optionen, die Sie im letzten json-Objekt übergeben, sind: Gaslimit und Wert von Ether, der mitgesendet werden soll. Diese (und andere konfigurierbare Parameter wie der Absender oder der Gaspreis) sind wie hiermsg beschrieben über und- txObjekte verfügbar :

function EscrowPayment(address _seller, address _judge) payable {
    gasLimit = msg.gas; // this is only the *remaining* gas and not the exact value that you passed
    value = msg.value; // in Wei
    gasPrice = tx.gasprice;
    buyer = msg.sender;
    seller = _seller;
    judge = _judge;
}
Danke schön! Sehr hilfreich. Ich habe mich auch gefragt, ob wir die Variablen wie Verkäufer noch ändern können , nachdem der Vertrag bereitgestellt wurde?
Sie können nicht - es sei denn, Sie stellen eine Funktion dafür bereit (und dann kann jeder, der Ihren Vertrag sieht, seine Änderung sehen). Das ist wirklich die Kraft von Smart Contracts, übrigens verstehen Sie mit dieser tiefen Erkenntnis mehr von Blockchain als 99,9% der Leute da draußen :)
@juwu, wenn dies hilfreich ist, dann erwägen Sie, meine Antwort mit dem grünen Häkchen zu akzeptieren :)