ááœááºáá²á·ááá·áºáá
áºááŸá
áºáá»á±á¬áºáá áááºážáááá¯ááºááá¯ááºáááá¯áá»á¯ááºááá¯ááºááŸá¯áá»áŸá±á¬á·áá»áá¬ážáá±á¬ááœááºáááºááá¯áá¯ááºááœáŸááºááẠTelegram messenger áá¡á
á®á¡áá¶áá»á¬ážá¡ááŒá±á¬ááºážááᯠááááŸááá¬áá²á·áááºá ááœááºá·áááºážááœááºáááºááŒá±ážáááºáž. ááá¯á·áá±á¬ááºááœáẠNikolai Durov ááŸáá±ážáá¬ážáááºáá¯á
áœááºá
áœá²áᬠá¡áá¬áááºááœááºáááºáááœá²á·á
ááºážáá¯á¶ááá¯áá±á¬áºááŒáá²á·ááá·áº áá±á¬ááºááá±á¬áááºážááá¬ááá¯ááºáá¬á
á¬ááœááºá
á¬áááºážáá
áºáá¯áááŸááá¬áááºá ááœááºááœá¬ážáá°áá»á¬ážá¡ááœáẠá€á
á¬áááºážá¡á¬áž áá»áœááºá¯ááºá ááŒááºáááºááŒá±á¬ááŒáá»ááºááᯠáááºááŒáá·áºááẠá¡ááŒá¶ááŒá¯ááá¯áá«ááẠ(
ááá¯á¡áá»áááºááŸá
á TON ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááŒá±á¡áá±ááŸáá·áºáááºáááºááŒá®áž ááœááºáá²á·ááá·áºáááºá¡áááºážáááºá¡áá (áá
áºáá¯á០áááœá±á·ááá±ážáá«á
âŠ
âŠ
âŠ
âŠ
âŠ
âŠ
âŠ
âŠ
áááºáá«áááºáá«á á á¬áá»ááºááŸá¬ááŸáá·áº á€á á¬ááœááºá á¬áááºážáá»á¬ážá¡á¬ážáá¯á¶ážááᯠTelegram ááŸááá¬ážáááºá¡áááºááŒá¯áá»ááºáááŸááá²á·áá²á á€áá á¹á ááºážáá»á¬ážáááá¬áááẠáááºážááá¯á·ááᯠá¡áá±á¬áºáá±ážáá¯á¶ááŒááºááá¯ááºá á±áááºá áá¯ááºáá±áá¬ážáá±á¬ áá¯á¶ážá áœá²áá°ááᯠá áááºáá«á ááá¯áá·áºá¡áá¹ááá¬ááº.
á ááºážáááºáá±á¬ááºáááºáá áºáá¯áááºáá±á¬ááºááŒááºážá
ááááŠážá
áœá¬á á
ááºážáááºáá±á¬ááºáááºáá
áºáá¯ááᯠáááºáá±á¬ááºááŒá®áž áá¯ááºáá±á¬ááºááẠááŒáá¯ážá
á¬ážááŒáá«á
áá¯á· - áá¶áá±á¬ááºážá
áœá¬á
-
áá±á«ááºážáá¯ááºáá¯ááºááŒá®áž áá¯ááºááá¯ážááá¯ááºáá«á
source archive . á€á¡ááá·áºááœáẠáá±á¬ááºááŒááºááá¯ááºáááºááŸá¯ááᯠá¡á¬áááá¶ááá¯ááºáá±á¬ááŒá±á¬áá·áº áá±á¬ááºáá¯á¶ážáá¬ážááŸááºážááᯠáá±á«ááºážáá¯ááºáá¯ááºááẠá¡áá±ážááŒá®ážáá«áááºá -
makeá cmake (áá¬ážááŸááºáž 3.0.2 ááŸáá·áºá¡áááº)á OpenSSL (C áá±á«ááºážá á®ážááá¯ááºáá»á¬ážá¡áá«á¡áááº)á g++ ááá¯á·ááá¯áẠclang á áá±á¬ááºáá¯á¶ážáá¬ážááŸááºážáá»á¬ážááᯠá áá áºááœáẠááá·áºááœááºážáá¬ážááŒá±á¬ááºáž áá±áá»á¬áá«á á±á áá«áá¬ááŸáááºáááºá áá¬áááá¯áá°ážá á¡á¬ážáá¯á¶ážáá»ááºáá»ááºážá¡áá°áá°áá«áá²á
-
áááºážááŒá áºáá»á¬ážááᯠááá¯áá«áá áºáá¯ááœáẠáá¯ááºááá¯ážáá¬ážááẠáᯠáá°áááŒáá«á áá¯á·
~/lite-client
. áááºážááŸáá·áº áá®ážááŒá¬ážá á® á á¯á ááºážáá¬ážáá±á¬ ááá±á¬áá»ááºá¡ááœáẠá¡ááœááºááá¯ááºáá áºáᯠáááºáá®ážáá« (á¥ááá¬á~/liteclient-build
) ááŸáá·áº áááºážá០(cd ~/liteclient-build
) á¡áááá·áºáá»á¬ážááá¯áá±á«áºááá¯áá«cmake ~/lite-client cmake --build . --target test-lite-client
á áááºá á¬áá»á¯ááºáá»á¬ážá¡ááœáẠFift áá¬áá¬á áá¬áž á áá¬ážááŒááºááᯠáááºáá±á¬ááºááẠ(áááºážááŸáá·áºáááºáááºááá·áº áá±á¬ááºáááºá¡ááŒá±á¬ááºážá¡áá¬áá»á¬áž) ááᯠáá»áœááºá¯ááºááá¯á·áááºáž áá±á«áºááá¯áá«áááºácmake --build . --target fift
-
áááºááŸáááá¯áá±á«ááºážáá¯ááºáá¯ááºáá«á
configuration ááá¯áẠá ááºážáááºááœááºáááºááá¯á· áá»áááºáááºááẠá á¯á ááºážáá¬ážáá±á¬ client ááŸáá·áº ááá¯ááºááœá²ááœáẠááá·áºááœááºážáá«á -
ááŒá®ážááŒá®áááºááẠclient ááá¯á áááºááá¯ááºáááº-
./test-lite-client -C ton-lite-client-test1.config.json
á¡á¬ážáá¯á¶áž ááŸááºáááºá áœá¬ ááŒá®ážáá«áá á€áá²á·ááá¯á· áá áºáá¯áá¯ááᯠááŒááºááá«áááºá
áá»áœááºá¯ááºááá¯á·ááŒááºááá¯ááºáááºá¡ááá¯ááºážá áááá¯ááºáá±á¬ command á¡áááºážáááºááŸááááºá
⊠help
- á€á¡áááá·áºáá»á¬ážá
á¬áááºážááá¯ááŒááá«á
⊠quit
- á¡ááŒááºááœááºáááº;
⊠time
- áá¬áá¬áá±á«áºááœááºáááºááŸáá¡áá»áááºááá¯ááŒááá«á
⊠status
- áá»áááºáááºááŸá¯ááŸáá·áº áá±áááá¯ááºáá¬áá±áá¬áá±á·á
áºá¡ááŒá±á¡áá±ááá¯ááŒááá«á
⊠last
â blockchain á¡ááŒá±á¡áá±ááᯠá¡ááºááááºáá¯ááºáá« (áá±á¬ááºáá¯á¶ážááááºááᯠáá±á«ááºážáá¯ááºáá¯ááºáá«)á ááœááºáááºááááºááŸáá¡ááŒá±á¡áá±ááᯠáááºááŒááºááŒá±á¬ááºážáá±áá»á¬á
á±ááẠáá±á¬ááºážááá¯ááŸá¯áá
áºá
á¯á¶áá
áºáá¬áááŒá¯áá® á€á¡áááá·áºááᯠáá¯ááºáá±á¬ááºááẠá¡áá±ážááŒá®ážáááºá
⊠sendfile
<filename>
â TON ááœááºáááºááá¯á· áá±áááœááºážááá¯ááºáá
áºáá¯ááᯠá¡ááºáá¯ááºáá¯ááºáá«á á€áááºááŸá¬ ááœááºáááºááŸáá·áºá¡ááŒááºá¡ááŸááºá¡áá»áá¯ážáááºáá±á¬ááºáá¯á¶- á¥ááá¬á¡á¬ážááŒáá·áºá á
áááºá
á¬áá»á¯ááºá¡áá
áºáá»á¬ážáááºáá®ážááŒááºážááŸáá·áº á¡áá±á¬áá·áºáá»á¬ážá¡ááŒá¬áž áááºáá¯á¶ááœá±ááœáŸá²ááŒá±á¬ááºážááẠáá±á¬ááºážááá¯ááŸá¯áá»á¬ážá¡áá«á¡áááºá
⊠getaccount
<address>
- áááºááŸáááá¯ááŒááá« (á¡áááá·áºááá¯áá¯ááºáá±á¬ááºááá·áºá¡áá»áááºááœááº) last
) áááºááŸááºáá¬ážáá±á¬ááááºá
á¬ááŸáá·áºá¡áá° á¡áá±á¬áá·áºáá¡ááŒá±á¡áá±á
⊠privkey
<filename>
â ááŒááºááœááºážááá¯ááºáá
áºáá¯á០áá®ážááá·áºáá±á¬á·ááᯠáááºáá«á
á¡áááºá client ááá¯á
áááºáá±á¬á¡áá«á áááºááẠoption ááá¯á¡áá¯á¶ážááŒá¯á ááá¯ááºááœá²áá
áºáá¯ááᯠáááºážááá¯á· ááœáŸá²ááŒá±á¬ááºážáá«á -D
ááá¯á·áá±á¬áẠmasterchain ááá±á¬ááºáá¯á¶ážááá±á¬ááºááᯠáááºážáá²ááá¯á·ááá·áºáááá·áºáááº-
./test-lite-client -C ton-lite-client-test1.config.json -D ~/ton-db-dir
ááᯠáá»áœááºá¯ááºááá¯á·ááẠááá¯ááá¯á áááºáááºá á¬ážááœááºáá±á¬ááºážáá±á¬ á¡áá¬áá»á¬ážááᯠáááºáááºáá¯ááºáá±á¬ááºááá¯ááºááẠ- Fift áá¬áá¬á áá¬ážááᯠáá±á·áá¬áá«á á áááºáá»ááá·áº á á¬áá»á¯ááºáá áºáᯠ(á¥ááá¬á á ááºážáááºááá¯ááºáá¶á¡áááºáá áºáᯠáááºáá®ážáááº)á áááºážááᯠááœááºáááºááá¯á· á¡ááºáá¯ááºáá¯ááºááŒá®áž á¡áá±á¬áá·áºáá»á¬ážá¡ááŒá¬áž áááºáá¯á¶ááœá±áá»á¬áž ááœáŸá²ááŒá±á¬ááºážááẠááŒáá¯ážá á¬ážáá«á
áá¬áá¬á áá¬áž Fift
á
á¬ááœááºá
á¬áááºážááŸ
á á¬áááºážááẠá¡ááœááºáá±á¬ááºáááŒá®áž á á¬áá»ááºááŸá¬ 87 ááŸáááŒá®ážá á€áá±á¬ááºážáá«ážááá±á¬ááºá¡ááœááºážá០áááºážáá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠá¡áá±ážá áááºááŒááºááŒá±á¬ááŒáááºááá¯ááºáá« (á¡áááºážáá¯á¶áž áá»áœááºá¯ááºááá¯ááºááá¯áẠááááºááá±ážáá±á¬ááŒá±á¬áá·áº :)á á¡áááá¡áá»ááºáá»á¬ážááᯠá¡á¬áá¯á¶á áá¯ááºááŒá®áž á€áá¬áá¬á áá¬ážááœáẠáá¯ááºááá°áá¬á¡áá»áá¯á·ááᯠáá±ážáá«áááºá
á¡ááŒá±áá¶á¡ááá·áºááœááºá Fift á syntax ááẠá¡áá±á¬áºáá±ážááá¯ážááŸááºážáá«áááº- áááºážááá¯ááºááœáẠáá«áááºáá«áááºá á áá¬ážáá»á¬ážáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº áá±áá¬ááœááºáá»á¬áž ááá¯á·ááá¯áẠáá»ááºážááœá²áá»á¬ážááŒáá·áº ááá¯ááºážááŒá¬ážáá¬ážááẠ(á¡áá°ážááá á¹á - á¡áá»áá¯á·áá±á¬ á áá¬ážáá¯á¶ážáá»á¬ážááẠáááºážááá¯á·áá±á¬ááºá០ááœá²ááœááºáááºáááá¯á¡ááºáá«)á áá áºáá¯áᯠá áá¬ážáá¯á¶áž á¡áá»áá¯á·áá±á¬ áá¬ááºáá±á¬ááºáá»á¬ážááŸáá·áº ááá¯ááºáá®áá±á¬ ááŒá áºáááºááŸáẠá¡áá²áááºáá±á¬ á¡ááœá²áá áºáá¯ááŒá áºáááºá á¡ááááºáá«áá» (á¡ááŒááºážáá»ááºážá¡á¬ážááŒáá·áºá á áá¬ážááŒááºá áá®á áá¬ážáá¯á¶ážááᯠááœá±á·áá²á·á¡áá« áá¬áá¯ááºááá·áºááá²á á áá¬ážáá¯á¶ážáá áºáá¯á¶ážá á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáááŸááá«áá á áá¬ážááŒááºá áááºážá¡á¬áž áá¶áá«ááºáá áºáá¯á¡ááŒá Ạááœá²ááŒááºážá áááºááŒá¬ááŒá®áž áááºážááᯠstack áá±á«áºááœááºáááºááẠááŒáá¯ážá á¬ážáááºá á áá¬ážáá ááºá á€áá±áá¬ááœáẠááááºážáá»á¬ážááẠ- áá¯ááºáááẠ- 257-áá ẠááááºážááŒáá·áºáá»á¬ážááŒá áºááŒá®áž á¡ááá¯ááºážááááºážáá»á¬áž áá¯á¶ážááááŸááá« - ááá¯ááááá»áááºááŸá¬á áááºážááá¯á·ááẠáá»ááºáá»ááºážááá¯áááᯠááááºážááŒáá·áºáá áºá á¯á¶á¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²ááœá¬ážáᬠááá¯ááºážáá±ááŸáá·áº ááá¯ááºážááŒá±ááᯠáááºááŒááºáá¯á¶ááá¬ážááŸááá±á¬ á¡ááá¯ááºážá¡á áá áºáá¯á¡ááŒá Ạáá¯á¶áá±á¬áºáá«áááºá
á
áá¬ážáá¯á¶ážáá»á¬ážááẠstack áááááºááŸááááºááá¯ážáá»á¬ážááŸáá·áºá¡ááŒááºá¡ááŸááºá¡áá»áá¯ážáááºáá±á¬ááºáááºáááºá áá®ážááŒá¬ážá
áá¬ážáá¯á¶ážá¡áá»áá¯ážá¡á
á¬áž - ááŸá±á·ááẠâ stack ááᯠá¡áá¯á¶ážáááŒá¯áá±á¬áºáááºáž á¡áááºážá¡ááŒá
áºááá¯ááºá០áá±á¬ááºáááºááœá²áá¬ááºáá±á¬ááºáá»á¬ážá á¥ááá¬á¡á¬ážááŒáá·áºá á€ááẠstring literals ááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºáá¯á¶ááŒá
áºááẠ- ááá¯ážáá¬ážáá¬ááºáá±á¬áẠ("
) ááẠáá±á¬áẠ(ááááº) ááá¯ážáá¬ážáá»ááºááᯠááŸá¬ááœá±ááŒá®áž áááºážááá¯á·ááŒá¬ážááŸá á
á¬ááŒá±á¬ááºážááᯠstack áá±á«áºááá¯á· ááœááºážááá¯á·ááá·áº ááŸá±á·á
á¬áá¯á¶ážáá
áºáá¯ááŒá
áºáááºá ááá¯ááºážááá¬ážáá»á¬ážááẠááá¯áááºážá¡ááá¯ááºáž ááŒá¯áá°ááẠ(//
) ááŸáá·áº multiline (/*
) ááŸááºáá»ááºáá»á¬ážá
á€áá±áá¬ááœáẠáá¬áá¬á
áá¬ážá á¡ááœááºážááá¯ááºážááœá²á·á
ááºážáá¯á¶áá
áºáá¯áá¯á¶ážáá®ážáá«áž ááŒá®ážáá¯á¶ážááœá¬ážáá«áááºá á¡ááŒá¬ážá¡áá¬á¡á¬ážáá¯á¶ážááᯠ(ááááºážáá»á¯ááºááŸá¯áááºáá±á¬ááºáá¯á¶áá»á¬ážá¡áá«á¡áááº) ááẠá
áá¬ážáá¯á¶ážáá»á¬áž (á¡ááœááºážááá¯ááºážá ááááºážáááºá¹áá»á¬áá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážááŸáá·áº á
áá¬ážáá¯á¶ážá¡áá
áºáá»á¬ážá á¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºáá»á¬ážáá²á·ááá¯á·ááŒá
áºá
á± ááá¯á·ááá¯áẠ"á
á¶ááŒá
á¬ááŒáá·áºááá¯ááº" ááœáẠáááºááŸááºáá¬ážááẠFift.fif
Folder áá²ááŸá¬áá«áá«áááºá crypto/fift
á¡áááºážá¡ááŒá
áºáá»á¬ážááœááº)á
Fift ááŸá ááá¯ážááŸááºážáá±á¬ á¥ááá¬áááá¯ááááº
{ dup =: x dup * =: y } : setxy
3 setxy x . y . x y + .
7 setxy x . y . x y + .
áááá
á¬ááŒá±á¬ááºážá á
áá¬ážáá¯á¶ážá¡áá
áºááᯠáááºááŸááºáá«áááºá setxy
(ááŸá±á·áááºááᯠáááááŒá¯áá«á {
á¡ááááºáá
áºáá¯ááŸá±á·ááœáẠááá±á¬ááºáá
áºáá¯ááᯠáááºáá®ážáá±ážáááºá }
ááŸáá·áºááŸá±á·ááẠ:
áá°áá±á¬ á
áá¬ážáá¯á¶ážááᯠá¡ááŸááºáááẠá¡áááá¹áá«ááºááœáá·áºááá¯áá«áááºá) setxy
stack áááááºááŸáá¶áá«ááºáá
áºáá¯ááá¯áá°áá«á áááºážááᯠglobal á¡ááŒá
áºáááºááŸáẠ(ááá¯á·ááá¯ááºááŒááºáááºáááºááŸááºáááº) á
ááºáááºáááŒáẠx
á ááŸáá·áº á€ááááºážáá±á ááŸá
áºáááºááááºáž y
(ááááºážáá±áá»á¬ážááááºááá¯ážáá»á¬ážááá¯ááŒááºáááºáááºááŸááºááá¯ááºáá±á¬ááŒá±á¬áá·áºá áá»áœááºá¯ááºááẠáááºážááá¯á·á¡á¬áž ááááºážáá±áá»á¬ážáá¯áá±á«áºááá¯ááá¯áá±á¬áºáááºáž áá»áœááºá¯ááºááẠáá¬áá¬á
áá¬ážááŒáá·áº á¡áááºáá±ážááŒááºážááá±á¬áá°á
á¬áá»á¯ááºááᯠááá¯ááºáá¬áá«áááº)á
áá±á¬ááºááá¯ááºážááŸá
áºááá¯ááºážá áá¶áá«ááºáá
áºáá¯ááᯠstack áá±á«áºááŸá¬áááºááŒá®áž áá¯ááºážáá±á«áºáá«á setxy
ááá¯á·áá±á¬áẠconstants ááááºááá¯ážáá»á¬ážááá¯ááŒááááºá x
, y
(á¡ááœááºá¡ááœááºáá¯á¶ážáá±á¬ á
áá¬ážáá¯á¶ážááŒá
áºáááºá .
) ááááºážáá±ááŸá
áºáá¯áá¯á¶ážááᯠstack áá±á«áºááœáẠáá¬ážááŸááᬠsummed áá¯ááºááŒá®áž ááááºááá¯áááºáž ááá¯ááºááŸáááºáá¬ážáá«áááºá ááááºá¡ááŒá
áºáá»áœááºá¯ááºááá¯á·ááœá±á·áááá·áºáááº:
3 9 12 ok
7 49 56 ok
(á¡ááŒááºá¡ááŸááºá¡áá»áá¯ážáááºáá±á¬ááºáá±á¬ááá·áºááœááºážááŸá¯áá¯ááºááœááºáááºááŸáááá¯ááºážááá¯áá¯ááºáá±á¬ááºááŒááºážááŒá®ážáá¯á¶ážáá±á¬á¡áá«ááœáẠ"ok" á á¬ááŒá±á¬ááºážááᯠá áá¬ážááŒááºá០áá¯á¶ááŸáááºáá«áááºá)
áá¯ááºá¡ááŒáá·áºá¡á á¯á¶ á¥ááá¬-
"Asm.fif" include
-1 constant wc // create a wallet in workchain -1 (masterchain)
// Create new simple wallet
<{ SETCP0 DUP IFNOTRET INC 32 THROWIF // return if recv_internal, fail unless recv_external
512 INT LDSLICEX DUP 32 PLDU // sign cs cnt
c4 PUSHCTR CTOS 32 LDU 256 LDU ENDS // sign cs cnt cnt' pubk
s1 s2 XCPU // sign cs cnt pubk cnt' cnt
EQUAL 33 THROWIFNOT // ( seqno mismatch? )
s2 PUSH HASHSU // sign cs cnt pubk hash
s0 s4 s4 XC2PU // pubk cs cnt hash sign pubk
CHKSIGNU // pubk cs cnt ?
34 THROWIFNOT // signature mismatch
ACCEPT
SWAP 32 LDU NIP
DUP SREFS IF:<{
8 LDU LDREF // pubk cnt mode msg cs
s0 s2 XCHG SENDRAWMSG // pubk cnt cs ; ( message sent )
}>
ENDS
INC NEWC 32 STU 256 STU ENDC c4 POPCTR
}>c
// code
<b 0 32 u,
newkeypair swap dup constant wallet_pk
"new-wallet.pk" B>file
B,
b> // data
// no libraries
<b b{00110} s, rot ref, swap ref, b> // create StateInit
dup ."StateInit: " <s csr. cr
dup hash dup constant wallet_addr
."new wallet address = " wc . .": " dup x. cr
wc over 7 smca>$ type cr
256 u>B "new-wallet.addr" B>file
<b 0 32 u, b>
dup ."signing message: " <s csr. cr
dup hash wallet_pk ed25519_sign_uint rot
<b b{1000100} s, wc 8 i, wallet_addr 256 u, b{000010} s, swap <s s, b{0} s, swap B, swap <s s, b>
dup ."External message for initialization is " <s csr. cr
2 boc+>B dup Bx. cr
"new-wallet-query.boc" tuck B>file
."(Saved to file " type .")" cr
á€ááŒá±á¬ááºá
áá¬áá±á¬ááºážáá±á¬ ááá¯ááºááẠá
áááºáá»áá±á¬ á
á¬áá»á¯ááºáá
áºáá¯ááᯠáááºáá®ážáááºá¡ááœááºááŒá
áºááẠ- áááºážááᯠááá¯ááºáá
áºáá¯ááœáẠááá·áºáá¬ážáááºááŒá
áºáááºá new-wallet-query.boc
ááœááºáá»ááºááŒá®ážáá±á¬ááºá TON Virtual Machine á¡ááœáẠá¡ááŒá¬ážáá±á¬ á
ááºážáá±ážááœá²áá¬áá¬á
áá¬ážááᯠá€áá±áá¬ááœáẠá¡áá¯á¶ážááŒá¯ááŒá±á¬ááºáž áá»á±ážáá°ážááŒá¯á áááááŒá¯áá« (á¡áá±ážá
áááºá¡á¬ážááŒáá·áº áá»áœááºá¯ááºááẠáááºážááœááºáá±áááºááá¯ááºáá«)á blockchain ááœááºáá¬ážááŸáááá·áº ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážá
ááá¯á·ááŒá±á¬áá·áº TVM á¡ááœáẠáááºáááºáá°ááᯠFift ááŒáá·áº áá±ážáá¬ážáá¬ážááẠ- á€á
á¯áá±ážáá°á á¡áááºážá¡ááŒá
áºáá»á¬ážááẠááá¯ááºáá²ááœáẠááŸááá«áááºá crypto/fift/Asm.fif
á¡áááºáá±á¬áºááŒáá« áá¯ááºá¡ááá¯ááºážá¡á
ááœáẠáá»áááºáááºáá¬ážáááºá
áá«áá¬ááŒá±á¬ááá¯ááºááá²á Nikolai Durov á áááá¯ááááºážáááºážáá¬áá¬á áá¬ážá¡áá áºááœá±ááᯠáááºáá®ážááá¬ááᯠááŸá áºáááºááẠ:)
á áááºáá»áá±á¬ á á¬áá»á¯ááºáá áºáá¯ááᯠáááºáá®ážááŒá®áž TON ááŸáá·áº á¡ááŒááºá¡ááŸáẠáááºáá¶ááŒááºážá
ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡áááºááœááºáá±á¬áºááŒáá¬ážááá·áºá¡ááá¯ááºáž TON client ááŸáá·áº Fift á
áá¬ážááŒááºááᯠá
á¯á
ááºážááŒá®áž áá¬áá¬á
áá¬ážááŸáá·áº áááºážááŸá®ážáá¬áááºáᯠáá°áááŒáá«á
áá¯á·á á
áááºáá»áá²á· á
á¬áá»á¯ááºááᯠá¡áᯠáááºááá¯áááºáá®ážááá²á á€ááá¯ááºááœáẠáá±á¬áºááŒáá¬ážáá«áááºá
TON ááŸá á¡áá±á¬áá·áºáá»á¬áž
ááŸá¬áá±á¬áºááŒáá¬ážáá²á·á¡ááá¯ááºážáá«áá²á
áá¯ááºáááºážááœááºážáááºáá áºáá¯á¡ááœááºážá áááºážááá¯á·áááá¯ááºááá¯áẠaccount_id ááœá²ááŒá¬ážáááºááŸááºááŸá¯áá»á¬ážáá«ááŸááá±á¬ á¡áá±á¬áá·áºáá»á¬ážá áœá¬ááᯠááááºážáááºážáá¬ážáááºá áá¬á áá¬ááœááºážáááºááŸáá·áº áá¯áá¡áá¯ááºááœááºážáááºá¡ááœáẠáááºážááá¯á·ááẠ256 áá áºááŸááºáá»á¬ážáááºá ááá¯á·ááŒá±á¬áá·áºá á¡áá±á¬áá·áºá¡ááŸááºá¡áá¬ážááᯠá¥ááá¬á¡á¬ážááŒáá·áº á€áá²á·ááá¯á· áá±ážáá¬ážáá¬ážáááºá
-1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d
á€áááºááŸá¬ "ááŒááºáž" áá±á¬áºáááºááŒá áºáááº- ááááŠážá áœá¬ workchain IDá ááá¯á·áá±á¬áẠcolon áá áºáá¯á ááŸáá·áº hexadecimal á¡ááŸááºá¡áá¬ážááŸá á¡áá±á¬áá·áº IDá
ááá¯á·á¡ááŒááºá á¡ááá¯áá»á¯á¶ážáá¬ážáá±á¬ áá±á¬áºáááºáá áºáᯠááŸáááẠ- á¡áá¯ááºááœááºážáá¶áá«ááºááŸáá·áº á¡áá±á¬áá·áºááááºá á¬ááᯠbinary áá¯á¶á á¶ááŒáá·áº áá¯ááºáá¯ááºáá¬ážááŒá®ážá áá»ááºááºáááºážááᯠáááºážááá¯á·áᶠáá±á«ááºážááá·áºáá¬ážááŒá®áž á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠBase64 ááœáẠáá¯ááºáá¯ááºáá¬ážáááºá
Ef+BVndbeTJeXWLnQtm5bDC2UVpc0vH2TF2ksZPAPwcODSkb
á€ááŸááºáááºážáá±á¬áºáááºááᯠááááŸáááŒááºážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠcommand ááá¯á¡áá¯á¶ážááŒá¯á á ááºážáááºáá±á¬ááºáááºááŸáá áºááá·áº á¡áá±á¬áá·áºáá áºáá¯á áááºááŸáá¡ááŒá±á¡áá±ááᯠáá±á¬ááºážááá¯ááá¯ááºáá«áááºá
getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d
á€áá²á·ááá¯á·áá±á¬á¡áá¬áá áºáá¯ááᯠáá»áœááºá¯ááºááá¯á·áááŸááá«áááº-
[ 3][t 2][1558746708.815218925][test-lite-client.cpp:631][!testnode] requesting account state for -1:8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D
[ 3][t 2][1558746708.858564138][test-lite-client.cpp:652][!testnode] got account state for -1:8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D with respect to blocks (-1,8000000000000000,72355):F566005749C1B97F18EDE013EBA7A054B9014961BC1AD91F475B9082919A2296:1BD5DE54333164025EE39D389ECE2E93DA2871DA616D488253953E52B50DC03F and (-1,8000000000000000,72355):F566005749C1B97F18EDE013EBA7A054B9014961BC1AD91F475B9082919A2296:1BD5DE54333164025EE39D389ECE2E93DA2871DA616D488253953E52B50DC03F
account state is (account
addr:(addr_std
anycast:nothing workchain_id:-1 address:x8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D)
storage_stat:(storage_info
used:(storage_used
cells:(var_uint len:1 value:3)
bits:(var_uint len:2 value:539)
public_cells:(var_uint len:0 value:0)) last_paid:0
due_payment:nothing)
storage:(account_storage last_trans_lt:74208000003
balance:(currencies
grams:(nanograms
amount:(var_uint len:7 value:999928362430000))
other:(extra_currencies
dict:hme_empty))
state:(account_active
(
split_depth:nothing
special:nothing
code:(just
value:(raw@^Cell
x{}
x{FF0020DDA4F260D31F01ED44D0D31FD166BAF2A1F80001D307D4D1821804A817C80073FB0201FB00A4C8CB1FC9ED54}
))
data:(just
value:(raw@^Cell
x{}
x{0000000D}
))
library:hme_empty))))
x{CFF8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D2068086C000000000000000451C90E00DC0E35B7DB5FB8C134_}
x{FF0020DDA4F260D31F01ED44D0D31FD166BAF2A1F80001D307D4D1821804A817C80073FB0201FB00A4C8CB1FC9ED54}
x{0000000D}
áááºááŸááºáá¬ážáá±á¬ workchain á DHT ááœáẠááááºážáááºážáá¬ážááá·áº ááœá²á·á
ááºážáá¯á¶ááᯠáá»áœááºá¯ááºááá¯á· ááŒááºááœá±á·ááááºá á¥ááᬠáááºááœááºáž storage.balance
á
á¬áááºážááŸááºáááºáá»ááºá
á¬áááºážá storage.state.code
- á
áááºá
á¬áá»á¯ááºáá¯ááºá ááŸáá·áº storage.state.data
- áááºážááááºááŸááá±áá¬á TON áá±áá¬ááá¯ááŸá±á¬ááºááŸá¯ - áá²ááºá áá²ááºáá»á¬áž - ááẠáá
áºáááºááŸáá·áºáá°áááºá áá²ááºáá
áºáá¯á
á®ááœáẠáááºážáááá¯ááºááá¯ááºáá±áá¬ááŸáá·áº ááá±ážáá²ááºááŸá
áºáá¯áá¯á¶ážááŸáááá¯ááºáááºááᯠáá»á±ážáá°ážááŒá¯á áááááŒá¯áá«á áááºážááᯠáá±á¬ááºáá¯á¶ážá
á¬ááŒá±á¬ááºážáá»á¬ážááœáẠááœáŸááºááŒáá¬ážááá·áºá¡ááá¯ááºáž ááŒáá¬ážáááºá
á áááºáááºáááá¯ááºáá áºáá¯áááºáá±á¬ááºááŒááºážá
ááá¯á€áá²á·ááá¯á·áá±á¬ááœá²á·á
ááºážáá¯á¶ááá¯ááá¯ááºááá¯ááºáááºáá®ážááŒáá«á
áá¯á· (áááºážááᯠBOC áá¯áá±á«áºááẠ- áá²ááºá¡áááº) Fift áá¬áá¬á
áá¬ážááᯠá¡áá¯á¶ážááŒá¯. áá¶áá±á¬ááºážáá±á¬ááºáá
áœá¬á áááºááẠááá¯áá«ááœáẠá
áááºáá»áá±á¬ á
á¬áá»á¯ááºááᯠááá¯ááºááá¯ááºáá±ážááẠáááá¯á¡ááºáá«á crypto/block
source archive ááŸááá¯ááºáá
áºáá¯ááŸááááºá new-wallet.fif
ááá¯ááºáá¶á¡áááºá¡áá
áºáááºáá®ážáá¬ááœáẠáá°áá®áá±ážáá«áááºá á
á¯á
ááºážáá¬ážáá±á¬ client ááŒáá·áº áááºážááᯠááá¯ááºááœá²ááá¯á· áá°ážáá°ááŒáá«á
áá¯á· (~/liteclient-build
á¡áááºáá±á¬áºááŒáá« ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠááá¯ááºáá¬áá«á)á á¡áá±á«áºá á¡ááŒá±á¬ááºážá¡áá¬ááœá±ááᯠFift áá¯ááºáá²á· á¥ááá¬á¡áá±áá²á· ááá¯ážáá¬ážáá¬ážáá«áááºá
á€ááá¯ááºááᯠá¡á±á¬ááºáá«á¡ááá¯ááºáž áá¯ááºáá±á¬ááºáá«á
./crypto/fift -I"<source-directory>/crypto/fift" new-wallet.fif
áá«áá¬ááŒá
áºáá«ááẠ<source-directory>
ááá¯ááºááá¯ážáá¬ážáá±á¬áááºážááŒá
áºáá»á¬ážáá®ááá¯á· áááºážááŒá±á¬ááºážááŸáá·áº á¡á
á¬ážááá¯ážááá«ááẠ(â~â áááºá¹áá±áá áá¶ááá±á¬ááºážá
áœá¬ááŒáá·áºá á€áá±áá¬ááœáẠá¡áá¯á¶ážáááŒá¯ááá¯ááºáá«á áááºážááŒá±á¬ááºážá¡ááŒáá·áºá¡á
á¯á¶ ááá¯á¡ááºáááº)á áá±á¬á·áá¯á¶ážááá·áºá¡á
á¬áž -I
áááºâáááºážáá»ááºâ âááŒá±á¬ááºážáá²ááá¯ááºâáááºâááᯠáááºâ áááºâááŸááºâááá¯ááºâáááºâ FIFTPATH
á€áááºážááᯠááœááºážáá±á¬á·á
ááá¯ááºá¡áááºááŒáá·áº Fift ááᯠá
áááºááá¯ááºáá«áááºá new-wallet.fif
áááºážááẠáááºážááá¯áá¯ááºáá±á¬ááºááŒá®áž ááœááºáááºááŒá
áºáááºá ááá¯ááºá¡áááºááᯠáá»ááºááŸááºáá¬ážáá«áá áááºááẠá
áá¬ážááŒááºááŸáá·áº á¡ááŒááºá¡ááŸáẠáááºááœááºáá
á¬ážááá¯ááºáááºá
ááœááºáá»ááºááŒá®ážáá±á¬ááºá á€áá²á·ááá¯á·áá±á¬á¡áá¬áá»á¬ážááᯠconsole ááœááºááŒáááá·áºáááº-
StateInit: x{34_}
x{FF0020DDA4F260810200D71820D70B1FED44D0D31FD3FFD15112BAF2A122F901541044F910F2A2F80001D31F3120D74A96D307D402FB00DED1A4C8CB1FCBFFC9ED54}
x{0000000055375F730EDC2292E8CB15C42E8036EE9C25AA958EE002D2DE48A205E3A3426B}
new wallet address = -1 : 4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2
0f9PzVILj8yglrVn1zS-NSjtxr7QBfaTCp7JrBqnFPIR8nhZ
signing message: x{00000000}
External message for initialization is x{89FEE120E20C7E953E31546F64C23CD654002C1AA919ADD24DB12DDF85C6F3B58AE41198A28AD8DAF3B9588E7A629252BA3DB88F030D00BC1016110B2073359EAC3C13823C53245B65D056F2C070B940CDA09789585935C7ABA4D2AD4BED139281CFA1200000001_}
x{FF0020DDA4F260810200D71820D70B1FED44D0D31FD3FFD15112BAF2A122F901541044F910F2A2F80001D31F3120D74A96D307D402FB00DED1A4C8CB1FCBFFC9ED54}
x{0000000055375F730EDC2292E8CB15C42E8036EE9C25AA958EE002D2DE48A205E3A3426B}
B5EE9C724104030100000000D60002CF89FEE120E20C7E953E31546F64C23CD654002C1AA919ADD24DB12DDF85C6F3B58AE41198A28AD8DAF3B9588E7A629252BA3DB88F030D00BC1016110B2073359EAC3C13823C53245B65D056F2C070B940CDA09789585935C7ABA4D2AD4BED139281CFA1200000001001020084FF0020DDA4F260810200D71820D70B1FED44D0D31FD3FFD15112BAF2A122F901541044F910F2A2F80001D31F3120D74A96D307D402FB00DED1A4C8CB1FCBFFC9ED5400480000000055375F730EDC2292E8CB15C42E8036EE9C25AA958EE002D2DE48A205E3A3426B6290698B
(Saved to file new-wallet-query.boc)
ááá¯ááá¯áááºááŸá¬ ID ááŸáá·áºá¡áá°ááá¯ááºáá¶á¡ááẠ-1:4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2
(áá«ááŸááá¯áẠá¡áá°áá°áá«áá²á 0f9PzVILj8yglrVn1zS-NSjtxr7QBfaTCp7JrBqnFPIR8nhZ
) á¡á±á¬ááºááŒááºá
áœá¬ áááºáá®ážáá²á·áááºá áááºááá¯ááºáᬠáá¯ááºááẠááá¯ááºáá²ááœáẠááŸááá±áááºááŒá
áºáááºá new-wallet-query.boc
á áá°á·ááááºá
á¬áá« new-wallet.addr
á áá®ážááá·áºáá±á¬á· áá«ááŸááá«áááºá new-wallet.pk
(ááááá¬ážáá« - áá¬ááºááœáŸááºážááᯠáá±á¬ááºáá
áºááŒáááºáááºáá¯á¶ážáá«á á€ááá¯ááºáá»á¬ážááᯠáááºáá±ážáá«áááº)á
áá¯ááºáá«áááºá TON ááœááºáááºá áá®ááá¯ááºáá¶á¡áááºá¡ááŒá±á¬ááºáž ááááá±ážáá«áá°ážá á¡á²áá«ááᯠáá®ááá¯ááºááœá±áá²á· áá¯á¶á á¶áá²á·áᬠááááºážáááºážáá¬ážáá«áááºá ááᯠáááºážááᯠááœááºáááºááá¯á· á¡ááºáá¯ááºáá¯ááºááẠááá¯á¡ááºáááºá ááá¯á·áá±á¬áº ááŒá¿áá¬ááŸá¬ á áááºáá»áá±á¬ á á¬áá»á¯ááºáá áºáá¯áááºáá®ážááẠáá±á¬áºáááŸááºáá áºáá¯áá±ážáá±á¬ááºááẠááá¯á¡ááºááŒá®áž ááá·áºá¡áá±á¬áá·áºáááºáá»ááºááŸá¬ áá¯áááŒá áºáá±áá±ážáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá
á¡áá¯ááºáá¯ááºááœááºá áá²ááŸááºááŸá¯ááœáẠááááºáááºáá°ááŒááºáž (ááá¯á·ááá¯áẠá¡ááŒá¬ážááá¯ááºáá¶á¡áááºá០ááœáŸá²ááŒá±á¬ááºážááŒááºáž) ááŒáá·áº á€ááŒá¿áá¬ááᯠááŒá±ááŸááºážááá¯ááºáááºááŒá áºáááºá áá±á¬ááºážááŒá®á áááºááŸáá ááºážáááºááŸá¯áá¯ááºááœáẠáááºááẠááá¯áá²á·ááá¯á· 20 ááááºá¡áá áá±á¬ááºážááá¯ááá¯ááºááá·áº á¡áá°ážá áááºá á¬áá»á¯ááºááᯠáááºáá®ážáá¬ážáááºá
á¡ááŒá¬ážáá°á á áááºáá»áá±á¬ á á¬áá»á¯ááºááᯠáá±á¬ááºážááá¯ááŸá¯áá áºáᯠááŒá¯áá¯ááºááŒááºážá
á€áá²á·ááá¯á·áá±á¬ ááááºáááºáᬠááŒáá·áºáá±ááá·áº á
áááºáá»ááá·áº á
á¬áá»á¯ááºáá
áºáá¯áᶠáá»áœááºá¯ááºááá¯á· áá±á¬ááºážááá¯áá»ááºáá
áºáᯠááŒá¯áá¯ááºáá«áááºá áá°áá®áá²á·ááá¯áá«áá²ááŸá¬ crypto/block
ááá¯ááºááá¯ááŸá¬áá«á testgiver.fif
:
// "testgiver.addr" file>B 256 B>u@
0x8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d
dup constant wallet_addr ."Test giver address = " x. cr
0x4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2
constant dest_addr
-1 constant wc
0x00000011 constant seqno
1000000000 constant Gram
{ Gram swap */ } : Gram*/
6.666 Gram*/ constant amount
// b x --> b' ( serializes a Gram amount )
{ -1 { 1+ 2dup 8 * ufits } until
rot over 4 u, -rot 8 * u, } : Gram,
// create a message (NB: 01b00.., b = bounce)
<b b{010000100} s, wc 8 i, dest_addr 256 u, amount Gram, 0 9 64 32 + + 1+ 1+ u, "GIFT" $, b>
<b seqno 32 u, 1 8 u, swap ref, b>
dup ."enveloping message: " <s csr. cr
<b b{1000100} s, wc 8 i, wallet_addr 256 u, 0 Gram, b{00} s,
swap <s s, b>
dup ."resulting external message: " <s csr. cr
2 boc+>B dup Bx. cr
"wallet-query.boc" B>file
á
á¯á
ááºážáá¬ážáá±á¬ client ááŸáá·áº folder áá²ááœááºáááºáž ááááºážáááºážáá¬ážáááºááŒá
áºáá±á¬áºáááºáž ááá¹á
áá
á¬ááŒá±á¬ááºážááᯠááŒááºáá±ážááẠ- âááá¯ááºážááŸá±á·áconstant dest_addr
â . á¡áááºá áááºáááºáá®ážáá¬ážáá²á· ááá¯ááºáá¶á¡áááºáá²á·ááááºá
á¬áá²á· á¡á
á¬ážááá¯ážááá¯ááºáá¡á±á¬áẠ(á¡ááŒáá·áºá¡á
á¯á¶á á¡ááá¯áá±á¬ááºááá¯ááºáá²)á á¡á
ááŸá¬ â-1:â áá±ážá
áá¬áááá¯áá² á¡á
ááŸá¬ â0xâ ááá¯á·áá±ážáá«á
ááá¯ááºážááŒá±á¬ááºážááá¯á·áááºážááá«áááºá 6.666 Gram*/ constant amount
- á€áááºááŸá¬ áááºáá±á¬ááºážááá¯áá±ááá·áº ááááºááá¬á (20 áááºáááá¯)á ááááºážáá
áºáá¯áá¯á¶ážááᯠáááºááŸááºáááºáá±á¬áẠáá¿áá¡ááŸááºááᯠáá»ááºáá¬ážáá«á
áá±á¬ááºáá¯á¶ážá¡áá±áá²á· ááá¯ááºážááᯠááŒááºááá¯á·ááá¯áááºá 0x00000011 constant seqno
. á€áá±áá¬ááœáẠááááá¶áá«ááºááẠááááºáá¯ááºáá±ážááá·áºá¡áá±á¬áá·áºááœáẠááááºážáááºážáá¬ážááá·áº áááºááŸááá¶áá«ááºá
ááºááŒá
áºáááºá áááºááá± áááá¯ááºááá²á á¡áááºááœááºáá±á¬áºááŒáá¬ážááá·áºá¡ááá¯ááºážá client ááá¯á
áááºááŒá®áž run áá«á
last
getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d
á¡áá¯á¶ážááœááºá á áááºá á¬áá»á¯ááºáá±áá¬áá« á ááºáááá·áºáááºá
...
x{FF0020DDA4F260D31F01ED44D0D31FD166BAF2A1F80001D307D4D1821804A817C80073FB0201FB00A4C8CB1FC9ED54}
x{0000000D}
áá¶áá«áẠ0000000D (ááá¯ááŒá®ážáá¬áááº) ááẠá¡á
á¬ážááá¯ážáááá·áº sequence number ááŒá
áºáááºá testgiver.fif
.
áá«áá²á ááá¯ááºááá¯ááááºážááŒá®áž run (./crypto/fift testgiver.fif
) á¡ááœááºááẠááá¯ááºáá
áºáᯠááŒá
áºáááá·áºáááºá wallet-query.boc
. áá«á ááœá²á·á
ááºážáá¬ážáᬠáááºáá±á·ááºá»ááᯠáá
áºá
á¯á¶áá
áºáá±á¬ááºá á
áááºáá»áá±á¬ á
á¬áá»á¯áẠ- "á€áá»áŸáá±á¬ááºáá»á¬ážáá±á¬ ááááºááᯠááá¯áá²á·ááá¯á·áá±á¬ á¡áá±á¬áá·áºáá
áºáá¯ááá¯á· ááœáŸá²ááŒá±á¬ááºážáááº" áá±á¬ááºážááá¯áá»ááºá
áááá¯ááºážááá·áºááᯠá¡áá¯á¶ážááŒá¯á áááºážááᯠááœááºáááºááá¯á· á¡ááºáá¯ááºáá¯ááºáá«áááºá
> sendfile wallet-query.boc
[ 1][t 1][1558747399.456575155][test-lite-client.cpp:577][!testnode] sending query from file wallet-query.boc
[ 3][t 2][1558747399.500236034][test-lite-client.cpp:587][!query] external message status is 1
á¡áá¯áá±á«áºááẠlast
á ááá¯á·áá±á¬áẠáá»áœááºá¯ááºááá¯á· áá±á¬ááºážááá¯ááá·áº ááááºá¡áá±á¬áá·áºá á¡ááŒá±á¡áá±ááᯠáááºáá¶áá±á¬ááºážááá¯áá«á ááá¯á·áá±á¬áẠáááºážá sequence number ááẠáá
áºáá¯ááŸáá·áºáá
áºáᯠááá¯ážáá¬áááºááᯠááœá±á·ááááºááŒá
áºááẠ- ááá¯ááá¯áááºááŸá¬ áááºážááẠáá»áœááºá¯ááºááá¯á·á á¡áá±á¬áá·áºááá¯á· ááœá±ááá¯á·ááá¯ááºááŒááºážááŒá
áºáááºá
áá±á¬ááºáá¯á¶ážá¡ááá·áºáá»ááºááẠ- áá»áœááºá¯ááºááá¯á·áááá¯ááºáá¶á¡áááºááá¯ááºááᯠáá±á«ááºážáá¯ááºáá¯ááºáá« (áááºážááááºáá»ááºááœá±ááᯠááŒáá·áºááŒá®ážááŒá
áºáá±á¬áºáááºážá á
áááºá
á¬áá»á¯ááºáá¯ááºááá«áá² áá»áœááºá¯ááºááá¯á·á áááºážááᯠá
á®áá¶ááá·áºááœá²ááá¯ááºáááºááá¯ááºáá«)á áá»áœááºáá±á¬áºááá¯á· áá±á¬ááºááœááºáááºá sendfile new-wallet-query.boc
â áá«áá«áá²á ááá·áºááŸá¬ TON ááœááºáááºááŸá¬ ááá·áºááá¯ááºááá¯ááºááá¯ááºáá¶á¡ááẠ(ááá¯áááºááŸá á
ááºážáááºááŸá¯áá
áºáá¯áᬠááŒá
áºáá±áááºáá±á¬ááº)á
á¡ááœááºááœá±ááœáŸá²ááŸá¯áá»á¬ážááᯠáááºáá®ážááŒááºážá
áááºáá®ážáá¬ážáá±á¬á¡áá±á¬áá·áºááááºáá»ááºááŸááœá±ááœáŸá²áááºá ááá¯ááºáá
áºáá¯ááŸááááºá crypto/block/wallet.fif
á
á¯á
ááºážáá¬ážáá±á¬ client ááŸáá·áºá¡áá° folder ááœááºáááºáž áá¬ážááŸááááºááá¯á¡ááºáá«áááºá
ááááºá¡ááá·áºáá»á¬ážáá²á·ááá¯á·áááºá áááºááœáŸá²ááŒá±á¬ááºážáá±ážááá·áº ááá¬áá áááºáá¶áá°áááááºá
ᬠ(dest_addr) ááŸáá·áº ááá·áºááá¯ááºáá¶á¡áááºá seqno ááᯠáá»áááºááŸáááẠááá¯á¡ááºááẠ(ááá¯ááºáá¶á¡áááºááᯠá
áááºááŒá®ážáá±á¬áẠ1 ááŸáá·áº áá®áá»áŸááŒá®áž á¡ááœááºááœá±ááœáŸá²ááŸá¯áá
áºáá¯á
á®ááá¯ááºážááŒá®ážáá±á¬áẠ1 ááá¯ážááœá¬ážááẠ- áááºáá¯ááºááá¯ááºááẠááá·áºá¡áá±á¬áá·áºá á¡ááŒá±á¡áá±ááᯠáá±á¬ááºážááá¯ááŒááºážááŒáá·áº áááºážááᯠááŒáá·áºááŸá¯áá«á) á
ááºážáááºááŸá¯áá»á¬ážá¡ááœááºá á¥ááá¬á áá»áœááºá¯ááºáááá¯ááºáá¶á¡áááºááᯠáááºáá¯á¶ážááá¯ááºáááºá 0x4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2
.
á
áááºáá»áááºááœáẠ(./crypto/fift wallet.fif
) script ááẠááá·áºááá¯ááºáá¶á¡áááºáááááºá
ᬠ(áááºááœáŸá²ááŒá±á¬ááºážááá·áºáá±áá¬ááŸ) ááŸáá·áº ááá¯ááºáá»á¬ážá០áááºážáááá¯ááºáá±ážááá¯ááºáá¬áá±á¬á·ááᯠáá°áá«áááºá new-wallet.addr
О new-wallet.pk
, ááŸáá·áºáááºáá¶áááŸááá±á¬áááºáá±á·ááºá»ááá¯áá±ážáá±ážáááá·áºáááºá new-wallet-query.boc
.
ááááºáá¡ááá¯ááºážá ááá¯ááºááá¯ááºááœá±áá±ážááœá±áá°áá±á¬ááºááœááºáááºá áá¯ááºážáá±á«áºááá¯áá«á sendfile new-wallet-query.boc
client áá²ááŸá¬á áááºážááŒá®ážáá±á¬ááºá blockchain áá¡ááŒá±á¡áá±ááá¯ááœááºážáá¶áááºááá±á·áá«ááŸáá·áº (last
) ááŸáá·áºáá»áœááºá¯ááºááá¯á·áááá¯ááºáá¶á¡áááºááááºáá»ááºááŸáá·áº seqno áááºááŒá±á¬ááºážáá²ááœá¬ážááŒá±á¬ááºážá
á
áºáá±ážáá« (getaccount <account_id>
).
áá®áá±á¬ááºáá«áá²á ááᯠáá»áœááºá¯ááºááá¯á·ááẠTON ááœáẠá áááºá á¬áá»á¯ááºáá»á¬ážááᯠáááºáá®ážááá¯ááºááŒá®áž áááºážááá¯á·áᶠáá±á¬ááºážááá¯ááŸá¯áá»á¬áž áá±ážááá¯á·ááá¯ááºááŒá®ááŒá áºáááºá áááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºážá áááºááŸááá¯ááºáá±á¬ááºááá¯ááºá áœááºážááẠá¥ááá¬á¡á¬ážááŒáá·áºá ááááºáá áºá¡ááºáá¬áá±á·á áºááŒáá·áº ááá¯ááá¯á¡áááºááŒá±áá±á¬ááá¯ááºáá¶á¡áááºáá áºáá¯ááŒá¯áá¯ááºááẠáá¯á¶áá±á¬ááºáá±ááŒá®ááŒá áºááẠ(ááá¯á·áá±á¬áºáááºážá áááºážááᯠmessenger ááá áºá áááºáá áºááá¯ááºážá¡áá±ááŒáá·áº áááŸááá¬áááá·áºáááºáᯠáá»áŸá±á¬áºááá·áºáá¬ážáááº)á
á
á¬áááºážááœááºážá¡áá¯á¶ážááŒá¯áá°áá»á¬ážáᬠá
á
áºáááºážááœáẠáá«áááºááá¯ááºáá«áááºá
TONá TVMá Fift áááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááŒáá·áº áá±á¬ááºážáá«ážáá»á¬ážááᯠáááºáááºáá¯ááºáá±á¬ááºááẠáááºá áááºáááºá á¬ážáá«ááá¬ážá
-
áá¯ááºáá²á·á TON áá²á· áá±áá¯áá»ááŒá¯á¶áá¯á¶áá¯á¶ážáááºáá»ááºáá«áá²á· áá±á¬ááºážáá«ážá á®ážáá®ážááœá±áá²á· ááŒá®ážáá¯á¶ážááŸá¯ááᯠá á±á¬áá·áºáá±áá«áááºá
-
áá¯ááºáááºá Fift áá¬áá¬á áá¬ážá¡ááŒá±á¬ááºáž áá±á¬ááºáááºáááºááᬠá áááºáááºá á¬ážááá¯á·áá±á¬ááºážáááºá
-
áá¯ááºáá²á·á TON Virtual Machine ááŸáá·áº áááºážá¡ááœáẠáááºáááºáá°á¡ááŒá±á¬ááºáž ááá¯ááá¯áá±á·áá¬ááá¯áá«áááºá
-
ááá¯ááºáá°ážá áá«á á áááºáááºá á¬ážá áᬠáááŸááá«áá°ážá
á¡áá¯á¶ážááŒá¯áá° 39 áŠáž áá²áá±ážáá²á·áááºá á¡áá¯á¶ážááŒá¯áá° 12 ááŸá±á¬ááºáá±áá²á·áá«áááºá
Telegram áá²á· TON ááᯠááœáŸáá·áºáááºááá·áº á¡á á®á¡á ááºáá²á·áááºáááºááŒá®áž áááºáá±á¬ áááºááá¯áááºáá²á
-
áá®ááá±á¬áá»ááºá¡ááœáẠáá»áŸá±á¬áºááá·áºáá»ááºááŒá®ážááŒá®ážáá¬ážáá¬ážááŸááááºá
-
áá»áœááºáá±á¬áºááá±á¬á· áá°á·áá²á· ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááᯠá áááºáááºáá á¬ážáá²á· ááá¯ááºááŒáá·áºáá±áá«áááºá
-
áá°á·áá²á·á¡á±á¬ááºááŒááºááŸá¯ááᯠáá¶ááááŒá áºáááááºá
-
á€áá¯ááºáá±á¬ááºááŸá¯ááẠáá»ááŸá¯á¶ážááŸá¯ááŒá áºááŒá®áž áá»ááºááŒáá·áºáá±á¬áá°áá¯á¡ááœáẠáááá¯á¡ááºáᯠáá»áœááºá¯ááºáá°áááá¯áá«áááºá
á¡áá¯á¶ážááŒá¯áá° 47 áŠáž áá²áá±ážáá²á·áááºá á¡áá¯á¶ážááŒá¯áá° 12 ááŸá±á¬ááºáá±áá²á·áá«áááºá
source: www.habr.com