tx · 78ZRN3s65U3aLwRbXfN2TSsiC73Xhk12VEdvLXBnJBfy

3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy:  -0.01000000 Waves

2023.03.03 16:31 [3539422] smart account 3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy > SELF 0.00000000 Waves

{ "type": 13, "id": "78ZRN3s65U3aLwRbXfN2TSsiC73Xhk12VEdvLXBnJBfy", "fee": 1000000, "feeAssetId": null, "timestamp": 1677850278299, "version": 2, "chainId": 87, "sender": "3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy", "senderPublicKey": "9KXfR1iJDN9MLTf7rgrygpRA3HG53KCgWyxzqk4m25Qd", "proofs": [ "57CcKt5vXLypoepHChkHAWzHi9hGpAktxMr9anpRvKRoe2HYnDKxrgSTNFHNCfvEGs1GVCXPJ6FGqoJ9EUjgoQSA" ], "script": "base64:BgKCBggCEgMKAQESBAoCCAEiGVdYX0xQX1dBVkVTX1VTRE5fQVNTRVRfSUQiFldYX0xQX1dYX1VTRE5fQVNTRVRfSUQiF1dYX1BPT0xfV0FWRVNfVVNETl9EQVBQIhVXWF9QT09MX1dYX1dBVkVTX0RBUFAiG05FVVRSSU5PX1JFU1RfUkVBRE9OTFlfREFQUCIVTkVVVFJJTk9fTUVUUklDU19EQVBQIg1ORVVUUklOT19NQUlOIg9ORVVUUklOT19PUkFDTEUiEE5FVVRSSU5PX0ZBQ1RPUlkiDVVTRE5fQVNTRVRfSUQiC1dYX0FTU0VUX0lEIgtCT1JST1dfREFQUCIJYXNBbnlMaXN0IgF2IgckbWF0Y2gwIgFsIgVhc0ludCIBeCIBdCIFYXNTdHIiE2ZpbmFsaXplV2F2ZXNUb1VzZG4iAWkiBHR4aWQiBUluZGV4IgN3YmIiBHd4YmIiBGRhdGEiCGRhdGFfYXJyIgxzd2FwRmluYWxpemUiA3diYSIEd3hiYSIGYW1vdW50IgVjYWxsMSIObHBUb2tlbkJhbGFuY2UiBWNhbGwyIghhbW91bnRXeCIFd2Jid3giBWNhbGwzIhBscFRva2VuQmFsYW5jZVd4IgVjYWxsNCIFd2Jhd3giEmFtb3VudFdhdmVzQWZ0ZXJXeCIFY2FsbDUiD2xwVG9rZW5CYWxhbmNlVyIFY2FsbDYiEWZpbmFsaXplV2F2ZXNPbmx5IgFhIg9uZXV0cmlub01ldHJpY3MiAkJSIgRjYWxsIhFuZXV0cmlub19kYXRhX2FyciIYYWxyZWFkeVN3YXBwZWRVbmRlckxpbWl0IhVtYXhBdmFpbGFibGVUb1N3YXBOb3ciEWFtb3VuT2ZVc2RuVG9Td2FwIgZib3Jyb3ciEnN3YXBVc2RuVG9XYXZlc19TQyIUYmFsYW5jZV91bmxvY2tfYmxvY2siBWluZGV4Ihx3eE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIgJ0eCIGdmVyaWZ5EQABYQEgXedtbkamxzmxtK4hQ1NqaJeqmQ+fWxX6vGpRDRxJGSAAAWIBIJ8zEO+NreeRGgbC3BjYJ4MQg6r17OmSQeqIVeLgqaeRAAFjCQEHQWRkcmVzcwEBGgFX7UefzUI8k75LIc37An4fyC37loB6w699AAFkCQEHQWRkcmVzcwEBGgFXmkQFmJm8tKiQ5rdVb7cYKMuIhtMFfR9WAAFlCQEHQWRkcmVzcwEBGgFXNpjMBVfHrm4Dx/V/JlVDiE2uH9ead1JRAAFmCQEHQWRkcmVzcwEBGgFXOOSmjvphewk9IizfdFuz4IiynRUPOhS2AAFnCQEHQWRkcmVzcwEBGgFXcARipkeb6a1WaJTL74WMMIIgKJoIFJayAAFoCQEHQWRkcmVzcwEBGgFXI7OtElyTpMrsOf5PRtbNVk0t+xD7Y5h6AAFpCQEHQWRkcmVzcwEBGgFXeFveir5RKq6LMepvE5AlvvSpuKK7CQJBAAFqASC2JinDBPXOU5GkDkt1JC9kjFGx+t+vVCm9SNIdKrKq0QABawEgkwEcq6nHbiVXzmaecba9qmv4POhYCyru2aBOuzzcFLEAAWwJAQdBZGRyZXNzAQEaAVcU3JJZoA9M3cfagw1Midl0Q2S2hgj44ncBAW0BAW4EAW8FAW4DCQABAgUBbwIJTGlzdFtBbnldBAFwBQFvBQFwCQACAQIEI2VycgEBcQEBbgQBbwUBbgMJAAECBQFvAgNJbnQEAXIFAW8FAXIEAXMFAW8JAAIBAgQjZXJyAQF0AQFuBAFvBQFuAwkAAQIFAW8CBlN0cmluZwQBcgUBbwUBcgQBcwUBbwkAAgECBCNlcnIBAXUDAXYBdwF4AwkBAiE9AggFAXYGY2FsbGVyBQR0aGlzCQACAQILTm90IGFsbG93ZWQEAXkICQDvBwEFBHRoaXMJYXZhaWxhYmxlAwkAAAIFAXkFAXkEAXoJAPAHAgUEdGhpcwUBawMJAAACBQF6BQF6BAFBCQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAKwCAgIFc3dhcF8FAXcCCF9QRU5ESU5HBAFCCQC1CQIFAUECAV8EAUMJAPwHBAUBZwIId2l0aGRyYXcJAMwIAgkApQgBBQR0aGlzCQDMCAIFAXgJAMwIAgUBdwUDbmlsBQNuaWwDCQAAAgUBQwUBQwMGCQACAQIDd3x3BAFECAkA7wcBBQR0aGlzCWF2YWlsYWJsZQMJAAACBQFEBQFEBAFFCQDwBwIFBHRoaXMFAWsDCQAAAgUBRQUBRQQBRgkAZQIFAUQFAXkDCQBnAgAABQFGCQACAQIPTm90aGluZyB0byBzd2FwBAFHCQD8BwQFAWMCCXB1dE9uZVRrbgkAzAgCAAEJAMwIAgcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAkAZQIFAUYAwIQ9BQNuaWwDCQAAAgUBRwUBRwQBSAkA8AcCBQR0aGlzBQFhBAFJCQD8BwQFAWMCCWdldE9uZVRrbgkAzAgCCQDYBAEFAWoJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAWEFAUgFA25pbAMJAAACBQFJBQFJBAFKCQBlAgUBRQUBegQBSwgJAO8HAQUEdGhpcwlhdmFpbGFibGUDCQAAAgUBSwUBSwMJAGcCAAAFAUoJAAIBAg9Ob3RoaW5nIHRvIHN3YXAEAUwJAPwHBAUBZAIJcHV0T25lVGtuCQDMCAIAAQkAzAgCBwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQFrBQFKBQNuaWwDCQAAAgUBTAUBTAQBTQkA8AcCBQR0aGlzBQFiBAFOCQD8BwQFAWQCCWdldE9uZVRrbgkAzAgCBQR1bml0CQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQFiBQFNBQNuaWwDCQAAAgUBTgUBTgQBTwgJAO8HAQUEdGhpcwlhdmFpbGFibGUDCQAAAgUBTwUBTwQBUAkAZQIFAU8FAUsDCQBnAgAABQFQCQACAQIPTm90aGluZyB0byBzd2FwBAFRCQD8BwQFAWMCCXB1dE9uZVRrbgkAzAgCAAEJAMwIAgcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAkAZQIFAVAAwIQ9BQNuaWwDCQAAAgUBUQUBUQQBUgkA8AcCBQR0aGlzBQFhBAFTCQD8BwQFAWMCCWdldE9uZVRrbgkAzAgCCQDYBAEFAWoJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAWEFAVIFA25pbAMJAAACBQFTBQFTCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICAgVzd2FwXwUBdwIIX1BFTkRJTkcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXN3YXBfBQF3AglfRklOSVNIRUQFAUEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUBbAkBC3ZhbHVlT3JFbHNlAgkAtgkBCQCRAwIFAUIAAwAABQFqBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAVQDAXYBdwF4AwkBAiE9AggFAXYGY2FsbGVyBQR0aGlzCQACAQILTm90IGFsbG93ZWQEAUEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgkArAICAgVzd2FwXwUBdwIIX1BFTkRJTkcEAUMJAPwHBAUBZwIId2l0aGRyYXcJAMwIAgkApQgBBQR0aGlzCQDMCAIFAXgJAMwIAgUBdwUDbmlsBQNuaWwDCQAAAgUBQwUBQwkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgIFc3dhcF8FAXcCCF9QRU5ESU5HCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgVzd2FwXwUBdwIJX0ZJTklTSEVEBQFBBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CAXYBC3VzZG5Ub1dhdmVzAQFVAwkBAiE9AggFAXYGY2FsbGVyBQR0aGlzCQACAQILTm90IGFsbG93ZWQEAUYFAVUEAXcJANgEAQgFAXYNdHJhbnNhY3Rpb25JZAQBVgkBAW0BCQD8BwQFAWYCGmNhbGNOZXV0aW5vTWV0cmljc1JFQURPTkxZBQNuaWwFA25pbAMJAAACBQFWBQFWBAFXCQEBcQEJAJEDAgUBVgAIAwkAZgIFAVcAlJEGBAFYCQEBdAEJAPwHBAUBZQIQc3dhcEluZm9SRUFET05MWQkAzAgCAiMzUEc3Q0h2QmF0SHBDaHdtOHJlSDc0d2ZFd2sxUEhjOFJxeQUDbmlsBQNuaWwDCQAAAgUBWAUBWAQBWQkAtQkCBQFYAgJfXwQBWgkBAXEBCQC2CQEJAJEDAgUBWQALBAJhYQkBAXEBCQC2CQEJAJEDAgUBWQAKAwkBAiE9AgUBWgAACQACAQIOQ2FuJ3Qgc3dhcCB5ZXQEAmFiAwkAZgIFAUYFAmFhBQJhYQUBRgQCYWMJAPwHBAUBbAIGYm9ycm93CQDMCAIFAmFiBQNuaWwFA25pbAMJAAACBQJhYwUCYWMEAmFkCQD8BwQFAWcCFHN3YXBOZXV0cmlub1RvQmFza2V0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAWoFAmFiBQNuaWwDCQAAAgUCYWQFAmFkBAJhZQkBEUBleHRyTmF0aXZlKDEwNTApAgUBZwkArAICAhViYWxhbmNlX3VubG9ja19ibG9ja18JAKUIAQUEdGhpcwQCYWYJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQFoAgtwcmljZV9pbmRleAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgVzd2FwXwUBdwIIX1BFTkRJTkcJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCkAwEFAmFmAgFfCQCkAwEFBmhlaWdodAIBXwUBdwIBXwkApAMBBQJhYgIBXwkApAMBBQJhZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQILQnIgdW5kZXIgMTAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BdgEIZmluYWxpemUCAXcBeAMJAQIhPQIIBQF2BmNhbGxlcgUEdGhpcwkAAgECC05vdCBhbGxvd2VkBAJhZwkBEUBleHRyTmF0aXZlKDEwNTEpAgUBaQIeJXNfX29uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkAwUCYWcJAQFUAwUBdgUBdwUBeAkBAXUDBQF2BQF3BQF4AQJhaAECYWkACQDIEwMIBQJhaAlib2R5Qnl0ZXMJAJEDAggFAmFoBnByb29mcwAACAUCYWgPc2VuZGVyUHVibGljS2V5Gq2DmA==", "height": 3539422, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7Lb6wSs2Lq39H71HGaNmhEkaTA5DP4WFzGAfJA3yqPyX Next: AoFqYU9adhCJcRPNuJpvpvn9F86SQy6CTNmBSomkmQc6 Diff:
OldNewDifferences
6262 let data_arr = split(data, "_")
6363 let swapFinalize = invoke(NEUTRINO_MAIN, "withdraw", [toString(this), Index, txid], nil)
6464 if ((swapFinalize == swapFinalize))
65- then {
66- let wba = wavesBalance(this).available
67- if ((wba == wba))
68- then {
69- let wxba = assetBalance(this, WX_ASSET_ID)
70- if ((wxba == wxba))
71- then {
72- let amount = (wba - wbb)
73- if ((0 >= amount))
74- then throw("Nothing to swap")
75- else {
76- let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, (amount - 1000000))])
77- if ((call1 == call1))
78- then {
79- let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
80- let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [toBase58String(USDN_ASSET_ID), 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
81- if ((call2 == call2))
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", [unit, 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- }
123- else throw("Strict value is not equal to itself.")
124- }
125- else throw("Strict value is not equal to itself.")
126- }
127- }
128- else throw("Strict value is not equal to itself.")
129- }
130- else throw("Strict value is not equal to itself.")
131- }
65+ then if (true)
66+ then throw("w|w")
67+ else {
68+ let wba = wavesBalance(this).available
69+ if ((wba == wba))
70+ then {
71+ let wxba = assetBalance(this, WX_ASSET_ID)
72+ if ((wxba == wxba))
73+ then {
74+ let amount = (wba - wbb)
75+ if ((0 >= amount))
76+ then throw("Nothing to swap")
77+ else {
78+ let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, (amount - 1000000))])
79+ if ((call1 == call1))
80+ then {
81+ let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
82+ let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [toBase58String(USDN_ASSET_ID), 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
83+ if ((call2 == call2))
84+ then {
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+ }
125+ else throw("Strict value is not equal to itself.")
126+ }
127+ else throw("Strict value is not equal to itself.")
128+ }
129+ }
130+ else throw("Strict value is not equal to itself.")
131+ }
132+ else throw("Strict value is not equal to itself.")
133+ }
132134 else throw("Strict value is not equal to itself.")
133135 }
134136 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))
65- then {
66- let wba = wavesBalance(this).available
67- if ((wba == wba))
68- then {
69- let wxba = assetBalance(this, WX_ASSET_ID)
70- if ((wxba == wxba))
71- then {
72- let amount = (wba - wbb)
73- if ((0 >= amount))
74- then throw("Nothing to swap")
75- else {
76- let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, (amount - 1000000))])
77- if ((call1 == call1))
78- then {
79- let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
80- let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [toBase58String(USDN_ASSET_ID), 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
81- if ((call2 == call2))
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", [unit, 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- }
123- else throw("Strict value is not equal to itself.")
124- }
125- else throw("Strict value is not equal to itself.")
126- }
127- }
128- else throw("Strict value is not equal to itself.")
129- }
130- else throw("Strict value is not equal to itself.")
131- }
65+ then if (true)
66+ then throw("w|w")
67+ else {
68+ let wba = wavesBalance(this).available
69+ if ((wba == wba))
70+ then {
71+ let wxba = assetBalance(this, WX_ASSET_ID)
72+ if ((wxba == wxba))
73+ then {
74+ let amount = (wba - wbb)
75+ if ((0 >= amount))
76+ then throw("Nothing to swap")
77+ else {
78+ let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, (amount - 1000000))])
79+ if ((call1 == call1))
80+ then {
81+ let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
82+ let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [toBase58String(USDN_ASSET_ID), 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
83+ if ((call2 == call2))
84+ then {
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+ }
125+ else throw("Strict value is not equal to itself.")
126+ }
127+ else throw("Strict value is not equal to itself.")
128+ }
129+ }
130+ else throw("Strict value is not equal to itself.")
131+ }
132+ else throw("Strict value is not equal to itself.")
133+ }
132134 else throw("Strict value is not equal to itself.")
133135 }
134136 else throw("Strict value is not equal to itself.")
135137 }
136138 else throw("Strict value is not equal to itself.")
137139 }
138140
139141
140142 func finalizeWavesOnly (i,txid,Index) = if ((i.caller != this))
141143 then throw("Not allowed")
142144 else {
143145 let data = getStringValue(this, (("swap_" + txid) + "_PENDING"))
144146 let swapFinalize = invoke(NEUTRINO_MAIN, "withdraw", [toString(this), Index, txid], nil)
145147 if ((swapFinalize == swapFinalize))
146148 then [DeleteEntry((("swap_" + txid) + "_PENDING")), StringEntry((("swap_" + txid) + "_FINISHED"), data)]
147149 else throw("Strict value is not equal to itself.")
148150 }
149151
150152
151153 @Callable(i)
152154 func usdnToWaves (a) = if ((i.caller != this))
153155 then throw("Not allowed")
154156 else {
155157 let amount = a
156158 let txid = toBase58String(i.transactionId)
157159 let neutrinoMetrics = asAnyList(invoke(NEUTRINO_METRICS_DAPP, "calcNeutinoMetricsREADONLY", nil, nil))
158160 if ((neutrinoMetrics == neutrinoMetrics))
159161 then {
160162 let BR = asInt(neutrinoMetrics[8])
161163 if ((BR > 100500))
162164 then {
163165 let call = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", ["3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy"], nil))
164166 if ((call == call))
165167 then {
166168 let neutrino_data_arr = split(call, "__")
167169 let alreadySwappedUnderLimit = asInt(parseInt(neutrino_data_arr[11]))
168170 let maxAvailableToSwapNow = asInt(parseInt(neutrino_data_arr[10]))
169171 if ((alreadySwappedUnderLimit != 0))
170172 then throw("Can't swap yet")
171173 else {
172174 let amounOfUsdnToSwap = if ((amount > maxAvailableToSwapNow))
173175 then maxAvailableToSwapNow
174176 else amount
175177 let borrow = invoke(BORROW_DAPP, "borrow", [amounOfUsdnToSwap], nil)
176178 if ((borrow == borrow))
177179 then {
178180 let swapUsdnToWaves_SC = invoke(NEUTRINO_MAIN, "swapNeutrinoToBasket", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
179181 if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
180182 then {
181183 let balance_unlock_block = getIntegerValue(NEUTRINO_MAIN, ("balance_unlock_block_" + toString(this)))
182184 let index = (getIntegerValue(NEUTRINO_ORACLE, "price_index") + 1)
183185 [StringEntry((("swap_" + txid) + "_PENDING"), ((((((((toString(index) + "_") + toString(height)) + "_") + txid) + "_") + toString(amounOfUsdnToSwap)) + "_") + toString(balance_unlock_block)))]
184186 }
185187 else throw("Strict value is not equal to itself.")
186188 }
187189 else throw("Strict value is not equal to itself.")
188190 }
189191 }
190192 else throw("Strict value is not equal to itself.")
191193 }
192194 else throw("Br under 10")
193195 }
194196 else throw("Strict value is not equal to itself.")
195197 }
196198
197199
198200
199201 @Callable(i)
200202 func finalize (txid,Index) = if ((i.caller != this))
201203 then throw("Not allowed")
202204 else {
203205 let wxOneTokenOperationsDisabled = getBooleanValue(NEUTRINO_FACTORY, "%s__oneTokenOperationsDisabled")
204206 if (wxOneTokenOperationsDisabled)
205207 then finalizeWavesOnly(i, txid, Index)
206208 else finalizeWavesToUsdn(i, txid, Index)
207209 }
208210
209211
210212 @Verifier(tx)
211213 func verify () = sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
212214

github/deemru/w8io/3ef1775 
44.01 ms