tx · 2uC99yj81Fk8yFiyg6KS5QRAnVVZVWgzMHZAbgQczo22 3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB: -0.01400000 Waves 2021.09.29 10:14 [1723918] smart account 3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB > SELF 0.00000000 Waves
{ "type": 13, "id": "2uC99yj81Fk8yFiyg6KS5QRAnVVZVWgzMHZAbgQczo22", "fee": 1400000, "feeAssetId": null, "timestamp": 1632899642458, "version": 2, "chainId": 84, "sender": "3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB", "senderPublicKey": "Gd5NihbWQoWuTnSvq25TuV2BYZG4U1e9KDqZn9zBPix7", "proofs": [ "r1X5oiz2GakvsAUMLAae77CXMzmpguieVUXvN8VQ3W6YvhxD8T1sUWkKQsBTQcu9sDJGg8UAhLPWmowTfaCTAuZ" ], "script": "base64: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", "height": 1723918, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4hawzMxiBEspyPUH6rxyTJ5N2Y9PWSPCwLfF2PpgRUwp Next: HCMNYD1gru7BSEwezGAox2zAmfu2DjQhm4hNeZt3p6PZ Diff:
Old | New | Differences | |
---|---|---|---|
125 | 125 | let n = if (M) | |
126 | 126 | then toString(addressFromPublicKey(fromBase58String(I))) | |
127 | 127 | else toBase58String(F.caller.bytes) | |
128 | - | let N = m(n) | |
129 | 128 | if (true) | |
130 | 129 | then throw("up to gere ok") | |
131 | - | else if ((K != "NONE")) | |
132 | - | then throw("This entry already exist") | |
133 | - | else if ((L != "NONE")) | |
134 | - | then throw("This uuid already exist") | |
135 | - | else if ((size(g) != 36)) | |
136 | - | then throw("Uuid should be 36 characters.") | |
137 | - | else if ((size(G) != 64)) | |
138 | - | then throw("Hash should be 64 characters.") | |
139 | - | else if ((size(H) > 150)) | |
140 | - | then throw("Title is too long, 150 characters max.") | |
141 | - | else if ((N > 0)) | |
142 | - | then [StringEntry(g, toBase58String(J)), StringEntry((G + g), toBase58String(J)), StringEntry((H + g), toBase58String(J)), IntegerEntry(("addr_WHITELISTED_" + n), (N - 1)), StringEntry(((("data_fc_" + toBase58String(J)) + "_") + n), y), ScriptTransfer(addressFromStringValue(n), 0, c)] | |
143 | - | else if (!(M)) | |
144 | - | then { | |
145 | - | let O = value(F.payments[0]) | |
146 | - | let P = value(O.amount) | |
147 | - | let Q = if (isDefined(O.assetId)) | |
148 | - | then value(O.assetId) | |
149 | - | else throw("Waves is not accepted as payment") | |
150 | - | let R = getIntegerValue(a, ("certification_fee_" + toBase58String(value(Q)))) | |
151 | - | if ((c != Q)) | |
152 | - | then throw("This token is not accepted at the moment") | |
153 | - | else if (if ((P != R)) | |
154 | - | then (0 >= N) | |
155 | - | else false) | |
156 | - | then throw("The price is wrong") | |
157 | - | else [StringEntry(g, toBase58String(J)), StringEntry((G + g), toBase58String(J)), StringEntry((H + g), toBase58String(J)), StringEntry(((("data_fc_" + toBase58String(J)) + "_") + n), y), ScriptTransfer(addressFromStringValue(b), P, O.assetId)] | |
158 | - | } | |
159 | - | else throw("You are not allowed to do that") | |
130 | + | else { | |
131 | + | let N = m(n) | |
132 | + | if ((K != "NONE")) | |
133 | + | then throw("This entry already exist") | |
134 | + | else if ((L != "NONE")) | |
135 | + | then throw("This uuid already exist") | |
136 | + | else if ((size(g) != 36)) | |
137 | + | then throw("Uuid should be 36 characters.") | |
138 | + | else if ((size(G) != 64)) | |
139 | + | then throw("Hash should be 64 characters.") | |
140 | + | else if ((size(H) > 150)) | |
141 | + | then throw("Title is too long, 150 characters max.") | |
142 | + | else if ((N > 0)) | |
143 | + | then [StringEntry(g, toBase58String(J)), StringEntry((G + g), toBase58String(J)), StringEntry((H + g), toBase58String(J)), IntegerEntry(("addr_WHITELISTED_" + n), (N - 1)), StringEntry(((("data_fc_" + toBase58String(J)) + "_") + n), y), ScriptTransfer(addressFromStringValue(n), 0, c)] | |
144 | + | else if (!(M)) | |
145 | + | then { | |
146 | + | let O = value(F.payments[0]) | |
147 | + | let P = value(O.amount) | |
148 | + | let Q = if (isDefined(O.assetId)) | |
149 | + | then value(O.assetId) | |
150 | + | else throw("Waves is not accepted as payment") | |
151 | + | let R = getIntegerValue(a, ("certification_fee_" + toBase58String(value(Q)))) | |
152 | + | if ((c != Q)) | |
153 | + | then throw("This token is not accepted at the moment") | |
154 | + | else if (if ((P != R)) | |
155 | + | then (0 >= N) | |
156 | + | else false) | |
157 | + | then throw("The price is wrong") | |
158 | + | else [StringEntry(g, toBase58String(J)), StringEntry((G + g), toBase58String(J)), StringEntry((H + g), toBase58String(J)), StringEntry(((("data_fc_" + toBase58String(J)) + "_") + n), y), ScriptTransfer(addressFromStringValue(b), P, O.assetId)] | |
159 | + | } | |
160 | + | else throw("You are not allowed to do that") | |
161 | + | } | |
160 | 162 | } | |
161 | 163 | ||
162 | 164 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1")) | |
5 | 5 | ||
6 | 6 | let b = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub" | |
7 | 7 | ||
8 | 8 | let c = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a' | |
9 | 9 | ||
10 | 10 | let d = "3KFXBGGLCjA5Z2DuW4Dq9fDDrHjJJP1ZEkaoajSzuKsC" | |
11 | 11 | ||
12 | 12 | func e (f,g) = { | |
13 | 13 | let h = getString(this, (f + g)) | |
14 | 14 | if ($isInstanceOf(h, "String")) | |
15 | 15 | then { | |
16 | 16 | let i = h | |
17 | 17 | i | |
18 | 18 | } | |
19 | 19 | else "NONE" | |
20 | 20 | } | |
21 | 21 | ||
22 | 22 | ||
23 | 23 | func j (g,k) = { | |
24 | 24 | let h = getString(this, ((g + "@") + k)) | |
25 | 25 | if ($isInstanceOf(h, "String")) | |
26 | 26 | then { | |
27 | 27 | let i = h | |
28 | 28 | i | |
29 | 29 | } | |
30 | 30 | else "NONE" | |
31 | 31 | } | |
32 | 32 | ||
33 | 33 | ||
34 | 34 | func l (g) = { | |
35 | 35 | let h = getString(this, g) | |
36 | 36 | if ($isInstanceOf(h, "String")) | |
37 | 37 | then { | |
38 | 38 | let i = h | |
39 | 39 | i | |
40 | 40 | } | |
41 | 41 | else "NONE" | |
42 | 42 | } | |
43 | 43 | ||
44 | 44 | ||
45 | 45 | func m (n) = { | |
46 | 46 | let h = getInteger(this, ("addr_WHITELISTED_" + n)) | |
47 | 47 | if ($isInstanceOf(h, "Int")) | |
48 | 48 | then { | |
49 | 49 | let i = h | |
50 | 50 | i | |
51 | 51 | } | |
52 | 52 | else 0 | |
53 | 53 | } | |
54 | 54 | ||
55 | 55 | ||
56 | 56 | func o (p) = if (if (if ((size(p) == 35)) | |
57 | 57 | then (take(p, 2) == "3P") | |
58 | 58 | else false) | |
59 | 59 | then true | |
60 | 60 | else (take(p, 2) == "3N")) | |
61 | 61 | then true | |
62 | 62 | else (take(p, 2) == "3M") | |
63 | 63 | ||
64 | 64 | ||
65 | 65 | func q (r,p) = if ((size(p) > 0)) | |
66 | 66 | then (r + 1) | |
67 | 67 | else (r + 0) | |
68 | 68 | ||
69 | 69 | ||
70 | 70 | func s (t) = { | |
71 | 71 | let h = getString(this, t) | |
72 | 72 | if ($isInstanceOf(h, "String")) | |
73 | 73 | then { | |
74 | 74 | let i = h | |
75 | 75 | if ((i == "PENDING")) | |
76 | 76 | then true | |
77 | 77 | else false | |
78 | 78 | } | |
79 | 79 | else false | |
80 | 80 | } | |
81 | 81 | ||
82 | 82 | ||
83 | 83 | func u (v) = take(drop(v, 1), value(indexOf(drop(v, 1), "\""))) | |
84 | 84 | ||
85 | 85 | ||
86 | 86 | func w (v,t) = { | |
87 | 87 | let x = value(indexOf(v, (("\"" + t) + "\":"))) | |
88 | 88 | let y = drop(v, ((x + size(t)) + 3)) | |
89 | 89 | let z = u(y) | |
90 | 90 | z | |
91 | 91 | } | |
92 | 92 | ||
93 | 93 | ||
94 | 94 | func A (v,t) = { | |
95 | 95 | let x = value(indexOf(v, (("\"" + t) + "\":"))) | |
96 | 96 | let y = take(v, ((x + size(t)) + 3)) | |
97 | 97 | y | |
98 | 98 | } | |
99 | 99 | ||
100 | 100 | ||
101 | 101 | func B (v,t) = { | |
102 | 102 | let x = value(indexOf(v, (("\"" + t) + "\":"))) | |
103 | 103 | let y = takeRight(v, (size(v) - ((((x + size(t)) + 3) + 0) + 2))) | |
104 | 104 | y | |
105 | 105 | } | |
106 | 106 | ||
107 | 107 | ||
108 | 108 | func C (D) = { | |
109 | 109 | let h = D | |
110 | 110 | if ($isInstanceOf(h, "String")) | |
111 | 111 | then { | |
112 | 112 | let E = h | |
113 | 113 | E | |
114 | 114 | } | |
115 | 115 | else throw("Sponsored Public Key String expected") | |
116 | 116 | } | |
117 | 117 | ||
118 | 118 | ||
119 | 119 | @Callable(F) | |
120 | 120 | func fileCertification (G,H,g,y,I) = { | |
121 | 121 | let J = value(F.transactionId) | |
122 | 122 | let K = e(G, g) | |
123 | 123 | let L = l(g) | |
124 | 124 | let M = (this == F.caller) | |
125 | 125 | let n = if (M) | |
126 | 126 | then toString(addressFromPublicKey(fromBase58String(I))) | |
127 | 127 | else toBase58String(F.caller.bytes) | |
128 | - | let N = m(n) | |
129 | 128 | if (true) | |
130 | 129 | then throw("up to gere ok") | |
131 | - | else if ((K != "NONE")) | |
132 | - | then throw("This entry already exist") | |
133 | - | else if ((L != "NONE")) | |
134 | - | then throw("This uuid already exist") | |
135 | - | else if ((size(g) != 36)) | |
136 | - | then throw("Uuid should be 36 characters.") | |
137 | - | else if ((size(G) != 64)) | |
138 | - | then throw("Hash should be 64 characters.") | |
139 | - | else if ((size(H) > 150)) | |
140 | - | then throw("Title is too long, 150 characters max.") | |
141 | - | else if ((N > 0)) | |
142 | - | then [StringEntry(g, toBase58String(J)), StringEntry((G + g), toBase58String(J)), StringEntry((H + g), toBase58String(J)), IntegerEntry(("addr_WHITELISTED_" + n), (N - 1)), StringEntry(((("data_fc_" + toBase58String(J)) + "_") + n), y), ScriptTransfer(addressFromStringValue(n), 0, c)] | |
143 | - | else if (!(M)) | |
144 | - | then { | |
145 | - | let O = value(F.payments[0]) | |
146 | - | let P = value(O.amount) | |
147 | - | let Q = if (isDefined(O.assetId)) | |
148 | - | then value(O.assetId) | |
149 | - | else throw("Waves is not accepted as payment") | |
150 | - | let R = getIntegerValue(a, ("certification_fee_" + toBase58String(value(Q)))) | |
151 | - | if ((c != Q)) | |
152 | - | then throw("This token is not accepted at the moment") | |
153 | - | else if (if ((P != R)) | |
154 | - | then (0 >= N) | |
155 | - | else false) | |
156 | - | then throw("The price is wrong") | |
157 | - | else [StringEntry(g, toBase58String(J)), StringEntry((G + g), toBase58String(J)), StringEntry((H + g), toBase58String(J)), StringEntry(((("data_fc_" + toBase58String(J)) + "_") + n), y), ScriptTransfer(addressFromStringValue(b), P, O.assetId)] | |
158 | - | } | |
159 | - | else throw("You are not allowed to do that") | |
130 | + | else { | |
131 | + | let N = m(n) | |
132 | + | if ((K != "NONE")) | |
133 | + | then throw("This entry already exist") | |
134 | + | else if ((L != "NONE")) | |
135 | + | then throw("This uuid already exist") | |
136 | + | else if ((size(g) != 36)) | |
137 | + | then throw("Uuid should be 36 characters.") | |
138 | + | else if ((size(G) != 64)) | |
139 | + | then throw("Hash should be 64 characters.") | |
140 | + | else if ((size(H) > 150)) | |
141 | + | then throw("Title is too long, 150 characters max.") | |
142 | + | else if ((N > 0)) | |
143 | + | then [StringEntry(g, toBase58String(J)), StringEntry((G + g), toBase58String(J)), StringEntry((H + g), toBase58String(J)), IntegerEntry(("addr_WHITELISTED_" + n), (N - 1)), StringEntry(((("data_fc_" + toBase58String(J)) + "_") + n), y), ScriptTransfer(addressFromStringValue(n), 0, c)] | |
144 | + | else if (!(M)) | |
145 | + | then { | |
146 | + | let O = value(F.payments[0]) | |
147 | + | let P = value(O.amount) | |
148 | + | let Q = if (isDefined(O.assetId)) | |
149 | + | then value(O.assetId) | |
150 | + | else throw("Waves is not accepted as payment") | |
151 | + | let R = getIntegerValue(a, ("certification_fee_" + toBase58String(value(Q)))) | |
152 | + | if ((c != Q)) | |
153 | + | then throw("This token is not accepted at the moment") | |
154 | + | else if (if ((P != R)) | |
155 | + | then (0 >= N) | |
156 | + | else false) | |
157 | + | then throw("The price is wrong") | |
158 | + | else [StringEntry(g, toBase58String(J)), StringEntry((G + g), toBase58String(J)), StringEntry((H + g), toBase58String(J)), StringEntry(((("data_fc_" + toBase58String(J)) + "_") + n), y), ScriptTransfer(addressFromStringValue(b), P, O.assetId)] | |
159 | + | } | |
160 | + | else throw("You are not allowed to do that") | |
161 | + | } | |
160 | 162 | } | |
161 | 163 | ||
162 | 164 | ||
163 | 165 | ||
164 | 166 | @Callable(F) | |
165 | 167 | func revokeCertification (S,I) = { | |
166 | 168 | let J = value(F.transactionId) | |
167 | 169 | let M = (this == F.caller) | |
168 | 170 | let n = if (M) | |
169 | 171 | then toString(addressFromPublicKey(fromBase58String(I))) | |
170 | 172 | else toBase58String(F.caller.bytes) | |
171 | 173 | let K = { | |
172 | 174 | let h = getString(this, ((("data_fc_" + S) + "_") + n)) | |
173 | 175 | if ($isInstanceOf(h, "String")) | |
174 | 176 | then { | |
175 | 177 | let i = h | |
176 | 178 | i | |
177 | 179 | } | |
178 | 180 | else "NONE" | |
179 | 181 | } | |
180 | 182 | let T = { | |
181 | 183 | let h = getString(this, ("STATUS_FC_" + S)) | |
182 | 184 | if ($isInstanceOf(h, "String")) | |
183 | 185 | then { | |
184 | 186 | let i = h | |
185 | 187 | i | |
186 | 188 | } | |
187 | 189 | else "NONE" | |
188 | 190 | } | |
189 | 191 | let N = m(n) | |
190 | 192 | let U = (((dropRight(K, 1) + ",\"status\":\"REVOKED_") + toBase58String(J)) + "\"}") | |
191 | 193 | if ((T != "NONE")) | |
192 | 194 | then throw("This certification have already been revoked.") | |
193 | 195 | else if ((K == "NONE")) | |
194 | 196 | then throw("You cannot change the status of this certification.") | |
195 | 197 | else if ((N > 0)) | |
196 | 198 | then [IntegerEntry(("addr_WHITELISTED_" + n), (N - 1)), StringEntry(("STATUS_FC_" + S), ("REVOKED_" + toBase58String(J))), StringEntry(((("data_fc_" + S) + "_") + n), U)] | |
197 | 199 | else if (!(M)) | |
198 | 200 | then { | |
199 | 201 | let O = value(F.payments[0]) | |
200 | 202 | let P = value(O.amount) | |
201 | 203 | let Q = if (isDefined(O.assetId)) | |
202 | 204 | then value(O.assetId) | |
203 | 205 | else throw("Waves is not accepted as payment") | |
204 | 206 | let R = getIntegerValue(a, ("certification_fee_" + toBase58String(value(Q)))) | |
205 | 207 | if ((c != Q)) | |
206 | 208 | then throw("This token is not accepted at the moment") | |
207 | 209 | else if (if ((P != R)) | |
208 | 210 | then (0 >= N) | |
209 | 211 | else false) | |
210 | 212 | then throw("The price is wrong") | |
211 | 213 | else [StringEntry(("STATUS_FC_" + S), ("REVOKED_" + toBase58String(J))), StringEntry(((("data_fc_" + S) + "_") + n), U), ScriptTransfer(addressFromStringValue(b), P, O.assetId)] | |
212 | 214 | } | |
213 | 215 | else throw("You are not allowed to do that") | |
214 | 216 | } | |
215 | 217 | ||
216 | 218 | ||
217 | 219 | ||
218 | 220 | @Callable(F) | |
219 | 221 | func emailCertification (k,H,g,y,I) = { | |
220 | 222 | let J = value(F.transactionId) | |
221 | 223 | let K = j(k, g) | |
222 | 224 | let L = l(g) | |
223 | 225 | let M = (this == F.caller) | |
224 | 226 | let n = if (M) | |
225 | 227 | then toString(addressFromPublicKey(fromBase58String(I))) | |
226 | 228 | else toBase58String(F.caller.bytes) | |
227 | 229 | let N = m(n) | |
228 | 230 | if ((K != "NONE")) | |
229 | 231 | then throw("This entry already exist") | |
230 | 232 | else if ((L != "NONE")) | |
231 | 233 | then throw("This uuid already exist") | |
232 | 234 | else if ((size(g) > 36)) | |
233 | 235 | then throw("Uuid is too long, 36 characters max.") | |
234 | 236 | else if ((size(k) > 150)) | |
235 | 237 | then throw("Domain is too long, 150 characters max.") | |
236 | 238 | else if ((size(H) > 150)) | |
237 | 239 | then throw("Title is too long, 150 characters max.") | |
238 | 240 | else if ((N > 0)) | |
239 | 241 | then [StringEntry(g, toBase58String(J)), StringEntry(((g + "@") + k), toBase58String(J)), StringEntry((H + g), toBase58String(J)), IntegerEntry(("addr_WHITELISTED_" + n), (N - 1)), StringEntry(((("data_ec_" + toBase58String(J)) + "_") + n), y), ScriptTransfer(addressFromStringValue(n), 0, c)] | |
240 | 242 | else if (!(M)) | |
241 | 243 | then { | |
242 | 244 | let O = value(F.payments[0]) | |
243 | 245 | let P = value(O.amount) | |
244 | 246 | let Q = if (isDefined(O.assetId)) | |
245 | 247 | then value(O.assetId) | |
246 | 248 | else throw("Waves is not accepted as payment") | |
247 | 249 | let R = getIntegerValue(a, ("certification_fee_" + toBase58String(value(Q)))) | |
248 | 250 | if ((c != Q)) | |
249 | 251 | then throw("This token is not accepted at the moment") | |
250 | 252 | else if (if ((P != R)) | |
251 | 253 | then (0 >= N) | |
252 | 254 | else false) | |
253 | 255 | then throw("The price is wrong") | |
254 | 256 | else [StringEntry(g, toBase58String(J)), StringEntry(((g + "@") + k), toBase58String(J)), StringEntry((H + g), toBase58String(J)), StringEntry(((("data_ec_" + toBase58String(J)) + "_") + n), y), ScriptTransfer(addressFromStringValue(b), P, O.assetId)] | |
255 | 257 | } | |
256 | 258 | else throw("You are not allowed to do that") | |
257 | 259 | } | |
258 | 260 | ||
259 | 261 | ||
260 | 262 | ||
261 | 263 | @Callable(F) | |
262 | 264 | func createAgreement (G,H,V,W,I,g) = { | |
263 | 265 | let J = value(F.transactionId) | |
264 | 266 | let K = e(G, g) | |
265 | 267 | let L = l(g) | |
266 | 268 | let M = (this == F.caller) | |
267 | 269 | let n = if (M) | |
268 | 270 | then toString(addressFromPublicKey(fromBase58String(I))) | |
269 | 271 | else toBase58String(F.caller.bytes) | |
270 | 272 | let N = m(n) | |
271 | 273 | let X = ((((A(V, "creator") + "\"") + n) + "\"") + B(V, "creator")) | |
272 | 274 | let Y = split(W, ",") | |
273 | 275 | let Z = size(Y) | |
274 | 276 | let aa = StringEntry((H + g), toBase58String(J)) | |
275 | 277 | let ab = StringEntry((G + g), toBase58String(J)) | |
276 | 278 | let ac = StringEntry(((("data_MA_" + toBase58String(J)) + "_") + n), X) | |
277 | 279 | let ad = StringEntry(((n + "_MA_") + toBase58String(J)), ("SIGNED_" + toBase58String(J))) | |
278 | 280 | let ae = IntegerEntry(("addr_WHITELISTED_" + n), (N - (Z + 1))) | |
279 | 281 | if ((K != "NONE")) | |
280 | 282 | then throw("This entry already exist") | |
281 | 283 | else if ((L != "NONE")) | |
282 | 284 | then throw("This uuid already exist") | |
283 | 285 | else if ((size(g) > 36)) | |
284 | 286 | then throw("Uuid is too long, 36 characters max.") | |
285 | 287 | else if ((size(G) > 64)) | |
286 | 288 | then throw("Message-id is too long, 64 characters max.") | |
287 | 289 | else if ((size(H) > 150)) | |
288 | 290 | then throw("Title is too long, 150 characters max.") | |
289 | 291 | else if ((N > 0)) | |
290 | 292 | then if (((Z + 1) > N)) | |
291 | 293 | then throw("You don't have enough certification credit") | |
292 | 294 | else if ((Z == 6)) | |
293 | 295 | then [aa, ab, ac, ad, ae, StringEntry(((Y[0] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[1] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[2] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[3] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[4] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[5] + "_MA_") + toBase58String(J)), "PENDING"), ScriptTransfer(addressFromStringValue(n), 0, c), ScriptTransfer(addressFromStringValue(Y[0]), 0, c), ScriptTransfer(addressFromStringValue(Y[1]), 0, c), ScriptTransfer(addressFromStringValue(Y[2]), 0, c), ScriptTransfer(addressFromStringValue(Y[3]), 0, c), ScriptTransfer(addressFromStringValue(Y[4]), 0, c), ScriptTransfer(addressFromStringValue(Y[5]), 0, c)] | |
294 | 296 | else if ((Z == 5)) | |
295 | 297 | then [aa, ab, ac, ad, ae, StringEntry(((Y[0] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[1] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[2] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[3] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[4] + "_MA_") + toBase58String(J)), "PENDING"), ScriptTransfer(addressFromStringValue(n), 0, c), ScriptTransfer(addressFromStringValue(Y[0]), 0, c), ScriptTransfer(addressFromStringValue(Y[1]), 0, c), ScriptTransfer(addressFromStringValue(Y[2]), 0, c), ScriptTransfer(addressFromStringValue(Y[3]), 0, c), ScriptTransfer(addressFromStringValue(Y[4]), 0, c)] | |
296 | 298 | else if ((Z == 4)) | |
297 | 299 | then [aa, ab, ac, ad, ae, StringEntry(((Y[0] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[1] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[2] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[3] + "_MA_") + toBase58String(J)), "PENDING"), ScriptTransfer(addressFromStringValue(n), 0, c), ScriptTransfer(addressFromStringValue(Y[0]), 0, c), ScriptTransfer(addressFromStringValue(Y[1]), 0, c), ScriptTransfer(addressFromStringValue(Y[2]), 0, c), ScriptTransfer(addressFromStringValue(Y[3]), 0, c)] | |
298 | 300 | else if ((Z == 3)) | |
299 | 301 | then [aa, ab, ac, ad, ae, StringEntry(((Y[0] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[1] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[2] + "_MA_") + toBase58String(J)), "PENDING"), ScriptTransfer(addressFromStringValue(n), 0, c), ScriptTransfer(addressFromStringValue(Y[0]), 0, c), ScriptTransfer(addressFromStringValue(Y[1]), 0, c), ScriptTransfer(addressFromStringValue(Y[2]), 0, c)] | |
300 | 302 | else if ((Z == 2)) | |
301 | 303 | then [aa, ab, ac, ad, ae, StringEntry(((Y[0] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[1] + "_MA_") + toBase58String(J)), "PENDING"), ScriptTransfer(addressFromStringValue(n), 0, c), ScriptTransfer(addressFromStringValue(Y[0]), 0, c), ScriptTransfer(addressFromStringValue(Y[1]), 0, c)] | |
302 | 304 | else if ((Z == 1)) | |
303 | 305 | then [aa, ab, ac, ad, ae, StringEntry(((Y[0] + "_MA_") + toBase58String(J)), "PENDING"), ScriptTransfer(addressFromStringValue(n), 0, c), ScriptTransfer(addressFromStringValue(Y[0]), 0, c)] | |
304 | 306 | else throw("Wrong number of participants") | |
305 | 307 | else if (!(M)) | |
306 | 308 | then { | |
307 | 309 | let O = value(F.payments[0]) | |
308 | 310 | let P = if (isDefined(O.amount)) | |
309 | 311 | then value(O.amount) | |
310 | 312 | else 0 | |
311 | 313 | let Q = if (isDefined(O.assetId)) | |
312 | 314 | then value(O.assetId) | |
313 | 315 | else c | |
314 | 316 | let R = getIntegerValue(a, ("certification_fee_" + toBase58String(value(Q)))) | |
315 | 317 | if (((R * (Z + 1)) > P)) | |
316 | 318 | then throw(("The price is wrong, it should be " + toString((R * (Z + 1))))) | |
317 | 319 | else if ((Z == 6)) | |
318 | 320 | then [aa, ab, ac, ad, StringEntry(((Y[0] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[1] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[2] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[3] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[4] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[5] + "_MA_") + toBase58String(J)), "PENDING"), ScriptTransfer(addressFromStringValue(b), P, c), ScriptTransfer(addressFromStringValue(Y[0]), 0, c), ScriptTransfer(addressFromStringValue(Y[1]), 0, c), ScriptTransfer(addressFromStringValue(Y[2]), 0, c), ScriptTransfer(addressFromStringValue(Y[3]), 0, c), ScriptTransfer(addressFromStringValue(Y[4]), 0, c), ScriptTransfer(addressFromStringValue(Y[5]), 0, c)] | |
319 | 321 | else if ((Z == 5)) | |
320 | 322 | then [aa, ab, ac, ad, StringEntry(((Y[0] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[1] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[2] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[3] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[4] + "_MA_") + toBase58String(J)), "PENDING"), ScriptTransfer(addressFromStringValue(b), P, c), ScriptTransfer(addressFromStringValue(Y[0]), 0, c), ScriptTransfer(addressFromStringValue(Y[1]), 0, c), ScriptTransfer(addressFromStringValue(Y[2]), 0, c), ScriptTransfer(addressFromStringValue(Y[3]), 0, c), ScriptTransfer(addressFromStringValue(Y[4]), 0, c)] | |
321 | 323 | else if ((Z == 4)) | |
322 | 324 | then [aa, ab, ac, ad, StringEntry(((Y[0] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[1] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[2] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[3] + "_MA_") + toBase58String(J)), "PENDING"), ScriptTransfer(addressFromStringValue(b), P, c), ScriptTransfer(addressFromStringValue(Y[0]), 0, c), ScriptTransfer(addressFromStringValue(Y[1]), 0, c), ScriptTransfer(addressFromStringValue(Y[2]), 0, c), ScriptTransfer(addressFromStringValue(Y[3]), 0, c)] | |
323 | 325 | else if ((Z == 3)) | |
324 | 326 | then [aa, ab, ac, ad, StringEntry(((Y[0] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[1] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[2] + "_MA_") + toBase58String(J)), "PENDING"), ScriptTransfer(addressFromStringValue(b), P, c), ScriptTransfer(addressFromStringValue(Y[0]), 0, c), ScriptTransfer(addressFromStringValue(Y[1]), 0, c), ScriptTransfer(addressFromStringValue(Y[2]), 0, c)] | |
325 | 327 | else if ((Z == 2)) | |
326 | 328 | then [aa, ab, ac, ad, StringEntry(((Y[0] + "_MA_") + toBase58String(J)), "PENDING"), StringEntry(((Y[1] + "_MA_") + toBase58String(J)), "PENDING"), ScriptTransfer(addressFromStringValue(b), P, c), ScriptTransfer(addressFromStringValue(Y[0]), 0, c), ScriptTransfer(addressFromStringValue(Y[1]), 0, c)] | |
327 | 329 | else if ((Z == 1)) | |
328 | 330 | then [aa, ab, ac, ad, StringEntry(((Y[0] + "_MA_") + toBase58String(J)), "PENDING"), ScriptTransfer(addressFromStringValue(b), P, c), ScriptTransfer(addressFromStringValue(Y[0]), 0, c)] | |
329 | 331 | else throw(("Needs 1 to 6 recipient addresses, currently sent: " + toString(Z))) | |
330 | 332 | } | |
331 | 333 | else throw("You are not allowed to do that") | |
332 | 334 | } | |
333 | 335 | ||
334 | 336 | ||
335 | 337 | ||
336 | 338 | @Callable(F) | |
337 | 339 | func signAgreement (G,af,I) = { | |
338 | 340 | let O = value(F.payments[0]) | |
339 | 341 | let P = value(O.amount) | |
340 | 342 | let J = value(F.transactionId) | |
341 | 343 | let M = (this == F.caller) | |
342 | 344 | let ag = if (M) | |
343 | 345 | then toString(addressFromPublicKey(fromBase58String(I))) | |
344 | 346 | else toBase58String(F.caller.bytes) | |
345 | 347 | let ah = s(((ag + "_MA_") + af)) | |
346 | 348 | if (!(ah)) | |
347 | 349 | then throw("Sorry there is no pending signature") | |
348 | 350 | else [StringEntry(((ag + "_MA_") + af), ("SIGNED_" + toBase58String(J))), ScriptTransfer(addressFromStringValue(ag), 0, c)] | |
349 | 351 | } | |
350 | 352 | ||
351 | 353 | ||
352 | 354 | ||
353 | 355 | @Callable(F) | |
354 | 356 | func usdnSignCredits () = { | |
355 | 357 | let O = value(F.payments[0]) | |
356 | 358 | let n = toBase58String(F.caller.bytes) | |
357 | 359 | let ai = value(O.assetId) | |
358 | 360 | let P = value(O.amount) | |
359 | 361 | let aj = ((P * 2) / 1000000) | |
360 | 362 | let N = m(n) | |
361 | 363 | if ((toBase58String(ai) != d)) | |
362 | 364 | then throw("Only USDN can be exchanged") | |
363 | 365 | else if (if (((P % 1000000) != 0)) | |
364 | 366 | then ((P % 1000000) != 500000) | |
365 | 367 | else false) | |
366 | 368 | then throw(((("You can only exchange multiple of 0.5, you sent:" + dropRight(toString(P), 6)) + ".") + takeRight(toString(P), 6))) | |
367 | 369 | else [IntegerEntry(("addr_WHITELISTED_" + n), (N + aj)), ScriptTransfer(addressFromStringValue(b), P, ai)] | |
368 | 370 | } | |
369 | 371 | ||
370 | 372 | ||
371 | 373 | @Verifier(ak) | |
372 | 374 | func al () = { | |
373 | 375 | let h = ak | |
374 | 376 | if ($isInstanceOf(h, "InvokeScriptTransaction")) | |
375 | 377 | then { | |
376 | 378 | let am = h | |
377 | 379 | if (if (if ((am.function == "fileCertification")) | |
378 | 380 | then true | |
379 | 381 | else (am.function == "emailCertification")) | |
380 | 382 | then true | |
381 | 383 | else (am.function == "createAgreement")) | |
382 | 384 | then sigVerify(ak.bodyBytes, ak.proofs[0], fromBase58String(C(am.args[4]))) | |
383 | 385 | else if ((am.function == "signAgreement")) | |
384 | 386 | then sigVerify(ak.bodyBytes, ak.proofs[0], fromBase58String(C(am.args[2]))) | |
385 | 387 | else if ((am.function == "revokeCertification")) | |
386 | 388 | then sigVerify(ak.bodyBytes, ak.proofs[0], fromBase58String(C(am.args[1]))) | |
387 | 389 | else sigVerify(ak.bodyBytes, ak.proofs[0], ak.senderPublicKey) | |
388 | 390 | } | |
389 | 391 | else sigVerify(ak.bodyBytes, ak.proofs[0], ak.senderPublicKey) | |
390 | 392 | } | |
391 | 393 |
github/deemru/w8io/3ef1775 171.72 ms ◑