tx · EjmR64ZPXm8eHGmWYqr2BP4G7A4DoujZBkqdkQF1xQ3e

3N5Z4dAWzfkEp4kNJZKQk6zf3uTVFFz5MFF:  -0.01800000 Waves

2024.06.14 18:32 [3150602] smart account 3N5Z4dAWzfkEp4kNJZKQk6zf3uTVFFz5MFF > SELF 0.00000000 Waves

{ "type": 13, "id": "EjmR64ZPXm8eHGmWYqr2BP4G7A4DoujZBkqdkQF1xQ3e", "fee": 1800000, "feeAssetId": null, "timestamp": 1718378578965, "version": 2, "chainId": 84, "sender": "3N5Z4dAWzfkEp4kNJZKQk6zf3uTVFFz5MFF", "senderPublicKey": "8Vp8fmB3ZGVRre7Cw5j9z6qXo3yD8ohPQ6agZ9mtVY5E", "proofs": [ "2C42j6HgiaNmG3qJrczLuhLF61uVf6ZKMngS3xk2Tc6WJxRrC6zhCJhNdiWwtJxhiYmPN3XFLCdSRfWqX8tLr4d3" ], "script": "base64:BwJCCAISBgoEAQgICBIAEgMKAQgSBQoDAQgIEgMKAQESBQoDCAgIEgMKAQgSBAoCCAgSAwoBCBIAEgASAwoBCBIDCgEIRQAJU0VQQVJBVE9SAgJfXwAMS0VZX01VTFRJU0lHAghNVUxUSVNJRwAKS0VZX1NUQVRVUwIGU1RBVFVTAAhLRVlfSU5JVAIESU5JVAAKS0VZX1BBVVNFRAIGUEFVU0VEAApLRVlfUEFVU0VSAgZQQVVTRVIACUtFWV9DSEFJTgIFQ0hBSU4AFEtFWV9HQVRFV0FZX0NPTlRSQUNUAhBHQVRFV0FZX0NPTlRSQUNUABNLRVlfU1dBVkVTX0NPTlRSQUNUAg9TV0FWRVNfQ09OVFJBQ1QAEEtFWV9TV0FWRVNfQVNTRVQCBUFTU0VUAAxLRVlfUkVTRVJWRVMCCFJFU0VSVkVTABJLRVlfU1RBS0lOR19BU1NFVFMCDlNUQUtJTkdfQVNTRVRTABRLRVlfU1RBS0lOR19DT05UUkFDVAIQU1RBS0lOR19DT05UUkFDVAAMRlVOQ19ERVBPU0lUAgdkZXBvc2l0ABdGVU5DX1JFUVVFU1RfV0lUSERSQVdBTAIRcmVxdWVzdFdpdGhkcmF3YWwAF0ZVTkNfRVhFQ1VURV9XSVRIRFJBV0FMAhFleGVjdXRlV2l0aGRyYXdhbAANRlVOQ19HRVRfUkFURQIHZ2V0UmF0ZQANRlVOQ19XSVRIRFJBVwIId2l0aGRyYXcACkZVTkNfU1RBS0UCBXN0YWtlAAxGVU5DX1VOU1RBS0UCB3Vuc3Rha2UADkZVTkNfQ0xBSU1fQUxMAghjbGFpbUFsbAAbRlVOQ19ERVBPU0lUX1NUQUtJTkdfUkVXQVJEAhRkZXBvc2l0U3Rha2luZ1Jld2FyZAAFV0FWRVMCBVdBVkVTAA5XQVZFU19ERUNJTUFMUwAIAAxERVhfREVDSU1BTFMACAAHTUFYX0lOVAD//////////38AC1pFUk9fQklHSU5UCQC2AgEAAAAKT05FX0JJR0lOVAkAtgIBAAEAElNXQVZFU19SQVRFX0ZBQ1RPUgkAtgIBAICglKWNHQEQX3ZhbGlkYXRlQWRkcmVzcwIIYWRkcmVzc18EZXJyXwQHJG1hdGNoMAkApggBBQhhZGRyZXNzXwMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAFhBQckbWF0Y2gwBgkAAgEFBGVycl8BDl92YWxpZGF0ZUFzc2V0Aghhc3NldElkXwRlcnJfAwkAAAIFCGFzc2V0SWRfBQVXQVZFUwYEByRtYXRjaDAJAOwHAQkA2QQBBQhhc3NldElkXwMJAAECBQckbWF0Y2gwAgVBc3NldAQBYQUHJG1hdGNoMAYJAAIBBQRlcnJfAQxfdmFsaWRhdGVJbnQEBHZhbF8ObG93ZXJCb3VuZGFyeV8OdXBwZXJCb3VuZGFyeV8EZXJyXwMDCQBmAgUObG93ZXJCb3VuZGFyeV8FBHZhbF8GCQBmAgUEdmFsXwUOdXBwZXJCb3VuZGFyeV8JAAIBBQRlcnJfBgEPX3ZhbGlkYXRlQmlnSW50AwR2YWxfDmxvd2VyQm91bmRhcnlfBGVycl8DCQC/AgIFDmxvd2VyQm91bmRhcnlfBQR2YWxfCQACAQUEZXJyXwYBD192YWxpZGF0ZVN0cmluZwIEdmFsXwRlcnJfAwMJAGcCAAAJALECAQUEdmFsXwYJAQhjb250YWlucwIFBHZhbF8FCVNFUEFSQVRPUgkAAgEFBGVycl8GARVfdmFsaWRhdGVQYXltZW50c1NpemUDCXBheW1lbnRzXwd0YXJnZXRfBGVycl8DCQECIT0CCQCQAwEFCXBheW1lbnRzXwUHdGFyZ2V0XwkAAgEFBGVycl8GAQtfYXNzZXRUb1N0cgEGYXNzZXRfBAckbWF0Y2gwBQZhc3NldF8DCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYQUHJG1hdGNoMAkA2AQBBQFhBQVXQVZFUwELX3N0clRvQXNzZXQBBmFzc2V0XwMJAAACBQZhc3NldF8FBVdBVkVTBQR1bml0CQDZBAEFBmFzc2V0XwEMX2dldERlY2ltYWxzAQhhc3NldElkXwMJAAACBQhhc3NldElkXwUFV0FWRVMFDldBVkVTX0RFQ0lNQUxTBAckbWF0Y2gwCQDsBwEJANkEAQUIYXNzZXRJZF8DCQABAgUHJG1hdGNoMAIFQXNzZXQEAWEFByRtYXRjaDAIBQFhCGRlY2ltYWxzCQACAQkArAICAhdfZ2V0RGVjaW1hbHM6IG5vIGFzc2V0PQUIYXNzZXRJZF8BEl9ub3JtYWxpemVEZWNpbWFscwMHYW1vdW50Xw9zb3VyY2VEZWNpbWFsc18PdGFyZ2V0RGVjaW1hbHNfAwkAZwIFD3NvdXJjZURlY2ltYWxzXwUPdGFyZ2V0RGVjaW1hbHNfCQBpAgUHYW1vdW50XwkAbAYACgAACQBlAgUPc291cmNlRGVjaW1hbHNfBQ90YXJnZXREZWNpbWFsc18AAAAABQRET1dOCQBoAgUHYW1vdW50XwkAbAYACgAACQBlAgUPdGFyZ2V0RGVjaW1hbHNfBQ9zb3VyY2VEZWNpbWFsc18AAAAABQRET1dOAQlfbG9hZEluaXQABAckbWF0Y2gwCQCgCAEFCEtFWV9JTklUAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWEFByRtYXRjaDAFAWEHAQlfc2F2ZUluaXQBB2lzSW5pdF8JAMwIAgkBDEJvb2xlYW5FbnRyeQIFCEtFWV9JTklUBQdpc0luaXRfBQNuaWwBCl9sb2FkUGF1c2UABAckbWF0Y2gwCQCgCAEFCktFWV9QQVVTRUQDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYQUHJG1hdGNoMAUBYQcBCl9zYXZlUGF1c2UBCWlzUGF1c2VkXwkAzAgCCQEMQm9vbGVhbkVudHJ5AgUKS0VZX1BBVVNFRAUJaXNQYXVzZWRfBQNuaWwBC19sb2FkUGF1c2VyAAQHJG1hdGNoMAkAoggBBQpLRVlfUEFVU0VSAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBYQkBB0FkZHJlc3MBAQABC19zYXZlUGF1c2VyAQdwYXVzZXJfCQDMCAIJAQtTdHJpbmdFbnRyeQIFCktFWV9QQVVTRVIJAKUIAQUHcGF1c2VyXwUDbmlsAQ1fbG9hZE11bHRpc2lnAAQHJG1hdGNoMAkAoggBBQxLRVlfTVVMVElTSUcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAENX3NhdmVNdWx0aXNpZwEJbXVsdGlzaWdfCQDMCAIJAQtTdHJpbmdFbnRyeQIFDEtFWV9NVUxUSVNJRwkApQgBBQltdWx0aXNpZ18FA25pbAEMX2xvYWRDaGFpbklkAAQHJG1hdGNoMAkAnwgBBQlLRVlfQ0hBSU4DCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAABDF9zYXZlQ2hhaW5JZAEIY2hhaW5JZF8JAMwIAgkBDEludGVnZXJFbnRyeQIFCUtFWV9DSEFJTgUIY2hhaW5JZF8FA25pbAEUX2xvYWRHYXRld2F5Q29udHJhY3QABAckbWF0Y2gwCQCiCAEFFEtFWV9HQVRFV0FZX0NPTlRSQUNUAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBYQkBB0FkZHJlc3MBAQABFF9zYXZlR2F0ZXdheUNvbnRyYWN0ARBnYXRld2F5Q29udHJhY3RfCQDMCAIJAQtTdHJpbmdFbnRyeQIFFEtFWV9HQVRFV0FZX0NPTlRSQUNUCQClCAEFEGdhdGV3YXlDb250cmFjdF8FA25pbAETX2xvYWRTV2F2ZXNDb250cmFjdAAEByRtYXRjaDAJAKIIAQUTS0VZX1NXQVZFU19DT05UUkFDVAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAARNfc2F2ZVNXYXZlc0NvbnRyYWN0AQ9zV2F2ZXNDb250cmFjdF8JAMwIAgkBC1N0cmluZ0VudHJ5AgUTS0VZX1NXQVZFU19DT05UUkFDVAkApQgBBQ9zV2F2ZXNDb250cmFjdF8FA25pbAEQX2xvYWRTV2F2ZXNBc3NldAEJY29udHJhY3RfBAckbWF0Y2gwCQCdCAIFCWNvbnRyYWN0XwUQS0VZX1NXQVZFU19BU1NFVAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJANkEAQUBYQkAAgECGF9sb2FkU1dhdmVzQXNzZXQ6IHJldmVydAENX2xvYWRSZXNlcnZlcwEGYXNzZXRfBAckbWF0Y2gwCQCfCAEJALkJAgkAzAgCBQxLRVlfUkVTRVJWRVMJAMwIAgUGYXNzZXRfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAENX3NhdmVSZXNlcnZlcwIGYXNzZXRfCXJlc2VydmVzXwkAzAgCCQEMSW50ZWdlckVudHJ5AgkAuQkCCQDMCAIFDEtFWV9SRVNFUlZFUwkAzAgCBQZhc3NldF8FA25pbAUJU0VQQVJBVE9SBQlyZXNlcnZlc18FA25pbAESX2xvYWRTdGFraW5nQXNzZXRzAAQHJG1hdGNoMAkAoggBBRJLRVlfU1RBS0lOR19BU1NFVFMDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwAwkAZgIJALECAQUBYQAACQC9CQIFAWEFCVNFUEFSQVRPUgUDbmlsBQNuaWwBEl9zYXZlU3Rha2luZ0Fzc2V0cwEHYXNzZXRzXwkAzAgCCQELU3RyaW5nRW50cnkCBRJLRVlfU1RBS0lOR19BU1NFVFMJALkJAgUHYXNzZXRzXwUJU0VQQVJBVE9SBQNuaWwBFF9sb2FkU3Rha2luZ0NvbnRyYWN0AQZhc3NldF8EByRtYXRjaDAJAKIIAQkAuQkCCQDMCAIFFEtFWV9TVEFLSU5HX0NPTlRSQUNUCQDMCAIFBmFzc2V0XwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAEUX3NhdmVTdGFraW5nQ29udHJhY3QCBmFzc2V0Xwljb250cmFjdF8JAMwIAgkBC1N0cmluZ0VudHJ5AgkAuQkCCQDMCAIFFEtFWV9TVEFLSU5HX0NPTlRSQUNUCQDMCAIFBmFzc2V0XwUDbmlsBQlTRVBBUkFUT1IJAKUIAQUJY29udHJhY3RfBQNuaWwBEV9vbmx5VGhpc0NvbnRyYWN0AQdjYWxsZXJfAwkBAiE9AgUHY2FsbGVyXwUEdGhpcwkAAgECGV9vbmx5VGhpc0NvbnRyYWN0OiByZXZlcnQGARBfd2hlbk11bHRpc2lnU2V0AAMJAAACCQENX2xvYWRNdWx0aXNpZwAJAQdBZGRyZXNzAQEACQACAQIYX3doZW5NdWx0aXNpZ1NldDogcmV2ZXJ0BgETX3doZW5Ob3RJbml0aWFsaXplZAADCQEJX2xvYWRJbml0AAkAAgECG193aGVuTm90SW5pdGlhbGl6ZWQ6IHJldmVydAYBEF93aGVuSW5pdGlhbGl6ZWQAAwkBASEBCQEJX2xvYWRJbml0AAkAAgECGF93aGVuSW5pdGlhbGl6ZWQ6IHJldmVydAYBDl93aGVuTm90UGF1c2VkAAMJAQpfbG9hZFBhdXNlAAkAAgECFl93aGVuTm90UGF1c2VkOiByZXZlcnQGAQtfd2hlblBhdXNlZAADCQEBIQEJAQpfbG9hZFBhdXNlAAkAAgECE193aGVuUGF1c2VkOiByZXZlcnQGAQtfb25seVBhdXNlcgEHY2FsbGVyXwMJAQIhPQIFB2NhbGxlcl8JAQtfbG9hZFBhdXNlcgAJAAIBAhNfb25seVBhdXNlcjogcmV2ZXJ0BgEQX3ZhbGlkYXRlR2F0ZXdheQIGY2FsbGVyBGVycl8DCQECIT0CCQEUX2xvYWRHYXRld2F5Q29udHJhY3QABQZjYWxsZXIJAAIBBQRlcnJfBgEIX2RlcG9zaXQEBWZyb21fA3RvXwZhc3NldF8HYW1vdW50XwQNYXNzZXREZWNpbWFscwkBDF9nZXREZWNpbWFscwEFBmFzc2V0XwQGYW1vdW50CQESX25vcm1hbGl6ZURlY2ltYWxzAwUHYW1vdW50XwUNYXNzZXREZWNpbWFscwUMREVYX0RFQ0lNQUxTBANlcnIJAQxfdmFsaWRhdGVJbnQEBQZhbW91bnQAAQUHTUFYX0lOVAIgX2RlcG9zaXQ6IGludmFsaWQgcGF5bWVudCBhbW91bnQDCQAAAgUDZXJyBQNlcnIEEWdhdGV3YXlJbnZvY2F0aW9uCQD8BwQJARRfbG9hZEdhdGV3YXlDb250cmFjdAAFDEZVTkNfREVQT1NJVAkAzAgCCQClCAEFBHRoaXMJAMwIAgUFZnJvbV8JAMwIAgUDdG9fCQDMCAIJAKQDAQkBDF9sb2FkQ2hhaW5JZAAJAMwIAgUGYXNzZXRfCQDMCAIJAKQDAQUGYW1vdW50BQNuaWwFA25pbAMJAAACBRFnYXRld2F5SW52b2NhdGlvbgURZ2F0ZXdheUludm9jYXRpb24EDXN0YWtpbmdBc3NldHMJARJfbG9hZFN0YWtpbmdBc3NldHMABBFzdGFraW5nSW52b2NhdGlvbgMJAAACBQZhc3NldF8FBVdBVkVTCQD8BwQJARNfbG9hZFNXYXZlc0NvbnRyYWN0AAUMRlVOQ19ERVBPU0lUBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFB2Ftb3VudF8FA25pbAMJAQ9jb250YWluc0VsZW1lbnQCBQ1zdGFraW5nQXNzZXRzBQZhc3NldF8JAPwHBAkBFF9sb2FkU3Rha2luZ0NvbnRyYWN0AQUGYXNzZXRfBQpGVU5DX1NUQUtFBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQtfc3RyVG9Bc3NldAEFBmFzc2V0XwUHYW1vdW50XwUDbmlsBQR1bml0AwkAAAIFEXN0YWtpbmdJbnZvY2F0aW9uBRFzdGFraW5nSW52b2NhdGlvbgkBDV9zYXZlUmVzZXJ2ZXMCBQZhc3NldF8JAGQCCQENX2xvYWRSZXNlcnZlcwEFBmFzc2V0XwUGYW1vdW50CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuDQFpAQRpbml0BAhjaGFpbklkXwdwYXVzZXJfEGdhdGV3YXlDb250cmFjdF8Pc1dhdmVzQ29udHJhY3RfBANlcnIDAwMDAwMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBE193aGVuTm90SW5pdGlhbGl6ZWQABwkBEF93aGVuTXVsdGlzaWdTZXQABwkBDF92YWxpZGF0ZUludAQFCGNoYWluSWRfAAAFB01BWF9JTlQCFWluaXQ6IGludmFsaWQgY2hhaW5JZAcJARBfdmFsaWRhdGVBZGRyZXNzAgUHcGF1c2VyXwIUaW5pdDogaW52YWxpZCBwYXVzZXIHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFEGdhdGV3YXlDb250cmFjdF8CHWluaXQ6IGludmFsaWQgZ2F0ZXdheUNvbnRyYWN0BwkBEF92YWxpZGF0ZUFkZHJlc3MCBQ9zV2F2ZXNDb250cmFjdF8CHGluaXQ6IGludmFsaWQgc1dhdmVzQ29udHJhY3QHAwkAAAIFA2VycgUDZXJyCQCUCgIJAM4IAgkAzggCCQDOCAIJAM4IAgkBCV9zYXZlSW5pdAEGCQEMX3NhdmVDaGFpbklkAQUIY2hhaW5JZF8JAQtfc2F2ZVBhdXNlcgEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB3BhdXNlcl8JARRfc2F2ZUdhdGV3YXlDb250cmFjdAEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFEGdhdGV3YXlDb250cmFjdF8JARNfc2F2ZVNXYXZlc0NvbnRyYWN0AQkBEUBleHRyTmF0aXZlKDEwNjIpAQUPc1dhdmVzQ29udHJhY3RfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBB2RlcG9zaXQABANlcnIDAwMJARBfd2hlbkluaXRpYWxpemVkAAkBDl93aGVuTm90UGF1c2VkAAcJARVfdmFsaWRhdGVQYXltZW50c1NpemUDCAUBaQhwYXltZW50cwABAhNkZXBvc2l0OiBubyBwYXltZW50BwkBDF92YWxpZGF0ZUludAQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AAAFB01BWF9JTlQCGWRlcG9zaXQ6IG5lZ2F0aXZlIHBheW1lbnQHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQhfZGVwb3NpdAQJAKUIAQgFAWkGY2FsbGVyCQClCAEIBQFpBmNhbGxlcgkBC19hc3NldFRvU3RyAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQlkZXBvc2l0VG8BA3RvXwQDZXJyAwMDAwkBEF93aGVuSW5pdGlhbGl6ZWQACQEOX3doZW5Ob3RQYXVzZWQABwkBFV92YWxpZGF0ZVBheW1lbnRzU2l6ZQMIBQFpCHBheW1lbnRzAAECFWRlcG9zaXRUbzogbm8gcGF5bWVudAcJAQxfdmFsaWRhdGVJbnQECAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAAABQdNQVhfSU5UAhtkZXBvc2l0VG86IG5lZ2F0aXZlIHBheW1lbnQHCQEPX3ZhbGlkYXRlU3RyaW5nAgUDdG9fAhVkZXBvc2l0VG86IGludmFsaWQgdG8HAwkAAAIFA2VycgUDZXJyCQCUCgIJAQhfZGVwb3NpdAQJAKUIAQgFAWkGY2FsbGVyBQN0b18JAQtfYXNzZXRUb1N0cgEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERcmVxdWVzdFdpdGhkcmF3YWwDCnRvQ2hhaW5JZF8GYXNzZXRfB2Ftb3VudF8EBmFtb3VudAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEFB2Ftb3VudF8CIXJlcXVlc3RXaXRoZHJhd2FsOiBhbW91bnQgbm90IGludAQDZXJyAwMDCQEQX3doZW5Jbml0aWFsaXplZAAJAQxfdmFsaWRhdGVJbnQEBQp0b0NoYWluSWRfAAAFB01BWF9JTlQCJHJlcXVlc3RXaXRoZHJhd2FsOiBpbnZhbGlkIHRvQ2hhaW5JZAcJAQ9fdmFsaWRhdGVTdHJpbmcCBQZhc3NldF8CIHJlcXVlc3RXaXRoZHJhd2FsOiBpbnZhbGlkIGFzc2V0BwkBD192YWxpZGF0ZUJpZ0ludAMFBmFtb3VudAUKT05FX0JJR0lOVAIicmVxdWVzdFdpdGhkcmF3YWw6IG5lZ2F0aXZlIGFtb3VudAcDCQAAAgUDZXJyBQNlcnIEBmNhbGxlcgkApQgBCAUBaQZjYWxsZXIEE3JlcXVlc3RXaXRoZHJhd2FsSWQEByRtYXRjaDAJAPwHBAkBFF9sb2FkR2F0ZXdheUNvbnRyYWN0AAUXRlVOQ19SRVFVRVNUX1dJVEhEUkFXQUwJAMwIAgkApQgBBQR0aGlzCQDMCAIFBmNhbGxlcgkAzAgCBQZjYWxsZXIJAMwIAgkApAMBCQEMX2xvYWRDaGFpbklkAAkAzAgCCQCkAwEFCnRvQ2hhaW5JZF8JAMwIAgUGYXNzZXRfCQDMCAIFB2Ftb3VudF8FA25pbAUDbmlsAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQkAAgECKHJlcXVlc3RXaXRoZHJhd2FsOiBjYWxsIHJldmVydGVkIGZyb20gZ3cDCQAAAgUTcmVxdWVzdFdpdGhkcmF3YWxJZAUTcmVxdWVzdFdpdGhkcmF3YWxJZAkAlAoCBQNuaWwFE3JlcXVlc3RXaXRoZHJhd2FsSWQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERZXhlY3V0ZVdpdGhkcmF3YWwBFHJlcXVlc3RXaXRoZHJhd2FsSWRfBANlcnIDCQEQX3doZW5Jbml0aWFsaXplZAAJAQxfdmFsaWRhdGVJbnQEBRRyZXF1ZXN0V2l0aGRyYXdhbElkXwAABQdNQVhfSU5UAiRleGVjdXRlV2l0aGRyYXdhbDogaW52YWxpZCByZXF1ZXN0SWQHAwkAAAIFA2VycgUDZXJyBBFnYXRld2F5SW52b2NhdGlvbgkA/QcECQEUX2xvYWRHYXRld2F5Q29udHJhY3QABRdGVU5DX0VYRUNVVEVfV0lUSERSQVdBTAkAzAgCCQClCAEFBHRoaXMJAMwIAgkApAMBCQEMX2xvYWRDaGFpbklkAAkAzAgCCQCkAwEFFHJlcXVlc3RXaXRoZHJhd2FsSWRfBQNuaWwFA25pbAMJAAACBRFnYXRld2F5SW52b2NhdGlvbgURZ2F0ZXdheUludm9jYXRpb24JAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCHdpdGhkcmF3AwN0b18GYXNzZXRfB2Ftb3VudF8EBmFtb3VudAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEFB2Ftb3VudF8CGHdpdGhkcmF3OiBhbW91bnQgbm90IGludAQDZXJyAwMDAwkBEF93aGVuSW5pdGlhbGl6ZWQACQEQX3ZhbGlkYXRlR2F0ZXdheQIIBQFpBmNhbGxlcgIZd2l0aGRyYXc6IGludmFsaWQgZ2F0ZXdheQcJARBfdmFsaWRhdGVBZGRyZXNzAgUDdG9fAhl3aXRoZHJhdzogaW52YWxpZCBhZGRyZXNzBwkBDl92YWxpZGF0ZUFzc2V0AgUGYXNzZXRfAhd3aXRoZHJhdzogaW52YWxpZCBhc3NldAcJAQxfdmFsaWRhdGVJbnQEBQZhbW91bnQAAAUHTUFYX0lOVAIZd2l0aGRyYXc6IG5lZ2F0aXZlIGFtb3VudAcDCQAAAgUDZXJyBQNlcnIEDWFzc2V0RGVjaW1hbHMJAQxfZ2V0RGVjaW1hbHMBBQZhc3NldF8EEGFtb3VudE5vcm1hbGl6ZWQJARJfbm9ybWFsaXplRGVjaW1hbHMDBQZhbW91bnQFDERFWF9ERUNJTUFMUwUNYXNzZXREZWNpbWFscwQLbmV3UmVzZXJ2ZXMJAGUCCQENX2xvYWRSZXNlcnZlcwEFBmFzc2V0XwUGYW1vdW50BARlcnIxAwkBDF92YWxpZGF0ZUludAQFEGFtb3VudE5vcm1hbGl6ZWQAAQUHTUFYX0lOVAIYd2l0aGRyYXc6IGludmFsaWQgYW1vdW50CQEMX3ZhbGlkYXRlSW50BAULbmV3UmVzZXJ2ZXMAAAUHTUFYX0lOVAIed2l0aGRyYXc6IG5lZ2F0aXZlIG5ld1Jlc2VydmVzBwMJAAACBQRlcnIxBQRlcnIxBA1zdGFraW5nQXNzZXRzCQESX2xvYWRTdGFraW5nQXNzZXRzAAQTdW5zdGFraW5nSW52b2NhdGlvbgMJAAACBQZhc3NldF8FBVdBVkVTBA5zV2F2ZXNDb250cmFjdAkBE19sb2FkU1dhdmVzQ29udHJhY3QABAtzV2F2ZXNBc3NldAkBEF9sb2FkU1dhdmVzQXNzZXQBBQ5zV2F2ZXNDb250cmFjdAQKaW52b2NhdGlvbgkA/AcEBQ5zV2F2ZXNDb250cmFjdAUNRlVOQ19HRVRfUkFURQUDbmlsBQNuaWwEBHJhdGUEByRtYXRjaDAFCmludm9jYXRpb24DCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQCnAwEFAWEJAAIBAiF3aXRoZHJhdzogc1dhdmVzIGdldFJhdGUoKSByZXZlcnQEEHNXYXZlc1RvV2l0aGRyYXcJAKADAQkAvQIECQC2AgEFEGFtb3VudE5vcm1hbGl6ZWQFElNXQVZFU19SQVRFX0ZBQ1RPUgUEcmF0ZQUHQ0VJTElORwkA/AcEBQ5zV2F2ZXNDb250cmFjdAUNRlVOQ19XSVRIRFJBVwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQtzV2F2ZXNBc3NldAUQc1dhdmVzVG9XaXRoZHJhdwUDbmlsAwkBD2NvbnRhaW5zRWxlbWVudAIFDXN0YWtpbmdBc3NldHMFBmFzc2V0XwkA/AcECQEUX2xvYWRTdGFraW5nQ29udHJhY3QBBQZhc3NldF8FDEZVTkNfVU5TVEFLRQkAzAgCBRBhbW91bnROb3JtYWxpemVkBQNuaWwFA25pbAUEdW5pdAMJAAACBRN1bnN0YWtpbmdJbnZvY2F0aW9uBRN1bnN0YWtpbmdJbnZvY2F0aW9uCQCUCgIJAM4IAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQN0b18FEGFtb3VudE5vcm1hbGl6ZWQJAQtfc3RyVG9Bc3NldAEFBmFzc2V0XwUDbmlsCQENX3NhdmVSZXNlcnZlcwIFBmFzc2V0XwULbmV3UmVzZXJ2ZXMFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEUZGVwb3NpdFN0YWtpbmdSZXdhcmQBBmFzc2V0XwQDZXJyAwkBEF93aGVuSW5pdGlhbGl6ZWQACQEOX3ZhbGlkYXRlQXNzZXQCBQZhc3NldF8CI2RlcG9zaXRTdGFraW5nUmV3YXJkOiBpbnZhbGlkIGFzc2V0BwMJAAACBQNlcnIFA2VycgQNc3Rha2luZ0Fzc2V0cwkBEl9sb2FkU3Rha2luZ0Fzc2V0cwAED3VwZGF0ZWRSZXNlcnZlcwMJAAACBQZhc3NldF8FBVdBVkVTBA5zV2F2ZXNDb250cmFjdAkBE19sb2FkU1dhdmVzQ29udHJhY3QABAtzV2F2ZXNBc3NldAkBEF9sb2FkU1dhdmVzQXNzZXQBBQ5zV2F2ZXNDb250cmFjdAQKaW52b2NhdGlvbgkA/AcEBQ5zV2F2ZXNDb250cmFjdAUNRlVOQ19HRVRfUkFURQUDbmlsBQNuaWwEBHJhdGUEByRtYXRjaDAFCmludm9jYXRpb24DCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQCnAwEFAWEJAAIBAi1kZXBvc2l0U3Rha2luZ1Jld2FyZDogc1dhdmVzIGdldFJhdGUoKSByZXZlcnQEDHN3YXZlc0Ftb3VudAkA8AcCBQR0aGlzBQtzV2F2ZXNBc3NldAkAoAMBCQC9AgQJALYCAQUMc3dhdmVzQW1vdW50BQRyYXRlBRJTV0FWRVNfUkFURV9GQUNUT1IFBERPV04DCQEPY29udGFpbnNFbGVtZW50AgUNc3Rha2luZ0Fzc2V0cwUGYXNzZXRfBAppbnZvY2F0aW9uCQD8BwQJARRfbG9hZFN0YWtpbmdDb250cmFjdAEFBmFzc2V0XwUORlVOQ19DTEFJTV9BTEwJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAACBQppbnZvY2F0aW9uBQppbnZvY2F0aW9uCQDwBwIFBHRoaXMJANkEAQUGYXNzZXRfCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIqZGVwb3NpdFN0YWtpbmdSZXdhcmQ6IG5vIHN0YWtpbmcgZm9yIGFzc2V0BA1hc3NldERlY2ltYWxzCQEMX2dldERlY2ltYWxzAQUGYXNzZXRfBBl1cGRhdGVkUmVzZXJ2ZXNOb3JtYWxpemVkCQESX25vcm1hbGl6ZURlY2ltYWxzAwUPdXBkYXRlZFJlc2VydmVzBQ1hc3NldERlY2ltYWxzBQxERVhfREVDSU1BTFMEDXN0YWtpbmdQcm9maXQJAGUCBRl1cGRhdGVkUmVzZXJ2ZXNOb3JtYWxpemVkCQENX2xvYWRSZXNlcnZlcwEFBmFzc2V0XwQEZXJyMQkBDF92YWxpZGF0ZUludAQFDXN0YWtpbmdQcm9maXQAAQUHTUFYX0lOVAIfZGVwb3NpdFN0YWtpbmdSZXdhcmQ6IG5vIHJld2FyZAMJAAACBQRlcnIxBQRlcnIxBBFnYXRld2F5SW52b2NhdGlvbgkA/AcECQEUX2xvYWRHYXRld2F5Q29udHJhY3QABRtGVU5DX0RFUE9TSVRfU1RBS0lOR19SRVdBUkQJAMwIAgkApQgBBQR0aGlzCQDMCAIJAKQDAQkBDF9sb2FkQ2hhaW5JZAAJAMwIAgUGYXNzZXRfCQDMCAIJAKQDAQUNc3Rha2luZ1Byb2ZpdAUDbmlsBQNuaWwDCQAAAgURZ2F0ZXdheUludm9jYXRpb24FEWdhdGV3YXlJbnZvY2F0aW9uCQCUCgIJAQ1fc2F2ZVJlc2VydmVzAgUGYXNzZXRfBRl1cGRhdGVkUmVzZXJ2ZXNOb3JtYWxpemVkBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBD2FkZFN0YWtpbmdBc3NldAIGYXNzZXRfCWNvbnRyYWN0XwQDZXJyAwMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBDl92YWxpZGF0ZUFzc2V0AgUGYXNzZXRfAh5hZGRTdGFraW5nQXNzZXQ6IGludmFsaWQgYXNzZXQHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFCWNvbnRyYWN0XwIhYWRkU3Rha2luZ0Fzc2V0OiBpbnZhbGlkIGNvbnRyYWN0BwMJAAACBQNlcnIFA2VycgQGYXNzZXRzCQESX2xvYWRTdGFraW5nQXNzZXRzAAQEZXJyMQMJAQ9jb250YWluc0VsZW1lbnQCBQZhc3NldHMFBmFzc2V0XwkAAgECIGFkZFN0YWtpbmdBc3NldDogZHVwbGljYXRlIGFzc2V0BQR1bml0AwkAAAIFBGVycjEFBGVycjEJAJQKAgkAzggCCQESX3NhdmVTdGFraW5nQXNzZXRzAQkAzQgCBQZhc3NldHMFBmFzc2V0XwkBFF9zYXZlU3Rha2luZ0NvbnRyYWN0AgUGYXNzZXRfCQERQGV4dHJOYXRpdmUoMTA2MikBBQljb250cmFjdF8FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOcm1TdGFraW5nQXNzZXQBBmFzc2V0XwQDZXJyAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEOX3ZhbGlkYXRlQXNzZXQCBQZhc3NldF8CHXJtU3Rha2luZ0Fzc2V0OiBpbnZhbGlkIGFzc2V0BwMJAAACBQNlcnIFA2VycgQGYXNzZXRzCQESX2xvYWRTdGFraW5nQXNzZXRzAAQEZXJyMQMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIFBmFzc2V0cwUGYXNzZXRfCQACAQIYcm1TdGFraW5nQXNzZXQ6IG5vIGFzc2V0BQR1bml0AwkAAAIFBGVycjEFBGVycjEEBWluZGV4CQEFdmFsdWUBCQDPCAIFBmFzc2V0cwUGYXNzZXRfCQCUCgIJARJfc2F2ZVN0YWtpbmdBc3NldHMBCQDRCAIFBmFzc2V0cwUFaW5kZXgFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFcGF1c2UABANlcnIDAwkBC19vbmx5UGF1c2VyAQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHCQEOX3doZW5Ob3RQYXVzZWQABwMJAAACBQNlcnIFA2VycgkAlAoCCQEKX3NhdmVQYXVzZQEGBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBB3VucGF1c2UABANlcnIDAwkBC19vbmx5UGF1c2VyAQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHCQELX3doZW5QYXVzZWQABwMJAAACBQNlcnIFA2VycgkAlAoCCQEKX3NhdmVQYXVzZQEHBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDHVwZGF0ZVBhdXNlcgEHcGF1c2VyXwQDZXJyAwMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwkBEF92YWxpZGF0ZUFkZHJlc3MCBQdwYXVzZXJfAhx1cGRhdGVQYXVzZXI6IGludmFsaWQgcGF1c2VyBwMJAAACBQNlcnIFA2VycgkAlAoCCQELX3NhdmVQYXVzZXIBCQERQGV4dHJOYXRpdmUoMTA2MikBBQdwYXVzZXJfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBC3NldE11bHRpc2lnAQltdWx0aXNpZ18EA2VycgMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF92YWxpZGF0ZUFkZHJlc3MCBQltdWx0aXNpZ18CHXNldE11bHRpc2lnOiBpbnZhbGlkIG11bHRpc2lnBwMJAAACBQNlcnIFA2VycgkAlAoCCQENX3NhdmVNdWx0aXNpZwEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCW11bHRpc2lnXwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAEByRtYXRjaDAJAKIIAQUMS0VZX01VTFRJU0lHAwkAAQIFByRtYXRjaDACBlN0cmluZwQIbXVsdGlzaWcFByRtYXRjaDAJAQt2YWx1ZU9yRWxzZQIJAJsIAgkBEUBleHRyTmF0aXZlKDEwNjIpAQUIbXVsdGlzaWcJALkJAgkAzAgCBQpLRVlfU1RBVFVTCQDMCAIJAKUIAQUEdGhpcwkAzAgCCQDYBAEIBQJ0eAJpZAUDbmlsBQlTRVBBUkFUT1IHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5cgk9Ng==", "height": 3150602, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EzydaTK6rzUmknGewLy9YWPQxjW3yL3SAZFYnmsB9YE9 Next: none Diff:
OldNewDifferences
2323
2424 let k = "RESERVES"
2525
26-let l = "deposit"
26+let l = "STAKING_ASSETS"
2727
28-let m = "requestWithdrawal"
28+let m = "STAKING_CONTRACT"
2929
30-let n = "executeWithdrawal"
30+let n = "deposit"
3131
32-let o = "getRate"
32+let o = "requestWithdrawal"
3333
34-let p = "withdraw"
34+let p = "executeWithdrawal"
3535
36-let q = "WAVES"
36+let q = "getRate"
3737
38-let r = 8
38+let r = "withdraw"
3939
40-let s = 8
40+let s = "stake"
4141
42-let t = 9223372036854775807
42+let t = "unstake"
4343
44-let u = toBigInt(0)
44+let u = "claimAll"
4545
46-let v = toBigInt(1)
46+let v = "depositStakingReward"
4747
48-let w = toBigInt(1000000000000)
48+let w = "WAVES"
4949
50-func x (y,z) = {
51- let A = addressFromString(y)
52- if ($isInstanceOf(A, "Address"))
50+let x = 8
51+
52+let y = 8
53+
54+let z = 9223372036854775807
55+
56+let A = toBigInt(0)
57+
58+let B = toBigInt(1)
59+
60+let C = toBigInt(1000000000000)
61+
62+func D (E,F) = {
63+ let G = addressFromString(E)
64+ if ($isInstanceOf(G, "Address"))
5365 then {
54- let B = A
66+ let H = G
5567 true
5668 }
57- else throw(z)
69+ else throw(F)
5870 }
5971
6072
61-func C (D,z) = if ((D == q))
73+func I (J,F) = if ((J == w))
6274 then true
6375 else {
64- let A = assetInfo(fromBase58String(D))
65- if ($isInstanceOf(A, "Asset"))
76+ let G = assetInfo(fromBase58String(J))
77+ if ($isInstanceOf(G, "Asset"))
6678 then {
67- let B = A
79+ let H = G
6880 true
6981 }
70- else throw(z)
82+ else throw(F)
7183 }
7284
7385
74-func E (F,G,H,z) = if (if ((G > F))
86+func K (L,M,N,F) = if (if ((M > L))
7587 then true
76- else (F > H))
77- then throw(z)
88+ else (L > N))
89+ then throw(F)
7890 else true
7991
8092
81-func I (F,G,z) = if ((G > F))
82- then throw(z)
93+func O (L,M,F) = if ((M > L))
94+ then throw(F)
8395 else true
8496
8597
86-func J (F,z) = if (if ((0 >= size(F)))
98+func P (L,F) = if (if ((0 >= size(L)))
8799 then true
88- else contains(F, a))
89- then throw(z)
100+ else contains(L, a))
101+ then throw(F)
90102 else true
91103
92104
93-func K (L,M,z) = if ((size(L) != M))
94- then throw(z)
105+func Q (R,S,F) = if ((size(R) != S))
106+ then throw(F)
95107 else true
96108
97109
98-func N (O) = {
99- let A = O
100- if ($isInstanceOf(A, "ByteVector"))
110+func T (U) = {
111+ let G = U
112+ if ($isInstanceOf(G, "ByteVector"))
101113 then {
102- let B = A
103- toBase58String(B)
114+ let H = G
115+ toBase58String(H)
104116 }
105- else q
117+ else w
106118 }
107119
108120
109-func P (O) = if ((O == q))
121+func V (U) = if ((U == w))
110122 then unit
111- else fromBase58String(O)
123+ else fromBase58String(U)
112124
113125
114-func Q (D) = if ((D == q))
115- then r
126+func W (J) = if ((J == w))
127+ then x
116128 else {
117- let A = assetInfo(fromBase58String(D))
118- if ($isInstanceOf(A, "Asset"))
129+ let G = assetInfo(fromBase58String(J))
130+ if ($isInstanceOf(G, "Asset"))
119131 then {
120- let B = A
121- B.decimals
132+ let H = G
133+ H.decimals
122134 }
123- else throw(("_getDecimals: no asset=" + D))
135+ else throw(("_getDecimals: no asset=" + J))
124136 }
125137
126138
127-func R (S,T,U) = if ((T >= U))
128- then (S / pow(10, 0, (T - U), 0, 0, DOWN))
129- else (S * pow(10, 0, (U - T), 0, 0, DOWN))
139+func X (Y,Z,aa) = if ((Z >= aa))
140+ then (Y / pow(10, 0, (Z - aa), 0, 0, DOWN))
141+ else (Y * pow(10, 0, (aa - Z), 0, 0, DOWN))
130142
131143
132-func V () = {
133- let A = getBoolean(d)
134- if ($isInstanceOf(A, "Boolean"))
144+func ab () = {
145+ let G = getBoolean(d)
146+ if ($isInstanceOf(G, "Boolean"))
135147 then {
136- let B = A
137- B
148+ let H = G
149+ H
138150 }
139151 else false
140152 }
141153
142154
143-func W (X) = [BooleanEntry(d, X)]
155+func ac (ad) = [BooleanEntry(d, ad)]
144156
145157
146-func Y () = {
147- let A = getBoolean(e)
148- if ($isInstanceOf(A, "Boolean"))
158+func ae () = {
159+ let G = getBoolean(e)
160+ if ($isInstanceOf(G, "Boolean"))
149161 then {
150- let B = A
151- B
162+ let H = G
163+ H
152164 }
153165 else false
154166 }
155167
156168
157-func Z (aa) = [BooleanEntry(e, aa)]
169+func af (ag) = [BooleanEntry(e, ag)]
158170
159171
160-func ab () = {
161- let A = getString(f)
162- if ($isInstanceOf(A, "String"))
172+func ah () = {
173+ let G = getString(f)
174+ if ($isInstanceOf(G, "String"))
163175 then {
164- let B = A
165- addressFromStringValue(B)
176+ let H = G
177+ addressFromStringValue(H)
166178 }
167179 else Address(base58'')
168180 }
169181
170182
171-func ac (ad) = [StringEntry(f, toString(ad))]
183+func ai (aj) = [StringEntry(f, toString(aj))]
172184
173185
174-func ae () = {
175- let A = getString(b)
176- if ($isInstanceOf(A, "String"))
186+func ak () = {
187+ let G = getString(b)
188+ if ($isInstanceOf(G, "String"))
177189 then {
178- let B = A
179- addressFromStringValue(B)
190+ let H = G
191+ addressFromStringValue(H)
180192 }
181193 else Address(base58'')
182194 }
183195
184196
185-func af (ag) = [StringEntry(b, toString(ag))]
197+func al (am) = [StringEntry(b, toString(am))]
186198
187199
188-func ah () = {
189- let A = getInteger(g)
190- if ($isInstanceOf(A, "Int"))
200+func an () = {
201+ let G = getInteger(g)
202+ if ($isInstanceOf(G, "Int"))
191203 then {
192- let B = A
193- B
204+ let H = G
205+ H
194206 }
195207 else 0
196208 }
197209
198210
199-func ai (aj) = [IntegerEntry(g, aj)]
211+func ao (ap) = [IntegerEntry(g, ap)]
200212
201213
202-func ak () = {
203- let A = getString(h)
204- if ($isInstanceOf(A, "String"))
214+func aq () = {
215+ let G = getString(h)
216+ if ($isInstanceOf(G, "String"))
205217 then {
206- let B = A
207- addressFromStringValue(B)
218+ let H = G
219+ addressFromStringValue(H)
208220 }
209221 else Address(base58'')
210222 }
211223
212224
213-func al (am) = [StringEntry(h, toString(am))]
225+func ar (as) = [StringEntry(h, toString(as))]
214226
215227
216-func an () = {
217- let A = getString(i)
218- if ($isInstanceOf(A, "String"))
228+func at () = {
229+ let G = getString(i)
230+ if ($isInstanceOf(G, "String"))
219231 then {
220- let B = A
221- addressFromStringValue(B)
232+ let H = G
233+ addressFromStringValue(H)
222234 }
223235 else Address(base58'')
224236 }
225237
226238
227-func ao (ap) = [StringEntry(i, toString(ap))]
239+func au (av) = [StringEntry(i, toString(av))]
228240
229241
230-func aq (ar) = {
231- let A = getString(ar, j)
232- if ($isInstanceOf(A, "String"))
242+func aw (ax) = {
243+ let G = getString(ax, j)
244+ if ($isInstanceOf(G, "String"))
233245 then {
234- let B = A
235- fromBase58String(B)
246+ let H = G
247+ fromBase58String(H)
236248 }
237249 else throw("_loadSWavesAsset: revert")
238250 }
239251
240252
241-func as (O) = {
242- let A = getInteger(makeString([k, O], a))
243- if ($isInstanceOf(A, "Int"))
253+func ay (U) = {
254+ let G = getInteger(makeString([k, U], a))
255+ if ($isInstanceOf(G, "Int"))
244256 then {
245- let B = A
246- B
257+ let H = G
258+ H
247259 }
248260 else 0
249261 }
250262
251263
252-func at (O,au) = [IntegerEntry(makeString([k, O], a), au)]
264+func az (U,aA) = [IntegerEntry(makeString([k, U], a), aA)]
253265
254266
255-func av (aw) = if ((aw != this))
267+func aB () = {
268+ let G = getString(l)
269+ if ($isInstanceOf(G, "String"))
270+ then {
271+ let H = G
272+ if ((size(H) > 0))
273+ then split_51C(H, a)
274+ else nil
275+ }
276+ else nil
277+ }
278+
279+
280+func aC (aD) = [StringEntry(l, makeString(aD, a))]
281+
282+
283+func aE (U) = {
284+ let G = getString(makeString([m, U], a))
285+ if ($isInstanceOf(G, "String"))
286+ then {
287+ let H = G
288+ addressFromStringValue(H)
289+ }
290+ else Address(base58'')
291+ }
292+
293+
294+func aF (U,ax) = [StringEntry(makeString([m, U], a), toString(ax))]
295+
296+
297+func aG (aH) = if ((aH != this))
256298 then throw("_onlyThisContract: revert")
257299 else true
258300
259301
260-func ax () = if ((ae() == Address(base58'')))
302+func aI () = if ((ak() == Address(base58'')))
261303 then throw("_whenMultisigSet: revert")
262304 else true
263305
264306
265-func ay () = if (V())
307+func aJ () = if (ab())
266308 then throw("_whenNotInitialized: revert")
267309 else true
268310
269311
270-func az () = if (!(V()))
312+func aK () = if (!(ab()))
271313 then throw("_whenInitialized: revert")
272314 else true
273315
274316
275-func aA () = if (Y())
317+func aL () = if (ae())
276318 then throw("_whenNotPaused: revert")
277319 else true
278320
279321
280-func aB () = if (!(Y()))
322+func aM () = if (!(ae()))
281323 then throw("_whenPaused: revert")
282324 else true
283325
284326
285-func aC (aw) = if ((aw != ab()))
327+func aN (aH) = if ((aH != ah()))
286328 then throw("_onlyPauser: revert")
287329 else true
288330
289331
290-func aD (aE,z) = if ((ak() != aE))
291- then throw(z)
332+func aO (aP,F) = if ((aq() != aP))
333+ then throw(F)
292334 else true
293335
294336
295-@Callable(aF)
296-func init (aj,ad,am,ap) = {
297- let aG = if (if (if (if (if (if (av(aF.caller))
298- then ay()
337+func aQ (aR,aS,U,Y) = {
338+ let aT = W(U)
339+ let aU = X(Y, aT, y)
340+ let aV = K(aU, 1, z, "_deposit: invalid payment amount")
341+ if ((aV == aV))
342+ then {
343+ let aW = invoke(aq(), n, [toString(this), aR, aS, toString(an()), U, toString(aU)], nil)
344+ if ((aW == aW))
345+ then {
346+ let aX = aB()
347+ let aY = if ((U == w))
348+ then invoke(at(), n, nil, [AttachedPayment(unit, Y)])
349+ else if (containsElement(aX, U))
350+ then invoke(aE(U), s, nil, [AttachedPayment(V(U), Y)])
351+ else unit
352+ if ((aY == aY))
353+ then az(U, (ay(U) + aU))
354+ else throw("Strict value is not equal to itself.")
355+ }
356+ else throw("Strict value is not equal to itself.")
357+ }
358+ else throw("Strict value is not equal to itself.")
359+ }
360+
361+
362+@Callable(aZ)
363+func init (ap,aj,as,av) = {
364+ let aV = if (if (if (if (if (if (aG(aZ.caller))
365+ then aJ()
299366 else false)
300- then ax()
367+ then aI()
301368 else false)
302- then E(aj, 0, t, "init: invalid chainId")
369+ then K(ap, 0, z, "init: invalid chainId")
303370 else false)
304- then x(ad, "init: invalid pauser")
371+ then D(aj, "init: invalid pauser")
305372 else false)
306- then x(am, "init: invalid gatewayContract")
373+ then D(as, "init: invalid gatewayContract")
307374 else false)
308- then x(ap, "init: invalid sWavesContract")
375+ then D(av, "init: invalid sWavesContract")
309376 else false
310- if ((aG == aG))
311- then $Tuple2(((((W(true) ++ ai(aj)) ++ ac(addressFromStringValue(ad))) ++ al(addressFromStringValue(am))) ++ ao(addressFromStringValue(ap))), unit)
377+ if ((aV == aV))
378+ then $Tuple2(((((ac(true) ++ ao(ap)) ++ ai(addressFromStringValue(aj))) ++ ar(addressFromStringValue(as))) ++ au(addressFromStringValue(av))), unit)
312379 else throw("Strict value is not equal to itself.")
313380 }
314381
315382
316383
317-@Callable(aF)
384+@Callable(aZ)
318385 func deposit () = {
319- let aG = if (if (if (az())
320- then aA()
386+ let aV = if (if (if (aK())
387+ then aL()
321388 else false)
322- then K(aF.payments, 1, "deposit: no payment")
389+ then Q(aZ.payments, 1, "deposit: no payment")
323390 else false)
324- then E(aF.payments[0].amount, 0, t, "deposit: negative payment")
391+ then K(aZ.payments[0].amount, 0, z, "deposit: negative payment")
325392 else false
326- if ((aG == aG))
393+ if ((aV == aV))
394+ then $Tuple2(aQ(toString(aZ.caller), toString(aZ.caller), T(aZ.payments[0].assetId), aZ.payments[0].amount), unit)
395+ else throw("Strict value is not equal to itself.")
396+ }
397+
398+
399+
400+@Callable(aZ)
401+func depositTo (aS) = {
402+ let aV = if (if (if (if (aK())
403+ then aL()
404+ else false)
405+ then Q(aZ.payments, 1, "depositTo: no payment")
406+ else false)
407+ then K(aZ.payments[0].amount, 0, z, "depositTo: negative payment")
408+ else false)
409+ then P(aS, "depositTo: invalid to")
410+ else false
411+ if ((aV == aV))
412+ then $Tuple2(aQ(toString(aZ.caller), aS, T(aZ.payments[0].assetId), aZ.payments[0].amount), unit)
413+ else throw("Strict value is not equal to itself.")
414+ }
415+
416+
417+
418+@Callable(aZ)
419+func requestWithdrawal (ba,U,Y) = {
420+ let aU = valueOrErrorMessage(parseBigInt(Y), "requestWithdrawal: amount not int")
421+ let aV = if (if (if (aK())
422+ then K(ba, 0, z, "requestWithdrawal: invalid toChainId")
423+ else false)
424+ then P(U, "requestWithdrawal: invalid asset")
425+ else false)
426+ then O(aU, B, "requestWithdrawal: negative amount")
427+ else false
428+ if ((aV == aV))
327429 then {
328- let aE = toString(aF.caller)
329- let aH = N(aF.payments[0].assetId)
330- let aI = Q(aH)
331- let aJ = R(aF.payments[0].amount, aI, s)
332- let aK = E(aJ, 1, t, "deposit: invalid payment amount")
333- if ((aK == aK))
430+ let aP = toString(aZ.caller)
431+ let bb = {
432+ let G = invoke(aq(), o, [toString(this), aP, aP, toString(an()), toString(ba), U, Y], nil)
433+ if ($isInstanceOf(G, "Int"))
434+ then {
435+ let H = G
436+ H
437+ }
438+ else throw("requestWithdrawal: call reverted from gw")
439+ }
440+ if ((bb == bb))
441+ then $Tuple2(nil, bb)
442+ else throw("Strict value is not equal to itself.")
443+ }
444+ else throw("Strict value is not equal to itself.")
445+ }
446+
447+
448+
449+@Callable(aZ)
450+func executeWithdrawal (bc) = {
451+ let aV = if (aK())
452+ then K(bc, 0, z, "executeWithdrawal: invalid requestId")
453+ else false
454+ if ((aV == aV))
455+ then {
456+ let aW = reentrantInvoke(aq(), p, [toString(this), toString(an()), toString(bc)], nil)
457+ if ((aW == aW))
458+ then $Tuple2(nil, unit)
459+ else throw("Strict value is not equal to itself.")
460+ }
461+ else throw("Strict value is not equal to itself.")
462+ }
463+
464+
465+
466+@Callable(aZ)
467+func withdraw (aS,U,Y) = {
468+ let aU = valueOrErrorMessage(parseInt(Y), "withdraw: amount not int")
469+ let aV = if (if (if (if (aK())
470+ then aO(aZ.caller, "withdraw: invalid gateway")
471+ else false)
472+ then D(aS, "withdraw: invalid address")
473+ else false)
474+ then I(U, "withdraw: invalid asset")
475+ else false)
476+ then K(aU, 0, z, "withdraw: negative amount")
477+ else false
478+ if ((aV == aV))
479+ then {
480+ let aT = W(U)
481+ let bd = X(aU, y, aT)
482+ let be = (ay(U) - aU)
483+ let bf = if (K(bd, 1, z, "withdraw: invalid amount"))
484+ then K(be, 0, z, "withdraw: negative newReserves")
485+ else false
486+ if ((bf == bf))
334487 then {
335- let aL = invoke(ak(), l, [toString(this), aE, aE, toString(ah()), aH, toString(aJ)], nil)
336- if ((aL == aL))
488+ let aX = aB()
489+ let bg = if ((U == w))
337490 then {
338- let aM = if ((aH == q))
339- then invoke(an(), l, nil, [AttachedPayment(unit, aF.payments[0].amount)])
340- else unit
341- if ((aM == aM))
342- then $Tuple2(at(aH, (as(aH) + aJ)), unit)
343- else throw("Strict value is not equal to itself.")
491+ let bh = at()
492+ let bi = aw(bh)
493+ let bj = invoke(bh, q, nil, nil)
494+ let bk = {
495+ let G = bj
496+ if ($isInstanceOf(G, "String"))
497+ then {
498+ let H = G
499+ parseBigIntValue(H)
500+ }
501+ else throw("withdraw: sWaves getRate() revert")
502+ }
503+ let bl = toInt(fraction(toBigInt(bd), C, bk, CEILING))
504+ invoke(bh, r, nil, [AttachedPayment(bi, bl)])
344505 }
506+ else if (containsElement(aX, U))
507+ then invoke(aE(U), t, [bd], nil)
508+ else unit
509+ if ((bg == bg))
510+ then $Tuple2(([ScriptTransfer(addressFromStringValue(aS), bd, V(U))] ++ az(U, be)), unit)
345511 else throw("Strict value is not equal to itself.")
346512 }
347513 else throw("Strict value is not equal to itself.")
351517
352518
353519
354-@Callable(aF)
355-func depositTo (aN) = {
356- let aG = if (if (if (if (az())
357- then aA()
358- else false)
359- then K(aF.payments, 1, "depositTo: no payment")
360- else false)
361- then E(aF.payments[0].amount, 0, t, "depositTo: negative payment")
362- else false)
363- then J(aN, "depositTo: invalid to")
520+@Callable(aZ)
521+func depositStakingReward (U) = {
522+ let aV = if (aK())
523+ then I(U, "depositStakingReward: invalid asset")
364524 else false
365- if ((aG == aG))
525+ if ((aV == aV))
366526 then {
367- let aE = toString(aF.caller)
368- let aH = N(aF.payments[0].assetId)
369- let aI = Q(aH)
370- let aJ = R(aF.payments[0].amount, aI, s)
371- let aK = E(aJ, 1, t, "depositTo: invalid payment amount")
372- if ((aK == aK))
527+ let aX = aB()
528+ let bm = if ((U == w))
373529 then {
374- let aL = invoke(ak(), l, [toString(this), aE, aN, toString(ah()), aH, toString(aJ)], nil)
375- if ((aL == aL))
376- then {
377- let aM = if ((aH == q))
378- then invoke(an(), l, nil, [AttachedPayment(unit, aF.payments[0].amount)])
379- else unit
380- if ((aM == aM))
381- then $Tuple2(at(aH, (as(aH) + aJ)), unit)
382- else throw("Strict value is not equal to itself.")
383- }
530+ let bh = at()
531+ let bi = aw(bh)
532+ let bj = invoke(bh, q, nil, nil)
533+ let bk = {
534+ let G = bj
535+ if ($isInstanceOf(G, "String"))
536+ then {
537+ let H = G
538+ parseBigIntValue(H)
539+ }
540+ else throw("depositStakingReward: sWaves getRate() revert")
541+ }
542+ let bn = assetBalance(this, bi)
543+ toInt(fraction(toBigInt(bn), bk, C, DOWN))
544+ }
545+ else if (containsElement(aX, U))
546+ then {
547+ let bj = invoke(aE(U), u, [toString(this)], nil)
548+ if ((bj == bj))
549+ then assetBalance(this, fromBase58String(U))
550+ else throw("Strict value is not equal to itself.")
551+ }
552+ else throw("depositStakingReward: no staking for asset")
553+ let aT = W(U)
554+ let bo = X(bm, aT, y)
555+ let bp = (bo - ay(U))
556+ let bf = K(bp, 1, z, "depositStakingReward: no reward")
557+ if ((bf == bf))
558+ then {
559+ let aW = invoke(aq(), v, [toString(this), toString(an()), U, toString(bp)], nil)
560+ if ((aW == aW))
561+ then $Tuple2(az(U, bo), unit)
384562 else throw("Strict value is not equal to itself.")
385563 }
386564 else throw("Strict value is not equal to itself.")
390568
391569
392570
393-@Callable(aF)
394-func requestWithdrawal (aO,O,S) = {
395- let aJ = valueOrErrorMessage(parseBigInt(S), "requestWithdrawal: amount not int")
396- let aG = if (if (if (az())
397- then E(aO, 0, t, "requestWithdrawal: invalid toChainId")
571+@Callable(aZ)
572+func addStakingAsset (U,ax) = {
573+ let aV = if (if (aG(aZ.caller))
574+ then I(U, "addStakingAsset: invalid asset")
398575 else false)
399- then J(O, "requestWithdrawal: invalid asset")
400- else false)
401- then I(aJ, v, "requestWithdrawal: negative amount")
576+ then D(ax, "addStakingAsset: invalid contract")
402577 else false
403- if ((aG == aG))
578+ if ((aV == aV))
404579 then {
405- let aE = toString(aF.caller)
406- let aP = {
407- let A = invoke(ak(), m, [toString(this), aE, aE, toString(ah()), toString(aO), O, S], nil)
408- if ($isInstanceOf(A, "Int"))
409- then {
410- let B = A
411- B
412- }
413- else throw("requestWithdrawal: call reverted from gw")
414- }
415- if ((aP == aP))
416- then $Tuple2(nil, aP)
580+ let bq = aB()
581+ let bf = if (containsElement(bq, U))
582+ then throw("addStakingAsset: duplicate asset")
583+ else unit
584+ if ((bf == bf))
585+ then $Tuple2((aC((bq :+ U)) ++ aF(U, addressFromStringValue(ax))), unit)
417586 else throw("Strict value is not equal to itself.")
418587 }
419588 else throw("Strict value is not equal to itself.")
421590
422591
423592
424-@Callable(aF)
425-func executeWithdrawal (aQ) = {
426- let aG = if (az())
427- then E(aQ, 0, t, "executeWithdrawal: invalid requestId")
593+@Callable(aZ)
594+func rmStakingAsset (U) = {
595+ let aV = if (aG(aZ.caller))
596+ then I(U, "rmStakingAsset: invalid asset")
428597 else false
429- if ((aG == aG))
598+ if ((aV == aV))
430599 then {
431- let aL = reentrantInvoke(ak(), n, [toString(this), toString(ah()), toString(aQ)], nil)
432- if ((aL == aL))
433- then $Tuple2(nil, unit)
434- else throw("Strict value is not equal to itself.")
435- }
436- else throw("Strict value is not equal to itself.")
437- }
438-
439-
440-
441-@Callable(aF)
442-func withdraw (aN,O,S) = {
443- let aJ = valueOrErrorMessage(parseInt(S), "withdraw: amount not int")
444- let aG = if (if (if (if (az())
445- then aD(aF.caller, "withdraw: invalid gateway")
446- else false)
447- then x(aN, "withdraw: invalid address")
448- else false)
449- then C(O, "withdraw: invalid asset")
450- else false)
451- then E(aJ, 0, t, "withdraw: negative amount")
452- else false
453- if ((aG == aG))
454- then {
455- let aI = Q(O)
456- let aR = R(aJ, s, aI)
457- let aS = (as(O) - aJ)
458- let aK = if (E(aR, 1, t, "withdraw: invalid amount"))
459- then E(aS, 0, t, "withdraw: negative newReserves")
460- else false
461- if ((aK == aK))
600+ let bq = aB()
601+ let bf = if (!(containsElement(bq, U)))
602+ then throw("rmStakingAsset: no asset")
603+ else unit
604+ if ((bf == bf))
462605 then {
463- let aT = if ((O == q))
464- then {
465- let aU = an()
466- let aV = aq(aU)
467- let aW = invoke(aU, o, nil, nil)
468- let aX = {
469- let A = aW
470- if ($isInstanceOf(A, "String"))
471- then {
472- let B = A
473- parseBigIntValue(B)
474- }
475- else throw("withdraw: sWaves getRate() revert")
476- }
477- let aY = toInt(fraction(toBigInt(aR), w, aX, CEILING))
478- invoke(aU, p, nil, [AttachedPayment(aV, aY)])
479- }
480- else unit
481- if ((aT == aT))
482- then $Tuple2(([ScriptTransfer(addressFromStringValue(aN), aR, P(O))] ++ at(O, aS)), unit)
483- else throw("Strict value is not equal to itself.")
606+ let br = value(indexOf(bq, U))
607+ $Tuple2(aC(removeByIndex(bq, br)), unit)
484608 }
485609 else throw("Strict value is not equal to itself.")
486610 }
489613
490614
491615
492-@Callable(aF)
616+@Callable(aZ)
493617 func pause () = {
494- let aG = if (if (aC(aF.caller))
495- then az()
618+ let aV = if (if (aN(aZ.caller))
619+ then aK()
496620 else false)
497- then aA()
621+ then aL()
498622 else false
499- if ((aG == aG))
500- then $Tuple2(Z(true), unit)
623+ if ((aV == aV))
624+ then $Tuple2(af(true), unit)
501625 else throw("Strict value is not equal to itself.")
502626 }
503627
504628
505629
506-@Callable(aF)
630+@Callable(aZ)
507631 func unpause () = {
508- let aG = if (if (aC(aF.caller))
509- then az()
632+ let aV = if (if (aN(aZ.caller))
633+ then aK()
510634 else false)
511- then aB()
635+ then aM()
512636 else false
513- if ((aG == aG))
514- then $Tuple2(Z(false), unit)
637+ if ((aV == aV))
638+ then $Tuple2(af(false), unit)
515639 else throw("Strict value is not equal to itself.")
516640 }
517641
518642
519643
520-@Callable(aF)
521-func updatePauser (ad) = {
522- let aG = if (if (av(aF.caller))
523- then az()
644+@Callable(aZ)
645+func updatePauser (aj) = {
646+ let aV = if (if (aG(aZ.caller))
647+ then aK()
524648 else false)
525- then x(ad, "updatePauser: invalid pauser")
649+ then D(aj, "updatePauser: invalid pauser")
526650 else false
527- if ((aG == aG))
528- then $Tuple2(ac(addressFromStringValue(ad)), unit)
651+ if ((aV == aV))
652+ then $Tuple2(ai(addressFromStringValue(aj)), unit)
529653 else throw("Strict value is not equal to itself.")
530654 }
531655
532656
533657
534-@Callable(aF)
535-func setMultisig (ag) = {
536- let aG = if (av(aF.caller))
537- then x(ag, "setMultisig: invalid multisig")
658+@Callable(aZ)
659+func setMultisig (am) = {
660+ let aV = if (aG(aZ.caller))
661+ then D(am, "setMultisig: invalid multisig")
538662 else false
539- if ((aG == aG))
540- then $Tuple2(af(addressFromStringValue(ag)), unit)
663+ if ((aV == aV))
664+ then $Tuple2(al(addressFromStringValue(am)), unit)
541665 else throw("Strict value is not equal to itself.")
542666 }
543667
544668
545-@Verifier(aZ)
546-func ba () = {
547- let A = getString(b)
548- if ($isInstanceOf(A, "String"))
669+@Verifier(bs)
670+func bt () = {
671+ let G = getString(b)
672+ if ($isInstanceOf(G, "String"))
549673 then {
550- let bb = A
551- valueOrElse(getBoolean(addressFromStringValue(bb), makeString([c, toString(this), toBase58String(aZ.id)], a)), false)
674+ let bu = G
675+ valueOrElse(getBoolean(addressFromStringValue(bu), makeString([c, toString(this), toBase58String(bs.id)], a)), false)
552676 }
553- else sigVerify(aZ.bodyBytes, aZ.proofs[0], aZ.senderPublicKey)
677+ else sigVerify(bs.bodyBytes, bs.proofs[0], bs.senderPublicKey)
554678 }
555679
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 7 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "MULTISIG"
77
88 let c = "STATUS"
99
1010 let d = "INIT"
1111
1212 let e = "PAUSED"
1313
1414 let f = "PAUSER"
1515
1616 let g = "CHAIN"
1717
1818 let h = "GATEWAY_CONTRACT"
1919
2020 let i = "SWAVES_CONTRACT"
2121
2222 let j = "ASSET"
2323
2424 let k = "RESERVES"
2525
26-let l = "deposit"
26+let l = "STAKING_ASSETS"
2727
28-let m = "requestWithdrawal"
28+let m = "STAKING_CONTRACT"
2929
30-let n = "executeWithdrawal"
30+let n = "deposit"
3131
32-let o = "getRate"
32+let o = "requestWithdrawal"
3333
34-let p = "withdraw"
34+let p = "executeWithdrawal"
3535
36-let q = "WAVES"
36+let q = "getRate"
3737
38-let r = 8
38+let r = "withdraw"
3939
40-let s = 8
40+let s = "stake"
4141
42-let t = 9223372036854775807
42+let t = "unstake"
4343
44-let u = toBigInt(0)
44+let u = "claimAll"
4545
46-let v = toBigInt(1)
46+let v = "depositStakingReward"
4747
48-let w = toBigInt(1000000000000)
48+let w = "WAVES"
4949
50-func x (y,z) = {
51- let A = addressFromString(y)
52- if ($isInstanceOf(A, "Address"))
50+let x = 8
51+
52+let y = 8
53+
54+let z = 9223372036854775807
55+
56+let A = toBigInt(0)
57+
58+let B = toBigInt(1)
59+
60+let C = toBigInt(1000000000000)
61+
62+func D (E,F) = {
63+ let G = addressFromString(E)
64+ if ($isInstanceOf(G, "Address"))
5365 then {
54- let B = A
66+ let H = G
5567 true
5668 }
57- else throw(z)
69+ else throw(F)
5870 }
5971
6072
61-func C (D,z) = if ((D == q))
73+func I (J,F) = if ((J == w))
6274 then true
6375 else {
64- let A = assetInfo(fromBase58String(D))
65- if ($isInstanceOf(A, "Asset"))
76+ let G = assetInfo(fromBase58String(J))
77+ if ($isInstanceOf(G, "Asset"))
6678 then {
67- let B = A
79+ let H = G
6880 true
6981 }
70- else throw(z)
82+ else throw(F)
7183 }
7284
7385
74-func E (F,G,H,z) = if (if ((G > F))
86+func K (L,M,N,F) = if (if ((M > L))
7587 then true
76- else (F > H))
77- then throw(z)
88+ else (L > N))
89+ then throw(F)
7890 else true
7991
8092
81-func I (F,G,z) = if ((G > F))
82- then throw(z)
93+func O (L,M,F) = if ((M > L))
94+ then throw(F)
8395 else true
8496
8597
86-func J (F,z) = if (if ((0 >= size(F)))
98+func P (L,F) = if (if ((0 >= size(L)))
8799 then true
88- else contains(F, a))
89- then throw(z)
100+ else contains(L, a))
101+ then throw(F)
90102 else true
91103
92104
93-func K (L,M,z) = if ((size(L) != M))
94- then throw(z)
105+func Q (R,S,F) = if ((size(R) != S))
106+ then throw(F)
95107 else true
96108
97109
98-func N (O) = {
99- let A = O
100- if ($isInstanceOf(A, "ByteVector"))
110+func T (U) = {
111+ let G = U
112+ if ($isInstanceOf(G, "ByteVector"))
101113 then {
102- let B = A
103- toBase58String(B)
114+ let H = G
115+ toBase58String(H)
104116 }
105- else q
117+ else w
106118 }
107119
108120
109-func P (O) = if ((O == q))
121+func V (U) = if ((U == w))
110122 then unit
111- else fromBase58String(O)
123+ else fromBase58String(U)
112124
113125
114-func Q (D) = if ((D == q))
115- then r
126+func W (J) = if ((J == w))
127+ then x
116128 else {
117- let A = assetInfo(fromBase58String(D))
118- if ($isInstanceOf(A, "Asset"))
129+ let G = assetInfo(fromBase58String(J))
130+ if ($isInstanceOf(G, "Asset"))
119131 then {
120- let B = A
121- B.decimals
132+ let H = G
133+ H.decimals
122134 }
123- else throw(("_getDecimals: no asset=" + D))
135+ else throw(("_getDecimals: no asset=" + J))
124136 }
125137
126138
127-func R (S,T,U) = if ((T >= U))
128- then (S / pow(10, 0, (T - U), 0, 0, DOWN))
129- else (S * pow(10, 0, (U - T), 0, 0, DOWN))
139+func X (Y,Z,aa) = if ((Z >= aa))
140+ then (Y / pow(10, 0, (Z - aa), 0, 0, DOWN))
141+ else (Y * pow(10, 0, (aa - Z), 0, 0, DOWN))
130142
131143
132-func V () = {
133- let A = getBoolean(d)
134- if ($isInstanceOf(A, "Boolean"))
144+func ab () = {
145+ let G = getBoolean(d)
146+ if ($isInstanceOf(G, "Boolean"))
135147 then {
136- let B = A
137- B
148+ let H = G
149+ H
138150 }
139151 else false
140152 }
141153
142154
143-func W (X) = [BooleanEntry(d, X)]
155+func ac (ad) = [BooleanEntry(d, ad)]
144156
145157
146-func Y () = {
147- let A = getBoolean(e)
148- if ($isInstanceOf(A, "Boolean"))
158+func ae () = {
159+ let G = getBoolean(e)
160+ if ($isInstanceOf(G, "Boolean"))
149161 then {
150- let B = A
151- B
162+ let H = G
163+ H
152164 }
153165 else false
154166 }
155167
156168
157-func Z (aa) = [BooleanEntry(e, aa)]
169+func af (ag) = [BooleanEntry(e, ag)]
158170
159171
160-func ab () = {
161- let A = getString(f)
162- if ($isInstanceOf(A, "String"))
172+func ah () = {
173+ let G = getString(f)
174+ if ($isInstanceOf(G, "String"))
163175 then {
164- let B = A
165- addressFromStringValue(B)
176+ let H = G
177+ addressFromStringValue(H)
166178 }
167179 else Address(base58'')
168180 }
169181
170182
171-func ac (ad) = [StringEntry(f, toString(ad))]
183+func ai (aj) = [StringEntry(f, toString(aj))]
172184
173185
174-func ae () = {
175- let A = getString(b)
176- if ($isInstanceOf(A, "String"))
186+func ak () = {
187+ let G = getString(b)
188+ if ($isInstanceOf(G, "String"))
177189 then {
178- let B = A
179- addressFromStringValue(B)
190+ let H = G
191+ addressFromStringValue(H)
180192 }
181193 else Address(base58'')
182194 }
183195
184196
185-func af (ag) = [StringEntry(b, toString(ag))]
197+func al (am) = [StringEntry(b, toString(am))]
186198
187199
188-func ah () = {
189- let A = getInteger(g)
190- if ($isInstanceOf(A, "Int"))
200+func an () = {
201+ let G = getInteger(g)
202+ if ($isInstanceOf(G, "Int"))
191203 then {
192- let B = A
193- B
204+ let H = G
205+ H
194206 }
195207 else 0
196208 }
197209
198210
199-func ai (aj) = [IntegerEntry(g, aj)]
211+func ao (ap) = [IntegerEntry(g, ap)]
200212
201213
202-func ak () = {
203- let A = getString(h)
204- if ($isInstanceOf(A, "String"))
214+func aq () = {
215+ let G = getString(h)
216+ if ($isInstanceOf(G, "String"))
205217 then {
206- let B = A
207- addressFromStringValue(B)
218+ let H = G
219+ addressFromStringValue(H)
208220 }
209221 else Address(base58'')
210222 }
211223
212224
213-func al (am) = [StringEntry(h, toString(am))]
225+func ar (as) = [StringEntry(h, toString(as))]
214226
215227
216-func an () = {
217- let A = getString(i)
218- if ($isInstanceOf(A, "String"))
228+func at () = {
229+ let G = getString(i)
230+ if ($isInstanceOf(G, "String"))
219231 then {
220- let B = A
221- addressFromStringValue(B)
232+ let H = G
233+ addressFromStringValue(H)
222234 }
223235 else Address(base58'')
224236 }
225237
226238
227-func ao (ap) = [StringEntry(i, toString(ap))]
239+func au (av) = [StringEntry(i, toString(av))]
228240
229241
230-func aq (ar) = {
231- let A = getString(ar, j)
232- if ($isInstanceOf(A, "String"))
242+func aw (ax) = {
243+ let G = getString(ax, j)
244+ if ($isInstanceOf(G, "String"))
233245 then {
234- let B = A
235- fromBase58String(B)
246+ let H = G
247+ fromBase58String(H)
236248 }
237249 else throw("_loadSWavesAsset: revert")
238250 }
239251
240252
241-func as (O) = {
242- let A = getInteger(makeString([k, O], a))
243- if ($isInstanceOf(A, "Int"))
253+func ay (U) = {
254+ let G = getInteger(makeString([k, U], a))
255+ if ($isInstanceOf(G, "Int"))
244256 then {
245- let B = A
246- B
257+ let H = G
258+ H
247259 }
248260 else 0
249261 }
250262
251263
252-func at (O,au) = [IntegerEntry(makeString([k, O], a), au)]
264+func az (U,aA) = [IntegerEntry(makeString([k, U], a), aA)]
253265
254266
255-func av (aw) = if ((aw != this))
267+func aB () = {
268+ let G = getString(l)
269+ if ($isInstanceOf(G, "String"))
270+ then {
271+ let H = G
272+ if ((size(H) > 0))
273+ then split_51C(H, a)
274+ else nil
275+ }
276+ else nil
277+ }
278+
279+
280+func aC (aD) = [StringEntry(l, makeString(aD, a))]
281+
282+
283+func aE (U) = {
284+ let G = getString(makeString([m, U], a))
285+ if ($isInstanceOf(G, "String"))
286+ then {
287+ let H = G
288+ addressFromStringValue(H)
289+ }
290+ else Address(base58'')
291+ }
292+
293+
294+func aF (U,ax) = [StringEntry(makeString([m, U], a), toString(ax))]
295+
296+
297+func aG (aH) = if ((aH != this))
256298 then throw("_onlyThisContract: revert")
257299 else true
258300
259301
260-func ax () = if ((ae() == Address(base58'')))
302+func aI () = if ((ak() == Address(base58'')))
261303 then throw("_whenMultisigSet: revert")
262304 else true
263305
264306
265-func ay () = if (V())
307+func aJ () = if (ab())
266308 then throw("_whenNotInitialized: revert")
267309 else true
268310
269311
270-func az () = if (!(V()))
312+func aK () = if (!(ab()))
271313 then throw("_whenInitialized: revert")
272314 else true
273315
274316
275-func aA () = if (Y())
317+func aL () = if (ae())
276318 then throw("_whenNotPaused: revert")
277319 else true
278320
279321
280-func aB () = if (!(Y()))
322+func aM () = if (!(ae()))
281323 then throw("_whenPaused: revert")
282324 else true
283325
284326
285-func aC (aw) = if ((aw != ab()))
327+func aN (aH) = if ((aH != ah()))
286328 then throw("_onlyPauser: revert")
287329 else true
288330
289331
290-func aD (aE,z) = if ((ak() != aE))
291- then throw(z)
332+func aO (aP,F) = if ((aq() != aP))
333+ then throw(F)
292334 else true
293335
294336
295-@Callable(aF)
296-func init (aj,ad,am,ap) = {
297- let aG = if (if (if (if (if (if (av(aF.caller))
298- then ay()
337+func aQ (aR,aS,U,Y) = {
338+ let aT = W(U)
339+ let aU = X(Y, aT, y)
340+ let aV = K(aU, 1, z, "_deposit: invalid payment amount")
341+ if ((aV == aV))
342+ then {
343+ let aW = invoke(aq(), n, [toString(this), aR, aS, toString(an()), U, toString(aU)], nil)
344+ if ((aW == aW))
345+ then {
346+ let aX = aB()
347+ let aY = if ((U == w))
348+ then invoke(at(), n, nil, [AttachedPayment(unit, Y)])
349+ else if (containsElement(aX, U))
350+ then invoke(aE(U), s, nil, [AttachedPayment(V(U), Y)])
351+ else unit
352+ if ((aY == aY))
353+ then az(U, (ay(U) + aU))
354+ else throw("Strict value is not equal to itself.")
355+ }
356+ else throw("Strict value is not equal to itself.")
357+ }
358+ else throw("Strict value is not equal to itself.")
359+ }
360+
361+
362+@Callable(aZ)
363+func init (ap,aj,as,av) = {
364+ let aV = if (if (if (if (if (if (aG(aZ.caller))
365+ then aJ()
299366 else false)
300- then ax()
367+ then aI()
301368 else false)
302- then E(aj, 0, t, "init: invalid chainId")
369+ then K(ap, 0, z, "init: invalid chainId")
303370 else false)
304- then x(ad, "init: invalid pauser")
371+ then D(aj, "init: invalid pauser")
305372 else false)
306- then x(am, "init: invalid gatewayContract")
373+ then D(as, "init: invalid gatewayContract")
307374 else false)
308- then x(ap, "init: invalid sWavesContract")
375+ then D(av, "init: invalid sWavesContract")
309376 else false
310- if ((aG == aG))
311- then $Tuple2(((((W(true) ++ ai(aj)) ++ ac(addressFromStringValue(ad))) ++ al(addressFromStringValue(am))) ++ ao(addressFromStringValue(ap))), unit)
377+ if ((aV == aV))
378+ then $Tuple2(((((ac(true) ++ ao(ap)) ++ ai(addressFromStringValue(aj))) ++ ar(addressFromStringValue(as))) ++ au(addressFromStringValue(av))), unit)
312379 else throw("Strict value is not equal to itself.")
313380 }
314381
315382
316383
317-@Callable(aF)
384+@Callable(aZ)
318385 func deposit () = {
319- let aG = if (if (if (az())
320- then aA()
386+ let aV = if (if (if (aK())
387+ then aL()
321388 else false)
322- then K(aF.payments, 1, "deposit: no payment")
389+ then Q(aZ.payments, 1, "deposit: no payment")
323390 else false)
324- then E(aF.payments[0].amount, 0, t, "deposit: negative payment")
391+ then K(aZ.payments[0].amount, 0, z, "deposit: negative payment")
325392 else false
326- if ((aG == aG))
393+ if ((aV == aV))
394+ then $Tuple2(aQ(toString(aZ.caller), toString(aZ.caller), T(aZ.payments[0].assetId), aZ.payments[0].amount), unit)
395+ else throw("Strict value is not equal to itself.")
396+ }
397+
398+
399+
400+@Callable(aZ)
401+func depositTo (aS) = {
402+ let aV = if (if (if (if (aK())
403+ then aL()
404+ else false)
405+ then Q(aZ.payments, 1, "depositTo: no payment")
406+ else false)
407+ then K(aZ.payments[0].amount, 0, z, "depositTo: negative payment")
408+ else false)
409+ then P(aS, "depositTo: invalid to")
410+ else false
411+ if ((aV == aV))
412+ then $Tuple2(aQ(toString(aZ.caller), aS, T(aZ.payments[0].assetId), aZ.payments[0].amount), unit)
413+ else throw("Strict value is not equal to itself.")
414+ }
415+
416+
417+
418+@Callable(aZ)
419+func requestWithdrawal (ba,U,Y) = {
420+ let aU = valueOrErrorMessage(parseBigInt(Y), "requestWithdrawal: amount not int")
421+ let aV = if (if (if (aK())
422+ then K(ba, 0, z, "requestWithdrawal: invalid toChainId")
423+ else false)
424+ then P(U, "requestWithdrawal: invalid asset")
425+ else false)
426+ then O(aU, B, "requestWithdrawal: negative amount")
427+ else false
428+ if ((aV == aV))
327429 then {
328- let aE = toString(aF.caller)
329- let aH = N(aF.payments[0].assetId)
330- let aI = Q(aH)
331- let aJ = R(aF.payments[0].amount, aI, s)
332- let aK = E(aJ, 1, t, "deposit: invalid payment amount")
333- if ((aK == aK))
430+ let aP = toString(aZ.caller)
431+ let bb = {
432+ let G = invoke(aq(), o, [toString(this), aP, aP, toString(an()), toString(ba), U, Y], nil)
433+ if ($isInstanceOf(G, "Int"))
434+ then {
435+ let H = G
436+ H
437+ }
438+ else throw("requestWithdrawal: call reverted from gw")
439+ }
440+ if ((bb == bb))
441+ then $Tuple2(nil, bb)
442+ else throw("Strict value is not equal to itself.")
443+ }
444+ else throw("Strict value is not equal to itself.")
445+ }
446+
447+
448+
449+@Callable(aZ)
450+func executeWithdrawal (bc) = {
451+ let aV = if (aK())
452+ then K(bc, 0, z, "executeWithdrawal: invalid requestId")
453+ else false
454+ if ((aV == aV))
455+ then {
456+ let aW = reentrantInvoke(aq(), p, [toString(this), toString(an()), toString(bc)], nil)
457+ if ((aW == aW))
458+ then $Tuple2(nil, unit)
459+ else throw("Strict value is not equal to itself.")
460+ }
461+ else throw("Strict value is not equal to itself.")
462+ }
463+
464+
465+
466+@Callable(aZ)
467+func withdraw (aS,U,Y) = {
468+ let aU = valueOrErrorMessage(parseInt(Y), "withdraw: amount not int")
469+ let aV = if (if (if (if (aK())
470+ then aO(aZ.caller, "withdraw: invalid gateway")
471+ else false)
472+ then D(aS, "withdraw: invalid address")
473+ else false)
474+ then I(U, "withdraw: invalid asset")
475+ else false)
476+ then K(aU, 0, z, "withdraw: negative amount")
477+ else false
478+ if ((aV == aV))
479+ then {
480+ let aT = W(U)
481+ let bd = X(aU, y, aT)
482+ let be = (ay(U) - aU)
483+ let bf = if (K(bd, 1, z, "withdraw: invalid amount"))
484+ then K(be, 0, z, "withdraw: negative newReserves")
485+ else false
486+ if ((bf == bf))
334487 then {
335- let aL = invoke(ak(), l, [toString(this), aE, aE, toString(ah()), aH, toString(aJ)], nil)
336- if ((aL == aL))
488+ let aX = aB()
489+ let bg = if ((U == w))
337490 then {
338- let aM = if ((aH == q))
339- then invoke(an(), l, nil, [AttachedPayment(unit, aF.payments[0].amount)])
340- else unit
341- if ((aM == aM))
342- then $Tuple2(at(aH, (as(aH) + aJ)), unit)
343- else throw("Strict value is not equal to itself.")
491+ let bh = at()
492+ let bi = aw(bh)
493+ let bj = invoke(bh, q, nil, nil)
494+ let bk = {
495+ let G = bj
496+ if ($isInstanceOf(G, "String"))
497+ then {
498+ let H = G
499+ parseBigIntValue(H)
500+ }
501+ else throw("withdraw: sWaves getRate() revert")
502+ }
503+ let bl = toInt(fraction(toBigInt(bd), C, bk, CEILING))
504+ invoke(bh, r, nil, [AttachedPayment(bi, bl)])
344505 }
506+ else if (containsElement(aX, U))
507+ then invoke(aE(U), t, [bd], nil)
508+ else unit
509+ if ((bg == bg))
510+ then $Tuple2(([ScriptTransfer(addressFromStringValue(aS), bd, V(U))] ++ az(U, be)), unit)
345511 else throw("Strict value is not equal to itself.")
346512 }
347513 else throw("Strict value is not equal to itself.")
348514 }
349515 else throw("Strict value is not equal to itself.")
350516 }
351517
352518
353519
354-@Callable(aF)
355-func depositTo (aN) = {
356- let aG = if (if (if (if (az())
357- then aA()
358- else false)
359- then K(aF.payments, 1, "depositTo: no payment")
360- else false)
361- then E(aF.payments[0].amount, 0, t, "depositTo: negative payment")
362- else false)
363- then J(aN, "depositTo: invalid to")
520+@Callable(aZ)
521+func depositStakingReward (U) = {
522+ let aV = if (aK())
523+ then I(U, "depositStakingReward: invalid asset")
364524 else false
365- if ((aG == aG))
525+ if ((aV == aV))
366526 then {
367- let aE = toString(aF.caller)
368- let aH = N(aF.payments[0].assetId)
369- let aI = Q(aH)
370- let aJ = R(aF.payments[0].amount, aI, s)
371- let aK = E(aJ, 1, t, "depositTo: invalid payment amount")
372- if ((aK == aK))
527+ let aX = aB()
528+ let bm = if ((U == w))
373529 then {
374- let aL = invoke(ak(), l, [toString(this), aE, aN, toString(ah()), aH, toString(aJ)], nil)
375- if ((aL == aL))
376- then {
377- let aM = if ((aH == q))
378- then invoke(an(), l, nil, [AttachedPayment(unit, aF.payments[0].amount)])
379- else unit
380- if ((aM == aM))
381- then $Tuple2(at(aH, (as(aH) + aJ)), unit)
382- else throw("Strict value is not equal to itself.")
383- }
530+ let bh = at()
531+ let bi = aw(bh)
532+ let bj = invoke(bh, q, nil, nil)
533+ let bk = {
534+ let G = bj
535+ if ($isInstanceOf(G, "String"))
536+ then {
537+ let H = G
538+ parseBigIntValue(H)
539+ }
540+ else throw("depositStakingReward: sWaves getRate() revert")
541+ }
542+ let bn = assetBalance(this, bi)
543+ toInt(fraction(toBigInt(bn), bk, C, DOWN))
544+ }
545+ else if (containsElement(aX, U))
546+ then {
547+ let bj = invoke(aE(U), u, [toString(this)], nil)
548+ if ((bj == bj))
549+ then assetBalance(this, fromBase58String(U))
550+ else throw("Strict value is not equal to itself.")
551+ }
552+ else throw("depositStakingReward: no staking for asset")
553+ let aT = W(U)
554+ let bo = X(bm, aT, y)
555+ let bp = (bo - ay(U))
556+ let bf = K(bp, 1, z, "depositStakingReward: no reward")
557+ if ((bf == bf))
558+ then {
559+ let aW = invoke(aq(), v, [toString(this), toString(an()), U, toString(bp)], nil)
560+ if ((aW == aW))
561+ then $Tuple2(az(U, bo), unit)
384562 else throw("Strict value is not equal to itself.")
385563 }
386564 else throw("Strict value is not equal to itself.")
387565 }
388566 else throw("Strict value is not equal to itself.")
389567 }
390568
391569
392570
393-@Callable(aF)
394-func requestWithdrawal (aO,O,S) = {
395- let aJ = valueOrErrorMessage(parseBigInt(S), "requestWithdrawal: amount not int")
396- let aG = if (if (if (az())
397- then E(aO, 0, t, "requestWithdrawal: invalid toChainId")
571+@Callable(aZ)
572+func addStakingAsset (U,ax) = {
573+ let aV = if (if (aG(aZ.caller))
574+ then I(U, "addStakingAsset: invalid asset")
398575 else false)
399- then J(O, "requestWithdrawal: invalid asset")
400- else false)
401- then I(aJ, v, "requestWithdrawal: negative amount")
576+ then D(ax, "addStakingAsset: invalid contract")
402577 else false
403- if ((aG == aG))
578+ if ((aV == aV))
404579 then {
405- let aE = toString(aF.caller)
406- let aP = {
407- let A = invoke(ak(), m, [toString(this), aE, aE, toString(ah()), toString(aO), O, S], nil)
408- if ($isInstanceOf(A, "Int"))
409- then {
410- let B = A
411- B
412- }
413- else throw("requestWithdrawal: call reverted from gw")
414- }
415- if ((aP == aP))
416- then $Tuple2(nil, aP)
580+ let bq = aB()
581+ let bf = if (containsElement(bq, U))
582+ then throw("addStakingAsset: duplicate asset")
583+ else unit
584+ if ((bf == bf))
585+ then $Tuple2((aC((bq :+ U)) ++ aF(U, addressFromStringValue(ax))), unit)
417586 else throw("Strict value is not equal to itself.")
418587 }
419588 else throw("Strict value is not equal to itself.")
420589 }
421590
422591
423592
424-@Callable(aF)
425-func executeWithdrawal (aQ) = {
426- let aG = if (az())
427- then E(aQ, 0, t, "executeWithdrawal: invalid requestId")
593+@Callable(aZ)
594+func rmStakingAsset (U) = {
595+ let aV = if (aG(aZ.caller))
596+ then I(U, "rmStakingAsset: invalid asset")
428597 else false
429- if ((aG == aG))
598+ if ((aV == aV))
430599 then {
431- let aL = reentrantInvoke(ak(), n, [toString(this), toString(ah()), toString(aQ)], nil)
432- if ((aL == aL))
433- then $Tuple2(nil, unit)
434- else throw("Strict value is not equal to itself.")
435- }
436- else throw("Strict value is not equal to itself.")
437- }
438-
439-
440-
441-@Callable(aF)
442-func withdraw (aN,O,S) = {
443- let aJ = valueOrErrorMessage(parseInt(S), "withdraw: amount not int")
444- let aG = if (if (if (if (az())
445- then aD(aF.caller, "withdraw: invalid gateway")
446- else false)
447- then x(aN, "withdraw: invalid address")
448- else false)
449- then C(O, "withdraw: invalid asset")
450- else false)
451- then E(aJ, 0, t, "withdraw: negative amount")
452- else false
453- if ((aG == aG))
454- then {
455- let aI = Q(O)
456- let aR = R(aJ, s, aI)
457- let aS = (as(O) - aJ)
458- let aK = if (E(aR, 1, t, "withdraw: invalid amount"))
459- then E(aS, 0, t, "withdraw: negative newReserves")
460- else false
461- if ((aK == aK))
600+ let bq = aB()
601+ let bf = if (!(containsElement(bq, U)))
602+ then throw("rmStakingAsset: no asset")
603+ else unit
604+ if ((bf == bf))
462605 then {
463- let aT = if ((O == q))
464- then {
465- let aU = an()
466- let aV = aq(aU)
467- let aW = invoke(aU, o, nil, nil)
468- let aX = {
469- let A = aW
470- if ($isInstanceOf(A, "String"))
471- then {
472- let B = A
473- parseBigIntValue(B)
474- }
475- else throw("withdraw: sWaves getRate() revert")
476- }
477- let aY = toInt(fraction(toBigInt(aR), w, aX, CEILING))
478- invoke(aU, p, nil, [AttachedPayment(aV, aY)])
479- }
480- else unit
481- if ((aT == aT))
482- then $Tuple2(([ScriptTransfer(addressFromStringValue(aN), aR, P(O))] ++ at(O, aS)), unit)
483- else throw("Strict value is not equal to itself.")
606+ let br = value(indexOf(bq, U))
607+ $Tuple2(aC(removeByIndex(bq, br)), unit)
484608 }
485609 else throw("Strict value is not equal to itself.")
486610 }
487611 else throw("Strict value is not equal to itself.")
488612 }
489613
490614
491615
492-@Callable(aF)
616+@Callable(aZ)
493617 func pause () = {
494- let aG = if (if (aC(aF.caller))
495- then az()
618+ let aV = if (if (aN(aZ.caller))
619+ then aK()
496620 else false)
497- then aA()
621+ then aL()
498622 else false
499- if ((aG == aG))
500- then $Tuple2(Z(true), unit)
623+ if ((aV == aV))
624+ then $Tuple2(af(true), unit)
501625 else throw("Strict value is not equal to itself.")
502626 }
503627
504628
505629
506-@Callable(aF)
630+@Callable(aZ)
507631 func unpause () = {
508- let aG = if (if (aC(aF.caller))
509- then az()
632+ let aV = if (if (aN(aZ.caller))
633+ then aK()
510634 else false)
511- then aB()
635+ then aM()
512636 else false
513- if ((aG == aG))
514- then $Tuple2(Z(false), unit)
637+ if ((aV == aV))
638+ then $Tuple2(af(false), unit)
515639 else throw("Strict value is not equal to itself.")
516640 }
517641
518642
519643
520-@Callable(aF)
521-func updatePauser (ad) = {
522- let aG = if (if (av(aF.caller))
523- then az()
644+@Callable(aZ)
645+func updatePauser (aj) = {
646+ let aV = if (if (aG(aZ.caller))
647+ then aK()
524648 else false)
525- then x(ad, "updatePauser: invalid pauser")
649+ then D(aj, "updatePauser: invalid pauser")
526650 else false
527- if ((aG == aG))
528- then $Tuple2(ac(addressFromStringValue(ad)), unit)
651+ if ((aV == aV))
652+ then $Tuple2(ai(addressFromStringValue(aj)), unit)
529653 else throw("Strict value is not equal to itself.")
530654 }
531655
532656
533657
534-@Callable(aF)
535-func setMultisig (ag) = {
536- let aG = if (av(aF.caller))
537- then x(ag, "setMultisig: invalid multisig")
658+@Callable(aZ)
659+func setMultisig (am) = {
660+ let aV = if (aG(aZ.caller))
661+ then D(am, "setMultisig: invalid multisig")
538662 else false
539- if ((aG == aG))
540- then $Tuple2(af(addressFromStringValue(ag)), unit)
663+ if ((aV == aV))
664+ then $Tuple2(al(addressFromStringValue(am)), unit)
541665 else throw("Strict value is not equal to itself.")
542666 }
543667
544668
545-@Verifier(aZ)
546-func ba () = {
547- let A = getString(b)
548- if ($isInstanceOf(A, "String"))
669+@Verifier(bs)
670+func bt () = {
671+ let G = getString(b)
672+ if ($isInstanceOf(G, "String"))
549673 then {
550- let bb = A
551- valueOrElse(getBoolean(addressFromStringValue(bb), makeString([c, toString(this), toBase58String(aZ.id)], a)), false)
674+ let bu = G
675+ valueOrElse(getBoolean(addressFromStringValue(bu), makeString([c, toString(this), toBase58String(bs.id)], a)), false)
552676 }
553- else sigVerify(aZ.bodyBytes, aZ.proofs[0], aZ.senderPublicKey)
677+ else sigVerify(bs.bodyBytes, bs.proofs[0], bs.senderPublicKey)
554678 }
555679

github/deemru/w8io/169f3d6 
133.49 ms