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:
Old | New | Differences | |
---|---|---|---|
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/0e76f2f 70.90 ms ◑