tx · BfZaSV3ihCm5cYVrzJb8vcqyseWNPsak1BF6zTV7Vii2

3PRAEZqBjrUDaDvv45HGWPb94DhD6UuZfWg:  -0.00500000 Waves

2023.09.19 10:20 [3827738] smart account 3PRAEZqBjrUDaDvv45HGWPb94DhD6UuZfWg > SELF 0.00000000 Waves

{ "type": 13, "id": "BfZaSV3ihCm5cYVrzJb8vcqyseWNPsak1BF6zTV7Vii2", "fee": 500000, "feeAssetId": null, "timestamp": 1695108026841, "version": 1, "sender": "3PRAEZqBjrUDaDvv45HGWPb94DhD6UuZfWg", "senderPublicKey": "DWfBoSph5SQ9fuKvBjSecymWnfmRnBFh9FYg2QEV6bwS", "proofs": [ "3LWXXDnJufjDvr1yWDgJTbHvfDQmLrxYHpHfrQ32XfdYqZdcF4Ye5NXeYNaDR7oxhU9u9aDQe4dVmkKJncWLuaWh" ], "script": "base64:BgIWCAISBAoCCAESBQoDCAEBEgMKAQgSAA8AEmNvbmZpZ0FkZHJlc3NTdG9yZQIGY29uZmlnAA1jb25maWdBZGRyZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFEmNvbmZpZ0FkZHJlc3NTdG9yZQIfY2hpbGQ6IGNvbmZpZyBhZGRyZXNzIG5vdCBmb3VuZAIWaW52YWxpZCBjb25maWcgYWRkcmVzcwAGSEVJR0hUBQZoZWlnaHQBDm9wQWxsb3dlZFN0b3JlAQJvcAkArAICCQCsAgICA29wXwUCb3ACCF9hbGxvd2VkAA12b3RpbmdSZXN1bHRzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCFmNvbnRyYWN0X3ZvdGluZ19yZXN1bHQCGW5vIGNvbnRyYWN0X3ZvdGluZ19yZXN1bHQCHmludmFsaWQgY29udHJhY3Rfdm90aW5nX3Jlc3VsdAEVd2F2ZWxldHNQZXJCbG9ja1N0b3JlAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCE193YXZlbGV0c19wZXJfYmxvY2sBEHN0YXJ0SGVpZ2h0U3RvcmUBB2FkZHJlc3MJAKwCAgUHYWRkcmVzcwINX3N0YXJ0X2hlaWdodAEMY2xhaW1lZFN0b3JlAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCEHdhdmVsZXRzX2NsYWltZWQBEW1heENsYWltYWJsZVN0b3JlAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCF193YXZlbGV0c19tYXhfY2xhaW1hYmxlAAhzdW1TdG9yZQIWd2F2ZWxldHNfcGVyX2Jsb2NrX3N1bQAIbWF4U3RvcmUCFndhdmVsZXRzX3Blcl9ibG9ja19tYXgAB21heGltdW0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwIWd2F2ZWxldHNfcGVyX2Jsb2NrX21heACw0MlaAAZvbGRTdW0JAQt2YWx1ZU9yRWxzZQIJAJ8IAQUIc3VtU3RvcmUAAAEMYXZhaWxhYmxlTm93AQJ0bwQNcGVyQmxvY2tTdG9yZQkBFXdhdmVsZXRzUGVyQmxvY2tTdG9yZQEFAnRvBAhwZXJCbG9jawkAnwgBBQ1wZXJCbG9ja1N0b3JlBAV0b3RhbAMJAQEhAQkBCWlzRGVmaW5lZAEFCHBlckJsb2NrAAAECmZpcnN0QmxvY2sJAQV2YWx1ZQEJAJ8IAQkBEHN0YXJ0SGVpZ2h0U3RvcmUBBQJ0bwQGYmxvY2tzCQBlAgUGaGVpZ2h0BQpmaXJzdEJsb2NrCQBoAgkBBXZhbHVlAQUIcGVyQmxvY2sFBmJsb2NrcwQFZ3JhbnQJAJcDAQkAzAgCBQV0b3RhbAkAzAgCCQELdmFsdWVPckVsc2UCCQCfCAEJARFtYXhDbGFpbWFibGVTdG9yZQEFAnRvBQV0b3RhbAUDbmlsBAdjbGFpbWVkCQELdmFsdWVPckVsc2UCCQCfCAEJAQxjbGFpbWVkU3RvcmUBBQJ0bwAABAZyZXN1bHQJAGUCBQVncmFudAUHY2xhaW1lZAMJAGYCAAAFBnJlc3VsdAkAAgECFW5lZ2F0aXZlIGF2YWlsYWJsZU5vdwUGcmVzdWx0ARNzZXRTY2hlZHVsZUludGVybmFsBAJ0bxB3YXZlbGV0c1BlckJsb2NrDG1heENsYWltYWJsZQNzdW0DCQBmAgAABRB3YXZlbGV0c1BlckJsb2NrCQACAQIfd2F2ZWxldHNQZXJCbG9jayBzaG91bGQgYmUgPj0gMAQNcGVyQmxvY2tTdG9yZQkBFXdhdmVsZXRzUGVyQmxvY2tTdG9yZQEFAnRvBAtvbGRQZXJCbG9jawkBC3ZhbHVlT3JFbHNlAgkAnwgBBQ1wZXJCbG9ja1N0b3JlAAAEBm5ld1N1bQkAZAIJAGUCBQNzdW0FC29sZFBlckJsb2NrBRB3YXZlbGV0c1BlckJsb2NrBAxoZWlnaHRTdG9yZTEJARBzdGFydEhlaWdodFN0b3JlAQUCdG8EB2NsYWltZWQJAQxjbGFpbWVkU3RvcmUBBQJ0bwMJAGYCBQZuZXdTdW0FB21heGltdW0JAAIBAhBtYXhpbXVtIGV4Y2VlZGVkBBJtYXhDbGFpbWFibGVTdG9yZTEJARFtYXhDbGFpbWFibGVTdG9yZQEFAnRvBBFtYXhDbGFpbWFibGVFbnRyeQMJAAACBQxtYXhDbGFpbWFibGUAAAUDbmlsAwkAAAIFDG1heENsYWltYWJsZQD///////////8BCQDMCAIJAQtEZWxldGVFbnRyeQEFEm1heENsYWltYWJsZVN0b3JlMQUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJtYXhDbGFpbWFibGVTdG9yZTEFDG1heENsYWltYWJsZQUDbmlsCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUNcGVyQmxvY2tTdG9yZQUQd2F2ZWxldHNQZXJCbG9jawkAzAgCCQEMSW50ZWdlckVudHJ5AgUMaGVpZ2h0U3RvcmUxBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFB2NsYWltZWQJAQEtAQkBDGF2YWlsYWJsZU5vdwEFAnRvCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQhzdW1TdG9yZQUGbmV3U3VtBQNuaWwFEW1heENsYWltYWJsZUVudHJ5BQZuZXdTdW0EAWkBCnNldFNjZWR1bGUCAnRvEHdhdmVsZXRzUGVyQmxvY2sDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAgZkZW5pZWQJARNzZXRTY2hlZHVsZUludGVybmFsBAUCdG8FEHdhdmVsZXRzUGVyQmxvY2sAAAUGb2xkU3VtAWkBC3NldFNjaGVkdWxlAwJ0bxB3YXZlbGV0c1BlckJsb2NrDG1heENsYWltYWJsZQMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECBmRlbmllZAkBE3NldFNjaGVkdWxlSW50ZXJuYWwEBQJ0bwUQd2F2ZWxldHNQZXJCbG9jawUMbWF4Q2xhaW1hYmxlBQZvbGRTdW0BaQEQc2V0TXVsdGlTY2hlZHVsZQEJc2NoZWR1bGVzAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIGZGVuaWVkCgEEZm9sZAIDYWNjCHNjaGVkdWxlAwkAAAIFCHNjaGVkdWxlAgAJAAIBAhFpbnZhbGlkIHNjaGVkdWxlcwQFcGFydHMJALUJAgUIc2NoZWR1bGUCAT0DCQECIT0CCQCQAwEFBXBhcnRzAAIJAAIBAippbnZhbGlkIGZvcm1hdDogYWRyPXdhdmVsZXRzUGVyQmxvY2tbLG1heF0EAnRvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQVwYXJ0cwAACQCsAgICEWludmFsaWQgYWRkcmVzczogCQCRAwIFBXBhcnRzAAAEDWJsb2NrTWF4UGFydHMJALUJAgkAkQMCBQVwYXJ0cwABAgEsBAh3YXZlbGV0cwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEJAJEDAgUNYmxvY2tNYXhQYXJ0cwAACQCsAgICGWludmFsaWQgd2F2ZXRldHMgbnVtYmVyOiAJAJEDAgUNYmxvY2tNYXhQYXJ0cwAABAxtYXhDbGFpbWFibGUDCQAAAgkAkAMBBQ1ibG9ja01heFBhcnRzAAIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFDWJsb2NrTWF4UGFydHMAAQkArAICAhRpbnZhbGlkIG1heCBudW1iZXI6IAkAkQMCBQ1ibG9ja01heFBhcnRzAAEAAAQLJHQwNDAzMTQwNjMFA2FjYwQEY21kcwgFCyR0MDQwMzE0MDYzAl8xBANzdW0IBQskdDA0MDMxNDA2MwJfMgQJYWRkcmVzc2VzCAULJHQwNDAzMTQwNjMCXzMEBXRvU3RyCQClCAEFAnRvAwkBCWlzRGVmaW5lZAEJAM8IAgUJYWRkcmVzc2VzBQV0b1N0cgkAAgEJAKwCAgILZHVibGljYXRlOiAFBXRvU3RyBAskdDA0MTk0NDI3MwkBE3NldFNjaGVkdWxlSW50ZXJuYWwEBQV0b1N0cgUId2F2ZWxldHMFDG1heENsYWltYWJsZQUDc3VtBAduZXdDbWRzCAULJHQwNDE5NDQyNzMCXzEEBm5ld1N1bQgFCyR0MDQxOTQ0MjczAl8yCQCVCgMJAM4IAgUEY21kcwUHbmV3Q21kcwUGbmV3U3VtCQDOCAIFCWFkZHJlc3NlcwkAzAgCBQV0b1N0cgUDbmlsBAskdDA0MzQxNDQxNwoAAiRsCQC1CQIFCXNjaGVkdWxlcwIBfAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJUKAwUDbmlsBQZvbGRTdW0FA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEEZm9sZAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMjAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUBARjbWRzCAULJHQwNDM0MTQ0MTcCXzEEA3N1bQgFCyR0MDQzNDE0NDE3Al8yBAJ4XwgFCyR0MDQzNDE0NDE3Al8zCQCUCgIFBGNtZHMFA3N1bQFpAQVDbGFpbQAEBXRvQWRyCAUBaQZjYWxsZXIEAnRvCQClCAEFBXRvQWRyBAFhCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQkBFXdhdmVsZXRzUGVyQmxvY2tTdG9yZQEFAnRvAhFhZGRyZXNzIG5vdCBmb3VuZAMJAAACBQFhBQFhBA1jbGFpbWVkU3RvcmUxCQEMY2xhaW1lZFN0b3JlAQUCdG8EB2NsYWltZWQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUNY2xhaW1lZFN0b3JlMQAABAZhbW91bnQJAQxhdmFpbGFibGVOb3cBBQJ0bwQHcGF5bWVudAkAlwMBCQDMCAIICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDMCAIFBmFtb3VudAUDbmlsAwkAAAIFB3BheW1lbnQAAAkAAgECEG5vdGhpbmcgdG8gY2xhaW0JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFdG9BZHIFB3BheW1lbnQFBHVuaXQJAMwIAgkBDEludGVnZXJFbnRyeQIFDWNsYWltZWRTdG9yZTEJAGQCBQdjbGFpbWVkBQdwYXltZW50BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AxQ31rw==", "chainId": 87, "height": 3827738, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: HsiWcTrammu6zv4bhqWu93fUje9qsiveb3jULbsBZUpE Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "config"
5+
6+let b = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, a), "child: config address not found")), "invalid config address")
7+
8+let c = height
9+
10+func d (e) = (("op_" + e) + "_allowed")
11+
12+
13+let f = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(b, "contract_voting_result"), "no contract_voting_result")), "invalid contract_voting_result")
14+
15+func g (h) = (h + "_wavelets_per_block")
16+
17+
18+func i (h) = (h + "_start_height")
19+
20+
21+func j (h) = (h + "wavelets_claimed")
22+
23+
24+func k (h) = (h + "_wavelets_max_claimable")
25+
26+
27+let l = "wavelets_per_block_sum"
28+
29+let m = "wavelets_per_block_max"
30+
31+let n = valueOrElse(getInteger(this, "wavelets_per_block_max"), 189950000)
32+
33+let o = valueOrElse(getInteger(l), 0)
34+
35+func p (q) = {
36+ let r = g(q)
37+ let s = getInteger(r)
38+ let t = if (!(isDefined(s)))
39+ then 0
40+ else {
41+ let u = value(getInteger(i(q)))
42+ let v = (height - u)
43+ (value(s) * v)
44+ }
45+ let w = min([t, valueOrElse(getInteger(k(q)), t)])
46+ let x = valueOrElse(getInteger(j(q)), 0)
47+ let y = (w - x)
48+ if ((0 > y))
49+ then throw("negative availableNow")
50+ else y
51+ }
52+
53+
54+func z (q,A,B,C) = if ((0 > A))
55+ then throw("waveletsPerBlock should be >= 0")
56+ else {
57+ let r = g(q)
58+ let D = valueOrElse(getInteger(r), 0)
59+ let E = ((C - D) + A)
60+ let F = i(q)
61+ let x = j(q)
62+ if ((E > n))
63+ then throw("maximum exceeded")
64+ else {
65+ let G = k(q)
66+ let H = if ((B == 0))
67+ then nil
68+ else if ((B == -1))
69+ then [DeleteEntry(G)]
70+ else [IntegerEntry(G, B)]
71+ $Tuple2(([IntegerEntry(r, A), IntegerEntry(F, height), IntegerEntry(x, -(p(q))), IntegerEntry(l, E)] ++ H), E)
72+ }
73+ }
74+
75+
76+@Callable(I)
77+func setScedule (q,A) = if ((I.caller != this))
78+ then throw("denied")
79+ else z(q, A, 0, o)
80+
81+
82+
83+@Callable(I)
84+func setSchedule (q,A,B) = if ((I.caller != this))
85+ then throw("denied")
86+ else z(q, A, B, o)
87+
88+
89+
90+@Callable(I)
91+func setMultiSchedule (J) = if ((I.caller != this))
92+ then throw("denied")
93+ else {
94+ func K (L,M) = if ((M == ""))
95+ then throw("invalid schedules")
96+ else {
97+ let N = split(M, "=")
98+ if ((size(N) != 2))
99+ then throw("invalid format: adr=waveletsPerBlock[,max]")
100+ else {
101+ let q = valueOrErrorMessage(addressFromString(N[0]), ("invalid address: " + N[0]))
102+ let O = split(N[1], ",")
103+ let P = valueOrErrorMessage(parseInt(O[0]), ("invalid wavetets number: " + O[0]))
104+ let B = if ((size(O) == 2))
105+ then valueOrErrorMessage(parseInt(O[1]), ("invalid max number: " + O[1]))
106+ else 0
107+ let Q = L
108+ let R = Q._1
109+ let C = Q._2
110+ let S = Q._3
111+ let T = toString(q)
112+ if (isDefined(indexOf(S, T)))
113+ then throw(("dublicate: " + T))
114+ else {
115+ let U = z(T, P, B, C)
116+ let V = U._1
117+ let E = U._2
118+ $Tuple3((R ++ V), E, (S ++ [T]))
119+ }
120+ }
121+ }
122+
123+ let W = {
124+ let X = split(J, "|")
125+ let Y = size(X)
126+ let Z = $Tuple3(nil, o, nil)
127+ func aa (ab,ac) = if ((ac >= Y))
128+ then ab
129+ else K(ab, X[ac])
130+
131+ func ad (ab,ac) = if ((ac >= Y))
132+ then ab
133+ else throw("List size exceeds 20")
134+
135+ ad(aa(aa(aa(aa(aa(aa(aa(aa(aa(aa(aa(aa(aa(aa(aa(aa(aa(aa(aa(aa(Z, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
136+ }
137+ let R = W._1
138+ let C = W._2
139+ let ae = W._3
140+ $Tuple2(R, C)
141+ }
142+
143+
144+
145+@Callable(I)
146+func Claim () = {
147+ let af = I.caller
148+ let q = toString(af)
149+ let ag = valueOrErrorMessage(getInteger(g(q)), "address not found")
150+ if ((ag == ag))
151+ then {
152+ let ah = j(q)
153+ let x = valueOrElse(getInteger(ah), 0)
154+ let ai = p(q)
155+ let aj = min([wavesBalance(this).available, ai])
156+ if ((aj == 0))
157+ then throw("nothing to claim")
158+ else [ScriptTransfer(af, aj, unit), IntegerEntry(ah, (x + aj))]
159+ }
160+ else throw("Strict value is not equal to itself.")
161+ }
162+
163+

github/deemru/w8io/3ef1775 
22.89 ms