@@ -1013,13 +1013,17 @@ bool ExpressionCompiler::visit(FunctionCall const& _functionCall)
10131013 case FunctionType::Kind::SHA256:
10141014 case FunctionType::Kind::RIPEMD160:
10151015 case FunctionType::Kind::SM3:
1016+ case FunctionType::Kind::ENBASE58:
1017+ case FunctionType::Kind::DEBASE58:
10161018 {
10171019 _functionCall.expression ().accept (*this );
10181020 static map<FunctionType::Kind, u256> const contractAddresses{
10191021 {FunctionType::Kind::ECRecover, 1 },
10201022 {FunctionType::Kind::SHA256, 2 },
10211023 {FunctionType::Kind::RIPEMD160, 3 },
1022- {FunctionType::Kind::SM3, 41 },
1024+ {FunctionType::Kind::SM3, 0x4000 },
1025+ {FunctionType::Kind::ENBASE58, 0x4001 },
1026+ {FunctionType::Kind::DEBASE58, 0x4002 },
10231027 };
10241028 m_context << contractAddresses.at (function.kind ());
10251029 for (unsigned i = function.sizeOnStack (); i > 0 ; --i)
@@ -1028,6 +1032,11 @@ bool ExpressionCompiler::visit(FunctionCall const& _functionCall)
10281032 appendExternalFunctionCall (function, arguments, false );
10291033 break ;
10301034 }
1035+ /* case FunctionType::Kind::ENBASE58:
1036+ {
1037+ _functionCall.expression().accept(*this);
1038+ utils().fetchFreeMemoryPointer();
1039+ }*/
10311040 case FunctionType::Kind::ArrayPush:
10321041 {
10331042 solAssert (function.bound (), " " );
@@ -1908,6 +1917,8 @@ bool ExpressionCompiler::visit(MemberAccess const& _memberAccess)
19081917 case FunctionType::Kind::SHA256:
19091918 case FunctionType::Kind::RIPEMD160:
19101919 case FunctionType::Kind::SM3:
1920+ case FunctionType::Kind::ENBASE58:
1921+ case FunctionType::Kind::DEBASE58:
19111922 default :
19121923 solAssert (false , " unsupported member function" );
19131924 }
@@ -2892,7 +2903,7 @@ void ExpressionCompiler::appendExternalFunctionCall(
28922903
28932904 solAssert (funKind != FunctionType::Kind::BareCallCode, " Callcode has been removed." );
28942905
2895- bool returnSuccessConditionAndReturndata = funKind == FunctionType::Kind::BareCall || funKind == FunctionType::Kind::BareDelegateCall || funKind == FunctionType::Kind::BareStaticCall;
2906+ bool returnSuccessConditionAndReturndata = funKind == FunctionType::Kind::ENBASE58 || funKind == FunctionType::Kind:: BareCall || funKind == FunctionType::Kind::BareDelegateCall || funKind == FunctionType::Kind::BareStaticCall;
28962907 bool isDelegateCall = funKind == FunctionType::Kind::BareDelegateCall || funKind == FunctionType::Kind::DelegateCall;
28972908 bool useStaticCall = funKind == FunctionType::Kind::BareStaticCall || (_functionType.stateMutability () <= StateMutability::View && m_context.evmVersion ().hasStaticCall ());
28982909
0 commit comments