tx · 9fbZK5ELSXCnE29BHGurhJzXhDhRnanGJsZ2joEVk4oz

3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU:  -0.01300000 Waves

2023.01.24 12:00 [3484341] smart account 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > SELF 0.00000000 Waves

{ "type": 13, "id": "9fbZK5ELSXCnE29BHGurhJzXhDhRnanGJsZ2joEVk4oz", "fee": 1300000, "feeAssetId": null, "timestamp": 1674550905357, "version": 2, "chainId": 87, "sender": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU", "senderPublicKey": "Dmn1fWHxpwN789LPfoMHFj7uSYKSsb5VFfyNQyQ629f9", "proofs": [ "2Ujz7WzSmrrVhVWTNhmdyZVgY6Q75BZdiBsK96zrvcwijYyttT3kCPfyZCax9SUAxNBZ9cEL8iwSiPYaudGGAACL" ], "script": "base64:AAIFAAAAAAAAABUIAhIECgIIARIFCgMIAQgSBAoCCAgAAAAIAAAAAAl1c2RuSWRTdHICAAAALERHMnhGa1BkRHdLVW9Ca3pHQWhRdExwU0d6ZlhMaUNZUEV6ZUtIMkFkMjRwAAAAAAZ1c2RuSWQBAAAAILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgIAAAAAAQAAAA5nZXRBc3NldFN0cmluZwAAAAEAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMAUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABYgUAAAAHJG1hdGNoMAkAAlgAAAABBQAAAAFiAgAAAAVXQVZFUwEAAAANZ2V0QXNzZXRCeXRlcwAAAAEAAAAKYXNzZXRJZFN0cgMJAAAAAAAAAgUAAAAKYXNzZXRJZFN0cgIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAAKYXNzZXRJZFN0cgEAAAAKZ2V0QmFsYW5jZQAAAAEAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMAUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAABeAUAAAAHJG1hdGNoMAgJAAPvAAAAAQUAAAAEdGhpcwAAAAlhdmFpbGFibGUJAAPwAAAAAgUAAAAEdGhpcwkBAAAABXZhbHVlAAAAAQUAAAAHYXNzZXRJZAEAAAAGc3dhcFdYAAAAAwAAAAZhc3NldDAAAAAGYXNzZXQxAAAAB2Ftb3VudDAEAAAACnByaWNlQXNzZXQDAwkAAAAAAAACBQAAAAZhc3NldDACAAAALDM0TjlZY0VFVExXbjkzcVlRNjRFc1AxeDg5dFNydUpVNDRSckVNU1hYRVBKBgkAAAAAAAACBQAAAAZhc3NldDECAAAALDM0TjlZY0VFVExXbjkzcVlRNjRFc1AxeDg5dFNydUpVNDRSckVNU1hYRVBKAgAAACwzNE45WWNFRVRMV245M3FZUTY0RXNQMXg4OXRTcnVKVTQ0UnJFTVNYWEVQSgMDCQAAAAAAAAIFAAAABmFzc2V0MAIAAAAsNlh0SGpwWGJzOVJSSlAyU3I5R1V5VnF6QUNjYnk5VGtUaEhYbmpWQzVDREoGCQAAAAAAAAIFAAAABmFzc2V0MQIAAAAsNlh0SGpwWGJzOVJSSlAyU3I5R1V5VnF6QUNjYnk5VGtUaEhYbmpWQzVDREoCAAAALDZYdEhqcFhiczlSUkpQMlNyOUdVeVZxekFDY2J5OVRrVGhIWG5qVkM1Q0RKAwMJAAAAAAAAAgUAAAAGYXNzZXQwBQAAAAl1c2RuSWRTdHIGCQAAAAAAAAIFAAAABmFzc2V0MQUAAAAJdXNkbklkU3RyBQAAAAl1c2RuSWRTdHIDAwkAAAAAAAACBQAAAAZhc3NldDACAAAALDhMUVc4ZjdQNWQ1UFpNN0d0WkVCZ2FxUlBHU3pTM0RmUHVpWHJVUko0QUpTBgkAAAAAAAACBQAAAAZhc3NldDECAAAALDhMUVc4ZjdQNWQ1UFpNN0d0WkVCZ2FxUlBHU3pTM0RmUHVpWHJVUko0QUpTAgAAACw4TFFXOGY3UDVkNVBaTTdHdFpFQmdhcVJQR1N6UzNEZlB1aVhyVVJKNEFKUwMDCQAAAAAAAAIFAAAABmFzc2V0MAIAAAAFV0FWRVMGCQAAAAAAAAIFAAAABmFzc2V0MQIAAAAFV0FWRVMCAAAABVdBVkVTBQAAAAl1c2RuSWRTdHIEAAAADmZhY3RvcnlBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFXeFveir5RKq6LMepvE5AlvvSpuKK7CQJBBAAAAAhhc3NldEludAkAAaQAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAA5mYWN0b3J5QWRkcmVzcwkAASwAAAACAgAAACglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fAwkBAAAAAiE9AAAAAgUAAAAGYXNzZXQxBQAAAApwcmljZUFzc2V0BQAAAAZhc3NldDEFAAAABmFzc2V0MAQAAAAHdXNkbkludAkAAaQAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAA5mYWN0b3J5QWRkcmVzcwkAASwA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", "height": 3484341, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4SsxnQU7ym4Ljb2scyiwc2FSTHDgyzm1Tb7gmmoYKQBb Next: 8WHAgaYvNFBBqZ8Gs7wSumPC7Pbyq9T5P43nJVK2x4rU Diff:
OldNewDifferences
3535
3636
3737 func swapWX (asset0,asset1,amount0) = {
38- let priceAsset = if (if ((asset0 == "WAVES"))
38+ let priceAsset = if (if ((asset0 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
3939 then true
40- else (asset1 == "WAVES"))
41- then "WAVES"
42- else if (if ((asset0 == usdnIdStr))
40+ else (asset1 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
41+ then "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
42+ else if (if ((asset0 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
4343 then true
44- else (asset1 == usdnIdStr))
45- then usdnIdStr
46- else if (if ((asset0 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
44+ else (asset1 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
45+ then "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
46+ else if (if ((asset0 == usdnIdStr))
4747 then true
48- else (asset1 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
49- then "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
50- else "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
48+ else (asset1 == usdnIdStr))
49+ then usdnIdStr
50+ else if (if ((asset0 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
51+ then true
52+ else (asset1 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
53+ then "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
54+ else if (if ((asset0 == "WAVES"))
55+ then true
56+ else (asset1 == "WAVES"))
57+ then "WAVES"
58+ else usdnIdStr
5159 let factoryAddress = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv')
5260 let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != priceAsset))
5361 then asset1
8694 func swapInternal (i,routesStr,minToReceive,refKey) = {
8795 func doSwap (amount,swap) = {
8896 let swapLi = split(swap, ",")
89- let $t024232504 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
90- let dApp = $t024232504._1
91- let dAppType = $t024232504._2
92- let t0Str = $t024232504._3
93- let t1Str = $t024232504._4
97+ let $t027572838 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
98+ let dApp = $t027572838._1
99+ let dAppType = $t027572838._2
100+ let t0Str = $t027572838._3
101+ let t1Str = $t027572838._4
94102 let t0 = getAssetBytes(t0Str)
95103 let amount0 = if ((amount != 0))
96104 then amount
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 func swapWX (asset0,asset1,amount0) = {
38- let priceAsset = if (if ((asset0 == "WAVES"))
38+ let priceAsset = if (if ((asset0 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
3939 then true
40- else (asset1 == "WAVES"))
41- then "WAVES"
42- else if (if ((asset0 == usdnIdStr))
40+ else (asset1 == "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"))
41+ then "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
42+ else if (if ((asset0 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
4343 then true
44- else (asset1 == usdnIdStr))
45- then usdnIdStr
46- else if (if ((asset0 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
44+ else (asset1 == "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"))
45+ then "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
46+ else if (if ((asset0 == usdnIdStr))
4747 then true
48- else (asset1 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
49- then "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
50- else "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
48+ else (asset1 == usdnIdStr))
49+ then usdnIdStr
50+ else if (if ((asset0 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
51+ then true
52+ else (asset1 == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
53+ then "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
54+ else if (if ((asset0 == "WAVES"))
55+ then true
56+ else (asset1 == "WAVES"))
57+ then "WAVES"
58+ else usdnIdStr
5159 let factoryAddress = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv')
5260 let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != priceAsset))
5361 then asset1
5462 else asset0))))
5563 let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + priceAsset)))
5664 let poolConfig = split(getStringValue(factoryAddress, (((("%d%d%s__" + assetInt) + "__") + usdnInt) + "__config")), "__")
5765 let poolAddress = addressFromStringValue(poolConfig[1])
5866 let poolAssetId = getAssetBytes(poolConfig[3])
5967 let inv1 = invoke(poolAddress, "putOneTkn", [0, false], [AttachedPayment(getAssetBytes(asset0), amount0)])
6068 if ((inv1 == inv1))
6169 then {
6270 let poolTokenAmount = getBalance(poolAssetId)
6371 if ((poolTokenAmount == poolTokenAmount))
6472 then {
6573 let asset1BalanceBefore = getBalance(getAssetBytes(asset1))
6674 if ((asset1BalanceBefore == asset1BalanceBefore))
6775 then {
6876 let inv2 = invoke(poolAddress, "getOneTkn", [asset1, 0], [AttachedPayment(poolAssetId, poolTokenAmount)])
6977 if ((inv2 == inv2))
7078 then {
7179 let amount1 = (getBalance(getAssetBytes(asset1)) - asset1BalanceBefore)
7280 if ((amount1 == amount1))
7381 then amount1
7482 else throw("Strict value is not equal to itself.")
7583 }
7684 else throw("Strict value is not equal to itself.")
7785 }
7886 else throw("Strict value is not equal to itself.")
7987 }
8088 else throw("Strict value is not equal to itself.")
8189 }
8290 else throw("Strict value is not equal to itself.")
8391 }
8492
8593
8694 func swapInternal (i,routesStr,minToReceive,refKey) = {
8795 func doSwap (amount,swap) = {
8896 let swapLi = split(swap, ",")
89- let $t024232504 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
90- let dApp = $t024232504._1
91- let dAppType = $t024232504._2
92- let t0Str = $t024232504._3
93- let t1Str = $t024232504._4
97+ let $t027572838 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
98+ let dApp = $t027572838._1
99+ let dAppType = $t027572838._2
100+ let t0Str = $t027572838._3
101+ let t1Str = $t027572838._4
94102 let t0 = getAssetBytes(t0Str)
95103 let amount0 = if ((amount != 0))
96104 then amount
97105 else getBalance(t0)
98106 let i1 = if ((dAppType == "swopfi"))
99107 then invoke(Address(fromBase58String(dApp)), "exchange", [1], [AttachedPayment(t0, amount0)])
100108 else if ((dAppType == "puzzle"))
101109 then invoke(Address(fromBase58String(dApp)), "swap", [t1Str, 0], [AttachedPayment(t0, amount0)])
102110 else if ((dAppType == "wx"))
103111 then swapWX(t0Str, t1Str, amount0)
104112 else throw("internal aggregator issue: unknow pool type")
105113 if ((i1 == i1))
106114 then 0
107115 else throw("Strict value is not equal to itself.")
108116 }
109117
110118 func doRoute (accum,route) = {
111119 let amountIn = parseIntValue(split(route, "/")[0])
112120 let swaps = split(split(route, "/")[1], ";")
113121 let swapsResult = {
114122 let $l = swaps
115123 let $s = size($l)
116124 let $acc0 = amountIn
117125 func $f0_1 ($a,$i) = if (($i >= $s))
118126 then $a
119127 else doSwap($a, $l[$i])
120128
121129 func $f0_2 ($a,$i) = if (($i >= $s))
122130 then $a
123131 else throw("List size exceeds 3")
124132
125133 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
126134 }
127135 if ((swapsResult == swapsResult))
128136 then (accum + swapsResult)
129137 else throw("Strict value is not equal to itself.")
130138 }
131139
132140 let asset1Str = split(routesStr, ",")[(size(split(routesStr, ",")) - 1)]
133141 let asset1 = getAssetBytes(asset1Str)
134142 let routes = split(routesStr, "|")
135143 let swaps = {
136144 let $l = routes
137145 let $s = size($l)
138146 let $acc0 = 0
139147 func $f0_1 ($a,$i) = if (($i >= $s))
140148 then $a
141149 else doRoute($a, $l[$i])
142150
143151 func $f0_2 ($a,$i) = if (($i >= $s))
144152 then $a
145153 else throw("List size exceeds 4")
146154
147155 $f0_2($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4)
148156 }
149157 if ((swaps == swaps))
150158 then {
151159 let totalOut = getBalance(asset1)
152160 let feeAmount = fraction(totalOut, 29, 10000)
153161 let cleanTotalAmount = (totalOut - feeAmount)
154162 if ((minToReceive > cleanTotalAmount))
155163 then throw(("amount to receive is lower than expected one " + toString(cleanTotalAmount)))
156164 else {
157165 let usdnFee = if ((asset1 == usdnId))
158166 then feeAmount
159167 else {
160168 let poolAddressStr = tryGetString((("static_asset_" + asset1Str) + "_puzzlePool"))
161169 if ((poolAddressStr == ""))
162170 then 0
163171 else {
164172 let usdnBalanceBefore = getBalance(usdnId)
165173 if ((usdnBalanceBefore == usdnBalanceBefore))
166174 then {
167175 let convertedFee = invoke(addressFromStringValue(poolAddressStr), "swap", [usdnIdStr, 0], [AttachedPayment(asset1, feeAmount)])
168176 if ((convertedFee == convertedFee))
169177 then {
170178 let usdnBalanceAfter = getBalance(usdnId)
171179 if ((usdnBalanceAfter == usdnBalanceAfter))
172180 then (usdnBalanceAfter - usdnBalanceBefore)
173181 else throw("Strict value is not equal to itself.")
174182 }
175183 else throw("Strict value is not equal to itself.")
176184 }
177185 else throw("Strict value is not equal to itself.")
178186 }
179187 }
180188 if ((usdnFee == usdnFee))
181189 then {
182190 let referralAddress = if ((refKey == "muna"))
183191 then Address(base58'3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU')
184192 else if ((refKey == "keeper"))
185193 then Address(base58'3PNgw6Db2TGUQbjnV7ekve6q126xBC1e7eM')
186194 else if ((refKey == "tci"))
187195 then Address(base58'3P93R2GBkTGVehRPhytHr7sdxYww93jkbhm')
188196 else Address(base58'3PQxXXiQXpWsjDwQLYxyuoPiaLnVHjJguFo')
189197 let refUsdnShare = if ((refKey == "noref"))
190198 then 0
191199 else fraction(usdnFee, 2, 10)
192200 let topUp = invoke(Address(base58'3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW'), "topUpReward", nil, [AttachedPayment(usdnId, (usdnFee - refUsdnShare))])
193201 if ((topUp == topUp))
194202 then {
195203 let asset0 = i.payments[0].assetId
196204 let amount0 = (getBalance(asset0) - (if ((asset0 == usdnId))
197205 then refUsdnShare
198206 else 0))
199207 let amount1 = (getBalance(asset1) - (if ((asset1 == usdnId))
200208 then refUsdnShare
201209 else 0))
202210 (([ScriptTransfer(i.caller, amount1, asset1)] ++ (if ((refUsdnShare != 0))
203211 then [ScriptTransfer(referralAddress, refUsdnShare, usdnId)]
204212 else nil)) ++ (if ((amount0 != 0))
205213 then [ScriptTransfer(i.caller, amount0, asset0)]
206214 else nil))
207215 }
208216 else throw("Strict value is not equal to itself.")
209217 }
210218 else throw("Strict value is not equal to itself.")
211219 }
212220 }
213221 else throw("Strict value is not equal to itself.")
214222 }
215223
216224
217225 @Callable(i)
218226 func swap (routesStr,minToReceive) = swapInternal(i, routesStr, minToReceive, "noref")
219227
220228
221229
222230 @Callable(i)
223231 func swapWithReferral (routesStr,minToReceive,refKey) = swapInternal(i, routesStr, minToReceive, refKey)
224232
225233
226234
227235 @Callable(i)
228236 func addTokenPuzzlePool (assetIdStr,poolAddressStr) = if ((i.caller != Address(base58'3P8qVX189qpoTJZQQQdKS9endHK5sxWsvrd')))
229237 then throw("admin only")
230238 else [StringEntry((("static_asset_" + assetIdStr) + "_puzzlePool"), poolAddressStr)]
231239
232240
233241 @Verifier(tx)
234242 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
235243

github/deemru/w8io/6500d08 
43.63 ms