tx · GuzSt8nFhAPBKttxp3s5RnbcVfWvAfzeXH7o8htbvr2K

3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy:  -0.01000000 Waves

2023.03.03 16:33 [3539426] smart account 3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy > SELF 0.00000000 Waves

{ "type": 13, "id": "GuzSt8nFhAPBKttxp3s5RnbcVfWvAfzeXH7o8htbvr2K", "fee": 1000000, "feeAssetId": null, "timestamp": 1677850505249, "version": 2, "chainId": 87, "sender": "3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy", "senderPublicKey": "9KXfR1iJDN9MLTf7rgrygpRA3HG53KCgWyxzqk4m25Qd", "proofs": [ "YL2Miq7w7kUXw6dsSDoV5SWEPF11ZLgHHETHyRPDaTkaGsKWXcy2X1uRptRvvhkJJnPjZdqobNNhD88D91W9b69" ], "script": "base64:BgKCBggCEgMKAQESBAoCCAEiGVdYX0xQX1dBVkVTX1VTRE5fQVNTRVRfSUQiFldYX0xQX1dYX1VTRE5fQVNTRVRfSUQiF1dYX1BPT0xfV0FWRVNfVVNETl9EQVBQIhVXWF9QT09MX1dYX1dBVkVTX0RBUFAiG05FVVRSSU5PX1JFU1RfUkVBRE9OTFlfREFQUCIVTkVVVFJJTk9fTUVUUklDU19EQVBQIg1ORVVUUklOT19NQUlOIg9ORVVUUklOT19PUkFDTEUiEE5FVVRSSU5PX0ZBQ1RPUlkiDVVTRE5fQVNTRVRfSUQiC1dYX0FTU0VUX0lEIgtCT1JST1dfREFQUCIJYXNBbnlMaXN0IgF2IgckbWF0Y2gwIgFsIgVhc0ludCIBeCIBdCIFYXNTdHIiE2ZpbmFsaXplV2F2ZXNUb1VzZG4iAWkiBHR4aWQiBUluZGV4IgN3YmIiBHd4YmIiBGRhdGEiCGRhdGFfYXJyIgxzd2FwRmluYWxpemUiA3diYSIEd3hiYSIGYW1vdW50IgVjYWxsMSIObHBUb2tlbkJhbGFuY2UiBWNhbGwyIghhbW91bnRXeCIFd2Jid3giBWNhbGwzIhBscFRva2VuQmFsYW5jZVd4IgVjYWxsNCIFd2Jhd3giEmFtb3VudFdhdmVzQWZ0ZXJXeCIFY2FsbDUiD2xwVG9rZW5CYWxhbmNlVyIFY2FsbDYiEWZpbmFsaXplV2F2ZXNPbmx5IgFhIg9uZXV0cmlub01ldHJpY3MiAkJSIgRjYWxsIhFuZXV0cmlub19kYXRhX2FyciIYYWxyZWFkeVN3YXBwZWRVbmRlckxpbWl0IhVtYXhBdmFpbGFibGVUb1N3YXBOb3ciEWFtb3VuT2ZVc2RuVG9Td2FwIgZib3Jyb3ciEnN3YXBVc2RuVG9XYXZlc19TQyIUYmFsYW5jZV91bmxvY2tfYmxvY2siBWluZGV4Ihx3eE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIgJ0eCIGdmVyaWZ5EQABYQEgXedtbkamxzmxtK4hQ1NqaJeqmQ+fWxX6vGpRDRxJGSAAAWIBIJ8zEO+NreeRGgbC3BjYJ4MQg6r17OmSQeqIVeLgqaeRAAFjCQEHQWRkcmVzcwEBGgFX7UefzUI8k75LIc37An4fyC37loB6w699AAFkCQEHQWRkcmVzcwEBGgFXmkQFmJm8tKiQ5rdVb7cYKMuIhtMFfR9WAAFlCQEHQWRkcmVzcwEBGgFXNpjMBVfHrm4Dx/V/JlVDiE2uH9ead1JRAAFmCQEHQWRkcmVzcwEBGgFXOOSmjvphewk9IizfdFuz4IiynRUPOhS2AAFnCQEHQWRkcmVzcwEBGgFXcARipkeb6a1WaJTL74WMMIIgKJoIFJayAAFoCQEHQWRkcmVzcwEBGgFXI7OtElyTpMrsOf5PRtbNVk0t+xD7Y5h6AAFpCQEHQWRkcmVzcwEBGgFXeFveir5RKq6LMepvE5AlvvSpuKK7CQJBAAFqASC2JinDBPXOU5GkDkt1JC9kjFGx+t+vVCm9SNIdKrKq0QABawEgkwEcq6nHbiVXzmaecba9qmv4POhYCyru2aBOuzzcFLEAAWwJAQdBZGRyZXNzAQEaAVcU3JJZoA9M3cfagw1Midl0Q2S2hgj44ncBAW0BAW4EAW8FAW4DCQABAgUBbwIJTGlzdFtBbnldBAFwBQFvBQFwCQACAQIEI2VycgEBcQEBbgQBbwUBbgMJAAECBQFvAgNJbnQEAXIFAW8FAXIEAXMFAW8JAAIBAgQjZXJyAQF0AQFuBAFvBQFuAwkAAQIFAW8CBlN0cmluZwQBcgUBbwUBcgQBcwUBbwkAAgECBCNlcnIBAXUDAXYBdwF4AwkBAiE9AggFAXYGY2FsbGVyBQR0aGlzCQACAQILTm90IGFsbG93ZWQEAXkICQDvBwEFBHRoaXMJYXZhaWxhYmxlAwkAAAIFAXkFAXkEAXoJAPAHAgUEdGhpcwUBawMJAAACBQF6BQF6BAFBCQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAKwCAgIFc3dhcF8FAXcCCF9QRU5ESU5HBAFCCQC1CQIFAUECAV8EAUMJAPwHBAUBZwIId2l0aGRyYXcJAMwIAgkApQgBBQR0aGlzCQDMCAIFAXgJAMwIAgUBdwUDbmlsBQNuaWwDCQAAAgUBQwUBQwQBRAgJAO8HAQUEdGhpcwlhdmFpbGFibGUDCQAAAgUBRAUBRAQBRQkA8AcCBQR0aGlzBQFrAwkAAAIFAUUFAUUEAUYJAGUCBQFEBQF5AwkAZwIAAAUBRgkAAgECD05vdGhpbmcgdG8gc3dhcAQBRwkA/AcEBQFjAglwdXRPbmVUa24JAMwIAgABCQDMCAIHBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQJAGUCBQFGAMCEPQUDbmlsAwkAAAIFAUcFAUcEAUgJAPAHAgUEdGhpcwUBYQQBSQkA/AcEBQFjAglnZXRPbmVUa24JAMwIAgkA2AQBBQFqCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQFhBQFIBQNuaWwDCQAAAgUBSQUBSQQBSgkAZQIFAUUFAXoEAUsICQDvBwEFBHRoaXMJYXZhaWxhYmxlAwkAAAIFAUsFAUsDCQBnAgAABQFKCQACAQIPTm90aGluZyB0byBzd2FwBAFMCQD8BwQFAWQCCXB1dE9uZVRrbgkAzAgCAAEJAMwIAgcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUBawUBSgUDbmlsAwkAAAIFAUwFAUwEAU0JAPAHAgUEdGhpcwUBYgQBTgkA/AcEBQFkAglnZXRPbmVUa24JAMwIAgIFV0FWRVMJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAWIFAU0FA25pbAMJAAACBQFOBQFOBAFPCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQMJAAACBQFPBQFPBAFQCQBlAgUBTwUBSwMJAGcCAAAFAVAJAAIBAg9Ob3RoaW5nIHRvIHN3YXAEAVEJAPwHBAUBYwIJcHV0T25lVGtuCQDMCAIAAQkAzAgCBwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0CQBlAgUBUADAhD0FA25pbAMJAAACBQFRBQFRBAFSCQDwBwIFBHRoaXMFAWEEAVMJAPwHBAUBYwIJZ2V0T25lVGtuCQDMCAIJANgEAQUBagkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUBYQUBUgUDbmlsAwkAAAIFAVMFAVMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgICBXN3YXBfBQF3AghfUEVORElORwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIFc3dhcF8FAXcCCV9GSU5JU0hFRAUBQQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFsCQELdmFsdWVPckVsc2UCCQC2CQEJAJEDAgUBQgADAAAFAWoFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEBVAMBdgF3AXgDCQECIT0CCAUBdgZjYWxsZXIFBHRoaXMJAAIBAgtOb3QgYWxsb3dlZAQBQQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICCQCsAgICBXN3YXBfBQF3AghfUEVORElORwQBQwkA/AcEBQFnAgh3aXRoZHJhdwkAzAgCCQClCAEFBHRoaXMJAMwIAgUBeAkAzAgCBQF3BQNuaWwFA25pbAMJAAACBQFDBQFDCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICAgVzd2FwXwUBdwIIX1BFTkRJTkcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXN3YXBfBQF3AglfRklOSVNIRUQFAUEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgIBdgELdXNkblRvV2F2ZXMBAVUDCQECIT0CCAUBdgZjYWxsZXIFBHRoaXMJAAIBAgtOb3QgYWxsb3dlZAQBRgUBVQQBdwkA2AQBCAUBdg10cmFuc2FjdGlvbklkBAFWCQEBbQEJAPwHBAUBZgIaY2FsY05ldXRpbm9NZXRyaWNzUkVBRE9OTFkFA25pbAUDbmlsAwkAAAIFAVYFAVYEAVcJAQFxAQkAkQMCBQFWAAgDCQBmAgUBVwCUkQYEAVgJAQF0AQkA/AcEBQFlAhBzd2FwSW5mb1JFQURPTkxZCQDMCAICIzNQRzdDSHZCYXRIcENod204cmVINzR3ZkV3azFQSGM4UnF5BQNuaWwFA25pbAMJAAACBQFYBQFYBAFZCQC1CQIFAVgCAl9fBAFaCQEBcQEJALYJAQkAkQMCBQFZAAsEAmFhCQEBcQEJALYJAQkAkQMCBQFZAAoDCQECIT0CBQFaAAAJAAIBAg5DYW4ndCBzd2FwIHlldAQCYWIDCQBmAgUBRgUCYWEFAmFhBQFGBAJhYwkA/AcEBQFsAgZib3Jyb3cJAMwIAgUCYWIFA25pbAUDbmlsAwkAAAIFAmFjBQJhYwQCYWQJAPwHBAUBZwIUc3dhcE5ldXRyaW5vVG9CYXNrZXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUBagUCYWIFA25pbAMJAAACBQJhZAUCYWQEAmFlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQFnCQCsAgICFWJhbGFuY2VfdW5sb2NrX2Jsb2NrXwkApQgBBQR0aGlzBAJhZgkAZAIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAWgCC3ByaWNlX2luZGV4AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXN3YXBfBQF3AghfUEVORElORwkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKQDAQUCYWYCAV8JAKQDAQUGaGVpZ2h0AgFfBQF3AgFfCQCkAwEFAmFiAgFfCQCkAwEFAmFlBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAgtCciB1bmRlciAxMAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgF2AQhmaW5hbGl6ZQIBdwF4AwkBAiE9AggFAXYGY2FsbGVyBQR0aGlzCQACAQILTm90IGFsbG93ZWQEAmFnCQERQGV4dHJOYXRpdmUoMTA1MSkCBQFpAh4lc19fb25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQDBQJhZwkBAVQDBQF2BQF3BQF4CQEBdQMFAXYFAXcFAXgBAmFoAQJhaQAJAMgTAwgFAmFoCWJvZHlCeXRlcwkAkQMCCAUCYWgGcHJvb2ZzAAAIBQJhaA9zZW5kZXJQdWJsaWNLZXlEbric", "height": 3539426, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AoFqYU9adhCJcRPNuJpvpvn9F86SQy6CTNmBSomkmQc6 Next: 7Bhc1EnmTMYBfgknNwLGBLdq1d3PfEkBMSUnTq1Ligkh Diff:
OldNewDifferences
7979 let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
8080 let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [toBase58String(USDN_ASSET_ID), 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
8181 if ((call2 == call2))
82- then if (true)
83- then throw("z|z")
84- else {
85- let amountWx = (wxba - wxbb)
86- let wbbwx = wavesBalance(this).available
87- if ((wbbwx == wbbwx))
88- then if ((0 >= amountWx))
89- then throw("Nothing to swap")
90- else {
91- let call3 = invoke(WX_POOL_WX_WAVES_DAPP, "putOneTkn", [1, false], [AttachedPayment(WX_ASSET_ID, amountWx)])
92- if ((call3 == call3))
93- then {
94- let lpTokenBalanceWx = assetBalance(this, WX_LP_WX_USDN_ASSET_ID)
95- let call4 = invoke(WX_POOL_WX_WAVES_DAPP, "getOneTkn", [unit, 1], [AttachedPayment(WX_LP_WX_USDN_ASSET_ID, lpTokenBalanceWx)])
96- if ((call4 == call4))
97- then {
98- let wbawx = wavesBalance(this).available
99- if ((wbawx == wbawx))
100- then {
101- let amountWavesAfterWx = (wbawx - wbbwx)
102- if ((0 >= amountWavesAfterWx))
103- then throw("Nothing to swap")
104- else {
105- let call5 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, (amountWavesAfterWx - 1000000))])
106- if ((call5 == call5))
107- then {
108- let lpTokenBalanceW = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
109- let call6 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [toBase58String(USDN_ASSET_ID), 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalanceW)])
110- if ((call6 == call6))
111- then [DeleteEntry((("swap_" + txid) + "_PENDING")), StringEntry((("swap_" + txid) + "_FINISHED"), data), ScriptTransfer(BORROW_DAPP, valueOrElse(parseInt(data_arr[3]), 0), USDN_ASSET_ID)]
112- else throw("Strict value is not equal to itself.")
113- }
114- else throw("Strict value is not equal to itself.")
115- }
116- }
117- else throw("Strict value is not equal to itself.")
118- }
119- else throw("Strict value is not equal to itself.")
120- }
121- else throw("Strict value is not equal to itself.")
122- }
123- else throw("Strict value is not equal to itself.")
124- }
82+ then {
83+ let amountWx = (wxba - wxbb)
84+ let wbbwx = wavesBalance(this).available
85+ if ((wbbwx == wbbwx))
86+ then if ((0 >= amountWx))
87+ then throw("Nothing to swap")
88+ else {
89+ let call3 = invoke(WX_POOL_WX_WAVES_DAPP, "putOneTkn", [1, false], [AttachedPayment(WX_ASSET_ID, amountWx)])
90+ if ((call3 == call3))
91+ then {
92+ let lpTokenBalanceWx = assetBalance(this, WX_LP_WX_USDN_ASSET_ID)
93+ let call4 = invoke(WX_POOL_WX_WAVES_DAPP, "getOneTkn", ["WAVES", 1], [AttachedPayment(WX_LP_WX_USDN_ASSET_ID, lpTokenBalanceWx)])
94+ if ((call4 == call4))
95+ then {
96+ let wbawx = wavesBalance(this).available
97+ if ((wbawx == wbawx))
98+ then {
99+ let amountWavesAfterWx = (wbawx - wbbwx)
100+ if ((0 >= amountWavesAfterWx))
101+ then throw("Nothing to swap")
102+ else {
103+ let call5 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, (amountWavesAfterWx - 1000000))])
104+ if ((call5 == call5))
105+ then {
106+ let lpTokenBalanceW = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
107+ let call6 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [toBase58String(USDN_ASSET_ID), 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalanceW)])
108+ if ((call6 == call6))
109+ then [DeleteEntry((("swap_" + txid) + "_PENDING")), StringEntry((("swap_" + txid) + "_FINISHED"), data), ScriptTransfer(BORROW_DAPP, valueOrElse(parseInt(data_arr[3]), 0), USDN_ASSET_ID)]
110+ else throw("Strict value is not equal to itself.")
111+ }
112+ else throw("Strict value is not equal to itself.")
113+ }
114+ }
115+ else throw("Strict value is not equal to itself.")
116+ }
117+ else throw("Strict value is not equal to itself.")
118+ }
119+ else throw("Strict value is not equal to itself.")
120+ }
121+ else throw("Strict value is not equal to itself.")
122+ }
125123 else throw("Strict value is not equal to itself.")
126124 }
127125 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 WX_LP_WAVES_USDN_ASSET_ID = base58'7KZbJrVopwJhkdwbe1eFDBbex4dkY63MxjTNjqXtrzj1'
55
66 let WX_LP_WX_USDN_ASSET_ID = base58'BiSzFe8nSL78oZaebfoin5vBZ5Pze6d7kaeijLqr5xZe'
77
88 let WX_POOL_WAVES_USDN_DAPP = Address(base58'3PPZWgFNRKHLvM51pwS934C8VZ7d2F4Z58g')
99
1010 let WX_POOL_WX_WAVES_DAPP = Address(base58'3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh')
1111
1212 let NEUTRINO_REST_READONLY_DAPP = Address(base58'3P6uaG88jjcLYZQrvJHLWPbFFRnChnAzmcU')
1313
1414 let NEUTRINO_METRICS_DAPP = Address(base58'3P77iUusNwMMzWFdC8f7bftwpHyG1PBs1gq')
1515
1616 let NEUTRINO_MAIN = Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo')
1717
1818 let NEUTRINO_ORACLE = Address(base58'3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP')
1919
2020 let NEUTRINO_FACTORY = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv')
2121
2222 let USDN_ASSET_ID = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
2323
2424 let WX_ASSET_ID = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
2525
2626 let BORROW_DAPP = Address(base58'3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez')
2727
2828 func asAnyList (v) = match v {
2929 case l: List[Any] =>
3030 l
3131 case _ =>
3232 throw("#err")
3333 }
3434
3535
3636 func asInt (v) = match v {
3737 case x: Int =>
3838 x
3939 case t =>
4040 throw("#err")
4141 }
4242
4343
4444 func asStr (v) = match v {
4545 case x: String =>
4646 x
4747 case t =>
4848 throw("#err")
4949 }
5050
5151
5252 func finalizeWavesToUsdn (i,txid,Index) = if ((i.caller != this))
5353 then throw("Not allowed")
5454 else {
5555 let wbb = wavesBalance(this).available
5656 if ((wbb == wbb))
5757 then {
5858 let wxbb = assetBalance(this, WX_ASSET_ID)
5959 if ((wxbb == wxbb))
6060 then {
6161 let data = getStringValue((("swap_" + txid) + "_PENDING"))
6262 let data_arr = split(data, "_")
6363 let swapFinalize = invoke(NEUTRINO_MAIN, "withdraw", [toString(this), Index, txid], nil)
6464 if ((swapFinalize == swapFinalize))
6565 then {
6666 let wba = wavesBalance(this).available
6767 if ((wba == wba))
6868 then {
6969 let wxba = assetBalance(this, WX_ASSET_ID)
7070 if ((wxba == wxba))
7171 then {
7272 let amount = (wba - wbb)
7373 if ((0 >= amount))
7474 then throw("Nothing to swap")
7575 else {
7676 let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, (amount - 1000000))])
7777 if ((call1 == call1))
7878 then {
7979 let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
8080 let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [toBase58String(USDN_ASSET_ID), 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
8181 if ((call2 == call2))
82- then if (true)
83- then throw("z|z")
84- else {
85- let amountWx = (wxba - wxbb)
86- let wbbwx = wavesBalance(this).available
87- if ((wbbwx == wbbwx))
88- then if ((0 >= amountWx))
89- then throw("Nothing to swap")
90- else {
91- let call3 = invoke(WX_POOL_WX_WAVES_DAPP, "putOneTkn", [1, false], [AttachedPayment(WX_ASSET_ID, amountWx)])
92- if ((call3 == call3))
93- then {
94- let lpTokenBalanceWx = assetBalance(this, WX_LP_WX_USDN_ASSET_ID)
95- let call4 = invoke(WX_POOL_WX_WAVES_DAPP, "getOneTkn", [unit, 1], [AttachedPayment(WX_LP_WX_USDN_ASSET_ID, lpTokenBalanceWx)])
96- if ((call4 == call4))
97- then {
98- let wbawx = wavesBalance(this).available
99- if ((wbawx == wbawx))
100- then {
101- let amountWavesAfterWx = (wbawx - wbbwx)
102- if ((0 >= amountWavesAfterWx))
103- then throw("Nothing to swap")
104- else {
105- let call5 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, (amountWavesAfterWx - 1000000))])
106- if ((call5 == call5))
107- then {
108- let lpTokenBalanceW = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
109- let call6 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [toBase58String(USDN_ASSET_ID), 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalanceW)])
110- if ((call6 == call6))
111- then [DeleteEntry((("swap_" + txid) + "_PENDING")), StringEntry((("swap_" + txid) + "_FINISHED"), data), ScriptTransfer(BORROW_DAPP, valueOrElse(parseInt(data_arr[3]), 0), USDN_ASSET_ID)]
112- else throw("Strict value is not equal to itself.")
113- }
114- else throw("Strict value is not equal to itself.")
115- }
116- }
117- else throw("Strict value is not equal to itself.")
118- }
119- else throw("Strict value is not equal to itself.")
120- }
121- else throw("Strict value is not equal to itself.")
122- }
123- else throw("Strict value is not equal to itself.")
124- }
82+ then {
83+ let amountWx = (wxba - wxbb)
84+ let wbbwx = wavesBalance(this).available
85+ if ((wbbwx == wbbwx))
86+ then if ((0 >= amountWx))
87+ then throw("Nothing to swap")
88+ else {
89+ let call3 = invoke(WX_POOL_WX_WAVES_DAPP, "putOneTkn", [1, false], [AttachedPayment(WX_ASSET_ID, amountWx)])
90+ if ((call3 == call3))
91+ then {
92+ let lpTokenBalanceWx = assetBalance(this, WX_LP_WX_USDN_ASSET_ID)
93+ let call4 = invoke(WX_POOL_WX_WAVES_DAPP, "getOneTkn", ["WAVES", 1], [AttachedPayment(WX_LP_WX_USDN_ASSET_ID, lpTokenBalanceWx)])
94+ if ((call4 == call4))
95+ then {
96+ let wbawx = wavesBalance(this).available
97+ if ((wbawx == wbawx))
98+ then {
99+ let amountWavesAfterWx = (wbawx - wbbwx)
100+ if ((0 >= amountWavesAfterWx))
101+ then throw("Nothing to swap")
102+ else {
103+ let call5 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, (amountWavesAfterWx - 1000000))])
104+ if ((call5 == call5))
105+ then {
106+ let lpTokenBalanceW = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
107+ let call6 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [toBase58String(USDN_ASSET_ID), 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalanceW)])
108+ if ((call6 == call6))
109+ then [DeleteEntry((("swap_" + txid) + "_PENDING")), StringEntry((("swap_" + txid) + "_FINISHED"), data), ScriptTransfer(BORROW_DAPP, valueOrElse(parseInt(data_arr[3]), 0), USDN_ASSET_ID)]
110+ else throw("Strict value is not equal to itself.")
111+ }
112+ else throw("Strict value is not equal to itself.")
113+ }
114+ }
115+ else throw("Strict value is not equal to itself.")
116+ }
117+ else throw("Strict value is not equal to itself.")
118+ }
119+ else throw("Strict value is not equal to itself.")
120+ }
121+ else throw("Strict value is not equal to itself.")
122+ }
125123 else throw("Strict value is not equal to itself.")
126124 }
127125 else throw("Strict value is not equal to itself.")
128126 }
129127 }
130128 else throw("Strict value is not equal to itself.")
131129 }
132130 else throw("Strict value is not equal to itself.")
133131 }
134132 else throw("Strict value is not equal to itself.")
135133 }
136134 else throw("Strict value is not equal to itself.")
137135 }
138136 else throw("Strict value is not equal to itself.")
139137 }
140138
141139
142140 func finalizeWavesOnly (i,txid,Index) = if ((i.caller != this))
143141 then throw("Not allowed")
144142 else {
145143 let data = getStringValue(this, (("swap_" + txid) + "_PENDING"))
146144 let swapFinalize = invoke(NEUTRINO_MAIN, "withdraw", [toString(this), Index, txid], nil)
147145 if ((swapFinalize == swapFinalize))
148146 then [DeleteEntry((("swap_" + txid) + "_PENDING")), StringEntry((("swap_" + txid) + "_FINISHED"), data)]
149147 else throw("Strict value is not equal to itself.")
150148 }
151149
152150
153151 @Callable(i)
154152 func usdnToWaves (a) = if ((i.caller != this))
155153 then throw("Not allowed")
156154 else {
157155 let amount = a
158156 let txid = toBase58String(i.transactionId)
159157 let neutrinoMetrics = asAnyList(invoke(NEUTRINO_METRICS_DAPP, "calcNeutinoMetricsREADONLY", nil, nil))
160158 if ((neutrinoMetrics == neutrinoMetrics))
161159 then {
162160 let BR = asInt(neutrinoMetrics[8])
163161 if ((BR > 100500))
164162 then {
165163 let call = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", ["3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy"], nil))
166164 if ((call == call))
167165 then {
168166 let neutrino_data_arr = split(call, "__")
169167 let alreadySwappedUnderLimit = asInt(parseInt(neutrino_data_arr[11]))
170168 let maxAvailableToSwapNow = asInt(parseInt(neutrino_data_arr[10]))
171169 if ((alreadySwappedUnderLimit != 0))
172170 then throw("Can't swap yet")
173171 else {
174172 let amounOfUsdnToSwap = if ((amount > maxAvailableToSwapNow))
175173 then maxAvailableToSwapNow
176174 else amount
177175 let borrow = invoke(BORROW_DAPP, "borrow", [amounOfUsdnToSwap], nil)
178176 if ((borrow == borrow))
179177 then {
180178 let swapUsdnToWaves_SC = invoke(NEUTRINO_MAIN, "swapNeutrinoToBasket", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
181179 if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
182180 then {
183181 let balance_unlock_block = getIntegerValue(NEUTRINO_MAIN, ("balance_unlock_block_" + toString(this)))
184182 let index = (getIntegerValue(NEUTRINO_ORACLE, "price_index") + 1)
185183 [StringEntry((("swap_" + txid) + "_PENDING"), ((((((((toString(index) + "_") + toString(height)) + "_") + txid) + "_") + toString(amounOfUsdnToSwap)) + "_") + toString(balance_unlock_block)))]
186184 }
187185 else throw("Strict value is not equal to itself.")
188186 }
189187 else throw("Strict value is not equal to itself.")
190188 }
191189 }
192190 else throw("Strict value is not equal to itself.")
193191 }
194192 else throw("Br under 10")
195193 }
196194 else throw("Strict value is not equal to itself.")
197195 }
198196
199197
200198
201199 @Callable(i)
202200 func finalize (txid,Index) = if ((i.caller != this))
203201 then throw("Not allowed")
204202 else {
205203 let wxOneTokenOperationsDisabled = getBooleanValue(NEUTRINO_FACTORY, "%s__oneTokenOperationsDisabled")
206204 if (wxOneTokenOperationsDisabled)
207205 then finalizeWavesOnly(i, txid, Index)
208206 else finalizeWavesToUsdn(i, txid, Index)
209207 }
210208
211209
212210 @Verifier(tx)
213211 func verify () = sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
214212

github/deemru/w8io/3ef1775 
37.57 ms