
Ang isang contract na patuloy na nagpapatakbo pagkatapos ng isang nabigo mong pagtawag ay walang maaasahang paraan ngayon upang malaman kung ang callee ay nag-revert nang may layunin o simpleng nawalan ng gas na pinili ng sender. Ang puwang na ito ay ang ugat ng insufficient gas griefing, at isang bagong draft na propuesta ay subukang isara ito sa EVM level. Ang EIP-8456, na binuksan para sa diskusyon sa Ethereum Magicians noong Lunes, ay nagdaragdag ng isang instruction na tawagin na CALLSTATUS, pansamantalang sa opcode 0xA5 para sa 2 gas. Ipinipilit nito ang completion status ng pinakabagong call o create operation sa kasalukuyang frame bilang tatlong bit. Ang bit 0 ay nangangahulugan ng revert, ang bit 1 ay nangangahulugan ng exceptional halt tulad ng out of gas, at ang bit 2 ay nangangahulugan ng isang bagay sa isang frame sa ibaba na huminto. Inilalarawan ng may-akda na ang tanging ebidensya ngayon ay ang gasleft() arithmetic pagkatapos ng call, at ang bawat repricing fork ay nagbroke sa mga threshold na ito. Ang ipinaproposang two-dimensional gas ng EIP-8037 ay gagawing mas mahina ang arithmetic na ito, dahil ang kanyang reservoir ay hindi nakikita sa pamamagitan ng GAS opcode. Kaya bakit ang ikatlong bit? Ang karamihan sa tunay na mga call ay dumadaan sa mga intermediary tulad ng proxies, OpenZeppelin’s functionCall wrapper, Multicall3 o ERC-1271 signature checkers. Kung tanging ang dulo ng direktang callee ang iirereport, ang isang wrapper na nakakakuha ng out-of-gas halt at nagre-revert nang may dahilan ay magiging tila isang deliberate revert. Ang draft ay panatilihin ang sticky flag na umuusbong sa bawat frame, kaya ang isang sender na tanging kontrolado ang gas ay hindi kayang gawing basahin ng caller ang isang simpleng revert. Ito ay nagrereport ng mga resulta kaysa sa mga sanhi, at ang callee ay maaari pa ring lumikha ng halt nang may layunin gamit ang INVALID. Ito ay protektado lamang para sa code na isusulat pagkatapos nito ay ipinapalabas, dahil ang mga deployed na contract ay hindi magbabasa nito. Wala pa ring external reviews, ang opcode number ay patuloy na bukas, at ang isang prototype kasama ang mga test para sa 58 listahing kaso ay nasa pending pa rin. Link - https://t.co/KnByUBgWrY
