tx · 7WEFUJug9eGL7X9P5obhaTq9Kfc8UPSzTG8A9DiUJZDN

3Mtzn1SRUhygEXMVpHNMckc8HKCWjq2fTiG:  -0.01000000 Waves

2020.07.28 14:38 [1107382] smart account 3Mtzn1SRUhygEXMVpHNMckc8HKCWjq2fTiG > SELF 0.00000000 Waves

{ "type": 13, "id": "7WEFUJug9eGL7X9P5obhaTq9Kfc8UPSzTG8A9DiUJZDN", "fee": 1000000, "feeAssetId": null, "timestamp": 1595936351189, "version": 1, "sender": "3Mtzn1SRUhygEXMVpHNMckc8HKCWjq2fTiG", "senderPublicKey": "2WHjsmTCwLeerJuc5YMaJNou8UGSHuy4TE3F6DneRaJt", "proofs": [ "4QNC3gRzfCrZ8UMRXGRF6uptSnHYbhi9cYDMseMgjLrLnEy16ojdy8v2ueRNEz37YX9bYR4F5bCY6qd2HMLJgFVp" ], "script": "base64:AAIDAAAAAAAAACIIARIHCgUICAgICBIHCgUBAQEBBBIDCgEIEgASAwoBCBIAAAAALwAAAAAHQlVMTEtleQIAAAAGQlVMTElkAAAAAAdCRUFSS2V5AgAAAAZCRUFSSWQAAAAADG1haW5Ub2tlbktleQIAAAALbWFpblRva2VuSWQAAAAAEmlzc3VlUGVyY2VudGlsZUtleQIAAAAPaXNzdWVQZXJjZW50aWxlAAAAABNyZWRlZW1QZXJjZW50aWxlS2V5AgAAABByZWRlZW1QZXJjZW50aWxlAAAAAAttaW5Jc3N1ZUtleQIAAAAIbWluSXNzdWUAAAAADG1pblJlZGVlbUtleQIAAAAJbWluUmVkZWVtAAAAABB3aGl0ZWxpc3RPbmx5S2V5AgAAAA13aGl0ZWxpc3RPbmx5AAAAAAtvcmFjbGVQS0tleQIAAAAGb3JhY2xlAAAAABdvcmFjbGVDdXJyZW50UHJpY2VJZEtleQIAAAALbGFzdFByaWNlSWQAAAAAF2xhc3RSZWJhbGFuY2VQcmljZUlkS2V5AgAAABVsYXN0U2V0dGxlbWVudFByaWNlSWQAAAAAEWJ1bGxDb2xsYXRlcmFsS2V5AgAAAA5idWxsQ29sbGF0ZXJhbAAAAAARYmVhckNvbGxhdGVyYWxLZXkCAAAADmJlYXJDb2xsYXRlcmFsAAAAABJidWxsQ2lyY3VsYXRpb25LZXkCAAAAD2J1bGxDaXJjdWxhdGlvbgAAAAASYmVhckNpcmN1bGF0aW9uS2V5AgAAAA9iZWFyQ2lyY3VsYXRpb24AAAAADHdoaXRlbGlzdEtleQIAAAAOaXNzdWVXaGl0ZUxpc3QAAAAACXdoaXRlbGlzdAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAADHdoaXRlbGlzdEtleQIAAAAUbm8gYnVsbENvbGxhdGVyYWxLZXkAAAAAB2J1bGxDb2wJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAABFidWxsQ29sbGF0ZXJhbEtleQIAAAAUbm8gYnVsbENvbGxhdGVyYWxLZXkAAAAAB2JlYXJDb2wJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAABFiZWFyQ29sbGF0ZXJhbEtleQIAAAAUbm8gYmVhckNvbGxhdGVyYWxLZXkAAAAACGJ1bGxDaXJjCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAASYnVsbENpcmN1bGF0aW9uS2V5AgAAABVubyBidWxsQ2lyY3VsYXRpb25LZXkAAAAACGJlYXJDaXJjCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAASYmVhckNpcmN1bGF0aW9uS2V5AgAAABVubyBiZWFyQ2lyY3VsYXRpb25LZXkAAAAABEJVTEwJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAAdCVUxMS2V5AgAAAApubyBCVUxMS2V5AAAAAARCRUFSCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAHQkVBUktleQIAAAAKbm8gQkVBUktleQAAAAAJbWFpblRva2VuCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAMbWFpblRva2VuS2V5AgAAAA9ubyBtYWluVG9rZW5LZXkAAAAAD2lzc3VlUGVyY2VudGlsZQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEmlzc3VlUGVyY2VudGlsZUtleQIAAAAVbm8gaXNzdWVQZXJjZW50aWxlS2V5AAAAABByZWRlZW1QZXJjZW50aWxlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAATcmVkZWVtUGVyY2VudGlsZUtleQIAAAAWbm8gcmVkZWVtUGVyY2VudGlsZUtleQAAAAAIbWluSXNzdWUJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAAttaW5Jc3N1ZUtleQIAAAAObm8gbWluSXNzdWVLZXkAAAAACW1pblJlZGVlbQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAADG1pblJlZGVlbUtleQIAAAAPbm8gbWluUmVkZWVtS2V5AAAAAA13aGl0ZWxpc3RPbmx5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwUAAAAQd2hpdGVsaXN0T25seUtleQIAAAATbm8gd2hpdGVsaXN0T25seUtleQAAAAAGb3JhY2xlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAC29yYWNsZVBLS2V5AgAAAA5ubyBvcmFjbGVQS0tleQIAAAASYmFkIG9yYWNsZSBhZGRyZXNzAAAAABFyZWJhbGFuY2VkUHJpY2VJZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAF2xhc3RSZWJhbGFuY2VQcmljZUlkS2V5AgAAABdubyBsYXN0IHJlYmFsYW5jZSBwcmljZQAAAAANb3JhY2xlUHJpY2VJZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABm9yYWNsZQUAAAAXb3JhY2xlQ3VycmVudFByaWNlSWRLZXkCAAAAD2JhZCBvcmFjbGUgZGF0YQAAAAAOaGVhZFBvaW50ZXJLZXkCAAAAC2hlYWRQb2ludGVyAAAAAA50YWlsUG9pbnRlcktleQIAAAALdGFpbFBvaW50ZXIAAAAADHF1ZXVlU2l6ZUtleQIAAAAJcXVldWVTaXplAAAAAAlxdWV1ZVNpemUEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAAMcXVldWVTaXplS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWkFAAAAByRtYXRjaDAFAAAAAWkAAAAAAAAAAAAAAAAAC2hlYWRQb2ludGVyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAADmhlYWRQb2ludGVyS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMCAAAAAAAAAAALdGFpbFBvaW50ZXIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAAOdGFpbFBvaW50ZXJLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwIAAAAAAAAAABJmZWVzQWNjdW11bGF0ZWRLZXkCAAAAD2ZlZXNBY2N1bXVsYXRlZAAAAAAPZmVlc0FjY3VtdWxhdGVkBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAEmZlZXNBY2N1bXVsYXRlZEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFpBQAAAAckbWF0Y2gwBQAAAAFpAAAAAAAAAAAAAAAAAAVJU1NVRQIAAAAFSVNTVUUAAAAABlJFREVFTQIAAAAGUkVERUVNAQAAAAxidWlsZE5ld0l0ZW0AAAAFAAAABmFjdGlvbgAAAANhbXQAAAAFdG9rZW4AAAAHcHJpY2VJZAAAAAdpbnZva2VyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZhY3Rpb24CAAAAAXwJAAGkAAAAAQUAAAADYW10AgAAAAF8BQAAAAV0b2tlbgIAAAABfAkAAaQAAAABBQAAAAdwcmljZUlkAgAAAAF8BQAAAAdpbnZva2VyAgAAAAF8AQAAAA92YWxpZGF0ZUVucXVldWUAAAABAAAAA2ludgMJAAAAAAAAAggFAAAAA2ludgAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAIY2FuJ3QgZG8KAQAAAAxlcnJvck1lc3NhZ2UAAAABAAAAA2dvdAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAKb25seSBCVUxMKAUAAAAEQlVMTAIAAAAKKSBvciBCRUFSKAUAAAAEQkVBUgIAAAAhKSB0b2tlbnMgYXJlIGFjY2VwdGVkLCByZWNlaXZlZDogBQAAAANnb3QDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADaW52AAAAB3BheW1lbnQJAQAAAAxlcnJvck1lc3NhZ2UAAAABAgAAABNubyBhdHRhY2hlZCBwYXltZW50BAAAAAdhc3NldElkCQACWAAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAggJAQAAAAV2YWx1ZQAAAAEIBQAAAANpbnYAAAAHcGF5bWVudAAAAAdhc3NldElkAgAAABt3YXZlcyBhcmUgbm90IGFjY2VwdGVkIGhlcmUDAwkBAAAAAiE9AAAAAgUAAAAHYXNzZXRJZAUAAAAEQkVBUgkBAAAAAiE9AAAAAgUAAAAHYXNzZXRJZAUAAAAEQlVMTAcJAQAAAAxlcnJvck1lc3NhZ2UAAAABBQAAAAdhc3NldElkBAAAAANjb2wDCQAAAAAAAAIFAAAAB2Fzc2V0SWQFAAAABEJFQVIFAAAAB2JlYXJDb2wFAAAAB2J1bGxDb2wEAAAABGNpcmMDCQAAAAAAAAIFAAAAB2Fzc2V0SWQFAAAABEJFQVIFAAAACGJlYXJDaXJjBQAAAAhiZWFyQ2lyYwQAAAAJZXN0aW1hdGVkCQAAawAAAAMFAAAAA2NvbAgJAQAAAAV2YWx1ZQAAAAEIBQAAAANpbnYAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAABGNpcmMDCQAAZgAAAAIFAAAACW1pblJlZGVlbQUAAAAJZXN0aW1hdGVkCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAADFBdHRhY2hlZCBwYXltZW50IHRvbyBzbWFsbC4gTWluIHJlZGVlbSBhbW91bnQgaXMgCQABpAAAAAEJAABpAAAAAgUAAAAJbWluUmVkZWVtAAAAAAAAD0JAAgAAAAUgVVNETgUAAAAEdW5pdAEAAAAHZW5xdWV1ZQAAAAYAAAACaWQAAAAGYWN0aW9uAAAAA2FtdAAAAAV0b2tlbgAAAAdwcmljZUlkAAAAB2ludm9rZXIEAAAAEWluY3JlYXNlUXVldWVTaXplCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAMcXVldWVTaXplS2V5CQAAZAAAAAIFAAAACXF1ZXVlU2l6ZQAAAAAAAAAAAQQAAAADaXRtCQEAAAAMYnVpbGROZXdJdGVtAAAABQUAAAAGYWN0aW9uBQAAAANhbXQFAAAABXRva2VuBQAAAAdwcmljZUlkBQAAAAdpbnZva2VyAwkAAAAAAAACBQAAAAlxdWV1ZVNpemUAAAAAAAAAAAAJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADmhlYWRQb2ludGVyS2V5BQAAAAJpZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAOdGFpbFBvaW50ZXJLZXkFAAAAAmlkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAJpZAUAAAADaXRtCQAETAAAAAIFAAAAEWluY3JlYXNlUXVldWVTaXplBQAAAANuaWwEAAAABnByZXZJZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAADnRhaWxQb2ludGVyS2V5AgAAABZjYW4ndCBnZXQgdGFpbCBwb2ludGVyBAAAAAdwcmV2SXRtCQAEtQAAAAIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAAZwcmV2SWQCAAAAFWNhbid0IHJlc29sdmUgcG9pbnRlcgIAAAABfAQAAAAOdXBkYXRlZFByZXZJdG0JAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAAdwcmV2SXRtAAAAAAAAAAAAAgAAAAF8CQABkQAAAAIFAAAAB3ByZXZJdG0AAAAAAAAAAAECAAAAAXwJAAGRAAAAAgUAAAAHcHJldkl0bQAAAAAAAAAAAgIAAAABfAkAAZEAAAACBQAAAAdwcmV2SXRtAAAAAAAAAAADAgAAAAF8CQABkQAAAAIFAAAAB3ByZXZJdG0AAAAAAAAAAAQCAAAAAXwFAAAAAmlkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAZwcmV2SWQFAAAADnVwZGF0ZWRQcmV2SXRtCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAJpZAUAAAADaXRtCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA50YWlsUG9pbnRlcktleQUAAAACaWQJAARMAAAAAgUAAAARaW5jcmVhc2VRdWV1ZVNpemUFAAAAA25pbAEAAAAHZGVxdWV1ZQAAAAADCQAAAAAAAAIFAAAACXF1ZXVlU2l6ZQAAAAAAAAAAAAkAAAIAAAABAgAAABFub3RoaW5nIHRvIHNldHRsZQoBAAAACmNvbGxlY3RGZWUAAAABAAAABGZlZXMJAQAAAAlEYXRhRW50cnkAAAACBQAAABJmZWVzQWNjdW11bGF0ZWRLZXkJAABkAAAAAgUAAAAPZmVlc0FjY3VtdWxhdGVkBQAAAARmZWVzBAAAABFkZWNyZWFzZVF1ZXVlU2l6ZQkBAAAACURhdGFFbnRyeQAAAAIFAAAADHF1ZXVlU2l6ZUtleQkAAGUAAAACBQAAAAlxdWV1ZVNpemUAAAAAAAAAAAEEAAAADWlzTGFzdEVsZW1lbnQJAAAAAAAAAgUAAAALaGVhZFBvaW50ZXIFAAAAC3RhaWxQb2ludGVyBAAAAA1vdmVyd3JpdGVUYWlsCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAOdGFpbFBvaW50ZXJLZXkCAAAAAAQAAAAEZGF0YQkABLUAAAACCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAALaGVhZFBvaW50ZXICAAAAEGJhZCBoZWFkIHBvaW50ZXICAAAAAXwEAAAABmFjdGlvbgkAAZEAAAACBQAAAARkYXRhAAAAAAAAAAAABAAAAANhbXQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAARkYXRhAAAAAAAAAAABBAAAAAV0b2tlbgkAAZEAAAACBQAAAARkYXRhAAAAAAAAAAACBAAAAAdwcmljZUlkCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAEZGF0YQAAAAAAAAAAAwQAAAAHaW52b2tlcgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAABGRhdGEAAAAAAAAAAAQEAAAABG5leHQJAAGRAAAAAgUAAAAEZGF0YQAAAAAAAAAABQMJAABmAAAAAgUAAAARcmViYWxhbmNlZFByaWNlSWQFAAAAB3ByaWNlSWQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAhY29ycnVwdCBzdGF0ZSwgcmViYWxhbmNlZFByaWNlSWQ9CQABpAAAAAEFAAAAEXJlYmFsYW5jZWRQcmljZUlkAgAAABMsIHJlcXVlc3QgcHJpY2UgaWQ9CQABpAAAAAEFAAAAB3ByaWNlSWQDCQAAZgAAAAIFAAAAB3ByaWNlSWQFAAAAEXJlYmFsYW5jZWRQcmljZUlkCQAAAgAAAAECAAAAKWNhbid0IGRlcXVldWUsIHRvbyBlYXJseSwgcmViYWxhbmNlIGZpcnN0AwkAAAAAAAACBQAAAAZhY3Rpb24FAAAABUlTU1VFBAAAAAdmZWVTaXplCQAAawAAAAMFAAAAA2FtdAUAAAAPaXNzdWVQZXJjZW50aWxlAAAAAAAAACcQBAAAAA9hZGRlZENvbGxhdGVyYWwJAABlAAAAAgUAAAADYW10BQAAAAdmZWVTaXplAwkAAAAAAAACBQAAAAV0b2tlbgUAAAAEQlVMTAQAAAASYWRkZWRUb0NpcmN1bGF0aW9uCQAAawAAAAMFAAAACGJ1bGxDaXJjBQAAAA9hZGRlZENvbGxhdGVyYWwFAAAAB2J1bGxDb2wEAAAABWl0ZW1zCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFidWxsQ29sbGF0ZXJhbEtleQkAAGQAAAACBQAAAAdidWxsQ29sBQAAAA9hZGRlZENvbGxhdGVyYWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEmJ1bGxDaXJjdWxhdGlvbktleQkAAGQAAAACBQAAAAhidWxsQ2lyYwUAAAASYWRkZWRUb0NpcmN1bGF0aW9uCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA5oZWFkUG9pbnRlcktleQUAAAAEbmV4dAkABEwAAAACCQEAAAAKY29sbGVjdEZlZQAAAAEFAAAAB2ZlZVNpemUJAARMAAAAAgUAAAARZGVjcmVhc2VRdWV1ZVNpemUFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEDBQAAAA1pc0xhc3RFbGVtZW50CQAETAAAAAIFAAAADW92ZXJ3cml0ZVRhaWwFAAAABWl0ZW1zBQAAAAVpdGVtcwkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAdpbnZva2VyBQAAABJhZGRlZFRvQ2lyY3VsYXRpb24JAAJZAAAAAQUAAAAEQlVMTAUAAAADbmlsAwkAAAAAAAACBQAAAAV0b2tlbgUAAAAEQkVBUgQAAAASYWRkZWRUb0NpcmN1bGF0aW9uCQAAawAAAAMFAAAACGJlYXJDaXJjBQAAAA9hZGRlZENvbGxhdGVyYWwFAAAAB2JlYXJDb2wEAAAABWl0ZW1zCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFiZWFyQ29sbGF0ZXJhbEtleQkAAGQAAAACBQAAAAdiZWFyQ29sBQAAAA9hZGRlZENvbGxhdGVyYWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEmJlYXJDaXJjdWxhdGlvbktleQkAAGQAAAACBQAAAAhiZWFyQ2lyYwUAAAASYWRkZWRUb0NpcmN1bGF0aW9uCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA5oZWFkUG9pbnRlcktleQUAAAAEbmV4dAkABEwAAAACCQEAAAAKY29sbGVjdEZlZQAAAAEFAAAAB2ZlZVNpemUJAARMAAAAAgUAAAARZGVjcmVhc2VRdWV1ZVNpemUFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEDBQAAAA1pc0xhc3RFbGVtZW50CQAETAAAAAIFAAAADW92ZXJ3cml0ZVRhaWwFAAAABWl0ZW1zBQAAAAVpdGVtcwkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAdpbnZva2VyBQAAABJhZGRlZFRvQ2lyY3VsYXRpb24JAAJZAAAAAQUAAAAEQkVBUgUAAAADbmlsCQAAAgAAAAECAAAADGJhZCB0b2tlbiBpZAMJAAAAAAAAAgUAAAAGYWN0aW9uBQAAAAZSRURFRU0EAAAADXJlbW92ZWRUb2tlbnMFAAAAA2FtdAMJAAAAAAAAAgUAAAAFdG9rZW4FAAAABEJVTEwEAAAAEXJlbW92ZWRDb2xsYXRlcmFsCQAAawAAAAMFAAAAB2J1bGxDb2wFAAAADXJlbW92ZWRUb2tlbnMFAAAACGJ1bGxDaXJjBAAAAAdmZWVTaXplCQAAawAAAAMFAAAAEXJlbW92ZWRDb2xsYXRlcmFsBQAAABByZWRlZW1QZXJjZW50aWxlAAAAAAAAACcQBAAAAAZwYXlvdXQDCQAAZgAAAAIFAAAAEXJlbW92ZWRDb2xsYXRlcmFsBQAAAAdmZWVTaXplCQAAZQAAAAIFAAAAEXJlbW92ZWRDb2xsYXRlcmFsBQAAAAdmZWVTaXplAAAAAAAAAAAABAAAAAVpdGVtcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAARYnVsbENvbGxhdGVyYWxLZXkJAABlAAAAAgUAAAAHYnVsbENvbAUAAAARcmVtb3ZlZENvbGxhdGVyYWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEmJ1bGxDaXJjdWxhdGlvbktleQkAAGUAAAACBQAAAAhidWxsQ2lyYwUAAAANcmVtb3ZlZFRva2VucwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAOaGVhZFBvaW50ZXJLZXkFAAAABG5leHQJAARMAAAAAgkBAAAACmNvbGxlY3RGZWUAAAABBQAAAAdmZWVTaXplCQAETAAAAAIFAAAAEWRlY3JlYXNlUXVldWVTaXplBQAAAANuaWwJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABAwUAAAANaXNMYXN0RWxlbWVudAkABEwAAAACBQAAAA1vdmVyd3JpdGVUYWlsBQAAAAVpdGVtcwUAAAAFaXRlbXMJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAHaW52b2tlcgUAAAAGcGF5b3V0CQACWQAAAAEFAAAACW1haW5Ub2tlbgUAAAADbmlsAwkAAAAAAAACBQAAAAV0b2tlbgUAAAAEQkVBUgQAAAARcmVtb3ZlZENvbGxhdGVyYWwJAABrAAAAAwUAAAAHYmVhckNvbAUAAAANcmVtb3ZlZFRva2VucwUAAAAIYmVhckNpcmMEAAAAB2ZlZVNpemUJAABrAAAA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AAAAAgUAAAARYnVsbENvbGxhdGVyYWxLZXkJAABkAAAAAgUAAAAHYnVsbENvbAUAAAAGcmVkaXN0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFiZWFyQ29sbGF0ZXJhbEtleQkAAGUAAAACBQAAAAdiZWFyQ29sBQAAAAZyZWRpc3QJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAF2xhc3RSZWJhbGFuY2VQcmljZUlkS2V5BQAAABB1bnNldHRsZWRQcmljZUlkBQAAAANuaWwDCQAAZgAAAAIFAAAADHNldHRsZWRQcmljZQUAAAAJbmV4dFByaWNlCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFidWxsQ29sbGF0ZXJhbEtleQkAAGUAAAACBQAAAAdidWxsQ29sBQAAAAZyZWRpc3QJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEWJlYXJDb2xsYXRlcmFsS2V5CQAAZAAAAAIFAAAAB2JlYXJDb2wFAAAABnJlZGlzdAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAXbGFzdFJlYmFsYW5jZVByaWNlSWRLZXkFAAAAEHVuc2V0dGxlZFByaWNlSWQFAAAAA25pbAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAXbGFzdFJlYmFsYW5jZVByaWNlSWRLZXkFAAAAEHVuc2V0dGxlZFByaWNlSWQFAAAAA25pbAAAAAYAAAADaW52AQAAAARpbml0AAAABQAAAAZidWxsSWQAAAAGYmVhcklkAAAAC21haW5Ub2tlbklkAAAACG9yYWNsZVBLAAAAC3doaXRlbGlzdGVkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwUAAAAHQlVMTEtleQkAAAIAAAABAgAAABNhbHJlYWR5IGluaXRpYWxpemVkAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA2ludgAAAAdwYXltZW50CQAAAgAAAAECAAAAGW5ldXRyaW5vIHBheW1lbnQgcmVxdWlyZWQDCQEAAAACIT0AAAACCQACWAAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAggJAQAAAAV2YWx1ZQAAAAEIBQAAAANpbnYAAAAHcGF5bWVudAAAAAdhc3NldElkAgAAABluZXV0cmlubyBwYXltZW50IHJlcXVpcmVkBQAAAAttYWluVG9rZW5JZAkAAAIAAAABAgAAABdwYXltZW50IG5vdCBpbiBuZXV0cmlubwQAAAATdG90YWxPd25lZE1haW5Ub2tlbggJAQAAAAV2YWx1ZQAAAAEIBQAAAANpbnYAAAAHcGF5bWVudAAAAAZhbW91bnQEAAAABWJ1bGxzCQAAaQAAAAIFAAAAE3RvdGFsT3duZWRNYWluVG9rZW4AAAAAAAAAAAIEAAAABWJlYXJzCQAAZQAAAAIFAAAAE3RvdGFsT3duZWRNYWluVG9rZW4FAAAABWJ1bGxzAwMJAAAAAAAAAgUAAAAFYmVhcnMAAAAAAAAAAAAGCQAAAAAAAAIFAAAABWJ1bGxzAAAAAAAAAAAACQAAAgAAAAECAAAAE2Nhbid0IGluaXQgYmFsYW5jZXMEAAAAFG9yYWNsZUN1cnJlbnRQcmljZUlkCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAACG9yYWNsZVBLAgAAABJiYWQgb3JhY2xlIGFkZHJlc3MFAAAAF29yYWNsZUN1cnJlbnRQcmljZUlkS2V5AgAAABpjYW4ndCBmaW5kIG9yYWNsZSBwcmljZSBpZAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAB0JVTExLZXkFAAAABmJ1bGxJZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAHQkVBUktleQUAAAAGYmVhcklkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAxtYWluVG9rZW5LZXkFAAAAC21haW5Ub2tlbklkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAtvcmFjbGVQS0tleQUAAAAIb3JhY2xl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", "chainId": 84, "height": 1107382, "spentComplexity": 0 } View: original | compacted Prev: none Next: 9tUhaUtJn6YF5TVg6bMYz6cEn1E4z8jNScYoDaaHYMTE Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "BULLId"
5+
6+let b = "BEARId"
7+
8+let c = "mainTokenId"
9+
10+let d = "issuePercentile"
11+
12+let e = "redeemPercentile"
13+
14+let f = "minIssue"
15+
16+let g = "minRedeem"
17+
18+let h = "whitelistOnly"
19+
20+let i = "oracle"
21+
22+let j = "lastPriceId"
23+
24+let k = "lastSettlementPriceId"
25+
26+let l = "bullCollateral"
27+
28+let m = "bearCollateral"
29+
30+let n = "bullCirculation"
31+
32+let o = "bearCirculation"
33+
34+let p = "issueWhiteList"
35+
36+let q = valueOrErrorMessage(getString(this, p), "no bullCollateralKey")
37+
38+let r = valueOrErrorMessage(getInteger(this, l), "no bullCollateralKey")
39+
40+let s = valueOrErrorMessage(getInteger(this, m), "no bearCollateralKey")
41+
42+let t = valueOrErrorMessage(getInteger(this, n), "no bullCirculationKey")
43+
44+let u = valueOrErrorMessage(getInteger(this, o), "no bearCirculationKey")
45+
46+let v = valueOrErrorMessage(getString(this, a), "no BULLKey")
47+
48+let w = valueOrErrorMessage(getString(this, b), "no BEARKey")
49+
50+let x = valueOrErrorMessage(getString(this, c), "no mainTokenKey")
51+
52+let y = valueOrErrorMessage(getInteger(this, d), "no issuePercentileKey")
53+
54+let z = valueOrErrorMessage(getInteger(this, e), "no redeemPercentileKey")
55+
56+let A = valueOrErrorMessage(getInteger(this, f), "no minIssueKey")
57+
58+let B = valueOrErrorMessage(getInteger(this, g), "no minRedeemKey")
59+
60+let C = valueOrErrorMessage(getBoolean(this, h), "no whitelistOnlyKey")
61+
62+let D = valueOrErrorMessage(addressFromPublicKey(fromBase58String(valueOrErrorMessage(getString(this, i), "no oraclePKKey"))), "bad oracle address")
63+
64+let E = valueOrErrorMessage(getInteger(this, k), "no last rebalance price")
65+
66+let F = valueOrErrorMessage(getInteger(D, j), "bad oracle data")
67+
68+let G = "headPointer"
69+
70+let H = "tailPointer"
71+
72+let I = "queueSize"
73+
74+let J = {
75+ let K = getInteger(this, I)
76+ if ($isInstanceOf(K, "Int"))
77+ then {
78+ let L = K
79+ L
80+ }
81+ else 0
82+ }
83+
84+let M = {
85+ let K = getString(this, G)
86+ if ($isInstanceOf(K, "String"))
87+ then {
88+ let N = K
89+ N
90+ }
91+ else ""
92+ }
93+
94+let O = {
95+ let K = getString(this, H)
96+ if ($isInstanceOf(K, "String"))
97+ then {
98+ let N = K
99+ N
100+ }
101+ else ""
102+ }
103+
104+let P = "feesAccumulated"
105+
106+let Q = {
107+ let K = getInteger(this, P)
108+ if ($isInstanceOf(K, "Int"))
109+ then {
110+ let L = K
111+ L
112+ }
113+ else 0
114+ }
115+
116+let R = "ISSUE"
117+
118+let S = "REDEEM"
119+
120+func T (U,V,W,X,Y) = (((((((((U + "|") + toString(V)) + "|") + W) + "|") + toString(X)) + "|") + Y) + "|")
121+
122+
123+func Z (aa) = if ((aa.caller == this))
124+ then throw("can't do")
125+ else {
126+ func ab (ac) = throw(((((("only BULL(" + v) + ") or BEAR(") + w) + ") tokens are accepted, received: ") + ac))
127+
128+ if (!(isDefined(aa.payment)))
129+ then ab("no attached payment")
130+ else {
131+ let ad = toBase58String(valueOrErrorMessage(value(aa.payment).assetId, "waves are not accepted here"))
132+ if (if ((ad != w))
133+ then (ad != v)
134+ else false)
135+ then ab(ad)
136+ else {
137+ let ae = if ((ad == w))
138+ then s
139+ else r
140+ let af = if ((ad == w))
141+ then u
142+ else u
143+ let ag = fraction(ae, value(aa.payment).amount, af)
144+ if ((B > ag))
145+ then throw((("Attached payment too small. Min redeem amount is " + toString((B / 1000000))) + " USDN"))
146+ else unit
147+ }
148+ }
149+ }
150+
151+
152+func ah (ai,U,V,W,X,Y) = {
153+ let aj = DataEntry(I, (J + 1))
154+ let ak = T(U, V, W, X, Y)
155+ if ((J == 0))
156+ then WriteSet([DataEntry(G, ai), DataEntry(H, ai), DataEntry(ai, ak), aj])
157+ else {
158+ let al = valueOrErrorMessage(getString(this, H), "can't get tail pointer")
159+ let am = split(valueOrErrorMessage(getString(this, al), "can't resolve pointer"), "|")
160+ let an = ((((((((((am[0] + "|") + am[1]) + "|") + am[2]) + "|") + am[3]) + "|") + am[4]) + "|") + ai)
161+ WriteSet([DataEntry(al, an), DataEntry(ai, ak), DataEntry(H, ai), aj])
162+ }
163+ }
164+
165+
166+func ao () = if ((J == 0))
167+ then throw("nothing to settle")
168+ else {
169+ func ap (aq) = DataEntry(P, (Q + aq))
170+
171+ let ar = DataEntry(I, (J - 1))
172+ let as = (M == O)
173+ let at = DataEntry(H, "")
174+ let au = split(valueOrErrorMessage(getString(this, M), "bad head pointer"), "|")
175+ let U = au[0]
176+ let V = parseIntValue(au[1])
177+ let W = au[2]
178+ let X = parseIntValue(au[3])
179+ let Y = addressFromStringValue(au[4])
180+ let av = au[5]
181+ if ((E > X))
182+ then throw(((("corrupt state, rebalancedPriceId=" + toString(E)) + ", request price id=") + toString(X)))
183+ else if ((X > E))
184+ then throw("can't dequeue, too early, rebalance first")
185+ else if ((U == R))
186+ then {
187+ let aw = fraction(V, y, 10000)
188+ let ax = (V - aw)
189+ if ((W == v))
190+ then {
191+ let ay = fraction(t, ax, r)
192+ let az = [DataEntry(l, (r + ax)), DataEntry(n, (t + ay)), DataEntry(G, av), ap(aw), ar]
193+ ScriptResult(WriteSet(if (as)
194+ then at :: az
195+ else az), TransferSet([ScriptTransfer(Y, ay, fromBase58String(v))]))
196+ }
197+ else if ((W == w))
198+ then {
199+ let ay = fraction(u, ax, s)
200+ let az = [DataEntry(m, (s + ax)), DataEntry(o, (u + ay)), DataEntry(G, av), ap(aw), ar]
201+ ScriptResult(WriteSet(if (as)
202+ then at :: az
203+ else az), TransferSet([ScriptTransfer(Y, ay, fromBase58String(w))]))
204+ }
205+ else throw("bad token id")
206+ }
207+ else if ((U == S))
208+ then {
209+ let aA = V
210+ if ((W == v))
211+ then {
212+ let aB = fraction(r, aA, t)
213+ let aw = fraction(aB, z, 10000)
214+ let aC = if ((aB > aw))
215+ then (aB - aw)
216+ else 0
217+ let az = [DataEntry(l, (r - aB)), DataEntry(n, (t - aA)), DataEntry(G, av), ap(aw), ar]
218+ ScriptResult(WriteSet(if (as)
219+ then at :: az
220+ else az), TransferSet([ScriptTransfer(Y, aC, fromBase58String(x))]))
221+ }
222+ else if ((W == w))
223+ then {
224+ let aB = fraction(s, aA, u)
225+ let aw = fraction(aB, z, 10000)
226+ let aC = if ((aB > aw))
227+ then (aB - aw)
228+ else 0
229+ let az = [DataEntry(m, (s - aB)), DataEntry(o, (u - aA)), DataEntry(G, av), ap(aw), ar]
230+ ScriptResult(WriteSet(if (as)
231+ then at :: az
232+ else az), TransferSet([ScriptTransfer(Y, aC, fromBase58String(x))]))
233+ }
234+ else throw("bad token id")
235+ }
236+ else throw(("bad action: " + U))
237+ }
238+
239+
240+func aD () = {
241+ func aE (aF,aG,aH) = {
242+ let aI = 100
243+ let aJ = ((if ((aH > aG))
244+ then aH
245+ else aG) / aI)
246+ let aK = ((if ((aG > aH))
247+ then aH
248+ else aG) / aI)
249+ let aL = (aK * aK)
250+ let aM = (((9 * aJ) * aJ) - ((15 * aJ) * aK))
251+ fraction(aF, ((6 * aL) + aM), ((7 * aL) + aM))
252+ }
253+
254+ let aN = valueOrErrorMessage(getInteger(this, k), "inconsistent data")
255+ let aO = (aN + 1)
256+ let aP = valueOrErrorMessage(getInteger(D, toString(aN)), "bad oracle data for sellted price")
257+ let aQ = valueOrErrorMessage(getInteger(D, toString(aO)), "no next price")
258+ let aR = if ((s > r))
259+ then r
260+ else s
261+ let aS = aE(aR, aP, aQ)
262+ if ((aQ > aP))
263+ then WriteSet([DataEntry(l, (r + aS)), DataEntry(m, (s - aS)), DataEntry(k, aO)])
264+ else if ((aP > aQ))
265+ then WriteSet([DataEntry(l, (r - aS)), DataEntry(m, (s + aS)), DataEntry(k, aO)])
266+ else WriteSet([DataEntry(k, aO)])
267+ }
268+
269+
270+@Callable(aa)
271+func init (aT,aU,aV,aW,aX) = if (isDefined(getString(this, a)))
272+ then throw("already initialized")
273+ else if (!(isDefined(aa.payment)))
274+ then throw("neutrino payment required")
275+ else if ((toBase58String(valueOrErrorMessage(value(aa.payment).assetId, "neutrino payment required")) != aV))
276+ then throw("payment not in neutrino")
277+ else {
278+ let aY = value(aa.payment).amount
279+ let aZ = (aY / 2)
280+ let ba = (aY - aZ)
281+ if (if ((ba == 0))
282+ then true
283+ else (aZ == 0))
284+ then throw("can't init balances")
285+ else {
286+ let bb = valueOrErrorMessage(getInteger(valueOrErrorMessage(addressFromPublicKey(fromBase58String(aW)), "bad oracle address"), j), "can't find oracle price id")
287+ ScriptResult(WriteSet([DataEntry(a, aT), DataEntry(b, aU), DataEntry(c, aV), DataEntry(i, aW), DataEntry(l, aZ), DataEntry(m, ba), DataEntry(n, aZ), DataEntry(o, ba), DataEntry(k, bb), DataEntry(p, aX), DataEntry(d, 0), DataEntry(e, 0), DataEntry(f, 0), DataEntry(g, 0), DataEntry(h, true)]), TransferSet([ScriptTransfer(aa.caller, aZ, fromBase58String(aT)), ScriptTransfer(aa.caller, ba, fromBase58String(aU))]))
288+ }
289+ }
290+
291+
292+
293+@Callable(L)
294+func setParams (bc,bd,be,bf,bg) = if ((L.caller != this))
295+ then throw("only self can change whitelist")
296+ else WriteSet([DataEntry(d, bc), DataEntry(e, bd), DataEntry(f, be), DataEntry(g, bf), DataEntry(h, bg)])
297+
298+
299+
300+@Callable(L)
301+func setWhitelist (bh) = if ((L.caller != this))
302+ then throw("only self can change whitelist")
303+ else WriteSet([DataEntry(p, bh)])
304+
305+
306+
307+@Callable(aa)
308+func requestRedeem () = if ((Z(aa) == unit))
309+ then {
310+ let ad = toBase58String(valueOrErrorMessage(value(aa.payment).assetId, "waves are not accepted here"))
311+ ah(toBase58String(aa.transactionId), S, value(aa.payment).amount, ad, (F + 1), toString(aa.caller))
312+ }
313+ else throw("doesn't happen")
314+
315+
316+
317+@Callable(aa)
318+func requestIssue (bi) = if ((aa.caller == this))
319+ then throw("can't do")
320+ else if (if (C)
321+ then !(isDefined(indexOf(q, toString(aa.caller))))
322+ else false)
323+ then throw("only whitelisted can do")
324+ else {
325+ let ab = throw((((((("only BULL(" + v) + ") or BEAR(") + w) + ") tokens are available in exchange for USDN(") + x) + ")"))
326+ if (if ((bi != v))
327+ then (bi != w)
328+ else false)
329+ then ab
330+ else if (!(isDefined(aa.payment)))
331+ then ab
332+ else if ((value(aa.payment).assetId != fromBase58String(x)))
333+ then ab
334+ else if ((A > value(aa.payment).amount))
335+ then throw((("Attached payment too small. Min required: " + toString((A / 1000000))) + " USDN"))
336+ else ah(toBase58String(aa.transactionId), R, value(aa.payment).amount, bi, (F + 1), toString(aa.caller))
337+ }
338+
339+
340+
341+@Callable(aa)
342+func settle () = {
343+ let bj = (M == "")
344+ let bk = (F > E)
345+ if (bj)
346+ then if (bk)
347+ then aD()
348+ else throw("[OK] all done, carry on")
349+ else {
350+ let au = split(valueOrErrorMessage(getString(this, M), "bad head pointer"), "|")
351+ let X = parseIntValue(au[3])
352+ if ((X > E))
353+ then if (bk)
354+ then aD()
355+ else throw("[OK] need to wait")
356+ else if ((X == E))
357+ then ao()
358+ else throw("corrupt data, future price id already rebalanced")
359+ }
360+ }
361+
362+

github/deemru/w8io/873ac7e 
25.82 ms