Strukturvariablen setzen

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!

Antworten (1)

Ja, du kannst! Sie können dies mit Truffle validieren:

  1. Initiieren Sie das Projekt über truffle initund fügen Sie Ihren Vertrag und Ihre Bereitstellungsdatei hinzu
  2. truffle develop
  3. compile
  4. migrate
  5. Govtcontract.deployed().then(instance => govt = instance.contract)
  6. 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.