tx · FFCcb1Dq4HJiWyWwWUsMSRwcyAcqLcQsTU9hqyLHh4Es

3PMnUb4sdmj8EdXHEXejv1SSayFyvQAezYZ:  -0.05000000 Waves

2021.02.05 16:58 [2448735] smart account 3PMnUb4sdmj8EdXHEXejv1SSayFyvQAezYZ > SELF 0.00000000 Waves

{ "type": 13, "id": "FFCcb1Dq4HJiWyWwWUsMSRwcyAcqLcQsTU9hqyLHh4Es", "fee": 5000000, "feeAssetId": null, "timestamp": 1612533543185, "version": 2, "chainId": 87, "sender": "3PMnUb4sdmj8EdXHEXejv1SSayFyvQAezYZ", "senderPublicKey": "8mTioppAL28oraN6ndifcjFcihYgA3mTyEaKXE42Ms5W", "proofs": [ "24RZD9s864zHXU5RLSoJy1MKXX6TxKkLZ4wo8pnttR6HAAPi3gt6BmRJRUDG5RSJw98hUAYEbVAkbGTZB1Zjpxfy" ], "script": "base64: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AAADCQAAAAAAAAIFAAAAC3RhcmdldFByaWNlAAAAAAAAAAAACQAAAgAAAAECAAAAF1RhcmdldCBub3QgaW5pdGlhbGl6ZWQhBAAAAAZjYWxsZXIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA9zaG9ydEFkZHJlc3NLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnNob3J0XwkAAaQAAAABBQAAAAtzaG9ydFRhcmdldAIAAAABXwUAAAAGY2FsbGVyBAAAAA5zaG9ydHNUb3RhbEtleQkAASwAAAACAgAAAA1zaG9ydHNfdG90YWxfCQABpAAAAAEFAAAAC3Nob3J0VGFyZ2V0BAAAABxjdXJyZW50U2hvcnRBbW91bnRGb3JBZGRyZXNzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAD3Nob3J0QWRkcmVzc0tleQAAAAAAAAAAAAQAAAANY3VycmVudFNob3J0cwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA5zaG9ydHNUb3RhbEtleQAAAAAAAAAAAAQAAAAHcGF5bWVudAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAGYW1vdW50CAUAAAAHcGF5bWVudAAAAAZhbW91bnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACZPbmx5IFdhdmVzIHBheW1lbnRzIGFsbG93ZWQgY3VycmVudGx5IQMJAABnAAAAAgkAAGQAAAACBQAAAAZoZWlnaHQFAAAADkNPT0xET1dOUEVSSU9EBQAAAAtzaG9ydFRhcmdldAkAAAIAAAABAgAAAFVSZWNvdmVyeSBwaGFzZSBhY3RpdmUuIFlvdSBjYW4gbm8gbG9uZ2VyIGdvIHNob3J0IHRvd2FyZHMgdGhpcyBzaG9ydCB0YXJnZXQgLyBoZWlnaHQhCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9zaG9ydEFkZHJlc3NLZXkJAABkAAAAAgUAAAAcY3VycmVudFNob3J0QW1vdW50Rm9yQWRkcmVzcwUAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA5zaG9ydHNUb3RhbEtleQkAAGQAAAACBQAAAA1jdXJyZW50U2hvcnRzBQAAAAZhbW91bnQFAAAAA25pbAAAAAFpAQAAAAZnb0xvbmcAAAABAAAACmxvbmdUYXJnZXQEAAAAC3RhcmdldFByaWNlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAANdGFyZ2V0X3ByaWNlXwkAAaQAAAABBQAAAApsb25nVGFyZ2V0AAAAAAAAAAAAAwkAAAAAAAACBQAAAAt0YXJnZXRQcmljZQAAAAAAAAAAAAkAAAIAAAABAgAAABdUYXJnZXQgbm90IGluaXRpYWxpemVkIQQAAAAGY2FsbGVyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAObG9uZ0FkZHJlc3NLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABWxvbmdfCQABpAAAAAEFAAAACmxvbmdUYXJnZXQCAAAAAV8FAAAABmNhbGxlcgQAAAANbG9uZ3NUb3RhbEtleQkAASwAAAACAgAAAAxsb25nc190b3RhbF8JAAGkAAAAAQUAAAAKbG9uZ1RhcmdldAQAAAAbY3VycmVudExvbmdBbW91bnRGb3JBZGRyZXNzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAADmxvbmdBZGRyZXNzS2V5AAAAAAAAAAAABAAAAAxjdXJyZW50TG9uZ3MJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAANbG9uZ3NUb3RhbEtleQAAAAAAAAAAAAQAAAAHcGF5bWVudAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAGYW1vdW50CAUAAAAHcGF5bWVudAAAAAZhbW91bnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACZPbmx5IFdhdmVzIHBheW1lbnRzIGFsbG93ZWQgY3VycmVudGx5IQMJAABnAAAAAgkAAGQAAAACBQAAAAZoZWlnaHQFAAAADkNPT0xET1dOUEVSSU9EBQAAAApsb25nVGFyZ2V0CQAAAgAAAAECAAAAU1JlY292ZXJ5IHBoYXNlIGFjdGl2ZS4gWW91IGNhbiBubyBsb25nZXIgZ28gbG9uZyB0b3dhcmRzIHRoaXMgbG9uZyB0YXJnZXQgLyBoZWlnaHQhCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA5sb25nQWRkcmVzc0tleQkAAGQAAAACBQAAABtjdXJyZW50TG9uZ0Ftb3VudEZvckFkZHJlc3MFAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANbG9uZ3NUb3RhbEtleQkAAGQAAAACBQAAAAxjdXJyZW50TG9uZ3MFAAAABmFtb3VudAUAAAADbmlsAAAAAMFyAcw=", "height": 2448735, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: A8rTMJe4eAWPowGiRByM8G4eGnBsecgBeRaan77vxuqZ Next: 6CqqmhsjRvMq2QauBxceyqyPoneprNPWsGkr1wafHsKq Diff:
OldNewDifferences
106106 else if ((targetPrice > priceAtTarget))
107107 then {
108108 let precept = valueOrElse(getInteger(this, ((("short_" + toString(target)) + "_") + toString(caller))), 0)
109- let payout = ((precept * (totalLongs + totalShorts)) / totalShorts)
109+ let payout = fraction(precept, (totalLongs + totalShorts), totalShorts)
110110 throw(("short won: " + toString(payout)))
111111 }
112112 else {
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)
104104 throw(("long won: " + toString(payout)))
105105 }
106106 else if ((targetPrice > priceAtTarget))
107107 then {
108108 let precept = valueOrElse(getInteger(this, ((("short_" + toString(target)) + "_") + toString(caller))), 0)
109- let payout = ((precept * (totalLongs + totalShorts)) / totalShorts)
109+ 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/3ef1775 
40.31 ms