Ich bin ein absoluter Solidity-Noob und möchte wissen, ob ich meine set-Funktion verwenden kann, um meine Strukturmitglieder zu initialisieren und einer Zustandsvariablen einen Wert zuzuweisen:
pragma solidity ^0.4.21;
contract Govtcontract {
uint256 public allocbudget;
uint256 public rembudget;
struct transaction{
uint expend;
uint dept;
string item;
uint date;
string location;
}
transaction public trx;
constructor (uint256 initbudget) public {
allocbudget = initbudget;
rembudget = initbudget;
}
function settx(uint amt, uint dep, string thing, uint date, string loc) public {
trx.expend=amt;
trx.dept=dep;
trx.item=thing;
trx.date=date;
trx.location=loc;
rembudget = rembudget - trx.expend;
}
function get() public constant returns (uint) {
return rembudget;
}
}
Außerdem, wie schreibe ich die Datei web3.js, um mehrere Eingaben für set() zu nehmen? Ich kann anscheinend keine Ressourcen online finden. TIA!
Ja, du kannst! Sie können dies mit Truffle validieren:
truffle init
und fügen Sie Ihren Vertrag und Ihre Bereitstellungsdatei hinzutruffle develop
compile
migrate
Govtcontract.deployed().then(instance => govt = instance.contract)
govt.settx(1000, 1000, "test", 1000, "test", { gas: 500000 })
Ich habe willkürlich 500.000 eingestellt, weil das Speichern so vieler Variablen in einem Batch nicht billig in den Gaskosten ist.
Optional können Sie Remix oder EthFiddle für die Vertragskompilierung ausprobieren.