tx · B1q93MXbL15CcSAQSoxYF4qktGyFk3WbD3PySCJvU4Ai

3P5BTtdj32Sd1Dyh1Mdw33xQAAckSfMfnKf:  -0.01100000 Waves

2022.09.10 14:16 [3288438] smart account 3P5BTtdj32Sd1Dyh1Mdw33xQAAckSfMfnKf > SELF 0.00000000 Waves

{ "type": 13, "id": "B1q93MXbL15CcSAQSoxYF4qktGyFk3WbD3PySCJvU4Ai", "fee": 1100000, "feeAssetId": null, "timestamp": 1662808567388, "version": 2, "chainId": 87, "sender": "3P5BTtdj32Sd1Dyh1Mdw33xQAAckSfMfnKf", "senderPublicKey": "C2UDsiqKYoTm9rgUWvEJ63etAQiqv7WUZT97uHJZYVgq", "proofs": [ "3QvBT6jsyiwi4vzoHx9PK2vM1cDQVHhiotcjnpHXXgZiug1nTLSdFFMTmpRHPWjDiQfjcekc2wAKPUzjugjHNYnv" ], "script": "base64:BgIgCAISAwoBGBIECgIIBBIFCgMBCAQSBAoCCAQSBAoCCAQHABNsYXN0VXBkYXRlZEJsb2NrS2V5AhBsYXN0VXBkYXRlZEJsb2NrABJ3aGl0ZUxpc3RBZGRyZXNzZXMJAMwIAgkBB0FkZHJlc3MBARoBV7PVklRJCZoqEPvG+J8QdqvvPw9ypYkVjAUDbmlsAAduMTVMaXN0CQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABBQNuaWwAB242MExpc3QJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEJAMwIAgABCQDMCAIAAQkAzAgCAAEFA25pbAEPZ2V0UHJpY2VEYXRhS2V5AwVibG9jawR0eXBlB3Rva2VuSWQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgZibG9ja18JAKQDAQUFYmxvY2sCAV8FBHR5cGUCAV8FB3Rva2VuSWQBDWdldFByaWNlVmFsdWUDB3Rva2VuSWQEdHlwZQVibG9jawQGbkJsb2NrBAckbWF0Y2gwBQVibG9jawMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJARFAZXh0ck5hdGl2ZSgxMDU1KQEFE2xhc3RVcGRhdGVkQmxvY2tLZXkDCQBnAgAABQZuQmxvY2sJAAIBAhNJbnZhbGlkIGJsb2NrIHZhbHVlAwMJAAACBQR0eXBlAgNtaW4GCQAAAgUEdHlwZQIDbWF4CQELdmFsdWVPckVsc2UCCQCfCAEJAQ9nZXRQcmljZURhdGFLZXkDBQZuQmxvY2sFBHR5cGUFB3Rva2VuSWQAAAkAAgECD1dyb25nIHR5cGUgbmFtZQETZ2V0UHJpY2VEYXRhRW50cmllcwIJcHJpY2VMaXN0BmhlaWdodAoBC3Byb2Nlc3NMaXN0AgVhY2N1bQRuZXh0BAZwYXJzZWQJALUJAgUEbmV4dAIBXwQHdG9rZW5JZAkAkQMCBQZwYXJzZWQAAAQIbmV3UHJpY2UJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFBnBhcnNlZAABAhpJbnZhbGlkIHZhbHVlIHBhcnNlZCBwcmljZQQLa2V5TWluUHJpY2UJAQ9nZXRQcmljZURhdGFLZXkDBQZoZWlnaHQCA21pbgUHdG9rZW5JZAQLa2V5TWF4UHJpY2UJAQ9nZXRQcmljZURhdGFLZXkDBQZoZWlnaHQCA21heAUHdG9rZW5JZAQPY3VycmVudE1pblByaWNlCQELdmFsdWVPckVsc2UCCQCfCAEFC2tleU1pblByaWNlAAAED2N1cnJlbnRNYXhQcmljZQkBC3ZhbHVlT3JFbHNlAgkAnwgBBQtrZXlNYXhQcmljZQAAAwkAZwIAAAUIbmV3UHJpY2UJAAIBAiFQcmljZSBjYW5ub3QgYmUgemVybyBvciBsZXNzIHplcm8DCQAAAgkAsQIBBQd0b2tlbklkAAAJAAIBAhdJbmF2YWxpZCB2YWx1ZSB0b2tlbiBJZAMDCQAAAgUPY3VycmVudE1heFByaWNlAAAJAAACBQ9jdXJyZW50TWluUHJpY2UAAAcJAM4IAgUFYWNjdW0JAMwIAgkBDEludGVnZXJFbnRyeQIFC2tleU1pblByaWNlBQhuZXdQcmljZQkAzAgCCQEMSW50ZWdlckVudHJ5AgULa2V5TWF4UHJpY2UFCG5ld1ByaWNlBQNuaWwDCQBmAgUPY3VycmVudE1pblByaWNlBQhuZXdQcmljZQkAzQgCBQVhY2N1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AgNtaW4FBHVuaXQCBywgbWF4OiAJAKQDAQkBDWdldFByaWNlVmFsdWUDBQd0b2tlbklkAgNtYXgFBHVuaXQJAJQKAgUDbmlsCQCUCgIJAQ1nZXRQcmljZVZhbHVlAwUHdG9rZW5JZAIDbWluBQR1bml0CQENZ2V0UHJpY2VWYWx1ZQMFB3Rva2VuSWQCA21heAUEdW5pdAFpAQpnZXRQcmljZUF0AwVibG9jawd0b2tlbklkBWRlYnVnAwUFZGVidWcJAAIBCQCsAgIJAKwCAgkArAICAgVtaW46IAkApAMBCQENZ2V0UHJpY2VWYWx1ZQMFB3Rva2VuSWQCA21pbgUFYmxvY2sCBywgbWF4OiAJAKQDAQkBDWdldFByaWNlVmFsdWUDBQd0b2tlbklkAgNtYXgFBWJsb2NrCQCUCgIFA25pbAkAlAoCCQENZ2V0UHJpY2VWYWx1ZQMFB3Rva2VuSWQCA21pbgUFYmxvY2sJAQ1nZXRQcmljZVZhbHVlAwUHdG9rZW5JZAIDbWF4BQVibG9jawFpAQlnZXRUV0FQNjACB3Rva2VuSWQFZGVidWcEEGxhc3RVcGRhdGVkQmxvY2sJARFAZXh0ck5hdGl2ZSgxMDU1KQEFE2xhc3RVcGRhdGVkQmxvY2tLZXkKAQxnZXRQcmljZUxpc3QCBWFjY3VtBG5leHQECyR0MDM2ODczNzIwBQVhY2N1bQQGcmVzdWx0CAULJHQwMzY4NzM3MjACXzEEBWJsb2NrCAULJHQwMzY4NzM3MjACXzIEBHR5cGUIBQskdDAzNjg3MzcyMAJfMwQKcHJpY2VWYWx1ZQkBDWdldFByaWNlVmFsdWUDBQd0b2tlbklkBQR0eXBlBQVibG9jawQJbmV4dEJsb2NrCQBlAgUFYmxvY2sFBG5leHQDCQBmAgUKcHJpY2VWYWx1ZQAACQCVCgMJAM0IAgUGcmVzdWx0BQpwcmljZVZhbHVlBQluZXh0QmxvY2sFBHR5cGUJAJUKAwUGcmVzdWx0BQluZXh0QmxvY2sFBHR5cGUEDW1pblByaWNlc0xpc3QKAAIkbAUHbjYwTGlzdAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJUKAwUDbmlsBRBsYXN0VXBkYXRlZEJsb2NrAgNtaW4KAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRz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dmVyYWdlAgosIG1pblN1bTogCQCkAwEFBm1pblN1bQIKLCBtYXhTdW06IAkApAMBBQZtYXhTdW0JAJQKAgUDbmlsCQCUCgIFCm1pbkF2ZXJhZ2UFCm1heEF2ZXJhZ2UBaQEJZ2V0VFdBUDE1Agd0b2tlbklkBWRlYnVnBBBsYXN0VXBkYXRlZEJsb2NrCQERQGV4dHJOYXRpdmUoMTA1NSkBBRNsYXN0VXBkYXRlZEJsb2NrS2V5CgEMZ2V0UHJpY2VMaXN0AgVhY2N1bQRuZXh0BAskdDA1MDI4NTA2MQUFYWNjdW0EBnJlc3VsdAgFCyR0MDUwMjg1MDYxAl8xBAVibG9jawgFCyR0MDUwMjg1MDYxAl8yBAR0eXBlCAULJHQwNTAyODUwNjECXzMECnByaWNlVmFsdWUJAQ1nZXRQcmljZVZhbHVlAwUHdG9rZW5JZAUEdHlwZQUFYmxvY2sECW5leHRCbG9jawkAZQIFBWJsb2NrBQRuZXh0AwkAZgIFCnByaWNlVmFsdWUAAAkAlQoDCQDNCAIFBnJlc3VsdAUKcHJpY2VWYWx1ZQUJbmV4dEJsb2NrBQR0eXBlCQCVCgMFBnJlc3VsdAUJbmV4dEJsb2NrBQR0eXBlBA1taW5QcmljZXNMaXN0CgACJGwFB24xNUxpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCVCgMFA25pbAUQbGFzdFVwZGF0ZWRCbG9jawIDbWluCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQxnZXRQcmljZUxpc3QCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE1CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPBA1tYXhQcmljZXNMaXN0CgACJGwFB24xNUxpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCVCgMFA25pbAUQbGFzdFVwZGF0ZWRCbG9jawIDbWF4CgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQxnZXRQcmljZUxpc3QCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE1CQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPCgEDc3VtAgVhY2N1bQRuZXh0CQBkAgUFYWNjdW0FBG5leHQEBm1pblN1bQoAAiRsCAUNbWluUHJpY2VzTGlzdAJfMQoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMl8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEDc3VtAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYyXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBBSRmMl8yAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwQGbWF4U3VtCgACJGwIBQ1tYXhQcmljZXNMaXN0Al8xCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYzXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQNzdW0CBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjNfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE1CQEFJGYzXzICCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECCQEFJGYzXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPBAptaW5BdmVyYWdlCQBrAwUGbWluU3VtAMCEPQkAawMJAMYKAQUNbWluUHJpY2VzTGlzdADAhD0AAQQKbWF4QXZlcmFnZQkAawMFBm1heFN1bQDAhD0JAGsDCQDGCgEFDW1heFByaWNlc0xpc3QAwIQ9AAEDBQVkZWJ1ZwkAAgEJAKwCAgkArAICCQCsAgICB21pbkF2OiAJAKQDAQUKbWluQXZlcmFnZQIJLCBtYXhBdjogCQCkAwEFCm1heEF2ZXJhZ2UJAJQKAgUDbmlsCQCUCgIFCm1pbkF2ZXJhZ2UFCm1heEF2ZXJhZ2UBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5lQZZ4g==", "height": 3288438, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GivrEiqSDPxhD2WEjAMkPAW2qYyxsMV25kFEwYvaYLaL Next: FgC4bDGijmSbky7QnkESLbyibaBgFeQBp8B9Jr8A4ZyV Diff:
OldNewDifferences
170170 let minAverage = fraction(minSum, 1000000, fraction(size(minPricesList), 1000000, 1))
171171 let maxAverage = fraction(maxSum, 1000000, fraction(size(maxPricesList), 1000000, 1))
172172 if (debug)
173- then throw(((("minAv: " + toString(minAverage)) + ", maxAv: ") + toString(maxAverage)))
173+ then throw(((((((("minAv: " + toString(minAverage)) + ", maxAv: ") + toString(maxAverage)) + ", minSum: ") + toString(minSum)) + ", maxSum: ") + toString(maxSum)))
174174 else $Tuple2(nil, $Tuple2(minAverage, maxAverage))
175175 }
176176
180180 func getTWAP15 (tokenId,debug) = {
181181 let lastUpdatedBlock = getIntegerValue(lastUpdatedBlockKey)
182182 func getPriceList (accum,next) = {
183- let $t048854918 = accum
184- let result = $t048854918._1
185- let block = $t048854918._2
186- let type = $t048854918._3
183+ let $t050285061 = accum
184+ let result = $t050285061._1
185+ let block = $t050285061._2
186+ let type = $t050285061._3
187187 let priceValue = getPriceValue(tokenId, type, block)
188188 let nextBlock = (block - next)
189189 if ((priceValue > 0))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let lastUpdatedBlockKey = "lastUpdatedBlock"
55
66 let whiteListAddresses = [Address(base58'3PJKmXoHJvVeQXjSJdhtkUcFDtdiQqMbUTD')]
77
88 let n15List = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
99
1010 let n60List = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
1111
1212 func getPriceDataKey (block,type,tokenId) = ((((("block_" + toString(block)) + "_") + type) + "_") + tokenId)
1313
1414
1515 func getPriceValue (tokenId,type,block) = {
1616 let nBlock = match block {
1717 case t: Int =>
1818 t
1919 case _ =>
2020 getIntegerValue(lastUpdatedBlockKey)
2121 }
2222 if ((0 >= nBlock))
2323 then throw("Invalid block value")
2424 else if (if ((type == "min"))
2525 then true
2626 else (type == "max"))
2727 then valueOrElse(getInteger(getPriceDataKey(nBlock, type, tokenId)), 0)
2828 else throw("Wrong type name")
2929 }
3030
3131
3232 func getPriceDataEntries (priceList,height) = {
3333 func processList (accum,next) = {
3434 let parsed = split(next, "_")
3535 let tokenId = parsed[0]
3636 let newPrice = valueOrErrorMessage(parseInt(parsed[1]), "Invalid value parsed price")
3737 let keyMinPrice = getPriceDataKey(height, "min", tokenId)
3838 let keyMaxPrice = getPriceDataKey(height, "max", tokenId)
3939 let currentMinPrice = valueOrElse(getInteger(keyMinPrice), 0)
4040 let currentMaxPrice = valueOrElse(getInteger(keyMaxPrice), 0)
4141 if ((0 >= newPrice))
4242 then throw("Price cannot be zero or less zero")
4343 else if ((size(tokenId) == 0))
4444 then throw("Inavalid value token Id")
4545 else if (if ((currentMaxPrice == 0))
4646 then (currentMinPrice == 0)
4747 else false)
4848 then (accum ++ [IntegerEntry(keyMinPrice, newPrice), IntegerEntry(keyMaxPrice, newPrice)])
4949 else if ((currentMinPrice > newPrice))
5050 then (accum :+ IntegerEntry(keyMinPrice, newPrice))
5151 else if ((newPrice > currentMaxPrice))
5252 then (accum :+ IntegerEntry(keyMaxPrice, newPrice))
5353 else accum
5454 }
5555
5656 let $l = priceList
5757 let $s = size($l)
5858 let $acc0 = nil
5959 func $f0_1 ($a,$i) = if (($i >= $s))
6060 then $a
6161 else processList($a, $l[$i])
6262
6363 func $f0_2 ($a,$i) = if (($i >= $s))
6464 then $a
6565 else throw("List size exceeds 100")
6666
6767 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
6868 }
6969
7070
7171 @Callable(i)
7272 func updatePrice (prices) = if ((indexOf(whiteListAddresses, i.caller) == unit))
7373 then throw("Access denied")
7474 else if ((size(prices) == 0))
7575 then throw("Price list is empty")
7676 else ([IntegerEntry(lastUpdatedBlockKey, height)] ++ getPriceDataEntries(prices, height))
7777
7878
7979
8080 @Callable(i)
8181 func getPrice (tokenId,debug) = {
8282 let lastUpdatedBlock = getIntegerValue(lastUpdatedBlockKey)
8383 if (debug)
8484 then throw(((("min: " + toString(getPriceValue(tokenId, "min", unit))) + ", max: ") + toString(getPriceValue(tokenId, "max", unit))))
8585 else $Tuple2(nil, $Tuple2(getPriceValue(tokenId, "min", unit), getPriceValue(tokenId, "max", unit)))
8686 }
8787
8888
8989
9090 @Callable(i)
9191 func getPriceAt (block,tokenId,debug) = if (debug)
9292 then throw(((("min: " + toString(getPriceValue(tokenId, "min", block))) + ", max: ") + toString(getPriceValue(tokenId, "max", block))))
9393 else $Tuple2(nil, $Tuple2(getPriceValue(tokenId, "min", block), getPriceValue(tokenId, "max", block)))
9494
9595
9696
9797 @Callable(i)
9898 func getTWAP60 (tokenId,debug) = {
9999 let lastUpdatedBlock = getIntegerValue(lastUpdatedBlockKey)
100100 func getPriceList (accum,next) = {
101101 let $t036873720 = accum
102102 let result = $t036873720._1
103103 let block = $t036873720._2
104104 let type = $t036873720._3
105105 let priceValue = getPriceValue(tokenId, type, block)
106106 let nextBlock = (block - next)
107107 if ((priceValue > 0))
108108 then $Tuple3((result :+ priceValue), nextBlock, type)
109109 else $Tuple3(result, nextBlock, type)
110110 }
111111
112112 let minPricesList = {
113113 let $l = n60List
114114 let $s = size($l)
115115 let $acc0 = $Tuple3(nil, lastUpdatedBlock, "min")
116116 func $f0_1 ($a,$i) = if (($i >= $s))
117117 then $a
118118 else getPriceList($a, $l[$i])
119119
120120 func $f0_2 ($a,$i) = if (($i >= $s))
121121 then $a
122122 else throw("List size exceeds 60")
123123
124124 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60)
125125 }
126126 let maxPricesList = {
127127 let $l = n60List
128128 let $s = size($l)
129129 let $acc0 = $Tuple3(nil, lastUpdatedBlock, "max")
130130 func $f1_1 ($a,$i) = if (($i >= $s))
131131 then $a
132132 else getPriceList($a, $l[$i])
133133
134134 func $f1_2 ($a,$i) = if (($i >= $s))
135135 then $a
136136 else throw("List size exceeds 60")
137137
138138 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60)
139139 }
140140 func sum (accum,next) = (accum + next)
141141
142142 let minSum = {
143143 let $l = minPricesList._1
144144 let $s = size($l)
145145 let $acc0 = 0
146146 func $f2_1 ($a,$i) = if (($i >= $s))
147147 then $a
148148 else sum($a, $l[$i])
149149
150150 func $f2_2 ($a,$i) = if (($i >= $s))
151151 then $a
152152 else throw("List size exceeds 60")
153153
154154 $f2_2($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60)
155155 }
156156 let maxSum = {
157157 let $l = maxPricesList._1
158158 let $s = size($l)
159159 let $acc0 = 0
160160 func $f3_1 ($a,$i) = if (($i >= $s))
161161 then $a
162162 else sum($a, $l[$i])
163163
164164 func $f3_2 ($a,$i) = if (($i >= $s))
165165 then $a
166166 else throw("List size exceeds 60")
167167
168168 $f3_2($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60)
169169 }
170170 let minAverage = fraction(minSum, 1000000, fraction(size(minPricesList), 1000000, 1))
171171 let maxAverage = fraction(maxSum, 1000000, fraction(size(maxPricesList), 1000000, 1))
172172 if (debug)
173- then throw(((("minAv: " + toString(minAverage)) + ", maxAv: ") + toString(maxAverage)))
173+ then throw(((((((("minAv: " + toString(minAverage)) + ", maxAv: ") + toString(maxAverage)) + ", minSum: ") + toString(minSum)) + ", maxSum: ") + toString(maxSum)))
174174 else $Tuple2(nil, $Tuple2(minAverage, maxAverage))
175175 }
176176
177177
178178
179179 @Callable(i)
180180 func getTWAP15 (tokenId,debug) = {
181181 let lastUpdatedBlock = getIntegerValue(lastUpdatedBlockKey)
182182 func getPriceList (accum,next) = {
183- let $t048854918 = accum
184- let result = $t048854918._1
185- let block = $t048854918._2
186- let type = $t048854918._3
183+ let $t050285061 = accum
184+ let result = $t050285061._1
185+ let block = $t050285061._2
186+ let type = $t050285061._3
187187 let priceValue = getPriceValue(tokenId, type, block)
188188 let nextBlock = (block - next)
189189 if ((priceValue > 0))
190190 then $Tuple3((result :+ priceValue), nextBlock, type)
191191 else $Tuple3(result, nextBlock, type)
192192 }
193193
194194 let minPricesList = {
195195 let $l = n15List
196196 let $s = size($l)
197197 let $acc0 = $Tuple3(nil, lastUpdatedBlock, "min")
198198 func $f0_1 ($a,$i) = if (($i >= $s))
199199 then $a
200200 else getPriceList($a, $l[$i])
201201
202202 func $f0_2 ($a,$i) = if (($i >= $s))
203203 then $a
204204 else throw("List size exceeds 15")
205205
206206 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
207207 }
208208 let maxPricesList = {
209209 let $l = n15List
210210 let $s = size($l)
211211 let $acc0 = $Tuple3(nil, lastUpdatedBlock, "max")
212212 func $f1_1 ($a,$i) = if (($i >= $s))
213213 then $a
214214 else getPriceList($a, $l[$i])
215215
216216 func $f1_2 ($a,$i) = if (($i >= $s))
217217 then $a
218218 else throw("List size exceeds 15")
219219
220220 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
221221 }
222222 func sum (accum,next) = (accum + next)
223223
224224 let minSum = {
225225 let $l = minPricesList._1
226226 let $s = size($l)
227227 let $acc0 = 0
228228 func $f2_1 ($a,$i) = if (($i >= $s))
229229 then $a
230230 else sum($a, $l[$i])
231231
232232 func $f2_2 ($a,$i) = if (($i >= $s))
233233 then $a
234234 else throw("List size exceeds 15")
235235
236236 $f2_2($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
237237 }
238238 let maxSum = {
239239 let $l = maxPricesList._1
240240 let $s = size($l)
241241 let $acc0 = 0
242242 func $f3_1 ($a,$i) = if (($i >= $s))
243243 then $a
244244 else sum($a, $l[$i])
245245
246246 func $f3_2 ($a,$i) = if (($i >= $s))
247247 then $a
248248 else throw("List size exceeds 15")
249249
250250 $f3_2($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
251251 }
252252 let minAverage = fraction(minSum, 1000000, fraction(size(minPricesList), 1000000, 1))
253253 let maxAverage = fraction(maxSum, 1000000, fraction(size(maxPricesList), 1000000, 1))
254254 if (debug)
255255 then throw(((("minAv: " + toString(minAverage)) + ", maxAv: ") + toString(maxAverage)))
256256 else $Tuple2(nil, $Tuple2(minAverage, maxAverage))
257257 }
258258
259259
260260 @Verifier(tx)
261261 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
262262

github/deemru/w8io/873ac7e 
62.69 ms