Advertisement
Guest User

Untitled

a guest
May 30th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "Asm.fif" include
  2.  
  3. -1 constant wc  // create a wallet in workchain -1 (masterchain)
  4.  
  5. // Create new simple wallet
  6. <{  SETCP0 DUP IFNOTRET INC 32 THROWIF  // return if recv_internal, fail unless recv_external
  7.     512 INT LDSLICEX DUP 32 PLDU   // sign cs cnt
  8.     c4 PUSHCTR CTOS 32 LDU 256 LDU ENDS  // sign cs cnt cnt' pubk
  9.    s1 s2 XCPU            // sign cs cnt pubk cnt' cnt
  10.     EQUAL 33 THROWIFNOT   // ( seqno mismatch? )
  11.     s2 PUSH HASHSU        // sign cs cnt pubk hash
  12.     s0 s4 s4 XC2PU        // pubk cs cnt hash sign pubk
  13.     CHKSIGNU              // pubk cs cnt ?
  14.     34 THROWIFNOT         // signature mismatch
  15.     ACCEPT
  16.     SWAP 32 LDU NIP
  17.     DUP SREFS IF:<{
  18.       8 LDU LDREF         // pubk cnt mode msg cs
  19.       s0 s2 XCHG SENDRAWMSG  // pubk cnt cs ; ( message sent )
  20.     }>
  21.     ENDS
  22.     INC NEWC 32 STU 256 STU ENDC c4 POPCTR
  23. }>c
  24. // code
  25. <b 0 32 u,
  26.    newkeypair swap dup constant wallet_pk
  27.    "new-wallet.pk" B>file
  28.    B,
  29. b> // data
  30. // no libraries
  31. <b b{00110} s, rot ref, swap ref, b>  // create StateInit
  32. dup ."StateInit: " <s csr. cr
  33. dup hash dup constant wallet_addr
  34. ."new wallet address = " wc . .": " dup x. cr
  35. wc over 7 smca>$ type cr
  36. 256 u>B "new-wallet.addr" B>file
  37. <b 0 32 u, b>
  38. dup ."signing message: " <s csr. cr
  39. dup hash wallet_pk ed25519_sign_uint rot
  40. <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>
  41. dup ."External message for initialization is " <s csr. cr
  42. 2 boc+>B dup Bx. cr
  43. "new-wallet-query.boc" tuck B>file
  44. ."(Saved to file " type .")" cr
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement