tx · 7eXrXzaVWkdgVs98T6rPjZVJ7r1Y6tj5q6L19mKBurQm

3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh:  -0.00900000 Waves

2022.12.07 01:44 [2349101] smart account 3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh > SELF 0.00000000 Waves

{ "type": 13, "id": "7eXrXzaVWkdgVs98T6rPjZVJ7r1Y6tj5q6L19mKBurQm", "fee": 900000, "feeAssetId": null, "timestamp": 1670366667757, "version": 2, "chainId": 84, "sender": "3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh", "senderPublicKey": "HscGVyJG5M3NMHWKfQbucCBsFLGPi8VmTxTAmcBbaWTa", "proofs": [ "5qtnKWpiRWb4XW1FE1SZckNQQt9WdjeWBpWp2YxsUG78BYGBPT9TnsUvPWzE9hF1joCiYDGQHtcrCEgDwZxKKSFB" ], "script": "base64:BgITCAISAwoBCBIDCgEIEgASAwoBARYABlNjYWxlNgDAhD0ABlNjYWxlOACAwtcvAAdTY2FsZTE2CQBoAgUGU2NhbGU4BQZTY2FsZTgACnZhbGlkYXRvcnMJAMwIAgIjM05BbXFHanhSQlJQb1JIWlVVcXZoaU5TNmF4bkdwaW5MSEMFA25pbAAPbW9uZXlCb3hBZGRyZXNzCQEHQWRkcmVzcwEBGgFUZKnP467xWXotJQOt2k8QiNBvrQpHH8SpAAdhc3NldElkAixISG1hRlFwVW9id0t4emp6NEVDYUJQdG9GNjlrdWpLd1UyY296YVV6VHNndgALcHV6emxlUG9vbHMJAMwIAgIjM042U3RKZGdtVGZBUnNSTm45WHQ1ckRZRXMzcHI0S0d5MXYFA25pbAEKZ2V0QmFsYW5jZQEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgRVbml0BAF4BQckbWF0Y2gwCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQEFdmFsdWUBBQdhc3NldElkAQl0cnlHZXRJbnQCB2FkZHJlc3MDa2V5BAckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEJdHJ5R2V0U3RyAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFiBQckbWF0Y2gwBQFiAgABDmdldEFzc2V0U3RyaW5nAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgIFV0FWRVMBG2dldFB1enpsZVBvb2xTdXBwbGllZEFtb3VudAEGcG9vbElkBAdiYWxhbmNlCQDwBwIJAQdBZGRyZXNzAQkA2QQBBQZwb29sSWQJANkEAQUHYXNzZXRJZAUHYmFsYW5jZQEWZ2V0VG90YWxTdXBwbGllZEFtb3VudAAEC2N1cnJlbnRQb29sCQEJdHJ5R2V0U3RyAgUEdGhpcwILY3VycmVudFBvb2wDCQAAAgULY3VycmVudFBvb2wCAAkAAgEJAKwCAgIZQ2Fubm90IGZpbmQgcG9vbCB3aXRoIGlkIAULY3VycmVudFBvb2wJARtnZXRQdXp6bGVQb29sU3VwcGxpZWRBbW91bnQBBQtjdXJyZW50UG9vbAEWd2l0aGRyYXdGcm9tUHV6emxlUG9vbAIGcG9vbElkBmFtb3VudAQLcG9vbEFkZHJlc3MJAQdBZGRyZXNzAQkA2QQBBQZwb29sSWQECndpdGhkcmF3VHgDCQBmAgUGYW1vdW50AAAJAPwHBAULcG9vbEFkZHJlc3MCCHdpdGhkcmF3CQDMCAIFB2Fzc2V0SWQJAMwIAgUGYW1vdW50BQNuaWwFA25pbAIAAwkAAAIFCndpdGhkcmF3VHgFCndpdGhkcmF3VHgFCndpdGhkcmF3VHgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BDGNhbGN1bGF0ZUZlZQAEDHN0YWtlZEFtb3VudAkBCXRyeUdldEludAIFBHRoaXMCDWdsb2JhbF9zdGFrZWQECWxhc3RTUmF0ZQkBCXRyeUdldEludAIFBHRoaXMCFWdsb2JhbF9sYXN0Q2hlY2tTUmF0ZQQHc0Ftb3VudAkAawMFDHN0YWtlZEFtb3VudAUJbGFzdFNSYXRlBQZTY2FsZTgEDXRvdGFsU3VwcGxpZWQJARZnZXRUb3RhbFN1cHBsaWVkQW1vdW50AAQEZGlmZgkAZQIFDXRvdGFsU3VwcGxpZWQFB3NBbW91bnQEA2ZlZQkAawMFBGRpZmYAwJaxAgUGU2NhbGU4AwkAZgIFA2ZlZQAABQNmZWUAAAEOY2FsY3VsYXRlU1JhdGUABA5sYXN0Q2hlY2tTUmF0ZQkBCXRyeUdldEludAIFBHRoaXMCFWdsb2JhbF9sYXN0Q2hlY2tTUmF0ZQQMc3Rha2VkQW1vdW50CQEJdHJ5R2V0SW50AgUEdGhpcwINZ2xvYmFsX3N0YWtlZAQRbGFzdENoZWNrU0Ftb3VudXQJAGsDBQxzdGFrZWRBbW91bnQFDmxhc3RDaGVja1NSYXRlBQZTY2FsZTgDCQAAAgUObGFzdENoZWNrU1JhdGUAAAUGU2NhbGU4AwkAAAIFEWxhc3RDaGVja1NBbW91bnV0AAAFDmxhc3RDaGVja1NSYXRlBAVzUmF0ZQkAawMFDmxhc3RDaGVja1NSYXRlCQBkAgkAawMJAGUCCQBrAwkBFmdldFRvdGFsU3VwcGxpZWRBbW91bnQABQZTY2FsZTYFEWxhc3RDaGVja1NBbW91bnV0BQZTY2FsZTYJAGUCBQZTY2FsZTgAwJaxAgUGU2NhbGU4BQZTY2FsZTYFBlNjYWxlNgMJAGYCBQZTY2FsZTgFBXNSYXRlBQ5sYXN0Q2hlY2tTUmF0ZQUFc1JhdGUBDHJlY2FsY1Jlc3VsdAEMc3Rha2VkQ2hhbmdlBAxzdGFrZWRBbW91bnQJAQl0cnlHZXRJbnQCBQR0aGlzAg1nbG9iYWxfc3Rha2VkBAVzUmF0ZQkBDmNhbGN1bGF0ZVNSYXRlAAkAzAgCCQEMSW50ZWdlckVudHJ5AgINZ2xvYmFsX3N0YWtlZAkAZAIFDHN0YWtlZEFtb3VudAUMc3Rha2VkQ2hhbmdlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhVnbG9iYWxfbGFzdENoZWNrU1JhdGUFBXNSYXRlBQNuaWwBDHN1cHBseVJlc3VsdAIGcG9vbElkA2ZlZQMJAAACCQDPCAIFC3B1enpsZVBvb2xzBQZwb29sSWQFBHVuaXQJAAIBCQCsAgICD1Vua25vd24gcG9vbElkIAUGcG9vbElkBAphc3NldEJ5dGVzCQDZBAEFB2Fzc2V0SWQEB2JhbGFuY2UJAQpnZXRCYWxhbmNlAQUKYXNzZXRCeXRlcwQIc3VwcGx5VHgJAPwHBAkBB0FkZHJlc3MBCQDZBAEFBnBvb2xJZAIGc3VwcGx5BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCmFzc2V0Qnl0ZXMFB2JhbGFuY2UFA25pbAMJAAACBQhzdXBwbHlUeAUIc3VwcGx5VHgEDXdpdGhkcmF3RmVlVHgJARZ3aXRoZHJhd0Zyb21QdXp6bGVQb29sAgUGcG9vbElkBQNmZWUDCQAAAgUNd2l0aGRyYXdGZWVUeAUNd2l0aGRyYXdGZWVUeAkAzAgCCQELU3RyaW5nRW50cnkCAgtjdXJyZW50UG9vbAUGcG9vbElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFD21vbmV5Qm94QWRkcmVzcwUDZmVlCQDZBAEFB2Fzc2V0SWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEOd2l0aGRyYXdSZXN1bHQABAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sAwkAAAIFC2N1cnJlbnRQb29sAgAJAAIBCQCsAgICGUNhbm5vdCBmaW5kIHBvb2wgd2l0aCBpZCAFC2N1cnJlbnRQb29sBAZhbW91bnQJARtnZXRQdXp6bGVQb29sU3VwcGxpZWRBbW91bnQBBQtjdXJyZW50UG9vbAQCdHgJARZ3aXRoZHJhd0Zyb21QdXp6bGVQb29sAgULY3VycmVudFBvb2wFBmFtb3VudAMJAAACBQJ0eAUCdHgFAnR4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQtzdGFrZVJlc3VsdAIEdXNlcgZhbW91bnQEB3NBbW91bnQJAGsDBQZhbW91bnQFBlNjYWxlOAkBDmNhbGN1bGF0ZVNSYXRlAAkAzggCCQEMcmVjYWxjUmVzdWx0AQUHc0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyAgdfc3Rha2VkCQBkAgkBCXRyeUdldEludAIFBHRoaXMJAKwCAgUEdXNlcgIHX3N0YWtlZAUHc0Ftb3VudAUDbmlsAQ11bnN0YWtlUmVzdWx0AgR1c2VyBmFtb3VudAQHc0Ftb3VudAkAawMFBmFtb3VudAUGU2NhbGU4CQEOY2FsY3VsYXRlU1JhdGUABAp1c2VyU3Rha2VkCQEJdHJ5R2V0SW50AgUEdGhpcwkArAICBQR1c2VyAgdfc3Rha2VkBA11bnN0YWtlQW1vdW50AwkAZgIFB3NBbW91bnQFCnVzZXJTdGFrZWQFCnVzZXJTdGFrZWQFB3NBbW91bnQJAM4IAgkBDHJlY2FsY1Jlc3VsdAEJAQEtAQUNdW5zdGFrZUFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyAgdfc3Rha2VkCQBlAgUKdXNlclN0YWtlZAUNdW5zdGFrZUFtb3VudAUDbmlsAQlkb1Vuc3Rha2UEC2N1cnJlbnRQb29sBmNhbGxlcgZhbW91bnQDZmVlBAJ0eAkBFndpdGhkcmF3RnJvbVB1enpsZVBvb2wCBQtjdXJyZW50UG9vbAkAZAIFBmFtb3VudAUDZmVlAwkAAAIFAnR4BQJ0eAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQZjYWxsZXIFBmFtb3VudAkA2QQBBQdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFD21vbmV5Qm94QWRkcmVzcwUDZmVlCQDZBAEFB2Fzc2V0SWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQBaQEEaW5pdAEGcG9vbElkBAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sAwkAAAIJAM8IAgUKdmFsaWRhdG9ycwkApQgBCAUBaQZjYWxsZXIFBHVuaXQJAAIBAg1BY2Nlc3MgZGVuaWVkAwkAAAIFC2N1cnJlbnRQb29sAgAJAMwIAgkBC1N0cmluZ0VudHJ5AgILY3VycmVudFBvb2wFBnBvb2xJZAUDbmlsBQNuaWwBaQEJcmViYWxhbmNlAQZwb29sSWQEC2N1cnJlbnRQb29sCQEJdHJ5R2V0U3RyAgUEdGhpcwILY3VycmVudFBvb2wDCQAAAgkAzwgCBQp2YWxpZGF0b3JzCQClCAEIBQFpBmNhbGxlcgUEdW5pdAkAAgECDUFjY2VzcyBkZW5pZWQDCQAAAgULY3VycmVudFBvb2wFBnBvb2xJZAkAAgEJAKwCAgITQWxyZWFkeSBzdXBwbGllZCB0bwULY3VycmVudFBvb2wECndpdGhkcmF3VHgJAQ53aXRoZHJhd1Jlc3VsdAADCQAAAgUKd2l0aGRyYXdUeAUKd2l0aGRyYXdUeAkAzggCCQEMc3VwcGx5UmVzdWx0AgUGcG9vbElkAAAJAQxyZWNhbGNSZXN1bHQBAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFc3Rha2UABAR1c2VyCQClCAEIBQFpBmNhbGxlcgQGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQLY3VycmVudFBvb2wJAQl0cnlHZXRTdHICBQR0aGlzAgtjdXJyZW50UG9vbAMDCQBnAgAABQZhbW91bnQGCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJANkEAQUHYXNzZXRJZAkAAgECFmludmFsaWQgdG9rZW4gYXR0YWNoZWQDCQAAAgULY3VycmVudFBvb2wCAAkAAgECFFBvb2wgbm90IGluaXRpYWxpemVkBANmZWUJAQxjYWxjdWxhdGVGZWUACQDOCAIJAQtzdGFrZVJlc3VsdAIFBHVzZXIFBmFtb3VudAkBDHN1cHBseVJlc3VsdAIFC2N1cnJlbnRQb29sBQNmZWUBaQEHdW5zdGFrZQEGYW1vdW50BAR1c2VyCQClCAEIBQFpBmNhbGxlcgQLY3VycmVudFBvb2wJAQl0cnlHZXRTdHICBQR0aGlzAgtjdXJyZW50UG9vbAQDZmVlCQEMY2FsY3VsYXRlRmVlAAQFYXNzZXQJANkEAQUHYXNzZXRJZAkAzggCCQENdW5zdGFrZVJlc3VsdAIFBHVzZXIFBmFtb3VudAkBCWRvVW5zdGFrZQQFC2N1cnJlbnRQb29sCAUBaQZjYWxsZXIFBmFtb3VudAUDZmVlAQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQbrdcM=", "height": 2349101, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6yHNs9NXxA2wdRXzugyjU2Js7TbqU8uVb2xr2ZqaSXSY Next: 6X9nJY2a5MHNTh6Dv3asvksAVwHaUYgUJvknNfJWsYUB Diff:
OldNewDifferences
121121 }
122122
123123
124-func M (r) = if ((indexOf(g, r) == unit))
124+func M (r,F) = if ((indexOf(g, r) == unit))
125125 then throw(("Unknown poolId " + r))
126126 else {
127127 let N = fromBase58String(f)
128128 let s = h(N)
129129 let O = invoke(Address(fromBase58String(r)), "supply", nil, [AttachedPayment(N, s)])
130130 if ((O == O))
131- then [StringEntry("currentPool", r)]
131+ then {
132+ let P = v(r, F)
133+ if ((P == P))
134+ then [StringEntry("currentPool", r), ScriptTransfer(e, F, fromBase58String(f))]
135+ else throw("Strict value is not equal to itself.")
136+ }
132137 else throw("Strict value is not equal to itself.")
133138 }
134139
135140
136-func P (r,F) = {
137- let Q = v(r, F)
138- if ((Q == Q))
139- then [ScriptTransfer(e, F, fromBase58String(f))]
140- else throw("Strict value is not equal to itself.")
141- }
142-
143-
144-func R () = {
141+func Q () = {
145142 let u = o(this, "currentPool")
146143 if ((u == ""))
147144 then throw(("Cannot find pool with id " + u))
148145 else {
149146 let w = q(u)
150- let S = v(u, w)
151- if ((S == S))
152- then S
147+ let R = v(u, w)
148+ if ((R == R))
149+ then R
153150 else throw("Strict value is not equal to itself.")
154151 }
155152 }
156153
157154
158-func T (U,w) = {
155+func S (T,w) = {
159156 let C = fraction(w, b, G())
160- (K(C) ++ [IntegerEntry((U + "_staked"), (k(this, (U + "_staked")) + C))])
157+ (K(C) ++ [IntegerEntry((T + "_staked"), (k(this, (T + "_staked")) + C))])
161158 }
162159
163160
164-func V (U,w) = {
161+func U (T,w) = {
165162 let C = fraction(w, b, G())
166- let W = k(this, (U + "_staked"))
167- let X = if ((C > W))
168- then W
163+ let V = k(this, (T + "_staked"))
164+ let W = if ((C > V))
165+ then V
169166 else C
170- (K(-(X)) ++ [IntegerEntry((U + "_staked"), (W - X))])
167+ (K(-(W)) ++ [IntegerEntry((T + "_staked"), (V - W))])
171168 }
172169
173170
174-func Y (u,Z,w) = {
175- let S = v(u, w)
176- if ((S == S))
177- then [ScriptTransfer(Z, w, fromBase58String(f))]
171+func X (u,Y,w,F) = {
172+ let R = v(u, (w + F))
173+ if ((R == R))
174+ then [ScriptTransfer(Y, w, fromBase58String(f)), ScriptTransfer(e, F, fromBase58String(f))]
178175 else throw("Strict value is not equal to itself.")
179176 }
180177
181178
182-@Callable(aa)
179+@Callable(Z)
183180 func init (r) = {
184181 let u = o(this, "currentPool")
185- if ((indexOf(d, toString(aa.caller)) == unit))
182+ if ((indexOf(d, toString(Z.caller)) == unit))
186183 then throw("Access denied")
187184 else if ((u == ""))
188185 then [StringEntry("currentPool", r)]
191188
192189
193190
194-@Callable(aa)
191+@Callable(Z)
195192 func rebalance (r) = {
196193 let u = o(this, "currentPool")
197- if ((indexOf(d, toString(aa.caller)) == unit))
194+ if ((indexOf(d, toString(Z.caller)) == unit))
198195 then throw("Access denied")
199196 else if ((u == r))
200197 then throw(("Already supplied to" + u))
201198 else {
202- let y = R()
199+ let y = Q()
203200 if ((y == y))
204- then M(r)
201+ then (M(r, 0) ++ K(0))
205202 else throw("Strict value is not equal to itself.")
206203 }
207204 }
208205
209206
210207
211-@Callable(aa)
208+@Callable(Z)
212209 func stake () = {
213- let U = toString(aa.caller)
214- let w = aa.payments[0].amount
210+ let T = toString(Z.caller)
211+ let w = Z.payments[0].amount
215212 let u = o(this, "currentPool")
216213 if (if ((0 >= w))
217214 then true
218- else (aa.payments[0].assetId != fromBase58String(f)))
215+ else (Z.payments[0].assetId != fromBase58String(f)))
219216 then throw("invalid token attached")
220217 else if ((u == ""))
221218 then throw("Pool not initialized")
222219 else {
223220 let F = z()
224- ((T(U, w) ++ M(u)) ++ P(u, F))
221+ (S(T, w) ++ M(u, F))
225222 }
226223 }
227224
228225
229226
230-@Callable(aa)
227+@Callable(Z)
231228 func unstake (w) = {
232- let U = toString(aa.caller)
229+ let T = toString(Z.caller)
233230 let u = o(this, "currentPool")
234231 let F = z()
235- let ab = fromBase58String(f)
236- ((V(U, w) ++ Y(u, aa.caller, w)) ++ P(u, F))
232+ let aa = fromBase58String(f)
233+ (U(T, w) ++ X(u, Z.caller, w, F))
237234 }
238235
239236
240-@Verifier(S)
241-func ac () = sigVerify(S.bodyBytes, S.proofs[0], S.senderPublicKey)
237+@Verifier(R)
238+func ab () = sigVerify(R.bodyBytes, R.proofs[0], R.senderPublicKey)
242239
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 = Address(base58'3My6LmrRSRvJ73T14oT5k53SGPavGFoacWc')
1313
1414 let f = "HHmaFQpUobwKxzjz4ECaBPtoF69kujKwU2cozaUzTsgv"
1515
1616 let g = ["3N6StJdgmTfARsRNn9Xt5rDYEs3pr4KGy1v"]
1717
1818 func h (f) = {
1919 let i = f
2020 if ($isInstanceOf(i, "Unit"))
2121 then {
2222 let j = i
2323 wavesBalance(this).available
2424 }
2525 else assetBalance(this, value(f))
2626 }
2727
2828
2929 func k (l,m) = {
3030 let i = getInteger(l, m)
3131 if ($isInstanceOf(i, "Int"))
3232 then {
3333 let n = i
3434 n
3535 }
3636 else 0
3737 }
3838
3939
4040 func o (l,m) = {
4141 let i = getString(l, m)
4242 if ($isInstanceOf(i, "String"))
4343 then {
4444 let n = i
4545 n
4646 }
4747 else ""
4848 }
4949
5050
5151 func p (f) = {
5252 let i = f
5353 if ($isInstanceOf(i, "ByteVector"))
5454 then {
5555 let n = i
5656 toBase58String(n)
5757 }
5858 else "WAVES"
5959 }
6060
6161
6262 func q (r) = {
6363 let s = assetBalance(Address(fromBase58String(r)), fromBase58String(f))
6464 s
6565 }
6666
6767
6868 func t () = {
6969 let u = o(this, "currentPool")
7070 if ((u == ""))
7171 then throw(("Cannot find pool with id " + u))
7272 else q(u)
7373 }
7474
7575
7676 func v (r,w) = {
7777 let x = Address(fromBase58String(r))
7878 let y = if ((w > 0))
7979 then invoke(x, "withdraw", [f, w], nil)
8080 else ""
8181 if ((y == y))
8282 then y
8383 else throw("Strict value is not equal to itself.")
8484 }
8585
8686
8787 func z () = {
8888 let A = k(this, "global_staked")
8989 let B = k(this, "global_lastCheckSRate")
9090 let C = fraction(A, B, b)
9191 let D = t()
9292 let E = (D - C)
9393 let F = fraction(E, 5000000, b)
9494 if ((F > 0))
9595 then F
9696 else 0
9797 }
9898
9999
100100 func G () = {
101101 let H = k(this, "global_lastCheckSRate")
102102 let A = k(this, "global_staked")
103103 let I = fraction(A, H, b)
104104 if ((H == 0))
105105 then b
106106 else if ((I == 0))
107107 then H
108108 else {
109109 let J = fraction(H, (fraction((fraction(t(), a, I) - a), (b - 5000000), b) + a), a)
110110 if ((b > J))
111111 then H
112112 else J
113113 }
114114 }
115115
116116
117117 func K (L) = {
118118 let A = k(this, "global_staked")
119119 let J = G()
120120 [IntegerEntry("global_staked", (A + L)), IntegerEntry("global_lastCheckSRate", J)]
121121 }
122122
123123
124-func M (r) = if ((indexOf(g, r) == unit))
124+func M (r,F) = if ((indexOf(g, r) == unit))
125125 then throw(("Unknown poolId " + r))
126126 else {
127127 let N = fromBase58String(f)
128128 let s = h(N)
129129 let O = invoke(Address(fromBase58String(r)), "supply", nil, [AttachedPayment(N, s)])
130130 if ((O == O))
131- then [StringEntry("currentPool", r)]
131+ then {
132+ let P = v(r, F)
133+ if ((P == P))
134+ then [StringEntry("currentPool", r), ScriptTransfer(e, F, fromBase58String(f))]
135+ else throw("Strict value is not equal to itself.")
136+ }
132137 else throw("Strict value is not equal to itself.")
133138 }
134139
135140
136-func P (r,F) = {
137- let Q = v(r, F)
138- if ((Q == Q))
139- then [ScriptTransfer(e, F, fromBase58String(f))]
140- else throw("Strict value is not equal to itself.")
141- }
142-
143-
144-func R () = {
141+func Q () = {
145142 let u = o(this, "currentPool")
146143 if ((u == ""))
147144 then throw(("Cannot find pool with id " + u))
148145 else {
149146 let w = q(u)
150- let S = v(u, w)
151- if ((S == S))
152- then S
147+ let R = v(u, w)
148+ if ((R == R))
149+ then R
153150 else throw("Strict value is not equal to itself.")
154151 }
155152 }
156153
157154
158-func T (U,w) = {
155+func S (T,w) = {
159156 let C = fraction(w, b, G())
160- (K(C) ++ [IntegerEntry((U + "_staked"), (k(this, (U + "_staked")) + C))])
157+ (K(C) ++ [IntegerEntry((T + "_staked"), (k(this, (T + "_staked")) + C))])
161158 }
162159
163160
164-func V (U,w) = {
161+func U (T,w) = {
165162 let C = fraction(w, b, G())
166- let W = k(this, (U + "_staked"))
167- let X = if ((C > W))
168- then W
163+ let V = k(this, (T + "_staked"))
164+ let W = if ((C > V))
165+ then V
169166 else C
170- (K(-(X)) ++ [IntegerEntry((U + "_staked"), (W - X))])
167+ (K(-(W)) ++ [IntegerEntry((T + "_staked"), (V - W))])
171168 }
172169
173170
174-func Y (u,Z,w) = {
175- let S = v(u, w)
176- if ((S == S))
177- then [ScriptTransfer(Z, w, fromBase58String(f))]
171+func X (u,Y,w,F) = {
172+ let R = v(u, (w + F))
173+ if ((R == R))
174+ then [ScriptTransfer(Y, w, fromBase58String(f)), ScriptTransfer(e, F, fromBase58String(f))]
178175 else throw("Strict value is not equal to itself.")
179176 }
180177
181178
182-@Callable(aa)
179+@Callable(Z)
183180 func init (r) = {
184181 let u = o(this, "currentPool")
185- if ((indexOf(d, toString(aa.caller)) == unit))
182+ if ((indexOf(d, toString(Z.caller)) == unit))
186183 then throw("Access denied")
187184 else if ((u == ""))
188185 then [StringEntry("currentPool", r)]
189186 else nil
190187 }
191188
192189
193190
194-@Callable(aa)
191+@Callable(Z)
195192 func rebalance (r) = {
196193 let u = o(this, "currentPool")
197- if ((indexOf(d, toString(aa.caller)) == unit))
194+ if ((indexOf(d, toString(Z.caller)) == unit))
198195 then throw("Access denied")
199196 else if ((u == r))
200197 then throw(("Already supplied to" + u))
201198 else {
202- let y = R()
199+ let y = Q()
203200 if ((y == y))
204- then M(r)
201+ then (M(r, 0) ++ K(0))
205202 else throw("Strict value is not equal to itself.")
206203 }
207204 }
208205
209206
210207
211-@Callable(aa)
208+@Callable(Z)
212209 func stake () = {
213- let U = toString(aa.caller)
214- let w = aa.payments[0].amount
210+ let T = toString(Z.caller)
211+ let w = Z.payments[0].amount
215212 let u = o(this, "currentPool")
216213 if (if ((0 >= w))
217214 then true
218- else (aa.payments[0].assetId != fromBase58String(f)))
215+ else (Z.payments[0].assetId != fromBase58String(f)))
219216 then throw("invalid token attached")
220217 else if ((u == ""))
221218 then throw("Pool not initialized")
222219 else {
223220 let F = z()
224- ((T(U, w) ++ M(u)) ++ P(u, F))
221+ (S(T, w) ++ M(u, F))
225222 }
226223 }
227224
228225
229226
230-@Callable(aa)
227+@Callable(Z)
231228 func unstake (w) = {
232- let U = toString(aa.caller)
229+ let T = toString(Z.caller)
233230 let u = o(this, "currentPool")
234231 let F = z()
235- let ab = fromBase58String(f)
236- ((V(U, w) ++ Y(u, aa.caller, w)) ++ P(u, F))
232+ let aa = fromBase58String(f)
233+ (U(T, w) ++ X(u, Z.caller, w, F))
237234 }
238235
239236
240-@Verifier(S)
241-func ac () = sigVerify(S.bodyBytes, S.proofs[0], S.senderPublicKey)
237+@Verifier(R)
238+func ab () = sigVerify(R.bodyBytes, R.proofs[0], R.senderPublicKey)
242239

github/deemru/w8io/169f3d6 
71.47 ms