tx · EX7pDXja8GkBex1Kw3gxzjKu9e9MK4SEdUb6ZpJqwvCV 3N6KWtjpEqhL8oRk3YEQFVYsUwhjzA2rCUW: -1.00400000 Waves 2020.03.11 19:56 [904752] smart asset 3N6KWtjpEqhL8oRk3YEQFVYsUwhjzA2rCUW > SELF 0 PreSmartKey
{ "type": 15, "id": "EX7pDXja8GkBex1Kw3gxzjKu9e9MK4SEdUb6ZpJqwvCV", "fee": 100400000, "feeAssetId": null, "timestamp": 1583945875654, "version": 1, "sender": "3N6KWtjpEqhL8oRk3YEQFVYsUwhjzA2rCUW", "senderPublicKey": "7wiL4SU2VfpuDUUtTqN4WrWXBp7awHtxk4BjkK1vYuSY", "proofs": [ "2EdJHzL5KHuZAgjPzPTcLRBxHLFomsBfYQjCScYfQDtqid84JnnNBXv45Mw6oadsJGkjdEDGRFiEmMab2GzttDX5" ], "assetId": "EaAk66w36Wo7mi1xgcHyjeaiCrsaerH1gJ3cKTePEz5o", "script": "base64:AQQAAAAGbWFzdGVyCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUs/CL93FthWEyPB6G5SYCnsCIdjUWFfVfBAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAQAAAAJc2VuZGVyS2V5CQABLAAAAAICAAAAB3ByZV9za18JAAJYAAAAAQgIBQAAAAF0AAAABnNlbmRlcgAAAAVieXRlcwQAAAAPaXNTZW5kZXJBbGxvd2VkCQAAAAAAAAIJAAQaAAAAAgUAAAAGbWFzdGVyBQAAAAlzZW5kZXJLZXkAAAAAAAAAAAEDAwkAAAAAAAACCAUAAAABdAAAAAZzZW5kZXIFAAAABm1hc3RlcgYJAAAAAAAAAggFAAAAAXQAAAAJcmVjaXBpZW50BQAAAAZtYXN0ZXIGBQAAAA9pc1NlbmRlckFsbG93ZWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAF01hc3NUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAJtdAUAAAAHJG1hdGNoMAQAAAAJc2VuZGVyS2V5CQABLAAAAAICAAAAB3ByZV9za18JAAJYAAAAAQgIBQAAAAJtdAAAAAZzZW5kZXIAAAAFYnl0ZXMEAAAAD2lzU2VuZGVyQWxsb3dlZAkAAAAAAAACCQAEGgAAAAIFAAAABm1hc3RlcgUAAAAJc2VuZGVyS2V5AAAAAAAAAAABAwkAAAAAAAACCAUAAAACbXQAAAAGc2VuZGVyBQAAAAZtYXN0ZXIGBQAAAA9pc1NlbmRlckFsbG93ZWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE0V4Y2hhbmdlVHJhbnNhY3Rpb24EAAAAAmV4BQAAAAckbWF0Y2gwBAAAAAlzZW5kZXJLZXkJAAEsAAAAAgIAAAAHcHJlX3NrXwkAAlgAAAABCAgIBQAAAAJleAAAAAlzZWxsT3JkZXIAAAAGc2VuZGVyAAAABWJ5dGVzBAAAAA9pc1NlbmRlckFsbG93ZWQJAAAAAAAAAgkABBoAAAACBQAAAAZtYXN0ZXIFAAAACXNlbmRlcktleQAAAAAAAAAAAQQAAAADYnV5CQAB9AAAAAMICAUAAAACZXgAAAAIYnV5T3JkZXIAAAAJYm9keUJ5dGVzCQABkQAAAAIICAUAAAACZXgAAAAIYnV5T3JkZXIAAAAGcHJvb2ZzAAAAAAAAAAAACAgFAAAAAmV4AAAACGJ1eU9yZGVyAAAAD3NlbmRlclB1YmxpY0tleQMDBQAAAANidXkGCQAAAAAAAAIICAUAAAACZXgAAAAJc2VsbE9yZGVyAAAABnNlbmRlcgUAAAAGbWFzdGVyBgUAAAAPaXNTZW5kZXJBbGxvd2VkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9CdXJuVHJhbnNhY3Rpb24EAAAAAWIFAAAAByRtYXRjaDAJAAAAAAAAAggFAAAAAWIAAAAGc2VuZGVyBQAAAAZtYXN0ZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAGVNldEFzc2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAAXMFAAAAByRtYXRjaDAGBraLvNQ=", "chainId": 84, "height": 904752, "spentComplexity": 0 } View: original | compacted Prev: W1cWoo7pQnMHWQBrrtCNwcb5o4rjR5D8bmJdeMb3xGZ Next: 3S8PdHSs7ZS7Tb7tr32sQf7bQ4wDorSr93vXDasHviQD Diff:
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 1 #-} | |
2 | 2 | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | 3 | let master = Address(base58'3N6KWtjpEqhL8oRk3YEQFVYsUwhjzA2rCUW') | |
4 | 4 | match tx { | |
19 | 19 | case ex: ExchangeTransaction => | |
20 | 20 | let senderKey = ("pre_sk_" + toBase58String(ex.sellOrder.sender.bytes)) | |
21 | 21 | let isSenderAllowed = (getInteger(master, senderKey) == 1) | |
22 | - | if ((ex.sender == master)) | |
22 | + | let buy = sigVerify(ex.buyOrder.bodyBytes, ex.buyOrder.proofs[0], ex.buyOrder.senderPublicKey) | |
23 | + | if (if (buy) | |
24 | + | then true | |
25 | + | else (ex.sellOrder.sender == master)) | |
23 | 26 | then true | |
24 | 27 | else isSenderAllowed | |
25 | 28 | case b: BurnTransaction => |
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 1 #-} | |
2 | 2 | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | 3 | let master = Address(base58'3N6KWtjpEqhL8oRk3YEQFVYsUwhjzA2rCUW') | |
4 | 4 | match tx { | |
5 | 5 | case t: TransferTransaction => | |
6 | 6 | let senderKey = ("pre_sk_" + toBase58String(t.sender.bytes)) | |
7 | 7 | let isSenderAllowed = (getInteger(master, senderKey) == 1) | |
8 | 8 | if (if ((t.sender == master)) | |
9 | 9 | then true | |
10 | 10 | else (t.recipient == master)) | |
11 | 11 | then true | |
12 | 12 | else isSenderAllowed | |
13 | 13 | case mt: MassTransferTransaction => | |
14 | 14 | let senderKey = ("pre_sk_" + toBase58String(mt.sender.bytes)) | |
15 | 15 | let isSenderAllowed = (getInteger(master, senderKey) == 1) | |
16 | 16 | if ((mt.sender == master)) | |
17 | 17 | then true | |
18 | 18 | else isSenderAllowed | |
19 | 19 | case ex: ExchangeTransaction => | |
20 | 20 | let senderKey = ("pre_sk_" + toBase58String(ex.sellOrder.sender.bytes)) | |
21 | 21 | let isSenderAllowed = (getInteger(master, senderKey) == 1) | |
22 | - | if ((ex.sender == master)) | |
22 | + | let buy = sigVerify(ex.buyOrder.bodyBytes, ex.buyOrder.proofs[0], ex.buyOrder.senderPublicKey) | |
23 | + | if (if (buy) | |
24 | + | then true | |
25 | + | else (ex.sellOrder.sender == master)) | |
23 | 26 | then true | |
24 | 27 | else isSenderAllowed | |
25 | 28 | case b: BurnTransaction => | |
26 | 29 | (b.sender == master) | |
27 | 30 | case s: SetAssetScriptTransaction => | |
28 | 31 | true | |
29 | 32 | case _ => | |
30 | 33 | true | |
31 | 34 | } |
github/deemru/w8io/026f985 34.15 ms ◑