เจตเฉ‡เจตเจœเจผ เจธเจฎเจพเจฐเจŸ เจธเฉฐเจชเจคเฉ€เจ†เจ‚: เจ•เจพเจฒเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจšเจฟเฉฑเจŸเฉ€เจ†เจ‚ เจธเฉ‚เจšเฉ€เจ†เจ‚, เจ…เฉฐเจคเจฐเจพเจฒ เจตเจชเจพเจฐ

เจตเฉ‡เจตเจœเจผ เจธเจฎเจพเจฐเจŸ เจธเฉฐเจชเจคเฉ€เจ†เจ‚: เจ•เจพเจฒเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจšเจฟเฉฑเจŸเฉ€เจ†เจ‚ เจธเฉ‚เจšเฉ€เจ†เจ‚, เจ…เฉฐเจคเจฐเจพเจฒ เจตเจชเจพเจฐ

เจชเจฟเจ›เจฒเฉ‡ เจฆเฉ‹ เจฒเฉ‡เจ–เจพเจ‚ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจธเจฎเจพเจฐเจŸ เจ–เจพเจคเจฟเจ†เจ‚ เจฌเจพเจฐเฉ‡ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เฉ€เจคเฉ€ เจธเฉ€ เจจเจฟเจฒเจพเจฎเฉ€ เจ•เจฐเจตเจพเจ‰เจฃ เจ…เจคเฉ‡ เจตเจซเจพเจฆเจพเจฐเฉ€ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆเจ…เจคเฉ‡ เจฎเจฆเจฆ เจตเฉ€ เจตเจฟเฉฑเจคเฉ€ เจธเจพเจงเจจเจพเจ‚ เจฆเฉ€ เจชเจพเจฐเจฆเจฐเจธเจผเจคเจพ เจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃเจพ.

เจนเฉเจฃ เจ…เจธเฉ€เจ‚ เจธเจฎเจพเจฐเจŸ เจธเฉฐเจชเจคเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ‡ เจ•เจˆ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡, เจœเจฟเจธ เจตเจฟเฉฑเจš เจธเฉฐเจชเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจซเฉเจฐเฉ€เจœเจผ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ–เจพเจธ เจชเจคเจฟเจ†เจ‚ 'เจคเฉ‡ เจฒเฉˆเจฃ-เจฆเฉ‡เจฃ 'เจคเฉ‡ เจชเจพเจฌเฉฐเจฆเฉ€เจ†เจ‚ เจธเจผเจพเจฎเจฒ เจนเจจเฅค

เจตเฉ‡เจตเจœเจผ เจธเจฎเจพเจฐเจŸ เจเจธเฉ‡เจŸเจธ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจพเจฐเจŸ เจ…เจ•เจพเจ‰เจ‚เจŸเจธ เจฆเฉ‡ เจธเจฎเจพเจจ เจฎเจ•เฉˆเจจเจฟเจ•เจธ เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจธเฉฐเจชเจคเฉ€เจ†เจ‚ 'เจคเฉ‡ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ“เจตเจฐเจฒเฉ‡ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจเฅค เจ‡เฉฑเจ• เจธเจฎเจพเจฐเจŸ เจธเฉฐเจชเฉฑเจคเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเจฃเจพเจ เจ—เจ เจนเจฐเฉ‡เจ• เจจเจตเฉ‡เจ‚ เจฒเฉˆเจฃ-เจฆเฉ‡เจฃ เจฆเฉ€ เจชเฉเจธเจผเจŸเฉ€ เจชเจนเจฟเจฒเจพเจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€, เจ…เจคเฉ‡ เจ•เฉ‡เจตเจฒ เจคเจฆ เจนเฉ€ เจฌเจฒเจพเจ•เจšเฉˆเจจ เจฆเฉเจ†เจฐเจพเฅค

เจ‡เจน เจธเจฎเจพเจฐเจŸ เจธเฉฐเจชเจคเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจธเจฎเจพเจฐเจŸ เจ–เจพเจคเจฟเจ†เจ‚ เจตเจฟเจšเจ•เจพเจฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ…เฉฐเจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฃ เจฏเฉ‹เจ— เจนเฉˆ:

  1. เจ‡เฉฑเจ• เจธเจฎเจพเจฐเจŸ เจธเฉฐเจชเจคเฉ€ เจฆเฉ‡ เจ•เฉ‹เจก เจตเจฟเฉฑเจš, เจธเจฌเฉ‚เจคเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ เจ…เจธเฉฐเจญเจต เจนเฉˆ (เจ…เจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เฉ€เจคเฉ€ เจนเฉˆ เจชเจนเจฟเจฒเฉ‡ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš).
  2. เจธเจฎเจพเจฐเจŸ เจ…เจ•เจพเจ‰เจ‚เจŸ เจ•เฉ‹เจก เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจเจ•เจธเจšเฉ‡เจ‚เจœ เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจ เจฆเฉ€ เจœเจพเจ‚เจš เจคเจพเจ‚ เจนเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเจพ เจ–เจพเจคเจพ เจ‡เฉฑเจ• เจฎเฉˆเจšเจฐ เจ–เจพเจคเจพ เจนเฉˆเฅค เจจเจนเฉ€เจ‚ เจคเจพเจ‚, เจธเจฟเจฐเจซ เจ†เจฐเจกเจฐ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ. เจธเจฎเจพเจฐเจŸ เจธเฉฐเจชเฉฑเจคเฉ€ เจ•เฉ‹เจก เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจ†เจฐเจกเจฐ เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจจเจนเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹; เจคเฉเจธเฉ€เจ‚ เจเจ•เจธเจšเฉ‡เจ‚เจœ เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ…เจคเฉ‡, เจœเฉ‡ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡, เจคเจพเจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจ†เจฐเจกเจฐ เจ•เฉฑเจข เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค
  3. เจ‡เฉฑเจ• เจธเจฎเจพเจฐเจŸ เจ…เจ•เจพเจ‰เจ‚เจŸ เจฆเฉ‡ เจ‰เจฒเจŸ, เจ‡เฉฑเจ• เจธเจฎเจพเจฐเจŸ เจธเฉฐเจชเจคเฉ€ เจฆเจพ เจ•เฉ‹เจˆ เจฐเจพเจœ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ…เจœเฉ‡ เจตเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจคเฉ‹เจ‚ เจ–เจพเจคเจพ เจฐเจพเจœเจพเจ‚ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจนเฉˆเฅค

เจธเจฎเจพเจฐเจŸ เจธเฉฐเจชเจคเฉ€เจ†เจ‚ เจ‡เจ•เจฐเจพเจฐเจจเจพเจฎเฉ‡ เจฆเฉ€ เจฒเจฟเจ–เจค เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจธเจฐเจฒ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจ–เฉ‡เจช เจ…เจคเฉ‡ เจธเจผเจพเจจเจฆเจพเจฐ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจเฅค

เจธเฉฐเจชเจคเฉ€ เจซเฉเจฐเฉ€เจœเจผ

เจ‡เฉฑเจ• เจ–เจพเจธ เจฌเจฒเจพเจ• เจ‰เจšเจพเจˆ เจคเฉฑเจ• เจธเฉฐเจชเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจซเฉเจฐเฉ€เจœเจผ เจ•เจฐเจจ เจฒเจˆ เจŸเฉ€เจšเจพ เจ‰เจšเจพเจˆ, เจคเฉเจธเฉ€เจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจธเจฎเจพเจฐเจŸ เจธเฉฐเจชเจคเฉ€ เจฆเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจ‡เจธ เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจธเฉˆเจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

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
}

เจœเจพเจฐเฉ€เจ•เจฐเจคเจพ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจจเจพเจฒ เจญเฉ‡เจœเจฟเจ† เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ

เจ‡เฉฑเจ• เจธเจฎเจพเจฐเจŸ เจธเฉฐเจชเจคเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจคเฉเจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ เจœเจพเจฐเฉ€เจ•เจฐเจคเจพ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจจเจพเจฒ เจ‡เฉฑเจ• เจธเจฎเจพเจฐเจŸ เจธเฉฐเจชเจคเฉ€ เจญเฉ‡เจœเจฃ เจฆเจพ เจตเจฟเจ•เจฒเจช เจตเฉ€ เจธเฉˆเฉฑเจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ (เจตเจšเจจเจฌเฉฑเจงเจคเจพ/เจ•เจฐเจœเจผเจพ เจฒเฉ‡เจฌเจฒ). เจœเจพเจฐเฉ€เจ•เจฐเจคเจพ เจ†เจชเจฃเฉ‡ เจ–เจพเจคเฉ‡ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจฒเฉˆเจฃ-เจฆเฉ‡เจฃ ID เจฐเฉฑเจ– เจ•เฉ‡ เจ†เจชเจฃเฉ€ เจธเจนเจฟเจฎเจคเฉ€ เจชเฉเจฐเจ—เจŸ เจ•เจฐเจฆเจพ เจนเฉˆ:

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
}

เจ‡เฉฑเจฅเฉ‡ เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ—เฉˆเจฐ-เจธเจชเฉฑเจธเจผเจŸ เจฌเจฟเฉฐเจฆเฉ‚ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจ•เจฐเจจเจพ เจชเฉˆเจ‚เจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจธเฉฐเจชเฉฑเจคเฉ€ เจฆเฉ€ ID เจฆเฉ€ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ เจœเจฟเจธ เจจเจพเจฒ เจตเจชเจพเจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจฌเจฟเฉฐเจฆเฉ‚ เจ‡เจน เจนเฉˆ เจ•เจฟ เจœเฉ‡เจ•เจฐ เจธเฉฐเจชเฉฑเจคเฉ€ ID เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ 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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹