
рдорд╛рдЧреАрд▓ рджреЛрди рд▓реЗрдЦрд╛рдВрдордзреНрдпреЗ, рдЖрдореНрд╣реА рд╕реНрдорд╛рд░реНрдЯ рдЦрд╛рддреА рдЖрдгрд┐ рддреЗ рдХрд╕реЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓рд▓реЛ. рдЖрдгрд┐ рдорджрдд рджреЗрдЦреАрд▓ .
рдЖрддрд╛ рдЖрдореНрд╣реА рд╕реНрдорд╛рд░реНрдЯ рдорд╛рд▓рдорддреНрддрд╛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдЕрдиреЗрдХ рд╡рд╛рдкрд░ рдкреНрд░рдХрд░рдгреЗ рдкрд╛рд╣реВ, рдЬреНрдпрд╛рдд рдорд╛рд▓рдорддреНрддрд╛ рдЧреЛрдард╡рдгреЗ рдЖрдгрд┐ рджрд┐рд▓реЗрд▓реНрдпрд╛ рдкрддреНрддреНрдпрд╛рдВрд╡рд░ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрд╡рд░ рдирд┐рд░реНрдмрдВрдз рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.
рд╡реЗрд╡реНрд╣рд╕реН рд╕реНрдорд╛рд░реНрдЯ рдЕреЕрд╕реЗрдЯреНрд╕ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рд╕реНрдорд╛рд░реНрдЯ рдЕрдХрд╛рдЙрдВрдЯреНрд╕ рдкреНрд░рдорд╛рдгреЗрдЪ рдореЗрдХреЕрдирд┐рдХреНрд╕рдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░реВрди рдорд╛рд▓рдорддреНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд. рд╕реНрдорд╛рд░реНрдЯ рдорд╛рд▓рдорддреНрддрд╛ рд╡рд╛рдкрд░реВрди рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдирд╡реАрди рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдЪреА рдкреНрд░рдердо рд╕реНрдХреНрд░рд┐рдкреНрдЯрджреНрд╡рд╛рд░реЗ рдкреБрд╖реНрдЯреА рдХреЗрд▓реА рдЬрд╛рдИрд▓, рдЖрдгрд┐ рддреНрдпрд╛рдирдВрддрд░рдЪ рдмреНрд▓реЙрдХрдЪреЗрдирджреНрд╡рд╛рд░реЗ.
рд╕реНрдорд╛рд░реНрдЯ рдорд╛рд▓рдорддреНрддрд╛ рдЖрдгрд┐ рд╕реНрдорд╛рд░реНрдЯ рдЦрд╛рддреНрдпрд╛рдВрдордзреАрд▓ рдЦрд╛рд▓реАрд▓ рдлрд░рдХ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ:
- рд╕реНрдорд╛рд░реНрдЯ рдорд╛рд▓рдорддреНрддреЗрдЪреНрдпрд╛ рдХреЛрдбрдордзреНрдпреЗ, рдкреБрд░рд╛рд╡реЗ рддрдкрд╛рд╕рдгреЗ рдЕрд╢рдХреНрдп рдЖрд╣реЗ (рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдЪреНрдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓рд▓реЛ. ).
- рд╕реНрдорд╛рд░реНрдЯ рдЦрд╛рддреЗ рдХреЛрдбрдордзреНрдпреЗ, рддреБрдордЪреЗ рдЦрд╛рддреЗ рдЬреБрд│рдгрд╛рд░реЗ рдЦрд╛рддреЗ рдЕрд╕реЗрд▓ рддрд░рдЪ рддреБрдореНрд╣реА рдПрдХреНрд╕рдЪреЗрдВрдЬ рдЯреНрд░рд╛рдиреНрдЭреЕрдХреНрд╢рди рддрдкрд╛рд╕реВ рд╢рдХрддрд╛. рдЕрдиреНрдпрдерд╛, рдлрдХреНрдд рдСрд░реНрдбрд░ рддрдкрд╛рд╕рд▓реА рдЬрд╛рддреЗ. рд╕реНрдорд╛рд░реНрдЯ рдЕреЕрд╕реЗрдЯ рдХреЛрдбрдордзреНрдпреЗ рддреБрдореНрд╣реА рдСрд░реНрдбрд░ рдереЗрдЯ рддрдкрд╛рд╕реВ рд╢рдХрдд рдирд╛рд╣реА, рддреБрдореНрд╣реА рдПрдХреНрд╕рдЪреЗрдВрдЬ рдЯреНрд░рд╛рдиреНрдЭреЕрдХреНрд╢рди рддрдкрд╛рд╕реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕ рддреНрдпрд╛рдордзреВрди рдСрд░реНрдбрд░ рдХрд╛рдвреВ рд╢рдХрддрд╛.
- рд╕реНрдорд╛рд░реНрдЯ рдЦрд╛рддреНрдпрд╛рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, рд╕реНрдорд╛рд░реНрдЯ рдорд╛рд▓рдорддреНрддреЗрд▓рд╛ рд░рд╛рдЬреНрдп рдирд╕рддреЗ, рдкрд░рдВрддреБ рддрд░реАрд╣реА рдЖрдореНрд╣рд╛рд▓рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреВрди рдЦрд╛рддреЗ рд░рд╛рдЬреНрдпрд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдЕрд╕рддреЛ.
рд╕реНрдорд╛рд░реНрдЯ рдорд╛рд▓рдорддреНрддрд╛ рдХрд░рд╛рд░рд╛рдВрдЪреЗ рд▓реЗрдЦрди рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╕реБрд▓рдн рдХрд░рддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ рдЕрдиреЗрдХ рдкреНрд░рдХрд░рдгрд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЖрдгрд┐ рдореЛрд╣рдХ рдмрдирддреЗ.
рдорд╛рд▓рдорддреНрддрд╛ рдЧреЛрдард╡рдгреЗ
рдард░рд╛рд╡рд┐рдХ рдмреНрд▓реЙрдХ рдЙрдВрдЪреАрдкрд░реНрдпрдВрдд рдорд╛рд▓рдорддреНрддрд╛ рдЧреЛрдард╡рдгреНрдпрд╛рд╕рд╛рдареА рд▓рдХреНрд╖реНрдп рдЙрдВрдЪреА, рддреБрдореНрд╣реА рд╣реЗ рдореВрд▓реНрдп рдлрдХреНрдд рдЦрд╛рд▓реАрд▓ рд╕реНрдорд╛рд░реНрдЯ рдорд╛рд▓рдорддреНрддреЗрдЪреНрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ рд╕реЗрдЯ рдХрд░реВ рд╢рдХрддрд╛:
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
