tx · HzqkZHFN7HAdgW6jnKhZ11fm5pL6s5zWYyaVcMUTH7Uw

3NC5E3y11PtakmAUxN9Nfdvx7XjWsffcJrr:  -0.05000000 Waves

2020.08.25 12:00 [1148344] smart account 3NC5E3y11PtakmAUxN9Nfdvx7XjWsffcJrr > SELF 0.00000000 Waves

{ "type": 13, "id": "HzqkZHFN7HAdgW6jnKhZ11fm5pL6s5zWYyaVcMUTH7Uw", "fee": 5000000, "feeAssetId": null, "timestamp": 1598346053485, "version": 1, "sender": "3NC5E3y11PtakmAUxN9Nfdvx7XjWsffcJrr", "senderPublicKey": "DuSyT6XMpGpexrez81rru35TfpmHJcYQP1WJxT9wjcry", "proofs": [ "UwfFtarqB66eaEWSxQPEQdizoGgb6Qtg2t5nmhQgq2acmDDPaKymWCxBKkaBRxC5Vp9zvqnzpPFz7PJW3qerTDu" ], "script": "base64:AAIDAAAAAAAAAAwIARIDCgEBEgMKAQEAAAACAAAAAA1SRUNPVkVSWVBIQVNFAAAAAAAAAABkAQAAABJnZXREYXRhRW50cnlGb3JLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABeAUAAAAHJG1hdGNoMAUAAAABeAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAAAAAAAAAAAAAkBAAAABXRocm93AAAAAAAAAAIAAAABaQEAAAAFc2hvcnQAAAABAAAAC3Nob3J0VGFyZ2V0BAAAAAZjYWxsZXIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA9zaG9ydEFkZHJlc3NLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABnNob3J0XwkAAaQAAAABBQAAAAtzaG9ydFRhcmdldAIAAAABXwUAAAAGY2FsbGVyBAAAAA5zaG9ydHNUb3RhbEtleQkAASwAAAACAgAAAA1zaG9ydHNfdG90YWxfCQABpAAAAAEFAAAAC3Nob3J0VGFyZ2V0BAAAABxjdXJyZW50U2hvcnRBbW91bnRGb3JBZGRyZXNzCQEAAAASZ2V0RGF0YUVudHJ5Rm9yS2V5AAAAAQUAAAAPc2hvcnRBZGRyZXNzS2V5BAAAAA1jdXJyZW50U2hvcnRzCQEAAAASZ2V0RGF0YUVudHJ5Rm9yS2V5AAAAAQUAAAAOc2hvcnRzVG90YWxLZXkEAAAAB3BheW1lbnQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAQAAAAGYW1vdW50CAUAAAAHcGF5bWVudAAAAAZhbW91bnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACZPbmx5IFdhdmVzIHBheW1lbnRzIGFsbG93ZWQgY3VycmVudGx5IQMJAABnAAAAAgkAAGQAAAACBQAAAAZoZWlnaHQFAAAADVJFQ09WRVJZUEhBU0UFAAAAC3Nob3J0VGFyZ2V0CQAAAgAAAAECAAAAVVJlY292ZXJ5IHBoYXNlIGFjdGl2ZS4gWW91IGNhbiBubyBsb25nZXIgZ28gc2hvcnQgdG93YXJkcyB0aGlzIHNob3J0IHRhcmdldCAvIGhlaWdodCEJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAD3Nob3J0QWRkcmVzc0tleQkAAGQAAAACBQAAABxjdXJyZW50U2hvcnRBbW91bnRGb3JBZGRyZXNzBQAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADnNob3J0c1RvdGFsS2V5CQAAZAAAAAIFAAAADWN1cnJlbnRTaG9ydHMFAAAABmFtb3VudAUAAAADbmlsAAAAAWkBAAAABGxvbmcAAAABAAAACmxvbmdUYXJnZXQEAAAABmNhbGxlcgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADmxvbmdBZGRyZXNzS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAVsb25nXwkAAaQAAAABBQAAAApsb25nVGFyZ2V0AgAAAAFfBQAAAAZjYWxsZXIEAAAADWxvbmdzVG90YWxLZXkJAAEsAAAAAgIAAAAMbG9uZ3NfdG90YWxfCQABpAAAAAEFAAAACmxvbmdUYXJnZXQEAAAAG2N1cnJlbnRMb25nQW1vdW50Rm9yQWRkcmVzcwkBAAAAEmdldERhdGFFbnRyeUZvcktleQAAAAEFAAAADmxvbmdBZGRyZXNzS2V5BAAAAAxjdXJyZW50TG9uZ3MJAQAAABJnZXREYXRhRW50cnlGb3JLZXkAAAABBQAAAA1sb25nc1RvdGFsS2V5BAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAABmFtb3VudAgFAAAAB3BheW1lbnQAAAAGYW1vdW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAmT25seSBXYXZlcyBwYXltZW50cyBhbGxvd2VkIGN1cnJlbnRseSEDCQAAZwAAAAIJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAA1SRUNPVkVSWVBIQVNFBQAAAApsb25nVGFyZ2V0CQAAAgAAAAECAAAAU1JlY292ZXJ5IHBoYXNlIGFjdGl2ZS4gWW91IGNhbiBubyBsb25nZXIgZ28gbG9uZyB0b3dhcmRzIHRoaXMgbG9uZyB0YXJnZXQgLyBoZWlnaHQhCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA5sb25nQWRkcmVzc0tleQkAAGQAAAACBQAAABtjdXJyZW50TG9uZ0Ftb3VudEZvckFkZHJlc3MFAAAABmFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAANbG9uZ3NUb3RhbEtleQkAAGQAAAACBQAAAAxjdXJyZW50TG9uZ3MFAAAABmFtb3VudAUAAAADbmlsAAAAAPbTCCg=", "chainId": 84, "height": 1148344, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5yvbreagy3rBHG6DQs1nyMXWeyZvjKiyBzvb9TZMmVam Next: GyD6ons7oJ8dpbT5KA4yy8fyWMFy4FJSyVuxDK632gjx Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let RECOVERYPHASE = 10000
4+let RECOVERYPHASE = 100
55
66 func getDataEntryForKey (key) = match getInteger(this, key) {
77 case x: Int =>
1111 case _ =>
1212 throw()
1313 }
14+
15+
16+@Callable(i)
17+func short (shortTarget) = {
18+ let caller = toString(i.caller)
19+ let shortAddressKey = ((("short_" + toString(shortTarget)) + "_") + caller)
20+ let shortsTotalKey = ("shorts_total_" + toString(shortTarget))
21+ let currentShortAmountForAddress = getDataEntryForKey(shortAddressKey)
22+ let currentShorts = getDataEntryForKey(shortsTotalKey)
23+ let payment = extract(i.payment)
24+ let amount = payment.amount
25+ if (isDefined(payment.assetId))
26+ then throw("Only Waves payments allowed currently!")
27+ else if (((height + RECOVERYPHASE) >= shortTarget))
28+ then throw("Recovery phase active. You can no longer go short towards this short target / height!")
29+ else WriteSet([DataEntry(shortAddressKey, (currentShortAmountForAddress + amount)), DataEntry(shortsTotalKey, (currentShorts + amount))])
30+ }
31+
1432
1533
1634 @Callable(i)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let RECOVERYPHASE = 10000
4+let RECOVERYPHASE = 100
55
66 func getDataEntryForKey (key) = match getInteger(this, key) {
77 case x: Int =>
88 x
99 case _: Unit =>
1010 0
1111 case _ =>
1212 throw()
1313 }
14+
15+
16+@Callable(i)
17+func short (shortTarget) = {
18+ let caller = toString(i.caller)
19+ let shortAddressKey = ((("short_" + toString(shortTarget)) + "_") + caller)
20+ let shortsTotalKey = ("shorts_total_" + toString(shortTarget))
21+ let currentShortAmountForAddress = getDataEntryForKey(shortAddressKey)
22+ let currentShorts = getDataEntryForKey(shortsTotalKey)
23+ let payment = extract(i.payment)
24+ let amount = payment.amount
25+ if (isDefined(payment.assetId))
26+ then throw("Only Waves payments allowed currently!")
27+ else if (((height + RECOVERYPHASE) >= shortTarget))
28+ then throw("Recovery phase active. You can no longer go short towards this short target / height!")
29+ else WriteSet([DataEntry(shortAddressKey, (currentShortAmountForAddress + amount)), DataEntry(shortsTotalKey, (currentShorts + amount))])
30+ }
31+
1432
1533
1634 @Callable(i)
1735 func long (longTarget) = {
1836 let caller = toString(i.caller)
1937 let longAddressKey = ((("long_" + toString(longTarget)) + "_") + caller)
2038 let longsTotalKey = ("longs_total_" + toString(longTarget))
2139 let currentLongAmountForAddress = getDataEntryForKey(longAddressKey)
2240 let currentLongs = getDataEntryForKey(longsTotalKey)
2341 let payment = extract(i.payment)
2442 let amount = payment.amount
2543 if (isDefined(payment.assetId))
2644 then throw("Only Waves payments allowed currently!")
2745 else if (((height + RECOVERYPHASE) >= longTarget))
2846 then throw("Recovery phase active. You can no longer go long towards this long target / height!")
2947 else WriteSet([DataEntry(longAddressKey, (currentLongAmountForAddress + amount)), DataEntry(longsTotalKey, (currentLongs + amount))])
3048 }
3149
3250

github/deemru/w8io/c3f4982 
37.21 ms