tx · CJjtMaHUefH1dSF8RES7Vatowpk5qgg5Hvbipr7xE8XF 3N2ZtCEGncHQjQF4g4oQBDeRRZoUQ3kJ7Nm: -0.01400000 Waves 2023.05.15 18:53 [2579290] smart account 3N2ZtCEGncHQjQF4g4oQBDeRRZoUQ3kJ7Nm > SELF 0.00000000 Waves
{ "type": 13, "id": "CJjtMaHUefH1dSF8RES7Vatowpk5qgg5Hvbipr7xE8XF", "fee": 1400000, "feeAssetId": null, "timestamp": 1684166055500, "version": 2, "chainId": 84, "sender": "3N2ZtCEGncHQjQF4g4oQBDeRRZoUQ3kJ7Nm", "senderPublicKey": "EKmhAeU9yA52DSvBnr1WtWQWyyiCrauDYkmgnTns7ZkA", "proofs": [ "5gbYukMF4bpMip3PgQuNLpatH93m64ruaCfLJLPEFzk6KH5VsfYtkPk68jcGmWgxTVqnc4kXNEhuLuxr5umEguHt" ], "script": "base64:AAIFAAAAAAAAAAQIAhIAAAAAAAAAAAEAAAABaQEAAAAEY2FsbAAAAAAEAAAADHVzZXJfYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB0FkZHJlc3MFAAAADHVzZXJfYWRkcmVzcwUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXl8ceIe", "height": 2579290, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ErCTLWnFrjmsYTE2GboHXfo3bAGUF2iBAjZ7yKSBR5Yy Next: EQVAErdGyzdWtMczmyeBqguz3qypGsGsBTZMkPZgXVdR Diff:
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let A4AStakingDApp = addressFromStringValue("3JviWhscNmUduEjTYLBYoPnrf4c8yegPi3P") | |
5 | - | ||
6 | - | let voting_timestamp_controller_pubkey = base58'7VMxW6Sdd9Bk2he7zPSuAcKEQ9XM8kyV71enGvHLhmN2' | |
7 | - | ||
8 | - | let controller_address = addressFromPublicKey(voting_timestamp_controller_pubkey) | |
9 | - | ||
10 | - | let launch_error = "Dapp will start Voting at Timestamp " | |
11 | - | ||
12 | - | let msg = "<h1>Your Vote Submitted Successfully!</h1><br>" | |
13 | - | ||
14 | - | let AlreadyVotedError = "This Address Already participated for Voting in this Proposal." | |
15 | - | ||
16 | - | let voteErr = "Voting is Over for this Dapp." | |
17 | - | ||
18 | - | @Callable(i) | |
19 | - | func SetVotingTimeStamps (Proposal,Voting_Start_TimeStamp,Voting_End_TimeStamp) = { | |
20 | - | let StartTS = Voting_Start_TimeStamp | |
21 | - | let EndTS = Voting_End_TimeStamp | |
22 | - | let readtotalStakedA4A = getIntegerValue(A4AStakingDApp, "Staked_Amount") | |
23 | - | let QuorumValue = fraction(readtotalStakedA4A, 1, 3) | |
24 | - | let pubkey = toBase58String(i.caller.bytes) | |
25 | - | let Previoustotalproposals = match getInteger(this, "Total_Proposals") { | |
26 | - | case a: Int => | |
27 | - | a | |
28 | - | case _ => | |
29 | - | 0 | |
30 | - | } | |
31 | - | let totalproposals = (Previoustotalproposals + 1) | |
32 | - | if ((size(Proposal) > 5100)) | |
33 | - | then throw("Subject Char Limits are Over. Reduce length less than 5100 Char.") | |
34 | - | else if ((i.caller != controller_address)) | |
35 | - | then throw((("This Address is not Authorized. Only " + toString(controller_address)) + " is Authorized Address to Sign it.")) | |
36 | - | else [StringEntry(("Proposal_Text_" + toString(totalproposals)), Proposal), IntegerEntry("Total_Proposals", totalproposals), StringEntry(("Proposer_" + toString(totalproposals)), pubkey), IntegerEntry(("Voting_Start_TimeStamp_" + toString(totalproposals)), StartTS), IntegerEntry(("Voting_End_TimeStamp_" + toString(totalproposals)), EndTS), IntegerEntry(("Quorum_" + toString(totalproposals)), QuorumValue), IntegerEntry(("Total_Votes_" + toString(totalproposals)), 0), IntegerEntry(("Total_No_" + toString(totalproposals)), 0), IntegerEntry(("Total_Yes_" + toString(totalproposals)), 0)] | |
37 | - | } | |
38 | - | ||
39 | 4 | ||
40 | 5 | ||
41 | 6 | @Callable(i) | |
42 | - | func Yes (Porposal_ID) = { | |
43 | - | let VoteAst = "Yes" | |
44 | - | let StartTS = getIntegerValue(this, ("Voting_Start_TimeStamp_" + toString(Porposal_ID))) | |
45 | - | let EndTS = getIntegerValue(this, ("Voting_End_TimeStamp_" + toString(Porposal_ID))) | |
46 | - | let pubkey = toBase58String(i.caller.bytes) | |
47 | - | let readA4AStakingAmount = valueOrErrorMessage(getInteger(A4AStakingDApp, ("Deposit_Amount_Of_" + pubkey)), "Address not found in A4A Staking.") | |
48 | - | let Previoustotalvotes = match getInteger(this, ("Total_Votes_" + toString(Porposal_ID))) { | |
49 | - | case a: Int => | |
50 | - | a | |
51 | - | case _ => | |
52 | - | 0 | |
53 | - | } | |
54 | - | let totalvotes = (Previoustotalvotes + readA4AStakingAmount) | |
55 | - | let FTVO = match getInteger(this, ((("Total_" + VoteAst) + "_") + toString(Porposal_ID))) { | |
56 | - | case a: Int => | |
57 | - | a | |
58 | - | case _ => | |
59 | - | 0 | |
60 | - | } | |
61 | - | let ATVO = (FTVO + readA4AStakingAmount) | |
62 | - | let PreviousUserCountforVoting = match getInteger(this, ((pubkey + "_") + toString(Porposal_ID))) { | |
63 | - | case a: Int => | |
64 | - | a | |
65 | - | case _ => | |
66 | - | 0 | |
67 | - | } | |
68 | - | let LatestUserCountforVoting = (PreviousUserCountforVoting + 1) | |
69 | - | if ((StartTS > lastBlock.timestamp)) | |
70 | - | then throw((launch_error + toString(StartTS))) | |
71 | - | else if ((lastBlock.timestamp > EndTS)) | |
72 | - | then throw(voteErr) | |
73 | - | else if ((LatestUserCountforVoting > 1)) | |
74 | - | then throw(AlreadyVotedError) | |
75 | - | else [IntegerEntry(("Total_Votes_" + toString(Porposal_ID)), totalvotes), IntegerEntry(((("Total_" + VoteAst) + "_") + toString(Porposal_ID)), ATVO), IntegerEntry(((pubkey + "_") + toString(Porposal_ID)), LatestUserCountforVoting), StringEntry("message", msg)] | |
76 | - | } | |
77 | - | ||
78 | - | ||
79 | - | ||
80 | - | @Callable(i) | |
81 | - | func No (Porposal_ID) = { | |
82 | - | let VoteAst = "No" | |
83 | - | let StartTS = getIntegerValue(this, ("Voting_Start_TimeStamp_" + toString(Porposal_ID))) | |
84 | - | let EndTS = getIntegerValue(this, ("Voting_End_TimeStamp_" + toString(Porposal_ID))) | |
85 | - | let pubkey = toBase58String(i.caller.bytes) | |
86 | - | let readA4AStakingAmount = valueOrErrorMessage(getInteger(A4AStakingDApp, ("Deposit_Amount_Of_" + pubkey)), "Address not found in A4A Staking.") | |
87 | - | let Previoustotalvotes = match getInteger(this, ("Total_Votes_" + toString(Porposal_ID))) { | |
88 | - | case a: Int => | |
89 | - | a | |
90 | - | case _ => | |
91 | - | 0 | |
92 | - | } | |
93 | - | let totalvotes = (Previoustotalvotes + readA4AStakingAmount) | |
94 | - | let FTVO = match getInteger(this, ((("Total_" + VoteAst) + "_") + toString(Porposal_ID))) { | |
95 | - | case a: Int => | |
96 | - | a | |
97 | - | case _ => | |
98 | - | 0 | |
99 | - | } | |
100 | - | let ATVO = (FTVO + readA4AStakingAmount) | |
101 | - | let PreviousUserCountforVoting = match getInteger(this, ((pubkey + "_") + toString(Porposal_ID))) { | |
102 | - | case a: Int => | |
103 | - | a | |
104 | - | case _ => | |
105 | - | 0 | |
106 | - | } | |
107 | - | let LatestUserCountforVoting = (PreviousUserCountforVoting + 1) | |
108 | - | if ((StartTS > lastBlock.timestamp)) | |
109 | - | then throw((launch_error + toString(StartTS))) | |
110 | - | else if ((lastBlock.timestamp > EndTS)) | |
111 | - | then throw(voteErr) | |
112 | - | else if ((LatestUserCountforVoting > 1)) | |
113 | - | then throw(AlreadyVotedError) | |
114 | - | else [IntegerEntry(("Total_Votes_" + toString(Porposal_ID)), totalvotes), IntegerEntry(((("Total_" + VoteAst) + "_") + toString(Porposal_ID)), ATVO), IntegerEntry(((pubkey + "_") + toString(Porposal_ID)), LatestUserCountforVoting), StringEntry("message", msg)] | |
7 | + | func call () = { | |
8 | + | let user_address = toBase58String(i.caller.bytes) | |
9 | + | [StringEntry("Address", user_address)] | |
115 | 10 | } | |
116 | 11 | ||
117 | 12 |
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let A4AStakingDApp = addressFromStringValue("3JviWhscNmUduEjTYLBYoPnrf4c8yegPi3P") | |
5 | - | ||
6 | - | let voting_timestamp_controller_pubkey = base58'7VMxW6Sdd9Bk2he7zPSuAcKEQ9XM8kyV71enGvHLhmN2' | |
7 | - | ||
8 | - | let controller_address = addressFromPublicKey(voting_timestamp_controller_pubkey) | |
9 | - | ||
10 | - | let launch_error = "Dapp will start Voting at Timestamp " | |
11 | - | ||
12 | - | let msg = "<h1>Your Vote Submitted Successfully!</h1><br>" | |
13 | - | ||
14 | - | let AlreadyVotedError = "This Address Already participated for Voting in this Proposal." | |
15 | - | ||
16 | - | let voteErr = "Voting is Over for this Dapp." | |
17 | - | ||
18 | - | @Callable(i) | |
19 | - | func SetVotingTimeStamps (Proposal,Voting_Start_TimeStamp,Voting_End_TimeStamp) = { | |
20 | - | let StartTS = Voting_Start_TimeStamp | |
21 | - | let EndTS = Voting_End_TimeStamp | |
22 | - | let readtotalStakedA4A = getIntegerValue(A4AStakingDApp, "Staked_Amount") | |
23 | - | let QuorumValue = fraction(readtotalStakedA4A, 1, 3) | |
24 | - | let pubkey = toBase58String(i.caller.bytes) | |
25 | - | let Previoustotalproposals = match getInteger(this, "Total_Proposals") { | |
26 | - | case a: Int => | |
27 | - | a | |
28 | - | case _ => | |
29 | - | 0 | |
30 | - | } | |
31 | - | let totalproposals = (Previoustotalproposals + 1) | |
32 | - | if ((size(Proposal) > 5100)) | |
33 | - | then throw("Subject Char Limits are Over. Reduce length less than 5100 Char.") | |
34 | - | else if ((i.caller != controller_address)) | |
35 | - | then throw((("This Address is not Authorized. Only " + toString(controller_address)) + " is Authorized Address to Sign it.")) | |
36 | - | else [StringEntry(("Proposal_Text_" + toString(totalproposals)), Proposal), IntegerEntry("Total_Proposals", totalproposals), StringEntry(("Proposer_" + toString(totalproposals)), pubkey), IntegerEntry(("Voting_Start_TimeStamp_" + toString(totalproposals)), StartTS), IntegerEntry(("Voting_End_TimeStamp_" + toString(totalproposals)), EndTS), IntegerEntry(("Quorum_" + toString(totalproposals)), QuorumValue), IntegerEntry(("Total_Votes_" + toString(totalproposals)), 0), IntegerEntry(("Total_No_" + toString(totalproposals)), 0), IntegerEntry(("Total_Yes_" + toString(totalproposals)), 0)] | |
37 | - | } | |
38 | - | ||
39 | 4 | ||
40 | 5 | ||
41 | 6 | @Callable(i) | |
42 | - | func Yes (Porposal_ID) = { | |
43 | - | let VoteAst = "Yes" | |
44 | - | let StartTS = getIntegerValue(this, ("Voting_Start_TimeStamp_" + toString(Porposal_ID))) | |
45 | - | let EndTS = getIntegerValue(this, ("Voting_End_TimeStamp_" + toString(Porposal_ID))) | |
46 | - | let pubkey = toBase58String(i.caller.bytes) | |
47 | - | let readA4AStakingAmount = valueOrErrorMessage(getInteger(A4AStakingDApp, ("Deposit_Amount_Of_" + pubkey)), "Address not found in A4A Staking.") | |
48 | - | let Previoustotalvotes = match getInteger(this, ("Total_Votes_" + toString(Porposal_ID))) { | |
49 | - | case a: Int => | |
50 | - | a | |
51 | - | case _ => | |
52 | - | 0 | |
53 | - | } | |
54 | - | let totalvotes = (Previoustotalvotes + readA4AStakingAmount) | |
55 | - | let FTVO = match getInteger(this, ((("Total_" + VoteAst) + "_") + toString(Porposal_ID))) { | |
56 | - | case a: Int => | |
57 | - | a | |
58 | - | case _ => | |
59 | - | 0 | |
60 | - | } | |
61 | - | let ATVO = (FTVO + readA4AStakingAmount) | |
62 | - | let PreviousUserCountforVoting = match getInteger(this, ((pubkey + "_") + toString(Porposal_ID))) { | |
63 | - | case a: Int => | |
64 | - | a | |
65 | - | case _ => | |
66 | - | 0 | |
67 | - | } | |
68 | - | let LatestUserCountforVoting = (PreviousUserCountforVoting + 1) | |
69 | - | if ((StartTS > lastBlock.timestamp)) | |
70 | - | then throw((launch_error + toString(StartTS))) | |
71 | - | else if ((lastBlock.timestamp > EndTS)) | |
72 | - | then throw(voteErr) | |
73 | - | else if ((LatestUserCountforVoting > 1)) | |
74 | - | then throw(AlreadyVotedError) | |
75 | - | else [IntegerEntry(("Total_Votes_" + toString(Porposal_ID)), totalvotes), IntegerEntry(((("Total_" + VoteAst) + "_") + toString(Porposal_ID)), ATVO), IntegerEntry(((pubkey + "_") + toString(Porposal_ID)), LatestUserCountforVoting), StringEntry("message", msg)] | |
76 | - | } | |
77 | - | ||
78 | - | ||
79 | - | ||
80 | - | @Callable(i) | |
81 | - | func No (Porposal_ID) = { | |
82 | - | let VoteAst = "No" | |
83 | - | let StartTS = getIntegerValue(this, ("Voting_Start_TimeStamp_" + toString(Porposal_ID))) | |
84 | - | let EndTS = getIntegerValue(this, ("Voting_End_TimeStamp_" + toString(Porposal_ID))) | |
85 | - | let pubkey = toBase58String(i.caller.bytes) | |
86 | - | let readA4AStakingAmount = valueOrErrorMessage(getInteger(A4AStakingDApp, ("Deposit_Amount_Of_" + pubkey)), "Address not found in A4A Staking.") | |
87 | - | let Previoustotalvotes = match getInteger(this, ("Total_Votes_" + toString(Porposal_ID))) { | |
88 | - | case a: Int => | |
89 | - | a | |
90 | - | case _ => | |
91 | - | 0 | |
92 | - | } | |
93 | - | let totalvotes = (Previoustotalvotes + readA4AStakingAmount) | |
94 | - | let FTVO = match getInteger(this, ((("Total_" + VoteAst) + "_") + toString(Porposal_ID))) { | |
95 | - | case a: Int => | |
96 | - | a | |
97 | - | case _ => | |
98 | - | 0 | |
99 | - | } | |
100 | - | let ATVO = (FTVO + readA4AStakingAmount) | |
101 | - | let PreviousUserCountforVoting = match getInteger(this, ((pubkey + "_") + toString(Porposal_ID))) { | |
102 | - | case a: Int => | |
103 | - | a | |
104 | - | case _ => | |
105 | - | 0 | |
106 | - | } | |
107 | - | let LatestUserCountforVoting = (PreviousUserCountforVoting + 1) | |
108 | - | if ((StartTS > lastBlock.timestamp)) | |
109 | - | then throw((launch_error + toString(StartTS))) | |
110 | - | else if ((lastBlock.timestamp > EndTS)) | |
111 | - | then throw(voteErr) | |
112 | - | else if ((LatestUserCountforVoting > 1)) | |
113 | - | then throw(AlreadyVotedError) | |
114 | - | else [IntegerEntry(("Total_Votes_" + toString(Porposal_ID)), totalvotes), IntegerEntry(((("Total_" + VoteAst) + "_") + toString(Porposal_ID)), ATVO), IntegerEntry(((pubkey + "_") + toString(Porposal_ID)), LatestUserCountforVoting), StringEntry("message", msg)] | |
7 | + | func call () = { | |
8 | + | let user_address = toBase58String(i.caller.bytes) | |
9 | + | [StringEntry("Address", user_address)] | |
115 | 10 | } | |
116 | 11 | ||
117 | 12 | ||
118 | 13 | @Verifier(tx) | |
119 | 14 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
120 | 15 |
github/deemru/w8io/6500d08 34.98 ms ◑