tx · Cj5UTcsHRtrkDYi4YZL9QCQFzhSMct3FSA5ut9zDH6xZ 3P89GyrcNa5dQkYSmesYa6KyeJoCuuVdCz9: -0.01400000 Waves 2020.02.09 04:07 [1921624] smart account 3P89GyrcNa5dQkYSmesYa6KyeJoCuuVdCz9 > SELF 0.00000000 Waves
{ "type": 13, "id": "Cj5UTcsHRtrkDYi4YZL9QCQFzhSMct3FSA5ut9zDH6xZ", "fee": 1400000, "feeAssetId": null, "timestamp": 1581210432477, "version": 1, "sender": "3P89GyrcNa5dQkYSmesYa6KyeJoCuuVdCz9", "senderPublicKey": "6ZJKMPB6S6K9MF8YNg9ppUmWavmC3KCebp1JeaEBdHu1", "proofs": [ "45Zkh5rRuNs8JRVHYdCzMMSBGVGa9VGz3t1Az2daMmmLhKTPkEY7Q68oqKaN8Vphg6d9yD5hZjKgzDucFUhje8yw", "4z7zFwySJKmizj5QXeEJ3SquURDkspSdzRib98rcBrZ17Dy7i3CcFyqgVLiUbuDu1iR2Dec9EN8pAoAxDSKNTStH" ], "script": "base64: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d2FyZAAAAAEAAAAGYW1vdW50BAAAAAhpc0FjdGl2ZQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzAgAAAAtkYXBwX3N0YXR1cwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABeAUAAAAHJG1hdGNoMAUAAAABeAcDAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQYJAABnAAAAAgUAAAANbGFzdEJsb2NrVGltZQkAAGQAAAACBQAAAA1tb250aE9wZW5UaW1lBQAAAAd0aW1lb3V0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACNUaGUgbmV4dCByZXdhcmQgd2lsbCBiZSBzZW50IGFmdGVyIAkBAAAAEHRvRGF0ZVRpbWVTdHJpbmcAAAABCQAAZAAAAAIFAAAADW1vbnRoT3BlblRpbWUFAAAACGF2Z01vbnRoAgAAAAEuAwkBAAAAAiE9AAAAAggFAAAAA2ludgAAAA9jYWxsZXJQdWJsaWNLZXkFAAAADW1hbmFnZXJQdWJLZXkJAAACAAAAAQIAAAAkT25seSBhZG1pbmlzdHJhdG9yIGNhbiBzZW5kIHJld2FyZHMhAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANpbnYAAAAHcGF5bWVudAkAAAIAAAABAgAAADFQbGVhc2UgZG8gbm90IGF0dGFjaCBwYXltZW50IHdoZW4gc2VuZGluZyByZXdhcmQuBAAAAA5vbGRCYXNlQmFsYW5jZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAMYmFsYW5jZV9iYXNlBAAAAA9vbGRRdW90ZUJhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAADWJhbGFuY2VfcXVvdGUEAAAAC2Jhc2VCYWxhbmNlCQAD6wAAAAIFAAAABHRoaXMFAAAADWFtb3VudEFzc2V0SWQEAAAADHF1b3RlQmFsYW5jZQkAA+sAAAACBQAAAAR0aGlzBQAAAAxwcmljZUFzc2V0SWQEAAAACW1heEFtb3VudAkAAGUAAAACBQAAAAxxdW90ZUJhbGFuY2UJAABrAAAAAwUAAAAPb2xkUXVvdGVCYWxhbmNlBQAAAA5vbGRCYXNlQmFs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", "chainId": 87, "height": 1921624, "spentComplexity": 0 } View: original | compacted Prev: 7aRQFY8r3EAUAkweAsQ8QGEWZQCirdJzkQs7dvk3doBE Next: 4RNRPBMRwRtnoHbKPwLdYgtQorf3LtiEDRoypwwQ4zgL Diff:
Old | New | Differences | |
---|---|---|---|
5 | 5 | ||
6 | 6 | let b = base58'EYz8Zvs62D4d7F5ZgXHCWuzuFaZg63FYnfVQrTWQoLSK' | |
7 | 7 | ||
8 | - | let c = | |
8 | + | let c = base58'TmuBv3VXcuvwBUwzhW3fWoAuykKSbQPzBd9QvbKqtdg' | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = base58'5dQbzkYkh2UWtcR1cDwxZVzkduK1SVEeVa1TyLmD6eVU' | |
11 | 11 | ||
12 | - | let e = | |
12 | + | let e = base58'EaKK5PAFUkgtnF7xcyABUzi8YBQADmUDnPzQBHjCTAKT' | |
13 | 13 | ||
14 | - | let f = | |
14 | + | let f = (86400 * 1000) | |
15 | 15 | ||
16 | - | let g = | |
16 | + | let g = (2629746 * 1000) | |
17 | 17 | ||
18 | - | let h = | |
18 | + | let h = lastBlock.timestamp | |
19 | 19 | ||
20 | - | let i = ( | |
20 | + | let i = ((h / g) * g) | |
21 | 21 | ||
22 | - | let j = | |
22 | + | let j = ((h / (3 * g)) * (3 * g)) | |
23 | 23 | ||
24 | - | let k = ((j / i) * i) | |
25 | - | ||
26 | - | let l = ((j / (3 * i)) * (3 * i)) | |
27 | - | ||
28 | - | func m (n) = { | |
29 | - | let o = " " | |
30 | - | let p = " UTC" | |
31 | - | let q = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365] | |
32 | - | let r = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366] | |
33 | - | if (if ((-12212553600000 > n)) | |
24 | + | func k (l) = { | |
25 | + | let m = " " | |
26 | + | let n = " UTC" | |
27 | + | let o = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365] | |
28 | + | let p = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366] | |
29 | + | if (if ((-12212553600000 > l)) | |
34 | 30 | then true | |
35 | - | else ( | |
31 | + | else (l > 253402300799999)) | |
36 | 32 | then throw("ISO 8601: Only years from 1583 to 9999 are permitted.") | |
37 | 33 | else { | |
38 | - | let | |
39 | - | let | |
40 | - | let | |
41 | - | let | |
42 | - | let | |
43 | - | let | |
44 | - | let | |
45 | - | then ((( | |
34 | + | let q = (((((1969 * 365) + (1969 / 4)) - (1969 / 100)) + (1969 / 400)) + 366) | |
35 | + | let r = (l + ((q * 86400) * 1000)) | |
36 | + | let s = { | |
37 | + | let t = ((r / (31556952 * 1000)) - 1) | |
38 | + | let u = (((((t * 365) + (t / 4)) - (t / 100)) + (t / 400)) + 366) | |
39 | + | let v = ((r / (86400 * 1000)) - u) | |
40 | + | let w = if (if (if ((((t + 1) % 4) == 0)) | |
41 | + | then (((t + 1) % 100) != 0) | |
46 | 42 | else false) | |
47 | 43 | then true | |
48 | - | else ((( | |
49 | - | then | |
50 | - | else | |
51 | - | let | |
44 | + | else (((t + 1) % 400) == 0)) | |
45 | + | then p | |
46 | + | else o | |
47 | + | let x = if ((v >= w[12])) | |
52 | 48 | then throw() | |
53 | - | else if (( | |
49 | + | else if ((v >= w[11])) | |
54 | 50 | then 11 | |
55 | - | else if (( | |
51 | + | else if ((v >= w[10])) | |
56 | 52 | then 10 | |
57 | - | else if (( | |
53 | + | else if ((v >= w[9])) | |
58 | 54 | then 9 | |
59 | - | else if (( | |
55 | + | else if ((v >= w[8])) | |
60 | 56 | then 8 | |
61 | - | else if (( | |
57 | + | else if ((v >= w[7])) | |
62 | 58 | then 7 | |
63 | - | else if (( | |
59 | + | else if ((v >= w[6])) | |
64 | 60 | then 6 | |
65 | - | else if (( | |
61 | + | else if ((v >= w[5])) | |
66 | 62 | then 5 | |
67 | - | else if (( | |
63 | + | else if ((v >= w[4])) | |
68 | 64 | then 4 | |
69 | - | else if (( | |
65 | + | else if ((v >= w[3])) | |
70 | 66 | then 3 | |
71 | - | else if (( | |
67 | + | else if ((v >= w[2])) | |
72 | 68 | then 2 | |
73 | - | else if (( | |
69 | + | else if ((v >= w[1])) | |
74 | 70 | then 1 | |
75 | - | else if (( | |
71 | + | else if ((v >= w[0])) | |
76 | 72 | then 0 | |
77 | 73 | else throw() | |
78 | - | let | |
79 | - | ((((toString(( | |
74 | + | let y = (v - w[x]) | |
75 | + | ((((toString((t + 1)) + "-") + drop(toString((x + 101)), 1)) + "-") + drop(toString((y + 101)), 1)) | |
80 | 76 | } | |
81 | - | let | |
82 | - | let | |
83 | - | let | |
84 | - | let | |
85 | - | let | |
86 | - | let | |
87 | - | let | |
88 | - | let | |
89 | - | ((((drop(toString(( | |
77 | + | let z = { | |
78 | + | let A = (r % (86400 * 1000)) | |
79 | + | let B = (A / (3600 * 1000)) | |
80 | + | let C = (A % (3600 * 1000)) | |
81 | + | let x = (C / (60 * 1000)) | |
82 | + | let D = (C % (60 * 1000)) | |
83 | + | let E = (D / 1000) | |
84 | + | let F = (D % 1000) | |
85 | + | ((((drop(toString((B + 100)), 1) + ":") + drop(toString((x + 100)), 1)) + ":") + drop(toString((E + 100)), 1)) | |
90 | 86 | } | |
91 | - | ((( | |
87 | + | (((s + m) + z) + n) | |
92 | 88 | } | |
93 | 89 | } | |
94 | 90 | ||
95 | 91 | ||
96 | - | @Callable( | |
92 | + | @Callable(G) | |
97 | 93 | func setBalance () = { | |
98 | - | let | |
99 | - | let | |
100 | - | if ($isInstanceOf( | |
94 | + | let H = { | |
95 | + | let I = getBoolean(this, "dapp_status") | |
96 | + | if ($isInstanceOf(I, "Boolean")) | |
101 | 97 | then { | |
102 | - | let | |
103 | - | | |
98 | + | let J = I | |
99 | + | J | |
104 | 100 | } | |
105 | 101 | else false | |
106 | 102 | } | |
107 | - | if ( | |
103 | + | if (H) | |
108 | 104 | then throw("The account is already initialized for trading.") | |
109 | - | else if (( | |
105 | + | else if ((G.callerPublicKey != e)) | |
110 | 106 | then throw("Only the administrator can adjust the balance!") | |
111 | - | else if (isDefined( | |
107 | + | else if (isDefined(G.payment)) | |
112 | 108 | then throw("Please do not attach payment when setting balance.") | |
113 | 109 | else { | |
114 | - | let | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | WriteSet([DataEntry("balance_base", | |
110 | + | let s = k(h) | |
111 | + | let K = (((take(s, 10) + "T") + take(drop(s, 11), 8)) + "Z") | |
112 | + | let L = assetBalance(this, b) | |
113 | + | let M = assetBalance(this, a) | |
114 | + | WriteSet([DataEntry("balance_base", L), DataEntry("balance_quote", M), DataEntry("dapp_status", true), DataEntry("last_update", K)]) | |
119 | 115 | } | |
120 | 116 | } | |
121 | 117 | ||
122 | 118 | ||
123 | 119 | ||
124 | - | @Callable( | |
125 | - | func sendReward ( | |
126 | - | let | |
127 | - | let | |
128 | - | if ($isInstanceOf( | |
120 | + | @Callable(G) | |
121 | + | func sendReward (N) = { | |
122 | + | let H = { | |
123 | + | let I = getBoolean(this, "dapp_status") | |
124 | + | if ($isInstanceOf(I, "Boolean")) | |
129 | 125 | then { | |
130 | - | let | |
131 | - | | |
126 | + | let J = I | |
127 | + | J | |
132 | 128 | } | |
133 | 129 | else false | |
134 | 130 | } | |
135 | - | if (if (!( | |
131 | + | if (if (!(H)) | |
136 | 132 | then true | |
137 | - | else ( | |
138 | - | then throw((("The next reward will be sent after " + | |
139 | - | else if (( | |
133 | + | else (h >= (i + f))) | |
134 | + | then throw((("The next reward will be sent after " + k((i + g))) + ".")) | |
135 | + | else if ((G.callerPublicKey != e)) | |
140 | 136 | then throw("Only administrator can send rewards!") | |
141 | - | else if (isDefined( | |
137 | + | else if (isDefined(G.payment)) | |
142 | 138 | then throw("Please do not attach payment when sending reward.") | |
143 | 139 | else { | |
144 | - | let | |
145 | - | let | |
146 | - | let | |
147 | - | let | |
148 | - | let | |
149 | - | if ((0 >= | |
140 | + | let O = getIntegerValue(this, "balance_base") | |
141 | + | let P = getIntegerValue(this, "balance_quote") | |
142 | + | let L = assetBalance(this, b) | |
143 | + | let M = assetBalance(this, a) | |
144 | + | let Q = (M - fraction(P, O, L)) | |
145 | + | if ((0 >= N)) | |
150 | 146 | then throw("Zero or negative rewards are not allowed.") | |
151 | - | else if (( | |
152 | - | then throw((("The maximum allowed amount is " + toString( | |
147 | + | else if ((N > Q)) | |
148 | + | then throw((("The maximum allowed amount is " + toString(Q)) + ".")) | |
153 | 149 | else { | |
154 | - | let | |
155 | - | let | |
156 | - | let | |
157 | - | ScriptResult(WriteSet([DataEntry("dapp_status", false), DataEntry("last_update", | |
150 | + | let s = k(h) | |
151 | + | let K = (((take(s, 10) + "T") + take(drop(s, 11), 8)) + "Z") | |
152 | + | let R = addressFromPublicKey(c) | |
153 | + | ScriptResult(WriteSet([DataEntry("dapp_status", false), DataEntry("last_update", K)]), TransferSet([ScriptTransfer(R, N, a)])) | |
158 | 154 | } | |
159 | 155 | } | |
160 | 156 | } | |
161 | 157 | ||
162 | 158 | ||
163 | - | @Verifier( | |
164 | - | func | |
165 | - | let | |
166 | - | if ($isInstanceOf( | |
159 | + | @Verifier(S) | |
160 | + | func T () = { | |
161 | + | let I = S | |
162 | + | if ($isInstanceOf(I, "Order")) | |
167 | 163 | then { | |
168 | - | let | |
169 | - | let | |
170 | - | then ( | |
164 | + | let U = I | |
165 | + | let V = if (if (if (if ((U.matcherFeeAssetId == a)) | |
166 | + | then (U.assetPair.priceAsset == a) | |
171 | 167 | else false) | |
172 | - | then ( | |
168 | + | then (U.assetPair.amountAsset == b) | |
173 | 169 | else false) | |
174 | 170 | then true | |
175 | - | else if (if (( | |
176 | - | then !(isDefined( | |
171 | + | else if (if ((U.orderType == Buy)) | |
172 | + | then !(isDefined(U.matcherFeeAssetId)) | |
177 | 173 | else false) | |
178 | - | then ( | |
174 | + | then (U.assetPair.amountAsset == a) | |
179 | 175 | else false) | |
180 | 176 | then true | |
181 | - | else if (if (( | |
182 | - | then !(isDefined( | |
177 | + | else if (if ((U.orderType == Sell)) | |
178 | + | then !(isDefined(U.matcherFeeAssetId)) | |
183 | 179 | else false) | |
184 | - | then if (!(isDefined( | |
180 | + | then if (!(isDefined(U.assetPair.priceAsset))) | |
185 | 181 | then true | |
186 | - | else ( | |
182 | + | else (U.assetPair.priceAsset == a) | |
187 | 183 | else false | |
188 | - | if ( | |
189 | - | then if (sigVerify( | |
184 | + | if (V) | |
185 | + | then if (sigVerify(S.bodyBytes, S.proofs[0], d)) | |
190 | 186 | then true | |
191 | - | else sigVerify( | |
187 | + | else sigVerify(S.bodyBytes, S.proofs[0], S.senderPublicKey) | |
192 | 188 | else false | |
193 | 189 | } | |
194 | - | else if (if ($isInstanceOf( | |
190 | + | else if (if ($isInstanceOf(I, "LeaseCancelTransaction")) | |
195 | 191 | then true | |
196 | - | else $isInstanceOf( | |
192 | + | else $isInstanceOf(I, "LeaseTransaction")) | |
197 | 193 | then { | |
198 | - | let | |
199 | - | sigVerify( | |
194 | + | let W = I | |
195 | + | sigVerify(S.bodyBytes, S.proofs[0], S.senderPublicKey) | |
200 | 196 | } | |
201 | - | else if ($isInstanceOf( | |
197 | + | else if ($isInstanceOf(I, "TransferTransaction")) | |
202 | 198 | then { | |
203 | - | let Z = K | |
204 | - | let aa = addressFromRecipient(Z.dApp) | |
205 | - | let ab = if ((Z.function == e)) | |
206 | - | then (aa == addressFromString(d)) | |
199 | + | let X = I | |
200 | + | let Y = addressFromRecipient(X.recipient) | |
201 | + | let Z = if (if (((j + f) > h)) | |
202 | + | then if ((X.assetId == a)) | |
203 | + | then true | |
204 | + | else (X.assetId == b) | |
205 | + | else false) | |
206 | + | then (Y == addressFromPublicKey(c)) | |
207 | 207 | else false | |
208 | - | if ( | |
209 | - | then sigVerify( | |
208 | + | if (Z) | |
209 | + | then sigVerify(S.bodyBytes, S.proofs[1], e) | |
210 | 210 | else false | |
211 | 211 | } | |
212 | - | else if ($isInstanceOf( | |
212 | + | else if ($isInstanceOf(I, "SetScriptTransaction")) | |
213 | 213 | then { | |
214 | - | let ac = K | |
215 | - | let aa = addressFromRecipient(ac.recipient) | |
216 | - | let ad = if (if (((l + h) > j)) | |
217 | - | then if ((ac.assetId == a)) | |
218 | - | then true | |
219 | - | else (ac.assetId == b) | |
220 | - | else false) | |
221 | - | then (aa == addressFromString(c)) | |
222 | - | else false | |
223 | - | if (ad) | |
224 | - | then sigVerify(U.bodyBytes, U.proofs[1], g) | |
225 | - | else false | |
214 | + | let aa = I | |
215 | + | sigVerify(S.bodyBytes, S.proofs[1], e) | |
226 | 216 | } | |
227 | - | else if ($isInstanceOf(K, "SetScriptTransaction")) | |
228 | - | then { | |
229 | - | let ae = K | |
230 | - | sigVerify(U.bodyBytes, U.proofs[1], g) | |
231 | - | } | |
232 | - | else false | |
217 | + | else false | |
233 | 218 | } | |
234 | 219 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS' | |
5 | 5 | ||
6 | 6 | let b = base58'EYz8Zvs62D4d7F5ZgXHCWuzuFaZg63FYnfVQrTWQoLSK' | |
7 | 7 | ||
8 | - | let c = | |
8 | + | let c = base58'TmuBv3VXcuvwBUwzhW3fWoAuykKSbQPzBd9QvbKqtdg' | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = base58'5dQbzkYkh2UWtcR1cDwxZVzkduK1SVEeVa1TyLmD6eVU' | |
11 | 11 | ||
12 | - | let e = | |
12 | + | let e = base58'EaKK5PAFUkgtnF7xcyABUzi8YBQADmUDnPzQBHjCTAKT' | |
13 | 13 | ||
14 | - | let f = | |
14 | + | let f = (86400 * 1000) | |
15 | 15 | ||
16 | - | let g = | |
16 | + | let g = (2629746 * 1000) | |
17 | 17 | ||
18 | - | let h = | |
18 | + | let h = lastBlock.timestamp | |
19 | 19 | ||
20 | - | let i = ( | |
20 | + | let i = ((h / g) * g) | |
21 | 21 | ||
22 | - | let j = | |
22 | + | let j = ((h / (3 * g)) * (3 * g)) | |
23 | 23 | ||
24 | - | let k = ((j / i) * i) | |
25 | - | ||
26 | - | let l = ((j / (3 * i)) * (3 * i)) | |
27 | - | ||
28 | - | func m (n) = { | |
29 | - | let o = " " | |
30 | - | let p = " UTC" | |
31 | - | let q = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365] | |
32 | - | let r = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366] | |
33 | - | if (if ((-12212553600000 > n)) | |
24 | + | func k (l) = { | |
25 | + | let m = " " | |
26 | + | let n = " UTC" | |
27 | + | let o = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365] | |
28 | + | let p = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366] | |
29 | + | if (if ((-12212553600000 > l)) | |
34 | 30 | then true | |
35 | - | else ( | |
31 | + | else (l > 253402300799999)) | |
36 | 32 | then throw("ISO 8601: Only years from 1583 to 9999 are permitted.") | |
37 | 33 | else { | |
38 | - | let | |
39 | - | let | |
40 | - | let | |
41 | - | let | |
42 | - | let | |
43 | - | let | |
44 | - | let | |
45 | - | then ((( | |
34 | + | let q = (((((1969 * 365) + (1969 / 4)) - (1969 / 100)) + (1969 / 400)) + 366) | |
35 | + | let r = (l + ((q * 86400) * 1000)) | |
36 | + | let s = { | |
37 | + | let t = ((r / (31556952 * 1000)) - 1) | |
38 | + | let u = (((((t * 365) + (t / 4)) - (t / 100)) + (t / 400)) + 366) | |
39 | + | let v = ((r / (86400 * 1000)) - u) | |
40 | + | let w = if (if (if ((((t + 1) % 4) == 0)) | |
41 | + | then (((t + 1) % 100) != 0) | |
46 | 42 | else false) | |
47 | 43 | then true | |
48 | - | else ((( | |
49 | - | then | |
50 | - | else | |
51 | - | let | |
44 | + | else (((t + 1) % 400) == 0)) | |
45 | + | then p | |
46 | + | else o | |
47 | + | let x = if ((v >= w[12])) | |
52 | 48 | then throw() | |
53 | - | else if (( | |
49 | + | else if ((v >= w[11])) | |
54 | 50 | then 11 | |
55 | - | else if (( | |
51 | + | else if ((v >= w[10])) | |
56 | 52 | then 10 | |
57 | - | else if (( | |
53 | + | else if ((v >= w[9])) | |
58 | 54 | then 9 | |
59 | - | else if (( | |
55 | + | else if ((v >= w[8])) | |
60 | 56 | then 8 | |
61 | - | else if (( | |
57 | + | else if ((v >= w[7])) | |
62 | 58 | then 7 | |
63 | - | else if (( | |
59 | + | else if ((v >= w[6])) | |
64 | 60 | then 6 | |
65 | - | else if (( | |
61 | + | else if ((v >= w[5])) | |
66 | 62 | then 5 | |
67 | - | else if (( | |
63 | + | else if ((v >= w[4])) | |
68 | 64 | then 4 | |
69 | - | else if (( | |
65 | + | else if ((v >= w[3])) | |
70 | 66 | then 3 | |
71 | - | else if (( | |
67 | + | else if ((v >= w[2])) | |
72 | 68 | then 2 | |
73 | - | else if (( | |
69 | + | else if ((v >= w[1])) | |
74 | 70 | then 1 | |
75 | - | else if (( | |
71 | + | else if ((v >= w[0])) | |
76 | 72 | then 0 | |
77 | 73 | else throw() | |
78 | - | let | |
79 | - | ((((toString(( | |
74 | + | let y = (v - w[x]) | |
75 | + | ((((toString((t + 1)) + "-") + drop(toString((x + 101)), 1)) + "-") + drop(toString((y + 101)), 1)) | |
80 | 76 | } | |
81 | - | let | |
82 | - | let | |
83 | - | let | |
84 | - | let | |
85 | - | let | |
86 | - | let | |
87 | - | let | |
88 | - | let | |
89 | - | ((((drop(toString(( | |
77 | + | let z = { | |
78 | + | let A = (r % (86400 * 1000)) | |
79 | + | let B = (A / (3600 * 1000)) | |
80 | + | let C = (A % (3600 * 1000)) | |
81 | + | let x = (C / (60 * 1000)) | |
82 | + | let D = (C % (60 * 1000)) | |
83 | + | let E = (D / 1000) | |
84 | + | let F = (D % 1000) | |
85 | + | ((((drop(toString((B + 100)), 1) + ":") + drop(toString((x + 100)), 1)) + ":") + drop(toString((E + 100)), 1)) | |
90 | 86 | } | |
91 | - | ((( | |
87 | + | (((s + m) + z) + n) | |
92 | 88 | } | |
93 | 89 | } | |
94 | 90 | ||
95 | 91 | ||
96 | - | @Callable( | |
92 | + | @Callable(G) | |
97 | 93 | func setBalance () = { | |
98 | - | let | |
99 | - | let | |
100 | - | if ($isInstanceOf( | |
94 | + | let H = { | |
95 | + | let I = getBoolean(this, "dapp_status") | |
96 | + | if ($isInstanceOf(I, "Boolean")) | |
101 | 97 | then { | |
102 | - | let | |
103 | - | | |
98 | + | let J = I | |
99 | + | J | |
104 | 100 | } | |
105 | 101 | else false | |
106 | 102 | } | |
107 | - | if ( | |
103 | + | if (H) | |
108 | 104 | then throw("The account is already initialized for trading.") | |
109 | - | else if (( | |
105 | + | else if ((G.callerPublicKey != e)) | |
110 | 106 | then throw("Only the administrator can adjust the balance!") | |
111 | - | else if (isDefined( | |
107 | + | else if (isDefined(G.payment)) | |
112 | 108 | then throw("Please do not attach payment when setting balance.") | |
113 | 109 | else { | |
114 | - | let | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | WriteSet([DataEntry("balance_base", | |
110 | + | let s = k(h) | |
111 | + | let K = (((take(s, 10) + "T") + take(drop(s, 11), 8)) + "Z") | |
112 | + | let L = assetBalance(this, b) | |
113 | + | let M = assetBalance(this, a) | |
114 | + | WriteSet([DataEntry("balance_base", L), DataEntry("balance_quote", M), DataEntry("dapp_status", true), DataEntry("last_update", K)]) | |
119 | 115 | } | |
120 | 116 | } | |
121 | 117 | ||
122 | 118 | ||
123 | 119 | ||
124 | - | @Callable( | |
125 | - | func sendReward ( | |
126 | - | let | |
127 | - | let | |
128 | - | if ($isInstanceOf( | |
120 | + | @Callable(G) | |
121 | + | func sendReward (N) = { | |
122 | + | let H = { | |
123 | + | let I = getBoolean(this, "dapp_status") | |
124 | + | if ($isInstanceOf(I, "Boolean")) | |
129 | 125 | then { | |
130 | - | let | |
131 | - | | |
126 | + | let J = I | |
127 | + | J | |
132 | 128 | } | |
133 | 129 | else false | |
134 | 130 | } | |
135 | - | if (if (!( | |
131 | + | if (if (!(H)) | |
136 | 132 | then true | |
137 | - | else ( | |
138 | - | then throw((("The next reward will be sent after " + | |
139 | - | else if (( | |
133 | + | else (h >= (i + f))) | |
134 | + | then throw((("The next reward will be sent after " + k((i + g))) + ".")) | |
135 | + | else if ((G.callerPublicKey != e)) | |
140 | 136 | then throw("Only administrator can send rewards!") | |
141 | - | else if (isDefined( | |
137 | + | else if (isDefined(G.payment)) | |
142 | 138 | then throw("Please do not attach payment when sending reward.") | |
143 | 139 | else { | |
144 | - | let | |
145 | - | let | |
146 | - | let | |
147 | - | let | |
148 | - | let | |
149 | - | if ((0 >= | |
140 | + | let O = getIntegerValue(this, "balance_base") | |
141 | + | let P = getIntegerValue(this, "balance_quote") | |
142 | + | let L = assetBalance(this, b) | |
143 | + | let M = assetBalance(this, a) | |
144 | + | let Q = (M - fraction(P, O, L)) | |
145 | + | if ((0 >= N)) | |
150 | 146 | then throw("Zero or negative rewards are not allowed.") | |
151 | - | else if (( | |
152 | - | then throw((("The maximum allowed amount is " + toString( | |
147 | + | else if ((N > Q)) | |
148 | + | then throw((("The maximum allowed amount is " + toString(Q)) + ".")) | |
153 | 149 | else { | |
154 | - | let | |
155 | - | let | |
156 | - | let | |
157 | - | ScriptResult(WriteSet([DataEntry("dapp_status", false), DataEntry("last_update", | |
150 | + | let s = k(h) | |
151 | + | let K = (((take(s, 10) + "T") + take(drop(s, 11), 8)) + "Z") | |
152 | + | let R = addressFromPublicKey(c) | |
153 | + | ScriptResult(WriteSet([DataEntry("dapp_status", false), DataEntry("last_update", K)]), TransferSet([ScriptTransfer(R, N, a)])) | |
158 | 154 | } | |
159 | 155 | } | |
160 | 156 | } | |
161 | 157 | ||
162 | 158 | ||
163 | - | @Verifier( | |
164 | - | func | |
165 | - | let | |
166 | - | if ($isInstanceOf( | |
159 | + | @Verifier(S) | |
160 | + | func T () = { | |
161 | + | let I = S | |
162 | + | if ($isInstanceOf(I, "Order")) | |
167 | 163 | then { | |
168 | - | let | |
169 | - | let | |
170 | - | then ( | |
164 | + | let U = I | |
165 | + | let V = if (if (if (if ((U.matcherFeeAssetId == a)) | |
166 | + | then (U.assetPair.priceAsset == a) | |
171 | 167 | else false) | |
172 | - | then ( | |
168 | + | then (U.assetPair.amountAsset == b) | |
173 | 169 | else false) | |
174 | 170 | then true | |
175 | - | else if (if (( | |
176 | - | then !(isDefined( | |
171 | + | else if (if ((U.orderType == Buy)) | |
172 | + | then !(isDefined(U.matcherFeeAssetId)) | |
177 | 173 | else false) | |
178 | - | then ( | |
174 | + | then (U.assetPair.amountAsset == a) | |
179 | 175 | else false) | |
180 | 176 | then true | |
181 | - | else if (if (( | |
182 | - | then !(isDefined( | |
177 | + | else if (if ((U.orderType == Sell)) | |
178 | + | then !(isDefined(U.matcherFeeAssetId)) | |
183 | 179 | else false) | |
184 | - | then if (!(isDefined( | |
180 | + | then if (!(isDefined(U.assetPair.priceAsset))) | |
185 | 181 | then true | |
186 | - | else ( | |
182 | + | else (U.assetPair.priceAsset == a) | |
187 | 183 | else false | |
188 | - | if ( | |
189 | - | then if (sigVerify( | |
184 | + | if (V) | |
185 | + | then if (sigVerify(S.bodyBytes, S.proofs[0], d)) | |
190 | 186 | then true | |
191 | - | else sigVerify( | |
187 | + | else sigVerify(S.bodyBytes, S.proofs[0], S.senderPublicKey) | |
192 | 188 | else false | |
193 | 189 | } | |
194 | - | else if (if ($isInstanceOf( | |
190 | + | else if (if ($isInstanceOf(I, "LeaseCancelTransaction")) | |
195 | 191 | then true | |
196 | - | else $isInstanceOf( | |
192 | + | else $isInstanceOf(I, "LeaseTransaction")) | |
197 | 193 | then { | |
198 | - | let | |
199 | - | sigVerify( | |
194 | + | let W = I | |
195 | + | sigVerify(S.bodyBytes, S.proofs[0], S.senderPublicKey) | |
200 | 196 | } | |
201 | - | else if ($isInstanceOf( | |
197 | + | else if ($isInstanceOf(I, "TransferTransaction")) | |
202 | 198 | then { | |
203 | - | let Z = K | |
204 | - | let aa = addressFromRecipient(Z.dApp) | |
205 | - | let ab = if ((Z.function == e)) | |
206 | - | then (aa == addressFromString(d)) | |
199 | + | let X = I | |
200 | + | let Y = addressFromRecipient(X.recipient) | |
201 | + | let Z = if (if (((j + f) > h)) | |
202 | + | then if ((X.assetId == a)) | |
203 | + | then true | |
204 | + | else (X.assetId == b) | |
205 | + | else false) | |
206 | + | then (Y == addressFromPublicKey(c)) | |
207 | 207 | else false | |
208 | - | if ( | |
209 | - | then sigVerify( | |
208 | + | if (Z) | |
209 | + | then sigVerify(S.bodyBytes, S.proofs[1], e) | |
210 | 210 | else false | |
211 | 211 | } | |
212 | - | else if ($isInstanceOf( | |
212 | + | else if ($isInstanceOf(I, "SetScriptTransaction")) | |
213 | 213 | then { | |
214 | - | let ac = K | |
215 | - | let aa = addressFromRecipient(ac.recipient) | |
216 | - | let ad = if (if (((l + h) > j)) | |
217 | - | then if ((ac.assetId == a)) | |
218 | - | then true | |
219 | - | else (ac.assetId == b) | |
220 | - | else false) | |
221 | - | then (aa == addressFromString(c)) | |
222 | - | else false | |
223 | - | if (ad) | |
224 | - | then sigVerify(U.bodyBytes, U.proofs[1], g) | |
225 | - | else false | |
214 | + | let aa = I | |
215 | + | sigVerify(S.bodyBytes, S.proofs[1], e) | |
226 | 216 | } | |
227 | - | else if ($isInstanceOf(K, "SetScriptTransaction")) | |
228 | - | then { | |
229 | - | let ae = K | |
230 | - | sigVerify(U.bodyBytes, U.proofs[1], g) | |
231 | - | } | |
232 | - | else false | |
217 | + | else false | |
233 | 218 | } | |
234 | 219 |
github/deemru/w8io/3ef1775 130.83 ms ◑