Kuyimitsa katundu mpaka kutalika kwa chipika targetHeight, mutha kungoyika mtengo uwu mu script ya zinthu zotsatirazi zanzeru:
let targetHeight = 1500000
height >= targetHeight
height - функция языка, возращающая текущую высоту.
Matcher Specific Condition
Kuti muyike chofananira ngati chomwe mukufuna, mutha kuyika adilesi yake ngati wotumiza mu script yanzeru yomwe imawoneka motere:
match tx {
case t : ExchangeTransaction =>
t.sender == addressFromString("3PJaDyprvekvPXPuAtxrapacuDJopgJRaU3")
case _ => true
}
"Mndandanda woyera" wa olandira
Kulola ma tokeni kuti atumizidwe kumaakaunti ena okha - kupanga "mndandanda woyera" wa olandila - mutha kugwiritsa ntchito chuma chanzeru chokhala ndi dongosolo lotsatirali lomwe limayang'ana kuti likuphatikizidwa pamndandanda:
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
}
Pazifukwa zachitetezo komanso kukwanira kwachilankhulocho, mndandandawu ulibe kugwiritsa ntchito mawu obwerezabwereza. Chifukwa chake limatanthauzidwa ngati gulu la zinthu za konkriti.
"Mndandanda wakuda" wa olandira
Mofananamo, kuletsa kutumiza zizindikiro ku akaunti zina, mukhoza kupanga "mndandanda wakuda". Pamenepa, katundu wanzeru womwewo umagwiritsidwa ntchito, koma ndi adilesi yoyang'aniridwa kuti zitsimikizire kuti palibe pamndandanda wakuda:
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
}
Kutumiza ndi chilolezo cha wopereka
Pogwiritsa ntchito chuma chanzeru, mutha kukhazikitsanso mwayi wotumiza katundu wanzeru pokhapokha ndi chilolezo cha woperekayo (chikalata chodzipereka/ngongole). Woperekayo akuwonetsa kuvomereza kwake poyika ID yamalonda muakaunti yake:
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
}
Kugulitsa ndi mtengo kuchokera ku oracle
Mu script ya smart asset, mutha kukhazikitsa chilolezo chogulitsa pamtengo wokhazikika m'malo odalirika a oracle. Nachi chitsanzo cha script yotere:
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
}
Apa tikuyang'anizana ndi mfundo yosadziwika poyang'ana ID ya katundu omwe malonda amachitira. Mfundo ndi yakuti ngati ID yachuma sichikufotokozedwa, ndiye kuti tikukamba za WAVES. Mu script, timaonetsetsa kuti malonda akuchitika motsatira WAVES, chimodzimodzi.
Kuwonjezeka kwamtengo wokhazikika
Mutha kukhazikitsa mtengo wokhazikika wazinthu zanzeru, zomwe zidzachuluke pang'onopang'ono mugawo loperekedwa. Nachi chitsanzo cha script ya katundu yomwe mtengo wake udzakwera ndi 5% midadada iliyonse ya 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
}
Malonda apakati
Komanso, chifukwa cha script, kugulitsa katundu wanzeru kumatha kutsatiridwa ndi nthawi zodziwikiratu. Nachi chitsanzo cha script yotere:
let startHeight = 10000
let interval = 44000
let limit = 1500
match tx {
case t: TransferTransaction | MassTransferTransaction | ExchangeTransaction =>
(height - startHeight) % interval < limit
case _ => true
}
Mu script timaonetsetsa kuti kuyambira pachiyambi cha malonda StartHeight osaposa malire nthawi. Kutalika kwa nthawiyi ndi kofanana ndi chiwerengero cha midadada yomwe yatchulidwa m'munda mpata.