แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— Waves แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ RIDE-แƒ–แƒ” แƒ“แƒ RIDE4DAPPS-แƒ–แƒ”. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2 (DAO - แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ)

แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— Waves แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ RIDE-แƒ–แƒ” แƒ“แƒ RIDE4DAPPS-แƒ–แƒ”. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2 (DAO - แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ)

แƒ’แƒแƒฃแƒ›แƒแƒ แƒฏแƒแƒก แƒงแƒ•แƒ”แƒšแƒแƒก!

ะ’ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒ“แƒ แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒแƒ— dApp-แƒจแƒ˜ (แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ). Waves RIDE IDE.

แƒแƒฎแƒšแƒ แƒชแƒแƒขแƒ แƒ’แƒแƒ•แƒกแƒ˜แƒœแƒฏแƒแƒ— แƒ“แƒแƒจแƒšแƒ˜แƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“.

แƒ”แƒขแƒแƒžแƒ˜ 3. dApp แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ

แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— Waves แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ RIDE-แƒ–แƒ” แƒ“แƒ RIDE4DAPPS-แƒ–แƒ”. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2 (DAO - แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ)

แƒ แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ’แƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒแƒšแƒ˜แƒกแƒแƒกแƒ—แƒแƒœ? แƒ“แƒแƒž แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜?
แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜:
Boob-แƒ›แƒ แƒ“แƒ Cooper-แƒ›แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒแƒœ แƒ—แƒแƒœแƒฎแƒ”แƒ‘แƒ˜ dApp-แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ” แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ แƒ˜แƒชแƒฎแƒ•แƒ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ•แƒ”แƒ  แƒจแƒ”แƒซแƒšแƒ”แƒ‘แƒ— แƒ›แƒแƒ—แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒแƒก.

แƒ›แƒ”แƒแƒ แƒ”:
แƒฉแƒ•แƒ”แƒœ แƒแƒ แƒแƒœแƒแƒ˜แƒ แƒแƒ“ แƒแƒ  แƒ•แƒ–แƒฆแƒฃแƒ“แƒแƒ•แƒ— แƒแƒšแƒ˜แƒกแƒแƒก แƒ—แƒแƒœแƒฎแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒขแƒแƒœแƒแƒก แƒ‘แƒฃแƒ‘แƒ˜แƒก แƒ“แƒ/แƒแƒœ แƒ™แƒฃแƒžแƒ”แƒ แƒ˜แƒก แƒ—แƒแƒœแƒฎแƒ›แƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ, แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ แƒ›แƒ˜แƒแƒฅแƒชแƒ˜แƒ”แƒ— แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒแƒก, แƒแƒšแƒ˜แƒกแƒ˜แƒ“แƒแƒœ แƒงแƒ•แƒ”แƒšแƒ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ.

แƒ’แƒแƒ›แƒแƒ•แƒแƒกแƒฌแƒแƒ แƒแƒ— แƒ›แƒ”-2 แƒแƒšแƒ˜แƒกแƒ˜แƒก แƒแƒ™แƒ แƒซแƒแƒšแƒ•แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ แƒ˜แƒชแƒฎแƒ•แƒ แƒ’แƒแƒ แƒ˜แƒ’แƒ”แƒ‘แƒ”แƒ‘แƒ˜. แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒœแƒ•แƒแƒ—แƒแƒ•แƒกแƒแƒ— แƒจแƒ”แƒกแƒฌแƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜:
แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— Waves แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ RIDE-แƒ–แƒ” แƒ“แƒ RIDE4DAPPS-แƒ–แƒ”. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2 (DAO - แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ)
๏ฟผ
แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒ›แƒแƒœแƒ”แƒขแƒ”แƒ‘แƒ˜ dApp Alice-แƒ“แƒแƒœ แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒ“แƒแƒœ. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก:
แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— Waves แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ RIDE-แƒ–แƒ” แƒ“แƒ RIDE4DAPPS-แƒ–แƒ”. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2 (DAO - แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ)

แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒแƒ— แƒ’แƒแƒงแƒ•แƒแƒœแƒ แƒ’แƒแƒงแƒ•แƒแƒœแƒ˜แƒก แƒ’แƒ–แƒ˜แƒ—:

broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"withdraw",args:[{type:"integer", value: 1000000}]}, payment: []}))

แƒกแƒชแƒ”แƒœแƒแƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ˜แƒ”แƒ— แƒ›แƒ”-2 แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜!

แƒ”แƒขแƒแƒžแƒ˜ 4. แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— DAO แƒฎแƒ›แƒ˜แƒก แƒ›แƒ˜แƒชแƒ”แƒ›แƒ˜แƒ—

แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, RIDE แƒ”แƒœแƒ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ  แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ™แƒแƒšแƒ”แƒฅแƒชแƒ˜แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒก (แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒ”แƒ‘แƒ˜, แƒ˜แƒขแƒ”แƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜, แƒ แƒ”แƒ“แƒฃแƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ.แƒจ.). แƒ—แƒฃแƒ›แƒชแƒ, แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ‘แƒ แƒขแƒงแƒ”แƒšแƒ˜ แƒ™แƒแƒšแƒ”แƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒ— แƒกแƒแƒ™แƒ•แƒแƒœแƒซแƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒ—.

แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ”แƒ แƒ—แƒ”แƒ‘แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜แƒ; แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒแƒก แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜แƒ—.
แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒแƒ’แƒ แƒแƒ•แƒแƒ— แƒ“แƒ แƒ’แƒแƒ•แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒ— แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ“แƒ แƒจแƒ”แƒ•แƒแƒ›แƒแƒฌแƒ›แƒแƒ—, แƒ แƒแƒ’แƒแƒ  แƒ˜แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒก แƒ”แƒก แƒ’แƒแƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ–แƒ”.
แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ—แƒแƒœแƒฎแƒ›แƒ“แƒ˜แƒ— แƒ˜แƒ› แƒคแƒแƒฅแƒขแƒ–แƒ”, แƒ แƒแƒ› แƒแƒšแƒ˜แƒกแƒแƒ› แƒ•แƒ”แƒ  แƒ›แƒแƒแƒฌแƒ”แƒ แƒ แƒฎแƒ”แƒšแƒ˜ แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒก แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒแƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ”แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ“แƒแƒ‘แƒšแƒแƒ™แƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ @verifier-แƒจแƒ˜ แƒแƒ› แƒขแƒ˜แƒžแƒ˜แƒก แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ›แƒแƒ“แƒ˜แƒ— แƒ•แƒ˜แƒ•แƒแƒ แƒฏแƒ˜แƒจแƒแƒ— แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒแƒ•แƒแƒ’แƒ•แƒแƒ แƒแƒ— แƒ”แƒก.

RIDE แƒกแƒ˜แƒ›แƒ”แƒ‘แƒ˜

แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ แƒ˜แƒกแƒ”แƒ• แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒชแƒ˜แƒ— แƒ แƒแƒ’แƒแƒ  แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒแƒ— แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ—แƒแƒœ.
แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— Waves แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ RIDE-แƒ–แƒ” แƒ“แƒ RIDE4DAPPS-แƒ–แƒ”. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2 (DAO - แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ)

๏ฟผ
แƒกแƒแƒ”แƒ แƒ—แƒ แƒฏแƒแƒ›แƒจแƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ แƒ—แƒฃแƒšแƒ˜ แƒšแƒแƒ’แƒ˜แƒ™แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“ DAO dApp.

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜:
โ€žแƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ–แƒแƒ›แƒ แƒแƒ แƒ˜แƒก 100 แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒ แƒ“แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒ“แƒ”แƒก แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ  แƒฃแƒœแƒ˜แƒ™แƒแƒ“แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ”แƒ‘แƒก, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒ”แƒ‘แƒก โ€‹โ€‹แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒ“แƒแƒฃแƒ‘แƒ”แƒญแƒ“แƒแƒ• แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒแƒ”แƒ‘แƒก. แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒก แƒแƒฅแƒ•แƒ— 32,768 แƒ‘แƒแƒ˜แƒขแƒ˜แƒก แƒšแƒ˜แƒ›แƒ˜แƒขแƒ˜ แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒแƒจแƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒ 100. แƒกแƒแƒ”แƒ แƒ—แƒ แƒฏแƒแƒ›แƒจแƒ˜, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ–แƒแƒ›แƒแƒ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 140 แƒ™แƒ‘ - แƒชแƒœแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒจแƒ”แƒฅแƒกแƒžแƒ˜แƒ แƒ˜แƒก แƒžแƒ˜แƒ”แƒกแƒ˜แƒก "แƒ แƒแƒ›แƒ”แƒ แƒ“แƒ แƒฏแƒฃแƒšแƒ˜แƒ”แƒขแƒ" แƒกแƒ˜แƒ’แƒ แƒซแƒ”. ''.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— DAO-แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒ—:
แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒกแƒขแƒแƒ แƒขแƒแƒžแƒ›แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒก แƒ“แƒแƒคแƒ˜แƒœแƒแƒœแƒกแƒ”แƒ‘แƒ แƒ“แƒแƒ แƒ”แƒ™แƒ•แƒ˜แƒ— getFunds () แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ› 2 แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒก - DAO แƒ˜แƒœแƒ•แƒ”แƒกแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ. แƒ’แƒแƒงแƒ•แƒแƒœแƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒ›แƒ“แƒ”แƒœแƒ˜, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒช แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฎแƒ›แƒ˜แƒก แƒ›แƒ˜แƒชแƒ”แƒ›แƒ DAO-แƒก แƒ›แƒคแƒšแƒแƒ‘แƒ”แƒšแƒ”แƒ‘แƒ˜.

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— 3 แƒขแƒ˜แƒžแƒ˜แƒก แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒšแƒแƒ’แƒ˜แƒ™แƒ แƒœแƒแƒจแƒ—แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก 2 แƒแƒฎแƒแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜ แƒฎแƒ›แƒ˜แƒก แƒ›แƒ˜แƒชแƒ”แƒ›แƒ แƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ—Funds:
xxโ€ฆxx_แƒ˜แƒ = แƒ˜แƒœแƒ•แƒ”แƒกแƒขแƒแƒ แƒ”แƒ‘แƒ˜, แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ‘แƒแƒšแƒแƒœแƒกแƒ˜ (แƒฎแƒ›แƒ˜แƒก แƒ›แƒ˜แƒชแƒ”แƒ›แƒ, แƒ“แƒ”แƒžแƒแƒ–แƒ˜แƒขแƒ˜, แƒ’แƒแƒขแƒแƒœแƒ)
xxโ€ฆxx_แƒกแƒ• = แƒกแƒขแƒแƒ แƒขแƒแƒžแƒ”แƒ‘แƒ˜, แƒฎแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ (แƒฎแƒ›แƒ˜แƒก แƒ›แƒ˜แƒชแƒ”แƒ›แƒ, แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— แƒกแƒแƒฎแƒกแƒ แƒ”แƒ‘แƒ˜)
xxโ€ฆxx_แƒกแƒค = แƒกแƒขแƒแƒ แƒขแƒแƒžแƒ”แƒ‘แƒ˜, แƒฎแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ (แƒฎแƒ›แƒ˜แƒก แƒ›แƒ˜แƒชแƒ”แƒ›แƒ, แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— แƒกแƒแƒฎแƒกแƒ แƒ”แƒ‘แƒ˜)
xxโ€ฆxx = แƒกแƒแƒฏแƒแƒ แƒ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ (35 แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒ)

แƒ’แƒ—แƒฎแƒแƒ•แƒ—, แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ—, แƒ แƒแƒ› Vote-แƒจแƒ˜ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ•แƒ”แƒšแƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ:

WriteSet([DataEntry(key1, value1), DataEntry(key2, value2)]),

WriteSet แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒ•แƒแƒซแƒšแƒ”แƒ•แƒก แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒจแƒ˜ invokeScript แƒ’แƒแƒ แƒ˜แƒ’แƒ”แƒ‘แƒ”แƒ‘แƒ˜.

แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ DAO dApp-แƒ˜แƒก แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒจแƒ˜, แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒ‘แƒแƒ‘ แƒ“แƒ แƒ™แƒฃแƒžแƒ”แƒ แƒ˜ แƒจแƒ”แƒแƒ•แƒกแƒ”แƒก ia- แƒ“แƒ”แƒžแƒแƒ–แƒ˜แƒขแƒ”แƒ‘แƒ˜:
แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— Waves แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ RIDE-แƒ–แƒ” แƒ“แƒ RIDE4DAPPS-แƒ–แƒ”. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2 (DAO - แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ)

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒœแƒแƒ‘แƒ แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒแƒ“แƒœแƒแƒ• แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ:
แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— Waves แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ RIDE-แƒ–แƒ” แƒ“แƒ RIDE4DAPPS-แƒ–แƒ”. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2 (DAO - แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ)

แƒแƒฎแƒšแƒ แƒ›แƒแƒ“แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ›แƒแƒ›แƒ”แƒœแƒขแƒ˜ DAO-แƒก แƒกแƒแƒฅแƒ›แƒ˜แƒแƒœแƒแƒ‘แƒแƒจแƒ˜ - แƒฎแƒ›แƒ˜แƒก แƒ›แƒ˜แƒชแƒ”แƒ›แƒ แƒ“แƒแƒกแƒแƒคแƒ˜แƒœแƒแƒœแƒกแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ‘แƒแƒ‘ แƒฎแƒ›แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒœแƒ”แƒšแƒ˜แƒก 500000 แƒขแƒแƒšแƒฆแƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒก:

broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"vote",args:[{type:"integer", value: 500000}, {type:"string", value: "3MrXEKJr9nDLNyVZ1d12Mq4jjeUYwxNjMsH"}]}, payment: []}))

แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— Waves แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ RIDE-แƒ–แƒ” แƒ“แƒ RIDE4DAPPS-แƒ–แƒ”. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2 (DAO - แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ)

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒก แƒœแƒ”แƒšแƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:
แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— Waves แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ RIDE-แƒ–แƒ” แƒ“แƒ RIDE4DAPPS-แƒ–แƒ”. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2 (DAO - แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ)
แƒ™แƒฃแƒžแƒ”แƒ แƒ›แƒ แƒแƒกแƒ”แƒ•แƒ” แƒฎแƒ›แƒ แƒ›แƒ˜แƒกแƒชแƒ แƒœแƒ”แƒšแƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒก.
แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— Waves แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ RIDE-แƒ–แƒ” แƒ“แƒ RIDE4DAPPS-แƒ–แƒ”. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2 (DAO - แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ)

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒ“แƒก แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— แƒคแƒแƒœแƒ“แƒ”แƒ‘แƒ˜. แƒœแƒ”แƒšแƒ˜แƒ› แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒ’แƒ แƒแƒ•แƒแƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ› 2 แƒฎแƒ›แƒ, แƒ แƒแƒ› แƒจแƒ”แƒซแƒšแƒแƒก แƒ—แƒแƒœแƒฎแƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ DAO-แƒ“แƒแƒœ.
แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— Waves แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ RIDE-แƒ–แƒ” แƒ“แƒ RIDE4DAPPS-แƒ–แƒ”. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2 (DAO - แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ)

แƒœแƒ”แƒšแƒ˜ แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒก แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ˜แƒœแƒ“แƒแƒ‘แƒ˜แƒšแƒ˜ แƒ—แƒแƒœแƒฎแƒ˜แƒก แƒœแƒแƒฎแƒ”แƒ•แƒ แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒแƒก:

broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"getFunds",args:[{type:"integer", value: 500000}]}, payment: []}))

แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— Waves แƒญแƒ™แƒ•แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ RIDE-แƒ–แƒ” แƒ“แƒ RIDE4DAPPS-แƒ–แƒ”. แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2 (DAO - แƒ“แƒ”แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ•แƒขแƒแƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ)

แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒแƒก แƒ›แƒ˜แƒแƒฆแƒฌแƒ”แƒ•แƒก, แƒแƒœแƒฃ DAO แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก!

แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒ”แƒ— แƒ”แƒœแƒแƒ–แƒ” DAO-แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒก RIDE4DAPPS.
แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒ แƒ”แƒคแƒแƒฅแƒขแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒ“แƒ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒแƒก.

แƒ™แƒแƒ“แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ Waves RIDE IDE:

# In this example multiple accounts can deposit their funds to DAO and safely take them back, no one can interfere with this.
# DAO participants can also vote for particular addresses and let them withdraw invested funds then quorum has reached.
# An inner state is maintained as mapping `address=>waves`.
# https://medium.com/waves-lab/waves-announces-funding-for-ride-for-dapps-developers-f724095fdbe1

# You can try this contract by following commands in the IDE (ide.wavesplatform.com)
# Run commands as listed below
# From account #0:
#      deploy()
# From account #1: deposit funds
#      broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"deposit",args:[]}, payment: [{amount: 100000000, asset:null }]}))
# From account #2: deposit funds
#      broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"deposit",args:[]}, payment: [{amount: 100000000, asset:null }]}))
# From account #1: vote for startup
#      broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"vote",args:[{type:"integer", value: 500000}, {type:"string", value: "3MrXEKJr9nDLNyVZ1d12Mq4jjeUYwxNjMsH"}]}, payment: []}))
# From account #2: vote for startup
#      broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"vote",args:[{type:"integer", value: 500000}, {type:"string", value: "3MrXEKJr9nDLNyVZ1d12Mq4jjeUYwxNjMsH"}]}, payment: []}))
# From account #3: get invested funds
#      broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"getFunds",args:[{type:"integer", value: 500000}]}, payment: []}))

{-# STDLIB_VERSION 3 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ACCOUNT #-}

@Callable(i)
func deposit() = {
   let pmt = extract(i.payment)
   if (isDefined(pmt.assetId)) then throw("can hodl waves only at the moment")
   else {
        let currentKey = toBase58String(i.caller.bytes)
        let xxxInvestorBalance = currentKey + "_" + "ib"
        let currentAmount = match getInteger(this, xxxInvestorBalance) {
            case a:Int => a
            case _ => 0
        }
        let newAmount = currentAmount + pmt.amount
        WriteSet([DataEntry(xxxInvestorBalance, newAmount)])
   }
}
@Callable(i)
func withdraw(amount: Int) = {
        let currentKey = toBase58String(i.caller.bytes)
        let xxxInvestorBalance = currentKey + "_" + "ib"
        let currentAmount = match getInteger(this, xxxInvestorBalance) {
            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(xxxInvestorBalance, newAmount)]),
                    TransferSet([ScriptTransfer(i.caller, amount, unit)])
                )
    }
@Callable(i)
func getFunds(amount: Int) = {
        let quorum = 2
        let currentKey = toBase58String(i.caller.bytes)
        let xxxStartupFund = currentKey + "_" + "sf"
        let xxxStartupVotes = currentKey + "_" + "sv"
        let currentAmount = match getInteger(this, xxxStartupFund) {
            case a:Int => a
            case _ => 0
        }
        let totalVotes = match getInteger(this, xxxStartupVotes) {
            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 if (totalVotes < quorum)
            then throw("Not enough votes. At least 2 votes required!")
    else ScriptResult(
                    WriteSet([
                        DataEntry(xxxStartupFund, newAmount)
                        ]),
                    TransferSet([ScriptTransfer(i.caller, amount, unit)])
                )
    }
@Callable(i)
func vote(amount: Int, address: String) = {
        let currentKey = toBase58String(i.caller.bytes)
        let xxxInvestorBalance = currentKey + "_" + "ib"
        let xxxStartupFund = address + "_" + "sf"
        let xxxStartupVotes = address + "_" + "sv"
        let currentAmount = match getInteger(this, xxxInvestorBalance) {
            case a:Int => a
            case _ => 0
        }
        let currentVotes = match getInteger(this, xxxStartupVotes) {
            case a:Int => a
            case _ => 0
        }
        let currentFund = match getInteger(this, xxxStartupFund) {
            case a:Int => a
            case _ => 0
        }
    if (amount <= 0)
            then throw("Can't withdraw negative amount")
    else if (amount > currentAmount)
            then throw("Not enough balance")
    else ScriptResult(
                    WriteSet([
                        DataEntry(xxxInvestorBalance, currentAmount - amount),
                        DataEntry(xxxStartupVotes, currentVotes + 1),
                        DataEntry(xxxStartupFund, currentFund + amount)
                        ]),
                    TransferSet([ScriptTransfer(i.caller, amount, unit)])
            )
    }
@Verifier(tx)
func verify() = {
    match tx {
        case t: TransferTransaction =>false
        case _ => true
    }
}

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜
แƒ™แƒแƒ“แƒ˜ GitHub-แƒ–แƒ”
Waves RIDE IDE
แƒกแƒแƒ’แƒ แƒแƒœแƒขแƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ