tx · 6rWFYTDvrD4XC5g27fehM8sR6a2rMdsfs7n6s3J6WVas 3N5EryX3TucbwUpnjryZB3WLg3YDTcC9BbF: -1.00000000 Waves 2020.04.23 10:43 [966827] smart asset 3N5EryX3TucbwUpnjryZB3WLg3YDTcC9BbF > SELF 0 Goldmine6
{ "type": 15, "id": "6rWFYTDvrD4XC5g27fehM8sR6a2rMdsfs7n6s3J6WVas", "fee": 100000000, "feeAssetId": null, "timestamp": 1587627800359, "version": 1, "sender": "3N5EryX3TucbwUpnjryZB3WLg3YDTcC9BbF", "senderPublicKey": "B9XyW4GriR4NKr6yyp8ZS5BmRzTXAhBn9jybWtpDhQKk", "proofs": [ "5GiNURRc572Jk4QSZiX67dYFncmsxWLR1fXPFuUSZU9JFKYCyusGHNGAYLavkfozbEZStKLYmiouJTjhSETbYyWU" ], "assetId": "7xFACXkXqa1tXkHN5vAW5rQeWPXXK4PvzEEBwMAQJGnW", "script": "base64:AQQAAAALZEFwcEFkZHJlc3MJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAECAAAAIzNONUVyeVgzVHVjYndVcG5qcnlaQjNXTGczWURUY0M5QmJGBAAAAAdhZG1pblBLAQAAACCWxInPooVRwW18ClwwY9JNxtS2OLXlmutl3BPUc/L3GwQAAAAKc2VsbEFtb3VudAAAAAAABfXhAAQAAAAJc2VsbFByaWNlAAAAAAAAACcQBAAAAAhidXlQcmljZQAAAAAAAAAnDwQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0J1cm5UcmFuc2FjdGlvbgQAAAACdHgFAAAAByRtYXRjaDAJAAAAAAAAAggFAAAAAnR4AAAABnNlbmRlcgUAAAALZEFwcEFkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAElJlaXNzdWVUcmFuc2FjdGlvbgQAAAACdHgFAAAAByRtYXRjaDAJAAAAAAAAAggFAAAAAnR4AAAABnNlbmRlcgUAAAALZEFwcEFkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAGVNldEFzc2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwCQAAAAAAAAIIBQAAAAJ0eAAAAAZzZW5kZXIFAAAAC2RBcHBBZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdNYXNzVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAACdHgFAAAAByRtYXRjaDAJAAAAAAAAAggFAAAAAnR4AAAABnNlbmRlcgUAAAALZEFwcEFkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAAnR4BQAAAAckbWF0Y2gwCQAAAAAAAAIIBQAAAAJ0eAAAAAZzZW5kZXIFAAAAC2RBcHBBZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNFeGNoYW5nZVRyYW5zYWN0aW9uBAAAAAFlBQAAAAckbWF0Y2gwBAAAAAZzZW5kZXIICAUAAAABZQAAAAlzZWxsT3JkZXIAAAAGc2VuZGVyBAAAAARzZWxsCQAB9AAAAAMICAUAAAABZQAAAAlzZWxsT3JkZXIAAAAJYm9keUJ5dGVzCQABkQAAAAIICAUAAAABZQAAAAlzZWxsT3JkZXIAAAAGcHJvb2ZzAAAAAAAAAAAACAgFAAAAAWUAAAAJc2VsbE9yZGVyAAAAD3NlbmRlclB1YmxpY0tleQQAAAADYnV5CQAB9AAAAAMICAUAAAABZQAAAAhidXlPcmRlcgAAAAlib2R5Qnl0ZXMJAAGRAAAAAggIBQAAAAFlAAAACGJ1eU9yZGVyAAAABnByb29mcwAAAAAAAAAAAAgIBQAAAAFlAAAACGJ1eU9yZGVyAAAAD3NlbmRlclB1YmxpY0tleQQAAAAFYWRtaW4JAAAAAAAAAggIBQAAAAFlAAAACXNlbGxPcmRlcgAAAAZzZW5kZXIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAB2FkbWluUEsDBQAAAAVhZG1pbgYDCQEAAAAJaXNEZWZpbmVkAAAAAQgICAUAAAABZQAAAAlzZWxsT3JkZXIAAAAJYXNzZXRQYWlyAAAACnByaWNlQXNzZXQJAAACAAAAAQIAAAATT25seSB3YXZlcyBhY2NlcHRlZAMFAAAABHNlbGwDCQAAZgAAAAIFAAAACnNlbGxBbW91bnQICAUAAAABZQAAAAlzZWxsT3JkZXIAAAAGYW1vdW50CQAAAgAAAAEJAAEsAAAAAgIAAAAoU2VsbCBhbW91bnQgbXVzdCBiZSBncmVhdGVyIG9yIGVxdWFsIHRvIAkAAaQAAAABCQAAaQAAAAIFAAAACnNlbGxBbW91bnQAAAAAAAX14QADCQAAZwAAAAIFAAAACXNlbGxQcmljZQgIBQAAAAFlAAAACXNlbGxPcmRlcgAAAAVwcmljZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAgU2VsbCBwcmljZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAJAAGkAAAAAQUAAAAJc2VsbFByaWNlAgAAAAkgd2F2ZWxldHMGAwUAAAADYnV5AwkAAGcAAAACBQAAAAhidXlQcmljZQgIBQAAAAFlAAAACXNlbGxPcmRlcgAAAAVwcmljZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAfQnV5IHByaWNlIG11c3QgYmUgZ3JlYXRlciB0aGVuIAkAAaQAAAABBQAAAAhidXlQcmljZQIAAAAJIHdhdmVsZXRzBgkAAAIAAAABAgAAABZzb21ldGhpbmcgYmFkIGhhcHBlbmVkB30YviQ=", "chainId": 84, "height": 966827, "spentComplexity": 0 } View: original | compacted Prev: FXwKYhzrvkaTRfQ7b8MGUV9KUywZxnqxxnL7iSQF6YSc Next: BCSg4688fan4mySQjcTgLydw8LJyDgDMhhUoNXmqXfYV Diff:
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 1 #-} | |
2 | 2 | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | 3 | let dAppAddress = addressFromString("3N5EryX3TucbwUpnjryZB3WLg3YDTcC9BbF") | |
4 | 4 | let adminPK = base58'B9XyW4GriR4NKr6yyp8ZS5BmRzTXAhBn9jybWtpDhQKk' | |
17 | 17 | case tx: TransferTransaction => | |
18 | 18 | (tx.sender == dAppAddress) | |
19 | 19 | case e: ExchangeTransaction => | |
20 | - | if ((e.price >= 1000000000)) | |
21 | - | then if ((10 > e.amount)) | |
22 | - | then throw("Minimum is 10 tokens. Buy/Sell more to enter the game.") | |
23 | - | else true | |
24 | - | else throw("Minimum price is 1 Waves") | |
20 | + | let sender = e.sellOrder.sender | |
21 | + | let sell = sigVerify(e.sellOrder.bodyBytes, e.sellOrder.proofs[0], e.sellOrder.senderPublicKey) | |
22 | + | let buy = sigVerify(e.buyOrder.bodyBytes, e.buyOrder.proofs[0], e.buyOrder.senderPublicKey) | |
23 | + | let admin = (e.sellOrder.sender == addressFromPublicKey(adminPK)) | |
24 | + | if (admin) | |
25 | + | then true | |
26 | + | else if (isDefined(e.sellOrder.assetPair.priceAsset)) | |
27 | + | then throw("Only waves accepted") | |
28 | + | else if (sell) | |
29 | + | then if ((sellAmount > e.sellOrder.amount)) | |
30 | + | then throw(("Sell amount must be greater or equal to " + toString((sellAmount / 100000000)))) | |
31 | + | else if ((sellPrice >= e.sellOrder.price)) | |
32 | + | then throw((("Sell price must be greater than " + toString(sellPrice)) + " wavelets")) | |
33 | + | else true | |
34 | + | else if (buy) | |
35 | + | then if ((buyPrice >= e.sellOrder.price)) | |
36 | + | then throw((("Buy price must be greater then " + toString(buyPrice)) + " wavelets")) | |
37 | + | else true | |
38 | + | else throw("something bad happened") | |
25 | 39 | case _ => | |
26 | 40 | false | |
27 | 41 | } |
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 1 #-} | |
2 | 2 | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | 3 | let dAppAddress = addressFromString("3N5EryX3TucbwUpnjryZB3WLg3YDTcC9BbF") | |
4 | 4 | let adminPK = base58'B9XyW4GriR4NKr6yyp8ZS5BmRzTXAhBn9jybWtpDhQKk' | |
5 | 5 | let sellAmount = 100000000 | |
6 | 6 | let sellPrice = 10000 | |
7 | 7 | let buyPrice = 9999 | |
8 | 8 | match tx { | |
9 | 9 | case tx: BurnTransaction => | |
10 | 10 | (tx.sender == dAppAddress) | |
11 | 11 | case tx: ReissueTransaction => | |
12 | 12 | (tx.sender == dAppAddress) | |
13 | 13 | case tx: SetAssetScriptTransaction => | |
14 | 14 | (tx.sender == dAppAddress) | |
15 | 15 | case tx: MassTransferTransaction => | |
16 | 16 | (tx.sender == dAppAddress) | |
17 | 17 | case tx: TransferTransaction => | |
18 | 18 | (tx.sender == dAppAddress) | |
19 | 19 | case e: ExchangeTransaction => | |
20 | - | if ((e.price >= 1000000000)) | |
21 | - | then if ((10 > e.amount)) | |
22 | - | then throw("Minimum is 10 tokens. Buy/Sell more to enter the game.") | |
23 | - | else true | |
24 | - | else throw("Minimum price is 1 Waves") | |
20 | + | let sender = e.sellOrder.sender | |
21 | + | let sell = sigVerify(e.sellOrder.bodyBytes, e.sellOrder.proofs[0], e.sellOrder.senderPublicKey) | |
22 | + | let buy = sigVerify(e.buyOrder.bodyBytes, e.buyOrder.proofs[0], e.buyOrder.senderPublicKey) | |
23 | + | let admin = (e.sellOrder.sender == addressFromPublicKey(adminPK)) | |
24 | + | if (admin) | |
25 | + | then true | |
26 | + | else if (isDefined(e.sellOrder.assetPair.priceAsset)) | |
27 | + | then throw("Only waves accepted") | |
28 | + | else if (sell) | |
29 | + | then if ((sellAmount > e.sellOrder.amount)) | |
30 | + | then throw(("Sell amount must be greater or equal to " + toString((sellAmount / 100000000)))) | |
31 | + | else if ((sellPrice >= e.sellOrder.price)) | |
32 | + | then throw((("Sell price must be greater than " + toString(sellPrice)) + " wavelets")) | |
33 | + | else true | |
34 | + | else if (buy) | |
35 | + | then if ((buyPrice >= e.sellOrder.price)) | |
36 | + | then throw((("Buy price must be greater then " + toString(buyPrice)) + " wavelets")) | |
37 | + | else true | |
38 | + | else throw("something bad happened") | |
25 | 39 | case _ => | |
26 | 40 | false | |
27 | 41 | } |
github/deemru/w8io/169f3d6 29.36 ms ◑![]()