tx · 31ERcdSw59P4yDEaaCh8DdJ6oEuVShFKZgWSpjbLpATJ

3MvMpGD5MxbUW2EJn6jtViDu6NHNqu8PKq8:  -0.01100000 Waves

2022.09.12 01:07 [2225015] smart account 3MvMpGD5MxbUW2EJn6jtViDu6NHNqu8PKq8 > SELF 0.00000000 Waves

{ "type": 13, "id": "31ERcdSw59P4yDEaaCh8DdJ6oEuVShFKZgWSpjbLpATJ", "fee": 1100000, "feeAssetId": null, "timestamp": 1662934014654, "version": 2, "chainId": 84, "sender": "3MvMpGD5MxbUW2EJn6jtViDu6NHNqu8PKq8", "senderPublicKey": "2MhVDhjG7eJ6SY8og2HRd4Bam75FsCSg2Vude8gutmZe", "proofs": [ "3gWFN9onX91VRRUyEE7wEjq1ebjsn2TdF5AXazYzjfuHrA2LvGuX9amrEKCkxcv7D7TP2cdfjR1acjUz7zKQ71YT" ], "script": "base64:AAIFAAAAAAAAAB8IAhIDCgEIEgsKCQEBAQEICAgIARIAEgASBQoDAQgIAAAAEgAAAAACcHMCAAAADVBSRVNBTEVfU1RBUlQAAAAAAnBkAgAAABBQUkVTQUxFX0RVUkFUSU9OAAAAAAJjcwIAAAALQ0xBSU1fU1RBUlQAAAAAAmNkAgAAAA5DTEFJTV9EVVJBVElPTgAAAAABcAIAAAAJUFJJQ0VfSURPAAAAAARwMUlEAgAAABBQUklDRV8xX0FTU0VUX0lEAAAAAARwMklEAgAAABBQUklDRV8yX0FTU0VUX0lEAAAAAARwM0lEAgAAABBQUklDRV8zX0FTU0VUX0lEAAAAAARwNElEAgAAABBQUklDRV80X0FTU0VUX0lEAAAAAANtaWECAAAAEU1JTl9BTU9VTlRfSU5WRVNUAAAAAAVtYWluYQIAAAAKTUFJTl9BU1NFVAAAAAAHZm9yU2FsZQIAAAAOVE9UQUxfRk9SX1NBTEUAAAAACXRvdGFsU2FsZQIAAAAKVE9UQUxfU0FMRQAAAAAHdGludmVzdAIAAAANVE9UQUxfSU5WRVNUXwAAAAAFZGlzZHUCAAAAFURJU1RSSUJVVElPTl9EVVJBVElPTgAAAAACRDgAAAAAAAX14QAAAAAAA0QxMAAAAAACVAvkAAEAAAAPZ2V0QXNzZXRJZlZhbGlkAAAAAQAAAAdhc3NldElkCQACWAAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAggJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQkAAlkAAAABBQAAAAdhc3NldElkAAAAAmlkCQABLAAAAAIJAAEsAAAAAgIAAAAKQXNzZXQgSWQ6IAUAAAAHYXNzZXRJZAIAAAAMIGlzIGludmFsaWQuAAAABQAAAAFpAQAAAAhhZGRBZG1pbgAAAAEAAAAHYWRkcmVzcwMJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAETAAAAAIJAQAAAAtCaW5hcnlFbnRyeQAAAAICAAAABWFkbWluCQACWQAAAAEFAAAAB2FkZHJlc3MFAAAAA25pbAkAAAIAAAABAgAAAC5Pbmx5IHRoZSBBZG1pbiBpdHNlbGYgY2FuIGludm9rZSB0aGlzIGZ1bmN0aW9uAAAAAWkBAAAAC2NvbnN0cnVjdG9yAAAACQAAAAxwcmVzYWxlU3RhcnQAAAAPcHJlc2FsZUR1cmF0aW9uAAAAFGRpc3RyaWJ1dGlvbkR1cmF0aW9uAAAABXByaWNlAAAAD3ByaWNlMUFzc2V0SWQ1OAAAAA9wcmljZTJBc3NldElkNTgAAAAPcHJpY2UzQXNzZXRJZDU4AAAAD3ByaWNlNEFzc2V0SWQ1OAAAAA9taW5JbnZlc3RBbW91bnQEAAAABmFzc2V0MQkBAAAAD2dldEFzc2V0SWZWYWxpZAAAAAEFAAAAD3ByaWNlMUFzc2V0SWQ1OAQAAAAGYXNzZXQyCQEAAAAPZ2V0QXNzZXRJZlZhbGlkAAAAAQUAAAAPcHJpY2UyQXNzZXRJZDU4BAAAAAZhc3NldDMJAQAAAA9nZXRBc3NldElmVmFsaWQAAAABBQAAAA9wcmljZTNBc3NldElkNTgDAwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMGCQAAAAAAAAIIBQAAAAFpAAAABmNhbGxlcgkBAAAAB0FkZHJlc3MAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MikAAAACBQAAAAR0aGlzAgAAAAVhZG1pbgMJAABnAAAAAgUAAAAPcHJlc2FsZUR1cmF0aW9uBQAAAAxwcmVzYWxlU3RhcnQJAAACAAAAAQIAAAAyUHJlc2FsZUR1cmF0aW9uIGNhbid0IGJlIGJpZ2dlciB0aGFuICBQcmVzYWxlU3RhcnQDCQAAZgAAAAIFAAAAD21pbkludmVzdEFtb3VudAUAAAAFcHJpY2UJAAACAAAAAQIAAAAqbWluSW52ZXN0QW1vdW50IGNhbid0IGJlIGJpZ2dlciB0aGFuIHByaWNlAwMDCQAAAAAAAAIFAAAABmFzc2V0MQUAAAAGYXNzZXQyBgkAAAAAAAACBQAAAAZhc3NldDEFAAAABmFzc2V0MwYJAAAAAAAAAgUAAAAGYXNzZXQyBQAAAAZhc3NldDMJAAACAAAAAQIAAAAsRWFjaCBBc3NldCBtdXN0IGJlIGRpZmZlcmVudCBmcm9tIHRoZSBvdGhlci4JAARMAAAAAgkBAAAAC0JpbmFyeUVudHJ5AAAAAgUAAAAFbWFpbmEJAQAAAAV2YWx1ZQAAAAEICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRz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", "height": 2225015, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EoEysBKTuSB8pFJpipbi5vY3ZynPhwksEsnD8tuGK1nq Next: none Diff:
OldNewDifferences
1717
1818 let h = "PRICE_3_ASSET_ID"
1919
20-let i = "MIN_AMOUNT_INVEST"
20+let i = "PRICE_4_ASSET_ID"
2121
22-let j = "MAIN_ASSET"
22+let j = "MIN_AMOUNT_INVEST"
2323
24-let k = "TOTAL_FOR_SALE"
24+let k = "MAIN_ASSET"
2525
26-let l = "TOTAL_SALE"
26+let l = "TOTAL_FOR_SALE"
2727
28-let m = "TOTAL_INVEST_"
28+let m = "TOTAL_SALE"
2929
30-let n = "DISTRIBUTION_DURATION"
30+let n = "TOTAL_INVEST_"
3131
32-let o = 100000000
32+let o = "DISTRIBUTION_DURATION"
3333
34-let p = 10000000000
34+let p = 100000000
3535
36-func q (r) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(r))).id, (("Asset Id: " + r) + " is invalid.")))
36+let q = 10000000000
37+
38+func r (s) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(s))).id, (("Asset Id: " + s) + " is invalid.")))
3739
3840
39-@Callable(s)
40-func addAdmin (t) = if ((s.caller == this))
41- then [BinaryEntry("admin", fromBase58String(t))]
41+@Callable(t)
42+func addAdmin (u) = if ((t.caller == this))
43+ then [BinaryEntry("admin", fromBase58String(u))]
4244 else throw("Only the Admin itself can invoke this function")
4345
4446
4547
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))
48+@Callable(t)
49+func constructor (v,w,x,y,z,A,B,C,D) = {
50+ let E = r(z)
51+ let F = r(A)
52+ let G = r(B)
53+ if (if ((t.caller == this))
5254 then true
53- else (s.caller == Address(getBinaryValue(this, "admin"))))
54- then if ((v >= u))
55+ else (t.caller == Address(getBinaryValue(this, "admin"))))
56+ then if ((w >= v))
5557 then throw("PresaleDuration can't be bigger than PresaleStart")
56- else if ((B > x))
58+ else if ((D > y))
5759 then throw("minInvestAmount can't be bigger than price")
58- else if (if (if ((C == D))
60+ else if (if (if ((E == F))
5961 then true
60- else (C == E))
62+ else (E == G))
6163 then true
62- else (D == E))
64+ else (F == G))
6365 then throw("Each Asset must be different from the other.")
64- else if ((size(s.payments) != 1))
65- then throw("exactly 1 payment must be attached")
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)]
66+ else [BinaryEntry(k, value(t.payments[0].assetId)), StringEntry(f, z), StringEntry(g, A), StringEntry(h, B), StringEntry(i, C), IntegerEntry(a, v), IntegerEntry(b, w), IntegerEntry(e, y), IntegerEntry(j, D), IntegerEntry(m, 0), IntegerEntry(o, x)]
6767 else throw("Only the Admin itself can invoke this function")
6868 }
6969
7070
7171
72-@Callable(s)
72+@Callable(t)
7373 func invest () = {
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))
74+ let H = getBinaryValue(this, k)
75+ let v = getIntegerValue(this, a)
76+ let w = getIntegerValue(this, b)
77+ let I = (v + w)
78+ let y = getIntegerValue(this, e)
79+ let J = height
80+ let K = value(t.payments[0])
81+ let L = toBase58String(value(K.assetId))
82+ let M = K.amount
83+ let E = getStringValue(this, f)
84+ let F = getStringValue(this, g)
85+ let G = getStringValue(this, h)
86+ let N = getStringValue(this, i)
87+ let O = getIntegerValue(this, m)
88+ let P = assetBalance(Address(this.bytes), H)
89+ let Q = getIntegerValue(this, j)
90+ if ((v >= J))
9091 then throw("presale has not been started yet")
91- else if ((H >= G))
92+ else if ((J >= I))
9293 then throw("presale has been already ended")
93- else if ((size(s.payments) != 1))
94+ else if ((size(t.payments) != 1))
9495 then throw("exactly 1 payment is expected")
95- else if (if (if ((J != C))
96- then (J != D)
96+ else if (if (if (if ((L != E))
97+ then (L != F)
9798 else false)
98- then (J != E)
99+ then (L != G)
99100 else false)
100- then throw(((("invalid payment asset id:" + J) + " Expected:") + C))
101- else if ((L >= M))
101+ then (L != N)
102+ else false)
103+ then throw(((("invalid payment asset id:" + L) + " Expected:") + E))
104+ else if ((O >= P))
102105 then throw("Pre-sale asset has been - sold consider to use smaller payment")
103- else if ((N > K))
106+ else if ((Q > M))
104107 then throw("Amount less than the minimum to be invested.")
105108 else {
106- let O = ((K / x) * o)
107- let P = {
108- let Q = getInteger(this, (m + toBase58String(s.caller.bytes)))
109- if ($isInstanceOf(Q, "Int"))
109+ let R = ((M / y) * p)
110+ let S = {
111+ let T = getInteger(this, (n + toBase58String(t.caller.bytes)))
112+ if ($isInstanceOf(T, "Int"))
110113 then {
111- let R = Q
112- R
114+ let U = T
115+ U
113116 }
114117 else 0
115118 }
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)]
119+[IntegerEntry(m, (O + R)), IntegerEntry((n + toBase58String(t.caller.bytes)), (R + S)), IntegerEntry(((((n + toBase58String(t.caller.bytes)) + "__") + L) + "__VALUE"), M), BooleanEntry((((n + toBase58String(t.caller.bytes)) + "__") + L), true)]
117120 }
118121 }
119122
120123
121124
122-@Callable(s)
125+@Callable(t)
123126 func claimPresale () = {
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))
127+ let V = getIntegerValue(this, b)
128+ let W = getIntegerValue(this, a)
129+ let X = (V + W)
130+ let x = getIntegerValue(this, o)
131+ let Y = (X + x)
132+ let H = getBinaryValue(this, k)
133+ let J = height
134+ let y = getIntegerValue(this, e)
135+ if ((X >= J))
133136 then throw("The Presale is still happening.")
134137 else {
135- let P = {
136- let Q = getInteger(this, (m + toBase58String(s.caller.bytes)))
137- if ($isInstanceOf(Q, "Int"))
138+ let S = {
139+ let T = getInteger(this, (n + toBase58String(t.caller.bytes)))
140+ if ($isInstanceOf(T, "Int"))
138141 then {
139- let R = Q
140- R
142+ let U = T
143+ U
141144 }
142145 else 0
143146 }
144- let W = if ((H > V))
147+ let Z = if ((J > Y))
145148 then toBigInt(100)
146- else ((toBigInt(H) * toBigInt(p)) / toBigInt(V))
147- let X = if ((0 >= P))
149+ else ((toBigInt(J) * toBigInt(q)) / toBigInt(Y))
150+ let aa = if ((0 >= S))
148151 then throw("You were not part of the presale")
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"))
152+ else S
153+ let R = ((toBigInt(aa) * Z) / (toBigInt(100) * toBigInt(p)))
154+ let ab = (toBigInt(aa) - R)
155+ let ac = {
156+ let T = getInteger(this, ("OLD_TOTAL_" + toBase58String(t.caller.bytes)))
157+ if ($isInstanceOf(T, "Int"))
155158 then {
156- let aa = Q
157- aa
159+ let ad = T
160+ ad
158161 }
159162 else 0
160163 }
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)]
164+ if ((ac == 0))
165+ then [IntegerEntry((n + toBase58String(t.caller.bytes)), toInt(ab)), ScriptTransfer(t.caller, toInt(R), H), IntegerEntry(("OLD_TOTAL_" + toBase58String(t.caller.bytes)), aa)]
166+ else [IntegerEntry((n + toBase58String(t.caller.bytes)), toInt(ab)), ScriptTransfer(t.caller, toInt(R), H)]
164167 }
165168 }
166169
167170
168171
169-@Callable(s)
170-func adminV (ab,t,r) = if (if ((s.caller == this))
172+@Callable(t)
173+func adminV (ae,u,s) = if (if ((t.caller == this))
171174 then true
172- else (s.caller == Address(getBinaryValue(this, "admin"))))
173- then [ScriptTransfer(Address(fromBase58String(t)), ab, fromBase58String(r))]
175+ else (t.caller == Address(getBinaryValue(this, "admin"))))
176+ then [ScriptTransfer(Address(fromBase58String(u)), ae, fromBase58String(s))]
174177 else throw("Only the Admin itself can invoke this function")
175178
176179
177-@Verifier(ac)
178-func ad () = sigVerify(ac.bodyBytes, ac.proofs[0], ac.senderPublicKey)
180+@Verifier(af)
181+func ag () = sigVerify(af.bodyBytes, af.proofs[0], af.senderPublicKey)
179182
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
20-let i = "MIN_AMOUNT_INVEST"
20+let i = "PRICE_4_ASSET_ID"
2121
22-let j = "MAIN_ASSET"
22+let j = "MIN_AMOUNT_INVEST"
2323
24-let k = "TOTAL_FOR_SALE"
24+let k = "MAIN_ASSET"
2525
26-let l = "TOTAL_SALE"
26+let l = "TOTAL_FOR_SALE"
2727
28-let m = "TOTAL_INVEST_"
28+let m = "TOTAL_SALE"
2929
30-let n = "DISTRIBUTION_DURATION"
30+let n = "TOTAL_INVEST_"
3131
32-let o = 100000000
32+let o = "DISTRIBUTION_DURATION"
3333
34-let p = 10000000000
34+let p = 100000000
3535
36-func q (r) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(r))).id, (("Asset Id: " + r) + " is invalid.")))
36+let q = 10000000000
37+
38+func r (s) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(s))).id, (("Asset Id: " + s) + " is invalid.")))
3739
3840
39-@Callable(s)
40-func addAdmin (t) = if ((s.caller == this))
41- then [BinaryEntry("admin", fromBase58String(t))]
41+@Callable(t)
42+func addAdmin (u) = if ((t.caller == this))
43+ then [BinaryEntry("admin", fromBase58String(u))]
4244 else throw("Only the Admin itself can invoke this function")
4345
4446
4547
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))
48+@Callable(t)
49+func constructor (v,w,x,y,z,A,B,C,D) = {
50+ let E = r(z)
51+ let F = r(A)
52+ let G = r(B)
53+ if (if ((t.caller == this))
5254 then true
53- else (s.caller == Address(getBinaryValue(this, "admin"))))
54- then if ((v >= u))
55+ else (t.caller == Address(getBinaryValue(this, "admin"))))
56+ then if ((w >= v))
5557 then throw("PresaleDuration can't be bigger than PresaleStart")
56- else if ((B > x))
58+ else if ((D > y))
5759 then throw("minInvestAmount can't be bigger than price")
58- else if (if (if ((C == D))
60+ else if (if (if ((E == F))
5961 then true
60- else (C == E))
62+ else (E == G))
6163 then true
62- else (D == E))
64+ else (F == G))
6365 then throw("Each Asset must be different from the other.")
64- else if ((size(s.payments) != 1))
65- then throw("exactly 1 payment must be attached")
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)]
66+ else [BinaryEntry(k, value(t.payments[0].assetId)), StringEntry(f, z), StringEntry(g, A), StringEntry(h, B), StringEntry(i, C), IntegerEntry(a, v), IntegerEntry(b, w), IntegerEntry(e, y), IntegerEntry(j, D), IntegerEntry(m, 0), IntegerEntry(o, x)]
6767 else throw("Only the Admin itself can invoke this function")
6868 }
6969
7070
7171
72-@Callable(s)
72+@Callable(t)
7373 func invest () = {
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))
74+ let H = getBinaryValue(this, k)
75+ let v = getIntegerValue(this, a)
76+ let w = getIntegerValue(this, b)
77+ let I = (v + w)
78+ let y = getIntegerValue(this, e)
79+ let J = height
80+ let K = value(t.payments[0])
81+ let L = toBase58String(value(K.assetId))
82+ let M = K.amount
83+ let E = getStringValue(this, f)
84+ let F = getStringValue(this, g)
85+ let G = getStringValue(this, h)
86+ let N = getStringValue(this, i)
87+ let O = getIntegerValue(this, m)
88+ let P = assetBalance(Address(this.bytes), H)
89+ let Q = getIntegerValue(this, j)
90+ if ((v >= J))
9091 then throw("presale has not been started yet")
91- else if ((H >= G))
92+ else if ((J >= I))
9293 then throw("presale has been already ended")
93- else if ((size(s.payments) != 1))
94+ else if ((size(t.payments) != 1))
9495 then throw("exactly 1 payment is expected")
95- else if (if (if ((J != C))
96- then (J != D)
96+ else if (if (if (if ((L != E))
97+ then (L != F)
9798 else false)
98- then (J != E)
99+ then (L != G)
99100 else false)
100- then throw(((("invalid payment asset id:" + J) + " Expected:") + C))
101- else if ((L >= M))
101+ then (L != N)
102+ else false)
103+ then throw(((("invalid payment asset id:" + L) + " Expected:") + E))
104+ else if ((O >= P))
102105 then throw("Pre-sale asset has been - sold consider to use smaller payment")
103- else if ((N > K))
106+ else if ((Q > M))
104107 then throw("Amount less than the minimum to be invested.")
105108 else {
106- let O = ((K / x) * o)
107- let P = {
108- let Q = getInteger(this, (m + toBase58String(s.caller.bytes)))
109- if ($isInstanceOf(Q, "Int"))
109+ let R = ((M / y) * p)
110+ let S = {
111+ let T = getInteger(this, (n + toBase58String(t.caller.bytes)))
112+ if ($isInstanceOf(T, "Int"))
110113 then {
111- let R = Q
112- R
114+ let U = T
115+ U
113116 }
114117 else 0
115118 }
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)]
119+[IntegerEntry(m, (O + R)), IntegerEntry((n + toBase58String(t.caller.bytes)), (R + S)), IntegerEntry(((((n + toBase58String(t.caller.bytes)) + "__") + L) + "__VALUE"), M), BooleanEntry((((n + toBase58String(t.caller.bytes)) + "__") + L), true)]
117120 }
118121 }
119122
120123
121124
122-@Callable(s)
125+@Callable(t)
123126 func claimPresale () = {
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))
127+ let V = getIntegerValue(this, b)
128+ let W = getIntegerValue(this, a)
129+ let X = (V + W)
130+ let x = getIntegerValue(this, o)
131+ let Y = (X + x)
132+ let H = getBinaryValue(this, k)
133+ let J = height
134+ let y = getIntegerValue(this, e)
135+ if ((X >= J))
133136 then throw("The Presale is still happening.")
134137 else {
135- let P = {
136- let Q = getInteger(this, (m + toBase58String(s.caller.bytes)))
137- if ($isInstanceOf(Q, "Int"))
138+ let S = {
139+ let T = getInteger(this, (n + toBase58String(t.caller.bytes)))
140+ if ($isInstanceOf(T, "Int"))
138141 then {
139- let R = Q
140- R
142+ let U = T
143+ U
141144 }
142145 else 0
143146 }
144- let W = if ((H > V))
147+ let Z = if ((J > Y))
145148 then toBigInt(100)
146- else ((toBigInt(H) * toBigInt(p)) / toBigInt(V))
147- let X = if ((0 >= P))
149+ else ((toBigInt(J) * toBigInt(q)) / toBigInt(Y))
150+ let aa = if ((0 >= S))
148151 then throw("You were not part of the presale")
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"))
152+ else S
153+ let R = ((toBigInt(aa) * Z) / (toBigInt(100) * toBigInt(p)))
154+ let ab = (toBigInt(aa) - R)
155+ let ac = {
156+ let T = getInteger(this, ("OLD_TOTAL_" + toBase58String(t.caller.bytes)))
157+ if ($isInstanceOf(T, "Int"))
155158 then {
156- let aa = Q
157- aa
159+ let ad = T
160+ ad
158161 }
159162 else 0
160163 }
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)]
164+ if ((ac == 0))
165+ then [IntegerEntry((n + toBase58String(t.caller.bytes)), toInt(ab)), ScriptTransfer(t.caller, toInt(R), H), IntegerEntry(("OLD_TOTAL_" + toBase58String(t.caller.bytes)), aa)]
166+ else [IntegerEntry((n + toBase58String(t.caller.bytes)), toInt(ab)), ScriptTransfer(t.caller, toInt(R), H)]
164167 }
165168 }
166169
167170
168171
169-@Callable(s)
170-func adminV (ab,t,r) = if (if ((s.caller == this))
172+@Callable(t)
173+func adminV (ae,u,s) = if (if ((t.caller == this))
171174 then true
172- else (s.caller == Address(getBinaryValue(this, "admin"))))
173- then [ScriptTransfer(Address(fromBase58String(t)), ab, fromBase58String(r))]
175+ else (t.caller == Address(getBinaryValue(this, "admin"))))
176+ then [ScriptTransfer(Address(fromBase58String(u)), ae, fromBase58String(s))]
174177 else throw("Only the Admin itself can invoke this function")
175178
176179
177-@Verifier(ac)
178-func ad () = sigVerify(ac.bodyBytes, ac.proofs[0], ac.senderPublicKey)
180+@Verifier(af)
181+func ag () = sigVerify(af.bodyBytes, af.proofs[0], af.senderPublicKey)
179182

github/deemru/w8io/169f3d6 
100.87 ms