
рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдордиреЗ рд▓рд╣рд░реЛрдВ рдХреА рд╕рд╡рд╛рд░реА рдЖрдИрдбреАрдИ рдореЗрдВ рдбреАрдПрдкреА (рд╡рд┐рдХреЗрдВрджреНрд░реАрдХреГрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ) рдмрдирд╛рдиреЗ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреА рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдХреАред
рдЖрдЗрдП рдЕрдм рдереЛрдбрд╝рд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдВ ред
рд╕реНрдЯреЗрдЬ 3. рдкрд░реАрдХреНрд╖рдг рдбреАрдПрдкреА рдЦрд╛рддрд╛

рдРрд▓рд┐рд╕ рдбреАрдПрдкреА рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рддреБрд░рдВрдд рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ?
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ:
Boob рдФрд░ рдХреВрдкрд░ рдЧрд▓рддреА рд╕реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╣рд╕реНрддрд╛рдВрддрд░рдг рд▓реЗрдирджреЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреАрдПрдкреА рдХреЛ рдзрди рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред
рджреВрд╕рд░реА рдмрд╛рдд рдпрд╣ рд╣реИ:
рд╣рдо Boob рдФрд░ / рдпрд╛ рдХреВрдкрд░ рдХреА рд╕рд╣рдорддрд┐ рдХреЗ рдмрд┐рдирд╛ рдРрд▓рд┐рд╕ рдХреЛ рдзрди рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐, рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдРрд▓рд┐рд╕ рд╕реЗ рд╕рднреА рд▓реЗрдирджреЗрди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
рддреАрд╕рд░рд╛:
рдХреЛрдИ рднреА рдРрд▓рд┐рд╕ рдЦрд╛рддреЗ рд╕реЗ рд▓реЗрди-рджреЗрди рдореЗрдВ рдЕрдкрдиреЗ publicKey рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдХреЛрдИ рднреА рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
const unsignedTransferTx = transfer({ amount: 1, recipient: '3P6fVra21KmTfWHBdib45iYV6aFduh4WwC2',
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡реЗрд╡реНрд╕ рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯреНрд╕ рдЕрднреА рддрдХ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЦрд╛рддреЗ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд▓реЗрдирджреЗрди рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдмреВрдм рдФрд░ рдХреВрдкрд░ рдХреЛ рдЕрдкрдиреЗ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рд▓реЗрдирджреЗрди рдХреЛ рд╕реНрд╡рдпрдВ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЖрдЗрдП SetScriptTransaction рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдРрд▓рд┐рд╕ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдХреЗ 2nd рдФрд░ 3rd рдХреЛ рдареАрдХ рдХрд░реЗрдВ , рдЗрд╕рдХреЗ PublicKey рдХреЛ @Verifier рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдмрд╛рдХреА рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ ред рдпрд╣реА рд╣реИ, рд╣рдо рдХреЗрд╡рд▓ рдРрд▓рд┐рд╕ рдХреЛ рдПрдХ рдбреАрдПрдкреА рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреЛ рдЕрдкрдбреЗрдЯ / рд╕рд╣реА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗред
рд╣рд╛рдВ, рдРрд▓рд┐рд╕ рд╣рдореЗрд╢рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдзрд┐рдХ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВ рдФрд░ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ" рдХреЗ рдлрдВрдб рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХреЗрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд╣ рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдмрдВрдз рдореЗрдВ рдЕрдирдзрд┐рдХреГрдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдХреНрд╖рдг рджреЗрдЦреЗрдВрдЧреЗ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рдЗрдирд╡реЛрдХрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рд▓реЗрдирджреЗрди рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдРрд▓рд┐рд╕ рджреНрд╡рд╛рд░рд╛ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд╕рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ:
@Verifier(tx) func verify() = { match tx { case d: SetScriptTransaction => sigVerify(tx.bodyBytes, tx.proofs[0], base58'x51ySWMyhE8G2AqJqmDpe3qoQM2aBwmieiJzZLK33JW') case _ => true }
рд╣рдо рдбреАрдПрдкреА рдПрд▓рд┐рд╕ рдФрд░ рдЗрд╕рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд╛рд▓реЗ рд╕рд┐рдХреНрдХреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдореЗрдВ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

рд╣рдо рд╡рд╛рдкрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рдкрд╕ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:
broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"withdraw",args:[{type:"integer", value: 1000000}]}, payment: []}))
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде рд╣рдо рд╕рдордЭ рдЧрдП рд╣реИрдВ!
рдЪрд░рдг 4. рд╣рдо рдорддрджрд╛рди рдХреЗ рд╕рд╛рде рдбреАрдПрдУ рдмрдирд╛рддреЗ рд╣реИрдВ
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, RIDE рднрд╛рд╖рд╛ рдиреЗ рдЕрднреА рддрдХ рд╕рдВрдЧреНрд░рд╣ (рд╢рдмреНрджрдХреЛрд╢реЛрдВ, рд╢рдмреНрджрдХреЛрд╢, рдкреБрдирд░рд╛рд╡реГрддреНрдд, рдкреБрдирд░реНрд╡рд┐рдХрд╛рд╕, рдЖрджрд┐) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдлреНрд▓реИрдЯ рдХреА-рд╡реИрд▓реНрдпреВ рдХрд▓реЗрдХреНрд╢рди рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреНрд░рдорд╢рдГ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреАрдЬрд╝ рдФрд░ рдЙрдирдХреЗ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд╕реБрдЧрдо рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬрдЯрд┐рд▓ рдбреАрдПрдУ рдбреАрдПрдкреА рддрд░реНрдХ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ!
рдбреЗрдЯрд╛ рд▓реЗрдирджреЗрдирдбреЗрдЯрд╛ рд▓реЗрдирджреЗрди:
тАЬрдПрдХ рдХреБрдВрдЬреА рдХрд╛ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ 100 рд╡рд░реНрдг рд╣реИ, рдФрд░ рдПрдХ рдХреБрдВрдЬреА рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ рдЕрдиреНрдп рдЧреИрд░-рдореБрджреНрд░рдг рдпреЛрдЧреНрдп рдкреНрд░рддреАрдХреЛрдВ рд╕рд╣рд┐рдд рдпреВрдирд┐рдХреЛрдб рдХреЛрдб рдмрд┐рдВрджреБ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рдиреЛрдВ рдХреА рд╕реАрдорд╛ 32,768 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рд▓реЗрдирджреЗрди рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ 100 рд╣реИред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдбреЗрдЯрд╛ рд▓реЗрдирджреЗрди рдХрд╛ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ рд▓рдЧрднрдЧ 140kb рд╣реИ - рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рд▓рдЧрднрдЧ рд╢реЗрдХреНрд╕рдкрд┐рдпрд░ рдХреЗ рдирд╛рдЯрдХ 'рд░реЛрдорд┐рдпреЛ рдФрд░ рдЬреВрд▓рд┐рдпрдЯ' рдХреА рд▓рдВрдмрд╛рдИред "
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдбреАрдПрдУ рдмрдирд╛рдПрдВ:
рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЛ рд╡рд┐рддреНрддрдкреЛрд╖рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, getFunds () рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо 2 рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ - рдбреАрдПрдУ рдирд┐рд╡реЗрд╢рдХреЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдбреАрдПрдУ рдХреЗ рдорд╛рд▓рд┐рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдИ рдЧрдИ рдХреБрд▓ рд░рд╛рд╢рд┐ рдХреЛ рдареАрдХ рд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
рдЖрдЗрдП 3 рдкреНрд░рдХрд╛рд░ рдХреА рдЪрд╛рдмрд┐рдпрд╛рдВ рдмрдирд╛рдПрдВ рдФрд░ 2 рдирдП рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╢реЗрд╖ рд░рд╛рд╢рд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
xx ... xx _ia = рдирд┐рд╡реЗрд╢рдХ, рдЙрдкрд▓рдмреНрдз рд╢реЗрд╖ (рд╡реЛрдЯ, рдЬрдорд╛, рдирд┐рдХрд╛рд╕реА)
xx ... xx _sv = startups, рд╡реЛрдЯреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рд╡реЛрдЯ, getFunds)
xx ... xx _sf = startups, рд╡реЛрдЯреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рд╡реЛрдЯ, getFunds)
xx ... xx = рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрддрд╛ (35 рд╡рд░реНрдг)
рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдИ рдлрд╝реАрд▓реНрдб рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╡реЛрдЯ рдиреЛрдЯ рдХрд░реЗрдВ:
WriteSet([DataEntry(key1, value1), DataEntry(key2, value2)]),
WriteSet рд╣рдореЗрдВ рдПрдХ рдЗрдирд╡реЛрдХрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЗрдирджреЗрди рдХреЗ рднреАрддрд░ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдХрдИ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдмреЙрдм рдФрд░ рдХреВрдкрд░ рджреНрд╡рд╛рд░рд╛ ia- рдЬрдорд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдбреАрдПрдУ рдбреАрдПрдкреА рдХреА-рд╡реИрд▓реНрдпреВ рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рдЬрдорд╛ рдлрд╝рдВрдХреНрд╢рди рдереЛрдбрд╝рд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ:

рдЕрдм DAO рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖рдг рдЖрддрд╛ рд╣реИ - рд╡рд┐рддреНрддрдкреЛрд╖рдг рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорддрджрд╛рди ред
Neli рдХреА 500,000 рд╡реЗрд╡рд▓реЗрдЯреНрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдмреЙрдм рд╡реЛрдЯ:
broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"vote",args:[{type:"integer", value: 500000}, {type:"string", value: "3MrXEKJr9nDLNyVZ1d12Mq4jjeUYwxNjMsH"}]}, payment: []}))
рд╡реЛрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб:
@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 flagKey = address + "_" + currentKey let flag = match getInteger(this, flagKey) { case a:Int => a case _ => 0 } 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 if (flag > 0) then throw("Only one vote per project is possible!") else WriteSet([ DataEntry(xxxInvestorBalance, currentAmount - amount), DataEntry(xxxStartupVotes, currentVotes + 1), DataEntry(flagKey, 1), DataEntry(xxxStartupFund, currentFund + amount) ]) }
рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдореЗрдВ, рд╣рдо рдиреЗрд▓реА рдкрддреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рджреЗрдЦрддреЗ рд╣реИрдВ:

рдХреВрдкрд░ рдиреЗ рдиреЗрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рднреА рдорддрджрд╛рди рдХрд┐рдпрд╛ред

рдЪрд▓реЛ getFunds рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдиреЗрд▓реА рдХреЛ рдбреАрдПрдУ рд╕реЗ рдзрди рдирд┐рдХрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо 2 рд╡реЛрдЯ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдиреЗрд▓реА рдЙрд╕реЗ рд╕реМрдВрдкреА рдЧрдИ рд░рд╛рд╢рд┐ рдореЗрдВ рд╕реЗ рдЖрдзреА рд░рд╛рд╢рд┐ рд╡рд╛рдкрд╕ рд▓реЗрдиреЗ рдЬрд╛ рд░рд╣реА рд╣реИ:
broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"getFunds",args:[{type:"integer", value: 500000}]}, payment: []}))

рд╡рд╣ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рдпрд╛рдиреА DAO рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
рд╣рдордиреЗ RIDE4DAPPS рдХреА рднрд╛рд╖рд╛ рдореЗрдВ DAO рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреАред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧреЛрдВ рдореЗрдВ, рд╣рдо рдХреЛрдб рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдФрд░ рдХреЗрд╕ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред
рд▓рд╣рд░ рд▓рд╣рд░ рдЖрдИрдбреАрдИ рдореЗрдВ рдХреЛрдб рдХрд╛ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг :
# 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:
рдкрд╣рд▓рд╛ рднрд╛рдЧ
рдЧрд┐рдердм рдХреЛрдб
рд▓рд╣рд░реЗрдВ рдЖрдИрдбреАрдИ
рдЕрдиреБрджрд╛рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдШреЛрд╖рдгрд╛