tx · Fmsa7RVyBnzkm5aLkHKkcav9hGK6Kkc4Ta26EKFWFzZS

3P3oH9HHoCuoqSBNvVK8kvff39ikAF9DJgV:  -1.00000000 Waves

2019.04.18 14:36 [1488048] smart asset 3P3oH9HHoCuoqSBNvVK8kvff39ikAF9DJgV > SELF 0 WavesRewardToken

{ "type": 15, "id": "Fmsa7RVyBnzkm5aLkHKkcav9hGK6Kkc4Ta26EKFWFzZS", "fee": 100000000, "feeAssetId": null, "timestamp": 1555587395994, "version": 1, "sender": "3P3oH9HHoCuoqSBNvVK8kvff39ikAF9DJgV", "senderPublicKey": "9q4mN91pxZeFHVPsKPVMgQT2cn9oQ2F29VneA1svPmWW", "proofs": [ "4UXETCJdKwtvihSoebQerpDHME3oDSiUhXjTkVLqn6PMywzK2uY8G3n19Tn1HZqepcAeP1ZF2B6TfmxCtRo8hzMH" ], "assetId": "H1RmwqzeXsdQMt6jR6DPkGbZjA2PKUoofP4WjuCRz1st", "script": "base64:AgQAAAAGaXNzdWVyCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFXFH+ibOwBouZj+EDGJVdFHKkSrUavrIY2BAAAAAZzZW5kZXIJAAJYAAAAAQgIBQAAAAJ0eAAAAAZzZW5kZXIAAAAFYnl0ZXMEAAAADnNlbmRlckNhdGVnb3J5AwkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAGaXNzdWVyBQAAAAZzZW5kZXIJAQAAAAdleHRyYWN0AAAAAQkABB0AAAACBQAAAAZpc3N1ZXIFAAAABnNlbmRlcgIAAAAEbm9uZQQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwBAAAAAlyZWNpcGllbnQJAAJYAAAAAQgJAAQkAAAAAQgFAAAAAnR4AAAACXJlY2lwaWVudAAAAAVieXRlcwQAAAARcmVjaXBpZW50Q2F0ZWdvcnkJAAQdAAAAAgUAAAAGaXNzdWVyBQAAAAlyZWNpcGllbnQDCQAAAAAAAAIFAAAADnNlbmRlckNhdGVnb3J5AgAAAAVhZG1pbgYDAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAEXJlY2lwaWVudENhdGVnb3J5AwkAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEFAAAAEXJlY2lwaWVudENhdGVnb3J5AgAAAAphbWJhc3NhZG9yBgkAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEFAAAAEXJlY2lwaWVudENhdGVnb3J5AgAAAAVhZG1pbgcGCQAAAgAAAAECAAAAL1RoaXMgYXNzZXQgY2FuIGJlIHRyYW5zZmVycmVkIHRvIHdoaXRlbGlzdCBvbmx5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNFeGNoYW5nZVRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAQAAAAEc2VsbAkAAfQAAAADCAgFAAAAAnR4AAAACXNlbGxPcmRlcgAAAAlib2R5Qnl0ZXMJAAGRAAAAAggIBQAAAAJ0eAAAAAlzZWxsT3JkZXIAAAAGcHJvb2ZzAAAAAAAAAAAACAgFAAAAAnR4AAAACXNlbGxPcmRlcgAAAA9zZW5kZXJQdWJsaWNLZXkEAAAAA2J1eQkAAfQAAAADCAgFAAAAAnR4AAAACGJ1eU9yZGVyAAAACWJvZHlCeXRlcwkAAZEAAAACCAgFAAAAAnR4AAAACGJ1eU9yZGVyAAAABnByb29mcwAAAAAAAAAAAAgIBQAAAAJ0eAAAAAhidXlPcmRlcgAAAA9zZW5kZXJQdWJsaWNLZXkEAAAAD3NlbGxPcmRlclNlbmRlcgkAAlgAAAABCAgIBQAAAAJ0eAAAAAlzZWxsT3JkZXIAAAAGc2VuZGVyAAAABWJ5dGVzBAAAABdzZWxsT3JkZXJTZW5kZXJDYXRlZ29yeQkABB0AAAACBQAAAAZpc3N1ZXIFAAAAD3NlbGxPcmRlclNlbmRlcgQAAAAOYnV5T3JkZXJTZW5kZXIJAAJYAAAAAQgICAUAAAACdHgAAAAIYnV5T3JkZXIAAAAGc2VuZGVyAAAABWJ5dGVzBAAAABZidXlPcmRlclNlbmRlckNhdGVnb3J5CQAEHQAAAAIFAAAABmlzc3VlcgUAAAAOYnV5T3JkZXJTZW5kZXIDAwMFAAAAA2J1eQMDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAWYnV5T3JkZXJTZW5kZXJDYXRlZ29yeQkAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEFAAAAFmJ1eU9yZGVyU2VuZGVyQ2F0ZWdvcnkCAAAABWFkbWluBwYJAAACAAAAAQIAAAAZWW91IGNhbm5vdCBidXkgdGhpcyBhc3NldAcGBQAAAARzZWxsAwMJAQAAAAlpc0RlZmluZWQAAAABBQAAABdzZWxsT3JkZXJTZW5kZXJDYXRlZ29yeQkAAAAAAAACCQEAAAAHZXh0cmFjdAAAAAEFAAAAF3NlbGxPcmRlclNlbmRlckNhdGVnb3J5AgAAAAphbWJhc3NhZG9yBwYJAAACAAAAAQIAAAAiT25seSB3aGl0ZWxpc3QgY2FuIHNlbGwgdGhpcyBhc3NldAcDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAF01hc3NUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAJ0eAUAAAAHJG1hdGNoMAMJAAAAAAAAAgUAAAAOc2VuZGVyQ2F0ZWdvcnkCAAAABWFkbWluBgkAAAIAAAABAgAAADZZb3UgY2Fubm90IHNlbmQgdGhpcyBhc3NldCB2aWEgTWFzc1RyYW5zZmVyVHJhbnNhY3Rpb24DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0J1cm5UcmFuc2FjdGlvbgQAAAACdHgFAAAAByRtYXRjaDADCQAAAAAAAAIFAAAADnNlbmRlckNhdGVnb3J5AgAAAAVhZG1pbgYJAAACAAAAAQIAAAAaWW91IGNhbm5vdCBidXJuIHRoaXMgYXNzZXQDAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABJSZWlzc3VlVHJhbnNhY3Rpb24GCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAGVNldEFzc2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwBgfeMvDM", "chainId": 87, "height": 1488048, "spentComplexity": 0 } View: original | compacted Prev: none Next: 3jKg3QdL1siLUiaNVGd6zSC9KFWZdNisp3J4pxupb14s Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 2 #-}
2+{-# CONTENT_TYPE EXPRESSION #-}
3+let issuer = Address(base58'3P3oH9HHoCuoqSBNvVK8kvff39ikAF9DJgV')
4+let sender = toBase58String(tx.sender.bytes)
5+let senderCategory = if (isDefined(getString(issuer, sender)))
6+ then extract(getString(issuer, sender))
7+ else "none"
8+match tx {
9+ case tx: TransferTransaction =>
10+ let recipient = toBase58String(addressFromRecipient(tx.recipient).bytes)
11+ let recipientCategory = getString(issuer, recipient)
12+ if ((senderCategory == "admin"))
13+ then true
14+ else if (if (isDefined(recipientCategory))
15+ then if ((extract(recipientCategory) == "ambassador"))
16+ then true
17+ else (extract(recipientCategory) == "admin")
18+ else false)
19+ then true
20+ else throw("This asset can be transferred to whitelist only")
21+ case tx: ExchangeTransaction =>
22+ let sell = sigVerify(tx.sellOrder.bodyBytes, tx.sellOrder.proofs[0], tx.sellOrder.senderPublicKey)
23+ let buy = sigVerify(tx.buyOrder.bodyBytes, tx.buyOrder.proofs[0], tx.buyOrder.senderPublicKey)
24+ let sellOrderSender = toBase58String(tx.sellOrder.sender.bytes)
25+ let sellOrderSenderCategory = getString(issuer, sellOrderSender)
26+ let buyOrderSender = toBase58String(tx.buyOrder.sender.bytes)
27+ let buyOrderSenderCategory = getString(issuer, buyOrderSender)
28+ if (if (if (buy)
29+ then if (if (isDefined(buyOrderSenderCategory))
30+ then (extract(buyOrderSenderCategory) == "admin")
31+ else false)
32+ then true
33+ else throw("You cannot buy this asset")
34+ else false)
35+ then true
36+ else sell)
37+ then if (if (isDefined(sellOrderSenderCategory))
38+ then (extract(sellOrderSenderCategory) == "ambassador")
39+ else false)
40+ then true
41+ else throw("Only whitelist can sell this asset")
42+ else false
43+ case tx: MassTransferTransaction =>
44+ if ((senderCategory == "admin"))
45+ then true
46+ else throw("You cannot send this asset via MassTransferTransaction")
47+ case tx: BurnTransaction =>
48+ if ((senderCategory == "admin"))
49+ then true
50+ else throw("You cannot burn this asset")
51+ case tx: ReissueTransaction|SetAssetScriptTransaction =>
52+ true
53+ case _ =>
54+ false
55+}

github/deemru/w8io/6500d08 
55.33 ms