tx · 5HJmqeVrqAF5PEybmyWnA1adHRugtC31PDmPpUYdkbQn

3PQAhPM5iHQyYrAqTVts53UgiLGtVuSZ8xD:  -0.03500000 Waves

2023.06.19 09:57 [3694784] smart account 3PQAhPM5iHQyYrAqTVts53UgiLGtVuSZ8xD > SELF 0.00000000 Waves

{ "type": 13, "id": "5HJmqeVrqAF5PEybmyWnA1adHRugtC31PDmPpUYdkbQn", "fee": 3500000, "feeAssetId": null, "timestamp": 1687157894020, "version": 2, "chainId": 87, "sender": "3PQAhPM5iHQyYrAqTVts53UgiLGtVuSZ8xD", "senderPublicKey": "2teAgHr6rmSMKKEAxWFXxUqTEuAbuqaY4fp173EvF76Y", "proofs": [ "4rN73txQKmyTAvspLRQg2YjXwq2ftrjNY2kKGL1kP1L1TcDmuu2CvBnxn28dEscsgCtGEuaCwXgsbp7oHGVBVz2G" ], "script": "base64:BgIuCAISCAoGCAgICAgBEgASABIDCgEEEgASAwoBARIAEgMKAQgSAwoBBBIECgIIATAAC3VzZG5Bc3NldElkASC2JinDBPXOU5GkDkt1JC9kjFGx+t+vVCm9SNIdKrKq0QANcHV6emxlQXNzZXRJZAEg8Rr+Jf72mTj0aSrE3+ES1keyxsoOujcJr3dtH46i5WMAC3VzZHRBc3NldElkASAelAcTUnahJZX9yGGogl8Qf986Tym7/JpGP1r9Nk+fkQAOdXNkdFBwdEFzc2V0SWQBIITaerIIAz9O0bvKju6Lk7zJgt0LXfoHlqjUI/moD/+5AA51c2RuQXNzZXRJZFN0cgIsREcyeEZrUGREd0tVb0JrekdBaFF0THBTR3pmWExpQ1lQRXplS0gyQWQyNHAAEHB1enpsZUFzc2V0SWRTdHICLEhFQjhRYXc5eHJXcFdzOHRIc2lBVFlHQldEQnRQMlM3a2NQQUxyTXU0M0FTAA51c2R0QXNzZXRJZFN0cgIsMzROOVljRUVUTFduOTNxWVE2NEVzUDF4ODl0U3J1SlU0NFJyRU1TWFhFUEoAEXVzZHRQcHRBc3NldElkU3RyAiw5d2MzTFhOQTRURUJzWHlLdG9MRTltcmJERDdXTUhYdlhyQ2padmFiTEFzaQARcGFyZW50UG9vbEFkZHJlc3MJAQdBZGRyZXNzAQEaAVeRxuop6nlnD9mE7zJ2lLPAdULkNYPB01gADW1hc3RlckFkZHJlc3MJAQdBZGRyZXNzAQEaAVfOV/Mk0Qeks07+0rriKKzFkJbWitFtBe4ADG1hc3RlclB1YktleQEgOzVNbj+fvvhUnJZEB4BWqy/iE2BFxHvyPxdD9EIFJl0BDXRyeUdldEludGVnZXIBA2tleQQHJG1hdGNoMAkAmggCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAABDHRyeUdldEJpbmFyeQEDa2V5BAckbWF0Y2gwCQCcCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwBQFiAQABDHRyeUdldFN0cmluZwEDa2V5BAckbWF0Y2gwCQCdCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWIFByRtYXRjaDAFAWICAAEOZ2V0QXNzZXRTdHJpbmcBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA2AQBBQFiAgVXQVZFUwENZ2V0QXNzZXRCeXRlcwEKYXNzZXRJZFN0cgMJAAACBQphc3NldElkU3RyAgVXQVZFUwUEdW5pdAkA2QQBBQphc3NldElkU3RyARNhZGRBc3NldEJ5dGVzVG9MaXN0AgVhY2N1bQRpdGVtCQDOCAIFBWFjY3VtCQDMCAIJAQ1nZXRBc3NldEJ5dGVzAQUEaXRlbQUDbmlsARRhZGRBc3NldFdlaWdodFRvTGlzdAIFYWNjdW0EaXRlbQkAzggCBQVhY2N1bQkAzAgCCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdzdGF0aWNfCQEOZ2V0QXNzZXRTdHJpbmcBBQRpdGVtAgdfd2VpZ2h0BQNuaWwBFmFkZEFzc2V0RGVjaW1hbHNUb0xpc3QCBWFjY3VtBGl0ZW0JAM4IAgUFYWNjdW0JAMwIAgkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIHc3RhdGljXwkBDmdldEFzc2V0U3RyaW5nAQUEaXRlbQIJX2RlY2ltYWxzBQNuaWwBE2FkZEFzc2V0U2NhbGVUb0xpc3QCBWFjY3VtBGl0ZW0JAM4IAgUFYWNjdW0JAMwIAgkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIHc3RhdGljXwkBDmdldEFzc2V0U3RyaW5nAQUEaXRlbQIGX3NjYWxlBQNuaWwBDGFkZEludFRvTGlzdAIFYWNjdW0EaXRlbQkAzggCBQVhY2N1bQkAzAgCCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0FA25pbAABVAkBDXRyeUdldEludGVnZXIBAhNzdGF0aWNfdG9rZW5zQW1vdW50AAhhc3NldElkcwoAAiRsCQC1CQIJAQx0cnlHZXRTdHJpbmcBAg9zdGF0aWNfdG9rZW5JZHMCASwKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBE2FkZEFzc2V0Qnl0ZXNUb0xpc3QCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoADUFzc2V0c1dlaWdodHMKAAIkbAUIYXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBFGFkZEFzc2V0V2VpZ2h0VG9MaXN0AgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYxXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMV8yAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAhEZWNpbWFscwoAAiRsBQhhc3NldElkcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMl8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEWYWRkQXNzZXREZWNpbWFsc1RvTGlzdAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMl8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjJfMgIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgAGU2NhbGVzCgACJGwFCGFzc2V0SWRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYzXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARNhZGRBc3NldFNjYWxlVG9MaXN0AgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYzXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmM18yAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAANGZWUJAQ10cnlHZXRJbnRlZ2VyAQIKc3RhdGljX2ZlZQAVQXNzZXRzV2VpZ2h0c0RlY2ltYWxzAAQABVNjYWxlAJBOAAZTY2FsZTgAgMLXLwAIRmVlU2NhbGUAkE4AEVBvb2xUb2tlbkRlY2ltYWxzAAgADlBvb2xUb2tlblNjYWxlCQBsBgAKAAAFEVBvb2xUb2tlbkRlY2ltYWxzAAAAAAUGSEFMRlVQAAxlYXJuZWRBc3NldHMFCGFzc2V0SWRzAQppc1NodXRkb3duAAQHJG1hdGNoMAkAmwgCCQEHQWRkcmVzcwEBGgFXjXhTep8V0j2VNIuCeWTYGdMnHpvyNVqoAgtpc19zaHV0ZG93bgMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAF4BQckbWF0Y2gwBQF4BwEWZ2V0Q3VycmVudFRva2VuQmFsYW5jZQEJdG9rZW5UeXBlBAd0b2tlbklkCQEOZ2V0QXNzZXRTdHJpbmcBCQCRAwIFCGFzc2V0SWRzBQl0b2tlblR5cGUJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICB2dsb2JhbF8FB3Rva2VuSWQCCF9iYWxhbmNlARBjYWxjdWxhdGVQSXNzdWVkAgZhbW91bnQHdG9rZW5JZAQHUHN1cHBseQkBDXRyeUdldEludGVnZXIBAhdnbG9iYWxfcG9vbFRva2VuX2Ftb3VudAQHQmFsYW5jZQkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIHZ2xvYmFsXwkBDmdldEFzc2V0U3RyaW5nAQUHdG9rZW5JZAIIX2JhbGFuY2UJAG4EBQZhbW91bnQFB1BzdXBwbHkFB0JhbGFuY2UFBERPV04BDWdldE1pblBJc3N1ZWQBCHBheW1lbnRzCgEHaGFuZGxlcgIFYWNjdW0HY3VycmVudAQHUElzc3VlZAkBEGNhbGN1bGF0ZVBJc3N1ZWQCCAUHY3VycmVudAZhbW91bnQIBQdjdXJyZW50B2Fzc2V0SWQDCQAAAgUHUElzc3VlZAAACQACAQIkb25lIG9mIHRoZSB0b2tlbnMgYW1vdW50cyBpcyB0b28gbG93AwMJAAACBQVhY2N1bQAABgkAZgIFBWFjY3VtBQdQSXNzdWVkBQdQSXNzdWVkBQVhY2N1bQQJbWluUElzc2VkCgACJGwFCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGY0XzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdoYW5kbGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGY0XzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmNF8yAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBQltaW5QSXNzZWQBEmNhbGN1bGF0ZVVzZG5WYWx1ZQQHYXNzZXRJZAZhbW91bnQIYUJhbGFuY2UQZ2l2ZW5Vc2RuQmFsYW5jZQQKdXNkbkluUG9vbAkAzwgCBQhhc3NldElkcwULdXNkbkFzc2V0SWQEDHB1enpsZUluUG9vbAkAzwgCBQhhc3NldElkcwUNcHV6emxlQXNzZXRJZAQKdXNkdEluUG9vbAkAzwgCBQhhc3NldElkcwULdXNkdEFzc2V0SWQEC3dhdmVzSW5Qb29sCQDPCAIFCGFzc2V0SWRzBQR1bml0BAthc3NldFdlaWdodAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIHc3RhdGljXwkBDmdldEFzc2V0U3RyaW5nAQUHYXNzZXRJZAIHX3dlaWdodAQLZmVlQXNzZXRTdHIJAQx0cnlHZXRTdHJpbmcBAg9zdGF0aWNfZmVlVG9rZW4DCQAAAgULZmVlQXNzZXRTdHIFEHB1enpsZUFzc2V0SWRTdHIEDHB1enpsZVdlaWdodAkAkQMCBQ1Bc3NldHNXZWlnaHRzCQEFdmFsdWUBCQDPCAIFCGFzc2V0SWRzBQ1wdXp6bGVBc3NldElkBA1wdXp6bGVCYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdnbG9iYWxfBRBwdXp6bGVBc3NldElkU3RyAghfYmFsYW5jZQQOYW1vdW50SW5QdXp6bGUJAGsDBQZhbW91bnQJAGkCBQ1wdXp6bGVCYWxhbmNlBQxwdXp6bGVXZWlnaHQJAGkCBQhhQmFsYW5jZQULYXNzZXRXZWlnaHQEC3B1enpsZVByaWNlCQERQGV4dHJOYXRpdmUoMTA1MCkCBRFwYXJlbnRQb29sQWRkcmVzcwIWZ2xvYmFsX2xhc3RQdXp6bGVQcmljZQkAawMJAGgCBQ5hbW91bnRJblB1enpsZQULcHV6emxlUHJpY2UAAQUGU2NhbGU4AwkAAAIFC2ZlZUFzc2V0U3RyBQ51c2R0QXNzZXRJZFN0cgQKdXNkdFdlaWdodAkAkQMCBQ1Bc3NldHNXZWlnaHRzCQEFdmFsdWUBBQp1c2R0SW5Qb29sBAt1c2R0QmFsYW5jZQkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIHZ2xvYmFsXwUOdXNkdEFzc2V0SWRTdHICCF9iYWxhbmNlCQBrAwUGYW1vdW50CQBpAgULdXNkdEJhbGFuY2UFCnVzZHRXZWlnaHQJAGkCBQhhQmFsYW5jZQULYXNzZXRXZWlnaHQDCQAAAgULZmVlQXNzZXRTdHIFDnVzZG5Bc3NldElkU3RyBAp1c2RuV2VpZ2h0CQCRAwIFDUFzc2V0c1dlaWdodHMJAQV2YWx1ZQEJAM8IAgUIYXNzZXRJZHMFC3VzZG5Bc3NldElkBAt1c2RuQmFsYW5jZQQHJG1hdGNoMAUQZ2l2ZW5Vc2RuQmFsYW5jZQMJAAECBQckbWF0Y2gwAgNJbnQEAXgFByRtYXRjaDAFEGdpdmVuVXNkbkJhbGFuY2UJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICB2dsb2JhbF8JAQ5nZXRBc3NldFN0cmluZwEFC3VzZG5Bc3NldElkAghfYmFsYW5jZQkAawMFBmFtb3VudAkAaQIJAQV2YWx1ZQEFC3VzZG5CYWxhbmNlBQp1c2RuV2VpZ2h0CQBpAgUIYUJhbGFuY2UFC2Fzc2V0V2VpZ2h0BAt3YXZlc1dlaWdodAC4FwQId0JhbGFuY2UJAGkCCQENdHJ5R2V0SW50ZWdlcgECFGdsb2JhbF9XQVZFU19iYWxhbmNlADIJAGsDBQZhbW91bnQJAGkCBQh3QmFsYW5jZQULd2F2ZXNXZWlnaHQJAGkCBQhhQmFsYW5jZQULYXNzZXRXZWlnaHQBE2NoZWNrVG9rZW5zVmFsaWRpdHkBCHBheW1lbnRzCgEIaGFuZGxlcjECBWFjY3VtB3BheW1lbnQJAM4IAgUFYWNjdW0JAMwIAggFB3BheW1lbnQHYXNzZXRJZAUDbmlsBANpZHMKAAIkbAUIcGF5bWVudHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjRfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGhhbmRsZXIxAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGY0XzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmNF8yAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAwkAAAIFA2lkcwUDaWRzCgEIaGFuZGxlcjICBWFjY3VtB2Fzc2V0SWQDCQECIT0CCQDPCAIFA2lkcwUHYXNzZXRJZAUEdW5pdAkAZAIFBWFjY3VtAAEJAAIBCQCsAgICFGFzc2V0IG5vdCBhdHRhY2hlZDogCQEOZ2V0QXNzZXRTdHJpbmcBBQdhc3NldElkBAZjaGVja3MKAAIkbAUIYXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjVfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGhhbmRsZXIyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGY1XzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmNV8yAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgkBBSRmNV8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAwkAAAIFBmNoZWNrcwUGY2hlY2tzBgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgETaGFuZGxlUG9vbFRva2Vuc0FkZAQHUElzc3VlZAhwYXltZW50cwt1c2VyQWRkcmVzcwpuZWVkQ2hhbmdlCgEVZ2V0VG9rZW5QYXltZW50QW1vdW50AQd0b2tlbklkCgEHaGFuZGxlcgIFYWNjdW0HcGF5bWVudAMJAAACCAUHcGF5bWVudAdhc3NldElkBQd0b2tlbklkCAUHcGF5bWVudAZhbW91bnQFBWFjY3VtCgACJGwFCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGY0XzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdoYW5kbGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGY0XzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmNF8yAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKCgERaGFuZGxlVG9rZW5DaGFuZ2UCBWFjY3VtB3Rva2VuSWQEAkJrCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdnbG9iYWxfCQEOZ2V0QXNzZXRTdHJpbmcBBQd0b2tlbklkAghfYmFsYW5jZQQHUFN1cHBseQkBDXRyeUdldEludGVnZXIBAhdnbG9iYWxfcG9vbFRva2VuX2Ftb3VudAQNdG9rZW5EZWNpbWFscwkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIHc3RhdGljXwkBDmdldEFzc2V0U3RyaW5nAQUHdG9rZW5JZAIGX3NjYWxlBAJEawkAbgQJAGUCCQBuBAkAZAIFB1BTdXBwbHkFB1BJc3N1ZWQFDXRva2VuRGVjaW1hbHMFB1BTdXBwbHkFB0NFSUxJTkcFDXRva2VuRGVjaW1hbHMFAkJrBQ10b2tlbkRlY2ltYWxzBQdDRUlMSU5HBA1wYXltZW50QW1vdW50CQEVZ2V0VG9rZW5QYXltZW50QW1vdW50AQUHdG9rZW5JZAQIdG9SZXR1cm4JAGUCAwkBAiE9AgUNcGF5bWVudEFtb3VudAAABQ1wYXltZW50QW1vdW50AAAFAkRrBAF0AwMFCm5lZWRDaGFuZ2UJAGYCBQh0b1JldHVybgAABwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQt1c2VyQWRkcmVzcwUIdG9SZXR1cm4FB3Rva2VuSWQFA25pbAUDbmlsCQDOCAIJAM4IAgUFYWNjdW0FAXQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgdnbG9iYWxfCQEOZ2V0QXNzZXRTdHJpbmcBBQd0b2tlbklkAghfYmFsYW5jZQkAZAIFAkJrBQJEawUDbmlsCgACJGwFCGFzc2V0SWRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGY0XzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARFoYW5kbGVUb2tlbkNoYW5nZQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmNF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjRfMgIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgEWaGFuZGxlUG9vbFRva2Vuc1JlZGVlbQIJUFJlZGVlbWVkC3VzZXJBZGRyZXNzCgERaGFuZGxlVG9rZW5SZWRlZW0CBWFjY3VtB3Rva2VuSWQEAkJrCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdnbG9iYWxfCQEOZ2V0QXNzZXRTdHJpbmcBBQd0b2tlbklkAghfYmFsYW5jZQQHUFN1cHBseQkBDXRyeUdldEludGVnZXIBAhdnbG9iYWxfcG9vbFRva2VuX2Ftb3VudAQNdG9rZW5EZWNpbWFscwkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIHc3RhdGljXwkBDmdldEFzc2V0U3RyaW5nAQUHdG9rZW5JZAIGX3NjYWxlBAZhbW91bnQJAKADAQkAvQIECQC4AgIJALYCAQUGU2NhbGU4CQC9AgQJALYCAQkAZQIFB1BTdXBwbHkFCVBSZWRlZW1lZAkAtgIBBQZTY2FsZTgJALYCAQUHUFN1cHBseQUHQ0VJTElORwkAtgIBBQJCawkAtgIBBQZTY2FsZTgFBERPV04JAM4IAgUFYWNjdW0JAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgdnbG9iYWxfCQEOZ2V0QXNzZXRTdHJpbmcBBQd0b2tlbklkAghfYmFsYW5jZQkAZQIFAkJrBQZhbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwULdXNlckFkZHJlc3MFBmFtb3VudAUHdG9rZW5JZAUDbmlsCgACJGwFCGFzc2V0SWRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGY0XzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARFoYW5kbGVUb2tlblJlZGVlbQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmNF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjRfMgIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgESY2FsY3VsYXRlT3V0QW1vdW50BQhBbW91bnRJbgdhc3NldEluCGFzc2V0T3V0CUJhbGFuY2VJbgpCYWxhbmNlT3V0BAdJbmRleEluCQEFdmFsdWUBCQDPCAIFCGFzc2V0SWRzBQdhc3NldEluBAhJbmRleE91dAkBBXZhbHVlAQkAzwgCBQhhc3NldElkcwUIYXNzZXRPdXQDCQAAAgUHSW5kZXhJbgUISW5kZXhPdXQFCEFtb3VudEluCQBuBAUKQmFsYW5jZU91dAkAZQIJAGgCBQZTY2FsZTgFBlNjYWxlOAkAoAMBCQB2BgkAvQIECQC2AgEFCUJhbGFuY2VJbgkAtgIBCQBoAgUGU2NhbGU4BQZTY2FsZTgJALYCAQkAZAIFCUJhbGFuY2VJbgUIQW1vdW50SW4FBkhBTEZVUAAQCQC2AgEJAGsDCQCRAwIFDUFzc2V0c1dlaWdodHMFB0luZGV4SW4AkE4JAJEDAgUNQXNzZXRzV2VpZ2h0cwUISW5kZXhPdXQABAAQBQdDRUlMSU5HCQBoAgUGU2NhbGU4BQZTY2FsZTgFBERPV04BD2dldFRva2VuQmFsYW5jZQEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAF0BQckbWF0Y2gwCQDwBwIFBHRoaXMFAXQICQDvBwEFBHRoaXMJYXZhaWxhYmxlAR1jYWxjdWxhdGVDdXJyZW50QXNzZXRJbnRlcmVzdAQHYXNzZXRJZAphc3NldElkU3RyCGFCYWxhbmNlFnRva2VuRWFybmluZ3NMYXN0Q2hlY2sEC3RvdGFsU3Rha2VkCQENdHJ5R2V0SW50ZWdlcgECEmdsb2JhbF9pbmRleFN0YWtlZAQVdG9rZW5CYWxhbmNlTGFzdENoZWNrBRZ0b2tlbkVhcm5pbmdzTGFzdENoZWNrBBNjdXJyZW50QmFsYW5jZURlbHRhCQBlAgkBD2dldFRva2VuQmFsYW5jZQEFB2Fzc2V0SWQFCGFCYWxhbmNlBBRjdXJyZW50VG9rZW5FYXJuaW5ncwMJAGYCBRNjdXJyZW50QmFsYW5jZURlbHRhBRV0b2tlbkJhbGFuY2VMYXN0Q2hlY2sFE2N1cnJlbnRCYWxhbmNlRGVsdGEFFXRva2VuQmFsYW5jZUxhc3RDaGVjawQLbmV3RWFybmluZ3MJAGUCBRRjdXJyZW50VG9rZW5FYXJuaW5ncwUVdG9rZW5CYWxhbmNlTGFzdENoZWNrBAtuZXdJbnRlcmVzdAMJAAACBQt0b3RhbFN0YWtlZAAAAAAJAGsDBQtuZXdFYXJuaW5ncwUGU2NhbGU4BQt0b3RhbFN0YWtlZAQRbGFzdENoZWNrSW50ZXJlc3QJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICEWdsb2JhbF9sYXN0Q2hlY2tfBQphc3NldElkU3RyAglfaW50ZXJlc3QJAGQCBRFsYXN0Q2hlY2tJbnRlcmVzdAULbmV3SW50ZXJlc3QBC2NsYWltUmVzdWx0AQdhZGRyZXNzBAphZGRyZXNzU3RyCQClCAEFB2FkZHJlc3MEDHB1enpsZUFtb3VudAkBDXRyeUdldEludGVnZXIBCQCsAgIFCmFkZHJlc3NTdHICDF9pbmRleFN0YWtlZAoBB2hhbmRsZXICBWFjY3VtB2Fzc2V0SWQECmFzc2V0SWRTdHIJAQ5nZXRBc3NldFN0cmluZwEFB2Fzc2V0SWQECGFCYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdnbG9iYWxfCQEOZ2V0QXNzZXRTdHJpbmcBBQdhc3NldElkAghfYmFsYW5jZQQWdG9rZW5FYXJuaW5nc0xhc3RDaGVjawkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIRZ2xvYmFsX2xhc3RDaGVja18FCmFzc2V0SWRTdHICCV9lYXJuaW5ncwQUY3VycmVudFRva2VuSW50ZXJlc3QJAR1jYWxjdWxhdGVDdXJyZW50QXNzZXRJbnRlcmVzdAQFB2Fzc2V0SWQFCmFzc2V0SWRTdHIFCGFCYWxhbmNlBRZ0b2tlbkVhcm5pbmdzTGFzdENoZWNrBBRjdXJyZW50VG9rZW5FYXJuaW5ncwkAlgMBCQDMCAIFFnRva2VuRWFybmluZ3NMYXN0Q2hlY2sJAMwIAgkAZQIJAQ9nZXRUb2tlbkJhbGFuY2UBBQdhc3NldElkBQhhQmFsYW5jZQUDbmlsBAxyZXdhcmRBbW91bnQJAGsDBQxwdXp6bGVBbW91bnQJAGUCBRRjdXJyZW50VG9rZW5JbnRlcmVzdAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgkArAICBQphZGRyZXNzU3RyAgtfbGFzdENoZWNrXwUKYXNzZXRJZFN0cgIJX2ludGVyZXN0BQZTY2FsZTgECHRyYW5zZmVyAwkAAAIFDHJld2FyZEFtb3VudAAABQNuaWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUHYWRkcmVzcwUMcmV3YXJkQW1vdW50BQdhc3NldElkBQNuaWwJAJQKAgkAzggCCQDOCAIIBQVhY2N1bQJfMQUIdHJhbnNmZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAhFnbG9iYWxfbGFzdENoZWNrXwUKYXNzZXRJZFN0cgIJX2Vhcm5pbmdzCQBlAgUUY3VycmVudFRva2VuRWFybmluZ3MFDHJld2FyZEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICEWdsb2JhbF9sYXN0Q2hlY2tfBQphc3NldElkU3RyAglfaW50ZXJlc3QFFGN1cnJlbnRUb2tlbkludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQphZGRyZXNzU3RyAgtfbGFzdENoZWNrXwUKYXNzZXRJZFN0cgIJX2ludGVyZXN0BRRjdXJyZW50VG9rZW5JbnRlcmVzdAUDbmlsCQBkAggFBWFjY3VtAl8yCQESY2FsY3VsYXRlVXNkblZhbHVlBAUHYXNzZXRJZAUMcmV3YXJkQW1vdW50BQhhQmFsYW5jZQUEdW5pdAQFYWNjdW0KAAIkbAUMZWFybmVkQXNzZXRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwAAAoBBSRmNF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHaGFuZGxlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmNF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjRfMgIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgkAlAoCCQDOCAIIBQVhY2N1bQJfMQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQphZGRyZXNzU3RyAhNfY2xhaW1lZFJld2FyZFZhbHVlCQBkAgkBDXRyeUdldEludGVnZXIBCQCsAgIFCmFkZHJlc3NTdHICE19jbGFpbWVkUmV3YXJkVmFsdWUIBQVhY2N1bQJfMgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQphZGRyZXNzU3RyAgpfbGFzdENsYWltCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUDbmlsCAUFYWNjdW0CXzIBEGluZGV4U3Rha2VSZXN1bHQCCmFkZHJlc3NTdHIGYW1vdW50BAJsaQgJAQtjbGFpbVJlc3VsdAEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCmFkZHJlc3NTdHICXzEJAM4IAgUCbGkJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUKYWRkcmVzc1N0cgIMX2luZGV4U3Rha2VkCQBkAgkBDXRyeUdldEludGVnZXIBCQCsAgIFCmFkZHJlc3NTdHICDF9pbmRleFN0YWtlZAUGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhJnbG9iYWxfaW5kZXhTdGFrZWQJAGQCCQENdHJ5R2V0SW50ZWdlcgECEmdsb2JhbF9pbmRleFN0YWtlZAUGYW1vdW50BQNuaWwBA3N1bQIFYWNjdW0BbgkAZAIFBWFjY3VtCQENcGFyc2VJbnRWYWx1ZQEFAW4KAWkBB3ByZUluaXQGC2Fzc2V0SWRzU3RyD2Fzc2V0V2VpZ2h0c1N0cg5iYXNlVG9rZW5JZFN0cgpwb29sRG9tYWluCXBvb2xPd25lcgNmZWUEEHBvb2xPd25lckFkZHJlc3MJAQdBZGRyZXNzAQkA2QQBBQlwb29sT3duZXIDCQEKaXNTaHV0ZG93bgAJAAIBAhNjb250cmFjdCBpcyBvbiBzdG9wAwkBAiE9AgUEdGhpcwgFAWkGY2FsbGVyCQACAQIKYWRtaW4gb25seQMJAGYCCQCxAgEFCnBvb2xEb21haW4ADQkAAgECFXRvbyBsYXJnZSBwb29sIGRvbWFpbgMDCQBmAgUDZmVlAPQDBgkAZgIAMgUDZmVlCQACAQItZmVlIHZhbHVlIG11c3QgYmUgYmV0d2VlbiA1MCBhbmQgNTAwICgwLjUtNSUpAwMDAwMJAAACCQCzCQIFC2Fzc2V0SWRzU3RyBRBwdXp6bGVBc3NldElkU3RyBQR1bml0CQAAAgkAswkCBQthc3NldElkc1N0cgUOdXNkbkFzc2V0SWRTdHIFBHVuaXQHCQAAAgkAswkCBQthc3NldElkc1N0cgUOdXNkdEFzc2V0SWRTdHIFBHVuaXQHCQAAAgkAswkCBQthc3NldElkc1N0cgIFV0FWRVMFBHVuaXQHCQAAAgkAswkCBQthc3NldElkc1N0cgURdXNkdFBwdEFzc2V0SWRTdHIFBHVuaXQHCQACAQJLcG9vbCBtdXN0IGhhdmUgVVNEVC1XWEcsIFVTRFQtUFBULCBVU0ROLCBXQVZFUyBvciBQVVpaTEUgaW4gdGhlIGNvbXBvc2l0aW9uBA1hc3NldElkc1N0ckxpCQC1CQIFC2Fzc2V0SWRzU3RyAgEsBAphc3NldElkc0xpCgACJGwFDWFzc2V0SWRzU3RyTGkKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjRfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBE2FkZEFzc2V0Qnl0ZXNUb0xpc3QCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjRfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGY0XzICCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEEWFzc2V0V2VpZ2h0c1N0ckxpCQC1CQIFD2Fzc2V0V2VpZ2h0c1N0cgIBLAQPYXNzZXRXZWlnaHRzU3VtCgACJGwFEWFzc2V0V2VpZ2h0c1N0ckxpCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGY1XzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQNzdW0CBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjVfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGY1XzICCQEFJGY1XzECCQEFJGY1XzECCQEFJGY1XzECCQEFJGY1XzECCQEFJGY1XzECCQEFJGY1XzECCQEFJGY1XzECCQEFJGY1XzECCQEFJGY1XzECCQEFJGY1XzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEC2ZlZUFzc2V0U3RyAwkBAiE9AgkAswkCBQthc3NldElkc1N0cgUOdXNkbkFzc2V0SWRTdHIFBHVuaXQFDnVzZG5Bc3NldElkU3RyAwkBAiE9AgkAswkCBQthc3NldElkc1N0cgIFV0FWRVMFBHVuaXQCBVdBVkVTAwkBAiE9AgkAswkCBQthc3NldElkc1N0cgUOdXNkdEFzc2V0SWRTdHIFBHVuaXQFDnVzZHRBc3NldElkU3RyAwkBAiE9AgkAswkCBQthc3NldElkc1N0cgUQcHV6emxlQXNzZXRJZFN0cgUEdW5pdAUQcHV6emxlQXNzZXRJZFN0cgURdXNkdFBwdEFzc2V0SWRTdHIKARNhZGRUb2tlbkRhdGFFbnRyaWVzAgVhY2N1bQhhc3NldE51bQMJAGcCBQhhc3NldE51bQkAkAMBBQphc3NldElkc0xpBQVhY2N1bQQNYXNzZXREZWNpbWFscwQHJG1hdGNoMAkAkQMCBQphc3NldElkc0xpBQhhc3NldE51bQMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAF4BQckbWF0Y2gwCAkBBXZhbHVlAQkA7AcBBQF4CGRlY2ltYWxzAAgJAM4IAgUFYWNjdW0JAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgdzdGF0aWNfCQCRAwIFDWFzc2V0SWRzU3RyTGkFCGFzc2V0TnVtAgZfc2NhbGUJAGwGAAoAAAUNYXNzZXREZWNpbWFscwAAAAAFBERPV04JAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgdzdGF0aWNfCQCRAwIFDWFzc2V0SWRzU3RyTGkFCGFzc2V0TnVtAglfZGVjaW1hbHMFDWFzc2V0RGVjaW1hbHMJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgdzdGF0aWNfCQCRAwIFDWFzc2V0SWRzU3RyTGkFCGFzc2V0TnVtAgdfd2VpZ2h0CQEFdmFsdWUBCQC2CQEJAJEDAgURYXNzZXRXZWlnaHRzU3RyTGkFCGFzc2V0TnVtBQNuaWwDCQECIT0CBQ9hc3NldFdlaWdodHNTdW0AkE4JAAIBAitzdW0gb2YgdG9rZW4gd2VpZ2h0cyBtdXN0IGJlIGVxdWFsIHRvIDEwMDAwCQDOCAIKAAIkbAkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkFA25pbAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmNl8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQETYWRkVG9rZW5EYXRhRW50cmllcwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmNl8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjZfMgIJAQUkZjZfMQIJAQUkZjZfMQIJAQUkZjZfMQIJAQUkZjZfMQIJAQUkZjZfMQIJAQUkZjZfMQIJAQUkZjZfMQIJAQUkZjZfMQIJAQUkZjZfMQIJAQUkZjZfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgkAzAgCCQELU3RyaW5nRW50cnkCAg9zdGF0aWNfdG9rZW5JZHMFC2Fzc2V0SWRzU3RyCQDMCAIJAQtTdHJpbmdFbnRyeQICD3N0YXRpY19mZWVUb2tlbgULZmVlQXNzZXRTdHIJAMwIAgkBC1N0cmluZ0VudHJ5AgITc3RhdGljX3Rva2VuV2VpZ2h0cwUPYXNzZXRXZWlnaHRzU3RyCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhNzdGF0aWNfdG9rZW5zQW1vdW50CQCQAwEFCmFzc2V0SWRzTGkJAMwIAgkBC1N0cmluZ0VudHJ5AgIRc3RhdGljX3Bvb2xEb21haW4FCnBvb2xEb21haW4JAMwIAgkBC1N0cmluZ0VudHJ5AgISc3RhdGljX2Jhc2VUb2tlbklkBQ5iYXNlVG9rZW5JZFN0cgkAzAgCCQELU3RyaW5nRW50cnkCAhBzdGF0aWNfcG9vbE93bmVyBQlwb29sT3duZXIJAMwIAgkBDEludGVnZXJFbnRyeQICCnN0YXRpY19mZWUFA2ZlZQUDbmlsAWkBBmRlSW5pdAADCQEKaXNTaHV0ZG93bgAJAAIBAhNjb250cmFjdCBpcyBvbiBzdG9wAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIKYWRtaW4gb25seQkAzAgCCQEMSW50ZWdlckVudHJ5AgIQZ2xvYmFsX3dhc0luaXRlZAAABQNuaWwBaQEEaW5pdAAKAQtwcmVwYXJlTGlzdAAKAQdoYW5kbGVyAgVhY2N1bQFuCQDOCAIFBWFjY3VtCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIHZ2xvYmFsXwkBDmdldEFzc2V0U3RyaW5nAQgFAW4HYXNzZXRJZAIIX2JhbGFuY2UIBQFuBmFtb3VudAUDbmlsCgACJGwIBQFpCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGY0XzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdoYW5kbGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGY0XzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmNF8yAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgkBBSRmNF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKCgEZY2FsY3VsYXRlUG9vbFRva2Vuc0Ftb3VudAEIcGF5bWVudHMKAQdoYW5kbGVyAgVhY2N1bQNwbXQEB2Fzc2V0SWQIBQNwbXQHYXNzZXRJZAoBCGhhbmRsZXIyAgVhY2N1bQFuAwkAAAIFAW4FB2Fzc2V0SWQJAQV2YWx1ZQEJAM8IAgUIYXNzZXRJZHMFAW4FBWFjY3VtBAVUb2tlbgoAAiRsBQhhc3NldElkcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAQoBBSRmNF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIaGFuZGxlcjICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjRfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGY0XzICCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoJAGsDBQVhY2N1bQkAbAYIBQNwbXQGYW1vdW50CQCRAwIFCERlY2ltYWxzBQVUb2tlbgkAkQMCBQ1Bc3NldHNXZWlnaHRzBQVUb2tlbgUVQXNzZXRzV2VpZ2h0c0RlY2ltYWxzAAgFBUZMT09SBQZTY2FsZTgKAAIkbAUIcGF5bWVudHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQ5Qb29sVG9rZW5TY2FsZQoBBSRmNF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHaGFuZGxlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmNF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjRfMgIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIJAQUkZjRfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgMJAQppc1NodXRkb3duAAkAAgECE2NvbnRyYWN0IGlzIG9uIHN0b3ADCQBmAgkBDXRyeUdldEludGVnZXIBAhBnbG9iYWxfd2FzSW5pdGVkAAAJAAIBAhNwb29sIGFscmVhZHkgaW5pdGVkBBFpbml0aWFsUG9vbFRva2VucwkBGWNhbGN1bGF0ZVBvb2xUb2tlbnNBbW91bnQBCAUBaQhwYXltZW50cwMJAAACBRFpbml0aWFsUG9vbFRva2VucwAACQACAQIyeW91IG5lZWQgYSBiaWdnZXIgdG9rZW5zIGFtb3VudCB0byBsYXVuY2ggdGhlIHBvb2wEDnBvb2xUb2tlbklzc3VlCQDDCAcJAKwCAgIDUFogCQEMdHJ5R2V0U3RyaW5nAQIRc3RhdGljX3Bvb2xEb21haW4CHVB1enpsZSBTd2FwOiBwb29sIGluZGV4IHRva2VuBRFpbml0aWFsUG9vbFRva2VucwURUG9vbFRva2VuRGVjaW1hbHMGBQR1bml0AAAEC3Bvb2xUb2tlbklkCQC4CAEFDnBvb2xUb2tlbklzc3VlCQDOCAIJAQtwcmVwYXJlTGlzdAAJAMwIAgUOcG9vbFRva2VuSXNzdWUJAMwIAgkBDEludGVnZXJFbnRyeQICF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50BRFpbml0aWFsUG9vbFRva2VucwkAzAgCCQEMSW50ZWdlckVudHJ5AgIQZ2xvYmFsX3dhc0luaXRlZAABCQDMCAIJAQtCaW5hcnlFbnRyeQICE2dsb2JhbF9wb29sVG9rZW5faWQFC3Bvb2xUb2tlbklkCQDMCAIJAQtTdHJpbmdFbnRyeQICFnN0YXRpY19wb29sVG9rZW5faWRTdHIJAQ5nZXRBc3NldFN0cmluZwEFC3Bvb2xUb2tlbklkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgxfaW5kZXhTdGFrZWQFEWluaXRpYWxQb29sVG9rZW5zCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhJnbG9iYWxfaW5kZXhTdGFrZWQFEWluaXRpYWxQb29sVG9rZW5zBQNuaWwBaQENZ2VuZXJhdGVJbmRleAEKbmVlZENoYW5nZQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMFAVQJAAIBCQCsAgICO3lvdSBuZWVkIHRvIGF0dGFjaCBhbGwgcG9vbCB0b2tlbnMuIGFtb3VudCBvZiBwb29sIHRva2VuczogCQCkAwEFAVQDCQEBIQEJARNjaGVja1Rva2Vuc1ZhbGlkaXR5AQgFAWkIcGF5bWVudHMJAAIBAhV3cm9uZyBhc3NldHMgYXR0YWNoZWQEB1BJc3N1ZWQJAQ1nZXRNaW5QSXNzdWVkAQgFAWkIcGF5bWVudHMEB3JlaXNzdWUJAQdSZWlzc3VlAwkBEUBleHRyTmF0aXZlKDEwNTcpAQITZ2xvYmFsX3Bvb2xUb2tlbl9pZAUHUElzc3VlZAYEBnJlc3VsdAkBE2hhbmRsZVBvb2xUb2tlbnNBZGQEBQdQSXNzdWVkCAUBaQhwYXltZW50cwgFAWkMb3JpZ2luQ2FsbGVyBQpuZWVkQ2hhbmdlCQCUCgIJAM4IAgUGcmVzdWx0CQDMCAIFB3JlaXNzdWUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQdQSXNzdWVkCQEMdHJ5R2V0QmluYXJ5AQITZ2xvYmFsX3Bvb2xUb2tlbl9pZAkAzAgCCQEMSW50ZWdlckVudHJ5AgIXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQJAGQCCQENdHJ5R2V0SW50ZWdlcgECF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50BQdQSXNzdWVkBQNuaWwFB1BJc3N1ZWQBaQEKc3Rha2VJbmRleAAECmFkZHJlc3NTdHIJAKUIAQgFAWkMb3JpZ2luQ2FsbGVyBANwbXQJAJEDAggFAWkIcGF5bWVudHMAAAMJAQIhPQIJAQV2YWx1ZQEIBQNwbXQHYXNzZXRJZAkBDHRyeUdldEJpbmFyeQECE2dsb2JhbF9wb29sVG9rZW5faWQJAAIBAhR3cm9uZyBhc3NldCBhdHRhY2hlZAkBEGluZGV4U3Rha2VSZXN1bHQCBQphZGRyZXNzU3RyCAUDcG10BmFtb3VudAFpAQx1bnN0YWtlSW5kZXgBDHB1enpsZUFtb3VudAQKYWRkcmVzc1N0cgkApQgBCAUBaQxvcmlnaW5DYWxsZXIED3B1enpsZUF2YWlsYWJsZQkBDXRyeUdldEludGVnZXIBCQCsAgIFCmFkZHJlc3NTdHICDF9pbmRleFN0YWtlZAMJAQppc1NodXRkb3duAAkAAgECE2NvbnRyYWN0IGlzIG9uIHN0b3ADCQBmAgUMcHV6emxlQW1vdW50BQ9wdXp6bGVBdmFpbGFibGUJAAIBAiV5b3UgZG9uJ3QgaGF2ZSBpbmRleCB0b2tlbnMgYXZhaWxhYmxlAwkBCmlzU2h1dGRvd24ACQACAQITY29udHJhY3QgaXMgb24gc3RvcAkAzggCCAkBC2NsYWltUmVzdWx0AQgFAWkMb3JpZ2luQ2FsbGVyAl8xCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFCmFkZHJlc3NTdHICDF9pbmRleFN0YWtlZAkAZQIFD3B1enpsZUF2YWlsYWJsZQUMcHV6emxlQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhJnbG9iYWxfaW5kZXhTdGFrZWQJAGUCCQENdHJ5R2V0SW50ZWdlcgECEmdsb2JhbF9pbmRleFN0YWtlZAUMcHV6emxlQW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUMcHV6emxlQW1vdW50CQERQGV4dHJOYXRpdmUoMTA1NykBAhNnbG9iYWxfcG9vbFRva2VuX2lkBQNuaWwBaQERY2xhaW1JbmRleFJld2FyZHMAAwkBCmlzU2h1dGRvd24ACQACAQITY29udHJhY3QgaXMgb24gc3RvcAkBC2NsYWltUmVzdWx0AQgFAWkGY2FsbGVyAWkBDWV2YWx1YXRlQ2xhaW0BBHVzZXIJAJQKAgUDbmlsCAkBC2NsYWltUmVzdWx0AQkBEUBleHRyTmF0aXZlKDEwNjIpAQUEdXNlcgJfMgFpAQtyZWRlZW1JbmRleAEMc2VuZFRvT3JpZ2luBANwbXQJAJEDAggFAWkIcGF5bWVudHMAAAMJAQIhPQIIBQNwbXQHYXNzZXRJZAkBDHRyeUdldEJpbmFyeQECE2dsb2JhbF9wb29sVG9rZW5faWQJAAIBAh5wbGVhc2UgYXR0YWNoIHBvb2wgc2hhcmUgdG9rZW4DCQEKaXNTaHV0ZG93bgAJAAIBAhNjb250cmFjdCBpcyBvbiBzdG9wBAlQUmVkZWVtZWQIBQNwbXQGYW1vdW50BAZyZXN1bHQJARZoYW5kbGVQb29sVG9rZW5zUmVkZWVtAgUJUFJlZGVlbWVkAwUMc2VuZFRvT3JpZ2luCAUBaQxvcmlnaW5DYWxsZXIIBQFpBmNhbGxlcgkAzggCBQZyZXN1bHQJAMwIAgkBBEJ1cm4CCQEMdHJ5R2V0QmluYXJ5AQITZ2xvYmFsX3Bvb2xUb2tlbl9pZAUJUFJlZGVlbWVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhdnbG9iYWxfcG9vbFRva2VuX2Ftb3VudAkAZQIJAQ10cnlHZXRJbnRlZ2VyAQIXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQFCVBSZWRlZW1lZAUDbmlsAWkBBHN3YXACCGFzc2V0T3V0B21pbmltdW0EA3BtdAMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAkAAgECIXBsZWFzZSBhdHRhY2ggZXhhY3RseSBvbmUgcGF5bWVudAQIQW1vdW50SW4JAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAdBc3NldEluCAUDcG10B2Fzc2V0SWQECEFzc2V0T3V0CQENZ2V0QXNzZXRCeXRlcwEFCGFzc2V0T3V0BA5mZWVBc3NldE91dFN0cgkBDHRyeUdldFN0cmluZwECD3N0YXRpY19mZWVUb2tlbgQLZmVlQXNzZXRPdXQDCQAAAgUOZmVlQXNzZXRPdXRTdHICAAULdXNkbkFzc2V0SWQJAQ1nZXRBc3NldEJ5dGVzAQUOZmVlQXNzZXRPdXRTdHIEDkFzc2V0SW5CYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdnbG9iYWxfCQEOZ2V0QXNzZXRTdHJpbmcBBQdBc3NldEluAghfYmFsYW5jZQQPQXNzZXRPdXRCYWxhbmNlCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgdnbG9iYWxfBQhhc3NldE91dAIIX2JhbGFuY2UEC2ZlZUFtb3VudEluCQBrAwUIQW1vdW50SW4FA0ZlZQUIRmVlU2NhbGUEDWNsZWFuQW1vdW50SW4JAGUCBQhBbW91bnRJbgULZmVlQW1vdW50SW4ECUFtb3VudE91dAkBEmNhbGN1bGF0ZU91dEFtb3VudAUFDWNsZWFuQW1vdW50SW4FB0Fzc2V0SW4FCEFzc2V0T3V0BQ5Bc3NldEluQmFsYW5jZQUPQXNzZXRPdXRCYWxhbmNlBBBBc3NldE91dEJhbGFuY2UyCQBlAgUPQXNzZXRPdXRCYWxhbmNlBQlBbW91bnRPdXQED0Fzc2V0SW5CYWxhbmNlMgkAZAIFDkFzc2V0SW5CYWxhbmNlBQ1jbGVhbkFtb3VudEluBBJmZWVBc3NldE91dEJhbGFuY2UDCQAAAgULZmVlQXNzZXRPdXQFB0Fzc2V0SW4FD0Fzc2V0SW5CYWxhbmNlMgMJAAACBQtmZWVBc3NldE91dAUIQXNzZXRPdXQFEEFzc2V0T3V0QmFsYW5jZTIJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICB2dsb2JhbF8JAQ5nZXRBc3NldFN0cmluZwEFC2ZlZUFzc2V0T3V0AghfYmFsYW5jZQQMZmVlQW1vdW50T3V0CQESY2FsY3VsYXRlT3V0QW1vdW50BQULZmVlQW1vdW50SW4FB0Fzc2V0SW4FC2ZlZUFzc2V0T3V0BQ5Bc3NldEluQmFsYW5jZQUSZmVlQXNzZXRPdXRCYWxhbmNlAwkAZgIFB21pbmltdW0FCUFtb3VudE91dAkAAgECKWFtb3VudCB0byByZWNpZXZlIGlzIGxvd2VyIHRoYW4gZ2l2ZW4gb25lAwkAAAIFCEFzc2V0T3V0BQdBc3NldEluCQACAQIYdGhpcyBzd2FwIGlzIG5vdCBhbGxvd2VkAwkAZgIAAAkAZQIFD0Fzc2V0T3V0QmFsYW5jZQUJQW1vdW50T3V0CQACAQIbY29udHJhY3QgaXMgb3V0IG9mIHJlc2VydmVzAwkBCmlzU2h1dGRvd24ACQACAQITY29udHJhY3QgaXMgb24gc3RvcAQKY3JlYXRvckZlZQkAawMFDGZlZUFtb3VudE91dAABAAoEC3Byb3RvY29sRmVlCQBrAwUMZmVlQW1vdW50T3V0AAQACgQMc3Rha2luZ1RvcFVwAwMJAAACBQtmZWVBc3NldE91dAULdXNkbkFzc2V0SWQGCQAAAgULZmVlQXNzZXRPdXQFDXB1enpsZUFzc2V0SWQJAP0HBAkBB0FkZHJlc3MBARoBV5RojPnuormqn9b1jrypj2canAb0FimJuwILdG9wVXBSZXdhcmQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgULZmVlQXNzZXRPdXQFC3Byb3RvY29sRmVlBQNuaWwFBHVuaXQDCQAAAgUMc3Rha2luZ1RvcFVwBQxzdGFraW5nVG9wVXAEDG5ld0JhbGFuY2VJbgUPQXNzZXRJbkJhbGFuY2UyBA1uZXdCYWxhbmNlT3V0CQBlAgUQQXNzZXRPdXRCYWxhbmNlMgMJAAACBQhBc3NldE91dAULZmVlQXNzZXRPdXQFDGZlZUFtb3VudE91dAAABBJuZXdCYWxhbmNlRmVlQXNzZXQDAwkBAiE9AgULZmVlQXNzZXRPdXQFB0Fzc2V0SW4JAQIhPQIFC2ZlZUFzc2V0T3V0BQhBc3NldE91dAcJAGUCBRJmZWVBc3NldE91dEJhbGFuY2UFDGZlZUFtb3VudE91dAUEdW5pdAQNYXNzZXRJbkNoYW5nZQkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgdnbG9iYWxfCQEOZ2V0QXNzZXRTdHJpbmcBBQdBc3NldEluAghfYmFsYW5jZQUMbmV3QmFsYW5jZUluBA5hc3NldE91dENoYW5nZQkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgdnbG9iYWxfBQhhc3NldE91dAIIX2JhbGFuY2UFDW5ld0JhbGFuY2VPdXQEEWZlZUFzc2V0T3V0Q2hhbmdlAwkBAiE9AgUSbmV3QmFsYW5jZUZlZUFzc2V0BQR1bml0CQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICB2dsb2JhbF8JAQ5nZXRBc3NldFN0cmluZwEFC2ZlZUFzc2V0T3V0AghfYmFsYW5jZQkBBXZhbHVlAQUSbmV3QmFsYW5jZUZlZUFzc2V0CQELU3RyaW5nRW50cnkCAgVoZWxsbwIFd29ybGQEDHZvbHVtZVVwZGF0ZQkBEmNhbGN1bGF0ZVVzZG5WYWx1ZQQFB0Fzc2V0SW4FCEFtb3VudEluBQ5Bc3NldEluQmFsYW5jZQUSZmVlQXNzZXRPdXRCYWxhbmNlCQCUCgIJAM4IAgkAzAgCBQ5hc3NldE91dENoYW5nZQkAzAgCBQ1hc3NldEluQ2hhbmdlCQDMCAIFEWZlZUFzc2V0T3V0Q2hhbmdlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUJQW1vdW50T3V0BQhBc3NldE91dAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBCQEMdHJ5R2V0U3RyaW5nAQIQc3RhdGljX3Bvb2xPd25lcgUKY3JlYXRvckZlZQULZmVlQXNzZXRPdXQJAMwIAgkBDEludGVnZXJFbnRyeQICFGdsb2JhbF9lYXJuZWRCeU93bmVyCQBkAgkBDXRyeUdldEludGVnZXIBAhRnbG9iYWxfZWFybmVkQnlPd25lcgUKY3JlYXRvckZlZQkAzAgCCQEMSW50ZWdlckVudHJ5AgINZ2xvYmFsX3ZvbHVtZQkAZAIJAQ10cnlHZXRJbnRlZ2VyAQINZ2xvYmFsX3ZvbHVtZQUMdm9sdW1lVXBkYXRlBQNuaWwDCQAAAgUMc3Rha2luZ1RvcFVwBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQEaAVce4ftAMWuB5uxLVhsFLFGhk27fCbE80sEFC3Byb3RvY29sRmVlBQtmZWVBc3NldE91dAUDbmlsBQNuaWwFCUFtb3VudE91dAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQADCQEKaXNTaHV0ZG93bgAHAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQYJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDG1hc3RlclB1YktleYDFSUs=", "height": 3694784, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DrDbtkpptGT3kZRPqK9rYZokRR4BirpX95TA37ome3ci Next: 7dyhcRtxdFkZutTbaNjGEfxYdgDAzxTRFcFoMzXBEkiV Diff:
OldNewDifferences
77
88 let c = base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'
99
10-let d = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
10+let d = base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
1111
12-let e = "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS"
12+let e = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
1313
14-let f = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
14+let f = "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS"
1515
16-let g = Address(base58'3PFDgzu1UtswAkCMxqqQjbTeHaX4cMab8Kh')
16+let g = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
1717
18-let h = Address(base58'3PLjwHcz9NEuaTo63NZR9B9okQiKQxZSbmf')
18+let h = "9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi"
1919
20-let i = base58'4z8CKSYQBKkzx7PBb5uBP1YPa6YAHRNTApW1sQVHT5eU'
20+let i = Address(base58'3PFDgzu1UtswAkCMxqqQjbTeHaX4cMab8Kh')
2121
22-func j (k) = {
23- let l = getInteger(this, k)
24- if ($isInstanceOf(l, "Int"))
22+let j = Address(base58'3PLjwHcz9NEuaTo63NZR9B9okQiKQxZSbmf')
23+
24+let k = base58'4z8CKSYQBKkzx7PBb5uBP1YPa6YAHRNTApW1sQVHT5eU'
25+
26+func l (m) = {
27+ let n = getInteger(this, m)
28+ if ($isInstanceOf(n, "Int"))
2529 then {
26- let m = l
27- m
30+ let o = n
31+ o
2832 }
2933 else 0
3034 }
3135
3236
33-func n (k) = {
34- let l = getBinary(this, k)
35- if ($isInstanceOf(l, "ByteVector"))
37+func p (m) = {
38+ let n = getBinary(this, m)
39+ if ($isInstanceOf(n, "ByteVector"))
3640 then {
37- let m = l
38- m
41+ let o = n
42+ o
3943 }
4044 else base58''
4145 }
4246
4347
44-func o (k) = {
45- let l = getString(this, k)
46- if ($isInstanceOf(l, "String"))
48+func q (m) = {
49+ let n = getString(this, m)
50+ if ($isInstanceOf(n, "String"))
4751 then {
48- let m = l
49- m
52+ let o = n
53+ o
5054 }
5155 else ""
5256 }
5357
5458
55-func p (q) = {
56- let l = q
57- if ($isInstanceOf(l, "ByteVector"))
59+func r (s) = {
60+ let n = s
61+ if ($isInstanceOf(n, "ByteVector"))
5862 then {
59- let m = l
60- toBase58String(m)
63+ let o = n
64+ toBase58String(o)
6165 }
6266 else "WAVES"
6367 }
6468
6569
66-func r (s) = if ((s == "WAVES"))
70+func t (u) = if ((u == "WAVES"))
6771 then unit
68- else fromBase58String(s)
72+ else fromBase58String(u)
6973
7074
71-func t (u,v) = (u ++ [r(v)])
75+func v (w,x) = (w ++ [t(x)])
7276
7377
74-func w (u,v) = (u ++ [j((("static_" + p(v)) + "_weight"))])
78+func y (w,x) = (w ++ [l((("static_" + r(x)) + "_weight"))])
7579
7680
77-func x (u,v) = (u ++ [j((("static_" + p(v)) + "_decimals"))])
81+func z (w,x) = (w ++ [l((("static_" + r(x)) + "_decimals"))])
7882
7983
80-func y (u,v) = (u ++ [j((("static_" + p(v)) + "_scale"))])
84+func A (w,x) = (w ++ [l((("static_" + r(x)) + "_scale"))])
8185
8286
83-func z (u,v) = (u ++ [parseIntValue(v)])
87+func B (w,x) = (w ++ [parseIntValue(x)])
8488
8589
86-let A = j("static_tokensAmount")
90+let C = l("static_tokensAmount")
8791
88-let B = {
89- let C = split(o("static_tokenIds"), ",")
90- let D = size(C)
91- let E = nil
92- func F (G,H) = if ((H >= D))
93- then G
94- else t(G, C[H])
92+let D = {
93+ let E = split(q("static_tokenIds"), ",")
94+ let F = size(E)
95+ let G = nil
96+ func H (I,J) = if ((J >= F))
97+ then I
98+ else v(I, E[J])
9599
96- func I (G,H) = if ((H >= D))
97- then G
100+ func K (I,J) = if ((J >= F))
101+ then I
98102 else throw("List size exceeds 10")
99103
100- I(F(F(F(F(F(F(F(F(F(F(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
104+ K(H(H(H(H(H(H(H(H(H(H(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
101105 }
102106
103-let J = {
104- let C = B
105- let D = size(C)
106- let E = nil
107- func K (G,H) = if ((H >= D))
108- then G
109- else w(G, C[H])
107+let L = {
108+ let E = D
109+ let F = size(E)
110+ let G = nil
111+ func M (I,J) = if ((J >= F))
112+ then I
113+ else y(I, E[J])
110114
111- func L (G,H) = if ((H >= D))
112- then G
115+ func N (I,J) = if ((J >= F))
116+ then I
113117 else throw("List size exceeds 10")
114118
115- L(K(K(K(K(K(K(K(K(K(K(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
119+ N(M(M(M(M(M(M(M(M(M(M(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
116120 }
117121
118-let M = {
119- let C = B
120- let D = size(C)
121- let E = nil
122- func N (G,H) = if ((H >= D))
123- then G
124- else x(G, C[H])
122+let O = {
123+ let E = D
124+ let F = size(E)
125+ let G = nil
126+ func P (I,J) = if ((J >= F))
127+ then I
128+ else z(I, E[J])
125129
126- func O (G,H) = if ((H >= D))
127- then G
130+ func Q (I,J) = if ((J >= F))
131+ then I
128132 else throw("List size exceeds 10")
129133
130- O(N(N(N(N(N(N(N(N(N(N(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
134+ Q(P(P(P(P(P(P(P(P(P(P(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
131135 }
132136
133-let P = {
134- let C = B
135- let D = size(C)
136- let E = nil
137- func Q (G,H) = if ((H >= D))
138- then G
139- else y(G, C[H])
137+let R = {
138+ let E = D
139+ let F = size(E)
140+ let G = nil
141+ func S (I,J) = if ((J >= F))
142+ then I
143+ else A(I, E[J])
140144
141- func R (G,H) = if ((H >= D))
142- then G
145+ func T (I,J) = if ((J >= F))
146+ then I
143147 else throw("List size exceeds 10")
144148
145- R(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
149+ T(S(S(S(S(S(S(S(S(S(S(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
146150 }
147151
148-let S = j("static_fee")
152+let U = l("static_fee")
149153
150-let T = 4
151-
152-let U = 10000
153-
154-let V = 100000000
154+let V = 4
155155
156156 let W = 10000
157157
158-let X = 8
158+let X = 100000000
159159
160-let Y = pow(10, 0, X, 0, 0, HALFUP)
160+let Y = 10000
161161
162-let Z = B
162+let Z = 8
163163
164-func aa () = {
165- let l = getBoolean(Address(base58'3PEpv9hRFWEEBU22WRnLsw1bH4YGtcU728o'), "is_shutdown")
166- if ($isInstanceOf(l, "Boolean"))
164+let aa = pow(10, 0, Z, 0, 0, HALFUP)
165+
166+let ab = D
167+
168+func ac () = {
169+ let n = getBoolean(Address(base58'3PEpv9hRFWEEBU22WRnLsw1bH4YGtcU728o'), "is_shutdown")
170+ if ($isInstanceOf(n, "Boolean"))
167171 then {
168- let ab = l
169- ab
172+ let ad = n
173+ ad
170174 }
171175 else false
172176 }
173177
174178
175-func ac (ad) = {
176- let ae = p(B[ad])
177- j((("global_" + ae) + "_balance"))
179+func ae (af) = {
180+ let ag = r(D[af])
181+ l((("global_" + ag) + "_balance"))
178182 }
179183
180184
181-func af (ag,ae) = {
182- let ah = j("global_poolToken_amount")
183- let ai = j((("global_" + p(ae)) + "_balance"))
184- fraction(ag, ah, ai, DOWN)
185+func ah (ai,ag) = {
186+ let aj = l("global_poolToken_amount")
187+ let ak = l((("global_" + r(ag)) + "_balance"))
188+ fraction(ai, aj, ak, DOWN)
185189 }
186190
187191
188-func aj (ak) = {
189- func al (u,am) = {
190- let an = af(am.amount, am.assetId)
191- if ((an == 0))
192+func al (am) = {
193+ func an (w,ao) = {
194+ let ap = ah(ao.amount, ao.assetId)
195+ if ((ap == 0))
192196 then throw("one of the tokens amounts is too low")
193- else if (if ((u == 0))
197+ else if (if ((w == 0))
194198 then true
195- else (u > an))
196- then an
197- else u
199+ else (w > ap))
200+ then ap
201+ else w
198202 }
199203
200- let ao = {
201- let C = ak
202- let D = size(C)
203- let E = 0
204- func ap (G,H) = if ((H >= D))
205- then G
206- else al(G, C[H])
204+ let aq = {
205+ let E = am
206+ let F = size(E)
207+ let G = 0
208+ func ar (I,J) = if ((J >= F))
209+ then I
210+ else an(I, E[J])
207211
208- func aq (G,H) = if ((H >= D))
209- then G
212+ func as (I,J) = if ((J >= F))
213+ then I
210214 else throw("List size exceeds 10")
211215
212- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
216+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
213217 }
214- ao
218+ aq
215219 }
216220
217221
218-func ar (q,ag,as,at) = {
219- let au = indexOf(B, a)
220- let av = indexOf(B, c)
221- let aw = J[value(indexOf(B, q))]
222- if (if ((au == unit))
223- then (av == unit)
224- else false)
222+func at (s,ai,au,av) = {
223+ let aw = indexOf(D, a)
224+ let ax = indexOf(D, b)
225+ let ay = indexOf(D, c)
226+ let az = indexOf(D, unit)
227+ let aA = l((("static_" + r(s)) + "_weight"))
228+ let aB = q("static_feeToken")
229+ if ((aB == f))
225230 then {
226- let ax = J[value(indexOf(B, b))]
227- let ay = j((("global_" + e) + "_balance"))
228- let az = fraction(ag, (ay / ax), (as / aw))
229- let aA = getIntegerValue(g, "global_lastPuzzlePrice")
230- fraction((az * aA), 1, V)
231+ let aC = L[value(indexOf(D, b))]
232+ let aD = l((("global_" + f) + "_balance"))
233+ let aE = fraction(ai, (aD / aC), (au / aA))
234+ let aF = getIntegerValue(i, "global_lastPuzzlePrice")
235+ fraction((aE * aF), 1, X)
231236 }
232- else if ((av != unit))
237+ else if ((aB == g))
233238 then {
234- let aB = J[value(av)]
235- let aC = j((("global_" + f) + "_balance"))
236- fraction(ag, (aC / aB), (as / aw))
239+ let aG = L[value(ay)]
240+ let aH = l((("global_" + g) + "_balance"))
241+ fraction(ai, (aH / aG), (au / aA))
237242 }
238- else {
239- let aD = J[value(indexOf(B, a))]
240- let aE = {
241- let l = at
242- if ($isInstanceOf(l, "Int"))
243- then {
244- let ab = l
245- at
246- }
247- else j((("global_" + p(a)) + "_balance"))
243+ else if ((aB == e))
244+ then {
245+ let aI = L[value(indexOf(D, a))]
246+ let aJ = {
247+ let n = av
248+ if ($isInstanceOf(n, "Int"))
249+ then {
250+ let ad = n
251+ av
252+ }
253+ else l((("global_" + r(a)) + "_balance"))
254+ }
255+ fraction(ai, (value(aJ) / aI), (au / aA))
248256 }
249- fraction(ag, (value(aE) / aD), (as / aw))
250- }
257+ else {
258+ let aK = 3000
259+ let aL = (l("global_WAVES_balance") / 50)
260+ fraction(ai, (aL / aK), (au / aA))
261+ }
251262 }
252263
253264
254-func aF (ak) = {
255- func aG (u,aH) = (u ++ [aH.assetId])
265+func aM (am) = {
266+ func aN (w,aO) = (w ++ [aO.assetId])
256267
257- let aI = {
258- let C = ak
259- let D = size(C)
260- let E = nil
261- func ap (G,H) = if ((H >= D))
262- then G
263- else aG(G, C[H])
268+ let aP = {
269+ let E = am
270+ let F = size(E)
271+ let G = nil
272+ func ar (I,J) = if ((J >= F))
273+ then I
274+ else aN(I, E[J])
264275
265- func aq (G,H) = if ((H >= D))
266- then G
276+ func as (I,J) = if ((J >= F))
277+ then I
267278 else throw("List size exceeds 10")
268279
269- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
280+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
270281 }
271- if ((aI == aI))
282+ if ((aP == aP))
272283 then {
273- func aJ (u,q) = if ((indexOf(aI, q) != unit))
274- then (u + 1)
275- else throw(("asset not attached: " + p(q)))
284+ func aQ (w,s) = if ((indexOf(aP, s) != unit))
285+ then (w + 1)
286+ else throw(("asset not attached: " + r(s)))
276287
277- let aK = {
278- let C = B
279- let D = size(C)
280- let E = 0
281- func aL (G,H) = if ((H >= D))
282- then G
283- else aJ(G, C[H])
288+ let aR = {
289+ let E = D
290+ let F = size(E)
291+ let G = 0
292+ func aS (I,J) = if ((J >= F))
293+ then I
294+ else aQ(I, E[J])
284295
285- func aM (G,H) = if ((H >= D))
286- then G
296+ func aT (I,J) = if ((J >= F))
297+ then I
287298 else throw("List size exceeds 10")
288299
289- aM(aL(aL(aL(aL(aL(aL(aL(aL(aL(aL(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
300+ aT(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
290301 }
291- if ((aK == aK))
302+ if ((aR == aR))
292303 then true
293304 else throw("Strict value is not equal to itself.")
294305 }
296307 }
297308
298309
299-func aN (an,ak,aO,aP) = {
300- func aQ (ae) = {
301- func al (u,aH) = if ((aH.assetId == ae))
302- then aH.amount
303- else u
310+func aU (ap,am,aV,aW) = {
311+ func aX (ag) = {
312+ func an (w,aO) = if ((aO.assetId == ag))
313+ then aO.amount
314+ else w
304315
305- let C = ak
306- let D = size(C)
307- let E = 0
308- func ap (G,H) = if ((H >= D))
309- then G
310- else al(G, C[H])
316+ let E = am
317+ let F = size(E)
318+ let G = 0
319+ func ar (I,J) = if ((J >= F))
320+ then I
321+ else an(I, E[J])
311322
312- func aq (G,H) = if ((H >= D))
313- then G
323+ func as (I,J) = if ((J >= F))
324+ then I
314325 else throw("List size exceeds 10")
315326
316- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
327+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
317328 }
318329
319- func aR (u,ae) = {
320- let aS = j((("global_" + p(ae)) + "_balance"))
321- let aT = j("global_poolToken_amount")
322- let aU = j((("static_" + p(ae)) + "_scale"))
323- let aV = fraction((fraction((aT + an), aU, aT, CEILING) - aU), aS, aU, CEILING)
324- let aW = aQ(ae)
325- let aX = ((if ((aW != 0))
326- then aW
327- else 0) - aV)
328- let aY = if (if (aP)
329- then (aX > 0)
330+ func aY (w,ag) = {
331+ let aZ = l((("global_" + r(ag)) + "_balance"))
332+ let ba = l("global_poolToken_amount")
333+ let bb = l((("static_" + r(ag)) + "_scale"))
334+ let bc = fraction((fraction((ba + ap), bb, ba, CEILING) - bb), aZ, bb, CEILING)
335+ let bd = aX(ag)
336+ let be = ((if ((bd != 0))
337+ then bd
338+ else 0) - bc)
339+ let bf = if (if (aW)
340+ then (be > 0)
330341 else false)
331- then [ScriptTransfer(aO, aX, ae)]
342+ then [ScriptTransfer(aV, be, ag)]
332343 else nil
333- ((u ++ aY) ++ [IntegerEntry((("global_" + p(ae)) + "_balance"), (aS + aV))])
344+ ((w ++ bf) ++ [IntegerEntry((("global_" + r(ag)) + "_balance"), (aZ + bc))])
334345 }
335346
336- let C = B
337- let D = size(C)
338- let E = nil
339- func ap (G,H) = if ((H >= D))
340- then G
341- else aR(G, C[H])
347+ let E = D
348+ let F = size(E)
349+ let G = nil
350+ func ar (I,J) = if ((J >= F))
351+ then I
352+ else aY(I, E[J])
342353
343- func aq (G,H) = if ((H >= D))
344- then G
354+ func as (I,J) = if ((J >= F))
355+ then I
345356 else throw("List size exceeds 10")
346357
347- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
358+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
348359 }
349360
350361
351-func aZ (ba,aO) = {
352- func bb (u,ae) = {
353- let aS = j((("global_" + p(ae)) + "_balance"))
354- let aT = j("global_poolToken_amount")
355- let aU = j((("static_" + p(ae)) + "_scale"))
356- let ag = toInt(fraction((toBigInt(V) - fraction(toBigInt((aT - ba)), toBigInt(V), toBigInt(aT), CEILING)), toBigInt(aS), toBigInt(V), DOWN))
357- (u ++ [IntegerEntry((("global_" + p(ae)) + "_balance"), (aS - ag)), ScriptTransfer(aO, ag, ae)])
362+func bg (bh,aV) = {
363+ func bi (w,ag) = {
364+ let aZ = l((("global_" + r(ag)) + "_balance"))
365+ let ba = l("global_poolToken_amount")
366+ let bb = l((("static_" + r(ag)) + "_scale"))
367+ let ai = toInt(fraction((toBigInt(X) - fraction(toBigInt((ba - bh)), toBigInt(X), toBigInt(ba), CEILING)), toBigInt(aZ), toBigInt(X), DOWN))
368+ (w ++ [IntegerEntry((("global_" + r(ag)) + "_balance"), (aZ - ai)), ScriptTransfer(aV, ai, ag)])
358369 }
359370
360- let C = B
361- let D = size(C)
362- let E = nil
363- func ap (G,H) = if ((H >= D))
364- then G
365- else bb(G, C[H])
371+ let E = D
372+ let F = size(E)
373+ let G = nil
374+ func ar (I,J) = if ((J >= F))
375+ then I
376+ else bi(I, E[J])
366377
367- func aq (G,H) = if ((H >= D))
368- then G
378+ func as (I,J) = if ((J >= F))
379+ then I
369380 else throw("List size exceeds 10")
370381
371- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
382+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
372383 }
373384
374385
375-func bc (bd,be,bf,bg,bh) = {
376- let bi = value(indexOf(B, be))
377- let bj = value(indexOf(B, bf))
378- if ((bi == bj))
379- then bd
380- else fraction(bh, ((V * V) - toInt(pow(fraction(toBigInt(bg), toBigInt((V * V)), toBigInt((bg + bd)), HALFUP), 16, toBigInt(fraction(J[bi], 10000, J[bj])), 4, 16, CEILING))), (V * V), DOWN)
386+func bj (bk,bl,bm,bn,bo) = {
387+ let bp = value(indexOf(D, bl))
388+ let bq = value(indexOf(D, bm))
389+ if ((bp == bq))
390+ then bk
391+ else fraction(bo, ((X * X) - toInt(pow(fraction(toBigInt(bn), toBigInt((X * X)), toBigInt((bn + bk)), HALFUP), 16, toBigInt(fraction(L[bp], 10000, L[bq])), 4, 16, CEILING))), (X * X), DOWN)
381392 }
382393
383394
384-func bk (q) = {
385- let l = q
386- if ($isInstanceOf(l, "ByteVector"))
395+func br (s) = {
396+ let n = s
397+ if ($isInstanceOf(n, "ByteVector"))
387398 then {
388- let aY = l
389- assetBalance(this, aY)
399+ let bf = n
400+ assetBalance(this, bf)
390401 }
391402 else wavesBalance(this).available
392403 }
393404
394405
395-func bl (q,s,as,bm) = {
396- let bn = j("global_indexStaked")
397- let bo = bm
398- let bp = (bk(q) - as)
399- let bq = if ((bp > bo))
400- then bp
401- else bo
402- let br = (bq - bo)
403- let bs = if ((bn == 0))
406+func bs (s,u,au,bt) = {
407+ let bu = l("global_indexStaked")
408+ let bv = bt
409+ let bw = (br(s) - au)
410+ let bx = if ((bw > bv))
411+ then bw
412+ else bv
413+ let by = (bx - bv)
414+ let bz = if ((bu == 0))
404415 then 0
405- else fraction(br, V, bn)
406- let bt = j((("global_lastCheck_" + s) + "_interest"))
407- (bt + bs)
416+ else fraction(by, X, bu)
417+ let bA = l((("global_lastCheck_" + u) + "_interest"))
418+ (bA + bz)
408419 }
409420
410421
411-func bu (bv) = {
412- let bw = toString(bv)
413- let bx = j((bw + "_indexStaked"))
414- func al (u,q) = {
415- let s = p(q)
416- let as = j((("global_" + p(q)) + "_balance"))
417- let bm = j((("global_lastCheck_" + s) + "_earnings"))
418- let by = bl(q, s, as, bm)
419- let bq = max([bm, (bk(q) - as)])
420- let bz = fraction(bx, (by - j((((bw + "_lastCheck_") + s) + "_interest"))), V)
421- let bA = if ((bz == 0))
422+func bB (bC) = {
423+ let bD = toString(bC)
424+ let bE = l((bD + "_indexStaked"))
425+ func an (w,s) = {
426+ let u = r(s)
427+ let au = l((("global_" + r(s)) + "_balance"))
428+ let bt = l((("global_lastCheck_" + u) + "_earnings"))
429+ let bF = bs(s, u, au, bt)
430+ let bx = max([bt, (br(s) - au)])
431+ let bG = fraction(bE, (bF - l((((bD + "_lastCheck_") + u) + "_interest"))), X)
432+ let bH = if ((bG == 0))
422433 then nil
423- else [ScriptTransfer(bv, bz, q)]
424- $Tuple2(((u._1 ++ bA) ++ [IntegerEntry((("global_lastCheck_" + s) + "_earnings"), (bq - bz)), IntegerEntry((("global_lastCheck_" + s) + "_interest"), by), IntegerEntry((((bw + "_lastCheck_") + s) + "_interest"), by)]), (u._2 + ar(q, bz, as, unit)))
434+ else [ScriptTransfer(bC, bG, s)]
435+ $Tuple2(((w._1 ++ bH) ++ [IntegerEntry((("global_lastCheck_" + u) + "_earnings"), (bx - bG)), IntegerEntry((("global_lastCheck_" + u) + "_interest"), bF), IntegerEntry((((bD + "_lastCheck_") + u) + "_interest"), bF)]), (w._2 + at(s, bG, au, unit)))
425436 }
426437
427- let u = {
428- let C = Z
429- let D = size(C)
430- let E = $Tuple2(nil, 0)
431- func ap (G,H) = if ((H >= D))
432- then G
433- else al(G, C[H])
438+ let w = {
439+ let E = ab
440+ let F = size(E)
441+ let G = $Tuple2(nil, 0)
442+ func ar (I,J) = if ((J >= F))
443+ then I
444+ else an(I, E[J])
434445
435- func aq (G,H) = if ((H >= D))
436- then G
446+ func as (I,J) = if ((J >= F))
447+ then I
437448 else throw("List size exceeds 10")
438449
439- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
450+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
440451 }
441- $Tuple2((u._1 ++ [IntegerEntry((bw + "_claimedRewardValue"), (j((bw + "_claimedRewardValue")) + u._2)), IntegerEntry((bw + "_lastClaim"), lastBlock.timestamp)]), u._2)
452+ $Tuple2((w._1 ++ [IntegerEntry((bD + "_claimedRewardValue"), (l((bD + "_claimedRewardValue")) + w._2)), IntegerEntry((bD + "_lastClaim"), lastBlock.timestamp)]), w._2)
442453 }
443454
444455
445-func bB (bw,ag) = {
446- let bC = bu(addressFromStringValue(bw))._1
447- (bC ++ [IntegerEntry((bw + "_indexStaked"), (j((bw + "_indexStaked")) + ag)), IntegerEntry("global_indexStaked", (j("global_indexStaked") + ag))])
456+func bI (bD,ai) = {
457+ let bJ = bB(addressFromStringValue(bD))._1
458+ (bJ ++ [IntegerEntry((bD + "_indexStaked"), (l((bD + "_indexStaked")) + ai)), IntegerEntry("global_indexStaked", (l("global_indexStaked") + ai))])
448459 }
449460
450461
451-func bD (u,bE) = (u + parseIntValue(bE))
462+func bK (w,bL) = (w + parseIntValue(bL))
452463
453464
454-@Callable(bF)
455-func preInit (bG,bH,bI,bJ,bK,bL) = {
456- let bM = Address(fromBase58String(bK))
457- if (aa())
465+@Callable(bM)
466+func preInit (bN,bO,bP,bQ,bR,bS) = {
467+ let bT = Address(fromBase58String(bR))
468+ if (ac())
458469 then throw("contract is on stop")
459- else if ((this != bF.caller))
470+ else if ((this != bM.caller))
460471 then throw("admin only")
461- else if ((size(bJ) > 13))
472+ else if ((size(bQ) > 13))
462473 then throw("too large pool domain")
463- else if (if ((bL > 500))
474+ else if (if ((bS > 500))
464475 then true
465- else (50 > bL))
476+ else (50 > bS))
466477 then throw("fee value must be between 50 and 500 (0.5-5%)")
467- else if (if (if ((indexOf(bG, e) == unit))
468- then (indexOf(bG, d) == unit)
478+ else if (if (if (if (if ((indexOf(bN, f) == unit))
479+ then (indexOf(bN, e) == unit)
469480 else false)
470- then (indexOf(bG, f) == unit)
481+ then (indexOf(bN, g) == unit)
471482 else false)
472- then throw("pool must have USDT, USDN or PUZZLE in the composition")
483+ then (indexOf(bN, "WAVES") == unit)
484+ else false)
485+ then (indexOf(bN, h) == unit)
486+ else false)
487+ then throw("pool must have USDT-WXG, USDT-PPT, USDN, WAVES or PUZZLE in the composition")
473488 else {
474- let bN = split(bG, ",")
475- let bO = {
476- let C = bN
477- let D = size(C)
478- let E = nil
479- func ap (G,H) = if ((H >= D))
480- then G
481- else t(G, C[H])
489+ let bU = split(bN, ",")
490+ let bV = {
491+ let E = bU
492+ let F = size(E)
493+ let G = nil
494+ func ar (I,J) = if ((J >= F))
495+ then I
496+ else v(I, E[J])
482497
483- func aq (G,H) = if ((H >= D))
484- then G
498+ func as (I,J) = if ((J >= F))
499+ then I
485500 else throw("List size exceeds 10")
486501
487- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
502+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
488503 }
489- let bP = split(bH, ",")
490- let bQ = {
491- let C = bP
492- let D = size(C)
493- let E = 0
494- func aL (G,H) = if ((H >= D))
495- then G
496- else bD(G, C[H])
504+ let bW = split(bO, ",")
505+ let bX = {
506+ let E = bW
507+ let F = size(E)
508+ let G = 0
509+ func aS (I,J) = if ((J >= F))
510+ then I
511+ else bK(I, E[J])
497512
498- func aM (G,H) = if ((H >= D))
499- then G
513+ func aT (I,J) = if ((J >= F))
514+ then I
500515 else throw("List size exceeds 10")
501516
502- aM(aL(aL(aL(aL(aL(aL(aL(aL(aL(aL(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
517+ aT(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
503518 }
504- let bR = if ((indexOf(bG, d) == unit))
505- then if ((indexOf(bG, e) == unit))
506- then f
507- else e
508- else d
509- func bS (u,bT) = if ((bT >= size(bO)))
510- then u
519+ let aB = if ((indexOf(bN, e) != unit))
520+ then e
521+ else if ((indexOf(bN, "WAVES") != unit))
522+ then "WAVES"
523+ else if ((indexOf(bN, g) != unit))
524+ then g
525+ else if ((indexOf(bN, f) != unit))
526+ then f
527+ else h
528+ func bY (w,bZ) = if ((bZ >= size(bV)))
529+ then w
511530 else {
512- let bU = {
513- let l = bO[bT]
514- if ($isInstanceOf(l, "ByteVector"))
531+ let ca = {
532+ let n = bV[bZ]
533+ if ($isInstanceOf(n, "ByteVector"))
515534 then {
516- let ab = l
517- value(assetInfo(ab)).decimals
535+ let ad = n
536+ value(assetInfo(ad)).decimals
518537 }
519538 else 8
520539 }
521- (u ++ [IntegerEntry((("static_" + bN[bT]) + "_scale"), pow(10, 0, bU, 0, 0, DOWN)), IntegerEntry((("static_" + bN[bT]) + "_decimals"), bU), IntegerEntry((("static_" + bN[bT]) + "_weight"), value(parseInt(bP[bT])))])
540+ (w ++ [IntegerEntry((("static_" + bU[bZ]) + "_scale"), pow(10, 0, ca, 0, 0, DOWN)), IntegerEntry((("static_" + bU[bZ]) + "_decimals"), ca), IntegerEntry((("static_" + bU[bZ]) + "_weight"), value(parseInt(bW[bZ])))])
522541 }
523542
524- if ((bQ != 10000))
543+ if ((bX != 10000))
525544 then throw("sum of token weights must be equal to 10000")
526545 else ({
527- let C = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
528- let D = size(C)
529- let E = nil
530- func bV (G,H) = if ((H >= D))
531- then G
532- else bS(G, C[H])
546+ let E = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
547+ let F = size(E)
548+ let G = nil
549+ func cb (I,J) = if ((J >= F))
550+ then I
551+ else bY(I, E[J])
533552
534- func bW (G,H) = if ((H >= D))
535- then G
553+ func cc (I,J) = if ((J >= F))
554+ then I
536555 else throw("List size exceeds 10")
537556
538- bW(bV(bV(bV(bV(bV(bV(bV(bV(bV(bV(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
539- } ++ [StringEntry("static_tokenIds", bG), StringEntry("static_feeToken", bR), StringEntry("static_tokenWeights", bH), IntegerEntry("static_tokensAmount", size(bO)), StringEntry("static_poolDomain", bJ), StringEntry("static_baseTokenId", bI), StringEntry("static_poolOwner", bK), IntegerEntry("static_fee", bL)])
557+ cc(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
558+ } ++ [StringEntry("static_tokenIds", bN), StringEntry("static_feeToken", aB), StringEntry("static_tokenWeights", bO), IntegerEntry("static_tokensAmount", size(bV)), StringEntry("static_poolDomain", bQ), StringEntry("static_baseTokenId", bP), StringEntry("static_poolOwner", bR), IntegerEntry("static_fee", bS)])
540559 }
541560 }
542561
543562
544563
545-@Callable(bF)
546-func deInit () = if (aa())
564+@Callable(bM)
565+func deInit () = if (ac())
547566 then throw("contract is on stop")
548- else if ((bF.caller != this))
567+ else if ((bM.caller != this))
549568 then throw("admin only")
550569 else [IntegerEntry("global_wasInited", 0)]
551570
552571
553572
554-@Callable(bF)
573+@Callable(bM)
555574 func init () = {
556- func bX () = {
557- func al (u,bE) = (u ++ [IntegerEntry((("global_" + p(bE.assetId)) + "_balance"), bE.amount)])
575+ func cd () = {
576+ func an (w,bL) = (w ++ [IntegerEntry((("global_" + r(bL.assetId)) + "_balance"), bL.amount)])
558577
559- let C = bF.payments
560- let D = size(C)
561- let E = nil
562- func ap (G,H) = if ((H >= D))
563- then G
564- else al(G, C[H])
578+ let E = bM.payments
579+ let F = size(E)
580+ let G = nil
581+ func ar (I,J) = if ((J >= F))
582+ then I
583+ else an(I, E[J])
565584
566- func aq (G,H) = if ((H >= D))
567- then G
585+ func as (I,J) = if ((J >= F))
586+ then I
568587 else throw("List size exceeds 10")
569588
570- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
589+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
571590 }
572591
573- func bY (ak) = {
574- func al (u,bZ) = {
575- let q = bZ.assetId
576- func aJ (u,bE) = if ((bE == q))
577- then value(indexOf(B, bE))
578- else u
592+ func ce (am) = {
593+ func an (w,cf) = {
594+ let s = cf.assetId
595+ func aQ (w,bL) = if ((bL == s))
596+ then value(indexOf(D, bL))
597+ else w
579598
580- let ca = {
581- let C = B
582- let D = size(C)
583- let E = 1
584- func ap (G,H) = if ((H >= D))
585- then G
586- else aJ(G, C[H])
599+ let cg = {
600+ let E = D
601+ let F = size(E)
602+ let G = 1
603+ func ar (I,J) = if ((J >= F))
604+ then I
605+ else aQ(I, E[J])
587606
588- func aq (G,H) = if ((H >= D))
589- then G
607+ func as (I,J) = if ((J >= F))
608+ then I
590609 else throw("List size exceeds 10")
591610
592- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
611+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
593612 }
594- fraction(u, pow(bZ.amount, M[ca], J[ca], T, 8, FLOOR), V)
613+ fraction(w, pow(cf.amount, O[cg], L[cg], V, 8, FLOOR), X)
595614 }
596615
597- let C = ak
598- let D = size(C)
599- let E = Y
600- func ap (G,H) = if ((H >= D))
601- then G
602- else al(G, C[H])
616+ let E = am
617+ let F = size(E)
618+ let G = aa
619+ func ar (I,J) = if ((J >= F))
620+ then I
621+ else an(I, E[J])
603622
604- func aq (G,H) = if ((H >= D))
605- then G
623+ func as (I,J) = if ((J >= F))
624+ then I
606625 else throw("List size exceeds 10")
607626
608- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
627+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
609628 }
610629
611- if (aa())
630+ if (ac())
612631 then throw("contract is on stop")
613- else if ((j("global_wasInited") > 0))
632+ else if ((l("global_wasInited") > 0))
614633 then throw("pool already inited")
615634 else {
616- let cb = bY(bF.payments)
617- if ((cb == 0))
635+ let ch = ce(bM.payments)
636+ if ((ch == 0))
618637 then throw("you need a bigger tokens amount to launch the pool")
619638 else {
620- let cc = Issue(("PZ " + o("static_poolDomain")), "Puzzle Swap: pool index token", cb, X, true, unit, 0)
621- let cd = calculateAssetId(cc)
622- (bX() ++ [cc, IntegerEntry("global_poolToken_amount", cb), IntegerEntry("global_wasInited", 1), BinaryEntry("global_poolToken_id", cd), StringEntry("static_poolToken_idStr", p(cd)), IntegerEntry((toString(bF.caller) + "_indexStaked"), cb), IntegerEntry("global_indexStaked", cb)])
639+ let ci = Issue(("PZ " + q("static_poolDomain")), "Puzzle Swap: pool index token", ch, Z, true, unit, 0)
640+ let cj = calculateAssetId(ci)
641+ (cd() ++ [ci, IntegerEntry("global_poolToken_amount", ch), IntegerEntry("global_wasInited", 1), BinaryEntry("global_poolToken_id", cj), StringEntry("static_poolToken_idStr", r(cj)), IntegerEntry((toString(bM.caller) + "_indexStaked"), ch), IntegerEntry("global_indexStaked", ch)])
623642 }
624643 }
625644 }
626645
627646
628647
629-@Callable(bF)
630-func generateIndex (aP) = if (aa())
631- then throw("contract is on stop")
632- else if ((size(bF.payments) != A))
633- then throw(("you need to attach all pool tokens. amount of pool tokens: " + toString(A)))
634- else if (!(aF(bF.payments)))
635- then throw("wrong assets attached")
636- else {
637- let an = aj(bF.payments)
638- let ce = Reissue(getBinaryValue("global_poolToken_id"), an, true)
639- let cf = aN(an, bF.payments, bF.originCaller, aP)
640- $Tuple2((cf ++ [ce, ScriptTransfer(bF.caller, an, n("global_poolToken_id")), IntegerEntry("global_poolToken_amount", (j("global_poolToken_amount") + an))]), an)
641- }
648+@Callable(bM)
649+func generateIndex (aW) = if ((size(bM.payments) != C))
650+ then throw(("you need to attach all pool tokens. amount of pool tokens: " + toString(C)))
651+ else if (!(aM(bM.payments)))
652+ then throw("wrong assets attached")
653+ else {
654+ let ap = al(bM.payments)
655+ let ck = Reissue(getBinaryValue("global_poolToken_id"), ap, true)
656+ let cl = aU(ap, bM.payments, bM.originCaller, aW)
657+ $Tuple2((cl ++ [ck, ScriptTransfer(bM.caller, ap, p("global_poolToken_id")), IntegerEntry("global_poolToken_amount", (l("global_poolToken_amount") + ap))]), ap)
658+ }
642659
643660
644661
645-@Callable(bF)
662+@Callable(bM)
646663 func stakeIndex () = {
647- let bw = toString(bF.originCaller)
648- let bZ = bF.payments[0]
649- if (aa())
650- then throw("contract is on stop")
651- else if ((value(bZ.assetId) != n("global_poolToken_id")))
652- then throw("wrong asset attached")
653- else bB(bw, bZ.amount)
664+ let bD = toString(bM.originCaller)
665+ let cf = bM.payments[0]
666+ if ((value(cf.assetId) != p("global_poolToken_id")))
667+ then throw("wrong asset attached")
668+ else bI(bD, cf.amount)
654669 }
655670
656671
657672
658-@Callable(bF)
659-func unstakeIndex (bx) = {
660- let bw = toString(bF.originCaller)
661- let cg = j((bw + "_indexStaked"))
662- if (aa())
673+@Callable(bM)
674+func unstakeIndex (bE) = {
675+ let bD = toString(bM.originCaller)
676+ let cm = l((bD + "_indexStaked"))
677+ if (ac())
663678 then throw("contract is on stop")
664- else if ((bx > cg))
679+ else if ((bE > cm))
665680 then throw("you don't have index tokens available")
666- else if (aa())
681+ else if (ac())
667682 then throw("contract is on stop")
668- else (bu(bF.originCaller)._1 ++ [IntegerEntry((bw + "_indexStaked"), (cg - bx)), IntegerEntry("global_indexStaked", (j("global_indexStaked") - bx)), ScriptTransfer(bF.caller, bx, getBinaryValue("global_poolToken_id"))])
683+ else (bB(bM.originCaller)._1 ++ [IntegerEntry((bD + "_indexStaked"), (cm - bE)), IntegerEntry("global_indexStaked", (l("global_indexStaked") - bE)), ScriptTransfer(bM.caller, bE, getBinaryValue("global_poolToken_id"))])
669684 }
670685
671686
672687
673-@Callable(bF)
674-func claimIndexRewards () = if (aa())
688+@Callable(bM)
689+func claimIndexRewards () = if (ac())
675690 then throw("contract is on stop")
676- else bu(bF.caller)
691+ else bB(bM.caller)
677692
678693
679694
680-@Callable(bF)
681-func evaluateClaim (ch) = $Tuple2(nil, bu(addressFromStringValue(ch))._2)
695+@Callable(bM)
696+func evaluateClaim (cn) = $Tuple2(nil, bB(addressFromStringValue(cn))._2)
682697
683698
684699
685-@Callable(bF)
686-func redeemIndex (ci) = {
687- let bZ = bF.payments[0]
688- if ((bZ.assetId != n("global_poolToken_id")))
700+@Callable(bM)
701+func redeemIndex (co) = {
702+ let cf = bM.payments[0]
703+ if ((cf.assetId != p("global_poolToken_id")))
689704 then throw("please attach pool share token")
690- else if (aa())
705+ else if (ac())
691706 then throw("contract is on stop")
692707 else {
693- let ba = bZ.amount
694- let cf = aZ(ba, if (ci)
695- then bF.originCaller
696- else bF.caller)
697- (cf ++ [Burn(n("global_poolToken_id"), ba), IntegerEntry("global_poolToken_amount", (j("global_poolToken_amount") - ba))])
708+ let bh = cf.amount
709+ let cl = bg(bh, if (co)
710+ then bM.originCaller
711+ else bM.caller)
712+ (cl ++ [Burn(p("global_poolToken_id"), bh), IntegerEntry("global_poolToken_amount", (l("global_poolToken_amount") - bh))])
698713 }
699714 }
700715
701716
702717
703-@Callable(bF)
704-func swap (bf,cj) = {
705- let bZ = if ((size(bF.payments) == 1))
706- then value(bF.payments[0])
718+@Callable(bM)
719+func swap (bm,cp) = {
720+ let cf = if ((size(bM.payments) == 1))
721+ then value(bM.payments[0])
707722 else throw("please attach exactly one payment")
708- let bd = value(bF.payments[0].amount)
709- let ck = bZ.assetId
710- let cl = r(bf)
711- let cm = o("static_feeToken")
712- let cn = if ((cm == ""))
723+ let bk = value(bM.payments[0].amount)
724+ let cq = cf.assetId
725+ let cr = t(bm)
726+ let cs = q("static_feeToken")
727+ let ct = if ((cs == ""))
713728 then a
714- else fromBase58String(cm)
715- let co = j((("global_" + p(ck)) + "_balance"))
716- let cp = j((("global_" + bf) + "_balance"))
717- let cq = fraction(bd, S, W)
718- let cr = (bd - cq)
719- let cs = bc(cr, ck, cl, co, cp)
720- let ct = (cp - cs)
721- let cu = (co + cr)
722- let cv = if ((cn == ck))
723- then cu
724- else if ((cn == cl))
725- then ct
726- else j((("global_" + p(cn)) + "_balance"))
727- let cw = bc(cq, ck, cn, co, cv)
728- if ((cj > cs))
729- then throw(("amount to recieve is lower than given one: " + toString(cs)))
730- else if ((cl == ck))
729+ else t(cs)
730+ let cu = l((("global_" + r(cq)) + "_balance"))
731+ let cv = l((("global_" + bm) + "_balance"))
732+ let cw = fraction(bk, U, Y)
733+ let cx = (bk - cw)
734+ let cy = bj(cx, cq, cr, cu, cv)
735+ let cz = (cv - cy)
736+ let cA = (cu + cx)
737+ let cB = if ((ct == cq))
738+ then cA
739+ else if ((ct == cr))
740+ then cz
741+ else l((("global_" + r(ct)) + "_balance"))
742+ let cC = bj(cw, cq, ct, cu, cB)
743+ if ((cp > cy))
744+ then throw("amount to recieve is lower than given one")
745+ else if ((cr == cq))
731746 then throw("this swap is not allowed")
732- else if ((0 > (cp - cs)))
747+ else if ((0 > (cv - cy)))
733748 then throw("contract is out of reserves")
734- else if (aa())
749+ else if (ac())
735750 then throw("contract is on stop")
736751 else {
737- let cx = fraction(cw, 1, 10)
738- let cy = fraction(cw, 4, 10)
739- let cz = if ((cn == a))
740- then reentrantInvoke(Address(base58'3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS'), "topUpReward", nil, [AttachedPayment(cn, cy)])
752+ let cD = fraction(cC, 1, 10)
753+ let cE = fraction(cC, 4, 10)
754+ let cF = if (if ((ct == a))
755+ then true
756+ else (ct == b))
757+ then reentrantInvoke(Address(base58'3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS'), "topUpReward", nil, [AttachedPayment(ct, cE)])
741758 else unit
742- if ((cz == cz))
759+ if ((cF == cF))
743760 then {
744- let cA = (cu - (if ((ck == cn))
745- then cw
761+ let cG = cA
762+ let cH = (cz - (if ((cr == ct))
763+ then cC
746764 else 0))
747- let cB = (ct - (if ((cl == cn))
748- then cw
749- else 0))
750- let cC = if (if ((cn != ck))
751- then (cn != cl)
765+ let cI = if (if ((ct != cq))
766+ then (ct != cr)
752767 else false)
753- then (cv - cw)
768+ then (cB - cC)
754769 else unit
755- let cD = IntegerEntry((("global_" + p(ck)) + "_balance"), cA)
756- let cE = IntegerEntry((("global_" + bf) + "_balance"), cB)
757- let cF = if ((cC != unit))
758- then IntegerEntry((("global_" + p(cn)) + "_balance"), cv)
770+ let cJ = IntegerEntry((("global_" + r(cq)) + "_balance"), cG)
771+ let cK = IntegerEntry((("global_" + bm) + "_balance"), cH)
772+ let cL = if ((cI != unit))
773+ then IntegerEntry((("global_" + r(ct)) + "_balance"), value(cI))
759774 else StringEntry("hello", "world")
760- $Tuple2(([cE, cD, cF, ScriptTransfer(bF.caller, cs, cl), ScriptTransfer(addressFromStringValue(o("static_poolOwner")), cx, cn), IntegerEntry("global_earnedByOwner", (j("global_earnedByOwner") + cx)), IntegerEntry("global_volume", (j("global_volume") + ar(ck, bd, co, cv)))] ++ (if ((cz == unit))
761- then [ScriptTransfer(Address(base58'3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe'), cy, cn)]
762- else nil)), cs)
775+ let cM = at(cq, bk, cu, cB)
776+ $Tuple2(([cK, cJ, cL, ScriptTransfer(bM.caller, cy, cr), ScriptTransfer(addressFromStringValue(q("static_poolOwner")), cD, ct), IntegerEntry("global_earnedByOwner", (l("global_earnedByOwner") + cD)), IntegerEntry("global_volume", (l("global_volume") + cM))] ++ (if ((cF == unit))
777+ then [ScriptTransfer(Address(base58'3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe'), cE, ct)]
778+ else nil)), cy)
763779 }
764780 else throw("Strict value is not equal to itself.")
765781 }
766782 }
767783
768784
769-@Verifier(cG)
770-func cH () = if (aa())
785+@Verifier(cN)
786+func cO () = if (ac())
771787 then false
772- else if (sigVerify(cG.bodyBytes, cG.proofs[0], cG.senderPublicKey))
788+ else if (sigVerify(cN.bodyBytes, cN.proofs[0], cN.senderPublicKey))
773789 then true
774- else sigVerify(cG.bodyBytes, cG.proofs[0], i)
790+ else sigVerify(cN.bodyBytes, cN.proofs[0], k)
775791
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
55
66 let b = base58'HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS'
77
88 let c = base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'
99
10-let d = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
10+let d = base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
1111
12-let e = "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS"
12+let e = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
1313
14-let f = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
14+let f = "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS"
1515
16-let g = Address(base58'3PFDgzu1UtswAkCMxqqQjbTeHaX4cMab8Kh')
16+let g = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
1717
18-let h = Address(base58'3PLjwHcz9NEuaTo63NZR9B9okQiKQxZSbmf')
18+let h = "9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi"
1919
20-let i = base58'4z8CKSYQBKkzx7PBb5uBP1YPa6YAHRNTApW1sQVHT5eU'
20+let i = Address(base58'3PFDgzu1UtswAkCMxqqQjbTeHaX4cMab8Kh')
2121
22-func j (k) = {
23- let l = getInteger(this, k)
24- if ($isInstanceOf(l, "Int"))
22+let j = Address(base58'3PLjwHcz9NEuaTo63NZR9B9okQiKQxZSbmf')
23+
24+let k = base58'4z8CKSYQBKkzx7PBb5uBP1YPa6YAHRNTApW1sQVHT5eU'
25+
26+func l (m) = {
27+ let n = getInteger(this, m)
28+ if ($isInstanceOf(n, "Int"))
2529 then {
26- let m = l
27- m
30+ let o = n
31+ o
2832 }
2933 else 0
3034 }
3135
3236
33-func n (k) = {
34- let l = getBinary(this, k)
35- if ($isInstanceOf(l, "ByteVector"))
37+func p (m) = {
38+ let n = getBinary(this, m)
39+ if ($isInstanceOf(n, "ByteVector"))
3640 then {
37- let m = l
38- m
41+ let o = n
42+ o
3943 }
4044 else base58''
4145 }
4246
4347
44-func o (k) = {
45- let l = getString(this, k)
46- if ($isInstanceOf(l, "String"))
48+func q (m) = {
49+ let n = getString(this, m)
50+ if ($isInstanceOf(n, "String"))
4751 then {
48- let m = l
49- m
52+ let o = n
53+ o
5054 }
5155 else ""
5256 }
5357
5458
55-func p (q) = {
56- let l = q
57- if ($isInstanceOf(l, "ByteVector"))
59+func r (s) = {
60+ let n = s
61+ if ($isInstanceOf(n, "ByteVector"))
5862 then {
59- let m = l
60- toBase58String(m)
63+ let o = n
64+ toBase58String(o)
6165 }
6266 else "WAVES"
6367 }
6468
6569
66-func r (s) = if ((s == "WAVES"))
70+func t (u) = if ((u == "WAVES"))
6771 then unit
68- else fromBase58String(s)
72+ else fromBase58String(u)
6973
7074
71-func t (u,v) = (u ++ [r(v)])
75+func v (w,x) = (w ++ [t(x)])
7276
7377
74-func w (u,v) = (u ++ [j((("static_" + p(v)) + "_weight"))])
78+func y (w,x) = (w ++ [l((("static_" + r(x)) + "_weight"))])
7579
7680
77-func x (u,v) = (u ++ [j((("static_" + p(v)) + "_decimals"))])
81+func z (w,x) = (w ++ [l((("static_" + r(x)) + "_decimals"))])
7882
7983
80-func y (u,v) = (u ++ [j((("static_" + p(v)) + "_scale"))])
84+func A (w,x) = (w ++ [l((("static_" + r(x)) + "_scale"))])
8185
8286
83-func z (u,v) = (u ++ [parseIntValue(v)])
87+func B (w,x) = (w ++ [parseIntValue(x)])
8488
8589
86-let A = j("static_tokensAmount")
90+let C = l("static_tokensAmount")
8791
88-let B = {
89- let C = split(o("static_tokenIds"), ",")
90- let D = size(C)
91- let E = nil
92- func F (G,H) = if ((H >= D))
93- then G
94- else t(G, C[H])
92+let D = {
93+ let E = split(q("static_tokenIds"), ",")
94+ let F = size(E)
95+ let G = nil
96+ func H (I,J) = if ((J >= F))
97+ then I
98+ else v(I, E[J])
9599
96- func I (G,H) = if ((H >= D))
97- then G
100+ func K (I,J) = if ((J >= F))
101+ then I
98102 else throw("List size exceeds 10")
99103
100- I(F(F(F(F(F(F(F(F(F(F(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
104+ K(H(H(H(H(H(H(H(H(H(H(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
101105 }
102106
103-let J = {
104- let C = B
105- let D = size(C)
106- let E = nil
107- func K (G,H) = if ((H >= D))
108- then G
109- else w(G, C[H])
107+let L = {
108+ let E = D
109+ let F = size(E)
110+ let G = nil
111+ func M (I,J) = if ((J >= F))
112+ then I
113+ else y(I, E[J])
110114
111- func L (G,H) = if ((H >= D))
112- then G
115+ func N (I,J) = if ((J >= F))
116+ then I
113117 else throw("List size exceeds 10")
114118
115- L(K(K(K(K(K(K(K(K(K(K(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
119+ N(M(M(M(M(M(M(M(M(M(M(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
116120 }
117121
118-let M = {
119- let C = B
120- let D = size(C)
121- let E = nil
122- func N (G,H) = if ((H >= D))
123- then G
124- else x(G, C[H])
122+let O = {
123+ let E = D
124+ let F = size(E)
125+ let G = nil
126+ func P (I,J) = if ((J >= F))
127+ then I
128+ else z(I, E[J])
125129
126- func O (G,H) = if ((H >= D))
127- then G
130+ func Q (I,J) = if ((J >= F))
131+ then I
128132 else throw("List size exceeds 10")
129133
130- O(N(N(N(N(N(N(N(N(N(N(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
134+ Q(P(P(P(P(P(P(P(P(P(P(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
131135 }
132136
133-let P = {
134- let C = B
135- let D = size(C)
136- let E = nil
137- func Q (G,H) = if ((H >= D))
138- then G
139- else y(G, C[H])
137+let R = {
138+ let E = D
139+ let F = size(E)
140+ let G = nil
141+ func S (I,J) = if ((J >= F))
142+ then I
143+ else A(I, E[J])
140144
141- func R (G,H) = if ((H >= D))
142- then G
145+ func T (I,J) = if ((J >= F))
146+ then I
143147 else throw("List size exceeds 10")
144148
145- R(Q(Q(Q(Q(Q(Q(Q(Q(Q(Q(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
149+ T(S(S(S(S(S(S(S(S(S(S(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
146150 }
147151
148-let S = j("static_fee")
152+let U = l("static_fee")
149153
150-let T = 4
151-
152-let U = 10000
153-
154-let V = 100000000
154+let V = 4
155155
156156 let W = 10000
157157
158-let X = 8
158+let X = 100000000
159159
160-let Y = pow(10, 0, X, 0, 0, HALFUP)
160+let Y = 10000
161161
162-let Z = B
162+let Z = 8
163163
164-func aa () = {
165- let l = getBoolean(Address(base58'3PEpv9hRFWEEBU22WRnLsw1bH4YGtcU728o'), "is_shutdown")
166- if ($isInstanceOf(l, "Boolean"))
164+let aa = pow(10, 0, Z, 0, 0, HALFUP)
165+
166+let ab = D
167+
168+func ac () = {
169+ let n = getBoolean(Address(base58'3PEpv9hRFWEEBU22WRnLsw1bH4YGtcU728o'), "is_shutdown")
170+ if ($isInstanceOf(n, "Boolean"))
167171 then {
168- let ab = l
169- ab
172+ let ad = n
173+ ad
170174 }
171175 else false
172176 }
173177
174178
175-func ac (ad) = {
176- let ae = p(B[ad])
177- j((("global_" + ae) + "_balance"))
179+func ae (af) = {
180+ let ag = r(D[af])
181+ l((("global_" + ag) + "_balance"))
178182 }
179183
180184
181-func af (ag,ae) = {
182- let ah = j("global_poolToken_amount")
183- let ai = j((("global_" + p(ae)) + "_balance"))
184- fraction(ag, ah, ai, DOWN)
185+func ah (ai,ag) = {
186+ let aj = l("global_poolToken_amount")
187+ let ak = l((("global_" + r(ag)) + "_balance"))
188+ fraction(ai, aj, ak, DOWN)
185189 }
186190
187191
188-func aj (ak) = {
189- func al (u,am) = {
190- let an = af(am.amount, am.assetId)
191- if ((an == 0))
192+func al (am) = {
193+ func an (w,ao) = {
194+ let ap = ah(ao.amount, ao.assetId)
195+ if ((ap == 0))
192196 then throw("one of the tokens amounts is too low")
193- else if (if ((u == 0))
197+ else if (if ((w == 0))
194198 then true
195- else (u > an))
196- then an
197- else u
199+ else (w > ap))
200+ then ap
201+ else w
198202 }
199203
200- let ao = {
201- let C = ak
202- let D = size(C)
203- let E = 0
204- func ap (G,H) = if ((H >= D))
205- then G
206- else al(G, C[H])
204+ let aq = {
205+ let E = am
206+ let F = size(E)
207+ let G = 0
208+ func ar (I,J) = if ((J >= F))
209+ then I
210+ else an(I, E[J])
207211
208- func aq (G,H) = if ((H >= D))
209- then G
212+ func as (I,J) = if ((J >= F))
213+ then I
210214 else throw("List size exceeds 10")
211215
212- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
216+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
213217 }
214- ao
218+ aq
215219 }
216220
217221
218-func ar (q,ag,as,at) = {
219- let au = indexOf(B, a)
220- let av = indexOf(B, c)
221- let aw = J[value(indexOf(B, q))]
222- if (if ((au == unit))
223- then (av == unit)
224- else false)
222+func at (s,ai,au,av) = {
223+ let aw = indexOf(D, a)
224+ let ax = indexOf(D, b)
225+ let ay = indexOf(D, c)
226+ let az = indexOf(D, unit)
227+ let aA = l((("static_" + r(s)) + "_weight"))
228+ let aB = q("static_feeToken")
229+ if ((aB == f))
225230 then {
226- let ax = J[value(indexOf(B, b))]
227- let ay = j((("global_" + e) + "_balance"))
228- let az = fraction(ag, (ay / ax), (as / aw))
229- let aA = getIntegerValue(g, "global_lastPuzzlePrice")
230- fraction((az * aA), 1, V)
231+ let aC = L[value(indexOf(D, b))]
232+ let aD = l((("global_" + f) + "_balance"))
233+ let aE = fraction(ai, (aD / aC), (au / aA))
234+ let aF = getIntegerValue(i, "global_lastPuzzlePrice")
235+ fraction((aE * aF), 1, X)
231236 }
232- else if ((av != unit))
237+ else if ((aB == g))
233238 then {
234- let aB = J[value(av)]
235- let aC = j((("global_" + f) + "_balance"))
236- fraction(ag, (aC / aB), (as / aw))
239+ let aG = L[value(ay)]
240+ let aH = l((("global_" + g) + "_balance"))
241+ fraction(ai, (aH / aG), (au / aA))
237242 }
238- else {
239- let aD = J[value(indexOf(B, a))]
240- let aE = {
241- let l = at
242- if ($isInstanceOf(l, "Int"))
243- then {
244- let ab = l
245- at
246- }
247- else j((("global_" + p(a)) + "_balance"))
243+ else if ((aB == e))
244+ then {
245+ let aI = L[value(indexOf(D, a))]
246+ let aJ = {
247+ let n = av
248+ if ($isInstanceOf(n, "Int"))
249+ then {
250+ let ad = n
251+ av
252+ }
253+ else l((("global_" + r(a)) + "_balance"))
254+ }
255+ fraction(ai, (value(aJ) / aI), (au / aA))
248256 }
249- fraction(ag, (value(aE) / aD), (as / aw))
250- }
257+ else {
258+ let aK = 3000
259+ let aL = (l("global_WAVES_balance") / 50)
260+ fraction(ai, (aL / aK), (au / aA))
261+ }
251262 }
252263
253264
254-func aF (ak) = {
255- func aG (u,aH) = (u ++ [aH.assetId])
265+func aM (am) = {
266+ func aN (w,aO) = (w ++ [aO.assetId])
256267
257- let aI = {
258- let C = ak
259- let D = size(C)
260- let E = nil
261- func ap (G,H) = if ((H >= D))
262- then G
263- else aG(G, C[H])
268+ let aP = {
269+ let E = am
270+ let F = size(E)
271+ let G = nil
272+ func ar (I,J) = if ((J >= F))
273+ then I
274+ else aN(I, E[J])
264275
265- func aq (G,H) = if ((H >= D))
266- then G
276+ func as (I,J) = if ((J >= F))
277+ then I
267278 else throw("List size exceeds 10")
268279
269- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
280+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
270281 }
271- if ((aI == aI))
282+ if ((aP == aP))
272283 then {
273- func aJ (u,q) = if ((indexOf(aI, q) != unit))
274- then (u + 1)
275- else throw(("asset not attached: " + p(q)))
284+ func aQ (w,s) = if ((indexOf(aP, s) != unit))
285+ then (w + 1)
286+ else throw(("asset not attached: " + r(s)))
276287
277- let aK = {
278- let C = B
279- let D = size(C)
280- let E = 0
281- func aL (G,H) = if ((H >= D))
282- then G
283- else aJ(G, C[H])
288+ let aR = {
289+ let E = D
290+ let F = size(E)
291+ let G = 0
292+ func aS (I,J) = if ((J >= F))
293+ then I
294+ else aQ(I, E[J])
284295
285- func aM (G,H) = if ((H >= D))
286- then G
296+ func aT (I,J) = if ((J >= F))
297+ then I
287298 else throw("List size exceeds 10")
288299
289- aM(aL(aL(aL(aL(aL(aL(aL(aL(aL(aL(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
300+ aT(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
290301 }
291- if ((aK == aK))
302+ if ((aR == aR))
292303 then true
293304 else throw("Strict value is not equal to itself.")
294305 }
295306 else throw("Strict value is not equal to itself.")
296307 }
297308
298309
299-func aN (an,ak,aO,aP) = {
300- func aQ (ae) = {
301- func al (u,aH) = if ((aH.assetId == ae))
302- then aH.amount
303- else u
310+func aU (ap,am,aV,aW) = {
311+ func aX (ag) = {
312+ func an (w,aO) = if ((aO.assetId == ag))
313+ then aO.amount
314+ else w
304315
305- let C = ak
306- let D = size(C)
307- let E = 0
308- func ap (G,H) = if ((H >= D))
309- then G
310- else al(G, C[H])
316+ let E = am
317+ let F = size(E)
318+ let G = 0
319+ func ar (I,J) = if ((J >= F))
320+ then I
321+ else an(I, E[J])
311322
312- func aq (G,H) = if ((H >= D))
313- then G
323+ func as (I,J) = if ((J >= F))
324+ then I
314325 else throw("List size exceeds 10")
315326
316- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
327+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
317328 }
318329
319- func aR (u,ae) = {
320- let aS = j((("global_" + p(ae)) + "_balance"))
321- let aT = j("global_poolToken_amount")
322- let aU = j((("static_" + p(ae)) + "_scale"))
323- let aV = fraction((fraction((aT + an), aU, aT, CEILING) - aU), aS, aU, CEILING)
324- let aW = aQ(ae)
325- let aX = ((if ((aW != 0))
326- then aW
327- else 0) - aV)
328- let aY = if (if (aP)
329- then (aX > 0)
330+ func aY (w,ag) = {
331+ let aZ = l((("global_" + r(ag)) + "_balance"))
332+ let ba = l("global_poolToken_amount")
333+ let bb = l((("static_" + r(ag)) + "_scale"))
334+ let bc = fraction((fraction((ba + ap), bb, ba, CEILING) - bb), aZ, bb, CEILING)
335+ let bd = aX(ag)
336+ let be = ((if ((bd != 0))
337+ then bd
338+ else 0) - bc)
339+ let bf = if (if (aW)
340+ then (be > 0)
330341 else false)
331- then [ScriptTransfer(aO, aX, ae)]
342+ then [ScriptTransfer(aV, be, ag)]
332343 else nil
333- ((u ++ aY) ++ [IntegerEntry((("global_" + p(ae)) + "_balance"), (aS + aV))])
344+ ((w ++ bf) ++ [IntegerEntry((("global_" + r(ag)) + "_balance"), (aZ + bc))])
334345 }
335346
336- let C = B
337- let D = size(C)
338- let E = nil
339- func ap (G,H) = if ((H >= D))
340- then G
341- else aR(G, C[H])
347+ let E = D
348+ let F = size(E)
349+ let G = nil
350+ func ar (I,J) = if ((J >= F))
351+ then I
352+ else aY(I, E[J])
342353
343- func aq (G,H) = if ((H >= D))
344- then G
354+ func as (I,J) = if ((J >= F))
355+ then I
345356 else throw("List size exceeds 10")
346357
347- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
358+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
348359 }
349360
350361
351-func aZ (ba,aO) = {
352- func bb (u,ae) = {
353- let aS = j((("global_" + p(ae)) + "_balance"))
354- let aT = j("global_poolToken_amount")
355- let aU = j((("static_" + p(ae)) + "_scale"))
356- let ag = toInt(fraction((toBigInt(V) - fraction(toBigInt((aT - ba)), toBigInt(V), toBigInt(aT), CEILING)), toBigInt(aS), toBigInt(V), DOWN))
357- (u ++ [IntegerEntry((("global_" + p(ae)) + "_balance"), (aS - ag)), ScriptTransfer(aO, ag, ae)])
362+func bg (bh,aV) = {
363+ func bi (w,ag) = {
364+ let aZ = l((("global_" + r(ag)) + "_balance"))
365+ let ba = l("global_poolToken_amount")
366+ let bb = l((("static_" + r(ag)) + "_scale"))
367+ let ai = toInt(fraction((toBigInt(X) - fraction(toBigInt((ba - bh)), toBigInt(X), toBigInt(ba), CEILING)), toBigInt(aZ), toBigInt(X), DOWN))
368+ (w ++ [IntegerEntry((("global_" + r(ag)) + "_balance"), (aZ - ai)), ScriptTransfer(aV, ai, ag)])
358369 }
359370
360- let C = B
361- let D = size(C)
362- let E = nil
363- func ap (G,H) = if ((H >= D))
364- then G
365- else bb(G, C[H])
371+ let E = D
372+ let F = size(E)
373+ let G = nil
374+ func ar (I,J) = if ((J >= F))
375+ then I
376+ else bi(I, E[J])
366377
367- func aq (G,H) = if ((H >= D))
368- then G
378+ func as (I,J) = if ((J >= F))
379+ then I
369380 else throw("List size exceeds 10")
370381
371- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
382+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
372383 }
373384
374385
375-func bc (bd,be,bf,bg,bh) = {
376- let bi = value(indexOf(B, be))
377- let bj = value(indexOf(B, bf))
378- if ((bi == bj))
379- then bd
380- else fraction(bh, ((V * V) - toInt(pow(fraction(toBigInt(bg), toBigInt((V * V)), toBigInt((bg + bd)), HALFUP), 16, toBigInt(fraction(J[bi], 10000, J[bj])), 4, 16, CEILING))), (V * V), DOWN)
386+func bj (bk,bl,bm,bn,bo) = {
387+ let bp = value(indexOf(D, bl))
388+ let bq = value(indexOf(D, bm))
389+ if ((bp == bq))
390+ then bk
391+ else fraction(bo, ((X * X) - toInt(pow(fraction(toBigInt(bn), toBigInt((X * X)), toBigInt((bn + bk)), HALFUP), 16, toBigInt(fraction(L[bp], 10000, L[bq])), 4, 16, CEILING))), (X * X), DOWN)
381392 }
382393
383394
384-func bk (q) = {
385- let l = q
386- if ($isInstanceOf(l, "ByteVector"))
395+func br (s) = {
396+ let n = s
397+ if ($isInstanceOf(n, "ByteVector"))
387398 then {
388- let aY = l
389- assetBalance(this, aY)
399+ let bf = n
400+ assetBalance(this, bf)
390401 }
391402 else wavesBalance(this).available
392403 }
393404
394405
395-func bl (q,s,as,bm) = {
396- let bn = j("global_indexStaked")
397- let bo = bm
398- let bp = (bk(q) - as)
399- let bq = if ((bp > bo))
400- then bp
401- else bo
402- let br = (bq - bo)
403- let bs = if ((bn == 0))
406+func bs (s,u,au,bt) = {
407+ let bu = l("global_indexStaked")
408+ let bv = bt
409+ let bw = (br(s) - au)
410+ let bx = if ((bw > bv))
411+ then bw
412+ else bv
413+ let by = (bx - bv)
414+ let bz = if ((bu == 0))
404415 then 0
405- else fraction(br, V, bn)
406- let bt = j((("global_lastCheck_" + s) + "_interest"))
407- (bt + bs)
416+ else fraction(by, X, bu)
417+ let bA = l((("global_lastCheck_" + u) + "_interest"))
418+ (bA + bz)
408419 }
409420
410421
411-func bu (bv) = {
412- let bw = toString(bv)
413- let bx = j((bw + "_indexStaked"))
414- func al (u,q) = {
415- let s = p(q)
416- let as = j((("global_" + p(q)) + "_balance"))
417- let bm = j((("global_lastCheck_" + s) + "_earnings"))
418- let by = bl(q, s, as, bm)
419- let bq = max([bm, (bk(q) - as)])
420- let bz = fraction(bx, (by - j((((bw + "_lastCheck_") + s) + "_interest"))), V)
421- let bA = if ((bz == 0))
422+func bB (bC) = {
423+ let bD = toString(bC)
424+ let bE = l((bD + "_indexStaked"))
425+ func an (w,s) = {
426+ let u = r(s)
427+ let au = l((("global_" + r(s)) + "_balance"))
428+ let bt = l((("global_lastCheck_" + u) + "_earnings"))
429+ let bF = bs(s, u, au, bt)
430+ let bx = max([bt, (br(s) - au)])
431+ let bG = fraction(bE, (bF - l((((bD + "_lastCheck_") + u) + "_interest"))), X)
432+ let bH = if ((bG == 0))
422433 then nil
423- else [ScriptTransfer(bv, bz, q)]
424- $Tuple2(((u._1 ++ bA) ++ [IntegerEntry((("global_lastCheck_" + s) + "_earnings"), (bq - bz)), IntegerEntry((("global_lastCheck_" + s) + "_interest"), by), IntegerEntry((((bw + "_lastCheck_") + s) + "_interest"), by)]), (u._2 + ar(q, bz, as, unit)))
434+ else [ScriptTransfer(bC, bG, s)]
435+ $Tuple2(((w._1 ++ bH) ++ [IntegerEntry((("global_lastCheck_" + u) + "_earnings"), (bx - bG)), IntegerEntry((("global_lastCheck_" + u) + "_interest"), bF), IntegerEntry((((bD + "_lastCheck_") + u) + "_interest"), bF)]), (w._2 + at(s, bG, au, unit)))
425436 }
426437
427- let u = {
428- let C = Z
429- let D = size(C)
430- let E = $Tuple2(nil, 0)
431- func ap (G,H) = if ((H >= D))
432- then G
433- else al(G, C[H])
438+ let w = {
439+ let E = ab
440+ let F = size(E)
441+ let G = $Tuple2(nil, 0)
442+ func ar (I,J) = if ((J >= F))
443+ then I
444+ else an(I, E[J])
434445
435- func aq (G,H) = if ((H >= D))
436- then G
446+ func as (I,J) = if ((J >= F))
447+ then I
437448 else throw("List size exceeds 10")
438449
439- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
450+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
440451 }
441- $Tuple2((u._1 ++ [IntegerEntry((bw + "_claimedRewardValue"), (j((bw + "_claimedRewardValue")) + u._2)), IntegerEntry((bw + "_lastClaim"), lastBlock.timestamp)]), u._2)
452+ $Tuple2((w._1 ++ [IntegerEntry((bD + "_claimedRewardValue"), (l((bD + "_claimedRewardValue")) + w._2)), IntegerEntry((bD + "_lastClaim"), lastBlock.timestamp)]), w._2)
442453 }
443454
444455
445-func bB (bw,ag) = {
446- let bC = bu(addressFromStringValue(bw))._1
447- (bC ++ [IntegerEntry((bw + "_indexStaked"), (j((bw + "_indexStaked")) + ag)), IntegerEntry("global_indexStaked", (j("global_indexStaked") + ag))])
456+func bI (bD,ai) = {
457+ let bJ = bB(addressFromStringValue(bD))._1
458+ (bJ ++ [IntegerEntry((bD + "_indexStaked"), (l((bD + "_indexStaked")) + ai)), IntegerEntry("global_indexStaked", (l("global_indexStaked") + ai))])
448459 }
449460
450461
451-func bD (u,bE) = (u + parseIntValue(bE))
462+func bK (w,bL) = (w + parseIntValue(bL))
452463
453464
454-@Callable(bF)
455-func preInit (bG,bH,bI,bJ,bK,bL) = {
456- let bM = Address(fromBase58String(bK))
457- if (aa())
465+@Callable(bM)
466+func preInit (bN,bO,bP,bQ,bR,bS) = {
467+ let bT = Address(fromBase58String(bR))
468+ if (ac())
458469 then throw("contract is on stop")
459- else if ((this != bF.caller))
470+ else if ((this != bM.caller))
460471 then throw("admin only")
461- else if ((size(bJ) > 13))
472+ else if ((size(bQ) > 13))
462473 then throw("too large pool domain")
463- else if (if ((bL > 500))
474+ else if (if ((bS > 500))
464475 then true
465- else (50 > bL))
476+ else (50 > bS))
466477 then throw("fee value must be between 50 and 500 (0.5-5%)")
467- else if (if (if ((indexOf(bG, e) == unit))
468- then (indexOf(bG, d) == unit)
478+ else if (if (if (if (if ((indexOf(bN, f) == unit))
479+ then (indexOf(bN, e) == unit)
469480 else false)
470- then (indexOf(bG, f) == unit)
481+ then (indexOf(bN, g) == unit)
471482 else false)
472- then throw("pool must have USDT, USDN or PUZZLE in the composition")
483+ then (indexOf(bN, "WAVES") == unit)
484+ else false)
485+ then (indexOf(bN, h) == unit)
486+ else false)
487+ then throw("pool must have USDT-WXG, USDT-PPT, USDN, WAVES or PUZZLE in the composition")
473488 else {
474- let bN = split(bG, ",")
475- let bO = {
476- let C = bN
477- let D = size(C)
478- let E = nil
479- func ap (G,H) = if ((H >= D))
480- then G
481- else t(G, C[H])
489+ let bU = split(bN, ",")
490+ let bV = {
491+ let E = bU
492+ let F = size(E)
493+ let G = nil
494+ func ar (I,J) = if ((J >= F))
495+ then I
496+ else v(I, E[J])
482497
483- func aq (G,H) = if ((H >= D))
484- then G
498+ func as (I,J) = if ((J >= F))
499+ then I
485500 else throw("List size exceeds 10")
486501
487- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
502+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
488503 }
489- let bP = split(bH, ",")
490- let bQ = {
491- let C = bP
492- let D = size(C)
493- let E = 0
494- func aL (G,H) = if ((H >= D))
495- then G
496- else bD(G, C[H])
504+ let bW = split(bO, ",")
505+ let bX = {
506+ let E = bW
507+ let F = size(E)
508+ let G = 0
509+ func aS (I,J) = if ((J >= F))
510+ then I
511+ else bK(I, E[J])
497512
498- func aM (G,H) = if ((H >= D))
499- then G
513+ func aT (I,J) = if ((J >= F))
514+ then I
500515 else throw("List size exceeds 10")
501516
502- aM(aL(aL(aL(aL(aL(aL(aL(aL(aL(aL(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
517+ aT(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
503518 }
504- let bR = if ((indexOf(bG, d) == unit))
505- then if ((indexOf(bG, e) == unit))
506- then f
507- else e
508- else d
509- func bS (u,bT) = if ((bT >= size(bO)))
510- then u
519+ let aB = if ((indexOf(bN, e) != unit))
520+ then e
521+ else if ((indexOf(bN, "WAVES") != unit))
522+ then "WAVES"
523+ else if ((indexOf(bN, g) != unit))
524+ then g
525+ else if ((indexOf(bN, f) != unit))
526+ then f
527+ else h
528+ func bY (w,bZ) = if ((bZ >= size(bV)))
529+ then w
511530 else {
512- let bU = {
513- let l = bO[bT]
514- if ($isInstanceOf(l, "ByteVector"))
531+ let ca = {
532+ let n = bV[bZ]
533+ if ($isInstanceOf(n, "ByteVector"))
515534 then {
516- let ab = l
517- value(assetInfo(ab)).decimals
535+ let ad = n
536+ value(assetInfo(ad)).decimals
518537 }
519538 else 8
520539 }
521- (u ++ [IntegerEntry((("static_" + bN[bT]) + "_scale"), pow(10, 0, bU, 0, 0, DOWN)), IntegerEntry((("static_" + bN[bT]) + "_decimals"), bU), IntegerEntry((("static_" + bN[bT]) + "_weight"), value(parseInt(bP[bT])))])
540+ (w ++ [IntegerEntry((("static_" + bU[bZ]) + "_scale"), pow(10, 0, ca, 0, 0, DOWN)), IntegerEntry((("static_" + bU[bZ]) + "_decimals"), ca), IntegerEntry((("static_" + bU[bZ]) + "_weight"), value(parseInt(bW[bZ])))])
522541 }
523542
524- if ((bQ != 10000))
543+ if ((bX != 10000))
525544 then throw("sum of token weights must be equal to 10000")
526545 else ({
527- let C = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
528- let D = size(C)
529- let E = nil
530- func bV (G,H) = if ((H >= D))
531- then G
532- else bS(G, C[H])
546+ let E = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
547+ let F = size(E)
548+ let G = nil
549+ func cb (I,J) = if ((J >= F))
550+ then I
551+ else bY(I, E[J])
533552
534- func bW (G,H) = if ((H >= D))
535- then G
553+ func cc (I,J) = if ((J >= F))
554+ then I
536555 else throw("List size exceeds 10")
537556
538- bW(bV(bV(bV(bV(bV(bV(bV(bV(bV(bV(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
539- } ++ [StringEntry("static_tokenIds", bG), StringEntry("static_feeToken", bR), StringEntry("static_tokenWeights", bH), IntegerEntry("static_tokensAmount", size(bO)), StringEntry("static_poolDomain", bJ), StringEntry("static_baseTokenId", bI), StringEntry("static_poolOwner", bK), IntegerEntry("static_fee", bL)])
557+ cc(cb(cb(cb(cb(cb(cb(cb(cb(cb(cb(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
558+ } ++ [StringEntry("static_tokenIds", bN), StringEntry("static_feeToken", aB), StringEntry("static_tokenWeights", bO), IntegerEntry("static_tokensAmount", size(bV)), StringEntry("static_poolDomain", bQ), StringEntry("static_baseTokenId", bP), StringEntry("static_poolOwner", bR), IntegerEntry("static_fee", bS)])
540559 }
541560 }
542561
543562
544563
545-@Callable(bF)
546-func deInit () = if (aa())
564+@Callable(bM)
565+func deInit () = if (ac())
547566 then throw("contract is on stop")
548- else if ((bF.caller != this))
567+ else if ((bM.caller != this))
549568 then throw("admin only")
550569 else [IntegerEntry("global_wasInited", 0)]
551570
552571
553572
554-@Callable(bF)
573+@Callable(bM)
555574 func init () = {
556- func bX () = {
557- func al (u,bE) = (u ++ [IntegerEntry((("global_" + p(bE.assetId)) + "_balance"), bE.amount)])
575+ func cd () = {
576+ func an (w,bL) = (w ++ [IntegerEntry((("global_" + r(bL.assetId)) + "_balance"), bL.amount)])
558577
559- let C = bF.payments
560- let D = size(C)
561- let E = nil
562- func ap (G,H) = if ((H >= D))
563- then G
564- else al(G, C[H])
578+ let E = bM.payments
579+ let F = size(E)
580+ let G = nil
581+ func ar (I,J) = if ((J >= F))
582+ then I
583+ else an(I, E[J])
565584
566- func aq (G,H) = if ((H >= D))
567- then G
585+ func as (I,J) = if ((J >= F))
586+ then I
568587 else throw("List size exceeds 10")
569588
570- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
589+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
571590 }
572591
573- func bY (ak) = {
574- func al (u,bZ) = {
575- let q = bZ.assetId
576- func aJ (u,bE) = if ((bE == q))
577- then value(indexOf(B, bE))
578- else u
592+ func ce (am) = {
593+ func an (w,cf) = {
594+ let s = cf.assetId
595+ func aQ (w,bL) = if ((bL == s))
596+ then value(indexOf(D, bL))
597+ else w
579598
580- let ca = {
581- let C = B
582- let D = size(C)
583- let E = 1
584- func ap (G,H) = if ((H >= D))
585- then G
586- else aJ(G, C[H])
599+ let cg = {
600+ let E = D
601+ let F = size(E)
602+ let G = 1
603+ func ar (I,J) = if ((J >= F))
604+ then I
605+ else aQ(I, E[J])
587606
588- func aq (G,H) = if ((H >= D))
589- then G
607+ func as (I,J) = if ((J >= F))
608+ then I
590609 else throw("List size exceeds 10")
591610
592- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
611+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
593612 }
594- fraction(u, pow(bZ.amount, M[ca], J[ca], T, 8, FLOOR), V)
613+ fraction(w, pow(cf.amount, O[cg], L[cg], V, 8, FLOOR), X)
595614 }
596615
597- let C = ak
598- let D = size(C)
599- let E = Y
600- func ap (G,H) = if ((H >= D))
601- then G
602- else al(G, C[H])
616+ let E = am
617+ let F = size(E)
618+ let G = aa
619+ func ar (I,J) = if ((J >= F))
620+ then I
621+ else an(I, E[J])
603622
604- func aq (G,H) = if ((H >= D))
605- then G
623+ func as (I,J) = if ((J >= F))
624+ then I
606625 else throw("List size exceeds 10")
607626
608- aq(ap(ap(ap(ap(ap(ap(ap(ap(ap(ap(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
627+ as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(G, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
609628 }
610629
611- if (aa())
630+ if (ac())
612631 then throw("contract is on stop")
613- else if ((j("global_wasInited") > 0))
632+ else if ((l("global_wasInited") > 0))
614633 then throw("pool already inited")
615634 else {
616- let cb = bY(bF.payments)
617- if ((cb == 0))
635+ let ch = ce(bM.payments)
636+ if ((ch == 0))
618637 then throw("you need a bigger tokens amount to launch the pool")
619638 else {
620- let cc = Issue(("PZ " + o("static_poolDomain")), "Puzzle Swap: pool index token", cb, X, true, unit, 0)
621- let cd = calculateAssetId(cc)
622- (bX() ++ [cc, IntegerEntry("global_poolToken_amount", cb), IntegerEntry("global_wasInited", 1), BinaryEntry("global_poolToken_id", cd), StringEntry("static_poolToken_idStr", p(cd)), IntegerEntry((toString(bF.caller) + "_indexStaked"), cb), IntegerEntry("global_indexStaked", cb)])
639+ let ci = Issue(("PZ " + q("static_poolDomain")), "Puzzle Swap: pool index token", ch, Z, true, unit, 0)
640+ let cj = calculateAssetId(ci)
641+ (cd() ++ [ci, IntegerEntry("global_poolToken_amount", ch), IntegerEntry("global_wasInited", 1), BinaryEntry("global_poolToken_id", cj), StringEntry("static_poolToken_idStr", r(cj)), IntegerEntry((toString(bM.caller) + "_indexStaked"), ch), IntegerEntry("global_indexStaked", ch)])
623642 }
624643 }
625644 }
626645
627646
628647
629-@Callable(bF)
630-func generateIndex (aP) = if (aa())
631- then throw("contract is on stop")
632- else if ((size(bF.payments) != A))
633- then throw(("you need to attach all pool tokens. amount of pool tokens: " + toString(A)))
634- else if (!(aF(bF.payments)))
635- then throw("wrong assets attached")
636- else {
637- let an = aj(bF.payments)
638- let ce = Reissue(getBinaryValue("global_poolToken_id"), an, true)
639- let cf = aN(an, bF.payments, bF.originCaller, aP)
640- $Tuple2((cf ++ [ce, ScriptTransfer(bF.caller, an, n("global_poolToken_id")), IntegerEntry("global_poolToken_amount", (j("global_poolToken_amount") + an))]), an)
641- }
648+@Callable(bM)
649+func generateIndex (aW) = if ((size(bM.payments) != C))
650+ then throw(("you need to attach all pool tokens. amount of pool tokens: " + toString(C)))
651+ else if (!(aM(bM.payments)))
652+ then throw("wrong assets attached")
653+ else {
654+ let ap = al(bM.payments)
655+ let ck = Reissue(getBinaryValue("global_poolToken_id"), ap, true)
656+ let cl = aU(ap, bM.payments, bM.originCaller, aW)
657+ $Tuple2((cl ++ [ck, ScriptTransfer(bM.caller, ap, p("global_poolToken_id")), IntegerEntry("global_poolToken_amount", (l("global_poolToken_amount") + ap))]), ap)
658+ }
642659
643660
644661
645-@Callable(bF)
662+@Callable(bM)
646663 func stakeIndex () = {
647- let bw = toString(bF.originCaller)
648- let bZ = bF.payments[0]
649- if (aa())
650- then throw("contract is on stop")
651- else if ((value(bZ.assetId) != n("global_poolToken_id")))
652- then throw("wrong asset attached")
653- else bB(bw, bZ.amount)
664+ let bD = toString(bM.originCaller)
665+ let cf = bM.payments[0]
666+ if ((value(cf.assetId) != p("global_poolToken_id")))
667+ then throw("wrong asset attached")
668+ else bI(bD, cf.amount)
654669 }
655670
656671
657672
658-@Callable(bF)
659-func unstakeIndex (bx) = {
660- let bw = toString(bF.originCaller)
661- let cg = j((bw + "_indexStaked"))
662- if (aa())
673+@Callable(bM)
674+func unstakeIndex (bE) = {
675+ let bD = toString(bM.originCaller)
676+ let cm = l((bD + "_indexStaked"))
677+ if (ac())
663678 then throw("contract is on stop")
664- else if ((bx > cg))
679+ else if ((bE > cm))
665680 then throw("you don't have index tokens available")
666- else if (aa())
681+ else if (ac())
667682 then throw("contract is on stop")
668- else (bu(bF.originCaller)._1 ++ [IntegerEntry((bw + "_indexStaked"), (cg - bx)), IntegerEntry("global_indexStaked", (j("global_indexStaked") - bx)), ScriptTransfer(bF.caller, bx, getBinaryValue("global_poolToken_id"))])
683+ else (bB(bM.originCaller)._1 ++ [IntegerEntry((bD + "_indexStaked"), (cm - bE)), IntegerEntry("global_indexStaked", (l("global_indexStaked") - bE)), ScriptTransfer(bM.caller, bE, getBinaryValue("global_poolToken_id"))])
669684 }
670685
671686
672687
673-@Callable(bF)
674-func claimIndexRewards () = if (aa())
688+@Callable(bM)
689+func claimIndexRewards () = if (ac())
675690 then throw("contract is on stop")
676- else bu(bF.caller)
691+ else bB(bM.caller)
677692
678693
679694
680-@Callable(bF)
681-func evaluateClaim (ch) = $Tuple2(nil, bu(addressFromStringValue(ch))._2)
695+@Callable(bM)
696+func evaluateClaim (cn) = $Tuple2(nil, bB(addressFromStringValue(cn))._2)
682697
683698
684699
685-@Callable(bF)
686-func redeemIndex (ci) = {
687- let bZ = bF.payments[0]
688- if ((bZ.assetId != n("global_poolToken_id")))
700+@Callable(bM)
701+func redeemIndex (co) = {
702+ let cf = bM.payments[0]
703+ if ((cf.assetId != p("global_poolToken_id")))
689704 then throw("please attach pool share token")
690- else if (aa())
705+ else if (ac())
691706 then throw("contract is on stop")
692707 else {
693- let ba = bZ.amount
694- let cf = aZ(ba, if (ci)
695- then bF.originCaller
696- else bF.caller)
697- (cf ++ [Burn(n("global_poolToken_id"), ba), IntegerEntry("global_poolToken_amount", (j("global_poolToken_amount") - ba))])
708+ let bh = cf.amount
709+ let cl = bg(bh, if (co)
710+ then bM.originCaller
711+ else bM.caller)
712+ (cl ++ [Burn(p("global_poolToken_id"), bh), IntegerEntry("global_poolToken_amount", (l("global_poolToken_amount") - bh))])
698713 }
699714 }
700715
701716
702717
703-@Callable(bF)
704-func swap (bf,cj) = {
705- let bZ = if ((size(bF.payments) == 1))
706- then value(bF.payments[0])
718+@Callable(bM)
719+func swap (bm,cp) = {
720+ let cf = if ((size(bM.payments) == 1))
721+ then value(bM.payments[0])
707722 else throw("please attach exactly one payment")
708- let bd = value(bF.payments[0].amount)
709- let ck = bZ.assetId
710- let cl = r(bf)
711- let cm = o("static_feeToken")
712- let cn = if ((cm == ""))
723+ let bk = value(bM.payments[0].amount)
724+ let cq = cf.assetId
725+ let cr = t(bm)
726+ let cs = q("static_feeToken")
727+ let ct = if ((cs == ""))
713728 then a
714- else fromBase58String(cm)
715- let co = j((("global_" + p(ck)) + "_balance"))
716- let cp = j((("global_" + bf) + "_balance"))
717- let cq = fraction(bd, S, W)
718- let cr = (bd - cq)
719- let cs = bc(cr, ck, cl, co, cp)
720- let ct = (cp - cs)
721- let cu = (co + cr)
722- let cv = if ((cn == ck))
723- then cu
724- else if ((cn == cl))
725- then ct
726- else j((("global_" + p(cn)) + "_balance"))
727- let cw = bc(cq, ck, cn, co, cv)
728- if ((cj > cs))
729- then throw(("amount to recieve is lower than given one: " + toString(cs)))
730- else if ((cl == ck))
729+ else t(cs)
730+ let cu = l((("global_" + r(cq)) + "_balance"))
731+ let cv = l((("global_" + bm) + "_balance"))
732+ let cw = fraction(bk, U, Y)
733+ let cx = (bk - cw)
734+ let cy = bj(cx, cq, cr, cu, cv)
735+ let cz = (cv - cy)
736+ let cA = (cu + cx)
737+ let cB = if ((ct == cq))
738+ then cA
739+ else if ((ct == cr))
740+ then cz
741+ else l((("global_" + r(ct)) + "_balance"))
742+ let cC = bj(cw, cq, ct, cu, cB)
743+ if ((cp > cy))
744+ then throw("amount to recieve is lower than given one")
745+ else if ((cr == cq))
731746 then throw("this swap is not allowed")
732- else if ((0 > (cp - cs)))
747+ else if ((0 > (cv - cy)))
733748 then throw("contract is out of reserves")
734- else if (aa())
749+ else if (ac())
735750 then throw("contract is on stop")
736751 else {
737- let cx = fraction(cw, 1, 10)
738- let cy = fraction(cw, 4, 10)
739- let cz = if ((cn == a))
740- then reentrantInvoke(Address(base58'3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS'), "topUpReward", nil, [AttachedPayment(cn, cy)])
752+ let cD = fraction(cC, 1, 10)
753+ let cE = fraction(cC, 4, 10)
754+ let cF = if (if ((ct == a))
755+ then true
756+ else (ct == b))
757+ then reentrantInvoke(Address(base58'3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS'), "topUpReward", nil, [AttachedPayment(ct, cE)])
741758 else unit
742- if ((cz == cz))
759+ if ((cF == cF))
743760 then {
744- let cA = (cu - (if ((ck == cn))
745- then cw
761+ let cG = cA
762+ let cH = (cz - (if ((cr == ct))
763+ then cC
746764 else 0))
747- let cB = (ct - (if ((cl == cn))
748- then cw
749- else 0))
750- let cC = if (if ((cn != ck))
751- then (cn != cl)
765+ let cI = if (if ((ct != cq))
766+ then (ct != cr)
752767 else false)
753- then (cv - cw)
768+ then (cB - cC)
754769 else unit
755- let cD = IntegerEntry((("global_" + p(ck)) + "_balance"), cA)
756- let cE = IntegerEntry((("global_" + bf) + "_balance"), cB)
757- let cF = if ((cC != unit))
758- then IntegerEntry((("global_" + p(cn)) + "_balance"), cv)
770+ let cJ = IntegerEntry((("global_" + r(cq)) + "_balance"), cG)
771+ let cK = IntegerEntry((("global_" + bm) + "_balance"), cH)
772+ let cL = if ((cI != unit))
773+ then IntegerEntry((("global_" + r(ct)) + "_balance"), value(cI))
759774 else StringEntry("hello", "world")
760- $Tuple2(([cE, cD, cF, ScriptTransfer(bF.caller, cs, cl), ScriptTransfer(addressFromStringValue(o("static_poolOwner")), cx, cn), IntegerEntry("global_earnedByOwner", (j("global_earnedByOwner") + cx)), IntegerEntry("global_volume", (j("global_volume") + ar(ck, bd, co, cv)))] ++ (if ((cz == unit))
761- then [ScriptTransfer(Address(base58'3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe'), cy, cn)]
762- else nil)), cs)
775+ let cM = at(cq, bk, cu, cB)
776+ $Tuple2(([cK, cJ, cL, ScriptTransfer(bM.caller, cy, cr), ScriptTransfer(addressFromStringValue(q("static_poolOwner")), cD, ct), IntegerEntry("global_earnedByOwner", (l("global_earnedByOwner") + cD)), IntegerEntry("global_volume", (l("global_volume") + cM))] ++ (if ((cF == unit))
777+ then [ScriptTransfer(Address(base58'3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe'), cE, ct)]
778+ else nil)), cy)
763779 }
764780 else throw("Strict value is not equal to itself.")
765781 }
766782 }
767783
768784
769-@Verifier(cG)
770-func cH () = if (aa())
785+@Verifier(cN)
786+func cO () = if (ac())
771787 then false
772- else if (sigVerify(cG.bodyBytes, cG.proofs[0], cG.senderPublicKey))
788+ else if (sigVerify(cN.bodyBytes, cN.proofs[0], cN.senderPublicKey))
773789 then true
774- else sigVerify(cG.bodyBytes, cG.proofs[0], i)
790+ else sigVerify(cN.bodyBytes, cN.proofs[0], k)
775791

github/deemru/w8io/873ac7e 
303.46 ms