2022.06.20 14:50 [3170281] smart account 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > SELF 0.00000000 Waves

{ "type": 13, "id": "CcnoSNM36wXGfeXDEGp4YQ1kKDzFignUkCQpuaDb8rJY", "fee": 1500000, "feeAssetId": null, "timestamp": 1655725858647, "version": 2, "chainId": 87, "sender": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU", "senderPublicKey": "Dmn1fWHxpwN789LPfoMHFj7uSYKSsb5VFfyNQyQ629f9", "proofs": [ "3hh7Hj58ZggPDCGHTS2HdhGGojMJSkw7uUsPUPdKyRHr8YWYgsYiKJ1fPNtAt5VfL5yZi3i7jwnjv2JU6JkD1EwP" ], "script": "base64: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AGUAAAACCQABkAAAAAEJAAS1AAAAAgUAAAAJcm91dGVzU3RyAgAAAAEsAAAAAAAAAAABBAAAAAZhc3NldDEJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAAJYXNzZXQxU3RyBAAAAAd1c2RuRmVlAwkAAAAAAAACBQAAAAZhc3NldDEFAAAABnVzZG5JZAUAAAAJZmVlQW1vdW50BAAAABF1c2RuQmFsYW5jZUJlZm9yZQkBAAAACmdldEJhbGFuY2UAAAABBQAAAAZ1c2RuSWQDCQAAAAAAAAIFAAAAEXVzZG5CYWxhbmNlQmVmb3JlBQAAABF1c2RuQmFsYW5jZUJlZm9yZQQAAAAOcG9vbEFkZHJlc3NTdHIJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQABLAAAAAIJAAEsAAAAAgIAAAANc3RhdGljX2Fzc2V0XwUAAAAJYXNzZXQxU3RyAgAAAAtfcHV6emxlUG9vbAMJAAAAAAAAAgUAAAAOcG9vbEFkZHJlc3NTdHICAAAAAAAAAAAAAAAAAAQAAAAMY29udmVydGVkRmVlCQAD/AAAAAQJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAADnBvb2xBZGRyZXNzU3RyAgAAAARzd2FwCQAETAAAAAIFAAAACXVzZG5JZFN0cgkABEwAAAACAAAAAAAAAAAABQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAABmFzc2V0MQUAAAAJZmVlQW1vdW50BQAAAANuaWwDCQAAAAAAAAIFAAAADGNvbnZlcnRlZEZlZQUAAAAMY29udmVydGVkRmVlBAAAABB1c2RuQmFsYW5jZUFmdGVyCQEAAAAKZ2V0QmFsYW5jZQAAAAEFAAAABnVzZG5JZAMJAAAAAAAAAgUAAAAQdXNkbkJhbGFuY2VBZnRlcgUAAAAQdXNkbkJhbGFuY2VBZnRlcgkAAGUAAAACBQAAABB1c2RuQmFsYW5jZUFmdGVyBQAAABF1c2RuQmFsYW5jZUJlZm9yZQkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAA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", "height": 3170281, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GHjq6Tw2R3dS4SbaPh3KJEBfr21qkMP1pBf7DLqtJoVY Next: CW4kicyPj4c5BN1JpveurJE4L2EHnKZJFd9ZkbtSvJaf Diff:
OldNewDifferences
3636
3737 @Callable(i)
3838 func swap (routesStr,minToReceive) = {
39+ let balance0 = (getBalance(i.payments[0].assetId) - i.payments[0].amount)
3940 func doSwap (amount0,swap) = {
4041 let swapLi = split(swap, ",")
41- let $t0906987 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
42- let dApp = $t0906987._1
43- let dAppType = $t0906987._2
44- let t0Str = $t0906987._3
45- let t1Str = $t0906987._4
42+ let $t09811062 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
43+ let dApp = $t09811062._1
44+ let dAppType = $t09811062._2
45+ let t0Str = $t09811062._3
46+ let t1Str = $t09811062._4
4647 let t0 = getAssetBytes(t0Str)
4748 let t1 = getAssetBytes(t1Str)
4849 let balanceBefore = getBalance(t1)
141142 then true
142143 else (amountIn > i.payments[0].amount))
143144 then throw("wrong asset attached as payment")
144- else [ScriptTransfer(i.caller, cleanTotalAmount, asset1)]
145+ else [ScriptTransfer(i.caller, cleanTotalAmount, asset1), ScriptTransfer(i.caller, (getBalance(i.payments[0].assetId) - balance0), asset0Id)]
145146 else throw("Strict value is not equal to itself.")
146147 }
147148 else throw("Strict value is not equal to itself.")
153154
154155 @Callable(i)
155156 func swapWithReferral (routesStr,minToReceive,refKey) = {
157+ let balance0 = (getBalance(i.payments[0].assetId) - i.payments[0].amount)
156158 func doSwap (amount0,swap) = {
157159 let swapLi = split(swap, ",")
158- let $t032493330 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
159- let dApp = $t032493330._1
160- let dAppType = $t032493330._2
161- let t0Str = $t032493330._3
162- let t1Str = $t032493330._4
160+ let $t034873568 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
161+ let dApp = $t034873568._1
162+ let dAppType = $t034873568._2
163+ let t0Str = $t034873568._3
164+ let t1Str = $t034873568._4
163165 let t0 = getAssetBytes(t0Str)
164166 let t1 = getAssetBytes(t1Str)
165167 let balanceBefore = getBalance(t1)
261263 then true
262264 else (amountIn > i.payments[0].amount))
263265 then throw("wrong asset attached as payment")
264- else [ScriptTransfer(i.caller, cleanTotalAmount, asset1), ScriptTransfer(referralAddress, refUsdnShare, usdnId)]
266+ else [ScriptTransfer(i.caller, cleanTotalAmount, asset1), ScriptTransfer(referralAddress, refUsdnShare, usdnId), ScriptTransfer(i.caller, (getBalance(i.payments[0].assetId) - balance0), asset0Id)]
265267 else throw("Strict value is not equal to itself.")
266268 }
267269 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let usdnIdStr = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
55
66 let usdnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
77
88 func tryGetString (key) = match getString(this, key) {
99 case b: String =>
1010 b
1111 case _ =>
1212 ""
1313 }
1414
1515
1616 func getAssetString (assetId) = match assetId {
1717 case b: ByteVector =>
1818 toBase58String(b)
1919 case _ =>
2020 "WAVES"
2121 }
2222
2323
2424 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
2525 then unit
2626 else fromBase58String(assetIdStr)
2727
2828
2929 func getBalance (assetId) = match assetId {
3030 case x: Unit =>
3131 wavesBalance(this).available
3232 case _ =>
3333 assetBalance(this, value(assetId))
3434 }
3535
3636
3737 @Callable(i)
3838 func swap (routesStr,minToReceive) = {
39+ let balance0 = (getBalance(i.payments[0].assetId) - i.payments[0].amount)
3940 func doSwap (amount0,swap) = {
4041 let swapLi = split(swap, ",")
41- let $t0906987 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
42- let dApp = $t0906987._1
43- let dAppType = $t0906987._2
44- let t0Str = $t0906987._3
45- let t1Str = $t0906987._4
42+ let $t09811062 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
43+ let dApp = $t09811062._1
44+ let dAppType = $t09811062._2
45+ let t0Str = $t09811062._3
46+ let t1Str = $t09811062._4
4647 let t0 = getAssetBytes(t0Str)
4748 let t1 = getAssetBytes(t1Str)
4849 let balanceBefore = getBalance(t1)
4950 if ((balanceBefore == balanceBefore))
5051 then {
5152 let i1 = if ((dAppType == "swopfi"))
5253 then invoke(Address(fromBase58String(dApp)), "exchange", [1], [AttachedPayment(t0, amount0)])
5354 else invoke(Address(fromBase58String(dApp)), "swap", [t1Str, 0], [AttachedPayment(t0, amount0)])
5455 if ((i1 == i1))
5556 then {
5657 let balanceAfter = getBalance(t1)
5758 if ((balanceAfter == balanceAfter))
5859 then (balanceAfter - balanceBefore)
5960 else throw("Strict value is not equal to itself.")
6061 }
6162 else throw("Strict value is not equal to itself.")
6263 }
6364 else throw("Strict value is not equal to itself.")
6465 }
6566
6667 func doRoute (accum,route) = {
6768 let amountIn = parseIntValue(split(route, "/")[0])
6869 let swaps = split(split(route, "/")[1], ";")
6970 let swapsResult = {
7071 let $l = swaps
7172 let $s = size($l)
7273 let $acc0 = amountIn
7374 func $f0_1 ($a,$i) = if (($i >= $s))
7475 then $a
7576 else doSwap($a, $l[$i])
7677
7778 func $f0_2 ($a,$i) = if (($i >= $s))
7879 then $a
7980 else throw("List size exceeds 3")
8081
8182 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
8283 }
8384 if ((swapsResult == swapsResult))
8485 then (accum + swapsResult)
8586 else throw("Strict value is not equal to itself.")
8687 }
8788
8889 let routes = split(routesStr, "|")
8990 let amountIn = parseIntValue(split(routes[0], "/")[0])
9091 let asset0Id = getAssetBytes(split(split(split(routes[0], "/")[1], ";")[0], ",")[2])
9192 let totalOut = {
9293 let $l = routes
9394 let $s = size($l)
9495 let $acc0 = 0
9596 func $f0_1 ($a,$i) = if (($i >= $s))
9697 then $a
9798 else doRoute($a, $l[$i])
9899
99100 func $f0_2 ($a,$i) = if (($i >= $s))
100101 then $a
101102 else throw("List size exceeds 5")
102103
103104 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
104105 }
105106 if ((totalOut == totalOut))
106107 then {
107108 let feeAmount = fraction(totalOut, 29, 10000)
108109 let cleanTotalAmount = (totalOut - feeAmount)
109110 let asset1Str = split(routesStr, ",")[(size(split(routesStr, ",")) - 1)]
110111 let asset1 = getAssetBytes(asset1Str)
111112 let usdnFee = if ((asset1 == usdnId))
112113 then feeAmount
113114 else {
114115 let usdnBalanceBefore = getBalance(usdnId)
115116 if ((usdnBalanceBefore == usdnBalanceBefore))
116117 then {
117118 let poolAddressStr = tryGetString((("static_asset_" + asset1Str) + "_puzzlePool"))
118119 if ((poolAddressStr == ""))
119120 then 0
120121 else {
121122 let convertedFee = invoke(addressFromStringValue(poolAddressStr), "swap", [usdnIdStr, 0], [AttachedPayment(asset1, feeAmount)])
122123 if ((convertedFee == convertedFee))
123124 then {
124125 let usdnBalanceAfter = getBalance(usdnId)
125126 if ((usdnBalanceAfter == usdnBalanceAfter))
126127 then (usdnBalanceAfter - usdnBalanceBefore)
127128 else throw("Strict value is not equal to itself.")
128129 }
129130 else throw("Strict value is not equal to itself.")
130131 }
131132 }
132133 else throw("Strict value is not equal to itself.")
133134 }
134135 if ((usdnFee == usdnFee))
135136 then {
136137 let topUp = invoke(Address(base58'3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW'), "topUpReward", nil, [AttachedPayment(usdnId, usdnFee)])
137138 if ((topUp == topUp))
138139 then if ((minToReceive > cleanTotalAmount))
139140 then throw(("amount to receive is lower than expected one " + toString(cleanTotalAmount)))
140141 else if (if ((asset0Id != i.payments[0].assetId))
141142 then true
142143 else (amountIn > i.payments[0].amount))
143144 then throw("wrong asset attached as payment")
144- else [ScriptTransfer(i.caller, cleanTotalAmount, asset1)]
145+ else [ScriptTransfer(i.caller, cleanTotalAmount, asset1), ScriptTransfer(i.caller, (getBalance(i.payments[0].assetId) - balance0), asset0Id)]
145146 else throw("Strict value is not equal to itself.")
146147 }
147148 else throw("Strict value is not equal to itself.")
148149 }
149150 else throw("Strict value is not equal to itself.")
150151 }
151152
152153
153154
154155 @Callable(i)
155156 func swapWithReferral (routesStr,minToReceive,refKey) = {
157+ let balance0 = (getBalance(i.payments[0].assetId) - i.payments[0].amount)
156158 func doSwap (amount0,swap) = {
157159 let swapLi = split(swap, ",")
158- let $t032493330 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
159- let dApp = $t032493330._1
160- let dAppType = $t032493330._2
161- let t0Str = $t032493330._3
162- let t1Str = $t032493330._4
160+ let $t034873568 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
161+ let dApp = $t034873568._1
162+ let dAppType = $t034873568._2
163+ let t0Str = $t034873568._3
164+ let t1Str = $t034873568._4
163165 let t0 = getAssetBytes(t0Str)
164166 let t1 = getAssetBytes(t1Str)
165167 let balanceBefore = getBalance(t1)
166168 if ((balanceBefore == balanceBefore))
167169 then {
168170 let i1 = if ((dAppType == "swopfi"))
169171 then invoke(Address(fromBase58String(dApp)), "exchange", [1], [AttachedPayment(t0, amount0)])
170172 else invoke(Address(fromBase58String(dApp)), "swap", [t1Str, 0], [AttachedPayment(t0, amount0)])
171173 if ((i1 == i1))
172174 then {
173175 let balanceAfter = getBalance(t1)
174176 if ((balanceAfter == balanceAfter))
175177 then (balanceAfter - balanceBefore)
176178 else throw("Strict value is not equal to itself.")
177179 }
178180 else throw("Strict value is not equal to itself.")
179181 }
180182 else throw("Strict value is not equal to itself.")
181183 }
182184
183185 func doRoute (accum,route) = {
184186 let amountIn = parseIntValue(split(route, "/")[0])
185187 let swaps = split(split(route, "/")[1], ";")
186188 let swapsResult = {
187189 let $l = swaps
188190 let $s = size($l)
189191 let $acc0 = amountIn
190192 func $f0_1 ($a,$i) = if (($i >= $s))
191193 then $a
192194 else doSwap($a, $l[$i])
193195
194196 func $f0_2 ($a,$i) = if (($i >= $s))
195197 then $a
196198 else throw("List size exceeds 3")
197199
198200 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
199201 }
200202 if ((swapsResult == swapsResult))
201203 then (accum + swapsResult)
202204 else throw("Strict value is not equal to itself.")
203205 }
204206
205207 let routes = split(routesStr, "|")
206208 let amountIn = parseIntValue(split(routes[0], "/")[0])
207209 let asset0Id = getAssetBytes(split(split(split(routes[0], "/")[1], ";")[0], ",")[2])
208210 let totalOut = {
209211 let $l = routes
210212 let $s = size($l)
211213 let $acc0 = 0
212214 func $f0_1 ($a,$i) = if (($i >= $s))
213215 then $a
214216 else doRoute($a, $l[$i])
215217
216218 func $f0_2 ($a,$i) = if (($i >= $s))
217219 then $a
218220 else throw("List size exceeds 5")
219221
220222 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
221223 }
222224 if ((totalOut == totalOut))
223225 then {
224226 let feeAmount = fraction(totalOut, 29, 10000)
225227 let cleanTotalAmount = (totalOut - feeAmount)
226228 let asset1Str = split(routesStr, ",")[(size(split(routesStr, ",")) - 1)]
227229 let asset1 = getAssetBytes(asset1Str)
228230 let usdnFee = if ((asset1 == usdnId))
229231 then feeAmount
230232 else {
231233 let usdnBalanceBefore = getBalance(usdnId)
232234 if ((usdnBalanceBefore == usdnBalanceBefore))
233235 then {
234236 let convertedFee = invoke(Address(fromBase58String(tryGetString((("static_asset_" + asset1Str) + "_puzzlePool")))), "swap", [usdnIdStr, 0], [AttachedPayment(asset1, feeAmount)])
235237 if ((convertedFee == convertedFee))
236238 then {
237239 let usdnBalanceAfter = getBalance(usdnId)
238240 if ((usdnBalanceAfter == usdnBalanceAfter))
239241 then (usdnBalanceAfter - usdnBalanceBefore)
240242 else throw("Strict value is not equal to itself.")
241243 }
242244 else throw("Strict value is not equal to itself.")
243245 }
244246 else throw("Strict value is not equal to itself.")
245247 }
246248 if ((usdnFee == usdnFee))
247249 then {
248250 let referralAddress = if ((refKey == "muna"))
249251 then Address(base58'3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU')
250252 else if ((refKey == "keeper"))
251253 then Address(base58'3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM')
252254 else if ((refKey == "tci"))
253255 then Address(base58'3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM')
254256 else Address(base58'3PQxXXiQXpWsjDwQLYxyuoPiaLnVHjJguFo')
255257 let refUsdnShare = fraction(usdnFee, 2, 10)
256258 let topUp = invoke(Address(base58'3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW'), "topUpReward", nil, [AttachedPayment(usdnId, (usdnFee - refUsdnShare))])
257259 if ((topUp == topUp))
258260 then if ((minToReceive > cleanTotalAmount))
259261 then throw(("amount to receive is lower than expected one " + toString(cleanTotalAmount)))
260262 else if (if ((asset0Id != i.payments[0].assetId))
261263 then true
262264 else (amountIn > i.payments[0].amount))
263265 then throw("wrong asset attached as payment")
264- else [ScriptTransfer(i.caller, cleanTotalAmount, asset1), ScriptTransfer(referralAddress, refUsdnShare, usdnId)]
266+ else [ScriptTransfer(i.caller, cleanTotalAmount, asset1), ScriptTransfer(referralAddress, refUsdnShare, usdnId), ScriptTransfer(i.caller, (getBalance(i.payments[0].assetId) - balance0), asset0Id)]
265267 else throw("Strict value is not equal to itself.")
266268 }
267269 else throw("Strict value is not equal to itself.")
268270 }
269271 else throw("Strict value is not equal to itself.")
270272 }
271273
272274
273275
274276 @Callable(i)
275277 func addTokenPuzzlePool (assetIdStr,poolAddressStr) = if ((i.caller != Address(base58'3P8qVX189qpoTJZQQQdKS9endHK5sxWsvrd')))
276278 then throw("admin only")
277279 else [StringEntry((("static_asset_" + assetIdStr) + "_puzzlePool"), poolAddressStr)]
278280
279281
280282 @Verifier(tx)
281283 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
282284

github/deemru/w8io/786bc32 
44.78 ms