tx · 9eX7hAtamDFKhkisk1y6xaZTDBLvMYG8gM1B2xCMcCaG

3P8FPQrnpKuzaZLNmTAyrEt9kPuVK2kR4Qw:  -0.00900000 Waves

2022.11.25 11:28 [3397832] smart account 3P8FPQrnpKuzaZLNmTAyrEt9kPuVK2kR4Qw > SELF 0.00000000 Waves

{ "type": 13, "id": "9eX7hAtamDFKhkisk1y6xaZTDBLvMYG8gM1B2xCMcCaG", "fee": 900000, "feeAssetId": null, "timestamp": 1669364886411, "version": 2, "chainId": 87, "sender": "3P8FPQrnpKuzaZLNmTAyrEt9kPuVK2kR4Qw", "senderPublicKey": "77yMiphiJJ1zXxkK7MeENf3kj621cGdPV5t3p544sbAa", "proofs": [ "", "122h1uh2mZjFdNQfBYhZSSTRpAEMt9JCaigNmAZW6AXv4RhdqSKjKVHHQmmbnUiTb7ubquGWbtRv212s5cuWDFjQ", "3AXSvjkqLvG1Zj6ic9QTmwkPsSkpvpQ9MngXJi3k2ELi46Ui7PYPUSQa4DtCj5oMf3xepVsS7HLpoAFW8cAQ1XRQ" ], "script": "base64:BgIXCAISBwoFAQgIGBgSBAoCAQESBAoCAREeAA1rQWRtaW5QdWJLZXkxAgthZG1pbl9wdWJfMQANa0FkbWluUHViS2V5MgILYWRtaW5fcHViXzIADWtBZG1pblB1YktleTMCC2FkbWluX3B1Yl8zABJrQWRtaW5JbnZva2VQdWJLZXkCEGFkbWluX2ludm9rZV9wdWIAEGtNb25leUJveEFkZHJlc3MCEW1vbmV5X2JveF9hZGRyZXNzAAtrR292QWRkcmVzcwISZ292ZXJuYW5jZV9hZGRyZXNzAAdrQWN0aXZlAgZhY3RpdmUAC2tBY3RpdmVHbG9iAhRhY3RpdmVfYWxsX2NvbnRyYWN0cwANa0xhc3RTdXJ2ZXlJZAIObGFzdF9zdXJ2ZXlfaWQAF2tTdXJ2ZXlIZWlnaHRDb21wbGV0aW9uAhlfc3VydmV5X2hlaWdodF9jb21wbGV0aW9uAAxrU3VydmV5VGl0bGUCDV9zdXJ2ZXlfdGl0bGUAEmtTdXJ2ZXlEZXNjcmlwdGlvbgITX3N1cnZleV9kZXNjcmlwdGlvbgARa1N1cnZleU9wdGlvbk5hbWUCE19zdXJ2ZXlfb3B0aW9uX25hbWUAEWtTdXJ2ZXlPcHRpb25UeXBlAhNfc3VydmV5X29wdGlvbl90eXBlAAlrVXNlclZvdGUCEV9zdXJ2ZXlfdXNlcl92b3RlAA9rVG90YWxTd29wVm90ZWQCH19zdXJ2ZXlfb3B0aW9uX3RvdGFsX3N3b3Bfdm90ZWQAD2tVc2VyR1N3b3BJbkdvdgINX0dTd29wX2Ftb3VudAAGb3JhY2xlCQEHQWRkcmVzcwEBGgFXiv8IaJo1ukDNYXTyEjfepjfw+jjO6B44ARNnZXRCYXNlNThGcm9tT3JhY2xlAQNrZXkEByRtYXRjaDAJAJ0IAgUGb3JhY2xlBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZzdHJpbmcFByRtYXRjaDAJANkEAQUGc3RyaW5nBAdub3RoaW5nBQckbWF0Y2gwCQACAQkArAICBQNrZXkCCGlzIGVtcHR5AAxhZG1pblB1YktleTEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MQAMYWRtaW5QdWJLZXkyCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTIADGFkbWluUHViS2V5MwkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkzABFhZG1pblB1YktleUludm9rZQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBRJrQWRtaW5JbnZva2VQdWJLZXkAD21vbmV5Qm94QWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFEGtNb25leUJveEFkZHJlc3MACmdvdkFkZHJlc3MJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQtrR292QWRkcmVzcwAGYWN0aXZlCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFB2tBY3RpdmUGAAphY3RpdmVHbG9iCQELdmFsdWVPckVsc2UCCQCbCAIFBm9yYWNsZQULa0FjdGl2ZUdsb2IGAQhpc0FjdGl2ZQADAwUGYWN0aXZlBQphY3RpdmVHbG9iBwUEdW5pdAkAAgECH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQBC2lzQWRtaW5DYWxsAQFpAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUMYWRtaW5QdWJLZXkxCQDMCAIFDGFkbWluUHViS2V5MgkAzAgCBQxhZG1pblB1YktleTMFA25pbAgFAWkPY2FsbGVyUHVibGljS2V5BQR1bml0CQACAQIhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAQ5pc01vbmV5Qm94Q2FsbAEBaQMJAAACBQ9tb25leUJveEFkZHJlc3MIBQFpBmNhbGxlcgUEdW5pdAkAAgECJU9ubHkgTW9uZXkgYm94IGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24DAWkBCmluaXRTdXJ2ZXkFEGhlaWdodENvbXBsZXRpb24Lc3VydmV5VGl0bGURc3VydmV5RGVzY3JpcHRpb24Hb3B0aW9ucwtvcHRpb25zVHlwZQkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQUBaQMJAGcCBQZoZWlnaHQFEGhlaWdodENvbXBsZXRpb24JAAIBAj9IZWlnaHQgb2Ygc3VydmV5IGNvbXBsZXRpb24gbXVzdCBiZSBncmVhdGVyIHRoYW4gY3Vycm5ldCBoZWlnaHQDCQBmAgkAkAMBBQdvcHRpb25zAAoJAAIBAiBNYXggMTAgb3B0aW9ucyBtdXN0IGJlIHNwZWNpZmllZAMJAQIhPQIJAJADAQUHb3B0aW9ucwkAkAMBBQtvcHRpb25zVHlwZQkAAgECLFNpemUgb2Ygb3B0aW9uc1R5cGVzIG11c3QgYmUgc2FtZSBhcyBvcHRpb25zBAtuZXdTdXJ2ZXlJZAkAZAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUNa0xhc3RTdXJ2ZXlJZAAAAAEKAQ5wcmVwYXJlT3B0aW9ucwIDYWNjBG5hbWUECyR0MDMxMzczMTY1BQNhY2MEBXR5cGVzCAULJHQwMzEzNzMxNjUCXzEEAWsIBQskdDAzMTM3MzE2NQJfMgQGcmVzdWx0CAULJHQwMzEzNzMxNjUCXzMEA3JlcwkAzQgCCQDNCAIFBnJlc3VsdAkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkApAMBBQtuZXdTdXJ2ZXlJZAIBXwkApAMBBQFrBRFrU3VydmV5T3B0aW9uTmFtZQUEbmFtZQkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkApAMBBQtuZXdTdXJ2ZXlJZAIBXwkApAMBBQFrBRFrU3VydmV5T3B0aW9uVHlwZQkAkQMCBQV0eXBlcwUBawkAlQoDBQV0eXBlcwkAZAIFAWsAAQUDcmVzBA5vcHRpb25zRW50cmllcwoAAiRsBQdvcHRpb25zCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlQoDBQtvcHRpb25zVHlwZQAABQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDnByZXBhcmVPcHRpb25zAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtMYXN0U3VydmV5SWQFC25ld1N1cnZleUlkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKQDAQULbmV3U3VydmV5SWQFF2tTdXJ2ZXlIZWlnaHRDb21wbGV0aW9uBRBoZWlnaHRDb21wbGV0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkApAMBBQtuZXdTdXJ2ZXlJZAUMa1N1cnZleVRpdGxlBQtzdXJ2ZXlUaXRsZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKQDAQULbmV3U3VydmV5SWQFEmtTdXJ2ZXlEZXNjcmlwdGlvbgURc3VydmV5RGVzY3JpcHRpb24FA25pbAgFDm9wdGlvbnNFbnRyaWVzAl8zAWkBBHZvdGUCCHN1cnZleUlkBm9wdGlvbgkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAMJAQEhAQkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwkArAICCQCkAwEFCHN1cnZleUlkBQxrU3VydmV5VGl0bGUJAAIBCQCsAgICG1RoZXJlIGlzIG5vIHN1cnZleSB3aXRoIGlkIAkApAMBBQhzdXJ2ZXlJZAMJAQEhAQkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwkArAICCQCsAgIJAKwCAgkApAMBBQhzdXJ2ZXlJZAIBXwkApAMBBQZvcHRpb24FEWtTdXJ2ZXlPcHRpb25OYW1lCQACAQkArAICCQCsAgIJAKwCAgITVGhlcmUgaXMgbm8gb3B0aW9uIAkApAMBBQZvcHRpb24CCyBpbiBzdXJ2ZXkgCQCkAwEFCHN1cnZleUlkAwkBCWlzRGVmaW5lZAEJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgkApAMBBQhzdXJ2ZXlJZAIBXwkApQgBCAUBaQZjYWxsZXIFCWtVc2VyVm90ZQkAAgECFFlvdSBjYW4ndCB2b3RlIHR3aWNlAwkAZgIFBmhlaWdodAkBBXZhbHVlAQkAmggCBQR0aGlzCQCsAgIJAKQDAQUIc3VydmV5SWQFF2tTdXJ2ZXlIZWlnaHRDb21wbGV0aW9uCQACAQISU3VydmV5IGFscmVhZHkgZW5kAwkAZwIAAAkBC3ZhbHVlT3JFbHNlAgkAmggCBQpnb3ZBZGRyZXNzCQCsAgIJAKUIAQgFAWkGY2FsbGVyBQ9rVXNlckdTd29wSW5Hb3YAAAkAAgECIlN0YWtlIHN3b3AgaW4gZ292ZXJuYW5jZSB0byBzdXJ2ZXkJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKQDAQUIc3VydmV5SWQCAV8JAKUIAQgFAWkGY2FsbGVyBQlrVXNlclZvdGUFBm9wdGlvbgUDbmlsAWkBC3dyaXRlVG90YWxzAghzdXJ2ZXlJZAZ0b3RhbHMJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAJAQt2YWx1ZU9yRWxzZQIJAQ5pc01vbmV5Qm94Q2FsbAEFAWkDCQEBIQEJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMJAKwCAgkApAMBBQhzdXJ2ZXlJZAUMa1N1cnZleVRpdGxlCQACAQkArAICAhtUaGVyZSBpcyBubyBzdXJ2ZXkgd2l0aCBpZCAJAKQDAQUIc3VydmV5SWQDCQBmAgkBBXZhbHVlAQkAmggCBQR0aGlzCQCsAgIJAKQDAQUIc3VydmV5SWQFF2tTdXJ2ZXlIZWlnaHRDb21wbGV0aW9uBQZoZWlnaHQJAAIBAhdTdXJ2ZXkgaXMgbm90IGVuZGVkIHlldAoBDXByZXBhcmVUb3RhbHMCA2FjYwV0b3RhbAQLJHQwNTgyNzU4NTMFA2FjYwQGb3B0aW9uCAULJHQwNTgyNzU4NTMCXzEEBnJlc3VsdAgFCyR0MDU4Mjc1ODUzAl8yBANyZXMJAM0IAgUGcmVzdWx0CQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgkApAMBBQhzdXJ2ZXlJZAIBXwkApAMBBQZvcHRpb24FD2tUb3RhbFN3b3BWb3RlZAUFdG90YWwJAJQKAgkAZAIFBm9wdGlvbgABBQNyZXMEDm9wdGlvbnNFbnRyaWVzCgACJGwFBnRvdGFscwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgAABQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDXByZXBhcmVUb3RhbHMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoIBQ5vcHRpb25zRW50cmllcwJfMgECdHgBBnZlcmlmeQAEEmFkbWluUHViS2V5MVNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MQABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFDGFkbWluUHViS2V5MgABAAAEEmFkbWluUHViS2V5M1NpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFDGFkbWluUHViS2V5MwABAAAJAGcCCQBkAgkAZAIFEmFkbWluUHViS2V5MVNpZ25lZAUSYWRtaW5QdWJLZXkyU2lnbmVkBRJhZG1pblB1YktleTNTaWduZWQAAlZAcoc=", "height": 3397832, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BmM48d3AJQDYGuzpyRw4d3zzauf9JkXeAVWghLoVzUac Next: Cos6WrnPZUWW9ggZaRjAgnirK2oiDHQkvhVpBAW7SJDP Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let kAdminPubKey1 = "admin_pub_1"
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
3133
3234 let kTotalSwopVoted = "_survey_option_total_swop_voted"
3335
34-let kUserSwopInGov = "_SWOP_amount"
36+let kUserGSwopInGov = "_GSwop_amount"
3537
3638 let oracle = Address(base58'3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom')
3739
5759
5860 let active = valueOrElse(getBoolean(this, kActive), true)
5961
60-func isActive () = if (active)
62+let activeGlob = valueOrElse(getBoolean(oracle, kActiveGlob), true)
63+
64+func isActive () = if (if (active)
65+ then activeGlob
66+ else false)
6167 then unit
6268 else throw("DApp is inactive at this moment")
6369
8288 else {
8389 let newSurveyId = (valueOrElse(getInteger(this, kLastSurveyId), 0) + 1)
8490 func prepareOptions (acc,name) = {
85- let $t030423070 = acc
86- let types = $t030423070._1
87- let k = $t030423070._2
88- let result = $t030423070._3
91+ let $t031373165 = acc
92+ let types = $t031373165._1
93+ let k = $t031373165._2
94+ let result = $t031373165._3
8995 let res = ((result :+ StringEntry((((toString(newSurveyId) + "_") + toString(k)) + kSurveyOptionName), name)) :+ StringEntry((((toString(newSurveyId) + "_") + toString(k)) + kSurveyOptionType), types[k]))
9096 $Tuple3(types, (k + 1), res)
9197 }
118124 then throw("You can't vote twice")
119125 else if ((height > value(getInteger(this, (toString(surveyId) + kSurveyHeightCompletion)))))
120126 then throw("Survey already end")
121- else if ((0 >= valueOrElse(getInteger(govAddress, (toString(i.caller) + kUserSwopInGov)), 0)))
127+ else if ((0 >= valueOrElse(getInteger(govAddress, (toString(i.caller) + kUserGSwopInGov)), 0)))
122128 then throw("Stake swop in governance to survey")
123129 else [IntegerEntry((((toString(surveyId) + "_") + toString(i.caller)) + kUserVote), option)])
124130
131137 then throw("Survey is not ended yet")
132138 else {
133139 func prepareTotals (acc,total) = {
134- let $t057305756 = acc
135- let option = $t057305756._1
136- let result = $t057305756._2
140+ let $t058275853 = acc
141+ let option = $t058275853._1
142+ let result = $t058275853._2
137143 let res = (result :+ IntegerEntry((((toString(surveyId) + "_") + toString(option)) + kTotalSwopVoted), total))
138144 $Tuple2((option + 1), res)
139145 }
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# 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
34-let kUserSwopInGov = "_SWOP_amount"
36+let kUserGSwopInGov = "_GSwop_amount"
3537
3638 let oracle = Address(base58'3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom')
3739
3840 func getBase58FromOracle (key) = match getString(oracle, key) {
3941 case string: String =>
4042 fromBase58String(string)
4143 case nothing =>
4244 throw((key + "is empty"))
4345 }
4446
4547
4648 let adminPubKey1 = getBase58FromOracle(kAdminPubKey1)
4749
4850 let adminPubKey2 = getBase58FromOracle(kAdminPubKey2)
4951
5052 let adminPubKey3 = getBase58FromOracle(kAdminPubKey3)
5153
5254 let adminPubKeyInvoke = getBase58FromOracle(kAdminInvokePubKey)
5355
5456 let moneyBoxAddress = Address(getBase58FromOracle(kMoneyBoxAddress))
5557
5658 let govAddress = Address(getBase58FromOracle(kGovAddress))
5759
5860 let active = valueOrElse(getBoolean(this, kActive), true)
5961
60-func isActive () = if (active)
62+let activeGlob = valueOrElse(getBoolean(oracle, kActiveGlob), true)
63+
64+func isActive () = if (if (active)
65+ then activeGlob
66+ else false)
6167 then unit
6268 else throw("DApp is inactive at this moment")
6369
6470
6571 func isAdminCall (i) = if (containsElement([adminPubKey1, adminPubKey2, adminPubKey3], i.callerPublicKey))
6672 then unit
6773 else throw("Only admin can call this function")
6874
6975
7076 func isMoneyBoxCall (i) = if ((moneyBoxAddress == i.caller))
7177 then unit
7278 else throw("Only Money box can call this function")
7379
7480
7581 @Callable(i)
7682 func initSurvey (heightCompletion,surveyTitle,surveyDescription,options,optionsType) = valueOrElse(isActive(), valueOrElse(isAdminCall(i), if ((height >= heightCompletion))
7783 then throw("Height of survey completion must be greater than currnet height")
7884 else if ((size(options) > 10))
7985 then throw("Max 10 options must be specified")
8086 else if ((size(options) != size(optionsType)))
8187 then throw("Size of optionsTypes must be same as options")
8288 else {
8389 let newSurveyId = (valueOrElse(getInteger(this, kLastSurveyId), 0) + 1)
8490 func prepareOptions (acc,name) = {
85- let $t030423070 = acc
86- let types = $t030423070._1
87- let k = $t030423070._2
88- let result = $t030423070._3
91+ let $t031373165 = acc
92+ let types = $t031373165._1
93+ let k = $t031373165._2
94+ let result = $t031373165._3
8995 let res = ((result :+ StringEntry((((toString(newSurveyId) + "_") + toString(k)) + kSurveyOptionName), name)) :+ StringEntry((((toString(newSurveyId) + "_") + toString(k)) + kSurveyOptionType), types[k]))
9096 $Tuple3(types, (k + 1), res)
9197 }
9298
9399 let optionsEntries = {
94100 let $l = options
95101 let $s = size($l)
96102 let $acc0 = $Tuple3(optionsType, 0, nil)
97103 func $f0_1 ($a,$i) = if (($i >= $s))
98104 then $a
99105 else prepareOptions($a, $l[$i])
100106
101107 func $f0_2 ($a,$i) = if (($i >= $s))
102108 then $a
103109 else throw("List size exceeds 10")
104110
105111 $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)
106112 }
107113 ([IntegerEntry(kLastSurveyId, newSurveyId), IntegerEntry((toString(newSurveyId) + kSurveyHeightCompletion), heightCompletion), StringEntry((toString(newSurveyId) + kSurveyTitle), surveyTitle), StringEntry((toString(newSurveyId) + kSurveyDescription), surveyDescription)] ++ optionsEntries._3)
108114 }))
109115
110116
111117
112118 @Callable(i)
113119 func vote (surveyId,option) = valueOrElse(isActive(), if (!(isDefined(getString(this, (toString(surveyId) + kSurveyTitle)))))
114120 then throw(("There is no survey with id " + toString(surveyId)))
115121 else if (!(isDefined(getString(this, (((toString(surveyId) + "_") + toString(option)) + kSurveyOptionName)))))
116122 then throw(((("There is no option " + toString(option)) + " in survey ") + toString(surveyId)))
117123 else if (isDefined(getInteger(this, (((toString(surveyId) + "_") + toString(i.caller)) + kUserVote))))
118124 then throw("You can't vote twice")
119125 else if ((height > value(getInteger(this, (toString(surveyId) + kSurveyHeightCompletion)))))
120126 then throw("Survey already end")
121- else if ((0 >= valueOrElse(getInteger(govAddress, (toString(i.caller) + kUserSwopInGov)), 0)))
127+ else if ((0 >= valueOrElse(getInteger(govAddress, (toString(i.caller) + kUserGSwopInGov)), 0)))
122128 then throw("Stake swop in governance to survey")
123129 else [IntegerEntry((((toString(surveyId) + "_") + toString(i.caller)) + kUserVote), option)])
124130
125131
126132
127133 @Callable(i)
128134 func writeTotals (surveyId,totals) = valueOrElse(isActive(), valueOrElse(isMoneyBoxCall(i), if (!(isDefined(getString(this, (toString(surveyId) + kSurveyTitle)))))
129135 then throw(("There is no survey with id " + toString(surveyId)))
130136 else if ((value(getInteger(this, (toString(surveyId) + kSurveyHeightCompletion))) > height))
131137 then throw("Survey is not ended yet")
132138 else {
133139 func prepareTotals (acc,total) = {
134- let $t057305756 = acc
135- let option = $t057305756._1
136- let result = $t057305756._2
140+ let $t058275853 = acc
141+ let option = $t058275853._1
142+ let result = $t058275853._2
137143 let res = (result :+ IntegerEntry((((toString(surveyId) + "_") + toString(option)) + kTotalSwopVoted), total))
138144 $Tuple2((option + 1), res)
139145 }
140146
141147 let optionsEntries = {
142148 let $l = totals
143149 let $s = size($l)
144150 let $acc0 = $Tuple2(0, nil)
145151 func $f0_1 ($a,$i) = if (($i >= $s))
146152 then $a
147153 else prepareTotals($a, $l[$i])
148154
149155 func $f0_2 ($a,$i) = if (($i >= $s))
150156 then $a
151157 else throw("List size exceeds 10")
152158
153159 $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)
154160 }
155161 optionsEntries._2
156162 }))
157163
158164
159165 @Verifier(tx)
160166 func verify () = {
161167 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
162168 then 1
163169 else 0
164170 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
165171 then 1
166172 else 0
167173 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
168174 then 1
169175 else 0
170176 (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
171177 }
172178

github/deemru/w8io/3ef1775 
38.68 ms