tx · BSkZ87p5KTS2BnGMeoSRewBvDTZ1SWThpxMGctzBLJ81

3MvMpGD5MxbUW2EJn6jtViDu6NHNqu8PKq8:  -0.01100000 Waves

2022.08.26 06:38 [2200921] smart account 3MvMpGD5MxbUW2EJn6jtViDu6NHNqu8PKq8 > SELF 0.00000000 Waves

{ "type": 13, "id": "BSkZ87p5KTS2BnGMeoSRewBvDTZ1SWThpxMGctzBLJ81", "fee": 1100000, "feeAssetId": null, "timestamp": 1661485184671, "version": 2, "chainId": 84, "sender": "3MvMpGD5MxbUW2EJn6jtViDu6NHNqu8PKq8", "senderPublicKey": "2MhVDhjG7eJ6SY8og2HRd4Bam75FsCSg2Vude8gutmZe", "proofs": [ "3AegYnzV9FBtfoYVAZfyK1sB92Y2kgZbfYbmgp557vJbFN63cvwePfGbDgnPHh2E3wso5qeFJGnReehZ4SHRmiAR" ], "script": "base64:AAIFAAAAAAAAAB4IAhIDCgEIEgoKCAEBAQEICAgBEgASABIFCgMBCAgAAAARAAAAAAJwcwIAAAANUFJFU0FMRV9TVEFSVAAAAAACcGQCAAAAEFBSRVNBTEVfRFVSQVRJT04AAAAAAmNzAgAAAAtDTEFJTV9TVEFSVAAAAAACY2QCAAAADkNMQUlNX0RVUkFUSU9OAAAAAAFwAgAAAAlQUklDRV9JRE8AAAAABHAxSUQCAAAAEFBSSUNFXzFfQVNTRVRfSUQAAAAABHAySUQCAAAAEFBSSUNFXzJfQVNTRVRfSUQAAAAABHAzSUQCAAAAEFBSSUNFXzNfQVNTRVRfSUQAAAAAA21pYQIAAAARTUlOX0FNT1VOVF9JTlZFU1QAAAAABW1haW5hAgAAAApNQUlOX0FTU0VUAAAAAAdmb3JTYWxlAgAAAA5UT1RBTF9GT1JfU0FMRQAAAAAJdG90YWxTYWxlAgAAAApUT1RBTF9TQUxFAAAAAAd0aW52ZXN0AgAAAA1UT1RBTF9JTlZFU1RfAAAAAAVkaXNkdQIAAAAVRElTVFJJQlVUSU9OX0RVUkFUSU9OAAAAAAJEOAAAAAAABfXhAAAAAAADRDEwAAAAAAJUC+QAAQAAAA9nZXRBc3NldElmVmFsaWQAAAABAAAAB2Fzc2V0SWQJAAJYAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABCQACWQAAAAEFAAAAB2Fzc2V0SWQAAAACaWQJAAEsAAAAAgkAASwAAAACAgAAAApBc3NldCBJZDogBQAAAAdhc3NldElkAgAAAAwgaXMgaW52YWxpZC4AAAAFAAAAAWkBAAAACGFkZEFkbWluAAAAAQAAAAdhZGRyZXNzAwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAARMAAAAAgkBAAAAC0JpbmFyeUVudHJ5AAAAAgIAAAAFYWRtaW4JAAJZAAAAAQUAAAAHYWRkcmVzcwUAAAADbmlsCQAAAgAAAAECAAAALk9ubHkgdGhlIEFkbWluIGl0c2VsZiBjYW4gaW52b2tlIHRoaXMgZnVuY3Rpb24AAAABaQEAAAALY29uc3RydWN0b3IAAAAIAAAADHByZXNhbGVTdGFydAAAAA9wcmVzYWxlRHVyYXRpb24AAAAUZGlzdHJpYnV0aW9uRHVyYXRpb24AAAAFcHJpY2UAAAAPcHJpY2UxQXNzZXRJZDU4AAAAD3ByaWNlMkFzc2V0SWQ1OAAAAA9wcmljZTNBc3NldElkNTgAAAAPbWluSW52ZXN0QW1vdW50BAAAAAZhc3NldDEJAQAAAA9nZXRBc3NldElmVmFsaWQAAAABBQAAAA9wcmljZTFBc3NldElkNTgEAAAABmFzc2V0MgkBAAAAD2dldEFzc2V0SWZWYWxpZAAAAAEFAAAAD3ByaWNlMkFzc2V0SWQ1OAQAAAAGYXNzZXQzCQEAAAAPZ2V0QXNzZXRJZlZhbGlkAAAAAQUAAAAPcHJpY2UzQXNzZXRJZDU4AwMJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzBgkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIJAQAAAAdBZGRyZXNzAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTIpAAAAAgUAAAAEdGhpcwIAAAAFYWRtaW4DCQAAZwAAAAIFAAAAD3ByZXNhbGVEdXJhdGlvbgUAAAAMcHJlc2FsZVN0YXJ0CQAAAgAAAAECAAAAMlByZXNhbGVEdXJhdGlvbiBjYW4ndCBiZSBiaWdnZXIgdGhhbiAgUHJlc2FsZVN0YXJ0AwkAAGYAAAACBQAAAA9taW5JbnZlc3RBbW91bnQFAAAABXByaWNlCQAAAgAAAAECAAAAKm1pbkludmVzdEFtb3VudCBjYW4ndCBiZSBiaWdnZXIgdGhhbiBwcmljZQMDAwkAAAAAAAACBQAAAAZhc3NldDEFAAAABmFzc2V0MgYJAAAAAAAAAgUAAAAGYXNzZXQxBQAAAAZhc3NldDMGCQAAAAAAAAIFAAAABmFzc2V0MgUAAAAGYXNzZXQzCQAAAgAAAAECAAAALEVhY2ggQXNzZXQgbXVzdCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgb3RoZXIuAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAAIAAAABAgAAACJleGFjdGx5IDEgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkCQAETAAAAAIJAQAAAAtCaW5hcnlFbnRyeQAAAAIFAAAABW1h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", "height": 2200921, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4ARUR697bwHjphQUagy6M4m4f6gkjFdKrwaF4QHFhz3D Next: FnwqeJQxjYdCBYPdSEWyrtnz6LMfUZGbmJL59gwdX3Wa Diff:
OldNewDifferences
3131
3232 let o = 100000000
3333
34-func p (q) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(q))).id, (("Asset Id: " + q) + " is invalid.")))
34+let p = 10000000000
35+
36+func q (r) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(r))).id, (("Asset Id: " + r) + " is invalid.")))
3537
3638
37-@Callable(r)
38-func addAdmin (s) = if ((r.caller == this))
39- then [BinaryEntry("admin", fromBase58String(s))]
39+@Callable(s)
40+func addAdmin (t) = if ((s.caller == this))
41+ then [BinaryEntry("admin", fromBase58String(t))]
4042 else throw("Only the Admin itself can invoke this function")
4143
4244
4345
44-@Callable(r)
45-func constructor (t,u,v,w,x,y,z,A) = {
46- let B = p(x)
47- let C = p(y)
48- let D = p(z)
49- if (if ((r.caller == this))
46+@Callable(s)
47+func constructor (u,v,w,x,y,z,A,B) = {
48+ let C = q(y)
49+ let D = q(z)
50+ let E = q(A)
51+ if (if ((s.caller == this))
5052 then true
51- else (r.caller == Address(getBinaryValue(this, "admin"))))
52- then if ((u >= t))
53+ else (s.caller == Address(getBinaryValue(this, "admin"))))
54+ then if ((v >= u))
5355 then throw("PresaleDuration can't be bigger than PresaleStart")
54- else if ((A > w))
56+ else if ((B > x))
5557 then throw("minInvestAmount can't be bigger than price")
56- else if (if (if ((B == C))
58+ else if (if (if ((C == D))
5759 then true
58- else (B == D))
60+ else (C == E))
5961 then true
60- else (C == D))
62+ else (D == E))
6163 then throw("Each Asset must be different from the other.")
62- else if ((size(r.payments) != 1))
64+ else if ((size(s.payments) != 1))
6365 then throw("exactly 1 payment must be attached")
64- else [BinaryEntry(j, value(r.payments[0].assetId)), StringEntry(f, x), StringEntry(g, y), StringEntry(h, z), IntegerEntry(a, t), IntegerEntry(b, u), IntegerEntry(e, w), IntegerEntry(i, A), IntegerEntry(k, value(r.payments[0]).amount), IntegerEntry(l, 0), IntegerEntry(n, v)]
66+ else [BinaryEntry(j, value(s.payments[0].assetId)), StringEntry(f, y), StringEntry(g, z), StringEntry(h, A), IntegerEntry(a, u), IntegerEntry(b, v), IntegerEntry(e, x), IntegerEntry(i, B), IntegerEntry(k, value(s.payments[0]).amount), IntegerEntry(l, 0), IntegerEntry(n, w)]
6567 else throw("Only the Admin itself can invoke this function")
6668 }
6769
6870
6971
70-@Callable(r)
72+@Callable(s)
7173 func invest () = {
72- let E = getBinaryValue(this, j)
73- let t = getIntegerValue(this, a)
74- let u = getIntegerValue(this, b)
75- let F = (t + u)
76- let w = getIntegerValue(this, e)
77- let G = height
78- let H = value(r.payments[0])
79- let I = toBase58String(value(H.assetId))
80- let J = H.amount
81- let B = getStringValue(this, f)
82- let C = getStringValue(this, g)
83- let D = getStringValue(this, h)
84- let K = getIntegerValue(this, l)
85- let L = getIntegerValue(this, k)
86- let M = getIntegerValue(this, i)
87- if ((t >= G))
74+ let F = getBinaryValue(this, j)
75+ let u = getIntegerValue(this, a)
76+ let v = getIntegerValue(this, b)
77+ let G = (u + v)
78+ let x = getIntegerValue(this, e)
79+ let H = height
80+ let I = value(s.payments[0])
81+ let J = toBase58String(value(I.assetId))
82+ let K = I.amount
83+ let C = getStringValue(this, f)
84+ let D = getStringValue(this, g)
85+ let E = getStringValue(this, h)
86+ let L = getIntegerValue(this, l)
87+ let M = getIntegerValue(this, k)
88+ let N = getIntegerValue(this, i)
89+ if ((u >= H))
8890 then throw("presale has not been started yet")
89- else if ((G >= F))
91+ else if ((H >= G))
9092 then throw("presale has been already ended")
91- else if ((size(r.payments) != 1))
93+ else if ((size(s.payments) != 1))
9294 then throw("exactly 1 payment is expected")
93- else if (if (if ((I != B))
94- then (I != C)
95+ else if (if (if ((J != C))
96+ then (J != D)
9597 else false)
96- then (I != D)
98+ then (J != E)
9799 else false)
98- then throw(((("invalid payment asset id:" + I) + " Expected:") + B))
99- else if ((K >= L))
100+ then throw(((("invalid payment asset id:" + J) + " Expected:") + C))
101+ else if ((L >= M))
100102 then throw("Pre-sale asset has been - sold consider to use smaller payment")
101- else if ((M > J))
103+ else if ((N > K))
102104 then throw("Amount less than the minimum to be invested.")
103105 else {
104- let N = ((J / w) * o)
105- let O = {
106- let P = getInteger(this, (m + toBase58String(r.caller.bytes)))
107- if ($isInstanceOf(P, "Int"))
106+ let O = ((K / x) * o)
107+ let P = {
108+ let Q = getInteger(this, (m + toBase58String(s.caller.bytes)))
109+ if ($isInstanceOf(Q, "Int"))
108110 then {
109- let Q = P
110- Q
111+ let R = Q
112+ R
111113 }
112114 else 0
113115 }
114-[IntegerEntry(l, (K + N)), IntegerEntry((m + toBase58String(r.caller.bytes)), (N + O)), IntegerEntry(((((m + toBase58String(r.caller.bytes)) + "__") + I) + "__VALUE"), J), BooleanEntry((((m + toBase58String(r.caller.bytes)) + "__") + I), true)]
116+[IntegerEntry(l, (L + O)), IntegerEntry((m + toBase58String(s.caller.bytes)), (O + P)), IntegerEntry(((((m + toBase58String(s.caller.bytes)) + "__") + J) + "__VALUE"), K), BooleanEntry((((m + toBase58String(s.caller.bytes)) + "__") + J), true)]
115117 }
116118 }
117119
118120
119121
120-@Callable(r)
122+@Callable(s)
121123 func claimPresale () = {
122- let R = getIntegerValue(this, b)
123- let S = getIntegerValue(this, a)
124- let T = (R + S)
125- let v = getIntegerValue(this, n)
126- let U = (T + v)
127- let E = getBinaryValue(this, j)
128- let G = height
129- let w = getIntegerValue(this, e)
130- if ((T >= G))
124+ let S = getIntegerValue(this, b)
125+ let T = getIntegerValue(this, a)
126+ let U = (S + T)
127+ let w = getIntegerValue(this, n)
128+ let V = (U + w)
129+ let F = getBinaryValue(this, j)
130+ let H = height
131+ let x = getIntegerValue(this, e)
132+ if ((U >= H))
131133 then throw("The Presale is still happening.")
132134 else {
133- let O = {
134- let P = getInteger(this, (m + toBase58String(r.caller.bytes)))
135- if ($isInstanceOf(P, "Int"))
135+ let P = {
136+ let Q = getInteger(this, (m + toBase58String(s.caller.bytes)))
137+ if ($isInstanceOf(Q, "Int"))
136138 then {
137- let Q = P
138- Q
139+ let R = Q
140+ R
139141 }
140142 else 0
141143 }
142- let V = if ((G > U))
144+ let W = if ((H > V))
143145 then toBigInt(100)
144- else ((toBigInt(G) * toBigInt(o)) / toBigInt(U))
145- let W = if ((O == 0))
146+ else ((toBigInt(H) * toBigInt(p)) / toBigInt(V))
147+ let X = if ((0 >= P))
146148 then throw("You were not part of the presale")
147- else O
148- let N = ((toBigInt(W) * (V * toBigInt(o))) / (toBigInt(100) * toBigInt(o)))
149- let X = (toBigInt(W) - N)
150- let Y = {
151- let P = getInteger(this, ("OLD_TOTAL_" + toBase58String(r.caller.bytes)))
152- if ($isInstanceOf(P, "Int"))
149+ else P
150+ let O = ((toBigInt(X) * W) / (toBigInt(100) * toBigInt(o)))
151+ let Y = (toBigInt(X) - O)
152+ let Z = {
153+ let Q = getInteger(this, ("OLD_TOTAL_" + toBase58String(s.caller.bytes)))
154+ if ($isInstanceOf(Q, "Int"))
153155 then {
154- let Z = P
155- Z
156+ let aa = Q
157+ aa
156158 }
157159 else 0
158160 }
159- if ((Y == 0))
160- then [IntegerEntry((m + toBase58String(r.caller.bytes)), toInt(X)), ScriptTransfer(r.caller, toInt(N), E), IntegerEntry(("OLD_TOTAL_" + toBase58String(r.caller.bytes)), W)]
161- else [IntegerEntry((m + toBase58String(r.caller.bytes)), toInt(X)), ScriptTransfer(r.caller, toInt(N), E)]
161+ if ((Z == 0))
162+ then [IntegerEntry((m + toBase58String(s.caller.bytes)), toInt(Y)), ScriptTransfer(s.caller, toInt(O), F), IntegerEntry(("OLD_TOTAL_" + toBase58String(s.caller.bytes)), X)]
163+ else [IntegerEntry((m + toBase58String(s.caller.bytes)), toInt(Y)), ScriptTransfer(s.caller, toInt(O), F)]
162164 }
163165 }
164166
165167
166168
167-@Callable(r)
168-func adminV (aa,s,q) = if (if ((r.caller == this))
169+@Callable(s)
170+func adminV (ab,t,r) = if (if ((s.caller == this))
169171 then true
170- else (r.caller == Address(getBinaryValue(this, "admin"))))
171- then [ScriptTransfer(Address(fromBase58String(s)), aa, fromBase58String(q))]
172+ else (s.caller == Address(getBinaryValue(this, "admin"))))
173+ then [ScriptTransfer(Address(fromBase58String(t)), ab, fromBase58String(r))]
172174 else throw("Only the Admin itself can invoke this function")
173175
174176
175-@Verifier(ab)
176-func ac () = sigVerify(ab.bodyBytes, ab.proofs[0], ab.senderPublicKey)
177+@Verifier(ac)
178+func ad () = sigVerify(ac.bodyBytes, ac.proofs[0], ac.senderPublicKey)
177179
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "PRESALE_START"
55
66 let b = "PRESALE_DURATION"
77
88 let c = "CLAIM_START"
99
1010 let d = "CLAIM_DURATION"
1111
1212 let e = "PRICE_IDO"
1313
1414 let f = "PRICE_1_ASSET_ID"
1515
1616 let g = "PRICE_2_ASSET_ID"
1717
1818 let h = "PRICE_3_ASSET_ID"
1919
2020 let i = "MIN_AMOUNT_INVEST"
2121
2222 let j = "MAIN_ASSET"
2323
2424 let k = "TOTAL_FOR_SALE"
2525
2626 let l = "TOTAL_SALE"
2727
2828 let m = "TOTAL_INVEST_"
2929
3030 let n = "DISTRIBUTION_DURATION"
3131
3232 let o = 100000000
3333
34-func p (q) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(q))).id, (("Asset Id: " + q) + " is invalid.")))
34+let p = 10000000000
35+
36+func q (r) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(r))).id, (("Asset Id: " + r) + " is invalid.")))
3537
3638
37-@Callable(r)
38-func addAdmin (s) = if ((r.caller == this))
39- then [BinaryEntry("admin", fromBase58String(s))]
39+@Callable(s)
40+func addAdmin (t) = if ((s.caller == this))
41+ then [BinaryEntry("admin", fromBase58String(t))]
4042 else throw("Only the Admin itself can invoke this function")
4143
4244
4345
44-@Callable(r)
45-func constructor (t,u,v,w,x,y,z,A) = {
46- let B = p(x)
47- let C = p(y)
48- let D = p(z)
49- if (if ((r.caller == this))
46+@Callable(s)
47+func constructor (u,v,w,x,y,z,A,B) = {
48+ let C = q(y)
49+ let D = q(z)
50+ let E = q(A)
51+ if (if ((s.caller == this))
5052 then true
51- else (r.caller == Address(getBinaryValue(this, "admin"))))
52- then if ((u >= t))
53+ else (s.caller == Address(getBinaryValue(this, "admin"))))
54+ then if ((v >= u))
5355 then throw("PresaleDuration can't be bigger than PresaleStart")
54- else if ((A > w))
56+ else if ((B > x))
5557 then throw("minInvestAmount can't be bigger than price")
56- else if (if (if ((B == C))
58+ else if (if (if ((C == D))
5759 then true
58- else (B == D))
60+ else (C == E))
5961 then true
60- else (C == D))
62+ else (D == E))
6163 then throw("Each Asset must be different from the other.")
62- else if ((size(r.payments) != 1))
64+ else if ((size(s.payments) != 1))
6365 then throw("exactly 1 payment must be attached")
64- else [BinaryEntry(j, value(r.payments[0].assetId)), StringEntry(f, x), StringEntry(g, y), StringEntry(h, z), IntegerEntry(a, t), IntegerEntry(b, u), IntegerEntry(e, w), IntegerEntry(i, A), IntegerEntry(k, value(r.payments[0]).amount), IntegerEntry(l, 0), IntegerEntry(n, v)]
66+ else [BinaryEntry(j, value(s.payments[0].assetId)), StringEntry(f, y), StringEntry(g, z), StringEntry(h, A), IntegerEntry(a, u), IntegerEntry(b, v), IntegerEntry(e, x), IntegerEntry(i, B), IntegerEntry(k, value(s.payments[0]).amount), IntegerEntry(l, 0), IntegerEntry(n, w)]
6567 else throw("Only the Admin itself can invoke this function")
6668 }
6769
6870
6971
70-@Callable(r)
72+@Callable(s)
7173 func invest () = {
72- let E = getBinaryValue(this, j)
73- let t = getIntegerValue(this, a)
74- let u = getIntegerValue(this, b)
75- let F = (t + u)
76- let w = getIntegerValue(this, e)
77- let G = height
78- let H = value(r.payments[0])
79- let I = toBase58String(value(H.assetId))
80- let J = H.amount
81- let B = getStringValue(this, f)
82- let C = getStringValue(this, g)
83- let D = getStringValue(this, h)
84- let K = getIntegerValue(this, l)
85- let L = getIntegerValue(this, k)
86- let M = getIntegerValue(this, i)
87- if ((t >= G))
74+ let F = getBinaryValue(this, j)
75+ let u = getIntegerValue(this, a)
76+ let v = getIntegerValue(this, b)
77+ let G = (u + v)
78+ let x = getIntegerValue(this, e)
79+ let H = height
80+ let I = value(s.payments[0])
81+ let J = toBase58String(value(I.assetId))
82+ let K = I.amount
83+ let C = getStringValue(this, f)
84+ let D = getStringValue(this, g)
85+ let E = getStringValue(this, h)
86+ let L = getIntegerValue(this, l)
87+ let M = getIntegerValue(this, k)
88+ let N = getIntegerValue(this, i)
89+ if ((u >= H))
8890 then throw("presale has not been started yet")
89- else if ((G >= F))
91+ else if ((H >= G))
9092 then throw("presale has been already ended")
91- else if ((size(r.payments) != 1))
93+ else if ((size(s.payments) != 1))
9294 then throw("exactly 1 payment is expected")
93- else if (if (if ((I != B))
94- then (I != C)
95+ else if (if (if ((J != C))
96+ then (J != D)
9597 else false)
96- then (I != D)
98+ then (J != E)
9799 else false)
98- then throw(((("invalid payment asset id:" + I) + " Expected:") + B))
99- else if ((K >= L))
100+ then throw(((("invalid payment asset id:" + J) + " Expected:") + C))
101+ else if ((L >= M))
100102 then throw("Pre-sale asset has been - sold consider to use smaller payment")
101- else if ((M > J))
103+ else if ((N > K))
102104 then throw("Amount less than the minimum to be invested.")
103105 else {
104- let N = ((J / w) * o)
105- let O = {
106- let P = getInteger(this, (m + toBase58String(r.caller.bytes)))
107- if ($isInstanceOf(P, "Int"))
106+ let O = ((K / x) * o)
107+ let P = {
108+ let Q = getInteger(this, (m + toBase58String(s.caller.bytes)))
109+ if ($isInstanceOf(Q, "Int"))
108110 then {
109- let Q = P
110- Q
111+ let R = Q
112+ R
111113 }
112114 else 0
113115 }
114-[IntegerEntry(l, (K + N)), IntegerEntry((m + toBase58String(r.caller.bytes)), (N + O)), IntegerEntry(((((m + toBase58String(r.caller.bytes)) + "__") + I) + "__VALUE"), J), BooleanEntry((((m + toBase58String(r.caller.bytes)) + "__") + I), true)]
116+[IntegerEntry(l, (L + O)), IntegerEntry((m + toBase58String(s.caller.bytes)), (O + P)), IntegerEntry(((((m + toBase58String(s.caller.bytes)) + "__") + J) + "__VALUE"), K), BooleanEntry((((m + toBase58String(s.caller.bytes)) + "__") + J), true)]
115117 }
116118 }
117119
118120
119121
120-@Callable(r)
122+@Callable(s)
121123 func claimPresale () = {
122- let R = getIntegerValue(this, b)
123- let S = getIntegerValue(this, a)
124- let T = (R + S)
125- let v = getIntegerValue(this, n)
126- let U = (T + v)
127- let E = getBinaryValue(this, j)
128- let G = height
129- let w = getIntegerValue(this, e)
130- if ((T >= G))
124+ let S = getIntegerValue(this, b)
125+ let T = getIntegerValue(this, a)
126+ let U = (S + T)
127+ let w = getIntegerValue(this, n)
128+ let V = (U + w)
129+ let F = getBinaryValue(this, j)
130+ let H = height
131+ let x = getIntegerValue(this, e)
132+ if ((U >= H))
131133 then throw("The Presale is still happening.")
132134 else {
133- let O = {
134- let P = getInteger(this, (m + toBase58String(r.caller.bytes)))
135- if ($isInstanceOf(P, "Int"))
135+ let P = {
136+ let Q = getInteger(this, (m + toBase58String(s.caller.bytes)))
137+ if ($isInstanceOf(Q, "Int"))
136138 then {
137- let Q = P
138- Q
139+ let R = Q
140+ R
139141 }
140142 else 0
141143 }
142- let V = if ((G > U))
144+ let W = if ((H > V))
143145 then toBigInt(100)
144- else ((toBigInt(G) * toBigInt(o)) / toBigInt(U))
145- let W = if ((O == 0))
146+ else ((toBigInt(H) * toBigInt(p)) / toBigInt(V))
147+ let X = if ((0 >= P))
146148 then throw("You were not part of the presale")
147- else O
148- let N = ((toBigInt(W) * (V * toBigInt(o))) / (toBigInt(100) * toBigInt(o)))
149- let X = (toBigInt(W) - N)
150- let Y = {
151- let P = getInteger(this, ("OLD_TOTAL_" + toBase58String(r.caller.bytes)))
152- if ($isInstanceOf(P, "Int"))
149+ else P
150+ let O = ((toBigInt(X) * W) / (toBigInt(100) * toBigInt(o)))
151+ let Y = (toBigInt(X) - O)
152+ let Z = {
153+ let Q = getInteger(this, ("OLD_TOTAL_" + toBase58String(s.caller.bytes)))
154+ if ($isInstanceOf(Q, "Int"))
153155 then {
154- let Z = P
155- Z
156+ let aa = Q
157+ aa
156158 }
157159 else 0
158160 }
159- if ((Y == 0))
160- then [IntegerEntry((m + toBase58String(r.caller.bytes)), toInt(X)), ScriptTransfer(r.caller, toInt(N), E), IntegerEntry(("OLD_TOTAL_" + toBase58String(r.caller.bytes)), W)]
161- else [IntegerEntry((m + toBase58String(r.caller.bytes)), toInt(X)), ScriptTransfer(r.caller, toInt(N), E)]
161+ if ((Z == 0))
162+ then [IntegerEntry((m + toBase58String(s.caller.bytes)), toInt(Y)), ScriptTransfer(s.caller, toInt(O), F), IntegerEntry(("OLD_TOTAL_" + toBase58String(s.caller.bytes)), X)]
163+ else [IntegerEntry((m + toBase58String(s.caller.bytes)), toInt(Y)), ScriptTransfer(s.caller, toInt(O), F)]
162164 }
163165 }
164166
165167
166168
167-@Callable(r)
168-func adminV (aa,s,q) = if (if ((r.caller == this))
169+@Callable(s)
170+func adminV (ab,t,r) = if (if ((s.caller == this))
169171 then true
170- else (r.caller == Address(getBinaryValue(this, "admin"))))
171- then [ScriptTransfer(Address(fromBase58String(s)), aa, fromBase58String(q))]
172+ else (s.caller == Address(getBinaryValue(this, "admin"))))
173+ then [ScriptTransfer(Address(fromBase58String(t)), ab, fromBase58String(r))]
172174 else throw("Only the Admin itself can invoke this function")
173175
174176
175-@Verifier(ab)
176-func ac () = sigVerify(ab.bodyBytes, ab.proofs[0], ab.senderPublicKey)
177+@Verifier(ac)
178+func ad () = sigVerify(ac.bodyBytes, ac.proofs[0], ac.senderPublicKey)
177179

github/deemru/w8io/169f3d6 
100.61 ms