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:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 4 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | | - | let a = base58'Zn3cLHW7aAVPm5aACcTjvg7e7iEy2cKDtbowok5qa9H' |
---|
| 4 | + | let a = base58'GV3FbBXZru1WpaCa9x1zhwSWrXSDrxKMVEV7BML6EzY1' |
---|
5 | 5 | | |
---|
6 | | - | let b = 1679270400000 |
---|
| 6 | + | let b = addressFromPublicKey(a) |
---|
7 | 7 | | |
---|
8 | | - | let c = 1680566400000 |
---|
| 8 | + | let c = base58'Zn3cLHW7aAVPm5aACcTjvg7e7iEy2cKDtbowok5qa9H' |
---|
9 | 9 | | |
---|
10 | | - | let d = ("Dapp will start Voting at Timestamp " + toString(b)) |
---|
| 10 | + | let d = "Dapp will start Voting at Timestamp " |
---|
11 | 11 | | |
---|
12 | 12 | | let e = "<h1>You Vote Submitted Successfully!</h1><br>" |
---|
13 | 13 | | |
---|
|
15 | 15 | | |
---|
16 | 16 | | let g = "Min. 1 VOTE required on Your Address to Vote. Please Mint or hold min. 1 VOTE on this Address." |
---|
17 | 17 | | |
---|
18 | | - | let h = (("Incorrect asset attach, please attach " + toBase58String(a)) + " AssetID Only.") |
---|
| 18 | + | let h = (("Incorrect asset attach, please attach " + toBase58String(c)) + " AssetID Only.") |
---|
19 | 19 | | |
---|
20 | 20 | | let i = "Please Attach Exact 1 VOTE To Vote." |
---|
21 | 21 | | |
---|
|
36 | 36 | | let o = (l + 1) |
---|
37 | 37 | | |
---|
38 | 38 | | @Callable(p) |
---|
| 39 | + | func SetVotingTimeStamps (q,r) = { |
---|
| 40 | + | let s = q |
---|
| 41 | + | let t = r |
---|
| 42 | + | if ((p.caller != b)) |
---|
| 43 | + | then throw((("This Address is not Authorized. Only " + toString(b)) + " is Authorized Address to Sign it.")) |
---|
| 44 | + | else [IntegerEntry("Voting_Start_TimeStamp", s), IntegerEntry("Voting_End_TimeStamp", t)] |
---|
| 45 | + | } |
---|
| 46 | + | |
---|
| 47 | + | |
---|
| 48 | + | |
---|
| 49 | + | @Callable(p) |
---|
39 | 50 | | func Option1 () = { |
---|
40 | | - | let q = "OPTION_1" |
---|
41 | | - | let r = if ((size(p.payments) == 1)) |
---|
| 51 | + | let u = "OPTION_1" |
---|
| 52 | + | let s = getIntegerValue(this, "Voting_Start_TimeStamp") |
---|
| 53 | + | let t = getIntegerValue(this, "Voting_End_TimeStamp") |
---|
| 54 | + | let v = toBase58String(p.caller.bytes) |
---|
| 55 | + | let w = if ((size(p.payments) == 1)) |
---|
42 | 56 | | then p.payments[0] |
---|
43 | 57 | | else throw(f) |
---|
44 | | - | let s = toBase58String(p.caller.bytes) |
---|
45 | | - | let t = assetBalance(addressFromPublicKey(p.callerPublicKey), a) |
---|
46 | | - | let u = { |
---|
47 | | - | let m = getInteger(this, ("User_Total_Votes_" + s)) |
---|
48 | | - | if ($isInstanceOf(m, "Int")) |
---|
49 | | - | then { |
---|
50 | | - | let n = m |
---|
51 | | - | n |
---|
52 | | - | } |
---|
53 | | - | else 0 |
---|
54 | | - | } |
---|
55 | | - | let v = (u + 1) |
---|
56 | | - | let w = { |
---|
57 | | - | let m = getInteger(this, ((("User_Total_Votes_" + s) + "-") + q)) |
---|
58 | | - | if ($isInstanceOf(m, "Int")) |
---|
59 | | - | then { |
---|
60 | | - | let n = m |
---|
61 | | - | n |
---|
62 | | - | } |
---|
63 | | - | else 0 |
---|
64 | | - | } |
---|
65 | | - | let x = (w + 1) |
---|
| 58 | + | let x = assetBalance(addressFromPublicKey(p.callerPublicKey), c) |
---|
66 | 59 | | let y = { |
---|
67 | | - | let m = getInteger(this, ((("User_Total_Asset_Votes_" + s) + "_") + q)) |
---|
| 60 | + | let m = getInteger(this, ("User_Total_Votes_" + v)) |
---|
68 | 61 | | if ($isInstanceOf(m, "Int")) |
---|
69 | 62 | | then { |
---|
70 | 63 | | let n = m |
---|
|
74 | 67 | | } |
---|
75 | 68 | | let z = (y + 1) |
---|
76 | 69 | | let A = { |
---|
77 | | - | let m = getInteger(this, ("Total_Votes_" + q)) |
---|
| 70 | + | let m = getInteger(this, ((("User_Total_Votes_" + v) + "-") + u)) |
---|
78 | 71 | | if ($isInstanceOf(m, "Int")) |
---|
79 | 72 | | then { |
---|
80 | 73 | | let n = m |
---|
|
83 | 76 | | else 0 |
---|
84 | 77 | | } |
---|
85 | 78 | | let B = (A + 1) |
---|
86 | | - | if ((b > lastBlock.timestamp)) |
---|
87 | | - | then throw(d) |
---|
88 | | - | else if ((1 > t)) |
---|
| 79 | + | let C = { |
---|
| 80 | + | let m = getInteger(this, ((("User_Total_Asset_Votes_" + v) + "_") + u)) |
---|
| 81 | + | if ($isInstanceOf(m, "Int")) |
---|
| 82 | + | then { |
---|
| 83 | + | let n = m |
---|
| 84 | + | n |
---|
| 85 | + | } |
---|
| 86 | + | else 0 |
---|
| 87 | + | } |
---|
| 88 | + | let D = (C + 1) |
---|
| 89 | + | let E = { |
---|
| 90 | + | let m = getInteger(this, ("Total_Votes_" + u)) |
---|
| 91 | + | if ($isInstanceOf(m, "Int")) |
---|
| 92 | + | then { |
---|
| 93 | + | let n = m |
---|
| 94 | + | n |
---|
| 95 | + | } |
---|
| 96 | + | else 0 |
---|
| 97 | + | } |
---|
| 98 | + | let F = (E + 1) |
---|
| 99 | + | if ((s > lastBlock.timestamp)) |
---|
| 100 | + | then throw((d + toString(s))) |
---|
| 101 | + | else if ((1 > x)) |
---|
89 | 102 | | then throw(g) |
---|
90 | | - | else if ((r.assetId != a)) |
---|
| 103 | + | else if ((w.assetId != c)) |
---|
91 | 104 | | then throw(h) |
---|
92 | | - | else if ((r.amount != 1)) |
---|
| 105 | + | else if ((w.amount != 1)) |
---|
93 | 106 | | then throw(i) |
---|
94 | | - | else if ((v > 1)) |
---|
| 107 | + | else if ((z > 1)) |
---|
95 | 108 | | then throw(k) |
---|
96 | | - | else if ((c > lastBlock.timestamp)) |
---|
| 109 | + | else if ((t > lastBlock.timestamp)) |
---|
97 | 110 | | then throw(j) |
---|
98 | | - | else [IntegerEntry("Total_Votes", o), IntegerEntry(("Total_Votes_" + q), B), IntegerEntry(("User_Total_Votes_" + s), v), IntegerEntry(((("User_Total_Votes_" + s) + "-") + q), x), IntegerEntry(((("User_Total_Asset_Votes_" + s) + "_") + q), z), StringEntry("message", e)] |
---|
| 111 | + | else [IntegerEntry("Total_Votes", o), IntegerEntry(("Total_Votes_" + u), F), IntegerEntry(("User_Total_Votes_" + v), z), IntegerEntry(((("User_Total_Votes_" + v) + "-") + u), B), IntegerEntry(((("User_Total_Asset_Votes_" + v) + "_") + u), D), StringEntry("message", e)] |
---|
99 | 112 | | } |
---|
100 | 113 | | |
---|
101 | 114 | | |
---|
102 | | - | @Verifier(C) |
---|
103 | | - | func D () = sigVerify(C.bodyBytes, C.proofs[0], C.senderPublicKey) |
---|
| 115 | + | @Verifier(G) |
---|
| 116 | + | func H () = sigVerify(G.bodyBytes, G.proofs[0], G.senderPublicKey) |
---|
104 | 117 | | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 4 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | | - | let a = base58'Zn3cLHW7aAVPm5aACcTjvg7e7iEy2cKDtbowok5qa9H' |
---|
| 4 | + | let a = base58'GV3FbBXZru1WpaCa9x1zhwSWrXSDrxKMVEV7BML6EzY1' |
---|
5 | 5 | | |
---|
6 | | - | let b = 1679270400000 |
---|
| 6 | + | let b = addressFromPublicKey(a) |
---|
7 | 7 | | |
---|
8 | | - | let c = 1680566400000 |
---|
| 8 | + | let c = base58'Zn3cLHW7aAVPm5aACcTjvg7e7iEy2cKDtbowok5qa9H' |
---|
9 | 9 | | |
---|
10 | | - | let d = ("Dapp will start Voting at Timestamp " + toString(b)) |
---|
| 10 | + | let d = "Dapp will start Voting at Timestamp " |
---|
11 | 11 | | |
---|
12 | 12 | | let e = "<h1>You Vote Submitted Successfully!</h1><br>" |
---|
13 | 13 | | |
---|
14 | 14 | | let f = "DApp Need 1 VOTE Token as Attach payment[1]." |
---|
15 | 15 | | |
---|
16 | 16 | | let g = "Min. 1 VOTE required on Your Address to Vote. Please Mint or hold min. 1 VOTE on this Address." |
---|
17 | 17 | | |
---|
18 | | - | let h = (("Incorrect asset attach, please attach " + toBase58String(a)) + " AssetID Only.") |
---|
| 18 | + | let h = (("Incorrect asset attach, please attach " + toBase58String(c)) + " AssetID Only.") |
---|
19 | 19 | | |
---|
20 | 20 | | let i = "Please Attach Exact 1 VOTE To Vote." |
---|
21 | 21 | | |
---|
22 | 22 | | let j = "Voting is Over for this Dapp." |
---|
23 | 23 | | |
---|
24 | 24 | | let k = "You have Already Voted from this address." |
---|
25 | 25 | | |
---|
26 | 26 | | let l = { |
---|
27 | 27 | | let m = getInteger(this, "Total_Votes") |
---|
28 | 28 | | if ($isInstanceOf(m, "Int")) |
---|
29 | 29 | | then { |
---|
30 | 30 | | let n = m |
---|
31 | 31 | | n |
---|
32 | 32 | | } |
---|
33 | 33 | | else 0 |
---|
34 | 34 | | } |
---|
35 | 35 | | |
---|
36 | 36 | | let o = (l + 1) |
---|
37 | 37 | | |
---|
38 | 38 | | @Callable(p) |
---|
| 39 | + | func SetVotingTimeStamps (q,r) = { |
---|
| 40 | + | let s = q |
---|
| 41 | + | let t = r |
---|
| 42 | + | if ((p.caller != b)) |
---|
| 43 | + | then throw((("This Address is not Authorized. Only " + toString(b)) + " is Authorized Address to Sign it.")) |
---|
| 44 | + | else [IntegerEntry("Voting_Start_TimeStamp", s), IntegerEntry("Voting_End_TimeStamp", t)] |
---|
| 45 | + | } |
---|
| 46 | + | |
---|
| 47 | + | |
---|
| 48 | + | |
---|
| 49 | + | @Callable(p) |
---|
39 | 50 | | func Option1 () = { |
---|
40 | | - | let q = "OPTION_1" |
---|
41 | | - | let r = if ((size(p.payments) == 1)) |
---|
| 51 | + | let u = "OPTION_1" |
---|
| 52 | + | let s = getIntegerValue(this, "Voting_Start_TimeStamp") |
---|
| 53 | + | let t = getIntegerValue(this, "Voting_End_TimeStamp") |
---|
| 54 | + | let v = toBase58String(p.caller.bytes) |
---|
| 55 | + | let w = if ((size(p.payments) == 1)) |
---|
42 | 56 | | then p.payments[0] |
---|
43 | 57 | | else throw(f) |
---|
44 | | - | let s = toBase58String(p.caller.bytes) |
---|
45 | | - | let t = assetBalance(addressFromPublicKey(p.callerPublicKey), a) |
---|
46 | | - | let u = { |
---|
47 | | - | let m = getInteger(this, ("User_Total_Votes_" + s)) |
---|
48 | | - | if ($isInstanceOf(m, "Int")) |
---|
49 | | - | then { |
---|
50 | | - | let n = m |
---|
51 | | - | n |
---|
52 | | - | } |
---|
53 | | - | else 0 |
---|
54 | | - | } |
---|
55 | | - | let v = (u + 1) |
---|
56 | | - | let w = { |
---|
57 | | - | let m = getInteger(this, ((("User_Total_Votes_" + s) + "-") + q)) |
---|
58 | | - | if ($isInstanceOf(m, "Int")) |
---|
59 | | - | then { |
---|
60 | | - | let n = m |
---|
61 | | - | n |
---|
62 | | - | } |
---|
63 | | - | else 0 |
---|
64 | | - | } |
---|
65 | | - | let x = (w + 1) |
---|
| 58 | + | let x = assetBalance(addressFromPublicKey(p.callerPublicKey), c) |
---|
66 | 59 | | let y = { |
---|
67 | | - | let m = getInteger(this, ((("User_Total_Asset_Votes_" + s) + "_") + q)) |
---|
| 60 | + | let m = getInteger(this, ("User_Total_Votes_" + v)) |
---|
68 | 61 | | if ($isInstanceOf(m, "Int")) |
---|
69 | 62 | | then { |
---|
70 | 63 | | let n = m |
---|
71 | 64 | | n |
---|
72 | 65 | | } |
---|
73 | 66 | | else 0 |
---|
74 | 67 | | } |
---|
75 | 68 | | let z = (y + 1) |
---|
76 | 69 | | let A = { |
---|
77 | | - | let m = getInteger(this, ("Total_Votes_" + q)) |
---|
| 70 | + | let m = getInteger(this, ((("User_Total_Votes_" + v) + "-") + u)) |
---|
78 | 71 | | if ($isInstanceOf(m, "Int")) |
---|
79 | 72 | | then { |
---|
80 | 73 | | let n = m |
---|
81 | 74 | | n |
---|
82 | 75 | | } |
---|
83 | 76 | | else 0 |
---|
84 | 77 | | } |
---|
85 | 78 | | let B = (A + 1) |
---|
86 | | - | if ((b > lastBlock.timestamp)) |
---|
87 | | - | then throw(d) |
---|
88 | | - | else if ((1 > t)) |
---|
| 79 | + | let C = { |
---|
| 80 | + | let m = getInteger(this, ((("User_Total_Asset_Votes_" + v) + "_") + u)) |
---|
| 81 | + | if ($isInstanceOf(m, "Int")) |
---|
| 82 | + | then { |
---|
| 83 | + | let n = m |
---|
| 84 | + | n |
---|
| 85 | + | } |
---|
| 86 | + | else 0 |
---|
| 87 | + | } |
---|
| 88 | + | let D = (C + 1) |
---|
| 89 | + | let E = { |
---|
| 90 | + | let m = getInteger(this, ("Total_Votes_" + u)) |
---|
| 91 | + | if ($isInstanceOf(m, "Int")) |
---|
| 92 | + | then { |
---|
| 93 | + | let n = m |
---|
| 94 | + | n |
---|
| 95 | + | } |
---|
| 96 | + | else 0 |
---|
| 97 | + | } |
---|
| 98 | + | let F = (E + 1) |
---|
| 99 | + | if ((s > lastBlock.timestamp)) |
---|
| 100 | + | then throw((d + toString(s))) |
---|
| 101 | + | else if ((1 > x)) |
---|
89 | 102 | | then throw(g) |
---|
90 | | - | else if ((r.assetId != a)) |
---|
| 103 | + | else if ((w.assetId != c)) |
---|
91 | 104 | | then throw(h) |
---|
92 | | - | else if ((r.amount != 1)) |
---|
| 105 | + | else if ((w.amount != 1)) |
---|
93 | 106 | | then throw(i) |
---|
94 | | - | else if ((v > 1)) |
---|
| 107 | + | else if ((z > 1)) |
---|
95 | 108 | | then throw(k) |
---|
96 | | - | else if ((c > lastBlock.timestamp)) |
---|
| 109 | + | else if ((t > lastBlock.timestamp)) |
---|
97 | 110 | | then throw(j) |
---|
98 | | - | else [IntegerEntry("Total_Votes", o), IntegerEntry(("Total_Votes_" + q), B), IntegerEntry(("User_Total_Votes_" + s), v), IntegerEntry(((("User_Total_Votes_" + s) + "-") + q), x), IntegerEntry(((("User_Total_Asset_Votes_" + s) + "_") + q), z), StringEntry("message", e)] |
---|
| 111 | + | else [IntegerEntry("Total_Votes", o), IntegerEntry(("Total_Votes_" + u), F), IntegerEntry(("User_Total_Votes_" + v), z), IntegerEntry(((("User_Total_Votes_" + v) + "-") + u), B), IntegerEntry(((("User_Total_Asset_Votes_" + v) + "_") + u), D), StringEntry("message", e)] |
---|
99 | 112 | | } |
---|
100 | 113 | | |
---|
101 | 114 | | |
---|
102 | | - | @Verifier(C) |
---|
103 | | - | func D () = sigVerify(C.bodyBytes, C.proofs[0], C.senderPublicKey) |
---|
| 115 | + | @Verifier(G) |
---|
| 116 | + | func H () = sigVerify(G.bodyBytes, G.proofs[0], G.senderPublicKey) |
---|
104 | 117 | | |
---|