tx · DaDqRu6NEPojUuguq9J358nKdYLD3A2FqL1grQG95Lxu

3N5QUR83YdtSxhxoFjPCs3Ngh2BAVtFE7E1:  -0.01000000 Waves

2022.04.04 15:48 [1993864] smart account 3N5QUR83YdtSxhxoFjPCs3Ngh2BAVtFE7E1 > SELF 0.00000000 Waves

{ "type": 13, "id": "DaDqRu6NEPojUuguq9J358nKdYLD3A2FqL1grQG95Lxu", "fee": 1000000, "feeAssetId": null, "timestamp": 1649076531002, "version": 2, "chainId": 84, "sender": "3N5QUR83YdtSxhxoFjPCs3Ngh2BAVtFE7E1", "senderPublicKey": "J2hHGUChrqTSuvmLqT9DyWgn25qit1CEpMxEGDCSjuUi", "proofs": [ "4nd5HEVb4aVrFrqmVpK5tRCxxqoEBWbTjPKuAUJuo16CRpCv7i2jixmu5AQtQ7NJjRg95hEnT1KzwRofzkbqjrRi" ], "script": "base64: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", "height": 1993864, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: J3FSn1T8kkUFB6ZUx7Njd1iddvdh5oW3NNgcxEF8FnzM Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let heightEnd = valueOrErrorMessage(getInteger(this, "height_end"), "height_end is not specified in state")
5+
6+let assetsString = valueOrErrorMessage(getString(this, "available_assets"), "Assets list is not specified in state")
7+
8+func asSwapParamsSTRUCT (val) = match val {
9+ case struct: (Int, Int, Int, Int, Int) =>
10+ struct
11+ case _ =>
12+ throw("fail to cast into Int")
13+}
14+
15+
16+let neutrinoContract = Address(base58'3N9be2mwrA52WJho6DiesZkk4351GvpnWuj')
17+
18+let assets = split(assetsString, ",")
19+
20+func keyUserBalance (userAddr) = makeString(["balance", toString(userAddr)], "_")
21+
22+
23+func keyUserVoteKey (userAddr,vote) = makeString(["vote", userAddr, vote], "_")
24+
25+
26+@Callable(contextObj)
27+func castVote (vote) = if ((containsElement(assets, vote) == false))
28+ then throw("Incorrect vote!")
29+ else {
30+ let totalVoteKey = makeString(["vote", vote], "_")
31+ let userVoteKey = keyUserVoteKey(toString(contextObj.caller), vote)
32+ let $t011071301 = asSwapParamsSTRUCT(invoke(neutrinoContract, "swapParamsByUserSYSREADONLY", [toString(contextObj.caller), 0], nil))
33+ let limitMaxUsdn = $t011071301._1
34+ let limitSpent = $t011071301._2
35+ let blcks2LmtReset = $t011071301._3
36+ let gnsbtAmt = $t011071301._4
37+ let gnsbtAmtTotal = $t011071301._5
38+ let userVotingAmount = gnsbtAmt
39+ let voteTotalAmount = valueOrElse(getInteger(this, totalVoteKey), 0)
40+ let voteByUserAmount = valueOrElse(getInteger(this, userVoteKey), 0)
41+ if ((height >= heightEnd))
42+ then throw("vote finished")
43+ else [IntegerEntry(totalVoteKey, ((voteTotalAmount + userVotingAmount) - voteByUserAmount)), IntegerEntry(userVoteKey, userVotingAmount)]
44+ }
45+
46+

github/deemru/w8io/169f3d6 
23.38 ms