| 3695 | } |
| 3696 | |
| 3697 | bool FunctionType::isPure() const |
| 3698 | { |
| 3699 | // TODO: replace this with m_stateMutability == StateMutability::Pure once |
| 3700 | // the callgraph analyzer is in place |
| 3701 | return |
| 3702 | m_kind == Kind::KECCAK256 || |
| 3703 | m_kind == Kind::ECRecover || |
| 3704 | m_kind == Kind::SHA256 || |
| 3705 | m_kind == Kind::RIPEMD160 || |
| 3706 | m_kind == Kind::AddMod || |
| 3707 | m_kind == Kind::MulMod || |
| 3708 | m_kind == Kind::ObjectCreation || |
| 3709 | m_kind == Kind::ABIEncode || |
| 3710 | m_kind == Kind::ABIEncodePacked || |
| 3711 | m_kind == Kind::ABIEncodeWithSelector || |
| 3712 | m_kind == Kind::ABIEncodeCall || |
| 3713 | m_kind == Kind::ABIEncodeWithSignature || |
| 3714 | m_kind == Kind::ABIDecode || |
| 3715 | m_kind == Kind::MetaType || |
| 3716 | m_kind == Kind::Wrap || |
| 3717 | m_kind == Kind::Unwrap || |
| 3718 | m_kind == Kind::BytesConcat || |
| 3719 | m_kind == Kind::StringConcat || |
| 3720 | m_kind == Kind::ERC7201; |
| 3721 | } |
| 3722 | |
| 3723 | TypePointers FunctionType::parseElementaryTypeVector(strings const& _types) |
| 3724 | { |