tx · AWSrfeLWHDHNoSWb91dLzUxmHyJfsBJFfbcTkUeHy1Xa

3MrwiwvG6BeUNCyXBfSAHgaXHASsxbjYMVF:  -0.10000000 Waves

2023.01.24 11:59 [2418832] smart account 3MrwiwvG6BeUNCyXBfSAHgaXHASsxbjYMVF > SELF 0.00000000 Waves

{ "type": 13, "id": "AWSrfeLWHDHNoSWb91dLzUxmHyJfsBJFfbcTkUeHy1Xa", "fee": 10000000, "feeAssetId": null, "timestamp": 1674550805733, "version": 2, "chainId": 84, "sender": "3MrwiwvG6BeUNCyXBfSAHgaXHASsxbjYMVF", "senderPublicKey": "7m7j9TNbV4vKeeJqy37XpMNH784X3GGN6acbgLwbBiDD", "proofs": [ "4CZAahWXYfJBc5CdGMCc3B3g7woAsW1CQMKnGqS7kAwkjtNGDopDJkYPs7BN3iyK3jHbaCceZGdubmUL4z3WGSSm", "EHmtg2YVRGAPjjWU4KZVpfZeYT5kpUTu6dRbQyBub9jtPwCirg5jLEpLnhQbjBqPmtoaSjQcBCz61pBPmPF4Yew" ], "script": "base64:BgIXCAISBwoFAQgIGBgSBAoCAQESBAoCAREfAA1rQWRtaW5QdWJLZXkxAgthZG1pbl9wdWJfMQANa0FkbWluUHViS2V5MgILYWRtaW5fcHViXzIADWtBZG1pblB1YktleTMCC2FkbWluX3B1Yl8zABJrQWRtaW5JbnZva2VQdWJLZXkCEGFkbWluX2ludm9rZV9wdWIAEGtNb25leUJveEFkZHJlc3MCEW1vbmV5X2JveF9hZGRyZXNzAAtrR292QWRkcmVzcwISZ292ZXJuYW5jZV9hZGRyZXNzAAdrQWN0aXZlAgZhY3RpdmUAC2tBY3RpdmVHbG9iAhRhY3RpdmVfYWxsX2NvbnRyYWN0cwANa0xhc3RTdXJ2ZXlJZAIObGFzdF9zdXJ2ZXlfaWQAF2tTdXJ2ZXlIZWlnaHRDb21wbGV0aW9uAhlfc3VydmV5X2hlaWdodF9jb21wbGV0aW9uAAxrU3VydmV5VGl0bGUCDV9zdXJ2ZXlfdGl0bGUAEmtTdXJ2ZXlEZXNjcmlwdGlvbgITX3N1cnZleV9kZXNjcmlwdGlvbgARa1N1cnZleU9wdGlvbk5hbWUCE19zdXJ2ZXlfb3B0aW9uX25hbWUAEWtTdXJ2ZXlPcHRpb25UeXBlAhNfc3VydmV5X29wdGlvbl90eXBlAAlrVXNlclZvdGUCEV9zdXJ2ZXlfdXNlcl92b3RlAA9rVG90YWxTd29wVm90ZWQCH19zdXJ2ZXlfb3B0aW9uX3RvdGFsX3N3b3Bfdm90ZWQAD2tVc2VyR1N3b3BJbkdvdgINX0dTd29wX2Ftb3VudAAOa1VzZXJTd29wSW5Hb3YCDF9TV09QX2Ftb3VudAAGb3JhY2xlCQEHQWRkcmVzcwEBGgFUSBOXDMDTM8wlMoC2KfenZGiAq+PMe0uZARNnZXRCYXNlNThGcm9tT3JhY2xlAQNrZXkEByRtYXRjaDAJAJ0IAgUGb3JhY2xlBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZzdHJpbmcFByRtYXRjaDAJANkEAQUGc3RyaW5nBAdub3RoaW5nBQckbWF0Y2gwCQACAQkArAICBQNrZXkCCGlzIGVtcHR5AAxhZG1pblB1YktleTEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MQAMYWRtaW5QdWJLZXkyCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTIADGFkbWluUHViS2V5MwkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkzABFhZG1pblB1YktleUludm9rZQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBRJrQWRtaW5JbnZva2VQdWJLZXkAD21vbmV5Qm94QWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFEGtNb25leUJveEFkZHJlc3MACmdvdkFkZHJlc3MJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQtrR292QWRkcmVzcwAGYWN0aXZlCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFB2tBY3RpdmUGAAphY3RpdmVHbG9iCQELdmFsdWVPckVsc2UCCQCbCAIFBm9yYWNsZQULa0FjdGl2ZUdsb2IGAQhpc0FjdGl2ZQADAwUGYWN0aXZlBQphY3RpdmVHbG9iBwUEdW5pdAkAAgECH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQBC2lzQWRtaW5DYWxsAQFpAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUMYWRtaW5QdWJLZXkxCQDMCAIFDGFkbWluUHViS2V5MgkAzAgCBQxhZG1pblB1YktleTMFA25pbAgFAWkPY2FsbGVyUHVibGljS2V5BQR1bml0CQACAQIhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAQ5pc01vbmV5Qm94Q2FsbAEBaQMJAAACBQ9tb25leUJveEFkZHJlc3MIBQFpBmNhbGxlcgUEdW5pdAkAAgECJU9ubHkgTW9uZXkgYm94IGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24DAWkBCmluaXRTdXJ2ZXkFEGhlaWdodENvbXBsZXRpb24Lc3VydmV5VGl0bGURc3VydmV5RGVzY3JpcHRpb24Hb3B0aW9ucwtvcHRpb25zVHlwZQkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQUBaQMJAGcCBQZoZWlnaHQFEGhlaWdodENvbXBsZXRpb24JAAIBAj9IZWlnaHQgb2Ygc3VydmV5IGNvbXBsZXRpb24gbXVzdCBiZSBncmVhdGVyIHRoYW4gY3Vycm5ldCBoZWlnaHQDCQBmAgkAkAMBBQdvcHRpb25zAAoJAAIBAiBNYXggMTAgb3B0aW9ucyBtdXN0IGJlIHNwZWNpZmllZAMJAQIhPQIJAJADAQUHb3B0aW9ucwkAkAMBBQtvcHRpb25zVHlwZQkAAgECLFNpemUgb2Ygb3B0aW9uc1R5cGVzIG11c3QgYmUgc2FtZSBhcyBvcHRpb25zBAtuZXdTdXJ2ZXlJZAkAZAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUNa0xhc3RTdXJ2ZXlJZAAAAAEKAQ5wcmVwYXJlT3B0aW9ucwIDYWNjBG5hbWUECyR0MDMxNzMzMjAxBQNhY2MEBXR5cGVzCAULJHQwMzE3MzMyMDECXzEEAWsIBQskdDAzMTczMzIwMQJfMgQGcmVzdWx0CAULJHQwMzE3MzMyMDECXzMEA3JlcwkAzQgCCQDNCAIFBnJlc3VsdAkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkApAMBBQtuZXdTdXJ2ZXlJZAIBXwkApAMBBQFrBRFrU3VydmV5T3B0aW9uTmFtZQUEbmFtZQkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkApAMBBQtuZXdTdXJ2ZXlJZAIBXwkApAMBBQFrBRFrU3VydmV5T3B0aW9uVHlwZQkAkQMCBQV0eXBlcwUBawkAlQoDBQV0eXBlcwkAZAIFAWsAAQUDcmVzBA5vcHRpb25zRW50cmllcwoAAiRsBQdvcHRpb25zCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlQoDBQtvcHRpb25zVHlwZQAABQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDnByZXBhcmVPcHRpb25zAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtMYXN0U3VydmV5SWQFC25ld1N1cnZleUlkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKQDAQULbmV3U3VydmV5SWQFF2tTdXJ2ZXlIZWlnaHRDb21wbGV0aW9uBRBoZWlnaHRDb21wbGV0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkApAMBBQtuZXdTdXJ2ZXlJZAUMa1N1cnZleVRpdGxlBQtzdXJ2ZXlUaXRsZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKQDAQULbmV3U3VydmV5SWQFEmtTdXJ2ZXlEZXNjcmlwdGlvbgURc3VydmV5RGVzY3JpcHRpb24FA25pbAgFDm9wdGlvbnNFbnRyaWVzAl8zAWkBBHZvdGUCCHN1cnZleUlkBm9wdGlvbgkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAMJAQEhAQkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwkArAICCQCkAwEFCHN1cnZleUlkBQxrU3VydmV5VGl0bGUJAAIBCQCsAgICG1RoZXJlIGlzIG5vIHN1cnZleSB3aXRoIGlkIAkApAMBBQhzdXJ2ZXlJZAMJAQEhAQkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwkArAICCQCsAgIJAKwCAgkApAMBBQhzdXJ2ZXlJZAIBXwkApAMBBQZvcHRpb24FEWtTdXJ2ZXlPcHRpb25OYW1lCQACAQkArAICCQCsAgIJAKwCAgITVGhlcmUgaXMgbm8gb3B0aW9uIAkApAMBBQZvcHRpb24CCyBpbiBzdXJ2ZXkgCQCkAwEFCHN1cnZleUlkAwkBCWlzRGVmaW5lZAEJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgkApAMBBQhzdXJ2ZXlJZAIBXwkApQgBCAUBaQZjYWxsZXIFCWtVc2VyVm90ZQkAAgECFFlvdSBjYW4ndCB2b3RlIHR3aWNlAwkAZgIFBmhlaWdodAkBBXZhbHVlAQkAmggCBQR0aGlzCQCsAgIJAKQDAQUIc3VydmV5SWQFF2tTdXJ2ZXlIZWlnaHRDb21wbGV0aW9uCQACAQISU3VydmV5IGFscmVhZHkgZW5kAwkAZwIAAAkBC3ZhbHVlT3JFbHNlAgkAmggCBQpnb3ZBZGRyZXNzCQCsAgIJAKUIAQgFAWkGY2FsbGVyBQ9rVXNlckdTd29wSW5Hb3YJAQt2YWx1ZU9yRWxzZQIJAJoIAgUKZ292QWRkcmVzcwkArAICCQClCAEIBQFpBmNhbGxlcgUOa1VzZXJTd29wSW5Hb3YAAAkAAgECIlN0YWtlIHN3b3AgaW4gZ292ZXJuYW5jZSB0byBzdXJ2ZXkJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKQDAQUIc3VydmV5SWQCAV8JAKUIAQgFAWkGY2FsbGVyBQlrVXNlclZvdGUFBm9wdGlvbgUDbmlsAWkBC3dyaXRlVG90YWxzAghzdXJ2ZXlJZAZ0b3RhbHMJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAJAQt2YWx1ZU9yRWxzZQIJAQ5pc01vbmV5Qm94Q2FsbAEFAWkDCQEBIQEJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMJAKwCAgkApAMBBQhzdXJ2ZXlJZAUMa1N1cnZleVRpdGxlCQACAQkArAICAhtUaGVyZSBpcyBubyBzdXJ2ZXkgd2l0aCBpZCAJAKQDAQUIc3VydmV5SWQDCQBmAgkBBXZhbHVlAQkAmggCBQR0aGlzCQCsAgIJAKQDAQUIc3VydmV5SWQFF2tTdXJ2ZXlIZWlnaHRDb21wbGV0aW9uBQZoZWlnaHQJAAIBAhdTdXJ2ZXkgaXMgbm90IGVuZGVkIHlldAoBDXByZXBhcmVUb3RhbHMCA2FjYwV0b3RhbAQLJHQwNTk0NTU5NzEFA2FjYwQGb3B0aW9uCAULJHQwNTk0NTU5NzECXzEEBnJlc3VsdAgFCyR0MDU5NDU1OTcxAl8yBANyZXMJAM0IAgUGcmVzdWx0CQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgkApAMBBQhzdXJ2ZXlJZAIBXwkApAMBBQZvcHRpb24FD2tUb3RhbFN3b3BWb3RlZAUFdG90YWwJAJQKAgkAZAIFBm9wdGlvbgABBQNyZXMEDm9wdGlvbnNFbnRyaWVzCgACJGwFBnRvdGFscwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgAABQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDXByZXBhcmVUb3RhbHMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoIBQ5vcHRpb25zRW50cmllcwJfMgECdHgBBnZlcmlmeQAEEmFkbWluUHViS2V5MVNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MQABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFDGFkbWluUHViS2V5MgABAAAEEmFkbWluUHViS2V5M1NpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFDGFkbWluUHViS2V5MwABAAAJAGcCCQBkAgkAZAIFEmFkbWluUHViS2V5MVNpZ25lZAUSYWRtaW5QdWJLZXkyU2lnbmVkBRJhZG1pblB1YktleTNTaWduZWQAAgFAsTc=", "height": 2418832, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4dFyybK9k9XcDDixshUgsigT2Lj1fS4GxiKtBhcCqa69 Next: HE1mkWpoDYGq1U5vzCS4ra56MR44Fhhu4Ra6MkgpXs7D Diff:
OldNewDifferences
1414 let kGovAddress = "governance_address"
1515
1616 let kActive = "active"
17+
18+let kActiveGlob = "active_all_contracts"
1719
1820 let kLastSurveyId = "last_survey_id"
1921
3234 let kTotalSwopVoted = "_survey_option_total_swop_voted"
3335
3436 let kUserGSwopInGov = "_GSwop_amount"
37+
38+let kUserSwopInGov = "_SWOP_amount"
3539
3640 let oracle = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
3741
5761
5862 let active = valueOrElse(getBoolean(this, kActive), true)
5963
60-func isActive () = if (active)
64+let activeGlob = valueOrElse(getBoolean(oracle, kActiveGlob), true)
65+
66+func isActive () = if (if (active)
67+ then activeGlob
68+ else false)
6169 then unit
6270 else throw("DApp is inactive at this moment")
6371
8290 else {
8391 let newSurveyId = (valueOrElse(getInteger(this, kLastSurveyId), 0) + 1)
8492 func prepareOptions (acc,name) = {
85- let $t030283056 = acc
86- let types = $t030283056._1
87- let k = $t030283056._2
88- let result = $t030283056._3
93+ let $t031733201 = acc
94+ let types = $t031733201._1
95+ let k = $t031733201._2
96+ let result = $t031733201._3
8997 let res = ((result :+ StringEntry((((toString(newSurveyId) + "_") + toString(k)) + kSurveyOptionName), name)) :+ StringEntry((((toString(newSurveyId) + "_") + toString(k)) + kSurveyOptionType), types[k]))
9098 $Tuple3(types, (k + 1), res)
9199 }
118126 then throw("You can't vote twice")
119127 else if ((height > value(getInteger(this, (toString(surveyId) + kSurveyHeightCompletion)))))
120128 then throw("Survey already end")
121- else if ((0 >= valueOrElse(getInteger(govAddress, (toString(i.caller) + kUserGSwopInGov)), 0)))
129+ else if ((0 >= valueOrElse(getInteger(govAddress, (toString(i.caller) + kUserGSwopInGov)), valueOrElse(getInteger(govAddress, (toString(i.caller) + kUserSwopInGov)), 0))))
122130 then throw("Stake swop in governance to survey")
123131 else [IntegerEntry((((toString(surveyId) + "_") + toString(i.caller)) + kUserVote), option)])
124132
131139 then throw("Survey is not ended yet")
132140 else {
133141 func prepareTotals (acc,total) = {
134- let $t057185744 = acc
135- let option = $t057185744._1
136- let result = $t057185744._2
142+ let $t059455971 = acc
143+ let option = $t059455971._1
144+ let result = $t059455971._2
137145 let res = (result :+ IntegerEntry((((toString(surveyId) + "_") + toString(option)) + kTotalSwopVoted), total))
138146 $Tuple2((option + 1), res)
139147 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let kAdminPubKey1 = "admin_pub_1"
55
66 let kAdminPubKey2 = "admin_pub_2"
77
88 let kAdminPubKey3 = "admin_pub_3"
99
1010 let kAdminInvokePubKey = "admin_invoke_pub"
1111
1212 let kMoneyBoxAddress = "money_box_address"
1313
1414 let kGovAddress = "governance_address"
1515
1616 let kActive = "active"
17+
18+let kActiveGlob = "active_all_contracts"
1719
1820 let kLastSurveyId = "last_survey_id"
1921
2022 let kSurveyHeightCompletion = "_survey_height_completion"
2123
2224 let kSurveyTitle = "_survey_title"
2325
2426 let kSurveyDescription = "_survey_description"
2527
2628 let kSurveyOptionName = "_survey_option_name"
2729
2830 let kSurveyOptionType = "_survey_option_type"
2931
3032 let kUserVote = "_survey_user_vote"
3133
3234 let kTotalSwopVoted = "_survey_option_total_swop_voted"
3335
3436 let kUserGSwopInGov = "_GSwop_amount"
37+
38+let kUserSwopInGov = "_SWOP_amount"
3539
3640 let oracle = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
3741
3842 func getBase58FromOracle (key) = match getString(oracle, key) {
3943 case string: String =>
4044 fromBase58String(string)
4145 case nothing =>
4246 throw((key + "is empty"))
4347 }
4448
4549
4650 let adminPubKey1 = getBase58FromOracle(kAdminPubKey1)
4751
4852 let adminPubKey2 = getBase58FromOracle(kAdminPubKey2)
4953
5054 let adminPubKey3 = getBase58FromOracle(kAdminPubKey3)
5155
5256 let adminPubKeyInvoke = getBase58FromOracle(kAdminInvokePubKey)
5357
5458 let moneyBoxAddress = Address(getBase58FromOracle(kMoneyBoxAddress))
5559
5660 let govAddress = Address(getBase58FromOracle(kGovAddress))
5761
5862 let active = valueOrElse(getBoolean(this, kActive), true)
5963
60-func isActive () = if (active)
64+let activeGlob = valueOrElse(getBoolean(oracle, kActiveGlob), true)
65+
66+func isActive () = if (if (active)
67+ then activeGlob
68+ else false)
6169 then unit
6270 else throw("DApp is inactive at this moment")
6371
6472
6573 func isAdminCall (i) = if (containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey))
6674 then unit
6775 else throw("Only admin can call this function")
6876
6977
7078 func isMoneyBoxCall (i) = if ((moneyBoxAddress == i.caller))
7179 then unit
7280 else throw("Only Money box can call this function")
7381
7482
7583 @Callable(i)
7684 func initSurvey (heightCompletion,surveyTitle,surveyDescription,options,optionsType) = valueOrElse(isActive(), valueOrElse(isAdminCall(i), if ((height >= heightCompletion))
7785 then throw("Height of survey completion must be greater than currnet height")
7886 else if ((size(options) > 10))
7987 then throw("Max 10 options must be specified")
8088 else if ((size(options) != size(optionsType)))
8189 then throw("Size of optionsTypes must be same as options")
8290 else {
8391 let newSurveyId = (valueOrElse(getInteger(this, kLastSurveyId), 0) + 1)
8492 func prepareOptions (acc,name) = {
85- let $t030283056 = acc
86- let types = $t030283056._1
87- let k = $t030283056._2
88- let result = $t030283056._3
93+ let $t031733201 = acc
94+ let types = $t031733201._1
95+ let k = $t031733201._2
96+ let result = $t031733201._3
8997 let res = ((result :+ StringEntry((((toString(newSurveyId) + "_") + toString(k)) + kSurveyOptionName), name)) :+ StringEntry((((toString(newSurveyId) + "_") + toString(k)) + kSurveyOptionType), types[k]))
9098 $Tuple3(types, (k + 1), res)
9199 }
92100
93101 let optionsEntries = {
94102 let $l = options
95103 let $s = size($l)
96104 let $acc0 = $Tuple3(optionsType, 0, nil)
97105 func $f0_1 ($a,$i) = if (($i >= $s))
98106 then $a
99107 else prepareOptions($a, $l[$i])
100108
101109 func $f0_2 ($a,$i) = if (($i >= $s))
102110 then $a
103111 else throw("List size exceeds 10")
104112
105113 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
106114 }
107115 ([IntegerEntry(kLastSurveyId, newSurveyId), IntegerEntry((toString(newSurveyId) + kSurveyHeightCompletion), heightCompletion), StringEntry((toString(newSurveyId) + kSurveyTitle), surveyTitle), StringEntry((toString(newSurveyId) + kSurveyDescription), surveyDescription)] ++ optionsEntries._3)
108116 }))
109117
110118
111119
112120 @Callable(i)
113121 func vote (surveyId,option) = valueOrElse(isActive(), if (!(isDefined(getString(this, (toString(surveyId) + kSurveyTitle)))))
114122 then throw(("There is no survey with id " + toString(surveyId)))
115123 else if (!(isDefined(getString(this, (((toString(surveyId) + "_") + toString(option)) + kSurveyOptionName)))))
116124 then throw(((("There is no option " + toString(option)) + " in survey ") + toString(surveyId)))
117125 else if (isDefined(getInteger(this, (((toString(surveyId) + "_") + toString(i.caller)) + kUserVote))))
118126 then throw("You can't vote twice")
119127 else if ((height > value(getInteger(this, (toString(surveyId) + kSurveyHeightCompletion)))))
120128 then throw("Survey already end")
121- else if ((0 >= valueOrElse(getInteger(govAddress, (toString(i.caller) + kUserGSwopInGov)), 0)))
129+ else if ((0 >= valueOrElse(getInteger(govAddress, (toString(i.caller) + kUserGSwopInGov)), valueOrElse(getInteger(govAddress, (toString(i.caller) + kUserSwopInGov)), 0))))
122130 then throw("Stake swop in governance to survey")
123131 else [IntegerEntry((((toString(surveyId) + "_") + toString(i.caller)) + kUserVote), option)])
124132
125133
126134
127135 @Callable(i)
128136 func writeTotals (surveyId,totals) = valueOrElse(isActive(), valueOrElse(isMoneyBoxCall(i), if (!(isDefined(getString(this, (toString(surveyId) + kSurveyTitle)))))
129137 then throw(("There is no survey with id " + toString(surveyId)))
130138 else if ((value(getInteger(this, (toString(surveyId) + kSurveyHeightCompletion))) > height))
131139 then throw("Survey is not ended yet")
132140 else {
133141 func prepareTotals (acc,total) = {
134- let $t057185744 = acc
135- let option = $t057185744._1
136- let result = $t057185744._2
142+ let $t059455971 = acc
143+ let option = $t059455971._1
144+ let result = $t059455971._2
137145 let res = (result :+ IntegerEntry((((toString(surveyId) + "_") + toString(option)) + kTotalSwopVoted), total))
138146 $Tuple2((option + 1), res)
139147 }
140148
141149 let optionsEntries = {
142150 let $l = totals
143151 let $s = size($l)
144152 let $acc0 = $Tuple2(0, nil)
145153 func $f0_1 ($a,$i) = if (($i >= $s))
146154 then $a
147155 else prepareTotals($a, $l[$i])
148156
149157 func $f0_2 ($a,$i) = if (($i >= $s))
150158 then $a
151159 else throw("List size exceeds 10")
152160
153161 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
154162 }
155163 optionsEntries._2
156164 }))
157165
158166
159167 @Verifier(tx)
160168 func verify () = {
161169 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
162170 then 1
163171 else 0
164172 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
165173 then 1
166174 else 0
167175 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
168176 then 1
169177 else 0
170178 (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
171179 }
172180

github/deemru/w8io/169f3d6 
53.91 ms