เจธเจค เจธเฉเจฐเฉ เจ เจเจพเจฒ! เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ เจฎเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจฆเจฟเจเจพเจตเจพเจเจเจพ เจเจฟ เจเฉฑเจ เจตเฉเจตเจเจผ เจจเฉเจก 'เจคเฉ เจเฉฑเจ เจจเจฟเจฏเจฎเจค 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. เจตเจฟเจเจผเฉเจ เจฒ เจธเจเฉเจกเฉเจ เจเฉเจก เจชเจฒเฉฑเจเจเจจ
เจเจน เจเจฆเจฎ เจตเจฟเจเจฒเจชเจฟเจ เจนเฉ เจเฉเจเจฐ เจคเฉเจธเฉเจ IDEs เจฆเฉ เจชเฉเจฐเจธเจผเฉฐเจธเจ เจจเจนเฉเจ เจนเฉ เจ
เจคเฉ เจเฉเจเจธเจ เจเจกเฉเจเจฐเจพเจ เจจเฉเฉฐ เจคเจฐเจเฉเจน เจฆเจฟเฉฐเจฆเฉ เจนเฉเฅค เจธเจพเจฐเฉ เจฒเฉเฉเฉเจเจฆเฉ เจเฉเจฒ เจเจฎเจพเจเจก เจฒเจพเจเจจ เจเจชเจฏเฉเจเจคเจพเจตเจพเจ เจนเจจเฅค เจเฉ เจคเฉเจธเฉเจ เจตเจฟเจฎ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉ, เจคเจพเจ เจชเจฒเฉฑเจเจเจจ เจตเฉฑเจฒ เจงเจฟเจเจจ เจฆเจฟเจ
เจตเจฟเจเจผเฉเจ
เจฒ เจธเจเฉเจกเฉเจ เจเฉเจก เจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจ
เจคเฉ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉ:
VS เจเฉเจก เจเฉเจฒเฉเจนเฉ เจ เจคเฉ เจตเฉเจตเจเจผ-เจฐเจพเจเจก เจชเจฒเฉฑเจเจเจจ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉ:
เจตเฉเจต เจเฉเจชเจฐ เจฌเจฐเจพเจเจเจผเจฐ เจเจเจธเจเฉเจเจธเจผเจจ:
เจนเฉ เจเจฟเจ!
เจจเฉเจก เจ เจคเฉ เจตเฉเจตเจเจผ เจเจเจธเจชเจฒเฉเจฐเจฐ เจธเจผเฉเจฐเฉ เจเจฐเฉ
1. เจจเฉเจก เจธเจผเฉเจฐเฉ เจเจฐเฉ:
docker run -d -p 6869:6869 wavesplatform/waves-private-node
เจฏเจเฉเจจเฉ เจฌเจฃเจพเจ เจเจฟ เจจเฉเจก เจจเฉเฉฐ REST API เจฆเฉเจเจฐเจพ เจฒเจพเจเจ เจเฉเจคเจพ เจเจฟเจ เจนเฉ
เจจเฉเจก เจฒเจ เจธเจตเฉเจเจฐ REST API
2. เจตเฉเจตเจเจผ เจเจเจธเจชเจฒเฉเจฐเจฐ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจฃ เจธเจผเฉเจฐเฉ เจเจฐเฉ:
docker run -d -e API_NODE_URL=http://localhost:6869 -e NODE_LIST=http://localhost:6869 -p 3000:8080 wavesplatform/explorer
เจเฉฑเจ เจฌเฉเจฐเจพเจเจเจผเจฐ เจเฉเจฒเฉเจนเฉ เจ
เจคเฉ เจเจพเจ
เจตเฉเจตเจเจผ เจเจเจธเจชเจฒเฉเจฐเจฐ เจเฉฑเจ เจธเจฅเจพเจจเจ เจจเฉเจก เจเจฆเจพเจนเจฐเจจ เจฆเจฟเจเจพเจเจเจฆเจพ เจนเฉ
เจฐเจพเจเจก เจฌเจฃเจคเจฐ เจ เจคเฉ เจธเจฐเจซเจฌเฉเจฐเจก เจเฉเจฒ
เจเฉฑเจ เจเจพเจฒเฉ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฌเจฃเจพเจ เจ เจคเฉ เจเจธ เจตเจฟเฉฑเจ เจเจฎเจพเจเจก เจเจฒเจพเจ
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 เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจ เจตเจพเจคเจพเจตเจฐเจฃเจพเจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเจพ เจนเฉเฅค เจชเฉเจฐเจต-เจจเจฟเจฐเจงเจพเจฐเจค เจธเจฅเจพเจจเจ เจตเจพเจคเจพเจตเจฐเจฃ เจนเฉ (เจกเจฟเจซเจพเจฒเจ เจเจเจจเจตเฉ เจเฉเฉฐเจเฉ เจเฉฑเจ เจฌเจฆเจฒเจฃเจฏเฉเจ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจนเฉ)เฅค
เจตเจพเจฒเจฟเจ-เจกเฉเจฎเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ
เจเจน เจญเจพเจ RIDE เจญเจพเจธเจผเจพ เจฆเจพ เจนเจตเจพเจฒเจพ เจจเจนเฉเจ เจนเฉเฅค เจเจธ เจฆเฉ เจฌเจเจพเจ, เจฌเจฒเจพเจเจเฉเจจ เจตเจฟเฉฑเจ เจเฉ เจนเฉ เจฐเจฟเจนเจพ เจนเฉ, เจเจธ เจจเฉเฉฐ เจฌเจฟเจนเจคเจฐ เจขเฉฐเจ เจจเจพเจฒ เจธเจฎเจเจฃ เจฒเจ เจ เจธเฉเจ เจคเฉเจจเจพเจค เจ เจคเฉ เจเจพเจเจ เจเฉเจคเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ 'เจคเฉ เจเฉฑเจ เจจเจเจผเจฐ เจฎเจพเจฐเจฆเฉ เจนเจพเจเฅค
เจเจ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจตเจพเจฒเจฟเจ-เจกเฉเจฎเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจตเฉเจเฉเจเฅค เจเฉเจ เจตเฉ dApp เจชเจคเฉ 'เจคเฉ เจเฉเจเจจ เจญเฉเจ เจธเจเจฆเจพ เจนเฉเฅค เจคเฉเจธเฉเจ เจธเจฟเจฐเจซเจผ เจเจชเจฃเฉเจเจ เจตเฉเจตเจเจผ เจตเจพเจชเจธ เจฒเฉ เจธเจเจฆเฉ เจนเฉเฅค เจฆเฉ @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
เจจเจฎเฉเจจเจพ เจเฉเจก 'เจคเฉ เจตเฉ เจชเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉ
VSCode เจชเจฒเฉฑเจเจเจจ เจเฉฑเจ เจซเจพเจเจฒ เจจเฉเฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจเจฐเจฆเฉ เจธเจฎเฉเจ เจจเจฟเจฐเฉฐเจคเจฐ เจธเฉฐเจเจฒเจจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเฉ เจนเฉเฅค เจเจธ เจฒเจ, เจคเฉเจธเฉเจ เจนเจฎเฉเจธเจผเจพ เจธเจฎเฉฑเจธเจฟเจ เจเฉเจฌ เจตเจฟเฉฑเจ เจเจฒเจคเฉเจเจ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจเฉเจเจฐ เจคเฉเจธเฉเจ เจซเจพเจเจฒ เจจเฉเฉฐ เจเฉฐเจชเจพเจเจฒ เจเจฐเจจ เจตเฉเจฒเฉ เจเฉฑเจ เจตเฉฑเจเจฐเจพ เจเฉเจเจธเจ เจเจกเฉเจเจฐ เจตเจฐเจคเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉ, เจคเจพเจ เจตเจฐเจคเฉ
surfboard compile ride/wallet.ride
เจเจน เจฌเฉเจธ 64 เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉ เจฐเจพเจเจก เจเฉเจก เจฆเฉ เจเฉฑเจ เจฒเฉเฉ เจจเฉเฉฐ เจเจเจเจชเฉเฉฑเจ เจเจฐเฉเจเจพเฅค
'wallet.ride' เจฒเจ เจเฉเจธเจ เจธเจเฉเจฐเจฟเจชเจ
เจเจ เจฆเฉเจเฉเจ
- "เจชเจนเจฟเจฒเจพเจ" เจฎเจพเจธ เจเจฐเจพเจเจธเจซเจฐ เจเจฐเจพเจเจธเฉเจเจธเจผเจจ เจฆเฉเจเจฐเจพ เจฎเจฒเจเฉเจชเจฒ เจเจพเจคเจฟเจเจ เจจเฉเฉฐ เจซเฉฐเจก เจเจฐเจฆเจพ เจนเฉ, เจธเจเฉเจฐเจฟเจชเจ เจจเฉเฉฐ เจเฉฐเจชเจพเจเจฒ เจเจฐเจฆเจพ เจนเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจฌเจฒเจพเจเจเฉเจจ เจตเจฟเฉฑเจ เจคเฉเจจเจพเจค เจเจฐเจฆเจพ เจนเฉเฅค
- "เจเจฎเจพ เจเจฐ เจธเจเจฆเจพ เจนเฉ" เจจเฉเฉฑเจเจตเจฐเจ เจจเฉเฉฐ เจเฉฑเจ 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. เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจตเฉเจต เจเฉเจชเจฐ เจธเฉเจ เจ
เจช เจเจฐเฉ:
เจฒเฉเจเจฒ เจจเฉเจก เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจตเฉเจต เจเฉเจชเจฐ เจธเฉเจ เจ
เจช เจเจฐเจจเจพ
2. เจจเฉเฉฑเจเจตเจฐเจ เจฒเจ เจเฉเจเจจเจพเจ เจจเจพเจฒ เจเฉเจชเจค เจตเจพเจเจพเจเจธเจผ เจจเฉเฉฐ เจเจฏเจพเจค เจเจฐเจจเจพ เจนเฉ? เจธเจพเจฆเจเฉ เจฒเจ, เจเจชเจฃเฉ เจจเฉเจก เจฆเฉ เจธเจผเฉเจฐเฉเจเจคเฉ เจฌเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉ: waves private node seed with waves tokens
. เจชเจคเจพ: 3M4qwDomRabJKLZxuXhwfqLApQkU592nWxF
.
3. เจคเฉเจธเฉเจ npm เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจธเจฟเฉฐเจเจฒ เจชเฉเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเจฒเจพ เจธเจเจฆเฉ เจนเฉเฅค เจเจพเจ เจฎเฉเจเฉเจฆเจพ เจเฉฑเจ 'เจคเฉ เจเจพเจ:
4. dApp เจเจกเจฐเฉเฉฑเจธ เจเฉเจเจธเจ เจฌเจพเจเจธ เจตเจฟเฉฑเจ เจเฉเจธเจ เจฐเจจ (เจเฉฑเจชเจฐ เจฐเฉเจเจพเจเจเจฟเจค) เจคเฉเจ เจตเจพเจฒเจฟเจ เจชเจคเจพ เจฆเจฐเจ เจเจฐเฉ
5. โเจกเจฟเจชเจพเจเจผเจฟเจโ เจเฉเจคเจฐ เจตเจฟเฉฑเจ เจเฉฑเจ เจเฉเจเฉ เจเจฟเจนเฉ เจฐเจเจฎ เจฆเจพเจเจฒ เจเจฐเฉ เจ เจคเฉ เจฌเจเจจ เจคเฉ เจเจฒเจฟเจ เจเจฐเฉ:
เจตเฉเจตเจเจผ เจเฉเจชเจฐ 10 เจตเฉเจตเจเจผ เจฆเฉ เจญเฉเจเจคเจพเจจ เจฆเฉ เจจเจพเจฒ เจเจจเจตเฉเจเจธเจเฉเจฐเจฟเจชเจ เจเฉเจฐเจพเจเจเฉเจเจธเจผเจจ 'เจคเฉ เจฆเจธเจคเจเจค เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเจฆเจพ เจนเฉเฅค
6. เจฒเฉเจฃ-เจฆเฉเจฃ เจฆเฉ เจชเฉเจธเจผเจเฉ เจเจฐเฉ:
เจฒเฉเจฃ-เจฆเฉเจฃ เจจเฉเฉฐ เจจเฉเฉฑเจเจตเจฐเจ 'เจคเฉ เจฌเจฃเจพเจเจ เจ
เจคเฉ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค เจนเฉเจฃ เจคเฉเจธเฉเจ เจเจธเจฆเฉ เจเจเจกเฉ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ
7. เจตเฉเจตเจเจผ เจเจเจธเจชเจฒเฉเจฐเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจฐเจพเจเจเฉเจเจธเจผเจจ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเจฐเฉเฅค เจเฉเจ เจเฉเจคเจฐ เจตเจฟเฉฑเจ ID เจฆเจฐเจ เจเจฐเฉ
เจธเจฟเฉฑเจเฉ เจ เจคเฉ เจตเจพเจงเฉ เจเจพเจฃเจเจพเจฐเฉ
เจ เจธเฉเจ เจตเฉเจตเจเจผ เจชเจฒเฉเจเจซเจพเจฐเจฎ 'เจคเฉ เจธเจงเจพเจฐเจจ dApps เจจเฉเฉฐ เจตเจฟเจเจธเจค เจเจฐเจจ, เจเฉเจธเจ เจเจฐเจจ, เจคเฉเจจเจพเจค เจเจฐเจจ เจ เจคเฉ เจตเจฐเจคเจฃ เจฒเจ เจเฉเจฒเจพเจ เจจเฉเฉฐ เจฆเฉเจเจฟเจ:
- เจฐเจพเจเจก เจญเจพเจธเจผเจพ
- VS เจเฉเจก เจธเฉฐเจชเจพเจฆเจ
- เจตเฉเจต เจเจเจธเจชเจฒเฉเจฐเจฐ
- เจธเจฐเจซ เจฌเฉเจฐเจก
- เจตเฉเจต เจเฉเจชเจฐ
เจเจนเจจเจพเจ เจฒเจ เจฒเจฟเฉฐเจ เจเฉ เจฐเจพเจเจก เจธเจฟเฉฑเจเจฃเจพ เจเจพเจฐเฉ เจฐเฉฑเจเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจจ:
เจฐเจพเจเจก เจตเจฟเจธเจผเฉ เจตเจฟเฉฑเจ เจเฉเจคเจพเจเฉเจฐเฉ เจเจพเจฐเฉ เจฐเฉฑเจเฉ เจ เจคเฉ เจเจชเจฃเจพ เจชเจนเจฟเจฒเจพ dApp เจฌเจฃเจพเจ!
TL; เจกเจพ:
เจธเจฐเฉเจค: www.habr.com