tx · AiyEJ2Mr4gsuUNeX1c2hjmfXT5o1qhQu5Xn26TVVsM49

3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh:  -0.00900000 Waves

2022.12.07 00:06 [2348995] smart account 3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh > SELF 0.00000000 Waves

{ "type": 13, "id": "AiyEJ2Mr4gsuUNeX1c2hjmfXT5o1qhQu5Xn26TVVsM49", "fee": 900000, "feeAssetId": null, "timestamp": 1670360797535, "version": 2, "chainId": 84, "sender": "3MwLW8P5yh5T2xML9QqFuVxkVkm9RXqnzXh", "senderPublicKey": "HscGVyJG5M3NMHWKfQbucCBsFLGPi8VmTxTAmcBbaWTa", "proofs": [ "45v4M8LFyZvFgAYeinLvGbQxR3jEKB19VphZLHUwzepHNz5zdWVKYmVZxbW4zD1VotpnUNFY7ktTfE2TxLUBQ9oa" ], "script": "base64:BgITCAISAwoBCBIDCgEIEgASAwoBARUABlNjYWxlNgDAhD0ABlNjYWxlOACAwtcvAAdTY2FsZTE2CQBoAgUGU2NhbGU4BQZTY2FsZTgACnZhbGlkYXRvcnMJAMwIAgIjM05BbXFHanhSQlJQb1JIWlVVcXZoaU5TNmF4bkdwaW5MSEMFA25pbAAPbW9uZXlCb3hBZGRyZXNzCQEHQWRkcmVzcwEBGgFUZKnP467xWXotJQOt2k8QiNBvrQpHH8SpAAdhc3NldElkAixISG1hRlFwVW9id0t4emp6NEVDYUJQdG9GNjlrdWpLd1UyY296YVV6VHNndgALcHV6emxlUG9vbHMJAMwIAgIjM042U3RKZGdtVGZBUnNSTm45WHQ1ckRZRXMzcHI0S0d5MXYFA25pbAEKZ2V0QmFsYW5jZQEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgRVbml0BAF4BQckbWF0Y2gwCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQEFdmFsdWUBBQdhc3NldElkAQl0cnlHZXRJbnQCB2FkZHJlc3MDa2V5BAckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEJdHJ5R2V0U3RyAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFiBQckbWF0Y2gwBQFiAgABDmdldEFzc2V0U3RyaW5nAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgIFV0FWRVMBG2dldFB1enpsZVBvb2xTdXBwbGllZEFtb3VudAEGcG9vbElkBAdiYWxhbmNlCQDwBwIJAQdBZGRyZXNzAQkA2QQBBQZwb29sSWQJANkEAQUHYXNzZXRJZAUHYmFsYW5jZQEWZ2V0VG90YWxTdXBwbGllZEFtb3VudAAEC2N1cnJlbnRQb29sCQEJdHJ5R2V0U3RyAgUEdGhpcwILY3VycmVudFBvb2wDCQAAAgULY3VycmVudFBvb2wCAAkAAgEJAKwCAgIZQ2Fubm90IGZpbmQgcG9vbCB3aXRoIGlkIAULY3VycmVudFBvb2wJARtnZXRQdXp6bGVQb29sU3VwcGxpZWRBbW91bnQBBQtjdXJyZW50UG9vbAEWd2l0aGRyYXdGcm9tUHV6emxlUG9vbAIGcG9vbElkBmFtb3VudAQLcG9vbEFkZHJlc3MJAQdBZGRyZXNzAQkA2QQBBQZwb29sSWQECndpdGhkcmF3VHgDCQBmAgUGYW1vdW50AAAJAPwHBAULcG9vbEFkZHJlc3MCCHdpdGhkcmF3CQDMCAIFB2Fzc2V0SWQJAMwIAgUGYW1vdW50BQNuaWwFA25pbAIAAwkAAAIFCndpdGhkcmF3VHgFCndpdGhkcmF3VHgFCndpdGhkcmF3VHgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BB2NhbGNGZWUABAxzdGFrZWRBbW91bnQJAQl0cnlHZXRJbnQCBQR0aGlzAg1nbG9iYWxfc3Rha2VkBAlsYXN0U1JhdGUJAQl0cnlHZXRJbnQCBQR0aGlzAhVnbG9iYWxfbGFzdENoZWNrU1JhdGUEB3NBbW91bnQJAGsDBQxzdGFrZWRBbW91bnQFCWxhc3RTUmF0ZQUGU2NhbGU4BA10b3RhbFN1cHBsaWVkCQEWZ2V0VG90YWxTdXBwbGllZEFtb3VudAAEBGRpZmYJAGUCBQ10b3RhbFN1cHBsaWVkBQdzQW1vdW50BANmZWUJAGsDBQRkaWZmAMCWsQIFBlNjYWxlOAMJAGYCBQNmZWUAAAUDZmVlAAABDmNhbGN1bGF0ZVNSYXRlAAQObGFzdENoZWNrU1JhdGUJAQl0cnlHZXRJbnQCBQR0aGlzAhVnbG9iYWxfbGFzdENoZWNrU1JhdGUEDHN0YWtlZEFtb3VudAkBCXRyeUdldEludAIFBHRoaXMCDWdsb2JhbF9zdGFrZWQEEWxhc3RDaGVja1NBbW91bnV0CQBrAwUMc3Rha2VkQW1vdW50BQ5sYXN0Q2hlY2tTUmF0ZQUGU2NhbGU4AwkAAAIFDmxhc3RDaGVja1NSYXRlAAAFBlNjYWxlOAMJAAACBRFsYXN0Q2hlY2tTQW1vdW51dAAABQ5sYXN0Q2hlY2tTUmF0ZQQFc1JhdGUJAGsDBQ5sYXN0Q2hlY2tTUmF0ZQkAZAIJAGsDCQBlAgkAawMJARZnZXRUb3RhbFN1cHBsaWVkQW1vdW50AAUGU2NhbGU2BRFsYXN0Q2hlY2tTQW1vdW51dAUGU2NhbGU2CQBlAgUGU2NhbGU4AMCWsQIFBlNjYWxlOAUGU2NhbGU2BQZTY2FsZTYDCQBmAgUGU2NhbGU4BQVzUmF0ZQUObGFzdENoZWNrU1JhdGUFBXNSYXRlAQxyZWNhbGNSZXN1bHQBDHN0YWtlZENoYW5nZQQMc3Rha2VkQW1vdW50CQEJdHJ5R2V0SW50AgUEdGhpcwINZ2xvYmFsX3N0YWtlZAQFc1JhdGUJAQ5jYWxjdWxhdGVTUmF0ZQADCQBmAgUFc1JhdGUAAAkAAgEJAKwCAgIHc1JhdGU6IAkApAMBBQVzUmF0ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgINZ2xvYmFsX3N0YWtlZAkAZAIFDHN0YWtlZEFtb3VudAUMc3Rha2VkQ2hhbmdlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhVnbG9iYWxfbGFzdENoZWNrU1JhdGUFBXNSYXRlBQNuaWwBDHN1cHBseVJlc3VsdAIGcG9vbElkA2ZlZQMJAAACCQDPCAIFC3B1enpsZVBvb2xzBQZwb29sSWQFBHVuaXQJAAIBCQCsAgICD1Vua25vd24gcG9vbElkIAUGcG9vbElkBAphc3NldEJ5dGVzCQDZBAEFB2Fzc2V0SWQEB2JhbGFuY2UJAQpnZXRCYWxhbmNlAQUKYXNzZXRCeXRlcwQIc3VwcGx5VHgJAPwHBAkBB0FkZHJlc3MBCQDZBAEFBnBvb2xJZAIGc3VwcGx5BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCmFzc2V0Qnl0ZXMFB2JhbGFuY2UFA25pbAMJAAACBQhzdXBwbHlUeAUIc3VwcGx5VHgEDXdpdGhkcmF3RmVlVHgJARZ3aXRoZHJhd0Zyb21QdXp6bGVQb29sAgUGcG9vbElkBQNmZWUDCQAAAgUNd2l0aGRyYXdGZWVUeAUNd2l0aGRyYXdGZWVUeAkAzAgCCQELU3RyaW5nRW50cnkCAgtjdXJyZW50UG9vbAUGcG9vbElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFD21vbmV5Qm94QWRkcmVzcwUDZmVlCQDZBAEFB2Fzc2V0SWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEOd2l0aGRyYXdSZXN1bHQABAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sAwkAAAIFC2N1cnJlbnRQb29sAgAJAAIBCQCsAgICGUNhbm5vdCBmaW5kIHBvb2wgd2l0aCBpZCAFC2N1cnJlbnRQb29sBAZhbW91bnQJARtnZXRQdXp6bGVQb29sU3VwcGxpZWRBbW91bnQBBQtjdXJyZW50UG9vbAQCdHgJARZ3aXRoZHJhd0Zyb21QdXp6bGVQb29sAgULY3VycmVudFBvb2wFBmFtb3VudAMJAAACBQJ0eAUCdHgFAnR4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQtzdGFrZVJlc3VsdAIEdXNlcgZhbW91bnQEB3NBbW91bnQJAGsDBQZhbW91bnQFBlNjYWxlOAkBDmNhbGN1bGF0ZVNSYXRlAAkAzggCCQEMcmVjYWxjUmVzdWx0AQUHc0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyAgdfc3Rha2VkCQBkAgkBCXRyeUdldEludAIFBHRoaXMJAKwCAgUEdXNlcgIHX3N0YWtlZAUHc0Ftb3VudAUDbmlsAQ11bnN0YWtlUmVzdWx0AgR1c2VyBmFtb3VudAQHc0Ftb3VudAkAawMFBmFtb3VudAUGU2NhbGU4CQEOY2FsY3VsYXRlU1JhdGUABAp1c2VyU3Rha2VkCQEJdHJ5R2V0SW50AgUEdGhpcwkArAICBQR1c2VyAgdfc3Rha2VkBA11bnN0YWtlQW1vdW50AwkAZgIFB3NBbW91bnQFCnVzZXJTdGFrZWQFCnVzZXJTdGFrZWQFB3NBbW91bnQJAM4IAgkBDHJlY2FsY1Jlc3VsdAEJAQEtAQUNdW5zdGFrZUFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyAgdfc3Rha2VkCQBlAgUKdXNlclN0YWtlZAUNdW5zdGFrZUFtb3VudAUDbmlsBAFpAQRpbml0AQZwb29sSWQEC2N1cnJlbnRQb29sCQEJdHJ5R2V0U3RyAgUEdGhpcwILY3VycmVudFBvb2wDCQAAAgkAzwgCBQp2YWxpZGF0b3JzCQClCAEIBQFpBmNhbGxlcgUEdW5pdAkAAgECDUFjY2VzcyBkZW5pZWQDCQAAAgULY3VycmVudFBvb2wCAAkAzAgCCQELU3RyaW5nRW50cnkCAgtjdXJyZW50UG9vbAUGcG9vbElkBQNuaWwFA25pbAFpAQlyZWJhbGFuY2UBBnBvb2xJZAQLY3VycmVudFBvb2wJAQl0cnlHZXRTdHICBQR0aGlzAgtjdXJyZW50UG9vbAMJAAACCQDPCAIFCnZhbGlkYXRvcnMJAKUIAQgFAWkGY2FsbGVyBQR1bml0CQACAQINQWNjZXNzIGRlbmllZAMJAAACBQtjdXJyZW50UG9vbAUGcG9vbElkCQACAQkArAICAhNBbHJlYWR5IHN1cHBsaWVkIHRvBQtjdXJyZW50UG9vbAQKd2l0aGRyYXdUeAkBDndpdGhkcmF3UmVzdWx0AAMJAAACBQp3aXRoZHJhd1R4BQp3aXRoZHJhd1R4CQDOCAIJAQxzdXBwbHlSZXN1bHQCBQZwb29sSWQAAAkBDHJlY2FsY1Jlc3VsdAEAAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVzdGFrZQAEBHVzZXIJAKUIAQgFAWkGY2FsbGVyBAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAtjdXJyZW50UG9vbAkBCXRyeUdldFN0cgIFBHRoaXMCC2N1cnJlbnRQb29sAwMJAGcCAAAFBmFtb3VudAYJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkA2QQBBQdhc3NldElkCQACAQIWaW52YWxpZCB0b2tlbiBhdHRhY2hlZAMJAAACBQtjdXJyZW50UG9vbAIACQACAQIUUG9vbCBub3QgaW5pdGlhbGl6ZWQEA2ZlZQkBB2NhbGNGZWUACQDOCAIJAQtzdGFrZVJlc3VsdAIFBHVzZXIFBmFtb3VudAkBDHN1cHBseVJlc3VsdAIFC2N1cnJlbnRQb29sBQNmZWUBaQEHdW5zdGFrZQEGYW1vdW50BAR1c2VyCQClCAEIBQFpBmNhbGxlcgQLY3VycmVudFBvb2wJAQl0cnlHZXRTdHICBQR0aGlzAgtjdXJyZW50UG9vbAQDZmVlCQEHY2FsY0ZlZQAEBWFzc2V0CQDZBAEFB2Fzc2V0SWQEEnVuc3Rha2VSZXN1bHRTdGF0ZQkBDXVuc3Rha2VSZXN1bHQCBQR1c2VyBQZhbW91bnQFEnVuc3Rha2VSZXN1bHRTdGF0ZQECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXklwBU2", "height": 2348995, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HxEv2bmkMuQYShH8eE9nj6ueGG8M52TMRBtvePdbbPzQ Next: 5tHcPEAocyKjM3oj1bwZrEXy7zhPQYLvTvaJE4zjy21J Diff:
OldNewDifferences
225225 let F = z()
226226 let Y = fromBase58String(f)
227227 let Z = U(T, w)
228- let R = v(u, (w + F))
229- if ((R == R))
230- then (Z ++ [ScriptTransfer(X.caller, w, Y), ScriptTransfer(e, F, Y)])
231- else throw("Strict value is not equal to itself.")
228+ Z
232229 }
233230
234231
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 if ((J > 0))
121121 then throw(("sRate: " + toString(J)))
122122 else [IntegerEntry("global_staked", (A + L)), IntegerEntry("global_lastCheckSRate", J)]
123123 }
124124
125125
126126 func M (r,F) = if ((indexOf(g, r) == unit))
127127 then throw(("Unknown poolId " + r))
128128 else {
129129 let N = fromBase58String(f)
130130 let s = h(N)
131131 let O = invoke(Address(fromBase58String(r)), "supply", nil, [AttachedPayment(N, s)])
132132 if ((O == O))
133133 then {
134134 let P = v(r, F)
135135 if ((P == P))
136136 then [StringEntry("currentPool", r), ScriptTransfer(e, F, fromBase58String(f))]
137137 else throw("Strict value is not equal to itself.")
138138 }
139139 else throw("Strict value is not equal to itself.")
140140 }
141141
142142
143143 func Q () = {
144144 let u = o(this, "currentPool")
145145 if ((u == ""))
146146 then throw(("Cannot find pool with id " + u))
147147 else {
148148 let w = q(u)
149149 let R = v(u, w)
150150 if ((R == R))
151151 then R
152152 else throw("Strict value is not equal to itself.")
153153 }
154154 }
155155
156156
157157 func S (T,w) = {
158158 let C = fraction(w, b, G())
159159 (K(C) ++ [IntegerEntry((T + "_staked"), (k(this, (T + "_staked")) + C))])
160160 }
161161
162162
163163 func U (T,w) = {
164164 let C = fraction(w, b, G())
165165 let V = k(this, (T + "_staked"))
166166 let W = if ((C > V))
167167 then V
168168 else C
169169 (K(-(W)) ++ [IntegerEntry((T + "_staked"), (V - W))])
170170 }
171171
172172
173173 @Callable(X)
174174 func init (r) = {
175175 let u = o(this, "currentPool")
176176 if ((indexOf(d, toString(X.caller)) == unit))
177177 then throw("Access denied")
178178 else if ((u == ""))
179179 then [StringEntry("currentPool", r)]
180180 else nil
181181 }
182182
183183
184184
185185 @Callable(X)
186186 func rebalance (r) = {
187187 let u = o(this, "currentPool")
188188 if ((indexOf(d, toString(X.caller)) == unit))
189189 then throw("Access denied")
190190 else if ((u == r))
191191 then throw(("Already supplied to" + u))
192192 else {
193193 let y = Q()
194194 if ((y == y))
195195 then (M(r, 0) ++ K(0))
196196 else throw("Strict value is not equal to itself.")
197197 }
198198 }
199199
200200
201201
202202 @Callable(X)
203203 func stake () = {
204204 let T = toString(X.caller)
205205 let w = X.payments[0].amount
206206 let u = o(this, "currentPool")
207207 if (if ((0 >= w))
208208 then true
209209 else (X.payments[0].assetId != fromBase58String(f)))
210210 then throw("invalid token attached")
211211 else if ((u == ""))
212212 then throw("Pool not initialized")
213213 else {
214214 let F = z()
215215 (S(T, w) ++ M(u, F))
216216 }
217217 }
218218
219219
220220
221221 @Callable(X)
222222 func unstake (w) = {
223223 let T = toString(X.caller)
224224 let u = o(this, "currentPool")
225225 let F = z()
226226 let Y = fromBase58String(f)
227227 let Z = U(T, w)
228- let R = v(u, (w + F))
229- if ((R == R))
230- then (Z ++ [ScriptTransfer(X.caller, w, Y), ScriptTransfer(e, F, Y)])
231- else throw("Strict value is not equal to itself.")
228+ Z
232229 }
233230
234231
235232 @Verifier(R)
236233 func aa () = sigVerify(R.bodyBytes, R.proofs[0], R.senderPublicKey)
237234

github/deemru/w8io/169f3d6 
58.04 ms