tx · AV6LNnpCmZaQpp7FVdiCHf8cAJ2d9L7B2eDKPg6sF5Rc

3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh:  -0.00900000 Waves

2022.12.02 00:59 [2341836] smart account 3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh > SELF 0.00000000 Waves

{ "type": 13, "id": "AV6LNnpCmZaQpp7FVdiCHf8cAJ2d9L7B2eDKPg6sF5Rc", "fee": 900000, "feeAssetId": null, "timestamp": 1669932073964, "version": 2, "chainId": 84, "sender": "3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh", "senderPublicKey": "HscGVyJG5M3NMHWKfQbucCBsFLGPi8VmTxTAmcBbaWTa", "proofs": [ "5TqM29awiQCoTqXwjvkpjN1kF8V57LUZ5orccwPuuaFj3RY1iuqgBMBGSVRVzd8mLHyrk6HGqHEQNjYB5qsqfVNn" ], "script": "base64:BgITCAISAwoBCBIDCgEIEgASAwoBARQABlNjYWxlNgDAhD0ABlNjYWxlOACAwtcvAAdTY2FsZTE2CQBoAgUGU2NhbGU4BQZTY2FsZTgACnZhbGlkYXRvcnMJAMwIAgIjM05BbXFHanhSQlJQb1JIWlVVcXZoaU5TNmF4bkdwaW5MSEMFA25pbAATcG9maXRBY2NvdW50QWRkcmVzcwkBB0FkZHJlc3MBARoBVOTLNQrXvZ0T4sLuN4IVu970uKp+JCCZjwAHYXNzZXRJZAIsSEhtYUZRcFVvYndLeHpqejRFQ2FCUHRvRjY5a3VqS3dVMmNvemFVelRzZ3YAC3B1enpsZVBvb2xzCQDMCAICIzNONlN0SmRnbVRmQVJzUk5uOVh0NXJEWUVzM3ByNEtHeTF2BQNuaWwBCmdldEJhbGFuY2UBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIEVW5pdAQBeAUHJG1hdGNoMAgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkBBXZhbHVlAQUHYXNzZXRJZAEJdHJ5R2V0SW50AgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAmggCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAABCXRyeUdldFN0cgIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYgUHJG1hdGNoMAUBYgIAAQ5nZXRBc3NldFN0cmluZwEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWICBVdBVkVTARtnZXRQdXp6bGVQb29sU3VwcGxpZWRBbW91bnQBBnBvb2xJZAQHYmFsYW5jZQkA8AcCCQEHQWRkcmVzcwEJANkEAQUGcG9vbElkCQDZBAEFB2Fzc2V0SWQFB2JhbGFuY2UBFmdldFRvdGFsU3VwcGxpZWRBbW91bnQABAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sAwkAAAIFC2N1cnJlbnRQb29sAgAJAAIBCQCsAgICGUNhbm5vdCBmaW5kIHBvb2wgd2l0aCBpZCAFC2N1cnJlbnRQb29sCQEbZ2V0UHV6emxlUG9vbFN1cHBsaWVkQW1vdW50AQULY3VycmVudFBvb2wBFndpdGhkcmF3RnJvbVB1enpsZVBvb2wCBnBvb2xJZAZhbW91bnQEC3Bvb2xBZGRyZXNzCQEHQWRkcmVzcwEJANkEAQUGcG9vbElkBAp3aXRoZHJhd1R4AwkAZgIFBmFtb3VudAAACQD8BwQFC3Bvb2xBZGRyZXNzAgh3aXRoZHJhdwkAzAgCBQdhc3NldElkCQDMCAIFBmFtb3VudAUDbmlsBQNuaWwCAAMJAAACBQp3aXRoZHJhd1R4BQp3aXRoZHJhd1R4BQp3aXRoZHJhd1R4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQ5jYWxjdWxhdGVTUmF0ZQAEDmxhc3RDaGVja1NSYXRlCQEJdHJ5R2V0SW50AgUEdGhpcwIVZ2xvYmFsX2xhc3RDaGVja1NSYXRlBAxzdGFrZWRBbW91bnQJAQl0cnlHZXRJbnQCBQR0aGlzAg1nbG9iYWxfc3Rha2VkBBFsYXN0Q2hlY2tTQW1vdW51dAkAawMFDHN0YWtlZEFtb3VudAUObGFzdENoZWNrU1JhdGUFBlNjYWxlOAQTdG90YWxTdXBwbGllZEFtb3VudAkBFmdldFRvdGFsU3VwcGxpZWRBbW91bnQAAwkAAAIFEWxhc3RDaGVja1NBbW91bnV0AAAFBlNjYWxlOAQDZmVlCQBrAwkAZQIFE3RvdGFsU3VwcGxpZWRBbW91bnQFEWxhc3RDaGVja1NBbW91bnV0AMCrpi0FBlNjYWxlOAQIZmVlQW1vbnQDCQBmAgUDZmVlAAAFA2ZlZQAABAVzUmF0ZQkAawMFDmxhc3RDaGVja1NSYXRlCQBlAgUTdG90YWxTdXBwbGllZEFtb3VudAUDZmVlBRFsYXN0Q2hlY2tTQW1vdW51dAMJAGYCBQZTY2FsZTgFBXNSYXRlBQZTY2FsZTgFBXNSYXRlAQxyZWNhbGNSZXN1bHQBDHN0YWtlZENoYW5nZQQMc3Rha2VkQW1vdW50CQEJdHJ5R2V0SW50AgUEdGhpcwINZ2xvYmFsX3N0YWtlZAQFc1JhdGUJAQ5jYWxjdWxhdGVTUmF0ZQAEBnByb2ZpdAkAZQIJARZnZXRUb3RhbFN1cHBsaWVkQW1vdW50AAkAawMFDHN0YWtlZEFtb3VudAUFc1JhdGUFBlNjYWxlOAQMcHJvZml0QW1vdW50AwkAZgIFBnByb2ZpdAAABQZwcm9maXQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBRNwb2ZpdEFjY291bnRBZGRyZXNzBQxwcm9maXRBbW91bnQJANkEAQUHYXNzZXRJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgINZ2xvYmFsX3N0YWtlZAkAZAIFDHN0YWtlZEFtb3VudAUMc3Rha2VkQ2hhbmdlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhVnbG9iYWxfbGFzdENoZWNrU1JhdGUFBXNSYXRlBQNuaWwBDHN1cHBseVJlc3VsdAEGcG9vbElkAwkAAAIJAM8IAgULcHV6emxlUG9vbHMFBnBvb2xJZAUEdW5pdAkAAgEJAKwCAgIPVW5rbm93biBwb29sSWQgBQZwb29sSWQECmFzc2V0Qnl0ZXMJANkEAQUHYXNzZXRJZAQHYmFsYW5jZQkBCmdldEJhbGFuY2UBBQphc3NldEJ5dGVzBANpbnYJAPwHBAkBB0FkZHJlc3MBCQDZBAEFBnBvb2xJZAIGc3VwcGx5BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCmFzc2V0Qnl0ZXMFB2JhbGFuY2UFA25pbAMJAAACBQNpbnYFA2ludgkAzAgCCQELU3RyaW5nRW50cnkCAgtjdXJyZW50UG9vbAUGcG9vbElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BDndpdGhkcmF3UmVzdWx0AAQLY3VycmVudFBvb2wJAQl0cnlHZXRTdHICBQR0aGlzAgtjdXJyZW50UG9vbAMJAAACBQtjdXJyZW50UG9vbAIACQACAQkArAICAhlDYW5ub3QgZmluZCBwb29sIHdpdGggaWQgBQtjdXJyZW50UG9vbAQGYW1vdW50CQEbZ2V0UHV6emxlUG9vbFN1cHBsaWVkQW1vdW50AQULY3VycmVudFBvb2wEAnR4CQEWd2l0aGRyYXdGcm9tUHV6emxlUG9vbAIFC2N1cnJlbnRQb29sBQZhbW91bnQDCQAAAgUCdHgFAnR4BQJ0eAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgELc3Rha2VSZXN1bHQCBHVzZXIGYW1vdW50BAdzQW1vdW50CQBrAwUGYW1vdW50BQZTY2FsZTgJAQ5jYWxjdWxhdGVTUmF0ZQAJAM4IAgkBDHJlY2FsY1Jlc3VsdAEFB3NBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgIHX3N0YWtlZAkAZAIJAQl0cnlHZXRJbnQCBQR0aGlzCQCsAgIFBHVzZXICB19zdGFrZWQFB3NBbW91bnQFA25pbAENdW5zdGFrZVJlc3VsdAIEdXNlcgZhbW91bnQEB3NBbW91bnQJAGsDBQZhbW91bnQFBlNjYWxlOAkBDmNhbGN1bGF0ZVNSYXRlAAQKdXNlclN0YWtlZAkBCXRyeUdldEludAIFBHRoaXMJAKwCAgUEdXNlcgIHX3N0YWtlZAQNdW5zdGFrZUFtb3VudAMJAGYCBQdzQW1vdW50BQp1c2VyU3Rha2VkBQp1c2VyU3Rha2VkBQdzQW1vdW50CQDOCAIJAQxyZWNhbGNSZXN1bHQBCQEBLQEFDXVuc3Rha2VBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgIHX3N0YWtlZAkAZQIFCnVzZXJTdGFrZWQFDXVuc3Rha2VBbW91bnQFA25pbAQBaQEEaW5pdAEGcG9vbElkBAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sAwkAAAIJAM8IAgUKdmFsaWRhdG9ycwkApQgBCAUBaQZjYWxsZXIFBHVuaXQJAAIBAg1BY2Nlc3MgZGVuaWVkAwkAAAIFC2N1cnJlbnRQb29sAgAJAMwIAgkBC1N0cmluZ0VudHJ5AgILY3VycmVudFBvb2wFBnBvb2xJZAUDbmlsBQNuaWwBaQEJcmViYWxhbmNlAQZwb29sSWQEC2N1cnJlbnRQb29sCQEJdHJ5R2V0U3RyAgUEdGhpcwILY3VycmVudFBvb2wDCQAAAgkAzwgCBQp2YWxpZGF0b3JzCQClCAEIBQFpBmNhbGxlcgUEdW5pdAkAAgECDUFjY2VzcyBkZW5pZWQDCQAAAgULY3VycmVudFBvb2wFBnBvb2xJZAkAAgEJAKwCAgITQWxyZWFkeSBzdXBwbGllZCB0bwULY3VycmVudFBvb2wECndpdGhkcmF3VHgJAQ53aXRoZHJhd1Jlc3VsdAADCQAAAgUKd2l0aGRyYXdUeAUKd2l0aGRyYXdUeAkAzggCCQEMc3VwcGx5UmVzdWx0AQUGcG9vbElkCQEMcmVjYWxjUmVzdWx0AQAACQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBXN0YWtlAAQEdXNlcgkApQgBCAUBaQZjYWxsZXIEBmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEC2N1cnJlbnRQb29sCQEJdHJ5R2V0U3RyAgUEdGhpcwILY3VycmVudFBvb2wDAwkAZwIAAAUGYW1vdW50BgkBAiE9AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQDZBAEFB2Fzc2V0SWQJAAIBAhZpbnZhbGlkIHRva2VuIGF0dGFjaGVkAwkAAAIFC2N1cnJlbnRQb29sAgAJAAIBAhRQb29sIG5vdCBpbml0aWFsaXplZAkAzggCCQELc3Rha2VSZXN1bHQCBQR1c2VyBQZhbW91bnQJAQxzdXBwbHlSZXN1bHQBBQtjdXJyZW50UG9vbAFpAQd1bnN0YWtlAQZhbW91bnQEBHVzZXIJAKUIAQgFAWkGY2FsbGVyBAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sBAJ0eAkBFndpdGhkcmF3RnJvbVB1enpsZVBvb2wCBQtjdXJyZW50UG9vbAUGYW1vdW50AwkAAAIFAnR4BQJ0eAkAzggCCQENdW5zdGFrZVJlc3VsdAIFBHVzZXIFBmFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAkA2QQBBQdhc3NldElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5JLobvw==", "height": 2341836, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ChtSv1AseKpKtu36yP5ZvmQnnUXbfv1EekzVwjGGh36e Next: 2tuBm5WxkwdxSedtLSYaDjwMUe8RiEbZ8S8QgteitUg6 Diff:
OldNewDifferences
99
1010 let d = ["3NAmqGjxRBRPoRHZUUqvhiNS6axnGpinLHC"]
1111
12-let e = "HHmaFQpUobwKxzjz4ECaBPtoF69kujKwU2cozaUzTsgv"
12+let e = Address(base58'3NAmqGjxRBRPoRHZUUqvhiNS6axnGpinLHC')
1313
14-let f = ["3N6StJdgmTfARsRNn9Xt5rDYEs3pr4KGy1v"]
14+let f = "HHmaFQpUobwKxzjz4ECaBPtoF69kujKwU2cozaUzTsgv"
1515
16-func g (e) = {
17- let h = e
18- if ($isInstanceOf(h, "Unit"))
16+let g = ["3N6StJdgmTfARsRNn9Xt5rDYEs3pr4KGy1v"]
17+
18+func h (f) = {
19+ let i = f
20+ if ($isInstanceOf(i, "Unit"))
1921 then {
20- let i = h
22+ let j = i
2123 wavesBalance(this).available
2224 }
23- else assetBalance(this, value(e))
25+ else assetBalance(this, value(f))
2426 }
2527
2628
27-func j (k,l) = {
28- let h = getInteger(k, l)
29- if ($isInstanceOf(h, "Int"))
29+func k (l,m) = {
30+ let i = getInteger(l, m)
31+ if ($isInstanceOf(i, "Int"))
3032 then {
31- let m = h
32- m
33+ let n = i
34+ n
3335 }
3436 else 0
3537 }
3638
3739
38-func n (k,l) = {
39- let h = getString(k, l)
40- if ($isInstanceOf(h, "String"))
40+func o (l,m) = {
41+ let i = getString(l, m)
42+ if ($isInstanceOf(i, "String"))
4143 then {
42- let m = h
43- m
44+ let n = i
45+ n
4446 }
4547 else ""
4648 }
4749
4850
49-func o (e) = {
50- let h = e
51- if ($isInstanceOf(h, "ByteVector"))
51+func p (f) = {
52+ let i = f
53+ if ($isInstanceOf(i, "ByteVector"))
5254 then {
53- let m = h
54- toBase58String(m)
55+ let n = i
56+ toBase58String(n)
5557 }
5658 else "WAVES"
5759 }
5860
5961
60-func p (q) = {
61- let r = assetBalance(Address(fromBase58String(q)), fromBase58String(e))
62- r
62+func q (r) = {
63+ let s = assetBalance(Address(fromBase58String(r)), fromBase58String(f))
64+ s
6365 }
6466
6567
66-func s () = {
67- let t = n(this, "currentPool")
68- if ((t == ""))
69- then throw(("Cannot find pool with id " + t))
70- else p(t)
68+func t () = {
69+ let u = o(this, "currentPool")
70+ if ((u == ""))
71+ then throw(("Cannot find pool with id " + u))
72+ else q(u)
7173 }
7274
7375
74-func u (q,v) = {
75- let w = Address(fromBase58String(q))
76- let x = if ((v > 0))
77- then invoke(w, "withdraw", [e, v], nil)
76+func v (r,w) = {
77+ let x = Address(fromBase58String(r))
78+ let y = if ((w > 0))
79+ then invoke(x, "withdraw", [f, w], nil)
7880 else ""
79- if ((x == x))
80- then x
81+ if ((y == y))
82+ then y
8183 else throw("Strict value is not equal to itself.")
8284 }
8385
8486
85-func y () = {
86- let z = j(this, "global_lastCheckSRate")
87- let A = j(this, "global_staked")
88- let B = fraction(A, z, b)
89- if ((B == 0))
87+func z () = {
88+ let A = k(this, "global_lastCheckSRate")
89+ let B = k(this, "global_staked")
90+ let C = fraction(B, A, b)
91+ let D = t()
92+ if ((C == 0))
9093 then b
9194 else {
92- let C = fraction(z, s(), B)
93- if ((b > C))
95+ let E = fraction((D - C), 95000000, b)
96+ let F = if ((E > 0))
97+ then E
98+ else 0
99+ let G = fraction(A, (D - E), C)
100+ if ((b > G))
94101 then b
95- else C
102+ else G
96103 }
97104 }
98105
99106
100-func D (E) = {
101- let A = j(this, "global_staked")
102- let C = y()
103-[IntegerEntry("global_staked", (A + E)), IntegerEntry("global_lastCheckSRate", C)]
107+func H (I) = {
108+ let B = k(this, "global_staked")
109+ let G = z()
110+ let J = (t() - fraction(B, G, b))
111+ let K = if ((J > 0))
112+ then J
113+ else 0
114+[ScriptTransfer(e, K, fromBase58String(f)), IntegerEntry("global_staked", (B + I)), IntegerEntry("global_lastCheckSRate", G)]
104115 }
105116
106117
107-func F (q) = if ((indexOf(f, q) == unit))
108- then throw(("Unknown poolId " + q))
118+func L (r) = if ((indexOf(g, r) == unit))
119+ then throw(("Unknown poolId " + r))
109120 else {
110- let G = fromBase58String(e)
111- let r = g(G)
112- let H = invoke(Address(fromBase58String(q)), "supply", nil, [AttachedPayment(G, r)])
113- if ((H == H))
114- then [StringEntry("currentPool", q)]
121+ let M = fromBase58String(f)
122+ let s = h(M)
123+ let N = invoke(Address(fromBase58String(r)), "supply", nil, [AttachedPayment(M, s)])
124+ if ((N == N))
125+ then [StringEntry("currentPool", r)]
115126 else throw("Strict value is not equal to itself.")
116127 }
117128
118129
119-func I () = {
120- let t = n(this, "currentPool")
121- if ((t == ""))
122- then throw(("Cannot find pool with id " + t))
130+func O () = {
131+ let u = o(this, "currentPool")
132+ if ((u == ""))
133+ then throw(("Cannot find pool with id " + u))
123134 else {
124- let v = p(t)
125- let J = u(t, v)
126- if ((J == J))
127- then J
135+ let w = q(u)
136+ let P = v(u, w)
137+ if ((P == P))
138+ then P
128139 else throw("Strict value is not equal to itself.")
129140 }
130141 }
131142
132143
133-func K (L,v) = {
134- let M = fraction(v, b, y())
135- (D(M) ++ [IntegerEntry((L + "_staked"), (j(this, (L + "_staked")) + M))])
144+func Q (R,w) = {
145+ let S = fraction(w, b, z())
146+ (H(S) ++ [IntegerEntry((R + "_staked"), (k(this, (R + "_staked")) + S))])
136147 }
137148
138149
139-func N (L,v) = {
140- let M = fraction(v, b, y())
141- let O = j(this, (L + "_staked"))
142- let P = if ((M > O))
143- then O
144- else M
145- (D(-(P)) ++ [IntegerEntry((L + "_staked"), (O - P))])
150+func T (R,w) = {
151+ let S = fraction(w, b, z())
152+ let U = k(this, (R + "_staked"))
153+ let V = if ((S > U))
154+ then U
155+ else S
156+ (H(-(V)) ++ [IntegerEntry((R + "_staked"), (U - V))])
146157 }
147158
148159
149-@Callable(Q)
150-func init (q) = {
151- let t = n(this, "currentPool")
152- if ((indexOf(d, toString(Q.caller)) == unit))
160+@Callable(W)
161+func init (r) = {
162+ let u = o(this, "currentPool")
163+ if ((indexOf(d, toString(W.caller)) == unit))
153164 then throw("Access denied")
154- else if ((t == ""))
155- then [StringEntry("currentPool", q)]
165+ else if ((u == ""))
166+ then [StringEntry("currentPool", r)]
156167 else nil
157168 }
158169
159170
160171
161-@Callable(Q)
162-func rebalance (q) = {
163- let t = n(this, "currentPool")
164- if ((indexOf(d, toString(Q.caller)) == unit))
172+@Callable(W)
173+func rebalance (r) = {
174+ let u = o(this, "currentPool")
175+ if ((indexOf(d, toString(W.caller)) == unit))
165176 then throw("Access denied")
166- else if ((t == q))
167- then throw(("Already supplied to" + t))
177+ else if ((u == r))
178+ then throw(("Already supplied to" + u))
168179 else {
169- let x = I()
170- if ((x == x))
171- then (F(q) ++ D(0))
180+ let y = O()
181+ if ((y == y))
182+ then (L(r) ++ H(0))
172183 else throw("Strict value is not equal to itself.")
173184 }
174185 }
175186
176187
177188
178-@Callable(Q)
189+@Callable(W)
179190 func stake () = {
180- let L = toString(Q.caller)
181- let v = Q.payments[0].amount
182- let t = n(this, "currentPool")
183- if (if ((0 >= v))
191+ let R = toString(W.caller)
192+ let w = W.payments[0].amount
193+ let u = o(this, "currentPool")
194+ if (if ((0 >= w))
184195 then true
185- else (Q.payments[0].assetId != fromBase58String(e)))
196+ else (W.payments[0].assetId != fromBase58String(f)))
186197 then throw("invalid token attached")
187- else if ((t == ""))
198+ else if ((u == ""))
188199 then throw("Pool not initialized")
189- else (K(L, v) ++ F(t))
200+ else (Q(R, w) ++ L(u))
190201 }
191202
192203
193204
194-@Callable(Q)
195-func unstake (v) = {
196- let L = toString(Q.caller)
197- let t = n(this, "currentPool")
198- let J = u(t, v)
199- if ((J == J))
200- then (N(L, v) ++ [ScriptTransfer(Q.caller, v, fromBase58String(e))])
205+@Callable(W)
206+func unstake (w) = {
207+ let R = toString(W.caller)
208+ let u = o(this, "currentPool")
209+ let P = v(u, w)
210+ if ((P == P))
211+ then (T(R, w) ++ [ScriptTransfer(W.caller, w, fromBase58String(f))])
201212 else throw("Strict value is not equal to itself.")
202213 }
203214
204215
205-@Verifier(J)
206-func R () = sigVerify(J.bodyBytes, J.proofs[0], J.senderPublicKey)
216+@Verifier(P)
217+func X () = sigVerify(P.bodyBytes, P.proofs[0], P.senderPublicKey)
207218
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1000000
55
66 let b = 100000000
77
88 let c = (b * b)
99
1010 let d = ["3NAmqGjxRBRPoRHZUUqvhiNS6axnGpinLHC"]
1111
12-let e = "HHmaFQpUobwKxzjz4ECaBPtoF69kujKwU2cozaUzTsgv"
12+let e = Address(base58'3NAmqGjxRBRPoRHZUUqvhiNS6axnGpinLHC')
1313
14-let f = ["3N6StJdgmTfARsRNn9Xt5rDYEs3pr4KGy1v"]
14+let f = "HHmaFQpUobwKxzjz4ECaBPtoF69kujKwU2cozaUzTsgv"
1515
16-func g (e) = {
17- let h = e
18- if ($isInstanceOf(h, "Unit"))
16+let g = ["3N6StJdgmTfARsRNn9Xt5rDYEs3pr4KGy1v"]
17+
18+func h (f) = {
19+ let i = f
20+ if ($isInstanceOf(i, "Unit"))
1921 then {
20- let i = h
22+ let j = i
2123 wavesBalance(this).available
2224 }
23- else assetBalance(this, value(e))
25+ else assetBalance(this, value(f))
2426 }
2527
2628
27-func j (k,l) = {
28- let h = getInteger(k, l)
29- if ($isInstanceOf(h, "Int"))
29+func k (l,m) = {
30+ let i = getInteger(l, m)
31+ if ($isInstanceOf(i, "Int"))
3032 then {
31- let m = h
32- m
33+ let n = i
34+ n
3335 }
3436 else 0
3537 }
3638
3739
38-func n (k,l) = {
39- let h = getString(k, l)
40- if ($isInstanceOf(h, "String"))
40+func o (l,m) = {
41+ let i = getString(l, m)
42+ if ($isInstanceOf(i, "String"))
4143 then {
42- let m = h
43- m
44+ let n = i
45+ n
4446 }
4547 else ""
4648 }
4749
4850
49-func o (e) = {
50- let h = e
51- if ($isInstanceOf(h, "ByteVector"))
51+func p (f) = {
52+ let i = f
53+ if ($isInstanceOf(i, "ByteVector"))
5254 then {
53- let m = h
54- toBase58String(m)
55+ let n = i
56+ toBase58String(n)
5557 }
5658 else "WAVES"
5759 }
5860
5961
60-func p (q) = {
61- let r = assetBalance(Address(fromBase58String(q)), fromBase58String(e))
62- r
62+func q (r) = {
63+ let s = assetBalance(Address(fromBase58String(r)), fromBase58String(f))
64+ s
6365 }
6466
6567
66-func s () = {
67- let t = n(this, "currentPool")
68- if ((t == ""))
69- then throw(("Cannot find pool with id " + t))
70- else p(t)
68+func t () = {
69+ let u = o(this, "currentPool")
70+ if ((u == ""))
71+ then throw(("Cannot find pool with id " + u))
72+ else q(u)
7173 }
7274
7375
74-func u (q,v) = {
75- let w = Address(fromBase58String(q))
76- let x = if ((v > 0))
77- then invoke(w, "withdraw", [e, v], nil)
76+func v (r,w) = {
77+ let x = Address(fromBase58String(r))
78+ let y = if ((w > 0))
79+ then invoke(x, "withdraw", [f, w], nil)
7880 else ""
79- if ((x == x))
80- then x
81+ if ((y == y))
82+ then y
8183 else throw("Strict value is not equal to itself.")
8284 }
8385
8486
85-func y () = {
86- let z = j(this, "global_lastCheckSRate")
87- let A = j(this, "global_staked")
88- let B = fraction(A, z, b)
89- if ((B == 0))
87+func z () = {
88+ let A = k(this, "global_lastCheckSRate")
89+ let B = k(this, "global_staked")
90+ let C = fraction(B, A, b)
91+ let D = t()
92+ if ((C == 0))
9093 then b
9194 else {
92- let C = fraction(z, s(), B)
93- if ((b > C))
95+ let E = fraction((D - C), 95000000, b)
96+ let F = if ((E > 0))
97+ then E
98+ else 0
99+ let G = fraction(A, (D - E), C)
100+ if ((b > G))
94101 then b
95- else C
102+ else G
96103 }
97104 }
98105
99106
100-func D (E) = {
101- let A = j(this, "global_staked")
102- let C = y()
103-[IntegerEntry("global_staked", (A + E)), IntegerEntry("global_lastCheckSRate", C)]
107+func H (I) = {
108+ let B = k(this, "global_staked")
109+ let G = z()
110+ let J = (t() - fraction(B, G, b))
111+ let K = if ((J > 0))
112+ then J
113+ else 0
114+[ScriptTransfer(e, K, fromBase58String(f)), IntegerEntry("global_staked", (B + I)), IntegerEntry("global_lastCheckSRate", G)]
104115 }
105116
106117
107-func F (q) = if ((indexOf(f, q) == unit))
108- then throw(("Unknown poolId " + q))
118+func L (r) = if ((indexOf(g, r) == unit))
119+ then throw(("Unknown poolId " + r))
109120 else {
110- let G = fromBase58String(e)
111- let r = g(G)
112- let H = invoke(Address(fromBase58String(q)), "supply", nil, [AttachedPayment(G, r)])
113- if ((H == H))
114- then [StringEntry("currentPool", q)]
121+ let M = fromBase58String(f)
122+ let s = h(M)
123+ let N = invoke(Address(fromBase58String(r)), "supply", nil, [AttachedPayment(M, s)])
124+ if ((N == N))
125+ then [StringEntry("currentPool", r)]
115126 else throw("Strict value is not equal to itself.")
116127 }
117128
118129
119-func I () = {
120- let t = n(this, "currentPool")
121- if ((t == ""))
122- then throw(("Cannot find pool with id " + t))
130+func O () = {
131+ let u = o(this, "currentPool")
132+ if ((u == ""))
133+ then throw(("Cannot find pool with id " + u))
123134 else {
124- let v = p(t)
125- let J = u(t, v)
126- if ((J == J))
127- then J
135+ let w = q(u)
136+ let P = v(u, w)
137+ if ((P == P))
138+ then P
128139 else throw("Strict value is not equal to itself.")
129140 }
130141 }
131142
132143
133-func K (L,v) = {
134- let M = fraction(v, b, y())
135- (D(M) ++ [IntegerEntry((L + "_staked"), (j(this, (L + "_staked")) + M))])
144+func Q (R,w) = {
145+ let S = fraction(w, b, z())
146+ (H(S) ++ [IntegerEntry((R + "_staked"), (k(this, (R + "_staked")) + S))])
136147 }
137148
138149
139-func N (L,v) = {
140- let M = fraction(v, b, y())
141- let O = j(this, (L + "_staked"))
142- let P = if ((M > O))
143- then O
144- else M
145- (D(-(P)) ++ [IntegerEntry((L + "_staked"), (O - P))])
150+func T (R,w) = {
151+ let S = fraction(w, b, z())
152+ let U = k(this, (R + "_staked"))
153+ let V = if ((S > U))
154+ then U
155+ else S
156+ (H(-(V)) ++ [IntegerEntry((R + "_staked"), (U - V))])
146157 }
147158
148159
149-@Callable(Q)
150-func init (q) = {
151- let t = n(this, "currentPool")
152- if ((indexOf(d, toString(Q.caller)) == unit))
160+@Callable(W)
161+func init (r) = {
162+ let u = o(this, "currentPool")
163+ if ((indexOf(d, toString(W.caller)) == unit))
153164 then throw("Access denied")
154- else if ((t == ""))
155- then [StringEntry("currentPool", q)]
165+ else if ((u == ""))
166+ then [StringEntry("currentPool", r)]
156167 else nil
157168 }
158169
159170
160171
161-@Callable(Q)
162-func rebalance (q) = {
163- let t = n(this, "currentPool")
164- if ((indexOf(d, toString(Q.caller)) == unit))
172+@Callable(W)
173+func rebalance (r) = {
174+ let u = o(this, "currentPool")
175+ if ((indexOf(d, toString(W.caller)) == unit))
165176 then throw("Access denied")
166- else if ((t == q))
167- then throw(("Already supplied to" + t))
177+ else if ((u == r))
178+ then throw(("Already supplied to" + u))
168179 else {
169- let x = I()
170- if ((x == x))
171- then (F(q) ++ D(0))
180+ let y = O()
181+ if ((y == y))
182+ then (L(r) ++ H(0))
172183 else throw("Strict value is not equal to itself.")
173184 }
174185 }
175186
176187
177188
178-@Callable(Q)
189+@Callable(W)
179190 func stake () = {
180- let L = toString(Q.caller)
181- let v = Q.payments[0].amount
182- let t = n(this, "currentPool")
183- if (if ((0 >= v))
191+ let R = toString(W.caller)
192+ let w = W.payments[0].amount
193+ let u = o(this, "currentPool")
194+ if (if ((0 >= w))
184195 then true
185- else (Q.payments[0].assetId != fromBase58String(e)))
196+ else (W.payments[0].assetId != fromBase58String(f)))
186197 then throw("invalid token attached")
187- else if ((t == ""))
198+ else if ((u == ""))
188199 then throw("Pool not initialized")
189- else (K(L, v) ++ F(t))
200+ else (Q(R, w) ++ L(u))
190201 }
191202
192203
193204
194-@Callable(Q)
195-func unstake (v) = {
196- let L = toString(Q.caller)
197- let t = n(this, "currentPool")
198- let J = u(t, v)
199- if ((J == J))
200- then (N(L, v) ++ [ScriptTransfer(Q.caller, v, fromBase58String(e))])
205+@Callable(W)
206+func unstake (w) = {
207+ let R = toString(W.caller)
208+ let u = o(this, "currentPool")
209+ let P = v(u, w)
210+ if ((P == P))
211+ then (T(R, w) ++ [ScriptTransfer(W.caller, w, fromBase58String(f))])
201212 else throw("Strict value is not equal to itself.")
202213 }
203214
204215
205-@Verifier(J)
206-func R () = sigVerify(J.bodyBytes, J.proofs[0], J.senderPublicKey)
216+@Verifier(P)
217+func X () = sigVerify(P.bodyBytes, P.proofs[0], P.senderPublicKey)
207218

github/deemru/w8io/c3f4982 
60.86 ms