tx · 5WAd5iLZ9EVt2AjjapnsEVyA8G9vgfFQUfAXJNYCijME

3N11gzZic4yASFhatzjC8zvLnpNhDo2B1Rv:  -0.01000000 Waves

2023.10.06 13:39 [2786649] smart account 3N11gzZic4yASFhatzjC8zvLnpNhDo2B1Rv > SELF 0.00000000 Waves

{ "type": 13, "id": "5WAd5iLZ9EVt2AjjapnsEVyA8G9vgfFQUfAXJNYCijME", "fee": 1000000, "feeAssetId": null, "timestamp": 1696588766396, "version": 2, "chainId": 84, "sender": "3N11gzZic4yASFhatzjC8zvLnpNhDo2B1Rv", "senderPublicKey": "EnUXxxhBK8wUfh1FveDYv9G5HBMXop6YwZWzVrBrLo2i", "proofs": [ "4LqXpj4Yo5pQxzNUv64iUVKjV3KHTUdXRtPT6ThZoJEKfB13e7842rhzAorxYe3TFKQwQrZik5oZ7hDaph6gSN5v" ], "script": "base64:BgIfCAISABIICgYBAQgIGBgSBAoCCAgSBAoCCAESAwoBCAoADGFkbWluQWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzAgVhZG1pbgIAAA13eFN3YXBBZGRyZXNzAiMzUDY4ek5pdWZzdTF2aVpwdTFhWTNjZGFoUlJLY3ZWNU45MwELd3JpdGVTdHJpbmcCA2tleQtzdHJpbmdWYWx1ZQkBC1N0cmluZ0VudHJ5AgUDa2V5BQtzdHJpbmdWYWx1ZQEMd3JpdGVJbnRlZ2VyAgNrZXkMaW50ZWdlclZhbHVlCQEMSW50ZWdlckVudHJ5AgUDa2V5BQxpbnRlZ2VyVmFsdWUBB2lzQWRtaW4BDWNhbGxlckFkZHJlc3MDCQAAAgUNY2FsbGVyQWRkcmVzcwkA2QQBBQxhZG1pbkFkZHJlc3MGBwENc3BsaXRDZm1tSnNvbgEFZW50cnkJALUJAgUFZW50cnkCAS8BEWRldGVybWluZVBsYXRmb3JtAwRjZm1tCXRva2VuSWRJbgp0b2tlbklkT3V0BARpdGVtCQENc3BsaXRDZm1tSnNvbgEFBGNmbW0EC2lucHV0QW1vdW50CQC2CQEJAJEDAgUEaXRlbQACBAckbWF0Y2gwBQtpbnB1dEFtb3VudAMJAAECBQckbWF0Y2gwAgNJbnQEC2lucHV0QW1vdW50BQckbWF0Y2gwAwkAAAIJAJEDAgUEaXRlbQAAAgRTV09QCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUEaXRlbQABAghleGNoYW5nZQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQl0b2tlbklkSW4FC2lucHV0QW1vdW50BQNuaWwDCQAAAgkAkQMCBQRpdGVtAAACDldhdmVzIEV4Y2hhbmdlCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDXd4U3dhcEFkZHJlc3MCBHN3YXAJAMwIAgABCQDMCAIFCnRva2VuSWRPdXQJAMwIAgUMYWRtaW5BZGRyZXNzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUJdG9rZW5JZEluBQtpbnB1dEFtb3VudAUDbmlsAwkAAAIJAJEDAgUEaXRlbQAAAgtQdXp6bGUgU3dhcAkA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ARRkaXN0cmlidXRlRGlmZmVyZW5jZQIFBXN3YXBzBQRkaWZmAl8xBQVzd2FwcwUNYWRqdXN0ZWRTd2FwcwUBaQEFc2V0dXAAAwkBASEBCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzAgVhZG1pbgkAzAgCCQELd3JpdGVTdHJpbmcCAgVhZG1pbgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBQNuaWwJAAIBAhNEYXBwIGFscmVhZHkgc2V0dXAhAWkBCGJhc2ljQXJiBgtzdGFydEFtb3VudA5zZWNvbmRBbW91bnRJbgpmaXJzdFRva2VuC3NlY29uZFRva2VuCWZpcnN0U3dhcApzZWNvbmRTd2FwAwkBB2lzQWRtaW4BCAgFAWkGY2FsbGVyBWJ5dGVzBAxmaXJzdFRva2VuSWQEA3RJZAkA2QQBBQpmaXJzdFRva2VuBAckbWF0Y2gwBQN0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQDdElkBQckbWF0Y2gwBQN0SWQJAAIBAhBJbnZhbGlkIGRhdGF0eXBlBBlhdmFpbGFibGVBbW91bnRGaXJzdFRva2VuCQDwBwIFBHRoaXMFDGZpcnN0VG9rZW5JZAMJAGcCBRlhdmFpbGFibGVBbW91bnRGaXJzdFRva2VuBQtzdGFydEFtb3VudAQGcmVzdWx0CQEMcHJvY2Vzc0NmbW1zAwUJZmlyc3RTd2FwBQpmaXJzdFRva2VuBQtzZWNvbmRUb2tlbgQNc2Vjb25kVG9rZW5JZAQCaWQJANkEAQULc2Vjb25kVG9rZW4EByRtYXRjaDAFAmlkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmlkBQckbWF0Y2gwBQJpZAkAAgECEEludmFsaWQgZGF0YXR5cGUEGmF2YWlsYWJsZUFtb3VudFNlY29uZFRva2VuCQDwBwIFBHRoaXMFDXNlY29uZFRva2VuSWQEC3NlY29uZFN3YXBzAwkAAAIFGmF2YWlsYWJsZUFtb3VudFNlY29uZFRva2VuBQ5zZWNvbmRBbW91bnRJbgUKc2Vjb25kU3dhcAkBF2hhbmRsZVNlY29uZElucHV0QW1vdW50AwUOc2Vjb25kQW1vdW50SW4FGmF2YWlsYWJsZUFtb3VudFNlY29uZFRva2VuBQpzZWNvbmRTd2FwBAlyZXN1bHRUd28JAQxwcm9jZXNzQ2ZtbXMDBQtzZWNvbmRTd2FwcwULc2Vjb25kVG9rZW4FCmZpcnN0VG9rZW4EGGN1cnJlbnRTdGFydFRva2VuQmFsYW5jZQkA8AcCBQR0aGlzBQxmaXJzdFRva2VuSWQDCQBmAgUYY3VycmVudFN0YXJ0VG9rZW5CYWxhbmNlBQtzdGFydEFtb3VudAUDbmlsCQACAQIZVHJhZGUgd2FzIG5vdCBwcm9maXRhYmxlIQkAAgECKUF2YWlsYWJsZSBpbnB1dCBhbW91bnQgaXMgbm90IHN1ZmZpY2llbnQhCQACAQIqQWRkcmVzcyBkb2VzIG5vdCBtYXRjaCB3aXRoIGFkbWluIGFkZHJlc3MhAWkBEXVwZGF0ZVN0cmluZ0VudHJ5AgNrZXkLc3RyaW5nVmFsdWUDCQEHaXNBZG1pbgEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC3dyaXRlU3RyaW5nAgUDa2V5BQtzdHJpbmdWYWx1ZQUDbmlsCQACAQIqQWRkcmVzcyBkb2VzIG5vdCBtYXRjaCB3aXRoIGFkbWluIGFkZHJlc3MhAWkBEnVwZGF0ZUludGVnZXJFbnRyeQIDa2V5DGludGVnZXJWYWx1ZQMJAQdpc0FkbWluAQgIBQFpBmNhbGxlcgVieXRlcwkAzAgCCQEMd3JpdGVJbnRlZ2VyAgUDa2V5BQxpbnRlZ2VyVmFsdWUFA25pbAkAAgECKkFkZHJlc3MgZG9lcyBub3QgbWF0Y2ggd2l0aCBhZG1pbiBhZGRyZXNzIQFpARJkZWxldGVTdG9yYWdlRW50cnkBA2tleQMJAQdpc0FkbWluAQgIBQFpBmNhbGxlcgVieXRlcwkAzAgCCQELRGVsZXRlRW50cnkBBQNrZXkFA25pbAkAAgECKkFkZHJlc3MgZG9lcyBub3QgbWF0Y2ggd2l0aCBhZG1pbiBhZGRyZXNzIQECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXmonmw5", "height": 2786649, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: J2DMxezfqgViwjspp1h55dBuFpyFabwac4nMEjM7wxNR Next: 3KojrtqfHoJe5euPC8h4gvhNLqnDSfti6yXYZXrxvWeJ Diff:
OldNewDifferences
118118
119119
120120 @Callable(i)
121-func setup (admin) = if (!(isDefined(getString(this, "admin"))))
122- then [writeString("admin", admin)]
121+func setup () = if (!(isDefined(getString(this, "admin"))))
122+ then [writeString("admin", toBase58String(i.caller.bytes))]
123123 else throw("Dapp already setup!")
124124
125125
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let adminAddress = valueOrElse(getString(this, "admin"), "")
55
66 let wxSwapAddress = "3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93"
77
88 func writeString (key,stringValue) = StringEntry(key, stringValue)
99
1010
1111 func writeInteger (key,integerValue) = IntegerEntry(key, integerValue)
1212
1313
1414 func isAdmin (callerAddress) = if ((callerAddress == fromBase58String(adminAddress)))
1515 then true
1616 else false
1717
1818
1919 func splitCfmmJson (entry) = split(entry, "/")
2020
2121
2222 func determinePlatform (cfmm,tokenIdIn,tokenIdOut) = {
2323 let item = splitCfmmJson(cfmm)
2424 let inputAmount = parseInt(item[2])
2525 match inputAmount {
2626 case inputAmount: Int =>
2727 if ((item[0] == "SWOP"))
2828 then invoke(addressFromStringValue(item[1]), "exchange", [1], [AttachedPayment(fromBase58String(tokenIdIn), inputAmount)])
2929 else if ((item[0] == "Waves Exchange"))
3030 then invoke(addressFromStringValue(wxSwapAddress), "swap", [1, tokenIdOut, adminAddress], [AttachedPayment(fromBase58String(tokenIdIn), inputAmount)])
3131 else if ((item[0] == "Puzzle Swap"))
3232 then invoke(addressFromStringValue(item[1]), "swap", [tokenIdOut, 1], [AttachedPayment(fromBase58String(tokenIdIn), inputAmount)])
3333 else throw("Platform id does not match!")
3434 case _ =>
3535 throw("value is not an int!")
3636 }
3737 }
3838
3939
4040 func processCfmms (swaps,tokenIdIn,tokenIdOut) = {
4141 func invokeSwap (accum,next) = {
4242 let $t022642291 = accum
4343 let result = $t022642291._1
4444 let index = $t022642291._2
4545 if ((size(swaps) > index))
4646 then $Tuple2(determinePlatform(next, tokenIdIn, tokenIdOut), (index + 1))
4747 else $Tuple2(result, index)
4848 }
4949
5050 let $l = swaps
5151 let $s = size($l)
5252 let $acc0 = $Tuple2(nil, 0)
5353 func $f0_1 ($a,$i) = if (($i >= $s))
5454 then $a
5555 else invokeSwap($a, $l[$i])
5656
5757 func $f0_2 ($a,$i) = if (($i >= $s))
5858 then $a
5959 else throw("List size exceeds 40")
6060
6161 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40)
6262 }
6363
6464
6565 func distributeDifference (swaps,diff) = {
6666 let totalSwaps = size(swaps)
6767 func adjustAmounts (accum,next) = {
6868 let $t026322674 = accum
6969 let adjustedSwaps = $t026322674._1
7070 let remainingDiff = $t026322674._2
7171 let item = splitCfmmJson(next)
7272 let inputAmount = parseInt(item[2])
7373 match inputAmount {
7474 case input: Int =>
7575 let amountToAdjust = {
7676 let remainDiff = (remainingDiff / ((totalSwaps - size(adjustedSwaps)) + 1))
7777 match remainDiff {
7878 case x: Int =>
7979 if ((remainingDiff > 0))
8080 then min([input, x])
8181 else if ((0 > remainingDiff))
8282 then max([(-(input) + 1), x])
8383 else 0
8484 case _ =>
8585 throw("Wrong datatype")
8686 }
8787 }
8888 let newInputAmount = max([1, (input + amountToAdjust)])
8989 let newItem = ((((item[0] + "/") + item[1]) + "/") + toString(newInputAmount))
9090 $Tuple2((adjustedSwaps :+ newItem), (remainingDiff - (amountToAdjust * ((totalSwaps - size(adjustedSwaps)) + 1))))
9191 case _ =>
9292 throw("Input has wrong datatype!")
9393 }
9494 }
9595
9696 let $l = swaps
9797 let $s = size($l)
9898 let $acc0 = $Tuple2(nil, diff)
9999 func $f0_1 ($a,$i) = if (($i >= $s))
100100 then $a
101101 else adjustAmounts($a, $l[$i])
102102
103103 func $f0_2 ($a,$i) = if (($i >= $s))
104104 then $a
105105 else throw("List size exceeds 40")
106106
107107 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40)
108108 }
109109
110110
111111 func handleSecondInputAmount (predeterminedAmount,availableAmount,swaps) = {
112112 let diff = (availableAmount - predeterminedAmount)
113113 let adjustedSwaps = if ((diff != 0))
114114 then distributeDifference(swaps, diff)._1
115115 else swaps
116116 adjustedSwaps
117117 }
118118
119119
120120 @Callable(i)
121-func setup (admin) = if (!(isDefined(getString(this, "admin"))))
122- then [writeString("admin", admin)]
121+func setup () = if (!(isDefined(getString(this, "admin"))))
122+ then [writeString("admin", toBase58String(i.caller.bytes))]
123123 else throw("Dapp already setup!")
124124
125125
126126
127127 @Callable(i)
128128 func basicArb (startAmount,secondAmountIn,firstToken,secondToken,firstSwap,secondSwap) = if (isAdmin(i.caller.bytes))
129129 then {
130130 let firstTokenId = {
131131 let tId = fromBase58String(firstToken)
132132 match tId {
133133 case tId: ByteVector =>
134134 tId
135135 case _ =>
136136 throw("Invalid datatype")
137137 }
138138 }
139139 let availableAmountFirstToken = assetBalance(this, firstTokenId)
140140 if ((availableAmountFirstToken >= startAmount))
141141 then {
142142 let result = processCfmms(firstSwap, firstToken, secondToken)
143143 let secondTokenId = {
144144 let id = fromBase58String(secondToken)
145145 match id {
146146 case id: ByteVector =>
147147 id
148148 case _ =>
149149 throw("Invalid datatype")
150150 }
151151 }
152152 let availableAmountSecondToken = assetBalance(this, secondTokenId)
153153 let secondSwaps = if ((availableAmountSecondToken == secondAmountIn))
154154 then secondSwap
155155 else handleSecondInputAmount(secondAmountIn, availableAmountSecondToken, secondSwap)
156156 let resultTwo = processCfmms(secondSwaps, secondToken, firstToken)
157157 let currentStartTokenBalance = assetBalance(this, firstTokenId)
158158 if ((currentStartTokenBalance > startAmount))
159159 then nil
160160 else throw("Trade was not profitable!")
161161 }
162162 else throw("Available input amount is not sufficient!")
163163 }
164164 else throw("Address does not match with admin address!")
165165
166166
167167
168168 @Callable(i)
169169 func updateStringEntry (key,stringValue) = if (isAdmin(i.caller.bytes))
170170 then [writeString(key, stringValue)]
171171 else throw("Address does not match with admin address!")
172172
173173
174174
175175 @Callable(i)
176176 func updateIntegerEntry (key,integerValue) = if (isAdmin(i.caller.bytes))
177177 then [writeInteger(key, integerValue)]
178178 else throw("Address does not match with admin address!")
179179
180180
181181
182182 @Callable(i)
183183 func deleteStorageEntry (key) = if (isAdmin(i.caller.bytes))
184184 then [DeleteEntry(key)]
185185 else throw("Address does not match with admin address!")
186186
187187
188188 @Verifier(tx)
189189 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
190190

github/deemru/w8io/873ac7e 
32.40 ms