tx · 3tRD2kAddgKNrytVnVoi34vvRXNYXURj4i7rW77UksbD

3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9:  -0.01400000 Waves

2022.01.10 19:08 [1873046] smart account 3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9 > SELF 0.00000000 Waves

{ "type": 13, "id": "3tRD2kAddgKNrytVnVoi34vvRXNYXURj4i7rW77UksbD", "fee": 1400000, "feeAssetId": null, "timestamp": 1641830906755, "version": 2, "chainId": 84, "sender": "3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9", "senderPublicKey": "HwnFy5MZJ9eyVKF9GSXN8nuA5uT2rcvnVqHw9vCv3DNn", "proofs": [ "4gKGeCN9b3msvhrNWFJG1mqJeGRxu2TjmrBby7eH74uwtj7sVP37cx3JmpoP9cRH3crKjAZufgsxgJ7FEXat7xaR" ], "script": "base64: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", "height": 1873046, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EaRcG4nb1WzmggqDbJSKxF55veTm9rfk7m1ZquczE8Fw Next: DzCd7V7HAQVDTTyduKdnwjAS2zSTaiji9XSasPhbtJbV Diff:
OldNewDifferences
3939 func l (m) = j((m + "_whiteListed"))
4040
4141
42-func n (o) = {
43- let p = f("End_Height")
42+func n (o,m) = {
43+ let p = f("Start_Height")
44+ let q = f((m + "_Redeemed"))
4445 if ((p == 0))
45- then 0
46+ then throw("Redeem time not started")
4647 else {
47- let q = fraction((p - lastBlock.height), 1, 1440)
48- let r = fraction(o, 1, 180)
49- (q * r)
48+ let r = (1440 * 180)
49+ if ((lastBlock.height > (p + r)))
50+ then (o - q)
51+ else {
52+ let s = fraction(o, 1, r)
53+ (((lastBlock.height - p) * s) - q)
54+ }
5055 }
5156 }
5257
5358
54-@Callable(s)
59+@Callable(t)
5560 func init () = [IntegerEntry("Remaining_Tokens", c)]
5661
5762
5863
59-@Callable(s)
60-func addToWhiteList (m) = if ((s.caller != this))
64+@Callable(t)
65+func addToWhiteList (m) = if ((t.caller != this))
6166 then throw("you are not authorized to perform this operation")
6267 else [BooleanEntry((m + "_whiteListed"), true)]
6368
6469
6570
66-@Callable(s)
67-func setStartGame (t) = if ((s.caller != this))
71+@Callable(t)
72+func setStartGame (u) = if ((t.caller != this))
6873 then throw("you are not authorized to perform this operation")
69- else [BooleanEntry("Game_Started", t), IntegerEntry("End_Height", (lastBlock.height + (1440 * 180)))]
74+ else [BooleanEntry("Game_Started", u), IntegerEntry("Start_Height", lastBlock.height)]
7075
7176
7277
73-@Callable(s)
78+@Callable(t)
7479 func reserveTokens () = {
75- let m = toString(s.caller)
76- let u = l(m)
77- if (!(u))
80+ let m = toString(t.caller)
81+ let v = l(m)
82+ if (!(v))
7883 then throw("you are not whitelisted!")
7984 else {
80- let v = s.payments[0]
81- if ((v == v))
85+ let w = t.payments[0]
86+ if ((w == w))
8287 then {
83- let w = value(s.payments[0].amount)
84- if ((w == w))
88+ let x = value(t.payments[0].amount)
89+ if ((x == x))
8590 then {
86- let x = v.assetId
87- if ((x == x))
91+ let y = w.assetId
92+ if ((y == y))
8893 then {
89- let y = w
90- if ((y == y))
94+ let z = x
95+ if ((z == z))
9196 then {
92- let z = f((m + "_Reserved"))
93- if ((z == z))
97+ let A = f((m + "_Reserved"))
98+ if ((A == A))
9499 then {
95- let A = f("Remaining_Tokens")
96- if ((x != e))
100+ let B = f("Remaining_Tokens")
101+ if ((y != e))
97102 then throw("ONLY USDN ALLOWED")
98- else if ((0 >= A))
103+ else if ((0 >= B))
99104 then throw("Presale is out of stock!")
100- else if ((y > A))
101- then throw((("You can reserve only" + toString(A)) + " SHEGG"))
105+ else if ((z > B))
106+ then throw((("You can reserve only" + toString(B)) + " SHEGG"))
102107 else {
103- let B = (d - z)
104- if ((z > B))
105- then throw((("You can reserve max " + toString(B)) + " SHEGG"))
108+ let C = (d - A)
109+ if ((A > C))
110+ then throw((("You can reserve max " + toString(C)) + " SHEGG"))
106111 else {
107- let C = (A - y)
108-[IntegerEntry((m + "_Reserved"), (y + z)), IntegerEntry("Remaining_Tokens", C), ScriptTransfer(b, w, e)]
112+ let D = (B - z)
113+[IntegerEntry((m + "_Reserved"), (z + A)), IntegerEntry("Remaining_Tokens", D), ScriptTransfer(b, x, e)]
109114 }
110115 }
111116 }
123128
124129
125130
126-@Callable(s)
131+@Callable(t)
127132 func redeem () = if (!(k()))
128133 then throw("Cannot redeem anything before the game starts!")
129134 else {
130- let m = toString(s.caller)
131- let y = f((m + "_Reserved"))
132- let D = f((m + "_Redeemed"))
133- if ((y == 0))
135+ let m = toString(t.caller)
136+ let z = f((m + "_Reserved"))
137+ let q = f((m + "_Redeemed"))
138+ if ((z == 0))
134139 then throw("Nothing to redeem")
135140 else {
136- let E = n(y)
137- let F = (y - D)
141+ let E = n(z, m)
142+ let F = (z - q)
138143 if ((E >= F))
139- then [IntegerEntry((m + "_Redeemed"), (D + E)), ScriptTransfer(s.caller, D, a)]
144+ then [IntegerEntry((m + "_Redeemed"), (q + E)), ScriptTransfer(t.caller, q, a)]
140145 else throw((("you can redeem max " + toString(F)) + " SHEGG"))
141146 }
142147 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'AFQS5E4ELtxex3iANtWtUU2V2oWJZSo8VVnK8z3VFmqf'
55
66 let b = addressFromStringValue("3N2fmsxjTetfnJBXEUpnALKcAQeNR4EizQQ")
77
88 let c = 50000000000000
99
1010 let d = 10000
1111
1212 let e = unit
1313
1414 func f (g) = {
1515 let h = getInteger(this, g)
1616 if ($isInstanceOf(h, "Int"))
1717 then {
1818 let i = h
1919 i
2020 }
2121 else 0
2222 }
2323
2424
2525 func j (g) = {
2626 let h = getBoolean(this, g)
2727 if ($isInstanceOf(h, "Boolean"))
2828 then {
2929 let i = h
3030 i
3131 }
3232 else false
3333 }
3434
3535
3636 func k () = j("Game_Started")
3737
3838
3939 func l (m) = j((m + "_whiteListed"))
4040
4141
42-func n (o) = {
43- let p = f("End_Height")
42+func n (o,m) = {
43+ let p = f("Start_Height")
44+ let q = f((m + "_Redeemed"))
4445 if ((p == 0))
45- then 0
46+ then throw("Redeem time not started")
4647 else {
47- let q = fraction((p - lastBlock.height), 1, 1440)
48- let r = fraction(o, 1, 180)
49- (q * r)
48+ let r = (1440 * 180)
49+ if ((lastBlock.height > (p + r)))
50+ then (o - q)
51+ else {
52+ let s = fraction(o, 1, r)
53+ (((lastBlock.height - p) * s) - q)
54+ }
5055 }
5156 }
5257
5358
54-@Callable(s)
59+@Callable(t)
5560 func init () = [IntegerEntry("Remaining_Tokens", c)]
5661
5762
5863
59-@Callable(s)
60-func addToWhiteList (m) = if ((s.caller != this))
64+@Callable(t)
65+func addToWhiteList (m) = if ((t.caller != this))
6166 then throw("you are not authorized to perform this operation")
6267 else [BooleanEntry((m + "_whiteListed"), true)]
6368
6469
6570
66-@Callable(s)
67-func setStartGame (t) = if ((s.caller != this))
71+@Callable(t)
72+func setStartGame (u) = if ((t.caller != this))
6873 then throw("you are not authorized to perform this operation")
69- else [BooleanEntry("Game_Started", t), IntegerEntry("End_Height", (lastBlock.height + (1440 * 180)))]
74+ else [BooleanEntry("Game_Started", u), IntegerEntry("Start_Height", lastBlock.height)]
7075
7176
7277
73-@Callable(s)
78+@Callable(t)
7479 func reserveTokens () = {
75- let m = toString(s.caller)
76- let u = l(m)
77- if (!(u))
80+ let m = toString(t.caller)
81+ let v = l(m)
82+ if (!(v))
7883 then throw("you are not whitelisted!")
7984 else {
80- let v = s.payments[0]
81- if ((v == v))
85+ let w = t.payments[0]
86+ if ((w == w))
8287 then {
83- let w = value(s.payments[0].amount)
84- if ((w == w))
88+ let x = value(t.payments[0].amount)
89+ if ((x == x))
8590 then {
86- let x = v.assetId
87- if ((x == x))
91+ let y = w.assetId
92+ if ((y == y))
8893 then {
89- let y = w
90- if ((y == y))
94+ let z = x
95+ if ((z == z))
9196 then {
92- let z = f((m + "_Reserved"))
93- if ((z == z))
97+ let A = f((m + "_Reserved"))
98+ if ((A == A))
9499 then {
95- let A = f("Remaining_Tokens")
96- if ((x != e))
100+ let B = f("Remaining_Tokens")
101+ if ((y != e))
97102 then throw("ONLY USDN ALLOWED")
98- else if ((0 >= A))
103+ else if ((0 >= B))
99104 then throw("Presale is out of stock!")
100- else if ((y > A))
101- then throw((("You can reserve only" + toString(A)) + " SHEGG"))
105+ else if ((z > B))
106+ then throw((("You can reserve only" + toString(B)) + " SHEGG"))
102107 else {
103- let B = (d - z)
104- if ((z > B))
105- then throw((("You can reserve max " + toString(B)) + " SHEGG"))
108+ let C = (d - A)
109+ if ((A > C))
110+ then throw((("You can reserve max " + toString(C)) + " SHEGG"))
106111 else {
107- let C = (A - y)
108-[IntegerEntry((m + "_Reserved"), (y + z)), IntegerEntry("Remaining_Tokens", C), ScriptTransfer(b, w, e)]
112+ let D = (B - z)
113+[IntegerEntry((m + "_Reserved"), (z + A)), IntegerEntry("Remaining_Tokens", D), ScriptTransfer(b, x, e)]
109114 }
110115 }
111116 }
112117 else throw("Strict value is not equal to itself.")
113118 }
114119 else throw("Strict value is not equal to itself.")
115120 }
116121 else throw("Strict value is not equal to itself.")
117122 }
118123 else throw("Strict value is not equal to itself.")
119124 }
120125 else throw("Strict value is not equal to itself.")
121126 }
122127 }
123128
124129
125130
126-@Callable(s)
131+@Callable(t)
127132 func redeem () = if (!(k()))
128133 then throw("Cannot redeem anything before the game starts!")
129134 else {
130- let m = toString(s.caller)
131- let y = f((m + "_Reserved"))
132- let D = f((m + "_Redeemed"))
133- if ((y == 0))
135+ let m = toString(t.caller)
136+ let z = f((m + "_Reserved"))
137+ let q = f((m + "_Redeemed"))
138+ if ((z == 0))
134139 then throw("Nothing to redeem")
135140 else {
136- let E = n(y)
137- let F = (y - D)
141+ let E = n(z, m)
142+ let F = (z - q)
138143 if ((E >= F))
139- then [IntegerEntry((m + "_Redeemed"), (D + E)), ScriptTransfer(s.caller, D, a)]
144+ then [IntegerEntry((m + "_Redeemed"), (q + E)), ScriptTransfer(t.caller, q, a)]
140145 else throw((("you can redeem max " + toString(F)) + " SHEGG"))
141146 }
142147 }
143148
144149

github/deemru/w8io/169f3d6 
82.79 ms