tx · 3M8aovC9smS3uhLJFRCAvrsCGYFDvYyPLTZ5Z2xbw93v

3N4W71f8BiDEH96FSmxHH6GBoAmRhw9AErq:  -0.01500000 Waves

2019.10.01 20:58 [700968] smart account 3N4W71f8BiDEH96FSmxHH6GBoAmRhw9AErq > SELF 0.00000000 Waves

{ "type": 13, "id": "3M8aovC9smS3uhLJFRCAvrsCGYFDvYyPLTZ5Z2xbw93v", "fee": 1500000, "feeAssetId": null, "timestamp": 1569951058189, "version": 1, "sender": "3N4W71f8BiDEH96FSmxHH6GBoAmRhw9AErq", "senderPublicKey": "59Rtw6Eb7rwVJNzaMB7V5F1UPNidytBqgPZFQaf6zTMZ", "proofs": [ "31bFp461VEB3WAYBmU6UDcdayKDqTj6eTaG7iNfAiarBUDXQu2s7zFB1bCVkABwrdfZetcvpqJUsEbiU88yZ8mXp" ], "script": "base64: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c2VsbE9yZGVyAAAACWFzc2V0UGFpcgAAAApwcmljZUFzc2V0BQAAAAV1c2RJZAkAAGcAAAACCAUAAAABZQAAAAVwcmljZQkAAGkAAAACBQAAAAlldXJvS29lZmYFAAAACHVzZFByaWNlAwkAAAAAAAACCAgIBQAAAAFlAAAACXNlbGxPcmRlcgAAAAlhc3NldFBhaXIAAAAKcHJpY2VBc3NldAUAAAAFZXVySWQJAABnAAAAAggFAAAAAWUAAAAFcHJpY2UFAAAACWV1cm9Lb2VmZgcDAwMFAAAAEmJ1eU9yZGVyRXhwaXJhdGlvbgUAAAATc2VsbE9yZGVyRXhwaXJhdGlvbgcFAAAADWJ1eU9yZGVyQ2hlY2sHBQAAAA5zZWxsT3JkZXJDaGVjawcDAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9CdXJuVHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdNYXNzVHJhbnNmZXJUcmFuc2FjdGlvbgYJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAABYQUAAAAHJG1hdGNoMAYHf5xpoQ==", "chainId": 84, "height": 700968, "spentComplexity": 0 } View: original | compacted Prev: 5nJWuSDrqAYuFkuUhzWFvvoPVMeX2PhUz1PxWBCKvpL6 Next: none Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
2-{-# SCRIPT_TYPE ACCOUNT #-}
3-{-# CONTENT_TYPE DAPP #-}
4-
5-
6-@Callable(i)
7-func a () = {
8- let oracleAddress = "3N4W71f8BiDEH96FSmxHH6GBoAmRhw9AErq"
9- let euroPrice = match getString(addressFromStringValue(oracleAddress), "EUR") {
10- case a: String =>
11- a
12- case _ =>
13- throw("Couldn't find Euro Price")
14- }
15- let euroPriceList = split(euroPrice, ".")
16- let euroPrice2 = (euroPriceList[0] + euroPriceList[1])
17- let euroPrice3 = parseIntValue(take(euroPrice2, 4))
18- WriteSet([DataEntry("euroPrice", euroPrice), DataEntry("euroPrice2", euroPrice2), DataEntry("euroPrice3", euroPrice3)])
19- }
20-
21-
22-
23-@Callable(i)
24-func b (cousre) = WriteSet([DataEntry("EUR", cousre)])
25-
26-
2+{-# CONTENT_TYPE EXPRESSION #-}
3+let startHeight = 573540
4+let startPrice = 100000000
5+let weekInterval = (1440 * 7)
6+let oracleAddress = "3N4W71f8BiDEH96FSmxHH6GBoAmRhw9AErq"
7+let btcId = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
8+let ethId = base58'474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu'
9+let ltcId = base58'HZk1mbfuJpmxU1Fs4AX5MWLVYtctsNcg6e2C6VKqK8zk'
10+let usdId = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
11+let eurId = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
12+let btcPrice = match getInteger(addressFromStringValue(oracleAddress), "BTC/EUR") {
13+ case a: Int =>
14+ a
15+ case _ =>
16+ throw("Couldn't find BTC/EUR price")
17+}
18+let ethPrice = match getInteger(addressFromStringValue(oracleAddress), "ETH/EUR") {
19+ case a: Int =>
20+ a
21+ case _ =>
22+ throw("Couldn't find ETH/EUR price")
23+}
24+let ltcPrice = match getInteger(addressFromStringValue(oracleAddress), "LTC/EUR") {
25+ case a: Int =>
26+ a
27+ case _ =>
28+ throw("Couldn't find LTC/EUR price")
29+}
30+let usdPrice = match getInteger(addressFromStringValue(oracleAddress), "USD/EUR") {
31+ case a: Int =>
32+ a
33+ case _ =>
34+ throw("Couldn't find USD/EUR price")
35+}
36+match tx {
37+ case e: ExchangeTransaction =>
38+ let weeks = ((height - startHeight) / weekInterval)
39+ let euroKoeff = (startPrice + ((startPrice * weeks) / 10))
40+ let buyOrderExpiration = (weekInterval >= (e.buyOrder.expiration - e.buyOrder.timestamp))
41+ let sellOrderExpiration = (weekInterval >= (e.sellOrder.expiration - e.sellOrder.timestamp))
42+ let buyOrderCheck = if ((e.buyOrder.assetPair.priceAsset == btcId))
43+ then (e.price >= (euroKoeff / btcPrice))
44+ else if ((e.buyOrder.assetPair.priceAsset == ethId))
45+ then (e.price >= (euroKoeff / ethPrice))
46+ else if ((e.buyOrder.assetPair.priceAsset == ltcId))
47+ then (e.price >= (euroKoeff / ltcPrice))
48+ else if ((e.buyOrder.assetPair.priceAsset == usdId))
49+ then (e.price >= (euroKoeff / usdPrice))
50+ else if ((e.buyOrder.assetPair.priceAsset == eurId))
51+ then (e.price >= euroKoeff)
52+ else false
53+ let sellOrderCheck = if ((e.sellOrder.assetPair.priceAsset == btcId))
54+ then (e.price >= (euroKoeff / btcPrice))
55+ else if ((e.sellOrder.assetPair.priceAsset == ethId))
56+ then (e.price >= (euroKoeff / ethPrice))
57+ else if ((e.sellOrder.assetPair.priceAsset == ltcId))
58+ then (e.price >= (euroKoeff / ltcPrice))
59+ else if ((e.sellOrder.assetPair.priceAsset == usdId))
60+ then (e.price >= (euroKoeff / usdPrice))
61+ else if ((e.sellOrder.assetPair.priceAsset == eurId))
62+ then (e.price >= euroKoeff)
63+ else false
64+ if (if (if (buyOrderExpiration)
65+ then sellOrderExpiration
66+ else false)
67+ then buyOrderCheck
68+ else false)
69+ then sellOrderCheck
70+ else false
71+ case a: BurnTransaction|MassTransferTransaction|TransferTransaction =>
72+ true
73+ case _ =>
74+ false
75+}

github/deemru/w8io/873ac7e 
186.85 ms