เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚, เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชตเซ‡เชตเซเช เชฐเชพเช‡เชก เชกเซ€เชเชชเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚

เชจเชฎเชธเซเชคเซ‡! เช† เชฒเซ‡เช–เชฎเชพเช‚ เชนเซเช‚ เชคเชฎเชจเซ‡ เชฌเชคเชพเชตเซ€เชถ เช•เซ‡ เชตเซ‡เชตเซเชธ เชจเซ‹เชก เชชเชฐ เชจเชฟเชฏเชฎเชฟเชค dApp เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเช–เชตเซเช‚ เช…เชจเซ‡ เชšเชฒเชพเชตเชตเซเช‚. เชšเชพเชฒเซ‹ เชœเชฐเซ‚เชฐเซ€ เชธเชพเชงเชจเซ‹, เชชเชฆเซเชงเชคเชฟเช“ เช…เชจเซ‡ เชตเชฟเช•เชพเชธเชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ เชœเซ‹เชˆเช.

เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚, เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชตเซ‡เชตเซเช เชฐเชพเช‡เชก เชกเซ€เชเชชเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚

dApps เช…เชจเซ‡ เชจเชฟเชฏเชฎเชฟเชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชฎเชพเชŸเซ‡เชจเซ€ เชตเชฟเช•เชพเชธ เชฏเซ‹เชœเชจเชพ เชฒเช—เชญเช— เชธเชฎเชพเชจ เช›เซ‡:

  • เชฒเซ‡เช–เชจ เช•เซ‹เชก
  • เชธเซเชตเชšเชพเชฒเชฟเชค เชชเชฐเซ€เช•เซเชทเชฃ เชฒเซ‡เช–เชจ
  • เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฒเซ‹เชจเซเชš เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช
  • เชชเชฐเซ€เช•เซเชทเชฃ

เชธเชพเชงเชจเซ‹

1. docker เชจเซ‹เชก เช…เชจเซ‡ เชตเซ‡เชตเซเช เชเช•เซเชธเชชเซเชฒเซ‹เชฐเชฐ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡

เชœเซ‹ เชคเชฎเซ‡ เชจเซ‹เชก เชถเชฐเซ‚ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชจเชฅเซ€, เชคเซ‹ เชคเชฎเซ‡ เช† เชชเช—เชฒเซเช‚ เช›เซ‹เชกเซ€ เชถเช•เซ‹ เช›เซ‹. เช›เซ‡เชตเชŸเซ‡, เชเช• เชชเชฐเซ€เช•เซเชทเชฃ เช…เชจเซ‡ เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• เชจเซ‡เชŸเชตเชฐเซเช• เช›เซ‡. เชชเชฐเช‚เชคเซ เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชจเซ‹เชกเชจเซ‡ เชœเชฎเชพเชตเซเชฏเชพ เชตเชฟเชจเชพ, เชชเชฐเซ€เช•เซเชทเชฃ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช†เช—เชณ เชตเชงเซ€ เชถเช•เซ‡ เช›เซ‡.

  • เชคเชฎเชพเชฐเซ‡ เชŸเซ‡เชธเซเชŸ เชŸเซ‹เช•เชจเซเชธ เชธเชพเชฅเซ‡ เชธเชคเชค เชจเชตเชพ เชเช•เชพเช‰เชจเซเชŸเซเชธเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡. เชŸเซ‡เชธเซเชŸ เชจเซ‡เชŸเชตเชฐเซเช• เชซเซ‰เชธเซ‡เชŸ เชฆเชฐ 10 เชฎเชฟเชจเชฟเชŸเซ‡ 10 เชตเซ‡เชตเซเชธ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช•เชฐเซ‡ เช›เซ‡.
  • เชชเชฐเซ€เช•เซเชทเชฃ เชจเซ‡เชŸเชตเชฐเซเช•เชฎเชพเช‚ เชธเชฐเซ‡เชฐเชพเชถ เชฌเซเชฒเซ‹เช• เชธเชฎเชฏ 1 เชฎเชฟเชจเชฟเชŸ เช›เซ‡, เชจเซ‹เชกเชฎเชพเช‚ - 15 เชธเซ‡เช•เชจเซเชก. เช† เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชจเซ‹เช‚เชงเชจเซ€เชฏ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เช•เซ‹เชˆ เชตเซเชฏเชตเชนเชพเชฐ เชฎเชพเชŸเซ‡ เชฌเชนเซเชตเชฟเชง เชชเซเชทเซเชŸเชฟเช•เชฐเชฃเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ.
  • เชธเชพเชฐเซเชตเชœเชจเชฟเช• เชชเชฐเซ€เช•เซเชทเชฃ เช—เชพเช‚เช เซ‹ เชชเชฐ เช†เช•เซเชฐเชฎเช• เช•เซ‡เชถเซ€เช‚เช— เชถเช•เซเชฏ เช›เซ‡.
  • เชœเชพเชณเชตเชฃเซ€เชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชคเซ‡เช“ เช…เชธเซเชฅเชพเชฏเซ€ เชฐเซ‚เชชเซ‡ เช…เชจเซเชชเชฒเชฌเซเชง เชชเชฃ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡.

เชนเชตเซ‡เชฅเซ€ เชนเซเช‚ เชงเชพเชฐเซ€เชถ เช•เซ‡ เชคเชฎเซ‡ เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชจเซ‹เชก เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‹.

2. เชธเชฐเซเชซเชฌเซ‹เชฐเซเชก เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจ เชŸเซ‚เชฒ

  • เช…เชนเซ€เช‚ ppa, homebrew เช…เชฅเชตเชพ exe เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Node.js เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹ เช…เชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹: https://nodejs.org/en/download/.
  • เชธเชฐเซเชซเชฌเซ‹เชฐเซเชก เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹, เชเช• เชธเชพเชงเชจ เชœเซ‡ เชคเชฎเชจเซ‡ เชนเชพเชฒเชจเชพ เชจเซ‹เชก เชชเชฐ เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชšเชฒเชพเชตเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.

npm install -g @waves/surfboard

3. เชตเชฟเชเซเชฏเซเช…เชฒ เชธเซเชŸเซเชกเชฟเชฏเซ‹ เช•เซ‹เชก เชชเซเชฒเช—เช‡เชจ

เชœเซ‹ เชคเชฎเซ‡ IDE เชจเชพ เชšเชพเชนเช• เชจ เชนเซ‹เชต เช…เชจเซ‡ เชŸเซ‡เช•เซเชธเซเชŸ เชเชกเชฟเชŸเชฐเซเชธ เชชเชธเช‚เชฆ เช•เชฐเซ‹ เชคเซ‹ เช† เชชเช—เชฒเซเช‚ เชตเซˆเช•เชฒเซเชชเชฟเช• เช›เซ‡. เชฌเชงเชพ เชœเชฐเซ‚เชฐเซ€ เชธเชพเชงเชจเซ‹ เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเช“ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชตเชฟเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชชเซเชฒเช—เช‡เชจ เชชเชฐ เชงเซเชฏเชพเชจ เช†เชชเซ‹ เชตเชฟเชฎ-เชฐเชพเช‡เชก.

เชตเชฟเชเซเชฏเซเช…เชฒ เชธเซเชŸเซเชกเชฟเชฏเซ‹ เช•เซ‹เชก เชกเชพเช‰เชจเชฒเซ‹เชก เช…เชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹: https://code.visualstudio.com/

VS เช•เซ‹เชก เช–เซ‹เชฒเซ‹ เช…เชจเซ‡ เชตเซ‡เชตเซเชธ-เชฐเชพเช‡เชก เชชเซเชฒเช—เช‡เชจ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹:

เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚, เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชตเซ‡เชตเซเช เชฐเชพเช‡เชก เชกเซ€เชเชชเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚

เชตเซ‡เชตเซเชธ เช•เซ€เชชเชฐ เชฌเซเชฐเชพเช‰เชเชฐ เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ: https://wavesplatform.com/products-keeper

เชฅเชˆ เช—เชฏเซเช‚!

เชจเซ‹เชก เช…เชจเซ‡ เชตเซ‡เชตเซเช เชเช•เซเชธเชชเซเชฒเซ‹เชฐเชฐ เชฒเซ‹เช‚เชš เช•เชฐเซ‹

1. เชจเซ‹เชก เชถเชฐเซ‚ เช•เชฐเซ‹:

docker run -d -p 6869:6869 wavesplatform/waves-private-node

เช–เชพเชคเชฐเซ€ เช•เชฐเซ‹ เช•เซ‡ เชจเซ‹เชก เช†เชฐเช‡เชเชธเชŸเซ€ เชเชชเซ€เช†เช‡ เชฆเซเชตเชพเชฐเชพ เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡ http://localhost:6869:

เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚, เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชตเซ‡เชตเซเช เชฐเชพเช‡เชก เชกเซ€เชเชชเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚
เชจเซ‹เชก เชฎเชพเชŸเซ‡ เชธเซเชตเซ‡เช—เชฐ REST API

2. เชตเซ‡เชตเซเช เชเช•เซเชธเชชเซเชฒเซ‹เชฐเชฐเชจเซ‹ เชฆเชพเช–เชฒเซ‹ เชถเชฐเซ‚ เช•เชฐเซ‹:

docker run -d -e API_NODE_URL=http://localhost:6869 -e NODE_LIST=http://localhost:6869 -p 3000:8080 wavesplatform/explorer

เชฌเซเชฐเชพเช‰เชเชฐ เช–เซ‹เชฒเซ‹ เช…เชจเซ‡ เชชเชฐ เชœเชพเช“ http://localhost:3000. เชคเชฎเซ‡ เชœเซ‹เชถเซ‹ เช•เซ‡ เช–เชพเชฒเซ€ เชธเซเชฅเชพเชจเชฟเช• เชจเซ‹เชก เชธเชฐเซเช•เชฟเชŸ เช•เซ‡เชŸเชฒเซ€ เชเชกเชชเชฅเซ€ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚, เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชตเซ‡เชตเซเช เชฐเชพเช‡เชก เชกเซ€เชเชชเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚
เชตเซ‡เชตเซเช เชเช•เซเชธเชชเซเชฒเซ‹เชฐเชฐ เชธเซเชฅเชพเชจเชฟเช• เชจเซ‹เชก เชฆเชพเช–เชฒเซ‹ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡

เชฐเชพเช‡เชก เชธเซเชŸเซเชฐเช•เซเชšเชฐ เช…เชจเซ‡ เชธเชฐเซเชซเชฌเซ‹เชฐเซเชก เชŸเซ‚เชฒ

เช–เชพเชฒเซ€ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชฌเชจเชพเชตเซ‹ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ‹

surfboard init

เช†เชฆเซ‡เชถ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเซเชŸเซเชฐเช•เซเชšเชฐ, "เชนเซ‡เชฒเซ‹ เชตเชฐเซเชฒเซเชก" เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธ เช…เชจเซ‡ เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชธเชพเชฅเซ‡ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชจเซ‡ เชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ VS เช•เซ‹เชก เชธเชพเชฅเซ‡ เช† เชซเซ‹เชฒเซเชกเชฐ เช–เซ‹เชฒเซ‹ เช›เซ‹, เชคเซ‹ เชคเชฎเซ‡ เชœเซ‹เชถเซ‹:

เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚, เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชตเซ‡เชตเซเช เชฐเชพเช‡เชก เชกเซ€เชเชชเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚
Surfboard.config.json

  • ./ride/ เชซเซ‹เชฒเซเชกเชฐ เชนเซ‡เช เชณ เชคเชฎเชจเซ‡ เชเช• เชœ เชซเชพเช‡เชฒ wallet.ride เชฎเชณเชถเซ‡ - เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชœเซเชฏเชพเช‚ dApp เช•เซ‹เชก เชธเซเชฅเชฟเชค เช›เซ‡. เช…เชฎเซ‡ เช†เช—เชพเชฎเซ€ เชฌเซเชฒเซ‹เช•เชฎเชพเช‚ dAppsเชจเซเช‚ เชŸเซ‚เช‚เช•เชฎเชพเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ€เชถเซเช‚.
  • ./test/ เชซเซ‹เชฒเซเชกเชฐ เชนเซ‡เช เชณ เชคเชฎเชจเซ‡ *.js เชซเชพเช‡เชฒ เชฎเชณเชถเซ‡. เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เช…เชนเซ€เช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เช›เซ‡.
  • ./surfboard.config.json - เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒ.

Envs เช เชเช• เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชตเชฟเชญเชพเช— เช›เซ‡. เชฆเชฐเซ‡เช• เชชเชฐเซเชฏเชพเชตเชฐเชฃ เช† เชฐเซ€เชคเซ‡ เช—เซ‹เช เชตเซ‡เชฒ เช›เซ‡:

  • เชจเซ‹เชกเชจเซ‹ REST API เชเชจเซเชกเชชเซ‹เช‡เชจเซเชŸ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชจเซ‡เชŸเชตเชฐเซเช•เชจเชพ dApp เช…เชจเซ‡ CHAIN_ID เชจเซ‡ เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.
  • เชŸเซ‹เช•เชจเซเชธ เชธเชพเชฅเซ‡เชจเชพ เชเช•เชพเช‰เชจเซเชŸ เชฎเชพเชŸเซ‡ เชเช• เช—เซเชชเซเชค เชถเชฌเซเชฆเชธเชฎเซ‚เชน เช•เซ‡ เชœเซ‡ เชคเชฎเชพเชฐเชพ เชŸเซ‡เชธเซเชŸ เชŸเซ‹เช•เชจเซเชธเชจเซ‹ เชธเซเชคเซเชฐเซ‹เชค เชนเชถเซ‡.

เชœเซ‡เชฎ เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, surfboard.config.json เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชฌเชนเซเชตเชฟเชง เชตเชพเชคเชพเชตเชฐเชฃเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡. เชกเชฟเชซเซ‰เชฒเซเชŸ เช เชธเซเชฅเชพเชจเชฟเช• เชชเชฐเซเชฏเชพเชตเชฐเชฃ เช›เซ‡ (defaultEnv เช•เซ€ เช เชชเชฐเชฟเชตเชฐเซเชคเชจเชถเซ€เชฒ เชชเชฐเชฟเชฎเชพเชฃ เช›เซ‡).

เชตเซ‰เชฒเซ‡เชŸ-เชกเซ‡เชฎเซ‹ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ

เช† เชตเชฟเชญเชพเช— RIDE เชญเชพเชทเชพเชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เชจเชฅเซ€. เชคเซ‡เชจเชพ เชฌเชฆเชฒเซ‡, เชฌเซเชฒเซ‹เช•เชšเซ‡เชจเชฎเชพเช‚ เชถเซเช‚ เชฅเชˆ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡ เชตเชงเซ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡ เช…เชฎเซ‡ เชœเชฎเชพเชตเชตเชพ เช…เชจเซ‡ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ€เช เช›เซ€เช เชคเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเชฐ เชเช• เชจเชœเชฐ.

เชšเชพเชฒเซ‹ เชเช• เชธเชฐเชณ เชตเซ‹เชฒเซ‡เชŸ-เชกเซ‡เชฎเซ‹ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชœเซ‹เชˆเช. เช•เซ‹เชˆเชชเชฃ dApp เชธเชฐเชจเชพเชฎเชพเช‚ เชชเชฐ เชŸเซ‹เช•เชจเซเชธ เชฎเซ‹เช•เชฒเซ€ เชถเช•เซ‡ เช›เซ‡. เชคเชฎเซ‡ เชซเช•เซเชค เชคเชฎเชพเชฐเชพ WAVES เชชเชพเช›เซ€ เช–เซ‡เช‚เชšเซ€ เชถเช•เซ‹ เช›เซ‹. เชฌเซ‡ @Callable เช•เชพเชฐเซเชฏเซ‹ InvokeScriptTransaction เชฆเซเชตเชพเชฐเชพ เช‰เชชเชฒเชฌเซเชง เช›เซ‡:

  • deposit()เชœเซ‡เชจเซ‡ WAVES เชฎเชพเช‚ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เชšเซเช•เชตเชฃเซ€เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡
  • withdraw(amount: Int)เชœเซ‡ เชŸเซ‹เช•เชจเซเชธ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡

เชธเชฎเช—เซเชฐ dApp เชœเซ€เชตเชจเชšเช•เซเชฐ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชฎเชพเชณเช–เซเช‚ (เชธเชฐเชจเชพเชฎเซเช‚ โ†’ เชฐเช•เชฎ) เชœเชพเชณเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡:

เช•เซเชฐเชฟเชฏเชพ
เชชเชฐเชฟเชฃเชพเชฎเซ€ เชฐเชพเชœเซเชฏ

เชชเซเชฐเชพเชฐเช‚เชญเชฟเช•
เช–เชพเชฒเซ€

เชเชฒเชฟเชธ 5 เชคเชฐเช‚เช—เซ‹ เชœเชฎเชพ เช•เชฐเซ‡ เช›เซ‡
เชเชฒเชฟเชธ-เชธเชฐเชจเชพเชฎเซเช‚ โ†’ 500000000

เชฌเซ‹เชฌ 2 เชคเชฐเช‚เช—เซ‹ เชœเชฎเชพ เช•เชฐเซ‡ เช›เซ‡

เชเชฒเชฟเชธ-เชธเชฐเชจเชพเชฎเซเช‚ โ†’ 500000000
เชฌเซ‹เชฌ-เชธเชฐเชจเชพเชฎเซเช‚ โ†’ 200000000

เชฌเซ‹เชฌ 7 เชคเชฐเช‚เช—เซ‹ เชชเชพเช›เซ€ เช–เซ‡เช‚เชšเซ€ เชฒเซ‡ เช›เซ‡
เชจเช•เชพเชฐเซเชฏเซเช‚!

เชเชฒเชฟเชธ 4 เชคเชฐเช‚เช—เซ‹ เชชเชพเช›เซ€ เช–เซ‡เช‚เชšเซ€ เชฒเซ‡ เช›เซ‡
เชเชฒเชฟเชธ-เชธเชฐเชจเชพเชฎเซเช‚ โ†’ 100000000
เชฌเซ‹เชฌ-เชธเชฐเชจเชพเชฎเซเช‚ โ†’ 200000000

เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ€เชคเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡ เช…เชนเซ€เช‚ เช•เซ‹เชก เช›เซ‡:

# In this example multiple accounts can deposit their funds and safely take them back. No one can interfere with this.
# An inner state is maintained as mapping `address=>waves`.
{-# STDLIB_VERSION 3 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ACCOUNT #-}
@Callable(i)
func deposit() = {
 let pmt = extract(i.payment)
 if (isDefined(pmt.assetId))
    then throw("works with waves only")
    else {
     let currentKey = toBase58String(i.caller.bytes)
     let currentAmount = match getInteger(this, currentKey) {
       case a:Int => a
       case _ => 0
     }
     let newAmount = currentAmount + pmt.amount
     WriteSet([DataEntry(currentKey, newAmount)]) 
   }
 }
@Callable(i)
func withdraw(amount: Int) = {
 let currentKey = toBase58String(i.caller.bytes)
 let currentAmount = match getInteger(this, currentKey) {
   case a:Int => a
   case _ => 0
 }
 let newAmount = currentAmount - amount
 if (amount < 0)
   then throw("Can't withdraw negative amount")
   else if (newAmount < 0)
     then throw("Not enough balance")
     else ScriptResult(
       WriteSet([DataEntry(currentKey, newAmount)]),
       TransferSet([ScriptTransfer(i.caller, amount, unit)])
      )
 }
@Verifier(tx)
func verify() = false

เชจเชฎเซ‚เชจเชพ เช•เซ‹เชก เชชเชฐ เชชเชฃ เชฎเชณเซ€ เชถเช•เซ‡ เช›เซ‡ GitHub.

VSCode เชชเซเชฒเช—เช‡เชจ เชซเชพเช‡เชฒเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชธเชคเชค เชธเช‚เช•เชฒเชจเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡เชฅเซ€, เชคเชฎเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชธเชฎเชธเซเชฏเชพ เชŸเซ…เชฌเชฎเชพเช‚ เชญเซ‚เชฒเซ‹เชจเซเช‚ เชจเชฟเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚, เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชตเซ‡เชตเซเช เชฐเชพเช‡เชก เชกเซ€เชเชชเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚
เชœเซ‹ เชคเชฎเซ‡ เชซเชพเช‡เชฒ เช•เชฎเซเชชเชพเช‡เชฒ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช…เชฒเช— เชŸเซ‡เช•เซเชธเซเชŸ เชเชกเชฟเชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹

surfboard compile ride/wallet.ride

เช† เชฌเซ‡เช64 เช•เชฎเซเชชเชพเชˆเชฒ เช•เชฐเซ‡เชฒ เชฐเชพเชˆเชก เช•เซ‹เชกเชจเซ€ เชถเซเชฐเซ‡เชฃเซ€เชจเซเช‚ เช†เช‰เชŸเชชเซเชŸ เช•เชฐเชถเซ‡.

'wallet.ride' เชฎเชพเชŸเซ‡ เชŸเซ‡เชธเซเชŸ เชธเซเช•เซเชฐเชฟเชชเซเชŸ

เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เชŸเซ‡เชธเซเชŸ เชซเชพเช‡เชฒ. เชœเชพเชตเชพเชธเซเช•เซเชฐเชฟเชชเซเชŸเชจเชพ เชฎเซ‹เชšเชพ เชซเซเชฐเซ‡เชฎเชตเชฐเซเช• เชฆเซเชตเชพเชฐเชพ เชธเช‚เชšเชพเชฒเชฟเชค. เชคเซเชฏเชพเช‚ "เชชเชนเซ‡เชฒเชพเช‚" เช•เชพเชฐเซเชฏ เช…เชจเซ‡ เชคเซเชฐเชฃ เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เช›เซ‡:

  • "เชชเชนเซ‡เชฒเชพเช‚" MassTransferTransaction เชฆเซเชตเชพเชฐเชพ เชฌเชนเซเชตเชฟเชง เช–เชพเชคเชพเช“เชจเซ‡ เชญเช‚เชกเซ‹เชณ เช†เชชเซ‡ เช›เซ‡, เชธเซเช•เซเชฐเชฟเชชเซเชŸเชจเซเช‚ เชธเช‚เช•เชฒเชจ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชฌเซเชฒเซ‹เช•เชšเซ‡เชจเชฎเชพเช‚ เชœเชฎเชพเชตเซ‡ เช›เซ‡.
  • "เชกเชฟเชชเซ‹เชเซ€เชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹" เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ เชเช• InvokeScriptTransaction เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡, เชœเซ‡ เชฌเซ‡ เช–เชพเชคเชพเช“เชฎเชพเช‚เชจเชพ เชฆเชฐเซ‡เช• เชฎเชพเชŸเซ‡ deposit() เชซเช‚เช•เซเชถเชจเชจเซ‡ เชธเช•เซเชฐเชฟเชฏ เช•เชฐเซ‡ เช›เซ‡.
  • "เชœเชฎเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ เชคเซ‡เชจเชพ เช•เชฐเชคเชพเช‚ เชตเชงเซ เช‰เชชเชพเชกเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€" เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เช•เซ‡ เช•เซ‹เชˆ เช…เชจเซเชฏ เชฒเซ‹เช•เซ‹เชจเชพ เชŸเซ‹เช•เชจเซเชธ เชšเซ‹เชฐเซ€ เชถเช•เซ‡ เชจเชนเซ€เช‚.
  • เช‰เชชเชพเชกเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชฅเชพเชฏ เช›เซ‡ เชคเซ‡ เชšเซ‡เช• "เชฅเชพเชชเชฃ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡".

เชธเชฐเซเชซเชฌเซ‹เชฐเซเชก เชชเชฐเชฅเซ€ เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชšเชฒเชพเชตเซ‹ เช…เชจเซ‡ เชตเซ‡เชตเซเช เชเช•เซเชธเชชเซเชฒเซ‹เชฐเชฐเชฎเชพเช‚ เชชเชฐเชฟเชฃเชพเชฎเซ‹เชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ‹

เชŸเซ‡เชธเซเชŸ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชšเชฒเชพเชตเซ‹

surfboard test

เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชฌเชนเซเชตเชฟเชง เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹ เช›เซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเชพเชฐเซ‡ เชเช• เช…เชฒเช— เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เชธเซเช•เซเชฐเชฟเชชเซเชŸเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡), เชคเซ‹ เชคเชฎเซ‡ เชšเชฒเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹

surfboard test my-scenario.js

เชธเชฐเซเชซเชฌเซ‹เชฐเซเชก ./test/ เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เชซเชพเช‡เชฒเซ‹ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชถเซ‡ เช…เชจเซ‡ surfboard.config.json เชฎเชพเช‚ เช—เซ‹เช เชตเซ‡เชฒ เชจเซ‹เชก เชชเชฐ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชšเชฒเชพเชตเชถเซ‡. เชฅเซ‹เชกเซ€เช• เชธเซ‡เช•เช‚เชก เชชเช›เซ€ เชคเชฎเซ‡ เช†เชจเชพ เชœเซ‡เชตเซเช‚ เช•เช‚เชˆเช• เชœเซ‹เชถเซ‹:

wallet test suite
Generating accounts with nonce: ce8d86ee
Account generated: foofoofoofoofoofoofoofoofoofoofoo#ce8d86ee - 3M763WgwDhmry95XzafZedf7WoBf5ixMwhX
Account generated: barbarbarbarbarbarbarbarbarbar#ce8d86ee - 3MAi9KhwnaAk5HSHmYPjLRdpCAnsSFpoY2v
Account generated: wallet#ce8d86ee - 3M5r6XYMZPUsRhxbwYf1ypaTB6MNs2Yo1Gb
Accounts successfully funded
Script has been set
   โˆš Can deposit (4385ms)
   โˆš Cannot withdraw more than was deposited
   โˆš Can withdraw (108ms)
3 passing (15s)

เชนเซเชฐเซ‡! เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชชเชพเชธ เชฅเชฏเชพ. เชนเชตเซ‡ เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡ เชตเซ‡เชตเซเชธ เชเช•เซเชธเชชเซเชฒเซ‹เชฐเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชถเซเช‚ เชฅเชพเชฏ เช›เซ‡: เชฌเซเชฒเซ‹เช•เซเชธ เชœเซเช“ เช…เชฅเชตเชพ เช‰เชชเชฐเชจเชพ เชธเชฐเชจเชพเชฎเชพเช‚เช“เชฎเชพเช‚เชฅเซ€ เชเช•เชจเซ‡ เชถเซ‹เชงเชฎเชพเช‚ เชชเซ‡เชธเซเชŸ เช•เชฐเซ‹ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช…เชจเซเชฐเซ‚เชช wallet#. เชคเซเชฏเชพเช‚ เชคเชฎเซ‡ เชŸเซเชฐเชพเชจเซเชเซ‡เช•เซเชถเชจ เชนเชฟเชธเซเชŸเซเชฐเซ€, dApp เชธเซเชŸเซ‡เชŸเชธ, เชกเซ€เช•เชฎเซเชชเชพเชˆเชฒ เชฌเชพเชˆเชจเชฐเซ€ เชซเชพเชˆเชฒ เชถเซ‹เชงเซ€ เชถเช•เซ‹ เช›เซ‹.

เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚, เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชตเซ‡เชตเซเช เชฐเชพเช‡เชก เชกเซ€เชเชชเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚
เชตเซ‡เชตเซเช เชเช•เซเชธเชชเซเชฒเซ‹เชฐเชฐ. เชเช• เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชœเซ‡ เชนเชฎเชฃเชพเช‚ เชœ เชœเชฎเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡.

เช•เซ‡เชŸเชฒเซ€เช• เชธเชฐเซเชซเชฌเซ‹เชฐเซเชก เชŸเซ€เชชเซเชธ:

1. เชŸเซ‡เชธเซเชŸเชจเซ‡เชŸ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฎเชพเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช†เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹:

surfboard test --env=testnet

เชŸเซ‡เชธเซเชŸ เชŸเซ‹เช•เชจเซเชธ เชฎเซ‡เชณเชตเซ‹

2. เชœเซ‹ เชคเชฎเซ‡ เชตเซเชฏเชตเชนเชพเชฐเซ‹เชจเชพ JSON เชธเช‚เชธเซเช•เชฐเชฃเซ‹ เช…เชจเซ‡ เชจเซ‹เชก เชฆเซเชตเชพเชฐเชพ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡ เชœเซ‹เชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ -v (เชเชŸเชฒเซ‡ โ€‹โ€‹เช•เซ‡ 'เชตเชฐเซเชฌเซ‹เช') เชธเชพเชฅเซ‡ เชชเชฐเซ€เช•เซเชทเชฃ เชšเชฒเชพเชตเซ‹:

surfboard test -v

เชตเซ‡เชตเซเชธ เช•เซ€เชชเชฐ เชธเชพเชฅเซ‡ เชเชชเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹

1. เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเซ‡เชตเซเชธ เช•เซ€เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ‹: http://localhost:6869

เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚, เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชตเซ‡เชตเซเช เชฐเชพเช‡เชก เชกเซ€เชเชชเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚
เชธเซเชฅเชพเชจเชฟเช• เชจเซ‹เชก เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเซ‡เชตเซเชธ เช•เซ€เชชเชฐเชจเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเซเช‚

2. เชจเซ‡เชŸเชตเชฐเซเช• เชฎเชพเชŸเซ‡ เชŸเซ‹เช•เชจเซเชธ เชธเชพเชฅเซ‡ เช—เซเชชเซเชค เชถเชฌเซเชฆเชธเชฎเซ‚เชน เช†เชฏเชพเชค เช•เชฐเซ€เช? เชธเชฐเชณเชคเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเชพ เชจเซ‹เชกเชจเชพ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชฌเซ€เชœเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹: waves private node seed with waves tokens. เชธเชฐเชจเชพเชฎเซเช‚: 3M4qwDomRabJKLZxuXhwfqLApQkU592nWxF.

3. เชคเชฎเซ‡ npm เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฟเช‚เช—เชฒ เชชเซ‡เชœ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชœเชพเชคเซ‡ เชšเชฒเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹. เช…เชฅเชตเชพ เชนเชพเชฒเชจเชพ เชเช• เชชเชฐ เชœเชพเช“: chrome-ext.wvservices.com/dapp-wallet.html

4. dApp เชเชกเซเชฐเซ‡เชธ เชŸเซ‡เช•เซเชธเซเชŸ เชฌเซ‹เช•เซเชธเชฎเชพเช‚ เชŸเซ‡เชธเซเชŸ เชฐเชจ (เช‰เชชเชฐ เชฐเซ‡เช–เชพเช‚เช•เชฟเชค) เชฎเชพเช‚เชฅเซ€ เชตเซ‰เชฒเซ‡เชŸ เชธเชฐเชจเชพเชฎเซเช‚ เชฆเชพเช–เชฒ เช•เชฐเซ‹

5. โ€œเชฅเชพเชชเชฃโ€ เชซเซ€เชฒเซเชกเชฎเชพเช‚ เชจเชพเชจเซ€ เชฐเช•เชฎ เชฆเชพเช–เชฒ เช•เชฐเซ‹ เช…เชจเซ‡ เชฌเชŸเชจ เชชเชฐ เช•เซเชฒเชฟเช• เช•เชฐเซ‹:

เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚, เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชตเซ‡เชตเซเช เชฐเชพเช‡เชก เชกเซ€เชเชชเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚
เชตเซ‡เชตเซเชธ เช•เซ€เชชเชฐ 10 WAVES เชจเซ€ เชšเซเช•เชตเชฃเซ€ เชธเชพเชฅเซ‡ InvokeScriptTransaction เชชเชฐ เชนเชธเซเชคเชพเช•เซเชทเชฐ เช•เชฐเชตเชพเชจเซ€ เชชเชฐเชตเชพเชจเช—เซ€เชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡ เช›เซ‡.

6. เชตเซเชฏเชตเชนเชพเชฐเชจเซ€ เชชเซเชทเซเชŸเชฟ เช•เชฐเซ‹:

เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚, เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชตเซ‡เชตเซเช เชฐเชพเช‡เชก เชกเซ€เชเชชเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚
เชตเซเชฏเชตเชนเชพเชฐ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ เชชเซเชฐเชธเชพเชฐเชฟเชค เชฅเชพเชฏ เช›เซ‡. เชนเชตเซ‡ เชคเชฎเซ‡ เชคเซ‡เชจเซเช‚ เช†เชˆเชกเซ€ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹

7. เชตเซ‡เชตเซเช เชเช•เซเชธเชชเซเชฒเซ‹เชฐเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชตเซเชฏเชตเชนเชพเชฐเชจเซเช‚ เชจเชฟเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ‹. เชถเซ‹เชง เช•เซเชทเซ‡เชคเซเชฐเชฎเชพเช‚ ID เชฆเชพเช–เชฒ เช•เชฐเซ‹

เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚, เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชตเซ‡เชตเซเช เชฐเชพเช‡เชก เชกเซ€เชเชชเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚

เชคเชพเชฐเชฃเซ‹ เช…เชจเซ‡ เชตเชงเชพเชฐเชพเชจเซ€ เชฎเชพเชนเชฟเชคเซ€

เช…เชฎเซ‡ เชตเซ‡เชตเซเช เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชชเชฐ เชธเชฐเชณ dApps เชตเชฟเช•เชธเชพเชตเชตเชพ, เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพ, เชœเชฎเชพเชตเชŸ เช•เชฐเชตเชพ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเชพเช‚ เชธเชพเชงเชจเซ‹ เชœเซ‹เชฏเชพเช‚:

  • เชฐเชพเช‡เชก เชญเชพเชทเชพ
  • VS เช•เซ‹เชก เชเชกเชฟเชŸเชฐ
  • เชตเซ‡เชตเซเช เชเช•เซเชธเชชเซเชฒเซ‹เชฐเชฐ
  • เชธเชฐเซเชซเชฌเซ‹เชฐเซเชก
  • เชตเซ‡เชตเซเชธ เช•เซ€เชชเชฐ

เชฐเชพเช‡เชก เชถเซ€เช–เชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เชตเชพ เชฎเชพเช‚เช—เชคเชพ เชฒเซ‹เช•เซ‹ เชฎเชพเชŸเซ‡ เชฒเชฟเช‚เช•เซเชธ:

เชตเชงเซ เช‰เชฆเชพเชนเชฐเชฃเซ‹
เช‰เชฆเชพเชนเชฐเชฃเซ‹ เชธเชพเชฅเซ‡ เช‘เชจเชฒเชพเช‡เชจ IDE
เชฎเซ‹เชœเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ
เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎเชฎเชพเช‚ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เชšเซ‡เชŸ
เชธเซเชŸเซ‡เช•เช“เชตเชฐเชซเซเชฒเซ‹ เชชเชฐ เชตเซ‡เชตเซเชธ เช…เชจเซ‡ เชฐเชพเช‡เชก
เชจเชตเซเช‚! เชตเซ‡เชตเซเช เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชชเชฐ dApps เชฌเชจเชพเชตเชตเชพเชจเชพ เช“เชจเชฒเชพเชˆเชจ เช…เชญเซเชฏเชพเชธเช•เซเชฐเชฎเซ‹

เชฐเชพเช‡เชก เชตเชฟเชทเชฏเชฎเชพเช‚ เชกเชพเช‡เชต เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ‹ เช…เชจเซ‡ เชคเชฎเชพเชฐเซ€ เชชเซเชฐเชฅเชฎ dApp เชฌเชจเชพเชตเซ‹!

TL; DR: bit.ly/2YCFnwY

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹