tx · ASaH44BJjWT8rdErWNtLsL7DSqNhM5wr9Q32JfLQL2hc

3PCFUPSEAjEwByeTS5TJpLRGx2MRA1TxHkJ:  -0.01000000 Waves

2023.04.27 18:48 [3618738] smart account 3PCFUPSEAjEwByeTS5TJpLRGx2MRA1TxHkJ > SELF 0.00000000 Waves

{ "type": 13, "id": "ASaH44BJjWT8rdErWNtLsL7DSqNhM5wr9Q32JfLQL2hc", "fee": 1000000, "feeAssetId": null, "timestamp": 1682610551729, "version": 2, "chainId": 87, "sender": "3PCFUPSEAjEwByeTS5TJpLRGx2MRA1TxHkJ", "senderPublicKey": "7TxWazq7o9NTSVGh2Esh8pcGfaugAMjSWvzLL38TMcZ6", "proofs": [ "ByBZ1tU7XAaU1NKe12nDhmj6977zgFe13pkQVXpm8xiArkdrKdbTFWZetLzFzZeUA2F1mSdqej24RiwZ8dipPSc" ], "script": "base64:BgKjBAgCEgMKAQESAwoBARIDCgEIIg5mcmVlX3RvX2JvcnJvbSINVVNETl9BU1NFVF9JRCIEYm9zcyIOYWRtaW5QdWJsaWNLZXkiDFdYX1NXQVBfREFQUCIJYXNzZXRzX2luIgpnZXRCYWxhbmNlIgdhc3NldElkIgckbWF0Y2gwIgFiIghnZXRCYXNlMSIEZGF0YSIGcF9kYXRhIgFhIgJhMiIHYXNzZXRJbiIIYW1vdW50SW4iCGdldEJhc2UyIgJwMSIBdCINZ2V0QXNzZXRCeXRlcyIHc3dhcF93eCIBcCIFYXNzZXQiACIGYW1vdW50IgRjYWxsIglzd2FwX3N3b3AiBHN3YXAiC3N3YXBfcHV6emxlIghhc3NldE91dCIBaSIEYW1udCIKY3VycmVudEJhbCIKZGF0YV9hcnJheSILJHQwMjc1MTI4MDciCyR0MDI4MTIyODUwIgJ0MSILJHQwMjg1NTI4OTMiAnAyIgJ0MiILJHQwMjg5ODI5MzYiAnAzIgJ0MyIDaWR1IhJhbW91bnRfYmVmX2Fzc2V0SW4iDG5ld19hbW91bnRJbiIRYW1vdW50X2JlZl9hc3NldDEiBXN3YXAxIgJuYiIRYW1vdW50X2JlZl9hc3NldDIiBXN3YXAyIgNuYjIiFWFtb3VudF9iZWZfYmFzZV9hc3NldCIFc3dhcDMiA25iMyIIdHJlc2hvbGQiAnR4IgZ2ZXJpZnkNAAFhCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUEc3Q0h2QmF0SHBDaHdtOHJlSDc0d2ZFd2sxUEhjOFJxeQABYgEgtiYpwwT1zlORpA5LdSQvZIxRsfrfr1QpvUjSHSqyqtEAAWMJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQUkU1S0g5b1BHZkZQczdmR25RY0o0d05zaEVEVVBHajF0AAFkASCv/x58doefXfwer5+x7Fznjj3iPlshsuAGcU0W/5sVbQABZQkBB0FkZHJlc3MBARoBVy4qNTWxDbfxeT7ht0bQnnRSTXsx0IOuBgABZgkAzAgCAixERzJ4RmtQZER3S1VvQmt6R0FoUXRMcFNHemZYTGlDWVBFemVLSDJBZDI0cAUDbmlsAQFnAQFoBAFpBQFoAwkAAQIFAWkCCkJ5dGVWZWN0b3IEAWoFAWkJAPAHAgUEdGhpcwUBaggJAO8HAQUEdGhpcwlhdmFpbGFibGUBAWsBAWwEAW0JALwJAgUBbAIBXwQBbgkAkQMCBQFtAAAEAW8JAJEDAgUBbQABBAFwCQCRAwIFAWYJAQV2YWx1ZQEJALYJAQkAkQMCBQFtAAIEAXEJAJEDAgUBbQADCQCWCgQFAW4FAW8FAXAFAXEBAXIBAWwEAW0JALUJAgUBbAIBXwQBcwkAkQMCBQFtAAAEAXQJAJEDAgUBbQABCQCUCgIFAXMFAXQBAXUBAWgDCQAAAgUBaAIFV0FWRVMFBHVuaXQJANkEAQUBaAEBdgQBdwF4AXoBbgQBQQkA/AcEBQFlAgRzd2FwCQDMCAIAAQkAzAgCBQFuCQDMCAIJAKUIAQUEdGhpcwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEBdQEFAXgFAXoFA25pbAMJAAACBQFBBQFBBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAUIDAXcBeAF6BAFDCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQF3AghleGNoYW5nZQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBAXUBBQF4BQF6BQNuaWwDCQAAAgUBQwUBQwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQFEBAF3AXgBegFFBAFDCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQF3AgRzd2FwCQDMCAIFAUUJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQF1AQUBeAUBegUDbmlsAwkAAAIFAUMFAUMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMBRgEGYm9ycm93AQFHAwkBASEBCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQFhCQDMCAIFAWMJAMwIAgUEdGhpcwUDbmlsCAUBRgZjYWxsZXIJAAIBAh55b3UgYXJlIG5vdCBhbGxvd2VkIHRvIGJvcnJvdyEEAUgJAQFnAQUBYgMJAGYCBQFHBQFICQACAQIcWW91IGNhbm5ub3QgYm9ycm93IHRoYXQgbXVjaAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBRgZjYWxsZXIFAUcFAWIFA25pbAFGAQtzZXRUcmVzaG9sZAEBRwMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUBYQkAzAgCBQFjCQDMCAIFBHRoaXMFA25pbAgFAUYGY2FsbGVyCQACAQIfeW91IGFyZSBub3QgYWxsb3dlZCB0byBkbyB0aGF0IQkAzAgCCQEMSW50ZWdlckVudHJ5AgIIdHJlc2hvbGQFAUcFA25pbAFGAQF5AQFsAwMJAQIhPQIIBQFGBmNhbGxlcgUEdGhpcwkBAiE9AggFAUYGY2FsbGVyBQFjBwkAAgECG3lvdSBhcmUgbm90IGFsbG93ZWQgdG8gYXJiIQQBSQkAvAkCBQFsAgF8BAFKCQEBawEJAJEDAgUBSQAABAFuCAUBSgJfMQQBbwgFAUoCXzIEAXAIBQFKAl8zBAFxCAUBSgJfNAQBSwkBAXIBCQCRAwIFAUkAAQQBcwgFAUsCXzEEAUwIBQFLAl8yBAFNCQEBcgEJAJEDAgUBSQACBAFOCAUBTQJfMQQBTwgFAU0CXzIEAVAJAQFyAQkAkQMCBQFJAAMEAVEIBQFQAl8xBAFSCAUBUAJfMgQBUwMJAGYCCQCxAgEJAJEDAgUBSQAEAAEJALwJAgkAkQMCBQFJAAQCAS0FA25pbAMDCQBmAgkAkAMBBQFTAAAGCQBnAgABCQCxAgEJAJEDAgUBSQAEBAFUCQEBZwEJAQF1AQUBcAMJAAACBQFUBQFUBAFVAwkAZgIJAQV2YWx1ZQEJALYJAQUBcQUBVAUBVAkBBXZhbHVlAQkAtgkBBQFxAwkAAAIFAVUFAVUEAVYJAQFnAQkBAXUBBQFuAwkAAAIFAVYFAVYEAVcDCQAAAgUBTAIBVwkBAXYEBQFzBQFwBQFVBQFuAwkAAAIFAUwCAVMJAQFCAwUBcwUBcAUBVQkBAUQEBQFzBQFwBQFVBQFuAwkAAAIFAVcFAVcEAVgJAGUCCQEBZwEJAQF1AQUBbgUBVgMJAAACBQFYBQFYBAFZCQEBZwEJAQF1AQUBbwMJAAACBQFZBQFZBAFaAwkAAAIFAU8CAVcJAQF2BAUBTgUBbgUBWAUBbwMJAAACBQFPAgFTCQEBQgMFAU4FAW4FAVgJAQFEBAUBTgUBbgUBWAUBbwMJAAACBQFaBQFaBAJhYQkAZQIJAQFnAQkBAXUBBQFvBQFZAwkAAAIFAmFhBQJhYQQCYWIJAQFnAQkBAXUBBQFwAwkAAAIFAmFiBQJhYgQCYWMDCQAAAgUBUgIBVwkBAXYEBQFRBQFvBQJhYQUBcAMJAAACBQFSAgFTCQEBQgMFAVEFAW8FAmFhCQEBRAQFAVEFAW8FAmFhBQFwAwkAAAIFAmFjBQJhYwQCYWQJAGUCCQEBZwEJAQF1AQUBcAUCYWIDCQAAAgUCYWQFAmFkBAJhZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzAgh0cmVzaG9sZADwkwkDCQBmAgUCYWQJAGQCBQFVBQJhZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBRgZjYWxsZXIJAGUCBQJhZAUBVQkBAXUBBQFwBQNuaWwJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhJvcmlnaW4gYW1vdW50SW4gPSAFAXECESwgbmV3X2Ftb3VudEluID0gCQCkAwEFAVUCDCwgbmV3QmFsXzE6IAkApAMBBQFYAgwsIG5ld0JhbF8yOiAJAKQDAQUCYWECDCwgbmV3QmFsXzM6IAkApAMBBQJhZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsAQJhZgECYWcAAwkAyBMDCAUCYWYJYm9keUJ5dGVzCQCRAwIIBQJhZgZwcm9vZnMAAAgFAmFmD3NlbmRlclB1YmxpY0tleQYJAMgTAwgFAmFmCWJvZHlCeXRlcwkAkQMCCAUCYWYGcHJvb2ZzAAAFAWRrK8Mi", "height": 3618738, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GYy85jPz2UbGq4TcA1YVjQw9SFfNzuCEhPvH2xY4w8mD Next: DBQtBBfwNY6DsY3mt8xiJDjL8pjDKc8yjgkVigfhTk5 Diff:
OldNewDifferences
109109 let p3 = $t028982936._1
110110 let t3 = $t028982936._2
111111 let idu = if ((size(data_array[4]) > 1))
112- then split(data_array[4], "-")
112+ then split_4C(data_array[4], "-")
113113 else nil
114114 if (if ((size(idu) > 0))
115115 then true
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 let WX_SWAP_DAPP = Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93')
1313
1414 let assets_in = ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"]
1515
1616 func getBalance (assetId) = match assetId {
1717 case b: ByteVector =>
1818 assetBalance(this, b)
1919 case _ =>
2020 wavesBalance(this).available
2121 }
2222
2323
2424 func getBase1 (data) = {
2525 let p_data = split_4C(data, "_")
2626 let a = p_data[0]
2727 let a2 = p_data[1]
2828 let assetIn = assets_in[value(parseInt(p_data[2]))]
2929 let amountIn = p_data[3]
3030 $Tuple4(a, a2, assetIn, amountIn)
3131 }
3232
3333
3434 func getBase2 (data) = {
3535 let p_data = split(data, "_")
3636 let p1 = p_data[0]
3737 let t = p_data[1]
3838 $Tuple2(p1, t)
3939 }
4040
4141
4242 func getAssetBytes (assetId) = if ((assetId == "WAVES"))
4343 then unit
4444 else fromBase58String(assetId)
4545
4646
4747 func swap_wx (p,asset,amount,a) = {
4848 let call = invoke(WX_SWAP_DAPP, "swap", [1, a, toString(this)], [AttachedPayment(getAssetBytes(asset), amount)])
4949 if ((call == call))
5050 then nil
5151 else throw("Strict value is not equal to itself.")
5252 }
5353
5454
5555 func swap_swop (p,asset,amount) = {
5656 let swap = invoke(Address(fromBase58String(p)), "exchange", [1], [AttachedPayment(getAssetBytes(asset), amount)])
5757 if ((swap == swap))
5858 then nil
5959 else throw("Strict value is not equal to itself.")
6060 }
6161
6262
6363 func swap_puzzle (p,asset,amount,assetOut) = {
6464 let swap = invoke(Address(fromBase58String(p)), "swap", [assetOut, 1], [AttachedPayment(getAssetBytes(asset), amount)])
6565 if ((swap == swap))
6666 then nil
6767 else throw("Strict value is not equal to itself.")
6868 }
6969
7070
7171 @Callable(i)
7272 func borrow (amnt) = if (!(containsElement([free_to_borrom, boss, this], i.caller)))
7373 then throw("you are not allowed to borrow!")
7474 else {
7575 let currentBal = getBalance(USDN_ASSET_ID)
7676 if ((amnt > currentBal))
7777 then throw("You cannnot borrow that much")
7878 else [ScriptTransfer(i.caller, amnt, USDN_ASSET_ID)]
7979 }
8080
8181
8282
8383 @Callable(i)
8484 func setTreshold (amnt) = if (!(containsElement([free_to_borrom, boss, this], i.caller)))
8585 then throw("you are not allowed to do that!")
8686 else [IntegerEntry("treshold", amnt)]
8787
8888
8989
9090 @Callable(i)
9191 func y (data) = if (if ((i.caller != this))
9292 then (i.caller != boss)
9393 else false)
9494 then throw("you are not allowed to arb!")
9595 else {
9696 let data_array = split_4C(data, "|")
9797 let $t027512807 = getBase1(data_array[0])
9898 let a = $t027512807._1
9999 let a2 = $t027512807._2
100100 let assetIn = $t027512807._3
101101 let amountIn = $t027512807._4
102102 let $t028122850 = getBase2(data_array[1])
103103 let p1 = $t028122850._1
104104 let t1 = $t028122850._2
105105 let $t028552893 = getBase2(data_array[2])
106106 let p2 = $t028552893._1
107107 let t2 = $t028552893._2
108108 let $t028982936 = getBase2(data_array[3])
109109 let p3 = $t028982936._1
110110 let t3 = $t028982936._2
111111 let idu = if ((size(data_array[4]) > 1))
112- then split(data_array[4], "-")
112+ then split_4C(data_array[4], "-")
113113 else nil
114114 if (if ((size(idu) > 0))
115115 then true
116116 else (1 >= size(data_array[4])))
117117 then {
118118 let amount_bef_assetIn = getBalance(getAssetBytes(assetIn))
119119 if ((amount_bef_assetIn == amount_bef_assetIn))
120120 then {
121121 let new_amountIn = if ((value(parseInt(amountIn)) > amount_bef_assetIn))
122122 then amount_bef_assetIn
123123 else value(parseInt(amountIn))
124124 if ((new_amountIn == new_amountIn))
125125 then {
126126 let amount_bef_asset1 = getBalance(getAssetBytes(a))
127127 if ((amount_bef_asset1 == amount_bef_asset1))
128128 then {
129129 let swap1 = if ((t1 == "W"))
130130 then swap_wx(p1, assetIn, new_amountIn, a)
131131 else if ((t1 == "S"))
132132 then swap_swop(p1, assetIn, new_amountIn)
133133 else swap_puzzle(p1, assetIn, new_amountIn, a)
134134 if ((swap1 == swap1))
135135 then {
136136 let nb = (getBalance(getAssetBytes(a)) - amount_bef_asset1)
137137 if ((nb == nb))
138138 then {
139139 let amount_bef_asset2 = getBalance(getAssetBytes(a2))
140140 if ((amount_bef_asset2 == amount_bef_asset2))
141141 then {
142142 let swap2 = if ((t2 == "W"))
143143 then swap_wx(p2, a, nb, a2)
144144 else if ((t2 == "S"))
145145 then swap_swop(p2, a, nb)
146146 else swap_puzzle(p2, a, nb, a2)
147147 if ((swap2 == swap2))
148148 then {
149149 let nb2 = (getBalance(getAssetBytes(a2)) - amount_bef_asset2)
150150 if ((nb2 == nb2))
151151 then {
152152 let amount_bef_base_asset = getBalance(getAssetBytes(assetIn))
153153 if ((amount_bef_base_asset == amount_bef_base_asset))
154154 then {
155155 let swap3 = if ((t3 == "W"))
156156 then swap_wx(p3, a2, nb2, assetIn)
157157 else if ((t3 == "S"))
158158 then swap_swop(p3, a2, nb2)
159159 else swap_puzzle(p3, a2, nb2, assetIn)
160160 if ((swap3 == swap3))
161161 then {
162162 let nb3 = (getBalance(getAssetBytes(assetIn)) - amount_bef_base_asset)
163163 if ((nb3 == nb3))
164164 then {
165165 let treshold = valueOrElse(getInteger(this, "treshold"), 150000)
166166 if ((nb3 > (new_amountIn + treshold)))
167167 then [ScriptTransfer(i.caller, (nb3 - new_amountIn), getAssetBytes(assetIn))]
168168 else throw(((((((((("origin amountIn = " + amountIn) + ", new_amountIn = ") + toString(new_amountIn)) + ", newBal_1: ") + toString(nb)) + ", newBal_2: ") + toString(nb2)) + ", newBal_3: ") + toString(nb3)))
169169 }
170170 else throw("Strict value is not equal to itself.")
171171 }
172172 else throw("Strict value is not equal to itself.")
173173 }
174174 else throw("Strict value is not equal to itself.")
175175 }
176176 else throw("Strict value is not equal to itself.")
177177 }
178178 else throw("Strict value is not equal to itself.")
179179 }
180180 else throw("Strict value is not equal to itself.")
181181 }
182182 else throw("Strict value is not equal to itself.")
183183 }
184184 else throw("Strict value is not equal to itself.")
185185 }
186186 else throw("Strict value is not equal to itself.")
187187 }
188188 else throw("Strict value is not equal to itself.")
189189 }
190190 else throw("Strict value is not equal to itself.")
191191 }
192192 else nil
193193 }
194194
195195
196196 @Verifier(tx)
197197 func verify () = if (sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
198198 then true
199199 else sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], adminPublicKey)
200200

github/deemru/w8io/6500d08 
44.28 ms