tx · 8Z8WHoZXjWQ7338p2LtYh8DNKJrfo34TQAqfsgcRB3Ve

3NBLecFWuYaQuc56Nt6nZm8jdPt9f8vfyFr:  -0.01400000 Waves

2023.03.13 13:03 [2488109] smart account 3NBLecFWuYaQuc56Nt6nZm8jdPt9f8vfyFr > SELF 0.00000000 Waves

{ "type": 13, "id": "8Z8WHoZXjWQ7338p2LtYh8DNKJrfo34TQAqfsgcRB3Ve", "fee": 1400000, "feeAssetId": null, "timestamp": 1678701852628, "version": 2, "chainId": 84, "sender": "3NBLecFWuYaQuc56Nt6nZm8jdPt9f8vfyFr", "senderPublicKey": "GV3FbBXZru1WpaCa9x1zhwSWrXSDrxKMVEV7BML6EzY1", "proofs": [ "5F2XhtnoFHzvUXkE5yVshFzAJb7ByhA9inke1aum8Dbfxnq6dTvNoKcPm5Jsr8wjAcPu7v2561AWbeP9b5ZP2zEE" ], "script": "base64:AAIEAAAAAAAAAAoIAhIECgIBARIAAAAADQAAAAAidm90aW5nX3RpbWVzdGFtcF9jb250cm9sbGVyX3B1YmtleQEAAAAg5g4cxIx/mBTW7Lp5wRrLBngjYDPW920p4vT6l2ZrPEIAAAAAEmNvbnRyb2xsZXJfYWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAidm90aW5nX3RpbWVzdGFtcF9jb250cm9sbGVyX3B1YmtleQAAAAAEVk9URQEAAAAgCGWEtw/wimoa8+Jo6C4IkCTD0ydYA80s9i5eC9/aFaQAAAAADGxhdW5jaF9lcnJvcgIAAAAkRGFwcCB3aWxsIHN0YXJ0IFZvdGluZyBhdCBUaW1lc3RhbXAgAAAAAANtc2cCAAAALTxoMT5Zb3UgVm90ZSBTdWJtaXR0ZWQgU3VjY2Vzc2Z1bGx5ITwvaDE+PGJyPgAAAAAJcHltdGVycm9yAgAAACxEQXBwIE5lZWQgMSBWT1RFIFRva2VuIGFzIEF0dGFjaCBwYXltZW50WzFdLgAAAAALbWluYmFsZXJyb3ICAAAAXk1pbi4gMSBWT1RFIHJlcXVpcmVkIG9uIFlvdXIgQWRkcmVzcyB0byBWb3RlLiBQbGVhc2UgTWludCBvciBob2xkIG1pbi4gMSBWT1RFIG9uIHRoaXMgQWRkcmVzcy4AAAAACGFzc2V0ZXJyCQABLAAAAAIJAAEsAAAAAgIAAAAmSW5jb3JyZWN0IGFzc2V0IGF0dGFjaCwgcGxlYXNlIGF0dGFjaCAJAAJYAAAAAQUAAAAEVk9URQIAAAAOIEFzc2V0SUQgT25seS4AAAAACW1pbmFtdGVycgIAAAAjUGxlYXNlIEF0dGFjaCBFeGFjdCAxIFZPVEUgVG8gVm90ZS4AAAAAB3ZvdGVFcnICAAAAHVZvdGluZyBpcyBPdmVyIGZvciB0aGlzIERhcHAuAAAAAA9BbHJlYWR5Vm90ZWRFcnICAAAAKVlvdSBoYXZlIEFscmVhZHkgVm90ZWQgZnJvbSB0aGlzIGFkZHJlc3MuAAAAABJQcmV2aW91c3RvdGFsdm90ZXMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAALVG90YWxfVm90ZXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAAAAAAKdG90YWx2b3RlcwkAAGQAAAACBQAAABJQcmV2aW91c3RvdGFsdm90ZXMAAAAAAAAAAAEAAAACAAAAAWkBAAAAE1NldFZvdGluZ1RpbWVTdGFtcHMAAAACAAAAFlZvdGluZ19TdGFydF9UaW1lU3RhbXAAAAAUVm90aW5nX0VuZF9UaW1lU3RhbXAEAAAAB1N0YXJ0VFMFAAAAFlZvdGluZ19TdGFydF9UaW1lU3RhbXAEAAAABUVuZFRTBQAAABRWb3RpbmdfRW5kX1RpbWVTdGFtcAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAASY29udHJvbGxlcl9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAEmNvbnRyb2xsZXJfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAWVm90aW5nX1N0YXJ0X1RpbWVTdGFtcAUAAAAHU3RhcnRUUwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAUVm90aW5nX0VuZF9UaW1lU3RhbXAFAAAABUVuZFRTBQAAAANuaWwAAAABaQEAAAAHT3B0aW9uMQAAAAAEAAAAB1ZvdGVBc3QCAAAACE9QVElPTl8xBAAAAAdTdGFydFRTCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABZWb3RpbmdfU3RhcnRfVGltZVN0YW1wBAAAAAVFbmRUUwkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAUVm90aW5nX0VuZF9UaW1lU3RhbXAEAAAABnB1YmtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVu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", "height": 2488109, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2X9nmjTMtSMHrKJ7MYWetJn6NXHp5JMzdeUBcoZYq5Cz Next: BdWYegBiBToeTDAm8ubNLjSwNNCsD8EcYHQJjtEykGW8 Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let voting_timestamp_controller_pubkey = base58'GV3FbBXZru1WpaCa9x1zhwSWrXSDrxKMVEV7BML6EzY1'
5+
6+let controller_address = addressFromPublicKey(voting_timestamp_controller_pubkey)
7+
48 let VOTE = base58'Zn3cLHW7aAVPm5aACcTjvg7e7iEy2cKDtbowok5qa9H'
59
6-let StartTS = 1679270400000
7-
8-let EndTS = 1680566400000
9-
10-let launch_error = ("Dapp will start Voting at Timestamp " + toString(StartTS))
10+let launch_error = "Dapp will start Voting at Timestamp "
1111
1212 let msg = "<h1>You Vote Submitted Successfully!</h1><br>"
1313
3333 let totalvotes = (Previoustotalvotes + 1)
3434
3535 @Callable(i)
36+func SetVotingTimeStamps (Voting_Start_TimeStamp,Voting_End_TimeStamp) = {
37+ let StartTS = Voting_Start_TimeStamp
38+ let EndTS = Voting_End_TimeStamp
39+ if ((i.caller != controller_address))
40+ then throw((("This Address is not Authorized. Only " + toString(controller_address)) + " is Authorized Address to Sign it."))
41+ else [IntegerEntry("Voting_Start_TimeStamp", StartTS), IntegerEntry("Voting_End_TimeStamp", EndTS)]
42+ }
43+
44+
45+
46+@Callable(i)
3647 func Option1 () = {
3748 let VoteAst = "OPTION_1"
49+ let StartTS = getIntegerValue(this, "Voting_Start_TimeStamp")
50+ let EndTS = getIntegerValue(this, "Voting_End_TimeStamp")
51+ let pubkey = toBase58String(i.caller.bytes)
3852 let pmt = if ((size(i.payments) == 1))
3953 then i.payments[0]
4054 else throw(pymterror)
41- let pubkey = toBase58String(i.caller.bytes)
4255 let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), VOTE)
4356 let Previous_User_total_Votes = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
4457 case a: Int =>
6982 }
7083 let ATVO = (FTVO + 1)
7184 if ((StartTS > lastBlock.timestamp))
72- then throw(launch_error)
85+ then throw((launch_error + toString(StartTS)))
7386 else if ((1 > assetbal))
7487 then throw(minbalerror)
7588 else if ((pmt.assetId != VOTE))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let voting_timestamp_controller_pubkey = base58'GV3FbBXZru1WpaCa9x1zhwSWrXSDrxKMVEV7BML6EzY1'
5+
6+let controller_address = addressFromPublicKey(voting_timestamp_controller_pubkey)
7+
48 let VOTE = base58'Zn3cLHW7aAVPm5aACcTjvg7e7iEy2cKDtbowok5qa9H'
59
6-let StartTS = 1679270400000
7-
8-let EndTS = 1680566400000
9-
10-let launch_error = ("Dapp will start Voting at Timestamp " + toString(StartTS))
10+let launch_error = "Dapp will start Voting at Timestamp "
1111
1212 let msg = "<h1>You Vote Submitted Successfully!</h1><br>"
1313
1414 let pymterror = "DApp Need 1 VOTE Token as Attach payment[1]."
1515
1616 let minbalerror = "Min. 1 VOTE required on Your Address to Vote. Please Mint or hold min. 1 VOTE on this Address."
1717
1818 let asseterr = (("Incorrect asset attach, please attach " + toBase58String(VOTE)) + " AssetID Only.")
1919
2020 let minamterr = "Please Attach Exact 1 VOTE To Vote."
2121
2222 let voteErr = "Voting is Over for this Dapp."
2323
2424 let AlreadyVotedErr = "You have Already Voted from this address."
2525
2626 let Previoustotalvotes = match getInteger(this, "Total_Votes") {
2727 case a: Int =>
2828 a
2929 case _ =>
3030 0
3131 }
3232
3333 let totalvotes = (Previoustotalvotes + 1)
3434
3535 @Callable(i)
36+func SetVotingTimeStamps (Voting_Start_TimeStamp,Voting_End_TimeStamp) = {
37+ let StartTS = Voting_Start_TimeStamp
38+ let EndTS = Voting_End_TimeStamp
39+ if ((i.caller != controller_address))
40+ then throw((("This Address is not Authorized. Only " + toString(controller_address)) + " is Authorized Address to Sign it."))
41+ else [IntegerEntry("Voting_Start_TimeStamp", StartTS), IntegerEntry("Voting_End_TimeStamp", EndTS)]
42+ }
43+
44+
45+
46+@Callable(i)
3647 func Option1 () = {
3748 let VoteAst = "OPTION_1"
49+ let StartTS = getIntegerValue(this, "Voting_Start_TimeStamp")
50+ let EndTS = getIntegerValue(this, "Voting_End_TimeStamp")
51+ let pubkey = toBase58String(i.caller.bytes)
3852 let pmt = if ((size(i.payments) == 1))
3953 then i.payments[0]
4054 else throw(pymterror)
41- let pubkey = toBase58String(i.caller.bytes)
4255 let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), VOTE)
4356 let Previous_User_total_Votes = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
4457 case a: Int =>
4558 a
4659 case _ =>
4760 0
4861 }
4962 let User_total_Votes = (Previous_User_total_Votes + 1)
5063 let UWVFA = match getInteger(this, ((("User_Total_Votes_" + pubkey) + "-") + VoteAst)) {
5164 case a: Int =>
5265 a
5366 case _ =>
5467 0
5568 }
5669 let UTWVFA = (UWVFA + 1)
5770 let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
5871 case a: Int =>
5972 a
6073 case _ =>
6174 0
6275 }
6376 let UTVFA = (FUVFA + 1)
6477 let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
6578 case a: Int =>
6679 a
6780 case _ =>
6881 0
6982 }
7083 let ATVO = (FTVO + 1)
7184 if ((StartTS > lastBlock.timestamp))
72- then throw(launch_error)
85+ then throw((launch_error + toString(StartTS)))
7386 else if ((1 > assetbal))
7487 then throw(minbalerror)
7588 else if ((pmt.assetId != VOTE))
7689 then throw(asseterr)
7790 else if ((pmt.amount != 1))
7891 then throw(minamterr)
7992 else if ((User_total_Votes > 1))
8093 then throw(AlreadyVotedErr)
8194 else if ((EndTS > lastBlock.timestamp))
8295 then throw(voteErr)
8396 else [IntegerEntry("Total_Votes", totalvotes), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(("User_Total_Votes_" + pubkey), User_total_Votes), IntegerEntry(((("User_Total_Votes_" + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
8497 }
8598
8699
87100 @Verifier(tx)
88101 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
89102

github/deemru/w8io/026f985 
38.94 ms