In the IBM Example of Ethereum smart contract, there is this following code:
personal.unlockAccount(thesponsor,"password");
ss.pledge("Good luck with the run!", {from: thesponsor, value: 10000000, gas: 3000000});
However, the pledge function is not a payable modifier and it only accepts one argument as the parameter:
function pledge(bytes32 _message) {
if (msg.value == 0 || complete || refunded) throw;
pledges[numPledges] = Pledge(msg.value, msg.sender, _message);
numPledges++;
}
So, is solidity automatically seeing {from: thesponsor, value: 10000000, gas: 3000000} as a msg object that transfers ethers from my account?
I just found this feature a bit weird. What if I wrote a JSON object that happens to contain the keywords "from" and "value", would I accidentally transfer any funds?