āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Waves RIDE dApp āĻ¤ā§ˆāĻ°āĻŋ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŦā§‡āĻ¨

āĻšā§āĻ¯āĻžāĻ˛ā§‹! āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĻā§‡āĻ–āĻžāĻŦ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ Waves āĻ¨ā§‹āĻĄā§‡ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ dApp āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻšāĻ¯āĻŧāĨ¤ āĻ†āĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽ, āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ•āĻžāĻļā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§‡āĻ–āĻŋāĨ¤

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Waves RIDE 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 āĻ•ā§‹āĻĄ āĻ–ā§āĻ˛ā§āĻ¨ āĻāĻŦāĻ‚ āĻ“āĻ¯āĻŧā§‡āĻ­-āĻ°āĻžāĻ‡āĻĄ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°ā§āĻ¨:

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Waves RIDE dApp āĻ¤ā§ˆāĻ°āĻŋ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŦā§‡āĻ¨

āĻ“āĻ¯āĻŧā§‡āĻ­āĻ¸ āĻ•āĻŋāĻĒāĻžāĻ° āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨: https://wavesplatform.com/products-keeper

āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨!

āĻ¨ā§‹āĻĄ āĻāĻŦāĻ‚ āĻ“āĻ¯āĻŧā§‡āĻ­āĻ¸ āĻāĻ•ā§āĻ¸āĻĒā§āĻ˛ā§‹āĻ°āĻžāĻ° āĻļā§āĻ°ā§ āĻ•āĻ°ā§āĻ¨

1. āĻ¨ā§‹āĻĄ āĻļā§āĻ°ā§ āĻ•āĻ°ā§āĻ¨:

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

āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨ āĻ¯ā§‡ āĻ¨ā§‹āĻĄāĻŸāĻŋ REST API āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻšāĻžāĻ˛ā§ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ http://localhost:6869:

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Waves RIDE dApp āĻ¤ā§ˆāĻ°āĻŋ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŦā§‡āĻ¨
āĻ¨ā§‹āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ Swagger REST API

2. Waves Explorer āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻļā§āĻ°ā§ āĻ•āĻ°ā§āĻ¨:

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

āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻ–ā§āĻ˛ā§āĻ¨ āĻāĻŦāĻ‚ āĻ¯āĻžāĻ¨ http://localhost:3000. āĻ†āĻĒāĻ¨āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻŦā§‡āĻ¨ āĻ•āĻ¤ āĻĻā§āĻ°ā§āĻ¤ āĻāĻ•āĻŸāĻŋ āĻ–āĻžāĻ˛āĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻ¨ā§‹āĻĄ āĻ¸āĻžāĻ°ā§āĻ•āĻŋāĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻšāĻ¯āĻŧāĨ¤

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Waves RIDE dApp āĻ¤ā§ˆāĻ°āĻŋ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŦā§‡āĻ¨
āĻ“āĻ¯āĻŧā§‡āĻ­āĻ¸ āĻāĻ•ā§āĻ¸āĻĒā§āĻ˛ā§‹āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻ¨ā§‹āĻĄ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°ā§‡

āĻ°āĻžāĻ‡āĻĄ āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ° āĻāĻŦāĻ‚ āĻ¸āĻžāĻ°ā§āĻĢāĻŦā§‹āĻ°ā§āĻĄ āĻŸā§āĻ˛

āĻāĻ•āĻŸāĻŋ āĻ–āĻžāĻ˛āĻŋ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻāĻ¤ā§‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¨

surfboard init

āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ•āĻžāĻ āĻžāĻŽā§‹, "āĻšā§āĻ¯āĻžāĻ˛ā§‹ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ˛ā§āĻĄ" āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ‡ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°āĻŸāĻŋ āĻ­āĻŋāĻāĻ¸ āĻ•ā§‹āĻĄ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ–ā§‹āĻ˛ā§‡āĻ¨, āĻ†āĻĒāĻ¨āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻŦā§‡āĻ¨:

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Waves RIDE dApp āĻ¤ā§ˆāĻ°āĻŋ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŦā§‡āĻ¨
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 āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨. InvokeScriptTransaction āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĻā§āĻŸāĻŋ @Callable āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§:

  • deposit()āĻ¯āĻžāĻ° āĻœāĻ¨ā§āĻ¯ WAVES-āĻ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ…āĻ°ā§āĻĨāĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨
  • withdraw(amount: Int)āĻ¯āĻž āĻŸā§‹āĻ•ā§‡āĻ¨ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ

dApp āĻœā§€āĻŦāĻ¨āĻšāĻ•ā§āĻ° āĻœā§āĻĄāĻŧā§‡, āĻ•āĻžāĻ āĻžāĻŽā§‹ (āĻ āĻŋāĻ•āĻžāĻ¨āĻž → āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ) āĻŦāĻœāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻž āĻšāĻŦā§‡:

āĻ•āĻ°ā§āĻŽ
āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ°āĻžāĻˇā§āĻŸā§āĻ°

āĻĒā§āĻ°āĻžāĻ°āĻŽā§āĻ­āĻŋāĻ•
āĻ–āĻžāĻ˛āĻŋ

āĻ…ā§āĻ¯āĻžāĻ˛āĻŋāĻ¸ 5 āĻ¤āĻ°āĻ™ā§āĻ— āĻœāĻŽāĻž āĻ•āĻ°ā§‡
āĻāĻ˛āĻŋāĻ¸-āĻ āĻŋāĻ•āĻžāĻ¨āĻž → 500000000

āĻŦāĻŦ 2 āĻ¤āĻ°āĻ™ā§āĻ— āĻœāĻŽāĻž āĻ•āĻ°ā§‡

āĻāĻ˛āĻŋāĻ¸-āĻ āĻŋāĻ•āĻžāĻ¨āĻž → 500000000
āĻŦāĻŦ-āĻ āĻŋāĻ•āĻžāĻ¨āĻž → 200000000

āĻŦāĻŦ ā§­āĻŸāĻŋ āĻ¤āĻ°āĻ™ā§āĻ— āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻšāĻžāĻ° āĻ•āĻ°ā§‡
āĻ…āĻ¸ā§āĻŦā§€āĻ•ā§ƒāĻ¤!

āĻāĻ˛āĻŋāĻ¸ ā§ĒāĻŸāĻŋ āĻ¤āĻ°āĻ™ā§āĻ— āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻšāĻžāĻ° āĻ•āĻ°ā§‡
āĻāĻ˛āĻŋāĻ¸-āĻ āĻŋāĻ•āĻžāĻ¨āĻž → 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 āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ¸āĻ‚āĻ•āĻ˛āĻ¨ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻ†āĻĒāĻ¨āĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻŸā§āĻ¯āĻžāĻŦā§‡ āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Waves RIDE dApp āĻ¤ā§ˆāĻ°āĻŋ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŦā§‡āĻ¨
āĻĢāĻžāĻ‡āĻ˛ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻŸā§‡āĻ•ā§āĻ¸āĻŸ āĻāĻĄāĻŋāĻŸāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¨, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨

surfboard compile ride/wallet.ride

āĻāĻŸāĻŋ āĻŦā§‡āĻ¸64 āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°āĻž RIDE āĻ•ā§‹āĻĄā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ°āĻŋāĻœ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ•āĻ°āĻŦā§‡āĨ¤

'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 āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ, āĻĄāĻŋāĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°āĻž āĻŦāĻžāĻ‡āĻ¨āĻžāĻ°āĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Waves RIDE dApp āĻ¤ā§ˆāĻ°āĻŋ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŦā§‡āĻ¨
āĻ¤āĻ°āĻ™ā§āĻ— āĻāĻ•ā§āĻ¸āĻĒā§āĻ˛ā§‹āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¯āĻž āĻ¸āĻŦā§‡āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ•āĻŋāĻ›ā§ āĻ¸āĻžāĻ°ā§āĻĢāĻŦā§‹āĻ°ā§āĻĄ āĻŸāĻŋāĻĒāĻ¸:

1. āĻŸā§‡āĻ¸ā§āĻŸāĻ¨ā§‡āĻŸ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ¤ā§‡, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨:

surfboard test --env=testnet

āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻŸā§‹āĻ•ā§‡āĻ¨ āĻĒāĻžāĻ¨

2. āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ā§‡āĻ° JSON āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖāĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻšāĻžāĻ¨ āĻāĻŦāĻ‚ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ¨ā§‹āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, -v āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻšāĻžāĻ˛āĻžāĻ¨ (āĻŽāĻžāĻ¨ā§‡ 'āĻ­āĻžāĻ°ā§āĻŦā§‹āĻ¸'):

surfboard test -v

āĻ“āĻ¯āĻŧā§‡āĻ­āĻ¸ āĻ•āĻŋāĻĒāĻžāĻ° āĻ¸āĻš āĻ…ā§āĻ¯āĻžāĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž

1. āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ“āĻ¯āĻŧā§‡āĻ­āĻ¸ āĻ•āĻŋāĻĒāĻžāĻ° āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°ā§āĻ¨: http://localhost:6869

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Waves RIDE dApp āĻ¤ā§ˆāĻ°āĻŋ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŦā§‡āĻ¨
āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻ¨ā§‹āĻĄā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ“āĻ¯āĻŧā§‡āĻ­āĻ¸ āĻ•āĻŋāĻĒāĻžāĻ° āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

2. āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻ¸āĻš āĻ—ā§‹āĻĒāĻ¨ āĻŦāĻžāĻ•ā§āĻ¯āĻžāĻ‚āĻļ āĻ†āĻŽāĻĻāĻžāĻ¨āĻŋ āĻ•āĻ°āĻŦā§‡āĻ¨? āĻ¸āĻ°āĻ˛āĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¨ā§‹āĻĄā§‡āĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻŦā§€āĻœ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨: waves private node seed with waves tokens. āĻ āĻŋāĻ•āĻžāĻ¨āĻž: 3M4qwDomRabJKLZxuXhwfqLApQkU592nWxF.

3. āĻ†āĻĒāĻ¨āĻŋ āĻāĻ¨āĻĒāĻŋāĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻšā§€āĻ¨ āĻāĻ•āĻ• āĻĒā§ƒāĻˇā§āĻ āĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ…āĻĨāĻŦāĻž āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻāĻ•āĻŸāĻŋāĻ¤ā§‡ āĻ¯āĻžāĻ¨: chrome-ext.wvservices.com/dapp-wallet.html

4. dApp āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻŸā§‡āĻ•ā§āĻ¸āĻŸ āĻŦāĻ•ā§āĻ¸ā§‡ āĻŸā§‡āĻ¸ā§āĻŸ āĻ°āĻžāĻ¨ (āĻ‰āĻĒāĻ°ā§‡ āĻ†āĻ¨ā§āĻĄāĻžāĻ°āĻ˛āĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž) āĻĨā§‡āĻ•ā§‡ āĻ“āĻ¯āĻŧāĻžāĻ˛ā§‡āĻŸ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ˛āĻŋāĻ–ā§āĻ¨

5. "āĻ†āĻŽāĻžāĻ¨āĻ¤" āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ˛āĻŋāĻ–ā§āĻ¨ āĻāĻŦāĻ‚ āĻŦā§‹āĻ¤āĻžāĻŽāĻŸāĻŋ āĻ•ā§āĻ˛āĻŋāĻ• āĻ•āĻ°ā§āĻ¨:

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Waves RIDE dApp āĻ¤ā§ˆāĻ°āĻŋ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŦā§‡āĻ¨
āĻ“āĻ¯āĻŧā§‡āĻ­āĻ¸ āĻ•āĻŋāĻĒāĻžāĻ° 10āĻŸāĻŋ āĻ“āĻ¯āĻŧā§‡āĻ­ā§‡āĻ° āĻ…āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻ‡āĻ¨āĻ­ā§‹āĻ•āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻŸā§āĻ°āĻžāĻ¨āĻœā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ° āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋāĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°ā§‡āĨ¤

6. āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨:

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Waves RIDE dApp āĻ¤ā§ˆāĻ°āĻŋ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŦā§‡āĻ¨
āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻ¸āĻŽā§āĻĒā§āĻ°āĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻ¤āĻžāĻ° āĻ†āĻ‡āĻĄāĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨

7. Waves Explorer āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ˛ā§‡āĻ¨āĻĻā§‡āĻ¨ āĻŽāĻ¨āĻŋāĻŸāĻ° āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ†āĻ‡āĻĄāĻŋ āĻ˛āĻŋāĻ–ā§āĻ¨

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Waves RIDE dApp āĻ¤ā§ˆāĻ°āĻŋ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŦā§‡āĻ¨

āĻ‰āĻĒāĻ¸āĻ‚āĻšāĻžāĻ° āĻāĻŦāĻ‚ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ¤āĻĨā§āĻ¯

āĻ†āĻŽāĻ°āĻž āĻ“āĻ¯āĻŧā§‡āĻ­āĻ¸ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ dApps āĻŦāĻŋāĻ•āĻžāĻļ, āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–ā§‡āĻ›āĻŋ:

  • RIDE āĻ­āĻžāĻˇāĻž
  • āĻ­āĻŋāĻāĻ¸ āĻ•ā§‹āĻĄ āĻāĻĄāĻŋāĻŸāĻ°
  • āĻ“āĻ¯āĻŧā§‡āĻ­āĻ¸ āĻāĻ•ā§āĻ¸āĻĒā§āĻ˛ā§‹āĻ°āĻžāĻ°
  • āĻ¸āĻžāĻ°ā§āĻĢāĻŦā§‹āĻ°ā§āĻĄ
  • āĻ¤āĻ°āĻ™ā§āĻ— āĻ°āĻ•ā§āĻˇāĻžāĻ•āĻžāĻ°ā§€

āĻ¯āĻžāĻ°āĻž RIDE āĻļā§‡āĻ–āĻž āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻšāĻžāĻ¨ āĻ¤āĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ˛āĻŋāĻ™ā§āĻ•:

āĻ†āĻ°ā§‹ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ
āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸āĻš āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ IDE
āĻ¤āĻ°āĻ™ā§āĻ— āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨
āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽā§‡ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€ āĻšā§āĻ¯āĻžāĻŸ
āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•āĻ“āĻ­āĻžāĻ°āĻĢā§āĻ˛ā§‹āĻ¤ā§‡ āĻ¤āĻ°āĻ™ā§āĻ— āĻāĻŦāĻ‚ āĻ°āĻžāĻ‡āĻĄ
āĻ¨āĻ¤ā§āĻ¨! Waves āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡ dApps āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻ…āĻ¨āĻ˛āĻžāĻ‡āĻ¨ āĻ•ā§‹āĻ°ā§āĻ¸

RIDE āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻĄā§āĻŦ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¨ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ dApp āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨!

TL; āĻĄāĻŋāĻ†āĻ°: bit.ly/2YCFnwY

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨