struct hat einige Fehler in der Solidität [duplizieren]

contract MyContract {
struct Posposal{
    uint posposalId;
    address voteSponsorAddr;

    bytes1 description_;
    uint userId;
    string message;
    uint amount;
}
Posposal[] public curPosposals;
uint public posposalNextId=0;

function MyContract() {

}
uint public expId;
address public expTarget;
uint public expAmount;
string public expMessage;
function issuse(uint userId,address target_,uint amount_,string message_)  {
    expId=userId;
    expMessage=message_;
    expAmount=amount_;
    expTarget=target_;
    curPosposals.push(Posposal(posposalNextId,msg.sender,0x01,userId,message_,amount_));
    posposalNextId++;
}} 

Die Transaktion konnte erfolgreich durchgeführt werden. Ich debugge in der Ethereum-Brieftasche, aber die curPosposals[0] konnten die Werte nicht haben. Warum? Aber wenn ich die Zeichenfolgennachricht aus struct Posposal entferne, haben curPosposals [0] die Werte, aber es sind nicht die Werte, die ich params übergebe.

Vielleicht könnten Sie diese Frage löschen, jetzt, wo Sie sie noch einmal gestellt haben.
niemand konnte mir klar antworten, diese Frage könnte ein Fehler in der Soliditätssprache sein.

Antworten (1)

Das hört sich nach einem Gasproblem an. Stellen Sie beim Senden der Transaktion von Web3 das Gas hoch ein, z. B. { from: "0x123...", gas: 3000000 }.

Das Gas hat keine Probleme, ich debugge es in Ethereum-Wallets und stelle das maximale Gas ein.