tx · 8mN8xo49f5YZm8McR2TryfYc1YTqqk1ZxnHh4JoWtDbL

3NBbFNBed9tcU5AmsJAuExWvgJyNmJxqjWq:  -0.01000000 Waves

2023.08.09 21:18 [2703413] smart account 3NBbFNBed9tcU5AmsJAuExWvgJyNmJxqjWq > SELF 0.00000000 Waves

{ "type": 13, "id": "8mN8xo49f5YZm8McR2TryfYc1YTqqk1ZxnHh4JoWtDbL", "fee": 1000000, "feeAssetId": null, "timestamp": 1691605196233, "version": 2, "chainId": 84, "sender": "3NBbFNBed9tcU5AmsJAuExWvgJyNmJxqjWq", "senderPublicKey": "ERewvWFUFQfR1eCnipNAv9n7SdQhof2ESP6PGVjTueLd", "proofs": [ "4HvNSyATv5D9Jg4nnQcSiFaYgRYpyEXwuMR5v34QTTTUAQYpEqWU37YFuyEYu3KNBCpB4NKzDhnFeKUhYB6RxobW" ], "script": "base64:BgIPCAISABIAEgASABIDCgEIDgAJd2F2ZXMxTElkCQEHQWRkcmVzcwEBILH15FajP9PuifZAK5w8TIAJNqCYeFqn5MUfblsP6UaFAAl3YXZlczNMSWQJAQdBZGRyZXNzAQEgd1cMNeo2lN9O0xXcegEAmbtNEEfXDIqrV+HrcYvguGQACXdhdmVzNUxJZAkBB0FkZHJlc3MBASAbRmiSZTlYFNBubUQi5dTeIOXW7rvmiX4XxEsz9ehmpAADYXJyCQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUFA25pbAAEYXJyMgkAzAgCAAEJAMwIAgACBQNuaWwABGFycjMJAMwIAgABCQDMCAIAAgkAzAgCAAMFA25pbAEDc3VtAgFhAWIJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM04zRG5WZmZuVXladHoyTVJiazVVN2dpTjExMldlbXBNTmQCBmJvcnJvdwkAzAgCAiwyNUZFcUVqUmtxSzZ5Q2tpVDdMejZTQVl6N2dVRkN0eGZDQ2huclZGRDVBVAkAzAgCAMCEPQUDbmlsBQNuaWwBCmdldEJhbGFuY2UCCmFzc2V0SWRTdHIHYWRkcmVzcwMJAAACBQphc3NldElkU3RyAgVXQVZFUwgJAO8HAQUHYWRkcmVzcwlhdmFpbGFibGUJAPAHAgUHYWRkcmVzcwkA2QQBBQphc3NldElkU3RyAQ9nZXRDdXJyZW50UHJpY2UBCmFzc2V0SWRTdHIDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMAAgkAAgECBUVycm9yARRnZXRXYXZlc0N1cnJlbnRQcmljZQAAgIl6ARBnZXRXYXZlc05ld1ByaWNlAADAjbcBARZnZXRXYXZlczFMQ3VycmVudFByaWNlAADgxlsBFmdldFdhdmVzM0xDdXJyZW50UHJpY2UAAICfSQESZ2V0V2F2ZXMzTE5ld1ByaWNlAACAiXoFAWkBDm1pbnRXYXZlczNMX3YxAAMDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEGCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQAAAkAAgECHDEgcGF5bWVudCBoYXMgdG8gYmUgYXR0YWNoZWQEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBBBzdGFibGVDb2luQW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQUY29udmVydGVkV2F2ZXNBbW91bnQJAGgCCQBpAgUQc3RhYmxlQ29pbkFtb3VudAkBFGdldFdhdmVzQ3VycmVudFByaWNlAACAwtcvBA91c2VyV2F2ZXNBbW91bnQJAQpnZXRCYWxhbmNlAgIFV0FWRVMIBQFpBmNhbGxlcgMJAGYCBQ91c2VyV2F2ZXNBbW91bnQFFGNvbnZlcnRlZFdhdmVzQW1vdW50BA1kZXBvc2l0UmVzdWx0CQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNOM0RuVmZmblV5WnR6Mk1SYms1VTdnaU4xMTJXZW1wTU5kAgZzdXBwbHkFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUUY29udmVydGVkV2F2ZXNBbW91bnQFA25pbAMJAAACBQ1kZXBvc2l0UmVzdWx0BQ1kZXBvc2l0UmVzdWx0CgEKcmVwZWF0RnVuYwIFYWNjdW0EbmV4dAQMYm9ycm93UmVzdWx0CQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNOM0RuVmZmblV5WnR6Mk1SYms1VTdnaU4xMTJXZW1wTU5kAgZib3Jyb3cJAMwIAgIsMjVGRXFFalJrcUs2eUNraVQ3THo2U0FZejdnVUZDdHhmQ0NobnJWRkQ1QVQJAMwIAgUQc3RhYmxlQ29pbkFtb3VudAUDbmlsBQNuaWwDCQAAAgUMYm9ycm93UmVzdWx0BQxib3Jyb3dSZXN1bHQJAGQCBQVhY2N1bQUEbmV4dAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQFYXJyYXkJAMwIAgUQc3RhYmxlQ29pbkFtb3VudAkAzAgCBRBzdGFibGVDb2luQW1vdW50CQDMCAIFEHN0YWJsZUNvaW5BbW91bnQFA25pbAQDcmVzCgACJGwFBWFycmF5CgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQpyZXBlYXRGdW5jAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyAzCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADBBNyZXR1cm5lZFRva2VuQW1vdW50CQBoAgkAaQIFA3JlcwkBFmdldFdhdmVzM0xDdXJyZW50UHJpY2UAAMCEPQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAgpfZ2F2ZV9VU0ROBRBzdGFibGVDb2luQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCEF9kZXBvc2l0ZWRfV0FWRVMFFGNvbnZlcnRlZFdhdmVzQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgUHYWRkcmVzcwIKX2JvcnJvd2VkXwIsMjVGRXFFalJrcUs2eUNraVQ3THo2U0FZejdnVUZDdHhmQ0NobnJWRkQ1QVQFA3JlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAhFfcmVjZWl2ZWRfV0FWRVMzTAUTcmV0dXJuZWRUb2tlbkFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFE3JldHVybmVkVG9rZW5BbW91bnQBIHdXDDXqNpTfTtMV3HoBAJm7TRBH1wyKq1fh63GL4LhkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAhxOb3QgZW5vdWdoIFdBVkVTIHRvIGRlcG9zaXQhAWkBEHJlZGVlbVdhdmVzM0xfdjEAAwMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQYJAAACCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAAACQACAQIcMSBwYXltZW50IGhhcyB0byBiZSBhdHRhY2hlZAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEC3Rva2VuQW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQScmV0dXJuZWRVU0ROQW1vdW50CQBoAgULdG9rZW5BbW91bnQJAGkCCQESZ2V0V2F2ZXMzTE5ld1ByaWNlAADAhD0JAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIRX3JlZGVlbWVkX1dBVkVTM0wFC3Rva2VuQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCDl9yZWNlaXZlZF9VU0ROBRJyZXR1cm5lZFVTRE5BbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBRJyZXR1cm5lZFVTRE5BbW91bnQBIA/yHBKs5MQ8muxGGqslqLDsugcrRsxtiHLwteKSSQG0BQNuaWwBaQEObWludFdhdmVzM0xfdjIAAwMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQYJAAACCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAAACQACAQIcMSBwYXltZW50IGhhcyB0byBiZSBhdHRhY2hlZAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEEHN0YWJsZUNvaW5BbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BBRjb252ZXJ0ZWRXYXZlc0Ftb3VudAkAaAIJAGkCBRBzdGFibGVDb2luQW1vdW50AICJegCAwtcvBA91c2VyV2F2ZXNBbW91bnQJAQpnZXRCYWxhbmNlAgIFV0FWRVMIBQFpBmNhbGxlcgQJYmVkaW5ndW5nCQBoAgkAZQIAAwABCQEUZ2V0V2F2ZXNDdXJyZW50UHJpY2UAAwkAZwIFEHN0YWJsZUNvaW5BbW91bnQFCWJlZGluZ3VuZwQNZGVwb3NpdFJlc3VsdAkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBAiMzTjNEblZmZm5VeVp0ejJNUmJrNVU3Z2lOMTEyV2VtcE1OZAIGc3VwcGx5BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFFGNvbnZlcnRlZFdhdmVzQW1vdW50BQNuaWwDCQAAAgUNZGVwb3NpdFJlc3VsdAUNZGVwb3NpdFJlc3VsdAoBCnJlcGVhdEZ1bmMCBWFjY3VtBG5leHQEDGJvcnJvd1Jlc3VsdAkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBAiMzTjNEblZmZm5VeVp0ejJNUmJrNVU3Z2lOMTEyV2VtcE1OZAIGYm9ycm93CQDMCAICLDI1RkVxRWpSa3FLNnlDa2lUN0x6NlNBWXo3Z1VGQ3R4ZkNDaG5yVkZENUFUCQDMCAIFEHN0YWJsZUNvaW5BbW91bnQFA25pbAUDbmlsAwkAAAIFDGJvcnJvd1Jlc3VsdAUMYm9ycm93UmVzdWx0CQBkAgUFYWNjdW0FBG5leHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EBWFycmF5CQDMCAIFEHN0YWJsZUNvaW5BbW91bnQJAMwIAgUQc3RhYmxlQ29pbkFtb3VudAkAzAgCBRBzdGFibGVDb2luQW1vdW50BQNuaWwEA3JlcwoAAiRsBQVhcnJheQoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEKcmVwZWF0RnVuYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMwkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwQNYnlXYXZlc0thdWZlbgkAaAIJAGkCBQNyZXMJARRnZXRXYXZlc0N1cnJlbnRQcmljZQAAgMLXLwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAgpfZ2F2ZV9VU0ROBRBzdGFibGVDb2luQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCEF9kZXBvc2l0ZWRfV0FWRVMFFGNvbnZlcnRlZFdhdmVzQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgUHYWRkcmVzcwIKX2JvcnJvd2VkXwIsMjVGRXFFalJrcUs2eUNraVQ3THo2U0FZejdnVUZDdHhmQ0NobnJWRkQ1QVQFA3JlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAhFfcmVjZWl2ZWRfV0FWRVMzTADAhD0JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAMCEPQEgd1cMNeo2lN9O0xXcegEAmbtNEEfXDIqrV+HrcYvguGQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECHE5vdCBlbm91Z2ggV0FWRVMgdG8gZGVwb3NpdCEBaQEQcmVkZWVtV2F2ZXMzTF92MgADAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABBgkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AAAJAAIBAhwxIHBheW1lbnQgaGFzIHRvIGJlIGF0dGFjaGVkBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQLdG9rZW5BbW91bnQABgQScmV0dXJuZWRVU0ROQW1vdW50CQBoAgkAZQIJAGgCBQt0b2tlbkFtb3VudAkAaQIJARBnZXRXYXZlc05ld1ByaWNlAADAhD0ABADAhD0JAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIRX3JlZGVlbWVkX1dBVkVTM0wFC3Rva2VuQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCDl9yZWNlaXZlZF9VU0ROBRJyZXR1cm5lZFVTRE5BbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBRJyZXR1cm5lZFVTRE5BbW91bnQBIA/yHBKs5MQ8muxGGqslqLDsugcrRsxtiHLwteKSSQG0BQNuaWwBaQEMY2hlY2tCYWxhbmNlAQphc3NldElkU3RyBAdhZGRyZXNzCAUBaQZjYWxsZXIDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMJAMwIAgkBDEludGVnZXJFbnRyeQICDVdhdmVzIEJhbGFuY2UICQDvBwEFB2FkZHJlc3MJYXZhaWxhYmxlBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQICDUFzc2V0IEJhbGFuY2UJAPAHAgUHYWRkcmVzcwkA2QQBBQphc3NldElkU3RyBQNuaWwBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V59ecFTQ==", "height": 2703413, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ACCGaSswRh9ZdZZbL7mnVtVFvtmKEJcrBzzQNQmwNFhy Next: 9kBJohuSW8s7Cw5zdDv2EC5qaatBJJ2ZLwRtMsu5Boti Diff:
OldNewDifferences
2929 func getWavesCurrentPrice () = 2000000
3030
3131
32+func getWavesNewPrice () = 3000000
33+
34+
3235 func getWaves1LCurrentPrice () = 1500000
3336
3437
3841 func getWaves3LNewPrice () = 2000000
3942
4043
41-func transferWavesTestInternal (assetIdStr,assetAmount,address) = [IntegerEntry(((address + "_deposited_") + assetIdStr), assetAmount)]
42-
43-
4444 @Callable(i)
45-func transferWaves (assetAmount,senderAddress) = if ((i.caller != this))
46- then throw("only for internal smart contract invocations")
47- else [ScriptTransfer(this, assetAmount, unit), IntegerEntry((senderAddress + "_deposited_WAVES"), assetAmount)]
48-
49-
50-
51-@Callable(i)
52-func issue3xLong () = [Issue("WAVES3L", "WAVES_USDN_LONG3X Token", 1000000000, 6, true)]
53-
54-
55-
56-@Callable(i)
57-func transferWavesTest () = if (if ((size(i.payments) != 1))
58- then true
59- else (i.payments[0].amount == 0))
60- then throw("1 payment has to be attached")
61- else {
62- let assetIdStr = "WAVES"
63- let assetAmount = i.payments[0].amount
64- transferWavesTestInternal(assetIdStr, assetAmount, toString(i.caller))
65- }
66-
67-
68-
69-@Callable(i)
70-func mintWaves3L () = if (if ((size(i.payments) != 1))
45+func mintWaves3L_v1 () = if (if ((size(i.payments) != 1))
7146 then true
7247 else (i.payments[0].amount == 0))
7348 then throw("1 payment has to be attached")
11489
11590
11691 @Callable(i)
117-func redeemWaves3L () = if (if ((size(i.payments) != 1))
92+func redeemWaves3L_v1 () = if (if ((size(i.payments) != 1))
11893 then true
11994 else (i.payments[0].amount == 0))
12095 then throw("1 payment has to be attached")
128103
129104
130105 @Callable(i)
131-func mintWaves3L_test () = if (if ((size(i.payments) != 1))
106+func mintWaves3L_v2 () = if (if ((size(i.payments) != 1))
132107 then true
133108 else (i.payments[0].amount == 0))
134109 then throw("1 payment has to be attached")
135110 else {
136111 let address = toString(i.caller)
137112 let stableCoinAmount = i.payments[0].amount
138-[IntegerEntry((address + "_gave_USDN"), stableCoinAmount)]
139- }
140-
141-
142-
143-@Callable(i)
144-func long3x_v2 () = if (if ((size(i.payments) != 1))
145- then true
146- else (i.payments[0].amount == 0))
147- then throw("1 payment has to be attached")
148- else {
149- let address = toString(i.caller)
150- let assetIdStr = "WAVES"
151- let wavesAmount = i.payments[0].amount
152- let currentWavesAmount = getBalance(assetIdStr, i.caller)
153- if ((currentWavesAmount > wavesAmount))
113+ let convertedWavesAmount = ((stableCoinAmount / 2000000) * 100000000)
114+ let userWavesAmount = getBalance("WAVES", i.caller)
115+ let bedingung = ((3 - 1) * getWavesCurrentPrice())
116+ if ((stableCoinAmount >= bedingung))
154117 then {
155- let depositResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "supply", nil, [AttachedPayment(unit, wavesAmount)])
118+ let depositResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "supply", nil, [AttachedPayment(unit, convertedWavesAmount)])
156119 if ((depositResult == depositResult))
157120 then {
158121 func repeatFunc (accum,next) = {
159- let borrowResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", ((wavesAmount * getCurrentPrice("WAVES")) / 100)], nil)
122+ let borrowResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", stableCoinAmount], nil)
160123 if ((borrowResult == borrowResult))
161124 then (accum + next)
162125 else throw("Strict value is not equal to itself.")
163126 }
164127
165- let array = [wavesAmount, wavesAmount]
128+ let array = [stableCoinAmount, stableCoinAmount, stableCoinAmount]
166129 let res = {
167130 let $l = array
168131 let $s = size($l)
177140
178141 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
179142 }
180-[IntegerEntry((address + "_deposited_WAVES"), wavesAmount), IntegerEntry(((address + "_borrowed_") + "25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT"), (wavesAmount * getCurrentPrice("WAVES"))), ScriptTransfer(i.caller, ((res * getCurrentPrice("WAVES")) / 100), base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT')]
143+ let byWavesKaufen = ((res / getWavesCurrentPrice()) * 100000000)
144+[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')]
181145 }
182146 else throw("Strict value is not equal to itself.")
183147 }
187151
188152
189153 @Callable(i)
190-func long2x (assetAmount) = {
191- let address = toString(i.caller)
192- let currentAmount = getBalance("WAVES", i.caller)
193- if ((currentAmount > assetAmount))
194- then {
195- func repeatFunc (accum,next) = {
196- let transferResult = invoke(this, "transferWaves", [assetAmount, i.caller], nil)
197- if ((transferResult == transferResult))
198- then {
199- let supplyResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "supply", nil, [AttachedPayment(unit, assetAmount)])
200- if ((supplyResult == supplyResult))
201- then {
202- let borrowResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", ((assetAmount * getCurrentPrice("WAVES")) / 100)], nil)
203- if ((borrowResult == borrowResult))
204- then (accum + next)
205- else throw("Strict value is not equal to itself.")
206- }
207- else throw("Strict value is not equal to itself.")
208- }
209- else throw("Strict value is not equal to itself.")
210- }
211-
212- let array = [assetAmount, assetAmount]
213- let res = {
214- let $l = array
215- let $s = size($l)
216- let $acc0 = 0
217- func $f0_1 ($a,$i) = if (($i >= $s))
218- then $a
219- else repeatFunc($a, $l[$i])
220-
221- func $f0_2 ($a,$i) = if (($i >= $s))
222- then $a
223- else throw("List size exceeds 2")
224-
225- $f0_2($f0_1($f0_1($acc0, 0), 1), 2)
226- }
227-[IntegerEntry(((address + "_borrowed_") + "25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT"), (assetAmount * getCurrentPrice("WAVES"))), ScriptTransfer(i.caller, ((res * getCurrentPrice("WAVES")) / 100), base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'), ScriptTransfer(this, res, unit)]
228- }
229- else throw("Error!")
230- }
231-
232-
233-
234-@Callable(i)
235-func borrow (assetAmount) = {
236- let address = toString(i.caller)
237- let res = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", assetAmount], nil)
238- if ((res == res))
239- then [ScriptTransfer(i.caller, assetAmount, base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'), IntegerEntry(((address + "_borrowed_") + "25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT"), assetAmount)]
240- else throw("Strict value is not equal to itself.")
241- }
242-
243-
244-
245-@Callable(i)
246-func borrow2 (assetAmount) = {
247- let address = toString(i.caller)
248- func repeatFunc (accum,next) = {
249- let result = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", assetAmount], nil)
250- if ((result == result))
251- then (accum + next)
252- else throw("Strict value is not equal to itself.")
154+func redeemWaves3L_v2 () = if (if ((size(i.payments) != 1))
155+ then true
156+ else (i.payments[0].amount == 0))
157+ then throw("1 payment has to be attached")
158+ else {
159+ let address = toString(i.caller)
160+ let tokenAmount = 6
161+ let returnedUSDNAmount = (((tokenAmount * (getWavesNewPrice() / 1000000)) - 4) * 1000000)
162+[IntegerEntry((address + "_redeemed_WAVES3L"), tokenAmount), IntegerEntry((address + "_received_USDN"), returnedUSDNAmount), ScriptTransfer(i.caller, returnedUSDNAmount, base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT')]
253163 }
254-
255- let array = [assetAmount, assetAmount]
256- let res = {
257- let $l = array
258- let $s = size($l)
259- let $acc0 = 0
260- func $f0_1 ($a,$i) = if (($i >= $s))
261- then $a
262- else repeatFunc($a, $l[$i])
263-
264- func $f0_2 ($a,$i) = if (($i >= $s))
265- then $a
266- else throw("List size exceeds 2")
267-
268- $f0_2($f0_1($f0_1($acc0, 0), 1), 2)
269- }
270-[IntegerEntry(((address + "_borrowed_") + "25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT"), assetAmount), ScriptTransfer(i.caller, res, base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT')]
271- }
272-
273-
274-
275-@Callable(i)
276-func borrow5 (assetIdStr,assetAmount) = {
277- let address = toString(i.caller)
278- let res = {
279- let $l = arr
280- let $s = size($l)
281- let $acc0 = 0
282- func $f0_1 ($a,$i) = if (($i >= $s))
283- then $a
284- else sum($a, $l[$i])
285-
286- func $f0_2 ($a,$i) = if (($i >= $s))
287- then $a
288- else throw("List size exceeds 5")
289-
290- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
291- }
292- if ((res == res))
293- then [IntegerEntry(((address + "_borrowed_") + assetIdStr), assetAmount)]
294- else throw("Strict value is not equal to itself.")
295- }
296-
297-
298-
299-@Callable(i)
300-func deposit () = {
301- let address = toString(i.caller)
302- let res = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "supply", nil, [AttachedPayment(unit, 1000000)])
303- if ((res == res))
304- then [IntegerEntry((address + "supply_waves"), 1000000)]
305- else throw("Strict value is not equal to itself.")
306- }
307-
308-
309-
310-@Callable(i)
311-func withdraw (assetIdStr,assetAmount) = {
312- let address = toString(i.caller)
313- let res = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "withdraw", [assetIdStr, assetAmount], nil)
314- if ((res == res))
315- then [IntegerEntry(((address + "_withdrew_") + assetIdStr), assetAmount)]
316- else throw("Strict value is not equal to itself.")
317- }
318164
319165
320166
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let waves1LId = Address(base58'CygdaJKZfxRrHyYMwkNdz9ZgSD5FpJLtk5s5B4q1DKV6')
55
66 let waves3LId = Address(base58'92rW5ucGkH84YeXLnLs8dMN1P7RAFocmR8zfBqUy4gPM')
77
88 let waves5LId = Address(base58'2qUH6Nh6cgC8dxj8fwH3bTJi261PNr5nMQKRbBXBuwmM')
99
1010 let arr = [1, 2, 3, 4, 5]
1111
1212 let arr2 = [1, 2]
1313
1414 let arr3 = [1, 2, 3]
1515
1616 func sum (a,b) = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", 1000000], nil)
1717
1818
1919 func getBalance (assetIdStr,address) = if ((assetIdStr == "WAVES"))
2020 then wavesBalance(address).available
2121 else assetBalance(address, fromBase58String(assetIdStr))
2222
2323
2424 func getCurrentPrice (assetIdStr) = if ((assetIdStr == "WAVES"))
2525 then 2
2626 else throw("Error")
2727
2828
2929 func getWavesCurrentPrice () = 2000000
3030
3131
32+func getWavesNewPrice () = 3000000
33+
34+
3235 func getWaves1LCurrentPrice () = 1500000
3336
3437
3538 func getWaves3LCurrentPrice () = 1200000
3639
3740
3841 func getWaves3LNewPrice () = 2000000
3942
4043
41-func transferWavesTestInternal (assetIdStr,assetAmount,address) = [IntegerEntry(((address + "_deposited_") + assetIdStr), assetAmount)]
42-
43-
4444 @Callable(i)
45-func transferWaves (assetAmount,senderAddress) = if ((i.caller != this))
46- then throw("only for internal smart contract invocations")
47- else [ScriptTransfer(this, assetAmount, unit), IntegerEntry((senderAddress + "_deposited_WAVES"), assetAmount)]
48-
49-
50-
51-@Callable(i)
52-func issue3xLong () = [Issue("WAVES3L", "WAVES_USDN_LONG3X Token", 1000000000, 6, true)]
53-
54-
55-
56-@Callable(i)
57-func transferWavesTest () = if (if ((size(i.payments) != 1))
58- then true
59- else (i.payments[0].amount == 0))
60- then throw("1 payment has to be attached")
61- else {
62- let assetIdStr = "WAVES"
63- let assetAmount = i.payments[0].amount
64- transferWavesTestInternal(assetIdStr, assetAmount, toString(i.caller))
65- }
66-
67-
68-
69-@Callable(i)
70-func mintWaves3L () = if (if ((size(i.payments) != 1))
45+func mintWaves3L_v1 () = if (if ((size(i.payments) != 1))
7146 then true
7247 else (i.payments[0].amount == 0))
7348 then throw("1 payment has to be attached")
7449 else {
7550 let address = toString(i.caller)
7651 let stableCoinAmount = i.payments[0].amount
7752 let convertedWavesAmount = ((stableCoinAmount / getWavesCurrentPrice()) * 100000000)
7853 let userWavesAmount = getBalance("WAVES", i.caller)
7954 if ((userWavesAmount > convertedWavesAmount))
8055 then {
8156 let depositResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "supply", nil, [AttachedPayment(unit, convertedWavesAmount)])
8257 if ((depositResult == depositResult))
8358 then {
8459 func repeatFunc (accum,next) = {
8560 let borrowResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", stableCoinAmount], nil)
8661 if ((borrowResult == borrowResult))
8762 then (accum + next)
8863 else throw("Strict value is not equal to itself.")
8964 }
9065
9166 let array = [stableCoinAmount, stableCoinAmount, stableCoinAmount]
9267 let res = {
9368 let $l = array
9469 let $s = size($l)
9570 let $acc0 = 0
9671 func $f0_1 ($a,$i) = if (($i >= $s))
9772 then $a
9873 else repeatFunc($a, $l[$i])
9974
10075 func $f0_2 ($a,$i) = if (($i >= $s))
10176 then $a
10277 else throw("List size exceeds 3")
10378
10479 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
10580 }
10681 let returnedTokenAmount = ((res / getWaves3LCurrentPrice()) * 1000000)
10782 [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')]
10883 }
10984 else throw("Strict value is not equal to itself.")
11085 }
11186 else throw("Not enough WAVES to deposit!")
11287 }
11388
11489
11590
11691 @Callable(i)
117-func redeemWaves3L () = if (if ((size(i.payments) != 1))
92+func redeemWaves3L_v1 () = if (if ((size(i.payments) != 1))
11893 then true
11994 else (i.payments[0].amount == 0))
12095 then throw("1 payment has to be attached")
12196 else {
12297 let address = toString(i.caller)
12398 let tokenAmount = i.payments[0].amount
12499 let returnedUSDNAmount = (tokenAmount * (getWaves3LNewPrice() / 1000000))
125100 [IntegerEntry((address + "_redeemed_WAVES3L"), tokenAmount), IntegerEntry((address + "_received_USDN"), returnedUSDNAmount), ScriptTransfer(i.caller, returnedUSDNAmount, base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT')]
126101 }
127102
128103
129104
130105 @Callable(i)
131-func mintWaves3L_test () = if (if ((size(i.payments) != 1))
106+func mintWaves3L_v2 () = if (if ((size(i.payments) != 1))
132107 then true
133108 else (i.payments[0].amount == 0))
134109 then throw("1 payment has to be attached")
135110 else {
136111 let address = toString(i.caller)
137112 let stableCoinAmount = i.payments[0].amount
138-[IntegerEntry((address + "_gave_USDN"), stableCoinAmount)]
139- }
140-
141-
142-
143-@Callable(i)
144-func long3x_v2 () = if (if ((size(i.payments) != 1))
145- then true
146- else (i.payments[0].amount == 0))
147- then throw("1 payment has to be attached")
148- else {
149- let address = toString(i.caller)
150- let assetIdStr = "WAVES"
151- let wavesAmount = i.payments[0].amount
152- let currentWavesAmount = getBalance(assetIdStr, i.caller)
153- if ((currentWavesAmount > wavesAmount))
113+ let convertedWavesAmount = ((stableCoinAmount / 2000000) * 100000000)
114+ let userWavesAmount = getBalance("WAVES", i.caller)
115+ let bedingung = ((3 - 1) * getWavesCurrentPrice())
116+ if ((stableCoinAmount >= bedingung))
154117 then {
155- let depositResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "supply", nil, [AttachedPayment(unit, wavesAmount)])
118+ let depositResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "supply", nil, [AttachedPayment(unit, convertedWavesAmount)])
156119 if ((depositResult == depositResult))
157120 then {
158121 func repeatFunc (accum,next) = {
159- let borrowResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", ((wavesAmount * getCurrentPrice("WAVES")) / 100)], nil)
122+ let borrowResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", stableCoinAmount], nil)
160123 if ((borrowResult == borrowResult))
161124 then (accum + next)
162125 else throw("Strict value is not equal to itself.")
163126 }
164127
165- let array = [wavesAmount, wavesAmount]
128+ let array = [stableCoinAmount, stableCoinAmount, stableCoinAmount]
166129 let res = {
167130 let $l = array
168131 let $s = size($l)
169132 let $acc0 = 0
170133 func $f0_1 ($a,$i) = if (($i >= $s))
171134 then $a
172135 else repeatFunc($a, $l[$i])
173136
174137 func $f0_2 ($a,$i) = if (($i >= $s))
175138 then $a
176139 else throw("List size exceeds 3")
177140
178141 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
179142 }
180-[IntegerEntry((address + "_deposited_WAVES"), wavesAmount), IntegerEntry(((address + "_borrowed_") + "25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT"), (wavesAmount * getCurrentPrice("WAVES"))), ScriptTransfer(i.caller, ((res * getCurrentPrice("WAVES")) / 100), base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT')]
143+ let byWavesKaufen = ((res / getWavesCurrentPrice()) * 100000000)
144+[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')]
181145 }
182146 else throw("Strict value is not equal to itself.")
183147 }
184148 else throw("Not enough WAVES to deposit!")
185149 }
186150
187151
188152
189153 @Callable(i)
190-func long2x (assetAmount) = {
191- let address = toString(i.caller)
192- let currentAmount = getBalance("WAVES", i.caller)
193- if ((currentAmount > assetAmount))
194- then {
195- func repeatFunc (accum,next) = {
196- let transferResult = invoke(this, "transferWaves", [assetAmount, i.caller], nil)
197- if ((transferResult == transferResult))
198- then {
199- let supplyResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "supply", nil, [AttachedPayment(unit, assetAmount)])
200- if ((supplyResult == supplyResult))
201- then {
202- let borrowResult = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", ((assetAmount * getCurrentPrice("WAVES")) / 100)], nil)
203- if ((borrowResult == borrowResult))
204- then (accum + next)
205- else throw("Strict value is not equal to itself.")
206- }
207- else throw("Strict value is not equal to itself.")
208- }
209- else throw("Strict value is not equal to itself.")
210- }
211-
212- let array = [assetAmount, assetAmount]
213- let res = {
214- let $l = array
215- let $s = size($l)
216- let $acc0 = 0
217- func $f0_1 ($a,$i) = if (($i >= $s))
218- then $a
219- else repeatFunc($a, $l[$i])
220-
221- func $f0_2 ($a,$i) = if (($i >= $s))
222- then $a
223- else throw("List size exceeds 2")
224-
225- $f0_2($f0_1($f0_1($acc0, 0), 1), 2)
226- }
227-[IntegerEntry(((address + "_borrowed_") + "25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT"), (assetAmount * getCurrentPrice("WAVES"))), ScriptTransfer(i.caller, ((res * getCurrentPrice("WAVES")) / 100), base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'), ScriptTransfer(this, res, unit)]
228- }
229- else throw("Error!")
230- }
231-
232-
233-
234-@Callable(i)
235-func borrow (assetAmount) = {
236- let address = toString(i.caller)
237- let res = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", assetAmount], nil)
238- if ((res == res))
239- then [ScriptTransfer(i.caller, assetAmount, base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'), IntegerEntry(((address + "_borrowed_") + "25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT"), assetAmount)]
240- else throw("Strict value is not equal to itself.")
241- }
242-
243-
244-
245-@Callable(i)
246-func borrow2 (assetAmount) = {
247- let address = toString(i.caller)
248- func repeatFunc (accum,next) = {
249- let result = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "borrow", ["25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT", assetAmount], nil)
250- if ((result == result))
251- then (accum + next)
252- else throw("Strict value is not equal to itself.")
154+func redeemWaves3L_v2 () = if (if ((size(i.payments) != 1))
155+ then true
156+ else (i.payments[0].amount == 0))
157+ then throw("1 payment has to be attached")
158+ else {
159+ let address = toString(i.caller)
160+ let tokenAmount = 6
161+ let returnedUSDNAmount = (((tokenAmount * (getWavesNewPrice() / 1000000)) - 4) * 1000000)
162+[IntegerEntry((address + "_redeemed_WAVES3L"), tokenAmount), IntegerEntry((address + "_received_USDN"), returnedUSDNAmount), ScriptTransfer(i.caller, returnedUSDNAmount, base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT')]
253163 }
254-
255- let array = [assetAmount, assetAmount]
256- let res = {
257- let $l = array
258- let $s = size($l)
259- let $acc0 = 0
260- func $f0_1 ($a,$i) = if (($i >= $s))
261- then $a
262- else repeatFunc($a, $l[$i])
263-
264- func $f0_2 ($a,$i) = if (($i >= $s))
265- then $a
266- else throw("List size exceeds 2")
267-
268- $f0_2($f0_1($f0_1($acc0, 0), 1), 2)
269- }
270-[IntegerEntry(((address + "_borrowed_") + "25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT"), assetAmount), ScriptTransfer(i.caller, res, base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT')]
271- }
272-
273-
274-
275-@Callable(i)
276-func borrow5 (assetIdStr,assetAmount) = {
277- let address = toString(i.caller)
278- let res = {
279- let $l = arr
280- let $s = size($l)
281- let $acc0 = 0
282- func $f0_1 ($a,$i) = if (($i >= $s))
283- then $a
284- else sum($a, $l[$i])
285-
286- func $f0_2 ($a,$i) = if (($i >= $s))
287- then $a
288- else throw("List size exceeds 5")
289-
290- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
291- }
292- if ((res == res))
293- then [IntegerEntry(((address + "_borrowed_") + assetIdStr), assetAmount)]
294- else throw("Strict value is not equal to itself.")
295- }
296-
297-
298-
299-@Callable(i)
300-func deposit () = {
301- let address = toString(i.caller)
302- let res = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "supply", nil, [AttachedPayment(unit, 1000000)])
303- if ((res == res))
304- then [IntegerEntry((address + "supply_waves"), 1000000)]
305- else throw("Strict value is not equal to itself.")
306- }
307-
308-
309-
310-@Callable(i)
311-func withdraw (assetIdStr,assetAmount) = {
312- let address = toString(i.caller)
313- let res = invoke(addressFromStringValue("3N3DnVffnUyZtz2MRbk5U7giN112WempMNd"), "withdraw", [assetIdStr, assetAmount], nil)
314- if ((res == res))
315- then [IntegerEntry(((address + "_withdrew_") + assetIdStr), assetAmount)]
316- else throw("Strict value is not equal to itself.")
317- }
318164
319165
320166
321167 @Callable(i)
322168 func checkBalance (assetIdStr) = {
323169 let address = i.caller
324170 if ((assetIdStr == "WAVES"))
325171 then [IntegerEntry("Waves Balance", wavesBalance(address).available)]
326172 else [IntegerEntry("Asset Balance", assetBalance(address, fromBase58String(assetIdStr)))]
327173 }
328174
329175
330176 @Verifier(tx)
331177 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
332178

github/deemru/w8io/873ac7e 
67.32 ms