XNUMX 幎以äžåãTelegram ã¡ãã»ã³ãžã£ãŒãç¬èªã®åæ£åãããã¯ãŒã¯ããªãªãŒã¹ããèšç»ã«ã€ããŠç¥ãããããã«ãªããŸããã ãªãŒãã³ãããã¯ãŒã¯ã®é»å ±ã ãã®åŸããã³ã©ã€ã»ãã¥ããã«ãã£ãŠæžãããå°æ¥ã®ãããã¯ãŒã¯ã®æ§é ã説æããããšãããèšå€§ãªæè¡ææžãå
¥æå¯èœã«ãªããŸããã èŠéããæ¹ã¯ããã®ããã¥ã¡ã³ãã«ã€ããŠã®ç§ã®å話ããèªã¿ã«ãªãããšããå§ãããŸã (
ãã以æ¥ãæ°æ¥åãŸã§ TON ã®éçºç¶æ³ã«é¢ããé倧ãªãã¥ãŒã¹ã¯ãããŸããã§ãã (ããèšäºã§)
âŠ
âŠ
âŠ
âŠ
âŠ
âŠ
âŠ
âŠ
ç¹°ãè¿ããŸããããã¬ã°ã©ã ã®ããŒãžãšããããã¹ãŠã®ææžã«ã€ããŠã¯å ¬åŒã®ç¢ºèªã¯ãããŸããã§ãããããããã®ææžã®éãèãããšããããã¯ããªãä¿¡ææ§ãé«ããšèšããŸãã å ¬éãããã¯ã©ã€ã¢ã³ããèµ·åãã èªå·±è²¬ä»»ã§.
ãã¹ãã¯ã©ã€ã¢ã³ãã®æ§ç¯
ãŸãããã¹ã ã¯ã©ã€ã¢ã³ããæ§ç¯ããŠå®è¡ããŠã¿ãŸããã - 幞ããªããšã«ã
-
ããŠã³ããŒãããŠè§£åãã
ãœãŒã¹ã¢ãŒã«ã€ã ã çŸæ®µéã§ã¯äžäœäºææ§ãä¿èšŒãããŠããªããããææ°ããŒãžã§ã³ãããŠã³ããŒãããããšãéèŠã§ãã -
ææ°ããŒãžã§ã³ã® 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
-
çŸåšã®ãã®ãããŠã³ããŒããã
èšå®ãã¡ã€ã« ãã¹ã ãããã¯ãŒã¯ã«æ¥ç¶ããçµã¿ç«ãŠãããã¯ã©ã€ã¢ã³ããå«ãŸãããã©ã«ããŒã«çœ®ããŸãã -
ä»äžããã¯ã©ã€ã¢ã³ããèµ·åã§ããŸãã
./test-lite-client -C ton-lite-client-test1.config.json
ãã¹ãŠãæ£ããè¡ããããšã次ã®ãããªå 容ã衚瀺ãããã¯ãã§ãã
ã芧ã®ãšããã䜿çšã§ããã³ãã³ãã¯ã»ãšãã©ãããŸããã
⊠help
â ãã®ã³ãã³ãã®ãªã¹ãã衚瀺ããŸãã
⊠quit
- å€åº;
⊠time
â ãµãŒããŒäžã®çŸåšæå»ã衚瀺ããŸãã
⊠status
â æ¥ç¶ãšããŒã«ã«ããŒã¿ããŒã¹ã®ã¹ããŒã¿ã¹ã衚瀺ããŸãã
⊠last
â ãããã¯ãã§ãŒã³ã®ç¶æ
ãæŽæ°ããŸã (æåŸã®ãããã¯ãããŠã³ããŒãããŸã)ã ãªã¯ãšã¹ãã®åã«ãã®ã³ãã³ããå®è¡ããŠããããã¯ãŒã¯ã®çŸåšã®ç¶æ
ã確èªããããšãéèŠã§ãã
⊠sendfile
<filename>
â ããŒã«ã« ãã¡ã€ã«ã TON ãããã¯ãŒã¯ã«ã¢ããããŒãããŸãã ããã«ããããããã¯ãŒã¯ãšã®ããåããè¡ãããŸããããã«ã¯ãæ°ããã¹ããŒã ã³ã³ãã©ã¯ãã®äœæãã¢ã«ãŠã³ãéã§ã®è³é移åã®ãªã¯ãšã¹ããªã©ãå«ãŸããŸãã
⊠getaccount
<address>
â çŸåš(ã³ãã³ãå®è¡æ)ã衚瀺ããŸãã last
) æå®ãããã¢ãã¬ã¹ã®ã¢ã«ãŠã³ãã®ã¹ããŒã¿ã¹ã
⊠privkey
<filename>
â ããŒã«ã« ãã¡ã€ã«ããç§å¯ããŒãããŒãããŸãã
ã¯ã©ã€ã¢ã³ãã®èµ·åæã«ããªãã·ã§ã³ã䜿çšããŠãã©ã«ããŒãã¯ã©ã€ã¢ã³ãã«è»¢éããå Žå -D
次ã«ããã¹ã¿ãŒãã§ãŒã³ã®æåŸã®ãããã¯ãããã«è¿œå ããŸãã
./test-lite-client -C ton-lite-client-test1.config.json -D ~/ton-db-dir
ããã§ãããã«èå³æ·±ãããšã«ç§»ããŸããFift èšèªãåŠç¿ããã¹ããŒã ã³ã³ãã©ã¯ããã³ã³ãã€ã«ã㊠(ãã¹ã ãŠã©ã¬ããã®äœæãªã©)ãããããããã¯ãŒã¯ã«ã¢ããããŒãããŠãã¢ã«ãŠã³ãéã§è³éã転éããŠã¿ãŸãã
èšèª XNUMX
è³æãã
ãã®ææžã¯ 87 ããŒãžãšéåžžã«ããªã¥ãŒã ãããããã®èšäºã®æ å ã§ãã®å 容ã詳ãã説æããã€ããã¯ãããŸãã (å°ãªããšãç§èªèº«ã¯ãŸã èªã¿çµããŠããªããã :)ã äž»èŠãªç¹ã«çŠç¹ãåœãŠããã®èšèªã®ã³ãŒãäŸãããã€ã瀺ããŸãã
åºæ¬ã¬ãã«ã§ã¯ãFift ã®æ§æã¯éåžžã«åçŽã§ãããã®ã³ãŒãã¯æ¬¡ã®ãã®ã§æ§æãããŸãã èšèãéåžžã¯ã¹ããŒã¹ãŸãã¯æ¹è¡ã§åºåãããŸã (ç¹æ®ãªå Žå: äžéšã®åèªã¯åèªèªäœã®åŸã«åºåãæåãå¿ èŠãšããŸãã)ã ã©ãã§ã ã¯ãŒã ã¯ã倧æåãšå°æåãåºå¥ããããç¹å®ã®æååã«å¯Ÿå¿ããäžé£ã®æåã§ãã æ±ºå® ïŒå€§ãŸãã«èšããšããã®åèªã«ééãããšãã«éèš³è ãäœããã¹ããïŒã åèªã®å®çŸ©ããªãå Žåãã€ã³ã¿ããªã¿ã¯ãããæ°å€ãšããŠè§£æããŠã¹ã¿ãã¯ã«çœ®ãããšããŸãã ã¡ãªã¿ã«ãããã§ã®æ°å€ã¯ - çªç¶ - 257 ãããã®æŽæ°ã§ãããåæ°ã¯ãŸã£ãããããŸãã - ããæ£ç¢ºã«ã¯ããããã¯ããã«æŽæ°ã®ãã¢ã«å€ãããæçåæ°ã®ååãšåæ¯ã圢æããŸãã
åèªã¯ã¹ã¿ãã¯ã®æäžäœã«ããå€ãšçžäºäœçšããåŸåããããŸãã å¥ã®çš®é¡ã®åèª - æ¥é èª â ã¹ã¿ãã¯ã䜿çšããããœãŒã¹ ãã¡ã€ã«ã®åŸç¶ã®æåã䜿çšããŸãã ããšãã°ãããã¯æååãªãã©ã«ã®å®è£
æ¹æ³ã§ã - åŒçšç¬Š ("
) ã¯ã次㮠(çµäº) åŒçšç¬Šãæ€çŽ¢ãããããã®éã®æååãã¹ã¿ãã¯ã«ããã·ã¥ããæ¥é èªã§ãã ã¯ã³ã©ã€ããŒãåãããã«åäœããŸã (//
) ãšè€æ°è¡ (/*
ïŒã®ã³ã¡ã³ãã
ããã§ãèšèªã®å
éšæ§é ã®ã»ãŒå
šäœãçµäºããŸãã ãã以å€ã®ãã¹ãŠ (å¶åŸ¡æ§é ãå«ã) ã¯åèªãšããŠå®çŸ©ãããŸã (ç®è¡æŒç®ãæ°ããåèªã®å®çŸ©ãªã©ã®å
éšçãªãã®ããŸãã¯ãæšæºã©ã€ãã©ãªãã§å®çŸ©ããããã®ã®ãããã) Fift.fif
ããã©ã«ããŒå
ã«ãããŸã crypto/fift
æ
å ±æºã«èšèŒãããŠããŸãïŒã
Fift ã®ç°¡åãªããã°ã©ã äŸ:
{ dup =: x dup * =: y } : setxy
3 setxy x . y . x y + .
7 setxy x . y . x y + .
æåã®è¡ã¯æ°ããåèªãå®çŸ©ããŸã setxy
(æ¥é èŸã«æ³šæããŠãã ãã {
ãçµäºãããã¯ã®åã«ãããã¯ãäœæããŸãã }
ãšãã¬ãã£ãã¯ã¹ :
ãå®éã«ãã®åèªãå®çŸ©ãããã®ã§ãïŒã setxy
ã¹ã¿ãã¯ã®æäžäœããæ°å€ãååŸãããããã°ããŒãã«ãšããŠå®çŸ© (ãŸãã¯åå®çŸ©) ããŸãã 絶ãéãªã x
ããã®æ°å€ã® XNUMX ä¹ãå®æ°ãšã㊠y
(å®æ°ã®å€ã¯åå®çŸ©ã§ããããšãèãããšããããå€æ°ãšåŒã³ãããšæããŸãããèšèªã®åœåèŠåã«åŸããŸã)ã
次㮠XNUMX è¡ã¯ã¹ã¿ãã¯ã«æ°å€ã眮ããåŒã³åºããŸãã setxy
ããããšå®æ°ã®å€ã衚瀺ãããŸã x
, y
(åèªã¯åºåã«äœ¿çšãããŸã .
)ãäž¡æ¹ã®å®æ°ãã¹ã¿ãã¯ã«çœ®ãããåèšãããçµæãåºåãããŸãã ãã®çµæã次ã®ããšãããããŸãã
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 ä»®æ³ãã·ã³ã«å¥ã®ã¢ã»ã³ããªèšèªã䜿çšãããŠãã (詳ããã¯èª¬æããŸãã)ããã®åœä»€ã¯ãããã¯ãã§ãŒã³ã«é
眮ãããããšã«æ³šæããŠãã ããã
ãããã£ãŠãTVM ã®ã¢ã»ã³ãã©ã¯ Fift ã§æžãããŠããŸãããã®ã¢ã»ã³ãã©ã®ãœãŒã¹ã¯æ¬¡ã®ãã¡ã€ã«ã«ãããŸãã crypto/fift/Asm.fif
ãš ã¯ãäžèšã®ã³ãŒãéšåã®å
é ã§æ¥ç¶ãããŠããŸãã
äœãšèšãããã©ããããã³ã©ã€ã»ãã¥ããã¯æ°ããããã°ã©ãã³ã°èšèªãäœæããã®ã倧奜ãã®ããã§ã:)
ã¹ããŒãã³ã³ãã©ã¯ãã®äœæãšTONãšã®å¯Ÿè©±
ãããã£ãŠãäžã§èª¬æããããã« TON ã¯ã©ã€ã¢ã³ããš Fift ã€ã³ã¿ãŒããªã¿ãŒãçµã¿ç«ãŠãèšèªã«æ
£ããŠãããšä»®å®ããŸãããã ä»ããã¹ããŒãã³ã³ãã©ã¯ããäœæããã«ã¯ã©ãããã°ããã§ãã? ããã¯ãã¡ã€ã«ã«èšèŒãããŠããŸã
TONã®ã¢ã«ãŠã³ã
ã§èª¬æããããã«ã
256 ã€ã®ã¯ãŒã¯ãã§ãŒã³å ã«ã¯ãç¬èªã® account_id èå¥åãæã€å€ãã®ã¢ã«ãŠã³ããä¿åãããŸãã ãã¹ã¿ãŒ ãã§ãŒã³ãšãŒã ã¯ãŒã¯ ãã§ãŒã³ã®å Žåãé·ã㯠XNUMX ãããã§ãã ãããã£ãŠãã¢ã«ãŠã³ãèå¥åã¯ãããšãã°æ¬¡ã®ããã«èšè¿°ãããŸãã
-1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d
ããã¯ãçã®ã圢åŒã§ããæåã«ã¯ãŒã¯ãã§ãŒã³ IDã次ã«ã³ãã³ããã㊠XNUMX é²è¡šèšã®ã¢ã«ãŠã³ã ID ãç¶ããŸãã
ããã«ãç瞮圢åŒããããŸããã¯ãŒã¯ãã§ãŒã³çªå·ãšã¢ã«ãŠã³ã ã¢ãã¬ã¹ã¯ãã€ããªåœ¢åŒã§ãšã³ã³ãŒãããããã§ãã¯ãµã ãè¿œå ããããããã¯ãã¹ãŠ Base64 ã§ãšã³ã³ãŒããããŸãã
Ef+BVndbeTJeXWLnQtm5bDC2UVpc0vH2TF2ksZPAPwcODSkb
ãã®ã¬ã³ãŒã圢åŒããããã°ã次ã®ã³ãã³ãã䜿çšããŠãã¹ã ã¯ã©ã€ã¢ã³ããéããŠã¢ã«ãŠã³ãã®çŸåšã®ç¶æ ããªã¯ãšã¹ãã§ããŸãã
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}
æå®ããã¯ãŒã¯ãã§ãŒã³ã® DHT ã«ä¿åãããŠããæ§é ã衚瀺ãããŸãã ããšãã°ããã£ãŒã«ãã§ã¯ storage.balance
ã¯åœåº§é éæ®é«ã§ãã storage.state.code
- ã¹ããŒã ã³ã³ãã©ã¯ã ã³ãŒããããã³ storage.state.data
- çŸåšã®ããŒã¿ã TON ããŒã¿ ã¹ãã¬ãŒãž (ã»ã«ãã»ã«) ã¯ããªãŒç¶ã«ãªã£ãŠãããåã»ã«ã¯ç¬èªã®ããŒã¿ãšåã»ã«ã®äž¡æ¹ãæã€ããšãã§ããããšã«æ³šæããŠãã ããã ããã¯æåŸã®è¡ã®ã€ã³ãã³ããšããŠç€ºãããŠããŸãã
ã¹ããŒãã³ã³ãã©ã¯ãã®æ§ç¯
ã§ã¯ããã®ãããªæ§é ãèªåã§äœæããŠã¿ãŸããã (BOC ãšåŒã°ããŸã - 现èã®å
¥ã£ãè¢)Fift èšèªã䜿çšããŸãã 幞ããªããšã«ãã¹ããŒã ã³ã³ãã©ã¯ããèªåã§äœæããå¿
èŠã¯ãããŸãã - ãã©ã«ããŒå
ã« crypto/block
ãœãŒã¹ã¢ãŒã«ã€ãããã®ãã¡ã€ã«ããããŸã new-wallet.fif
ããã¯ãæ°ãããŠã©ã¬ãããäœæããã®ã«åœ¹ç«ã¡ãŸãã çµã¿ç«ãŠãã¯ã©ã€ã¢ã³ããå
¥ã£ãŠãããã©ã«ããŒã«ã³ããŒããŸããã(~/liteclient-build
äžèšã®æé ã«åŸã£ãŠããå Žå)ã ãã®å
容ãFiftäžã®ã³ãŒãäŸãšããŠäžã«åŒçšããŸããã
ãã®ãã¡ã€ã«ã次ã®ããã«å®è¡ããŸãã
./crypto/fift -I"<source-directory>/crypto/fift" new-wallet.fif
ãã㯠<source-directory>
ã¯ã解åããããœãŒã¹ãžã®ãã¹ã«çœ®ãæããå¿
èŠããããŸã (æ®å¿µãªãããããã§ã¯ã~ãèšå·ã¯äœ¿çšã§ããŸãããå®å
šãªãã¹ãå¿
èŠã§ã)ã ããŒã䜿çšãã代ããã« -I
ç°å¢å€æ°ãå®çŸ©ã§ããŸã FIFTPATH
ãã®ãã¹ãããã«å
¥ããŸãã
ãã¡ã€ã«åã§Fiftãèµ·åããã®ã§ new-wallet.fif
ããããå®è¡ããŠçµäºããŸãã ãã¡ã€ã«åãçç¥ãããšãã€ã³ã¿ããªã¿ã䜿ã£ãŠå¯Ÿè©±çã«éã¶ããšãã§ããŸãã
å®è¡åŸãã³ã³ãœãŒã«ã«æ¬¡ã®ãããªå 容ã衚瀺ãããã¯ãã§ãã
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
çµã¿ç«ãŠãã¯ã©ã€ã¢ã³ããšäžç·ã«ãã©ã«ããŒã«ãä¿åããŸãããè¡ããã®åã®XNUMXè¡ç®ãä¿®æ£ããŸããconstant dest_addr
ãã ããããåã«äœæãããŠã©ã¬ããã®ã¢ãã¬ã¹ (çç¥åœ¢ã§ã¯ãªãå®å
šãªã¢ãã¬ã¹) ã«çœ®ãæããŸãããã å
é ã«ã-1:ããèšè¿°ããå¿
èŠã¯ãªããå
é ã«ã0xããèšè¿°ããŸãã
åç·å€æŽãå¯èœã§ã 6.666 Gram*/ constant amount
â ããã¯ããªããèŠæ±ããŠããã°ã©ã åäœã®éã§ã (20 以äž)ã æŽæ°ãæå®ããå Žåã§ããå°æ°ç¹ã¯æ®ããŠãã ããã
æåŸã«ãè¡ãä¿®æ£ããå¿
èŠããããŸã 0x00000011 constant seqno
ã ããã§ã®æåã®çªå·ã¯ãã¢ã«ãŠã³ãçºè¡ã°ã©ã ã«ä¿åãããŠããçŸåšã®ã·ãŒã±ã³ã¹çªå·ã§ãã ã©ãããå
¥æã§ããŸãã? äžã§è¿°ã¹ãããã«ãã¯ã©ã€ã¢ã³ããèµ·åããŠä»¥äžãå®è¡ããŸãã
last
getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d
æåŸã«ãã¹ããŒã ã³ã³ãã©ã¯ã ããŒã¿ã«ã¯æ¬¡ã®ãã®ãå«ãŸããŸãã
...
x{FF0020DDA4F260D31F01ED44D0D31FD166BAF2A1F80001D307D4D1821804A817C80073FB0201FB00A4C8CB1FC9ED54}
x{0000000D}
æ°å 0000000D (å®éã®æ°åã¯ãã£ãšå€§ãããªããŸã) ã¯ã代å
¥ããå¿
èŠãããã·ãŒã±ã³ã¹çªå·ã§ãã testgiver.fif
.
ãã¡ã€ã«ãä¿åããŠå®è¡ããŸã (./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
ããããŠã°ã©ã ãèŠæ±ããã¢ã«ãŠã³ãã®ã¹ããŒã¿ã¹ãå床ãªã¯ãšã¹ããããšããã®ã·ãŒã±ã³ã¹çªå·ã XNUMX ã€å¢å ããŠããããšãããããŸããããã¯ãã¢ã«ãŠã³ãã«ééãããããšãæå³ããŸãã
æåŸã®ã¹ãããã¯æ®ã£ãŠããŸã - ãŠã©ã¬ããã®ã³ãŒããããŠã³ããŒãããŸãïŒæ®é«ã¯ãã§ã«è£å
ãããŠããŸãããã¹ããŒãã³ã³ãã©ã¯ãã³ãŒãããªããã°ç®¡çã§ããŸããïŒã å®æœããŸã sendfile new-wallet-query.boc
- ããã§ãTON ãããã¯ãŒã¯å
ã«èªåã®ãŠã©ã¬ãããã§ããŸãã (ããšããããçŸæç¹ã§ã¯ãã¹ãçã«ãããªãã£ããšããŠã)ã
éä¿¡ãã©ã³ã¶ã¯ã·ã§ã³ã®äœæ
äœæããã¢ã«ãŠã³ãã®æ®é«ããééããã«ã¯ããã¡ã€ã«ããããŸã crypto/block/wallet.fif
ããããçµã¿ç«ãŠãããã¯ã©ã€ã¢ã³ããšäžç·ã«ãã©ã«ããŒã«é
眮ããå¿
èŠããããŸãã
åã®æé ãšåæ§ã«ãééããéé¡ãåä¿¡è
ã®ã¢ãã¬ã¹ (dest_addr)ããŠã©ã¬ããã®ã·ãŒã±ã³ã¹çªå· (ãŠã©ã¬ããã®åæååŸã¯ 1 ã«çãããéä¿¡ãã©ã³ã¶ã¯ã·ã§ã³ããšã« 1 ãã€å¢å ããŸã) ã調æŽããå¿
èŠããããŸããã¢ã«ãŠã³ãã®ã¹ããŒã¿ã¹ããªã¯ãšã¹ãããŠç¢ºèªããŠãã ãã)ã ãã¹ãã«ã¯ãããšãã°ç§ã®ãŠã©ã¬ããã䜿çšã§ããŸãã 0x4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2
.
å§ãããšã ïŒ./crypto/fift wallet.fif
) ã¹ã¯ãªããã¯ããã¡ã€ã«ãããŠã©ã¬ããã®ã¢ãã¬ã¹ (転éå
) ãšãã®ç§å¯ããŒãååŸããŸãã new-wallet.addr
О new-wallet.pk
ãåä¿¡ããã¡ãã»ãŒãžã¯æ¬¡ã®å Žæã«æžã蟌ãŸããŸãã new-wallet-query.boc
.
åãšåæ§ã«ããã©ã³ã¶ã¯ã·ã§ã³ãçŽæ¥å®è¡ããã«ã¯ã次ã®åŒã³åºããè¡ããŸãã sendfile new-wallet-query.boc
ã¯ã©ã€ã¢ã³ãã§ã ãã®åŸããããã¯ãã§ãŒã³ã®ç¶æ
ãæŽæ°ããããšãå¿ããªãã§ãã ãã (last
) ãŠã©ã¬ããã®æ®é«ãšã·ãŒã±ã³ã¹çªå·ãå€æŽãããããšã確èªããŸã (getaccount <account_id>
).
ããã§ãTON ã§ã¹ããŒã ã³ã³ãã©ã¯ããäœæãããããã«ãªã¯ãšã¹ããéä¿¡ã§ããããã«ãªããŸããã ã芧ã®ãšãããçŸåšã®æ©èœã¯ãããšãã°ãã°ã©ãã£ã«ã« ã€ã³ã¿ãŒãã§ã€ã¹ãåãããã䜿ãããããŠã©ã¬ãããäœæããã«ã¯ãã§ã«ååã§ã (ãã ããã¡ãã»ã³ãžã£ãŒã®äžéšãšããŠãã§ã«å©çšå¯èœã«ãªãããšãäºæ³ãããŸã)ã
ç»é²ãŠãŒã¶ãŒã®ã¿ãã¢ã³ã±ãŒãã«åå ã§ããŸãã
TONãTVMãFift ã®åæãå«ãèšäºã®ç¶ãã«èå³ããããŸãã?
-
ã¯ããTON ã®æŠèŠã説æããäžé£ã®èšäºã®å®æãåŸ ã£ãŠããŸãã
-
ã¯ããFift èšèªã«ã€ããŠè©³ããèªãã®ã¯èå³æ·±ãã§ã
-
ã¯ããTON ä»®æ³ãã·ã³ãšãã®ã¢ã»ã³ãã©ã«ã€ããŠè©³ããç¥ãããã§ã
-
ãããã©ããé¢çœããªãã
39 人ã®ãŠãŒã¶ãŒãæ祚ããŸããã 12åã®ãŠãŒã¶ãŒãæ£æš©ããã
Telegram ã TON ãç«ã¡äžããèšç»ã«ã€ããŠã©ãæããŸãã?
-
ãã®ãããžã§ã¯ãã«å€§ããªæåŸ ãå¯ããŠããŸã
-
ç§ã¯ãã®çºå±ãèå³æ·±ãèŠå®ã£ãŠããŸãã
-
ç§ã¯æççã§ããããã®æåãçã£ãŠããŸãã
-
ç§ã¯ãã®åãçµã¿ã¯å€±æã§ãããåºç¯ãªå€§è¡ã«ãšã£ãŠäžå¿ èŠã§ãããšèããŠããŸãã
47 人ã®ãŠãŒã¶ãŒãæ祚ããŸããã 12åã®ãŠãŒã¶ãŒãæ£æš©ããã
åºæïŒ habr.com