tx · 5StfCta79YjcBkdq5D1ziJVXHuWjCVrnkDVrqQzbzAUV

3PK7Xe5BiedRyxHLuMQx5ey9riUQqvUths2:  -0.01400000 Waves

2020.12.31 14:47 [2396615] smart account 3PK7Xe5BiedRyxHLuMQx5ey9riUQqvUths2 > SELF 0.00000000 Waves

{ "type": 13, "id": "5StfCta79YjcBkdq5D1ziJVXHuWjCVrnkDVrqQzbzAUV", "fee": 1400000, "feeAssetId": null, "timestamp": 1609414456088, "version": 2, "chainId": 87, "sender": "3PK7Xe5BiedRyxHLuMQx5ey9riUQqvUths2", "senderPublicKey": "7hEH4UN8YsnvBCS3YmjieqS332S69yTNjxNp83SmtDrQ", "proofs": [ "", "rQNWHe8Tt457Xxkdwf7Jv5oz3ZanHgNZTTgByvwpcBT9BLjGTpo13hC6UfB3oZPhC4cE1xbkGBycPko5MqsZzFr", "2juqEaGTjQgzQYbyW2x9gMdMoneUEKh1oSx9g4r9UQDKcQkpXwcnVMBkwSSkxwp8QS7NucPStM1yHFYjma3UGLkS" ], "script": "base64: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AGUAAAACBQAAAAhiYWxhbmNlQQUAAAANc3Rha2VkQW1vdW50QQAAAAARYXZhaWxhYmxlQmFsYW5jZUIJAABlAAAAAgUAAAAIYmFsYW5jZUIFAAAADXN0YWtlZEFtb3VudEIAAAAAGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEEJAABkAAAAAgkBAAAADmFjY291bnRCYWxhbmNlAAAAAQUAAAAIYXNzZXRJZEEFAAAADXN0YWtlZEFtb3VudEEAAAAAGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEIJAABkAAAAAgkBAAAADmFjY291bnRCYWxhbmNlAAAAAQUAAAAIYXNzZXRJZEIFAAAADXN0YWtlZEFtb3VudEIAAAAAEGhhc0Vub3VnaEJhbGFuY2UDCQAAZwAAAAIFAAAAGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEEFAAAACGJhbGFuY2VBCQAAZwAAAAIFAAAAGWFjY291bnRCYWxhbmNlV2l0aFN0YWtlZEIFAAAACGJhbGFuY2VCBwEAAAAMZ2V0QXNzZXRJbmZvAAAAAQAAAAdhc3NldElkBAAAAAckbWF0Y2gwBQAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJpZAUAAAAHJG1hdGNoMAQAAAAIc3RyaW5nSWQJAAJYAAAAAQUAAAACaWQEAAAABGluZm8JAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkAA+wAAAABBQAAAAJpZAkAASwAAAACCQABLAAAAAICAAAABkFzc2V0IAUAAAAIc3RyaW5nSWQCAAAADiBkb2Vzbid0IGV4aXN0CQAFFQAAAAMFAAAACHN0cmluZ0lkCAUAAAAEaW5mbwAAAARuYW1lCAUAAAAEaW5mbwAAAAhkZWNpbWFscwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAFd2F2ZXMFAAAAByRtYXRjaDAJAAUVAAAAAwIAAAAFV0FWRVMCAAAABVdBVkVTAAAAAAAAAAAICQAAAgAAAAECAAAAC01hdGNoIGVycm9yAQAAAAdzdXNwZW5kAAAAAQAAAAVjYXVzZQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa2V5QWN0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CQAEOAAAAAEFAAAACnNoYXJlSXNzdWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAKa2V5VmVyc2lvbgUAAAAHdmVyc2lvbgkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa2V5QWN0aXZlBgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAtrZXlBc3NldElkQQUAAAAOcG10U3RyQXNzZXRJZEEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAALa2V5QXNzZXRJZEIFAAAADnBtdFN0ckFzc2V0SWRCCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQUAAAAKcG10QW1vdW50QQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIFAAAACnBtdEFtb3VudEIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADWtleUNvbW1pc3Npb24FAAAACmNvbW1pc3Npb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAG2tleUNvbW1pc3Npb25TY2FsZURlbGltaXRlcgUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyCQAETAAAAAIFAAAACnNoYXJlSXNzdWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAPa2V5U2hhcmVBc3NldElkCQACWAAAAAEFAAAADHNoYXJlSXNzdWVJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATa2V5U2hhcmVBc3NldFN1cHBseQUAAAASc2hhcmVJbml0aWFsU3VwcGx5CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAASc2hhcmVJbml0aWFsU3VwcGx5BQAAAAxzaGFyZUlzc3VlSWQFAAAAA25pbAAAAAFpAQAAABZyZXBsZW5pc2hXaXRoVHdvVG9rZW5zAAAAAQAAABFzbGlwcGFnZVRvbGVyYW5jZQQAAAALcG10QXNzZXRJZEEICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAAC3BtdEFzc2V0SWRCCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQAAAAdhc3NldElkBAAAAAskdDA4MTYyODM3MAkBAAAAEGRlZHVjdFN0YWtpbmdGZWUAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABAAAABmFtb3VudAQAAAAKcG10QW1vdW50QQgFAAAACyR0MDgxNjI4MzcwAAAAAl8xBAAAAApwbXRBbW91bnRCCAUAAAALJHQwODE2MjgzNzAAAAACXzIEAAAACnRva2VuUmF0aW8JAABrAAAAAwkAAGsAAAADBQAAAAhiYWxhbmNlQQUAAAALc2NhbGVWYWx1ZTgFAAAACnBtdEFtb3VudEEFAAAAC3NjYWxlVmFsdWUzCQAAawAAAAMFAAAACGJhbGFuY2VCBQAAAAtzY2FsZVZhbHVlOAUAAAAKcG10QW1vdW50QgQAAAATcmF0aW9TaGFyZVRva2Vuc0luQQkAAGsAAAADBQAAAApwbXRBbW91bnRBBQAAAAtzY2FsZVZhbHVlOAUAAAAIYmFsYW5jZUEEAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkIJAABrAAAAAwUAAAAKcG10QW1vdW50QgUAAAALc2NhbGVWYWx1ZTgFAAAACGJhbGFuY2VCBAAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQJAABrAAAAAwkAAZcAAAABCQAETAAAAAIFAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkEJAARMAAAAAgUAAAATcmF0aW9TaGFyZVRva2Vuc0luQgUAAAADbmlsBQAAABBzaGFyZUFzc2V0U3VwcGx5BQAAAAtzY2FsZVZhbHVlOAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMDCQAAZgAAAAIAAAAAAAAAAAAFAAAAEXNsaXBwYWdlVG9sZXJhbmNlBgkAAGYAAAACBQAAABFzbGlwcGFnZVRvbGVyYW5jZQUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAApU2xpcHBhZ2UgdG9sZXJhbmNlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAJAAGkAAAAAQUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXICAAAAFiBpbmNsdXNpdmVseS4gQWN0dWFsOiAJAAGkAAAAAQUAAAARc2xpcHBhZ2VUb2xlcmFuY2UDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAACCQAAAgAAAAECAAAAHFR3byBhdHRhY2hlZCBhc3NldHMgZXhwZWN0ZWQDAwkBAAAAAiE9AAAAAgUAAAALcG10QXNzZXRJZEEFAAAACGFzc2V0SWRBBgkBAAAAAiE9AAAAAgUAAAALcG10QXNzZXRJZEIFAAAACGFzc2V0SWRCCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAJUluY29ycmVjdCBhc3NldHMgYXR0YWNoZWQuIEV4cGVjdGVkOiAFAAAAC3N0ckFzc2V0SWRBAgAAAAUgYW5kIAUAAAALc3RyQXNzZXRJZEIDAwkAAGYAAAACCQAAaQAAAAIJAABoAAAAAgUAAAALc2NhbGVWYWx1ZTMJAABlAAAAAgUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIFAAAAEXNsaXBwYWdlVG9sZXJhbmNlBQAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgUAAAAKdG9rZW5SYXRpbwYJAABmAAAAAgUAAAAKdG9rZW5SYXRpbwkAAGkAAAACCQAAaAAAAAIFAAAAC3NjYWxlVmFsdWUzCQAAZAAAAAIFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyBQAAABFzbGlwcGFnZVRvbGVyYW5jZQUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIJAAACAAAAAQIAAAA9SW5jb3JyZWN0IGFzc2V0cyBhbW91bnQ6IGFtb3VudHMgbXVzdCBoYXZlIHRoZSBjb250cmFjdCByYXRpbwMJAAAAAAAAAgUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50AAAAAAAAAAAACQAAAgAA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ZXlCYWxhbmNlQgkAAGUAAAACBQAAAAhiYWxhbmNlQgUAAAAMYW1vdW50VG9QYXlCCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABNrZXlTaGFyZUFzc2V0U3VwcGx5CQAAZQAAAAIFAAAAEHNoYXJlQXNzZXRTdXBwbHkFAAAACXBtdEFtb3VudAkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAADHNoYXJlQXNzZXRJZAUAAAAJcG10QW1vdW50CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAMYW1vdW50VG9QYXlBBQAAAAhhc3NldElkQQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADGFtb3VudFRvUGF5QgUAAAAIYXNzZXRJZEIFAAAAA25pbAAAAAFpAQAAAAhleGNoYW5nZQAAAAEAAAASbWluQW1vdW50VG9SZWNlaXZlBAAAAA0kdDAxMjIwNDEyMjc5CQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAJcG10QW1vdW50CAUAAAANJHQwMTIyMDQxMjI3OQAAAAJfMQQAAAAKcG10QXNzZXRJZAgFAAAADSR0MDEyMjA0MTIyNzkAAAACXzIKAQAAAA1jYWxjdWxhdGVGZWVzAAAAAgAAAAl0b2tlbkZyb20AAAAHdG9rZW5UbwQAAAAQYW1vdW50V2l0aG91dEZlZQkAAGsAAAADBQAAAAd0b2tlblRvBQAAAAlwbXRBbW91bnQJAABkAAAAAgUAAAAJcG10QW1vdW50BQAAAAl0b2tlbkZyb20EAAAADWFtb3VudFdpdGhGZWUJAABrAAAAAwUAAAAQYW1vdW50V2l0aG91dEZlZQkAAGUAAAACBQAAABhjb21taXNzaW9uU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAGGNvbW1pc3Npb25TY2FsZURlbGltaXRlcgQAAAAQZ292ZXJuYW5jZVJld2FyZAkAAGsAAAADBQAAABBhbW91bnRXaXRob3V0RmVlBQAAABRjb21taXNzaW9uR292ZXJuYW5jZQUAAAAYY29tbWlzc2lvblNjYWxlRGVsaW1pdGVyAwkAAGYAAAACBQAAABJtaW5BbW91bnRUb1JlY2VpdmUFAAAADWFtb3VudFdpdGhGZWUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAdQ2FsY3VsYXRlZCBhbW91bnQgdG8gcmVjZWl2ZSAJAAGkAAAAAQUAAAANYW1vdW50V2l0aEZlZQIAAAAgIGlzIGxlc3MgdGhhbiBzcGVjaWZpZWQgbWluaW11bSAJAAGkAAAAAQUAAAASbWluQW1vdW50VG9SZWNlaXZlCQAFFQAAAAMFAAAAEGFtb3VudFdpdGhvdXRGZWUFAAAADWFtb3VudFdpdGhGZWUFAAAAEGdvdmVybmFuY2VSZXdhcmQDCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQDCQAAZwAAAAIAAAAAAAAAAAAFAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQkAAAIAAAABCQABLAAAAAICAAAANE1pbmltYWwgYW1vdW50IHRvIHJlY2VpdmUgbXVzdCBiZSBwb3NpdGl2ZS4gQWN0dWFsOiAJAAGkAAAAAQUAAAASbWluQW1vdW50VG9SZWNlaXZlAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAAIAAAABAgAAAB1PbmUgYXR0YWNoZWQgcGF5bWVudCBleHBlY3RlZAMJAQAAAAEhAAAAAQUAAAAQaGFzRW5vdWdoQmFsYW5jZQkABE4AAAACCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAJcG10QW1vdW50BQAAAApwbXRBc3NldElkBQAAAANuaWwJAQAAAAdzdXNwZW5kAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAjU3VzcGljaW91cyBzdGF0ZS4gQWN0dWFsIGJhbGFuY2VzOiAJAAGkAAAAAQUAAAAIYmFsYW5jZUECAAAAASAFAAAACmFzc2V0TmFtZUECAAAAAiwgCQABpAAAAAEFAAAACGJhbGFuY2VCAgAAAAEgBQAAAAphc3NldE5hbWVCAgAAAAkuIFN0YXRlOiAJAAGkAAAAAQkBAAAADmFjY291bnRCYWxhbmNlAAAAAQUAAAAIYXNzZXRJZEECAAAAASAFAAAACmFzc2V0TmFtZUECAAAAAiwgCQABpAAAAAEJAQAAAA5hY2NvdW50QmFsYW5jZQAAAAEFAAAACGFzc2V0SWRCAgAAAAEgBQAAAAphc3NldE5hbWVCAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAhhc3NldElkQQQAAAALYXNzZXRJZFNlbmQFAAAACGFzc2V0SWRCBAAAAA0kdDAxMzcxNzEzODA4CQEAAAANY2FsY3VsYXRlRmVlcwAAAAIFAAAACGJhbGFuY2VBBQAAAAhiYWxhbmNlQgQAAAAQYW1vdW50V2l0aG91dEZlZQgFAAAADSR0MDEzNzE3MTM4MDgAAAACXzEEAAAADWFtb3VudFdpdGhGZWUIBQAAAA0kdDAxMzcxNzEzODA4AAAAAl8yBAAAABBnb3Zlcm5hbmNlUmV3YXJkCAUAAAANJHQwMTM3MTcxMzgwOAAAAAJfMwQAAAALbmV3QmFsYW5jZUEJAABkAAAAAgUAAAAIYmFsYW5jZUEFAAAACXBtdEFtb3VudAQAAAALbmV3QmFsYW5jZUIJAABlAAAAAgkAAGUAAAACBQAAAAhiYWxhbmNlQgUAAAANYW1vdW50V2l0aEZlZQUAAAAQZ292ZXJuYW5jZVJld2FyZAMDCQAAZwAAAAIFAAAADXN0YWtlZEFtb3VudEEFAAAAC25ld0JhbGFuY2VBBgkAAGcAAAACBQAAAA1zdGFrZWRBbW91bnRCBQAAAAtuZXdCYWxhbmNlQgkBAAAAIXRocm93SW5zdWZmaWNpZW50QXZhaWxhYmxlQmFsYW5jZQAAAAMFAAAADWFtb3VudFdpdGhGZWUFAAAAEWF2YWlsYWJsZUJhbGFuY2VCBQAAAAphc3NldE5hbWVCCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQUAAAALbmV3QmFsYW5jZUEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VCBQAAAAtuZXdCYWxhbmNlQgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADWFtb3VudFdpdGhGZWUFAAAAC2Fzc2V0SWRTZW5kCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEWdvdmVybmFuY2VBZGRyZXNzBQAAABBnb3Zlcm5hbmNlUmV3YXJkBQAAAAthc3NldElkU2VuZAUAAAADbmlsAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAhhc3NldElkQgQAAAALYXNzZXRJZFNlbmQFAAAACGFzc2V0SWRBBAAAAA0kdDAxNDYzMTE0NzIyCQEAAAANY2FsY3VsYXRlRmVlcwAAAAIFAAAACGJhbGFuY2VCBQAAAAhiYWxhbmNlQQQAAAAQYW1vdW50V2l0aG91dEZlZQgFAAAADSR0MDE0NjMxMTQ3MjIAAAACXzEEAAAADWFtb3VudFdpdGhGZWUIBQAAAA0kdDAxNDYzMTE0NzIyAAAAAl8yBAAAABBnb3Zlcm5hbmNlUmV3YXJkCAUAAAANJHQwMTQ2MzExNDcyMgAAAAJfMwQAAAALbmV3QmFsYW5jZUEJAABlAAAAAgkAAGUAAAACBQAAAAhiYWxhbmNlQQUAAAANYW1vdW50V2l0aEZlZQUAAAAQZ292ZXJuYW5jZVJld2FyZAQAAAALbmV3QmFsYW5jZUIJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAMDCQAAZwAAAAIFAAAADXN0YWtlZEFtb3VudEEFAAAAC25ld0JhbGFuY2VBBgkAAGcAAAACBQAAAA1zdGFrZWRBbW91bnRCBQAAAAtuZXdCYWxhbmNlQgkBAAAAIXRocm93SW5zdWZmaWNpZW50QXZhaWxhYmxlQmFsYW5jZQAAAAMFAAAADWFtb3VudFdpdGhGZWUFAAAAEWF2YWlsYWJsZUJhbGFuY2VBBQAAAAphc3NldE5hbWVBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQUAAAALbmV3QmFsYW5jZUEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VCBQAAAAtuZXdCYWxhbmNlQgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADWFtb3VudFdpdGhGZWUFAAAAC2Fzc2V0SWRTZW5kCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEWdvdmVybmFuY2VBZGRyZXNzBQAAABBnb3Zlcm5hbmNlUmV3YXJkBQAAAAthc3NldElkU2VuZAUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAJEluY29ycmVjdCBhc3NldCBhdHRhY2hlZC4gRXhwZWN0ZWQ6IAUAAAALc3RyQXNzZXRJZEECAAAABCBvciAFAAAAC3N0ckFzc2V0SWRCAAAAAWkBAAAACHNodXRkb3duAAAAAAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQkAASwAAAACAgAAACJEQXBwIGlzIGFscmVhZHkgc3VzcGVuZGVkLiBDYXVzZTogCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAACGtleUNhdXNlAgAAABp0aGUgY2F1c2Ugd2Fzbid0IHNwZWNpZmllZAMJAQAAAAEhAAAAAQkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIFAAAADGFkbWluUHViS2V5MgkABEwAAAACBQAAAAxhZG1pblB1YktleTMJAARMAAAAAgUAAAAUYWRtaW5QdWJLZXlTdGFydFN0b3AFAAAAA25pbAgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgkBAAAAB3N1c3BlbmQAAAABAgAAAA9QYXVzZWQgYnkgYWRtaW4AAAABaQEAAAAIYWN0aXZhdGUAAAAAAwUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAWREFwcCBpcyBhbHJlYWR5IGFjdGl2ZQMJAQAAAAEhAAAAAQkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIFAAAADGFkbWluUHViS2V5MgkABEwAAAACBQAAAAxhZG1pblB1YktleTMJAARMAAAAAgUAAAAUYWRtaW5QdWJLZXlTdGFydFN0b3AFAAAAA25pbAgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa2V5QWN0aXZlBgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAAhrZXlDYXVzZQUAAAADbmlsAAAAAWkBAAAAGXRha2VJbnRvQWNjb3VudEV4dHJhRnVuZHMAAAABAAAAC2Ftb3VudExlYXZlBAAAABh1bmNvdW50YWJsZUFtb3VudEVucm9sbEEJAABlAAAAAgUAAAAZYWNjb3VudEJhbGFuY2VXaXRoU3Rha2VkQQUAAAAIYmFsYW5jZUEEAAAAGHVuY291bnRhYmxlQW1vdW50RW5yb2xsQgkAAGUAAAACBQAAABlhY2NvdW50QmFsYW5jZVdpdGhTdGFrZWRCBQAAAAhiYWxhbmNlQgQAAAANYW1vdW50RW5yb2xsQQkAAGUAAAACBQAAABh1bmNvdW50YWJsZUFtb3VudEVucm9sbEEDCQAAAAAAAAIFAAAACGFzc2V0SWRBBQAAAARVU0ROBQAAAAthbW91bnRMZWF2ZQAAAAAAAAAAAAQAAAANYW1vdW50RW5yb2xsQgkAAGUAAAACBQAAABh1bmNvdW50YWJsZUFtb3VudEVucm9sbEIDCQAAAAAAAAIFAAAACGFzc2V0SWRCBQAAAARVU0ROBQAAAAthbW91bnRMZWF2ZQAAAAAAAAAAAAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAAB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", "height": 2396615, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AeKVhv4br1DFkKC2jKELr8q2qc1fVobKfCv24Sp6Fw5C Next: AxJdnPHcmdxufdRSxzPvfBMtt1tKRpxLsiBpjEP3xMNg Diff:
OldNewDifferences
226226
227227
228228 @Callable(aB)
229-func init (aC) = {
230- let aD = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
231- let aE = aD._1
232- let aF = aD._2
233- let aG = $Tuple2(aB.payments[1].amount, aB.payments[1].assetId)
234- let aH = aG._1
235- let aI = aG._2
236- let aJ = ai(aF)
237- let aK = aJ._1
238- let aL = aJ._2
239- let aM = aJ._3
240- let aN = ai(aI)
241- let aO = aN._1
242- let aP = aN._2
243- let aQ = aN._3
229+func init () = {
230+ let aC = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
231+ let aD = aC._1
232+ let aE = aC._2
233+ let aF = $Tuple2(aB.payments[1].amount, aB.payments[1].assetId)
234+ let aG = aF._1
235+ let aH = aF._2
236+ let aI = ai(aE)
237+ let aJ = aI._1
238+ let aK = aI._2
239+ let aL = aI._3
240+ let aM = ai(aH)
241+ let aN = aM._1
242+ let aO = aM._2
243+ let aP = aM._3
244244 if (isDefined(getBoolean(this, c)))
245245 then throw("DApp is already active")
246- else if ((aF == aI))
246+ else if ((aE == aH))
247247 then throw("Assets must be different")
248248 else {
249- let aR = ((((("ShareToken of SwopFi protocol for " + aL) + " and ") + aP) + " at address ") + toString(this))
250- let aS = ((aM + aQ) / 2)
251- let aT = fraction(pow(aE, aM, 5, 1, aM, HALFDOWN), pow(aH, aQ, 5, 1, aQ, HALFDOWN), pow(10, 0, aS, 0, 0, HALFDOWN))
252- let aU = Issue(aC, aR, aT, aS, true)
249+ let aQ = ((("s" + take(aK, 7)) + "_") + take(aO, 7))
250+ let aR = ((((("ShareToken of SwopFi protocol for " + aK) + " and ") + aO) + " at address ") + toString(this))
251+ let aS = ((aL + aP) / 2)
252+ let aT = fraction(pow(aD, aL, 5, 1, aL, HALFDOWN), pow(aG, aP, 5, 1, aP, HALFDOWN), pow(10, 0, aS, 0, 0, HALFDOWN))
253+ let aU = Issue(aQ, aR, aT, aS, true)
253254 let aV = calculateAssetId(aU)
254-[StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, aK), StringEntry(e, aO), IntegerEntry(f, aE), IntegerEntry(g, aH), IntegerEntry(j, M), IntegerEntry(k, O), aU, StringEntry(h, toBase58String(aV)), IntegerEntry(i, aT), ScriptTransfer(aB.caller, aT, aV)]
255+[StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, aJ), StringEntry(e, aN), IntegerEntry(f, aD), IntegerEntry(g, aG), IntegerEntry(j, M), IntegerEntry(k, O), aU, StringEntry(h, toBase58String(aV)), IntegerEntry(i, aT), ScriptTransfer(aB.caller, aT, aV)]
255256 }
256257 }
257258
259260
260261 @Callable(aB)
261262 func replenishWithTwoTokens (aW) = {
262- let aF = aB.payments[0].assetId
263- let aI = aB.payments[1].assetId
263+ let aE = aB.payments[0].assetId
264+ let aH = aB.payments[1].assetId
264265 let aX = ao(aB.payments[0].amount, aB.payments[1].amount)
265- let aE = aX._1
266- let aH = aX._2
267- let aY = fraction(fraction(I, Q, aE), P, fraction(J, Q, aH))
268- let aZ = fraction(aE, Q, I)
269- let ba = fraction(aH, Q, J)
266+ let aD = aX._1
267+ let aG = aX._2
268+ let aY = fraction(fraction(I, Q, aD), P, fraction(J, Q, aG))
269+ let aZ = fraction(aD, Q, I)
270+ let ba = fraction(aG, Q, J)
270271 let bb = fraction(min([aZ, ba]), L, Q)
271272 if (!(y))
272273 then throw("DApp is inactive at this moment")
276277 then throw(((("Slippage tolerance must be between 0 and " + toString(R)) + " inclusively. Actual: ") + toString(aW)))
277278 else if ((size(aB.payments) != 2))
278279 then throw("Two attached assets expected")
279- else if (if ((aF != B))
280+ else if (if ((aE != B))
280281 then true
281- else (aI != C))
282+ else (aH != C))
282283 then throw(((("Incorrect assets attached. Expected: " + z) + " and ") + A))
283284 else if (if ((((P * (R - aW)) / R) > aY))
284285 then true
287288 else if ((bb == 0))
288289 then throw("Too small amount to replenish")
289290 else if (!(ah))
290- then ([ScriptTransfer(aB.caller, aE, aF), ScriptTransfer(aB.caller, aH, aI)] ++ al(((((((((((((((("Suspicious state. Actual balances: " + toString(I)) + " ") + D) + ", ") + toString(J)) + " ") + H) + ". State: ") + toString(T(B))) + " ") + D) + ", ") + toString(T(C))) + " ") + H)))
291- else [IntegerEntry(f, (I + aE)), IntegerEntry(g, (J + aH)), IntegerEntry(i, (L + bb)), Reissue(K, bb, true), ScriptTransfer(aB.caller, bb, K)]
291+ then ([ScriptTransfer(aB.caller, aD, aE), ScriptTransfer(aB.caller, aG, aH)] ++ al(((((((((((((((("Suspicious state. Actual balances: " + toString(I)) + " ") + D) + ", ") + toString(J)) + " ") + H) + ". State: ") + toString(T(B))) + " ") + D) + ", ") + toString(T(C))) + " ") + H)))
292+ else [IntegerEntry(f, (I + aD)), IntegerEntry(g, (J + aG)), IntegerEntry(i, (L + bb)), Reissue(K, bb, true), ScriptTransfer(aB.caller, bb, K)]
292293 }
293294
294295
397398 func takeIntoAccountExtraFunds (bv) = {
398399 let bw = (af - I)
399400 let bx = (ag - J)
400- let by = (bw - (if ((B == w))
401+ let by = (bw - (if ((B == u))
401402 then bv
402403 else 0))
403- let bz = (bx - (if ((C == w))
404+ let bz = (bx - (if ((C == u))
404405 then bv
405406 else 0))
406407 if (!(y))
417418 then true
418419 else (0 > bz))
419420 then throw("Too large amountLeave")
420- else [IntegerEntry(f, (I + by)), IntegerEntry(g, (J + bz))]
421+ else [IntegerEntry(f, (I + by)), IntegerEntry(g, (J + bz)), IntegerEntry(("last_income_" + z), by), IntegerEntry(("last_income_" + A), bz)]
421422 }
422423
423424
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.0.0"
55
66 let b = "version"
77
88 let c = "active"
99
1010 let d = "A_asset_id"
1111
1212 let e = "B_asset_id"
1313
1414 let f = "A_asset_balance"
1515
1616 let g = "B_asset_balance"
1717
1818 let h = "share_asset_id"
1919
2020 let i = "share_asset_supply"
2121
2222 let j = "commission"
2323
2424 let k = "commission_scale_delimiter"
2525
2626 let l = "shutdown_cause"
2727
2828 let m = base58'DXDY2itiEcYBtGkVLnkpHtDFyWQUkoLJz79uJ7ECbMrA'
2929
3030 let n = base58'E6Wa1SGoktYcjHjsKrvjMiqJY3SWmGKcD8Q5L8kxSPS7'
3131
3232 let o = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ'
3333
3434 let p = base58'EtVkT6ed8GtbUiVVEqdmEqsp2J4qbb3rre2HFgxeVYdg'
3535
3636 let q = base58'Czn4yoAuUZCVCLJDRfskn8URfkwpknwBTZDbs1wFrY7h'
3737
3838 let r = Address(base58'3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp')
3939
4040 let s = Address(base58'3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ')
4141
4242 let t = Address(base58'3PFhcMmEZoQTQ6ohA844c7C9M8ZJ18P8dDj')
4343
4444 let u = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
4545
4646 let v = base58'6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g'
4747
4848 let w = base58'DUk2YTxhRoAqMJLus4G2b3fR8hMHVh6eiyFx5r29VR6t'
4949
5050 let x = [u, v, w]
5151
5252 let y = getBooleanValue(this, c)
5353
5454 let z = getStringValue(this, d)
5555
5656 let A = getStringValue(this, e)
5757
5858 let B = if ((z == "WAVES"))
5959 then unit
6060 else fromBase58String(z)
6161
6262 let C = if ((A == "WAVES"))
6363 then unit
6464 else fromBase58String(A)
6565
6666 let D = {
6767 let E = B
6868 if ($isInstanceOf(E, "ByteVector"))
6969 then {
7070 let F = E
7171 value(assetInfo(F)).name
7272 }
7373 else if ($isInstanceOf(E, "Unit"))
7474 then {
7575 let G = E
7676 "WAVES"
7777 }
7878 else throw("Match error")
7979 }
8080
8181 let H = {
8282 let E = C
8383 if ($isInstanceOf(E, "ByteVector"))
8484 then {
8585 let F = E
8686 value(assetInfo(F)).name
8787 }
8888 else if ($isInstanceOf(E, "Unit"))
8989 then {
9090 let G = E
9191 "WAVES"
9292 }
9393 else throw("Match error")
9494 }
9595
9696 let I = getIntegerValue(this, f)
9797
9898 let J = getIntegerValue(this, g)
9999
100100 let K = fromBase58String(getStringValue(this, h))
101101
102102 let L = getIntegerValue(this, i)
103103
104104 let M = 3000
105105
106106 let N = 1200
107107
108108 let O = 1000000
109109
110110 let P = 1000
111111
112112 let Q = 100000000
113113
114114 let R = 1000
115115
116116 let S = 8
117117
118118 func T (U) = {
119119 let E = U
120120 if ($isInstanceOf(E, "ByteVector"))
121121 then {
122122 let F = E
123123 assetBalance(this, F)
124124 }
125125 else if ($isInstanceOf(E, "Unit"))
126126 then {
127127 let G = E
128128 wavesBalance(this).available
129129 }
130130 else throw("Match error")
131131 }
132132
133133
134134 func V (U) = {
135135 let E = U
136136 if ($isInstanceOf(E, "ByteVector"))
137137 then {
138138 let F = E
139139 let W = if (containsElement([u, v], F))
140140 then getInteger(s, ((("rpd_balance_" + toBase58String(F)) + "_") + toString(this)))
141141 else getInteger(t, ((("%s%s%s__stakingBalance__" + toBase58String(F)) + "__") + toString(this)))
142142 let X = W
143143 if ($isInstanceOf(X, "Int"))
144144 then {
145145 let Y = X
146146 Y
147147 }
148148 else if ($isInstanceOf(X, "Unit"))
149149 then {
150150 let Z = X
151151 0
152152 }
153153 else throw("Match error")
154154 }
155155 else {
156156 let G = E
157157 let aa = wavesBalance(this)
158158 (aa.regular - aa.available)
159159 }
160160 }
161161
162162
163163 let ab = V(B)
164164
165165 let ac = V(C)
166166
167167 let ad = (I - ab)
168168
169169 let ae = (J - ac)
170170
171171 let af = (T(B) + ab)
172172
173173 let ag = (T(C) + ac)
174174
175175 let ah = if ((af >= I))
176176 then (ag >= J)
177177 else false
178178
179179 func ai (U) = {
180180 let E = U
181181 if ($isInstanceOf(E, "ByteVector"))
182182 then {
183183 let F = E
184184 let aj = toBase58String(F)
185185 let ak = valueOrErrorMessage(assetInfo(F), (("Asset " + aj) + " doesn't exist"))
186186 $Tuple3(aj, ak.name, ak.decimals)
187187 }
188188 else if ($isInstanceOf(E, "Unit"))
189189 then {
190190 let G = E
191191 $Tuple3("WAVES", "WAVES", 8)
192192 }
193193 else throw("Match error")
194194 }
195195
196196
197197 func al (am) = [BooleanEntry(c, false), StringEntry(l, am)]
198198
199199
200200 func an (U) = (9 * value(value(assetInfo(U)).minSponsoredFee))
201201
202202
203203 func ao (ap,aq) = if (containsElement(x, C))
204204 then {
205205 let ar = an(value(C))
206206 let as = (aq - ar)
207207 if ((0 >= as))
208208 then throw(((((("Insufficient amount " + toString(aq)) + " ") + H) + " to deduct staking fee ") + toString(ar)))
209209 else $Tuple2(ap, as)
210210 }
211211 else if (containsElement(x, B))
212212 then {
213213 let ar = an(value(B))
214214 let at = (ap - ar)
215215 if ((0 >= at))
216216 then throw(((((("Insufficient amount " + toString(ap)) + " ") + D) + " to deduct staking fee ") + toString(ar)))
217217 else $Tuple2(at, aq)
218218 }
219219 else $Tuple2(ap, aq)
220220
221221
222222 func au (av,aw,ax) = throw((((((((("Insufficient DApp balance to pay " + toString(av)) + " ") + ax) + " due to staking. Available: ") + toString(aw)) + " ") + ax) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
223223
224224
225225 func ay (az,aA) = throw((((((((((((((((("Insufficient DApp balance to pay " + toString(az)) + " ") + D) + " and ") + toString(aA)) + " ") + H) + " due to staking. Available: ") + toString(ad)) + " ") + D) + " and ") + toString(ae)) + " ") + H) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
226226
227227
228228 @Callable(aB)
229-func init (aC) = {
230- let aD = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
231- let aE = aD._1
232- let aF = aD._2
233- let aG = $Tuple2(aB.payments[1].amount, aB.payments[1].assetId)
234- let aH = aG._1
235- let aI = aG._2
236- let aJ = ai(aF)
237- let aK = aJ._1
238- let aL = aJ._2
239- let aM = aJ._3
240- let aN = ai(aI)
241- let aO = aN._1
242- let aP = aN._2
243- let aQ = aN._3
229+func init () = {
230+ let aC = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
231+ let aD = aC._1
232+ let aE = aC._2
233+ let aF = $Tuple2(aB.payments[1].amount, aB.payments[1].assetId)
234+ let aG = aF._1
235+ let aH = aF._2
236+ let aI = ai(aE)
237+ let aJ = aI._1
238+ let aK = aI._2
239+ let aL = aI._3
240+ let aM = ai(aH)
241+ let aN = aM._1
242+ let aO = aM._2
243+ let aP = aM._3
244244 if (isDefined(getBoolean(this, c)))
245245 then throw("DApp is already active")
246- else if ((aF == aI))
246+ else if ((aE == aH))
247247 then throw("Assets must be different")
248248 else {
249- let aR = ((((("ShareToken of SwopFi protocol for " + aL) + " and ") + aP) + " at address ") + toString(this))
250- let aS = ((aM + aQ) / 2)
251- let aT = fraction(pow(aE, aM, 5, 1, aM, HALFDOWN), pow(aH, aQ, 5, 1, aQ, HALFDOWN), pow(10, 0, aS, 0, 0, HALFDOWN))
252- let aU = Issue(aC, aR, aT, aS, true)
249+ let aQ = ((("s" + take(aK, 7)) + "_") + take(aO, 7))
250+ let aR = ((((("ShareToken of SwopFi protocol for " + aK) + " and ") + aO) + " at address ") + toString(this))
251+ let aS = ((aL + aP) / 2)
252+ let aT = fraction(pow(aD, aL, 5, 1, aL, HALFDOWN), pow(aG, aP, 5, 1, aP, HALFDOWN), pow(10, 0, aS, 0, 0, HALFDOWN))
253+ let aU = Issue(aQ, aR, aT, aS, true)
253254 let aV = calculateAssetId(aU)
254-[StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, aK), StringEntry(e, aO), IntegerEntry(f, aE), IntegerEntry(g, aH), IntegerEntry(j, M), IntegerEntry(k, O), aU, StringEntry(h, toBase58String(aV)), IntegerEntry(i, aT), ScriptTransfer(aB.caller, aT, aV)]
255+[StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, aJ), StringEntry(e, aN), IntegerEntry(f, aD), IntegerEntry(g, aG), IntegerEntry(j, M), IntegerEntry(k, O), aU, StringEntry(h, toBase58String(aV)), IntegerEntry(i, aT), ScriptTransfer(aB.caller, aT, aV)]
255256 }
256257 }
257258
258259
259260
260261 @Callable(aB)
261262 func replenishWithTwoTokens (aW) = {
262- let aF = aB.payments[0].assetId
263- let aI = aB.payments[1].assetId
263+ let aE = aB.payments[0].assetId
264+ let aH = aB.payments[1].assetId
264265 let aX = ao(aB.payments[0].amount, aB.payments[1].amount)
265- let aE = aX._1
266- let aH = aX._2
267- let aY = fraction(fraction(I, Q, aE), P, fraction(J, Q, aH))
268- let aZ = fraction(aE, Q, I)
269- let ba = fraction(aH, Q, J)
266+ let aD = aX._1
267+ let aG = aX._2
268+ let aY = fraction(fraction(I, Q, aD), P, fraction(J, Q, aG))
269+ let aZ = fraction(aD, Q, I)
270+ let ba = fraction(aG, Q, J)
270271 let bb = fraction(min([aZ, ba]), L, Q)
271272 if (!(y))
272273 then throw("DApp is inactive at this moment")
273274 else if (if ((0 > aW))
274275 then true
275276 else (aW > R))
276277 then throw(((("Slippage tolerance must be between 0 and " + toString(R)) + " inclusively. Actual: ") + toString(aW)))
277278 else if ((size(aB.payments) != 2))
278279 then throw("Two attached assets expected")
279- else if (if ((aF != B))
280+ else if (if ((aE != B))
280281 then true
281- else (aI != C))
282+ else (aH != C))
282283 then throw(((("Incorrect assets attached. Expected: " + z) + " and ") + A))
283284 else if (if ((((P * (R - aW)) / R) > aY))
284285 then true
285286 else (aY > ((P * (R + aW)) / R)))
286287 then throw("Incorrect assets amount: amounts must have the contract ratio")
287288 else if ((bb == 0))
288289 then throw("Too small amount to replenish")
289290 else if (!(ah))
290- then ([ScriptTransfer(aB.caller, aE, aF), ScriptTransfer(aB.caller, aH, aI)] ++ al(((((((((((((((("Suspicious state. Actual balances: " + toString(I)) + " ") + D) + ", ") + toString(J)) + " ") + H) + ". State: ") + toString(T(B))) + " ") + D) + ", ") + toString(T(C))) + " ") + H)))
291- else [IntegerEntry(f, (I + aE)), IntegerEntry(g, (J + aH)), IntegerEntry(i, (L + bb)), Reissue(K, bb, true), ScriptTransfer(aB.caller, bb, K)]
291+ then ([ScriptTransfer(aB.caller, aD, aE), ScriptTransfer(aB.caller, aG, aH)] ++ al(((((((((((((((("Suspicious state. Actual balances: " + toString(I)) + " ") + D) + ", ") + toString(J)) + " ") + H) + ". State: ") + toString(T(B))) + " ") + D) + ", ") + toString(T(C))) + " ") + H)))
292+ else [IntegerEntry(f, (I + aD)), IntegerEntry(g, (J + aG)), IntegerEntry(i, (L + bb)), Reissue(K, bb, true), ScriptTransfer(aB.caller, bb, K)]
292293 }
293294
294295
295296
296297 @Callable(aB)
297298 func withdraw () = {
298299 let bc = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
299300 let bd = bc._1
300301 let be = bc._2
301302 let bf = ao(fraction(bd, I, L), fraction(bd, J, L))
302303 let bg = bf._1
303304 let bh = bf._2
304305 if (!(y))
305306 then throw("DApp is inactive at this moment")
306307 else if ((size(aB.payments) != 1))
307308 then throw("One attached payment expected")
308309 else if ((be != K))
309310 then throw(("Incorrect asset attached. Expected: " + toBase58String(K)))
310311 else if (!(ah))
311312 then ([ScriptTransfer(aB.caller, bd, be)] ++ al(((((((((((((((("Suspicious state. Actual balances: " + toString(I)) + " ") + D) + ", ") + toString(J)) + " ") + H) + ". State: ") + toString(T(B))) + " ") + D) + ", ") + toString(T(C))) + " ") + H)))
312313 else if (if ((bg > ad))
313314 then true
314315 else (bh > ae))
315316 then ay(bg, bh)
316317 else [IntegerEntry(f, (I - bg)), IntegerEntry(g, (J - bh)), IntegerEntry(i, (L - bd)), Burn(K, bd), ScriptTransfer(aB.caller, bg, B), ScriptTransfer(aB.caller, bh, C)]
317318 }
318319
319320
320321
321322 @Callable(aB)
322323 func exchange (bi) = {
323324 let bj = $Tuple2(aB.payments[0].amount, aB.payments[0].assetId)
324325 let bd = bj._1
325326 let be = bj._2
326327 func bk (bl,bm) = {
327328 let bn = fraction(bm, bd, (bd + bl))
328329 let bo = fraction(bn, (O - M), O)
329330 let bp = fraction(bn, N, O)
330331 if ((bi > bo))
331332 then throw(((("Calculated amount to receive " + toString(bo)) + " is less than specified minimum ") + toString(bi)))
332333 else $Tuple3(bn, bo, bp)
333334 }
334335
335336 if (!(y))
336337 then throw("DApp is inactive at this moment")
337338 else if ((0 >= bi))
338339 then throw(("Minimal amount to receive must be positive. Actual: " + toString(bi)))
339340 else if ((size(aB.payments) != 1))
340341 then throw("One attached payment expected")
341342 else if (!(ah))
342343 then ([ScriptTransfer(aB.caller, bd, be)] ++ al(((((((((((((((("Suspicious state. Actual balances: " + toString(I)) + " ") + D) + ", ") + toString(J)) + " ") + H) + ". State: ") + toString(T(B))) + " ") + D) + ", ") + toString(T(C))) + " ") + H)))
343344 else if ((be == B))
344345 then {
345346 let bq = C
346347 let br = bk(I, J)
347348 let bn = br._1
348349 let bo = br._2
349350 let bp = br._3
350351 let bs = (I + bd)
351352 let bt = ((J - bo) - bp)
352353 if (if ((ab >= bs))
353354 then true
354355 else (ac >= bt))
355356 then au(bo, ae, H)
356357 else [IntegerEntry(f, bs), IntegerEntry(g, bt), ScriptTransfer(aB.caller, bo, bq), ScriptTransfer(r, bp, bq)]
357358 }
358359 else if ((be == C))
359360 then {
360361 let bq = B
361362 let bu = bk(J, I)
362363 let bn = bu._1
363364 let bo = bu._2
364365 let bp = bu._3
365366 let bs = ((I - bo) - bp)
366367 let bt = (J + bd)
367368 if (if ((ab >= bs))
368369 then true
369370 else (ac >= bt))
370371 then au(bo, ad, D)
371372 else [IntegerEntry(f, bs), IntegerEntry(g, bt), ScriptTransfer(aB.caller, bo, bq), ScriptTransfer(r, bp, bq)]
372373 }
373374 else throw(((("Incorrect asset attached. Expected: " + z) + " or ") + A))
374375 }
375376
376377
377378
378379 @Callable(aB)
379380 func shutdown () = if (!(y))
380381 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, l), "the cause wasn't specified")))
381382 else if (!(containsElement([m, n, o, p], aB.callerPublicKey)))
382383 then throw("Only admin can call this function")
383384 else al("Paused by admin")
384385
385386
386387
387388 @Callable(aB)
388389 func activate () = if (y)
389390 then throw("DApp is already active")
390391 else if (!(containsElement([m, n, o, p], aB.callerPublicKey)))
391392 then throw("Only admin can call this function")
392393 else [BooleanEntry(c, true), DeleteEntry(l)]
393394
394395
395396
396397 @Callable(aB)
397398 func takeIntoAccountExtraFunds (bv) = {
398399 let bw = (af - I)
399400 let bx = (ag - J)
400- let by = (bw - (if ((B == w))
401+ let by = (bw - (if ((B == u))
401402 then bv
402403 else 0))
403- let bz = (bx - (if ((C == w))
404+ let bz = (bx - (if ((C == u))
404405 then bv
405406 else 0))
406407 if (!(y))
407408 then throw("DApp is inactive at this moment")
408409 else if ((aB.caller != this))
409410 then throw("Only the DApp itself can call this function")
410411 else if ((0 > bv))
411412 then throw(("Argument 'amountLeave' cannot be negative. Actual: " + toString(bv)))
412413 else if (if ((0 > bw))
413414 then true
414415 else (0 > bx))
415416 then al("Enroll amount negative")
416417 else if (if ((0 > by))
417418 then true
418419 else (0 > bz))
419420 then throw("Too large amountLeave")
420- else [IntegerEntry(f, (I + by)), IntegerEntry(g, (J + bz))]
421+ else [IntegerEntry(f, (I + by)), IntegerEntry(g, (J + bz)), IntegerEntry(("last_income_" + z), by), IntegerEntry(("last_income_" + A), bz)]
421422 }
422423
423424
424425 @Verifier(bA)
425426 func bB () = {
426427 let E = bA
427428 if ($isInstanceOf(E, "InvokeScriptTransaction"))
428429 then {
429430 let bC = E
430431 let bD = if ((bC.dApp == this))
431432 then (bC.function == "takeIntoAccountExtraFunds")
432433 else false
433434 let bE = if ((bC.dApp == s))
434435 then if (if (containsElement(["lockNeutrino", "lockNsbt"], bC.function))
435436 then (size(bC.payments) == 1)
436437 else false)
437438 then true
438439 else if (containsElement(["unlockNeutrino", "unlockNsbt"], bC.function))
439440 then (size(bC.payments) == 0)
440441 else false
441442 else false
442443 let bF = if ((bC.dApp == t))
443444 then if (if ((bC.function == "startStaking"))
444445 then (size(bC.payments) == 1)
445446 else false)
446447 then true
447448 else if ((bC.function == "stopStaking"))
448449 then (size(bC.payments) == 0)
449450 else false
450451 else false
451452 let bG = if (if (if (sigVerify(bA.bodyBytes, bA.proofs[0], m))
452453 then true
453454 else sigVerify(bA.bodyBytes, bA.proofs[0], n))
454455 then true
455456 else sigVerify(bA.bodyBytes, bA.proofs[0], o))
456457 then true
457458 else sigVerify(bA.bodyBytes, bA.proofs[0], q)
458459 if (if (if (bD)
459460 then true
460461 else bE)
461462 then true
462463 else bF)
463464 then bG
464465 else false
465466 }
466467 else {
467468 let bH = if (sigVerify(bA.bodyBytes, bA.proofs[0], m))
468469 then 1
469470 else 0
470471 let bI = if (sigVerify(bA.bodyBytes, bA.proofs[1], n))
471472 then 1
472473 else 0
473474 let bJ = if (sigVerify(bA.bodyBytes, bA.proofs[2], o))
474475 then 1
475476 else 0
476477 (((bH + bI) + bJ) >= 2)
477478 }
478479 }
479480

github/deemru/w8io/6500d08 
95.92 ms