tx · DEiuRZw7n5D9U8xLDY2UVkobL3krLL7Xm8SKRdt34rDu

3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez:  -0.01000000 Waves

2023.04.23 15:49 [3612793] smart account 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > SELF 0.00000000 Waves

{ "type": 13, "id": "DEiuRZw7n5D9U8xLDY2UVkobL3krLL7Xm8SKRdt34rDu", "fee": 1000000, "feeAssetId": null, "timestamp": 1682254189126, "version": 2, "chainId": 87, "sender": "3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez", "senderPublicKey": "3zaQerEjh4SK1xhin9zzs5qr337aLRFhz7z1ckjFGhMz", "proofs": [ "4Pe89dYStD1Y2kemLi7ezpkWVtjNoXnNirUPcvSBRhX1Hbx2byHT958XfyJZ3C56TfYP27xt9SSM431QmtLcc3Bq" ], "script": "base64:BgKeBAgCEgMKAQESAwoBARIDCgEIIg5mcmVlX3RvX2JvcnJvbSINVVNETl9BU1NFVF9JRCIEYm9zcyIOYWRtaW5QdWJsaWNLZXkiDFdYX1NXQVBfREFQUCIJYXNzZXRzX2luIgpnZXRCYWxhbmNlIgdhc3NldElkIgckbWF0Y2gwIgFiIghnZXRCYXNlMSIEZGF0YSIGcF9kYXRhIgFhIgJhMiIHYXNzZXRJbiIIYW1vdW50SW4iCGdldEJhc2UyIgJwMSIBdCINZ2V0QXNzZXRCeXRlcyIHc3dhcF93eCIBcCIFYXNzZXQiACIGYW1vdW50IgRjYWxsIglzd2FwX3N3b3AiBHN3YXAiC3N3YXBfcHV6emxlIghhc3NldE91dCIBaSIEYW1udCIKY3VycmVudEJhbCIKZGF0YV9hcnJheSILJHQwMjYzNzI2OTMiCyR0MDI2OTgyNzM2IgJ0MSILJHQwMjc0MTI3NzkiAnAyIgJ0MiILJHQwMjc4NDI4MjIiAnAzIgJ0MyISYW1vdW50X2JlZl9hc3NldEluIgxuZXdfYW1vdW50SW4iEWFtb3VudF9iZWZfYXNzZXQxIgVzd2FwMSICbmIiEWFtb3VudF9iZWZfYXNzZXQyIgVzd2FwMiIDbmIyIhVhbW91bnRfYmVmX2Jhc2VfYXNzZXQiBXN3YXAzIgNuYjMiCHRyZXNob2xkIgJ0eCIGdmVyaWZ5DQABYQkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BHN0NIdkJhdEhwQ2h3bThyZUg3NHdmRXdrMVBIYzhScXkAAWIBILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAAFjCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUFJFNUtIOW9QR2ZGUHM3ZkduUWNKNHdOc2hFRFVQR2oxdAABZAEgr/8efHaHn138Hq+fsexc54494j5bIbLgBnFNFv+bFW0AAWUJAQdBZGRyZXNzAQEaAVcuKjU1sQ238Xk+4bdG0J50Uk17MdCDrgYAAWYJAMwIAgIsREcyeEZrUGREd0tVb0JrekdBaFF0THBTR3pmWExpQ1lQRXplS0gyQWQyNHAFA25pbAEBZwEBaAQBaQUBaAMJAAECBQFpAgpCeXRlVmVjdG9yBAFqBQFpCQDwBwIFBHRoaXMFAWoICQDvBwEFBHRoaXMJYXZhaWxhYmxlAQFrAQFsBAFtCQC8CQIFAWwCAV8EAW4JAJEDAgUBbQAABAFvCQCRAwIFAW0AAQQBcAkAkQMCBQFmCQEFdmFsdWUBCQC2CQEJAJEDAgUBbQACBAFxCQCRAwIFAW0AAwkAlgoEBQFuBQFvBQFwBQFxAQFyAQFsBAFtCQC1CQIFAWwCAV8EAXMJAJEDAgUBbQAABAF0CQCRAwIFAW0AAQkAlAoCBQFzBQF0AQF1AQFoAwkAAAIFAWgCBVdBVkVTBQR1bml0CQDZBAEFAWgBAXYEAXcBeAF6AW4EAUEJAPwHBAUBZQIEc3dhcAkAzAgCAAEJAMwIAgUBbgkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBAXUBBQF4BQF6BQNuaWwDCQAAAgUBQQUBQQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQFCAwF3AXgBegQBQwkA/AcECQEHQWRkcmVzcwEJANkEAQUBdwIIZXhjaGFuZ2UJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQF1AQUBeAUBegUDbmlsAwkAAAIFAUMFAUMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEBRAQBdwF4AXoBRQQBQwkA/AcECQEHQWRkcmVzcwEJANkEAQUBdwIEc3dhcAkAzAgCBQFFCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEBdQEFAXgFAXoFA25pbAMJAAACBQFDBQFDBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DAUYBBmJvcnJvdwEBRwMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUBYQkAzAgCBQFjCQDMCAIFBHRoaXMFA25pbAgFAUYGY2FsbGVyCQACAQIeeW91IGFyZSBub3QgYWxsb3dlZCB0byBib3Jyb3chBAFICQEBZwEFAWIDCQBmAgUBRwUBSAkAAgECHFlvdSBjYW5ubm90IGJvcnJvdyB0aGF0IG11Y2gJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAUYGY2FsbGVyBQFHBQFiBQNuaWwBRgELc2V0VHJlc2hvbGQBAUcDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFAWEJAMwIAgUBYwkAzAgCBQR0aGlzBQNuaWwIBQFGBmNhbGxlcgkAAgECH3lvdSBhcmUgbm90IGFsbG93ZWQgdG8gZG8gdGhhdCEJAMwIAgkBDEludGVnZXJFbnRyeQICCHRyZXNob2xkBQFHBQNuaWwBRgEBeQEBbAMDCQECIT0CCAUBRgZjYWxsZXIFBHRoaXMJAQIhPQIIBQFGBmNhbGxlcgUBYwcJAAIBAht5b3UgYXJlIG5vdCBhbGxvd2VkIHRvIGFyYiEEAUkJALwJAgUBbAIBfAQBSgkBAWsBCQCRAwIFAUkAAAQBbggFAUoCXzEEAW8IBQFKAl8yBAFwCAUBSgJfMwQBcQgFAUoCXzQEAUsJAQFyAQkAkQMCBQFJAAEEAXMIBQFLAl8xBAFMCAUBSwJfMgQBTQkBAXIBCQCRAwIFAUkAAgQBTggFAU0CXzEEAU8IBQFNAl8yBAFQCQEBcgEJAJEDAgUBSQADBAFRCAUBUAJfMQQBUggFAVACXzIEAVMJAQFnAQkBAXUBBQFwAwkAAAIFAVMFAVMEAVQDCQBmAgkBBXZhbHVlAQkAtgkBBQFxBQFTBQFTCQEFdmFsdWUBCQC2CQEFAXEDCQAAAgUBVAUBVAQBVQkBAWcBCQEBdQEFAW4DCQAAAgUBVQUBVQQBVgMJAAACBQFMAgFXCQEBdgQFAXMFAXAFAVQFAW4DCQAAAgUBTAIBUwkBAUIDBQFzBQFwBQFUCQEBRAQFAXMFAXAFAVQFAW4DCQAAAgUBVgUBVgQBVwkAZQIJAQFnAQkBAXUBBQFuBQFVAwkAAAIFAVcFAVcEAVgJAQFnAQkBAXUBBQFvAwkAAAIFAVgFAVgEAVkDCQAAAgUBTwIBVwkBAXYEBQFOBQFuBQFXBQFvAwkAAAIFAU8CAVMJAQFCAwUBTgUBbgUBVwkBAUQEBQFOBQFuBQFXBQFvAwkAAAIFAVkFAVkEAVoJAGUCCQEBZwEJAQF1AQUBbwUBWAMJAAACBQFaBQFaBAJhYQkBAWcBCQEBdQEFAXADCQAAAgUCYWEFAmFhBAJhYgMJAAACBQFSAgFXCQEBdgQFAVEFAW8FAVoFAXADCQAAAgUBUgIBUwkBAUIDBQFRBQFvBQFaCQEBRAQFAVEFAW8FAVoFAXADCQAAAgUCYWIFAmFiBAJhYwkAZQIJAQFnAQkBAXUBBQFwBQJhYQMJAAACBQJhYwUCYWMEAmFkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCCHRyZXNob2xkAPCTCQMJAGYCBQJhYwkAZAIFAVQFAmFkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFGBmNhbGxlcgkAZQIFAmFjBQFUCQEBdQEFAXAFA25pbAkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEm9yaWdpbiBhbW91bnRJbiA9IAUBcQIRLCBuZXdfYW1vdW50SW4gPSAJAKQDAQUBVAIMLCBuZXdCYWxfMTogCQCkAwEFAVcCDCwgbmV3QmFsXzI6IAkApAMBBQFaAgwsIG5ld0JhbF8zOiAJAKQDAQUCYWMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmFlAQJhZgADCQDIEwMIBQJhZQlib2R5Qnl0ZXMJAJEDAggFAmFlBnByb29mcwAACAUCYWUPc2VuZGVyUHVibGljS2V5BgkAyBMDCAUCYWUJYm9keUJ5dGVzCQCRAwIIBQJhZQZwcm9vZnMAAAUBZGahQfo=", "height": 3612793, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Fu5xRrsrNyKZp4HjU3yNx828rpTJK2Wqjanbs53BbuiS Next: BvXAYTTTwyzbA99EujMhLZaRm5kW4JXuZFcdknLZJBfB Diff:
OldNewDifferences
2222
2323
2424 func getBase1 (data) = {
25- let p_data = split(data, "_")
25+ 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]))]
9494 then throw("you are not allowed to arb!")
9595 else {
9696 let data_array = split_4C(data, "|")
97- let $t026342690 = getBase1(data_array[0])
98- let a = $t026342690._1
99- let a2 = $t026342690._2
100- let assetIn = $t026342690._3
101- let amountIn = $t026342690._4
102- let $t026952733 = getBase2(data_array[1])
103- let p1 = $t026952733._1
104- let t1 = $t026952733._2
105- let $t027382776 = getBase2(data_array[2])
106- let p2 = $t027382776._1
107- let t2 = $t027382776._2
108- let $t027812819 = getBase2(data_array[3])
109- let p3 = $t027812819._1
110- let t3 = $t027812819._2
97+ let $t026372693 = getBase1(data_array[0])
98+ let a = $t026372693._1
99+ let a2 = $t026372693._2
100+ let assetIn = $t026372693._3
101+ let amountIn = $t026372693._4
102+ let $t026982736 = getBase2(data_array[1])
103+ let p1 = $t026982736._1
104+ let t1 = $t026982736._2
105+ let $t027412779 = getBase2(data_array[2])
106+ let p2 = $t027412779._1
107+ let t2 = $t027412779._2
108+ let $t027842822 = getBase2(data_array[3])
109+ let p3 = $t027842822._1
110+ let t3 = $t027842822._2
111111 let amount_bef_assetIn = getBalance(getAssetBytes(assetIn))
112112 if ((amount_bef_assetIn == amount_bef_assetIn))
113113 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 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) = {
25- let p_data = split(data, "_")
25+ 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, "|")
97- let $t026342690 = getBase1(data_array[0])
98- let a = $t026342690._1
99- let a2 = $t026342690._2
100- let assetIn = $t026342690._3
101- let amountIn = $t026342690._4
102- let $t026952733 = getBase2(data_array[1])
103- let p1 = $t026952733._1
104- let t1 = $t026952733._2
105- let $t027382776 = getBase2(data_array[2])
106- let p2 = $t027382776._1
107- let t2 = $t027382776._2
108- let $t027812819 = getBase2(data_array[3])
109- let p3 = $t027812819._1
110- let t3 = $t027812819._2
97+ let $t026372693 = getBase1(data_array[0])
98+ let a = $t026372693._1
99+ let a2 = $t026372693._2
100+ let assetIn = $t026372693._3
101+ let amountIn = $t026372693._4
102+ let $t026982736 = getBase2(data_array[1])
103+ let p1 = $t026982736._1
104+ let t1 = $t026982736._2
105+ let $t027412779 = getBase2(data_array[2])
106+ let p2 = $t027412779._1
107+ let t2 = $t027412779._2
108+ let $t027842822 = getBase2(data_array[3])
109+ let p3 = $t027842822._1
110+ let t3 = $t027842822._2
111111 let amount_bef_assetIn = getBalance(getAssetBytes(assetIn))
112112 if ((amount_bef_assetIn == amount_bef_assetIn))
113113 then {
114114 let new_amountIn = if ((value(parseInt(amountIn)) > amount_bef_assetIn))
115115 then amount_bef_assetIn
116116 else value(parseInt(amountIn))
117117 if ((new_amountIn == new_amountIn))
118118 then {
119119 let amount_bef_asset1 = getBalance(getAssetBytes(a))
120120 if ((amount_bef_asset1 == amount_bef_asset1))
121121 then {
122122 let swap1 = if ((t1 == "W"))
123123 then swap_wx(p1, assetIn, new_amountIn, a)
124124 else if ((t1 == "S"))
125125 then swap_swop(p1, assetIn, new_amountIn)
126126 else swap_puzzle(p1, assetIn, new_amountIn, a)
127127 if ((swap1 == swap1))
128128 then {
129129 let nb = (getBalance(getAssetBytes(a)) - amount_bef_asset1)
130130 if ((nb == nb))
131131 then {
132132 let amount_bef_asset2 = getBalance(getAssetBytes(a2))
133133 if ((amount_bef_asset2 == amount_bef_asset2))
134134 then {
135135 let swap2 = if ((t2 == "W"))
136136 then swap_wx(p2, a, nb, a2)
137137 else if ((t2 == "S"))
138138 then swap_swop(p2, a, nb)
139139 else swap_puzzle(p2, a, nb, a2)
140140 if ((swap2 == swap2))
141141 then {
142142 let nb2 = (getBalance(getAssetBytes(a2)) - amount_bef_asset2)
143143 if ((nb2 == nb2))
144144 then {
145145 let amount_bef_base_asset = getBalance(getAssetBytes(assetIn))
146146 if ((amount_bef_base_asset == amount_bef_base_asset))
147147 then {
148148 let swap3 = if ((t3 == "W"))
149149 then swap_wx(p3, a2, nb2, assetIn)
150150 else if ((t3 == "S"))
151151 then swap_swop(p3, a2, nb2)
152152 else swap_puzzle(p3, a2, nb2, assetIn)
153153 if ((swap3 == swap3))
154154 then {
155155 let nb3 = (getBalance(getAssetBytes(assetIn)) - amount_bef_base_asset)
156156 if ((nb3 == nb3))
157157 then {
158158 let treshold = valueOrElse(getInteger(this, "treshold"), 150000)
159159 if ((nb3 > (new_amountIn + treshold)))
160160 then [ScriptTransfer(i.caller, (nb3 - new_amountIn), getAssetBytes(assetIn))]
161161 else throw(((((((((("origin amountIn = " + amountIn) + ", new_amountIn = ") + toString(new_amountIn)) + ", newBal_1: ") + toString(nb)) + ", newBal_2: ") + toString(nb2)) + ", newBal_3: ") + toString(nb3)))
162162 }
163163 else throw("Strict value is not equal to itself.")
164164 }
165165 else throw("Strict value is not equal to itself.")
166166 }
167167 else throw("Strict value is not equal to itself.")
168168 }
169169 else throw("Strict value is not equal to itself.")
170170 }
171171 else throw("Strict value is not equal to itself.")
172172 }
173173 else throw("Strict value is not equal to itself.")
174174 }
175175 else throw("Strict value is not equal to itself.")
176176 }
177177 else throw("Strict value is not equal to itself.")
178178 }
179179 else throw("Strict value is not equal to itself.")
180180 }
181181 else throw("Strict value is not equal to itself.")
182182 }
183183 else throw("Strict value is not equal to itself.")
184184 }
185185
186186
187187 @Verifier(tx)
188188 func verify () = if (sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
189189 then true
190190 else sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], adminPublicKey)
191191

github/deemru/w8io/3ef1775 
56.37 ms