tx · GyD6ons7oJ8dpbT5KA4yy8fyWMFy4FJSyVuxDK632gjx

3NC5E3y11PtakmAUxN9Nfdvx7XjWsffcJrr:  -0.05000000 Waves

2020.08.25 19:55 [1148588] smart account 3NC5E3y11PtakmAUxN9Nfdvx7XjWsffcJrr > SELF 0.00000000 Waves

{ "type": 13, "id": "GyD6ons7oJ8dpbT5KA4yy8fyWMFy4FJSyVuxDK632gjx", "fee": 5000000, "feeAssetId": null, "timestamp": 1598374568587, "version": 1, "sender": "3NC5E3y11PtakmAUxN9Nfdvx7XjWsffcJrr", "senderPublicKey": "DuSyT6XMpGpexrez81rru35TfpmHJcYQP1WJxT9wjcry", "proofs": [ "4GsEVyyyKMZN8jFs1T8H9giT5oqGdznNLHCmWMjBjhJwhEnZdmrrSKa24MUQrkWJUX8XqtMuPGCRg9sgPgvBxrej" ], "script": "base64:AAIDAAAAAAAAABEIARIDCgEBEgMKAQESAwoBAQAAAAMAAAAADVJFQ09WRVJZUEhBU0UAAAAAAAAAAGQAAAAAC1BSSUNFT1JBQ0xFAgAAACMzTjROUzdkNEpvOWE2RjE0TGlGVUtLWVZkVWtrZjJlUDRaeAEAAAASZ2V0RGF0YUVudHJ5Rm9yS2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAXgFAAAAByRtYXRjaDAFAAAAAXgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQAAAAAAAAAAAAJAQAAAAV0aHJvdwAAAAAAAAADAAAAAWkBAAAACGluaXRpYXRlAAAAAQAAAAZ0YXJnZXQEAAAADGN1cnJlbnRQcmljZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAtQUklDRU9SQUNMRQIAAAAFcHJpY2UDCQAAZwAAAAIJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAA1SRUNPVkVSWVBIQVNFBQAAAAZoZWlnaHQJAAACAAAAAQkAASwAAAACAgAAADFObyBuZXcgZnV0dXJlIGluc3RhbnRpYWJsZSBmb3IgdGhlIGdpdmVuIGhlaWdodDogCQABpAAAAAEFAAAABnRhcmdldAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAAA10YXJnZXRfcHJpY2VfCQABpAAAAAEFAAAABnRhcmdldAUAAAAMY3VycmVudFByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAADXNob3J0c190b3RhbF8JAAGkAAAAAQUAAAAGdGFyZ2V0AAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAADGxvbmdzX3RvdGFsXwkAAaQAAAABBQAAAAZ0YXJnZXQAAAAAAAAAAAAFAAAAA25pbAAAAAFpAQAAAAVzaG9ydAAAAAEAAAALc2hvcnRUYXJnZXQEAAAABmNhbGxlcgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAD3Nob3J0QWRkcmVzc0tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGc2hvcnRfCQABpAAAAAEFAAAAC3Nob3J0VGFyZ2V0AgAAAAFfBQAAAAZjYWxsZXIEAAAADnNob3J0c1RvdGFsS2V5CQABLAAAAAICAAAADXNob3J0c190b3RhbF8JAAGkAAAAAQUAAAALc2hvcnRUYXJnZXQEAAAAHGN1cnJlbnRTaG9ydEFtb3VudEZvckFkZHJlc3MJAQAAABJnZXREYXRhRW50cnlGb3JLZXkAAAABBQAAAA9zaG9ydEFkZHJlc3NLZXkEAAAADWN1cnJlbnRTaG9ydHMJAQAAABJnZXREYXRhRW50cnlGb3JLZXkAAAABBQAAAA5zaG9ydHNUb3RhbEtleQQAAAAHcGF5bWVudAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAAZhbW91bnQIBQAAAAdwYXltZW50AAAABmFtb3VudAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAAAgAAAAECAAAAJk9ubHkgV2F2ZXMgcGF5bWVudHMgYWxsb3dlZCBjdXJyZW50bHkhAwkAAGcAAAACCQAAZAAAAAIFAAAABmhlaWdodAUAAAANUkVDT1ZFUllQSEFTRQUAAAALc2hvcnRUYXJnZXQJAAACAAAAAQIAAABVUmVjb3ZlcnkgcGhhc2UgYWN0aXZlLiBZb3UgY2FuIG5vIGxvbmdlciBnbyBzaG9ydCB0b3dhcmRzIHRoaXMgc2hvcnQgdGFyZ2V0IC8gaGVpZ2h0IQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAPc2hvcnRBZGRyZXNzS2V5CQAAZAAAAAIFAAAAHGN1cnJlbnRTaG9ydEFtb3VudEZvckFkZHJlc3MFAAAABmFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAOc2hvcnRzVG90YWxLZXkJAABkAAAAAgUAAAANY3VycmVudFNob3J0cwUAAAAGYW1vdW50BQAAAANuaWwAAAABaQEAAAAEbG9uZwAAAAEAAAAKbG9uZ1RhcmdldAQAAAAGY2FsbGVyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAObG9uZ0FkZHJlc3NLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABWxvbmdfCQABpAAAAAEFAAAACmxvbmdUYXJnZXQCAAAAAV8FAAAABmNhbGxlcgQAAAANbG9uZ3NUb3RhbEtleQkAASwAAAACAgAAAAxsb25nc190b3RhbF8JAAGkAAAAAQUAAAAKbG9uZ1RhcmdldAQAAAAbY3VycmVudExvbmdBbW91bnRGb3JBZGRyZXNzCQEAAAASZ2V0RGF0YUVudHJ5Rm9yS2V5AAAAAQUAAAAObG9uZ0FkZHJlc3NLZXkEAAAADGN1cnJlbnRMb25ncwkBAAAAEmdldERhdGFFbnRyeUZvcktleQAAAAEFAAAADWxvbmdzVG90YWxLZXkEAAAAB3BheW1lbnQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAQAAAAGYW1vdW50CAUAAAAHcGF5bWVudAAAAAZhbW91bnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACZPbmx5IFdhdmVzIHBheW1lbnRzIGFsbG93ZWQgY3VycmVudGx5IQMJAABnAAAAAgkAAGQAAAACBQAAAAZoZWlnaHQFAAAADVJFQ09WRVJZUEhBU0UFAAAACmxvbmdUYXJnZXQJAAACAAAAAQIAAABTUmVjb3ZlcnkgcGhhc2UgYWN0aXZlLiBZb3UgY2FuIG5vIGxvbmdlciBnbyBsb25nIHRvd2FyZHMgdGhpcyBsb25nIHRhcmdldCAvIGhlaWdodCEJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADmxvbmdBZGRyZXNzS2V5CQAAZAAAAAIFAAAAG2N1cnJlbnRMb25nQW1vdW50Rm9yQWRkcmVzcwUAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA1sb25nc1RvdGFsS2V5CQAAZAAAAAIFAAAADGN1cnJlbnRMb25ncwUAAAAGYW1vdW50BQAAAANuaWwAAAAAWqVl9Q==", "chainId": 84, "height": 1148588, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HzqkZHFN7HAdgW6jnKhZ11fm5pL6s5zWYyaVcMUTH7Uw Next: 3M46Ya3cDg9cHAK74GPjD4bFYQYmPMUXAk8dXMCFdAYF Diff:
OldNewDifferences
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let RECOVERYPHASE = 100
5+
6+let PRICEORACLE = "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx"
57
68 func getDataEntryForKey (key) = match getInteger(this, key) {
79 case x: Int =>
1113 case _ =>
1214 throw()
1315 }
16+
17+
18+@Callable(i)
19+func initiate (target) = {
20+ let currentPrice = getIntegerValue(addressFromStringValue(PRICEORACLE), "price")
21+ if (((height + RECOVERYPHASE) >= height))
22+ then throw(("No new future instantiable for the given height: " + toString(target)))
23+ else WriteSet([DataEntry(("target_price_" + toString(target)), currentPrice), DataEntry(("shorts_total_" + toString(target)), 0), DataEntry(("longs_total_" + toString(target)), 0)])
24+ }
25+
1426
1527
1628 @Callable(i)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let RECOVERYPHASE = 100
5+
6+let PRICEORACLE = "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx"
57
68 func getDataEntryForKey (key) = match getInteger(this, key) {
79 case x: Int =>
810 x
911 case _: Unit =>
1012 0
1113 case _ =>
1214 throw()
1315 }
16+
17+
18+@Callable(i)
19+func initiate (target) = {
20+ let currentPrice = getIntegerValue(addressFromStringValue(PRICEORACLE), "price")
21+ if (((height + RECOVERYPHASE) >= height))
22+ then throw(("No new future instantiable for the given height: " + toString(target)))
23+ else WriteSet([DataEntry(("target_price_" + toString(target)), currentPrice), DataEntry(("shorts_total_" + toString(target)), 0), DataEntry(("longs_total_" + toString(target)), 0)])
24+ }
25+
1426
1527
1628 @Callable(i)
1729 func short (shortTarget) = {
1830 let caller = toString(i.caller)
1931 let shortAddressKey = ((("short_" + toString(shortTarget)) + "_") + caller)
2032 let shortsTotalKey = ("shorts_total_" + toString(shortTarget))
2133 let currentShortAmountForAddress = getDataEntryForKey(shortAddressKey)
2234 let currentShorts = getDataEntryForKey(shortsTotalKey)
2335 let payment = extract(i.payment)
2436 let amount = payment.amount
2537 if (isDefined(payment.assetId))
2638 then throw("Only Waves payments allowed currently!")
2739 else if (((height + RECOVERYPHASE) >= shortTarget))
2840 then throw("Recovery phase active. You can no longer go short towards this short target / height!")
2941 else WriteSet([DataEntry(shortAddressKey, (currentShortAmountForAddress + amount)), DataEntry(shortsTotalKey, (currentShorts + amount))])
3042 }
3143
3244
3345
3446 @Callable(i)
3547 func long (longTarget) = {
3648 let caller = toString(i.caller)
3749 let longAddressKey = ((("long_" + toString(longTarget)) + "_") + caller)
3850 let longsTotalKey = ("longs_total_" + toString(longTarget))
3951 let currentLongAmountForAddress = getDataEntryForKey(longAddressKey)
4052 let currentLongs = getDataEntryForKey(longsTotalKey)
4153 let payment = extract(i.payment)
4254 let amount = payment.amount
4355 if (isDefined(payment.assetId))
4456 then throw("Only Waves payments allowed currently!")
4557 else if (((height + RECOVERYPHASE) >= longTarget))
4658 then throw("Recovery phase active. You can no longer go long towards this long target / height!")
4759 else WriteSet([DataEntry(longAddressKey, (currentLongAmountForAddress + amount)), DataEntry(longsTotalKey, (currentLongs + amount))])
4860 }
4961
5062

github/deemru/w8io/c3f4982 
29.76 ms