αααααα·ααΈαααααααααα·ααααααΆααα ααΎ Waves blockchain αααααααΌαααΆαα’αα»ααααααΆααααααα½ααααααα½αα₯ααααααααα Waves Labs ααααααα»α Betex α
αααααΆααα·ααααααΆααΆαααααΆαααΆαα·αααααααααα! αααααα·ααΈαααααΊααΆαααααααΎαα αα ααΆαααααΎααααΆαα αα·αααΆαα ααα αΆαααααααΆααΊαα·ααα·αααααααα ααΆαααααΎααααΆαααααααα·ααΈαααα»αααΆαα’αα·αααααααααααα·ααΈ dApp α αΎαααΆααΌαα ααΎααααααααα·ααααααΆα ααααααααα’ααααααααααααααα’αααααααΎααααΆααα’ααΈαααΊαα·ααααααααΌαα
dApp αααααΆααααα αΆααααααΆαααααααα·ααΈααααααααααΊααΆααααΌαααααΆααααααααααααα½ααααα
αΌαααααααααααΆαααΆααααααααα»αααΆααααααα½αααα ααΌαα’αΆα
ααααΌαααΆαααααΎααΆααααΌαααααΆααααΆαα
αααα ααΆαααααΆααα α¬ααΆαααα»ααααααα·ααααααΆααααΆαα’αα»αααααα
αα
αααααα
αα αααα»ααααααααααααα»αααΆα αααααΊααΆααααααααααΆααΆααααααΆαααα’αα»ααααααΆαα α»ααααααααΆαα½αα’ααααααααΌα ααΆααααααΎααααααΆααα αααΎαααααα·ααααααΆααααΆααααααΌα αα·αααΆαααΎαααΉαα α·ααααααααΆααααΆαα α»αααααααααα»ααααααααα (ααΆα αααααΆαααααα‘αααααα·α)α αααααααααααααΊααΆ dApp "αα»ααα" αααααΊαααααα·ααΈαααααΆαααααΎα’αααααααααααααααΆααααΆαα½α blockchain ααααα·αα αΆαααΆα αααΆα backend ααααΆαααααα½α ααΌαααααΆααα·ααααααααα
αα αα ααααααααααΆαααααΎαααα’αΆα ααΆααααααααααααα»αααααααααααααααααΆα αααΎαα
- ααΆαα α ααααΈααααΆααααα αααα»ααααα»αααΆαα½αααΉαααΆαααααααΆαα (αα αααααααΆαα α ααΌαααααααα·αααΆααααααΆαααααΆαααα ααΎααααΈαααααααΌαααααααααΆααααΆαα α ααααα ααα»αααααα½αααααα α‘αΎααα ααΈααα ααΆααααααααααΆαα α ααΌαααααα) α
- PoW-captcha - ααΆαααΆαααΆααααααΆααααΉαααΆαα α αααααααααααααααα·αααααΆααααααααααααααα ααΆαααα»αααΆαααααΈααααΆααα - αααααααα ααΉα captcha ααα»ααααααΆααααααααα»ααΆαααααΆαααααΎααααΆααααααΆααα»αααααΌαααα
- αααα½ααααααΆαααααα·αααααααααααααΎααααΌα
αααααα·ααΈαα½αααΆαα
- αααααΌαααααΈααααΆαααααΆααΆααΆ ride4dapps (αααααΆαααΆαααααααα»α ααααΌαααΆαααΆαααααα αΌααα αααα»αααααΈααααΆαααα αααα ααααα»αααΆαααααααααααααΌαα’αα»αααα);
- js wrapper αααα’αα»ααααααααα·α abstraction ααΎ WAVES NODE REST API;
- code αα ααΎ vuejs framework αααααΆα§ααΆα αααααααΆαααααΎααααΆαααααααΆααα αα·αααΌα RIDE α
α αΌαβααΎαβαααααΆβα’αααΈβααααααβαα·αααβααΆααα’ααβαααβααΆαβααΆαβαααααΈα
α α ααααΈααααΆααααααααΆαααααα»αααΆαα½αααΉαααΆαααααααΆαα
ααΆαα α αα ααΆαα InvokeScript ααΆαααΆαααΆαααΌααΆααααααααααΆααΈααααΈαααα αΆααααααΎαααααα·ααααα·ααΆαα ααααα·ααααααΆαααα αΆαα ααααα·αααΎα’ααααααα»ααααααΎααααααααααααΆαα blockchain geeks αααααΆαα ααα½αααΆααααΆαααα WAVES tokens αα αααα»αααααΈαααααα½ααα ααα»ααααααααα·αααΎααα·ααααααααΆααααααααααααΎααααΆαααααααΆααΆααααααΌαα ααΆααΉαααααΆαααΆαααα αΆαααααααααα αααΆαααΆαα·α α’αααααααΎααααΆααααααΌαααααα α·ααααα»αααΆααααΎααΆααα·α WAVES tokens (α¬αααααααααααααα·αααααααααααααααααα’αΆα ααααΎααΎααααΈααΌααΆαααααααΆααααααα·ααααα·ααΆα) ααααααααΎααααΆαααααααΉααααααΆαααααα»αααΆαα αΌααα αααα»αααααααα ααΎαα’αΆα α ααα αΆαααααααααααααα½ααααα’αααααααΎααααΆαααααααΉαα’αΆα αααααααΆαααααααΆααααααα·ααααα·ααΆα αα·αααααααα»αααΉαα αΆαα·αααααααΆαααααΎααααΆαααα»ααααααα½ααα αα ααααααααααααααααααααααααααα·ααααΌαααΆααααααΎαα‘αΎα ααΎααααΈααΌααααααααααααααααΆαα ααααΈααααααααααααααΎαα
ααΆααΉαααΆαααΆαααΆααααα½αααααα·αααΎα’αΆα α α αα InvokeScript "αααα αααΆαααααα’αααααα½α" (ααααΈααααΆααααααααααααΈαααααΌαααΆαααα‘αΎα) α αΎαααααααΆααααααααααααΈααΆαα·αααΆααα αααα»ααα·ααΈααΆααααααααααααα
ααααα·αααΎαα ααΆααααα»α InvokeScript α’αααααααΎ ScriptTransfer αα ααΆααα’αΆααααααΆαααααα’αααα α α αΌα αααααΌααΆααααααααααααΆαααααΆαα αααΆα αααααΆαα α ααΌαααααααααααααΉαααα½αααΆααααααα αααααΈααΆαα αααα α ααΌαααααααααα·αααΆααααααααααααααα·αα ααΎααααΈα α ααΌααααααααααα αααα’αΆα αα αα½α αααααΆαααααΆααααα½ααα·αα·ααααααααΆαααααααΆαααααΆαααααααααααΆααααααΌαααΆαααααΎα‘αΎααααααΆααααΈααααα·ααααα·ααΆαααααΌαααΆαα α ααΆααΆααα»ααααααΆ ααΌα ααααααααα·ααααα·ααΆαα’αΆα ααααΌαααΆαααααΎα‘αΎααα ααΎα₯αααΆα αααααααΌααααα·αααααΆααα
ScriptTransfer(i.caller, i.fee, unit)
αααααΌαααΆααααααααααααα αααΆααα·ααααααααΎααΌααα·αα·ααααΈααααΆαααα ααΎααααΈααΆαααΆααααααΆααααΉαααΆαααααΎααααΆαααα»αααΆαααααα»α α αΆαααΆα αααααΌαααααΎααΌααααααΆαααααααααα’αααα α α αΌαα αααΆαααααααααΆαααα»αααααααααααααααααααΌαααΆα αα·ααααα»αααααααααααα ααα»ααα
func checkFee(i:Invocation) = {
if i.fee > maxFee then throw(βunreasonable large feeβ) else
if i.feeAssetId != unit then throw(βfee must be in WAVESβ) else true
}
ααΌα ααααΆαααααααα ααΎααααΈααΆαααΆααααααΆααααΉαααΆαααααααααΆαααΌααα·αα·αααααΆααααα·αα’αΆααααα αα·αααααΆαααα ααΆαααΆαααΆαααΆαα α αααααααααααααααα· (PoW-captcha) ααααΌαααΆαααΆαααΆαα
PoW-captcha
αααα·αααααααα»ααΆαααααΆαααΆα captcha αα·ααααααΆααΏαααααΈαα α αΎαααααΌαααΆαααα’αα»αααααα½α α αΎααα αααα»ααααααααααααα αα½αααΆααααΆαα’αα»ααααααααΎααΌαααααΆααα WAVES αααααα αααα·ααααααΊααΆ ααΎααααΈα’αα»αααααααααααΆααααααααΎααααΆααααααΆαααααααααααααααααΎα α’αααα α ααΌαααααααααααΌαα αααΆαααααΆαααααΆαααααα½αααααα αααααααΎα±ααααΆαααΆααααα αΆααααααΆαααΆαααααααααΆαααΆααααααααααααΆααα αααααΆαααα»ααααΆαααααΆααααα½α αα·ααααααααΆααααα’αααααααΎααααα·ααααα·ααΆαααΆααααααααΆααααα αΆ PoW ααΆαααΆααα·αα·αααααααααααΆααααααα·ααααα·ααΆαα
ααααα·αααΎ take(toBase58String(i.transactionId), 3) != "123" αααααΆααααααα("ααααα»ααΆαααααΆαααΆαααΆααααΆααα") αααααααα
ααΎααααΈα’αα»ααααααααα·ααααα·ααΆα α’αααα α α αΌαααααΌαααααααΎαααΎααααΆαααΆαααααααααααα ααΌα αααααααααΌα base58 (id) ααααααΆα αΆααααααΎααααααα 123 αααααααΌαααΉαααΆαααααααΈαααΈααααα·ααΆααΈαααααααααΆααααΎαααΆα α αΎαααΆααΌαα ααα ααα»αααααααΆαααα·α αα ααΆαααααααΎαα ααααα·αααΎ PoW ααΆααααααΆα α¬αααα»αααααααΆαα αααΎαααααΌαααΆαααΆαααΆα αααααΆααα·α αα α’αΆα ααααΌαααΆααααααααααΆαααΆααααα½αααΆααα·ααΈααΆαααααααα
αααα½ααααααΆαααααα·αααααααααααααΎααααΌ
ααΎααααΈααααΎ blockchain ααΆααΌαααααΆααα·αααααα ααΆααΆαααΆααααααΆααααΆαααααα»αααΆαααΆαα§ααααα API αααααΆααααΆαααΆααα½αααΌαααααΆααα·ααααααααΆ key-val αααααα’ααααΎααααΌα αααα ααα§αααααααααααααΆααααα αΆααααα½ααα ααΎαααααααααΆ ααααΆα 2019 αααα»αααααααααΆαααΆαααΆαααααα ?ααΆαααααα½α ααΆαααααΎ REST API /addresses/data?match=regexp. α₯α‘αΌαααα ααααα·αααΎααΎαααααΌαααΆαααααΌαααα αααΎαααΆααα½αααΈαααααα·ααΈααα ααααα α αΎααα·αααααααααααααΆααα’αααααα»αααααααα½αααααα ααα»ααααααΆααααααα»ααα½αα ααα½αααα»ααααα αααααΎαα’αΆα ααααΎααΆαααααΎαααΎαααΆαααααααααααΉαα α§ααΆα ααα αα αααα»αααααααααα ααααα·ααααα·ααΆαααααααΆααααααΌαααΆαα’αα·αααΌαααΆ
withdraw_${userAddress}_${txid}
αααα’αα»ααααΆαα±ααα’αααααα½αααΆααααααΈααααα·ααααα·ααΆααααααΆααααΆαααααααΆαααααααΆααα’αΆααααααΆααααααΆααααααα±ααααΆαα½ααααααααΎααααΌα
?matches=withdraw_${userAddress}_.*
α₯α‘αΌααααααΌααααα‘ααααΎααααΆαααΆαα»αααααααααααΆααααααΆααααα ααα
ααΌα Vuejs
ααΌαααΊααΆααΆααααα αΆααααααααΎααΆααα αα·ααααααααα·αα ααΆα’αα»ααααααΆαα αΌαααΆαααα Waves Keeper αα·αααααΎααΆαααΆαα½ααααααΆααα affiliate.js αααααΆα α»ααααααα’αααααααΎααααΆαααα αααα»ααααααααα ααΆααα½ααα·ααααααααααα·ααααα·ααΆα αα·αα’αα»ααααΆαα±ααα’αααααααααΆαααααααααΆααα ααααΈααααα’αααααααΎααααΆαααααααα
ααΌααααααΆαα RIDE
ααΆααα»αααΆαα α»αααααα ααΌααα·αα· αα·αααααααΆααα
αα»αααΆαα α»ααααααα α»ααααααα’αααααααΎααααΆαααα ααΎααααααααα ααΆααΆααααΆαααΆααααααααΈαα referer (α’αΆααααααΆαααα) αα·ααααΆαααΆααααααα’ααα·αααααα·αααααΌαααΆαααααΎαα αααα»αααΌααα»αααΆααααααααΌαααΆαααΎααααΈααααΎαααΎαααααααααΆααααααα·ααααα·ααΆα (ααΆααα·α αα PoW-captcha) α
αα»αααΆα (ααΌα ααΆαα»αααΆαααααααααααΈααααααααα) ααααΎαα αα αααααα α αααα»α αααααααααα»αααΆαααΊαααααα α·αααααααααΆααααααΆαααΌααΆααααααααααΆαααααΆααααΆαα α αα»αααΆααααα ααΌαα’ααα»αα αααααααααααααΆαααα α’αααααααΎααααΆαααααααΎααααααααΎαααΆααΌαα’αΆα ααααΎααΆαααααΆααααΆαα½ααααααααα α αΎααα·αα αΆαααΆα ααααα½αααΆααααα’αααΈααΆααα·α α¬ααα½αααΆααααααααααααααα·αααα’αα»ααααΆαα±ααααΆαααααααααααααα·ααααα·ααΆαα
αααααααααα»αααΆαα α»ααααααααΊαααααααααΆααΈαα
${owner)_referer = referer
${referer}_referral_${owner} = owner
αααα’αα»ααααΆαα±ααααΆαααΆαααααααααα αα»α αα·ααααα αααΆα (α’ααααααααΌαα’αααααααΎααααΆαααααααΆααααααα±αα αα·αααΆααααααΌαααΆααα’ααααααα’αααααααΎααααΆαααααααΆααααααα±αα)α
αα»αααΆαααΌααα·αα·ααΊααΆααααΌαααααΆααααΆαα’αα·αααααα»αααΆαααΆαααααααα αα αααα»ααααααααααα αΆαααααααΆ ααΆααααα·ααΆααΆααα’αααααααΆαααααααααααααα·ααααα·ααΆα α αΎαα ααα αΆαααΆαα ααααΈααααα’ααααααααΌαααααα·α 1, 2, 3 αα ααααΈ "ααααααΆαα" αα·αααααΈ "ααααΆααααααΌα" (α’αααΈααααααααΆαααααα αααααααα αααα ααα αΆααα αα»α ααααΈαα ααΈααα) α
Cashback ααΊααΆαααααααΆαααααΆαααΎαααΉαα α·αααα’αααααααΎααααΆααα α»ααααααα±ααα αΌααα½ααααα»ααααααααααααααΌαα α’αααααααΎααααΆααα’αΆα ααααααααααααααααΎαααΆαααααααααααααααααααααα»αααααααααΆ βααΆα αααααΆαααα·αβ ααΆαααααααΌα ααααΆααΉααααααΆαααααααΆααααΆααααααΌαααααα
αα αααααααΎαααααααααααααΌα αα»αααΆαααΌααα·αα·αα½αααααααΌαααΆααααααα αα·ααααα αΌααα αααα»ααααααα·ααααΆα ααααααααααΈααααΆααααααααααααααααΉαααααΎαααΆαα α§ααΆα ααα ααααα·αααΎαααααΆαααααα’ααααααΌαααΆαααααααααΆααααΆαααααΆαααααααααΎα‘αΎα ααααα»αααΆαααΌααα·αα·αα½αααααααΌαααΆααααααΎαα‘αΎαααΆααααααα·ααααΆαααααΆαααααΆααααααΌαααΆαααΆαα (α¬αααααααΆαααααα ααααααααααααΌαααΆαα’αα»ααααααααααααΆααααααΌαααΆαααα)α αααααΆαααααααΈααααα·αααααΌαααΆααααααααΌααα αααα»ααα»αααΆααααα ααααα·αααΎα’αααααααΌαααΆααααααΎαααααα·αα αααΎα α¬αα·α ααΆαααα αααααααααΌαααΆααααα αααα»αααΌααααααα ααΆααααααααΆααααααΌαααΆαααααααααααααα·α 1 ααααα·α 3 αα αααα»αααΌααααααΆααααΌαααΆαααααΆ α ααα½α * ααααα·α / 1000αααααΊααααα 1 ααααΌαααααΆααΉα 0,1% (αααααα’αΆα ααααΆααααααΌαααΆααα αααα»ααααααΌα)α
ααΆαα α αα»αααΆαααααΆααααααΌααααα»αααααααΈ α αΎααααααααΎαααΆαα»αααααΆααααααααααααααααΆαααααααααααα
fund_address_txid = address:owner:inc:level:timestamp
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ timestamp (ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ Π²ΠΎΡ ΡΠ²ΡΠ·ΠΊΠ°
func getTimestamp() = {
let block = extract(blockInfoByHeight(height))
toString(block.timestamp)
}
αααααΊαααααααΆααααα·ααααα·ααΆαααΊααΆαααααααΆαααααα»ααααααΆαααα·ααα
α ααααα½αα±αααα»αα
α·αααααΆαααΆαααααΎααααΆαααααααΆααΈααααα·ααααα·ααΆαααααααα½αα―α ααΆαα·ααααααααΆαααΆαα·αααΆαααΈα§ααααααααα’αΆα
α α
ααΆαα
αα»αααΆαααααααΆαααααα αΆααααααΆααααααααααΌαααΆαααΆααα’αααα
ααΆααααααΈααααα’αααααααΎααααΆααα αααααΎαααΆαα»αααααΆααααααααααααααααΆα
# withdraw log: withdraw_user_txid=amount:timestamp
αααααα·ααΈ
αααααααααΆαααααααααα·ααΈααΊαααααΆααα affiliate.js αααααΆααααΆααααΆαααααΌαα·αααααααααααΆααααααα αα·α WAVES NODE REST API α α’αα»ααααααααα·αα’ααΌααΈαααα―αααΆααααααααααααα (αα½αααΆααα’αΆα ααααΎααΆα)α αα»αααΆαααααα (α α»αααααα αα) ααααααααΆ Waves Keeper ααααΌαααΆαααα‘αΎααα ααΎαααααααα αααααΆααααααα½αααΆαα·ααα·αα·αααααΏααααααα
αα·ααΈααΆαααααα’αα»ααααα
fetchReferralTransactions
fetchWithdrawTransactions
fetchMyBalance
fetchReferrals
fetchReferer
withdraw
register
αα»αααΆααααα·ααΈααΆαααααααΊααΆαααααααααΈααααα αααΆαααΆαααααα αα·ααα·αααααααααααΆααααα‘αααααα·αααααΌαααΆααα·αααααΆαα αααα»αααΌαα αα»αααΆαα α»αααααααααααΌαα±ααααΆαααα·αααααα - ααΆα αΆααααααΎαααααααααΆαααααΎαααΎαααααααααΆααααααα·ααααα·ααΆαααΌα ααααααΆα αΆααααααΎααα 123 - αααααΊααΆ PoW-captcha αααααΆααα·αααααΆααΆαααΎαααααΆαααΆααααααΆααααΉαααΆαα α»ααααααααααα αα»αααΆααααααααααααα·ααααα·ααΆαααΆαα½αααααααααΆαααααααααΌαααΆα α αΎααααααΆααααα α»αα αααααααΆααΆααΆαααα Waves Keeper α
αααααα·ααΈαααααααα DEX ααΆααα
ααααα: www.habr.com