tx · GQUPP2Pu1H1yxzXsa123npXeYvUbjTjNhzSFUA2wkq2U

3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh:  -0.00900000 Waves

2022.12.01 18:45 [2341477] smart account 3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh > SELF 0.00000000 Waves

{ "type": 13, "id": "GQUPP2Pu1H1yxzXsa123npXeYvUbjTjNhzSFUA2wkq2U", "fee": 900000, "feeAssetId": null, "timestamp": 1669909634334, "version": 2, "chainId": 84, "sender": "3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh", "senderPublicKey": "HscGVyJG5M3NMHWKfQbucCBsFLGPi8VmTxTAmcBbaWTa", "proofs": [ "2beUQM8ajPaG7P6385cjBtdc4krw1QRSgrqfWPnVqSXQnXQKGwkFnTcSH7d3CZCpEeoBTR93aiNyat4JLMNY3U77" ], "script": "base64:BgITCAISAwoBCBIDCgEIEgASAwoBARMABlNjYWxlNgDAhD0ABlNjYWxlOACAwtcvAAdTY2FsZTE2CQBoAgUGU2NhbGU4BQZTY2FsZTgACnZhbGlkYXRvcnMJAMwIAgIjM05BbXFHanhSQlJQb1JIWlVVcXZoaU5TNmF4bkdwaW5MSEMFA25pbAAHYXNzZXRJZAIsSEhtYUZRcFVvYndLeHpqejRFQ2FCUHRvRjY5a3VqS3dVMmNvemFVelRzZ3YAC3B1enpsZVBvb2xzCQDMCAICIzNONlN0SmRnbVRmQVJzUk5uOVh0NXJEWUVzM3ByNEtHeTF2BQNuaWwBCmdldEJhbGFuY2UBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIEVW5pdAQBeAUHJG1hdGNoMAgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkBBXZhbHVlAQUHYXNzZXRJZAEJdHJ5R2V0SW50AgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAmggCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAABCXRyeUdldFN0cgIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYgUHJG1hdGNoMAUBYgIAAQ5nZXRBc3NldFN0cmluZwEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWICBVdBVkVTARtnZXRQdXp6bGVQb29sU3VwcGxpZWRBbW91bnQBBnBvb2xJZAQHYmFsYW5jZQkA8AcCCQEHQWRkcmVzcwEJANkEAQUGcG9vbElkCQDZBAEFB2Fzc2V0SWQFB2JhbGFuY2UBFmdldFRvdGFsU3VwcGxpZWRBbW91bnQABAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sAwkAAAIFC2N1cnJlbnRQb29sAgAJAAIBCQCsAgICGUNhbm5vdCBmaW5kIHBvb2wgd2l0aCBpZCAFC2N1cnJlbnRQb29sCQEbZ2V0UHV6emxlUG9vbFN1cHBsaWVkQW1vdW50AQULY3VycmVudFBvb2wBFndpdGhkcmF3RnJvbVB1enpsZVBvb2wCBnBvb2xJZAZhbW91bnQEC3Bvb2xBZGRyZXNzCQEHQWRkcmVzcwEJANkEAQUGcG9vbElkBAp3aXRoZHJhd1R4AwkAZgIFBmFtb3VudAAACQD8BwQFC3Bvb2xBZGRyZXNzAgh3aXRoZHJhdwkAzAgCBQdhc3NldElkCQDMCAIFBmFtb3VudAUDbmlsBQNuaWwCAAMJAAACBQp3aXRoZHJhd1R4BQp3aXRoZHJhd1R4BQp3aXRoZHJhd1R4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQ5jYWxjdWxhdGVTUmF0ZQAEDmxhc3RDaGVja1NSYXRlCQEJdHJ5R2V0SW50AgUEdGhpcwIVZ2xvYmFsX2xhc3RDaGVja1NSYXRlBAxzdGFrZWRBbW91bnQJAQl0cnlHZXRJbnQCBQR0aGlzAg1nbG9iYWxfc3Rha2VkBA9sYXN0Q2hlY2tIZWlnaHQJAQl0cnlHZXRJbnQCBQR0aGlzAhtnbG9iYWxfbGFzdENoZWNrU1JhdGVIZWlnaHQEBmJsb2NrcwkAZQIFBmhlaWdodAUPbGFzdENoZWNrSGVpZ2h0BA9zdGFraW5nRW1pc3Npb24JAGUCCQEWZ2V0VG90YWxTdXBwbGllZEFtb3VudAAJAGsDBQxzdGFrZWRBbW91bnQFDmxhc3RDaGVja1NSYXRlBQZTY2FsZTgDCQAAAgUMc3Rha2VkQW1vdW50AAAFBlNjYWxlOAQFc1JhdGUJAGQCBQ5sYXN0Q2hlY2tTUmF0ZQkAawMJAGgCBQZibG9ja3MFBlNjYWxlOAUPc3Rha2luZ0VtaXNzaW9uBQxzdGFrZWRBbW91bnQDCQBmAgUGU2NhbGU4BQVzUmF0ZQUGU2NhbGU4BQVzUmF0ZQEMcmVjYWxjUmVzdWx0AQxzdGFrZWRDaGFuZ2UEDHN0YWtlZEFtb3VudAkBCXRyeUdldEludAIFBHRoaXMCDWdsb2JhbF9zdGFrZWQEBXNSYXRlCQEOY2FsY3VsYXRlU1JhdGUACQDMCAIJAQxJbnRlZ2VyRW50cnkCAg1nbG9iYWxfc3Rha2VkCQBkAgUMc3Rha2VkQW1vdW50BQxzdGFrZWRDaGFuZ2UJAMwIAgkBDEludGVnZXJFbnRyeQICFWdsb2JhbF9sYXN0Q2hlY2tTUmF0ZQUFc1JhdGUJAMwIAgkBDEludGVnZXJFbnRyeQICG2dsb2JhbF9sYXN0Q2hlY2tTUmF0ZUhlaWdodAUGaGVpZ2h0BQNuaWwBDHN1cHBseVJlc3VsdAEGcG9vbElkAwkAAAIJAM8IAgULcHV6emxlUG9vbHMFBnBvb2xJZAUEdW5pdAkAAgEJAKwCAgIPVW5rbm93biBwb29sSWQgBQZwb29sSWQECmFzc2V0Qnl0ZXMJANkEAQUHYXNzZXRJZAQHYmFsYW5jZQkBCmdldEJhbGFuY2UBBQphc3NldEJ5dGVzBANpbnYJAPwHBAkBB0FkZHJlc3MBCQDZBAEFBnBvb2xJZAIGc3VwcGx5BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCmFzc2V0Qnl0ZXMFB2JhbGFuY2UFA25pbAMJAAACBQNpbnYFA2ludgkAzAgCCQELU3RyaW5nRW50cnkCAgtjdXJyZW50UG9vbAUGcG9vbElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BDndpdGhkcmF3UmVzdWx0AAQLY3VycmVudFBvb2wJAQl0cnlHZXRTdHICBQR0aGlzAgtjdXJyZW50UG9vbAMJAAACBQtjdXJyZW50UG9vbAIACQACAQkArAICAhlDYW5ub3QgZmluZCBwb29sIHdpdGggaWQgBQtjdXJyZW50UG9vbAQGYW1vdW50CQEbZ2V0UHV6emxlUG9vbFN1cHBsaWVkQW1vdW50AQULY3VycmVudFBvb2wEAnR4CQEWd2l0aGRyYXdGcm9tUHV6emxlUG9vbAIFC2N1cnJlbnRQb29sBQZhbW91bnQDCQAAAgUCdHgFAnR4BQJ0eAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgELc3Rha2VSZXN1bHQCBHVzZXIGYW1vdW50BAdzQW1vdW50CQBrAwUGYW1vdW50BQZTY2FsZTgJAQ5jYWxjdWxhdGVTUmF0ZQAJAM4IAgkBDHJlY2FsY1Jlc3VsdAEFB3NBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgIHX3N0YWtlZAkAZAIJAQl0cnlHZXRJbnQCBQR0aGlzCQCsAgIFBHVzZXICB19zdGFrZWQFB3NBbW91bnQFA25pbAENdW5zdGFrZVJlc3VsdAIEdXNlcgZhbW91bnQEB3NBbW91bnQJAGsDBQZhbW91bnQFBlNjYWxlOAkBDmNhbGN1bGF0ZVNSYXRlAAQKdXNlclN0YWtlZAkBCXRyeUdldEludAIFBHRoaXMJAKwCAgUEdXNlcgIHX3N0YWtlZAQNdW5zdGFrZUFtb3VudAMJAGYCBQdzQW1vdW50BQp1c2VyU3Rha2VkBQp1c2VyU3Rha2VkBQdzQW1vdW50CQDOCAIJAQxyZWNhbGNSZXN1bHQBCQEBLQEFB3NBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgIHX3N0YWtlZAkAZQIFCnVzZXJTdGFrZWQFDXVuc3Rha2VBbW91bnQFA25pbAQBaQEEaW5pdAEGcG9vbElkBAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sAwkAAAIJAM8IAgUKdmFsaWRhdG9ycwkApQgBCAUBaQZjYWxsZXIFBHVuaXQJAAIBAg1BY2Nlc3MgZGVuaWVkAwkAAAIFC2N1cnJlbnRQb29sAgAJAMwIAgkBC1N0cmluZ0VudHJ5AgILY3VycmVudFBvb2wFBnBvb2xJZAUDbmlsBQNuaWwBaQEJcmViYWxhbmNlAQZwb29sSWQEC2N1cnJlbnRQb29sCQEJdHJ5R2V0U3RyAgUEdGhpcwILY3VycmVudFBvb2wDCQAAAgkAzwgCBQp2YWxpZGF0b3JzCQClCAEIBQFpBmNhbGxlcgUEdW5pdAkAAgECDUFjY2VzcyBkZW5pZWQDCQAAAgULY3VycmVudFBvb2wFBnBvb2xJZAkAAgEJAKwCAgITQWxyZWFkeSBzdXBwbGllZCB0bwULY3VycmVudFBvb2wECndpdGhkcmF3VHgJAQ53aXRoZHJhd1Jlc3VsdAADCQAAAgUKd2l0aGRyYXdUeAUKd2l0aGRyYXdUeAkAzggCCQEMc3VwcGx5UmVzdWx0AQUGcG9vbElkCQEMcmVjYWxjUmVzdWx0AQAACQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBXN0YWtlAAQEdXNlcgkApQgBCAUBaQZjYWxsZXIEBmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEC2N1cnJlbnRQb29sCQEJdHJ5R2V0U3RyAgUEdGhpcwILY3VycmVudFBvb2wDAwkAZwIAAAUGYW1vdW50BgkBAiE9AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQDZBAEFB2Fzc2V0SWQJAAIBAhZpbnZhbGlkIHRva2VuIGF0dGFjaGVkAwkAAAIFC2N1cnJlbnRQb29sAgAJAAIBAhRQb29sIG5vdCBpbml0aWFsaXplZAkAzggCCQELc3Rha2VSZXN1bHQCBQR1c2VyBQZhbW91bnQJAQxzdXBwbHlSZXN1bHQBBQtjdXJyZW50UG9vbAFpAQd1bnN0YWtlAQZhbW91bnQEBHVzZXIJAKUIAQgFAWkGY2FsbGVyBAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sBAJ0eAkBFndpdGhkcmF3RnJvbVB1enpsZVBvb2wCBQtjdXJyZW50UG9vbAUGYW1vdW50AwkAAAIFAnR4BQJ0eAkAzggCCQENdW5zdGFrZVJlc3VsdAIFBHVzZXIFBmFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAkA2QQBBQdhc3NldElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5U6Ufrw==", "height": 2341477, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9owH2PA3p7PBCapTvqHBTfMXtKhNNgqCNMCNWu4azLnS Next: 9hoKb2GNrBgeAptCsQcjHqGunmQBMU7f7rDEvHLpXkjy 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
1212 let e = "HHmaFQpUobwKxzjz4ECaBPtoF69kujKwU2cozaUzTsgv"
1313
1414 let f = ["3N6StJdgmTfARsRNn9Xt5rDYEs3pr4KGy1v"]
1515
1616 func g (e) = {
1717 let h = e
1818 if ($isInstanceOf(h, "Unit"))
1919 then {
2020 let i = h
2121 wavesBalance(this).available
2222 }
2323 else assetBalance(this, value(e))
2424 }
2525
2626
2727 func j (k,l) = {
2828 let h = getInteger(k, l)
2929 if ($isInstanceOf(h, "Int"))
3030 then {
3131 let m = h
3232 m
3333 }
3434 else 0
3535 }
3636
3737
3838 func n (k,l) = {
3939 let h = getString(k, l)
4040 if ($isInstanceOf(h, "String"))
4141 then {
4242 let m = h
4343 m
4444 }
4545 else ""
4646 }
4747
4848
4949 func o (e) = {
5050 let h = e
5151 if ($isInstanceOf(h, "ByteVector"))
5252 then {
5353 let m = h
5454 toBase58String(m)
5555 }
5656 else "WAVES"
5757 }
5858
5959
6060 func p (q) = {
6161 let r = assetBalance(Address(fromBase58String(q)), fromBase58String(e))
6262 r
6363 }
6464
6565
6666 func s () = {
6767 let t = n(this, "currentPool")
6868 if ((t == ""))
6969 then throw(("Cannot find pool with id " + t))
7070 else p(t)
7171 }
7272
7373
7474 func u (q,v) = {
7575 let w = Address(fromBase58String(q))
7676 let x = if ((v > 0))
7777 then invoke(w, "withdraw", [e, v], nil)
7878 else ""
7979 if ((x == x))
8080 then x
8181 else throw("Strict value is not equal to itself.")
8282 }
8383
8484
8585 func y () = {
8686 let z = j(this, "global_lastCheckSRate")
8787 let A = j(this, "global_staked")
8888 let B = j(this, "global_lastCheckSRateHeight")
8989 let C = (height - B)
9090 let D = (s() - fraction(A, z, b))
9191 if ((A == 0))
9292 then b
9393 else {
9494 let E = (z + fraction((C * b), D, A))
9595 if ((b > E))
9696 then b
9797 else E
9898 }
9999 }
100100
101101
102102 func F (G) = {
103103 let A = j(this, "global_staked")
104104 let E = y()
105105 [IntegerEntry("global_staked", (A + G)), IntegerEntry("global_lastCheckSRate", E), IntegerEntry("global_lastCheckSRateHeight", height)]
106106 }
107107
108108
109109 func H (q) = if ((indexOf(f, q) == unit))
110110 then throw(("Unknown poolId " + q))
111111 else {
112112 let I = fromBase58String(e)
113113 let r = g(I)
114114 let J = invoke(Address(fromBase58String(q)), "supply", nil, [AttachedPayment(I, r)])
115115 if ((J == J))
116116 then [StringEntry("currentPool", q)]
117117 else throw("Strict value is not equal to itself.")
118118 }
119119
120120
121121 func K () = {
122122 let t = n(this, "currentPool")
123123 if ((t == ""))
124124 then throw(("Cannot find pool with id " + t))
125125 else {
126126 let v = p(t)
127127 let L = u(t, v)
128128 if ((L == L))
129129 then L
130130 else throw("Strict value is not equal to itself.")
131131 }
132132 }
133133
134134
135135 func M (N,v) = {
136136 let O = fraction(v, b, y())
137137 (F(O) ++ [IntegerEntry((N + "_staked"), (j(this, (N + "_staked")) + O))])
138138 }
139139
140140
141141 func P (N,v) = {
142142 let O = fraction(v, b, y())
143143 let Q = j(this, (N + "_staked"))
144144 let R = if ((O > Q))
145145 then Q
146146 else O
147147 (F(-(O)) ++ [IntegerEntry((N + "_staked"), (Q - R))])
148148 }
149149
150150
151151 @Callable(S)
152152 func init (q) = {
153153 let t = n(this, "currentPool")
154154 if ((indexOf(d, toString(S.caller)) == unit))
155155 then throw("Access denied")
156156 else if ((t == ""))
157157 then [StringEntry("currentPool", q)]
158158 else nil
159159 }
160160
161161
162162
163163 @Callable(S)
164164 func rebalance (q) = {
165165 let t = n(this, "currentPool")
166166 if ((indexOf(d, toString(S.caller)) == unit))
167167 then throw("Access denied")
168168 else if ((t == q))
169169 then throw(("Already supplied to" + t))
170170 else {
171171 let x = K()
172172 if ((x == x))
173173 then (H(q) ++ F(0))
174174 else throw("Strict value is not equal to itself.")
175175 }
176176 }
177177
178178
179179
180180 @Callable(S)
181181 func stake () = {
182182 let N = toString(S.caller)
183183 let v = S.payments[0].amount
184184 let t = n(this, "currentPool")
185185 if (if ((0 >= v))
186186 then true
187187 else (S.payments[0].assetId != fromBase58String(e)))
188188 then throw("invalid token attached")
189189 else if ((t == ""))
190190 then throw("Pool not initialized")
191191 else (M(N, v) ++ H(t))
192192 }
193193
194194
195195
196196 @Callable(S)
197197 func unstake (v) = {
198198 let N = toString(S.caller)
199199 let t = n(this, "currentPool")
200200 let L = u(t, v)
201201 if ((L == L))
202202 then (P(N, v) ++ [ScriptTransfer(S.caller, v, fromBase58String(e))])
203203 else throw("Strict value is not equal to itself.")
204204 }
205205
206206
207207 @Verifier(L)
208208 func T () = sigVerify(L.bodyBytes, L.proofs[0], L.senderPublicKey)
209209

github/deemru/w8io/169f3d6 
29.05 ms