tx · ETRoECZU6TLbvmsqXvDkWqnodQdFVX5YLcCPQs5a9rd9

3MweDUGicjorwUViyXBcfCM15fQXXEDU3gN:  -0.00500000 Waves

2023.09.22 09:31 [2766230] smart account 3MweDUGicjorwUViyXBcfCM15fQXXEDU3gN > SELF 0.00000000 Waves

{ "type": 13, "id": "ETRoECZU6TLbvmsqXvDkWqnodQdFVX5YLcCPQs5a9rd9", "fee": 500000, "feeAssetId": null, "timestamp": 1695364372555, "version": 2, "chainId": 84, "sender": "3MweDUGicjorwUViyXBcfCM15fQXXEDU3gN", "senderPublicKey": "DGFm8ntnNPVthPrdcaZNWKYZi1wYzD3vhJETwHnF2emk", "proofs": [ "5LW7dMUMdbKKGo3PoFR2QKTefuWH9XEej9XeHFahbiYFb7iAr3mxMCTdn1Fjfk5gmn3LHyV8XFcHVftR8PMNZ6RU" ], "script": "base64:BgIYCAISABIDCgEIEgMKAQESAwoBARIDCgEBBAAQaXNDb25zdHJ1Y3RlZEtleQIOaXNfY29uc3RydWN0ZWQACmFzc2V0SWRLZXkCB2Fzc2V0SWQADWxwUG9vbEFzc2V0SWQCDWxwUG9vbEFzc2V0SWQAGGN1cnJlbnRSZXdhcmRBbW91bnRJZEtleQIQcmV3YXJkX2Ftb3VudF9pZAUBaQELY29uc3RydWN0b3IAAwkBCWlzRGVmaW5lZAEJAKAIAQUQaXNDb25zdHJ1Y3RlZEtleQkAAgECIkNvbnN0cnVjdG9yIGNhbiBiZSBjYWxsZWQgb25lIHRpbWUEBWFzc2V0CQDDCAcCBldYVGVzdAIAAICAmqbqr+MBAAgHBQR1bml0AAAEB2Fzc2V0SWQJALgIAQUFYXNzZXQJAMwIAgUFYXNzZXQJAMwIAgkBC1N0cmluZ0VudHJ5AgUKYXNzZXRJZEtleQkA2AQBBQdhc3NldElkCQDMCAIJAQxCb29sZWFuRW50cnkCBRBpc0NvbnN0cnVjdGVkS2V5BgkAzAgCCQEMSW50ZWdlckVudHJ5AgUYY3VycmVudFJld2FyZEFtb3VudElkS2V5AAAFA25pbAFpAQxpc3N1ZUxQQXNzZXQBCXJlY2lwaWVudAQFYXNzZXQJAMMIBwIGTFBQb29sAgAAgICapuqv4wEACAcFBHVuaXQAAAQHYXNzZXRJZAkAuAgBBQVhc3NldAkAzAgCBQVhc3NldAkAzAgCCQELU3RyaW5nRW50cnkCBQ1scFBvb2xBc3NldElkCQDYBAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFCXJlY2lwaWVudACAoJSljR0FB2Fzc2V0SWQFA25pbAFpAQxzdGFrZVBvb2xMcHMBBnBvb2xJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgIWc3Rha2VQb29sTHBzRnVuY0NhbGxlZAUGaGVpZ2h0BQNuaWwBaQEPd2l0aGRyYXdQb29sTHBzAQZwb29sSWQJAMwIAgkBDEludGVnZXJFbnRyeQICGXdpdGhkcmF3UG9vbExwc0Z1bmNDYWxsZWQFBmhlaWdodAUDbmlsAWkBEGNsYWltUG9vbFJld2FyZHMBBnBvb2xJZAQVY3VycmVudFJld2FyZEFtb3VudElkCQERQGV4dHJOYXRpdmUoMTA1NSkBBRhjdXJyZW50UmV3YXJkQW1vdW50SWRLZXkEB2Fzc2V0SWQJARFAZXh0ck5hdGl2ZSgxMDU4KQEFCmFzc2V0SWRLZXkEBmFtb3VudAMJAAACBRVjdXJyZW50UmV3YXJkQW1vdW50SWQAAACAyK+gJQMJAAACBRVjdXJyZW50UmV3YXJkQW1vdW50SWQAAQCAkN/ASgMJAAACBRVjdXJyZW50UmV3YXJkQW1vdW50SWQAAgCA5JfQEgMJAAACBRVjdXJyZW50UmV3YXJkQW1vdW50SWQAAwCAvKaxggEAgLi1+lEEGG5ld0N1cnJlbnRSZXdhcmRBbW91bnRJZAMJAAACBRVjdXJyZW50UmV3YXJkQW1vdW50SWQABAAACQBkAgUVY3VycmVudFJld2FyZEFtb3VudElkAAEJAMwIAgkBDEludGVnZXJFbnRyeQIFGGN1cnJlbnRSZXdhcmRBbW91bnRJZEtleQUYbmV3Q3VycmVudFJld2FyZEFtb3VudElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGYW1vdW50CQDZBAEFB2Fzc2V0SWQFA25pbAECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXk83dG2", "height": 2766230, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Ah854Rvi6f23qwmyUuJnuYWA9PmhVbrHZWS1z9KwkZ4b Next: EToW9996YEmZaqjf5RMh4fWxAgcBxk7XSng7pWn7v3zu Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = base58'4TLuEDo8QjPsxUGjfRPyqqvAk4JtnYMXK1ypGo8uKrb2'
4+let a = "is_constructed"
55
6-let b = 10000000000
6+let b = "assetId"
77
8-let c = "__"
8+let c = "lpPoolAssetId"
99
10-let d = 1
10+let d = "reward_amount_id"
1111
12-let e = base58'4TLuEDo8QjPsxUGjfRPyqqvAk4JtnYMXK1ypGo8uKrb2'
13-
14-let f = base58'3N2PGCSexF2nUN9SmgsaLedFix3M67A9reg'
15-
16-let g = base58'3N2iME1bcpy9zdFi2S1rmQDjPvvN5X8t3qW'
17-
18-let h = "total_pool_lp_staked"
19-
20-let i = "total_pool_earned"
21-
22-let j = "pool_current_claim_id"
23-
24-func k (l) = {
25- let m = l
26- if ($isInstanceOf(m, "AttachedPayment"))
27- then {
28- let n = m
29- n
30- }
31- else throw("fail to cast into AttachedPayment")
32- }
33-
34-
35-func o (p) = {
36- let m = p
37- if ($isInstanceOf(m, "Int"))
38- then {
39- let q = m
40- q
41- }
42- else throw("fail to cast into Int")
43- }
44-
45-
46-func r (p) = {
47- let m = p
48- if ($isInstanceOf(m, "String"))
49- then {
50- let s = m
51- s
52- }
53- else throw("fail to cast into String")
54- }
55-
56-
57-func t (u) = if (!(isDefined(getString(u))))
58- then false
12+@Callable(e)
13+func constructor () = if (isDefined(getBoolean(a)))
14+ then throw("Constructor can be called one time")
5915 else {
60- let v = getIntegerValue(j)
61- let w = split(getStringValue(u), c)
62- let x = o(parseInt(w[2]))
63- (v > x)
64- }
65-
66-
67-@Callable(y)
68-func stakeLP () = if ((size(y.payments) != 1))
69- then throw("One Payment expected")
70- else {
71- let z = toBase58String(y.caller.bytes)
72- let A = k(y.payments[0])
73- if (if ((A.assetId != e))
74- then true
75- else (0 >= A.amount))
76- then throw("Wrong asset id or negative amount")
77- else if (t(z))
78- then throw("You have unclaimed rewards on contract, claim them first")
79- else {
80- let B = valueOrElse(getInteger(j), 0)
81- let C = valueOrElse(getInteger(h), 0)
82- let D = valueOrElse(getInteger(i), 0)
83- let E = invoke(Address(f), "stakePoolLps", [d], [A])
84- if ((E == E))
85- then {
86- let F = getString(z)
87- let w = if (isDefined(F))
88- then {
89- let w = split(r(F), c)
90- let G = o(parseInt(w[0]))
91- let H = [toString((G + A.amount)), removeByIndex(w, 0)]
92- makeString(H, c)
93- }
94- else makeString([toString(A.amount), "0", toString(B), toString(D)], c)
95-[StringEntry(z, w), IntegerEntry(j, B), IntegerEntry(i, D), IntegerEntry(h, (C + A.amount))]
96- }
97- else throw("Strict value is not equal to itself.")
98- }
16+ let f = Issue("WXTest", "", 1000000000000000, 8, false, unit, 0)
17+ let g = calculateAssetId(f)
18+[f, StringEntry(b, toBase58String(g)), BooleanEntry(a, true), IntegerEntry(d, 0)]
9919 }
10020
10121
10222
103-@Callable(y)
104-func withdrawLP () = {
105- let z = toBase58String(y.caller.bytes)
106- if (t(z))
107- then throw("You have unclaimed rewards on contract, claim them first")
108- else nil
23+@Callable(e)
24+func issueLPAsset (h) = {
25+ let f = Issue("LPPool", "", 1000000000000000, 8, false, unit, 0)
26+ let g = calculateAssetId(f)
27+[f, StringEntry(c, toBase58String(g)), ScriptTransfer(Address(fromBase58String(h)), 1000000000000, g)]
10928 }
11029
11130
11231
113-@Callable(y)
114-func claimRewards () = {
115- let z = toBase58String(y.caller.bytes)
116- if (!(t(z)))
117- then throw("Nothing to claim, wait for a while, pool will collect the rewards from WX soon")
118- else {
119- let I = getIntegerValue(j)
120- let J = getIntegerValue(i)
121- let w = split(getStringValue(z), c)
122- let K = o(parseInt(w[0]))
123- let L = o(parseInt(w[1]))
124- let M = o(parseInt(w[2]))
125- let N = o(parseInt(w[3]))
126- let O = (J - N)
127- let P = (O - (L * b))
128- let Q = fraction(P, K, b)
129- let H = makeString([w[0], toString((L + Q)), toString(I), w[3]], c)
130-[StringEntry(z, H), ScriptTransfer(y.caller, Q, a)]
131- }
32+@Callable(e)
33+func stakePoolLps (i) = [IntegerEntry("stakePoolLpsFuncCalled", height)]
34+
35+
36+
37+@Callable(e)
38+func withdrawPoolLps (i) = [IntegerEntry("withdrawPoolLpsFuncCalled", height)]
39+
40+
41+
42+@Callable(e)
43+func claimPoolRewards (i) = {
44+ let j = getIntegerValue(d)
45+ let g = getStringValue(b)
46+ let k = if ((j == 0))
47+ then 10000000000
48+ else if ((j == 1))
49+ then 20000000000
50+ else if ((j == 2))
51+ then 5000000000
52+ else if ((j == 3))
53+ then 35000000000
54+ else 22000000000
55+ let l = if ((j == 4))
56+ then 0
57+ else (j + 1)
58+[IntegerEntry(d, l), ScriptTransfer(e.caller, k, fromBase58String(g))]
13259 }
13360
13461
135-
136-@Callable(y)
137-func claimPoolRewards () = if ((y.caller.bytes != g))
138- then throw("Admin only")
139- else {
140- let R = getIntegerValue(h)
141- let J = getIntegerValue(i)
142- let I = getIntegerValue(j)
143- let S = assetBalance(this, a)
144- if ((S == S))
145- then {
146- let E = invoke(Address(f), "claimPoolRewards", [d], nil)
147- if ((E == E))
148- then {
149- let T = assetBalance(this, a)
150- let U = (T - S)
151- let V = fraction(U, b, R)
152-[IntegerEntry("CURRENT_WX_ON_CONTRACT", S), IntegerEntry("NEW_WX_ON_CONTRACT", T), IntegerEntry(j, (I + 1)), IntegerEntry(i, (J + V))]
153- }
154- else throw("Strict value is not equal to itself.")
155- }
156- else throw("Strict value is not equal to itself.")
157- }
158-
159-
160-@Verifier(W)
161-func X () = sigVerify(W.bodyBytes, W.proofs[0], W.senderPublicKey)
62+@Verifier(m)
63+func n () = sigVerify(m.bodyBytes, m.proofs[0], m.senderPublicKey)
16264

github/deemru/w8io/169f3d6 
33.81 ms