tx · 4ifFs1hma11qpSNjM9owrNeG6CUKCx2thg1xVuyKn3Mf

3MsmgWBZKrHwbVbSQiqmStRiFyg5hkfxxa2:  -0.00200000 Waves

2022.08.16 16:48 [2187109] smart account 3MsmgWBZKrHwbVbSQiqmStRiFyg5hkfxxa2 > SELF 0.00000000 Waves

{ "type": 13, "id": "4ifFs1hma11qpSNjM9owrNeG6CUKCx2thg1xVuyKn3Mf", "fee": 200000, "feeAssetId": null, "timestamp": 1660657753251, "version": 2, "chainId": 84, "sender": "3MsmgWBZKrHwbVbSQiqmStRiFyg5hkfxxa2", "senderPublicKey": "9TejtrnvgE7MvzMR4DcLbf3dqUzovyt4BKEmCsqha2z", "proofs": [ "2X7KPeXuzgKLq3QrEDYZMMTnKJxzeb8sLwQmGAVoBCdfySXey6bjpTroHWEU3EtKwEEEw8LSKsjd1xTVkH9eHb34" ], "script": "base64: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", "height": 2187109, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4wUrHpc4f9uftsjdXaUrGAPpJYzmpX5NzgcuQaxVigj7 Next: 7NGKFAHdZ1brP6G6FAX3RxEQmivcHsJLUspdPX6NJZhJ Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let heightEnd = valueOrErrorMessage(getInteger(this, "height_end"), "height_end is not specified in state")
55
66 let assetsString = valueOrErrorMessage(getString(this, "available_assets"), "Assets list is not specified in state")
77
88 func asSwapParamsSTRUCT (val) = match val {
99 case struct: (Int, Int, Int, Int, Int) =>
1010 struct
1111 case _ =>
1212 throw("fail to cast into Int")
1313 }
1414
1515
1616 let neutrinoContract = Address(base58'3N9be2mwrA52WJho6DiesZkk4351GvpnWuj')
1717
1818 let assets = split(assetsString, ",")
1919
2020 func keyUserBalance (userAddr) = makeString(["balance", toString(userAddr)], "_")
2121
2222
2323 func keyUserVoteKey (userAddr,vote) = makeString(["vote", userAddr, vote], "_")
2424
2525
2626 @Callable(contextObj)
2727 func castVote (vote) = if ((containsElement(assets, vote) == false))
2828 then throw("Incorrect vote!")
2929 else {
3030 let totalVoteKey = makeString(["vote", vote], "_")
3131 let userVoteKey = keyUserVoteKey(toString(contextObj.caller), vote)
3232 let $t011001294 = asSwapParamsSTRUCT(invoke(neutrinoContract, "swapParamsByUserSYSREADONLY", [toString(contextObj.caller), 0], nil))
3333 let limitMaxUsdn = $t011001294._1
3434 let limitSpent = $t011001294._2
3535 let blcks2LmtReset = $t011001294._3
3636 let gnsbtAmt = $t011001294._4
3737 let gnsbtAmtTotal = $t011001294._5
3838 let userVotingAmount = gnsbtAmt
3939 let voteTotalAmount = valueOrElse(getInteger(this, totalVoteKey), 0)
4040 let voteByUserAmount = valueOrElse(getInteger(this, userVoteKey), 0)
4141 if ((height >= heightEnd))
4242 then throw("vote finished")
4343 else [IntegerEntry(totalVoteKey, ((voteTotalAmount + userVotingAmount) - voteByUserAmount)), IntegerEntry(userVoteKey, userVotingAmount)]
4444 }
4545
4646

github/deemru/w8io/03bedc9 
25.87 ms