tx · 5Zwn6GtspPedj3aLDUbwhdSf9yMXMwgVKyjwzWyPQX8C

3N3QBerUq9f9YXjAszVRZAiAj5bgaGcMwYr:  -0.00500000 Waves

2023.08.21 10:57 [2720123] smart account 3N3QBerUq9f9YXjAszVRZAiAj5bgaGcMwYr > SELF 0.00000000 Waves

{ "type": 13, "id": "5Zwn6GtspPedj3aLDUbwhdSf9yMXMwgVKyjwzWyPQX8C", "fee": 500000, "feeAssetId": null, "timestamp": 1692604629063, "version": 2, "chainId": 84, "sender": "3N3QBerUq9f9YXjAszVRZAiAj5bgaGcMwYr", "senderPublicKey": "BqjwtF4hAZNR68Wv67xxQpdJM85NYAUPYZqhDJJJ9Mw1", "proofs": [ "3WjperNQyK2uvXBjFm847xhF682omKvJ2y99zXBjdfBqmUMux11epmuMkVWR3oWFyHcuTQ9Gcadqa8kxvRZhMuet" ], "script": "base64:BgIKCAISABIAEgASAA0ACXdhdmVzMUxJZAkBB0FkZHJlc3MBASCx9eRWoz/T7on2QCucPEyACTagmHhap+TFH25bD+lGhQAJd2F2ZXMzTElkCQEHQWRkcmVzcwEBIHdXDDXqNpTfTtMV3HoBAJm7TRBH1wyKq1fh63GL4LhkAAl3YXZlczVMSWQJAQdBZGRyZXNzAQEgG0ZokmU5WBTQbm1EIuXU3iDl1u675ol+F8RLM/XoZqQAA2FycgkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFBQNuaWwABGFycjIJAMwIAgABCQDMCAIAAgUDbmlsAARhcnIzCQDMCAIAAQkAzAgCAAIJAMwIAgADBQNuaWwBA3N1bQIBYQFiCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNOM0RuVmZmblV5WnR6Mk1SYms1VTdnaU4xMTJXZW1wTU5kAgZib3Jyb3cJAMwIAgIsMjVGRXFFalJrcUs2eUNraVQ3THo2U0FZejdnVUZDdHhmQ0NobnJWRkQ1QVQJAMwIAgDAhD0FA25pbAUDbmlsAQpnZXRCYWxhbmNlAgphc3NldElkU3RyB2FkZHJlc3MDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMICQDvBwEFB2FkZHJlc3MJYXZhaWxhYmxlCQDwBwIFB2FkZHJlc3MJANkEAQUKYXNzZXRJZFN0cgEPZ2V0Q3VycmVudFByaWNlAQphc3NldElkU3RyAwkAAAIFCmFzc2V0SWRTdHICBVdBVkVTAAIJAAIBAgVFcnJvcgEUZ2V0V2F2ZXNDdXJyZW50UHJpY2UAAICJegEQZ2V0V2F2ZXNOZXdQcmljZQAAwI23AQEWZ2V0V2F2ZXMzTEN1cnJlbnRQcmljZQAAgJ9JARJnZXRXYXZlczNMTmV3UHJpY2UAAICJegQBaQEObWludFdhdmVzM0xfdjEAAwMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQYJAAACCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAAACQACAQIcMSBwYXltZW50IGhhcyB0byBiZSBhdHRhY2hlZAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEEHN0YWJsZUNvaW5BbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BBRjb252ZXJ0ZWRXYXZlc0Ftb3VudAkAaAIJAGkCBRBzdGFibGVDb2luQW1vdW50CQEUZ2V0V2F2ZXNDdXJyZW50UHJpY2UAAIDC1y8ED3VzZXJXYXZlc0Ftb3VudAkBCmdldEJhbGFuY2UCAgVXQVZFUwgFAWkGY2FsbGVyAwkAZgIFD3VzZXJXYXZlc0Ftb3VudAUUY29udmVydGVkV2F2ZXNBbW91bnQEDWRlcG9zaXRSZXN1bHQJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM04zRG5WZmZuVXladHoyTVJiazVVN2dpTjExMldlbXBNTmQCBnN1cHBseQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0BRRjb252ZXJ0ZWRXYXZlc0Ftb3VudAUDbmlsAwkAAAIFDWRlcG9zaXRSZXN1bHQFDWRlcG9zaXRSZXN1bHQKAQpyZXBlYXRGdW5jAgVhY2N1bQRuZXh0BAxib3Jyb3dSZXN1bHQJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM04zRG5WZmZuVXladHoyTVJiazVVN2dpTjExMldlbXBNTmQCBmJvcnJvdwkAzAgCAiwyNUZFcUVqUmtxSzZ5Q2tpVDdMejZTQVl6N2dVRkN0eGZDQ2huclZGRDVBVAkAzAgCBRBzdGFibGVDb2luQW1vdW50BQNuaWwFA25pbAMJAAACBQxib3Jyb3dSZXN1bHQFDGJvcnJvd1Jlc3VsdAkAZAIFBWFjY3VtBQRuZXh0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAVhcnJheQkAzAgCBRBzdGFibGVDb2luQW1vdW50CQDMCAIFEHN0YWJsZUNvaW5BbW91bnQJAMwIAgUQc3RhYmxlQ29pbkFtb3VudAUDbmlsBANyZXMKAAIkbAUFYXJyYXkKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCnJlcGVhdEZ1bmMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDMJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMEE3JldHVybmVkVG9rZW5BbW91bnQJAGgCCQBpAgUDcmVzCQEWZ2V0V2F2ZXMzTEN1cnJlbnRQcmljZQAAwIQ9CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCCl9nYXZlX1VTRE4FEHN0YWJsZUNvaW5BbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIQX2RlcG9zaXRlZF9XQVZFUwUUY29udmVydGVkV2F2ZXNBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICBQdhZGRyZXNzAgpfYm9ycm93ZWRfAiwyNUZFcUVqUmtxSzZ5Q2tpVDdMejZTQVl6N2dVRkN0eGZDQ2huclZGRDVBVAUDcmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCEV9yZWNlaXZlZF9XQVZFUzNMBRNyZXR1cm5lZFRva2VuQW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUTcmV0dXJuZWRUb2tlbkFtb3VudAEgd1cMNeo2lN9O0xXcegEAmbtNEEfXDIqrV+HrcYvguGQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECHE5vdCBlbm91Z2ggV0FWRVMgdG8gZGVwb3NpdCEBaQEQcmVkZWVtV2F2ZXMzTF92MQADAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABBgkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AAAJAAIBAhwxIHBheW1lbnQgaGFzIHRvIGJlIGF0dGFjaGVkBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQLdG9rZW5BbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BBJyZXR1cm5lZFVTRE5BbW91bnQJAGgCBQt0b2tlbkFtb3VudAkAaQIJARJnZXRXYXZlczNMTmV3UHJpY2UAAMCEPQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAhFfcmVkZWVtZWRfV0FWRVMzTAULdG9rZW5BbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIOX3JlY2VpdmVkX1VTRE4FEnJldHVybmVkVVNETkFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFEnJldHVybmVkVVNETkFtb3VudAEgD/IcEqzkxDya7EYaqyWosOy6BytGzG2IcvC14pJJAbQFA25pbAFpAQ5taW50V2F2ZXMzTF92MgADAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABBgkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AAAJAAIBAhwxIHBheW1lbnQgaGFzIHRvIGJlIGF0dGFjaGVkBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQQc3RhYmxlQ29pbkFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEFGNvbnZlcnRlZFdhdmVzQW1vdW50CQBoAgkAaQIFEHN0YWJsZUNvaW5BbW91bnQAgIl6AIDC1y8ED3VzZXJXYXZlc0Ftb3VudAkBCmdldEJhbGFuY2UCAgVXQVZFUwgFAWkGY2FsbGVyBAliZWRpbmd1bmcJAGgCCQBlAgADAAEJARRnZXRXYXZlc0N1cnJlbnRQcmljZQADCQBnAgUQc3RhYmxlQ29pbkFtb3VudAUJYmVkaW5ndW5nBA1kZXBvc2l0UmVzdWx0CQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNOM0RuVmZmblV5WnR6Mk1SYms1VTdnaU4xMTJXZW1wTU5kAgZzdXBwbHkFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUUY29udmVydGVkV2F2ZXNBbW91bnQFA25pbAMJAAACBQ1kZXBvc2l0UmVzdWx0BQ1kZXBvc2l0UmVzdWx0CgEKcmVwZWF0RnVuYwIFYWNjdW0EbmV4dAQMYm9ycm93UmVzdWx0CQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNOM0RuVmZmblV5WnR6Mk1SYms1VTdnaU4xMTJXZW1wTU5kAgZib3Jyb3cJAMwIAgIsMjVGRXFFalJrcUs2eUNraVQ3THo2U0FZejdnVUZDdHhmQ0NobnJWRkQ1QVQJAMwIAgUQc3RhYmxlQ29pbkFtb3VudAUDbmlsBQNuaWwDCQAAAgUMYm9ycm93UmVzdWx0BQxib3Jyb3dSZXN1bHQJAGQCBQVhY2N1bQUEbmV4dAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQFYXJyYXkJAMwIAgUQc3RhYmxlQ29pbkFtb3VudAkAzAgCBRBzdGFibGVDb2luQW1vdW50CQDMCAIFEHN0YWJsZUNvaW5BbW91bnQFA25pbAQDcmVzCgACJGwFBWFycmF5CgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQpyZXBlYXRGdW5jAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyAzCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADBA1ieVdhdmVzS2F1ZmVuCQBoAgkAaQIFA3JlcwkBFGdldFdhdmVzQ3VycmVudFByaWNlAACAwtcvCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCCl9nYXZlX1VTRE4FEHN0YWJsZUNvaW5BbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIQX2RlcG9zaXRlZF9XQVZFUwUUY29udmVydGVkV2F2ZXNBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICBQdhZGRyZXNzAgpfYm9ycm93ZWRfAiwyNUZFcUVqUmtxSzZ5Q2tpVDdMejZTQVl6N2dVRkN0eGZDQ2huclZGRDVBVAUDcmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCEV9yZWNlaXZlZF9XQVZFUzNMAMCEPQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAwIQ9ASB3Vww16jaU307TFdx6AQCZu00QR9cMiqtX4etxi+C4ZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIcTm90IGVub3VnaCBXQVZFUyB0byBkZXBvc2l0IQFpARByZWRlZW1XYXZlczNMX3YyAAMDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEGCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQAAAkAAgECHDEgcGF5bWVudCBoYXMgdG8gYmUgYXR0YWNoZWQEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBAt0b2tlbkFtb3VudAAGBBJyZXR1cm5lZFVTRE5BbW91bnQJAGgCCQBlAgkAaAIFC3Rva2VuQW1vdW50CQBpAgkBEGdldFdhdmVzTmV3UHJpY2UAAMCEPQAEAMCEPQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAhFfcmVkZWVtZWRfV0FWRVMzTAULdG9rZW5BbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIOX3JlY2VpdmVkX1VTRE4FEnJldHVybmVkVVNETkFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFEnJldHVybmVkVVNETkFtb3VudAEgD/IcEqzkxDya7EYaqyWosOy6BytGzG2IcvC14pJJAbQFA25pbAECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkz3G7O", "height": 2720123, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let waves1LId = Address(base58'CygdaJKZfxRrHyYMwkNdz9ZgSD5FpJLtk5s5B4q1DKV6')
5+
6+let waves3LId = Address(base58'92rW5ucGkH84YeXLnLs8dMN1P7RAFocmR8zfBqUy4gPM')
7+
8+let waves5LId = Address(base58'2qUH6Nh6cgC8dxj8fwH3bTJi261PNr5nMQKRbBXBuwmM')
9+
10+let arr = [1, 2, 3, 4, 5]
11+
12+let arr2 = [1, 2]
13+
14+let arr3 = [1, 2, 3]
15+
16+func sum (a,b) = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", 1000000], nil)
17+
18+
19+func getBalance (assetIdStr,address) = if ((assetIdStr == "WAVES"))
20+ then wavesBalance(address).available
21+ else assetBalance(address, fromBase58String(assetIdStr))
22+
23+
24+func getCurrentPrice (assetIdStr) = if ((assetIdStr == "WAVES"))
25+ then 2
26+ else throw("Error")
27+
28+
29+func getWavesCurrentPrice () = 2000000
30+
31+
32+func getWavesNewPrice () = 3000000
33+
34+
35+func getWaves3LCurrentPrice () = 1200000
36+
37+
38+func getWaves3LNewPrice () = 2000000
39+
40+
41+@Callable(i)
42+func mintWaves3L_v1 () = if (if ((size(i.payments) != 1))
43+ then true
44+ else (i.payments[0].amount == 0))
45+ then throw("1 payment has to be attached")
46+ else {
47+ let address = toString(i.caller)
48+ let stableCoinAmount = i.payments[0].amount
49+ let convertedWavesAmount = ((stableCoinAmount / getWavesCurrentPrice()) * 100000000)
50+ let userWavesAmount = getBalance("WAVES", i.caller)
51+ if ((userWavesAmount > convertedWavesAmount))
52+ then {
53+ let depositResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "supply", nil, [AttachedPayment(unit, convertedWavesAmount)])
54+ if ((depositResult == depositResult))
55+ then {
56+ func repeatFunc (accum,next) = {
57+ let borrowResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", stableCoinAmount], nil)
58+ if ((borrowResult == borrowResult))
59+ then (accum + next)
60+ else throw("Strict value is not equal to itself.")
61+ }
62+
63+ let array = [stableCoinAmount, stableCoinAmount, stableCoinAmount]
64+ let res = {
65+ let $l = array
66+ let $s = size($l)
67+ let $acc0 = 0
68+ func $f0_1 ($a,$i) = if (($i >= $s))
69+ then $a
70+ else repeatFunc($a, $l[$i])
71+
72+ func $f0_2 ($a,$i) = if (($i >= $s))
73+ then $a
74+ else throw("List size exceeds 3")
75+
76+ $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
77+ }
78+ let returnedTokenAmount = ((res / getWaves3LCurrentPrice()) * 1000000)
79+[IntegerEntry((address + "_gave_USDN"), stableCoinAmount), IntegerEntry((address + "_deposited_WAVES"), convertedWavesAmount), IntegerEntry(((address + "_borrowed_") + "25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT"), res), IntegerEntry((address + "_received_WAVES3L"), returnedTokenAmount), ScriptTransfer(i.caller, returnedTokenAmount, base58'92rW5ucGkH84YeXLnLs8dMN1P7RAFocmR8zfBqUy4gPM')]
80+ }
81+ else throw("Strict value is not equal to itself.")
82+ }
83+ else throw("Not enough WAVES to deposit!")
84+ }
85+
86+
87+
88+@Callable(i)
89+func redeemWaves3L_v1 () = if (if ((size(i.payments) != 1))
90+ then true
91+ else (i.payments[0].amount == 0))
92+ then throw("1 payment has to be attached")
93+ else {
94+ let address = toString(i.caller)
95+ let tokenAmount = i.payments[0].amount
96+ let returnedUSDNAmount = (tokenAmount * (getWaves3LNewPrice() / 1000000))
97+[IntegerEntry((address + "_redeemed_WAVES3L"), tokenAmount), IntegerEntry((address + "_received_USDN"), returnedUSDNAmount), ScriptTransfer(i.caller, returnedUSDNAmount, base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT')]
98+ }
99+
100+
101+
102+@Callable(i)
103+func mintWaves3L_v2 () = if (if ((size(i.payments) != 1))
104+ then true
105+ else (i.payments[0].amount == 0))
106+ then throw("1 payment has to be attached")
107+ else {
108+ let address = toString(i.caller)
109+ let stableCoinAmount = i.payments[0].amount
110+ let convertedWavesAmount = ((stableCoinAmount / 2000000) * 100000000)
111+ let userWavesAmount = getBalance("WAVES", i.caller)
112+ let bedingung = ((3 - 1) * getWavesCurrentPrice())
113+ if ((stableCoinAmount >= bedingung))
114+ then {
115+ let depositResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "supply", nil, [AttachedPayment(unit, convertedWavesAmount)])
116+ if ((depositResult == depositResult))
117+ then {
118+ func repeatFunc (accum,next) = {
119+ let borrowResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", stableCoinAmount], nil)
120+ if ((borrowResult == borrowResult))
121+ then (accum + next)
122+ else throw("Strict value is not equal to itself.")
123+ }
124+
125+ let array = [stableCoinAmount, stableCoinAmount, stableCoinAmount]
126+ let res = {
127+ let $l = array
128+ let $s = size($l)
129+ let $acc0 = 0
130+ func $f0_1 ($a,$i) = if (($i >= $s))
131+ then $a
132+ else repeatFunc($a, $l[$i])
133+
134+ func $f0_2 ($a,$i) = if (($i >= $s))
135+ then $a
136+ else throw("List size exceeds 3")
137+
138+ $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
139+ }
140+ let byWavesKaufen = ((res / getWavesCurrentPrice()) * 100000000)
141+[IntegerEntry((address + "_gave_USDN"), stableCoinAmount), IntegerEntry((address + "_deposited_WAVES"), convertedWavesAmount), IntegerEntry(((address + "_borrowed_") + "25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT"), res), IntegerEntry((address + "_received_WAVES3L"), 1000000), ScriptTransfer(i.caller, 1000000, base58'92rW5ucGkH84YeXLnLs8dMN1P7RAFocmR8zfBqUy4gPM')]
142+ }
143+ else throw("Strict value is not equal to itself.")
144+ }
145+ else throw("Not enough WAVES to deposit!")
146+ }
147+
148+
149+
150+@Callable(i)
151+func redeemWaves3L_v2 () = if (if ((size(i.payments) != 1))
152+ then true
153+ else (i.payments[0].amount == 0))
154+ then throw("1 payment has to be attached")
155+ else {
156+ let address = toString(i.caller)
157+ let tokenAmount = 6
158+ let returnedUSDNAmount = (((tokenAmount * (getWavesNewPrice() / 1000000)) - 4) * 1000000)
159+[IntegerEntry((address + "_redeemed_WAVES3L"), tokenAmount), IntegerEntry((address + "_received_USDN"), returnedUSDNAmount), ScriptTransfer(i.caller, returnedUSDNAmount, base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT')]
160+ }
161+
162+
163+@Verifier(tx)
164+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
165+

github/deemru/w8io/c3f4982 
31.77 ms