tx · 6Jm2Y3TcV2vkauLLfWvgLZjkbJZW6PopWqoQxAykqMTc

3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez:  -0.01000000 Waves

2023.02.11 15:01 [3510509] smart account 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > SELF 0.00000000 Waves

{ "type": 13, "id": "6Jm2Y3TcV2vkauLLfWvgLZjkbJZW6PopWqoQxAykqMTc", "fee": 1000000, "feeAssetId": null, "timestamp": 1676116878779, "version": 2, "chainId": 87, "sender": "3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez", "senderPublicKey": "3zaQerEjh4SK1xhin9zzs5qr337aLRFhz7z1ckjFGhMz", "proofs": [ "2HZnH1xqC2Pp7bYHv52GmMm9c35fFip229UVQBVGPMs5wGBEvjHmHAYX4DhkM7Jq5Y8i8sbXutAbCa8nZdf2LDoX" ], "script": "base64:BgKoBwgCEgMKAQESAwoBCCIOZnJlZV90b19ib3Jyb20iDVVTRE5fQVNTRVRfSUQiBGJvc3MiDmFkbWluUHVibGljS2V5IglnZXRQdXRHZXQiCWlzX3N0YWJsZSIHcHV0RnVuYyIHZ2V0RnVuYyIKZ2V0QmFsYW5jZSIHYXNzZXRJZCIHJG1hdGNoMCIBYiIIZ2V0QmFzZTEiBGRhdGEiBnBfZGF0YSIBYSICYTIiB2Fzc2V0SW4iCGFtb3VudEluIghhbW91bnRfMSIIYW1vdW50XzIiCGFtb3VudF8zIghnZXRCYXNlMiICcDEiACIDbHAxIgtpc19zdGFibGVfMSIBdCINZ2V0QXNzZXRCeXRlcyIHc3dhcF93eCIBcCICbHAiBWFzc2V0IgZhbW91bnQiCHB1dEZ1bmMxIghnZXRGdW5jMSIEcHV0MSILbHAxX2Fzc2V0aWQiC2xwQmFsYW5jZV8xIgRnZXQxIglzd2FwX3N3b3AiBnN0YWJsZSIDZXN0IgNtaW4iBXN3YXAxIgVzd2FwMiILc3dhcF9wdXp6bGUiCGFzc2V0T3V0IgRzd2FwIg9nZXRNaW5Ub1JlY2VpdmUiEGFtb3VudFdpdGhvdXRGZWUiDWFtb3VudFdpdGhGZWUiGG1pblRvUmVjZWl2ZVdpdGhTbGVlcGFnZSIBaSIEYW1udCIKY3VycmVudEJhbCIKZGF0YV9hcnJheSILJHQwMzcyMDM4MDYiCyR0MDM4MTEzODY3IgJ0MSILJHQwMzg3MjM5MjgiAnAyIgNscDIiC2lzX3N0YWJsZV8yIgJ0MiILJHQwMzkzMzM5ODkiAnAzIgNscDMiC2lzX3N0YWJsZV8zIgJ0MyILJHQwMzk5NTQwNjEiCyR0MDQwNjY0MTMyIghwdXRGdW5jMiIIZ2V0RnVuYzIiCyR0MDQxMzc0MjAzIghwdXRGdW5jMyIIZ2V0RnVuYzMiEmFtb3VudF9iZWZfYXNzZXRJbiIMbmV3X2Ftb3VudEluIgskdDA0NDA5NDUzOSIFZXN0XzEiBW1pbl8xIgskdDA0NTQ0NDY3NCIFZXN0XzIiBW1pbl8yIgskdDA0Njc5NDgwOSIFZXN0XzMiBW1pbl8zIhFhbW91bnRfYmVmX2Fzc2V0MSICbmIiEWFtb3VudF9iZWZfYXNzZXQyIgNuYjIiFWFtb3VudF9iZWZfYmFzZV9hc3NldCIFc3dhcDMiA25iMyICdHgiBnZlcmlmeQ0AAWEJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQRzdDSHZCYXRIcENod204cmVINzR3ZkV3azFQSGM4UnF5AAFiASC2JinDBPXOU5GkDkt1JC9kjFGx+t+vVCm9SNIdKrKq0QABYwkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BSRTVLSDlvUEdmRlBzN2ZHblFjSjR3TnNoRURVUEdqMXQAAWQBIK//Hnx2h59d/B6vn7HsXOeOPeI+WyGy4AZxTRb/mxVtAQFlAQFmBAFnAwkAAAIFAWYAAQILcHV0T25lVGtuVjICCXB1dE9uZVRrbgQBaAMJAAACBQFmAAECC2dldE9uZVRrblYyAglnZXRPbmVUa24JAJQKAgUBZwUBaAEBaQEBagQBawUBagMJAAECBQFrAgpCeXRlVmVjdG9yBAFsBQFrCQDwBwIFBHRoaXMFAWwICQDvBwEFBHRoaXMJYXZhaWxhYmxlAQFtAQFuBAFvCQC1CQIFAW4CAV8EAXAJAJEDAgUBbwAABAFxCQCRAwIFAW8AAQQBcgkAkQMCBQFvAAIEAXMJAJEDAgUBbwADBAF0CQCRAwIFAW8ABAQBdQkAkQMCBQFvAAUEAXYJAJEDAgUBbwAGCQCZCgcFAXAFAXEFAXIFAXMFAXQFAXUFAXYBAXcBAW4EAW8JALUJAgUBbgIBXwQBeAkAkQMCBQFvAAAEAXoJAJEDAgUBbwABBAFBCQCRAwIFAW8AAgQBQgkAkQMCBQFvAAMJAJYKBAUBeAUBegUBQQUBQgEBQwEBagMJAAACBQFqAgVXQVZFUwUEdW5pdAkA2QQBBQFqAQFEBwFFAUYBRwFIAUkBSgFwBAFLCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQFFBQFJCQDMCAIAAQkAzAgCBwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEBQwEFAUcFAUgFA25pbAMJAAACBQFLBQFLBAFMCQDZBAEFAUYEAU0JAQFpAQUBTAMJAAACBQFNBQFNBAFOCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQFFBQFKCQDMCAIFAXAJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAUwFAU0FA25pbAMJAAACBQFOBQFOBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAU8GAUUBRwFIAVABUQFSAwkAAAIFAVAAAQQBUwkA/AcECQEHQWRkcmVzcwEJANkEAQUBRQIIZXhjaGFuZ2UJAMwIAgUBUQkAzAgCBQFSBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQFDAQUBRwUBSAUDbmlsAwkAAAIFAVMFAVMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQBVAkA/AcECQEHQWRkcmVzcwEJANkEAQUBRQIIZXhjaGFuZ2UJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQFDAQUBRwUBSAUDbmlsAwkAAAIFAVQFAVQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEBVQQBRQFHAUgBVgQBVwkA/AcECQEHQWRkcmVzcwEJANkEAQUBRQIEc3dhcAkAzAgCBQFWCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEBQwEFAUcFAUgFA25pbAMJAAACBQFXBQFXBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAVgBAVkEAVoJAGUCBQFZCQBrAwUBWQAGAOgHBAJhYQkAZQIFAVoJAGsDBQFaAAUA6AcDBgkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhNhbW91bnRXaXRob3V0RmVlID0gCQCkAwEFAVkCEyAtIGFtb3VudFdpdGhGZWUgPSAJAKQDAQUBWgIeIC0gbWluVG9SZWNlaXZlV2l0aFNsZWVwYWdlID0gCQCkAwEFAmFhCQCUCgIFAVoFAmFhAgJhYgEGYm9ycm93AQJhYwMDCQECIT0CCAUCYWIGY2FsbGVyBQFjCQECIT0CCAUCYWIGY2FsbGVyBQFhBwkAAgECHnlvdSBhcmUgbm90IGFsbG93ZWQgdG8gYm9ycm93IQQCYWQJAQFpAQUBYgMJAGYCBQJhYwUCYWQJAAIBAhxZb3UgY2Fubm5vdCBib3Jyb3cgdGhhdCBtdWNoCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJhYgZjYWxsZXIFAmFjBQFiBQNuaWwCYWIBAXkBAW4DAwkBAiE9AggFAmFiBmNhbGxlcgUEdGhpcwkBAiE9AggFAmFiBmNhbGxlcgUBYwcJAAIBAht5b3UgYXJlIG5vdCBhbGxvd2VkIHRvIGFyYiEEAmFlCQC8CQIFAW4CAXwEAmFmCQEBbQEJAJEDAgUCYWUAAAQBcAgFAmFmAl8xBAFxCAUCYWYCXzIEAXIIBQJhZgJfMwQBcwgFAmFmAl80BAF0CAUCYWYCXzUEAXUIBQJhZgJfNgQBdggFAmFmAl83BAJhZwkBAXcBCQCRAwIFAmFlAAEEAXgIBQJhZwJfMQQBeggFAmFnAl8yBAFBCAUCYWcCXzMEAmFoCAUCYWcCXzQEAmFpCQEBdwEJAJEDAgUCYWUAAgQCYWoIBQJhaQJfMQQCYWsIBQJhaQJfMgQCYWwIBQJhaQJfMwQCYW0IBQJhaQJfNAQCYW4JAQF3AQkAkQMCBQJhZQADBAJhbwgFAmFuAl8xBAJhcAgFAmFuAl8yBAJhcQgFAmFuAl8zBAJhcggFAmFuAl80BAJhcwkBAWUBCQEFdmFsdWUBCQC2CQEFAUEEAUkIBQJhcwJfMQQBSggFAmFzAl8yBAJhdAkBAWUBCQEFdmFsdWUBCQC2CQEFAmFsBAJhdQgFAmF0Al8xBAJhdggFAmF0Al8yBAJhdwkBAWUBCQEFdmFsdWUBCQC2CQEFAmFxBAJheAgFAmF3Al8xBAJheQgFAmF3Al8yBAJhegkBAWkBCQEBQwEFAXIDCQAAAgUCYXoFAmF6BAJhQQMJAGYCCQEFdmFsdWUBCQC2CQEFAXMFAmF6BQJhegkBBXZhbHVlAQkAtgkBBQFzAwkAAAIFAmFBBQJhQQQCYUIDAwkAAAIFAmFoAgFTCQAAAgkBBXZhbHVlAQkAtgkBBQFBAAEHCQEBWAEJAQV2YWx1ZQEJALYJAQUBdAkAlAoCAAAAAAQCYUMIBQJhQgJfMQQCYUQIBQJhQgJfMgQCYUUDAwkAAAIFAmFtAgFTCQAAAgkBBXZhbHVlAQkAtgkBBQJhbAABBwkBAVgBCQEFdmFsdWUBCQC2CQEFAXUJAJQKAgAAAAAEAmFGCAUCYUUCXzEEAmFHCAUCYUUCXzIEAmFIAwMJAAACBQJhcgIBUwkAAAIJAQV2YWx1ZQEJALYJAQUCYXEAAQcJAQFYAQkBBXZhbHVlAQkAtgkBBQF2CQCUCgIAAAAABAJhSQgFAmFIAl8xBAJhSggFAmFIAl8yBAJhSwkBAWkBCQEBQwEFAXADCQAAAgUCYUsFAmFLBAFTAwkAAAIFAmFoAgFXCQEBRAcFAXgFAXoFAXIFAmFBBQFJBQFKBQFwAwkAAAIFAmFoAgFTCQEBTwYFAXgFAXIFAmFBCQEFdmFsdWUBCQC2CQEFAUEFAmFDBQJhRAkBAVUEBQF4BQFyBQJhQQUBcAMJAAACBQFTBQFTBAJhTAkAZQIJAQFpAQkBAUMBBQFwBQJhSwMJAAACBQJhTAUCYUwEAmFNCQEBaQEJAQFDAQUBcQMJAAACBQJhTQUCYU0EAVQDCQAAAgUCYW0CAVcJAQFEBwUCYWoFAmFrBQFwBQJhTAUCYXUFAmF2BQFxAwkAAAIFAmFtAgFTCQEBTwYFAmFqBQFwBQJhTAkBBXZhbHVlAQkAtgkBBQJhbAUCYUYFAmFHCQEBVQQFAmFqBQFwBQJhTAUBcQMJAAACBQFUBQFUBAJhTgkAZQIJAQFpAQkBAUMBBQFxBQJhTQMJAAACBQJhTgUCYU4EAmFPCQEBaQEJAQFDAQUBcgMJAAACBQJhTwUCYU8EAmFQAwkAAAIFAmFyAgFXCQEBRAcFAmFvBQJhcAUBcQUCYU4FAmF4BQJheQUBcgMJAAACBQJhcgIBUwkBAU8GBQJhbwUBcQUCYU4JAQV2YWx1ZQEJALYJAQUCYXEFAmFJBQJhSgkBAVUEBQJhbwUBcQUCYU4FAXIDCQAAAgUCYVAFAmFQBAJhUQkAZQIJAQFpAQkBAUMBBQFyBQJhTwMJAAACBQJhUQUCYVEDCQBmAgUCYVEJAGQCBQJhQQDQhgMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmFiBmNhbGxlcgkAZQIFAmFRBQJhQQkBAUMBBQFyBQNuaWwJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhJvcmlnaW4gYW1vdW50SW4gPSAFAXMCESwgbmV3X2Ftb3VudEluID0gCQCkAwEFAmFBAgwsIG5ld0JhbF8xOiAJAKQDAQUCYUwCDCwgbmV3QmFsXzI6IAkApAMBBQJhTgIMLCBuZXdCYWxfMzogCQCkAwEFAmFRCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJhUgECYVMAAwkAyBMDCAUCYVIJYm9keUJ5dGVzCQCRAwIIBQJhUgZwcm9vZnMAAAgFAmFSD3NlbmRlclB1YmxpY0tleQYJAMgTAwgFAmFSCWJvZHlCeXRlcwkAkQMCCAUCYVIGcHJvb2ZzAAAFAWS0eiOl", "height": 3510509, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 99xZT6KmVABxVFoRqiHNXQ9F9TgmVgsUV5CfUwCwv69z Next: CqQyR8eDb9Spte59f1bk5t6pokdNYKi9z12Y8zRovc6n Diff:
OldNewDifferences
101101 func getMinToReceive (amountWithoutFee) = {
102102 let amountWithFee = (amountWithoutFee - fraction(amountWithoutFee, 6, 1000))
103103 let minToReceiveWithSleepage = (amountWithFee - fraction(amountWithFee, 5, 1000))
104- $Tuple2(amountWithFee, minToReceiveWithSleepage)
104+ if (true)
105+ then throw(((((("amountWithoutFee = " + toString(amountWithoutFee)) + " - amountWithFee = ") + toString(amountWithFee)) + " - minToReceiveWithSleepage = ") + toString(minToReceiveWithSleepage)))
106+ else $Tuple2(amountWithFee, minToReceiveWithSleepage)
105107 }
106108
107109
126128 then throw("you are not allowed to arb!")
127129 else {
128130 let data_array = split_4C(data, "|")
129- let $t035203606 = getBase1(data_array[0])
130- let a = $t035203606._1
131- let a2 = $t035203606._2
132- let assetIn = $t035203606._3
133- let amountIn = $t035203606._4
134- let amount_1 = $t035203606._5
135- let amount_2 = $t035203606._6
136- let amount_3 = $t035203606._7
137- let $t036113667 = getBase2(data_array[1])
138- let p1 = $t036113667._1
139- let lp1 = $t036113667._2
140- let is_stable_1 = $t036113667._3
141- let t1 = $t036113667._4
142- let $t036723728 = getBase2(data_array[2])
143- let p2 = $t036723728._1
144- let lp2 = $t036723728._2
145- let is_stable_2 = $t036723728._3
146- let t2 = $t036723728._4
147- let $t037333789 = getBase2(data_array[3])
148- let p3 = $t037333789._1
149- let lp3 = $t037333789._2
150- let is_stable_3 = $t037333789._3
151- let t3 = $t037333789._4
152- let $t037953861 = getPutGet(value(parseInt(is_stable_1)))
153- let putFunc1 = $t037953861._1
154- let getFunc1 = $t037953861._2
155- let $t038663932 = getPutGet(value(parseInt(is_stable_2)))
156- let putFunc2 = $t038663932._1
157- let getFunc2 = $t038663932._2
158- let $t039374003 = getPutGet(value(parseInt(is_stable_3)))
159- let putFunc3 = $t039374003._1
160- let getFunc3 = $t039374003._2
131+ let $t037203806 = getBase1(data_array[0])
132+ let a = $t037203806._1
133+ let a2 = $t037203806._2
134+ let assetIn = $t037203806._3
135+ let amountIn = $t037203806._4
136+ let amount_1 = $t037203806._5
137+ let amount_2 = $t037203806._6
138+ let amount_3 = $t037203806._7
139+ let $t038113867 = getBase2(data_array[1])
140+ let p1 = $t038113867._1
141+ let lp1 = $t038113867._2
142+ let is_stable_1 = $t038113867._3
143+ let t1 = $t038113867._4
144+ let $t038723928 = getBase2(data_array[2])
145+ let p2 = $t038723928._1
146+ let lp2 = $t038723928._2
147+ let is_stable_2 = $t038723928._3
148+ let t2 = $t038723928._4
149+ let $t039333989 = getBase2(data_array[3])
150+ let p3 = $t039333989._1
151+ let lp3 = $t039333989._2
152+ let is_stable_3 = $t039333989._3
153+ let t3 = $t039333989._4
154+ let $t039954061 = getPutGet(value(parseInt(is_stable_1)))
155+ let putFunc1 = $t039954061._1
156+ let getFunc1 = $t039954061._2
157+ let $t040664132 = getPutGet(value(parseInt(is_stable_2)))
158+ let putFunc2 = $t040664132._1
159+ let getFunc2 = $t040664132._2
160+ let $t041374203 = getPutGet(value(parseInt(is_stable_3)))
161+ let putFunc3 = $t041374203._1
162+ let getFunc3 = $t041374203._2
161163 let amount_bef_assetIn = getBalance(getAssetBytes(assetIn))
162164 if ((amount_bef_assetIn == amount_bef_assetIn))
163165 then {
166168 else value(parseInt(amountIn))
167169 if ((new_amountIn == new_amountIn))
168170 then {
169- let $t042094339 = if (if ((t1 == "S"))
171+ let $t044094539 = if (if ((t1 == "S"))
170172 then (value(parseInt(is_stable_1)) == 1)
171173 else false)
172174 then getMinToReceive(value(parseInt(amount_1)))
173175 else $Tuple2(0, 0)
174- let est_1 = $t042094339._1
175- let min_1 = $t042094339._2
176- let $t043444474 = if (if ((t2 == "S"))
176+ let est_1 = $t044094539._1
177+ let min_1 = $t044094539._2
178+ let $t045444674 = if (if ((t2 == "S"))
177179 then (value(parseInt(is_stable_2)) == 1)
178180 else false)
179181 then getMinToReceive(value(parseInt(amount_2)))
180182 else $Tuple2(0, 0)
181- let est_2 = $t043444474._1
182- let min_2 = $t043444474._2
183- let $t044794609 = if (if ((t3 == "S"))
183+ let est_2 = $t045444674._1
184+ let min_2 = $t045444674._2
185+ let $t046794809 = if (if ((t3 == "S"))
184186 then (value(parseInt(is_stable_3)) == 1)
185187 else false)
186188 then getMinToReceive(value(parseInt(amount_3)))
187189 else $Tuple2(0, 0)
188- let est_3 = $t044794609._1
189- let min_3 = $t044794609._2
190+ let est_3 = $t046794809._1
191+ let min_3 = $t046794809._2
190192 let amount_bef_asset1 = getBalance(getAssetBytes(a))
191193 if ((amount_bef_asset1 == amount_bef_asset1))
192194 then {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let free_to_borrom = addressFromStringValue("3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy")
55
66 let USDN_ASSET_ID = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
77
88 let boss = addressFromStringValue("3PRE5KH9oPGfFPs7fGnQcJ4wNshEDUPGj1t")
99
1010 let adminPublicKey = base58'Cr1ybL2JGg9GwJHA2JwqxBPfSW6Q7Jg4HvNrsEiCsHu6'
1111
1212 func getPutGet (is_stable) = {
1313 let putFunc = if ((is_stable == 1))
1414 then "putOneTknV2"
1515 else "putOneTkn"
1616 let getFunc = if ((is_stable == 1))
1717 then "getOneTknV2"
1818 else "getOneTkn"
1919 $Tuple2(putFunc, getFunc)
2020 }
2121
2222
2323 func getBalance (assetId) = match assetId {
2424 case b: ByteVector =>
2525 assetBalance(this, b)
2626 case _ =>
2727 wavesBalance(this).available
2828 }
2929
3030
3131 func getBase1 (data) = {
3232 let p_data = split(data, "_")
3333 let a = p_data[0]
3434 let a2 = p_data[1]
3535 let assetIn = p_data[2]
3636 let amountIn = p_data[3]
3737 let amount_1 = p_data[4]
3838 let amount_2 = p_data[5]
3939 let amount_3 = p_data[6]
4040 $Tuple7(a, a2, assetIn, amountIn, amount_1, amount_2, amount_3)
4141 }
4242
4343
4444 func getBase2 (data) = {
4545 let p_data = split(data, "_")
4646 let p1 = p_data[0]
4747 let lp1 = p_data[1]
4848 let is_stable_1 = p_data[2]
4949 let t = p_data[3]
5050 $Tuple4(p1, lp1, is_stable_1, t)
5151 }
5252
5353
5454 func getAssetBytes (assetId) = if ((assetId == "WAVES"))
5555 then unit
5656 else fromBase58String(assetId)
5757
5858
5959 func swap_wx (p,lp,asset,amount,putFunc1,getFunc1,a) = {
6060 let put1 = invoke(Address(fromBase58String(p)), putFunc1, [1, false], [AttachedPayment(getAssetBytes(asset), amount)])
6161 if ((put1 == put1))
6262 then {
6363 let lp1_assetid = fromBase58String(lp)
6464 let lpBalance_1 = getBalance(lp1_assetid)
6565 if ((lpBalance_1 == lpBalance_1))
6666 then {
6767 let get1 = invoke(Address(fromBase58String(p)), getFunc1, [a, 1], [AttachedPayment(lp1_assetid, lpBalance_1)])
6868 if ((get1 == get1))
6969 then nil
7070 else throw("Strict value is not equal to itself.")
7171 }
7272 else throw("Strict value is not equal to itself.")
7373 }
7474 else throw("Strict value is not equal to itself.")
7575 }
7676
7777
7878 func swap_swop (p,asset,amount,stable,est,min) = if ((stable == 1))
7979 then {
8080 let swap1 = invoke(Address(fromBase58String(p)), "exchange", [est, min], [AttachedPayment(getAssetBytes(asset), amount)])
8181 if ((swap1 == swap1))
8282 then nil
8383 else throw("Strict value is not equal to itself.")
8484 }
8585 else {
8686 let swap2 = invoke(Address(fromBase58String(p)), "exchange", [1], [AttachedPayment(getAssetBytes(asset), amount)])
8787 if ((swap2 == swap2))
8888 then nil
8989 else throw("Strict value is not equal to itself.")
9090 }
9191
9292
9393 func swap_puzzle (p,asset,amount,assetOut) = {
9494 let swap = invoke(Address(fromBase58String(p)), "swap", [assetOut, 1], [AttachedPayment(getAssetBytes(asset), amount)])
9595 if ((swap == swap))
9696 then nil
9797 else throw("Strict value is not equal to itself.")
9898 }
9999
100100
101101 func getMinToReceive (amountWithoutFee) = {
102102 let amountWithFee = (amountWithoutFee - fraction(amountWithoutFee, 6, 1000))
103103 let minToReceiveWithSleepage = (amountWithFee - fraction(amountWithFee, 5, 1000))
104- $Tuple2(amountWithFee, minToReceiveWithSleepage)
104+ if (true)
105+ then throw(((((("amountWithoutFee = " + toString(amountWithoutFee)) + " - amountWithFee = ") + toString(amountWithFee)) + " - minToReceiveWithSleepage = ") + toString(minToReceiveWithSleepage)))
106+ else $Tuple2(amountWithFee, minToReceiveWithSleepage)
105107 }
106108
107109
108110 @Callable(i)
109111 func borrow (amnt) = if (if ((i.caller != boss))
110112 then (i.caller != free_to_borrom)
111113 else false)
112114 then throw("you are not allowed to borrow!")
113115 else {
114116 let currentBal = getBalance(USDN_ASSET_ID)
115117 if ((amnt > currentBal))
116118 then throw("You cannnot borrow that much")
117119 else [ScriptTransfer(i.caller, amnt, USDN_ASSET_ID)]
118120 }
119121
120122
121123
122124 @Callable(i)
123125 func y (data) = if (if ((i.caller != this))
124126 then (i.caller != boss)
125127 else false)
126128 then throw("you are not allowed to arb!")
127129 else {
128130 let data_array = split_4C(data, "|")
129- let $t035203606 = getBase1(data_array[0])
130- let a = $t035203606._1
131- let a2 = $t035203606._2
132- let assetIn = $t035203606._3
133- let amountIn = $t035203606._4
134- let amount_1 = $t035203606._5
135- let amount_2 = $t035203606._6
136- let amount_3 = $t035203606._7
137- let $t036113667 = getBase2(data_array[1])
138- let p1 = $t036113667._1
139- let lp1 = $t036113667._2
140- let is_stable_1 = $t036113667._3
141- let t1 = $t036113667._4
142- let $t036723728 = getBase2(data_array[2])
143- let p2 = $t036723728._1
144- let lp2 = $t036723728._2
145- let is_stable_2 = $t036723728._3
146- let t2 = $t036723728._4
147- let $t037333789 = getBase2(data_array[3])
148- let p3 = $t037333789._1
149- let lp3 = $t037333789._2
150- let is_stable_3 = $t037333789._3
151- let t3 = $t037333789._4
152- let $t037953861 = getPutGet(value(parseInt(is_stable_1)))
153- let putFunc1 = $t037953861._1
154- let getFunc1 = $t037953861._2
155- let $t038663932 = getPutGet(value(parseInt(is_stable_2)))
156- let putFunc2 = $t038663932._1
157- let getFunc2 = $t038663932._2
158- let $t039374003 = getPutGet(value(parseInt(is_stable_3)))
159- let putFunc3 = $t039374003._1
160- let getFunc3 = $t039374003._2
131+ let $t037203806 = getBase1(data_array[0])
132+ let a = $t037203806._1
133+ let a2 = $t037203806._2
134+ let assetIn = $t037203806._3
135+ let amountIn = $t037203806._4
136+ let amount_1 = $t037203806._5
137+ let amount_2 = $t037203806._6
138+ let amount_3 = $t037203806._7
139+ let $t038113867 = getBase2(data_array[1])
140+ let p1 = $t038113867._1
141+ let lp1 = $t038113867._2
142+ let is_stable_1 = $t038113867._3
143+ let t1 = $t038113867._4
144+ let $t038723928 = getBase2(data_array[2])
145+ let p2 = $t038723928._1
146+ let lp2 = $t038723928._2
147+ let is_stable_2 = $t038723928._3
148+ let t2 = $t038723928._4
149+ let $t039333989 = getBase2(data_array[3])
150+ let p3 = $t039333989._1
151+ let lp3 = $t039333989._2
152+ let is_stable_3 = $t039333989._3
153+ let t3 = $t039333989._4
154+ let $t039954061 = getPutGet(value(parseInt(is_stable_1)))
155+ let putFunc1 = $t039954061._1
156+ let getFunc1 = $t039954061._2
157+ let $t040664132 = getPutGet(value(parseInt(is_stable_2)))
158+ let putFunc2 = $t040664132._1
159+ let getFunc2 = $t040664132._2
160+ let $t041374203 = getPutGet(value(parseInt(is_stable_3)))
161+ let putFunc3 = $t041374203._1
162+ let getFunc3 = $t041374203._2
161163 let amount_bef_assetIn = getBalance(getAssetBytes(assetIn))
162164 if ((amount_bef_assetIn == amount_bef_assetIn))
163165 then {
164166 let new_amountIn = if ((value(parseInt(amountIn)) > amount_bef_assetIn))
165167 then amount_bef_assetIn
166168 else value(parseInt(amountIn))
167169 if ((new_amountIn == new_amountIn))
168170 then {
169- let $t042094339 = if (if ((t1 == "S"))
171+ let $t044094539 = if (if ((t1 == "S"))
170172 then (value(parseInt(is_stable_1)) == 1)
171173 else false)
172174 then getMinToReceive(value(parseInt(amount_1)))
173175 else $Tuple2(0, 0)
174- let est_1 = $t042094339._1
175- let min_1 = $t042094339._2
176- let $t043444474 = if (if ((t2 == "S"))
176+ let est_1 = $t044094539._1
177+ let min_1 = $t044094539._2
178+ let $t045444674 = if (if ((t2 == "S"))
177179 then (value(parseInt(is_stable_2)) == 1)
178180 else false)
179181 then getMinToReceive(value(parseInt(amount_2)))
180182 else $Tuple2(0, 0)
181- let est_2 = $t043444474._1
182- let min_2 = $t043444474._2
183- let $t044794609 = if (if ((t3 == "S"))
183+ let est_2 = $t045444674._1
184+ let min_2 = $t045444674._2
185+ let $t046794809 = if (if ((t3 == "S"))
184186 then (value(parseInt(is_stable_3)) == 1)
185187 else false)
186188 then getMinToReceive(value(parseInt(amount_3)))
187189 else $Tuple2(0, 0)
188- let est_3 = $t044794609._1
189- let min_3 = $t044794609._2
190+ let est_3 = $t046794809._1
191+ let min_3 = $t046794809._2
190192 let amount_bef_asset1 = getBalance(getAssetBytes(a))
191193 if ((amount_bef_asset1 == amount_bef_asset1))
192194 then {
193195 let swap1 = if ((t1 == "W"))
194196 then swap_wx(p1, lp1, assetIn, new_amountIn, putFunc1, getFunc1, a)
195197 else if ((t1 == "S"))
196198 then swap_swop(p1, assetIn, new_amountIn, value(parseInt(is_stable_1)), est_1, min_1)
197199 else swap_puzzle(p1, assetIn, new_amountIn, a)
198200 if ((swap1 == swap1))
199201 then {
200202 let nb = (getBalance(getAssetBytes(a)) - amount_bef_asset1)
201203 if ((nb == nb))
202204 then {
203205 let amount_bef_asset2 = getBalance(getAssetBytes(a2))
204206 if ((amount_bef_asset2 == amount_bef_asset2))
205207 then {
206208 let swap2 = if ((t2 == "W"))
207209 then swap_wx(p2, lp2, a, nb, putFunc2, getFunc2, a2)
208210 else if ((t2 == "S"))
209211 then swap_swop(p2, a, nb, value(parseInt(is_stable_2)), est_2, min_2)
210212 else swap_puzzle(p2, a, nb, a2)
211213 if ((swap2 == swap2))
212214 then {
213215 let nb2 = (getBalance(getAssetBytes(a2)) - amount_bef_asset2)
214216 if ((nb2 == nb2))
215217 then {
216218 let amount_bef_base_asset = getBalance(getAssetBytes(assetIn))
217219 if ((amount_bef_base_asset == amount_bef_base_asset))
218220 then {
219221 let swap3 = if ((t3 == "W"))
220222 then swap_wx(p3, lp3, a2, nb2, putFunc3, getFunc3, assetIn)
221223 else if ((t3 == "S"))
222224 then swap_swop(p3, a2, nb2, value(parseInt(is_stable_3)), est_3, min_3)
223225 else swap_puzzle(p3, a2, nb2, assetIn)
224226 if ((swap3 == swap3))
225227 then {
226228 let nb3 = (getBalance(getAssetBytes(assetIn)) - amount_bef_base_asset)
227229 if ((nb3 == nb3))
228230 then if ((nb3 > (new_amountIn + 50000)))
229231 then [ScriptTransfer(i.caller, (nb3 - new_amountIn), getAssetBytes(assetIn))]
230232 else throw(((((((((("origin amountIn = " + amountIn) + ", new_amountIn = ") + toString(new_amountIn)) + ", newBal_1: ") + toString(nb)) + ", newBal_2: ") + toString(nb2)) + ", newBal_3: ") + toString(nb3)))
231233 else throw("Strict value is not equal to itself.")
232234 }
233235 else throw("Strict value is not equal to itself.")
234236 }
235237 else throw("Strict value is not equal to itself.")
236238 }
237239 else throw("Strict value is not equal to itself.")
238240 }
239241 else throw("Strict value is not equal to itself.")
240242 }
241243 else throw("Strict value is not equal to itself.")
242244 }
243245 else throw("Strict value is not equal to itself.")
244246 }
245247 else throw("Strict value is not equal to itself.")
246248 }
247249 else throw("Strict value is not equal to itself.")
248250 }
249251 else throw("Strict value is not equal to itself.")
250252 }
251253 else throw("Strict value is not equal to itself.")
252254 }
253255
254256
255257 @Verifier(tx)
256258 func verify () = if (sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
257259 then true
258260 else sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], adminPublicKey)
259261

github/deemru/w8io/3ef1775 
80.72 ms