tx · FnwqeJQxjYdCBYPdSEWyrtnz6LMfUZGbmJL59gwdX3Wa 3MvMpGD5MxbUW2EJn6jtViDu6NHNqu8PKq8: -0.01100000 Waves 2022.08.26 06:41 [2200923] smart account 3MvMpGD5MxbUW2EJn6jtViDu6NHNqu8PKq8 > SELF 0.00000000 Waves
{ "type": 13, "id": "FnwqeJQxjYdCBYPdSEWyrtnz6LMfUZGbmJL59gwdX3Wa", "fee": 1100000, "feeAssetId": null, "timestamp": 1661485266949, "version": 2, "chainId": 84, "sender": "3MvMpGD5MxbUW2EJn6jtViDu6NHNqu8PKq8", "senderPublicKey": "2MhVDhjG7eJ6SY8og2HRd4Bam75FsCSg2Vude8gutmZe", "proofs": [ "4pf2P6BWQWc6pD8mb62YRKpXQha15zYFXMtya9NLM94ku7jfcYHQ9kuxHHbFtAXckfEwGTtUDdwB8nCZnMxUSTq3" ], "script": "base64:AAIFAAAAAAAAACQIAhIDCgEIEgoKCAEBAQEICAgBEgASABIECgIBCBIFCgMBCAgAAAARAAAAAAJwcwIAAAANUFJFU0FMRV9TVEFSVAAAAAACcGQCAAAAEFBSRVNBTEVfRFVSQVRJT04AAAAAAmNzAgAAAAtDTEFJTV9TVEFSVAAAAAACY2QCAAAADkNMQUlNX0RVUkFUSU9OAAAAAAFwAgAAAAlQUklDRV9JRE8AAAAABHAxSUQCAAAAEFBSSUNFXzFfQVNTRVRfSUQAAAAABHAySUQCAAAAEFBSSUNFXzJfQVNTRVRfSUQAAAAABHAzSUQCAAAAEFBSSUNFXzNfQVNTRVRfSUQAAAAAA21pYQIAAAARTUlOX0FNT1VOVF9JTlZFU1QAAAAABW1haW5hAgAAAApNQUlOX0FTU0VUAAAAAAdmb3JTYWxlAgAAAA5UT1RBTF9GT1JfU0FMRQAAAAAJdG90YWxTYWxlAgAAAApUT1RBTF9TQUxFAAAAAAd0aW52ZXN0AgAAAA1UT1RBTF9JTlZFU1RfAAAAAAVkaXNkdQIAAAAVRElTVFJJQlVUSU9OX0RVUkFUSU9OAAAAAAJEOAAAAAAABfXhAAAAAAADRDEwAAAAAAJUC+QAAQAAAA9nZXRBc3NldElmVmFsaWQAAAABAAAAB2Fzc2V0SWQJAAJYAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABCQACWQAAAAEFAAAAB2Fzc2V0SWQAAAACaWQJAAEsAAAAAgkAASwAAAACAgAAAApBc3NldCBJZDogBQAAAAdhc3NldElkAgAAAAwgaXMgaW52YWxpZC4AAAAGAAAAAWkBAAAACGFkZEFkbWluAAAAAQAAAAdhZGRyZXNzAwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAARMAAAAAgkBAAAAC0JpbmFyeUVudHJ5AAAAAgIAAAAFYWRtaW4JAAJZAAAAAQUAAAAHYWRkcmVzcwUAAAADbmlsCQAAAgAAAAECAAAALk9ubHkgdGhlIEFkbWluIGl0c2VsZiBjYW4gaW52b2tlIHRoaXMgZnVuY3Rpb24AAAABaQEAAAALY29uc3RydWN0b3IAAAAIAAAADHByZXNhbGVTdGFydAAAAA9wcmVzYWxlRHVyYXRpb24AAAAUZGlzdHJpYnV0aW9uRHVyYXRpb24AAAAFcHJpY2UAAAAPcHJpY2UxQXNzZXRJZDU4AAAAD3ByaWNlMkFzc2V0SWQ1OAAAAA9wcmljZTNBc3NldElkNTgAAAAPbWluSW52ZXN0QW1vdW50BAAAAAZhc3NldDEJAQAAAA9nZXRBc3NldElmVmFsaWQAAAABBQAAAA9wcmljZTFBc3NldElkNTgEAAAABmFzc2V0MgkBAAAAD2dldEFzc2V0SWZWYWxpZAAAAAEFAAAAD3ByaWNlMkFzc2V0SWQ1OAQAAAAGYXNzZXQzCQEAAAAPZ2V0QXNzZXRJZlZhbGlkAAAAAQUAAAAPcHJpY2UzQXNzZXRJZDU4AwMJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzBgkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIJAQAAAAdBZGRyZXNzAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTIpAAAAAgUAAAAEdGhpcwIAAAAFYWRtaW4DCQAAZwAAAAIFAAAAD3ByZXNhbGVEdXJhdGlvbgUAAAAMcHJlc2FsZVN0YXJ0CQAAAgAAAAECAAAAMlByZXNhbGVEdXJhdGlvbiBjYW4ndCBiZSBiaWdnZXIgdGhhbiAgUHJlc2FsZVN0YXJ0AwkAAGYAAAACBQAAAA9taW5JbnZlc3RBbW91bnQFAAAABXByaWNlCQAAAgAAAAECAAAAKm1pbkludmVzdEFtb3VudCBjYW4ndCBiZSBiaWdnZXIgdGhhbiBwcmljZQMDAwkAAAAAAAACBQAAAAZhc3NldDEFAAAABmFzc2V0MgYJAAAAAAAAAgUAAAAGYXNzZXQxBQAAAAZhc3NldDMGCQAAAAAAAAIFAAAABmFzc2V0MgUAAAAGYXNzZXQzCQAAAgAAAAECAAAALEVhY2ggQXNzZXQgbXVzdCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgb3RoZXIuAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAAIAAAABAgAAACJleGFjdGx5IDEgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkCQAETAAAAAIJAQAAAAtCaW5hcnlFbnRyeQAAAAIF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", "height": 2200923, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BSkZ87p5KTS2BnGMeoSRewBvDTZ1SWThpxMGctzBLJ81 Next: EoEysBKTuSB8pFJpipbi5vY3ZynPhwksEsnD8tuGK1nq Diff:
Old | New | Differences | |
---|---|---|---|
167 | 167 | ||
168 | 168 | ||
169 | 169 | @Callable(s) | |
170 | + | func alterKey (ab,ac) = [IntegerEntry(ac, ab)] | |
171 | + | ||
172 | + | ||
173 | + | ||
174 | + | @Callable(s) | |
170 | 175 | func adminV (ab,t,r) = if (if ((s.caller == this)) | |
171 | 176 | then true | |
172 | 177 | else (s.caller == Address(getBinaryValue(this, "admin")))) | |
174 | 179 | else throw("Only the Admin itself can invoke this function") | |
175 | 180 | ||
176 | 181 | ||
177 | - | @Verifier( | |
178 | - | func | |
182 | + | @Verifier(ad) | |
183 | + | func ae () = sigVerify(ad.bodyBytes, ad.proofs[0], ad.senderPublicKey) | |
179 | 184 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "PRESALE_START" | |
5 | 5 | ||
6 | 6 | let b = "PRESALE_DURATION" | |
7 | 7 | ||
8 | 8 | let c = "CLAIM_START" | |
9 | 9 | ||
10 | 10 | let d = "CLAIM_DURATION" | |
11 | 11 | ||
12 | 12 | let e = "PRICE_IDO" | |
13 | 13 | ||
14 | 14 | let f = "PRICE_1_ASSET_ID" | |
15 | 15 | ||
16 | 16 | let g = "PRICE_2_ASSET_ID" | |
17 | 17 | ||
18 | 18 | let h = "PRICE_3_ASSET_ID" | |
19 | 19 | ||
20 | 20 | let i = "MIN_AMOUNT_INVEST" | |
21 | 21 | ||
22 | 22 | let j = "MAIN_ASSET" | |
23 | 23 | ||
24 | 24 | let k = "TOTAL_FOR_SALE" | |
25 | 25 | ||
26 | 26 | let l = "TOTAL_SALE" | |
27 | 27 | ||
28 | 28 | let m = "TOTAL_INVEST_" | |
29 | 29 | ||
30 | 30 | let n = "DISTRIBUTION_DURATION" | |
31 | 31 | ||
32 | 32 | let o = 100000000 | |
33 | 33 | ||
34 | 34 | let p = 10000000000 | |
35 | 35 | ||
36 | 36 | func q (r) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(r))).id, (("Asset Id: " + r) + " is invalid."))) | |
37 | 37 | ||
38 | 38 | ||
39 | 39 | @Callable(s) | |
40 | 40 | func addAdmin (t) = if ((s.caller == this)) | |
41 | 41 | then [BinaryEntry("admin", fromBase58String(t))] | |
42 | 42 | else throw("Only the Admin itself can invoke this function") | |
43 | 43 | ||
44 | 44 | ||
45 | 45 | ||
46 | 46 | @Callable(s) | |
47 | 47 | func constructor (u,v,w,x,y,z,A,B) = { | |
48 | 48 | let C = q(y) | |
49 | 49 | let D = q(z) | |
50 | 50 | let E = q(A) | |
51 | 51 | if (if ((s.caller == this)) | |
52 | 52 | then true | |
53 | 53 | else (s.caller == Address(getBinaryValue(this, "admin")))) | |
54 | 54 | then if ((v >= u)) | |
55 | 55 | then throw("PresaleDuration can't be bigger than PresaleStart") | |
56 | 56 | else if ((B > x)) | |
57 | 57 | then throw("minInvestAmount can't be bigger than price") | |
58 | 58 | else if (if (if ((C == D)) | |
59 | 59 | then true | |
60 | 60 | else (C == E)) | |
61 | 61 | then true | |
62 | 62 | else (D == E)) | |
63 | 63 | then throw("Each Asset must be different from the other.") | |
64 | 64 | else if ((size(s.payments) != 1)) | |
65 | 65 | then throw("exactly 1 payment must be attached") | |
66 | 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)] | |
67 | 67 | else throw("Only the Admin itself can invoke this function") | |
68 | 68 | } | |
69 | 69 | ||
70 | 70 | ||
71 | 71 | ||
72 | 72 | @Callable(s) | |
73 | 73 | func invest () = { | |
74 | 74 | let F = getBinaryValue(this, j) | |
75 | 75 | let u = getIntegerValue(this, a) | |
76 | 76 | let v = getIntegerValue(this, b) | |
77 | 77 | let G = (u + v) | |
78 | 78 | let x = getIntegerValue(this, e) | |
79 | 79 | let H = height | |
80 | 80 | let I = value(s.payments[0]) | |
81 | 81 | let J = toBase58String(value(I.assetId)) | |
82 | 82 | let K = I.amount | |
83 | 83 | let C = getStringValue(this, f) | |
84 | 84 | let D = getStringValue(this, g) | |
85 | 85 | let E = getStringValue(this, h) | |
86 | 86 | let L = getIntegerValue(this, l) | |
87 | 87 | let M = getIntegerValue(this, k) | |
88 | 88 | let N = getIntegerValue(this, i) | |
89 | 89 | if ((u >= H)) | |
90 | 90 | then throw("presale has not been started yet") | |
91 | 91 | else if ((H >= G)) | |
92 | 92 | then throw("presale has been already ended") | |
93 | 93 | else if ((size(s.payments) != 1)) | |
94 | 94 | then throw("exactly 1 payment is expected") | |
95 | 95 | else if (if (if ((J != C)) | |
96 | 96 | then (J != D) | |
97 | 97 | else false) | |
98 | 98 | then (J != E) | |
99 | 99 | else false) | |
100 | 100 | then throw(((("invalid payment asset id:" + J) + " Expected:") + C)) | |
101 | 101 | else if ((L >= M)) | |
102 | 102 | then throw("Pre-sale asset has been - sold consider to use smaller payment") | |
103 | 103 | else if ((N > K)) | |
104 | 104 | then throw("Amount less than the minimum to be invested.") | |
105 | 105 | else { | |
106 | 106 | let O = ((K / x) * o) | |
107 | 107 | let P = { | |
108 | 108 | let Q = getInteger(this, (m + toBase58String(s.caller.bytes))) | |
109 | 109 | if ($isInstanceOf(Q, "Int")) | |
110 | 110 | then { | |
111 | 111 | let R = Q | |
112 | 112 | R | |
113 | 113 | } | |
114 | 114 | else 0 | |
115 | 115 | } | |
116 | 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)] | |
117 | 117 | } | |
118 | 118 | } | |
119 | 119 | ||
120 | 120 | ||
121 | 121 | ||
122 | 122 | @Callable(s) | |
123 | 123 | func claimPresale () = { | |
124 | 124 | let S = getIntegerValue(this, b) | |
125 | 125 | let T = getIntegerValue(this, a) | |
126 | 126 | let U = (S + T) | |
127 | 127 | let w = getIntegerValue(this, n) | |
128 | 128 | let V = (U + w) | |
129 | 129 | let F = getBinaryValue(this, j) | |
130 | 130 | let H = height | |
131 | 131 | let x = getIntegerValue(this, e) | |
132 | 132 | if ((U >= H)) | |
133 | 133 | then throw("The Presale is still happening.") | |
134 | 134 | else { | |
135 | 135 | let P = { | |
136 | 136 | let Q = getInteger(this, (m + toBase58String(s.caller.bytes))) | |
137 | 137 | if ($isInstanceOf(Q, "Int")) | |
138 | 138 | then { | |
139 | 139 | let R = Q | |
140 | 140 | R | |
141 | 141 | } | |
142 | 142 | else 0 | |
143 | 143 | } | |
144 | 144 | let W = if ((H > V)) | |
145 | 145 | then toBigInt(100) | |
146 | 146 | else ((toBigInt(H) * toBigInt(p)) / toBigInt(V)) | |
147 | 147 | let X = if ((0 >= P)) | |
148 | 148 | then throw("You were not part of the presale") | |
149 | 149 | else P | |
150 | 150 | let O = ((toBigInt(X) * W) / (toBigInt(100) * toBigInt(o))) | |
151 | 151 | let Y = (toBigInt(X) - O) | |
152 | 152 | let Z = { | |
153 | 153 | let Q = getInteger(this, ("OLD_TOTAL_" + toBase58String(s.caller.bytes))) | |
154 | 154 | if ($isInstanceOf(Q, "Int")) | |
155 | 155 | then { | |
156 | 156 | let aa = Q | |
157 | 157 | aa | |
158 | 158 | } | |
159 | 159 | else 0 | |
160 | 160 | } | |
161 | 161 | if ((Z == 0)) | |
162 | 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 | 163 | else [IntegerEntry((m + toBase58String(s.caller.bytes)), toInt(Y)), ScriptTransfer(s.caller, toInt(O), F)] | |
164 | 164 | } | |
165 | 165 | } | |
166 | 166 | ||
167 | 167 | ||
168 | 168 | ||
169 | 169 | @Callable(s) | |
170 | + | func alterKey (ab,ac) = [IntegerEntry(ac, ab)] | |
171 | + | ||
172 | + | ||
173 | + | ||
174 | + | @Callable(s) | |
170 | 175 | func adminV (ab,t,r) = if (if ((s.caller == this)) | |
171 | 176 | then true | |
172 | 177 | else (s.caller == Address(getBinaryValue(this, "admin")))) | |
173 | 178 | then [ScriptTransfer(Address(fromBase58String(t)), ab, fromBase58String(r))] | |
174 | 179 | else throw("Only the Admin itself can invoke this function") | |
175 | 180 | ||
176 | 181 | ||
177 | - | @Verifier( | |
178 | - | func | |
182 | + | @Verifier(ad) | |
183 | + | func ae () = sigVerify(ad.bodyBytes, ad.proofs[0], ad.senderPublicKey) | |
179 | 184 |
github/deemru/w8io/169f3d6 106.39 ms ◑![]()