рдкрд┐рдЫрд▓реЗ рджреЛ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╣рдордиреЗ рд╕реНрдорд╛рд░реНрдЯ рдЦрд╛рддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЕрдм рд╣рдо рд╕реНрдорд╛рд░реНрдЯ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдФрд░ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрдИ рдорд╛рдорд▓реЛрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдлреНрд░реАрдЬ рдХрд░рдирд╛ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдкрд░ рд▓реЗрдирджреЗрди рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред
рд╡реЗрд╡реНрд╕ рд╕реНрдорд╛рд░реНрдЯ рдПрд╕реЗрдЯреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реНрдорд╛рд░реНрдЯ рдЦрд╛рддреЛрдВ рдХреЗ рд╕рдорд╛рди рдпрд╛рдВрддреНрд░рд┐рдХреА рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдУрд╡рд░рд▓реЗ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╕реНрдорд╛рд░реНрдЯ рдПрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдирдП рд▓реЗрдирджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдкрд╣рд▓реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рдПрдЧреА, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдмреНрд▓реЙрдХрдЪреЗрди рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рдПрдЧреАред
рд╕реНрдорд╛рд░реНрдЯ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрдорд╛рд░реНрдЯ рдЦрд╛рддреЛрдВ рдХреЗ рдмреАрдЪ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдВрддрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ:
- рд╕реНрдорд╛рд░реНрдЯ рдПрд╕реЗрдЯ рдХреЗ рдХреЛрдб рдореЗрдВ, рд╕рдмреВрддреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ (рд╣рдордиреЗ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА)ред
рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ ). - рд╕реНрдорд╛рд░реНрдЯ рдЕрдХрд╛рдЙрдВрдЯ рдХреЛрдб рдореЗрдВ, рдЖрдк рдПрдХреНрд╕рдЪреЗрдВрдЬ рдЯреНрд░рд╛рдВрдЬреИрдХреНрд╢рди рдХреА рдЬрд╛рдВрдЪ рддрднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдЖрдкрдХрд╛ рдЕрдХрд╛рдЙрдВрдЯ рдореИрдЪрд░ рдЕрдХрд╛рдЙрдВрдЯ рд╣реЛред рдЕрдиреНрдпрдерд╛, рдХреЗрд╡рд▓ рдСрд░реНрдбрд░ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рд╕реНрдорд╛рд░реНрдЯ рдПрд╕реЗрдЯ рдХреЛрдб рдореЗрдВ, рдЖрдк рд╕реАрдзреЗ рдСрд░реНрдбрд░ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЖрдк рдПрдХреНрд╕рдЪреЗрдВрдЬрдЯреНрд░рд╛рдВрдЬрд╝реЗрдХреНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЗрд╕рд╕реЗ рдСрд░реНрдбрд░ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
- рд╕реНрдорд╛рд░реНрдЯ рдЦрд╛рддреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдХреЛрдИ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдЦрд╛рддрд╛ рд╕реНрдерд┐рддрд┐ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИред
рд╕реНрдорд╛рд░реНрдЯ рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ рдЕрдиреБрдмрдВрдзреЛрдВ рдХреЗ рд▓реЗрдЦрди рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдХрдИ рдорд╛рдорд▓реЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдВрдкрддреНрддрд┐ рдлреНрд░реАрдЬ
рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмреНрд▓реЙрдХ рдКрдВрдЪрд╛рдИ рддрдХ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдлреНрд░реАрдЬ рдХрд░рдирд╛ рд▓рдХреНрд╖реНрдп рдКрдВрдЪрд╛рдИ, рдЖрдк рдмрд╕ рдЗрд╕ рдорд╛рди рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдорд╛рд░реНрдЯ рдПрд╕реЗрдЯ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
let targetHeight = 1500000
height >= targetHeight
height - ╤Д╤Г╨╜╨║╤Ж╨╕╤П ╤П╨╖╤Л╨║╨░, ╨▓╨╛╨╖╤А╨░╤Й╨░╤О╤Й╨░╤П ╤В╨╡╨║╤Г╤Й╤Г╤О ╨▓╤Л╤Б╨╛╤В╤Г.
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд┐рд▓рд╛рдирдХрд░реНрддрд╛ рд╕реНрдерд┐рддрд┐
рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд┐рд▓рд╛рдирдХрд░реНрддрд╛ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрд╕рдХрд╛ рдкрддрд╛ рд╕реНрдорд╛рд░реНрдЯ рдПрд╕реЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреНрд░реЗрд╖рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
match tx {
case t : ExchangeTransaction =>
t.sender == addressFromString("3PJaDyprvekvPXPuAtxrapacuDJopgJRaU3")
case _ => true
}
рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреА "рд╢реНрд╡реЗрдд рд╕реВрдЪреА"ред
рдЯреЛрдХрди рдХреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдЦрд╛рддреЛрдВ рдореЗрдВ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП - рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреА "рд╢реНрд╡реЗрдд рд╕реВрдЪреА" рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП - рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдХреАрдорд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ:
match tx {
case t : TransferTransaction =>
let trustedRecipient1 = addressFromString("3P6ms9EotRX8JwSrebeTXYVnzpsGCrKWLv4")
let trustedRecipient2 = addressFromString("3PLZcCJyYQnfWfzhKXRA4rteCQC9J1ewf5K")
let trustedRecipient3 = addressFromString("3PHrS6VNPRtUD8MHkfkmELavL8JnGtSq5sx")
t.recipient == trustedRecipient1 || t.recipient == trustedRecipient2 || t.recipient == trustedRecipient3
case _ => false
}
рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рдФрд░ рд╕рд┐рджреНрдз рднрд╛рд╖рд╛ рдХреА рдЕрдВрддрд┐рдорддрд╛ рдХреЗ рд▓рд┐рдП, рд╕реВрдЪреА рдореЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдареЛрд╕ рддрддреНрд╡реЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреА "рдХрд╛рд▓реА рд╕реВрдЪреА"ред
рдЗрд╕реА рддрд░рд╣, рдХреБрдЫ рдЦрд╛рддреЛрдВ рдореЗрдВ рдЯреЛрдХрди рднреЗрдЬрдиреЗ рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ "рдмреНрд▓реИрдХ рд▓рд┐рд╕реНрдЯ" рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рд╕реНрдорд╛рд░реНрдЯ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрддреЗ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд▓реА рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИ:
match tx {
case t : TransferTransaction =>
let bannedRecipient1 = addressFromString("3P6ms9EotRX8JwSrebeTXYVnzpsGCrKWLv4")
let bannedRecipient2 = addressFromString("3PLZcCJyYQnfWfzhKXRA4rteCQC9J1ewf5K")
let bannedRecipient3 = addressFromString("3PHrS6VNPRtUD8MHkfkmELavL8JnGtSq5sx")
t.recipient != bannedRecipient1 && t.recipient != bannedRecipient2 && t.recipient != bannedRecipient3
case _ => false
}
рдЬрд╛рд░реАрдХрд░реНрддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рд╕реЗ рднреЗрдЬрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
рд╕реНрдорд╛рд░реНрдЯ рдПрд╕реЗрдЯ рдХреЗ рд╕рд╛рде, рдЖрдк рдХреЗрд╡рд▓ рдЬрд╛рд░реАрдХрд░реНрддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рд╕реЗ рд╕реНрдорд╛рд░реНрдЯ рдПрд╕реЗрдЯ рднреЗрдЬрдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рднреА рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛/рдЛрдг рд▓реЗрдмрд▓). рдЬрд╛рд░реАрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдЦрд╛рддреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓реЗрдирджреЗрди рдЖрдИрдбреА рдбрд╛рд▓рдХрд░ рдЕрдкрдиреА рд╕рд╣рдорддрд┐ рд╡реНрдпрдХреНрдд рдХрд░рддрд╛ рд╣реИ:
match tx {
case t : TransferTransaction =>
let issuer = extract(addressFromString("3P6ms9EotRX8JwSrebeTXYVnzpsGCrKWLv4"))
#╤Г╨▒╨╡╨╢╨┤╨░╨╡╨╝╤Б╤П, ╤З╤В╨╛ ╨▓ ╤Б╤В╨╡╨╣╤В╨╡ ╤Н╨╝╨╕╤В╨╡╨╜╤В╨░ ╤Б╨╛╨┤╨╡╤А╨╢╨╕╤В╤Б╤П ID ╤В╨╡╨║╤Г╤Й╨╡╨╣ ╤В╤А╨░╨╜╨╖╨░╨║╤Ж╨╕╨╕
isDefined(getInteger(issuer, toBase58String(t.id)))
case _ => false
}
рдХреЗрд╡рд▓ рдХреБрдЫ рд╕рд┐рдХреНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд┐рдордп рдХрд░реЗрдВ
рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рд╕рдВрдкрддреНрддрд┐ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕рд┐рдХреНрдХреЛрдВ рдХреЗ рдмрджрд▓реЗ рд╡рд┐рдирд┐рдордп рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдмрд┐рдЯрдХреЙрдЗрди рдХреЗ рд╡рд┐рдирд┐рдордп рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
let BTCId = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
match tx {
case t : ExchangeTransaction =>
t.sellOrder.assetPair.priceAsset == BTCId ||
t.sellOrder.assetPair.amountAsset == BTCId
case _ => true
}
рдУрд░реЗрдХрд▓ рд╕реЗ рдХреАрдордд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реНрдпрд╛рдкрд╛рд░
рд╕реНрдорд╛рд░реНрдЯ рдПрд╕реЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЖрдк рдХреЗрд╡рд▓ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдСрд░реЗрдХрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдореВрд▓реНрдп рдкрд░ рд╡реНрдпрд╛рдкрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
let oracle = Address(base58'3PLNmokt22NrSiNvCLvwMUP84LCMJqbXwAD')
let assetId = toBase58String(base58'oWgJN6YGZFtZrV8BWQ1PGktZikgg7jzGmtm16Ktyvjd')
match tx {
#╨╖╨░╨┐╤А╨╡╤Й╨░╨╡╨╝ ╨┐╨╡╤А╨╡╨┤╨░╤З╤Г ╨░╤Б╤Б╨╡╤В╨░
case t: TransferTransaction | MassTransferTransaction => false
case e: ExchangeTransaction =>
#╤Г╨▒╨╡╨╢╨┤╨░╨╡╨╝╤Б╤П, ╤З╤В╨╛ ╤В╨╛╤А╨│╨╛╨▓╨╗╤П ╨┐╤А╨╛╨╕╤Б╤Е╨╛╨┤╨╕╤В ╨┐╨╛ ╤Ж╨╡╨╜╨╡, ╨╖╨░╨┤╨░╨╜╨╜╨╛╨╣ ╨▓ ╤Б╤В╨╡╨╣╤В╨╡ ╨╛╤А╨░╨║╨╗╨░ ╨┤╨╗╤П ╤Н╤В╨╛╨│╨╛ ╨░╤Б╤Б╨╡╤В╨░
let correctPrice = e.price == extract(getInteger(oracle, assetId))
#╤Г╨▒╨╡╨╢╨┤╨░╨╡╨╝╤Б╤П, ╤З╤В╨╛ ╤В╨╛╤А╨│╨╛╨▓╨╗╤П ╨┐╤А╨╛╨╕╤Б╤Е╨╛╨┤╨╕╤В ╨▓ ╨╛╨▒╨╝╨╡╨╜ ╨╜╨░ WAVES
let correctPriceAsset = !isDefined(e.sellOrder.assetPair.priceAsset)
correctPrice && correctPriceAsset
case _ => true
}
рдпрд╣рд╛рдВ рдЬрд┐рд╕ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рдкрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЙрд╕рдХреА рдЖрдИрдбреА рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╕рдордп рд╣рдореЗрдВ рдПрдХ рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рдмрд┐рдВрджреБ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рд╕рдВрдкрддреНрддрд┐ рдЖрдИрдбреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо WAVES рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЯреНрд░реЗрдбрд┐рдВрдЧ рдмрд┐рд▓реНрдХреБрд▓ рдЗрд╕реА рддрд░реАрдХреЗ рд╕реЗ WAVES рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХреА рдЬрд╛рдПред
рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рд╡реГрджреНрдзрд┐
рдЖрдк рдХрд┐рд╕реА рд╕реНрдорд╛рд░реНрдЯ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдиреБрдкрд╛рдд рдореЗрдВ рдЪрд░рдг рджрд░ рдЪрд░рдг рдмрдврд╝рддрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣рд╛рдВ рдПрдХ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ 5 рдмреНрд▓реЙрдХреЛрдВ рдкрд░ рдЗрд╕рдХреА рдХреАрдордд 1000% рдмрдврд╝рд╛рдПрдЧреА:
let startPrice = 10
let startHeight = 1000
let interval = 1000
#╨╜╨░ ╤Б╨║╨╛╨╗╤М╨║╨╛ ╨┐╤А╨╛╤Ж╨╡╨╜╤В╨╛╨▓ ╤Ж╨╡╨╜╨░ ╤Г╨▓╨╡╨╗╨╕╤З╨╕╨▓╨░╨╡╤В╤Б╤П ╨╖╨░ ╨╛╨┤╨╕╨╜ ╤И╨░╨│
let raise = 5
match tx {
case t: TransferTransaction | MassTransferTransaction => false
case e: ExchangeTransaction =>
e.price == startPrice + ((height - startHeight) / interval) * (100 + raise) / 100
&& !isDefined(e.sellOrder.assetPair.priceAsset)
case _ => true
}
рдЕрдВрддрд░рд╛рд▓ рд╡реНрдпрд╛рдкрд╛рд░
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕реНрдорд╛рд░реНрдЯ рдПрд╕реЗрдЯ рдЯреНрд░реЗрдбрд┐рдВрдЧ рдХреЛ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЕрдВрддрд░рд╛рд▓ рддрдХ рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
let startHeight = 10000
let interval = 44000
let limit = 1500
match tx {
case t: TransferTransaction | MassTransferTransaction | ExchangeTransaction =>
(height - startHeight) % interval < limit
case _ => true
}
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЯреНрд░реЗрдбрд┐рдВрдЧ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рдкреНрд░рд╛рд░рдВрдн рдКрдВрдЪрд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╕реАрдорд╛ рдЕрдВрддрд░рд╛рд▓. рдЕрдВрддрд░рд╛рд▓ рдХреА рд▓рдВрдмрд╛рдИ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмреНрд▓реЙрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдЕрдВрддрд░рд╛рд▓.
рд╕реНрд░реЛрдд: www.habr.com