tx · FfpjzCxJ8FVt3hhk7QgHrPDb74mDc56kNr4FnF5qcGpQ 3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb: -0.01400000 Waves 2021.08.16 16:44 [1660983] smart account 3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb > SELF 0.00000000 Waves
{ "type": 13, "id": "FfpjzCxJ8FVt3hhk7QgHrPDb74mDc56kNr4FnF5qcGpQ", "fee": 1400000, "feeAssetId": null, "timestamp": 1629121470426, "version": 2, "chainId": 84, "sender": "3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb", "senderPublicKey": "61fhePmC5L8iWserAMXoPAZbv24cAo6eyvnyYpoLpZJy", "proofs": [ "4ZtfPPZJ1QTMzh5KxJRV3strQ1aJTRk7KpRg4SGyPACxnm2684RhcAS7pXhF5S55AzT6L4Ru2Dqs3Zz3DpivWP6S", "2EyBM8DK8gSJ2pYzn6CeWEZKygKAWRe7GQZ4ooudQHi3E4SeXpSnt23XZKxdgS3ufDN4CGYyeSkDTkL8eWsccGKn" ], "script": "base64:AAIEAAAAAAAAABsIAhIAEgQKAggIEgUKAwEEARIECgIBCBIAEgAAAAA/AAAAAAd2ZXJzaW9uAgAAAAUxLjAuMAAAAAAKa2V5VmVyc2lvbgIAAAAHdmVyc2lvbgAAAAAJa2V5QWN0aXZlAgAAAAZhY3RpdmUAAAAAEWtleU51bWJlck9mVm90aW5nAgAAABR2b3RpbmdfYWN0aXZlX251bWJlcgAAAAAPa2V5SGVpZ2h0T2ZQb29sAgAAAA5fZmluaXNoX2hlaWdodAAAAAAFa2V5Tm8CAAAAD190b3RhbF92b3Rlc19ubwAAAAAGa2V5WWVzAgAAABBfdG90YWxfdm90ZXNfeWVzAAAAAAlrZXlOb1VzZXICAAAACF92b3RlX25vAAAAAAprZXlZZXNVc2VyAgAAAAlfdm90ZV95ZXMAAAAAEWtleVN0YXR1c09mVm90aW5nAgAAAAdfc3RhdHVzAAAAABFrZXlBbW91bnRPZlZvdGluZwIAAAAOdm90aW5nX2lkX2xhc3QAAAAAFGtleU1heEFtb3VudE9mVm90aW5nAgAAABFtYXhfYW1vdW50X3ZvdGluZwAAAAARa2V5TWF4RGF5T2ZWb3RpbmcCAAAADm1heF9kYXlfdm90aW5nAAAAAA1rZXlDb21taXNzaW9uAgAAAApjb21taXNzaW9uAAAAABtrZXlDb21taXNzaW9uU2NhbGVEZWxpbWl0ZXICAAAAGmNvbW1pc3Npb25fc2NhbGVfZGVsaW1pdGVyAAAAAAhrZXlDYXVzZQIAAAAOc2h1dGRvd25fY2F1c2UAAAAADmtleUNhbmNlbENhdXNlAgAAAA1fY2FuY2VsX2NhdXNlAAAAAA5rVXNlclRvdGFsU1dPUAIAAAAMX1NXT1BfYW1vdW50AAAAAAVrTmFtZQIAAAALX2Fzc2V0X25hbWUAAAAACHZvdGluZ0lkAgAAAAdfdm90aW5nAAAAAA5wZXJpb2RPZlZvdGluZwIAAAANcGVyaW9kX3ZvdGluZwAAAAAPYWN0aXZlVm90ZUZpcnN0AgAAABR2b3RpbmdfYWN0aXZlX2NlbGxfMQAAAAAQYWN0aXZlVm90ZVNlY29uZAIAAAAUdm90aW5nX2FjdGl2ZV9jZWxsXzIAAAAAD2FjdGl2ZVZvdGVUaGlyZAIAAAAUdm90aW5nX2FjdGl2ZV9jZWxsXzMAAAAAB2tleVBhaXICAAAABXBhaXJfAAAAAA9rZXlBZG1pblB1YktleTECAAAAC2FkbWluX3B1Yl8xAAAAAA9rZXlBZG1pblB1YktleTICAAAAC2FkbWluX3B1Yl8yAAAAAA9rZXlBZG1pblB1YktleTMCAAAAC2FkbWluX3B1Yl8zAAAAAAZvcmFjbGUJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVTpRaoekC86rvG6DuYumpJfGpiE4fNiswgBAAAAC2dldEFkbWluUHViAAAAAQAAAAtrZXlBZG1pblB1YgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAZvcmFjbGUFAAAAC2tleUFkbWluUHViAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABnN0cmluZwUAAAAHJG1hdGNoMAkAAlkAAAABBQAAAAZzdHJpbmcEAAAAB25vdGhpbmcFAAAAByRtYXRjaDAJAAACAAAAAQIAAAAZQWRtaW4gcHVibGljIGtleSBpcyBlbXB0eQAAAAAMYWRtaW5QdWJLZXkxCQEAAAALZ2V0QWRtaW5QdWIAAAABBQAAAA9rZXlBZG1pblB1YktleTEAAAAADGFkbWluUHViS2V5MgkBAAAAC2dldEFkbWluUHViAAAAAQUAAAAPa2V5QWRtaW5QdWJLZXkyAAAAAAxhZG1pblB1YktleTMJAQAAAAtnZXRBZG1pblB1YgAAAAEFAAAAD2tleUFkbWluUHViS2V5MwAAAAAUYWRtaW5QdWJLZXlTdGFydFN0b3ABAAAAIATPdeVk0MEPTme5HxNkxBoN6oQkQjF9M5BdQFgKnZNKAAAAAA13YWxsZXRBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFU3z1Ll4lYWd4V4ORRC1bdPXpfvbV/hSGJAAAAAAdnb3ZBZGRyCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUqvpp3oH0E1KFyj8uOohRsxnqmBxZ8g0tAAAAAARVU0ROAQAAACBvJKPKqzDcUimY6CxhWu5afyNNwi11u+mdqlTg0tAHwQAAAAAEU1dPUAEAAAAgEv+BIJFIbrNA9tN9ExhCV/1vofsy06rszWo/nWl9O/gAAAAACGlzQWN0aXZlCQEAAAARQGV4dHJOYXRpdmUoMTA1MSkAAAACBQAAAAR0aGlzBQAAAAlrZXlBY3RpdmUAAAAADm51bWJlck9mVm90aW5nCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAABFrZXlOdW1iZXJPZlZvdGluZwAAAAAOYW1vdW50T2ZWb3RpbmcJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAAEWtleUFtb3VudE9mVm90aW5nAAAAAA9maXJzdEFjdGl2ZVZvdGUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAPYWN0aXZlVm90ZUZpcnN0AgAAAAAAAAAAEHNlY29uZEFjdGl2ZVZvdGUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAQYWN0aXZlVm90ZVNlY29uZAIAAAAAAAAAAA90aGlyZEFjdGl2ZVZvdGUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAPYWN0aXZlVm90ZVRoaXJkAgAAAAAAAAAAIWNvbWlzc2lvbkZvckluaXRhbGl6YXRpb25PZlZvdGluZwAAAAAAO5rKAAAAAAALc2NhbGVWYWx1ZTMAAAAAAAAAA+gAAAAAC3NjYWxlVmFsdWU4AAAAAAAF9eEAAAAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgAAAAAAAAAD6AAAAAARc2NhbGVWYWx1ZThEaWdpdHMAAAAAAAAAAAgAAAAAEW1heEFtb3VudE9mVm90aW5nAAAAAAAAAAADAAAAAA5tYXhEYXlPZlZvdGluZwAAAAAAAAAABwAAAAASdm90aW5nUGVyaW9kTGVuZ3RoCQAAaAAAAAIAAAAAAAAABaMFAAAADm1heERheU9mVm90aW5nAQAAAAxnZXRBc3NldEluZm8AAAABAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDAFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAmlkBQAAAAckbWF0Y2gwAwkBAAAACWlzRGVmaW5lZAAAAAEJAAPsAAAAAQUAAAACaWQEAAAACHN0cmluZ0lkCQACWAAAAAEFAAAAAmlkBAAAAARpbmZvCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAPsAAAAAQUAAAACaWQJAAEsAAAAAgkAASwAAAACAgAAAAZBc3NldCAFAAAACHN0cmluZ0lkAgAAAA4gZG9lc24ndCBleGlzdAkABRUAAAADBQAAAAhzdHJpbmdJZAgFAAAABGluZm8AAAAEbmFtZQgFAAAABGluZm8AAAAIZGVjaW1hbHMJAAACAAAAAQIAAAAUQXNzZXQgaXMgbm90IGRlZmluZWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQEAAAABXdhdmVzBQAAAAckbWF0Y2gwCQAFFQAAAAMCAAAABVdBVkVTAgAAAAVXQVZFUwAAAAAAAAAACAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgEAAAASaXNBY3RpdmVQb29sRXhpc3RzAAAAAwAAAAVwb29scwAAAAZhc3NldEEAAAAGYXNzZXRCBAAAAAlwb29sc0RhdGEJAAS1AAAAAgUAAAAFcG9vbHMCAAAAAV8EAAAADGlzUG9vbERlZmluZQkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwUAAAAFcG9vbHMDAwUAAAAMaXNQb29sRGVmaW5lCQEAAAACIT0AAAACBQAAAAVwb29scwIAAAAABwQAAAAGdm90aW5nCQABkQAAAAIFAAAACXBvb2xzRGF0YQAAAAAAAAAAAgQAAAAIbmV3UG9vbHMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZhc3NldEECAAAAAV8FAAAABmFzc2V0QgIAAAABXwUAAAAGdm90aW5nBQAAAAh2b3RpbmdJZAQAAAAPaXNOZXdQb29sRGVmaW5lCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAR0aGlzBQAAAAhuZXdQb29scwQAAAAOaGVpZ2h0T2ZWb3RpbmcJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAZ2b3RpbmcFAAAAD2tleUhlaWdodE9mUG9vbAAAAAAAAAAAAAQAAAAOc3RhdHVzT2ZWb3RpbmcJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAZ2b3RpbmcFAAAAEWtleVN0YXR1c09mVm90aW5nBgMFAAAAD2lzTmV3UG9vbERlZmluZQMJAABmAAAAAgUAAAAOaGVpZ2h0T2ZWb3RpbmcFAAAABmhlaWdodAMFAAAADnN0YXR1c09mVm90aW5nBgcHBwcBAAAAFGlzVW5hY3RpdmVQb29sRXhpc3RzAAAAAQAAAApwb29sc1N0YXRlBAAAAAVwb29scwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAApwb29sc1N0YXRlAgAAAAAEAAAACXBvb2xzRGF0YQkABLUAAAACBQAAAAVwb29scwIAAAABXwQAAAAMaXNQb29sRGVmaW5lCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAR0aGlzBQAAAAVwb29scwMDBQAAAAxpc1Bvb2xEZWZpbmUJAQAAAAIhPQAAAAIFAAAABXBvb2xzAgAAAAAHBAAAAAZ2b3RpbmcJAAGRAAAAAgUAAAAJcG9vbHNEYXRhAAAAAAAAAAACBAAAAA5oZWlnaHRPZlZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABnZvdGluZwUAAAAPa2V5SGVpZ2h0T2ZQb29sAAAAAAAAAAAABAAAAA5zdGF0dXNPZlZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABnZvdGluZwUAAAARa2V5U3RhdHVzT2ZWb3RpbmcGAwkAAGYAAAACBQAAAA5oZWlnaHRPZlZvdGluZwUAAAAGaGVpZ2h0AwUAAAAOc3RhdHVzT2ZWb3RpbmcCAAAAAAUAAAAKcG9vbHNTdGF0ZQUAAAAKcG9vbHNTdGF0ZQUAAAAKcG9vbHNTdGF0ZQEAAAAWaXNMYXN0QWN0aXZlUG9vbEV4aXN0cwAAAAIAAAAGYXNzZXRBAAAABmFzc2V0QgMDCQEAAAASaXNBY3RpdmVQb29sRXhpc3RzAAAAAwUAAAAPZmlyc3RBY3RpdmVWb3RlBQAAAAZhc3NldEEFAAAABmFzc2V0QgYJAQAAABJpc0FjdGl2ZVBvb2xFeGlzdHMAAAADBQAA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czovL3QubWUvc3dvcGZpc3VwcG9ydAAAAAYAAAABaQEAAAAEaW5pdAAAAAADCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAArT25seSB0aGUgREFwcCBpdHNlbGYgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgMJAQAAAAlpc0RlZmluZWQAAAABCQAEGwAAAAIFAAAABHRoaXMFAAAACWtleUFjdGl2ZQkAAAIAAAABAgAAABZEQXBwIGlzIGFscmVhZHkgYWN0aXZlBAAAABJpbml0TnVtYmVyT2ZWb3RpbmcAAAAAAAAAAAAEAAAAEmluaXRBbW91bnRPZlZvdGluZwAAAAAAAAAAAAQAAAANaW5pdEtleUFjdGl2ZQYEAAAACmFjdGl2ZUluaXQCAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAprZXlWZXJzaW9uBQAAAAd2ZXJzaW9uCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAAlrZXlBY3RpdmUFAAAADWluaXRLZXlBY3RpdmUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEWtleU51bWJlck9mVm90aW5nBQAAABJpbml0TnVtYmVyT2ZWb3RpbmcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEWtleUFtb3VudE9mVm90aW5nBQAAABJpbml0QW1vdW50T2ZWb3RpbmcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAFGtleU1heEFtb3VudE9mVm90aW5nBQAAABFtYXhBbW91bnRPZlZvdGluZwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARa2V5TWF4RGF5T2ZWb3RpbmcFAAAADm1heERheU9mVm90aW5nCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAD2FjdGl2ZVZvdGVGaXJzdAUAAAAKYWN0aXZlSW5pdAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABBhY3RpdmVWb3RlU2Vjb25kBQAAAAphY3RpdmVJbml0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAD2FjdGl2ZVZvdGVUaGlyZAUAAAAKYWN0aXZlSW5pdAUAAAADbmlsAAAAAWkBAAAAFGluaXRWb3RpbmdGb3JOZXdQb29sAAAAAgAAAAZhc3NldEEAAAAGYXNzZXRCBAAAAAskdDA3MTgxNzI1NgkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAACyR0MDcxODE3MjU2AAAAAl8xBAAAAApwbXRBc3NldElkCAUAAAALJHQwNzE4MTcyNTYAAAACXzIEAAAACyR0MDcyNjE3MzYwCQAFFAAAAAIJAQAAABZnZXRBc3NldEluZm9Gcm9tU3RyaW5nAAAAAQUAAAAGYXNzZXRBCQEAAAAWZ2V0QXNzZXRJbmZvRnJvbVN0cmluZwAAAAEFAAAABmFzc2V0QgQAAAAMcG9vbEFzc2V0SWRBCAUAAAALJHQwNzI2MTczNjAAAAACXzEEAAAADHBvb2xBc3NldElkQggFAAAACyR0MDcyNjE3MzYwAAAAAl8yBAAAAAx1bmFjdGl2ZVZvdGUJAQAAABVnZXRVbmFjdGl2ZVZvdGluZ1Bvb2wAAAAABAAAABFuZXdOdW1iZXJPZlZvdGluZwkBAAAAGWdldEFjdGl2ZVZvdGluZ1Bvb2xBbW91bnQAAAAABAAAAAxpc1Bvb2xFeGlzdHMJAQAAABZpc0xhc3RBY3RpdmVQb29sRXhpc3RzAAAAAgUAAAAGYXNzZXRBBQAAAAZhc3NldEIEAAAACyR0MDc1MzA3NjA4CQEAAAAMZ2V0QXNzZXRJbmZvAAAAAQUAAAAMcG9vbEFzc2V0SWRBBAAAAA5wbXRTdHJBc3NldElkQQgFAAAACyR0MDc1MzA3NjA4AAAAAl8xBAAAAA1wbXRBc3NldE5hbWVBCAUAAAALJHQwNzUzMDc2MDgAAAACXzIEAAAADHBtdERlY2ltYWxzQQgFAAAACyR0MDc1MzA3NjA4AAAAAl8zBAAAAAskdDA3NjEzNzY5MQkBAAAADGdldEFzc2V0SW5mbwAAAAEFAAAADHBvb2xBc3NldElkQgQAAAAOcG10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", "height": 1660983, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8Y92zdLai2QuDDiz7jmLiChMoaxFJh1ca5tYdJZDCJM5 Next: D9T5bzoNoAg6zHGT1cwFwxYtxZVHxrz9axw7Kiv4U88u Diff:
Old | New | Differences | |
---|---|---|---|
85 | 85 | ||
86 | 86 | let N = Address(base58'3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU') | |
87 | 87 | ||
88 | - | let O = | |
88 | + | let O = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS' | |
89 | 89 | ||
90 | - | let P = base58' | |
90 | + | let P = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ' | |
91 | 91 | ||
92 | - | let Q = | |
92 | + | let Q = getBooleanValue(this, c) | |
93 | 93 | ||
94 | - | let R = | |
94 | + | let R = getIntegerValue(this, d) | |
95 | 95 | ||
96 | - | let S = getIntegerValue(this, | |
96 | + | let S = getIntegerValue(this, k) | |
97 | 97 | ||
98 | - | let T = | |
98 | + | let T = valueOrElse(getString(this, v), "") | |
99 | 99 | ||
100 | - | let U = valueOrElse(getString(this, | |
100 | + | let U = valueOrElse(getString(this, w), "") | |
101 | 101 | ||
102 | - | let V = valueOrElse(getString(this, | |
102 | + | let V = valueOrElse(getString(this, x), "") | |
103 | 103 | ||
104 | - | let W = | |
104 | + | let W = 1000000000 | |
105 | 105 | ||
106 | - | let X = | |
106 | + | let X = 1000 | |
107 | 107 | ||
108 | - | let Y = | |
108 | + | let Y = 100000000 | |
109 | 109 | ||
110 | - | let Z = | |
110 | + | let Z = 1000 | |
111 | 111 | ||
112 | - | let aa = | |
112 | + | let aa = 8 | |
113 | 113 | ||
114 | - | let ab = | |
114 | + | let ab = 3 | |
115 | 115 | ||
116 | - | let ac = | |
116 | + | let ac = 7 | |
117 | 117 | ||
118 | - | let ad = | |
118 | + | let ad = (1443 * ac) | |
119 | 119 | ||
120 | - | let ae = (1443 * ad) | |
121 | - | ||
122 | - | func af (ag) = { | |
123 | - | let F = ag | |
120 | + | func ae (af) = { | |
121 | + | let F = af | |
124 | 122 | if ($isInstanceOf(F, "ByteVector")) | |
125 | 123 | then { | |
126 | - | let | |
127 | - | if (isDefined(assetInfo( | |
124 | + | let ag = F | |
125 | + | if (isDefined(assetInfo(ag))) | |
128 | 126 | then { | |
129 | - | let | |
130 | - | let | |
131 | - | $Tuple3( | |
127 | + | let ah = toBase58String(ag) | |
128 | + | let ai = valueOrErrorMessage(assetInfo(ag), (("Asset " + ah) + " doesn't exist")) | |
129 | + | $Tuple3(ah, ai.name, ai.decimals) | |
132 | 130 | } | |
133 | 131 | else throw("Asset is not defined") | |
134 | 132 | } | |
135 | 133 | else if ($isInstanceOf(F, "Unit")) | |
136 | 134 | then { | |
137 | - | let | |
135 | + | let aj = F | |
138 | 136 | $Tuple3("WAVES", "WAVES", 8) | |
139 | 137 | } | |
140 | 138 | else throw("Match error") | |
141 | 139 | } | |
142 | 140 | ||
143 | 141 | ||
144 | - | func | |
145 | - | let | |
146 | - | let | |
147 | - | if (if ( | |
148 | - | then ( | |
142 | + | func ak (al,am,an) = { | |
143 | + | let ao = split(al, "_") | |
144 | + | let ap = isDefined(getInteger(this, al)) | |
145 | + | if (if (ap) | |
146 | + | then (al != "") | |
149 | 147 | else false) | |
150 | 148 | then { | |
151 | - | let | |
152 | - | let | |
153 | - | let | |
154 | - | let | |
155 | - | let | |
156 | - | if ( | |
157 | - | then if (( | |
158 | - | then if ( | |
149 | + | let aq = ao[2] | |
150 | + | let ar = (((((am + "_") + an) + "_") + aq) + t) | |
151 | + | let as = isDefined(getInteger(this, ar)) | |
152 | + | let at = valueOrElse(getInteger(this, (aq + e)), 0) | |
153 | + | let au = valueOrElse(getBoolean(this, (aq + j)), true) | |
154 | + | if (as) | |
155 | + | then if ((at > height)) | |
156 | + | then if (au) | |
159 | 157 | then true | |
160 | 158 | else false | |
161 | 159 | else false | |
165 | 163 | } | |
166 | 164 | ||
167 | 165 | ||
168 | - | func | |
169 | - | let | |
170 | - | let | |
171 | - | let | |
172 | - | if (if ( | |
173 | - | then ( | |
166 | + | func av (aw) = { | |
167 | + | let al = valueOrElse(getString(this, aw), "") | |
168 | + | let ao = split(al, "_") | |
169 | + | let ap = isDefined(getInteger(this, al)) | |
170 | + | if (if (ap) | |
171 | + | then (al != "") | |
174 | 172 | else false) | |
175 | 173 | then { | |
176 | - | let | |
177 | - | let | |
178 | - | let | |
179 | - | if (( | |
180 | - | then if ( | |
174 | + | let aq = ao[2] | |
175 | + | let at = valueOrElse(getInteger(this, (aq + e)), 0) | |
176 | + | let au = valueOrElse(getBoolean(this, (aq + j)), true) | |
177 | + | if ((at > height)) | |
178 | + | then if (au) | |
181 | 179 | then "" | |
182 | - | else | |
183 | - | else | |
180 | + | else aw | |
181 | + | else aw | |
184 | 182 | } | |
185 | - | else | |
183 | + | else aw | |
186 | 184 | } | |
187 | 185 | ||
188 | 186 | ||
189 | - | func | |
187 | + | func ax (am,an) = if (if (ak(T, am, an)) | |
190 | 188 | then true | |
191 | - | else | |
189 | + | else ak(U, am, an)) | |
192 | 190 | then true | |
193 | - | else | |
191 | + | else ak(V, am, an) | |
194 | 192 | ||
195 | 193 | ||
196 | - | func | |
197 | - | let | |
198 | - | let | |
199 | - | let | |
200 | - | if ((0 > | |
194 | + | func ay (aq) = { | |
195 | + | let at = valueOrElse(getInteger(this, (toString(aq) + e)), 0) | |
196 | + | let au = valueOrElse(getBoolean(this, (toString(aq) + j)), true) | |
197 | + | let az = height | |
198 | + | if ((0 > aq)) | |
201 | 199 | then 0 | |
202 | - | else if (!( | |
200 | + | else if (!(au)) | |
203 | 201 | then 0 | |
204 | - | else if (( | |
202 | + | else if ((at > az)) | |
205 | 203 | then 1 | |
206 | 204 | else 0 | |
207 | 205 | } | |
208 | 206 | ||
209 | 207 | ||
210 | - | func | |
208 | + | func aA () = ((ay(valueOrElse(getInteger(this, T), -1)) + ay(valueOrElse(getInteger(this, U), -1))) + ay(valueOrElse(getInteger(this, V), -1))) | |
211 | 209 | ||
212 | 210 | ||
213 | - | func | |
211 | + | func aB () = if ((av(v) != "")) | |
214 | 212 | then v | |
215 | - | else if (( | |
213 | + | else if ((av(w) != "")) | |
216 | 214 | then w | |
217 | - | else if (( | |
215 | + | else if ((av(x) != "")) | |
218 | 216 | then x | |
219 | 217 | else "" | |
220 | 218 | ||
221 | 219 | ||
222 | - | func | |
220 | + | func aC (aD) = if ((aD == "WAVES")) | |
223 | 221 | then unit | |
224 | - | else fromBase58String( | |
222 | + | else fromBase58String(aD) | |
225 | 223 | ||
226 | 224 | ||
227 | - | func | |
225 | + | func aE (aF) = if ((valueOrElse(getInteger(N, (toString(aF) + r)), 0) > 0)) | |
228 | 226 | then true | |
229 | 227 | else false | |
230 | 228 | ||
231 | 229 | ||
232 | - | func | |
230 | + | func aG (aH) = [BooleanEntry(c, false), StringEntry(p, aH)] | |
233 | 231 | ||
234 | 232 | ||
235 | - | func | |
233 | + | func aI (aJ,aK) = throw(((((("Insufficient DApp balance to pay " + toString(aJ)) + " ") + aK) + " due to staking.") + ". Please contact support in Telegram: https://t.me/swopfisupport")) | |
236 | 234 | ||
237 | 235 | ||
238 | - | @Callable( | |
239 | - | func init () = if (( | |
236 | + | @Callable(aL) | |
237 | + | func init () = if ((aL.caller != this)) | |
240 | 238 | then throw("Only the DApp itself can call this function") | |
241 | 239 | else if (isDefined(getBoolean(this, c))) | |
242 | 240 | then throw("DApp is already active") | |
243 | 241 | else { | |
242 | + | let aM = 0 | |
244 | 243 | let aN = 0 | |
245 | - | let aO = 0 | |
246 | - | let aP = true | |
247 | - | let aQ = "" | |
248 | - | [StringEntry(b, a), BooleanEntry(c, aP), IntegerEntry(d, aN), IntegerEntry(k, aO), IntegerEntry(l, ac), IntegerEntry(m, ad), StringEntry(v, aQ), StringEntry(w, aQ), StringEntry(x, aQ)] | |
244 | + | let aO = true | |
245 | + | let aP = "" | |
246 | + | [StringEntry(b, a), BooleanEntry(c, aO), IntegerEntry(d, aM), IntegerEntry(k, aN), IntegerEntry(l, ab), IntegerEntry(m, ac), StringEntry(v, aP), StringEntry(w, aP), StringEntry(x, aP)] | |
249 | 247 | } | |
250 | 248 | ||
251 | 249 | ||
252 | 250 | ||
253 | - | @Callable( | |
254 | - | func initVotingForNewPool (an | |
255 | - | let | |
256 | - | let | |
257 | - | let | |
258 | - | let | |
259 | - | let | |
260 | - | let | |
261 | - | let | |
262 | - | let | |
263 | - | let | |
264 | - | let | |
265 | - | let | |
266 | - | let | |
267 | - | let | |
268 | - | let | |
269 | - | let | |
270 | - | let | |
271 | - | let | |
272 | - | if (!( | |
251 | + | @Callable(aL) | |
252 | + | func initVotingForNewPool (am,an) = { | |
253 | + | let aQ = $Tuple2(aL.payments[0].amount, aL.payments[0].assetId) | |
254 | + | let aR = aQ._1 | |
255 | + | let aS = aQ._2 | |
256 | + | let aT = $Tuple2(aC(am), aC(an)) | |
257 | + | let aU = aT._1 | |
258 | + | let aV = aT._2 | |
259 | + | let aW = aB() | |
260 | + | let aX = aA() | |
261 | + | let aY = ax(am, an) | |
262 | + | let aZ = ae(aU) | |
263 | + | let ba = aZ._1 | |
264 | + | let bb = aZ._2 | |
265 | + | let bc = aZ._3 | |
266 | + | let bd = ae(aV) | |
267 | + | let be = bd._1 | |
268 | + | let bf = bd._2 | |
269 | + | let bg = bd._3 | |
270 | + | if (!(Q)) | |
273 | 271 | then throw("DApp is inactive at this moment") | |
274 | - | else if (isDefined(getString( | |
272 | + | else if (isDefined(getString(C, (((y + am) + "_") + an)))) | |
275 | 273 | then throw("Assets must be from oracle") | |
276 | - | else if (( | |
274 | + | else if ((aU == aV)) | |
277 | 275 | then throw("Assets must be different") | |
278 | - | else if ( | |
276 | + | else if (aY) | |
279 | 277 | then throw("This pool already exists") | |
280 | - | else if (if ((( | |
278 | + | else if (if (((aX + 1) > ab)) | |
281 | 279 | then true | |
282 | - | else ( | |
283 | - | then throw(("Too many votings. Maximum quantity: " + toString( | |
284 | - | else if ((size( | |
280 | + | else (aW == "")) | |
281 | + | then throw(("Too many votings. Maximum quantity: " + toString(ab))) | |
282 | + | else if ((size(aL.payments) != 1)) | |
285 | 283 | then throw("One attached asset expected") | |
286 | - | else if (( | |
284 | + | else if ((aS != P)) | |
287 | 285 | then throw("You must use a SWOP token") | |
288 | - | else if (if (( | |
286 | + | else if (if ((am == "")) | |
289 | 287 | then true | |
290 | - | else ( | |
288 | + | else (an == "")) | |
291 | 289 | then throw("Assets can't be empty") | |
292 | - | else if (( | |
290 | + | else if ((aR != W)) | |
293 | 291 | then throw("You need to attach 10 SWOP tokens") | |
294 | - | else if (!(if (if (( | |
292 | + | else if (!(if (if ((aV == O)) | |
295 | 293 | then true | |
296 | - | else ( | |
294 | + | else (aV == unit)) | |
297 | 295 | then true | |
298 | - | else ( | |
296 | + | else (aV == P))) | |
299 | 297 | then throw("assetB must be USDN, WAVES or SWOP") | |
300 | - | else [IntegerEntry(((((( | |
298 | + | else [IntegerEntry((((((am + "_") + an) + "_") + toString(S)) + t), S), IntegerEntry((toString(S) + e), (height + ad)), BooleanEntry((toString(S) + j), true), IntegerEntry(k, (S + 1)), IntegerEntry(d, (aX + 1)), StringEntry((am + s), bb), StringEntry((an + s), bf), StringEntry(aW, (((((am + "_") + an) + "_") + toString(S)) + t)), ScriptTransfer(M, aR, aS)] | |
301 | 299 | } | |
302 | 300 | ||
303 | 301 | ||
304 | 302 | ||
305 | - | @Callable( | |
306 | - | func voteForPool ( | |
307 | - | let | |
308 | - | let | |
309 | - | let | |
310 | - | let | |
311 | - | let | |
312 | - | then (valueOrElse(getInteger(this, (((toString( | |
313 | - | else (valueOrElse(getInteger(this, (((toString( | |
314 | - | if (!( | |
303 | + | @Callable(aL) | |
304 | + | func voteForPool (aq,bh,bi) = { | |
305 | + | let az = height | |
306 | + | let bj = valueOrErrorMessage(getIntegerValue(this, (toString(aq) + e)), "Empty pool height") | |
307 | + | let au = valueOrElse(getBoolean(this, (toString(aq) + j)), true) | |
308 | + | let bk = valueOrElse(getInteger(N, (toString(aL.caller) + r)), 0) | |
309 | + | let bl = if (bh) | |
310 | + | then (valueOrElse(getInteger(this, (((toString(aL.caller) + "_") + toString(aq)) + h)), 0) + bi) | |
311 | + | else (valueOrElse(getInteger(this, (((toString(aL.caller) + "_") + toString(aq)) + i)), 0) + bi) | |
312 | + | if (!(aE(aL.caller))) | |
315 | 313 | then throw("This address has 0 SWOP in Governance dApp") | |
316 | - | else if (!( | |
314 | + | else if (!(Q)) | |
317 | 315 | then throw("DApp is inactive at this moment") | |
318 | - | else if (!( | |
316 | + | else if (!(au)) | |
319 | 317 | then throw("This voting was canceled") | |
320 | - | else if (( | |
318 | + | else if ((az > bj)) | |
321 | 319 | then throw("This voting was expired") | |
322 | - | else if ((0 > | |
320 | + | else if ((0 > bi)) | |
323 | 321 | then throw("The number of votes must be positive") | |
324 | - | else if (( | |
325 | - | then throw((((toString(this) + " has ") + toString( | |
326 | - | else if ( | |
322 | + | else if ((bl > bk)) | |
323 | + | then throw((((toString(this) + " has ") + toString(bk)) + " SWOP in governance.")) | |
324 | + | else if (bh) | |
327 | 325 | then { | |
328 | - | let | |
329 | - | let | |
330 | - | [IntegerEntry((toString( | |
326 | + | let bm = valueOrElse(getInteger(this, (((toString(aL.caller) + "_") + toString(aq)) + i)), 0) | |
327 | + | let bn = ((valueOrElse(getInteger(this, (toString(aq) + g)), 0) - bm) + bi) | |
328 | + | [IntegerEntry((toString(aq) + g), bn), IntegerEntry((((toString(aL.caller) + "_") + toString(aq)) + i), bi)] | |
331 | 329 | } | |
332 | 330 | else { | |
333 | - | let | |
334 | - | let | |
335 | - | [IntegerEntry((toString( | |
331 | + | let bm = valueOrElse(getInteger(this, (((toString(aL.caller) + "_") + toString(aq)) + h)), 0) | |
332 | + | let bn = ((valueOrElse(getInteger(this, (toString(aq) + f)), 0) - bm) + bi) | |
333 | + | [IntegerEntry((toString(aq) + f), bn), IntegerEntry((((toString(aL.caller) + "_") + toString(aq)) + h), bi)] | |
336 | 334 | } | |
337 | 335 | } | |
338 | 336 | ||
339 | 337 | ||
340 | 338 | ||
341 | - | @Callable( | |
342 | - | func cancelVoting ( | |
343 | - | let | |
344 | - | if (!( | |
339 | + | @Callable(aL) | |
340 | + | func cancelVoting (aq,aH) = { | |
341 | + | let au = valueOrElse(getBoolean(this, (toString(aq) + j)), true) | |
342 | + | if (!(Q)) | |
345 | 343 | then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, p), "the cause wasn't specified"))) | |
346 | - | else if (!(containsElement([I, J, K], | |
344 | + | else if (!(containsElement([I, J, K], aL.callerPublicKey))) | |
347 | 345 | then throw("Only admin can call this function") | |
348 | - | else if (!( | |
349 | - | then throw((("Voting " + toString( | |
350 | - | else [IntegerEntry(d, ( | |
346 | + | else if (!(au)) | |
347 | + | then throw((("Voting " + toString(aq)) + " has already been stopped")) | |
348 | + | else [IntegerEntry(d, (R - 1)), BooleanEntry((toString(aq) + j), false), StringEntry((toString(aq) + q), aH)] | |
351 | 349 | } | |
352 | 350 | ||
353 | 351 | ||
354 | 352 | ||
355 | - | @Callable( | |
356 | - | func shutdown () = if (!( | |
353 | + | @Callable(aL) | |
354 | + | func shutdown () = if (!(Q)) | |
357 | 355 | then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, p), "the cause wasn't specified"))) | |
358 | - | else if (!(containsElement([I, J, K, L], | |
356 | + | else if (!(containsElement([I, J, K, L], aL.callerPublicKey))) | |
359 | 357 | then throw("Only admin can call this function") | |
360 | - | else | |
358 | + | else aG("Paused by admin") | |
361 | 359 | ||
362 | 360 | ||
363 | 361 | ||
364 | - | @Callable( | |
365 | - | func activate () = if ( | |
362 | + | @Callable(aL) | |
363 | + | func activate () = if (Q) | |
366 | 364 | then throw("DApp is already active") | |
367 | - | else if (!(containsElement([I, J, K, L], | |
365 | + | else if (!(containsElement([I, J, K, L], aL.callerPublicKey))) | |
368 | 366 | then throw("Only admin can call this function") | |
369 | 367 | else [BooleanEntry(c, true), DeleteEntry(p)] | |
370 | 368 | ||
371 | 369 | ||
372 | - | @Verifier( | |
373 | - | func | |
374 | - | let | |
370 | + | @Verifier(bo) | |
371 | + | func bp () = { | |
372 | + | let bq = if (sigVerify(bo.bodyBytes, bo.proofs[0], I)) | |
375 | 373 | then 1 | |
376 | 374 | else 0 | |
377 | - | let | |
375 | + | let br = if (sigVerify(bo.bodyBytes, bo.proofs[1], J)) | |
378 | 376 | then 1 | |
379 | 377 | else 0 | |
380 | - | let | |
378 | + | let bs = if (sigVerify(bo.bodyBytes, bo.proofs[2], K)) | |
381 | 379 | then 1 | |
382 | 380 | else 0 | |
383 | - | (((br + bs | |
381 | + | (((bq + br) + bs) >= 2) | |
384 | 382 | } | |
385 | 383 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "1.0.0" | |
5 | 5 | ||
6 | 6 | let b = "version" | |
7 | 7 | ||
8 | 8 | let c = "active" | |
9 | 9 | ||
10 | 10 | let d = "voting_active_number" | |
11 | 11 | ||
12 | 12 | let e = "_finish_height" | |
13 | 13 | ||
14 | 14 | let f = "_total_votes_no" | |
15 | 15 | ||
16 | 16 | let g = "_total_votes_yes" | |
17 | 17 | ||
18 | 18 | let h = "_vote_no" | |
19 | 19 | ||
20 | 20 | let i = "_vote_yes" | |
21 | 21 | ||
22 | 22 | let j = "_status" | |
23 | 23 | ||
24 | 24 | let k = "voting_id_last" | |
25 | 25 | ||
26 | 26 | let l = "max_amount_voting" | |
27 | 27 | ||
28 | 28 | let m = "max_day_voting" | |
29 | 29 | ||
30 | 30 | let n = "commission" | |
31 | 31 | ||
32 | 32 | let o = "commission_scale_delimiter" | |
33 | 33 | ||
34 | 34 | let p = "shutdown_cause" | |
35 | 35 | ||
36 | 36 | let q = "_cancel_cause" | |
37 | 37 | ||
38 | 38 | let r = "_SWOP_amount" | |
39 | 39 | ||
40 | 40 | let s = "_asset_name" | |
41 | 41 | ||
42 | 42 | let t = "_voting" | |
43 | 43 | ||
44 | 44 | let u = "period_voting" | |
45 | 45 | ||
46 | 46 | let v = "voting_active_cell_1" | |
47 | 47 | ||
48 | 48 | let w = "voting_active_cell_2" | |
49 | 49 | ||
50 | 50 | let x = "voting_active_cell_3" | |
51 | 51 | ||
52 | 52 | let y = "pair_" | |
53 | 53 | ||
54 | 54 | let z = "admin_pub_1" | |
55 | 55 | ||
56 | 56 | let A = "admin_pub_2" | |
57 | 57 | ||
58 | 58 | let B = "admin_pub_3" | |
59 | 59 | ||
60 | 60 | let C = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9') | |
61 | 61 | ||
62 | 62 | func D (E) = { | |
63 | 63 | let F = getString(C, E) | |
64 | 64 | if ($isInstanceOf(F, "String")) | |
65 | 65 | then { | |
66 | 66 | let G = F | |
67 | 67 | fromBase58String(G) | |
68 | 68 | } | |
69 | 69 | else { | |
70 | 70 | let H = F | |
71 | 71 | throw("Admin public key is empty") | |
72 | 72 | } | |
73 | 73 | } | |
74 | 74 | ||
75 | 75 | ||
76 | 76 | let I = D(z) | |
77 | 77 | ||
78 | 78 | let J = D(A) | |
79 | 79 | ||
80 | 80 | let K = D(B) | |
81 | 81 | ||
82 | 82 | let L = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK' | |
83 | 83 | ||
84 | 84 | let M = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4') | |
85 | 85 | ||
86 | 86 | let N = Address(base58'3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU') | |
87 | 87 | ||
88 | - | let O = | |
88 | + | let O = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS' | |
89 | 89 | ||
90 | - | let P = base58' | |
90 | + | let P = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ' | |
91 | 91 | ||
92 | - | let Q = | |
92 | + | let Q = getBooleanValue(this, c) | |
93 | 93 | ||
94 | - | let R = | |
94 | + | let R = getIntegerValue(this, d) | |
95 | 95 | ||
96 | - | let S = getIntegerValue(this, | |
96 | + | let S = getIntegerValue(this, k) | |
97 | 97 | ||
98 | - | let T = | |
98 | + | let T = valueOrElse(getString(this, v), "") | |
99 | 99 | ||
100 | - | let U = valueOrElse(getString(this, | |
100 | + | let U = valueOrElse(getString(this, w), "") | |
101 | 101 | ||
102 | - | let V = valueOrElse(getString(this, | |
102 | + | let V = valueOrElse(getString(this, x), "") | |
103 | 103 | ||
104 | - | let W = | |
104 | + | let W = 1000000000 | |
105 | 105 | ||
106 | - | let X = | |
106 | + | let X = 1000 | |
107 | 107 | ||
108 | - | let Y = | |
108 | + | let Y = 100000000 | |
109 | 109 | ||
110 | - | let Z = | |
110 | + | let Z = 1000 | |
111 | 111 | ||
112 | - | let aa = | |
112 | + | let aa = 8 | |
113 | 113 | ||
114 | - | let ab = | |
114 | + | let ab = 3 | |
115 | 115 | ||
116 | - | let ac = | |
116 | + | let ac = 7 | |
117 | 117 | ||
118 | - | let ad = | |
118 | + | let ad = (1443 * ac) | |
119 | 119 | ||
120 | - | let ae = (1443 * ad) | |
121 | - | ||
122 | - | func af (ag) = { | |
123 | - | let F = ag | |
120 | + | func ae (af) = { | |
121 | + | let F = af | |
124 | 122 | if ($isInstanceOf(F, "ByteVector")) | |
125 | 123 | then { | |
126 | - | let | |
127 | - | if (isDefined(assetInfo( | |
124 | + | let ag = F | |
125 | + | if (isDefined(assetInfo(ag))) | |
128 | 126 | then { | |
129 | - | let | |
130 | - | let | |
131 | - | $Tuple3( | |
127 | + | let ah = toBase58String(ag) | |
128 | + | let ai = valueOrErrorMessage(assetInfo(ag), (("Asset " + ah) + " doesn't exist")) | |
129 | + | $Tuple3(ah, ai.name, ai.decimals) | |
132 | 130 | } | |
133 | 131 | else throw("Asset is not defined") | |
134 | 132 | } | |
135 | 133 | else if ($isInstanceOf(F, "Unit")) | |
136 | 134 | then { | |
137 | - | let | |
135 | + | let aj = F | |
138 | 136 | $Tuple3("WAVES", "WAVES", 8) | |
139 | 137 | } | |
140 | 138 | else throw("Match error") | |
141 | 139 | } | |
142 | 140 | ||
143 | 141 | ||
144 | - | func | |
145 | - | let | |
146 | - | let | |
147 | - | if (if ( | |
148 | - | then ( | |
142 | + | func ak (al,am,an) = { | |
143 | + | let ao = split(al, "_") | |
144 | + | let ap = isDefined(getInteger(this, al)) | |
145 | + | if (if (ap) | |
146 | + | then (al != "") | |
149 | 147 | else false) | |
150 | 148 | then { | |
151 | - | let | |
152 | - | let | |
153 | - | let | |
154 | - | let | |
155 | - | let | |
156 | - | if ( | |
157 | - | then if (( | |
158 | - | then if ( | |
149 | + | let aq = ao[2] | |
150 | + | let ar = (((((am + "_") + an) + "_") + aq) + t) | |
151 | + | let as = isDefined(getInteger(this, ar)) | |
152 | + | let at = valueOrElse(getInteger(this, (aq + e)), 0) | |
153 | + | let au = valueOrElse(getBoolean(this, (aq + j)), true) | |
154 | + | if (as) | |
155 | + | then if ((at > height)) | |
156 | + | then if (au) | |
159 | 157 | then true | |
160 | 158 | else false | |
161 | 159 | else false | |
162 | 160 | else false | |
163 | 161 | } | |
164 | 162 | else false | |
165 | 163 | } | |
166 | 164 | ||
167 | 165 | ||
168 | - | func | |
169 | - | let | |
170 | - | let | |
171 | - | let | |
172 | - | if (if ( | |
173 | - | then ( | |
166 | + | func av (aw) = { | |
167 | + | let al = valueOrElse(getString(this, aw), "") | |
168 | + | let ao = split(al, "_") | |
169 | + | let ap = isDefined(getInteger(this, al)) | |
170 | + | if (if (ap) | |
171 | + | then (al != "") | |
174 | 172 | else false) | |
175 | 173 | then { | |
176 | - | let | |
177 | - | let | |
178 | - | let | |
179 | - | if (( | |
180 | - | then if ( | |
174 | + | let aq = ao[2] | |
175 | + | let at = valueOrElse(getInteger(this, (aq + e)), 0) | |
176 | + | let au = valueOrElse(getBoolean(this, (aq + j)), true) | |
177 | + | if ((at > height)) | |
178 | + | then if (au) | |
181 | 179 | then "" | |
182 | - | else | |
183 | - | else | |
180 | + | else aw | |
181 | + | else aw | |
184 | 182 | } | |
185 | - | else | |
183 | + | else aw | |
186 | 184 | } | |
187 | 185 | ||
188 | 186 | ||
189 | - | func | |
187 | + | func ax (am,an) = if (if (ak(T, am, an)) | |
190 | 188 | then true | |
191 | - | else | |
189 | + | else ak(U, am, an)) | |
192 | 190 | then true | |
193 | - | else | |
191 | + | else ak(V, am, an) | |
194 | 192 | ||
195 | 193 | ||
196 | - | func | |
197 | - | let | |
198 | - | let | |
199 | - | let | |
200 | - | if ((0 > | |
194 | + | func ay (aq) = { | |
195 | + | let at = valueOrElse(getInteger(this, (toString(aq) + e)), 0) | |
196 | + | let au = valueOrElse(getBoolean(this, (toString(aq) + j)), true) | |
197 | + | let az = height | |
198 | + | if ((0 > aq)) | |
201 | 199 | then 0 | |
202 | - | else if (!( | |
200 | + | else if (!(au)) | |
203 | 201 | then 0 | |
204 | - | else if (( | |
202 | + | else if ((at > az)) | |
205 | 203 | then 1 | |
206 | 204 | else 0 | |
207 | 205 | } | |
208 | 206 | ||
209 | 207 | ||
210 | - | func | |
208 | + | func aA () = ((ay(valueOrElse(getInteger(this, T), -1)) + ay(valueOrElse(getInteger(this, U), -1))) + ay(valueOrElse(getInteger(this, V), -1))) | |
211 | 209 | ||
212 | 210 | ||
213 | - | func | |
211 | + | func aB () = if ((av(v) != "")) | |
214 | 212 | then v | |
215 | - | else if (( | |
213 | + | else if ((av(w) != "")) | |
216 | 214 | then w | |
217 | - | else if (( | |
215 | + | else if ((av(x) != "")) | |
218 | 216 | then x | |
219 | 217 | else "" | |
220 | 218 | ||
221 | 219 | ||
222 | - | func | |
220 | + | func aC (aD) = if ((aD == "WAVES")) | |
223 | 221 | then unit | |
224 | - | else fromBase58String( | |
222 | + | else fromBase58String(aD) | |
225 | 223 | ||
226 | 224 | ||
227 | - | func | |
225 | + | func aE (aF) = if ((valueOrElse(getInteger(N, (toString(aF) + r)), 0) > 0)) | |
228 | 226 | then true | |
229 | 227 | else false | |
230 | 228 | ||
231 | 229 | ||
232 | - | func | |
230 | + | func aG (aH) = [BooleanEntry(c, false), StringEntry(p, aH)] | |
233 | 231 | ||
234 | 232 | ||
235 | - | func | |
233 | + | func aI (aJ,aK) = throw(((((("Insufficient DApp balance to pay " + toString(aJ)) + " ") + aK) + " due to staking.") + ". Please contact support in Telegram: https://t.me/swopfisupport")) | |
236 | 234 | ||
237 | 235 | ||
238 | - | @Callable( | |
239 | - | func init () = if (( | |
236 | + | @Callable(aL) | |
237 | + | func init () = if ((aL.caller != this)) | |
240 | 238 | then throw("Only the DApp itself can call this function") | |
241 | 239 | else if (isDefined(getBoolean(this, c))) | |
242 | 240 | then throw("DApp is already active") | |
243 | 241 | else { | |
242 | + | let aM = 0 | |
244 | 243 | let aN = 0 | |
245 | - | let aO = 0 | |
246 | - | let aP = true | |
247 | - | let aQ = "" | |
248 | - | [StringEntry(b, a), BooleanEntry(c, aP), IntegerEntry(d, aN), IntegerEntry(k, aO), IntegerEntry(l, ac), IntegerEntry(m, ad), StringEntry(v, aQ), StringEntry(w, aQ), StringEntry(x, aQ)] | |
244 | + | let aO = true | |
245 | + | let aP = "" | |
246 | + | [StringEntry(b, a), BooleanEntry(c, aO), IntegerEntry(d, aM), IntegerEntry(k, aN), IntegerEntry(l, ab), IntegerEntry(m, ac), StringEntry(v, aP), StringEntry(w, aP), StringEntry(x, aP)] | |
249 | 247 | } | |
250 | 248 | ||
251 | 249 | ||
252 | 250 | ||
253 | - | @Callable( | |
254 | - | func initVotingForNewPool (an | |
255 | - | let | |
256 | - | let | |
257 | - | let | |
258 | - | let | |
259 | - | let | |
260 | - | let | |
261 | - | let | |
262 | - | let | |
263 | - | let | |
264 | - | let | |
265 | - | let | |
266 | - | let | |
267 | - | let | |
268 | - | let | |
269 | - | let | |
270 | - | let | |
271 | - | let | |
272 | - | if (!( | |
251 | + | @Callable(aL) | |
252 | + | func initVotingForNewPool (am,an) = { | |
253 | + | let aQ = $Tuple2(aL.payments[0].amount, aL.payments[0].assetId) | |
254 | + | let aR = aQ._1 | |
255 | + | let aS = aQ._2 | |
256 | + | let aT = $Tuple2(aC(am), aC(an)) | |
257 | + | let aU = aT._1 | |
258 | + | let aV = aT._2 | |
259 | + | let aW = aB() | |
260 | + | let aX = aA() | |
261 | + | let aY = ax(am, an) | |
262 | + | let aZ = ae(aU) | |
263 | + | let ba = aZ._1 | |
264 | + | let bb = aZ._2 | |
265 | + | let bc = aZ._3 | |
266 | + | let bd = ae(aV) | |
267 | + | let be = bd._1 | |
268 | + | let bf = bd._2 | |
269 | + | let bg = bd._3 | |
270 | + | if (!(Q)) | |
273 | 271 | then throw("DApp is inactive at this moment") | |
274 | - | else if (isDefined(getString( | |
272 | + | else if (isDefined(getString(C, (((y + am) + "_") + an)))) | |
275 | 273 | then throw("Assets must be from oracle") | |
276 | - | else if (( | |
274 | + | else if ((aU == aV)) | |
277 | 275 | then throw("Assets must be different") | |
278 | - | else if ( | |
276 | + | else if (aY) | |
279 | 277 | then throw("This pool already exists") | |
280 | - | else if (if ((( | |
278 | + | else if (if (((aX + 1) > ab)) | |
281 | 279 | then true | |
282 | - | else ( | |
283 | - | then throw(("Too many votings. Maximum quantity: " + toString( | |
284 | - | else if ((size( | |
280 | + | else (aW == "")) | |
281 | + | then throw(("Too many votings. Maximum quantity: " + toString(ab))) | |
282 | + | else if ((size(aL.payments) != 1)) | |
285 | 283 | then throw("One attached asset expected") | |
286 | - | else if (( | |
284 | + | else if ((aS != P)) | |
287 | 285 | then throw("You must use a SWOP token") | |
288 | - | else if (if (( | |
286 | + | else if (if ((am == "")) | |
289 | 287 | then true | |
290 | - | else ( | |
288 | + | else (an == "")) | |
291 | 289 | then throw("Assets can't be empty") | |
292 | - | else if (( | |
290 | + | else if ((aR != W)) | |
293 | 291 | then throw("You need to attach 10 SWOP tokens") | |
294 | - | else if (!(if (if (( | |
292 | + | else if (!(if (if ((aV == O)) | |
295 | 293 | then true | |
296 | - | else ( | |
294 | + | else (aV == unit)) | |
297 | 295 | then true | |
298 | - | else ( | |
296 | + | else (aV == P))) | |
299 | 297 | then throw("assetB must be USDN, WAVES or SWOP") | |
300 | - | else [IntegerEntry(((((( | |
298 | + | else [IntegerEntry((((((am + "_") + an) + "_") + toString(S)) + t), S), IntegerEntry((toString(S) + e), (height + ad)), BooleanEntry((toString(S) + j), true), IntegerEntry(k, (S + 1)), IntegerEntry(d, (aX + 1)), StringEntry((am + s), bb), StringEntry((an + s), bf), StringEntry(aW, (((((am + "_") + an) + "_") + toString(S)) + t)), ScriptTransfer(M, aR, aS)] | |
301 | 299 | } | |
302 | 300 | ||
303 | 301 | ||
304 | 302 | ||
305 | - | @Callable( | |
306 | - | func voteForPool ( | |
307 | - | let | |
308 | - | let | |
309 | - | let | |
310 | - | let | |
311 | - | let | |
312 | - | then (valueOrElse(getInteger(this, (((toString( | |
313 | - | else (valueOrElse(getInteger(this, (((toString( | |
314 | - | if (!( | |
303 | + | @Callable(aL) | |
304 | + | func voteForPool (aq,bh,bi) = { | |
305 | + | let az = height | |
306 | + | let bj = valueOrErrorMessage(getIntegerValue(this, (toString(aq) + e)), "Empty pool height") | |
307 | + | let au = valueOrElse(getBoolean(this, (toString(aq) + j)), true) | |
308 | + | let bk = valueOrElse(getInteger(N, (toString(aL.caller) + r)), 0) | |
309 | + | let bl = if (bh) | |
310 | + | then (valueOrElse(getInteger(this, (((toString(aL.caller) + "_") + toString(aq)) + h)), 0) + bi) | |
311 | + | else (valueOrElse(getInteger(this, (((toString(aL.caller) + "_") + toString(aq)) + i)), 0) + bi) | |
312 | + | if (!(aE(aL.caller))) | |
315 | 313 | then throw("This address has 0 SWOP in Governance dApp") | |
316 | - | else if (!( | |
314 | + | else if (!(Q)) | |
317 | 315 | then throw("DApp is inactive at this moment") | |
318 | - | else if (!( | |
316 | + | else if (!(au)) | |
319 | 317 | then throw("This voting was canceled") | |
320 | - | else if (( | |
318 | + | else if ((az > bj)) | |
321 | 319 | then throw("This voting was expired") | |
322 | - | else if ((0 > | |
320 | + | else if ((0 > bi)) | |
323 | 321 | then throw("The number of votes must be positive") | |
324 | - | else if (( | |
325 | - | then throw((((toString(this) + " has ") + toString( | |
326 | - | else if ( | |
322 | + | else if ((bl > bk)) | |
323 | + | then throw((((toString(this) + " has ") + toString(bk)) + " SWOP in governance.")) | |
324 | + | else if (bh) | |
327 | 325 | then { | |
328 | - | let | |
329 | - | let | |
330 | - | [IntegerEntry((toString( | |
326 | + | let bm = valueOrElse(getInteger(this, (((toString(aL.caller) + "_") + toString(aq)) + i)), 0) | |
327 | + | let bn = ((valueOrElse(getInteger(this, (toString(aq) + g)), 0) - bm) + bi) | |
328 | + | [IntegerEntry((toString(aq) + g), bn), IntegerEntry((((toString(aL.caller) + "_") + toString(aq)) + i), bi)] | |
331 | 329 | } | |
332 | 330 | else { | |
333 | - | let | |
334 | - | let | |
335 | - | [IntegerEntry((toString( | |
331 | + | let bm = valueOrElse(getInteger(this, (((toString(aL.caller) + "_") + toString(aq)) + h)), 0) | |
332 | + | let bn = ((valueOrElse(getInteger(this, (toString(aq) + f)), 0) - bm) + bi) | |
333 | + | [IntegerEntry((toString(aq) + f), bn), IntegerEntry((((toString(aL.caller) + "_") + toString(aq)) + h), bi)] | |
336 | 334 | } | |
337 | 335 | } | |
338 | 336 | ||
339 | 337 | ||
340 | 338 | ||
341 | - | @Callable( | |
342 | - | func cancelVoting ( | |
343 | - | let | |
344 | - | if (!( | |
339 | + | @Callable(aL) | |
340 | + | func cancelVoting (aq,aH) = { | |
341 | + | let au = valueOrElse(getBoolean(this, (toString(aq) + j)), true) | |
342 | + | if (!(Q)) | |
345 | 343 | then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, p), "the cause wasn't specified"))) | |
346 | - | else if (!(containsElement([I, J, K], | |
344 | + | else if (!(containsElement([I, J, K], aL.callerPublicKey))) | |
347 | 345 | then throw("Only admin can call this function") | |
348 | - | else if (!( | |
349 | - | then throw((("Voting " + toString( | |
350 | - | else [IntegerEntry(d, ( | |
346 | + | else if (!(au)) | |
347 | + | then throw((("Voting " + toString(aq)) + " has already been stopped")) | |
348 | + | else [IntegerEntry(d, (R - 1)), BooleanEntry((toString(aq) + j), false), StringEntry((toString(aq) + q), aH)] | |
351 | 349 | } | |
352 | 350 | ||
353 | 351 | ||
354 | 352 | ||
355 | - | @Callable( | |
356 | - | func shutdown () = if (!( | |
353 | + | @Callable(aL) | |
354 | + | func shutdown () = if (!(Q)) | |
357 | 355 | then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, p), "the cause wasn't specified"))) | |
358 | - | else if (!(containsElement([I, J, K, L], | |
356 | + | else if (!(containsElement([I, J, K, L], aL.callerPublicKey))) | |
359 | 357 | then throw("Only admin can call this function") | |
360 | - | else | |
358 | + | else aG("Paused by admin") | |
361 | 359 | ||
362 | 360 | ||
363 | 361 | ||
364 | - | @Callable( | |
365 | - | func activate () = if ( | |
362 | + | @Callable(aL) | |
363 | + | func activate () = if (Q) | |
366 | 364 | then throw("DApp is already active") | |
367 | - | else if (!(containsElement([I, J, K, L], | |
365 | + | else if (!(containsElement([I, J, K, L], aL.callerPublicKey))) | |
368 | 366 | then throw("Only admin can call this function") | |
369 | 367 | else [BooleanEntry(c, true), DeleteEntry(p)] | |
370 | 368 | ||
371 | 369 | ||
372 | - | @Verifier( | |
373 | - | func | |
374 | - | let | |
370 | + | @Verifier(bo) | |
371 | + | func bp () = { | |
372 | + | let bq = if (sigVerify(bo.bodyBytes, bo.proofs[0], I)) | |
375 | 373 | then 1 | |
376 | 374 | else 0 | |
377 | - | let | |
375 | + | let br = if (sigVerify(bo.bodyBytes, bo.proofs[1], J)) | |
378 | 376 | then 1 | |
379 | 377 | else 0 | |
380 | - | let | |
378 | + | let bs = if (sigVerify(bo.bodyBytes, bo.proofs[2], K)) | |
381 | 379 | then 1 | |
382 | 380 | else 0 | |
383 | - | (((br + bs | |
381 | + | (((bq + br) + bs) >= 2) | |
384 | 382 | } | |
385 | 383 |
github/deemru/w8io/026f985 158.09 ms ◑