tx · 3mfbiVGJsR4dQefPLNGpeTd5RKfQdwKRhdvu9NiwDNc2

3N8DijjUMpYq512vvE9GHnCTUBUd4AZwhH6:  -0.01400000 Waves

2021.04.27 18:12 [1501024] smart account 3N8DijjUMpYq512vvE9GHnCTUBUd4AZwhH6 > SELF 0.00000000 Waves

{ "type": 13, "id": "3mfbiVGJsR4dQefPLNGpeTd5RKfQdwKRhdvu9NiwDNc2", "fee": 1400000, "feeAssetId": null, "timestamp": 1619536373543, "version": 2, "chainId": 84, "sender": "3N8DijjUMpYq512vvE9GHnCTUBUd4AZwhH6", "senderPublicKey": "75SuvmjmHX6J7smVGHvWY6acr5mqyRQCYpFxeFQh8Cy3", "proofs": [ "3VHjpLER5eyvJvqFzq1BieyoucTusRSFRHzDyhky54B7uoMtGcxcVxwvZbu7hfWxGJSYgAVn8VCSFymZBYKqMKJ7" ], "script": "base64:AAIEAAAAAAAAABsIAhIAEgQKAggIEgUKAwEEARIECgIBCBIAEgAAAAAsAAAAAAd2ZXJzaW9uAgAAAAUxLjAuMAAAAAAKa2V5VmVyc2lvbgIAAAAHdmVyc2lvbgAAAAAJa2V5QWN0aXZlAgAAAAZhY3RpdmUAAAAAEWtleU51bWJlck9mVm90aW5nAgAAAA1udW1iZXJfdm90aW5nAAAAAA9rZXlIZWlnaHRPZlBvb2wCAAAAB19oZWlnaHQAAAAABWtleU5vAgAAAANfbm8AAAAABmtleVllcwIAAAAEX3llcwAAAAARa2V5U3RhdHVzT2ZWb3RpbmcCAAAAB19zdGF0dXMAAAAAEWtleUFtb3VudE9mVm90aW5nAgAAAA1hbW91bnRfdm90aW5nAAAAABRrZXlNYXhBbW91bnRPZlZvdGluZwIAAAARbWF4X2Ftb3VudF92b3RpbmcAAAAAEWtleU1heERheU9mVm90aW5nAgAAAA5tYXhfZGF5X3ZvdGluZwAAAAANa2V5Q29tbWlzc2lvbgIAAAAKY29tbWlzc2lvbgAAAAAba2V5Q29tbWlzc2lvblNjYWxlRGVsaW1pdGVyAgAAABpjb21taXNzaW9uX3NjYWxlX2RlbGltaXRlcgAAAAAIa2V5Q2F1c2UCAAAADnNodXRkb3duX2NhdXNlAAAAAA5rZXlDYW5jZWxDYXVzZQIAAAANX2NhbmNlbF9jYXVzZQAAAAAOa1VzZXJUb3RhbFNXT1ACAAAADF9TV09QX2Ftb3VudAAAAAAFa05hbWUCAAAABV9uYW1lAAAAAAh2b3RpbmdJZAIAAAAJX3ZvdGluZ0lkAAAAAA5wZXJpb2RPZlZvdGluZwIAAAANcGVyaW9kX3ZvdGluZwAAAAAMYWRtaW5QdWJLZXkxAQAAACAEz3XlZNDBD05nuR8TZMQaDeqEJEIxfTOQXUBYCp2TSgAAAAAMYWRtaW5QdWJLZXkyAQAAACAEz3XlZNDBD05nuR8TZMQaDeqEJEIxfTOQXUBYCp2TSgAAAAAMYWRtaW5QdWJLZXkzAQAAACAEz3XlZNDBD05nuR8TZMQaDeqEJEIxfTOQXUBYCp2TSgAAAAAUYWRtaW5QdWJLZXlTdGFydFN0b3ABAAAAIATPdeVk0MEPTme5HxNkxBoN6oQkQjF9M5BdQFgKnZNKAAAA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BQAAAAhrZXlDYXVzZQUAAAAFY2F1c2UFAAAAA25pbAEAAAAhdGhyb3dJbnN1ZmZpY2llbnRBdmFpbGFibGVCYWxhbmNlAAAAAgAAAAZhbW91bnQAAAAJYXNzZXROYW1lCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAACFJbnN1ZmZpY2llbnQgREFwcCBiYWxhbmNlIHRvIHBheSAJAAGkAAAAAQUAAAAGYW1vdW50AgAAAAEgBQAAAAlhc3NldE5hbWUCAAAAECBkdWUgdG8gc3Rha2luZy4CAAAAQC4gUGxlYXNlIGNvbnRhY3Qgc3VwcG9ydCBpbiBUZWxlZ3JhbTogaHR0cHM6Ly90Lm1lL3N3b3BmaXN1cHBvcnQAAAAGAAAAAWkBAAAABGluaXQAAAAAAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAAK09ubHkgdGhlIERBcHAgaXRzZWxmIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24DCQEAAAAJaXNEZWZpbmVkAAAAAQkABBsAAAACBQAAAAR0aGlzBQAAAAlrZXlBY3RpdmUJAAACAAAAAQIAAAAWREFwcCBpcyBhbHJlYWR5IGFjdGl2ZQQAAAASaW5pdE51bWJlck9mVm90aW5nAAAAAAAAAAAABAAAABJpbml0QW1vdW50T2ZWb3RpbmcAAAAAAAAAAAAEAAAADWluaXRLZXlBY3RpdmUGCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACmtleVZlcnNpb24FAAAAB3ZlcnNpb24JAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAACWtleUFjdGl2ZQUAAAANaW5pdEtleUFjdGl2ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARa2V5TnVtYmVyT2ZWb3RpbmcFAAAAEmluaXROdW1iZXJPZlZvdGluZwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARa2V5QW1vdW50T2ZWb3RpbmcFAAAAEmluaXRBbW91bnRPZlZvdGluZwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAUa2V5TWF4QW1vdW50T2ZWb3RpbmcFAAAAEW1heEFtb3VudE9mVm90aW5nCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABFrZXlNYXhEYXlPZlZvdGluZwUAAAAObWF4RGF5T2ZWb3RpbmcFAAAAA25pbAAAAAFpAQAAABRpbml0Vm90aW5nRm9yTmV3UG9vbAAAAAIAAAAGYXNzZXRBAAAABmFzc2V0QgQAAAALJHQwMzc2NTM4NDAJAAUUAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAAlwbXRBbW91bnQIBQAAAAskdDAzNzY1Mzg0MAAAAAJfMQQAAAAKcG10QXNzZXRJZAgFAAAACyR0MDM3NjUzODQwAAAAAl8yBAAAAAskdDAzODQ1Mzk0NAkABRQAAAACCQEAAAAWZ2V0QXNzZXRJbmZvRnJvbVN0cmluZwAAAAEFAAAABmFzc2V0QQkBAAAAFmdldEFzc2V0SW5mb0Zyb21TdHJpbmcAAAABBQAAAAZhc3NldEIEAAAADHBvb2xBc3NldElkQQgFAAAACyR0MDM4NDUzOTQ0AAAAAl8xBAAAAAxwb29sQXNzZXRJZEIIBQAAAAskdDAzODQ1Mzk0NAAAAAJfMgQAAAARbmV3TnVtYmVyT2ZWb3RpbmcJAQAAABlnZXRBY3RpdmVWb3RpbmdQb29sQW1vdW50AAAAAQUAAAAOYW1vdW50T2ZWb3RpbmcDCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQDCQAAAAAAAAIFAAAADHBvb2xBc3NldElkQQUAAAAMcG9vbEFzc2V0SWRCCQAAAgAAAAECAAAAGEFzc2V0cyBtdXN0IGJlIGRpZmZlcmVudAMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAcT25lIGF0dGFjaGVkIGFzc2V0cyBleHBlY3RlZAMJAQAAAAIhPQAAAAIFAAAACnBtdEFzc2V0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", "height": 1501024, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CBYc7X66M4E7uFm8ENNfhXqP6tmFcDehbG8cvEzqxAnh Next: 3ViEej9wxHq6ak4quvyRy5xKBVHaBvXtbcVMLig44pwh Diff:
OldNewDifferences
1818 let keyStatusOfVoting = "_status"
1919
2020 let keyAmountOfVoting = "amount_voting"
21+
22+let keyMaxAmountOfVoting = "max_amount_voting"
23+
24+let keyMaxDayOfVoting = "max_day_voting"
2125
2226 let keyCommission = "commission"
2327
6771
6872 let scaleValue8Digits = 8
6973
70-let maxAmountOfVoting = 15
74+let maxAmountOfVoting = 5
7175
72-let fiveDays = (1440 * 5)
76+let maxDayOfVoting = 5
77+
78+let fiveDays = (1440 * maxDayOfVoting)
7379
7480 func getAssetInfoFromString (assetStr) = if ((assetStr == "WAVES"))
7581 then unit
7985 func isCallerInGovernance (user) = if ((valueOrElse(getInteger(govAddr, (toString(user) + kUserTotalSWOP)), 0) > 0))
8086 then true
8187 else false
88+
89+
90+func getActivePool (voting) = {
91+ let heightOfVoting = valueOrElse(getInteger(this, (toString(voting) + keyHeightOfPool)), 0)
92+ let statusOfVoting = valueOrElse(getBoolean(this, (toString(voting) + keyStatusOfVoting)), true)
93+ let currentHeight = height
94+ if ((0 > voting))
95+ then 0
96+ else if (!(statusOfVoting))
97+ then 0
98+ else if ((heightOfVoting > currentHeight))
99+ then 1
100+ else 0
101+ }
102+
103+
104+func getActiveVotingPoolAmount (voting) = ((((getActivePool(voting) + getActivePool((voting - 1))) + getActivePool((voting - 2))) + getActivePool((voting - 3))) + getActivePool((voting - 4)))
82105
83106
84107 func suspend (cause) = [BooleanEntry(keyActive, false), StringEntry(keyCause, cause)]
96119 let initNumberOfVoting = 0
97120 let initAmountOfVoting = 0
98121 let initKeyActive = true
99-[StringEntry(keyVersion, version), BooleanEntry(keyActive, initKeyActive), IntegerEntry(keyNumberOfVoting, initNumberOfVoting), IntegerEntry(keyAmountOfVoting, initAmountOfVoting)]
122+[StringEntry(keyVersion, version), BooleanEntry(keyActive, initKeyActive), IntegerEntry(keyNumberOfVoting, initNumberOfVoting), IntegerEntry(keyAmountOfVoting, initAmountOfVoting), IntegerEntry(keyMaxAmountOfVoting, maxAmountOfVoting), IntegerEntry(keyMaxDayOfVoting, maxDayOfVoting)]
100123 }
101124
102125
103126
104127 @Callable(i)
105128 func initVotingForNewPool (assetA,assetB) = {
106- let $t029353010 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
107- let pmtAmount = $t029353010._1
108- let pmtAssetId = $t029353010._2
109- let $t030153121 = $Tuple2(getAssetInfoFromString(assetA), getAssetInfoFromString(assetB))
110- let poolAssetIdA = $t030153121._1
111- let poolAssetIdB = $t030153121._2
129+ let $t037653840 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
130+ let pmtAmount = $t037653840._1
131+ let pmtAssetId = $t037653840._2
132+ let $t038453944 = $Tuple2(getAssetInfoFromString(assetA), getAssetInfoFromString(assetB))
133+ let poolAssetIdA = $t038453944._1
134+ let poolAssetIdB = $t038453944._2
135+ let newNumberOfVoting = getActiveVotingPoolAmount(amountOfVoting)
112136 if (!(isActive))
113137 then throw("DApp is inactive at this moment")
114138 else if ((poolAssetIdA == poolAssetIdB))
115139 then throw("Assets must be different")
116- else if ((pmtAssetId != SWOP))
117- then throw("You must use a SWOP token")
118- else if ((pmtAmount != comissionForInitalizationOfVoting))
119- then throw("You need to attach 10 SWOP tokens")
120- else if ((numberOfVoting > maxAmountOfVoting))
121- then throw(("Too many votes. Maximum quantity -" + toString(maxAmountOfVoting)))
122- else if (!(if (if (if (if (if ((poolAssetIdA == USDN))
123- then true
124- else (poolAssetIdB == USDN))
125- then true
126- else (poolAssetIdA == unit))
127- then true
128- else (poolAssetIdB == unit))
129- then true
130- else (poolAssetIdA == SWOP))
131- then true
132- else (poolAssetIdB == SWOP)))
133- then throw("One of the assets must be USDN, WAVES, SWOP")
134- 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, (numberOfVoting + 1)), StringEntry((assetA + kName), assetA), StringEntry((assetB + kName), assetB), ScriptTransfer(walletAddress, pmtAmount, pmtAssetId)]
140+ else if ((size(i.payments) != 1))
141+ then throw("One attached assets expected")
142+ else if ((pmtAssetId != SWOP))
143+ then throw("You must use a SWOP token")
144+ else if ((pmtAmount != comissionForInitalizationOfVoting))
145+ then throw("You need to attach 10 SWOP tokens")
146+ else if ((newNumberOfVoting > maxAmountOfVoting))
147+ then throw(("Too many votes. Maximum quantity -" + toString(maxAmountOfVoting)))
148+ else if (!(if (if (if (if (if ((poolAssetIdA == USDN))
149+ then true
150+ else (poolAssetIdB == USDN))
151+ then true
152+ else (poolAssetIdA == unit))
153+ then true
154+ else (poolAssetIdB == unit))
155+ then true
156+ else (poolAssetIdA == SWOP))
157+ then true
158+ else (poolAssetIdB == SWOP)))
159+ then throw("One of the assets must be USDN, WAVES, SWOP")
160+ 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), assetA), StringEntry((assetB + kName), assetB), ScriptTransfer(walletAddress, pmtAmount, pmtAssetId)]
135161 }
136162
137163
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"
21+
22+let keyMaxAmountOfVoting = "max_amount_voting"
23+
24+let keyMaxDayOfVoting = "max_day_voting"
2125
2226 let keyCommission = "commission"
2327
2428 let keyCommissionScaleDelimiter = "commission_scale_delimiter"
2529
2630 let keyCause = "shutdown_cause"
2731
2832 let keyCancelCause = "_cancel_cause"
2933
3034 let kUserTotalSWOP = "_SWOP_amount"
3135
3236 let kName = "_name"
3337
3438 let votingId = "_votingId"
3539
3640 let periodOfVoting = "period_voting"
3741
3842 let adminPubKey1 = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
3943
4044 let adminPubKey2 = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
4145
4246 let adminPubKey3 = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
4347
4448 let adminPubKeyStartStop = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
4549
4650 let walletAddress = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
4751
4852 let govAddr = Address(base58'3MzJZEn6jzxCPaHEfkrXd7FhbjTyVjdRPLS')
4953
5054 let USDN = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
5155
5256 let SWOP = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
5357
5458 let isActive = getBooleanValue(this, keyActive)
5559
5660 let numberOfVoting = getIntegerValue(this, keyNumberOfVoting)
5761
5862 let amountOfVoting = getIntegerValue(this, keyAmountOfVoting)
5963
6064 let comissionForInitalizationOfVoting = 1000000000
6165
6266 let scaleValue3 = 1000
6367
6468 let scaleValue8 = 100000000
6569
6670 let slippageToleranceDelimiter = 1000
6771
6872 let scaleValue8Digits = 8
6973
70-let maxAmountOfVoting = 15
74+let maxAmountOfVoting = 5
7175
72-let fiveDays = (1440 * 5)
76+let maxDayOfVoting = 5
77+
78+let fiveDays = (1440 * maxDayOfVoting)
7379
7480 func getAssetInfoFromString (assetStr) = if ((assetStr == "WAVES"))
7581 then unit
7682 else fromBase58String(assetStr)
7783
7884
7985 func isCallerInGovernance (user) = if ((valueOrElse(getInteger(govAddr, (toString(user) + kUserTotalSWOP)), 0) > 0))
8086 then true
8187 else false
88+
89+
90+func getActivePool (voting) = {
91+ let heightOfVoting = valueOrElse(getInteger(this, (toString(voting) + keyHeightOfPool)), 0)
92+ let statusOfVoting = valueOrElse(getBoolean(this, (toString(voting) + keyStatusOfVoting)), true)
93+ let currentHeight = height
94+ if ((0 > voting))
95+ then 0
96+ else if (!(statusOfVoting))
97+ then 0
98+ else if ((heightOfVoting > currentHeight))
99+ then 1
100+ else 0
101+ }
102+
103+
104+func getActiveVotingPoolAmount (voting) = ((((getActivePool(voting) + getActivePool((voting - 1))) + getActivePool((voting - 2))) + getActivePool((voting - 3))) + getActivePool((voting - 4)))
82105
83106
84107 func suspend (cause) = [BooleanEntry(keyActive, false), StringEntry(keyCause, cause)]
85108
86109
87110 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"))
88111
89112
90113 @Callable(i)
91114 func init () = if ((i.caller != this))
92115 then throw("Only the DApp itself can call this function")
93116 else if (isDefined(getBoolean(this, keyActive)))
94117 then throw("DApp is already active")
95118 else {
96119 let initNumberOfVoting = 0
97120 let initAmountOfVoting = 0
98121 let initKeyActive = true
99-[StringEntry(keyVersion, version), BooleanEntry(keyActive, initKeyActive), IntegerEntry(keyNumberOfVoting, initNumberOfVoting), IntegerEntry(keyAmountOfVoting, initAmountOfVoting)]
122+[StringEntry(keyVersion, version), BooleanEntry(keyActive, initKeyActive), IntegerEntry(keyNumberOfVoting, initNumberOfVoting), IntegerEntry(keyAmountOfVoting, initAmountOfVoting), IntegerEntry(keyMaxAmountOfVoting, maxAmountOfVoting), IntegerEntry(keyMaxDayOfVoting, maxDayOfVoting)]
100123 }
101124
102125
103126
104127 @Callable(i)
105128 func initVotingForNewPool (assetA,assetB) = {
106- let $t029353010 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
107- let pmtAmount = $t029353010._1
108- let pmtAssetId = $t029353010._2
109- let $t030153121 = $Tuple2(getAssetInfoFromString(assetA), getAssetInfoFromString(assetB))
110- let poolAssetIdA = $t030153121._1
111- let poolAssetIdB = $t030153121._2
129+ let $t037653840 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
130+ let pmtAmount = $t037653840._1
131+ let pmtAssetId = $t037653840._2
132+ let $t038453944 = $Tuple2(getAssetInfoFromString(assetA), getAssetInfoFromString(assetB))
133+ let poolAssetIdA = $t038453944._1
134+ let poolAssetIdB = $t038453944._2
135+ let newNumberOfVoting = getActiveVotingPoolAmount(amountOfVoting)
112136 if (!(isActive))
113137 then throw("DApp is inactive at this moment")
114138 else if ((poolAssetIdA == poolAssetIdB))
115139 then throw("Assets must be different")
116- else if ((pmtAssetId != SWOP))
117- then throw("You must use a SWOP token")
118- else if ((pmtAmount != comissionForInitalizationOfVoting))
119- then throw("You need to attach 10 SWOP tokens")
120- else if ((numberOfVoting > maxAmountOfVoting))
121- then throw(("Too many votes. Maximum quantity -" + toString(maxAmountOfVoting)))
122- else if (!(if (if (if (if (if ((poolAssetIdA == USDN))
123- then true
124- else (poolAssetIdB == USDN))
125- then true
126- else (poolAssetIdA == unit))
127- then true
128- else (poolAssetIdB == unit))
129- then true
130- else (poolAssetIdA == SWOP))
131- then true
132- else (poolAssetIdB == SWOP)))
133- then throw("One of the assets must be USDN, WAVES, SWOP")
134- 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, (numberOfVoting + 1)), StringEntry((assetA + kName), assetA), StringEntry((assetB + kName), assetB), ScriptTransfer(walletAddress, pmtAmount, pmtAssetId)]
140+ else if ((size(i.payments) != 1))
141+ then throw("One attached assets expected")
142+ else if ((pmtAssetId != SWOP))
143+ then throw("You must use a SWOP token")
144+ else if ((pmtAmount != comissionForInitalizationOfVoting))
145+ then throw("You need to attach 10 SWOP tokens")
146+ else if ((newNumberOfVoting > maxAmountOfVoting))
147+ then throw(("Too many votes. Maximum quantity -" + toString(maxAmountOfVoting)))
148+ else if (!(if (if (if (if (if ((poolAssetIdA == USDN))
149+ then true
150+ else (poolAssetIdB == USDN))
151+ then true
152+ else (poolAssetIdA == unit))
153+ then true
154+ else (poolAssetIdB == unit))
155+ then true
156+ else (poolAssetIdA == SWOP))
157+ then true
158+ else (poolAssetIdB == SWOP)))
159+ then throw("One of the assets must be USDN, WAVES, SWOP")
160+ 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), assetA), StringEntry((assetB + kName), assetB), ScriptTransfer(walletAddress, pmtAmount, pmtAssetId)]
135161 }
136162
137163
138164
139165 @Callable(i)
140166 func voteForPool (voting,yesOrNo,voteAmt) = {
141167 let currentHeight = height
142168 let poolInitHeight = valueOrErrorMessage(getIntegerValue(this, (toString(voting) + keyHeightOfPool)), "Empty pool height")
143169 let userSWOPinGovernance = valueOrElse(getInteger(govAddr, (toString(i.caller) + kUserTotalSWOP)), 0)
144170 if (!(isCallerInGovernance(i.caller)))
145171 then throw("This address has 0 SWOP in Governance dApp")
146172 else if ((currentHeight > poolInitHeight))
147173 then [IntegerEntry(keyNumberOfVoting, (numberOfVoting - 1))]
148174 else if ((1 > voteAmt))
149175 then throw("The number of votes must be positive")
150176 else if ((voteAmt > userSWOPinGovernance))
151177 then throw((((toString(this) + " has ") + toString(userSWOPinGovernance)) + " SWOP in governance."))
152178 else if (yesOrNo)
153179 then {
154180 let newVote = (valueOrElse(getInteger(this, (toString(voting) + keyYes)), 0) + voteAmt)
155181 let newVoteUser = (valueOrElse(getInteger(this, (((toString(i.caller) + "_") + toString(voting)) + keyYes)), 0) + voteAmt)
156182 [IntegerEntry((toString(voting) + keyYes), newVote), IntegerEntry((((toString(i.caller) + "_") + toString(voting)) + keyYes), newVoteUser)]
157183 }
158184 else {
159185 let newVote = (valueOrElse(getInteger(this, (toString(voting) + keyNo)), 0) + voteAmt)
160186 let newVoteUser = (valueOrElse(getInteger(this, (((toString(i.caller) + "_") + toString(voting)) + keyNo)), 0) + voteAmt)
161187 [IntegerEntry((toString(voting) + keyNo), newVote), IntegerEntry((((toString(i.caller) + "_") + toString(voting)) + keyNo), newVoteUser)]
162188 }
163189 }
164190
165191
166192
167193 @Callable(i)
168194 func cancellationVoting (voting,cause) = if (!(isActive))
169195 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, keyCause), "the cause wasn't specified")))
170196 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop], i.callerPublicKey)))
171197 then throw("Only admin can call this function")
172198 else [IntegerEntry(keyNumberOfVoting, (numberOfVoting - 1)), BooleanEntry((toString(voting) + keyStatusOfVoting), false), StringEntry((toString(voting) + keyCancelCause), cause)]
173199
174200
175201
176202 @Callable(i)
177203 func shutdown () = if (!(isActive))
178204 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, keyCause), "the cause wasn't specified")))
179205 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop], i.callerPublicKey)))
180206 then throw("Only admin can call this function")
181207 else suspend("Paused by admin")
182208
183209
184210
185211 @Callable(i)
186212 func activate () = if (isActive)
187213 then throw("DApp is already active")
188214 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop], i.callerPublicKey)))
189215 then throw("Only admin can call this function")
190216 else [BooleanEntry(keyActive, true), DeleteEntry(keyCause)]
191217
192218
193219 @Verifier(tx)
194220 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
195221

github/deemru/w8io/026f985 
48.44 ms