@@ -138,6 +138,20 @@ def inject_globals(func):
138138 console .AddItem ("activate_single_pool" , inject_globals (activate_single_pool ), local .translate ("activate_single_pool_cmd" ))
139139 console .AddItem ("import_pool" , inject_globals (import_pool ), local .translate ("import_pool_cmd" ))
140140
141+ console .AddItem ("create_controllers" , inject_globals (CreateControllers ), local .translate ("_" ))
142+ console .AddItem ("update_controllers" , inject_globals (CreateControllers ), local .translate ("_" ))
143+ console .AddItem ("controllers_list" , inject_globals (PrintControllersList ), local .translate ("_" ))
144+ console .AddItem ("get_controller_data" , inject_globals (GetControllerData ), local .translate ("_" ))
145+ console .AddItem ("deposit_to_controller" , inject_globals (DepositToController ), local .translate ("_" ))
146+ console .AddItem ("withdraw_from_controller" , inject_globals (WithdrawFromController ), local .translate ("_" ))
147+ console .AddItem ("calculate_annual_controller_percentage" , inject_globals (CalculateAnnualControllerPercentage ), local .translate ("_" ))
148+ console .AddItem ("controller_update_validator_set" , inject_globals (ControllerUpdateValidatorSet ), local .translate ("_" ))
149+ console .AddItem ("stop_controller" , inject_globals (StopController ), local .translate ("_" ))
150+ console .AddItem ("stop_and_withdraw_controller" , inject_globals (StopAndWithdrawController ), local .translate ("_" ))
151+ console .AddItem ("add_controller" , inject_globals (AddController ), local .translate ("_" ))
152+ console .AddItem ("check_liquid_pool" , inject_globals (CheckLiquidPool ), local .translate ("_" ))
153+ console .AddItem ("test_calculate_loan_amount" , inject_globals (CalculateLoanAmount_test ), local .translate ("_" ))
154+
141155 # console.AddItem("pt", inject_globals(PrintTest), "PrintTest")
142156 # console.AddItem("sl", inject_globals(sl), "sl")
143157 console .AddItem ("cleanup" , inject_globals (cleanup_validator_db ), local .translate ("cleanup_cmd" ))
@@ -1489,6 +1503,145 @@ def import_pool(ton, args):
14891503 color_print ("import_pool - {green}OK{endc}" )
14901504#end define
14911505
1506+ def CreateControllers (ton , args ):
1507+ ton .CreateControllers ()
1508+ color_print ("CreateControllers - {green}OK{endc}" )
1509+ #end define
1510+
1511+ def PrintControllersList (ton , args ):
1512+ new_controllers = ton .GetControllers ()
1513+ using_controllers = ton .GetSettings ("using_controllers" )
1514+ old_controllers = ton .GetSettings ("old_controllers" )
1515+ user_controllers_list = ton .GetSettings ("user_controllers_list" )
1516+ print ("using controllers:" )
1517+ PrintControllersListProcess (ton , using_controllers )
1518+ if new_controllers != using_controllers :
1519+ print ()
1520+ print ("new controllers:" )
1521+ PrintControllersListProcess (ton , new_controllers )
1522+ if old_controllers is not None and len (old_controllers ) > 0 :
1523+ print ()
1524+ print ("old controllers:" )
1525+ PrintControllersListProcess (ton , old_controllers )
1526+ if user_controllers_list is not None and len (user_controllers_list ) > 0 :
1527+ print ()
1528+ print ("user controllers:" )
1529+ PrintControllersListProcess (ton , user_controllers_list )
1530+ #end define
1531+
1532+ def PrintControllersListProcess (ton , controllers ):
1533+ table = list ()
1534+ table += [["Address" , "Status" , "Balance" , "Approved" , "State" ]]
1535+ for controllerAddr in controllers :
1536+ account = ton .GetAccount (controllerAddr )
1537+ controllerData = ton .GetControllerData (controllerAddr )
1538+ approved = True if controllerData and controllerData ["approved" ] == - 1 else False
1539+ state = controllerData ["state" ] if controllerData else None
1540+ table += [[controllerAddr , account .status , account .balance , approved , state ]]
1541+ print_table (table )
1542+ #end define
1543+
1544+ def GetControllerData (ton , args ):
1545+ try :
1546+ controllerAddr = args [0 ]
1547+ except :
1548+ color_print ("{red}Bad args. Usage:{endc} get_controller_data <controller-addr>" )
1549+ return
1550+ controllerData = ton .GetControllerData (controllerAddr )
1551+ print (json .dumps (controllerData , indent = 4 ))
1552+ #end define
1553+
1554+ def DepositToController (ton , args ):
1555+ try :
1556+ controllerAddr = args [0 ]
1557+ amount = float (args [1 ])
1558+ except :
1559+ color_print ("{red}Bad args. Usage:{endc} deposit_to_controller <controller-addr> <amount>" )
1560+ return
1561+ ton .DepositToController (controllerAddr , amount )
1562+ #end define
1563+
1564+ def WithdrawFromController (ton , args ):
1565+ try :
1566+ controllerAddr = args [0 ]
1567+ amount = GetItemFromList (args , 1 )
1568+ except :
1569+ color_print ("{red}Bad args. Usage:{endc} withdraw_from_controller <controller-addr> [amount]" )
1570+ return
1571+ ton .WithdrawFromController (controllerAddr , amount )
1572+ #end define
1573+
1574+ def CalculateAnnualControllerPercentage (ton , args ):
1575+ try :
1576+ percentPerRound = float (args [0 ])
1577+ except :
1578+ percentPerRound = ton .GetSettings ("max_interest_percent" )
1579+ config15 = ton .GetConfig (15 )
1580+ roundPeriod = config15 ["validators_elected_for" ]
1581+ rounds = 365 * 24 * 3600 / roundPeriod
1582+ yearInterest = (1 + percentPerRound / 100 ) * rounds
1583+ yearInterestPercent = round (yearInterest / 100 , 2 )
1584+ print ("roundPeriod" , roundPeriod )
1585+ print ("rounds" , rounds )
1586+ print ("percentPerRound" , percentPerRound )
1587+ print ("yearInterest" , yearInterest )
1588+ print (f"yearInterestPercent: { yearInterestPercent } %" )
1589+ #end define
1590+
1591+ def ControllerUpdateValidatorSet (ton , args ):
1592+ try :
1593+ controllerAddr = args [0 ]
1594+ except :
1595+ color_print ("{red}Bad args. Usage:{endc} controller_update_validator_set <controller-addr>" )
1596+ return
1597+ ton .ControllerUpdateValidatorSet (controllerAddr )
1598+ color_print ("ControllerUpdateValidatorSet - {green}OK{endc}" )
1599+ #end define
1600+
1601+ def StopController (ton , args ):
1602+ try :
1603+ controllerAddr = args [0 ]
1604+ except :
1605+ color_print ("{red}Bad args. Usage:{endc} stop_controller <controller-addr>" )
1606+ return
1607+ ton .StopController (controllerAddr )
1608+ color_print ("StopController - {green}OK{endc}" )
1609+ #end define
1610+
1611+ def StopAndWithdrawController (ton , args ):
1612+ try :
1613+ controllerAddr = args [0 ]
1614+ amount = GetItemFromList (args , 1 )
1615+ except :
1616+ color_print ("{red}Bad args. Usage:{endc} stop_and_withdraw_controller <controller-addr> [amount]" )
1617+ return
1618+ if amount is None :
1619+ account = ton .GetAccount (controllerAddr )
1620+ amount = account .balance - 10.1
1621+ ton .StopController (controllerAddr )
1622+ ton .WithdrawFromController (controllerAddr , amount )
1623+ color_print ("StopAndWithdrawController - {green}OK{endc}" )
1624+ #end define
1625+
1626+ def AddController (ton , args ):
1627+ try :
1628+ controllerAddr = args [0 ]
1629+ except :
1630+ color_print ("{red}Bad args. Usage:{endc} add_controller <controller-addr>" )
1631+ return
1632+ ton .AddController (controllerAddr )
1633+ color_print ("AddController - {green}OK{endc}" )
1634+ #end define
1635+
1636+ def CheckLiquidPool (ton , args ):
1637+ ton .CheckLiquidPool ()
1638+ color_print ("CheckLiquidPool - {green}OK{endc}" )
1639+ #end define
1640+
1641+ def CalculateLoanAmount_test (ton , args ):
1642+ t = ton .CalculateLoanAmount_test ()
1643+ print (t )
1644+
14921645
14931646###
14941647### Start of the program
0 commit comments