2019.04.10 01:26 [1475568] smart asset 3P9c8eRDJFBAXCzah6J2QTJoK7VNBtkSGpd > SELF 0.00000000 FullMoon

{ "type": 15, "id": "8RewezJ32kLK57B4usus763Q5EvhMWUiJwSGkw4Tfh9o", "fee": 100000000, "feeAssetId": null, "timestamp": 1554848814927, "version": 1, "sender": "3P9c8eRDJFBAXCzah6J2QTJoK7VNBtkSGpd", "senderPublicKey": "5dcFNWcem3VanKMErViDMkr9oEVaNUrsGnYcAqXHnByG", "proofs": [ "3kxeUFLBZxNQj4YGDeZ9svicRjHqQbzrnydFwgWvk1dpkXrQ3Jiw6s9fRkmZEwVkraoiAiPYf27HADT9VWRzU1o" ], "assetId": "9hTBhvaSFB3H8jmsZw2ZHsNuwsLK9wHQTwgE1a3kZ8k7", "script": "base64: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", "chainId": 87, "height": 1475568, "spentComplexity": 0 } View: original | compacted Prev: 4egPgN9CmqxsnxEdujjASz7HWvYLLqGxB2xM6LG6k1Lj Next: 5igkXKJ4hfDW8wmnt9YzDibsYFrgZ4Fx1zQTD9Q496ar Diff:
OldNewDifferences
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let COINId = base58'6XJAscmejGPTLAdKsg12MynB5rNQzNiZz8Yj81SWeFrj'
44 let heightDiff = 55
5-let priceDiffConst = 14
6-let expirationHours = 24
5+let priceDiffConst = 1
6+let expirationHours = 1
77 let maxExpiration = (((expirationHours * 60) * 60) * 1000)
8-let startHeight = 1475056
8+let startHeight = 1475666
99 let cycles = ((height - startHeight) / heightDiff)
1010 let priceDiff = (priceDiffConst * cycles)
11-let startBuyPrice = 113
12-let minBuyPrice = (startBuyPrice - priceDiff)
13-let startSellPrice = 113
14-let minSellPrice = (startSellPrice - priceDiff)
15-let expirationError = "Order time should be less than 1 day"
11+let startBuyPrice = 1
12+let minBuyPrice = (startBuyPrice + priceDiff)
13+let startSellPrice = 1
14+let minSellPrice = (startSellPrice + priceDiff)
15+let expirationError = "Order time should be less than 1 hour"
1616 let buyPriceError = (((("Buy price should be <= " + toString(minBuyPrice)) + " Money Energy Cents in a Cycle # ") + toString(cycles)) + ". Next Cycle starts less than a hour!")
1717 let sellPriceError = (((("Sell price should be >= " + toString(minSellPrice)) + " Money Energy Cents in a Cycle # ") + toString(cycles)) + ". Next Cycle starts less than a hour!")
1818 let transferFeeError = "Use Money Energy token to pay transfer fee!"
19+let coinBalanceError = "You must hold 100+ Money Energy tokens to be allowed to trade!"
1920 match tx {
2021 case e: ExchangeTransaction =>
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- if (if (sell)
24- then buy
22+ if (if ((10000 > assetBalance(e.sellOrder.sender, COINId)))
23+ then (10000 > assetBalance(e.buyOrder.sender, COINId))
2524 else false)
25+ then throw(coinBalanceError)
26+ else {
27+ let sell = sigVerify(e.sellOrder.bodyBytes, e.sellOrder.proofs[0], e.sellOrder.senderPublicKey)
28+ let buy = sigVerify(e.buyOrder.bodyBytes, e.buyOrder.proofs[0], e.buyOrder.senderPublicKey)
29+ if (if (sell)
30+ then buy
31+ else false)
32+ then true
33+ else if (sell)
34+ then if (((e.sellOrder.expiration - e.sellOrder.timestamp) > maxExpiration))
35+ then throw(expirationError)
36+ else if (if ((minSellPrice > e.sellOrder.price))
37+ then true
38+ else (e.sellOrder.assetPair.priceAsset != COINId))
39+ then throw(sellPriceError)
40+ else true
41+ else if (buy)
42+ then if (if ((e.buyOrder.price > minBuyPrice))
43+ then true
44+ else (e.sellOrder.assetPair.priceAsset != COINId))
45+ then throw(buyPriceError)
46+ else true
47+ else false
48+ }
49+ case t: TransferTransaction =>
50+ if ((t.feeAssetId == base58'6XJAscmejGPTLAdKsg12MynB5rNQzNiZz8Yj81SWeFrj'))
2651 then true
27- else if (sell)
28- then if (if ((minSellPrice > e.sellOrder.price))
29- then true
30- else (e.sellOrder.assetPair.priceAsset != COINId))
31- then throw(sellPriceError)
32- else true
33- else if (buy)
34- then if (((e.sellOrder.expiration - e.sellOrder.timestamp) > maxExpiration))
35- then throw(expirationError)
36- else if (if ((e.buyOrder.price > minBuyPrice))
37- then true
38- else (e.sellOrder.assetPair.priceAsset != COINId))
39- then throw(buyPriceError)
40- else true
41- else false
42- case t: TransferTransaction =>
43- (t.feeAssetId == base58'6XJAscmejGPTLAdKsg12MynB5rNQzNiZz8Yj81SWeFrj')
52+ else throw(transferFeeError)
4453 case _: MassTransferTransaction|BurnTransaction =>
4554 true
4655 case _ =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 2 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let COINId = base58'6XJAscmejGPTLAdKsg12MynB5rNQzNiZz8Yj81SWeFrj'
44 let heightDiff = 55
5-let priceDiffConst = 14
6-let expirationHours = 24
5+let priceDiffConst = 1
6+let expirationHours = 1
77 let maxExpiration = (((expirationHours * 60) * 60) * 1000)
8-let startHeight = 1475056
8+let startHeight = 1475666
99 let cycles = ((height - startHeight) / heightDiff)
1010 let priceDiff = (priceDiffConst * cycles)
11-let startBuyPrice = 113
12-let minBuyPrice = (startBuyPrice - priceDiff)
13-let startSellPrice = 113
14-let minSellPrice = (startSellPrice - priceDiff)
15-let expirationError = "Order time should be less than 1 day"
11+let startBuyPrice = 1
12+let minBuyPrice = (startBuyPrice + priceDiff)
13+let startSellPrice = 1
14+let minSellPrice = (startSellPrice + priceDiff)
15+let expirationError = "Order time should be less than 1 hour"
1616 let buyPriceError = (((("Buy price should be <= " + toString(minBuyPrice)) + " Money Energy Cents in a Cycle # ") + toString(cycles)) + ". Next Cycle starts less than a hour!")
1717 let sellPriceError = (((("Sell price should be >= " + toString(minSellPrice)) + " Money Energy Cents in a Cycle # ") + toString(cycles)) + ". Next Cycle starts less than a hour!")
1818 let transferFeeError = "Use Money Energy token to pay transfer fee!"
19+let coinBalanceError = "You must hold 100+ Money Energy tokens to be allowed to trade!"
1920 match tx {
2021 case e: ExchangeTransaction =>
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- if (if (sell)
24- then buy
22+ if (if ((10000 > assetBalance(e.sellOrder.sender, COINId)))
23+ then (10000 > assetBalance(e.buyOrder.sender, COINId))
2524 else false)
25+ then throw(coinBalanceError)
26+ else {
27+ let sell = sigVerify(e.sellOrder.bodyBytes, e.sellOrder.proofs[0], e.sellOrder.senderPublicKey)
28+ let buy = sigVerify(e.buyOrder.bodyBytes, e.buyOrder.proofs[0], e.buyOrder.senderPublicKey)
29+ if (if (sell)
30+ then buy
31+ else false)
32+ then true
33+ else if (sell)
34+ then if (((e.sellOrder.expiration - e.sellOrder.timestamp) > maxExpiration))
35+ then throw(expirationError)
36+ else if (if ((minSellPrice > e.sellOrder.price))
37+ then true
38+ else (e.sellOrder.assetPair.priceAsset != COINId))
39+ then throw(sellPriceError)
40+ else true
41+ else if (buy)
42+ then if (if ((e.buyOrder.price > minBuyPrice))
43+ then true
44+ else (e.sellOrder.assetPair.priceAsset != COINId))
45+ then throw(buyPriceError)
46+ else true
47+ else false
48+ }
49+ case t: TransferTransaction =>
50+ if ((t.feeAssetId == base58'6XJAscmejGPTLAdKsg12MynB5rNQzNiZz8Yj81SWeFrj'))
2651 then true
27- else if (sell)
28- then if (if ((minSellPrice > e.sellOrder.price))
29- then true
30- else (e.sellOrder.assetPair.priceAsset != COINId))
31- then throw(sellPriceError)
32- else true
33- else if (buy)
34- then if (((e.sellOrder.expiration - e.sellOrder.timestamp) > maxExpiration))
35- then throw(expirationError)
36- else if (if ((e.buyOrder.price > minBuyPrice))
37- then true
38- else (e.sellOrder.assetPair.priceAsset != COINId))
39- then throw(buyPriceError)
40- else true
41- else false
42- case t: TransferTransaction =>
43- (t.feeAssetId == base58'6XJAscmejGPTLAdKsg12MynB5rNQzNiZz8Yj81SWeFrj')
52+ else throw(transferFeeError)
4453 case _: MassTransferTransaction|BurnTransaction =>
4554 true
4655 case _ =>
4756 true
4857 }

github/deemru/w8io/786bc32 
100.28 ms