match tx {
case t : TransferTransaction =>
let issuer = extract(addressFromString("3P6ms9EotRX8JwSrebeTXYVnzpsGCrKWLv4"))
#убеждаемся, что в стейте эмитента содержится ID текущей транзакции
isDefined(getInteger(issuer, toBase58String(t.id)))
case _ => false
}
Chinjana nemamwe makoini chete
A smart asset inobvumira mvumo yekuichinjanisa chete neimwe mari. Semuenzaniso, kubvumira kuchinjana chete kwebitcoins, unogona kushandisa kodhi inotevera:
let BTCId = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
match tx {
case t : ExchangeTransaction =>
t.sellOrder.assetPair.priceAsset == BTCId ||
t.sellOrder.assetPair.amountAsset == BTCId
case _ => true
}
Kutengeserana nemutengo kubva kunzvimbo yeshoko
Mune smart asset script, iwe unogona kuseta mvumo yekutengesa chete nemutengo wakatarwa mumamiriro eiyo yakavimbika oracle. Heino muenzaniso weiyo script:
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
}
Pano takatarisana nechinhu chisiri pachena kana tichitarisa ID yeasset iri kutengeswa. Icho chokwadi ndechekuti kana iyo asset ID isina kutsanangurwa, saka tiri kutaura nezve WAVES. Mune script, isu tinoita shuwa kuti kutengesa kunoitwa tandem neWAVES, nenzira iyi.