tx · 6CSG7xz492w9BUJ4JHCdBUrfV8cET3jFcopgqL1nQL7V

3PMnUb4sdmj8EdXHEXejv1SSayFyvQAezYZ:  -0.05000000 Waves

2021.02.05 16:50 [2448726] smart account 3PMnUb4sdmj8EdXHEXejv1SSayFyvQAezYZ > SELF 0.00000000 Waves

{ "type": 13, "id": "6CSG7xz492w9BUJ4JHCdBUrfV8cET3jFcopgqL1nQL7V", "fee": 5000000, "feeAssetId": null, "timestamp": 1612533062124, "version": 2, "chainId": 87, "sender": "3PMnUb4sdmj8EdXHEXejv1SSayFyvQAezYZ", "senderPublicKey": "8mTioppAL28oraN6ndifcjFcihYgA3mTyEaKXE42Ms5W", "proofs": [ "29QXsc2T8B5nYeiDbXHGqLMY9u3QTbhk6CgG7WZY8C5eo7jfdYoA8d4ArHJxznjSMkAueLU1uKTKaCxDUtdH7eH4" ], "script": "base64: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AAALdGFyZ2V0UHJpY2UAAAAAAAAAAAAJAAACAAAAAQIAAAAXVGFyZ2V0IG5vdCBpbml0aWFsaXplZCEEAAAABmNhbGxlcgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAD3Nob3J0QWRkcmVzc0tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGc2hvcnRfCQABpAAAAAEFAAAAC3Nob3J0VGFyZ2V0AgAAAAFfBQAAAAZjYWxsZXIEAAAADnNob3J0c1RvdGFsS2V5CQABLAAAAAICAAAADXNob3J0c190b3RhbF8JAAGkAAAAAQUAAAALc2hvcnRUYXJnZXQEAAAAHGN1cnJlbnRTaG9ydEFtb3VudEZvckFkZHJlc3MJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAPc2hvcnRBZGRyZXNzS2V5AAAAAAAAAAAABAAAAA1jdXJyZW50U2hvcnRzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAADnNob3J0c1RvdGFsS2V5AAAAAAAAAAAABAAAAAdwYXltZW50CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAZhbW91bnQIBQAAAAdwYXltZW50AAAABmFtb3VudAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAAAgAAAAECAAAAJk9ubHkgV2F2ZXMgcGF5bWVudHMgYWxsb3dlZCBjdXJyZW50bHkhAwkAAGcAAAACCQAAZAAAAAIFAAAABmhlaWdodAUAAAAOQ09PTERPV05QRVJJT0QFAAAAC3Nob3J0VGFyZ2V0CQAAAgAAAAECAAAAVVJlY292ZXJ5IHBoYXNlIGFjdGl2ZS4gWW91IGNhbiBubyBsb25nZXIgZ28gc2hvcnQgdG93YXJkcyB0aGlzIHNob3J0IHRhcmdldCAvIGhlaWdodCEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAD3Nob3J0QWRkcmVzc0tleQkAAGQAAAACBQAAABxjdXJyZW50U2hvcnRBbW91bnRGb3JBZGRyZXNzBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADnNob3J0c1RvdGFsS2V5CQAAZAAAAAIFAAAADWN1cnJlbnRTaG9ydHMFAAAABmFtb3VudAUAAAADbmlsAAAAAWkBAAAABmdvTG9uZwAAAAEAAAAKbG9uZ1RhcmdldAQAAAALdGFyZ2V0UHJpY2UJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAA10YXJnZXRfcHJpY2VfCQABpAAAAAEFAAAACmxvbmdUYXJnZXQAAAAAAAAAAAADCQAAAAAAAAIFAAAAC3RhcmdldFByaWNlAAAAAAAAAAAACQAAAgAAAAECAAAAF1RhcmdldCBub3QgaW5pdGlhbGl6ZWQhBAAAAAZjYWxsZXIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA5sb25nQWRkcmVzc0tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAFbG9uZ18JAAGkAAAAAQUAAAAKbG9uZ1RhcmdldAIAAAABXwUAAAAGY2FsbGVyBAAAAA1sb25nc1RvdGFsS2V5CQABLAAAAAICAAAADGxvbmdzX3RvdGFsXwkAAaQAAAABBQAAAApsb25nVGFyZ2V0BAAAABtjdXJyZW50TG9uZ0Ftb3VudEZvckFkZHJlc3MJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAObG9uZ0FkZHJlc3NLZXkAAAAAAAAAAAAEAAAADGN1cnJlbnRMb25ncwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA1sb25nc1RvdGFsS2V5AAAAAAAAAAAABAAAAAdwYXltZW50CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAZhbW91bnQIBQAAAAdwYXltZW50AAAABmFtb3VudAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAAAgAAAAECAAAAJk9ubHkgV2F2ZXMgcGF5bWVudHMgYWxsb3dlZCBjdXJyZW50bHkhAwkAAGcAAAACCQAAZAAAAAIFAAAABmhlaWdodAUAAAAOQ09PTERPV05QRVJJT0QFAAAACmxvbmdUYXJnZXQJAAACAAAAAQIAAABTUmVjb3ZlcnkgcGhhc2UgYWN0aXZlLiBZb3UgY2FuIG5vIGxvbmdlciBnbyBsb25nIHRvd2FyZHMgdGhpcyBsb25nIHRhcmdldCAvIGhlaWdodCEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADmxvbmdBZGRyZXNzS2V5CQAAZAAAAAIFAAAAG2N1cnJlbnRMb25nQW1vdW50Rm9yQWRkcmVzcwUAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA1sb25nc1RvdGFsS2V5CQAAZAAAAAIFAAAADGN1cnJlbnRMb25ncwUAAAAGYW1vdW50BQAAAANuaWwAAAAAnaTKsQ==", "height": 2448726, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: dneYrW8vmgDLV8VbKvMYgVQxTveDTmvRyNqgFUYBdDJ Next: A8rTMJe4eAWPowGiRByM8G4eGnBsecgBeRaan77vxuqZ 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- payCaller(target, caller, payout)
104+ throw(("" + toString(payout)))
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- payCaller(target, caller, payout)
104+ throw(("" + toString(payout)))
105105 }
106106 else if ((targetPrice > priceAtTarget))
107107 then {
108108 let precept = valueOrElse(getInteger(this, ((("short_" + toString(target)) + "_") + toString(caller))), 0)
109109 let payout = ((precept * (totalLongs + totalShorts)) / totalShorts)
110110 throw(("" + 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 
54.87 ms