tx · Ffe4EsshJ73Zv75BkcYFc9D2Jrrj1Lmubts9MTFEfpHW

3MssRJsCtoAhkL5kNjxowQupbXVkfsK2d1J:  -0.01000000 Waves

2020.10.06 11:33 [1208470] smart account 3MssRJsCtoAhkL5kNjxowQupbXVkfsK2d1J > SELF 0.00000000 Waves

{ "type": 13, "id": "Ffe4EsshJ73Zv75BkcYFc9D2Jrrj1Lmubts9MTFEfpHW", "fee": 1000000, "feeAssetId": null, "timestamp": 1601973188868, "version": 1, "sender": "3MssRJsCtoAhkL5kNjxowQupbXVkfsK2d1J", "senderPublicKey": "6ykraGjmEJoiMGV9H8exLDGexkih6SbTzGnZi7CFSd3D", "proofs": [ "3MZJchDr7oHLF5qhxPPm13K1EZ4zdyD4wdS4V3Bz9rZpwsG4cKqKd9YUEaNB4mqx9XeYo1mRREzxZCsf4bLqt3nx" ], "script": "base64:AAIEAAAAAAAAAAkIAhIDCgEIEgAAAAADAAAAAAZOU0JUaWQJAAJZAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMCAAAABk5TQlRpZAIAAAAgTlNCVGlkIGlzIG5vdCBzcGVjaWZpZWQgaW4gc3RhdGUAAAAACWhlaWdodEVuZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMCAAAACmhlaWdodF9lbmQCAAAAJGhlaWdodF9lbmQgaXMgbm90IHNwZWNpZmllZCBpbiBzdGF0ZQEAAAAOa2V5VXNlckJhbGFuY2UAAAABAAAACHVzZXJBZGRyCQAEuQAAAAIJAARMAAAAAgIAAAAHYmFsYW5jZQkABEwAAAACCQAEJQAAAAEFAAAACHVzZXJBZGRyBQAAAANuaWwCAAAAAV8AAAACAAAACmNvbnRleHRPYmoBAAAACGNhc3RWb3RlAAAAAQAAAAR2b3RlBAAAAAh2b2l0ZUtleQkABLkAAAACCQAETAAAAAICAAAABHZvdGUJAARMAAAAAgUAAAAEdm90ZQUAAAADbmlsAgAAAAFfBAAAAA51c2VyQmFsYW5jZUtleQkBAAAADmtleVVzZXJCYWxhbmNlAAAAAQgFAAAACmNvbnRleHRPYmoAAAAGY2FsbGVyBAAAAAdwYXltZW50CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAApjb250ZXh0T2JqAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAA9hc3NldElkUmVjZWl2ZWQIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQEAAAAEnRva2VuUmVjZWl2ZUFtb3VudAgFAAAAB3BheW1lbnQAAAAGYW1vdW50BAAAAA52b3RlTnVtYmVyVGhpcwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAAh2b2l0ZUtleQAAAAAAAAAAAAQAAAATY29udHJhY3RVc2VyQmFsYW5jZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA51c2VyQmFsYW5jZUtleQAAAAAAAAAAAAMJAQAAAAIhPQAAAAIFAAAAD2Fzc2V0SWRSZWNlaXZlZAUAAAAGTlNCVGlkCQAAAgAAAAECAAAAEGluY29ycmVjdCBhc3NldHMDCQAAZwAAAAIFAAAABmhlaWdodAUAAAAJaGVpZ2h0RW5kCQAAAgAAAAECAAAADXZvdGUgZmluaXNoZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAACHZvaXRlS2V5CQAAZAAAAAIFAAAADnZvdGVOdW1iZXJUaGlzBQAAABJ0b2tlblJlY2VpdmVBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADnVzZXJCYWxhbmNlS2V5CQAAZAAAAAIFAAAAE2NvbnRyYWN0VXNlckJhbGFuY2UFAAAAEnRva2VuUmVjZWl2ZUFtb3VudAUAAAADbmlsAAAACmNvbnRleHRPYmoBAAAACHdpdGhkcmF3AAAAAAQAAAAOdXNlckJhbGFuY2VLZXkJAQAAAA5rZXlVc2VyQmFsYW5jZQAAAAEIBQAAAApjb250ZXh0T2JqAAAABmNhbGxlcgMJAABmAAAAAgUAAAAJaGVpZ2h0RW5kBQAAAAZoZWlnaHQJAAACAAAAAQIAAAAPdm90ZSBpbiBwcm9jZXNzBAAAAA1jYWxsZXJCYWxhbmNlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAADnVzZXJCYWxhbmNlS2V5AAAAAAAAAAAAAwkAAGcAAAACAAAAAAAAAAAABQAAAA1jYWxsZXJCYWxhbmNlCQAAAgAAAAECAAAAEGJhbGFuY2UgaXMgZW1wdHkJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAACmNvbnRleHRPYmoAAAAGY2FsbGVyBQAAAA1jYWxsZXJCYWxhbmNlBQAAAAZOU0JUaWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADnVzZXJCYWxhbmNlS2V5AAAAAAAAAAAABQAAAANuaWwAAAAAe0uENA==", "chainId": 84, "height": 1208470, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: Gb1D7zUb68USY97WKFr9dxeTMMFq2q6HjMtznbkhYudt Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 4 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let NSBTid = fromBase58String(valueOrErrorMessage(getString(this, "NSBTid"), "NSBTid is not specified in state"))
5+
6+let heightEnd = valueOrErrorMessage(getInteger(this, "height_end"), "height_end is not specified in state")
7+
8+func keyUserBalance (userAddr) = makeString(["balance", toString(userAddr)], "_")
9+
10+
11+@Callable(contextObj)
12+func castVote (vote) = {
13+ let voiteKey = makeString(["vote", vote], "_")
14+ let userBalanceKey = keyUserBalance(contextObj.caller)
15+ let payment = value(contextObj.payments[0])
16+ let assetIdReceived = payment.assetId
17+ let tokenReceiveAmount = payment.amount
18+ let voteNumberThis = valueOrElse(getInteger(this, voiteKey), 0)
19+ let contractUserBalance = valueOrElse(getInteger(this, userBalanceKey), 0)
20+ if ((assetIdReceived != NSBTid))
21+ then throw("incorrect assets")
22+ else if ((height >= heightEnd))
23+ then throw("vote finished")
24+ else [IntegerEntry(voiteKey, (voteNumberThis + tokenReceiveAmount)), IntegerEntry(userBalanceKey, (contractUserBalance + tokenReceiveAmount))]
25+ }
26+
27+
28+
29+@Callable(contextObj)
30+func withdraw () = {
31+ let userBalanceKey = keyUserBalance(contextObj.caller)
32+ if ((heightEnd > height))
33+ then throw("vote in process")
34+ else {
35+ let callerBalance = valueOrElse(getInteger(this, userBalanceKey), 0)
36+ if ((0 >= callerBalance))
37+ then throw("balance is empty")
38+ else [ScriptTransfer(contextObj.caller, callerBalance, NSBTid), IntegerEntry(userBalanceKey, 0)]
39+ }
40+ }
41+
42+

github/deemru/w8io/6500d08 
14.85 ms