tx · HsdWPEfMh7YfzydQjUTPkUoJQue1fFHkTfZ1jHnjgQb 3N71obtK43EvdxuYsftnexqhdu8YTt1sxfA: -1.00000000 Waves 2019.03.24 14:06 [550347] smart asset 3N71obtK43EvdxuYsftnexqhdu8YTt1sxfA > SELF 0 A001
{ "type": 15, "id": "HsdWPEfMh7YfzydQjUTPkUoJQue1fFHkTfZ1jHnjgQb", "fee": 100000000, "feeAssetId": null, "timestamp": 1553425644991, "version": 1, "sender": "3N71obtK43EvdxuYsftnexqhdu8YTt1sxfA", "senderPublicKey": "7zi4V42c417fKnW1ubvGvw3RRsaaQfGCD8w8RHCF43ob", "proofs": [ "555W7wPXK89UyJizCCTWK2MR4iWJZjrBa3qa6evVHAMCAqqiYMyeaMb4qxfqtRXz6TWYEpkZfsPXZwddWcRoz4aM" ], "assetId": "6xUri27gR2LR26jXyWSn4FF5YQRNHZt9ouBb9gfQfGsx", "script": "base64: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", "chainId": 84, "height": 550347, "spentComplexity": 0 } View: original | compacted Prev: E8LHhT9Py5TeNd7nFtu5dqUxoP1WAMNAZrox2pjHVWzm Next: BGyXXqvAHHcPdhERyUEXcHZ8WrUGX2FxXmkPTabXbf3i Diff:
Old | New | Differences | |
---|---|---|---|
38 | 38 | then true | |
39 | 39 | else false | |
40 | 40 | case e: ExchangeTransaction => | |
41 | - | throw(("Minimum order price is " + toBase58String(e.sellOrder.senderPublicKey))) | |
41 | + | if (if (if ((toBase58String(e.sellOrder.senderPublicKey) == system)) | |
42 | + | then true | |
43 | + | else (toBase58String(e.sellOrder.senderPublicKey) == adv)) | |
44 | + | then true | |
45 | + | else (toBase58String(e.sellOrder.senderPublicKey) == tech)) | |
46 | + | then true | |
47 | + | else { | |
48 | + | let minimumPrice = (startPrice + (((height - startHeight) / deltaHeight) * deltaPrice)) | |
49 | + | let orderPrice = (e.price / 100000000) | |
50 | + | let buy = sigVerify(e.buyOrder.bodyBytes, e.buyOrder.proofs[0], e.buyOrder.senderPublicKey) | |
51 | + | if (buy) | |
52 | + | then if ((orderPrice >= startPrice)) | |
53 | + | then if (isDefined(e.buyOrder.assetPair.priceAsset)) | |
54 | + | then false | |
55 | + | else true | |
56 | + | else throw(("Minimum order price is " + toString(startPrice))) | |
57 | + | else if ((orderPrice >= minimumPrice)) | |
58 | + | then if (isDefined(e.sellOrder.assetPair.priceAsset)) | |
59 | + | then false | |
60 | + | else if ((timeOrder >= (e.sellOrder.expiration - e.sellOrder.timestamp))) | |
61 | + | then true | |
62 | + | else throw("TIME SELL") | |
63 | + | else throw(("Minimum order price is " + toString(minimumPrice))) | |
64 | + | } | |
42 | 65 | case _ => | |
43 | 66 | throw("Prohibited by contract") | |
44 | 67 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 2 #-} | |
2 | 2 | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | 3 | let system = "7zi4V42c417fKnW1ubvGvw3RRsaaQfGCD8w8RHCF43ob" | |
4 | 4 | let adv = "7zi4V42c417fKnW1ubvGvw3RRsaaQfGCD8w8RHCF43ob" | |
5 | 5 | let tech = "7zi4V42c417fKnW1ubvGvw3RRsaaQfGCD8w8RHCF43ob" | |
6 | 6 | let startPrice = 100000000 | |
7 | 7 | let deltaPrice = 1000000 | |
8 | 8 | let startHeight = 550180 | |
9 | 9 | let deltaHeight = 3 | |
10 | 10 | let timeOrder = ((5 * 60) * 1000) | |
11 | 11 | match tx { | |
12 | 12 | case e: TransferTransaction => | |
13 | 13 | if (if (if ((toBase58String(e.senderPublicKey) == system)) | |
14 | 14 | then true | |
15 | 15 | else (toBase58String(e.senderPublicKey) == adv)) | |
16 | 16 | then true | |
17 | 17 | else (toBase58String(e.senderPublicKey) == tech)) | |
18 | 18 | then true | |
19 | 19 | else false | |
20 | 20 | case e: ReissueTransaction => | |
21 | 21 | if ((toBase58String(e.senderPublicKey) == system)) | |
22 | 22 | then true | |
23 | 23 | else false | |
24 | 24 | case e: BurnTransaction => | |
25 | 25 | if ((toBase58String(e.senderPublicKey) == system)) | |
26 | 26 | then true | |
27 | 27 | else false | |
28 | 28 | case e: MassTransferTransaction => | |
29 | 29 | if (if (if ((toBase58String(e.senderPublicKey) == system)) | |
30 | 30 | then true | |
31 | 31 | else (toBase58String(e.senderPublicKey) == adv)) | |
32 | 32 | then true | |
33 | 33 | else (toBase58String(e.senderPublicKey) == tech)) | |
34 | 34 | then true | |
35 | 35 | else false | |
36 | 36 | case e: SetAssetScriptTransaction => | |
37 | 37 | if ((toBase58String(e.senderPublicKey) == system)) | |
38 | 38 | then true | |
39 | 39 | else false | |
40 | 40 | case e: ExchangeTransaction => | |
41 | - | throw(("Minimum order price is " + toBase58String(e.sellOrder.senderPublicKey))) | |
41 | + | if (if (if ((toBase58String(e.sellOrder.senderPublicKey) == system)) | |
42 | + | then true | |
43 | + | else (toBase58String(e.sellOrder.senderPublicKey) == adv)) | |
44 | + | then true | |
45 | + | else (toBase58String(e.sellOrder.senderPublicKey) == tech)) | |
46 | + | then true | |
47 | + | else { | |
48 | + | let minimumPrice = (startPrice + (((height - startHeight) / deltaHeight) * deltaPrice)) | |
49 | + | let orderPrice = (e.price / 100000000) | |
50 | + | let buy = sigVerify(e.buyOrder.bodyBytes, e.buyOrder.proofs[0], e.buyOrder.senderPublicKey) | |
51 | + | if (buy) | |
52 | + | then if ((orderPrice >= startPrice)) | |
53 | + | then if (isDefined(e.buyOrder.assetPair.priceAsset)) | |
54 | + | then false | |
55 | + | else true | |
56 | + | else throw(("Minimum order price is " + toString(startPrice))) | |
57 | + | else if ((orderPrice >= minimumPrice)) | |
58 | + | then if (isDefined(e.sellOrder.assetPair.priceAsset)) | |
59 | + | then false | |
60 | + | else if ((timeOrder >= (e.sellOrder.expiration - e.sellOrder.timestamp))) | |
61 | + | then true | |
62 | + | else throw("TIME SELL") | |
63 | + | else throw(("Minimum order price is " + toString(minimumPrice))) | |
64 | + | } | |
42 | 65 | case _ => | |
43 | 66 | throw("Prohibited by contract") | |
44 | 67 | } |
github/deemru/w8io/026f985 21.67 ms ◑