Soweit ich weiß, machen diese beiden Anweisungen genau dasselbe und können im Code austauschbar verwendet werden. Ist ihr Bytecode identisch?
address.send(1)
ist äquivalent zu address.call.value(1).gas(0)()
. Leiten Sie 0 Gas weiter, weil 2300 ein Standard-Gasstipendium ist, die letzte Feinheit .
case Location::Send:
_functionCall.expression().accept(*this);
m_context << u256(0); // do not send gas (there still is the stipend)
Schlange :
"(send $to $value)",
"(~call 0 $to $value 0 0 0 0)"
Ja, ihre Bytecodes sind identisch:
contract A {
function(){
address A = 0x0EF91f087165cfDe0b51F10D8ed69a670A1f89CB;
A.call.value(1).gas(0)();
}
}
contract A {
function(){
address A = 0x0EF91f087165cfDe0b51F10D8ed69a670A1f89CB;
A.send(1);
}
}
6060604052603f8060106000396000f360606040523615600a575b603d604051730ef91f087165cfde0b51f10d8ed69a670a1f89cb90819060009060019082818181858883f1505050505050565b00
6060604052603f8060106000396000f360606040523615600a575b603d604051730ef91f087165cfde0b51f10d8ed69a670a1f89cb90819060009060019082818181858883f1505050505050565b00
Manidos
eth
.call
muss nach sein,address
sonst hast du einen SyntaxfehlerMember "gas" not found
...