tx · AsLdDvo355wLWb3SVnXAe6RCQUWpSEjirf159Tczpkoq

3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez:  -0.01000000 Waves

2023.03.10 06:12 [3548920] smart account 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > SELF 0.00000000 Waves

{ "type": 13, "id": "AsLdDvo355wLWb3SVnXAe6RCQUWpSEjirf159Tczpkoq", "fee": 1000000, "feeAssetId": null, "timestamp": 1678417949085, "version": 2, "chainId": 87, "sender": "3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez", "senderPublicKey": "3zaQerEjh4SK1xhin9zzs5qr337aLRFhz7z1ckjFGhMz", "proofs": [ "37MZBBya6x2Yh18TBDAXJ9mxWidLLFwdyvJ8KmA3aTzcJ6ztHnHbwxFzWhcTLaxF8T8UHjZBKPv1YY9gah3PDDdh" ], "script": "base64:BgLsBwgCEgMKAQESAwoBARIDCgEIIg5mcmVlX3RvX2JvcnJvbSINVVNETl9BU1NFVF9JRCIEYm9zcyIOYWRtaW5QdWJsaWNLZXkiCWdldFB1dEdldCIJaXNfc3RhYmxlIgdwdXRGdW5jIgdnZXRGdW5jIgpnZXRCYWxhbmNlIgdhc3NldElkIgckbWF0Y2gwIgFiIghnZXRCYXNlMSIEZGF0YSIGcF9kYXRhIgFhIgJhMiIHYXNzZXRJbiIIYW1vdW50SW4iCGFtb3VudF8xIghhbW91bnRfMiIIYW1vdW50XzMiCGdldEJhc2UyIgJwMSIAIgNscDEiC2lzX3N0YWJsZV8xIgF0Ig1nZXRBc3NldEJ5dGVzIgdzd2FwX3d4IgFwIgJscCIFYXNzZXQiBmFtb3VudCIIcHV0RnVuYzEiCGdldEZ1bmMxIgRwdXQxIgtscDFfYXNzZXRpZCILbHBCYWxhbmNlXzEiBGdldDEiCXN3YXBfc3dvcCIGc3RhYmxlIgNlc3QiA21pbiIFc3dhcDEiBXN3YXAyIgtzd2FwX3B1enpsZSIIYXNzZXRPdXQiBHN3YXAiD2dldEludGVnZXJCeUtleSIHYWRkcmVzcyIDa2V5Ig9nZXRNaW5Ub1JlY2VpdmUiEGFtb3VudFdpdGhvdXRGZWUiBHBvb2wiA2ZlZSIJZmVlU2NhbGU2Ig1hbW91bnRXaXRoRmVlIhhtaW5Ub1JlY2VpdmVXaXRoU2xlZXBhZ2UiAWkiBGFtbnQiCmN1cnJlbnRCYWwiCmRhdGFfYXJyYXkiCyR0MDM3NzQzODYwIgskdDAzODY1MzkyMSICdDEiCyR0MDM5MjYzOTgyIgJwMiIDbHAyIgtpc19zdGFibGVfMiICdDIiCyR0MDM5ODc0MDQzIgJwMyIDbHAzIgtpc19zdGFibGVfMyICdDMiCyR0MDQwNDk0MTE1IgskdDA0MTIwNDE4NiIIcHV0RnVuYzIiCGdldEZ1bmMyIgskdDA0MTkxNDI1NyIIcHV0RnVuYzMiCGdldEZ1bmMzIhJhbW91bnRfYmVmX2Fzc2V0SW4iDG5ld19hbW91bnRJbiILJHQwNDQ2MzQ1OTciBWVzdF8xIgVtaW5fMSIRYW1vdW50X2JlZl9hc3NldDEiAm5iIgskdDA0OTkyNTEyNiIFZXN0XzIiBW1pbl8yIhFhbW91bnRfYmVmX2Fzc2V0MiIDbmIyIgskdDA1ODE0NTk0OCIFZXN0XzMiBW1pbl8zIhVhbW91bnRfYmVmX2Jhc2VfYXNzZXQiBXN3YXAzIgNuYjMiCHRyZXNob2xkIgJ0eCIGdmVyaWZ5DgABYQkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BHN0NIdkJhdEhwQ2h3bThyZUg3NHdmRXdrMVBIYzhScXkAAWIBILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAAFjCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUFJFNUtIOW9QR2ZGUHM3ZkduUWNKNHdOc2hFRFVQR2oxdAABZAEgr/8efHaHn138Hq+fsexc54494j5bIbLgBnFNFv+bFW0BAWUBAWYEAWcDCQAAAgUBZgABAgtwdXRPbmVUa25WMgIJcHV0T25lVGtuBAFoAwkAAAIFAWYAAQILZ2V0T25lVGtuVjICCWdldE9uZVRrbgkAlAoCBQFnBQFoAQFpAQFqBAFrBQFqAwkAAQIFAWsCCkJ5dGVWZWN0b3IEAWwFAWsJAPAHAgUEdGhpcwUBbAgJAO8HAQUEdGhpcwlhdmFpbGFibGUBAW0BAW4EAW8JALUJAgUBbgIBXwQBcAkAkQMCBQFvAAAEAXEJAJEDAgUBbwABBAFyCQCRAwIFAW8AAgQBcwkAkQMCBQFvAAMEAXQJAJEDAgUBbwAEBAF1CQCRAwIFAW8ABQQBdgkAkQMCBQFvAAYJAJkKBwUBcAUBcQUBcgUBcwUBdAUBdQUBdgEBdwEBbgQBbwkAtQkCBQFuAgFfBAF4CQCRAwIFAW8AAAQBegkAkQMCBQFvAAEEAUEJAJEDAgUBbwACBAFCCQCRAwIFAW8AAwkAlgoEBQF4BQF6BQFBBQFCAQFDAQFqAwkAAAIFAWoCBVdBVkVTBQR1bml0CQDZBAEFAWoBAUQHAUUBRgFHAUgBSQFKAXAEAUsJAPwHBAkBB0FkZHJlc3MBCQDZBAEFAUUFAUkJAMwIAgABCQDMCAIHBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQFDAQUBRwUBSAUDbmlsAwkAAAIFAUsFAUsEAUwJANkEAQUBRgQBTQkBAWkBBQFMAwkAAAIFAU0FAU0EAU4JAPwHBAkBB0FkZHJlc3MBCQDZBAEFAUUFAUoJAMwIAgUBcAkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUBTAUBTQUDbmlsAwkAAAIFAU4FAU4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEBTwYBRQFHAUgBUAFRAVIDCQAAAgUBUAABBAFTCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQFFAghleGNoYW5nZQkAzAgCBQFRCQDMCAIFAVIFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBAUMBBQFHBQFIBQNuaWwDCQAAAgUBUwUBUwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAFUCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQFFAghleGNoYW5nZQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBAUMBBQFHBQFIBQNuaWwDCQAAAgUBVAUBVAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQFVBAFFAUcBSAFWBAFXCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQFFAgRzd2FwCQDMCAIFAVYJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQFDAQUBRwUBSAUDbmlsAwkAAAIFAVcFAVcFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEBWAIBWQFaCQELdmFsdWVPckVsc2UCCQCaCAIFAVkFAVoAAAECYWECAmFiAmFjBAJhZAkBAVgCCQEHQWRkcmVzcwEJANkEAQUCYWMCCmNvbW1pc3Npb24EAmFlAMCEPQQCYWYJAGsDBQJhYgkAZQIFAmFlBQJhZAUCYWUEAmFnCQBlAgUCYWYJAGsDBQJhZgCYdQDAhD0JAJQKAgUCYWYFAmFnAwJhaAEGYm9ycm93AQJhaQMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUBYQkAzAgCBQFjCQDMCAIFBHRoaXMFA25pbAgFAmFoBmNhbGxlcgkAAgECHnlvdSBhcmUgbm90IGFsbG93ZWQgdG8gYm9ycm93IQQCYWoJAQFpAQUBYgMJAGYCBQJhaQUCYWoJAAIBAhxZb3UgY2Fubm5vdCBib3Jyb3cgdGhhdCBtdWNoCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJhaAZjYWxsZXIFAmFpBQFiBQNuaWwCYWgBC3NldFRyZXNob2xkAQJhaQMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUBYQkAzAgCBQFjCQDMCAIFBHRoaXMFA25pbAgFAmFoBmNhbGxlcgkAAgECH3lvdSBhcmUgbm90IGFsbG93ZWQgdG8gZG8gdGhhdCEJAMwIAgkBDEludGVnZXJFbnRyeQICCHRyZXNob2xkBQJhaQUDbmlsAmFoAQF5AQFuAwMJAQIhPQIIBQJhaAZjYWxsZXIFBHRoaXMJAQIhPQIIBQJhaAZjYWxsZXIFAWMHCQACAQIbeW91IGFyZSBub3QgYWxsb3dlZCB0byBhcmIhBAJhawkAvAkCBQFuAgF8BAJhbAkBAW0BCQCRAwIFAmFrAAAEAXAIBQJhbAJfMQQBcQgFAmFsAl8yBAFyCAUCYWwCXzMEAXMIBQJhbAJfNAQBdAgFAmFsAl81BAF1CAUCYWwCXzYEAXYIBQJhbAJfNwQCYW0JAQF3AQkAkQMCBQJhawABBAF4CAUCYW0CXzEEAXoIBQJhbQJfMgQBQQgFAmFtAl8zBAJhbggFAmFtAl80BAJhbwkBAXcBCQCRAwIFAmFrAAIEAmFwCAUCYW8CXzEEAmFxCAUCYW8CXzIEAmFyCAUCYW8CXzMEAmFzCAUCYW8CXzQEAmF0CQEBdwEJAJEDAgUCYWsAAwQCYXUIBQJhdAJfMQQCYXYIBQJhdAJfMgQCYXcIBQJhdAJfMwQCYXgIBQJhdAJfNAQCYXkJAQFlAQkBBXZhbHVlAQkAtgkBBQFBBAFJCAUCYXkCXzEEAUoIBQJheQJfMgQCYXoJAQFlAQkBBXZhbHVlAQkAtgkBBQJhcgQCYUEIBQJhegJfMQQCYUIIBQJhegJfMgQCYUMJAQFlAQkBBXZhbHVlAQkAtgkBBQJhdwQCYUQIBQJhQwJfMQQCYUUIBQJhQwJfMgQCYUYJAQFpAQkBAUMBBQFyAwkAAAIFAmFGBQJhRgQCYUcDCQBmAgkBBXZhbHVlAQkAtgkBBQFzBQJhRgUCYUYJAQV2YWx1ZQEJALYJAQUBcwMJAAACBQJhRwUCYUcEAmFIAwMJAAACBQJhbgIBUwkAAAIJAQV2YWx1ZQEJALYJAQUBQQABBwkBAmFhAgkBBXZhbHVlAQkAtgkBBQF0BQF4CQCUCgIAAAAABAJhSQgFAmFIAl8xBAJhSggFAmFIAl8yBAJhSwkBAWkBCQEBQwEFAXADCQAAAgUCYUsFAmFLBAFTAwkAAAIFAmFuAgFXCQEBRAcFAXgFAXoFAXIFAmFHBQFJBQFKBQFwAwkAAAIFAmFuAgFTCQEBTwYFAXgFAXIFAmFHCQEFdmFsdWUBCQC2CQEFAUEFAmFJBQJhSgkBAVUEBQF4BQFyBQJhRwUBcAMJAAACBQFTBQFTBAJhTAkAZQIJAQFpAQkBAUMBBQFwBQJhSwMJAAACBQJhTAUCYUwEAmFNAwMJAAACBQJhcwIBUwkAAAIJAQV2YWx1ZQEJALYJAQUCYXIAAQcJAQJhYQIJAQV2YWx1ZQEJALYJAQUBdQUCYXAJAJQKAgAAAAAEAmFOCAUCYU0CXzEEAmFPCAUCYU0CXzIEAmFQCQEBaQEJAQFDAQUBcQMJAAACBQJhUAUCYVAEAVQDCQAAAgUCYXMCAVcJAQFEBwUCYXAFAmFxBQFwBQJhTAUCYUEFAmFCBQFxAwkAAAIFAmFzAgFTCQEBTwYFAmFwBQFwBQJhTAkBBXZhbHVlAQkAtgkBBQJhcgUCYU4FAmFPCQEBVQQFAmFwBQFwBQJhTAUBcQMJAAACBQFUBQFUBAJhUQkAZQIJAQFpAQkBAUMBBQFxBQJhUAMJAAACBQJhUQUCYVEEAmFSAwMJAAACBQJheAIBUwkAAAIJAQV2YWx1ZQEJALYJAQUCYXcAAQcJAQJhYQIJAQV2YWx1ZQEJALYJAQUBdgUCYXUJAJQKAgAAAAAEAmFTCAUCYVICXzEEAmFUCAUCYVICXzIEAmFVCQEBaQEJAQFDAQUBcgMJAAACBQJhVQUCYVUEAmFWAwkAAAIFAmF4AgFXCQEBRAcFAmF1BQJhdgUBcQUCYVEFAmFEBQJhRQUBcgMJAAACBQJheAIBUwkBAU8GBQJhdQUBcQUCYVEJAQV2YWx1ZQEJALYJAQUCYXcFAmFTBQJhVAkBAVUEBQJhdQUBcQUCYVEFAXIDCQAAAgUCYVYFAmFWBAJhVwkAZQIJAQFpAQkBAUMBBQFyBQJhVQMJAAACBQJhVwUCYVcEAmFYCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCCHRyZXNob2xkAPCTCQMJAGYCBQJhVwkAZAIFAmFHBQJhWAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCYWgGY2FsbGVyCQBlAgUCYVcFAmFHCQEBQwEFAXIFA25pbAkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEm9yaWdpbiBhbW91bnRJbiA9IAUBcwIRLCBuZXdfYW1vdW50SW4gPSAJAKQDAQUCYUcCDCwgbmV3QmFsXzE6IAkApAMBBQJhTAIMLCBuZXdCYWxfMjogCQCkAwEFAmFRAgwsIG5ld0JhbF8zOiAJAKQDAQUCYVcJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmFZAQJhWgADCQDIEwMIBQJhWQlib2R5Qnl0ZXMJAJEDAggFAmFZBnByb29mcwAACAUCYVkPc2VuZGVyUHVibGljS2V5BgkAyBMDCAUCYVkJYm9keUJ5dGVzCQCRAwIIBQJhWQZwcm9vZnMAAAUBZD5U6kM=", "height": 3548920, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3cQj929vyZpm1VJe8wws4hz6A6QUuJaa3VfXxhxGvo4C Next: AQbHbbLVJvirjN4m63dapSohjABCQFwMFFfjrcr44LWF Diff:
OldNewDifferences
111111
112112
113113 @Callable(i)
114-func borrow (amnt) = if (if ((i.caller != boss))
115- then (i.caller != free_to_borrom)
116- else false)
114+func borrow (amnt) = if (!(containsElement([free_to_borrom, boss, this], i.caller)))
117115 then throw("you are not allowed to borrow!")
118116 else {
119117 let currentBal = getBalance(USDN_ASSET_ID)
125123
126124
127125 @Callable(i)
126+func setTreshold (amnt) = if (!(containsElement([free_to_borrom, boss, this], i.caller)))
127+ then throw("you are not allowed to do that!")
128+ else [IntegerEntry("treshold", amnt)]
129+
130+
131+
132+@Callable(i)
128133 func y (data) = if (if ((i.caller != this))
129134 then (i.caller != boss)
130135 else false)
131136 then throw("you are not allowed to arb!")
132137 else {
133138 let data_array = split_4C(data, "|")
134- let $t035473633 = getBase1(data_array[0])
135- let a = $t035473633._1
136- let a2 = $t035473633._2
137- let assetIn = $t035473633._3
138- let amountIn = $t035473633._4
139- let amount_1 = $t035473633._5
140- let amount_2 = $t035473633._6
141- let amount_3 = $t035473633._7
142- let $t036383694 = getBase2(data_array[1])
143- let p1 = $t036383694._1
144- let lp1 = $t036383694._2
145- let is_stable_1 = $t036383694._3
146- let t1 = $t036383694._4
147- let $t036993755 = getBase2(data_array[2])
148- let p2 = $t036993755._1
149- let lp2 = $t036993755._2
150- let is_stable_2 = $t036993755._3
151- let t2 = $t036993755._4
152- let $t037603816 = getBase2(data_array[3])
153- let p3 = $t037603816._1
154- let lp3 = $t037603816._2
155- let is_stable_3 = $t037603816._3
156- let t3 = $t037603816._4
157- let $t038223888 = getPutGet(value(parseInt(is_stable_1)))
158- let putFunc1 = $t038223888._1
159- let getFunc1 = $t038223888._2
160- let $t038933959 = getPutGet(value(parseInt(is_stable_2)))
161- let putFunc2 = $t038933959._1
162- let getFunc2 = $t038933959._2
163- let $t039644030 = getPutGet(value(parseInt(is_stable_3)))
164- let putFunc3 = $t039644030._1
165- let getFunc3 = $t039644030._2
139+ let $t037743860 = getBase1(data_array[0])
140+ let a = $t037743860._1
141+ let a2 = $t037743860._2
142+ let assetIn = $t037743860._3
143+ let amountIn = $t037743860._4
144+ let amount_1 = $t037743860._5
145+ let amount_2 = $t037743860._6
146+ let amount_3 = $t037743860._7
147+ let $t038653921 = getBase2(data_array[1])
148+ let p1 = $t038653921._1
149+ let lp1 = $t038653921._2
150+ let is_stable_1 = $t038653921._3
151+ let t1 = $t038653921._4
152+ let $t039263982 = getBase2(data_array[2])
153+ let p2 = $t039263982._1
154+ let lp2 = $t039263982._2
155+ let is_stable_2 = $t039263982._3
156+ let t2 = $t039263982._4
157+ let $t039874043 = getBase2(data_array[3])
158+ let p3 = $t039874043._1
159+ let lp3 = $t039874043._2
160+ let is_stable_3 = $t039874043._3
161+ let t3 = $t039874043._4
162+ let $t040494115 = getPutGet(value(parseInt(is_stable_1)))
163+ let putFunc1 = $t040494115._1
164+ let getFunc1 = $t040494115._2
165+ let $t041204186 = getPutGet(value(parseInt(is_stable_2)))
166+ let putFunc2 = $t041204186._1
167+ let getFunc2 = $t041204186._2
168+ let $t041914257 = getPutGet(value(parseInt(is_stable_3)))
169+ let putFunc3 = $t041914257._1
170+ let getFunc3 = $t041914257._2
166171 let amount_bef_assetIn = getBalance(getAssetBytes(assetIn))
167172 if ((amount_bef_assetIn == amount_bef_assetIn))
168173 then {
171176 else value(parseInt(amountIn))
172177 if ((new_amountIn == new_amountIn))
173178 then {
174- let $t042364370 = if (if ((t1 == "S"))
179+ let $t044634597 = if (if ((t1 == "S"))
175180 then (value(parseInt(is_stable_1)) == 1)
176181 else false)
177182 then getMinToReceive(value(parseInt(amount_1)), p1)
178183 else $Tuple2(0, 0)
179- let est_1 = $t042364370._1
180- let min_1 = $t042364370._2
184+ let est_1 = $t044634597._1
185+ let min_1 = $t044634597._2
181186 let amount_bef_asset1 = getBalance(getAssetBytes(a))
182187 if ((amount_bef_asset1 == amount_bef_asset1))
183188 then {
191196 let nb = (getBalance(getAssetBytes(a)) - amount_bef_asset1)
192197 if ((nb == nb))
193198 then {
194- let $t047654899 = if (if ((t2 == "S"))
199+ let $t049925126 = if (if ((t2 == "S"))
195200 then (value(parseInt(is_stable_2)) == 1)
196201 else false)
197202 then getMinToReceive(value(parseInt(amount_2)), p2)
198203 else $Tuple2(0, 0)
199- let est_2 = $t047654899._1
200- let min_2 = $t047654899._2
204+ let est_2 = $t049925126._1
205+ let min_2 = $t049925126._2
201206 let amount_bef_asset2 = getBalance(getAssetBytes(a2))
202207 if ((amount_bef_asset2 == amount_bef_asset2))
203208 then {
211216 let nb2 = (getBalance(getAssetBytes(a2)) - amount_bef_asset2)
212217 if ((nb2 == nb2))
213218 then {
214- let $t055875721 = if (if ((t3 == "S"))
219+ let $t058145948 = if (if ((t3 == "S"))
215220 then (value(parseInt(is_stable_3)) == 1)
216221 else false)
217222 then getMinToReceive(value(parseInt(amount_3)), p3)
218223 else $Tuple2(0, 0)
219- let est_3 = $t055875721._1
220- let min_3 = $t055875721._2
224+ let est_3 = $t058145948._1
225+ let min_3 = $t058145948._2
221226 let amount_bef_base_asset = getBalance(getAssetBytes(assetIn))
222227 if ((amount_bef_base_asset == amount_bef_base_asset))
223228 then {
230235 then {
231236 let nb3 = (getBalance(getAssetBytes(assetIn)) - amount_bef_base_asset)
232237 if ((nb3 == nb3))
233- then if ((nb3 > (new_amountIn + 150000)))
234- then [ScriptTransfer(i.caller, (nb3 - new_amountIn), getAssetBytes(assetIn))]
235- else throw(((((((((("origin amountIn = " + amountIn) + ", new_amountIn = ") + toString(new_amountIn)) + ", newBal_1: ") + toString(nb)) + ", newBal_2: ") + toString(nb2)) + ", newBal_3: ") + toString(nb3)))
238+ then {
239+ let treshold = valueOrElse(getInteger(this, "treshold"), 150000)
240+ if ((nb3 > (new_amountIn + treshold)))
241+ then [ScriptTransfer(i.caller, (nb3 - new_amountIn), getAssetBytes(assetIn))]
242+ else throw(((((((((("origin amountIn = " + amountIn) + ", new_amountIn = ") + toString(new_amountIn)) + ", newBal_1: ") + toString(nb)) + ", newBal_2: ") + toString(nb2)) + ", newBal_3: ") + toString(nb3)))
243+ }
236244 else throw("Strict value is not equal to itself.")
237245 }
238246 else throw("Strict value is not equal to itself.")
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 getIntegerByKey (address,key) = valueOrElse(getInteger(address, key), 0)
102102
103103
104104 func getMinToReceive (amountWithoutFee,pool) = {
105105 let fee = getIntegerByKey(Address(fromBase58String(pool)), "commission")
106106 let feeScale6 = 1000000
107107 let amountWithFee = fraction(amountWithoutFee, (feeScale6 - fee), feeScale6)
108108 let minToReceiveWithSleepage = (amountWithFee - fraction(amountWithFee, 15000, 1000000))
109109 $Tuple2(amountWithFee, minToReceiveWithSleepage)
110110 }
111111
112112
113113 @Callable(i)
114-func borrow (amnt) = if (if ((i.caller != boss))
115- then (i.caller != free_to_borrom)
116- else false)
114+func borrow (amnt) = if (!(containsElement([free_to_borrom, boss, this], i.caller)))
117115 then throw("you are not allowed to borrow!")
118116 else {
119117 let currentBal = getBalance(USDN_ASSET_ID)
120118 if ((amnt > currentBal))
121119 then throw("You cannnot borrow that much")
122120 else [ScriptTransfer(i.caller, amnt, USDN_ASSET_ID)]
123121 }
124122
125123
126124
127125 @Callable(i)
126+func setTreshold (amnt) = if (!(containsElement([free_to_borrom, boss, this], i.caller)))
127+ then throw("you are not allowed to do that!")
128+ else [IntegerEntry("treshold", amnt)]
129+
130+
131+
132+@Callable(i)
128133 func y (data) = if (if ((i.caller != this))
129134 then (i.caller != boss)
130135 else false)
131136 then throw("you are not allowed to arb!")
132137 else {
133138 let data_array = split_4C(data, "|")
134- let $t035473633 = getBase1(data_array[0])
135- let a = $t035473633._1
136- let a2 = $t035473633._2
137- let assetIn = $t035473633._3
138- let amountIn = $t035473633._4
139- let amount_1 = $t035473633._5
140- let amount_2 = $t035473633._6
141- let amount_3 = $t035473633._7
142- let $t036383694 = getBase2(data_array[1])
143- let p1 = $t036383694._1
144- let lp1 = $t036383694._2
145- let is_stable_1 = $t036383694._3
146- let t1 = $t036383694._4
147- let $t036993755 = getBase2(data_array[2])
148- let p2 = $t036993755._1
149- let lp2 = $t036993755._2
150- let is_stable_2 = $t036993755._3
151- let t2 = $t036993755._4
152- let $t037603816 = getBase2(data_array[3])
153- let p3 = $t037603816._1
154- let lp3 = $t037603816._2
155- let is_stable_3 = $t037603816._3
156- let t3 = $t037603816._4
157- let $t038223888 = getPutGet(value(parseInt(is_stable_1)))
158- let putFunc1 = $t038223888._1
159- let getFunc1 = $t038223888._2
160- let $t038933959 = getPutGet(value(parseInt(is_stable_2)))
161- let putFunc2 = $t038933959._1
162- let getFunc2 = $t038933959._2
163- let $t039644030 = getPutGet(value(parseInt(is_stable_3)))
164- let putFunc3 = $t039644030._1
165- let getFunc3 = $t039644030._2
139+ let $t037743860 = getBase1(data_array[0])
140+ let a = $t037743860._1
141+ let a2 = $t037743860._2
142+ let assetIn = $t037743860._3
143+ let amountIn = $t037743860._4
144+ let amount_1 = $t037743860._5
145+ let amount_2 = $t037743860._6
146+ let amount_3 = $t037743860._7
147+ let $t038653921 = getBase2(data_array[1])
148+ let p1 = $t038653921._1
149+ let lp1 = $t038653921._2
150+ let is_stable_1 = $t038653921._3
151+ let t1 = $t038653921._4
152+ let $t039263982 = getBase2(data_array[2])
153+ let p2 = $t039263982._1
154+ let lp2 = $t039263982._2
155+ let is_stable_2 = $t039263982._3
156+ let t2 = $t039263982._4
157+ let $t039874043 = getBase2(data_array[3])
158+ let p3 = $t039874043._1
159+ let lp3 = $t039874043._2
160+ let is_stable_3 = $t039874043._3
161+ let t3 = $t039874043._4
162+ let $t040494115 = getPutGet(value(parseInt(is_stable_1)))
163+ let putFunc1 = $t040494115._1
164+ let getFunc1 = $t040494115._2
165+ let $t041204186 = getPutGet(value(parseInt(is_stable_2)))
166+ let putFunc2 = $t041204186._1
167+ let getFunc2 = $t041204186._2
168+ let $t041914257 = getPutGet(value(parseInt(is_stable_3)))
169+ let putFunc3 = $t041914257._1
170+ let getFunc3 = $t041914257._2
166171 let amount_bef_assetIn = getBalance(getAssetBytes(assetIn))
167172 if ((amount_bef_assetIn == amount_bef_assetIn))
168173 then {
169174 let new_amountIn = if ((value(parseInt(amountIn)) > amount_bef_assetIn))
170175 then amount_bef_assetIn
171176 else value(parseInt(amountIn))
172177 if ((new_amountIn == new_amountIn))
173178 then {
174- let $t042364370 = if (if ((t1 == "S"))
179+ let $t044634597 = if (if ((t1 == "S"))
175180 then (value(parseInt(is_stable_1)) == 1)
176181 else false)
177182 then getMinToReceive(value(parseInt(amount_1)), p1)
178183 else $Tuple2(0, 0)
179- let est_1 = $t042364370._1
180- let min_1 = $t042364370._2
184+ let est_1 = $t044634597._1
185+ let min_1 = $t044634597._2
181186 let amount_bef_asset1 = getBalance(getAssetBytes(a))
182187 if ((amount_bef_asset1 == amount_bef_asset1))
183188 then {
184189 let swap1 = if ((t1 == "W"))
185190 then swap_wx(p1, lp1, assetIn, new_amountIn, putFunc1, getFunc1, a)
186191 else if ((t1 == "S"))
187192 then swap_swop(p1, assetIn, new_amountIn, value(parseInt(is_stable_1)), est_1, min_1)
188193 else swap_puzzle(p1, assetIn, new_amountIn, a)
189194 if ((swap1 == swap1))
190195 then {
191196 let nb = (getBalance(getAssetBytes(a)) - amount_bef_asset1)
192197 if ((nb == nb))
193198 then {
194- let $t047654899 = if (if ((t2 == "S"))
199+ let $t049925126 = if (if ((t2 == "S"))
195200 then (value(parseInt(is_stable_2)) == 1)
196201 else false)
197202 then getMinToReceive(value(parseInt(amount_2)), p2)
198203 else $Tuple2(0, 0)
199- let est_2 = $t047654899._1
200- let min_2 = $t047654899._2
204+ let est_2 = $t049925126._1
205+ let min_2 = $t049925126._2
201206 let amount_bef_asset2 = getBalance(getAssetBytes(a2))
202207 if ((amount_bef_asset2 == amount_bef_asset2))
203208 then {
204209 let swap2 = if ((t2 == "W"))
205210 then swap_wx(p2, lp2, a, nb, putFunc2, getFunc2, a2)
206211 else if ((t2 == "S"))
207212 then swap_swop(p2, a, nb, value(parseInt(is_stable_2)), est_2, min_2)
208213 else swap_puzzle(p2, a, nb, a2)
209214 if ((swap2 == swap2))
210215 then {
211216 let nb2 = (getBalance(getAssetBytes(a2)) - amount_bef_asset2)
212217 if ((nb2 == nb2))
213218 then {
214- let $t055875721 = if (if ((t3 == "S"))
219+ let $t058145948 = if (if ((t3 == "S"))
215220 then (value(parseInt(is_stable_3)) == 1)
216221 else false)
217222 then getMinToReceive(value(parseInt(amount_3)), p3)
218223 else $Tuple2(0, 0)
219- let est_3 = $t055875721._1
220- let min_3 = $t055875721._2
224+ let est_3 = $t058145948._1
225+ let min_3 = $t058145948._2
221226 let amount_bef_base_asset = getBalance(getAssetBytes(assetIn))
222227 if ((amount_bef_base_asset == amount_bef_base_asset))
223228 then {
224229 let swap3 = if ((t3 == "W"))
225230 then swap_wx(p3, lp3, a2, nb2, putFunc3, getFunc3, assetIn)
226231 else if ((t3 == "S"))
227232 then swap_swop(p3, a2, nb2, value(parseInt(is_stable_3)), est_3, min_3)
228233 else swap_puzzle(p3, a2, nb2, assetIn)
229234 if ((swap3 == swap3))
230235 then {
231236 let nb3 = (getBalance(getAssetBytes(assetIn)) - amount_bef_base_asset)
232237 if ((nb3 == nb3))
233- then if ((nb3 > (new_amountIn + 150000)))
234- then [ScriptTransfer(i.caller, (nb3 - new_amountIn), getAssetBytes(assetIn))]
235- else throw(((((((((("origin amountIn = " + amountIn) + ", new_amountIn = ") + toString(new_amountIn)) + ", newBal_1: ") + toString(nb)) + ", newBal_2: ") + toString(nb2)) + ", newBal_3: ") + toString(nb3)))
238+ then {
239+ let treshold = valueOrElse(getInteger(this, "treshold"), 150000)
240+ if ((nb3 > (new_amountIn + treshold)))
241+ then [ScriptTransfer(i.caller, (nb3 - new_amountIn), getAssetBytes(assetIn))]
242+ else throw(((((((((("origin amountIn = " + amountIn) + ", new_amountIn = ") + toString(new_amountIn)) + ", newBal_1: ") + toString(nb)) + ", newBal_2: ") + toString(nb2)) + ", newBal_3: ") + toString(nb3)))
243+ }
236244 else throw("Strict value is not equal to itself.")
237245 }
238246 else throw("Strict value is not equal to itself.")
239247 }
240248 else throw("Strict value is not equal to itself.")
241249 }
242250 else throw("Strict value is not equal to itself.")
243251 }
244252 else throw("Strict value is not equal to itself.")
245253 }
246254 else throw("Strict value is not equal to itself.")
247255 }
248256 else throw("Strict value is not equal to itself.")
249257 }
250258 else throw("Strict value is not equal to itself.")
251259 }
252260 else throw("Strict value is not equal to itself.")
253261 }
254262 else throw("Strict value is not equal to itself.")
255263 }
256264 else throw("Strict value is not equal to itself.")
257265 }
258266
259267
260268 @Verifier(tx)
261269 func verify () = if (sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
262270 then true
263271 else sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], adminPublicKey)
264272

github/deemru/w8io/3ef1775 
72.84 ms