tx · 9R6erxBzUKkVB27ngEBAaafaT1pWM9JJMBou7jjts4fs

3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh:  -0.00800000 Waves

2022.11.30 21:07 [2340178] smart account 3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh > SELF 0.00000000 Waves

{ "type": 13, "id": "9R6erxBzUKkVB27ngEBAaafaT1pWM9JJMBou7jjts4fs", "fee": 800000, "feeAssetId": null, "timestamp": 1669831716120, "version": 2, "chainId": 84, "sender": "3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh", "senderPublicKey": "HscGVyJG5M3NMHWKfQbucCBsFLGPi8VmTxTAmcBbaWTa", "proofs": [ "9BUErswC7EpnD4YiQvTWm8hrmfttZT8hxUXTsod2ize1E6QyQFvSsKeMJHhut2qWPPz1RQSGrfdaV6Z1PJikuUy" ], "script": "base64:BgIOCAISAwoBCBIDCgEIEgASAAZTY2FsZTYAwIQ9AAZTY2FsZTgAgMLXLwAHU2NhbGUxNgkAaAIFBlNjYWxlOAUGU2NhbGU4AAp2YWxpZGF0b3JzCQDMCAICIzNOQW1xR2p4UkJSUG9SSFpVVXF2aGlOUzZheG5HcGluTEhDBQNuaWwAB2Fzc2V0SWQCLEhIbWFGUXBVb2J3S3h6ano0RUNhQlB0b0Y2OWt1akt3VTJjb3phVXpUc2d2AAtwdXp6bGVQb29scwkAzAgCAiMzTjZTdEpkZ21UZkFSc1JObjlYdDVyRFlFczNwcjRLR3kxdgUDbmlsAQpnZXRCYWxhbmNlAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACBFVuaXQEAXgFByRtYXRjaDAICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJAQV2YWx1ZQEFB2Fzc2V0SWQBCXRyeUdldEludAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJoIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAAAQl0cnlHZXRTdHICB2FkZHJlc3MDa2V5BAckbWF0Y2gwCQCdCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWIFByRtYXRjaDAFAWICAAEOZ2V0QXNzZXRTdHJpbmcBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA2AQBBQFiAgVXQVZFUwEbZ2V0UHV6emxlUG9vbFN1cHBsaWVkQW1vdW50AQZwb29sSWQEB2JhbGFuY2UJAPAHAgkBB0FkZHJlc3MBCQDZBAEFBnBvb2xJZAkA2QQBBQdhc3NldElkBQdiYWxhbmNlARZnZXRUb3RhbFN1cHBsaWVkQW1vdW50AAQLY3VycmVudFBvb2wJAQl0cnlHZXRTdHICBQR0aGlzAgtjdXJyZW50UG9vbAMJAAACBQtjdXJyZW50UG9vbAIACQACAQkArAICAhlDYW5ub3QgZmluZCBwb29sIHdpdGggaWQgBQtjdXJyZW50UG9vbAkBG2dldFB1enpsZVBvb2xTdXBwbGllZEFtb3VudAEFC2N1cnJlbnRQb29sARZ3aXRoZHJhd0Zyb21QdXp6bGVQb29sAgZwb29sSWQGYW1vdW50BAtwb29sQWRkcmVzcwkBB0FkZHJlc3MBCQDZBAEFBnBvb2xJZAQKd2l0aGRyYXdUeAMJAGYCBQZhbW91bnQAAAkA/AcEBQtwb29sQWRkcmVzcwIId2l0aGRyYXcJAMwIAgUHYXNzZXRJZAkAzAgCBQZhbW91bnQFA25pbAUDbmlsAgADCQAAAgUKd2l0aGRyYXdUeAUKd2l0aGRyYXdUeAUKd2l0aGRyYXdUeAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEOY2FsY3VsYXRlU1JhdGUABA5sYXN0Q2hlY2tTUmF0ZQkBCXRyeUdldEludAIFBHRoaXMCFWdsb2JhbF9sYXN0Q2hlY2tTUmF0ZQQMc3Rha2VkQW1vdW50CQEJdHJ5R2V0SW50AgUEdGhpcwINZ2xvYmFsX3N0YWtlZAQPbGFzdENoZWNrSGVpZ2h0CQEJdHJ5R2V0SW50AgUEdGhpcwIbZ2xvYmFsX2xhc3RDaGVja1NSYXRlSGVpZ2h0BAZibG9ja3MJAGUCBQZoZWlnaHQFD2xhc3RDaGVja0hlaWdodAQPc3Rha2luZ0VtaXNzaW9uCQBlAgkBFmdldFRvdGFsU3VwcGxpZWRBbW91bnQACQBrAwUMc3Rha2VkQW1vdW50BQ5sYXN0Q2hlY2tTUmF0ZQUGU2NhbGU4AwkAAAIFDHN0YWtlZEFtb3VudAAABQZTY2FsZTgEBXNSYXRlCQBkAgUObGFzdENoZWNrU1JhdGUJAGsDCQBoAgUGYmxvY2tzBQZTY2FsZTgFD3N0YWtpbmdFbWlzc2lvbgUMc3Rha2VkQW1vdW50AwkAZgIFBlNjYWxlOAUFc1JhdGUFBlNjYWxlOAUFc1JhdGUBDHJlY2FsY1Jlc3VsdAEMc3Rha2VkQ2hhbmdlBAxzdGFrZWRBbW91bnQJAQl0cnlHZXRJbnQCBQR0aGlzAg1nbG9iYWxfc3Rha2VkBAVzUmF0ZQkBDmNhbGN1bGF0ZVNSYXRlAAkAzAgCCQEMSW50ZWdlckVudHJ5AgINZ2xvYmFsX3N0YWtlZAkAZAIFDHN0YWtlZEFtb3VudAUMc3Rha2VkQ2hhbmdlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhVnbG9iYWxfbGFzdENoZWNrU1JhdGUFBXNSYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhtnbG9iYWxfbGFzdENoZWNrU1JhdGVIZWlnaHQFBmhlaWdodAUDbmlsAQxzdXBwbHlSZXN1bHQBBnBvb2xJZAMJAAACCQDPCAIFC3B1enpsZVBvb2xzBQZwb29sSWQFBHVuaXQJAAIBCQCsAgICD1Vua25vd24gcG9vbElkIAUGcG9vbElkBAphc3NldEJ5dGVzCQDZBAEFB2Fzc2V0SWQEB2JhbGFuY2UJAQpnZXRCYWxhbmNlAQUKYXNzZXRCeXRlcwQDaW52CQD8BwQJAQdBZGRyZXNzAQkA2QQBBQZwb29sSWQCBnN1cHBseQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQphc3NldEJ5dGVzBQdiYWxhbmNlBQNuaWwDCQAAAgUDaW52BQNpbnYJAMwIAgkBC1N0cmluZ0VudHJ5AgILY3VycmVudFBvb2wFBnBvb2xJZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQ53aXRoZHJhd1Jlc3VsdAAEC2N1cnJlbnRQb29sCQEJdHJ5R2V0U3RyAgUEdGhpcwILY3VycmVudFBvb2wDCQAAAgULY3VycmVudFBvb2wCAAkAAgEJAKwCAgIZQ2Fubm90IGZpbmQgcG9vbCB3aXRoIGlkIAULY3VycmVudFBvb2wEBmFtb3VudAkBG2dldFB1enpsZVBvb2xTdXBwbGllZEFtb3VudAEFC2N1cnJlbnRQb29sBAJ0eAkBFndpdGhkcmF3RnJvbVB1enpsZVBvb2wCBQtjdXJyZW50UG9vbAUGYW1vdW50AwkAAAIFAnR4BQJ0eAUCdHgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BC3N0YWtlUmVzdWx0AgR1c2VyBmFtb3VudAQHc0Ftb3VudAkAawMFBmFtb3VudAUGU2NhbGU4CQEOY2FsY3VsYXRlU1JhdGUACQDOCAIJAQxyZWNhbGNSZXN1bHQBBQdzQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXICB19zdGFrZWQJAGQCCQEJdHJ5R2V0SW50AgUEdGhpcwkArAICBQR1c2VyAgdfc3Rha2VkBQdzQW1vdW50BQNuaWwDAWkBBGluaXQBBnBvb2xJZAQLY3VycmVudFBvb2wJAQl0cnlHZXRTdHICBQR0aGlzAgtjdXJyZW50UG9vbAMJAAACCQDPCAIFCnZhbGlkYXRvcnMJAKUIAQgFAWkGY2FsbGVyBQR1bml0CQACAQINQWNjZXNzIGRlbmllZAMJAAACBQtjdXJyZW50UG9vbAIACQDMCAIJAQtTdHJpbmdFbnRyeQICC2N1cnJlbnRQb29sBQZwb29sSWQFA25pbAUDbmlsAWkBCXJlYmFsYW5jZQEGcG9vbElkBAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sAwkAAAIJAM8IAgUKdmFsaWRhdG9ycwkApQgBCAUBaQZjYWxsZXIFBHVuaXQJAAIBAg1BY2Nlc3MgZGVuaWVkAwkAAAIFC2N1cnJlbnRQb29sBQZwb29sSWQJAAIBCQCsAgICE0FscmVhZHkgc3VwcGxpZWQgdG8FC2N1cnJlbnRQb29sBAp3aXRoZHJhd1R4CQEOd2l0aGRyYXdSZXN1bHQAAwkAAAIFCndpdGhkcmF3VHgFCndpdGhkcmF3VHgJAM4IAgkBDHN1cHBseVJlc3VsdAEFBnBvb2xJZAkBDHJlY2FsY1Jlc3VsdAEAAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVzdGFrZQAEBHVzZXIJAKUIAQgFAWkGY2FsbGVyBAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sAwMJAGcCAAAFBmFtb3VudAYJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkA2QQBBQdhc3NldElkCQACAQIWaW52YWxpZCB0b2tlbiBhdHRhY2hlZAMJAAACBQtjdXJyZW50UG9vbAIACQACAQIUUG9vbCBub3QgaW5pdGlhbGl6ZWQJAM4IAgkBC3N0YWtlUmVzdWx0AgUEdXNlcgUGYW1vdW50CQEMc3VwcGx5UmVzdWx0AQULY3VycmVudFBvb2wBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5dzrfdw==", "height": 2340178, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ALtUDyXosYHwARe1G5sRnpKYLVNDfYnUXRkQW9Ky5wH6 Next: 9owH2PA3p7PBCapTvqHBTfMXtKhNNgqCNMCNWu4azLnS 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 @Callable(P)
142142 func init (q) = {
143143 let t = n(this, "currentPool")
144144 if ((indexOf(d, toString(P.caller)) == unit))
145145 then throw("Access denied")
146146 else if ((t == ""))
147147 then [StringEntry("currentPool", q)]
148148 else nil
149149 }
150150
151151
152152
153153 @Callable(P)
154154 func rebalance (q) = {
155155 let t = n(this, "currentPool")
156156 if ((indexOf(d, toString(P.caller)) == unit))
157157 then throw("Access denied")
158158 else if ((t == q))
159159 then throw(("Already supplied to" + t))
160160 else {
161161 let x = K()
162162 if ((x == x))
163163 then (H(q) ++ F(0))
164164 else throw("Strict value is not equal to itself.")
165165 }
166166 }
167167
168168
169169
170170 @Callable(P)
171171 func stake () = {
172172 let N = toString(P.caller)
173173 let v = P.payments[0].amount
174174 let t = n(this, "currentPool")
175175 if (if ((0 >= v))
176176 then true
177177 else (P.payments[0].assetId != fromBase58String(e)))
178178 then throw("invalid token attached")
179179 else if ((t == ""))
180180 then throw("Pool not initialized")
181181 else (M(N, v) ++ H(t))
182182 }
183183
184184
185185 @Verifier(L)
186186 func Q () = sigVerify(L.bodyBytes, L.proofs[0], L.senderPublicKey)
187187

github/deemru/w8io/873ac7e 
30.86 ms