tx · F3pPfnFbEWxMzYX39GsCYZehHA6Nm2Yzac68kBzX6K4L 3PGyATMeRWox58ZsAX8EF4JoEDCLzsHifmp: -0.01000000 Waves 2023.09.20 22:08 [3829901] smart account 3PGyATMeRWox58ZsAX8EF4JoEDCLzsHifmp > SELF 0.00000000 Waves
{ "type": 13, "id": "F3pPfnFbEWxMzYX39GsCYZehHA6Nm2Yzac68kBzX6K4L", "fee": 1000000, "feeAssetId": null, "timestamp": 1695236938396, "version": 2, "chainId": 87, "sender": "3PGyATMeRWox58ZsAX8EF4JoEDCLzsHifmp", "senderPublicKey": "88LEuLyG6WWqn6CxRefbwUwcgbV8M9qBKqbxRokVuGMj", "proofs": [ "43uER3nqhWBBG4ypZb4CdZxPJcBies8dJcgoMz2JTQTVHA8R8Nf1G8wsf9xohduWbjTa44jxV1Kqk3Ngj2d6fSxG" ], "script": "base64:BgIVCAISABIDCgEBEgQKAgICEgQKAgEEEgADU0VQAgJfXwAPcmVwdXRhdGlvbkFzc2V0ASBSDUX5Hu+dDoJ9IoSDMka9tZ0K6G9XzGwdBcTtE/lf9AAMcHJvcG9zYWxUaW1lCQBoAgkAaAIJAGgCCQBoAgDoBwA8ADwAGAADARFjb3VudFByb3Bvc2Fsc0tleQACAmNwAQtwcm9wb3NhbEtleQEKcHJvcG9zYWxJZAkAuQkCCQDMCAICAXAJAMwIAgkApAMBBQpwcm9wb3NhbElkBQNuaWwFA1NFUAEdZ3JlYXRlc3RVc2VyVm90ZVVzZXJUaW1lc3RhbXABBHVzZXIJALkJAgkAzAgCAgJ1dAkAzAgCCQDYBAEIBQR1c2VyBWJ5dGVzBQNuaWwFA1NFUAEQdXNlckRlcG9zaXRlZEtleQEEdXNlcgkAuQkCCQDMCAICAnVkCQDMCAIJANgEAQgFBHVzZXIFYnl0ZXMFA25pbAUDU0VQARN1c2VyUHJvcG9zYWxWb3RlS2V5Agpwcm9wb3NhbElkBHVzZXIJALkJAgkAzAgCAgJ1cAkAzAgCCQCkAwEFCnByb3Bvc2FsSWQJAMwIAgkA2AQBCAUEdXNlcgVieXRlcwUDbmlsBQNTRVABC3NldFByb3Bvc2FsCAJpZAdjcmVhdG9yBXRpdGxlBHRleHQRdGltZXN0YW1wQ3JlYXRpb24NY291bnRWb3Rlc0ZvchFDb3VudFZvdGVzQWdhaW5zdAlmaW5hbGl6ZWQJAQtTdHJpbmdFbnRyeQIJAQtwcm9wb3NhbEtleQEFAmlkCQC7CQIJAMwIAgkA3AQBCAUHY3JlYXRvcgVieXRlcwkAzAgCBQV0aXRsZQkAzAgCBQR0ZXh0CQDMCAIJAKQDAQURdGltZXN0YW1wQ3JlYXRpb24JAMwIAgkApAMBBQ1jb3VudFZvdGVzRm9yCQDMCAIJAKQDAQURQ291bnRWb3Rlc0FnYWluc3QJAMwIAgkApQMBBQlmaW5hbGl6ZWQFA25pbAUDU0VQAQtnZXRQcm9wb3NhbAECaWQEC3NhdmVkU3RyaW5nCQC1CQIEByRtYXRjaDAJAJ0IAgUEdGhpcwkBC3Byb3Bvc2FsS2V5AQUCaWQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzCQACAQIScHJvcG9zYWwgbm90IGZvdW5kBQNTRVAJAJkKBwkBB0FkZHJlc3MBCQDdBAEJAJEDAgULc2F2ZWRTdHJpbmcAAAkAkQMCBQtzYXZlZFN0cmluZwABCQCRAwIFC3NhdmVkU3RyaW5nAAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQtzYXZlZFN0cmluZwADCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgULc2F2ZWRTdHJpbmcABAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFC3NhdmVkU3RyaW5nAAUDCQAAAgkAkQMCBQtzYXZlZFN0cmluZwAGAgR0cnVlBgcBFGlzUGF5UmVwdXRhdGlvbkFzc2V0AQFpAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFD3JlcHV0YXRpb25Bc3NldAYJAAIBAhZvbmx5IHJlcHV0YXRpb24gYXNzZXRzCQACAQIOb25seSAxIHBheW1lbnQBHGdldEdyZWF0ZXN0VXNlclZvdGVUaW1lc3RhbXABBHVzZXIEByRtYXRjaDAJAJoIAgUEdGhpcwkBHWdyZWF0ZXN0VXNlclZvdGVVc2VyVGltZXN0YW1wAQUEdXNlcgMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAESZ2V0VW5sb2NrVGltZXN0YW1wAQR1c2VyCQBkAgkBHGdldEdyZWF0ZXN0VXNlclZvdGVUaW1lc3RhbXABBQR1c2VyBQxwcm9wb3NhbFRpbWUBDmNvdW50UHJvcG9zYWxzAAQHJG1hdGNoMAkAmggCBQR0aGlzCQERY291bnRQcm9wb3NhbHNLZXkAAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAARx1c2VyRGVwb3NpdGVkUmVwdXRhdGlvbkFzc2V0AQR1c2VyBAckbWF0Y2gwCQCaCAIFBHRoaXMJARB1c2VyRGVwb3NpdGVkS2V5AQUEdXNlcgMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAEPaXNQcm9wb3NhbEFsaXZlAQJpZAMDCQBmAgkBDmNvdW50UHJvcG9zYWxzAAUCaWQJAGYCCQBkAggJAQtnZXRQcm9wb3NhbAEFAmlkAl80BQxwcm9wb3NhbFRpbWUIBQlsYXN0QmxvY2sJdGltZXN0YW1wBwYJAAIBAhJwcm9wb3NhbCBub3QgYWxpdmUBC3NldFVzZXJWb3RlBApwcm9wb3NhbElkBHVzZXIYcHJvcG9zYWxDcmVhdGVkVGltZXN0YW1wCXZvdGVQb3dlcgQKdW5sb2NrVGltZQkAlgMBCQDMCAIFGHByb3Bvc2FsQ3JlYXRlZFRpbWVzdGFtcAkAzAgCCQEcZ2V0R3JlYXRlc3RVc2VyVm90ZVRpbWVzdGFtcAEFBHVzZXIFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBE3VzZXJQcm9wb3NhbFZvdGVLZXkCBQpwcm9wb3NhbElkBQR1c2VyBQl2b3RlUG93ZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAR1ncmVhdGVzdFVzZXJWb3RlVXNlclRpbWVzdGFtcAEFBHVzZXIFCnVubG9ja1RpbWUFA25pbAELZ2V0VXNlclZvdGUCCnByb3Bvc2FsSWQEdXNlcgQHJG1hdGNoMAkAnwgBCQETdXNlclByb3Bvc2FsVm90ZUtleQIFCnByb3Bvc2FsSWQFBHVzZXIDCQABAgUHJG1hdGNoMAIDSW50BAFpBQckbWF0Y2gwBQFpAAAEAWkBB2RlcG9zaXQABAZjaGVja3MJAMwIAgkBFGlzUGF5UmVwdXRhdGlvbkFzc2V0AQUBaQUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBA1jdXJyZW50QW1vdW50CQEcdXNlckRlcG9zaXRlZFJlcHV0YXRpb25Bc3NldAEIBQFpBmNhbGxlcgQJbmV3QW1vdW50CQBkAgUNY3VycmVudEFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJARB1c2VyRGVwb3NpdGVkS2V5AQgFAWkGY2FsbGVyBQluZXdBbW91bnQFA25pbAkAAgECE29ubHlSZXB1dGF0aW9uQXNzZXQBaQEId2l0aGRyYXcBBmFtb3VudAQNY3VycmVudEFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzCQEQdXNlckRlcG9zaXRlZEtleQEIBQFpBmNhbGxlcgMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQJbmV3QW1vdW50CQBlAgUNY3VycmVudEFtb3VudAUGYW1vdW50AwkAZgIAAAUGYW1vdW50CQACAQIeQ2FuJ3Qgd2l0aGRyYXcgbmVnYXRpdmUgYW1vdW50AwkAZgIJARJnZXRVbmxvY2tUaW1lc3RhbXABCAUBaQZjYWxsZXIIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQACAQIGTG9ja2VkAwkAZgIAAAUJbmV3QW1vdW50CQACAQISTm90IGVub3VnaCBiYWxhbmNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQdXNlckRlcG9zaXRlZEtleQEIBQFpBmNhbGxlcgUJbmV3QW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGYW1vdW50BQ9yZXB1dGF0aW9uQXNzZXQFA25pbAFpAQ5jcmVhdGVQcm9wb3NhbAIFdGl0bGUEdGV4dAQFY291bnQJAQ5jb3VudFByb3Bvc2FscwAJAMwIAgkBC3NldFByb3Bvc2FsCAUFY291bnQIBQFpBmNhbGxlcgkA3AQBBQV0aXRsZQkA3AQBBQR0ZXh0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAAAAAAHCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQERY291bnRQcm9wb3NhbHNLZXkACQBkAgUFY291bnQAAQUDbmlsAWkBBHZvdGUCCnByb3Bvc2FsSWQEdm90ZQMJAQEhAQkBD2lzUHJvcG9zYWxBbGl2ZQEFCnByb3Bvc2FsSWQJAAIBAhBwcm9wb3NhbE5vdEFsaXZlBAhwcm9wb3NhbAkBC2dldFByb3Bvc2FsAQUKcHJvcG9zYWxJZAQLcHJldml1c1ZvdGUJAQtnZXRVc2VyVm90ZQIFCnByb3Bvc2FsSWQIBQFpBmNhbGxlcgQJdm90ZVBvd2VyCQEcdXNlckRlcG9zaXRlZFJlcHV0YXRpb25Bc3NldAEIBQFpBmNhbGxlcgQIbWludXNGb3IDCQBmAgULcHJldml1c1ZvdGUAAAULcHJldml1c1ZvdGUAAAQMbWludXNBZ2FpbnN0AwkAZgIAAAULcHJldml1c1ZvdGUJAQEtAQULcHJldml1c1ZvdGUAAAQHcGx1c0ZvcgMJAAACBQR2b3RlBgUJdm90ZVBvd2VyAAAEC3BsdXNBZ2FpbnN0AwkAAAIFBHZvdGUHBQl2b3RlUG93ZXIAAAkAzggCCQDMCAIJAQtzZXRQcm9wb3NhbAgFCnByb3Bvc2FsSWQIBQhwcm9wb3NhbAJfMQgFCHByb3Bvc2FsAl8yCAUIcHJvcG9zYWwCXzMIBQhwcm9wb3NhbAJfNAkAZAIJAGUCCAUIcHJvcG9zYWwCXzUFCG1pbnVzRm9yBQdwbHVzRm9yCQBkAgkAZQIIBQhwcm9wb3NhbAJfNgUMbWludXNBZ2FpbnN0BQtwbHVzQWdhaW5zdAgFCHByb3Bvc2FsAl83BQNuaWwJAQtzZXRVc2VyVm90ZQQFCnByb3Bvc2FsSWQIBQFpBmNhbGxlcggFCHByb3Bvc2FsAl80AwUEdm90ZQUJdm90ZVBvd2VyCQEBLQEFCXZvdGVQb3dlcgECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXk+O50V", "height": 3829901, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 9dnpMqevURxs5rACF5jsjawNqHVUxHdGRLsxTdctVKPq Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = "__" | |
5 | + | ||
6 | + | let b = base58'6XJAscmejGPTLAdKsg12MynB5rNQzNiZz8Yj81SWeFrj' | |
7 | + | ||
8 | + | let c = ((((1000 * 60) * 60) * 24) * 3) | |
9 | + | ||
10 | + | func d () = "cp" | |
11 | + | ||
12 | + | ||
13 | + | func e (f) = makeString(["p", toString(f)], a) | |
14 | + | ||
15 | + | ||
16 | + | func g (h) = makeString(["ut", toBase58String(h.bytes)], a) | |
17 | + | ||
18 | + | ||
19 | + | func i (h) = makeString(["ud", toBase58String(h.bytes)], a) | |
20 | + | ||
21 | + | ||
22 | + | func j (f,h) = makeString(["up", toString(f), toBase58String(h.bytes)], a) | |
23 | + | ||
24 | + | ||
25 | + | func k (l,m,n,o,p,q,r,s) = StringEntry(e(l), makeString_11C([toBase16String(m.bytes), n, o, toString(p), toString(q), toString(r), toString(s)], a)) | |
26 | + | ||
27 | + | ||
28 | + | func t (l) = { | |
29 | + | let u = split({ | |
30 | + | let v = getString(this, e(l)) | |
31 | + | if ($isInstanceOf(v, "String")) | |
32 | + | then { | |
33 | + | let w = v | |
34 | + | w | |
35 | + | } | |
36 | + | else throw("proposal not found") | |
37 | + | }, a) | |
38 | + | $Tuple7(Address(fromBase16String(u[0])), u[1], u[2], parseIntValue(u[3]), parseIntValue(u[4]), parseIntValue(u[5]), if ((u[6] == "true")) | |
39 | + | then true | |
40 | + | else false) | |
41 | + | } | |
42 | + | ||
43 | + | ||
44 | + | func x (y) = if ((size(y.payments) == 1)) | |
45 | + | then if ((y.payments[0].assetId == b)) | |
46 | + | then true | |
47 | + | else throw("only reputation assets") | |
48 | + | else throw("only 1 payment") | |
49 | + | ||
50 | + | ||
51 | + | func z (h) = { | |
52 | + | let v = getInteger(this, g(h)) | |
53 | + | if ($isInstanceOf(v, "Int")) | |
54 | + | then { | |
55 | + | let A = v | |
56 | + | A | |
57 | + | } | |
58 | + | else 0 | |
59 | + | } | |
60 | + | ||
61 | + | ||
62 | + | func B (h) = (z(h) + c) | |
63 | + | ||
64 | + | ||
65 | + | func C () = { | |
66 | + | let v = getInteger(this, d()) | |
67 | + | if ($isInstanceOf(v, "Int")) | |
68 | + | then { | |
69 | + | let A = v | |
70 | + | A | |
71 | + | } | |
72 | + | else 0 | |
73 | + | } | |
74 | + | ||
75 | + | ||
76 | + | func D (h) = { | |
77 | + | let v = getInteger(this, i(h)) | |
78 | + | if ($isInstanceOf(v, "Int")) | |
79 | + | then { | |
80 | + | let A = v | |
81 | + | A | |
82 | + | } | |
83 | + | else 0 | |
84 | + | } | |
85 | + | ||
86 | + | ||
87 | + | func E (l) = if (if ((C() > l)) | |
88 | + | then ((t(l)._4 + c) > lastBlock.timestamp) | |
89 | + | else false) | |
90 | + | then true | |
91 | + | else throw("proposal not alive") | |
92 | + | ||
93 | + | ||
94 | + | func F (f,h,G,H) = { | |
95 | + | let I = max([G, z(h)]) | |
96 | + | [IntegerEntry(j(f, h), H), IntegerEntry(g(h), I)] | |
97 | + | } | |
98 | + | ||
99 | + | ||
100 | + | func J (f,h) = { | |
101 | + | let v = getInteger(j(f, h)) | |
102 | + | if ($isInstanceOf(v, "Int")) | |
103 | + | then { | |
104 | + | let y = v | |
105 | + | y | |
106 | + | } | |
107 | + | else 0 | |
108 | + | } | |
109 | + | ||
110 | + | ||
111 | + | @Callable(y) | |
112 | + | func deposit () = { | |
113 | + | let K = [x(y)] | |
114 | + | if ((K == K)) | |
115 | + | then { | |
116 | + | let L = D(y.caller) | |
117 | + | let M = (L + y.payments[0].amount) | |
118 | + | [IntegerEntry(i(y.caller), M)] | |
119 | + | } | |
120 | + | else throw("onlyReputationAsset") | |
121 | + | } | |
122 | + | ||
123 | + | ||
124 | + | ||
125 | + | @Callable(y) | |
126 | + | func withdraw (N) = { | |
127 | + | let L = { | |
128 | + | let v = getInteger(this, i(y.caller)) | |
129 | + | if ($isInstanceOf(v, "Int")) | |
130 | + | then { | |
131 | + | let A = v | |
132 | + | A | |
133 | + | } | |
134 | + | else 0 | |
135 | + | } | |
136 | + | let M = (L - N) | |
137 | + | if ((0 > N)) | |
138 | + | then throw("Can't withdraw negative amount") | |
139 | + | else if ((B(y.caller) > lastBlock.timestamp)) | |
140 | + | then throw("Locked") | |
141 | + | else if ((0 > M)) | |
142 | + | then throw("Not enough balance") | |
143 | + | else [IntegerEntry(i(y.caller), M), ScriptTransfer(y.caller, N, b)] | |
144 | + | } | |
145 | + | ||
146 | + | ||
147 | + | ||
148 | + | @Callable(y) | |
149 | + | func createProposal (n,o) = { | |
150 | + | let O = C() | |
151 | + | [k(O, y.caller, toBase16String(n), toBase16String(o), lastBlock.timestamp, 0, 0, false), IntegerEntry(d(), (O + 1))] | |
152 | + | } | |
153 | + | ||
154 | + | ||
155 | + | ||
156 | + | @Callable(y) | |
157 | + | func vote (f,P) = if (!(E(f))) | |
158 | + | then throw("proposalNotAlive") | |
159 | + | else { | |
160 | + | let Q = t(f) | |
161 | + | let R = J(f, y.caller) | |
162 | + | let H = D(y.caller) | |
163 | + | let S = if ((R > 0)) | |
164 | + | then R | |
165 | + | else 0 | |
166 | + | let T = if ((0 > R)) | |
167 | + | then -(R) | |
168 | + | else 0 | |
169 | + | let U = if ((P == true)) | |
170 | + | then H | |
171 | + | else 0 | |
172 | + | let V = if ((P == false)) | |
173 | + | then H | |
174 | + | else 0 | |
175 | + | ([k(f, Q._1, Q._2, Q._3, Q._4, ((Q._5 - S) + U), ((Q._6 - T) + V), Q._7)] ++ F(f, y.caller, Q._4, if (P) | |
176 | + | then H | |
177 | + | else -(H))) | |
178 | + | } | |
179 | + | ||
180 | + | ||
181 | + | @Verifier(W) | |
182 | + | func X () = sigVerify(W.bodyBytes, W.proofs[0], W.senderPublicKey) | |
183 | + |
github/deemru/w8io/873ac7e 36.86 ms ◑![]()