tx · 6CqqmhsjRvMq2QauBxceyqyPoneprNPWsGkr1wafHsKq

3PMnUb4sdmj8EdXHEXejv1SSayFyvQAezYZ:  -0.05000000 Waves

2021.02.05 17:11 [2448749] smart account 3PMnUb4sdmj8EdXHEXejv1SSayFyvQAezYZ > SELF 0.00000000 Waves

{ "type": 13, "id": "6CqqmhsjRvMq2QauBxceyqyPoneprNPWsGkr1wafHsKq", "fee": 5000000, "feeAssetId": null, "timestamp": 1612534360628, "version": 2, "chainId": 87, "sender": "3PMnUb4sdmj8EdXHEXejv1SSayFyvQAezYZ", "senderPublicKey": "8mTioppAL28oraN6ndifcjFcihYgA3mTyEaKXE42Ms5W", "proofs": [ "487qu1Q1Ji6q9jUhVhgdn9gQPkTeNF7qHpP8aNFmxnEeJaWeWBWRgRoWhMPEqrwai37MKWYRB3phyqRSt6iv6gW7" ], "script": "base64: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Z2h0IQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPc2hvcnRBZGRyZXNzS2V5CQAAZAAAAAIFAAAAHGN1cnJlbnRTaG9ydEFtb3VudEZvckFkZHJlc3MFAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOc2hvcnRzVG90YWxLZXkJAABkAAAAAgUAAAANY3VycmVudFNob3J0cwUAAAAGYW1vdW50BQAAAANuaWwAAAABaQEAAAAGZ29Mb25nAAAAAQAAAApsb25nVGFyZ2V0BAAAAAt0YXJnZXRQcmljZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADXRhcmdldF9wcmljZV8JAAGkAAAAAQUAAAAKbG9uZ1RhcmdldAAAAAAAAAAAAAMJAAAAAAAAAgUAAAALdGFyZ2V0UHJpY2UAAAAAAAAAAAAJAAACAAAAAQIAAAAXVGFyZ2V0IG5vdCBpbml0aWFsaXplZCEEAAAABmNhbGxlcgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADmxvbmdBZGRyZXNzS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAVsb25nXwkAAaQAAAABBQAAAApsb25nVGFyZ2V0AgAAAAFfBQAAAAZjYWxsZXIEAAAADWxvbmdzVG90YWxLZXkJAAEsAAAAAgIAAAAMbG9uZ3NfdG90YWxfCQABpAAAAAEFAAAACmxvbmdUYXJnZXQEAAAAG2N1cnJlbnRMb25nQW1vdW50Rm9yQWRkcmVzcwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA5sb25nQWRkcmVzc0tleQAAAAAAAAAAAAQAAAAMY3VycmVudExvbmdzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAADWxvbmdzVG90YWxLZXkAAAAAAAAAAAAEAAAAB3BheW1lbnQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAABmFtb3VudAgFAAAAB3BheW1lbnQAAAAGYW1vdW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAmT25seSBXYXZlcyBwYXltZW50cyBhbGxvd2VkIGN1cnJlbnRseSEDCQAAZwAAAAIJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAA5DT09MRE9XTlBFUklPRAUAAAAKbG9uZ1RhcmdldAkAAAIAAAABAgAAAFNSZWNvdmVyeSBwaGFzZSBhY3RpdmUuIFlvdSBjYW4gbm8gbG9uZ2VyIGdvIGxvbmcgdG93YXJkcyB0aGlzIGxvbmcgdGFyZ2V0IC8gaGVpZ2h0IQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAObG9uZ0FkZHJlc3NLZXkJAABkAAAAAgUAAAAbY3VycmVudExvbmdBbW91bnRGb3JBZGRyZXNzBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADWxvbmdzVG90YWxLZXkJAABkAAAAAgUAAAAMY3VycmVudExvbmdzBQAAAAZhbW91bnQFAAAAA25pbAAAAAD7gX8z", "height": 2448749, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FFCcb1Dq4HJiWyWwWUsMSRwcyAcqLcQsTU9hqyLHh4Es Next: C65NVkb7e5uaftUpZ7dAgaicUhjiUDUn6ggQQd3Aueqd Diff:
OldNewDifferences
101101 then {
102102 let precept = valueOrElse(getInteger(this, ((("long_" + toString(target)) + "_") + toString(caller))), 0)
103103 let payout = fraction(precept, (totalLongs + totalShorts), totalLongs)
104- throw(("long won: " + toString(payout)))
104+ throw(((((("long won: " + toString(payout)) + " ") + toString(priceAtTarget)) + " ") + toString(targetPrice)))
105105 }
106106 else if ((targetPrice > priceAtTarget))
107107 then {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let COOLDOWNPERIOD = 6000
55
66 let PRICINGORACLE = "3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP"
77
88 func payCaller (target,caller,amoung) = [IntegerEntry(((("long_" + toString(target)) + "_") + toString(caller)), 0), IntegerEntry(((("short_" + toString(target)) + "_") + toString(caller)), 0), ScriptTransfer(caller, amoung, unit)]
99
1010
1111 func getPriceAtHeight (height) = {
1212 let address = addressFromStringValue(PRICINGORACLE)
1313 let key = ("price_" + toString(height))
1414 valueOrElse(getInteger(address, key), 0)
1515 }
1616
1717
1818 func comparePriceAtHeight (result,step) = valueOrElse(getPriceAtHeight((height - step)), result)
1919
2020
2121 func getClosestPrice (height) = {
2222 let steps = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
2323 let closestPrice = {
2424 let $list874914 = steps
2525 let $size874914 = size($list874914)
2626 let $acc0874914 = 0
2727 if (($size874914 == 0))
2828 then $acc0874914
2929 else {
3030 let $acc1874914 = comparePriceAtHeight($acc0874914, $list874914[0])
3131 if (($size874914 == 1))
3232 then $acc1874914
3333 else {
3434 let $acc2874914 = comparePriceAtHeight($acc1874914, $list874914[1])
3535 if (($size874914 == 2))
3636 then $acc2874914
3737 else {
3838 let $acc3874914 = comparePriceAtHeight($acc2874914, $list874914[2])
3939 if (($size874914 == 3))
4040 then $acc3874914
4141 else {
4242 let $acc4874914 = comparePriceAtHeight($acc3874914, $list874914[3])
4343 if (($size874914 == 4))
4444 then $acc4874914
4545 else {
4646 let $acc5874914 = comparePriceAtHeight($acc4874914, $list874914[4])
4747 if (($size874914 == 5))
4848 then $acc5874914
4949 else {
5050 let $acc6874914 = comparePriceAtHeight($acc5874914, $list874914[5])
5151 if (($size874914 == 6))
5252 then $acc6874914
5353 else {
5454 let $acc7874914 = comparePriceAtHeight($acc6874914, $list874914[6])
5555 if (($size874914 == 7))
5656 then $acc7874914
5757 else {
5858 let $acc8874914 = comparePriceAtHeight($acc7874914, $list874914[7])
5959 if (($size874914 == 8))
6060 then $acc8874914
6161 else {
6262 let $acc9874914 = comparePriceAtHeight($acc8874914, $list874914[8])
6363 if (($size874914 == 9))
6464 then $acc9874914
6565 else {
6666 let $acc10874914 = comparePriceAtHeight($acc9874914, $list874914[9])
6767 if (($size874914 == 10))
6868 then $acc10874914
6969 else {
7070 let $acc11874914 = comparePriceAtHeight($acc10874914, $list874914[10])
7171 throw("List size exceed 10")
7272 }
7373 }
7474 }
7575 }
7676 }
7777 }
7878 }
7979 }
8080 }
8181 }
8282 }
8383 }
8484 closestPrice
8585 }
8686
8787
8888 @Callable(i)
8989 func withdraw (target) = if (((target + 1) > height))
9090 then throw("End of predictions for this height not reached yet!")
9191 else {
9292 let priceAtTarget = getClosestPrice(height)
9393 if ((priceAtTarget == 0))
9494 then throw("Could not determine price at target height!")
9595 else {
9696 let caller = i.caller
9797 let targetPrice = getIntegerValue(this, ("target_price_" + toString(target)))
9898 let totalLongs = valueOrElse(getInteger(this, ("longs_total_" + toString(target))), 0)
9999 let totalShorts = valueOrElse(getInteger(this, ("shorts_total_" + toString(target))), 0)
100100 if ((priceAtTarget > targetPrice))
101101 then {
102102 let precept = valueOrElse(getInteger(this, ((("long_" + toString(target)) + "_") + toString(caller))), 0)
103103 let payout = fraction(precept, (totalLongs + totalShorts), totalLongs)
104- throw(("long won: " + toString(payout)))
104+ throw(((((("long won: " + toString(payout)) + " ") + toString(priceAtTarget)) + " ") + toString(targetPrice)))
105105 }
106106 else if ((targetPrice > priceAtTarget))
107107 then {
108108 let precept = valueOrElse(getInteger(this, ((("short_" + toString(target)) + "_") + toString(caller))), 0)
109109 let payout = fraction(precept, (totalLongs + totalShorts), totalShorts)
110110 throw(("short won: " + toString(payout)))
111111 }
112112 else {
113113 let preceptLong = valueOrElse(getInteger(this, ((("long_" + toString(target)) + "_") + toString(caller))), 0)
114114 let preceptShort = valueOrElse(getInteger(this, ((("short_" + toString(target)) + "_") + toString(caller))), 0)
115115 let payout = (preceptLong + preceptShort)
116116 payCaller(target, caller, payout)
117117 }
118118 }
119119 }
120120
121121
122122
123123 @Callable(i)
124124 func initiate (target) = {
125125 let currentPrice = getIntegerValue(addressFromStringValue(PRICINGORACLE), "price")
126126 let initiated = match getInteger(this, ("target_price_" + toString(target))) {
127127 case x: Int =>
128128 (x != 0)
129129 case _: Unit =>
130130 false
131131 case _ =>
132132 throw("Match error")
133133 }
134134 if (((height + COOLDOWNPERIOD) >= target))
135135 then throw(("No new future instantiable for the given height: " + toString(target)))
136136 else if (initiated)
137137 then throw("Target already initiated!")
138138 else [IntegerEntry(("target_price_" + toString(target)), currentPrice), IntegerEntry(("shorts_total_" + toString(target)), 0), IntegerEntry(("longs_total_" + toString(target)), 0)]
139139 }
140140
141141
142142
143143 @Callable(i)
144144 func goShort (shortTarget) = {
145145 let targetPrice = valueOrElse(getInteger(this, ("target_price_" + toString(shortTarget))), 0)
146146 if ((targetPrice == 0))
147147 then throw("Target not initialized!")
148148 else {
149149 let caller = toString(i.caller)
150150 let shortAddressKey = ((("short_" + toString(shortTarget)) + "_") + caller)
151151 let shortsTotalKey = ("shorts_total_" + toString(shortTarget))
152152 let currentShortAmountForAddress = valueOrElse(getInteger(this, shortAddressKey), 0)
153153 let currentShorts = valueOrElse(getInteger(this, shortsTotalKey), 0)
154154 let payment = value(i.payments[0])
155155 let amount = payment.amount
156156 if (isDefined(payment.assetId))
157157 then throw("Only Waves payments allowed currently!")
158158 else if (((height + COOLDOWNPERIOD) >= shortTarget))
159159 then throw("Recovery phase active. You can no longer go short towards this short target / height!")
160160 else [IntegerEntry(shortAddressKey, (currentShortAmountForAddress + amount)), IntegerEntry(shortsTotalKey, (currentShorts + amount))]
161161 }
162162 }
163163
164164
165165
166166 @Callable(i)
167167 func goLong (longTarget) = {
168168 let targetPrice = valueOrElse(getInteger(this, ("target_price_" + toString(longTarget))), 0)
169169 if ((targetPrice == 0))
170170 then throw("Target not initialized!")
171171 else {
172172 let caller = toString(i.caller)
173173 let longAddressKey = ((("long_" + toString(longTarget)) + "_") + caller)
174174 let longsTotalKey = ("longs_total_" + toString(longTarget))
175175 let currentLongAmountForAddress = valueOrElse(getInteger(this, longAddressKey), 0)
176176 let currentLongs = valueOrElse(getInteger(this, longsTotalKey), 0)
177177 let payment = value(i.payments[0])
178178 let amount = payment.amount
179179 if (isDefined(payment.assetId))
180180 then throw("Only Waves payments allowed currently!")
181181 else if (((height + COOLDOWNPERIOD) >= longTarget))
182182 then throw("Recovery phase active. You can no longer go long towards this long target / height!")
183183 else [IntegerEntry(longAddressKey, (currentLongAmountForAddress + amount)), IntegerEntry(longsTotalKey, (currentLongs + amount))]
184184 }
185185 }
186186
187187

github/deemru/w8io/6500d08 
49.94 ms