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:
Old | New | | Differences |
---|
39 | 39 | | func l (m) = j((m + "_whiteListed")) |
---|
40 | 40 | | |
---|
41 | 41 | | |
---|
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")) |
---|
44 | 45 | | if ((p == 0)) |
---|
45 | | - | then 0 |
---|
| 46 | + | then throw("Redeem time not started") |
---|
46 | 47 | | 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 | + | } |
---|
50 | 55 | | } |
---|
51 | 56 | | } |
---|
52 | 57 | | |
---|
53 | 58 | | |
---|
54 | | - | @Callable(s) |
---|
| 59 | + | @Callable(t) |
---|
55 | 60 | | func init () = [IntegerEntry("Remaining_Tokens", c)] |
---|
56 | 61 | | |
---|
57 | 62 | | |
---|
58 | 63 | | |
---|
59 | | - | @Callable(s) |
---|
60 | | - | func addToWhiteList (m) = if ((s.caller != this)) |
---|
| 64 | + | @Callable(t) |
---|
| 65 | + | func addToWhiteList (m) = if ((t.caller != this)) |
---|
61 | 66 | | then throw("you are not authorized to perform this operation") |
---|
62 | 67 | | else [BooleanEntry((m + "_whiteListed"), true)] |
---|
63 | 68 | | |
---|
64 | 69 | | |
---|
65 | 70 | | |
---|
66 | | - | @Callable(s) |
---|
67 | | - | func setStartGame (t) = if ((s.caller != this)) |
---|
| 71 | + | @Callable(t) |
---|
| 72 | + | func setStartGame (u) = if ((t.caller != this)) |
---|
68 | 73 | | 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)] |
---|
70 | 75 | | |
---|
71 | 76 | | |
---|
72 | 77 | | |
---|
73 | | - | @Callable(s) |
---|
| 78 | + | @Callable(t) |
---|
74 | 79 | | 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)) |
---|
78 | 83 | | then throw("you are not whitelisted!") |
---|
79 | 84 | | else { |
---|
80 | | - | let v = s.payments[0] |
---|
81 | | - | if ((v == v)) |
---|
| 85 | + | let w = t.payments[0] |
---|
| 86 | + | if ((w == w)) |
---|
82 | 87 | | 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)) |
---|
85 | 90 | | then { |
---|
86 | | - | let x = v.assetId |
---|
87 | | - | if ((x == x)) |
---|
| 91 | + | let y = w.assetId |
---|
| 92 | + | if ((y == y)) |
---|
88 | 93 | | then { |
---|
89 | | - | let y = w |
---|
90 | | - | if ((y == y)) |
---|
| 94 | + | let z = x |
---|
| 95 | + | if ((z == z)) |
---|
91 | 96 | | then { |
---|
92 | | - | let z = f((m + "_Reserved")) |
---|
93 | | - | if ((z == z)) |
---|
| 97 | + | let A = f((m + "_Reserved")) |
---|
| 98 | + | if ((A == A)) |
---|
94 | 99 | | then { |
---|
95 | | - | let A = f("Remaining_Tokens") |
---|
96 | | - | if ((x != e)) |
---|
| 100 | + | let B = f("Remaining_Tokens") |
---|
| 101 | + | if ((y != e)) |
---|
97 | 102 | | then throw("ONLY USDN ALLOWED") |
---|
98 | | - | else if ((0 >= A)) |
---|
| 103 | + | else if ((0 >= B)) |
---|
99 | 104 | | 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")) |
---|
102 | 107 | | 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")) |
---|
106 | 111 | | 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)] |
---|
109 | 114 | | } |
---|
110 | 115 | | } |
---|
111 | 116 | | } |
---|
|
123 | 128 | | |
---|
124 | 129 | | |
---|
125 | 130 | | |
---|
126 | | - | @Callable(s) |
---|
| 131 | + | @Callable(t) |
---|
127 | 132 | | func redeem () = if (!(k())) |
---|
128 | 133 | | then throw("Cannot redeem anything before the game starts!") |
---|
129 | 134 | | 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)) |
---|
134 | 139 | | then throw("Nothing to redeem") |
---|
135 | 140 | | else { |
---|
136 | | - | let E = n(y) |
---|
137 | | - | let F = (y - D) |
---|
| 141 | + | let E = n(z, m) |
---|
| 142 | + | let F = (z - q) |
---|
138 | 143 | | 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)] |
---|
140 | 145 | | else throw((("you can redeem max " + toString(F)) + " SHEGG")) |
---|
141 | 146 | | } |
---|
142 | 147 | | } |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 5 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let a = base58'AFQS5E4ELtxex3iANtWtUU2V2oWJZSo8VVnK8z3VFmqf' |
---|
5 | 5 | | |
---|
6 | 6 | | let b = addressFromStringValue("3N2fmsxjTetfnJBXEUpnALKcAQeNR4EizQQ") |
---|
7 | 7 | | |
---|
8 | 8 | | let c = 50000000000000 |
---|
9 | 9 | | |
---|
10 | 10 | | let d = 10000 |
---|
11 | 11 | | |
---|
12 | 12 | | let e = unit |
---|
13 | 13 | | |
---|
14 | 14 | | func f (g) = { |
---|
15 | 15 | | let h = getInteger(this, g) |
---|
16 | 16 | | if ($isInstanceOf(h, "Int")) |
---|
17 | 17 | | then { |
---|
18 | 18 | | let i = h |
---|
19 | 19 | | i |
---|
20 | 20 | | } |
---|
21 | 21 | | else 0 |
---|
22 | 22 | | } |
---|
23 | 23 | | |
---|
24 | 24 | | |
---|
25 | 25 | | func j (g) = { |
---|
26 | 26 | | let h = getBoolean(this, g) |
---|
27 | 27 | | if ($isInstanceOf(h, "Boolean")) |
---|
28 | 28 | | then { |
---|
29 | 29 | | let i = h |
---|
30 | 30 | | i |
---|
31 | 31 | | } |
---|
32 | 32 | | else false |
---|
33 | 33 | | } |
---|
34 | 34 | | |
---|
35 | 35 | | |
---|
36 | 36 | | func k () = j("Game_Started") |
---|
37 | 37 | | |
---|
38 | 38 | | |
---|
39 | 39 | | func l (m) = j((m + "_whiteListed")) |
---|
40 | 40 | | |
---|
41 | 41 | | |
---|
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")) |
---|
44 | 45 | | if ((p == 0)) |
---|
45 | | - | then 0 |
---|
| 46 | + | then throw("Redeem time not started") |
---|
46 | 47 | | 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 | + | } |
---|
50 | 55 | | } |
---|
51 | 56 | | } |
---|
52 | 57 | | |
---|
53 | 58 | | |
---|
54 | | - | @Callable(s) |
---|
| 59 | + | @Callable(t) |
---|
55 | 60 | | func init () = [IntegerEntry("Remaining_Tokens", c)] |
---|
56 | 61 | | |
---|
57 | 62 | | |
---|
58 | 63 | | |
---|
59 | | - | @Callable(s) |
---|
60 | | - | func addToWhiteList (m) = if ((s.caller != this)) |
---|
| 64 | + | @Callable(t) |
---|
| 65 | + | func addToWhiteList (m) = if ((t.caller != this)) |
---|
61 | 66 | | then throw("you are not authorized to perform this operation") |
---|
62 | 67 | | else [BooleanEntry((m + "_whiteListed"), true)] |
---|
63 | 68 | | |
---|
64 | 69 | | |
---|
65 | 70 | | |
---|
66 | | - | @Callable(s) |
---|
67 | | - | func setStartGame (t) = if ((s.caller != this)) |
---|
| 71 | + | @Callable(t) |
---|
| 72 | + | func setStartGame (u) = if ((t.caller != this)) |
---|
68 | 73 | | 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)] |
---|
70 | 75 | | |
---|
71 | 76 | | |
---|
72 | 77 | | |
---|
73 | | - | @Callable(s) |
---|
| 78 | + | @Callable(t) |
---|
74 | 79 | | 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)) |
---|
78 | 83 | | then throw("you are not whitelisted!") |
---|
79 | 84 | | else { |
---|
80 | | - | let v = s.payments[0] |
---|
81 | | - | if ((v == v)) |
---|
| 85 | + | let w = t.payments[0] |
---|
| 86 | + | if ((w == w)) |
---|
82 | 87 | | 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)) |
---|
85 | 90 | | then { |
---|
86 | | - | let x = v.assetId |
---|
87 | | - | if ((x == x)) |
---|
| 91 | + | let y = w.assetId |
---|
| 92 | + | if ((y == y)) |
---|
88 | 93 | | then { |
---|
89 | | - | let y = w |
---|
90 | | - | if ((y == y)) |
---|
| 94 | + | let z = x |
---|
| 95 | + | if ((z == z)) |
---|
91 | 96 | | then { |
---|
92 | | - | let z = f((m + "_Reserved")) |
---|
93 | | - | if ((z == z)) |
---|
| 97 | + | let A = f((m + "_Reserved")) |
---|
| 98 | + | if ((A == A)) |
---|
94 | 99 | | then { |
---|
95 | | - | let A = f("Remaining_Tokens") |
---|
96 | | - | if ((x != e)) |
---|
| 100 | + | let B = f("Remaining_Tokens") |
---|
| 101 | + | if ((y != e)) |
---|
97 | 102 | | then throw("ONLY USDN ALLOWED") |
---|
98 | | - | else if ((0 >= A)) |
---|
| 103 | + | else if ((0 >= B)) |
---|
99 | 104 | | 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")) |
---|
102 | 107 | | 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")) |
---|
106 | 111 | | 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)] |
---|
109 | 114 | | } |
---|
110 | 115 | | } |
---|
111 | 116 | | } |
---|
112 | 117 | | else throw("Strict value is not equal to itself.") |
---|
113 | 118 | | } |
---|
114 | 119 | | else throw("Strict value is not equal to itself.") |
---|
115 | 120 | | } |
---|
116 | 121 | | else throw("Strict value is not equal to itself.") |
---|
117 | 122 | | } |
---|
118 | 123 | | else throw("Strict value is not equal to itself.") |
---|
119 | 124 | | } |
---|
120 | 125 | | else throw("Strict value is not equal to itself.") |
---|
121 | 126 | | } |
---|
122 | 127 | | } |
---|
123 | 128 | | |
---|
124 | 129 | | |
---|
125 | 130 | | |
---|
126 | | - | @Callable(s) |
---|
| 131 | + | @Callable(t) |
---|
127 | 132 | | func redeem () = if (!(k())) |
---|
128 | 133 | | then throw("Cannot redeem anything before the game starts!") |
---|
129 | 134 | | 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)) |
---|
134 | 139 | | then throw("Nothing to redeem") |
---|
135 | 140 | | else { |
---|
136 | | - | let E = n(y) |
---|
137 | | - | let F = (y - D) |
---|
| 141 | + | let E = n(z, m) |
---|
| 142 | + | let F = (z - q) |
---|
138 | 143 | | 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)] |
---|
140 | 145 | | else throw((("you can redeem max " + toString(F)) + " SHEGG")) |
---|
141 | 146 | | } |
---|
142 | 147 | | } |
---|
143 | 148 | | |
---|
144 | 149 | | |
---|