Skip to content

Commit f1efec4

Browse files
committed
move events from mytoncore/functions.py
1 parent 7adeb91 commit f1efec4

File tree

7 files changed

+91
-82
lines changed

7 files changed

+91
-82
lines changed

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
- name: Run Pyright
4545
run: |
4646
pip install pyright
47-
pyright mypylib mypyconsole mytoncore/models.py mytoncore/utils.py # wip support whole project
47+
pyright mypylib mypyconsole mytoncore/models.py mytoncore/utils.py mytoncore/events.py # wip support whole project
4848
4949
- name: Run pytest
5050
run: |

mypylib/mypylib.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ def check_root_permission(self):
374374
return result
375375
#end define
376376

377-
def add_log(self, input_text, mode=INFO):
377+
def add_log(self, input_text: str, mode=INFO):
378378
input_text = f"{input_text}"
379379
time_text = date_time_library.datetime.utcnow().strftime("%d.%m.%Y, %H:%M:%S.%f")[:-3]
380380
time_text = "{0} (UTC)".format(time_text).ljust(32, ' ')

mytoncore/__main__.py

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,42 @@
1-
from mytoncore.functions import mytoncore
1+
import argparse
2+
from mypylib import MyPyClass
3+
from mytoncore.events import (
4+
enable_vc_event,
5+
enable_mode,
6+
enable_btc_teleport,
7+
setup_collator,
8+
)
9+
from mytoncore.functions import Init, General
210

311

4-
if __name__ == '__main__':
5-
mytoncore()
12+
def run_event(local: MyPyClass, event_name: str):
13+
if event_name == "enableVC":
14+
enable_vc_event(local)
15+
elif event_name.startswith("enable_mode"):
16+
enable_mode(local, event_name)
17+
elif event_name == "enable_btc_teleport":
18+
enable_btc_teleport(local)
19+
elif event_name.startswith("setup_collator"):
20+
setup_collator(local, event_name)
21+
else:
22+
raise Exception("Unknown event name")
23+
local.exit()
24+
25+
26+
if __name__ == "__main__":
27+
l = MyPyClass("mytoncore.py")
28+
29+
parser = argparse.ArgumentParser()
30+
parser.add_argument(
31+
"-e",
32+
type=str,
33+
metavar="EVENT",
34+
help="event to run (enableVC, enable_mode*, enable_btc_teleport, setup_collator*)",
35+
)
36+
args = parser.parse_args()
37+
38+
if args.e is not None:
39+
run_event(l, args.e)
40+
else:
41+
Init(l)
42+
General(l)

mytoncore/events.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
from mypylib import MyPyClass
2+
3+
from mytoncore.mytoncore import MyTonCore
4+
5+
6+
def enable_vc_event(local: MyPyClass):
7+
local.add_log("start EnableVcEvent function", "debug")
8+
ton = MyTonCore(local)
9+
wallet = ton.CreateWallet("validator_wallet_001", -1)
10+
assert wallet is not None
11+
local.db["validatorWalletName"] = wallet.name
12+
adnl_addr = ton.CreateNewKey()
13+
assert adnl_addr is not None
14+
ton.AddAdnlAddrToValidator(adnl_addr)
15+
local.db["adnlAddr"] = adnl_addr
16+
local.save()
17+
18+
19+
def enable_mode(local: MyPyClass, event_name: str):
20+
ton = MyTonCore(local)
21+
mode = event_name.split("_")[-1]
22+
if mode in ("liteserver", "collator"):
23+
ton.disable_mode("validator")
24+
ton.enable_mode(mode)
25+
26+
27+
def enable_btc_teleport(local: MyPyClass):
28+
local.add_log("start enable_btc_teleport function", "debug")
29+
ton = MyTonCore(local)
30+
if not ton.using_validator():
31+
local.add_log("Skip installing BTC Teleport as node is not a validator", "info")
32+
return
33+
from modules.btc_teleport import BtcTeleportModule
34+
35+
BtcTeleportModule(ton, local).init(reinstall=True)
36+
37+
38+
def setup_collator(local: MyPyClass, event_name: str):
39+
local.add_log("start setup_collator function", "debug")
40+
ton = MyTonCore(local)
41+
from modules.collator import CollatorModule
42+
43+
shards = event_name.split("_")[2:]
44+
CollatorModule(ton, local).setup_collator(shards)

mytoncore/functions.py

Lines changed: 0 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,6 @@
2525

2626

2727
def Init(local):
28-
# Event reaction
29-
if ("-e" in sys.argv):
30-
x = sys.argv.index("-e")
31-
event_name = sys.argv[x+1]
32-
Event(local, event_name)
33-
# end if
34-
3528
local.run()
3629

3730
# statistics
@@ -45,71 +38,6 @@ def Init(local):
4538
local.buffer.prevShardsBlock = dict()
4639
local.buffer.blocksNum = 0
4740
local.buffer.transNum = 0
48-
# end define
49-
50-
51-
def Event(local, event_name):
52-
if event_name == "enableVC":
53-
EnableVcEvent(local)
54-
elif event_name == "validator down":
55-
ValidatorDownEvent(local)
56-
elif event_name.startswith("enable_mode"):
57-
enable_mode(local, event_name)
58-
elif event_name == "enable_btc_teleport":
59-
enable_btc_teleport(local)
60-
elif event_name.startswith("setup_collator"):
61-
setup_collator(local, event_name)
62-
local.exit()
63-
# end define
64-
65-
66-
def EnableVcEvent(local):
67-
local.add_log("start EnableVcEvent function", "debug")
68-
# Создать новый кошелек для валидатора
69-
ton = MyTonCore(local)
70-
wallet = ton.CreateWallet("validator_wallet_001", -1)
71-
local.db["validatorWalletName"] = wallet.name
72-
73-
# Создать новый ADNL адрес для валидатора
74-
adnlAddr = ton.CreateNewKey()
75-
ton.AddAdnlAddrToValidator(adnlAddr)
76-
local.db["adnlAddr"] = adnlAddr
77-
78-
# Сохранить
79-
local.save()
80-
# end define
81-
82-
83-
def ValidatorDownEvent(local):
84-
local.add_log("start ValidatorDownEvent function", "debug")
85-
local.add_log("Validator is down", "error")
86-
# end define
87-
88-
89-
def enable_mode(local, event_name: str):
90-
ton = MyTonCore(local)
91-
mode = event_name.split("_")[-1]
92-
if mode in ("liteserver", "collator"):
93-
ton.disable_mode('validator')
94-
ton.enable_mode(mode)
95-
#end define
96-
97-
def enable_btc_teleport(local):
98-
local.add_log("start enable_btc_teleport function", "debug")
99-
ton = MyTonCore(local)
100-
if not ton.using_validator():
101-
local.add_log("Skip installing BTC Teleport as node is not a validator", "info")
102-
return
103-
from modules.btc_teleport import BtcTeleportModule
104-
BtcTeleportModule(ton, local).init(reinstall=True)
105-
106-
107-
def setup_collator(local, event_name: str):
108-
local.add_log("start setup_collator function", "debug")
109-
ton = MyTonCore(local)
110-
from modules.collator import CollatorModule
111-
shards = event_name.split("_")[2:]
112-
CollatorModule(ton, local).setup_collator(shards)
11341

11442

11543
def Elections(local, ton):

mytoncore/mytoncore.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -975,7 +975,7 @@ def AddKeyToTemp(self, key, endWorkTime):
975975
return output
976976
#end define
977977

978-
def AddAdnlAddrToValidator(self, adnlAddr):
978+
def AddAdnlAddrToValidator(self, adnlAddr: str):
979979
self.local.add_log("start AddAdnlAddrToValidator function", "debug")
980980
output = False
981981
result = self.validatorConsole.Run("addadnl {adnlAddr} 0".format(adnlAddr=adnlAddr))
@@ -1605,7 +1605,7 @@ def SaveElectionVarsToJsonFile(self, **kwargs):
16051605
file.close()
16061606
#ned define
16071607

1608-
def CreateWallet(self, name, workchain=0, version="v1", **kwargs):
1608+
def CreateWallet(self, name: str, workchain=0, version="v1", **kwargs):
16091609
self.local.add_log("start CreateWallet function", "debug")
16101610
subwallet_default = 698983191 + workchain # 0x29A9A317 + workchain
16111611
subwallet = kwargs.get("subwallet", subwallet_default)
@@ -3083,15 +3083,15 @@ def check_enable_mode(self, name):
30833083
from mytoninstaller.settings import enable_ton_http_api
30843084
enable_ton_http_api(self.local)
30853085

3086-
def enable_mode(self, name):
3086+
def enable_mode(self, name: str):
30873087
if name not in MODES:
30883088
raise Exception(f'Unknown module name: {name}. Available modes: {", ".join(MODES)}')
30893089
MODES[name].check_enable(self)
30903090
current_modes = self.get_modes()
30913091
current_modes[name] = True
30923092
self.local.save()
30933093

3094-
def disable_mode(self, name):
3094+
def disable_mode(self, name: str):
30953095
current_modes = self.get_modes()
30963096
if name not in current_modes:
30973097
raise Exception(f'Unknown module name: {name}. Available modes: {", ".join(MODES)}')

mytoninstaller/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def FirstNodeSettings(local):
9999
for shard in add_shard.split():
100100
cmd += f' --add-shard {shard}'
101101

102-
add2systemd(name="validator", user=vuser, start=cmd, pre='/bin/sleep 2') # post="/usr/bin/python3 /usr/src/mytonctrl/mytoncore.py -e \"validator down\""
102+
add2systemd(name="validator", user=vuser, start=cmd, pre='/bin/sleep 2')
103103

104104
if local.buffer.public_ip is not None:
105105
ip = local.buffer.public_ip

0 commit comments

Comments
 (0)