From 0a5e50fe38e63e23a600a9e8e32de1aea6e11332 Mon Sep 17 00:00:00 2001 From: Asuka Date: Wed, 8 Apr 2026 11:17:25 +0800 Subject: [PATCH] Remove broken global TRON freeze builtins --- libsolidity/analysis/GlobalContext.cpp | 6 ------ .../global_tron_freeze_builtins_no_ice.sol | 11 +++++++++++ .../syntaxTests/tron/address_freeze_members.sol | 10 ++++++++++ 3 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 test/libsolidity/syntaxTests/iceRegressionTests/global_tron_freeze_builtins_no_ice.sol create mode 100644 test/libsolidity/syntaxTests/tron/address_freeze_members.sol diff --git a/libsolidity/analysis/GlobalContext.cpp b/libsolidity/analysis/GlobalContext.cpp index 2fe6a95bf9b2..c186ad1a0f1b 100644 --- a/libsolidity/analysis/GlobalContext.cpp +++ b/libsolidity/analysis/GlobalContext.cpp @@ -68,9 +68,6 @@ int magicVariableToID(std::string const& _name) {"pedersenHash", -32}, {"batchvalidatesign", -33}, {"validatemultisign", -34}, - {"freeze", -35}, - {"unfreeze", -36}, - {"freezeExpireTime", -37}, {"withdrawreward", -38}, {"vote", -39}, {"rewardBalance", -40}, @@ -122,9 +119,6 @@ inline std::vector> constructMag magicVarDecl("sha3", TypeProvider::function(strings{"bytes memory"}, strings{"bytes32"}, FunctionType::Kind::KECCAK256, StateMutability::Pure)), magicVarDecl("suicide", TypeProvider::function(strings{"address payable"}, strings{}, FunctionType::Kind::Selfdestruct)), magicVarDecl("tx", TypeProvider::magic(MagicType::Kind::Transaction)), - magicVarDecl("freeze", TypeProvider::function(strings{"uint", "uint"}, strings{"bool"}, FunctionType::Kind::Freeze, StateMutability::NonPayable)), - magicVarDecl("unfreeze", TypeProvider::function(strings{"uint"}, strings{"bool"}, FunctionType::Kind::Unfreeze, StateMutability::NonPayable)), - magicVarDecl("freezeExpireTime",TypeProvider::function(strings{"uint"}, strings{"uint"}, FunctionType::Kind::FreezeExpireTime, StateMutability::NonPayable)), magicVarDecl("withdrawreward", TypeProvider::function(strings{}, strings{"uint"}, FunctionType::Kind::WithdrawReward)), magicVarDecl("freezebalancev2", TypeProvider::function(strings{"uint", "uint"}, strings(), FunctionType::Kind::FreezeBalanceV2, StateMutability::NonPayable)), magicVarDecl("unfreezebalancev2", TypeProvider::function(strings{"uint", "uint"}, strings(), FunctionType::Kind::UnfreezeBalanceV2, StateMutability::NonPayable)), diff --git a/test/libsolidity/syntaxTests/iceRegressionTests/global_tron_freeze_builtins_no_ice.sol b/test/libsolidity/syntaxTests/iceRegressionTests/global_tron_freeze_builtins_no_ice.sol new file mode 100644 index 000000000000..80975f7e27e7 --- /dev/null +++ b/test/libsolidity/syntaxTests/iceRegressionTests/global_tron_freeze_builtins_no_ice.sol @@ -0,0 +1,11 @@ +contract C { + function f() public { + freeze(1, 1); + unfreeze(1); + freezeExpireTime(1); + } +} +// ---- +// DeclarationError 7576: (47-53): Undeclared identifier. +// DeclarationError 7576: (69-77): Undeclared identifier. +// DeclarationError 7576: (90-106): Undeclared identifier. diff --git a/test/libsolidity/syntaxTests/tron/address_freeze_members.sol b/test/libsolidity/syntaxTests/tron/address_freeze_members.sol new file mode 100644 index 000000000000..7b72f7457b3f --- /dev/null +++ b/test/libsolidity/syntaxTests/tron/address_freeze_members.sol @@ -0,0 +1,10 @@ +contract C { + function freezeFor(address payable a) public { + a.freeze(1, 1); + a.unfreeze(1); + } + + function freezeExpiry(address a) public view returns (uint256) { + return a.freezeExpireTime(1); + } +}