tx · 4ENhySUVmZBYhiKeDkzPjizSPaLJrnpJ8UT2r5vr1Lna

3MtyC1mD9vS4UuKQ6wu2JXKzjUecdY4EW7A:  -0.04000000 Waves

2020.06.09 10:00 [1035508] smart account 3MtyC1mD9vS4UuKQ6wu2JXKzjUecdY4EW7A > SELF 0.00000000 Waves

{ "type": 13, "id": "4ENhySUVmZBYhiKeDkzPjizSPaLJrnpJ8UT2r5vr1Lna", "fee": 4000000, "feeAssetId": null, "timestamp": 1591685922984, "version": 1, "sender": "3MtyC1mD9vS4UuKQ6wu2JXKzjUecdY4EW7A", "senderPublicKey": "37FyP8sdqQUjbk3FX2jBTsn4S4yWMSVx5zmrt4tHZG4s", "proofs": [ "4RKUqZFSxZiiB87948uDpP18BNEpV8VALPquyWE7Zr756Nc5cCD7gqt5b7L8qvFVVkMiqLaGxDHGapHN7TBrKr3E" ], "script": "base64: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", "chainId": 84, "height": 1035508, "spentComplexity": 0 } View: original | compacted Prev: 56ZK2JDQVddwdrBRB9LFvThFTZD2HJKK22wgwBgGT8b8 Next: none Full:
OldNewDifferences
11 {-# STDLIB_VERSION 2 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let issuer = Address(base58'3MtyC1mD9vS4UuKQ6wu2JXKzjUecdY4EW7A')
4-let assetId = base58'FPmR6KVbRTYrrCWKjRBWMKxPgiHTvFSB9mTbrpMskYZK'
4+let assetId = base58'CYM8dXSMABsBpTFupPpWnVBLJ4TbzkJYD95gH5Ab1W3W'
5+let BTCId = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
6+let ETHId = base58'474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu'
7+let LTCId = base58'HZk1mbfuJpmxU1Fs4AX5MWLVYtctsNcg6e2C6VKqK8zk'
8+let ZECId = base58'BrjUWjndUanm5VsJkbUip8VRYy6LWJePtxya3FNv4TQa'
9+let DASHId = base58'B3uGHFRpSUuGEDWjqB9LWWxafQj8VTvpMucEyoxzws5H'
10+let XMRId = base58'5WvPKSJXzVE2orvbkJ8wsQmmQKqTv9sGBPksV4adViw3'
11+let USDId = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
12+let EURId = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
513 match tx {
614 case ex: ExchangeTransaction =>
715 let pair = AssetPair(assetId, unit)
8- let rate = extract(getInteger(issuer, "exchangeRate"))
9- let rateDiff = (rate - fraction(100000000, ex.price, ex.amount))
10- if (if ((ex.buyOrder.assetPair == pair))
11- then (rateDiff > -100)
12- else false)
13- then (100 > rateDiff)
14- else false
16+ let sell = sigVerify(ex.sellOrder.bodyBytes, ex.sellOrder.proofs[0], ex.sellOrder.senderPublicKey)
17+ let buy = true
18+ let tradeWAVES = extract(getBoolean(issuer, "tradeWAVES"))
19+ let minPriceWAVES = extract(getInteger(issuer, "minPriceWAVES"))
20+ let maxPriceWAVES = extract(getInteger(issuer, "maxPriceWAVES"))
21+ let alertWAVES = extract(getString(issuer, "alertWAVES"))
22+ let tradeBTC = extract(getBoolean(issuer, "tradeBTC"))
23+ let minPriceBTC = extract(getInteger(issuer, "minPriceBTC"))
24+ let maxPriceBTC = extract(getInteger(issuer, "maxPriceBTC"))
25+ let alertBTC = extract(getString(issuer, "alertBTC"))
26+ let tradeETH = extract(getBoolean(issuer, "tradeETH"))
27+ let minPriceETH = extract(getInteger(issuer, "minPriceETH"))
28+ let maxPriceETH = extract(getInteger(issuer, "maxPriceETH"))
29+ let alertETH = extract(getString(issuer, "alertETH"))
30+ let tradeLTC = extract(getBoolean(issuer, "tradeLTC"))
31+ let minPriceLTC = extract(getInteger(issuer, "minPriceLTC"))
32+ let maxPriceLTC = extract(getInteger(issuer, "maxPriceLTC"))
33+ let alertLTC = extract(getString(issuer, "alertLTC"))
34+ let tradeZEC = extract(getBoolean(issuer, "tradeZEC"))
35+ let minPriceZEC = extract(getInteger(issuer, "minPriceZEC"))
36+ let maxPriceZEC = extract(getInteger(issuer, "maxPriceZEC"))
37+ let alertZEC = extract(getString(issuer, "alertZEC"))
38+ let tradeDASH = extract(getBoolean(issuer, "tradeDASH"))
39+ let minPriceDASH = extract(getInteger(issuer, "minPriceDASH"))
40+ let maxPriceDASH = extract(getInteger(issuer, "minPriceDASH"))
41+ let alertDASH = extract(getString(issuer, "alertDASH"))
42+ let tradeXMR = extract(getBoolean(issuer, "tradeXMR"))
43+ let minPriceXMR = extract(getInteger(issuer, "minPriceXMR"))
44+ let maxPriceXMR = extract(getInteger(issuer, "minPriceXMR"))
45+ let alertXMR = extract(getString(issuer, "alertXMR"))
46+ let tradeUSD = extract(getBoolean(issuer, "tradeUSD"))
47+ let minPriceUSD = extract(getInteger(issuer, "minPriceUSD"))
48+ let maxPriceUSD = extract(getInteger(issuer, "minPriceUSD"))
49+ let alertUSD = extract(getString(issuer, "alertUSD"))
50+ let tradeEUR = extract(getBoolean(issuer, "tradeEUR"))
51+ let minPriceEUR = extract(getInteger(issuer, "minPriceEUR"))
52+ let maxPriceEUR = extract(getInteger(issuer, "minPriceEUR"))
53+ let alertEUR = extract(getString(issuer, "alertEUR"))
54+ let tradeTOKENS = extract(getBoolean(issuer, "tradeTOKENS"))
55+ if (sell)
56+ then if (if (tradeWAVES)
57+ then (ex.buyOrder.assetPair == pair)
58+ else false)
59+ then if (if ((ex.price >= minPriceWAVES))
60+ then (maxPriceWAVES >= ex.price)
61+ else false)
62+ then true
63+ else throw(alertWAVES)
64+ else if (if (tradeBTC)
65+ then (ex.sellOrder.assetPair.priceAsset == BTCId)
66+ else false)
67+ then if (if ((ex.price >= minPriceBTC))
68+ then (maxPriceBTC >= ex.price)
69+ else false)
70+ then true
71+ else throw("alert")
72+ else if (if (tradeETH)
73+ then (ex.sellOrder.assetPair.priceAsset == ETHId)
74+ else false)
75+ then if (if ((ex.price >= minPriceETH))
76+ then (maxPriceETH >= ex.price)
77+ else false)
78+ then true
79+ else throw("alert")
80+ else if (if (tradeLTC)
81+ then (ex.sellOrder.assetPair.priceAsset == LTCId)
82+ else false)
83+ then if (if ((ex.price >= minPriceLTC))
84+ then (maxPriceLTC >= ex.price)
85+ else false)
86+ then true
87+ else throw("alert")
88+ else if (if (tradeZEC)
89+ then (ex.sellOrder.assetPair.priceAsset == ZECId)
90+ else false)
91+ then if (if ((ex.price >= minPriceZEC))
92+ then (maxPriceZEC >= ex.price)
93+ else false)
94+ then true
95+ else throw("alert")
96+ else if (if (tradeDASH)
97+ then (ex.sellOrder.assetPair.priceAsset == DASHId)
98+ else false)
99+ then if (if ((ex.price >= minPriceDASH))
100+ then (maxPriceDASH >= ex.price)
101+ else false)
102+ then true
103+ else throw("alert")
104+ else if (if (tradeXMR)
105+ then (ex.sellOrder.assetPair.priceAsset == XMRId)
106+ else false)
107+ then if (if ((ex.price >= minPriceXMR))
108+ then (maxPriceXMR >= ex.price)
109+ else false)
110+ then true
111+ else throw("alert")
112+ else if (if (tradeUSD)
113+ then (ex.sellOrder.assetPair.priceAsset == USDId)
114+ else false)
115+ then if (if ((ex.price >= minPriceUSD))
116+ then (maxPriceUSD >= ex.price)
117+ else false)
118+ then true
119+ else throw("alert")
120+ else if (if (tradeEUR)
121+ then (ex.sellOrder.assetPair.priceAsset == EURId)
122+ else false)
123+ then if (if ((ex.price >= minPriceEUR))
124+ then (maxPriceEUR >= ex.price)
125+ else false)
126+ then true
127+ else throw("alert")
128+ else if (tradeTOKENS)
129+ then true
130+ else throw("Teste07 e negociavel apenas em BTC, ETH, ZEC...")
131+ else if (buy)
132+ then true
133+ else false
15134 case _ =>
16135 true
17136 }

github/deemru/w8io/169f3d6 
40.09 ms