tx · 4wUrHpc4f9uftsjdXaUrGAPpJYzmpX5NzgcuQaxVigj7 3MsmgWBZKrHwbVbSQiqmStRiFyg5hkfxxa2: -0.00200000 Waves 2022.08.16 16:43 [2187105] smart account 3MsmgWBZKrHwbVbSQiqmStRiFyg5hkfxxa2 > SELF 0.00000000 Waves
{ "type": 13, "id": "4wUrHpc4f9uftsjdXaUrGAPpJYzmpX5NzgcuQaxVigj7", "fee": 200000, "feeAssetId": null, "timestamp": 1660657453622, "version": 2, "chainId": 84, "sender": "3MsmgWBZKrHwbVbSQiqmStRiFyg5hkfxxa2", "senderPublicKey": "9TejtrnvgE7MvzMR4DcLbf3dqUzovyt4BKEmCsqha2z", "proofs": [ "4PCp7C58U3TcEBcrXuVqA784M9bFfeSKUpK1FeV7xPfRex8dpkpgcp7Yf7bQSdn1XoqbquzSmgBXn3tYBRG4bUpv" ], "script": "base64:AAIFAAAAAAAAAAcIAhIDCgEIAAAABwAAAAAJaGVpZ2h0RW5kCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwIAAAAKaGVpZ2h0X2VuZAIAAAAkaGVpZ2h0X2VuZCBpcyBub3Qgc3BlY2lmaWVkIGluIHN0YXRlAAAAAAxhc3NldHNTdHJpbmcJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzAgAAABBhdmFpbGFibGVfYXNzZXRzAgAAACVBc3NldHMgbGlzdCBpcyBub3Qgc3BlY2lmaWVkIGluIHN0YXRlAQAAABJhc1N3YXBQYXJhbXNTVFJVQ1QAAAABAAAAA3ZhbAQAAAAHJG1hdGNoMAUAAAADdmFsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABkoSW50LCBJbnQsIEludCwgSW50LCBJbnQpBAAAAAZzdHJ1Y3QFAAAAByRtYXRjaDAFAAAABnN0cnVjdAkAAAIAAAABAgAAABVmYWlsIHRvIGNhc3QgaW50byBJbnQAAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVTX5YnYYiLrMWyfu8rmkonHDc0g4nCta94AAAAABmFzc2V0cwkABLUAAAACBQAAAAxhc3NldHNTdHJpbmcCAAAAASwBAAAADmtleVVzZXJCYWxhbmNlAAAAAQAAAAh1c2VyQWRkcgkABLkAAAACCQAETAAAAAICAAAAB2JhbGFuY2UJAARMAAAAAgkABCUAAAABBQAAAAh1c2VyQWRkcgUAAAADbmlsAgAAAAFfAQAAAA5rZXlVc2VyVm90ZUtleQAAAAIAAAAIdXNlckFkZHIAAAAEdm90ZQkABLkAAAACCQAETAAAAAICAAAABHZvdGUJAARMAAAAAgUAAAAIdXNlckFkZHIJAARMAAAAAgUAAAAEdm90ZQUAAAADbmlsAgAAAAFfAAAAAQAAAApjb250ZXh0T2JqAQAAAAhjYXN0Vm90ZQAAAAEAAAAEdm90ZQMJAAAAAAAAAgkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIFAAAABmFzc2V0cwUAAAAEdm90ZQcJAAACAAAAAQIAAAAPSW5jb3JyZWN0IHZvdGUhBAAAAAx0b3RhbFZvdGVLZXkJAAS5AAAAAgkABEwAAAACAgAAAAR2b3RlCQAETAAAAAIFAAAABHZvdGUFAAAAA25pbAIAAAABXwQAAAALdXNlclZvdGVLZXkJAQAAAA5rZXlVc2VyVm90ZUtleQAAAAIJAAQlAAAAAQgFAAAACmNvbnRleHRPYmoAAAAGY2FsbGVyBQAAAAR2b3RlBAAAAAskdDAxMTAwMTI5NAkBAAAAEmFzU3dhcFBhcmFtc1NUUlVDVAAAAAEJAAP8AAAABAUAAAAQbmV1dHJpbm9Db250cmFjdAIAAAAbc3dhcFBhcmFtc0J5VXNlclNZU1JFQURPTkxZCQAETAAAAAIJAAQlAAAAAQgFAAAACmNvbnRleHRPYmoAAAAGY2FsbGVyCQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAUAAAADbmlsBAAAAAxsaW1pdE1heFVzZG4IBQAAAAskdDAxMTAwMTI5NAAAAAJfMQQAAAAKbGltaXRTcGVudAgFAAAACyR0MDExMDAxMjk0AAAAAl8yBAAAAA5ibGNrczJMbXRSZXNldAgFAAAACyR0MDExMDAxMjk0AAAAAl8zBAAAAAhnbnNidEFtdAgFAAAACyR0MDExMDAxMjk0AAAAAl80BAAAAA1nbnNidEFtdFRvdGFsCAUAAAALJHQwMTEwMDEyOTQAAAACXzUEAAAAEHVzZXJWb3RpbmdBbW91bnQFAAAACGduc2J0QW10BAAAAA92b3RlVG90YWxBbW91bnQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAMdG90YWxWb3RlS2V5AAAAAAAAAAAABAAAABB2b3RlQnlVc2VyQW1vdW50CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAC3VzZXJWb3RlS2V5AAAAAAAAAAAAAwkAAGcAAAACBQAAAAZoZWlnaHQFAAAACWhlaWdodEVuZAkAAAIAAAABAgAAAA12b3RlIGZpbmlzaGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAx0b3RhbFZvdGVLZXkJAABlAAAAAgkAAGQAAAACBQAAAA92b3RlVG90YWxBbW91bnQFAAAAEHVzZXJWb3RpbmdBbW91bnQFAAAAEHZvdGVCeVVzZXJBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC3VzZXJWb3RlS2V5BQAAABB1c2VyVm90aW5nQW1vdW50BQAAAANuaWwAAAAAAa649w==", "height": 2187105, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: gveEGYtSia13zd5fv4eDXMKfJZX2hAZmJKZQF3Y1Tns Next: 4ifFs1hma11qpSNjM9owrNeG6CUKCx2thg1xVuyKn3Mf Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let heightEnd = valueOrErrorMessage(getInteger(this, "height_end"), "height_end is not specified in state") | |
5 | 5 | ||
6 | 6 | let assetsString = valueOrErrorMessage(getString(this, "available_assets"), "Assets list is not specified in state") | |
7 | 7 | ||
8 | 8 | func asSwapParamsSTRUCT (val) = match val { | |
9 | 9 | case struct: (Int, Int, Int, Int, Int) => | |
10 | 10 | struct | |
11 | 11 | case _ => | |
12 | 12 | throw("fail to cast into Int") | |
13 | 13 | } | |
14 | 14 | ||
15 | 15 | ||
16 | 16 | let neutrinoContract = Address(base58'3N9be2mwrA52WJho6DiesZkk4351GvpnWuj') | |
17 | 17 | ||
18 | 18 | let assets = split(assetsString, ",") | |
19 | 19 | ||
20 | 20 | func keyUserBalance (userAddr) = makeString(["balance", toString(userAddr)], "_") | |
21 | 21 | ||
22 | 22 | ||
23 | 23 | func keyUserVoteKey (userAddr,vote) = makeString(["vote", userAddr, vote], "_") | |
24 | 24 | ||
25 | 25 | ||
26 | 26 | @Callable(contextObj) | |
27 | 27 | func castVote (vote) = if ((containsElement(assets, vote) == false)) | |
28 | 28 | then throw("Incorrect vote!") | |
29 | 29 | else { | |
30 | 30 | let totalVoteKey = makeString(["vote", vote], "_") | |
31 | 31 | let userVoteKey = keyUserVoteKey(toString(contextObj.caller), vote) | |
32 | 32 | let $t011001294 = asSwapParamsSTRUCT(invoke(neutrinoContract, "swapParamsByUserSYSREADONLY", [toString(contextObj.caller), 0], nil)) | |
33 | 33 | let limitMaxUsdn = $t011001294._1 | |
34 | 34 | let limitSpent = $t011001294._2 | |
35 | 35 | let blcks2LmtReset = $t011001294._3 | |
36 | 36 | let gnsbtAmt = $t011001294._4 | |
37 | 37 | let gnsbtAmtTotal = $t011001294._5 | |
38 | 38 | let userVotingAmount = gnsbtAmt | |
39 | 39 | let voteTotalAmount = valueOrElse(getInteger(this, totalVoteKey), 0) | |
40 | 40 | let voteByUserAmount = valueOrElse(getInteger(this, userVoteKey), 0) | |
41 | 41 | if ((height >= heightEnd)) | |
42 | 42 | then throw("vote finished") | |
43 | 43 | else [IntegerEntry(totalVoteKey, ((voteTotalAmount + userVotingAmount) - voteByUserAmount)), IntegerEntry(userVoteKey, userVotingAmount)] | |
44 | 44 | } | |
45 | 45 | ||
46 | 46 |
github/deemru/w8io/169f3d6 26.64 ms ◑