tx · 7NhkkazukGx7fHc2UaHfW41gn4Lo2BVSyuQJ5xBdDec6 3PMLRAox7yN29FiwW22FTHNNSFSAUPQK88g: -0.01000000 Waves 2020.04.05 19:25 [2004415] smart account 3PMLRAox7yN29FiwW22FTHNNSFSAUPQK88g > SELF 0.00000000 Waves
{ "type": 13, "id": "7NhkkazukGx7fHc2UaHfW41gn4Lo2BVSyuQJ5xBdDec6", "fee": 1000000, "feeAssetId": null, "timestamp": 1586102719336, "version": 1, "sender": "3PMLRAox7yN29FiwW22FTHNNSFSAUPQK88g", "senderPublicKey": "BCAZqmRV9yjrT1DGHmwNthA168zcQHh5rcJ8ooA7TVJG", "proofs": [ "32ine8VPLXjE4Ucs87u8tbghC1PJ5rbQfDzfY6v9VfAHS5ruFCPnuirpp3PdVU7kUioH9kKVBomXch14w8x7H3dS" ], "script": "base64:AAIDAAAAAAAAAAsIARIDCgEBEgASAAAAABAAAAAAC2Jhc2VBc3NldElkAQAAACCVUyAXMsf3+DFtUqiNtVnTz+vyc+2UcVflnSbnzodq4AAAAAAMcXVvdGVBc3NldElkAQAAACBs+mr/xe2qjAt/tSqT0qIML4KC23R6BIxT+/0TH3Og/wAAAAANYW1vdW50QXNzZXRJZAUAAAALYmFzZUFzc2V0SWQAAAAADHByaWNlQXNzZXRJZAUAAAAMcXVvdGVBc3NldElkAAAAAA1kYXBwUHVibGljS2V5AQAAACAVw4BW2jYYk2X9NmxEwoTYLTroo9/KQ40IB7+CaVtfJwAAAAAPcGF5b3V0UHVibGljS2V5AQAAACCu8JmyEQArGsYf41NvxOfU51xkoFAbgUzGOK4FOnwUTAAAAAAObW1Cb3RQdWJsaWNLZXkBAAAAIETCWGJ2Man+Nah6vafIEN0s88glbKNo7Nl3weQyBRRvAAAAABBtYW5hZ2VyUHVibGljS2V5AQAAACBLnfL4A4hDz+ksGjsQrCMzaSjtDb3uuXqG3PLORjuWOwAAAAATZ3VhcmFudG9yUHVibGljS2V5cwUAAAADbmlsAAAAAAVtb250aAkAAGgAAAACAAAAAAAAKCByAAAAAAAAAAPoAAAAAAdxdWFydGVyCQAAaAAAAAIFAAAABW1vbnRoAAAAAAAAAAADAAAAAAd0aW1lb3V0CQAAaQAAAAIFAAAABW1vbnRoAAAAAAAAAAAKAAAAAA1sYXN0QmxvY2tUaW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAAAAAANbW9udGhPcGVuVGltZQkAAGgAAAACCQAAaQAAAAIFAAAADWxhc3RCbG9ja1RpbWUFAAAABW1vbnRoBQAAAAVtb250aAAAAAAPcXVhcnRlck9wZW5UaW1lCQAAaAAAAAIJAABpAAAAAgUAAAANbGFzdEJsb2NrVGltZQUAAAAHcXVhcnRlcgUAAAAHcXVhcnRlcgEAAAAMdG9EYXRlU3RyaW5nAAAAAQAAAAl0aW1lc3RhbXAEAAAAAnNwAgAAAAEgBAAAAAJ6egIAAAAEIFVUQwQAAAAEbm9ybQkABEwAAAACAAAAAAAAAAAACQAETAAAAAIAAAAAAAAAAB8JAARMAAAAAgAAAAAAAAAAOwkABEwAAAACAAAAAAAAAABaCQAETAAAAAIAAAAAAAAAAHgJAARMAAAAAgAAAAAAAAAAlwkABEwAAAACAAAAAAAAAAC1CQAETAAAAAIAAAAAAAAAANQJAARMAAAAAgAAAAAAAAAA8wkABEwAAAACAAAAAAAAAAERCQAETAAAAAIAAAAAAAAAATAJAARMAAAAAgAAAAAAAAABTgkABEwAAAACAAAAAAAAAAFtBQAAAANuaWwEAAAABGxlYXAJAARMAAAAAgAAAAAAAAAAAAkABEwAAAACAAAAAAAAAAAfCQAETAAAAAIAAAAAAAAAADwJAARMAAAAAgAAAAAAAAAAWwkABEwAAAACAAAAAAAAAAB5CQAETAAAAAIAAAAAAAAAAJgJAARMAAAAAgAAAAAAAAAAtgkABEwAAAACAAAAAAAAAADVCQAETAAAAAIAAAAAAAAAAPQJAARMAAAAAgAAAAAAAAABEgkABEwAAAACAAAAAAAAAAExCQAETAAAAAIAAAAAAAAAAU8JAARMAAAAAgAAAAAAAAABbgUAAAADbmlsAwMJAABmAAAAAgkAAGgAAAACAP////0oEziAAAAAAAAAAAPoBQAAAAl0aW1lc3RhbXAGCQAAZwAAAAIFAAAACXRpbWVzdGFtcAkAAGgAAAACAAAAADr/9EGAAAAAAAAAAAPoCQAAAgAAAAECAAAANUlTTyA4NjAxOiBvbmx5IHllYXJzIGZyb20gMTU4MyB0byA5OTk5IGFyZSBwZXJtaXR0ZWQuBAAAAAVlcG9jaAkAAGQAAAACCQAAZAAAAAIJAABlAAAAAgkAAGQAAAACCQAAaAAAAAIAAAAAAAAAB7EAAAAAAAAAAW0JAABpAAAAAgAAAAAAAAAHsQAAAAAAAAAABAkAAGkAAAACAAAAAAAAAAexAAAAAAAAAABkCQAAaQAAAAIAAAAAAAAAB7EAAAAAAAAAAZAAAAAAAAAAAW4EAAAAAmNlCQAAZAAAAAIFAAAACXRpbWVzdGFtcAkAAGgAAAACCQAAaAAAAAIFAAAABWVwb2NoAAAAAAAAAVGAAAAAAAAAAAPoBAAAAARkYXRlBAAAAAJ5eQkAAGUAAAACCQAAaQAAAAIFAAAAAmNlCQAAaAAAAAIAAAAAAAHhhVgAAAAAAAAAA+gAAAAAAAAAAAEEAAAAA2R0eQkAAGQAAAACCQAAZAAAAAIJAABlAAAAAgkAAGQAAAACCQAAaAAAAAIFAAAAAnl5AAAAAAAAAAFtCQAAaQAAAAIFAAAAAnl5AAAAAAAAAAAECQAAaQAAAAIFAAAAAnl5AAAAAAAAAABkCQAAaQAAAAIFAAAAAnl5AAAAAAAAAAGQAAAAAAAAAAFuBAAAAAN5dGQJAABlAAAAAgkAAGkAAAACBQAAAAJjZQkAAGgAAAACAAAAAAAAAVGAAAAAAAAAAAPoBQAAAANkdHkEAAAABm1vbnRocwMDAwkAAAAAAAACCQAAagAAAAIJAABkAAAAAgUAAAACeXkAAAAAAAAAAAEAAAAAAAAAAAQAAAAAAAAAAAAJAQAAAAIhPQAAAAIJAABqAAAAAgkAAGQAAAACBQAAAAJ5eQAAAAAAAAAAAQAAAAAAAAAAZAAAAAAAAAAAAAcGCQAAAAAAAAIJAABqAAAAAgkAAGQAAAACBQAAAAJ5eQAAAAAAAAAAAQAAAAAAAAABkAAAAAAAAAAAAAUAAAAEbGVhcAUAAAAEbm9ybQQAAAACbW0DCQAAZwAAAAIFAAAAA3l0ZAkAAZEAAAACBQAAAAZtb250aHMAAAAAAAAAAAwJAAACAAAAAQIAAAAVTW9udGggb3ZlcmZsb3cgZXJyb3IhAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAALAAAAAAAAAAALAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAKAAAAAAAAAAAKAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAJAAAAAAAAAAAJAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAIAAAAAAAAAAAIAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAHAAAAAAAAAAAHAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAGAAAAAAAAAAAGAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAFAAAAAAAAAAAFAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAEAAAAAAAAAAAEAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAADAAAAAAAAAAADAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAACAAAAAAAAAAACAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAABAAAAAAAAAAABAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAAAAAAAAAAAAAACQAAAgAAAAECAAAAFU1vbnRoIG92ZXJmbG93IGVycm9yIQQAAAACZGQJAABlAAAAAgUAAAADeXRkCQABkQAAAAIFAAAABm1vbnRocwUAAAACbW0JAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABCQAAZAAAAAIFAAAAAnl5AAAAAAAAAAABAgAAAAEtCQABMAAAAAIJAAGkAAAAAQkAAGQAAAACBQAAAAJtbQAAAAAAAAAAZQAAAAAAAAAAAQIAAAABLQkAATAAAAACCQABpAAAAAEJAABkAAAAAgUAAAACZGQAAAAAAAAAAGUAAAAAAAAAAAEEAAAABHRpbWUEAAAAAnJkCQAAagAAAAIFAAAAAmNlCQAAaAAAAAIAAAAAAAABUYAAAAAAAAAAA+gEAAAAAmhoCQAAaQAAAAIFAAAAAnJkCQAAaAAAAAIAAAAAAAAADhAAAAAAAAAAA+gEAAAAAnJoCQAAagAAAAIFAAAAAnJkCQAAaAAAAAIAAAAAAAAADhAAAAAAAAAAA+gEAAAAAm1tCQAAaQAAAAIFAAAAAnJoCQAAaAAAAAIAAAAAAAAAADwAAAAAAAAAA+gEAAAAAnJtCQAAagAAAAIFAAAAAnJoCQAAaAAAAAIAAAAAAAAAADwAAAAAAAAAA+gEAAAAAnNzCQAAaQAAAAIFAAAAAnJtAAAAAAAAAAPoBAAAAAJtcwkAAGoAAAACBQAAAAJybQAAAAAAAAAD6AkAASwAAAACCQABLAAAAAIJAAEwAAAAAgkAAaQAAAABCQAAZAAAAAIFAAAAAmhoAAAAAAAAAABkAAAAAAAAAAABAgAAAAE6CQABMAAAAAIJAAGkAAAAAQkAAGQAAAACBQAAAAJtbQAAAAAAAAAAZAAAAAAAAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEZGF0ZQUAAAACc3AFAAAABHRpbWUFAAAAAnp6AAAAAwAAAAFpAQAAAAtzZXRCYWxhbmNlcwAAAAEAAAAFdG90YWwDCQEAAAACIT0AAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAEG1hbmFnZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAvT25seSB0aGUgYWRtaW5pc3RyYXRvciBjYW4gYWRqdXN0IHRoZSBiYWxhbmNlcyEDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAAWkAAAAHcGF5bWVudAkAAAIAAAABAgAAADNQbGVhc2UgZG8gbm90IGF0dGFjaCBwYXltZW50IHdoZW4gc2V0dGluZyBiYWxhbmNlcy4DCQAAZgAAAAIAAAAAAAAAAAAFAAAABXRvdGFsCQAAAgAAAAECAAAAKU5lZ2F0aXZlIHRvdGFsIGJhbGFuY2UgYXJlIG5vdCBhbGxvd2VkLi4uBAAAAAtiYXNlQmFsYW5jZQkAA+sAAAACBQAAAAR0aGlzBQAAAAtiYXNlQXNzZXRJZAQAAAAMcXVvdGVCYWxhbmNlCQAD6wAAAAIFAAAABHRoaXMFAAAADHF1b3RlQXNzZXRJZAQAAAAMdG90YWxCYWxhbmNlBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAADWJhbGFuY2VfdG90YWwDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABeAUAAAAHJG1hdGNoMAUAAAABeAAAAAAAAAAAAAMJAABmAAAAAgUAAAAFdG90YWwAAAAAAAAAAAAJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADGJhbGFuY2VfYmFzZQUAAAALYmFzZUJhbGFuY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAADWJhbGFuY2VfcXVvdGUFAAAADHF1b3RlQmFsYW5jZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAANYmFsYW5jZV90b3RhbAUAAAAFdG90YWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAC2xhc3RfdXBkYXRlBQAAAA1sYXN0QmxvY2tUaW1lBQAAAANuaWwDCQAAZgAAAAIFAAAADHRvdGFsQmFsYW5jZQAAAAAAAAAAAAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAMYmFsYW5jZV9iYXNlBQAAAAtiYXNlQmFsYW5jZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAANYmFsYW5jZV9xdW90ZQUAAAAMcXVvdGVCYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAtsYXN0X3VwZGF0ZQUAAAANbGFzdEJsb2NrVGltZQUAAAADbmlsCQAAAgAAAAECAAAAJVplcm8gdG90YWwgYmFsYW5jZSBhcmUgbm90IGFsbG93ZWQuLi4AAAABaQEAAAALc2VuZFJld2FyZHMAAAAABAAAAApsYXN0VXBkYXRlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAAAtsYXN0X3VwZGF0ZQQAAAAJbmV4dE1vbnRoCQAAaAAAAAIJAABkAAAAAgkAAGkAAAACBQAAAApsYXN0VXBkYXRlBQAAAAVtb250aAAAAAAAAAAAAQUAAAAFbW9udGgDCQEAAAACIT0AAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAEG1hbmFnZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAkT25seSBhZG1pbmlzdHJhdG9yIGNhbiBzZW5kIHJld2FyZHMhAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAFpAAAAB3BheW1lbnQJAAACAAAAAQIAAAAyUGxlYXNlIGRvIG5vdCBhdHRhY2ggcGF5bWVudCB3aGVuIHNlbmRpbmcgcmV3YXJkcy4DAwkAAGYAAAACBQAAAAluZXh0TW9udGgFAAAADWxhc3RCbG9ja1RpbWUGCQAAZwAAAAIFAAAADWxhc3RCbG9ja1RpbWUJAABkAAAAAgUAAAANbW9udGhPcGVuVGltZQUAAAAHdGltZW91dAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAbUmV3YXJkcyBtdXN0IGJlIHNlbnQgYWZ0ZXIgCQEAAAAMdG9EYXRlU3RyaW5nAAAAAQkAAGQAAAACBQAAAA1tb250aE9wZW5UaW1lBQAAAAVtb250aAIAAAABLgQAAAAJcmVjaXBpZW50CQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAA9wYXlvdXRQdWJsaWNLZXkEAAAAC2Jhc2VCYWxhbmNlCQAD6wAAAAIFAAAABHRoaXMFAAAAC2Jhc2VBc3NldElkBAAAAAxxdW90ZUJhbGFuY2UJAAPrAAAAAgUAAAAEdGhpcwUAAAAMcXVvdGVBc3NldElkBAAAAA5vbGRCYXNlQmFsYW5jZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAMYmFsYW5jZV9iYXNlBAAAAA9vbGRRdW90ZUJhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAADWJhbGFuY2VfcXVvdGUEAAAAD29sZFRvdGFsQmFsYW5jZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAANYmFsYW5jZV90b3RhbAQAAAAIbW1Qcm9maXQJAABlAAAAAgUAAAAMcXVvdGVCYWxhbmNlCQAAawAAAAMFAAAAD29sZFF1b3RlQmFsYW5jZQUAAAAOb2xkQmFzZUJhbGFuY2UFAAAAC2Jhc2VCYWxhbmNlBAAAAAluZXRQcm9maXQJAABlAAAAAgkAAGUAAAACCQAAaAAAAAIAAAAAAAAAAAIFAAAADHF1b3RlQmFsYW5jZQUAAAAIbW1Qcm9maXQFAAAAD29sZFRvdGFsQmFsYW5jZQQAAAAGYW1vdW50AwkAAGYAAAACCQAAZAAAAAIFAAAAD3F1YXJ0ZXJPcGVuVGltZQUAAAAHdGltZW91dAUAAAANbGFzdEJsb2NrVGltZQkAAGQAAAACBQAAAAhtbVByb2ZpdAMJAABmAAAAAgUAAAAJbmV0UHJvZml0AAAAAAAAAAAABQAAAAluZXRQcm9maXQAAAAAAAAAAAAJAABrAAAAAwUAAAAIbW1Qcm9maXQAAAAAAAAAAAgAAAAAAAAAAAoDAwkAAGYAAAACBQAAAAZhbW91bnQAAAAAAAAAAAAJAABnAAAAAgUAAAAMcXVvdGVCYWxhbmNlBQAAAAZhbW91bnQHCQEAAAAMU2NyaXB0UmVzdWx0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", "chainId": 87, "height": 2004415, "spentComplexity": 0 } View: original | compacted Prev: none Next: C7nY11qxp6VCapHLWDLSWsKXjwmK5yeuA3DwzGM3tq1y Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 3 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let baseAssetId = base58'B3uGHFRpSUuGEDWjqB9LWWxafQj8VTvpMucEyoxzws5H' | |
5 | + | ||
6 | + | let quoteAssetId = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS' | |
7 | + | ||
8 | + | let amountAssetId = baseAssetId | |
9 | + | ||
10 | + | let priceAssetId = quoteAssetId | |
11 | + | ||
12 | + | let dappPublicKey = base58'2TxTux7YwCDmz45WeFjTfDpBg7t9hBir8SqeD9m86yen' | |
13 | + | ||
14 | + | let payoutPublicKey = base58'CmtjCeZ9NqoQScT4HoWGn8vNQ8hK7kDKQfukQbjChQq1' | |
15 | + | ||
16 | + | let mmBotPublicKey = base58'5dQbzkYkh2UWtcR1cDwxZVzkduK1SVEeVa1TyLmD6eVU' | |
17 | + | ||
18 | + | let managerPublicKey = base58'66BGZcJJ9yAWcHKZZeiuA71wAvC5GWTmdQWArjt1g6jC' | |
19 | + | ||
20 | + | let guarantorPublicKeys = nil | |
21 | + | ||
22 | + | let month = (2629746 * 1000) | |
23 | + | ||
24 | + | let quarter = (month * 3) | |
25 | + | ||
26 | + | let timeout = (month / 10) | |
27 | + | ||
28 | + | let lastBlockTime = lastBlock.timestamp | |
29 | + | ||
30 | + | let monthOpenTime = ((lastBlockTime / month) * month) | |
31 | + | ||
32 | + | let quarterOpenTime = ((lastBlockTime / quarter) * quarter) | |
33 | + | ||
34 | + | func toDateString (timestamp) = { | |
35 | + | let sp = " " | |
36 | + | let zz = " UTC" | |
37 | + | let norm = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365] | |
38 | + | let leap = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366] | |
39 | + | if (if (((-12212553600 * 1000) > timestamp)) | |
40 | + | then true | |
41 | + | else (timestamp >= (253402300800 * 1000))) | |
42 | + | then throw("ISO 8601: only years from 1583 to 9999 are permitted.") | |
43 | + | else { | |
44 | + | let epoch = (((((1969 * 365) + (1969 / 4)) - (1969 / 100)) + (1969 / 400)) + 366) | |
45 | + | let ce = (timestamp + ((epoch * 86400) * 1000)) | |
46 | + | let date = { | |
47 | + | let yy = ((ce / (31556952 * 1000)) - 1) | |
48 | + | let dty = (((((yy * 365) + (yy / 4)) - (yy / 100)) + (yy / 400)) + 366) | |
49 | + | let ytd = ((ce / (86400 * 1000)) - dty) | |
50 | + | let months = if (if (if ((((yy + 1) % 4) == 0)) | |
51 | + | then (((yy + 1) % 100) != 0) | |
52 | + | else false) | |
53 | + | then true | |
54 | + | else (((yy + 1) % 400) == 0)) | |
55 | + | then leap | |
56 | + | else norm | |
57 | + | let mm = if ((ytd >= months[12])) | |
58 | + | then throw("Month overflow error!") | |
59 | + | else if ((ytd >= months[11])) | |
60 | + | then 11 | |
61 | + | else if ((ytd >= months[10])) | |
62 | + | then 10 | |
63 | + | else if ((ytd >= months[9])) | |
64 | + | then 9 | |
65 | + | else if ((ytd >= months[8])) | |
66 | + | then 8 | |
67 | + | else if ((ytd >= months[7])) | |
68 | + | then 7 | |
69 | + | else if ((ytd >= months[6])) | |
70 | + | then 6 | |
71 | + | else if ((ytd >= months[5])) | |
72 | + | then 5 | |
73 | + | else if ((ytd >= months[4])) | |
74 | + | then 4 | |
75 | + | else if ((ytd >= months[3])) | |
76 | + | then 3 | |
77 | + | else if ((ytd >= months[2])) | |
78 | + | then 2 | |
79 | + | else if ((ytd >= months[1])) | |
80 | + | then 1 | |
81 | + | else if ((ytd >= months[0])) | |
82 | + | then 0 | |
83 | + | else throw("Month overflow error!") | |
84 | + | let dd = (ytd - months[mm]) | |
85 | + | ((((toString((yy + 1)) + "-") + drop(toString((mm + 101)), 1)) + "-") + drop(toString((dd + 101)), 1)) | |
86 | + | } | |
87 | + | let time = { | |
88 | + | let rd = (ce % (86400 * 1000)) | |
89 | + | let hh = (rd / (3600 * 1000)) | |
90 | + | let rh = (rd % (3600 * 1000)) | |
91 | + | let mm = (rh / (60 * 1000)) | |
92 | + | let rm = (rh % (60 * 1000)) | |
93 | + | let ss = (rm / 1000) | |
94 | + | let ms = (rm % 1000) | |
95 | + | ((drop(toString((hh + 100)), 1) + ":") + drop(toString((mm + 100)), 1)) | |
96 | + | } | |
97 | + | (((date + sp) + time) + zz) | |
98 | + | } | |
99 | + | } | |
100 | + | ||
101 | + | ||
102 | + | @Callable(i) | |
103 | + | func setBalances (total) = if ((i.callerPublicKey != managerPublicKey)) | |
104 | + | then throw("Only the administrator can adjust the balances!") | |
105 | + | else if (isDefined(i.payment)) | |
106 | + | then throw("Please do not attach payment when setting balances.") | |
107 | + | else if ((0 > total)) | |
108 | + | then throw("Negative total balance are not allowed...") | |
109 | + | else { | |
110 | + | let baseBalance = assetBalance(this, baseAssetId) | |
111 | + | let quoteBalance = assetBalance(this, quoteAssetId) | |
112 | + | let totalBalance = match getInteger(this, "balance_total") { | |
113 | + | case x: Int => | |
114 | + | x | |
115 | + | case _ => | |
116 | + | 0 | |
117 | + | } | |
118 | + | if ((total > 0)) | |
119 | + | then WriteSet([DataEntry("balance_base", baseBalance), DataEntry("balance_quote", quoteBalance), DataEntry("balance_total", total), DataEntry("last_update", lastBlockTime)]) | |
120 | + | else if ((totalBalance > 0)) | |
121 | + | then WriteSet([DataEntry("balance_base", baseBalance), DataEntry("balance_quote", quoteBalance), DataEntry("last_update", lastBlockTime)]) | |
122 | + | else throw("Zero total balance are not allowed...") | |
123 | + | } | |
124 | + | ||
125 | + | ||
126 | + | ||
127 | + | @Callable(i) | |
128 | + | func sendRewards () = { | |
129 | + | let lastUpdate = getIntegerValue(this, "last_update") | |
130 | + | let nextMonth = (((lastUpdate / month) + 1) * month) | |
131 | + | if ((i.callerPublicKey != managerPublicKey)) | |
132 | + | then throw("Only administrator can send rewards!") | |
133 | + | else if (isDefined(i.payment)) | |
134 | + | then throw("Please do not attach payment when sending rewards.") | |
135 | + | else if (if ((nextMonth > lastBlockTime)) | |
136 | + | then true | |
137 | + | else (lastBlockTime >= (monthOpenTime + timeout))) | |
138 | + | then throw((("Rewards must be sent after " + toDateString((monthOpenTime + month))) + ".")) | |
139 | + | else { | |
140 | + | let recipient = addressFromPublicKey(payoutPublicKey) | |
141 | + | let baseBalance = assetBalance(this, baseAssetId) | |
142 | + | let quoteBalance = assetBalance(this, quoteAssetId) | |
143 | + | let oldBaseBalance = getIntegerValue(this, "balance_base") | |
144 | + | let oldQuoteBalance = getIntegerValue(this, "balance_quote") | |
145 | + | let oldTotalBalance = getIntegerValue(this, "balance_total") | |
146 | + | let mmProfit = (quoteBalance - fraction(oldQuoteBalance, oldBaseBalance, baseBalance)) | |
147 | + | let netProfit = (((2 * quoteBalance) - mmProfit) - oldTotalBalance) | |
148 | + | let amount = if (((quarterOpenTime + timeout) > lastBlockTime)) | |
149 | + | then (mmProfit + (if ((netProfit > 0)) | |
150 | + | then netProfit | |
151 | + | else 0)) | |
152 | + | else fraction(mmProfit, 8, 10) | |
153 | + | if (if ((amount > 0)) | |
154 | + | then (quoteBalance >= amount) | |
155 | + | else false) | |
156 | + | then ScriptResult(WriteSet([DataEntry("balance_base", baseBalance), DataEntry("balance_quote", (quoteBalance - amount)), DataEntry("last_update", lastBlockTime)]), TransferSet([ScriptTransfer(recipient, amount, quoteAssetId)])) | |
157 | + | else if ((amount > quoteBalance)) | |
158 | + | then throw("Insufficient funds on the balance of quotes...") | |
159 | + | else throw("Zero or negative rewards are not allowed...") | |
160 | + | } | |
161 | + | } | |
162 | + | ||
163 | + | ||
164 | + | ||
165 | + | @Callable(i) | |
166 | + | func emergencyExit () = { | |
167 | + | let lastUpdate = getIntegerValue(this, "last_update") | |
168 | + | let emergencyTime = ((((lastUpdate / month) + 1) * month) + timeout) | |
169 | + | if (isDefined(i.payment)) | |
170 | + | then throw("Please do not attach payment in an emergency.") | |
171 | + | else if (if ((emergencyTime > lastBlockTime)) | |
172 | + | then (i.callerPublicKey != managerPublicKey) | |
173 | + | else false) | |
174 | + | then throw((("Time for emergencies will be after " + toDateString(emergencyTime)) + ".")) | |
175 | + | else { | |
176 | + | let recipient = addressFromPublicKey(dappPublicKey) | |
177 | + | let baseBalance = assetBalance(this, baseAssetId) | |
178 | + | let quoteBalance = assetBalance(this, quoteAssetId) | |
179 | + | let st0 = if ((baseBalance == 0)) | |
180 | + | then nil | |
181 | + | else [ScriptTransfer(recipient, baseBalance, baseAssetId)] | |
182 | + | let st1 = if ((quoteBalance == 0)) | |
183 | + | then st0 | |
184 | + | else ScriptTransfer(recipient, quoteBalance, quoteAssetId) :: st0 | |
185 | + | let scriptTransfers = st1 | |
186 | + | if ((size(scriptTransfers) > 0)) | |
187 | + | then ScriptResult(WriteSet([DataEntry("last_update", lastBlockTime)]), TransferSet(scriptTransfers)) | |
188 | + | else throw("There is nothing on the balances!") | |
189 | + | } | |
190 | + | } | |
191 | + | ||
192 | + | ||
193 | + | @Verifier(tx) | |
194 | + | func verify () = { | |
195 | + | func isValid (sig,keys) = { | |
196 | + | func check (acc,pub) = if (acc) | |
197 | + | then true | |
198 | + | else sigVerify(tx.bodyBytes, sig, pub) | |
199 | + | ||
200 | + | let $list1133811365 = keys | |
201 | + | let $size1133811365 = size($list1133811365) | |
202 | + | let $acc01133811365 = false | |
203 | + | if (($size1133811365 == 0)) | |
204 | + | then $acc01133811365 | |
205 | + | else { | |
206 | + | let $acc11133811365 = check($acc01133811365, $list1133811365[0]) | |
207 | + | if (($size1133811365 == 1)) | |
208 | + | then $acc11133811365 | |
209 | + | else { | |
210 | + | let $acc21133811365 = check($acc11133811365, $list1133811365[1]) | |
211 | + | if (($size1133811365 == 2)) | |
212 | + | then $acc21133811365 | |
213 | + | else { | |
214 | + | let $acc31133811365 = check($acc21133811365, $list1133811365[2]) | |
215 | + | if (($size1133811365 == 3)) | |
216 | + | then $acc31133811365 | |
217 | + | else { | |
218 | + | let $acc41133811365 = check($acc31133811365, $list1133811365[3]) | |
219 | + | if (($size1133811365 == 4)) | |
220 | + | then $acc41133811365 | |
221 | + | else { | |
222 | + | let $acc51133811365 = check($acc41133811365, $list1133811365[4]) | |
223 | + | if (($size1133811365 == 5)) | |
224 | + | then $acc51133811365 | |
225 | + | else { | |
226 | + | let $acc61133811365 = check($acc51133811365, $list1133811365[5]) | |
227 | + | throw("List size exceed 5") | |
228 | + | } | |
229 | + | } | |
230 | + | } | |
231 | + | } | |
232 | + | } | |
233 | + | } | |
234 | + | } | |
235 | + | ||
236 | + | let rightManager = if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)) | |
237 | + | then true | |
238 | + | else sigVerify(tx.bodyBytes, tx.proofs[0], mmBotPublicKey) | |
239 | + | let rightGuarantors = ((((if (isValid(tx.proofs[1], guarantorPublicKeys)) | |
240 | + | then 1 | |
241 | + | else 0) + (if (isValid(tx.proofs[2], guarantorPublicKeys)) | |
242 | + | then 1 | |
243 | + | else 0)) + (if (isValid(tx.proofs[3], guarantorPublicKeys)) | |
244 | + | then 1 | |
245 | + | else 0)) >= ((size(guarantorPublicKeys) + 1) / 2)) | |
246 | + | match tx { | |
247 | + | case o: Order => | |
248 | + | if (rightManager) | |
249 | + | then if (if (if (if ((o.matcherFeeAssetId == priceAssetId)) | |
250 | + | then (o.assetPair.amountAsset == amountAssetId) | |
251 | + | else false) | |
252 | + | then (o.assetPair.priceAsset == priceAssetId) | |
253 | + | else false) | |
254 | + | then true | |
255 | + | else if (if ((o.orderType == Buy)) | |
256 | + | then (o.matcherFeeAssetId == priceAssetId) | |
257 | + | else false) | |
258 | + | then (o.assetPair.amountAsset == priceAssetId) | |
259 | + | else false) | |
260 | + | then true | |
261 | + | else if ((o.orderType == Sell)) | |
262 | + | then if (if (!(isDefined(o.matcherFeeAssetId))) | |
263 | + | then !(isDefined(o.assetPair.priceAsset)) | |
264 | + | else false) | |
265 | + | then true | |
266 | + | else if ((o.matcherFeeAssetId == priceAssetId)) | |
267 | + | then (o.assetPair.priceAsset == priceAssetId) | |
268 | + | else false | |
269 | + | else false | |
270 | + | else false | |
271 | + | case t: TransferTransaction => | |
272 | + | if (if (rightManager) | |
273 | + | then ((quarterOpenTime + timeout) > lastBlockTime) | |
274 | + | else false) | |
275 | + | then (addressFromRecipient(t.recipient) == addressFromPublicKey(dappPublicKey)) | |
276 | + | else false | |
277 | + | case s: SetScriptTransaction => | |
278 | + | if (rightManager) | |
279 | + | then rightGuarantors | |
280 | + | else false | |
281 | + | case _ => | |
282 | + | false | |
283 | + | } | |
284 | + | } | |
285 | + |
github/deemru/w8io/3ef1775 44.80 ms ◑