1
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++;
}} 

the transaction could perform successfully. I debug in ethereum wallet, but the curPosposals[0] could not have the values.Why? But when I remove string message from struct Posposal ,curPosposals[0] have the values, but it is not the values I pass params.

  • Perhaps you could delete this question, now that you asked it again. – Xavier Leprêtre B9lab Sep 7 '16 at 9:24
  • nobody could answer me clearly, this question may be a bug in solidity language. – Jim Green Sep 9 '16 at 8:37
1

This sounds like a gas problem. When sending the transaction from Web3, set the gas high, like { from: "0x123...", gas: 3000000 }.

  • The gas has no problems, I debug it in ethereum wallets, and set the maxmium gas. – Jim Green Sep 6 '16 at 14:47

Not the answer you're looking for? Browse other questions tagged or ask your own question.