tx · J4D5eehxEcScQK47JopecBp3yKuv4mVXB191kiBsR3XJ

3NDCQyiA2gDuhSyA4J1ik69zNhLGfG6xr5g:  -0.01400000 Waves

2021.05.12 14:49 [1522421] smart account 3NDCQyiA2gDuhSyA4J1ik69zNhLGfG6xr5g > SELF 0.00000000 Waves

{ "type": 13, "id": "J4D5eehxEcScQK47JopecBp3yKuv4mVXB191kiBsR3XJ", "fee": 1400000, "feeAssetId": null, "timestamp": 1620820148504, "version": 2, "chainId": 84, "sender": "3NDCQyiA2gDuhSyA4J1ik69zNhLGfG6xr5g", "senderPublicKey": "9voGZWtFHWiv3fytePgppGYLLiB3i6aFERAuU7kfps8c", "proofs": [ "2xYJP8x4Dgi7xofTNDR9ahwmbyToEkm54VHKWzKGz9qyQi3GiJ3rrEY2pueK6hin5kcVotN8p3bUVo6fbMVArgbV" ], "script": "base64:AAIEAAAAAAAAABsIAhIAEgQKAggIEgUKAwEEARIECgIBCBIAEgAAAAA7AAAAAAd2ZXJzaW9uAgAAAAUxLjAuMAAAAAAKa2V5VmVyc2lvbgIAAAAHdmVyc2lvbgAAAAAJa2V5QWN0aXZlAgAAAAZhY3RpdmUAAAAAEWtleU51bWJlck9mVm90aW5nAgAAAA1udW1iZXJfdm90aW5nAAAAAA9rZXlIZWlnaHRPZlBvb2wCAAAAB19oZWlnaHQAAAAABWtleU5vAgAAAANfbm8AAAAABmtleVllcwIAAAAEX3llcwAAAAARa2V5U3RhdHVzT2ZWb3RpbmcCAAAAB19zdGF0dXMAAAAAEWtleUFtb3VudE9mVm90aW5nAgAAAA1hbW91bnRfdm90aW5nAAAAABRrZXlNYXhBbW91bnRPZlZvdGluZwIAAAARbWF4X2Ftb3VudF92b3RpbmcAAAAAEWtleU1heERheU9mVm90aW5nAgAAAA5tYXhfZGF5X3ZvdGluZwAAAAANa2V5Q29tbWlzc2lvbgIAAAAKY29tbWlzc2lvbgAAAAAba2V5Q29tbWlzc2lvblNjYWxlRGVsaW1pdGVyAgAAABpjb21taXNzaW9uX3NjYWxlX2RlbGltaXRlcgAAAAAIa2V5Q2F1c2UCAAAADnNodXRkb3duX2NhdXNlAAAAAA5rZXlDYW5jZWxDYXVzZQIAAAANX2NhbmNlbF9jYXVzZQAAAAAOa1VzZXJUb3RhbFNXT1ACAAAADF9TV09QX2Ftb3VudAAAAAAFa05hbWUCAAAABV9uYW1lAAAAAAh2b3RpbmdJZAIAAAAJX3ZvdGluZ0lkAAAAAA5wZXJpb2RPZlZvdGluZwIAAAANcGVyaW9kX3ZvdGluZwAAAAAPYWN0aXZlVm90ZUZpcnN0AgAAABFhY3RpdmVfdm90ZV9maXJzdAAAAAAQYWN0aXZlVm90ZVNlY29uZAIAAAASYWN0aXZlX3ZvdGVfc2Vjb25kAAAAAA9hY3RpdmVWb3RlVGhpcmQCAAAAEWFjdGl2ZV92b3RlX3RoaXJkAAAAABBhY3RpdmVWb3RlRm91cnRoAgAAABJhY3RpdmVfdm90ZV9mb3VydGgAAAAAD2FjdGl2ZVZvdGVGaWZ0aAIAAAARYWN0aXZlX3ZvdGVfZmlmdGgAAAAADGFkbWluUHVi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AAxpc1Bvb2xEZWZpbmUJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAABHRoaXMFAAAABXBvb2xzAwMFAAAADGlzUG9vbERlZmluZQkBAAAAAiE9AAAAAgUAAAAFcG9vbHMCAAAAAAcEAAAABnZvdGluZwkAAZEAAAACBQAAAAlwb29sc0RhdGEAAAAAAAAAAAIEAAAADmhlaWdodE9mVm90aW5nCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAGdm90aW5nBQAAAA9rZXlIZWlnaHRPZlBvb2wAAAAAAAAAAAAEAAAADnN0YXR1c09mVm90aW5nCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAGdm90aW5nBQAAABFrZXlTdGF0dXNPZlZvdGluZwYDCQAAZgAAAAIFAAAABmhlaWdodAUAAAAOaGVpZ2h0T2ZWb3RpbmcDBQAAAA5zdGF0dXNPZlZvdGluZwIAAAAABQAAAApwb29sc1N0YXRlBQAAAApwb29sc1N0YXRlBQAAAApwb29sc1N0YXRlAQAAABppc0xhc3RGaXZlQWN0aXZlUG9vbEV4aXN0cwAAAAIAAAAGYXNzZXRBAAAABmFzc2V0QgMDAwMJAQAAABJpc0FjdGl2ZVBvb2xFeGlzdHMAAAADBQAAAA9maXJzdEFjdGl2ZVZvdGUFAAAABmFzc2V0QQUAAAAGYXNzZXRCBgkBAAAAEmlzQWN0aXZlUG9vbEV4aXN0cwAAAAMFAAAAEHNlY29uZEFjdGl2ZVZvdGUFAAAABmFzc2V0QQUAAAAGYXNzZXRCBgkBAAAAEmlzQWN0aXZlUG9vbEV4aXN0cwAAAAMFAAAAD3RoaXJkQWN0aXZlVm90ZQUAAAAGYXNzZXRBBQAAAAZhc3NldEIGCQEAAAASaXNBY3RpdmVQb29sRXhpc3RzAAAAAwUAAAAQZm91cnRoQWN0aXZlVm90ZQUAAAAGYXNzZXRBBQAAAAZhc3NldEIGCQEAAAASaXNBY3RpdmVQb29sRXhpc3RzAAAAAwUAAAAPZmlmdGhBY3RpdmVWb3RlBQAAAAZhc3NldEEFAAAABmFzc2V0QgEAAAANZ2V0QWN0aXZlUG9vbAAAAAEAAAAGdm90aW5nBAAAAA5oZWlnaHRPZlZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAAGdm90aW5nBQAAAA9rZXlIZWlnaHRPZlBvb2wAAAAAAAAAAAAEAAAADnN0YXR1c09mVm90aW5nCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAAAZ2b3RpbmcFAAAAEWtleVN0YXR1c09mVm90aW5nBgQAAAANY3VycmVudEhlaWdodAUAAAAGaGVpZ2h0AwkAAGYAAAACAAAAAAAAAAAABQAAAAZ2b3RpbmcAAAAAAAAAAAADCQEAAAABIQAAAAEFAAAADnN0YXR1c09mVm90aW5nAAAAAAAAAAAAAwkAAGYAAAACBQAAAA5oZWlnaHRPZlZvdGluZwUAAAANY3VycmVudEhlaWdodAAAAAAAAAAAAQAAAAAAAAAAAAEAAAAZZ2V0QWN0aXZlVm90aW5nUG9vbEFtb3VudAAAAAAJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkBAAAADWdldEFjdGl2ZVBvb2wAAAABCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAD2ZpcnN0QWN0aXZlVm90ZQD//////////wkBAAAADWdldEFjdGl2ZVBvb2wAAAABCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEHNlY29uZEFjdGl2ZVZvdGUA//////////8JAQAAAA1nZXRBY3RpdmVQb29sAAAAAQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA90aGlyZEFjdGl2ZVZvdGUA//////////8JAQAAAA1nZXRBY3RpdmVQb29sAAAAAQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAABBmb3VydGhBY3RpdmVWb3RlAP//////////CQEAAAANZ2V0QWN0aXZlUG9vbAAAAAEJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAPZmlmdGhBY3RpdmVWb3RlAP//////////AQAAABVnZXRVbmFjdGl2ZVZvdGluZ1Bvb2wAAAAAAwkBAAAAAiE9AAAAAgkBAAAAFGlzVW5hY3RpdmVQb29sRXhpc3RzAAAAAQUAAAAPYWN0aXZlVm90ZUZpcnN0AgAAAAAFAAAAD2FjdGl2ZVZvdGVGaXJzdAMJAQAAAAIhPQAAAAIJAQAAABRpc1VuYWN0aXZlUG9vbEV4aXN0cwAAAAEFAAAAEGFjdGl2ZVZvdGVTZWNvbmQCAAAAAAUAAAAQYWN0aXZlVm90ZVNlY29uZAMJAQAAAAIhPQAAAAIJAQAAABRpc1VuYWN0aXZlUG9vbEV4aXN0cwAAAAEFAAAAD2FjdGl2ZVZvdGVUaGlyZAIAAAAABQAAAA9hY3RpdmVWb3RlVGhpcmQDCQEAAAACIT0AAAACCQEAAAAUaXNVbmFjdGl2ZVBvb2xFeGlzdHMAAAABBQAAABBhY3RpdmVWb3RlRm91cnRoAgAAAAAFAAAAEGFjdGl2ZVZvdGVGb3VydGgDCQEAAAACIT0AAAACCQEAAAAUaXNVbmFjdGl2ZVBvb2xFeGlzdHMAAAABBQAAAA9hY3RpdmVWb3RlRmlmdGgCAAAAAAUAAAAPYWN0aXZlVm90ZUZpZnRoAgAAAAABAAAAFmdldEFzc2V0SW5mb0Zyb21TdHJpbmcAAAABAAAACGFzc2V0U3RyAwkAAAAAAAACBQAAAAhhc3NldFN0cgIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAAIYXNzZXRTdHIBAAAAFGlzQ2FsbGVySW5Hb3Zlcm5hbmNlAAAAAQAAAAR1c2VyAwkAAGYAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAB2dvdkFkZHIJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAAA5rVXNlclRvdGFsU1dPUAAAAAAAAAAAAAAAAAAAAAAAAAYHAQAAAAdzdXNwZW5kAAAAAQAAAAVjYXVzZQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa2V5QWN0aXZlBwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAhrZXlDYXVzZQUAAAAFY2F1c2UFAAAAA25pbAEAAAAhdGhyb3dJbnN1ZmZpY2llbnRBdmFpbGFibGVCYWxhbmNlAAAAAgAAAAZhbW91bnQAAAAJYXNzZXROYW1lCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAACFJbnN1ZmZpY2llbnQgREFwcCBiYWxhbmNlIHRvIHBheSAJAAGkAAAAAQUAAAAGYW1vdW50AgAAAAEgBQAAAAlhc3NldE5hbWUCAAAAECBkdWUgdG8gc3Rha2luZy4CAAAAQC4gUGxlYXNlIGNvbnRhY3Qgc3VwcG9ydCBpbiBUZWxlZ3JhbTogaHR0cHM6Ly90Lm1lL3N3b3BmaXN1cHBvcnQAAAAGAAAAAWkBAAAABGluaXQAAAAAAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQbAAAAAgUAAAAEdGhpcwUAAAAJa2V5QWN0aXZlCQAAAgAAAAECAAAAFkRBcHAgaXMgYWxyZWFkeSBhY3RpdmUEAAAAEmluaXROdW1iZXJPZlZvdGluZwAAAAAAAAAAAAQAAAASaW5pdEFtb3VudE9mVm90aW5nAAAAAAAAAAAABAAAAA1pbml0S2V5QWN0aXZlBgQAAAAKYWN0aXZlSW5pdAIAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACmtleVZlcnNpb24FAAAAB3ZlcnNpb24JAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAACWtleUFjdGl2ZQUAAAANaW5pdEtleUFjdGl2ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARa2V5TnVtYmVyT2ZWb3RpbmcFAAAAEmluaXROdW1iZXJPZlZvdGluZwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARa2V5QW1vdW50T2ZWb3RpbmcFAAAAEmluaXRBbW91bnRPZlZvdGluZwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAUa2V5TWF4QW1vdW50T2ZWb3RpbmcFAAAAEW1heEFtb3VudE9mVm90aW5nCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABFrZXlNYXhEYXlPZlZvdGluZwUAAAAObWF4RGF5T2ZWb3RpbmcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAPYWN0aXZlVm90ZUZpcnN0BQAAAAphY3RpdmVJbml0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEGFjdGl2ZVZvdGVTZWNvbmQFAAAACmFjdGl2ZUluaXQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAPYWN0aXZlVm90ZVRoaXJkBQAAAAphY3RpdmVJbml0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEGFjdGl2ZVZvdGVGb3VydGgFAAAACmFjdGl2ZUluaXQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAPYWN0aXZlVm90ZUZpZnRoBQAAAAphY3RpdmVJbml0BQAAAANuaWwAAAABaQEAAAAUaW5pdFZvdGluZ0Zvck5ld1Bvb2wAAAACAAAABmFzc2V0QQAAAAZhc3NldEIEAAAACyR0MDc3MDY3ODA1CQAFFAAAAAIJAQAAABZnZXRBc3NldEluZm9Gcm9tU3RyaW5nAAAAAQUAAAAGYXNzZXRBCQEAAAAWZ2V0QXNzZXRJbmZvRnJvbVN0cmluZwAAAAEFAAAABmFzc2V0QgQAAAAMcG9vbEFzc2V0SWRBCAUAAAALJHQwNzcwNjc4MDUAAAACXzEEAAAADHBvb2xBc3NldElkQggFAAAACyR0MDc3MDY3ODA1AAAAAl8yBAAAAAx1bmFjdGl2ZVZvdGUJAQAAABVnZXRVbmFjdGl2ZVZvdGluZ1Bvb2wAAAAABAAAABFuZXdOdW1iZXJPZlZvdGluZwkBAAAAGWdldEFjdGl2ZVZvdGluZ1Bvb2xBbW91bnQAAAAABAAAAAxpc1Bvb2xFeGlzdHMJAQAAABppc0xhc3RGaXZlQWN0aXZlUG9vbEV4aXN0cwAAAAIFAAAABmFzc2V0QQUAAAAGYXNzZXRCBAAAAAskdDA3OTc5ODA1NwkBAAAADGdldEFzc2V0SW5mbwAAAAEFAAAADHBvb2xBc3NldElkQQQAAAAOcG10U3RyQXNzZXRJZEEIBQAAAAskdDA3OTc5ODA1NwAAAAJfMQQAAAANcG10QXNzZXROYW1lQQgFAAAACyR0MDc5Nzk4MDU3AAAAAl8yBAAAAAxwbXREZWNpbWFsc0EI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", "height": 1522421, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DZoUdWSDjfpESHCYEMgGFLRoD3xWH7abdUwqqKtmLW9T Next: 63K7kn4h63omsoERS1k7wRnqCr7b3HJzZxmYNkFoqvAo Diff:
OldNewDifferences
137137 }
138138
139139
140-func isUnactivePoolExists (pools) = {
140+func isUnactivePoolExists (poolsState) = {
141+ let pools = valueOrElse(getString(this, poolsState), "")
141142 let poolsData = split(pools, "_")
142143 let isPoolDefine = isDefined(getInteger(this, pools))
143144 if (if (isPoolDefine)
150151 if ((height > heightOfVoting))
151152 then if (statusOfVoting)
152153 then ""
153- else pools
154- else pools
154+ else poolsState
155+ else poolsState
155156 }
156- else pools
157+ else poolsState
157158 }
158159
159160
185186 func getActiveVotingPoolAmount () = ((((getActivePool(valueOrElse(getInteger(this, firstActiveVote), -1)) + getActivePool(valueOrElse(getInteger(this, secondActiveVote), -1))) + getActivePool(valueOrElse(getInteger(this, thirdActiveVote), -1))) + getActivePool(valueOrElse(getInteger(this, fourthActiveVote), -1))) + getActivePool(valueOrElse(getInteger(this, fifthActiveVote), -1)))
186187
187188
188-func getUnactiveVotingPool () = if ((isUnactivePoolExists(firstActiveVote) != ""))
189+func getUnactiveVotingPool () = if ((isUnactivePoolExists(activeVoteFirst) != ""))
189190 then activeVoteFirst
190- else if ((isUnactivePoolExists(secondActiveVote) != ""))
191+ else if ((isUnactivePoolExists(activeVoteSecond) != ""))
191192 then activeVoteSecond
192- else if ((isUnactivePoolExists(thirdActiveVote) != ""))
193+ else if ((isUnactivePoolExists(activeVoteThird) != ""))
193194 then activeVoteThird
194- else if ((isUnactivePoolExists(fourthActiveVote) != ""))
195+ else if ((isUnactivePoolExists(activeVoteFourth) != ""))
195196 then activeVoteFourth
196- else if ((isUnactivePoolExists(fifthActiveVote) != ""))
197+ else if ((isUnactivePoolExists(activeVoteFifth) != ""))
197198 then activeVoteFifth
198199 else ""
199200
229230
230231 @Callable(i)
231232 func initVotingForNewPool (assetA,assetB) = {
232- let $t076277726 = $Tuple2(getAssetInfoFromString(assetA), getAssetInfoFromString(assetB))
233- let poolAssetIdA = $t076277726._1
234- let poolAssetIdB = $t076277726._2
233+ let $t077067805 = $Tuple2(getAssetInfoFromString(assetA), getAssetInfoFromString(assetB))
234+ let poolAssetIdA = $t077067805._1
235+ let poolAssetIdB = $t077067805._2
235236 let unactiveVote = getUnactiveVotingPool()
236237 let newNumberOfVoting = getActiveVotingPoolAmount()
237238 let isPoolExists = isLastFiveActivePoolExists(assetA, assetB)
238- let $t079007978 = getAssetInfo(poolAssetIdA)
239- let pmtStrAssetIdA = $t079007978._1
240- let pmtAssetNameA = $t079007978._2
241- let pmtDecimalsA = $t079007978._3
242- let $t079838061 = getAssetInfo(poolAssetIdB)
243- let pmtStrAssetIdB = $t079838061._1
244- let pmtAssetNameB = $t079838061._2
245- let pmtDecimalsB = $t079838061._3
239+ let $t079798057 = getAssetInfo(poolAssetIdA)
240+ let pmtStrAssetIdA = $t079798057._1
241+ let pmtAssetNameA = $t079798057._2
242+ let pmtDecimalsA = $t079798057._3
243+ let $t080628140 = getAssetInfo(poolAssetIdB)
244+ let pmtStrAssetIdB = $t080628140._1
245+ let pmtAssetNameB = $t080628140._2
246+ let pmtDecimalsB = $t080628140._3
246247 if (!(isActive))
247248 then throw("DApp is inactive at this moment")
248249 else if ((poolAssetIdA == poolAssetIdB))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let version = "1.0.0"
55
66 let keyVersion = "version"
77
88 let keyActive = "active"
99
1010 let keyNumberOfVoting = "number_voting"
1111
1212 let keyHeightOfPool = "_height"
1313
1414 let keyNo = "_no"
1515
1616 let keyYes = "_yes"
1717
1818 let keyStatusOfVoting = "_status"
1919
2020 let keyAmountOfVoting = "amount_voting"
2121
2222 let keyMaxAmountOfVoting = "max_amount_voting"
2323
2424 let keyMaxDayOfVoting = "max_day_voting"
2525
2626 let keyCommission = "commission"
2727
2828 let keyCommissionScaleDelimiter = "commission_scale_delimiter"
2929
3030 let keyCause = "shutdown_cause"
3131
3232 let keyCancelCause = "_cancel_cause"
3333
3434 let kUserTotalSWOP = "_SWOP_amount"
3535
3636 let kName = "_name"
3737
3838 let votingId = "_votingId"
3939
4040 let periodOfVoting = "period_voting"
4141
4242 let activeVoteFirst = "active_vote_first"
4343
4444 let activeVoteSecond = "active_vote_second"
4545
4646 let activeVoteThird = "active_vote_third"
4747
4848 let activeVoteFourth = "active_vote_fourth"
4949
5050 let activeVoteFifth = "active_vote_fifth"
5151
5252 let adminPubKey1 = base58'DXDY2itiEcYBtGkVLnkpHtDFyWQUkoLJz79uJ7ECbMrA'
5353
5454 let adminPubKey2 = base58'E6Wa1SGoktYcjHjsKrvjMiqJY3SWmGKcD8Q5L8kxSPS7'
5555
5656 let adminPubKey3 = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ'
5757
5858 let adminPubKeyStartStop = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ'
5959
6060 let walletAddress = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
6161
6262 let govAddr = Address(base58'3PLHVWCqA9DJPDbadUofTohnCULLauiDWhS')
6363
6464 let USDN = base58'3DBbie1kWkspPEX1KTD6XDVGjofdKVBUURNfoS7hUpY9'
6565
6666 let SWOP = base58'3DBbie1kWkspPEX1KTD6XDVGjofdKVBUURNfoS7hUpY9'
6767
6868 let isActive = getBooleanValue(this, keyActive)
6969
7070 let numberOfVoting = getIntegerValue(this, keyNumberOfVoting)
7171
7272 let amountOfVoting = getIntegerValue(this, keyAmountOfVoting)
7373
7474 let firstActiveVote = valueOrElse(getString(this, activeVoteFirst), "")
7575
7676 let secondActiveVote = valueOrElse(getString(this, activeVoteSecond), "")
7777
7878 let thirdActiveVote = valueOrElse(getString(this, activeVoteThird), "")
7979
8080 let fourthActiveVote = valueOrElse(getString(this, activeVoteFourth), "")
8181
8282 let fifthActiveVote = valueOrElse(getString(this, activeVoteFifth), "")
8383
8484 let comissionForInitalizationOfVoting = 1000000000
8585
8686 let scaleValue3 = 1000
8787
8888 let scaleValue8 = 100000000
8989
9090 let slippageToleranceDelimiter = 1000
9191
9292 let scaleValue8Digits = 8
9393
9494 let maxAmountOfVoting = 5
9595
9696 let maxDayOfVoting = 5
9797
9898 let fiveDays = (1440 * maxDayOfVoting)
9999
100100 func getAssetInfo (assetId) = match assetId {
101101 case id: ByteVector =>
102102 if (isDefined(assetInfo(id)))
103103 then {
104104 let stringId = toBase58String(id)
105105 let info = valueOrErrorMessage(assetInfo(id), (("Asset " + stringId) + " doesn't exist"))
106106 $Tuple3(stringId, info.name, info.decimals)
107107 }
108108 else throw("Asset is not define")
109109 case waves: Unit =>
110110 $Tuple3("WAVES", "WAVES", 8)
111111 case _ =>
112112 throw("Match error")
113113 }
114114
115115
116116 func isActivePoolExists (pools,assetA,assetB) = {
117117 let poolsData = split(pools, "_")
118118 let isPoolDefine = isDefined(getInteger(this, pools))
119119 if (if (isPoolDefine)
120120 then (pools != "")
121121 else false)
122122 then {
123123 let voting = poolsData[2]
124124 let newPools = (((((assetA + "_") + assetB) + "_") + voting) + votingId)
125125 let isNewPoolDefine = isDefined(getInteger(this, newPools))
126126 let heightOfVoting = valueOrElse(getInteger(this, (voting + keyHeightOfPool)), 0)
127127 let statusOfVoting = valueOrElse(getBoolean(this, (voting + keyStatusOfVoting)), true)
128128 if (isNewPoolDefine)
129129 then if ((height > heightOfVoting))
130130 then if (statusOfVoting)
131131 then true
132132 else false
133133 else false
134134 else false
135135 }
136136 else false
137137 }
138138
139139
140-func isUnactivePoolExists (pools) = {
140+func isUnactivePoolExists (poolsState) = {
141+ let pools = valueOrElse(getString(this, poolsState), "")
141142 let poolsData = split(pools, "_")
142143 let isPoolDefine = isDefined(getInteger(this, pools))
143144 if (if (isPoolDefine)
144145 then (pools != "")
145146 else false)
146147 then {
147148 let voting = poolsData[2]
148149 let heightOfVoting = valueOrElse(getInteger(this, (voting + keyHeightOfPool)), 0)
149150 let statusOfVoting = valueOrElse(getBoolean(this, (voting + keyStatusOfVoting)), true)
150151 if ((height > heightOfVoting))
151152 then if (statusOfVoting)
152153 then ""
153- else pools
154- else pools
154+ else poolsState
155+ else poolsState
155156 }
156- else pools
157+ else poolsState
157158 }
158159
159160
160161 func isLastFiveActivePoolExists (assetA,assetB) = if (if (if (if (isActivePoolExists(firstActiveVote, assetA, assetB))
161162 then true
162163 else isActivePoolExists(secondActiveVote, assetA, assetB))
163164 then true
164165 else isActivePoolExists(thirdActiveVote, assetA, assetB))
165166 then true
166167 else isActivePoolExists(fourthActiveVote, assetA, assetB))
167168 then true
168169 else isActivePoolExists(fifthActiveVote, assetA, assetB)
169170
170171
171172 func getActivePool (voting) = {
172173 let heightOfVoting = valueOrElse(getInteger(this, (toString(voting) + keyHeightOfPool)), 0)
173174 let statusOfVoting = valueOrElse(getBoolean(this, (toString(voting) + keyStatusOfVoting)), true)
174175 let currentHeight = height
175176 if ((0 > voting))
176177 then 0
177178 else if (!(statusOfVoting))
178179 then 0
179180 else if ((heightOfVoting > currentHeight))
180181 then 1
181182 else 0
182183 }
183184
184185
185186 func getActiveVotingPoolAmount () = ((((getActivePool(valueOrElse(getInteger(this, firstActiveVote), -1)) + getActivePool(valueOrElse(getInteger(this, secondActiveVote), -1))) + getActivePool(valueOrElse(getInteger(this, thirdActiveVote), -1))) + getActivePool(valueOrElse(getInteger(this, fourthActiveVote), -1))) + getActivePool(valueOrElse(getInteger(this, fifthActiveVote), -1)))
186187
187188
188-func getUnactiveVotingPool () = if ((isUnactivePoolExists(firstActiveVote) != ""))
189+func getUnactiveVotingPool () = if ((isUnactivePoolExists(activeVoteFirst) != ""))
189190 then activeVoteFirst
190- else if ((isUnactivePoolExists(secondActiveVote) != ""))
191+ else if ((isUnactivePoolExists(activeVoteSecond) != ""))
191192 then activeVoteSecond
192- else if ((isUnactivePoolExists(thirdActiveVote) != ""))
193+ else if ((isUnactivePoolExists(activeVoteThird) != ""))
193194 then activeVoteThird
194- else if ((isUnactivePoolExists(fourthActiveVote) != ""))
195+ else if ((isUnactivePoolExists(activeVoteFourth) != ""))
195196 then activeVoteFourth
196- else if ((isUnactivePoolExists(fifthActiveVote) != ""))
197+ else if ((isUnactivePoolExists(activeVoteFifth) != ""))
197198 then activeVoteFifth
198199 else ""
199200
200201
201202 func getAssetInfoFromString (assetStr) = if ((assetStr == "WAVES"))
202203 then unit
203204 else fromBase58String(assetStr)
204205
205206
206207 func isCallerInGovernance (user) = if ((valueOrElse(getInteger(govAddr, (toString(user) + kUserTotalSWOP)), 0) > 0))
207208 then true
208209 else false
209210
210211
211212 func suspend (cause) = [BooleanEntry(keyActive, false), StringEntry(keyCause, cause)]
212213
213214
214215 func throwInsufficientAvailableBalance (amount,assetName) = throw(((((("Insufficient DApp balance to pay " + toString(amount)) + " ") + assetName) + " due to staking.") + ". Please contact support in Telegram: https://t.me/swopfisupport"))
215216
216217
217218 @Callable(i)
218219 func init () = if (isDefined(getBoolean(this, keyActive)))
219220 then throw("DApp is already active")
220221 else {
221222 let initNumberOfVoting = 0
222223 let initAmountOfVoting = 0
223224 let initKeyActive = true
224225 let activeInit = ""
225226 [StringEntry(keyVersion, version), BooleanEntry(keyActive, initKeyActive), IntegerEntry(keyNumberOfVoting, initNumberOfVoting), IntegerEntry(keyAmountOfVoting, initAmountOfVoting), IntegerEntry(keyMaxAmountOfVoting, maxAmountOfVoting), IntegerEntry(keyMaxDayOfVoting, maxDayOfVoting), StringEntry(activeVoteFirst, activeInit), StringEntry(activeVoteSecond, activeInit), StringEntry(activeVoteThird, activeInit), StringEntry(activeVoteFourth, activeInit), StringEntry(activeVoteFifth, activeInit)]
226227 }
227228
228229
229230
230231 @Callable(i)
231232 func initVotingForNewPool (assetA,assetB) = {
232- let $t076277726 = $Tuple2(getAssetInfoFromString(assetA), getAssetInfoFromString(assetB))
233- let poolAssetIdA = $t076277726._1
234- let poolAssetIdB = $t076277726._2
233+ let $t077067805 = $Tuple2(getAssetInfoFromString(assetA), getAssetInfoFromString(assetB))
234+ let poolAssetIdA = $t077067805._1
235+ let poolAssetIdB = $t077067805._2
235236 let unactiveVote = getUnactiveVotingPool()
236237 let newNumberOfVoting = getActiveVotingPoolAmount()
237238 let isPoolExists = isLastFiveActivePoolExists(assetA, assetB)
238- let $t079007978 = getAssetInfo(poolAssetIdA)
239- let pmtStrAssetIdA = $t079007978._1
240- let pmtAssetNameA = $t079007978._2
241- let pmtDecimalsA = $t079007978._3
242- let $t079838061 = getAssetInfo(poolAssetIdB)
243- let pmtStrAssetIdB = $t079838061._1
244- let pmtAssetNameB = $t079838061._2
245- let pmtDecimalsB = $t079838061._3
239+ let $t079798057 = getAssetInfo(poolAssetIdA)
240+ let pmtStrAssetIdA = $t079798057._1
241+ let pmtAssetNameA = $t079798057._2
242+ let pmtDecimalsA = $t079798057._3
243+ let $t080628140 = getAssetInfo(poolAssetIdB)
244+ let pmtStrAssetIdB = $t080628140._1
245+ let pmtAssetNameB = $t080628140._2
246+ let pmtDecimalsB = $t080628140._3
246247 if (!(isActive))
247248 then throw("DApp is inactive at this moment")
248249 else if ((poolAssetIdA == poolAssetIdB))
249250 then throw("Assets must be different")
250251 else if (if (((newNumberOfVoting + 1) > maxAmountOfVoting))
251252 then true
252253 else (unactiveVote == ""))
253254 then throw(((("Too many votes. Maximum quantity -" + toString(newNumberOfVoting)) + " ") + unactiveVote))
254255 else if ((size(i.payments) != 1))
255256 then throw("One attached assets expected")
256257 else if (isPoolExists)
257258 then throw("This pool already exists")
258259 else if (if ((assetA == ""))
259260 then true
260261 else (assetB == ""))
261262 then throw("Assets can't be empty")
262263 else if (!(if (if ((poolAssetIdB == USDN))
263264 then true
264265 else (poolAssetIdA == unit))
265266 then true
266267 else (poolAssetIdA == SWOP)))
267268 then throw("One of the assets must be USDN, WAVES, SWOP")
268269 else [IntegerEntry((((((assetA + "_") + assetB) + "_") + toString(amountOfVoting)) + votingId), amountOfVoting), IntegerEntry((toString(amountOfVoting) + keyHeightOfPool), (height + fiveDays)), BooleanEntry((toString(amountOfVoting) + keyStatusOfVoting), true), IntegerEntry(keyAmountOfVoting, (amountOfVoting + 1)), IntegerEntry(keyNumberOfVoting, (newNumberOfVoting + 1)), StringEntry((assetA + kName), pmtAssetNameA), StringEntry((assetB + kName), pmtAssetNameB), StringEntry(unactiveVote, (((((assetA + "_") + assetB) + "_") + toString(amountOfVoting)) + votingId))]
269270 }
270271
271272
272273
273274 @Callable(i)
274275 func voteForPool (voting,yesOrNo,voteAmt) = {
275276 let currentHeight = height
276277 let poolInitHeight = valueOrErrorMessage(getIntegerValue(this, (toString(voting) + keyHeightOfPool)), "Empty pool height")
277278 let statusOfVoting = valueOrElse(getBoolean(this, (toString(voting) + keyStatusOfVoting)), true)
278279 let userSWOPinGovernance = valueOrElse(getInteger(govAddr, (toString(i.caller) + kUserTotalSWOP)), 0)
279280 let totalVoteUser = ((valueOrElse(getInteger(this, (((toString(i.caller) + "_") + toString(voting)) + keyYes)), 0) + valueOrElse(getInteger(this, (((toString(i.caller) + "_") + toString(voting)) + keyNo)), 0)) + voteAmt)
280281 if (!(isCallerInGovernance(i.caller)))
281282 then throw("This address has 0 SWOP in Governance dApp")
282283 else if (!(statusOfVoting))
283284 then throw("This voting was canceled")
284285 else if ((currentHeight > poolInitHeight))
285286 then throw("This voting was expired")
286287 else if ((0 > voteAmt))
287288 then throw("The number of votes must be positive")
288289 else if ((totalVoteUser > userSWOPinGovernance))
289290 then throw((((toString(this) + " has ") + toString(userSWOPinGovernance)) + " SWOP in governance."))
290291 else if (yesOrNo)
291292 then {
292293 let oldVoteUser = valueOrElse(getInteger(this, (((toString(i.caller) + "_") + toString(voting)) + keyYes)), 0)
293294 let newVote = ((valueOrElse(getInteger(this, (toString(voting) + keyYes)), 0) - oldVoteUser) + voteAmt)
294295 [IntegerEntry((toString(voting) + keyYes), newVote), IntegerEntry((((toString(i.caller) + "_") + toString(voting)) + keyYes), voteAmt)]
295296 }
296297 else {
297298 let oldVoteUser = valueOrElse(getInteger(this, (((toString(i.caller) + "_") + toString(voting)) + keyNo)), 0)
298299 let newVote = ((valueOrElse(getInteger(this, (toString(voting) + keyNo)), 0) - oldVoteUser) + voteAmt)
299300 [IntegerEntry((toString(voting) + keyNo), newVote), IntegerEntry((((toString(i.caller) + "_") + toString(voting)) + keyNo), voteAmt)]
300301 }
301302 }
302303
303304
304305
305306 @Callable(i)
306307 func cancellationVoting (voting,cause) = {
307308 let statusOfVoting = valueOrElse(getBoolean(this, (toString(voting) + keyStatusOfVoting)), true)
308309 if (!(isActive))
309310 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, keyCause), "the cause wasn't specified")))
310311 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop], i.callerPublicKey)))
311312 then throw("Only admin can call this function")
312313 else if (!(statusOfVoting))
313314 then throw((("Voting " + toString(voting)) + " has already been stopped"))
314315 else [IntegerEntry(keyNumberOfVoting, (numberOfVoting - 1)), BooleanEntry((toString(voting) + keyStatusOfVoting), false), StringEntry((toString(voting) + keyCancelCause), cause)]
315316 }
316317
317318
318319
319320 @Callable(i)
320321 func shutdown () = if (!(isActive))
321322 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, keyCause), "the cause wasn't specified")))
322323 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop], i.callerPublicKey)))
323324 then throw("Only admin can call this function")
324325 else suspend("Paused by admin")
325326
326327
327328
328329 @Callable(i)
329330 func activate () = if (isActive)
330331 then throw("DApp is already active")
331332 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop], i.callerPublicKey)))
332333 then throw("Only admin can call this function")
333334 else [BooleanEntry(keyActive, true), DeleteEntry(keyCause)]
334335
335336
336337 @Verifier(tx)
337338 func verify () = true
338339

github/deemru/w8io/873ac7e 
49.17 ms