tx · 7Bhc1EnmTMYBfgknNwLGBLdq1d3PfEkBMSUnTq1Ligkh

3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy:  -0.01000000 Waves

2023.03.16 18:06 [3558300] smart account 3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy > SELF 0.00000000 Waves

{ "type": 13, "id": "7Bhc1EnmTMYBfgknNwLGBLdq1d3PfEkBMSUnTq1Ligkh", "fee": 1000000, "feeAssetId": null, "timestamp": 1678979174211, "version": 2, "chainId": 87, "sender": "3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy", "senderPublicKey": "9KXfR1iJDN9MLTf7rgrygpRA3HG53KCgWyxzqk4m25Qd", "proofs": [ "4Ci7MxSiDq9JbYmyT1ZPuujoTFectQVqfXhQqQKRFetD2uLxtsUZYzZsNqwPyPBKF2FCwGwcwY8VxuaCvJzHQM6Z" ], "script": "base64:BgKCBggCEgMKAQESBAoCCAEiGVdYX0xQX1dBVkVTX1VTRE5fQVNTRVRfSUQiFldYX0xQX1dYX1VTRE5fQVNTRVRfSUQiF1dYX1BPT0xfV0FWRVNfVVNETl9EQVBQIhVXWF9QT09MX1dYX1dBVkVTX0RBUFAiG05FVVRSSU5PX1JFU1RfUkVBRE9OTFlfREFQUCIVTkVVVFJJTk9fTUVUUklDU19EQVBQIg1ORVVUUklOT19NQUlOIg9ORVVUUklOT19PUkFDTEUiEE5FVVRSSU5PX0ZBQ1RPUlkiDVVTRE5fQVNTRVRfSUQiC1dYX0FTU0VUX0lEIgtCT1JST1dfREFQUCIJYXNBbnlMaXN0IgF2IgckbWF0Y2gwIgFsIgVhc0ludCIBeCIBdCIFYXNTdHIiE2ZpbmFsaXplV2F2ZXNUb1VzZG4iAWkiBHR4aWQiBUluZGV4IgN3YmIiBHd4YmIiBGRhdGEiCGRhdGFfYXJyIgxzd2FwRmluYWxpemUiA3diYSIEd3hiYSIGYW1vdW50IgVjYWxsMSIObHBUb2tlbkJhbGFuY2UiBWNhbGwyIghhbW91bnRXeCIFd2Jid3giBWNhbGwzIhBscFRva2VuQmFsYW5jZVd4IgVjYWxsNCIFd2Jhd3giEmFtb3VudFdhdmVzQWZ0ZXJXeCIFY2FsbDUiD2xwVG9rZW5CYWxhbmNlVyIFY2FsbDYiEWZpbmFsaXplV2F2ZXNPbmx5IgFhIg9uZXV0cmlub01ldHJpY3MiAkJSIgRjYWxsIhFuZXV0cmlub19kYXRhX2FyciIYYWxyZWFkeVN3YXBwZWRVbmRlckxpbWl0IhVtYXhBdmFpbGFibGVUb1N3YXBOb3ciEWFtb3VuT2ZVc2RuVG9Td2FwIgZib3Jyb3ciEnN3YXBVc2RuVG9XYXZlc19TQyIUYmFsYW5jZV91bmxvY2tfYmxvY2siBWluZGV4Ihx3eE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIgJ0eCIGdmVyaWZ5EQABYQEgXedtbkamxzmxtK4hQ1NqaJeqmQ+fWxX6vGpRDRxJGSAAAWIBIJ8zEO+NreeRGgbC3BjYJ4MQg6r17OmSQeqIVeLgqaeRAAFjCQEHQWRkcmVzcwEBGgFX7UefzUI8k75LIc37An4fyC37loB6w699AAFkCQEHQWRkcmVzcwEBGgFXmkQFmJm8tKiQ5rdVb7cYKMuIhtMFfR9WAAFlCQEHQWRkcmVzcwEBGgFXNpjMBVfHrm4Dx/V/JlVDiE2uH9ead1JRAAFmCQEHQWRkcmVzcwEBGgFXOOSmjvphewk9IizfdFuz4IiynRUPOhS2AAFnCQEHQWRkcmVzcwEBGgFXcARipkeb6a1WaJTL74WMMIIgKJoIFJayAAFoCQEHQWRkcmVzcwEBGgFXI7OtElyTpMrsOf5PRtbNVk0t+xD7Y5h6AAFpCQEHQWRkcmVzcwEBGgFXeFveir5RKq6LMepvE5AlvvSpuKK7CQJBAAFqASC2JinDBPXOU5GkDkt1JC9kjFGx+t+vVCm9SNIdKrKq0QABawEgkwEcq6nHbiVXzmaecba9qmv4POhYCyru2aBOuzzcFLEAAWwJAQdBZGRyZXNzAQEaAVcU3JJZoA9M3cfagw1Midl0Q2S2hgj44ncBAW0BAW4EAW8FAW4DCQABAgUBbwIJTGlzdFtBbnldBAFwBQFvBQFwCQACAQIEI2VycgEBcQEBbgQBbwUBbgMJAAECBQFvAgNJbnQEAXIFAW8FAXIEAXMFAW8JAAIBAgQjZXJyAQF0AQFuBAFvBQFuAwkAAQIFAW8CBlN0cmluZwQBcgUBbwUBcgQBcwUBbwkAAgECBCNlcnIBAXUDAXYBdwF4AwkBAiE9AggFAXYGY2FsbGVyBQR0aGlzCQACAQILTm90IGFsbG93ZWQEAXkICQDvBwEFBHRoaXMJYXZhaWxhYmxlAwkAAAIFAXkFAXkEAXoJAPAHAgUEdGhpcwUBawMJAAACBQF6BQF6BAFBCQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAKwCAgIFc3dhcF8FAXcCCF9QRU5ESU5HBAFCCQC1CQIFAUECAV8EAUMJAPwHBAUBZwIId2l0aGRyYXcJAMwIAgkApQgBBQR0aGlzCQDMCAIFAXgJAMwIAgUBdwUDbmlsBQNuaWwDCQAAAgUBQwUBQwQBRAgJAO8HAQUEdGhpcwlhdmFpbGFibGUDCQAAAgUBRAUBRAQBRQkA8AcCBQR0aGlzBQFrAwkAAAIFAUUFAUUEAUYJAGUCBQFEBQF5AwkAZwIAAAUBRgkAAgECD05vdGhpbmcgdG8gc3dhcAQBRwkA/AcEBQFjAglwdXRPbmVUa24JAMwIAgABCQDMCAIHBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQJAGUCBQFGAMCEPQUDbmlsAwkAAAIFAUcFAUcEAUgJAPAHAgUEdGhpcwUBYQQBSQkA/AcEBQFjAglnZXRPbmVUa24JAMwIAgkA2AQBBQFqCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQFhBQFIBQNuaWwDCQAAAgUBSQUBSQQBSgkAZQIFAUUFAXoEAUsICQDvBwEFBHRoaXMJYXZhaWxhYmxlAwkAAAIFAUsFAUsDCQBnAgAABQFKCQACAQIPTm90aGluZyB0byBzd2FwBAFMCQD8BwQFAWQCCXB1dE9uZVRrbgkAzAgCAAEJAMwIAgcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUBawUBSgUDbmlsAwkAAAIFAUwFAUwEAU0JAPAHAgUEdGhpcwUBYgQBTgkA/AcEBQFkAglnZXRPbmVUa24JAMwIAgIFV0FWRVMJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAWIFAU0FA25pbAMJAAACBQFOBQFOBAFPCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQMJAAACBQFPBQFPBAFQCQBlAgUBTwUBSwMJAGcCAAAFAVAJAAIBAg9Ob3RoaW5nIHRvIHN3YXAEAVEJAPwHBAUBYwIJcHV0T25lVGtuCQDMCAIAAQkAzAgCBwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0CQBlAgUBUADAhD0FA25pbAMJAAACBQFRBQFRBAFSCQDwBwIFBHRoaXMFAWEEAVMJAPwHBAUBYwIJZ2V0T25lVGtuCQDMCAIJANgEAQUBagkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUBYQUBUgUDbmlsAwkAAAIFAVMFAVMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgICBXN3YXBfBQF3AghfUEVORElORwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIFc3dhcF8FAXcCCV9GSU5JU0hFRAUBQQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFsCQELdmFsdWVPckVsc2UCCQC2CQEJAJEDAgUBQgADAAAFAWoFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEBVAMBdgF3AXgDCQECIT0CCAUBdgZjYWxsZXIFBHRoaXMJAAIBAgtOb3QgYWxsb3dlZAQBQQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICCQCsAgICBXN3YXBfBQF3AghfUEVORElORwQBQwkA/AcEBQFnAgh3aXRoZHJhdwkAzAgCCQClCAEFBHRoaXMJAMwIAgUBeAkAzAgCBQF3BQNuaWwFA25pbAMJAAACBQFDBQFDCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICAgVzd2FwXwUBdwIIX1BFTkRJTkcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXN3YXBfBQF3AglfRklOSVNIRUQFAUEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgIBdgELdXNkblRvV2F2ZXMBAVUDCQECIT0CCAUBdgZjYWxsZXIFBHRoaXMJAAIBAgtOb3QgYWxsb3dlZAQBRgUBVQQBdwkA2AQBCAUBdg10cmFuc2FjdGlvbklkBAFWCQEBbQEJAPwHBAUBZgIaY2FsY05ldXRpbm9NZXRyaWNzUkVBRE9OTFkFA25pbAUDbmlsAwkAAAIFAVYFAVYEAVcJAQFxAQkAkQMCBQFWAAgEAVgJAQF0AQkA/AcEBQFlAhBzd2FwSW5mb1JFQURPTkxZCQDMCAICIzNQRzdDSHZCYXRIcENod204cmVINzR3ZkV3azFQSGM4UnF5BQNuaWwFA25pbAMJAAACBQFYBQFYBAFZCQC1CQIFAVgCAl9fBAFaCQEBcQEJALYJAQkAkQMCBQFZAAsEAmFhCQEBcQEJALYJAQkAkQMCBQFZAAoDCQECIT0CBQFaAAAJAAIBAg5DYW4ndCBzd2FwIHlldAQCYWIDCQBmAgUBRgUCYWEFAmFhBQFGBAJhYwkA/AcEBQFsAgZib3Jyb3cJAMwIAgUCYWIFA25pbAUDbmlsAwkAAAIFAmFjBQJhYwQCYWQJAPwHBAUBZwIUc3dhcE5ldXRyaW5vVG9CYXNrZXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUBagUCYWIFA25pbAMJAAACBQJhZAUCYWQEAmFlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQFnCQCsAgICFWJhbGFuY2VfdW5sb2NrX2Jsb2NrXwkApQgBBQR0aGlzBAJhZgkAZAIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAWgCC3ByaWNlX2luZGV4AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXN3YXBfBQF3AghfUEVORElORwkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKQDAQUCYWYCAV8JAKQDAQUGaGVpZ2h0AgFfBQF3AgFfCQCkAwEFAmFiAgFfCQCkAwEFAmFlBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BdgEIZmluYWxpemUCAXcBeAMJAQIhPQIIBQF2BmNhbGxlcgUEdGhpcwkAAgECC05vdCBhbGxvd2VkBAJhZwkBEUBleHRyTmF0aXZlKDEwNTEpAgUBaQIeJXNfX29uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkAwUCYWcJAQFUAwUBdgUBdwUBeAkBAXUDBQF2BQF3BQF4AQJhaAECYWkACQDIEwMIBQJhaAlib2R5Qnl0ZXMJAJEDAggFAmFoBnByb29mcwAACAUCYWgPc2VuZGVyUHVibGljS2V5y9HOew==", "height": 3558300, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GuzSt8nFhAPBKttxp3s5RnbcVfWvAfzeXH7o8htbvr2K Next: HiinFEgBbsSxBuKKifsDZaTmHqGK2Hyvdx9zTbWnnGxT Diff:
OldNewDifferences
158158 if ((neutrinoMetrics == neutrinoMetrics))
159159 then {
160160 let BR = asInt(neutrinoMetrics[8])
161- if ((BR > 100500))
161+ let call = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", ["3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy"], nil))
162+ if ((call == call))
162163 then {
163- let call = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", ["3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy"], nil))
164- if ((call == call))
165- then {
166- let neutrino_data_arr = split(call, "__")
167- let alreadySwappedUnderLimit = asInt(parseInt(neutrino_data_arr[11]))
168- let maxAvailableToSwapNow = asInt(parseInt(neutrino_data_arr[10]))
169- if ((alreadySwappedUnderLimit != 0))
170- then throw("Can't swap yet")
171- else {
172- let amounOfUsdnToSwap = if ((amount > maxAvailableToSwapNow))
173- then maxAvailableToSwapNow
174- else amount
175- let borrow = invoke(BORROW_DAPP, "borrow", [amounOfUsdnToSwap], nil)
176- if ((borrow == borrow))
164+ let neutrino_data_arr = split(call, "__")
165+ let alreadySwappedUnderLimit = asInt(parseInt(neutrino_data_arr[11]))
166+ let maxAvailableToSwapNow = asInt(parseInt(neutrino_data_arr[10]))
167+ if ((alreadySwappedUnderLimit != 0))
168+ then throw("Can't swap yet")
169+ else {
170+ let amounOfUsdnToSwap = if ((amount > maxAvailableToSwapNow))
171+ then maxAvailableToSwapNow
172+ else amount
173+ let borrow = invoke(BORROW_DAPP, "borrow", [amounOfUsdnToSwap], nil)
174+ if ((borrow == borrow))
175+ then {
176+ let swapUsdnToWaves_SC = invoke(NEUTRINO_MAIN, "swapNeutrinoToBasket", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
177+ if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
177178 then {
178- let swapUsdnToWaves_SC = invoke(NEUTRINO_MAIN, "swapNeutrinoToBasket", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
179- if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
180- then {
181- let balance_unlock_block = getIntegerValue(NEUTRINO_MAIN, ("balance_unlock_block_" + toString(this)))
182- let index = (getIntegerValue(NEUTRINO_ORACLE, "price_index") + 1)
179+ let balance_unlock_block = getIntegerValue(NEUTRINO_MAIN, ("balance_unlock_block_" + toString(this)))
180+ let index = (getIntegerValue(NEUTRINO_ORACLE, "price_index") + 1)
183181 [StringEntry((("swap_" + txid) + "_PENDING"), ((((((((toString(index) + "_") + toString(height)) + "_") + txid) + "_") + toString(amounOfUsdnToSwap)) + "_") + toString(balance_unlock_block)))]
184- }
185- else throw("Strict value is not equal to itself.")
186182 }
187183 else throw("Strict value is not equal to itself.")
188184 }
185+ else throw("Strict value is not equal to itself.")
189186 }
190- else throw("Strict value is not equal to itself.")
191187 }
192- else throw("Br under 10")
188+ else throw("Strict value is not equal to itself.")
193189 }
194190 else throw("Strict value is not equal to itself.")
195191 }
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))
8282 then {
8383 let amountWx = (wxba - wxbb)
8484 let wbbwx = wavesBalance(this).available
8585 if ((wbbwx == wbbwx))
8686 then if ((0 >= amountWx))
8787 then throw("Nothing to swap")
8888 else {
8989 let call3 = invoke(WX_POOL_WX_WAVES_DAPP, "putOneTkn", [1, false], [AttachedPayment(WX_ASSET_ID, amountWx)])
9090 if ((call3 == call3))
9191 then {
9292 let lpTokenBalanceWx = assetBalance(this, WX_LP_WX_USDN_ASSET_ID)
9393 let call4 = invoke(WX_POOL_WX_WAVES_DAPP, "getOneTkn", ["WAVES", 1], [AttachedPayment(WX_LP_WX_USDN_ASSET_ID, lpTokenBalanceWx)])
9494 if ((call4 == call4))
9595 then {
9696 let wbawx = wavesBalance(this).available
9797 if ((wbawx == wbawx))
9898 then {
9999 let amountWavesAfterWx = (wbawx - wbbwx)
100100 if ((0 >= amountWavesAfterWx))
101101 then throw("Nothing to swap")
102102 else {
103103 let call5 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, (amountWavesAfterWx - 1000000))])
104104 if ((call5 == call5))
105105 then {
106106 let lpTokenBalanceW = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
107107 let call6 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [toBase58String(USDN_ASSET_ID), 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalanceW)])
108108 if ((call6 == call6))
109109 then [DeleteEntry((("swap_" + txid) + "_PENDING")), StringEntry((("swap_" + txid) + "_FINISHED"), data), ScriptTransfer(BORROW_DAPP, valueOrElse(parseInt(data_arr[3]), 0), USDN_ASSET_ID)]
110110 else throw("Strict value is not equal to itself.")
111111 }
112112 else throw("Strict value is not equal to itself.")
113113 }
114114 }
115115 else throw("Strict value is not equal to itself.")
116116 }
117117 else throw("Strict value is not equal to itself.")
118118 }
119119 else throw("Strict value is not equal to itself.")
120120 }
121121 else throw("Strict value is not equal to itself.")
122122 }
123123 else throw("Strict value is not equal to itself.")
124124 }
125125 else throw("Strict value is not equal to itself.")
126126 }
127127 }
128128 else throw("Strict value is not equal to itself.")
129129 }
130130 else throw("Strict value is not equal to itself.")
131131 }
132132 else throw("Strict value is not equal to itself.")
133133 }
134134 else throw("Strict value is not equal to itself.")
135135 }
136136 else throw("Strict value is not equal to itself.")
137137 }
138138
139139
140140 func finalizeWavesOnly (i,txid,Index) = if ((i.caller != this))
141141 then throw("Not allowed")
142142 else {
143143 let data = getStringValue(this, (("swap_" + txid) + "_PENDING"))
144144 let swapFinalize = invoke(NEUTRINO_MAIN, "withdraw", [toString(this), Index, txid], nil)
145145 if ((swapFinalize == swapFinalize))
146146 then [DeleteEntry((("swap_" + txid) + "_PENDING")), StringEntry((("swap_" + txid) + "_FINISHED"), data)]
147147 else throw("Strict value is not equal to itself.")
148148 }
149149
150150
151151 @Callable(i)
152152 func usdnToWaves (a) = if ((i.caller != this))
153153 then throw("Not allowed")
154154 else {
155155 let amount = a
156156 let txid = toBase58String(i.transactionId)
157157 let neutrinoMetrics = asAnyList(invoke(NEUTRINO_METRICS_DAPP, "calcNeutinoMetricsREADONLY", nil, nil))
158158 if ((neutrinoMetrics == neutrinoMetrics))
159159 then {
160160 let BR = asInt(neutrinoMetrics[8])
161- if ((BR > 100500))
161+ let call = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", ["3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy"], nil))
162+ if ((call == call))
162163 then {
163- let call = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", ["3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy"], nil))
164- if ((call == call))
165- then {
166- let neutrino_data_arr = split(call, "__")
167- let alreadySwappedUnderLimit = asInt(parseInt(neutrino_data_arr[11]))
168- let maxAvailableToSwapNow = asInt(parseInt(neutrino_data_arr[10]))
169- if ((alreadySwappedUnderLimit != 0))
170- then throw("Can't swap yet")
171- else {
172- let amounOfUsdnToSwap = if ((amount > maxAvailableToSwapNow))
173- then maxAvailableToSwapNow
174- else amount
175- let borrow = invoke(BORROW_DAPP, "borrow", [amounOfUsdnToSwap], nil)
176- if ((borrow == borrow))
164+ let neutrino_data_arr = split(call, "__")
165+ let alreadySwappedUnderLimit = asInt(parseInt(neutrino_data_arr[11]))
166+ let maxAvailableToSwapNow = asInt(parseInt(neutrino_data_arr[10]))
167+ if ((alreadySwappedUnderLimit != 0))
168+ then throw("Can't swap yet")
169+ else {
170+ let amounOfUsdnToSwap = if ((amount > maxAvailableToSwapNow))
171+ then maxAvailableToSwapNow
172+ else amount
173+ let borrow = invoke(BORROW_DAPP, "borrow", [amounOfUsdnToSwap], nil)
174+ if ((borrow == borrow))
175+ then {
176+ let swapUsdnToWaves_SC = invoke(NEUTRINO_MAIN, "swapNeutrinoToBasket", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
177+ if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
177178 then {
178- let swapUsdnToWaves_SC = invoke(NEUTRINO_MAIN, "swapNeutrinoToBasket", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
179- if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
180- then {
181- let balance_unlock_block = getIntegerValue(NEUTRINO_MAIN, ("balance_unlock_block_" + toString(this)))
182- let index = (getIntegerValue(NEUTRINO_ORACLE, "price_index") + 1)
179+ let balance_unlock_block = getIntegerValue(NEUTRINO_MAIN, ("balance_unlock_block_" + toString(this)))
180+ let index = (getIntegerValue(NEUTRINO_ORACLE, "price_index") + 1)
183181 [StringEntry((("swap_" + txid) + "_PENDING"), ((((((((toString(index) + "_") + toString(height)) + "_") + txid) + "_") + toString(amounOfUsdnToSwap)) + "_") + toString(balance_unlock_block)))]
184- }
185- else throw("Strict value is not equal to itself.")
186182 }
187183 else throw("Strict value is not equal to itself.")
188184 }
185+ else throw("Strict value is not equal to itself.")
189186 }
190- else throw("Strict value is not equal to itself.")
191187 }
192- else throw("Br under 10")
188+ else throw("Strict value is not equal to itself.")
193189 }
194190 else throw("Strict value is not equal to itself.")
195191 }
196192
197193
198194
199195 @Callable(i)
200196 func finalize (txid,Index) = if ((i.caller != this))
201197 then throw("Not allowed")
202198 else {
203199 let wxOneTokenOperationsDisabled = getBooleanValue(NEUTRINO_FACTORY, "%s__oneTokenOperationsDisabled")
204200 if (wxOneTokenOperationsDisabled)
205201 then finalizeWavesOnly(i, txid, Index)
206202 else finalizeWavesToUsdn(i, txid, Index)
207203 }
208204
209205
210206 @Verifier(tx)
211207 func verify () = sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
212208

github/deemru/w8io/3ef1775 
49.98 ms