Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. {-# STDLIB_VERSION 3 #-}
  2. {-# CONTENT_TYPE EXPRESSION #-}
  3. {-# SCRIPT_TYPE ASSET #-}
  4.  
  5. match tx {
  6. case allow: ExchangeTransaction | TransferTransaction =>
  7. let assetId = match allow {
  8. case e: ExchangeTransaction =>
  9. e.sellOrder.assetPair.amountAsset
  10. case t: TransferTransaction =>
  11. t.assetId
  12. }
  13. let aInfo = extract(assetInfo(extract(assetId)))
  14. let adminAddress = aInfo.issuer
  15. let assetIdString = toBase58String(extract(assetId))
  16. let tokensListPK = extract(getString(adminAddress, "regulated-tokens"))
  17. let tokensListAddress = extract(addressFromPublicKey(fromBase58String(tokensListPK)))
  18. let whitelistPK = extract(getString(tokensListAddress, assetIdString))
  19. let whitelistAddress = extract(addressFromPublicKey(fromBase58String(whitelistPK)))
  20. let senderAddress = match allow {
  21. case e: ExchangeTransaction =>
  22. e.sellOrder.sender
  23. case t: TransferTransaction =>
  24. t.sender
  25. }
  26. let recipientAddress = match allow {
  27. case t: TransferTransaction =>
  28. addressFromRecipient(t.recipient)
  29. case _ => unit
  30. }
  31. let senderAccepted = getBoolean(whitelistAddress, toBase58String(senderAddress.bytes))
  32. let recipientAccepted = getBoolean(whitelistAddress, toBase58String(extract(recipientAddress).bytes))
  33. match allow {
  34. case e: ExchangeTransaction =>
  35. if (!isDefined(senderAccepted))
  36. then false
  37. else extract(senderAccepted)
  38. case t: TransferTransaction =>
  39. if (!isDefined(senderAccepted) || !isDefined(recipientAccepted))
  40. then false
  41. else extract(senderAccepted) && extract(recipientAccepted)
  42. }
  43. case _ => true #dev
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement