tx · 7p3RCiRmVSEJpb6FJKWZWDQNohmihPRGvzo3P7PGyQCU

3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb:  -0.01400000 Waves

2021.07.21 16:30 [1623441] smart account 3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb > SELF 0.00000000 Waves

{ "type": 13, "id": "7p3RCiRmVSEJpb6FJKWZWDQNohmihPRGvzo3P7PGyQCU", "fee": 1400000, "feeAssetId": null, "timestamp": 1626874360509, "version": 2, "chainId": 84, "sender": "3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb", "senderPublicKey": "61fhePmC5L8iWserAMXoPAZbv24cAo6eyvnyYpoLpZJy", "proofs": [ "4vsHmdn3uebVXNrr8ghcKA5ycxKA6RD6XrKchiUMEwgcbj5ZyR7RrY9DxZuMee8b9r8VzDwgFvFw9KKJcEZdbBHo" ], "script": "base64:AAIFAAAAAAAAABsIAhIAEgQKAggIEgUKAwEEARIECgIBCBIAEgAAAAA+AAAAAAd2ZXJzaW9uAgAAAAUxLjAuMAAAAAAKa2V5VmVyc2lvbgIAAAAHdmVyc2lvbgAAAAAJa2V5QWN0aXZlAgAAAAZhY3RpdmUAAAAAEWtleU51bWJlck9mVm90aW5nAgAAABR2b3RpbmdfYWN0aXZlX251bWJlcgAAAAAPa2V5SGVpZ2h0T2ZQb29sAgAAAA5fZmluaXNoX2hlaWdodAAAAAAFa2V5Tm8CAAAAD190b3RhbF92b3Rlc19ubwAAAAAGa2V5WWVzAgAAABBfdG90YWxfdm90ZXNfeWVzAAAAAAlrZXlOb1VzZXICAAAACF92b3RlX25vAAAAAAprZXlZZXNVc2VyAgAAAAlfdm90ZV95ZXMAAAAAEWtleVN0YXR1c09mVm90aW5nAgAAAAdfc3RhdHVzAAAAABFrZXlBbW91bnRPZlZvdGluZwIAAAAOdm90aW5nX2lkX2xhc3QAAAAAFGtleU1heEFtb3VudE9mVm90aW5nAgAAABFtYXhfYW1vdW50X3ZvdGluZwAAAAARa2V5TWF4RGF5T2ZWb3RpbmcCAAAADm1heF9kYXlfdm90aW5nAAAAAA1rZXlDb21taXNzaW9uAgAAAApjb21taXNzaW9uAAAAABtrZXlDb21taXNzaW9uU2NhbGVEZWxpbWl0ZXICAAAAGmNvbW1pc3Npb25fc2NhbGVfZGVsaW1pdGVyAAAAAAhrZXlDYXVzZQIAAAAOc2h1dGRvd25fY2F1c2UAAAAADmtleUNhbmNlbENhdXNlAgAAAA1fY2FuY2VsX2NhdXNlAAAAAA5rVXNlclRvdGFsU1dPUAIAAAAMX1NXT1BfYW1vdW50AAAAAAVrTmFtZQIAAAALX2Fzc2V0X25hbWUAAAAACHZvdGluZ0lkAgAAAAdfdm90aW5nAAAAAA5wZXJpb2RPZlZvdGluZwIAAAANcGVyaW9kX3ZvdGluZwAAAAAPYWN0aXZlVm90ZUZpcnN0AgAAABR2b3RpbmdfYWN0aXZlX2NlbGxfMQAAAAAQYWN0aXZlVm90ZVNlY29uZAIAAAAUdm90aW5nX2FjdGl2ZV9jZWxsXzIAAAAAD2FjdGl2ZVZvdGVUaGlyZAIAAAAUdm90aW5nX2FjdGl2ZV9jZWxsXzMAAAAAD2tleUFkbWluUHViS2V5MQIAAAALYWRtaW5fcHViXzEAAAAAD2tleUFkbWluUHViS2V5MgIAAAALYWRtaW5fcHViXzIAAAAAD2tleUFkbWluUHViS2V5MwIAAAALYWRtaW5fcHViXzMAAAAABm9yYWNsZQkBAAAAB0FkZHJlc3MAAAABAQAAABoBVOlFqh6QLzqu8boO5i6akl8amITh82KzCAEAAAALZ2V0QWRtaW5QdWIAAAABAAAAC2tleUFkbWluUHViBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABm9yYWNsZQUAAAALa2V5QWRtaW5QdWIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAAGc3RyaW5nBQAAAAckbWF0Y2gwCQACWQAAAAEFAAAABnN0cmluZwQAAAAHbm90aGluZwUAAAAHJG1hdGNoMAkAAAIAAAABAgAAABlBZG1pbiBwdWJsaWMga2V5IGlzIGVtcHR5AAAAAAxhZG1pblB1YktleTEJAQAAAAtnZXRBZG1pblB1YgAAAAEFAAAAD2tleUFkbWluUHViS2V5MQAAAAAMYWRtaW5QdWJLZXkyCQEAAAALZ2V0QWRtaW5QdWIAAAABBQAAAA9rZXlBZG1pblB1YktleTIAAAAADGFkbWluUHViS2V5MwkBAAAAC2dldEFkbWluUHViAAAAAQUAAAAPa2V5QWRtaW5QdWJLZXkzAAAAABRhZG1pblB1YktleVN0YXJ0U3RvcAEAAAAgBM915WTQwQ9OZ7kfE2TEGg3qhCRCMX0zkF1AWAqdk0oAAAAADXdhbGxldEFkZHJlc3MJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVTfPUuXiVhZ3hXg5FELVt09el+9tX+FIYkAAAAAB2dvdkFkZHIJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVSq+mnegfQTUoXKPy46iFGzGeqYHFnyDS0AAAAABFVTRE4BAAAAIG8ko8qrMNxSKZjoLGFa7lp/I03CLXW76Z2qVODS0AfBAAAAAARTV09QAQAAACAS/4EgkUhus0D2030TGEJX/W+h+zLTquzNaj+daX07+AAAAAAIaXNBY3RpdmUJAQAAABFAZXh0ck5hdGl2ZSgxMDUxKQAAAAIFAAAABHRoaXMFAAAACWtleUFjdGl2ZQAAAAAObnVtYmVyT2ZWb3RpbmcJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAAEWtleU51bWJlck9mVm90aW5nAAAAAA5hbW91bnRPZlZvdGluZwkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAARa2V5QW1vdW50T2ZWb3RpbmcAAAAAD2ZpcnN0QWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAA9hY3RpdmVWb3RlRmlyc3QCAAAAAAAAAAAQc2Vjb25kQWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAABBhY3RpdmVWb3RlU2Vjb25kAgAAAAAAAAAAD3RoaXJkQWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAA9hY3RpdmVWb3RlVGhpcmQCAAAAAAAAAAAhY29taXNzaW9uRm9ySW5pdGFsaXphdGlvbk9mVm90aW5nAAAAAAA7msoAAAAAAAtzY2FsZVZhbHVlMwAAAAAAAAAD6AAAAAALc2NhbGVWYWx1ZTgAAAAAAAX14QAAAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyAAAAAAAAAAPoAAAAABFzY2FsZVZhbHVlOERpZ2l0cwAAAAAAAAAACAAAAAARbWF4QW1vdW50T2ZWb3RpbmcAAAAAAAAAAAMAAAAADm1heERheU9mVm90aW5nAAAAAAAAAAAHAAAAABJ2b3RpbmdQZXJpb2RMZW5ndGgAAAAAAAAAAAUBAAAADGdldEFzc2V0SW5mbwAAAAEAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMAUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAACaWQFAAAAByRtYXRjaDADCQEAAAAJaXNEZWZpbmVkAAAAAQkAA+wAAAABBQAAAAJpZAQAAAAIc3RyaW5nSWQJAAJYAAAAAQUAAAACaWQEAAAABGluZm8JAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkAA+wAAAABBQAAAAJpZAkAASwAAAACCQABLAAAAAICAAAABkFzc2V0IAUAAAAIc3RyaW5nSWQCAAAADiBkb2Vzbid0IGV4aXN0CQAFFQAAAAMFAAAACHN0cmluZ0lkCAUAAAAEaW5mbwAAAARuYW1lCAUAAAAEaW5mbwAAAAhkZWNpbWFscwkAAAIAAAABAgAAABRBc3NldCBpcyBub3QgZGVmaW5lZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAFd2F2ZXMFAAAAByRtYXRjaDAJAAUVAAAAAwIAAAAFV0FWRVMCAAAABVdBVkVTAAAAAAAAAAAICQAAAgAAAAECAAAAC01hdGNoIGVycm9yAQAAABJpc0FjdGl2ZVBvb2xFeGlzdHMAAAADAAAABXBvb2xzAAAABmFzc2V0QQAAAAZhc3NldEIEAAAACXBvb2xzRGF0YQkABLUAAAACBQAAAAVwb29scwIAAAABXwQAAAAMaXNQb29sRGVmaW5lCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoAAAACBQAAAAR0aGlzBQAAAAVwb29scwMDBQAAAAxpc1Bvb2xEZWZpbmUJAQAAAAIhPQAAAAIFAAAABXBvb2xzAgAAAAAHBAAAAAZ2b3RpbmcJAAGRAAAAAgUAAAAJcG9vbHNEYXRhAAAAAAAAAAACBAAAAAhuZXdQb29scwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABmFzc2V0QQIAAAABXwUAAAAGYXNzZXRCAgAAAAFfBQAAAAZ2b3RpbmcFAAAACHZvdGluZ0lkBAAAAA9pc05ld1Bvb2xEZWZpbmUJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAABHRoaXMFAAAACG5ld1Bvb2xzBAAAAA5oZWlnaHRPZlZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABnZvdGluZwUAAAAPa2V5SGVpZ2h0T2ZQb29sAAAAAAAAAAAABAAAAA5zdGF0dXNPZlZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABnZvdGluZwUAAAARa2V5U3RhdHVzT2ZWb3RpbmcGAwUAAAAPaXNOZXdQb29sRGVmaW5lAwkAAGYAAAACBQAAAA5oZWlnaHRPZlZvdGluZwUAAAAGaGVpZ2h0AwUAAAAOc3RhdHVzT2ZWb3RpbmcGBwcHBwEAAAAUaXNVbmFjdGl2ZVBvb2xFeGlzdHMAAAABAAAACnBvb2xzU3RhdGUEAAAABXBvb2xzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAACnBvb2xzU3RhdGUCAAAAAAQAAAAJcG9vbHNEYXRhCQAEtQAAAAIFAAAABXBvb2xzAgAAAAFfBAAAAAxpc1Bvb2xEZWZpbmUJAQAAAAlpc0RlZmluZWQAAAABCQAEGgAAAAIFAAAABHRoaXMFAAAABXBvb2xzAwMFAAAADGlzUG9vbERlZmluZQkBAAAAAiE9AAAAAgUAAAAFcG9vbHMCAAAAAAcEAAAABnZvdGluZwkAAZEAAAACBQAAAAlwb29sc0RhdGEAAAAAAAAAAAIEAAAADmhlaWdodE9mVm90aW5nCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAGdm90aW5nBQAAAA9rZXlIZWlnaHRPZlBvb2wAAAAAAAAAAAAEAAAADnN0YXR1c09mVm90aW5nCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAGdm90aW5nBQAAABFrZXlTdGF0dXNPZlZvdGluZwYDCQAAZgAAAAIFAAAADmhlaWdodE9mVm90aW5nBQAAAAZoZWlnaHQDBQAAAA5zdGF0dXNPZlZvdGluZwIAAAAABQAAAApwb29sc1N0YXRlBQAAAApwb29sc1N0YXRlBQAAAApwb29sc1N0YXRlAQAAABZpc0xhc3RBY3RpdmVQb29sRXhpc3RzAAAAAgAAAAZhc3NldEEAAAAGYXNzZXRCAwMJAQAAABJpc0FjdGl2ZVBvb2xFeGlzdHMAAAADBQAAAA9maXJzdEFjdGl2ZVZvdGUFAAAABmFzc2V0QQUAAAAGYXNzZXRCBgkBAAAAEmlzQWN0aXZlUG9vbEV4aXN0cwAAAAMFAAAAEHNlY29uZEFjdGl2ZVZvdGUFAAAABmFzc2V0QQUAAAAGYXNzZXRCBgkBAAAAEmlz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AAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAACtPbmx5IHRoZSBEQXBwIGl0c2VsZiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQbAAAAAgUAAAAEdGhpcwUAAAAJa2V5QWN0aXZlCQAAAgAAAAECAAAAFkRBcHAgaXMgYWxyZWFkeSBhY3RpdmUEAAAAEmluaXROdW1iZXJPZlZvdGluZwAAAAAAAAAAAAQAAAASaW5pdEFtb3VudE9mVm90aW5nAAAAAAAAAAAABAAAAA1pbml0S2V5QWN0aXZlBgQAAAAKYWN0aXZlSW5pdAIAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACmtleVZlcnNpb24FAAAAB3ZlcnNpb24JAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAACWtleUFjdGl2ZQUAAAANaW5pdEtleUFjdGl2ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARa2V5TnVtYmVyT2ZWb3RpbmcFAAAAEmluaXROdW1iZXJPZlZvdGluZwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARa2V5QW1vdW50T2ZWb3RpbmcFAAAAEmluaXRBbW91bnRPZlZvdGluZwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAUa2V5TWF4QW1vdW50T2ZWb3RpbmcFAAAAEW1heEFtb3VudE9mVm90aW5nCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABFrZXlNYXhEYXlPZlZvdGluZwUAAAAObWF4RGF5T2ZWb3RpbmcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAPYWN0aXZlVm90ZUZpcnN0BQAAAAphY3RpdmVJbml0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEGFjdGl2ZVZvdGVTZWNvbmQFAAAACmFjdGl2ZUluaXQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAPYWN0aXZlVm90ZVRoaXJkBQAAAAphY3RpdmVJbml0BQAAAANuaWwAAAABaQEAAAAUaW5pdFZvdGluZ0Zvck5ld1Bvb2wAAAACAAAABmFzc2V0QQAAAAZhc3NldEIEAAAACyR0MDcxOTA3MjY1CQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAJcG10QW1vdW50CAUAAAALJHQwNzE5MDcyNjUAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAAskdDA3MTkwNzI2NQAAAAJfMgQAAAALJHQwNzI3MDczNjkJAAUUAAAAAgkBAAAAFmdldEFzc2V0SW5mb0Zyb21TdHJpbmcAAAABBQAAAAZhc3NldEEJAQAAABZnZXRBc3NldEluZm9Gcm9tU3RyaW5nAAAAAQUAAAAGYXNzZXRCBAAAAAxwb29sQXNzZXRJZEEIBQAAAAskdDA3MjcwNzM2OQAAAAJfMQQAAAAMcG9vbEFzc2V0SWRCCAUAAAALJHQwNzI3MDczNjkAAAACXzIEAAAADHVuYWN0aXZlVm90ZQkBAAAAFWdldFVuYWN0aXZlVm90aW5nUG9vbAAAAAAEAAAAEW5ld051bWJlck9mVm90aW5nCQEAAAAZZ2V0QWN0aXZlVm90aW5nUG9vbEFtb3VudAAAAAAEAAAADGlzUG9vbEV4aXN0cwkBAAAAFmlzTGFzdEFjdGl2ZVBvb2xFeGlzdHMAAAACBQAAAAZhc3NldEEFAAAABmFzc2V0QgQAAAALJHQwNzUzOTc2MTcJAQAAAAxnZXRBc3NldEluZm8AAAABBQAAAAxwb29sQXNzZXRJZEEEAAAADnBtdFN0ckFzc2V0SWRBCAUAAAALJHQwNzUzOTc2MTcAAAACXzEEAAAADXBtdEFzc2V0TmFtZUEIBQAAAAskdDA3NTM5NzYxNwAAAAJfMgQAAAAMcG10RGVjaW1hbHNBCAUAAAALJHQwNzUzOTc2MTcAAAACXzMEAAAACyR0MDc2MjI3NzAwCQEAAAAMZ2V0QXNzZXRJbmZvAAAAAQUAAAAMcG9vbEFzc2V0SWRCBAAAAA5wbXRTdHJBc3NldElkQggFAAAACyR0MDc2MjI3NzAwAAAAAl8xBAAAAA1wbXRBc3NldE5h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", "height": 1623441, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GWrKUJD44wswv9xDA1gQwN12u9HrS8LFaHwaBnUAgqdM Next: 8Y92zdLai2QuDDiz7jmLiChMoaxFJh1ca5tYdJZDCJM5 Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 4 #-}
1+{-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.0.0"
4949
5050 let x = "voting_active_cell_3"
5151
52-let y = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
52+let y = "admin_pub_1"
5353
54-let z = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
54+let z = "admin_pub_2"
5555
56-let A = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
56+let A = "admin_pub_3"
5757
58-let B = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
58+let B = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
5959
60-let C = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
60+func C (D) = {
61+ let E = getString(B, D)
62+ if ($isInstanceOf(E, "String"))
63+ then {
64+ let F = E
65+ fromBase58String(F)
66+ }
67+ else {
68+ let G = E
69+ throw("Admin public key is empty")
70+ }
71+ }
6172
62-let D = Address(base58'3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU')
6373
64-let E = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
74+let H = C(y)
6575
66-let F = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
76+let I = C(z)
6777
68-let G = getBooleanValue(this, c)
78+let J = C(A)
6979
70-let H = getIntegerValue(this, d)
80+let K = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
7181
72-let I = getIntegerValue(this, k)
82+let L = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
7383
74-let J = valueOrElse(getString(this, v), "")
84+let M = Address(base58'3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU')
7585
76-let K = valueOrElse(getString(this, w), "")
86+let N = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
7787
78-let L = valueOrElse(getString(this, x), "")
88+let O = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
7989
80-let M = 1000000000
90+let P = getBooleanValue(this, c)
8191
82-let N = 1000
92+let Q = getIntegerValue(this, d)
8393
84-let O = 100000000
94+let R = getIntegerValue(this, k)
8595
86-let P = 1000
96+let S = valueOrElse(getString(this, v), "")
8797
88-let Q = 8
98+let T = valueOrElse(getString(this, w), "")
8999
90-let R = 3
100+let U = valueOrElse(getString(this, x), "")
91101
92-let S = 7
102+let V = 1000000000
93103
94-let T = 5
104+let W = 1000
95105
96-func U (V) = {
97- let W = V
98- if ($isInstanceOf(W, "ByteVector"))
106+let X = 100000000
107+
108+let Y = 1000
109+
110+let Z = 8
111+
112+let aa = 3
113+
114+let ab = 7
115+
116+let ac = 5
117+
118+func ad (ae) = {
119+ let E = ae
120+ if ($isInstanceOf(E, "ByteVector"))
99121 then {
100- let X = W
101- if (isDefined(assetInfo(X)))
122+ let af = E
123+ if (isDefined(assetInfo(af)))
102124 then {
103- let Y = toBase58String(X)
104- let Z = valueOrErrorMessage(assetInfo(X), (("Asset " + Y) + " doesn't exist"))
105- $Tuple3(Y, Z.name, Z.decimals)
125+ let ag = toBase58String(af)
126+ let ah = valueOrErrorMessage(assetInfo(af), (("Asset " + ag) + " doesn't exist"))
127+ $Tuple3(ag, ah.name, ah.decimals)
106128 }
107129 else throw("Asset is not defined")
108130 }
109- else if ($isInstanceOf(W, "Unit"))
131+ else if ($isInstanceOf(E, "Unit"))
110132 then {
111- let aa = W
133+ let ai = E
112134 $Tuple3("WAVES", "WAVES", 8)
113135 }
114136 else throw("Match error")
115137 }
116138
117139
118-func ab (ac,ad,ae) = {
119- let af = split(ac, "_")
120- let ag = isDefined(getInteger(this, ac))
121- if (if (ag)
122- then (ac != "")
140+func aj (ak,al,am) = {
141+ let an = split(ak, "_")
142+ let ao = isDefined(getInteger(this, ak))
143+ if (if (ao)
144+ then (ak != "")
123145 else false)
124146 then {
125- let ah = af[2]
126- let ai = (((((ad + "_") + ae) + "_") + ah) + t)
127- let aj = isDefined(getInteger(this, ai))
128- let ak = valueOrElse(getInteger(this, (ah + e)), 0)
129- let al = valueOrElse(getBoolean(this, (ah + j)), true)
130- if (aj)
131- then if ((ak > height))
132- then if (al)
147+ let ap = an[2]
148+ let aq = (((((al + "_") + am) + "_") + ap) + t)
149+ let ar = isDefined(getInteger(this, aq))
150+ let as = valueOrElse(getInteger(this, (ap + e)), 0)
151+ let at = valueOrElse(getBoolean(this, (ap + j)), true)
152+ if (ar)
153+ then if ((as > height))
154+ then if (at)
133155 then true
134156 else false
135157 else false
139161 }
140162
141163
142-func am (an) = {
143- let ac = valueOrElse(getString(this, an), "")
144- let af = split(ac, "_")
145- let ag = isDefined(getInteger(this, ac))
146- if (if (ag)
147- then (ac != "")
164+func au (av) = {
165+ let ak = valueOrElse(getString(this, av), "")
166+ let an = split(ak, "_")
167+ let ao = isDefined(getInteger(this, ak))
168+ if (if (ao)
169+ then (ak != "")
148170 else false)
149171 then {
150- let ah = af[2]
151- let ak = valueOrElse(getInteger(this, (ah + e)), 0)
152- let al = valueOrElse(getBoolean(this, (ah + j)), true)
153- if ((ak > height))
154- then if (al)
172+ let ap = an[2]
173+ let as = valueOrElse(getInteger(this, (ap + e)), 0)
174+ let at = valueOrElse(getBoolean(this, (ap + j)), true)
175+ if ((as > height))
176+ then if (at)
155177 then ""
156- else an
157- else an
178+ else av
179+ else av
158180 }
159- else an
181+ else av
160182 }
161183
162184
163-func ao (ad,ae) = if (if (ab(J, ad, ae))
185+func aw (al,am) = if (if (aj(S, al, am))
164186 then true
165- else ab(K, ad, ae))
187+ else aj(T, al, am))
166188 then true
167- else ab(L, ad, ae)
189+ else aj(U, al, am)
168190
169191
170-func ap (ah) = {
171- let ak = valueOrElse(getInteger(this, (toString(ah) + e)), 0)
172- let al = valueOrElse(getBoolean(this, (toString(ah) + j)), true)
173- let aq = height
174- if ((0 > ah))
192+func ax (ap) = {
193+ let as = valueOrElse(getInteger(this, (toString(ap) + e)), 0)
194+ let at = valueOrElse(getBoolean(this, (toString(ap) + j)), true)
195+ let ay = height
196+ if ((0 > ap))
175197 then 0
176- else if (!(al))
198+ else if (!(at))
177199 then 0
178- else if ((ak > aq))
200+ else if ((as > ay))
179201 then 1
180202 else 0
181203 }
182204
183205
184-func ar () = ((ap(valueOrElse(getInteger(this, J), -1)) + ap(valueOrElse(getInteger(this, K), -1))) + ap(valueOrElse(getInteger(this, L), -1)))
206+func az () = ((ax(valueOrElse(getInteger(this, S), -1)) + ax(valueOrElse(getInteger(this, T), -1))) + ax(valueOrElse(getInteger(this, U), -1)))
185207
186208
187-func as () = if ((am(v) != ""))
209+func aA () = if ((au(v) != ""))
188210 then v
189- else if ((am(w) != ""))
211+ else if ((au(w) != ""))
190212 then w
191- else if ((am(x) != ""))
213+ else if ((au(x) != ""))
192214 then x
193215 else ""
194216
195217
196-func at (au) = if ((au == "WAVES"))
218+func aB (aC) = if ((aC == "WAVES"))
197219 then unit
198- else fromBase58String(au)
220+ else fromBase58String(aC)
199221
200222
201-func av (aw) = if ((valueOrElse(getInteger(D, (toString(aw) + r)), 0) > 0))
223+func aD (aE) = if ((valueOrElse(getInteger(M, (toString(aE) + r)), 0) > 0))
202224 then true
203225 else false
204226
205227
206-func ax (ay) = [BooleanEntry(c, false), StringEntry(p, ay)]
228+func aF (aG) = [BooleanEntry(c, false), StringEntry(p, aG)]
207229
208230
209-func az (aA,aB) = throw(((((("Insufficient DApp balance to pay " + toString(aA)) + " ") + aB) + " due to staking.") + ". Please contact support in Telegram: https://t.me/swopfisupport"))
231+func aH (aI,aJ) = throw(((((("Insufficient DApp balance to pay " + toString(aI)) + " ") + aJ) + " due to staking.") + ". Please contact support in Telegram: https://t.me/swopfisupport"))
210232
211233
212-@Callable(aC)
213-func init () = if ((aC.caller != this))
234+@Callable(aK)
235+func init () = if ((aK.caller != this))
214236 then throw("Only the DApp itself can call this function")
215237 else if (isDefined(getBoolean(this, c)))
216238 then throw("DApp is already active")
217239 else {
218- let aD = 0
219- let aE = 0
220- let aF = true
221- let aG = ""
222-[StringEntry(b, a), BooleanEntry(c, aF), IntegerEntry(d, aD), IntegerEntry(k, aE), IntegerEntry(l, R), IntegerEntry(m, S), StringEntry(v, aG), StringEntry(w, aG), StringEntry(x, aG)]
240+ let aL = 0
241+ let aM = 0
242+ let aN = true
243+ let aO = ""
244+[StringEntry(b, a), BooleanEntry(c, aN), IntegerEntry(d, aL), IntegerEntry(k, aM), IntegerEntry(l, aa), IntegerEntry(m, ab), StringEntry(v, aO), StringEntry(w, aO), StringEntry(x, aO)]
223245 }
224246
225247
226248
227-@Callable(aC)
228-func initVotingForNewPool (ad,ae) = {
229- let aH = $Tuple2(aC.payments[0].amount, aC.payments[0].assetId)
230- let aI = aH._1
231- let aJ = aH._2
232- let aK = $Tuple2(at(ad), at(ae))
233- let aL = aK._1
234- let aM = aK._2
235- let aN = as()
236- let aO = ar()
237- let aP = ao(ad, ae)
238- let aQ = U(aL)
239- let aR = aQ._1
240- let aS = aQ._2
241- let aT = aQ._3
242- let aU = U(aM)
243- let aV = aU._1
244- let aW = aU._2
245- let aX = aU._3
246- if (!(G))
249+@Callable(aK)
250+func initVotingForNewPool (al,am) = {
251+ let aP = $Tuple2(aK.payments[0].amount, aK.payments[0].assetId)
252+ let aQ = aP._1
253+ let aR = aP._2
254+ let aS = $Tuple2(aB(al), aB(am))
255+ let aT = aS._1
256+ let aU = aS._2
257+ let aV = aA()
258+ let aW = az()
259+ let aX = aw(al, am)
260+ let aY = ad(aT)
261+ let aZ = aY._1
262+ let ba = aY._2
263+ let bb = aY._3
264+ let bc = ad(aU)
265+ let bd = bc._1
266+ let be = bc._2
267+ let bf = bc._3
268+ if (!(P))
247269 then throw("DApp is inactive at this moment")
248- else if ((aL == aM))
270+ else if ((aT == aU))
249271 then throw("Assets must be different")
250- else if (aP)
272+ else if (aX)
251273 then throw("This pool already exists")
252- else if (if (((aO + 1) > R))
274+ else if (if (((aW + 1) > aa))
253275 then true
254- else (aN == ""))
255- then throw(("Too many votings. Maximum quantity: " + toString(R)))
256- else if ((size(aC.payments) != 1))
276+ else (aV == ""))
277+ then throw(("Too many votings. Maximum quantity: " + toString(aa)))
278+ else if ((size(aK.payments) != 1))
257279 then throw("One attached asset expected")
258- else if ((aJ != F))
280+ else if ((aR != O))
259281 then throw("You must use a SWOP token")
260- else if (if ((ad == ""))
282+ else if (if ((al == ""))
261283 then true
262- else (ae == ""))
284+ else (am == ""))
263285 then throw("Assets can't be empty")
264- else if ((aI != M))
286+ else if ((aQ != V))
265287 then throw("You need to attach 10 SWOP tokens")
266- else if (!(if (if ((aM == E))
288+ else if (!(if (if ((aU == N))
267289 then true
268- else (aM == unit))
290+ else (aU == unit))
269291 then true
270- else (aM == F)))
292+ else (aU == O)))
271293 then throw("assetB must be USDN, WAVES or SWOP")
272- else [IntegerEntry((((((ad + "_") + ae) + "_") + toString(I)) + t), I), IntegerEntry((toString(I) + e), (height + T)), BooleanEntry((toString(I) + j), true), IntegerEntry(k, (I + 1)), IntegerEntry(d, (aO + 1)), StringEntry((ad + s), aS), StringEntry((ae + s), aW), StringEntry(aN, (((((ad + "_") + ae) + "_") + toString(I)) + t)), ScriptTransfer(C, aI, aJ)]
294+ else [IntegerEntry((((((al + "_") + am) + "_") + toString(R)) + t), R), IntegerEntry((toString(R) + e), (height + ac)), BooleanEntry((toString(R) + j), true), IntegerEntry(k, (R + 1)), IntegerEntry(d, (aW + 1)), StringEntry((al + s), ba), StringEntry((am + s), be), StringEntry(aV, (((((al + "_") + am) + "_") + toString(R)) + t)), ScriptTransfer(L, aQ, aR)]
273295 }
274296
275297
276298
277-@Callable(aC)
278-func voteForPool (ah,aY,aZ) = {
279- let aq = height
280- let ba = valueOrErrorMessage(getIntegerValue(this, (toString(ah) + e)), "Empty pool height")
281- let al = valueOrElse(getBoolean(this, (toString(ah) + j)), true)
282- let bb = valueOrElse(getInteger(D, (toString(aC.caller) + r)), 0)
283- let bc = if (aY)
284- then (valueOrElse(getInteger(this, (((toString(aC.caller) + "_") + toString(ah)) + h)), 0) + aZ)
285- else (valueOrElse(getInteger(this, (((toString(aC.caller) + "_") + toString(ah)) + i)), 0) + aZ)
286- if (!(av(aC.caller)))
299+@Callable(aK)
300+func voteForPool (ap,bg,bh) = {
301+ let ay = height
302+ let bi = valueOrErrorMessage(getIntegerValue(this, (toString(ap) + e)), "Empty pool height")
303+ let at = valueOrElse(getBoolean(this, (toString(ap) + j)), true)
304+ let bj = valueOrElse(getInteger(M, (toString(aK.caller) + r)), 0)
305+ let bk = if (bg)
306+ then (valueOrElse(getInteger(this, (((toString(aK.caller) + "_") + toString(ap)) + h)), 0) + bh)
307+ else (valueOrElse(getInteger(this, (((toString(aK.caller) + "_") + toString(ap)) + i)), 0) + bh)
308+ if (!(aD(aK.caller)))
287309 then throw("This address has 0 SWOP in Governance dApp")
288- else if (!(al))
310+ else if (!(at))
289311 then throw("This voting was canceled")
290- else if ((aq > ba))
312+ else if ((ay > bi))
291313 then throw("This voting was expired")
292- else if ((0 > aZ))
314+ else if ((0 > bh))
293315 then throw("The number of votes must be positive")
294- else if ((bc > bb))
295- then throw((((toString(this) + " has ") + toString(bb)) + " SWOP in governance."))
296- else if (aY)
316+ else if ((bk > bj))
317+ then throw((((toString(this) + " has ") + toString(bj)) + " SWOP in governance."))
318+ else if (bg)
297319 then {
298- let bd = valueOrElse(getInteger(this, (((toString(aC.caller) + "_") + toString(ah)) + i)), 0)
299- let be = ((valueOrElse(getInteger(this, (toString(ah) + g)), 0) - bd) + aZ)
300-[IntegerEntry((toString(ah) + g), be), IntegerEntry((((toString(aC.caller) + "_") + toString(ah)) + i), aZ)]
320+ let bl = valueOrElse(getInteger(this, (((toString(aK.caller) + "_") + toString(ap)) + i)), 0)
321+ let bm = ((valueOrElse(getInteger(this, (toString(ap) + g)), 0) - bl) + bh)
322+[IntegerEntry((toString(ap) + g), bm), IntegerEntry((((toString(aK.caller) + "_") + toString(ap)) + i), bh)]
301323 }
302324 else {
303- let bd = valueOrElse(getInteger(this, (((toString(aC.caller) + "_") + toString(ah)) + h)), 0)
304- let be = ((valueOrElse(getInteger(this, (toString(ah) + f)), 0) - bd) + aZ)
305-[IntegerEntry((toString(ah) + f), be), IntegerEntry((((toString(aC.caller) + "_") + toString(ah)) + h), aZ)]
325+ let bl = valueOrElse(getInteger(this, (((toString(aK.caller) + "_") + toString(ap)) + h)), 0)
326+ let bm = ((valueOrElse(getInteger(this, (toString(ap) + f)), 0) - bl) + bh)
327+[IntegerEntry((toString(ap) + f), bm), IntegerEntry((((toString(aK.caller) + "_") + toString(ap)) + h), bh)]
306328 }
307329 }
308330
309331
310332
311-@Callable(aC)
312-func cancelVoting (ah,ay) = {
313- let al = valueOrElse(getBoolean(this, (toString(ah) + j)), true)
314- if (!(G))
333+@Callable(aK)
334+func cancelVoting (ap,aG) = {
335+ let at = valueOrElse(getBoolean(this, (toString(ap) + j)), true)
336+ if (!(P))
315337 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, p), "the cause wasn't specified")))
316- else if (!(containsElement([y, z, A, B], aC.callerPublicKey)))
338+ else if (!(containsElement([H, I, J], aK.callerPublicKey)))
317339 then throw("Only admin can call this function")
318- else if (!(al))
319- then throw((("Voting " + toString(ah)) + " has already been stopped"))
320- else [IntegerEntry(d, (H - 1)), BooleanEntry((toString(ah) + j), false), StringEntry((toString(ah) + q), ay)]
340+ else if (!(at))
341+ then throw((("Voting " + toString(ap)) + " has already been stopped"))
342+ else [IntegerEntry(d, (Q - 1)), BooleanEntry((toString(ap) + j), false), StringEntry((toString(ap) + q), aG)]
321343 }
322344
323345
324346
325-@Callable(aC)
326-func shutdown () = if (!(G))
347+@Callable(aK)
348+func shutdown () = if (!(P))
327349 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, p), "the cause wasn't specified")))
328- else if (!(containsElement([y, z, A, B], aC.callerPublicKey)))
350+ else if (!(containsElement([H, I, J, K], aK.callerPublicKey)))
329351 then throw("Only admin can call this function")
330- else ax("Paused by admin")
352+ else aF("Paused by admin")
331353
332354
333355
334-@Callable(aC)
335-func activate () = if (G)
356+@Callable(aK)
357+func activate () = if (P)
336358 then throw("DApp is already active")
337- else if (!(containsElement([y, z, A, B], aC.callerPublicKey)))
359+ else if (!(containsElement([H, I, J, K], aK.callerPublicKey)))
338360 then throw("Only admin can call this function")
339361 else [BooleanEntry(c, true), DeleteEntry(p)]
340362
341363
342-@Verifier(bf)
343-func bg () = sigVerify(bf.bodyBytes, bf.proofs[0], bf.senderPublicKey)
364+@Verifier(bn)
365+func bo () = {
366+ let bp = if (sigVerify(bn.bodyBytes, bn.proofs[0], H))
367+ then 1
368+ else 0
369+ let bq = if (sigVerify(bn.bodyBytes, bn.proofs[1], I))
370+ then 1
371+ else 0
372+ let br = if (sigVerify(bn.bodyBytes, bn.proofs[2], J))
373+ then 1
374+ else 0
375+ (((bp + bq) + br) >= 2)
376+ }
344377
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 4 #-}
1+{-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.0.0"
55
66 let b = "version"
77
88 let c = "active"
99
1010 let d = "voting_active_number"
1111
1212 let e = "_finish_height"
1313
1414 let f = "_total_votes_no"
1515
1616 let g = "_total_votes_yes"
1717
1818 let h = "_vote_no"
1919
2020 let i = "_vote_yes"
2121
2222 let j = "_status"
2323
2424 let k = "voting_id_last"
2525
2626 let l = "max_amount_voting"
2727
2828 let m = "max_day_voting"
2929
3030 let n = "commission"
3131
3232 let o = "commission_scale_delimiter"
3333
3434 let p = "shutdown_cause"
3535
3636 let q = "_cancel_cause"
3737
3838 let r = "_SWOP_amount"
3939
4040 let s = "_asset_name"
4141
4242 let t = "_voting"
4343
4444 let u = "period_voting"
4545
4646 let v = "voting_active_cell_1"
4747
4848 let w = "voting_active_cell_2"
4949
5050 let x = "voting_active_cell_3"
5151
52-let y = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
52+let y = "admin_pub_1"
5353
54-let z = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
54+let z = "admin_pub_2"
5555
56-let A = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
56+let A = "admin_pub_3"
5757
58-let B = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
58+let B = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
5959
60-let C = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
60+func C (D) = {
61+ let E = getString(B, D)
62+ if ($isInstanceOf(E, "String"))
63+ then {
64+ let F = E
65+ fromBase58String(F)
66+ }
67+ else {
68+ let G = E
69+ throw("Admin public key is empty")
70+ }
71+ }
6172
62-let D = Address(base58'3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU')
6373
64-let E = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
74+let H = C(y)
6575
66-let F = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
76+let I = C(z)
6777
68-let G = getBooleanValue(this, c)
78+let J = C(A)
6979
70-let H = getIntegerValue(this, d)
80+let K = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
7181
72-let I = getIntegerValue(this, k)
82+let L = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
7383
74-let J = valueOrElse(getString(this, v), "")
84+let M = Address(base58'3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU')
7585
76-let K = valueOrElse(getString(this, w), "")
86+let N = base58'8UrfDVd5GreeUwm7uPk7eYz1eMv376kzR52C6sANPkwS'
7787
78-let L = valueOrElse(getString(this, x), "")
88+let O = base58'2HAJrwa8q4SxBx9cHYaBTQdBjdk5wwqdof7ccpAx2uhZ'
7989
80-let M = 1000000000
90+let P = getBooleanValue(this, c)
8191
82-let N = 1000
92+let Q = getIntegerValue(this, d)
8393
84-let O = 100000000
94+let R = getIntegerValue(this, k)
8595
86-let P = 1000
96+let S = valueOrElse(getString(this, v), "")
8797
88-let Q = 8
98+let T = valueOrElse(getString(this, w), "")
8999
90-let R = 3
100+let U = valueOrElse(getString(this, x), "")
91101
92-let S = 7
102+let V = 1000000000
93103
94-let T = 5
104+let W = 1000
95105
96-func U (V) = {
97- let W = V
98- if ($isInstanceOf(W, "ByteVector"))
106+let X = 100000000
107+
108+let Y = 1000
109+
110+let Z = 8
111+
112+let aa = 3
113+
114+let ab = 7
115+
116+let ac = 5
117+
118+func ad (ae) = {
119+ let E = ae
120+ if ($isInstanceOf(E, "ByteVector"))
99121 then {
100- let X = W
101- if (isDefined(assetInfo(X)))
122+ let af = E
123+ if (isDefined(assetInfo(af)))
102124 then {
103- let Y = toBase58String(X)
104- let Z = valueOrErrorMessage(assetInfo(X), (("Asset " + Y) + " doesn't exist"))
105- $Tuple3(Y, Z.name, Z.decimals)
125+ let ag = toBase58String(af)
126+ let ah = valueOrErrorMessage(assetInfo(af), (("Asset " + ag) + " doesn't exist"))
127+ $Tuple3(ag, ah.name, ah.decimals)
106128 }
107129 else throw("Asset is not defined")
108130 }
109- else if ($isInstanceOf(W, "Unit"))
131+ else if ($isInstanceOf(E, "Unit"))
110132 then {
111- let aa = W
133+ let ai = E
112134 $Tuple3("WAVES", "WAVES", 8)
113135 }
114136 else throw("Match error")
115137 }
116138
117139
118-func ab (ac,ad,ae) = {
119- let af = split(ac, "_")
120- let ag = isDefined(getInteger(this, ac))
121- if (if (ag)
122- then (ac != "")
140+func aj (ak,al,am) = {
141+ let an = split(ak, "_")
142+ let ao = isDefined(getInteger(this, ak))
143+ if (if (ao)
144+ then (ak != "")
123145 else false)
124146 then {
125- let ah = af[2]
126- let ai = (((((ad + "_") + ae) + "_") + ah) + t)
127- let aj = isDefined(getInteger(this, ai))
128- let ak = valueOrElse(getInteger(this, (ah + e)), 0)
129- let al = valueOrElse(getBoolean(this, (ah + j)), true)
130- if (aj)
131- then if ((ak > height))
132- then if (al)
147+ let ap = an[2]
148+ let aq = (((((al + "_") + am) + "_") + ap) + t)
149+ let ar = isDefined(getInteger(this, aq))
150+ let as = valueOrElse(getInteger(this, (ap + e)), 0)
151+ let at = valueOrElse(getBoolean(this, (ap + j)), true)
152+ if (ar)
153+ then if ((as > height))
154+ then if (at)
133155 then true
134156 else false
135157 else false
136158 else false
137159 }
138160 else false
139161 }
140162
141163
142-func am (an) = {
143- let ac = valueOrElse(getString(this, an), "")
144- let af = split(ac, "_")
145- let ag = isDefined(getInteger(this, ac))
146- if (if (ag)
147- then (ac != "")
164+func au (av) = {
165+ let ak = valueOrElse(getString(this, av), "")
166+ let an = split(ak, "_")
167+ let ao = isDefined(getInteger(this, ak))
168+ if (if (ao)
169+ then (ak != "")
148170 else false)
149171 then {
150- let ah = af[2]
151- let ak = valueOrElse(getInteger(this, (ah + e)), 0)
152- let al = valueOrElse(getBoolean(this, (ah + j)), true)
153- if ((ak > height))
154- then if (al)
172+ let ap = an[2]
173+ let as = valueOrElse(getInteger(this, (ap + e)), 0)
174+ let at = valueOrElse(getBoolean(this, (ap + j)), true)
175+ if ((as > height))
176+ then if (at)
155177 then ""
156- else an
157- else an
178+ else av
179+ else av
158180 }
159- else an
181+ else av
160182 }
161183
162184
163-func ao (ad,ae) = if (if (ab(J, ad, ae))
185+func aw (al,am) = if (if (aj(S, al, am))
164186 then true
165- else ab(K, ad, ae))
187+ else aj(T, al, am))
166188 then true
167- else ab(L, ad, ae)
189+ else aj(U, al, am)
168190
169191
170-func ap (ah) = {
171- let ak = valueOrElse(getInteger(this, (toString(ah) + e)), 0)
172- let al = valueOrElse(getBoolean(this, (toString(ah) + j)), true)
173- let aq = height
174- if ((0 > ah))
192+func ax (ap) = {
193+ let as = valueOrElse(getInteger(this, (toString(ap) + e)), 0)
194+ let at = valueOrElse(getBoolean(this, (toString(ap) + j)), true)
195+ let ay = height
196+ if ((0 > ap))
175197 then 0
176- else if (!(al))
198+ else if (!(at))
177199 then 0
178- else if ((ak > aq))
200+ else if ((as > ay))
179201 then 1
180202 else 0
181203 }
182204
183205
184-func ar () = ((ap(valueOrElse(getInteger(this, J), -1)) + ap(valueOrElse(getInteger(this, K), -1))) + ap(valueOrElse(getInteger(this, L), -1)))
206+func az () = ((ax(valueOrElse(getInteger(this, S), -1)) + ax(valueOrElse(getInteger(this, T), -1))) + ax(valueOrElse(getInteger(this, U), -1)))
185207
186208
187-func as () = if ((am(v) != ""))
209+func aA () = if ((au(v) != ""))
188210 then v
189- else if ((am(w) != ""))
211+ else if ((au(w) != ""))
190212 then w
191- else if ((am(x) != ""))
213+ else if ((au(x) != ""))
192214 then x
193215 else ""
194216
195217
196-func at (au) = if ((au == "WAVES"))
218+func aB (aC) = if ((aC == "WAVES"))
197219 then unit
198- else fromBase58String(au)
220+ else fromBase58String(aC)
199221
200222
201-func av (aw) = if ((valueOrElse(getInteger(D, (toString(aw) + r)), 0) > 0))
223+func aD (aE) = if ((valueOrElse(getInteger(M, (toString(aE) + r)), 0) > 0))
202224 then true
203225 else false
204226
205227
206-func ax (ay) = [BooleanEntry(c, false), StringEntry(p, ay)]
228+func aF (aG) = [BooleanEntry(c, false), StringEntry(p, aG)]
207229
208230
209-func az (aA,aB) = throw(((((("Insufficient DApp balance to pay " + toString(aA)) + " ") + aB) + " due to staking.") + ". Please contact support in Telegram: https://t.me/swopfisupport"))
231+func aH (aI,aJ) = throw(((((("Insufficient DApp balance to pay " + toString(aI)) + " ") + aJ) + " due to staking.") + ". Please contact support in Telegram: https://t.me/swopfisupport"))
210232
211233
212-@Callable(aC)
213-func init () = if ((aC.caller != this))
234+@Callable(aK)
235+func init () = if ((aK.caller != this))
214236 then throw("Only the DApp itself can call this function")
215237 else if (isDefined(getBoolean(this, c)))
216238 then throw("DApp is already active")
217239 else {
218- let aD = 0
219- let aE = 0
220- let aF = true
221- let aG = ""
222-[StringEntry(b, a), BooleanEntry(c, aF), IntegerEntry(d, aD), IntegerEntry(k, aE), IntegerEntry(l, R), IntegerEntry(m, S), StringEntry(v, aG), StringEntry(w, aG), StringEntry(x, aG)]
240+ let aL = 0
241+ let aM = 0
242+ let aN = true
243+ let aO = ""
244+[StringEntry(b, a), BooleanEntry(c, aN), IntegerEntry(d, aL), IntegerEntry(k, aM), IntegerEntry(l, aa), IntegerEntry(m, ab), StringEntry(v, aO), StringEntry(w, aO), StringEntry(x, aO)]
223245 }
224246
225247
226248
227-@Callable(aC)
228-func initVotingForNewPool (ad,ae) = {
229- let aH = $Tuple2(aC.payments[0].amount, aC.payments[0].assetId)
230- let aI = aH._1
231- let aJ = aH._2
232- let aK = $Tuple2(at(ad), at(ae))
233- let aL = aK._1
234- let aM = aK._2
235- let aN = as()
236- let aO = ar()
237- let aP = ao(ad, ae)
238- let aQ = U(aL)
239- let aR = aQ._1
240- let aS = aQ._2
241- let aT = aQ._3
242- let aU = U(aM)
243- let aV = aU._1
244- let aW = aU._2
245- let aX = aU._3
246- if (!(G))
249+@Callable(aK)
250+func initVotingForNewPool (al,am) = {
251+ let aP = $Tuple2(aK.payments[0].amount, aK.payments[0].assetId)
252+ let aQ = aP._1
253+ let aR = aP._2
254+ let aS = $Tuple2(aB(al), aB(am))
255+ let aT = aS._1
256+ let aU = aS._2
257+ let aV = aA()
258+ let aW = az()
259+ let aX = aw(al, am)
260+ let aY = ad(aT)
261+ let aZ = aY._1
262+ let ba = aY._2
263+ let bb = aY._3
264+ let bc = ad(aU)
265+ let bd = bc._1
266+ let be = bc._2
267+ let bf = bc._3
268+ if (!(P))
247269 then throw("DApp is inactive at this moment")
248- else if ((aL == aM))
270+ else if ((aT == aU))
249271 then throw("Assets must be different")
250- else if (aP)
272+ else if (aX)
251273 then throw("This pool already exists")
252- else if (if (((aO + 1) > R))
274+ else if (if (((aW + 1) > aa))
253275 then true
254- else (aN == ""))
255- then throw(("Too many votings. Maximum quantity: " + toString(R)))
256- else if ((size(aC.payments) != 1))
276+ else (aV == ""))
277+ then throw(("Too many votings. Maximum quantity: " + toString(aa)))
278+ else if ((size(aK.payments) != 1))
257279 then throw("One attached asset expected")
258- else if ((aJ != F))
280+ else if ((aR != O))
259281 then throw("You must use a SWOP token")
260- else if (if ((ad == ""))
282+ else if (if ((al == ""))
261283 then true
262- else (ae == ""))
284+ else (am == ""))
263285 then throw("Assets can't be empty")
264- else if ((aI != M))
286+ else if ((aQ != V))
265287 then throw("You need to attach 10 SWOP tokens")
266- else if (!(if (if ((aM == E))
288+ else if (!(if (if ((aU == N))
267289 then true
268- else (aM == unit))
290+ else (aU == unit))
269291 then true
270- else (aM == F)))
292+ else (aU == O)))
271293 then throw("assetB must be USDN, WAVES or SWOP")
272- else [IntegerEntry((((((ad + "_") + ae) + "_") + toString(I)) + t), I), IntegerEntry((toString(I) + e), (height + T)), BooleanEntry((toString(I) + j), true), IntegerEntry(k, (I + 1)), IntegerEntry(d, (aO + 1)), StringEntry((ad + s), aS), StringEntry((ae + s), aW), StringEntry(aN, (((((ad + "_") + ae) + "_") + toString(I)) + t)), ScriptTransfer(C, aI, aJ)]
294+ else [IntegerEntry((((((al + "_") + am) + "_") + toString(R)) + t), R), IntegerEntry((toString(R) + e), (height + ac)), BooleanEntry((toString(R) + j), true), IntegerEntry(k, (R + 1)), IntegerEntry(d, (aW + 1)), StringEntry((al + s), ba), StringEntry((am + s), be), StringEntry(aV, (((((al + "_") + am) + "_") + toString(R)) + t)), ScriptTransfer(L, aQ, aR)]
273295 }
274296
275297
276298
277-@Callable(aC)
278-func voteForPool (ah,aY,aZ) = {
279- let aq = height
280- let ba = valueOrErrorMessage(getIntegerValue(this, (toString(ah) + e)), "Empty pool height")
281- let al = valueOrElse(getBoolean(this, (toString(ah) + j)), true)
282- let bb = valueOrElse(getInteger(D, (toString(aC.caller) + r)), 0)
283- let bc = if (aY)
284- then (valueOrElse(getInteger(this, (((toString(aC.caller) + "_") + toString(ah)) + h)), 0) + aZ)
285- else (valueOrElse(getInteger(this, (((toString(aC.caller) + "_") + toString(ah)) + i)), 0) + aZ)
286- if (!(av(aC.caller)))
299+@Callable(aK)
300+func voteForPool (ap,bg,bh) = {
301+ let ay = height
302+ let bi = valueOrErrorMessage(getIntegerValue(this, (toString(ap) + e)), "Empty pool height")
303+ let at = valueOrElse(getBoolean(this, (toString(ap) + j)), true)
304+ let bj = valueOrElse(getInteger(M, (toString(aK.caller) + r)), 0)
305+ let bk = if (bg)
306+ then (valueOrElse(getInteger(this, (((toString(aK.caller) + "_") + toString(ap)) + h)), 0) + bh)
307+ else (valueOrElse(getInteger(this, (((toString(aK.caller) + "_") + toString(ap)) + i)), 0) + bh)
308+ if (!(aD(aK.caller)))
287309 then throw("This address has 0 SWOP in Governance dApp")
288- else if (!(al))
310+ else if (!(at))
289311 then throw("This voting was canceled")
290- else if ((aq > ba))
312+ else if ((ay > bi))
291313 then throw("This voting was expired")
292- else if ((0 > aZ))
314+ else if ((0 > bh))
293315 then throw("The number of votes must be positive")
294- else if ((bc > bb))
295- then throw((((toString(this) + " has ") + toString(bb)) + " SWOP in governance."))
296- else if (aY)
316+ else if ((bk > bj))
317+ then throw((((toString(this) + " has ") + toString(bj)) + " SWOP in governance."))
318+ else if (bg)
297319 then {
298- let bd = valueOrElse(getInteger(this, (((toString(aC.caller) + "_") + toString(ah)) + i)), 0)
299- let be = ((valueOrElse(getInteger(this, (toString(ah) + g)), 0) - bd) + aZ)
300-[IntegerEntry((toString(ah) + g), be), IntegerEntry((((toString(aC.caller) + "_") + toString(ah)) + i), aZ)]
320+ let bl = valueOrElse(getInteger(this, (((toString(aK.caller) + "_") + toString(ap)) + i)), 0)
321+ let bm = ((valueOrElse(getInteger(this, (toString(ap) + g)), 0) - bl) + bh)
322+[IntegerEntry((toString(ap) + g), bm), IntegerEntry((((toString(aK.caller) + "_") + toString(ap)) + i), bh)]
301323 }
302324 else {
303- let bd = valueOrElse(getInteger(this, (((toString(aC.caller) + "_") + toString(ah)) + h)), 0)
304- let be = ((valueOrElse(getInteger(this, (toString(ah) + f)), 0) - bd) + aZ)
305-[IntegerEntry((toString(ah) + f), be), IntegerEntry((((toString(aC.caller) + "_") + toString(ah)) + h), aZ)]
325+ let bl = valueOrElse(getInteger(this, (((toString(aK.caller) + "_") + toString(ap)) + h)), 0)
326+ let bm = ((valueOrElse(getInteger(this, (toString(ap) + f)), 0) - bl) + bh)
327+[IntegerEntry((toString(ap) + f), bm), IntegerEntry((((toString(aK.caller) + "_") + toString(ap)) + h), bh)]
306328 }
307329 }
308330
309331
310332
311-@Callable(aC)
312-func cancelVoting (ah,ay) = {
313- let al = valueOrElse(getBoolean(this, (toString(ah) + j)), true)
314- if (!(G))
333+@Callable(aK)
334+func cancelVoting (ap,aG) = {
335+ let at = valueOrElse(getBoolean(this, (toString(ap) + j)), true)
336+ if (!(P))
315337 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, p), "the cause wasn't specified")))
316- else if (!(containsElement([y, z, A, B], aC.callerPublicKey)))
338+ else if (!(containsElement([H, I, J], aK.callerPublicKey)))
317339 then throw("Only admin can call this function")
318- else if (!(al))
319- then throw((("Voting " + toString(ah)) + " has already been stopped"))
320- else [IntegerEntry(d, (H - 1)), BooleanEntry((toString(ah) + j), false), StringEntry((toString(ah) + q), ay)]
340+ else if (!(at))
341+ then throw((("Voting " + toString(ap)) + " has already been stopped"))
342+ else [IntegerEntry(d, (Q - 1)), BooleanEntry((toString(ap) + j), false), StringEntry((toString(ap) + q), aG)]
321343 }
322344
323345
324346
325-@Callable(aC)
326-func shutdown () = if (!(G))
347+@Callable(aK)
348+func shutdown () = if (!(P))
327349 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, p), "the cause wasn't specified")))
328- else if (!(containsElement([y, z, A, B], aC.callerPublicKey)))
350+ else if (!(containsElement([H, I, J, K], aK.callerPublicKey)))
329351 then throw("Only admin can call this function")
330- else ax("Paused by admin")
352+ else aF("Paused by admin")
331353
332354
333355
334-@Callable(aC)
335-func activate () = if (G)
356+@Callable(aK)
357+func activate () = if (P)
336358 then throw("DApp is already active")
337- else if (!(containsElement([y, z, A, B], aC.callerPublicKey)))
359+ else if (!(containsElement([H, I, J, K], aK.callerPublicKey)))
338360 then throw("Only admin can call this function")
339361 else [BooleanEntry(c, true), DeleteEntry(p)]
340362
341363
342-@Verifier(bf)
343-func bg () = sigVerify(bf.bodyBytes, bf.proofs[0], bf.senderPublicKey)
364+@Verifier(bn)
365+func bo () = {
366+ let bp = if (sigVerify(bn.bodyBytes, bn.proofs[0], H))
367+ then 1
368+ else 0
369+ let bq = if (sigVerify(bn.bodyBytes, bn.proofs[1], I))
370+ then 1
371+ else 0
372+ let br = if (sigVerify(bn.bodyBytes, bn.proofs[2], J))
373+ then 1
374+ else 0
375+ (((bp + bq) + br) >= 2)
376+ }
344377

github/deemru/w8io/873ac7e 
129.94 ms