tx · GrzNwmpCyNnEwmBGEf7APtTstKkW7vfYjgFxcobsHHSo

3N9WCjPLrsncDVHTniEmTzmVjZnSQ52zVzK:  -0.01400000 Waves

2020.04.14 19:11 [954312] smart account 3N9WCjPLrsncDVHTniEmTzmVjZnSQ52zVzK > SELF 0.00000000 Waves

{ "type": 13, "id": "GrzNwmpCyNnEwmBGEf7APtTstKkW7vfYjgFxcobsHHSo", "fee": 1400000, "feeAssetId": null, "timestamp": 1586880745790, "version": 1, "sender": "3N9WCjPLrsncDVHTniEmTzmVjZnSQ52zVzK", "senderPublicKey": "9DJLcNVANhhNwbR2cK7CKSGMeeV8jJzZFxAqw1U4aMrR", "proofs": [ "3oQYDT6jXpBHrfGhF6KtMggF2f4pctSJw41SUtmEaZWqhtUBUhWHzmmvGazPaaMGhNYYqH9o7CFKAQDPcfBuZYrG" ], "script": "base64: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AAQAAAAAD25ldXRyaW5vQWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABAgAAACxCUm5Wd1NWY3RuVjhwZ2U1dlJwc0pkV25raldFSnNwRmI2UXZybVp2dTNIdAAAAAASbGlxdWlkYXRpb25BZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAECAAAALEg4R29vcWdrNDQ4Nk1rcUVRVndBQ3Bnb3lFanQ1UHg0ZXNreXNuRURaMW5SAAAAAA1uZXV0cmlub0Fzc2V0CQACWQAAAAECAAAALERHMnhGa1BkRHdLVW9Ca3pHQWhRdExwU0d6ZlhMaUNZUEV6ZUtIMkFkMjRwAAAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAPbmV1dHJpbm9BZGRyZXNzAgAAABViYWxhbmNlX2xvY2tfbmV1dHJpbm8DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAAAAAASd2F2ZXNMb2NrZWRCYWxhbmNlBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAAD25ldXRyaW5vQWRkcmVzcwIAAAASYmFsYW5jZV9sb2NrX3dhdmVzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAAAAAAB3Jlc2VydmUJAABlAAAAAgkBAAAADHdhdmVzQmFsYW5jZQAAAAEFAAAAD25ldXRyaW5vQWRkcmVzcwUAAAASd2F2ZXNMb2NrZWRCYWxhbmNlAAAAAA5uZXV0cmlub1N1cHBseQkAAGUAAAACCQAAZQAAAAIJAABkAAAAAgUAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlCAkBAAAAB2V4dHJhY3QAAAABCQAD7AAAAAEFAAAADW5ldXRyaW5vQXNzZXQAAAAIcXVhbnRpdHkJAAPrAAAAAgUAAAAPbmV1dHJpbm9BZGRyZXNzBQAAAA1uZXV0cmlub0Fzc2V0CQAD6wAAAAIFAAAAEmxpcXVpZGF0aW9uQWRkcmVzcwUAAAANbmV1dHJpbm9Bc3Nl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", "chainId": 84, "height": 954312, "spentComplexity": 0 } View: original | compacted Prev: CMtfKXq64na3bfgR5ZftRhcLuU4E7ZbLdd4DvR6rqs4e Next: none Diff:
OldNewDifferences
7676
7777 let bftCoefficientOracle = 4
7878
79-let neutrinoAddress = extract(addressFromString("3MxhtMQz47hfKtguyjk8gbF7zqPXBMgMUXL"))
79+let neutrinoAddress = addressFromPublicKey(fromBase58String("BRnVwSVctnV8pge5vRpsJdWnkjWEJspFb6QvrmZvu3Ht"))
8080
81-let liquidationAddress = extract(addressFromString("3N3kmathD6rtdmwdrHcyVFRBoifjn23WtxH"))
81+let liquidationAddress = addressFromPublicKey(fromBase58String("H8Gooqgk4486MkqEQVwACpgoyEjt5Px4eskysnEDZ1nR"))
8282
83-let neutrinoAsset = toBytes("JBhvgnAw39EzX3YQ5uBzpRfsmwZ2qGfvw9CKcH5Nppqc")
83+let neutrinoAsset = fromBase58String("DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p")
8484
8585 let neutrinoLockedBalance = match getInteger(neutrinoAddress, "balance_lock_neutrino") {
8686 case a: Int =>
286286 @Callable(i)
287287 func finalizeCurrentPrice (price1) = {
288288 let newPrice = price1
289- let newPriceIndex = (priceIndex + 1)
290- WriteSet([DataEntry("price", newPrice), DataEntry(("price_" + toString(height)), newPrice), DataEntry("price_index", newPriceIndex), DataEntry(("price_index_" + toString(newPriceIndex)), height), DataEntry(("deficit_" + toString(height)), deficit), DataEntry(("neutrinoSupply_" + toString(height)), neutrinoSupply), DataEntry(("deficit_percent_" + toString(height)), if ((neutrinoSupply != 0))
291- then ((deficit * 100) / neutrinoSupply)
292- else 0)])
289+ WriteSet([DataEntry("price", newPrice)])
293290 }
294291
295292
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func convertWavesToNeutrino (amount,price) = fraction(fraction(amount, price, 100), 1000000, 100000000)
55
66
77 func getStringByKey (key) = match getString(this, key) {
88 case a: String =>
99 a
1010 case _ =>
1111 ""
1212 }
1313
1414
1515 func getNumberByAddressAndKey (address,key) = match getInteger(addressFromStringValue(address), key) {
1616 case a: Int =>
1717 a
1818 case _ =>
1919 0
2020 }
2121
2222
2323 func getOracleProvideHeight (ownerPub,height) = match getInteger(addressFromPublicKey(ownerPub), ("price_" + toString(height))) {
2424 case a: Int =>
2525 a
2626 case _ =>
2727 0
2828 }
2929
3030
3131 func getStringByAddressAndKey (address,key) = match getString(address, key) {
3232 case a: String =>
3333 a
3434 case _ =>
3535 ""
3636 }
3737
3838
3939 func dropElementInJsonArray (array,element) = {
4040 let splitedArray = split(array, element)
4141 if ((take(splitedArray[1], 1) == ","))
4242 then (splitedArray[0] + drop(splitedArray[1], 1))
4343 else (dropRight(splitedArray[0], 1) + splitedArray[1])
4444 }
4545
4646
4747 func convertJsonArrayToList (jsonArray) = split(jsonArray, ",")
4848
4949
5050 let price = match getInteger(this, "price") {
5151 case a: Int =>
5252 a
5353 case _ =>
5454 0
5555 }
5656
5757 let priceIndex = match getInteger(this, "price_index") {
5858 case a: Int =>
5959 a
6060 case _ =>
6161 0
6262 }
6363
6464 let isBlocked = match getBoolean(this, "is_blocked") {
6565 case a: Boolean =>
6666 a
6767 case _ =>
6868 false
6969 }
7070
7171 let percentPriceOffset = 7
7272
7373 let pubKeyOracles = getStringByKey("oracles")
7474
7575 let pubKeyOraclesList = convertJsonArrayToList(pubKeyOracles)
7676
7777 let bftCoefficientOracle = 4
7878
79-let neutrinoAddress = extract(addressFromString("3MxhtMQz47hfKtguyjk8gbF7zqPXBMgMUXL"))
79+let neutrinoAddress = addressFromPublicKey(fromBase58String("BRnVwSVctnV8pge5vRpsJdWnkjWEJspFb6QvrmZvu3Ht"))
8080
81-let liquidationAddress = extract(addressFromString("3N3kmathD6rtdmwdrHcyVFRBoifjn23WtxH"))
81+let liquidationAddress = addressFromPublicKey(fromBase58String("H8Gooqgk4486MkqEQVwACpgoyEjt5Px4eskysnEDZ1nR"))
8282
83-let neutrinoAsset = toBytes("JBhvgnAw39EzX3YQ5uBzpRfsmwZ2qGfvw9CKcH5Nppqc")
83+let neutrinoAsset = fromBase58String("DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p")
8484
8585 let neutrinoLockedBalance = match getInteger(neutrinoAddress, "balance_lock_neutrino") {
8686 case a: Int =>
8787 a
8888 case _ =>
8989 0
9090 }
9191
9292 let wavesLockedBalance = match getInteger(neutrinoAddress, "balance_lock_waves") {
9393 case a: Int =>
9494 a
9595 case _ =>
9696 0
9797 }
9898
9999 let reserve = (wavesBalance(neutrinoAddress) - wavesLockedBalance)
100100
101101 let neutrinoSupply = (((neutrinoLockedBalance + extract(assetInfo(neutrinoAsset)).quantity) - assetBalance(neutrinoAddress, neutrinoAsset)) - assetBalance(liquidationAddress, neutrinoAsset))
102102
103103 let deficit = (neutrinoSupply - convertWavesToNeutrino(reserve, price))
104104
105105 func findPricesInRange (prices) = {
106106 let minPercentBound = 90
107107 let maxPercentBound = 110
108108 let p0 = prices[0]
109109 let check0 = if ((0 >= prices[0]))
110110 then [0]
111111 else {
112112 let p01 = ((prices[1] * 100) / p0)
113113 let p02 = ((prices[2] * 100) / p0)
114114 let p03 = ((prices[3] * 100) / p0)
115115 let p04 = ((prices[4] * 100) / p0)
116116 let array1 = if (if ((maxPercentBound > p01))
117117 then (p01 > minPercentBound)
118118 else false)
119119 then [1, 0]
120120 else [0]
121121 let array2 = if (if ((maxPercentBound > p02))
122122 then (p02 > minPercentBound)
123123 else false)
124124 then 2 :: array1
125125 else array1
126126 let array3 = if (if ((maxPercentBound > p03))
127127 then (p03 > minPercentBound)
128128 else false)
129129 then 3 :: array2
130130 else array2
131131 if (if ((maxPercentBound > p04))
132132 then (p04 > minPercentBound)
133133 else false)
134134 then 4 :: array3
135135 else array3
136136 }
137137 let check1 = if ((size(check0) >= 3))
138138 then check0
139139 else {
140140 let p1 = prices[1]
141141 if ((0 >= p1))
142142 then [1]
143143 else {
144144 let p10 = ((prices[0] * 100) / p1)
145145 let p12 = ((prices[2] * 100) / p1)
146146 let p13 = ((prices[3] * 100) / p1)
147147 let p14 = ((prices[4] * 100) / p1)
148148 let array1 = if (if ((maxPercentBound > p10))
149149 then (p10 > minPercentBound)
150150 else false)
151151 then [0, 1]
152152 else [1]
153153 let array2 = if (if ((maxPercentBound > p12))
154154 then (p12 > minPercentBound)
155155 else false)
156156 then 2 :: array1
157157 else array1
158158 let array3 = if (if ((maxPercentBound > p13))
159159 then (p13 > minPercentBound)
160160 else false)
161161 then 3 :: array2
162162 else array2
163163 if (if ((maxPercentBound > p14))
164164 then (p14 > minPercentBound)
165165 else false)
166166 then 4 :: array3
167167 else array3
168168 }
169169 }
170170 let check2 = if ((size(check1) >= 3))
171171 then check1
172172 else {
173173 let p2 = prices[2]
174174 if ((0 >= p2))
175175 then [2]
176176 else {
177177 let p20 = ((prices[0] * 100) / p2)
178178 let p21 = ((prices[1] * 100) / p2)
179179 let p23 = ((prices[3] * 100) / p2)
180180 let p24 = ((prices[4] * 100) / p2)
181181 let array1 = if (if ((maxPercentBound > p20))
182182 then (p20 > minPercentBound)
183183 else false)
184184 then [0, 2]
185185 else [2]
186186 let array2 = if (if ((maxPercentBound > p21))
187187 then (p21 > minPercentBound)
188188 else false)
189189 then 1 :: array1
190190 else array1
191191 let array3 = if (if ((maxPercentBound > p23))
192192 then (p23 > minPercentBound)
193193 else false)
194194 then 3 :: array2
195195 else array2
196196 if (if ((maxPercentBound > p24))
197197 then (p24 > minPercentBound)
198198 else false)
199199 then 4 :: array3
200200 else array3
201201 }
202202 }
203203 let check3 = if ((size(check2) >= 3))
204204 then check2
205205 else {
206206 let p3 = prices[3]
207207 if ((0 >= p3))
208208 then [3]
209209 else {
210210 let p30 = ((prices[0] * 100) / p3)
211211 let p31 = ((prices[1] * 100) / p3)
212212 let p32 = ((prices[2] * 100) / p3)
213213 let p34 = ((prices[4] * 100) / p3)
214214 let array1 = if (if ((maxPercentBound > p30))
215215 then (p30 > minPercentBound)
216216 else false)
217217 then [0, 3]
218218 else [3]
219219 let array2 = if (if ((maxPercentBound > p31))
220220 then (p31 > minPercentBound)
221221 else false)
222222 then 1 :: array1
223223 else array1
224224 let array3 = if (if ((maxPercentBound > p32))
225225 then (p32 > minPercentBound)
226226 else false)
227227 then 2 :: array2
228228 else array2
229229 if (if ((maxPercentBound > p34))
230230 then (p34 > minPercentBound)
231231 else false)
232232 then 4 :: array3
233233 else array3
234234 }
235235 }
236236 if ((size(check3) >= 3))
237237 then check3
238238 else {
239239 let p4 = prices[4]
240240 if ((0 >= p4))
241241 then [4]
242242 else {
243243 let p40 = ((prices[0] * 100) / p4)
244244 let p41 = ((prices[1] * 100) / p4)
245245 let p42 = ((prices[2] * 100) / p4)
246246 let p43 = ((prices[3] * 100) / p4)
247247 let array1 = if (if ((maxPercentBound > p40))
248248 then (p40 > minPercentBound)
249249 else false)
250250 then [0, 4]
251251 else [4]
252252 let array2 = if (if ((maxPercentBound > p41))
253253 then (p41 > minPercentBound)
254254 else false)
255255 then 1 :: array1
256256 else array1
257257 let array3 = if (if ((maxPercentBound > p42))
258258 then (p42 > minPercentBound)
259259 else false)
260260 then 2 :: array2
261261 else array2
262262 if (if ((maxPercentBound > p43))
263263 then (p43 > minPercentBound)
264264 else false)
265265 then 3 :: array3
266266 else array3
267267 }
268268 }
269269 }
270270
271271
272272 func formattingPriceMsg (price,height) = toBytes((((("WAVESNEUTRINOPREFIX" + "_") + toString(height)) + "_") + toString(price)))
273273
274274
275275 @Callable(i)
276276 func callEmergencyShutdown (reason) = {
277277 let AutoEmergencyOracleAddress = "3P7ihFVxBNbHK237TNdPxT1xHEu8pHexXTr"
278278 let callerAddress = toString(i.caller)
279279 if ((AutoEmergencyOracleAddress != callerAddress))
280280 then throw("caller must be one an emergency oracle")
281281 else WriteSet([DataEntry("is_blocked", true), DataEntry("is_blocked_caller", callerAddress), DataEntry("is_blocked_reason", reason)])
282282 }
283283
284284
285285
286286 @Callable(i)
287287 func finalizeCurrentPrice (price1) = {
288288 let newPrice = price1
289- let newPriceIndex = (priceIndex + 1)
290- WriteSet([DataEntry("price", newPrice), DataEntry(("price_" + toString(height)), newPrice), DataEntry("price_index", newPriceIndex), DataEntry(("price_index_" + toString(newPriceIndex)), height), DataEntry(("deficit_" + toString(height)), deficit), DataEntry(("neutrinoSupply_" + toString(height)), neutrinoSupply), DataEntry(("deficit_percent_" + toString(height)), if ((neutrinoSupply != 0))
291- then ((deficit * 100) / neutrinoSupply)
292- else 0)])
289+ WriteSet([DataEntry("price", newPrice)])
293290 }
294291
295292

github/deemru/w8io/873ac7e 
54.52 ms