tx · 3rzGJHXHvRXd3QABpzPLJhouc1aYtNphusozUc7E4G8p

3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA:  -0.02600000 Waves

2022.08.15 15:29 [2185585] smart account 3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA > SELF 0.00000000 Waves

{ "type": 13, "id": "3rzGJHXHvRXd3QABpzPLJhouc1aYtNphusozUc7E4G8p", "fee": 2600000, "feeAssetId": null, "timestamp": 1660566468761, "version": 1, "sender": "3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA", "senderPublicKey": "35yd3qw1gxKDxKwGAykHN9fANbXNWwseaUwbWDj24o3x", "proofs": [ "2QRaJeUFNS94Mqd2ygm1B8cHZ83XwU2ZtyxACRPcRX2vjXSn28Sf9jFhuxeNntNYMJfiXotUyCRktjNmtBbX7qYo" ], "script": "base64:BgL+HwgCEgMKAQgSAwoBCBIAEgQKAgEEEgcKBQEBAQEEEgMKAQESABIHCgUBAQEIARIECgIBARIDCgEBEgQKAggIEgQKAggIEgQKAggBEgASAwoBCBIFCgMBAQESBAoCCAESBAoCAQESBAoCCAgSCwoJCAEBAgECCAQEEgYKBAgIAQgiBnNjYWxlOCIMc2NhbGU4QmlnSW50IgdzY2FsZTE4Igh0aG91c2FuZCIKemVyb0JpZ0ludCIJb25lQmlnSW50IgpzbGlwcGFnZTREIgVBbXVsdCIFRGNvbnYiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiClBvb2xQdXREaXMiDlBvb2xNYXRjaGVyRGlzIgxQb29sU2h1dGRvd24iDmlkeFBvb2xBZGRyZXNzIglpZHhQb29sU3QiCWlkeExQQXNJZCIJaWR4QW1Bc0lkIglpZHhQckFzSWQiC2lkeEFtdEFzRGNtIg1pZHhQcmljZUFzRGNtIgtpZHhJQW10QXNJZCINaWR4SVByaWNlQXNJZCIPaWR4RmFjdFN0YWtDbnRyIhBpZHhGYWN0U2xpcHBDbnRyIhFpZHhGYWN0R3d4UmV3Q250ciISZmVlUGVybWlsbGVEZWZhdWx0IgV0b1gxOCIHb3JpZ1ZhbCINb3JpZ1NjYWxlTXVsdCIHZnJvbVgxOCIDdmFsIg9yZXN1bHRTY2FsZU11bHQiAnRzIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIhFrZXlGYWN0b3J5Q29udGFjdCITa2V5TWFuYWdlclB1YmxpY0tleSIaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiDGtleVByaWNlTGFzdCIPa2V5UHJpY2VIaXN0b3J5IgFoIgF0IhJrZXlQdXRBY3Rpb25CeVVzZXIiAnVhIgR0eElkIhJrZXlHZXRBY3Rpb25CeVVzZXIiDmtleUFtb3VudEFzc2V0Ig1rZXlQcmljZUFzc2V0Ig9rZXlBbXBsaWZpY2F0b3IiD2tleUFkZG9uQWRkcmVzcyIOa2V5RmVlUGVybWlsbGUiC2ZlZVBlcm1pbGxlIgRmY2ZnIgRtdHBrIgJwYyIGaUFtdEFzIgVpUHJBcyIDbWJhIgViQVN0ciIDYXBzIgh0aHJvd0VyciIDbXNnIg90aHJvd09yZGVyRXJyb3IiA29yViIGc2VuZHJWIgZtYXRjaFYiA3N0ciIHJG1hdGNoMCIGdmFsU3RyIg9nZXRTdHJpbmdPckZhaWwiBGFkZHIiA2tleSIMZ2V0SW50T3JGYWlsIg9mYWN0b3J5Q29udHJhY3QiDGFtcGxpZmljYXRvciIQaXNHbG9iYWxTaHV0ZG93biITZ2V0TWF0Y2hlclB1Yk9yRmFpbCIObWF0Y2hlckFkZHJlc3MiDWdldFBvb2xDb25maWciBWFtdEFzIgdwcmljZUFzIghpUHJpY2VBcyIQZ2V0RmFjdG9yeUNvbmZpZyIRZGF0YVB1dEFjdGlvbkluZm8iDWluQW10QXNzZXRBbXQiD2luUHJpY2VBc3NldEFtdCIIb3V0THBBbXQiBXByaWNlIgpzbGlwQnlVc2VyIgxzbGlwcGFnZVJlYWwiCHR4SGVpZ2h0Igt0eFRpbWVzdGFtcCIMc2xpcGFnZUFtQW10IgxzbGlwYWdlUHJBbXQiEWRhdGFHZXRBY3Rpb25JbmZvIg5vdXRBbXRBc3NldEFtdCIQb3V0UHJpY2VBc3NldEFtdCIHaW5McEFtdCINZ2V0QWNjQmFsYW5jZSIHYXNzZXRJZCIPY2FsY1ByaWNlQmlnSW50IghwckFtdFgxOCIIYW1BbXRYMTgiD3ZhbGlkYXRlQWJzRGlmZiIKZXN0aW1hdGVMUCIFb3V0THAiCHNsaXBwYWdlIgRkaWZmIgRwYXNzIgl2YWxpZGF0ZUQiAkQxIgJEMCIEZmFpbCIQcHJpdmF0ZUNhbGNQcmljZSIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10IgthbXRBc0FtdFgxOCIKcHJBc0FtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiA2NmZyIIYW10QXNEY20iB3ByQXNEY20iCHByaWNlWDE4IghscEFtdFgxOCINbHBQckluQW1Bc1gxOCINbHBQckluUHJBc1gxOCIPY2FsY3VsYXRlUHJpY2VzIgFwIhRlc3RpbWF0ZUdldE9wZXJhdGlvbiIGdHhJZDU4Ig5wYXltZW50QXNzZXRJZCIPcGF5bWVudExwQW1vdW50Igt1c2VyQWRkcmVzcyIJbHBBc3NldElkIghhbW91bnRJZCIHcHJpY2VJZCIOYW1vdW50RGVjaW1hbHMiDXByaWNlRGVjaW1hbHMiA3N0cyIKbHBFbWlzc2lvbiIPdmFsaWRhdGlvbkJsb2NrIghkZWNpbWFscyINYW1vdW50QmFsYW5jZSIQYW1vdW50QmFsYW5jZVgxOCIMcHJpY2VCYWxhbmNlIg9wcmljZUJhbGFuY2VYMTgiD2N1cnJlbnRQcmljZVgxOCIIY3VyUHJpY2UiEnBheW1lbnRMcEFtb3VudFgxOCINbHBFbWlzc2lvblgxOCISb3V0QW1vdW50QW1vdW50WDE4IhFvdXRQcmljZUFtb3VudFgxOCIPb3V0QW1vdW50QW1vdW50Ig5vdXRQcmljZUFtb3VudCIFc3RhdGUiFGVzdGltYXRlUHV0T3BlcmF0aW9uIhFzbGlwcGFnZVRvbGVyYW5jZSITaW5BbW91bnRBc3NldEFtb3VudCIPaW5BbW91bnRBc3NldElkIhJpblByaWNlQXNzZXRBbW91bnQiDmluUHJpY2VBc3NldElkIgppc0V2YWx1YXRlIgZlbWl0THAiCmlzT25lQXNzZXQiDXBheW1lbnRBbW91bnQiCXBheW1lbnRJZCILYW1vdW50SWRTdHIiCnByaWNlSWRTdHIiDWluQW1vdW50SWRTdHIiDGluUHJpY2VJZFN0ciIWaW5BbW91bnRBc3NldEFtb3VudFgxOCIVaW5QcmljZUFzc2V0QW1vdW50WDE4Igx1c2VyUHJpY2VYMTgiAXIiC3NsaXBwYWdlWDE4IgtscEFtb3VudFgxOCIPc2xpcHBhZ2VSZWFsWDE4IgpwclZpYUFtWDE4IgphbVZpYVByWDE4Ig9leHBlY3RlZEFtb3VudHMiHGV4cGVjdGVkQW1vdW50QXNzZXRBbW91bnRYMTgiG2V4cGVjdGVkUHJpY2VBc3NldEFtb3VudFgxOCIRY2FsY3VsYXRlTHBBbW91bnQiG2NhbGN1bGF0ZUFtb3VudEFzc2V0UGF5bWVudCIaY2FsY3VsYXRlUHJpY2VBc3NldFBheW1lbnQiDGN1cnJlbnRQcmljZSIRc2xpcHBhZ2VDYWxjdWxhdGUiEWNoZWNrQ2FsY0xwQW1vdW50IgxlbWl0THBBbW91bnQiCmFtb3VudERpZmYiCXByaWNlRGlmZiINJHQwMTYxODkxNjQ0OCIKd3JpdGVBbUFtdCIKd3JpdGVQckFtdCILY29tbW9uU3RhdGUiG3ZhbGlkYXRlTWF0Y2hlck9yZGVyQWxsb3dlZCIFb3JkZXIiB2FtdEFzSWQiBnByQXNJZCIPYWNjQW10QXNCYWxhbmNlIg5hY2NQckFzQmFsYW5jZSIKb3JBbXRBc3NldCIKb3JBbXRBc1N0ciIJb3JQckFzc2V0IglvclByQXNTdHIiCm9yZGVyUHJpY2UiDmNhc3RPcmRlclByaWNlIhFpc09yZGVyUHJpY2VWYWxpZCIJY29tbW9uR2V0IgFpIg1jaGVja1BheW1lbnRzIgdwYXltZW50Igljb21tb25QdXQiBmNhbGxlciISYW1vdW50QXNzZXRQYXltZW50IhFwcmljZUFzc2V0UGF5bWVudCIHdGFrZUZlZSIGYW1vdW50IgNmZWUiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IgJwZCILbXVzdE1hbmFnZXIiAnBrIgtjaGVja0NhbGxlciIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIglhdXRvU3Rha2UiB2ZhY3RDZmciD3N0YWtpbmdDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCINc2xpcHBhZ2VDaGVjayINcGF5bWVudHNDaGVjayILZXN0aW1hdGVQdXQiAmVsIgZsZWdhY3kiAnNhIgJzcCIJbHBUcmFzZmVyIgJzcyIPYW1vdW50QXNzZXRQYXJ0Ig5wcmljZUFzc2V0UGFydCIRZ3d4UmV3YXJkQ29udHJhY3QiB3Bvb2xDZmciBWFkZG9uIhBwYXltZW50QW1vdW50UmF3Ig0kdDAyNTYxNzI1Njc2IglmZWVBbW91bnQiDSR0MDI1OTQwMjYzOTUiEGFtb3VudEJhbGFuY2VOb3ciD3ByaWNlQmFsYW5jZU5vdyIMdmlydFN3YXBJbkFtIg12aXJ0U3dhcE91dFByIgx2aXJ0U3dhcEluUHIiDXZpcnRTd2FwT3V0QW0iBkQwdnNEMSIJbHBDYWxjUmVzIgFlIhBzZW5kRmVlVG9NYXRjaGVyIgttYXhzbGlwcGFnZSIJb3V0QW10QW10IgFiIgpleGNoUmVzdWx0Igdub3RVc2VkIglvdXRBbW91bnQiCm91dEFzc2V0SWQiCmVzdGltQW1BbXQiCmVzdGltUHJBbXQiDSR0MDMxNTM0MzIwMDIiCHRvdGFsR2V0IghmaW5hbFJlcyINJHQwMzI2NzEzMjc3OSIFb3V0QW0iBW91dFByIg50b3RhbEFtb3VudFJhdyINJHQwMzI4MTkzMjg3NCILdG90YWxBbW91bnQiEW91dEFzc2V0SWRPcldhdmVzIghjdXJQclgxOCIFY3VyUHIiBGJ1cm4iEm5vTGVzc1RoZW5BbXRBc3NldCIUbm9MZXNzVGhlblByaWNlQXNzZXQiFGNoZWNrT3V0QW1vdW50QW1vdW50IhNjaGVja091dFByaWNlQW1vdW50IhRidXJuTFBBc3NldE9uRmFjdG9yeSIKZmFjdG9yeUNmZyIHc3Rha2luZyIKdW5zdGFrZUludiIBdiIFYnVybkEiCGFtdEFzU3RyIgdwckFzU3RyIgFrIgJwciIMcmVzU2NhbGVNdWx0IgZpbkFtSWQiBmluUHJJZCIHdXNyQWRkciILcGF5bWVudEFzSWQiAnR4IgZ2ZXJpZnkiB210Y2hQdWIiBXNuZHJWIgVtdGNoViIPdGFyZ2V0UHVibGljS2V5IgckbWF0Y2gxUQABYQCAwtcvAAFiCQC2AgEAgMLXLwABYwkAtgIBAICAkLu61q3wDQABZADoBwABZQkAtgIBAAAAAWYJALYCAQABAAFnCQC2AgEJAGUCBQFhCQBpAgkAaAIFAWEAAQUBYQABaAIDMTAwAAFpAgExAAFqAgJfXwABawIAAAFsAAEAAW0AAgABbgADAAFvAAQAAXAAAQABcQACAAFyAAMAAXMABAABdAAFAAF1AAYAAXYABwABdwAIAAF4AAkAAXkAAQABegAHAAFBAAoAAUIAAAEBQwIBRAFFCQC8AgMJALYCAQUBRAUBYwkAtgIBBQFFAQFGAgFHAUgJAKADAQkAvAIDBQFHCQC2AgEFAUgFAWMBAUkDAUoBSwFMCQBrAwUBSgUBSwUBTAEBTQEBRwMJAL8CAgUBZQUBRwkAvgIBBQFHBQFHAQFOAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBTwACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFQAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFRAAIRJXMlc19fcHJpY2VfX2xhc3QBAVICAVMBVAkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVMJAMwIAgkApAMBBQFUBQNuaWwFAWoBAVUCAVYBVwkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAVYCAl9fBQFXAQFYAgFWAVcJAKwCAgkArAICCQCsAgICCyVzJXMlc19fR19fBQFWAgJfXwUBVwEBWQACDyVzX19hbW91bnRBc3NldAEBWgACDiVzX19wcmljZUFzc2V0AQJhYQACByVzX19hbXABAmFiAAINJXNfX2FkZG9uQWRkcgACYWMCDyVzX19mZWVQZXJtaWxsZQACYWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWMFAUIBAmFlAAIRJXNfX2ZhY3RvcnlDb25maWcBAmFmAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhZwICYWgCYWkJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFoAgJfXwUCYWkCCF9fY29uZmlnAQJhagECYWsJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYWsBAmFsAAIMJXNfX3NodXRkb3duAQJhbQECYW4JAAIBCQC5CQIJAMwIAgIPbHBfc3RhYmxlLnJpZGU6CQDMCAIFAmFuBQNuaWwCASABAmFvAwJhcAJhcQJhcgkBAmFtAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEUZhaWxlZDogb3JkVmFsaWQ9CQClAwEFAmFwAgsgc25kclZhbGlkPQkApQMBBQJhcQIMIG10Y2hyVmFsaWQ9CQClAwEFAmFyAQJhcwEBRwQCYXQFAUcDCQABAgUCYXQCBlN0cmluZwQCYXUFAmF0BQJhdQkBAmFtAQITZmFpbCBjYXN0IHRvIFN0cmluZwECYXYCAmF3AmF4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYXcFAmF4CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmF3CQDMCAICAS4JAMwIAgUCYXgJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAECYXkCAmF3AmF4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYXcFAmF4CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmF3CQDMCAICAS4JAMwIAgUCYXgJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAACYXoJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhdgIFBHRoaXMJAQFOAAACYUEJAQJhdgIFBHRoaXMJAQJhYQABAmFCAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJhegkBAmFsAAcBAmFDAAkA2QQBCQECYXYCBQJhegkBAmFmAAACYUQJAKcIAQkBAmFDAAECYUUABAJhRgkBAmF2AgUEdGhpcwkBAVkABAJhRwkBAmF2AgUEdGhpcwkBAVoABAJhSAkBAmF5AgUCYXoJAQJhagEFAmFHBAJhaAkBAmF5AgUCYXoJAQJhagEFAmFGCQC1CQIJAQJhdgIFAmF6CQECYWcCCQCkAwEFAmFoCQCkAwEFAmFIBQFqAQJhSQAJALUJAgkBAmF2AgUCYXoJAQJhZQAFAWoBAmFKCgJhSwJhTAJhTQJhTgJhTwJhUAJhUQJhUgJhUwJhVAkAuQkCCQDMCAICFCVkJWQlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYUsJAMwIAgkApAMBBQJhTAkAzAgCCQCkAwEFAmFNCQDMCAIJAKQDAQUCYU4JAMwIAgkApAMBBQJhTwkAzAgCCQCkAwEFAmFQCQDMCAIJAKQDAQUCYVEJAMwIAgkApAMBBQJhUgkAzAgCCQCkAwEFAmFTCQDMCAIJAKQDAQUCYVQFA25pbAUBagECYVUGAmFWAmFXAmFYAmFOAmFRAmFSCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYVYJAMwIAgkApAMBBQJhVwkAzAgCCQCkAwEFAmFYCQDMCAIJAKQDAQUCYU4JAMwIAgkApAMBBQJhUQkAzAgCCQCkAwEFAmFSBQNuaWwFAWoBAmFZAQJhWgMJAAACBQJhWgIFV0FWRVMICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJANkEAQUCYVoBAmJhAgJiYgJiYwkAvAIDBQJiYgUBYwUCYmMBAmJkAwJiZQJiZgJiZwQCYmgJALwCAwkAuAICBQJiZQUCYmYFAWIFAmJmBAJiaQkAvwICCQC4AgIFAmJnCQEBTQEFAmJoBQFlAwkBASEBBQJiaQkBAmFtAQkArAICAg5CaWcgc2xpcHBhZ2U6IAkApgMBBQJiaAkAlAoCBQJiaQkAmQMBCQDMCAIFAmJlCQDMCAIFAmJmBQNuaWwBAmJqAwJiawJibAJiZwQCYmgJALwCAwUCYmwFAWIFAmJrBAJibQkAvwICBQJiZwUCYmgDAwUCYm0GCQC/AgIFAmJsBQJiawkBAmFtAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkApgMBBQJibAIBIAkApgMBBQJiawIBIAkApgMBBQJiaAIBIAkApgMBBQJiZwUCYm0BAmJuBAJibwJicAJicQJicgQCYnMJAQFDAgUCYnEFAmJvBAJidAkBAUMCBQJicgUCYnAJAQJiYQIFAmJ0BQJicwECYnUDAmJxAmJyAmJ2BAJidwkBAmFFAAQCYngJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJidwUBdQQCYnkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJidwUBdgQCYnoJAQJibgQFAmJ4BQJieQUCYnEFAmJyBAJiYwkBAUMCBQJicQUCYngEAmJiCQEBQwIFAmJyBQJieQQCYkEJAQFDAgUCYnYFAWEEAmJCCQECYmECBQJiYwUCYkEEAmJDCQECYmECBQJiYgUCYkEJAMwIAgUCYnoJAMwIAgUCYkIJAMwIAgUCYkMFA25pbAECYkQDAmJxAmJyAmJ2BAJiRQkBAmJ1AwUCYnEFAmJyBQJidgkAzAgCCQEBRgIJAJEDAgUCYkUAAAUBYQkAzAgCCQEBRgIJAJEDAgUCYkUAAQUBYQkAzAgCCQEBRgIJAJEDAgUCYkUAAgUBYQUDbmlsAQJiRgQCYkcCYkgCYkkCYkoEAmJ3CQECYUUABAJiSwkAkQMCBQJidwUBcgQCYkwJAJEDAgUCYncFAXMEAmJNCQCRAwIFAmJ3BQF0BAJiTgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJ3BQF1BAJiTwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJ3BQF2BAJiUAkAkQMCBQJidwUBcQQCYlEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA2QQBBQJiSwILV3JvbmcgTFAgaWQIcXVhbnRpdHkEAmJSAwkAAAIFAmJLBQJiSAYJAQJhbQECE1dyb25nIHBheW1lbnQgYXNzZXQDCQAAAgUCYlIFAmJSBAJiUwMJAGcCBQJiTgUCYk8FAmJOBQJiTwMJAAACBQJiUwUCYlMEAmJUCQECYVkBBQJiTAQCYlUJAQFDAgUCYlQFAmJTBAJiVgkBAmFZAQUCYk0EAmJXCQEBQwIFAmJWBQJiUwQCYlgJAQJiYQIFAmJXBQJiVQQCYlkJAQFGAgUCYlgFAWEEAmJaCQEBQwIFAmJJBQFhBAJjYQkBAUMCBQJiUQUBYQQCY2IJALwCAwUCYlUFAmJaBQJjYQQCY2MJALwCAwUCYlcFAmJaBQJjYQQCY2QJAQFGAgUCY2IFAmJTBAJjZQkBAUYCBQJjYwUCYlMEAmNmAwkAAAIFAmJHAgAFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJiSgUCY2QDCQAAAgUCYkwCBVdBVkVTBQR1bml0CQDZBAEFAmJMCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJKBQJjZQMJAAACBQJiTQIFV0FWRVMFBHVuaXQJANkEAQUCYk0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVgCCQClCAEFAmJKBQJiRwkBAmFVBgUCY2QFAmNlBQJiSQUCYlkFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFRAAUCYlkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFSAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCYlkFA25pbAkAnAoKBQJjZAUCY2UFAmJMBQJiTQUCYlQFAmJWBQJiUQUCYlgFAmJQBQJjZgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY2cMAmJHAmNoAmNpAmNqAmNrAmNsAmJKAmNtAmNuAmNvAmNwAmNxBAJidwkBAmFFAAQCYksJANkEAQkAkQMCBQJidwUBcgQCY3IJAJEDAgUCYncFAXMEAmNzCQCRAwIFAmJ3BQF0BAJjdAkAkQMCBQJidwUBdwQCY3UJAJEDAgUCYncFAXgEAmJOCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYncFAXUEAmJPCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYncFAXYEAmJQCQCRAwIFAmJ3BQFxBAJiUQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiSwIOV3JvbmcgbHAgYXNzZXQIcXVhbnRpdHkEAmJUAwUCY20JAQJhWQEFAmNyAwMFAmNvCQAAAgUCY3EFAmNyBwkAZQIJAQJhWQEFAmNyBQJjcAMFAmNvCQECYVkBBQJjcgkAZQIJAQJhWQEFAmNyBQJjaQQCYlYDBQJjbQkBAmFZAQUCY3MDAwUCY28JAAACBQJjcQUCY3MHCQBlAgkBAmFZAQUCY3MFAmNwAwUCY28JAQJhWQEFAmNzCQBlAgkBAmFZAQUCY3MFAmNrBAJiUwMJAGcCBQJiTgUCYk8FAmJOBQJiTwMJAAACBQJiUwUCYlMEAmN2CQEBQwIFAmNpBQJiUwQCY3cJAQFDAgUCY2sFAmJTBAJjeAkBAmJhAgUCY3cFAmN2BAJiVQkBAUMCBQJiVAUCYlMEAmJXCQEBQwIFAmJWBQJiUwQCY3kDCQAAAgUCYlEAAAQCYlgFAWUEAmN6BQFlBAJjQQkAdgYJALkCAgUCY3YFAmN3AAAJALYCAQAFAAEAAAUERE9XTgkAlwoFCQEBRgIFAmNBBQFhCQEBRgIFAmN2BQJiUwkBAUYCBQJjdwUCYlMJAQJiYQIJALcCAgUCYlcFAmN3CQC3AgIFAmJVBQJjdgUCY3oEAmJYCQECYmECBQJiVwUCYlUEAmNCCQC8AgMJAQFNAQkAuAICBQJiWAUCY3gFAWMFAmJYBAJjegkBAUMCBQJjaAUBYQMDCQECIT0CBQJiWAUBZQkAvwICBQJjQgUCY3oHCQECYW0BCQCsAgIJAKwCAgkArAICAg9QcmljZSBzbGlwcGFnZSAJAKYDAQUCY0ICAyA+IAkApgMBBQJjegQCY2EJAQFDAgUCYlEFAWEEAmNDCQC8AgMFAmN2BQJiWAUBYwQCY0QJALwCAwUCY3cFAWMFAmJYBAJjRQMJAL8CAgUCY0MFAmN3CQCUCgIFAmNEBQJjdgkAlAoCBQJjdgUCY0MEAmNGCAUCY0UCXzEEAmNHCAUCY0UCXzIEAmNBCQC8AgMFAmNhBQJjRwUCYlcJAJcKBQkBAUYCBQJjQQUBYQkBAUYCBQJjRgUCYlMJAQFGAgUCY0cFAmJTBQJiWAUCY3oEAmNICAUCY3kCXzEEAmNJCAUCY3kCXzIEAmNKCAUCY3kCXzMEAmNLCQEBRgIIBQJjeQJfNAUBYQQCY0wJAQFGAggFAmN5Al81BQFhBAJjTQMJAGYCBQJjSAAABgkBAmFtAQIHTFAgPD0gMAMJAAACBQJjTQUCY00EAmNOAwkBASEBBQJjbgAABQJjSAQCY08JAGUCBQJjaQUCY0kEAmNQCQBlAgUCY2sFAmNKBAJjUQMDBQJjbwkAAAIFAmNxBQJjcgcJAJQKAgUCY3AAAAMDBQJjbwkAAAIFAmNxBQJjcwcJAJQKAgAABQJjcAkAlAoCBQJjSQUCY0oEAmNSCAUCY1ECXzEEAmNTCAUCY1ECXzIEAmNUCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUQAFAmNLCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUgIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmNLCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFVAgUCYkoFAmJHCQECYUoKBQJjUgUCY1MFAmNOBQJjSwUCY2gFAmNMBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjTwUCY1AFA25pbAkAnwoNBQJjSAUCY04FAmNLBQJiVAUCYlYFAmJRBQJiSwUCYlAFAmNUBQJjTwUCY1AFAmNqBQJjbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY1UBAmNWBAJidwkBAmFFAAQCY1cJAJEDAgUCYncFAXMEAmNYCQCRAwIFAmJ3BQF0BAJiUAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJ3BQFxBAJieAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJ3BQF1BAJieQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJ3BQF2BAJjWQkBAmFZAQUCY1cEAmNaCQECYVkBBQJjWAQCYlgDCQAAAggFAmNWCW9yZGVyVHlwZQUDQnV5CQECYm4EBQJieAUCYnkJAGQCBQJjWQgFAmNWBmFtb3VudAUCY1oJAQJibgQFAmJ4BQJieQkAZQIFAmNZCAUCY1YGYW1vdW50BQJjWgQCYlkJAQFGAgUCYlgFAWEDAwMJAQJhQgAGCQAAAgUCYlAFAW4GCQAAAgUCYlAFAW8JAQJhbQECDUFkbWluIGJsb2NrZWQEAmRhCAgFAmNWCWFzc2V0UGFpcgthbW91bnRBc3NldAQCZGIDCQAAAgUCZGEFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmRhBAJkYwgIBQJjVglhc3NldFBhaXIKcHJpY2VBc3NldAQCZGQDCQAAAgUCZGMFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmRjAwMJAQIhPQIFAmRiBQJjVwYJAQIhPQIFAmRkBQJjWAkBAmFtAQIJV3IgYXNzZXRzBAJkZQgFAmNWBXByaWNlBAJiTwkAawMFAWEFAmJ5BQJieAQCZGYJAQFJAwUCZGUFAWEFAmJPBAJkZwMJAAACCAUCY1YJb3JkZXJUeXBlBQNCdXkJAGcCBQJiWQUCZGYJAGcCBQJkZgUCYlkGAQJkaAECZGkEAmRqAwkAAAIJAJADAQgFAmRpCHBheW1lbnRzAAEGCQECYW0BAhIxIHBheW1lbnQgZXhwZWN0ZWQDCQAAAgUCZGoFAmRqBAJkawkBBXZhbHVlAQkAkQMCCAUCZGkIcGF5bWVudHMAAAQCYkgJAQV2YWx1ZQEIBQJkawdhc3NldElkBAJjcAgFAmRrBmFtb3VudAQCY3kJAQJiRgQJANgEAQgFAmRpDXRyYW5zYWN0aW9uSWQJANgEAQUCYkgFAmNwCAUCZGkGY2FsbGVyBAJjZAgFAmN5Al8xBAJjZQgFAmN5Al8yBAJiUAkBDXBhcnNlSW50VmFsdWUBCAUCY3kCXzkEAmNmCAUCY3kDXzEwAwMJAQJhQgAGCQAAAgUCYlAFAW8JAQJhbQEJAKwCAgIPQWRtaW4gYmxvY2tlZDogCQCkAwEFAmJQCQCXCgUFAmNkBQJjZQUCY3AFAmJIBQJjZgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZGwJAmRtAVcCZG4CZG8CYmcCY24CY28CY3ACY3EEAmN5CQECY2cMBQFXBQJiZwgJAQV2YWx1ZQEFAmRuBmFtb3VudAgJAQV2YWx1ZQEFAmRuB2Fzc2V0SWQICQEFdmFsdWUBBQJkbwZhbW91bnQICQEFdmFsdWUBBQJkbwdhc3NldElkBQJkbQcFAmNuBQJjbwUCY3AFAmNxBAJiUAkBDXBhcnNlSW50VmFsdWUBCAUCY3kCXzgDAwMJAQJhQgAGCQAAAgUCYlAFAW0GCQAAAgUCYlAFAW8JAQJhbQEJAKwCAgIIQmxvY2tlZDoJAKQDAQUCYlAFAmN5AQJkcAECZHEEAmRyCQBrAwUCZHEFAmFkBQFkCQCUCgIJAGUCBQJkcQUCZHIFAmRyAQJkcwAEAmF0CQCiCAEJAQFPAAMJAAECBQJhdAIGU3RyaW5nBAJkdAUCYXQJANkEAQUCZHQDCQABAgUCYXQCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZHUABAJhdAkAoggBCQEBUAADCQABAgUCYXQCBlN0cmluZwQCZHQFAmF0CQDZBAEFAmR0AwkAAQIFAmF0AgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAmR2CQECYW0BAhFQZXJtaXNzaW9uIGRlbmllZAECZHcBAmRpBAJhdAkBAmRzAAMJAAECBQJhdAIKQnl0ZVZlY3RvcgQCZHgFAmF0AwkAAAIIBQJkaQ9jYWxsZXJQdWJsaWNLZXkFAmR4BgUCZHYDCQABAgUCYXQCBFVuaXQDCQAAAggFAmRpBmNhbGxlcgUEdGhpcwYFAmR2CQACAQILTWF0Y2ggZXJyb3IVAmRpAQtjb25zdHJ1Y3RvcgECYXoEAmR5CQECZHcBBQJkaQMJAAACBQJkeQUCZHkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU4ABQJhegUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRpAQpzZXRNYW5hZ2VyAQJkegQCZHkJAQJkdwEFAmRpAwkAAAIFAmR5BQJkeQQCZEEJANkEAQUCZHoDCQAAAgUCZEEFAmRBCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFQAAUCZHoFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkaQEOY29uZmlybU1hbmFnZXIABAJkQgkBAmR1AAQCZEMDCQEJaXNEZWZpbmVkAQUCZEIGCQECYW0BAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZEMFAmRDBAJkRAMJAAACCAUCZGkPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJkQgYJAQJhbQECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJkRAUCZEQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8ACQDYBAEJAQV2YWx1ZQEFAmRCCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFQAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRpAQNwdXQCAmJnAmRFBAJkRgkBAmFJAAQCZEcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmRGBQF5AhZXcm9uZyBzdGFraW5nIGNvbnRyYWN0BAJkSAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCZEYFAXoCF1dyb2duIHNsaXBwYWdlIGNvbnRyYWN0BAJkSQMJAGcCBQJiZwAABgkBAmFtAQIOd3Jvbmcgc2xpcHBhZ2UDCQAAAgUCZEkFAmRJBAJkSgMJAAACCQCQAwEIBQJkaQhwYXltZW50cwACBgkBAmFtAQITMiBwYXltZW50cyBleHBlY3RlZAMJAAACBQJkSgUCZEoEAmRLCQECZGwJCQClCAEIBQJkaQZjYWxsZXIJANgEAQgFAmRpDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUCZGkIcGF5bWVudHMAAAdhc3NldElkCAkBBXZhbHVlAQkAkQMCCAUCZGkIcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAmRpCHBheW1lbnRzAAEFAmJnBgcAAAIABAJjTggFAmRLAl8yBAJiSwgFAmRLAl83BAJjZggFAmRLAl85BAJjTwgFAmRLA18xMAQCY1AIBQJkSwNfMTEEAmJMCAUCZEsDXzEyBAJiTQgFAmRLA18xMwQCY3kJAPwHBAUCYXoCBGVtaXQJAMwIAgUCY04FA25pbAUDbmlsAwkAAAIFAmN5BQJjeQQCZEwEAmF0BQJjeQMJAAECBQJhdAIHQWRkcmVzcwQCZE0FAmF0CQD8BwQFAmRNAgRlbWl0CQDMCAIFAmNOBQNuaWwFA25pbAUEdW5pdAMJAAACBQJkTAUCZEwEAmROAwkAZgIFAmNPAAAJAPwHBAUCZEgCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiTAUCY08FA25pbAUDbmlsAwkAAAIFAmROBQJkTgQCZE8DCQBmAgUCY1AAAAkA/AcEBQJkSAIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJNBQJjUAUDbmlsBQNuaWwDCQAAAgUCZE8FAmRPBAJkUAMFAmRFBAJkUQkA/AcEBQJkRwIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYksFAmNOBQNuaWwDCQAAAgUCZFEFAmRRBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRpBmNhbGxlcgUCY04FAmJLBQNuaWwJAM4IAgUCY2YFAmRQCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRpAQlwdXRPbmVUa24FAmRSAmRTAmJmAmJnAmRFBAJidwkBAmFJAAQCZEcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmJ3BQF5AhZXcm9uZyBzdGFraW5nIGNvbnRyYWN0BAJkSAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCYncFAXoCF1dyb25nIHNsaXBwYWdlIGNvbnRyYWN0BAJkVAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCYncFAUECGVdyb25nIGd3eCByZXdhcmQgY29udHJhY3QEAmRVCQECYUUABAJiTAkAkQMCBQJkVQUBcwQCYk0JAJEDAgUCZFUFAXQEAmJOCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZFUFAXUEAmJPCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZFUFAXYEAmRWCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQJhYgACAAQCYkoDCQAAAgUCZFYJAKUIAQgFAmRpBmNhbGxlcggFAmRpDG9yaWdpbkNhbGxlcggFAmRpBmNhbGxlcgMDAwMJAGcCAAAFAmJnBgkAZwIAAAUCZFIGCQBnAgAABQJkUwYJAGcCAAAFAmJmCQECYW0BAgxXcm9uZyBwYXJhbXMDCQECIT0CCQCQAwEIBQJkaQhwYXltZW50cwABCQECYW0BAhIxIHBheW1lbnQgZXhwZWN0ZWQEAmRrCQEFdmFsdWUBCQCRAwIIBQJkaQhwYXltZW50cwAABAJiSAkA2AQBCQEFdmFsdWUBCAUCZGsHYXNzZXRJZAQCZFcIBQJkawZhbW91bnQEAmRYCQECZHABBQJkVwQCY3AIBQJkWAJfMQQCZFkIBQJkWAJfMgMDAwkAZgIFAmRSBQJjcAYJAGYCBQJkUwUCY3AGCQBmAgCAreIEBQJjcAkBAmFtAQIUd3JvbmcgcGF5bWVudCBhbW91bnQEAmJUCQECYVkBBQJiTAQCYlYJAQJhWQEFAmJNBAJkWgMJAAACBQJiSAUCYkwJAJgKBgkAZQIFAmJUBQJjcAUCYlYJAGUCBQJjcAUCZFIFAmRTAAAAAAMJAAACBQJiSAUCYk0JAJgKBgUCYlQJAGUCBQJiVgUCY3AAAAAACQBlAgUCY3AFAmRTBQJkUgkBAmFtAQIUd3JvbmcgcGF5bWVudEFzc2V0SWQEAmVhCAUCZFoCXzEEAmViCAUCZFoCXzIEAmVjCAUCZFoCXzMEAmVkCAUCZFoCXzQEAmVlCAUCZFoCXzUEAmVmCAUCZFoCXzYEAmJsCQD8BwQFAmRUAgVjYWxjRAkAzAgCCQCkAwEFAmVhCQDMCAIJAKQDAQUCZWIJAMwIAgUCYUEJAMwIAgUBaAkAzAgCBQFpBQNuaWwFA25pbAQCYmsJAPwHBAUCZFQCBWNhbGNECQDMCAIJAKYDAQkAtgIBCQBlAgkAZAIFAmVhBQJlYwUCZWYJAMwIAgkApgMBCQC2AgEJAGUCCQBkAgUCZWIFAmVlBQJlZAkAzAgCBQJhQQkAzAgCBQFoCQDMCAIFAWkFA25pbAUDbmlsBAJlZwkBAmJqAwkApwMBCQECYXMBBQJiawkApwMBCQECYXMBBQJibAUBZwMJAAACBQJlZwUCZWcEAmRLCQECZGwJCQClCAEIBQJkaQZjYWxsZXIJANgEAQgFAmRpDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFAmJMBQJkUgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUCYk0FAmRTBQJiZwYGBQJjcAUCYkgEAmJlCAUCZEsCXzIEAmJLCAUCZEsCXzcEAmNmCAUCZEsCXzkEAmNPCAUCZEsDXzEwBAJjUAgFAmRLA18xMQQCZWgJAQJiZAMJALYCAQUCYmUJALYCAQUCYmYJALYCAQUCYmcEAmNOCQCgAwEIBQJlaAJfMgQCZWkJAPwHBAUCYXoCBGVtaXQJAMwIAgUCY04FA25pbAUDbmlsAwkAAAIFAmVpBQJlaQQCZEwEAmF0BQJlaQMJAAECBQJhdAIHQWRkcmVzcwQCZE0FAmF0CQD8BwQFAmRNAgRlbWl0CQDMCAIFAmNOBQNuaWwFA25pbAUEdW5pdAMJAAACBQJkTAUCZEwEAmROAwkAZgIFAmNPAAAJAPwHBAUCZEgCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFAmJMBQJjTwUDbmlsBQNuaWwDCQAAAgUCZE4FAmROBAJkTwMJAGYCBQJjUAAACQD8BwQFAmRIAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQJiTQUCY1AFA25pbAUDbmlsAwkAAAIFAmRPBQJkTwQCZFADBQJkRQQCZFEJAPwHBAUCZEcCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJLBQJjTgUDbmlsAwkAAAIFAmRRBQJkUQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJkaQZjYWxsZXIFAmNOBQJiSwUDbmlsBAJlagMJAGYCBQJkWQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFEBQJkWQkA2QQBBQJiSAUDbmlsBQNuaWwJAM4IAgkAzggCBQJjZgUCZFAFAmVqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRpAQpwdXRGb3JGcmVlAQJlawMJAGYCAAAFAmVrCQECYW0BAg53cm9uZyBzbGlwcGFnZQMJAQIhPQIJAJADAQgFAmRpCHBheW1lbnRzAAIJAQJhbQECEzIgcGF5bWVudHMgZXhwZWN0ZWQEAmRLCQECZGwJCQClCAEIBQJkaQZjYWxsZXIJANgEAQgFAmRpDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUCZGkIcGF5bWVudHMAAAdhc3NldElkCAkBBXZhbHVlAQkAkQMCCAUCZGkIcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAmRpCHBheW1lbnRzAAEFAmVrBwcAAAIACAUCZEsCXzkCZGkBA2dldAAEAmN5CQECZGgBBQJkaQQCZWwIBQJjeQJfMQQCY2UIBQJjeQJfMgQCY3AIBQJjeQJfMwQCYkgIBQJjeQJfNAQCY2YIBQJjeQJfNQQCZW0JAPwHBAUCYXoCBGJ1cm4JAMwIAgUCY3AFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYkgFAmNwBQNuaWwDCQAAAgUCZW0FAmVtBQJjZgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkaQEJZ2V0T25lVGtuBQJlbgJlbwJlcAJlcQJiZwMJAQIhPQIJAJADAQgFAmRpCHBheW1lbnRzAAEJAQJhbQECEjEgcGF5bWVudCBleHBlY3RlZAQCYncJAQJhRQAEAmJLCQCRAwIFAmJ3BQFyBAJiTAkAkQMCBQJidwUBcwQCYk0JAJEDAgUCYncFAXQEAmJOCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYncFAXUEAmJPCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYncFAXYEAmJQCQCRAwIFAmJ3BQFxBAJkRgkBAmFJAAQCZFQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmRGBQFBAh9Xcm9uZyBnd3hSZXdhcmRDb250cmFjdCBhZGRyZXNzBAJkawkBBXZhbHVlAQkAkQMCCAUCZGkIcGF5bWVudHMAAAQCZFYJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAmFiAAIABAJiSgMJAAACBQJkVgkApQgBCAUCZGkGY2FsbGVyCAUCZGkMb3JpZ2luQ2FsbGVyCAUCZGkGY2FsbGVyBAJiRwkA2AQBCAUCZGkNdHJhbnNhY3Rpb25JZAQCYkgJAQV2YWx1ZQEIBQJkawdhc3NldElkBAJjcAgFAmRrBmFtb3VudAMJAGYCAICU69wDBQJjcAkBAmFtAQIRTWluIHBheW1lbnQgMTAgTFADAwMJAGYCAAAFAmJnBgkAZgIAAAUCZW4GCQBmAgAABQJlcAkBAmFtAQIMV3JvbmcgcGFyYW1zAwkBAiE9AgUCYksJANgEAQUCYkgJAQJhbQECCFdyb25nIExQBAJjeQkBAmJGBAkA2AQBCAUCZGkNdHJhbnNhY3Rpb25JZAkA2AQBBQJiSAUCY3AIBQJkaQZjYWxsZXIEAmVyCAUCY3kCXzEEAmVzCAUCY3kCXzIEAmJUCQECYVkBBQJiTAQCYlYJAQJhWQEFAmJNBAJldAMJAAACBQJlcQUCYkwJAJkKBwkAZQIFAmJUBQJlcgkAZQIFAmJWBQJlcwUCZW4FAmVzAAAAAAkAZAIFAmVyBQJlbgMJAAACBQJlcQUCYk0JAJkKBwkAZQIFAmJUBQJlcgkAZQIFAmJWBQJlcwAAAAAFAmVuBQJlcgkAZAIFAmVzBQJlbgkBAmFtAQIQd3Jvbmcgb3V0QXNzZXRJZAQCZWEIBQJldAJfMQQCZWIIBQJldAJfMgQCZWMIBQJldAJfMwQCZWQIBQJldAJfNAQCZWUIBQJldAJfNQQCZWYIBQJldAJfNgQCZXUIBQJldAJfNwMDCQBmAgAABQJlYwYJAGYCAAAFAmVlCQECYW0BAgpXcm9uZyBjYWxjBAJibAkA/AcEBQJkVAIFY2FsY0QJAMwIAgkApAMBBQJlYQkAzAgCCQCkAwEFAmViCQDMCAIFAmFBCQDMCAIFAWgJAMwIAgUBaQUDbmlsBQNuaWwEAmJrCQD8BwQFAmRUAgVjYWxjRAkAzAgCCQCkAwEJAGQCCQBlAgUCZWEFAmVjBQJlZgkAzAgCCQCkAwEJAGUCCQBkAgUCZWIFAmVkBQJlZQkAzAgCBQJhQQkAzAgCBQFoCQDMCAIFAWkFA25pbAUDbmlsBAJlZwkBAmJqAwkApwMBCQECYXMBBQJiawkApwMBCQECYXMBBQJibAUBZwMJAAACBQJlZwUCZWcEAmV2CQECYmQDCQC2AgEFAmV1CQC2AgEFAmVwCQC2AgEFAmJnAwkAAAIFAmV2BQJldgQCZXcDCQAAAgUCZXEFAmJMCQCUCgIJAKADAQgFAmV2Al8yAAAJAJQKAgAACQCgAwEIBQJldgJfMgQCZXgIBQJldwJfMQQCZXkIBQJldwJfMgQCZXoJAGQCBQJleAUCZXkEAmVBCQECZHABBQJlegQCZUIIBQJlQQJfMQQCZFkIBQJlQQJfMgQCZUMDCQAAAgUCZXECBVdBVkVTBQR1bml0CQDZBAEFAmVxBAJlagMJAGYCBQJkWQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFEBQJkWQUCZUMFA25pbAUDbmlsBAJiUwMJAGcCBQJiTgUCYk8FAmJOBQJiTwMJAAACBQJiUwUCYlMEAmVECQECYmECCQEBQwIFAmJWBQJiUwkBAUMCBQJiVAUCYlMEAmVFCQEBRgIFAmVEBQFhBAJjZgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJiSgUCZUIFAmVDCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFYAgkApQgBBQJiSgUCYkcJAQJhVQYFAmV4BQJleQUCY3AFAmVFBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUQAFAmVFCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUgIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmVFBQNuaWwDCQAAAgUCY2YFAmNmBAJlRgkA/AcEBQJhegIEYnVybgkAzAgCBQJjcAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiSAUCY3AFA25pbAMJAAACBQJlRgUCZUYJAM4IAgUCY2YFAmVqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRpAQlnZXROb0xlc3MCAmVHAmVIBAJjeQkBAmRoAQUCZGkEAmNkCAUCY3kCXzEEAmNlCAUCY3kCXzIEAmNwCAUCY3kCXzMEAmJICAUCY3kCXzQEAmNmCAUCY3kCXzUEAmVJAwkAZwIFAmNkBQJlRwYJAQJhbQEJAKwCAgkArAICCQCsAgICCUZhaWxlZDogIAkApAMBBQJjZAIDIDwgCQCkAwEFAmVHAwkAAAIFAmVJBQJlSQQCZUoDCQBnAgUCY2UFAmVIBgkBAmFtAQkArAICCQCsAgIJAKwCAgIIRmFpbGVkOiAJAKQDAQUCY2UCAyA8IAkApAMBBQJlSAMJAAACBQJlSgUCZUoEAmVLCQD8BwQFAmF6AgRidXJuCQDMCAIFAmNwBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJIBQJjcAUDbmlsAwkAAAIFAmVLBQJlSwUCY2YJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGkBDXVuc3Rha2VBbmRHZXQBAmRxBAJkagMJAQIhPQIJAJADAQgFAmRpCHBheW1lbnRzAAAJAQJhbQECFG5vIHBheW1lbnRzIGV4cGVjdGVkBgMJAAACBQJkagUCZGoEAmJ3CQECYUUABAJlTAkBAmFJAAQCYksJANkEAQkAkQMCBQJidwUBcgQCZU0JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmVMBQF5AgV3cm9uZwQCZU4JAPwHBAUCZU0CB3Vuc3Rha2UJAMwIAgkA2AQBBQJiSwkAzAgCBQJkcQUDbmlsBQNuaWwDCQAAAgUCZU4FAmVOBAJjeQkBAmJGBAkA2AQBCAUCZGkNdHJhbnNhY3Rpb25JZAkA2AQBBQJiSwUCZHEIBQJkaQZjYWxsZXIEAmJQCQENcGFyc2VJbnRWYWx1ZQEIBQJjeQJfOQQCY2YIBQJjeQNfMTAEAmVPAwMJAQJhQgAGCQAAAgUCYlAFAW8JAQJhbQEJAKwCAgIJQmxvY2tlZDogCQCkAwEFAmJQBgMJAAACBQJlTwUCZU8EAmVQCQD8BwQFAmF6AgRidXJuCQDMCAIFAmRxBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJLBQJkcQUDbmlsAwkAAAIFAmVQBQJlUAUCY2YJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGkBCGFjdGl2YXRlAgJlUQJlUgMJAQIhPQIJAKUIAQgFAmRpBmNhbGxlcgkApQgBBQJhegkBAmFtAQIGZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVkABQJlUQkAzAgCCQELU3RyaW5nRW50cnkCCQEBWgAFAmVSBQNuaWwCB3N1Y2Nlc3MCZGkBBHNldFMCAmVTAmVPAwkBAiE9AgkApQgBCAUCZGkGY2FsbGVyCQECYXYCBQR0aGlzCQECYWIABQJkdgkAzAgCCQELU3RyaW5nRW50cnkCBQJlUwUCZU8FA25pbAJkaQEEc2V0SQICZVMCZU8DCQECIT0CCQClCAEIBQJkaQZjYWxsZXIJAQJhdgIFBHRoaXMJAQJhYgAFAmR2CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlUwUCZU8FA25pbAJkaQEcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQAJAJQKAgUDbmlsCQECYUUAAmRpARxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZAQJhWgkAlAoCBQNuaWwJAQJhWQEFAmFaAmRpARljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZAwJicQJicgJidgQCZVQJAQJidQMFAmJxBQJicgUCYnYJAJQKAgUDbmlsCQDMCAIJAKYDAQkAkQMCBQJlVAAACQDMCAIJAKYDAQkAkQMCBQJlVAABCQDMCAIJAKYDAQkAkQMCBQJlVAACBQNuaWwCZGkBFmZyb21YMThXcmFwcGVyUkVBRE9OTFkCAUcCZVUJAJQKAgUDbmlsCQEBRgIJAKcDAQUBRwUCZVUCZGkBFHRvWDE4V3JhcHBlclJFQURPTkxZAgFEAUUJAJQKAgUDbmlsCQCmAwEJAQFDAgUBRAUBRQJkaQEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJiYgJiYwkAlAoCBQNuaWwJAKYDAQkBAmJhAgkApwMBBQJiYgkApwMBBQJiYwJkaQEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmJHAmJnAmNpAmVWAmNrAmVXAmVYAmNtAmNuCQCUCgIFA25pbAkBAmNnDAUCYkcFAmJnBQJjaQUCZVYFAmNrBQJlVwUCZVgFAmNtBQJjbgcAAAIAAmRpASNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQQCYkcCZVkCYkkCZVgEAmN5CQECYkYEBQJiRwUCZVkFAmJJCQERQGV4dHJOYXRpdmUoMTA2MikBBQJlWAkAlAoCBQNuaWwJAJwKCggFAmN5Al8xCAUCY3kCXzIIBQJjeQJfMwgFAmN5Al80CAUCY3kCXzUIBQJjeQJfNggFAmN5Al83CQCmAwEIBQJjeQJfOAgFAmN5Al85CAUCY3kDXzEwAQJlWgECZmEABAJhdAUCZVoDCQABAgUCYXQCBU9yZGVyBAJjVgUCYXQEAmZiCQECYUMABAJhcAkBAmNVAQUCY1YEAmZjCQD0AwMIBQJjVglib2R5Qnl0ZXMJAJEDAggFAmNWBnByb29mcwAACAUCY1YPc2VuZGVyUHVibGljS2V5BAJmZAkA9AMDCAUCY1YJYm9keUJ5dGVzCQCRAwIIBQJjVgZwcm9vZnMAAQUCZmIDAwMFAmFwBQJmYwcFAmZkBwYJAQJhbwMFAmFwBQJmYwUCZmQEAmZlBAJmZgkBAmRzAAMJAAECBQJmZgIKQnl0ZVZlY3RvcgQCZHgFAmZmBQJkeAMJAAECBQJmZgIEVW5pdAgFAmVaD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJlWglib2R5Qnl0ZXMJAJEDAggFAmVaBnByb29mcwAABQJmZd18zmc=", "chainId": 84, "height": 2185585, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: G2de3qtg6qec6pe4qd1Nq8FSwoqQFYrfjsS34p7S31Xr Next: 57oomHZowvc4bbyAq6vCSay5jsR46pp9aAPxKRFFQKy4 Diff:
OldNewDifferences
327327 let bX = ba(bW, bU)
328328 let cB = fraction(M((bX - cx)), c, bX)
329329 let cz = C(ch, a)
330- let cC = if (((if ((bX != e))
330+ if (if ((bX != e))
331331 then (cB > cz)
332- else false) == true))
333- then true
334- else am(((("Price slippage " + toString(cB)) + " > ") + toString(cz)))
335- if ((cC == cC))
336- then {
332+ else false)
333+ then am(((("Price slippage " + toString(cB)) + " > ") + toString(cz)))
334+ else {
337335 let ca = C(bQ, a)
338- let cD = fraction(cv, bX, c)
339- let cE = fraction(cw, c, bX)
340- let cF = if ((cD > cw))
341- then $Tuple2(cE, cv)
342- else $Tuple2(cv, cD)
343- let cG = cF._1
344- let cH = cF._2
345- let cA = fraction(ca, cH, bW)
346- $Tuple5(F(cA, a), F(cG, bS), F(cH, bS), bX, cz)
336+ let cC = fraction(cv, bX, c)
337+ let cD = fraction(cw, c, bX)
338+ let cE = if ((cC > cw))
339+ then $Tuple2(cD, cv)
340+ else $Tuple2(cv, cC)
341+ let cF = cE._1
342+ let cG = cE._2
343+ let cA = fraction(ca, cG, bW)
344+ $Tuple5(F(cA, a), F(cF, bS), F(cG, bS), bX, cz)
347345 }
348- else throw("Strict value is not equal to itself.")
349346 }
350- let cI = cy._1
351- let cJ = cy._2
352- let cK = cy._3
353- let cL = F(cy._4, a)
354- let cM = F(cy._5, a)
355- let cN = if ((cI > 0))
347+ let cH = cy._1
348+ let cI = cy._2
349+ let cJ = cy._3
350+ let cK = F(cy._4, a)
351+ let cL = F(cy._5, a)
352+ let cM = if ((cH > 0))
356353 then true
357354 else am("LP <= 0")
358- if ((cN == cN))
355+ if ((cM == cM))
359356 then {
360- let cO = if (!(cn))
357+ let cN = if (!(cn))
361358 then 0
362- else cI
363- let cP = (ci - cJ)
364- let cQ = (ck - cK)
365- let cR = if (if (co)
359+ else cH
360+ let cO = (ci - cI)
361+ let cP = (ck - cJ)
362+ let cQ = if (if (co)
366363 then (cq == cr)
367364 else false)
368365 then $Tuple2(cp, 0)
370367 then (cq == cs)
371368 else false)
372369 then $Tuple2(0, cp)
373- else $Tuple2(cJ, cK)
374- let cS = cR._1
375- let cT = cR._2
376- let cU = [IntegerEntry(Q(), cL), IntegerEntry(R(height, lastBlock.timestamp), cL), StringEntry(U(bJ, bG), aJ(cS, cT, cO, cL, ch, cM, height, lastBlock.timestamp, cP, cQ))]
377- $Tuple13(cI, cO, cL, bT, bV, bQ, bK, bP, cU, cP, cQ, cj, cl)
370+ else $Tuple2(cI, cJ)
371+ let cR = cQ._1
372+ let cS = cQ._2
373+ let cT = [IntegerEntry(Q(), cK), IntegerEntry(R(height, lastBlock.timestamp), cK), StringEntry(U(bJ, bG), aJ(cR, cS, cN, cK, ch, cL, height, lastBlock.timestamp, cO, cP))]
374+ $Tuple13(cH, cN, cK, bT, bV, bQ, bK, bP, cT, cO, cP, cj, cl)
378375 }
379376 else throw("Strict value is not equal to itself.")
380377 }
382379 }
383380
384381
385-func cV (cW) = {
382+func cU (cV) = {
386383 let bw = aE()
387- let cX = bw[s]
388- let cY = bw[t]
384+ let cW = bw[s]
385+ let cX = bw[t]
389386 let bP = parseIntValue(bw[q])
390387 let bx = parseIntValue(bw[u])
391388 let by = parseIntValue(bw[v])
389+ let cY = aY(cW)
392390 let cZ = aY(cX)
393- let da = aY(cY)
394- let bX = if ((cW.orderType == Buy))
395- then bn(bx, by, (cZ + cW.amount), da)
396- else bn(bx, by, (cZ - cW.amount), da)
391+ let bX = if ((cV.orderType == Buy))
392+ then bn(bx, by, (cY + cV.amount), cZ)
393+ else bn(bx, by, (cY - cV.amount), cZ)
397394 let bY = F(bX, a)
398395 if (if (if (aB())
399396 then true
402399 else (bP == o))
403400 then am("Admin blocked")
404401 else {
405- let db = cW.assetPair.amountAsset
406- let dc = if ((db == unit))
402+ let da = cV.assetPair.amountAsset
403+ let db = if ((da == unit))
407404 then "WAVES"
408- else toBase58String(value(db))
409- let dd = cW.assetPair.priceAsset
410- let de = if ((dd == unit))
405+ else toBase58String(value(da))
406+ let dc = cV.assetPair.priceAsset
407+ let dd = if ((dc == unit))
411408 then "WAVES"
412- else toBase58String(value(dd))
413- if (if ((dc != cX))
409+ else toBase58String(value(dc))
410+ if (if ((db != cW))
414411 then true
415- else (de != cY))
412+ else (dd != cX))
416413 then am("Wr assets")
417414 else {
418- let df = cW.price
415+ let de = cV.price
419416 let bO = fraction(a, by, bx)
420- let dg = I(df, a, bO)
421- let dh = if ((cW.orderType == Buy))
422- then (bY >= dg)
423- else (dg >= bY)
417+ let df = I(de, a, bO)
418+ let dg = if ((cV.orderType == Buy))
419+ then (bY >= df)
420+ else (df >= bY)
424421 true
425422 }
426423 }
427424 }
428425
429426
430-func di (dj) = {
431- let dk = if ((size(dj.payments) == 1))
427+func dh (di) = {
428+ let dj = if ((size(di.payments) == 1))
432429 then true
433430 else am("1 payment expected")
434- if ((dk == dk))
431+ if ((dj == dj))
435432 then {
436- let dl = value(dj.payments[0])
437- let bH = value(dl.assetId)
438- let cp = dl.amount
439- let cy = bF(toBase58String(dj.transactionId), toBase58String(bH), cp, dj.caller)
433+ let dk = value(di.payments[0])
434+ let bH = value(dk.assetId)
435+ let cp = dk.amount
436+ let cy = bF(toBase58String(di.transactionId), toBase58String(bH), cp, di.caller)
440437 let cd = cy._1
441438 let ce = cy._2
442439 let bP = parseIntValue(cy._9)
451448 }
452449
453450
454-func dm (dn,W,do,dp,bg,cn,co,cp,cq) = {
455- let cy = cg(W, bg, value(do).amount, value(do).assetId, value(dp).amount, value(dp).assetId, dn, false, cn, co, cp, cq)
451+func dl (dm,W,dn,do,bg,cn,co,cp,cq) = {
452+ let cy = cg(W, bg, value(dn).amount, value(dn).assetId, value(do).amount, value(do).assetId, dm, false, cn, co, cp, cq)
456453 let bP = parseIntValue(cy._8)
457454 if (if (if (aB())
458455 then true
464461 }
465462
466463
467-func dq (dr) = {
468- let ds = fraction(dr, ad, d)
469- $Tuple2((dr - ds), ds)
464+func dp (dq) = {
465+ let dr = fraction(dq, ad, d)
466+ $Tuple2((dq - dr), dr)
470467 }
471468
472469
473-func dt () = {
470+func ds () = {
474471 let at = getString(O())
475472 if ($isInstanceOf(at, "String"))
476473 then {
477- let du = at
478- fromBase58String(du)
474+ let dt = at
475+ fromBase58String(dt)
479476 }
480477 else if ($isInstanceOf(at, "Unit"))
481478 then unit
483480 }
484481
485482
486-func dv () = {
483+func du () = {
487484 let at = getString(P())
488485 if ($isInstanceOf(at, "String"))
489486 then {
490- let du = at
491- fromBase58String(du)
487+ let dt = at
488+ fromBase58String(dt)
492489 }
493490 else if ($isInstanceOf(at, "Unit"))
494491 then unit
496493 }
497494
498495
499-let dw = am("Permission denied")
496+let dv = am("Permission denied")
500497
501-func dx (dj) = {
502- let at = dt()
498+func dw (di) = {
499+ let at = ds()
503500 if ($isInstanceOf(at, "ByteVector"))
504501 then {
505- let dy = at
506- if ((dj.callerPublicKey == dy))
502+ let dx = at
503+ if ((di.callerPublicKey == dx))
507504 then true
508- else dw
505+ else dv
509506 }
510507 else if ($isInstanceOf(at, "Unit"))
511- then if ((dj.caller == this))
508+ then if ((di.caller == this))
512509 then true
513- else dw
510+ else dv
514511 else throw("Match error")
515512 }
516513
517514
518-@Callable(dj)
515+@Callable(di)
519516 func constructor (az) = {
520- let dz = dx(dj)
521- if ((dz == dz))
517+ let dy = dw(di)
518+ if ((dy == dy))
522519 then [StringEntry(N(), az)]
523520 else throw("Strict value is not equal to itself.")
524521 }
525522
526523
527524
528-@Callable(dj)
529-func setManager (dA) = {
530- let dz = dx(dj)
531- if ((dz == dz))
525+@Callable(di)
526+func setManager (dz) = {
527+ let dy = dw(di)
528+ if ((dy == dy))
532529 then {
533- let dB = fromBase58String(dA)
534- if ((dB == dB))
535- then [StringEntry(P(), dA)]
530+ let dA = fromBase58String(dz)
531+ if ((dA == dA))
532+ then [StringEntry(P(), dz)]
536533 else throw("Strict value is not equal to itself.")
537534 }
538535 else throw("Strict value is not equal to itself.")
540537
541538
542539
543-@Callable(dj)
540+@Callable(di)
544541 func confirmManager () = {
545- let dC = dv()
546- let dD = if (isDefined(dC))
542+ let dB = du()
543+ let dC = if (isDefined(dB))
547544 then true
548545 else am("No pending manager")
549- if ((dD == dD))
546+ if ((dC == dC))
550547 then {
551- let dE = if ((dj.callerPublicKey == value(dC)))
548+ let dD = if ((di.callerPublicKey == value(dB)))
552549 then true
553550 else am("You are not pending manager")
554- if ((dE == dE))
555- then [StringEntry(O(), toBase58String(value(dC))), DeleteEntry(P())]
551+ if ((dD == dD))
552+ then [StringEntry(O(), toBase58String(value(dB))), DeleteEntry(P())]
556553 else throw("Strict value is not equal to itself.")
557554 }
558555 else throw("Strict value is not equal to itself.")
560557
561558
562559
563-@Callable(dj)
564-func put (bg,dF) = {
565- let dG = aI()
566- let dH = valueOrErrorMessage(addressFromString(dG[y]), "Wrong staking contract")
567- let dI = valueOrErrorMessage(addressFromString(dG[z]), "Wrogn slippage contract")
568- let dJ = if ((bg >= 0))
560+@Callable(di)
561+func put (bg,dE) = {
562+ let dF = aI()
563+ let dG = valueOrErrorMessage(addressFromString(dF[y]), "Wrong staking contract")
564+ let dH = valueOrErrorMessage(addressFromString(dF[z]), "Wrogn slippage contract")
565+ let dI = if ((bg >= 0))
569566 then true
570567 else am("wrong slippage")
571- if ((dJ == dJ))
568+ if ((dI == dI))
572569 then {
573- let dK = if ((size(dj.payments) == 2))
570+ let dJ = if ((size(di.payments) == 2))
574571 then true
575572 else am("2 payments expected")
576- if ((dK == dK))
573+ if ((dJ == dJ))
577574 then {
578- let dL = dm(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(value(dj.payments[0]).assetId, value(dj.payments[0]).amount), dj.payments[1], bg, true, false, 0, "")
579- let cO = dL._2
580- let bK = dL._7
581- let cf = dL._9
582- let cP = dL._10
583- let cQ = dL._11
584- let bL = dL._12
585- let bM = dL._13
586- let cy = invoke(az, "emit", [cO], nil)
575+ let dK = dl(toString(di.caller), toBase58String(di.transactionId), AttachedPayment(value(di.payments[0]).assetId, value(di.payments[0]).amount), di.payments[1], bg, true, false, 0, "")
576+ let cN = dK._2
577+ let bK = dK._7
578+ let cf = dK._9
579+ let cO = dK._10
580+ let cP = dK._11
581+ let bL = dK._12
582+ let bM = dK._13
583+ let cy = invoke(az, "emit", [cN], nil)
587584 if ((cy == cy))
588585 then {
589- let dM = {
586+ let dL = {
590587 let at = cy
591588 if ($isInstanceOf(at, "Address"))
592589 then {
593- let dN = at
594- invoke(dN, "emit", [cO], nil)
590+ let dM = at
591+ invoke(dM, "emit", [cN], nil)
595592 }
596593 else unit
597594 }
598- if ((dM == dM))
595+ if ((dL == dL))
599596 then {
600- let dO = if ((cP > 0))
601- then invoke(dI, "put", nil, [AttachedPayment(bL, cP)])
597+ let dN = if ((cO > 0))
598+ then invoke(dH, "put", nil, [AttachedPayment(bL, cO)])
602599 else nil
603- if ((dO == dO))
600+ if ((dN == dN))
604601 then {
605- let dP = if ((cQ > 0))
606- then invoke(dI, "put", nil, [AttachedPayment(bM, cQ)])
602+ let dO = if ((cP > 0))
603+ then invoke(dH, "put", nil, [AttachedPayment(bM, cP)])
607604 else nil
608- if ((dP == dP))
605+ if ((dO == dO))
609606 then {
610- let dQ = if (dF)
607+ let dP = if (dE)
611608 then {
612- let dR = invoke(dH, "stake", nil, [AttachedPayment(bK, cO)])
613- if ((dR == dR))
609+ let dQ = invoke(dG, "stake", nil, [AttachedPayment(bK, cN)])
610+ if ((dQ == dQ))
614611 then nil
615612 else throw("Strict value is not equal to itself.")
616613 }
617- else [ScriptTransfer(dj.caller, cO, bK)]
618- (cf ++ dQ)
614+ else [ScriptTransfer(di.caller, cN, bK)]
615+ (cf ++ dP)
619616 }
620617 else throw("Strict value is not equal to itself.")
621618 }
632629
633630
634631
635-@Callable(dj)
636-func putOneTkn (dS,dT,bf,bg,dF) = {
632+@Callable(di)
633+func putOneTkn (dR,dS,bf,bg,dE) = {
637634 let bw = aI()
638- let dH = valueOrErrorMessage(addressFromString(bw[y]), "Wrong staking contract")
639- let dI = valueOrErrorMessage(addressFromString(bw[z]), "Wrong slippage contract")
640- let dU = valueOrErrorMessage(addressFromString(bw[A]), "Wrong gwx reward contract")
641- let dV = aE()
642- let bL = dV[s]
643- let bM = dV[t]
644- let bN = parseIntValue(dV[u])
645- let bO = parseIntValue(dV[v])
646- let dW = valueOrElse(getString(this, ab()), "")
647- let bJ = if ((dW == toString(dj.caller)))
648- then dj.originCaller
649- else dj.caller
635+ let dG = valueOrErrorMessage(addressFromString(bw[y]), "Wrong staking contract")
636+ let dH = valueOrErrorMessage(addressFromString(bw[z]), "Wrong slippage contract")
637+ let dT = valueOrErrorMessage(addressFromString(bw[A]), "Wrong gwx reward contract")
638+ let dU = aE()
639+ let bL = dU[s]
640+ let bM = dU[t]
641+ let bN = parseIntValue(dU[u])
642+ let bO = parseIntValue(dU[v])
643+ let dV = valueOrElse(getString(this, ab()), "")
644+ let bJ = if ((dV == toString(di.caller)))
645+ then di.originCaller
646+ else di.caller
650647 if (if (if (if ((0 >= bg))
648+ then true
649+ else (0 >= dR))
651650 then true
652651 else (0 >= dS))
653652 then true
654- else (0 >= dT))
655- then true
656653 else (0 >= bf))
657654 then am("Wrong params")
658- else if ((size(dj.payments) != 1))
655+ else if ((size(di.payments) != 1))
659656 then am("1 payment expected")
660657 else {
661- let dl = value(dj.payments[0])
662- let bH = toBase58String(value(dl.assetId))
663- let dX = dl.amount
664- let dY = dq(dX)
665- let cp = dY._1
666- let dZ = dY._2
667- if (if (if ((dS > cp))
658+ let dk = value(di.payments[0])
659+ let bH = toBase58String(value(dk.assetId))
660+ let dW = dk.amount
661+ let dX = dp(dW)
662+ let cp = dX._1
663+ let dY = dX._2
664+ if (if (if ((dR > cp))
668665 then true
669- else (dT > cp))
666+ else (dS > cp))
670667 then true
671668 else (10000000 > cp))
672669 then am("wrong payment amount")
673670 else {
674671 let bT = aY(bL)
675672 let bV = aY(bM)
676- let ea = if ((bH == bL))
677- then $Tuple6((bT - cp), bV, (cp - dS), dT, 0, 0)
673+ let dZ = if ((bH == bL))
674+ then $Tuple6((bT - cp), bV, (cp - dR), dS, 0, 0)
678675 else if ((bH == bM))
679- then $Tuple6(bT, (bV - cp), 0, 0, (cp - dT), dS)
676+ then $Tuple6(bT, (bV - cp), 0, 0, (cp - dS), dR)
680677 else am("wrong paymentAssetId")
681- let eb = ea._1
682- let ec = ea._2
683- let ed = ea._3
684- let ee = ea._4
685- let ef = ea._5
686- let eg = ea._6
687- let bl = invoke(dU, "calcD", [toString(eb), toString(ec), aA, h, i], nil)
688- let bk = invoke(dU, "calcD", [toString(toBigInt(((eb + ed) - eg))), toString(toBigInt(((ec + ef) - ee))), aA, h, i], nil)
689- let eh = bj(parseBigIntValue(as(bk)), parseBigIntValue(as(bl)), g)
690- if ((eh == eh))
678+ let ea = dZ._1
679+ let eb = dZ._2
680+ let ec = dZ._3
681+ let ed = dZ._4
682+ let ee = dZ._5
683+ let ef = dZ._6
684+ let bl = invoke(dT, "calcD", [toString(ea), toString(eb), aA, h, i], nil)
685+ let bk = invoke(dT, "calcD", [toString(toBigInt(((ea + ec) - ef))), toString(toBigInt(((eb + ee) - ed))), aA, h, i], nil)
686+ let eg = bj(parseBigIntValue(as(bk)), parseBigIntValue(as(bl)), g)
687+ if ((eg == eg))
691688 then {
692- let dL = dm(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(fromBase58String(bL), dS), AttachedPayment(fromBase58String(bM), dT), bg, true, true, cp, bH)
693- let be = dL._2
694- let bK = dL._7
695- let cf = dL._9
696- let cP = dL._10
697- let cQ = dL._11
698- let ei = bd(toBigInt(be), toBigInt(bf), toBigInt(bg))
699- let cO = toInt(ei._2)
700- let ej = invoke(az, "emit", [cO], nil)
701- if ((ej == ej))
689+ let dK = dl(toString(di.caller), toBase58String(di.transactionId), AttachedPayment(fromBase58String(bL), dR), AttachedPayment(fromBase58String(bM), dS), bg, true, true, cp, bH)
690+ let be = dK._2
691+ let bK = dK._7
692+ let cf = dK._9
693+ let cO = dK._10
694+ let cP = dK._11
695+ let eh = bd(toBigInt(be), toBigInt(bf), toBigInt(bg))
696+ let cN = toInt(eh._2)
697+ let ei = invoke(az, "emit", [cN], nil)
698+ if ((ei == ei))
702699 then {
703- let dM = {
704- let at = ej
700+ let dL = {
701+ let at = ei
705702 if ($isInstanceOf(at, "Address"))
706703 then {
707- let dN = at
708- invoke(dN, "emit", [cO], nil)
704+ let dM = at
705+ invoke(dM, "emit", [cN], nil)
709706 }
710707 else unit
711708 }
712- if ((dM == dM))
709+ if ((dL == dL))
713710 then {
714- let dO = if ((cP > 0))
715- then invoke(dI, "put", nil, [AttachedPayment(fromBase58String(bL), cP)])
711+ let dN = if ((cO > 0))
712+ then invoke(dH, "put", nil, [AttachedPayment(fromBase58String(bL), cO)])
716713 else nil
717- if ((dO == dO))
714+ if ((dN == dN))
718715 then {
719- let dP = if ((cQ > 0))
720- then invoke(dI, "put", nil, [AttachedPayment(fromBase58String(bM), cQ)])
716+ let dO = if ((cP > 0))
717+ then invoke(dH, "put", nil, [AttachedPayment(fromBase58String(bM), cP)])
721718 else nil
722- if ((dP == dP))
719+ if ((dO == dO))
723720 then {
724- let dQ = if (dF)
721+ let dP = if (dE)
725722 then {
726- let dR = invoke(dH, "stake", nil, [AttachedPayment(bK, cO)])
727- if ((dR == dR))
723+ let dQ = invoke(dG, "stake", nil, [AttachedPayment(bK, cN)])
724+ if ((dQ == dQ))
728725 then nil
729726 else throw("Strict value is not equal to itself.")
730727 }
731- else [ScriptTransfer(dj.caller, cO, bK)]
732- let ek = if ((dZ > 0))
733- then [ScriptTransfer(aD, dZ, fromBase58String(bH))]
728+ else [ScriptTransfer(di.caller, cN, bK)]
729+ let ej = if ((dY > 0))
730+ then [ScriptTransfer(aD, dY, fromBase58String(bH))]
734731 else nil
735- ((cf ++ dQ) ++ ek)
732+ ((cf ++ dP) ++ ej)
736733 }
737734 else throw("Strict value is not equal to itself.")
738735 }
749746
750747
751748
752-@Callable(dj)
753-func putForFree (el) = if ((0 > el))
749+@Callable(di)
750+func putForFree (ek) = if ((0 > ek))
754751 then am("wrong slippage")
755- else if ((size(dj.payments) != 2))
752+ else if ((size(di.payments) != 2))
756753 then am("2 payments expected")
757754 else {
758- let dL = dm(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(value(dj.payments[0]).assetId, value(dj.payments[0]).amount), dj.payments[1], el, false, false, 0, "")
759- dL._9
755+ let dK = dl(toString(di.caller), toBase58String(di.transactionId), AttachedPayment(value(di.payments[0]).assetId, value(di.payments[0]).amount), di.payments[1], ek, false, false, 0, "")
756+ dK._9
760757 }
761758
762759
763760
764-@Callable(dj)
761+@Callable(di)
765762 func get () = {
766- let cy = di(dj)
767- let em = cy._1
763+ let cy = dh(di)
764+ let el = cy._1
768765 let ce = cy._2
769766 let cp = cy._3
770767 let bH = cy._4
771768 let cf = cy._5
772- let en = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
773- if ((en == en))
769+ let em = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
770+ if ((em == em))
774771 then cf
775772 else throw("Strict value is not equal to itself.")
776773 }
777774
778775
779776
780-@Callable(dj)
781-func getOneTkn (eo,ep,eq,er,bg) = if ((size(dj.payments) != 1))
777+@Callable(di)
778+func getOneTkn (en,eo,ep,eq,bg) = if ((size(di.payments) != 1))
782779 then am("1 payment expected")
783780 else {
784781 let bw = aE()
788785 let bN = parseIntValue(bw[u])
789786 let bO = parseIntValue(bw[v])
790787 let bP = bw[q]
791- let dG = aI()
792- let dU = valueOrErrorMessage(addressFromString(dG[A]), "Wrong gwxRewardContract address")
793- let dl = value(dj.payments[0])
794- let dW = valueOrElse(getString(this, ab()), "")
795- let bJ = if ((dW == toString(dj.caller)))
796- then dj.originCaller
797- else dj.caller
798- let bG = toBase58String(dj.transactionId)
799- let bH = value(dl.assetId)
800- let cp = dl.amount
788+ let dF = aI()
789+ let dT = valueOrErrorMessage(addressFromString(dF[A]), "Wrong gwxRewardContract address")
790+ let dk = value(di.payments[0])
791+ let dV = valueOrElse(getString(this, ab()), "")
792+ let bJ = if ((dV == toString(di.caller)))
793+ then di.originCaller
794+ else di.caller
795+ let bG = toBase58String(di.transactionId)
796+ let bH = value(dk.assetId)
797+ let cp = dk.amount
801798 if ((1000000000 > cp))
802799 then am("Min payment 10 LP")
803800 else if (if (if ((0 > bg))
804801 then true
805- else (0 > eo))
802+ else (0 > en))
806803 then true
807- else (0 > eq))
804+ else (0 > ep))
808805 then am("Wrong params")
809806 else if ((bK != toBase58String(bH)))
810807 then am("Wrong LP")
811808 else {
812- let cy = bF(toBase58String(dj.transactionId), toBase58String(bH), cp, dj.caller)
813- let es = cy._1
814- let et = cy._2
809+ let cy = bF(toBase58String(di.transactionId), toBase58String(bH), cp, di.caller)
810+ let er = cy._1
811+ let es = cy._2
815812 let bT = aY(bL)
816813 let bV = aY(bM)
817- let eu = if ((er == bL))
818- then $Tuple7((bT - es), (bV - et), eo, et, 0, 0, (es + eo))
819- else if ((er == bM))
820- then $Tuple7((bT - es), (bV - et), 0, 0, eo, es, (et + eo))
814+ let et = if ((eq == bL))
815+ then $Tuple7((bT - er), (bV - es), en, es, 0, 0, (er + en))
816+ else if ((eq == bM))
817+ then $Tuple7((bT - er), (bV - es), 0, 0, en, er, (es + en))
821818 else am("wrong outAssetId")
822- let eb = eu._1
823- let ec = eu._2
824- let ed = eu._3
825- let ee = eu._4
826- let ef = eu._5
827- let eg = eu._6
828- let ev = eu._7
829- if (if ((0 > ed))
819+ let ea = et._1
820+ let eb = et._2
821+ let ec = et._3
822+ let ed = et._4
823+ let ee = et._5
824+ let ef = et._6
825+ let eu = et._7
826+ if (if ((0 > ec))
830827 then true
831- else (0 > ef))
828+ else (0 > ee))
832829 then am("Wrong calc")
833830 else {
834- let bl = invoke(dU, "calcD", [toString(eb), toString(ec), aA, h, i], nil)
835- let bk = invoke(dU, "calcD", [toString(((eb - ed) + eg)), toString(((ec + ee) - ef)), aA, h, i], nil)
836- let eh = bj(parseBigIntValue(as(bk)), parseBigIntValue(as(bl)), g)
837- if ((eh == eh))
831+ let bl = invoke(dT, "calcD", [toString(ea), toString(eb), aA, h, i], nil)
832+ let bk = invoke(dT, "calcD", [toString(((ea - ec) + ef)), toString(((eb + ed) - ee)), aA, h, i], nil)
833+ let eg = bj(parseBigIntValue(as(bk)), parseBigIntValue(as(bl)), g)
834+ if ((eg == eg))
838835 then {
839- let ew = bd(toBigInt(ev), toBigInt(eq), toBigInt(bg))
840- if ((ew == ew))
836+ let ev = bd(toBigInt(eu), toBigInt(ep), toBigInt(bg))
837+ if ((ev == ev))
841838 then {
842- let ex = if ((er == bL))
843- then $Tuple2(toInt(ew._2), 0)
844- else $Tuple2(0, toInt(ew._2))
845- let ey = ex._1
846- let ez = ex._2
847- let eA = (ey + ez)
848- let eB = dq(eA)
849- let eC = eB._1
850- let dZ = eB._2
851- let eD = if ((er == "WAVES"))
839+ let ew = if ((eq == bL))
840+ then $Tuple2(toInt(ev._2), 0)
841+ else $Tuple2(0, toInt(ev._2))
842+ let ex = ew._1
843+ let ey = ew._2
844+ let ez = (ex + ey)
845+ let eA = dp(ez)
846+ let eB = eA._1
847+ let dY = eA._2
848+ let eC = if ((eq == "WAVES"))
852849 then unit
853- else fromBase58String(er)
854- let ek = if ((dZ > 0))
855- then [ScriptTransfer(aD, dZ, eD)]
850+ else fromBase58String(eq)
851+ let ej = if ((dY > 0))
852+ then [ScriptTransfer(aD, dY, eC)]
856853 else nil
857854 let bS = if ((bN >= bO))
858855 then bN
859856 else bO
860857 if ((bS == bS))
861858 then {
862- let eE = ba(C(bV, bS), C(bT, bS))
863- let eF = F(eE, a)
864- let cf = [ScriptTransfer(bJ, eC, eD), StringEntry(X(toString(bJ), bG), aU(ey, ez, cp, eF, height, lastBlock.timestamp)), IntegerEntry(Q(), eF), IntegerEntry(R(height, lastBlock.timestamp), eF)]
859+ let eD = ba(C(bV, bS), C(bT, bS))
860+ let eE = F(eD, a)
861+ let cf = [ScriptTransfer(bJ, eB, eC), StringEntry(X(toString(bJ), bG), aU(ex, ey, cp, eE, height, lastBlock.timestamp)), IntegerEntry(Q(), eE), IntegerEntry(R(height, lastBlock.timestamp), eE)]
865862 if ((cf == cf))
866863 then {
867- let eG = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
868- if ((eG == eG))
869- then (cf ++ ek)
864+ let eF = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
865+ if ((eF == eF))
866+ then (cf ++ ej)
870867 else throw("Strict value is not equal to itself.")
871868 }
872869 else throw("Strict value is not equal to itself.")
882879
883880
884881
885-@Callable(dj)
886-func getNoLess (eH,eI) = {
887- let cy = di(dj)
882+@Callable(di)
883+func getNoLess (eG,eH) = {
884+ let cy = dh(di)
888885 let cd = cy._1
889886 let ce = cy._2
890887 let cp = cy._3
891888 let bH = cy._4
892889 let cf = cy._5
893- let eJ = if ((cd >= eH))
890+ let eI = if ((cd >= eG))
894891 then true
895- else am(((("Failed: " + toString(cd)) + " < ") + toString(eH)))
896- if ((eJ == eJ))
892+ else am(((("Failed: " + toString(cd)) + " < ") + toString(eG)))
893+ if ((eI == eI))
897894 then {
898- let eK = if ((ce >= eI))
895+ let eJ = if ((ce >= eH))
899896 then true
900- else am(((("Failed: " + toString(ce)) + " < ") + toString(eI)))
901- if ((eK == eK))
897+ else am(((("Failed: " + toString(ce)) + " < ") + toString(eH)))
898+ if ((eJ == eJ))
902899 then {
903- let eL = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
904- if ((eL == eL))
900+ let eK = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
901+ if ((eK == eK))
905902 then cf
906903 else throw("Strict value is not equal to itself.")
907904 }
912909
913910
914911
915-@Callable(dj)
916-func unstakeAndGet (dr) = {
917- let dk = if ((size(dj.payments) != 0))
912+@Callable(di)
913+func unstakeAndGet (dq) = {
914+ let dj = if ((size(di.payments) != 0))
918915 then am("no payments expected")
919916 else true
920- if ((dk == dk))
917+ if ((dj == dj))
921918 then {
922919 let bw = aE()
923- let eM = aI()
920+ let eL = aI()
924921 let bK = fromBase58String(bw[r])
925- let eN = valueOrErrorMessage(addressFromString(eM[y]), "wrong")
926- let eO = invoke(eN, "unstake", [toBase58String(bK), dr], nil)
927- if ((eO == eO))
922+ let eM = valueOrErrorMessage(addressFromString(eL[y]), "wrong")
923+ let eN = invoke(eM, "unstake", [toBase58String(bK), dq], nil)
924+ if ((eN == eN))
928925 then {
929- let cy = bF(toBase58String(dj.transactionId), toBase58String(bK), dr, dj.caller)
926+ let cy = bF(toBase58String(di.transactionId), toBase58String(bK), dq, di.caller)
930927 let bP = parseIntValue(cy._9)
931928 let cf = cy._10
932- let eP = if (if (aB())
929+ let eO = if (if (aB())
933930 then true
934931 else (bP == o))
935932 then am(("Blocked: " + toString(bP)))
936933 else true
937- if ((eP == eP))
934+ if ((eO == eO))
938935 then {
939- let eQ = invoke(az, "burn", [dr], [AttachedPayment(bK, dr)])
940- if ((eQ == eQ))
936+ let eP = invoke(az, "burn", [dq], [AttachedPayment(bK, dq)])
937+ if ((eP == eP))
941938 then cf
942939 else throw("Strict value is not equal to itself.")
943940 }
950947
951948
952949
953-@Callable(dj)
954-func activate (eR,eS) = if ((toString(dj.caller) != toString(az)))
950+@Callable(di)
951+func activate (eQ,eR) = if ((toString(di.caller) != toString(az)))
955952 then am("denied")
956- else $Tuple2([StringEntry(Y(), eR), StringEntry(Z(), eS)], "success")
953+ else $Tuple2([StringEntry(Y(), eQ), StringEntry(Z(), eR)], "success")
957954
958955
959956
960-@Callable(dj)
961-func setS (eT,eP) = if ((toString(dj.caller) != av(this, ab())))
962- then dw
963- else [StringEntry(eT, eP)]
957+@Callable(di)
958+func setS (eS,eO) = if ((toString(di.caller) != av(this, ab())))
959+ then dv
960+ else [StringEntry(eS, eO)]
964961
965962
966963
967-@Callable(dj)
968-func setI (eT,eP) = if ((toString(dj.caller) != av(this, ab())))
969- then dw
970- else [IntegerEntry(eT, eP)]
964+@Callable(di)
965+func setI (eS,eO) = if ((toString(di.caller) != av(this, ab())))
966+ then dv
967+ else [IntegerEntry(eS, eO)]
971968
972969
973970
974-@Callable(dj)
971+@Callable(di)
975972 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aE())
976973
977974
978975
979-@Callable(dj)
976+@Callable(di)
980977 func getAccBalanceWrapperREADONLY (aZ) = $Tuple2(nil, aY(aZ))
981978
982979
983980
984-@Callable(dj)
981+@Callable(di)
985982 func calcPricesWrapperREADONLY (bq,br,bv) = {
986- let eU = bu(bq, br, bv)
987- $Tuple2(nil, [toString(eU[0]), toString(eU[1]), toString(eU[2])])
983+ let eT = bu(bq, br, bv)
984+ $Tuple2(nil, [toString(eT[0]), toString(eT[1]), toString(eT[2])])
988985 }
989986
990987
991988
992-@Callable(dj)
993-func fromX18WrapperREADONLY (G,eV) = $Tuple2(nil, F(parseBigIntValue(G), eV))
989+@Callable(di)
990+func fromX18WrapperREADONLY (G,eU) = $Tuple2(nil, F(parseBigIntValue(G), eU))
994991
995992
996993
997-@Callable(dj)
994+@Callable(di)
998995 func toX18WrapperREADONLY (D,E) = $Tuple2(nil, toString(C(D, E)))
999996
1000997
1001998
1002-@Callable(dj)
999+@Callable(di)
10031000 func calcPriceBigIntWrapperREADONLY (bb,bc) = $Tuple2(nil, toString(ba(parseBigIntValue(bb), parseBigIntValue(bc))))
10041001
10051002
10061003
1007-@Callable(dj)
1008-func estimatePutOperationWrapperREADONLY (bG,bg,ci,eW,ck,eX,eY,cm,cn) = $Tuple2(nil, cg(bG, bg, ci, eW, ck, eX, eY, cm, cn, false, 0, ""))
1004+@Callable(di)
1005+func estimatePutOperationWrapperREADONLY (bG,bg,ci,eV,ck,eW,eX,cm,cn) = $Tuple2(nil, cg(bG, bg, ci, eV, ck, eW, eX, cm, cn, false, 0, ""))
10091006
10101007
10111008
1012-@Callable(dj)
1013-func estimateGetOperationWrapperREADONLY (bG,eZ,bI,eY) = {
1014- let cy = bF(bG, eZ, bI, addressFromStringValue(eY))
1009+@Callable(di)
1010+func estimateGetOperationWrapperREADONLY (bG,eY,bI,eX) = {
1011+ let cy = bF(bG, eY, bI, addressFromStringValue(eX))
10151012 $Tuple2(nil, $Tuple10(cy._1, cy._2, cy._3, cy._4, cy._5, cy._6, cy._7, toString(cy._8), cy._9, cy._10))
10161013 }
10171014
10181015
1019-@Verifier(fa)
1020-func fb () = {
1021- let at = fa
1016+@Verifier(eZ)
1017+func fa () = {
1018+ let at = eZ
10221019 if ($isInstanceOf(at, "Order"))
10231020 then {
1024- let cW = at
1025- let fc = aC()
1026- let ap = cV(cW)
1027- let fd = sigVerify(cW.bodyBytes, cW.proofs[0], cW.senderPublicKey)
1028- let fe = sigVerify(cW.bodyBytes, cW.proofs[1], fc)
1021+ let cV = at
1022+ let fb = aC()
1023+ let ap = cU(cV)
1024+ let fc = sigVerify(cV.bodyBytes, cV.proofs[0], cV.senderPublicKey)
1025+ let fd = sigVerify(cV.bodyBytes, cV.proofs[1], fb)
10291026 if (if (if (ap)
1027+ then fc
1028+ else false)
10301029 then fd
10311030 else false)
1032- then fe
1033- else false)
10341031 then true
1035- else ao(ap, fd, fe)
1032+ else ao(ap, fc, fd)
10361033 }
10371034 else {
1038- let ff = {
1039- let fg = dt()
1040- if ($isInstanceOf(fg, "ByteVector"))
1035+ let fe = {
1036+ let ff = ds()
1037+ if ($isInstanceOf(ff, "ByteVector"))
10411038 then {
1042- let dy = fg
1043- dy
1039+ let dx = ff
1040+ dx
10441041 }
1045- else if ($isInstanceOf(fg, "Unit"))
1046- then fa.senderPublicKey
1042+ else if ($isInstanceOf(ff, "Unit"))
1043+ then eZ.senderPublicKey
10471044 else throw("Match error")
10481045 }
1049- sigVerify(fa.bodyBytes, fa.proofs[0], ff)
1046+ sigVerify(eZ.bodyBytes, eZ.proofs[0], fe)
10501047 }
10511048 }
10521049
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = toBigInt(100000000)
77
88 let c = toBigInt(1000000000000000000)
99
1010 let d = 1000
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(1)
1515
1616 let g = toBigInt((a - ((a * 1) / a)))
1717
1818 let h = "100"
1919
2020 let i = "1"
2121
2222 let j = "__"
2323
2424 let k = ""
2525
2626 let l = 1
2727
2828 let m = 2
2929
3030 let n = 3
3131
3232 let o = 4
3333
3434 let p = 1
3535
3636 let q = 2
3737
3838 let r = 3
3939
4040 let s = 4
4141
4242 let t = 5
4343
4444 let u = 6
4545
4646 let v = 7
4747
4848 let w = 8
4949
5050 let x = 9
5151
5252 let y = 1
5353
5454 let z = 7
5555
5656 let A = 10
5757
5858 let B = 0
5959
6060 func C (D,E) = fraction(toBigInt(D), c, toBigInt(E))
6161
6262
6363 func F (G,H) = toInt(fraction(G, toBigInt(H), c))
6464
6565
6666 func I (J,K,L) = fraction(J, K, L)
6767
6868
6969 func M (G) = if ((e > G))
7070 then -(G)
7171 else G
7272
7373
7474 func N () = "%s__factoryContract"
7575
7676
7777 func O () = "%s__managerPublicKey"
7878
7979
8080 func P () = "%s__pendingManagerPublicKey"
8181
8282
8383 func Q () = "%s%s__price__last"
8484
8585
8686 func R (S,T) = makeString(["%s%s%d%d__price__history", toString(S), toString(T)], j)
8787
8888
8989 func U (V,W) = ((("%s%s%s__P__" + V) + "__") + W)
9090
9191
9292 func X (V,W) = ((("%s%s%s__G__" + V) + "__") + W)
9393
9494
9595 func Y () = "%s__amountAsset"
9696
9797
9898 func Z () = "%s__priceAsset"
9999
100100
101101 func aa () = "%s__amp"
102102
103103
104104 func ab () = "%s__addonAddr"
105105
106106
107107 let ac = "%s__feePermille"
108108
109109 let ad = valueOrElse(getInteger(this, ac), B)
110110
111111 func ae () = "%s__factoryConfig"
112112
113113
114114 func af () = "%s%s__matcher__publicKey"
115115
116116
117117 func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
118118
119119
120120 func aj (ak) = ("%s%s%s__mappings__baseAsset2internalId__" + ak)
121121
122122
123123 func al () = "%s__shutdown"
124124
125125
126126 func am (an) = throw(makeString(["lp_stable.ride:", an], " "))
127127
128128
129129 func ao (ap,aq,ar) = am(((((("Failed: ordValid=" + toString(ap)) + " sndrValid=") + toString(aq)) + " mtchrValid=") + toString(ar)))
130130
131131
132132 func as (G) = {
133133 let at = G
134134 if ($isInstanceOf(at, "String"))
135135 then {
136136 let au = at
137137 au
138138 }
139139 else am("fail cast to String")
140140 }
141141
142142
143143 func av (aw,ax) = valueOrErrorMessage(getString(aw, ax), makeString(["mandatory ", toString(aw), ".", ax, " not defined"], ""))
144144
145145
146146 func ay (aw,ax) = valueOrErrorMessage(getInteger(aw, ax), makeString(["mandatory ", toString(aw), ".", ax, " not defined"], ""))
147147
148148
149149 let az = addressFromStringValue(av(this, N()))
150150
151151 let aA = av(this, aa())
152152
153153 func aB () = valueOrElse(getBoolean(az, al()), false)
154154
155155
156156 func aC () = fromBase58String(av(az, af()))
157157
158158
159159 let aD = addressFromPublicKey(aC())
160160
161161 func aE () = {
162162 let aF = av(this, Y())
163163 let aG = av(this, Z())
164164 let aH = ay(az, aj(aG))
165165 let ah = ay(az, aj(aF))
166166 split(av(az, ag(toString(ah), toString(aH))), j)
167167 }
168168
169169
170170 func aI () = split(av(az, ae()), j)
171171
172172
173173 func aJ (aK,aL,aM,aN,aO,aP,aQ,aR,aS,aT) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aK), toString(aL), toString(aM), toString(aN), toString(aO), toString(aP), toString(aQ), toString(aR), toString(aS), toString(aT)], j)
174174
175175
176176 func aU (aV,aW,aX,aN,aQ,aR) = makeString(["%d%d%d%d%d%d", toString(aV), toString(aW), toString(aX), toString(aN), toString(aQ), toString(aR)], j)
177177
178178
179179 func aY (aZ) = if ((aZ == "WAVES"))
180180 then wavesBalance(this).available
181181 else assetBalance(this, fromBase58String(aZ))
182182
183183
184184 func ba (bb,bc) = fraction(bb, c, bc)
185185
186186
187187 func bd (be,bf,bg) = {
188188 let bh = fraction((be - bf), b, bf)
189189 let bi = ((bg - M(bh)) > e)
190190 if (!(bi))
191191 then am(("Big slippage: " + toString(bh)))
192192 else $Tuple2(bi, min([be, bf]))
193193 }
194194
195195
196196 func bj (bk,bl,bg) = {
197197 let bh = fraction(bl, b, bk)
198198 let bm = (bg > bh)
199199 if (if (bm)
200200 then true
201201 else (bl > bk))
202202 then am(((((((toString(bl) + " ") + toString(bk)) + " ") + toString(bh)) + " ") + toString(bg)))
203203 else bm
204204 }
205205
206206
207207 func bn (bo,bp,bq,br) = {
208208 let bs = C(bq, bo)
209209 let bt = C(br, bp)
210210 ba(bt, bs)
211211 }
212212
213213
214214 func bu (bq,br,bv) = {
215215 let bw = aE()
216216 let bx = parseIntValue(bw[u])
217217 let by = parseIntValue(bw[v])
218218 let bz = bn(bx, by, bq, br)
219219 let bc = C(bq, bx)
220220 let bb = C(br, by)
221221 let bA = C(bv, a)
222222 let bB = ba(bc, bA)
223223 let bC = ba(bb, bA)
224224 [bz, bB, bC]
225225 }
226226
227227
228228 func bD (bq,br,bv) = {
229229 let bE = bu(bq, br, bv)
230230 [F(bE[0], a), F(bE[1], a), F(bE[2], a)]
231231 }
232232
233233
234234 func bF (bG,bH,bI,bJ) = {
235235 let bw = aE()
236236 let bK = bw[r]
237237 let bL = bw[s]
238238 let bM = bw[t]
239239 let bN = parseIntValue(bw[u])
240240 let bO = parseIntValue(bw[v])
241241 let bP = bw[q]
242242 let bQ = valueOrErrorMessage(assetInfo(fromBase58String(bK)), "Wrong LP id").quantity
243243 let bR = if ((bK == bH))
244244 then true
245245 else am("Wrong payment asset")
246246 if ((bR == bR))
247247 then {
248248 let bS = if ((bN >= bO))
249249 then bN
250250 else bO
251251 if ((bS == bS))
252252 then {
253253 let bT = aY(bL)
254254 let bU = C(bT, bS)
255255 let bV = aY(bM)
256256 let bW = C(bV, bS)
257257 let bX = ba(bW, bU)
258258 let bY = F(bX, a)
259259 let bZ = C(bI, a)
260260 let ca = C(bQ, a)
261261 let cb = fraction(bU, bZ, ca)
262262 let cc = fraction(bW, bZ, ca)
263263 let cd = F(cb, bS)
264264 let ce = F(cc, bS)
265265 let cf = if ((bG == ""))
266266 then nil
267267 else [ScriptTransfer(bJ, cd, if ((bL == "WAVES"))
268268 then unit
269269 else fromBase58String(bL)), ScriptTransfer(bJ, ce, if ((bM == "WAVES"))
270270 then unit
271271 else fromBase58String(bM)), StringEntry(X(toString(bJ), bG), aU(cd, ce, bI, bY, height, lastBlock.timestamp)), IntegerEntry(Q(), bY), IntegerEntry(R(height, lastBlock.timestamp), bY)]
272272 $Tuple10(cd, ce, bL, bM, bT, bV, bQ, bX, bP, cf)
273273 }
274274 else throw("Strict value is not equal to itself.")
275275 }
276276 else throw("Strict value is not equal to itself.")
277277 }
278278
279279
280280 func cg (bG,ch,ci,cj,ck,cl,bJ,cm,cn,co,cp,cq) = {
281281 let bw = aE()
282282 let bK = fromBase58String(bw[r])
283283 let cr = bw[s]
284284 let cs = bw[t]
285285 let ct = bw[w]
286286 let cu = bw[x]
287287 let bN = parseIntValue(bw[u])
288288 let bO = parseIntValue(bw[v])
289289 let bP = bw[q]
290290 let bQ = valueOrErrorMessage(assetInfo(bK), "Wrong lp asset").quantity
291291 let bT = if (cm)
292292 then aY(cr)
293293 else if (if (co)
294294 then (cq == cr)
295295 else false)
296296 then (aY(cr) - cp)
297297 else if (co)
298298 then aY(cr)
299299 else (aY(cr) - ci)
300300 let bV = if (cm)
301301 then aY(cs)
302302 else if (if (co)
303303 then (cq == cs)
304304 else false)
305305 then (aY(cs) - cp)
306306 else if (co)
307307 then aY(cs)
308308 else (aY(cs) - ck)
309309 let bS = if ((bN >= bO))
310310 then bN
311311 else bO
312312 if ((bS == bS))
313313 then {
314314 let cv = C(ci, bS)
315315 let cw = C(ck, bS)
316316 let cx = ba(cw, cv)
317317 let bU = C(bT, bS)
318318 let bW = C(bV, bS)
319319 let cy = if ((bQ == 0))
320320 then {
321321 let bX = e
322322 let cz = e
323323 let cA = pow((cv * cw), 0, toBigInt(5), 1, 0, DOWN)
324324 $Tuple5(F(cA, a), F(cv, bS), F(cw, bS), ba((bW + cw), (bU + cv)), cz)
325325 }
326326 else {
327327 let bX = ba(bW, bU)
328328 let cB = fraction(M((bX - cx)), c, bX)
329329 let cz = C(ch, a)
330- let cC = if (((if ((bX != e))
330+ if (if ((bX != e))
331331 then (cB > cz)
332- else false) == true))
333- then true
334- else am(((("Price slippage " + toString(cB)) + " > ") + toString(cz)))
335- if ((cC == cC))
336- then {
332+ else false)
333+ then am(((("Price slippage " + toString(cB)) + " > ") + toString(cz)))
334+ else {
337335 let ca = C(bQ, a)
338- let cD = fraction(cv, bX, c)
339- let cE = fraction(cw, c, bX)
340- let cF = if ((cD > cw))
341- then $Tuple2(cE, cv)
342- else $Tuple2(cv, cD)
343- let cG = cF._1
344- let cH = cF._2
345- let cA = fraction(ca, cH, bW)
346- $Tuple5(F(cA, a), F(cG, bS), F(cH, bS), bX, cz)
336+ let cC = fraction(cv, bX, c)
337+ let cD = fraction(cw, c, bX)
338+ let cE = if ((cC > cw))
339+ then $Tuple2(cD, cv)
340+ else $Tuple2(cv, cC)
341+ let cF = cE._1
342+ let cG = cE._2
343+ let cA = fraction(ca, cG, bW)
344+ $Tuple5(F(cA, a), F(cF, bS), F(cG, bS), bX, cz)
347345 }
348- else throw("Strict value is not equal to itself.")
349346 }
350- let cI = cy._1
351- let cJ = cy._2
352- let cK = cy._3
353- let cL = F(cy._4, a)
354- let cM = F(cy._5, a)
355- let cN = if ((cI > 0))
347+ let cH = cy._1
348+ let cI = cy._2
349+ let cJ = cy._3
350+ let cK = F(cy._4, a)
351+ let cL = F(cy._5, a)
352+ let cM = if ((cH > 0))
356353 then true
357354 else am("LP <= 0")
358- if ((cN == cN))
355+ if ((cM == cM))
359356 then {
360- let cO = if (!(cn))
357+ let cN = if (!(cn))
361358 then 0
362- else cI
363- let cP = (ci - cJ)
364- let cQ = (ck - cK)
365- let cR = if (if (co)
359+ else cH
360+ let cO = (ci - cI)
361+ let cP = (ck - cJ)
362+ let cQ = if (if (co)
366363 then (cq == cr)
367364 else false)
368365 then $Tuple2(cp, 0)
369366 else if (if (co)
370367 then (cq == cs)
371368 else false)
372369 then $Tuple2(0, cp)
373- else $Tuple2(cJ, cK)
374- let cS = cR._1
375- let cT = cR._2
376- let cU = [IntegerEntry(Q(), cL), IntegerEntry(R(height, lastBlock.timestamp), cL), StringEntry(U(bJ, bG), aJ(cS, cT, cO, cL, ch, cM, height, lastBlock.timestamp, cP, cQ))]
377- $Tuple13(cI, cO, cL, bT, bV, bQ, bK, bP, cU, cP, cQ, cj, cl)
370+ else $Tuple2(cI, cJ)
371+ let cR = cQ._1
372+ let cS = cQ._2
373+ let cT = [IntegerEntry(Q(), cK), IntegerEntry(R(height, lastBlock.timestamp), cK), StringEntry(U(bJ, bG), aJ(cR, cS, cN, cK, ch, cL, height, lastBlock.timestamp, cO, cP))]
374+ $Tuple13(cH, cN, cK, bT, bV, bQ, bK, bP, cT, cO, cP, cj, cl)
378375 }
379376 else throw("Strict value is not equal to itself.")
380377 }
381378 else throw("Strict value is not equal to itself.")
382379 }
383380
384381
385-func cV (cW) = {
382+func cU (cV) = {
386383 let bw = aE()
387- let cX = bw[s]
388- let cY = bw[t]
384+ let cW = bw[s]
385+ let cX = bw[t]
389386 let bP = parseIntValue(bw[q])
390387 let bx = parseIntValue(bw[u])
391388 let by = parseIntValue(bw[v])
389+ let cY = aY(cW)
392390 let cZ = aY(cX)
393- let da = aY(cY)
394- let bX = if ((cW.orderType == Buy))
395- then bn(bx, by, (cZ + cW.amount), da)
396- else bn(bx, by, (cZ - cW.amount), da)
391+ let bX = if ((cV.orderType == Buy))
392+ then bn(bx, by, (cY + cV.amount), cZ)
393+ else bn(bx, by, (cY - cV.amount), cZ)
397394 let bY = F(bX, a)
398395 if (if (if (aB())
399396 then true
400397 else (bP == n))
401398 then true
402399 else (bP == o))
403400 then am("Admin blocked")
404401 else {
405- let db = cW.assetPair.amountAsset
406- let dc = if ((db == unit))
402+ let da = cV.assetPair.amountAsset
403+ let db = if ((da == unit))
407404 then "WAVES"
408- else toBase58String(value(db))
409- let dd = cW.assetPair.priceAsset
410- let de = if ((dd == unit))
405+ else toBase58String(value(da))
406+ let dc = cV.assetPair.priceAsset
407+ let dd = if ((dc == unit))
411408 then "WAVES"
412- else toBase58String(value(dd))
413- if (if ((dc != cX))
409+ else toBase58String(value(dc))
410+ if (if ((db != cW))
414411 then true
415- else (de != cY))
412+ else (dd != cX))
416413 then am("Wr assets")
417414 else {
418- let df = cW.price
415+ let de = cV.price
419416 let bO = fraction(a, by, bx)
420- let dg = I(df, a, bO)
421- let dh = if ((cW.orderType == Buy))
422- then (bY >= dg)
423- else (dg >= bY)
417+ let df = I(de, a, bO)
418+ let dg = if ((cV.orderType == Buy))
419+ then (bY >= df)
420+ else (df >= bY)
424421 true
425422 }
426423 }
427424 }
428425
429426
430-func di (dj) = {
431- let dk = if ((size(dj.payments) == 1))
427+func dh (di) = {
428+ let dj = if ((size(di.payments) == 1))
432429 then true
433430 else am("1 payment expected")
434- if ((dk == dk))
431+ if ((dj == dj))
435432 then {
436- let dl = value(dj.payments[0])
437- let bH = value(dl.assetId)
438- let cp = dl.amount
439- let cy = bF(toBase58String(dj.transactionId), toBase58String(bH), cp, dj.caller)
433+ let dk = value(di.payments[0])
434+ let bH = value(dk.assetId)
435+ let cp = dk.amount
436+ let cy = bF(toBase58String(di.transactionId), toBase58String(bH), cp, di.caller)
440437 let cd = cy._1
441438 let ce = cy._2
442439 let bP = parseIntValue(cy._9)
443440 let cf = cy._10
444441 if (if (aB())
445442 then true
446443 else (bP == o))
447444 then am(("Admin blocked: " + toString(bP)))
448445 else $Tuple5(cd, ce, cp, bH, cf)
449446 }
450447 else throw("Strict value is not equal to itself.")
451448 }
452449
453450
454-func dm (dn,W,do,dp,bg,cn,co,cp,cq) = {
455- let cy = cg(W, bg, value(do).amount, value(do).assetId, value(dp).amount, value(dp).assetId, dn, false, cn, co, cp, cq)
451+func dl (dm,W,dn,do,bg,cn,co,cp,cq) = {
452+ let cy = cg(W, bg, value(dn).amount, value(dn).assetId, value(do).amount, value(do).assetId, dm, false, cn, co, cp, cq)
456453 let bP = parseIntValue(cy._8)
457454 if (if (if (aB())
458455 then true
459456 else (bP == m))
460457 then true
461458 else (bP == o))
462459 then am(("Blocked:" + toString(bP)))
463460 else cy
464461 }
465462
466463
467-func dq (dr) = {
468- let ds = fraction(dr, ad, d)
469- $Tuple2((dr - ds), ds)
464+func dp (dq) = {
465+ let dr = fraction(dq, ad, d)
466+ $Tuple2((dq - dr), dr)
470467 }
471468
472469
473-func dt () = {
470+func ds () = {
474471 let at = getString(O())
475472 if ($isInstanceOf(at, "String"))
476473 then {
477- let du = at
478- fromBase58String(du)
474+ let dt = at
475+ fromBase58String(dt)
479476 }
480477 else if ($isInstanceOf(at, "Unit"))
481478 then unit
482479 else throw("Match error")
483480 }
484481
485482
486-func dv () = {
483+func du () = {
487484 let at = getString(P())
488485 if ($isInstanceOf(at, "String"))
489486 then {
490- let du = at
491- fromBase58String(du)
487+ let dt = at
488+ fromBase58String(dt)
492489 }
493490 else if ($isInstanceOf(at, "Unit"))
494491 then unit
495492 else throw("Match error")
496493 }
497494
498495
499-let dw = am("Permission denied")
496+let dv = am("Permission denied")
500497
501-func dx (dj) = {
502- let at = dt()
498+func dw (di) = {
499+ let at = ds()
503500 if ($isInstanceOf(at, "ByteVector"))
504501 then {
505- let dy = at
506- if ((dj.callerPublicKey == dy))
502+ let dx = at
503+ if ((di.callerPublicKey == dx))
507504 then true
508- else dw
505+ else dv
509506 }
510507 else if ($isInstanceOf(at, "Unit"))
511- then if ((dj.caller == this))
508+ then if ((di.caller == this))
512509 then true
513- else dw
510+ else dv
514511 else throw("Match error")
515512 }
516513
517514
518-@Callable(dj)
515+@Callable(di)
519516 func constructor (az) = {
520- let dz = dx(dj)
521- if ((dz == dz))
517+ let dy = dw(di)
518+ if ((dy == dy))
522519 then [StringEntry(N(), az)]
523520 else throw("Strict value is not equal to itself.")
524521 }
525522
526523
527524
528-@Callable(dj)
529-func setManager (dA) = {
530- let dz = dx(dj)
531- if ((dz == dz))
525+@Callable(di)
526+func setManager (dz) = {
527+ let dy = dw(di)
528+ if ((dy == dy))
532529 then {
533- let dB = fromBase58String(dA)
534- if ((dB == dB))
535- then [StringEntry(P(), dA)]
530+ let dA = fromBase58String(dz)
531+ if ((dA == dA))
532+ then [StringEntry(P(), dz)]
536533 else throw("Strict value is not equal to itself.")
537534 }
538535 else throw("Strict value is not equal to itself.")
539536 }
540537
541538
542539
543-@Callable(dj)
540+@Callable(di)
544541 func confirmManager () = {
545- let dC = dv()
546- let dD = if (isDefined(dC))
542+ let dB = du()
543+ let dC = if (isDefined(dB))
547544 then true
548545 else am("No pending manager")
549- if ((dD == dD))
546+ if ((dC == dC))
550547 then {
551- let dE = if ((dj.callerPublicKey == value(dC)))
548+ let dD = if ((di.callerPublicKey == value(dB)))
552549 then true
553550 else am("You are not pending manager")
554- if ((dE == dE))
555- then [StringEntry(O(), toBase58String(value(dC))), DeleteEntry(P())]
551+ if ((dD == dD))
552+ then [StringEntry(O(), toBase58String(value(dB))), DeleteEntry(P())]
556553 else throw("Strict value is not equal to itself.")
557554 }
558555 else throw("Strict value is not equal to itself.")
559556 }
560557
561558
562559
563-@Callable(dj)
564-func put (bg,dF) = {
565- let dG = aI()
566- let dH = valueOrErrorMessage(addressFromString(dG[y]), "Wrong staking contract")
567- let dI = valueOrErrorMessage(addressFromString(dG[z]), "Wrogn slippage contract")
568- let dJ = if ((bg >= 0))
560+@Callable(di)
561+func put (bg,dE) = {
562+ let dF = aI()
563+ let dG = valueOrErrorMessage(addressFromString(dF[y]), "Wrong staking contract")
564+ let dH = valueOrErrorMessage(addressFromString(dF[z]), "Wrogn slippage contract")
565+ let dI = if ((bg >= 0))
569566 then true
570567 else am("wrong slippage")
571- if ((dJ == dJ))
568+ if ((dI == dI))
572569 then {
573- let dK = if ((size(dj.payments) == 2))
570+ let dJ = if ((size(di.payments) == 2))
574571 then true
575572 else am("2 payments expected")
576- if ((dK == dK))
573+ if ((dJ == dJ))
577574 then {
578- let dL = dm(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(value(dj.payments[0]).assetId, value(dj.payments[0]).amount), dj.payments[1], bg, true, false, 0, "")
579- let cO = dL._2
580- let bK = dL._7
581- let cf = dL._9
582- let cP = dL._10
583- let cQ = dL._11
584- let bL = dL._12
585- let bM = dL._13
586- let cy = invoke(az, "emit", [cO], nil)
575+ let dK = dl(toString(di.caller), toBase58String(di.transactionId), AttachedPayment(value(di.payments[0]).assetId, value(di.payments[0]).amount), di.payments[1], bg, true, false, 0, "")
576+ let cN = dK._2
577+ let bK = dK._7
578+ let cf = dK._9
579+ let cO = dK._10
580+ let cP = dK._11
581+ let bL = dK._12
582+ let bM = dK._13
583+ let cy = invoke(az, "emit", [cN], nil)
587584 if ((cy == cy))
588585 then {
589- let dM = {
586+ let dL = {
590587 let at = cy
591588 if ($isInstanceOf(at, "Address"))
592589 then {
593- let dN = at
594- invoke(dN, "emit", [cO], nil)
590+ let dM = at
591+ invoke(dM, "emit", [cN], nil)
595592 }
596593 else unit
597594 }
598- if ((dM == dM))
595+ if ((dL == dL))
599596 then {
600- let dO = if ((cP > 0))
601- then invoke(dI, "put", nil, [AttachedPayment(bL, cP)])
597+ let dN = if ((cO > 0))
598+ then invoke(dH, "put", nil, [AttachedPayment(bL, cO)])
602599 else nil
603- if ((dO == dO))
600+ if ((dN == dN))
604601 then {
605- let dP = if ((cQ > 0))
606- then invoke(dI, "put", nil, [AttachedPayment(bM, cQ)])
602+ let dO = if ((cP > 0))
603+ then invoke(dH, "put", nil, [AttachedPayment(bM, cP)])
607604 else nil
608- if ((dP == dP))
605+ if ((dO == dO))
609606 then {
610- let dQ = if (dF)
607+ let dP = if (dE)
611608 then {
612- let dR = invoke(dH, "stake", nil, [AttachedPayment(bK, cO)])
613- if ((dR == dR))
609+ let dQ = invoke(dG, "stake", nil, [AttachedPayment(bK, cN)])
610+ if ((dQ == dQ))
614611 then nil
615612 else throw("Strict value is not equal to itself.")
616613 }
617- else [ScriptTransfer(dj.caller, cO, bK)]
618- (cf ++ dQ)
614+ else [ScriptTransfer(di.caller, cN, bK)]
615+ (cf ++ dP)
619616 }
620617 else throw("Strict value is not equal to itself.")
621618 }
622619 else throw("Strict value is not equal to itself.")
623620 }
624621 else throw("Strict value is not equal to itself.")
625622 }
626623 else throw("Strict value is not equal to itself.")
627624 }
628625 else throw("Strict value is not equal to itself.")
629626 }
630627 else throw("Strict value is not equal to itself.")
631628 }
632629
633630
634631
635-@Callable(dj)
636-func putOneTkn (dS,dT,bf,bg,dF) = {
632+@Callable(di)
633+func putOneTkn (dR,dS,bf,bg,dE) = {
637634 let bw = aI()
638- let dH = valueOrErrorMessage(addressFromString(bw[y]), "Wrong staking contract")
639- let dI = valueOrErrorMessage(addressFromString(bw[z]), "Wrong slippage contract")
640- let dU = valueOrErrorMessage(addressFromString(bw[A]), "Wrong gwx reward contract")
641- let dV = aE()
642- let bL = dV[s]
643- let bM = dV[t]
644- let bN = parseIntValue(dV[u])
645- let bO = parseIntValue(dV[v])
646- let dW = valueOrElse(getString(this, ab()), "")
647- let bJ = if ((dW == toString(dj.caller)))
648- then dj.originCaller
649- else dj.caller
635+ let dG = valueOrErrorMessage(addressFromString(bw[y]), "Wrong staking contract")
636+ let dH = valueOrErrorMessage(addressFromString(bw[z]), "Wrong slippage contract")
637+ let dT = valueOrErrorMessage(addressFromString(bw[A]), "Wrong gwx reward contract")
638+ let dU = aE()
639+ let bL = dU[s]
640+ let bM = dU[t]
641+ let bN = parseIntValue(dU[u])
642+ let bO = parseIntValue(dU[v])
643+ let dV = valueOrElse(getString(this, ab()), "")
644+ let bJ = if ((dV == toString(di.caller)))
645+ then di.originCaller
646+ else di.caller
650647 if (if (if (if ((0 >= bg))
648+ then true
649+ else (0 >= dR))
651650 then true
652651 else (0 >= dS))
653652 then true
654- else (0 >= dT))
655- then true
656653 else (0 >= bf))
657654 then am("Wrong params")
658- else if ((size(dj.payments) != 1))
655+ else if ((size(di.payments) != 1))
659656 then am("1 payment expected")
660657 else {
661- let dl = value(dj.payments[0])
662- let bH = toBase58String(value(dl.assetId))
663- let dX = dl.amount
664- let dY = dq(dX)
665- let cp = dY._1
666- let dZ = dY._2
667- if (if (if ((dS > cp))
658+ let dk = value(di.payments[0])
659+ let bH = toBase58String(value(dk.assetId))
660+ let dW = dk.amount
661+ let dX = dp(dW)
662+ let cp = dX._1
663+ let dY = dX._2
664+ if (if (if ((dR > cp))
668665 then true
669- else (dT > cp))
666+ else (dS > cp))
670667 then true
671668 else (10000000 > cp))
672669 then am("wrong payment amount")
673670 else {
674671 let bT = aY(bL)
675672 let bV = aY(bM)
676- let ea = if ((bH == bL))
677- then $Tuple6((bT - cp), bV, (cp - dS), dT, 0, 0)
673+ let dZ = if ((bH == bL))
674+ then $Tuple6((bT - cp), bV, (cp - dR), dS, 0, 0)
678675 else if ((bH == bM))
679- then $Tuple6(bT, (bV - cp), 0, 0, (cp - dT), dS)
676+ then $Tuple6(bT, (bV - cp), 0, 0, (cp - dS), dR)
680677 else am("wrong paymentAssetId")
681- let eb = ea._1
682- let ec = ea._2
683- let ed = ea._3
684- let ee = ea._4
685- let ef = ea._5
686- let eg = ea._6
687- let bl = invoke(dU, "calcD", [toString(eb), toString(ec), aA, h, i], nil)
688- let bk = invoke(dU, "calcD", [toString(toBigInt(((eb + ed) - eg))), toString(toBigInt(((ec + ef) - ee))), aA, h, i], nil)
689- let eh = bj(parseBigIntValue(as(bk)), parseBigIntValue(as(bl)), g)
690- if ((eh == eh))
678+ let ea = dZ._1
679+ let eb = dZ._2
680+ let ec = dZ._3
681+ let ed = dZ._4
682+ let ee = dZ._5
683+ let ef = dZ._6
684+ let bl = invoke(dT, "calcD", [toString(ea), toString(eb), aA, h, i], nil)
685+ let bk = invoke(dT, "calcD", [toString(toBigInt(((ea + ec) - ef))), toString(toBigInt(((eb + ee) - ed))), aA, h, i], nil)
686+ let eg = bj(parseBigIntValue(as(bk)), parseBigIntValue(as(bl)), g)
687+ if ((eg == eg))
691688 then {
692- let dL = dm(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(fromBase58String(bL), dS), AttachedPayment(fromBase58String(bM), dT), bg, true, true, cp, bH)
693- let be = dL._2
694- let bK = dL._7
695- let cf = dL._9
696- let cP = dL._10
697- let cQ = dL._11
698- let ei = bd(toBigInt(be), toBigInt(bf), toBigInt(bg))
699- let cO = toInt(ei._2)
700- let ej = invoke(az, "emit", [cO], nil)
701- if ((ej == ej))
689+ let dK = dl(toString(di.caller), toBase58String(di.transactionId), AttachedPayment(fromBase58String(bL), dR), AttachedPayment(fromBase58String(bM), dS), bg, true, true, cp, bH)
690+ let be = dK._2
691+ let bK = dK._7
692+ let cf = dK._9
693+ let cO = dK._10
694+ let cP = dK._11
695+ let eh = bd(toBigInt(be), toBigInt(bf), toBigInt(bg))
696+ let cN = toInt(eh._2)
697+ let ei = invoke(az, "emit", [cN], nil)
698+ if ((ei == ei))
702699 then {
703- let dM = {
704- let at = ej
700+ let dL = {
701+ let at = ei
705702 if ($isInstanceOf(at, "Address"))
706703 then {
707- let dN = at
708- invoke(dN, "emit", [cO], nil)
704+ let dM = at
705+ invoke(dM, "emit", [cN], nil)
709706 }
710707 else unit
711708 }
712- if ((dM == dM))
709+ if ((dL == dL))
713710 then {
714- let dO = if ((cP > 0))
715- then invoke(dI, "put", nil, [AttachedPayment(fromBase58String(bL), cP)])
711+ let dN = if ((cO > 0))
712+ then invoke(dH, "put", nil, [AttachedPayment(fromBase58String(bL), cO)])
716713 else nil
717- if ((dO == dO))
714+ if ((dN == dN))
718715 then {
719- let dP = if ((cQ > 0))
720- then invoke(dI, "put", nil, [AttachedPayment(fromBase58String(bM), cQ)])
716+ let dO = if ((cP > 0))
717+ then invoke(dH, "put", nil, [AttachedPayment(fromBase58String(bM), cP)])
721718 else nil
722- if ((dP == dP))
719+ if ((dO == dO))
723720 then {
724- let dQ = if (dF)
721+ let dP = if (dE)
725722 then {
726- let dR = invoke(dH, "stake", nil, [AttachedPayment(bK, cO)])
727- if ((dR == dR))
723+ let dQ = invoke(dG, "stake", nil, [AttachedPayment(bK, cN)])
724+ if ((dQ == dQ))
728725 then nil
729726 else throw("Strict value is not equal to itself.")
730727 }
731- else [ScriptTransfer(dj.caller, cO, bK)]
732- let ek = if ((dZ > 0))
733- then [ScriptTransfer(aD, dZ, fromBase58String(bH))]
728+ else [ScriptTransfer(di.caller, cN, bK)]
729+ let ej = if ((dY > 0))
730+ then [ScriptTransfer(aD, dY, fromBase58String(bH))]
734731 else nil
735- ((cf ++ dQ) ++ ek)
732+ ((cf ++ dP) ++ ej)
736733 }
737734 else throw("Strict value is not equal to itself.")
738735 }
739736 else throw("Strict value is not equal to itself.")
740737 }
741738 else throw("Strict value is not equal to itself.")
742739 }
743740 else throw("Strict value is not equal to itself.")
744741 }
745742 else throw("Strict value is not equal to itself.")
746743 }
747744 }
748745 }
749746
750747
751748
752-@Callable(dj)
753-func putForFree (el) = if ((0 > el))
749+@Callable(di)
750+func putForFree (ek) = if ((0 > ek))
754751 then am("wrong slippage")
755- else if ((size(dj.payments) != 2))
752+ else if ((size(di.payments) != 2))
756753 then am("2 payments expected")
757754 else {
758- let dL = dm(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(value(dj.payments[0]).assetId, value(dj.payments[0]).amount), dj.payments[1], el, false, false, 0, "")
759- dL._9
755+ let dK = dl(toString(di.caller), toBase58String(di.transactionId), AttachedPayment(value(di.payments[0]).assetId, value(di.payments[0]).amount), di.payments[1], ek, false, false, 0, "")
756+ dK._9
760757 }
761758
762759
763760
764-@Callable(dj)
761+@Callable(di)
765762 func get () = {
766- let cy = di(dj)
767- let em = cy._1
763+ let cy = dh(di)
764+ let el = cy._1
768765 let ce = cy._2
769766 let cp = cy._3
770767 let bH = cy._4
771768 let cf = cy._5
772- let en = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
773- if ((en == en))
769+ let em = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
770+ if ((em == em))
774771 then cf
775772 else throw("Strict value is not equal to itself.")
776773 }
777774
778775
779776
780-@Callable(dj)
781-func getOneTkn (eo,ep,eq,er,bg) = if ((size(dj.payments) != 1))
777+@Callable(di)
778+func getOneTkn (en,eo,ep,eq,bg) = if ((size(di.payments) != 1))
782779 then am("1 payment expected")
783780 else {
784781 let bw = aE()
785782 let bK = bw[r]
786783 let bL = bw[s]
787784 let bM = bw[t]
788785 let bN = parseIntValue(bw[u])
789786 let bO = parseIntValue(bw[v])
790787 let bP = bw[q]
791- let dG = aI()
792- let dU = valueOrErrorMessage(addressFromString(dG[A]), "Wrong gwxRewardContract address")
793- let dl = value(dj.payments[0])
794- let dW = valueOrElse(getString(this, ab()), "")
795- let bJ = if ((dW == toString(dj.caller)))
796- then dj.originCaller
797- else dj.caller
798- let bG = toBase58String(dj.transactionId)
799- let bH = value(dl.assetId)
800- let cp = dl.amount
788+ let dF = aI()
789+ let dT = valueOrErrorMessage(addressFromString(dF[A]), "Wrong gwxRewardContract address")
790+ let dk = value(di.payments[0])
791+ let dV = valueOrElse(getString(this, ab()), "")
792+ let bJ = if ((dV == toString(di.caller)))
793+ then di.originCaller
794+ else di.caller
795+ let bG = toBase58String(di.transactionId)
796+ let bH = value(dk.assetId)
797+ let cp = dk.amount
801798 if ((1000000000 > cp))
802799 then am("Min payment 10 LP")
803800 else if (if (if ((0 > bg))
804801 then true
805- else (0 > eo))
802+ else (0 > en))
806803 then true
807- else (0 > eq))
804+ else (0 > ep))
808805 then am("Wrong params")
809806 else if ((bK != toBase58String(bH)))
810807 then am("Wrong LP")
811808 else {
812- let cy = bF(toBase58String(dj.transactionId), toBase58String(bH), cp, dj.caller)
813- let es = cy._1
814- let et = cy._2
809+ let cy = bF(toBase58String(di.transactionId), toBase58String(bH), cp, di.caller)
810+ let er = cy._1
811+ let es = cy._2
815812 let bT = aY(bL)
816813 let bV = aY(bM)
817- let eu = if ((er == bL))
818- then $Tuple7((bT - es), (bV - et), eo, et, 0, 0, (es + eo))
819- else if ((er == bM))
820- then $Tuple7((bT - es), (bV - et), 0, 0, eo, es, (et + eo))
814+ let et = if ((eq == bL))
815+ then $Tuple7((bT - er), (bV - es), en, es, 0, 0, (er + en))
816+ else if ((eq == bM))
817+ then $Tuple7((bT - er), (bV - es), 0, 0, en, er, (es + en))
821818 else am("wrong outAssetId")
822- let eb = eu._1
823- let ec = eu._2
824- let ed = eu._3
825- let ee = eu._4
826- let ef = eu._5
827- let eg = eu._6
828- let ev = eu._7
829- if (if ((0 > ed))
819+ let ea = et._1
820+ let eb = et._2
821+ let ec = et._3
822+ let ed = et._4
823+ let ee = et._5
824+ let ef = et._6
825+ let eu = et._7
826+ if (if ((0 > ec))
830827 then true
831- else (0 > ef))
828+ else (0 > ee))
832829 then am("Wrong calc")
833830 else {
834- let bl = invoke(dU, "calcD", [toString(eb), toString(ec), aA, h, i], nil)
835- let bk = invoke(dU, "calcD", [toString(((eb - ed) + eg)), toString(((ec + ee) - ef)), aA, h, i], nil)
836- let eh = bj(parseBigIntValue(as(bk)), parseBigIntValue(as(bl)), g)
837- if ((eh == eh))
831+ let bl = invoke(dT, "calcD", [toString(ea), toString(eb), aA, h, i], nil)
832+ let bk = invoke(dT, "calcD", [toString(((ea - ec) + ef)), toString(((eb + ed) - ee)), aA, h, i], nil)
833+ let eg = bj(parseBigIntValue(as(bk)), parseBigIntValue(as(bl)), g)
834+ if ((eg == eg))
838835 then {
839- let ew = bd(toBigInt(ev), toBigInt(eq), toBigInt(bg))
840- if ((ew == ew))
836+ let ev = bd(toBigInt(eu), toBigInt(ep), toBigInt(bg))
837+ if ((ev == ev))
841838 then {
842- let ex = if ((er == bL))
843- then $Tuple2(toInt(ew._2), 0)
844- else $Tuple2(0, toInt(ew._2))
845- let ey = ex._1
846- let ez = ex._2
847- let eA = (ey + ez)
848- let eB = dq(eA)
849- let eC = eB._1
850- let dZ = eB._2
851- let eD = if ((er == "WAVES"))
839+ let ew = if ((eq == bL))
840+ then $Tuple2(toInt(ev._2), 0)
841+ else $Tuple2(0, toInt(ev._2))
842+ let ex = ew._1
843+ let ey = ew._2
844+ let ez = (ex + ey)
845+ let eA = dp(ez)
846+ let eB = eA._1
847+ let dY = eA._2
848+ let eC = if ((eq == "WAVES"))
852849 then unit
853- else fromBase58String(er)
854- let ek = if ((dZ > 0))
855- then [ScriptTransfer(aD, dZ, eD)]
850+ else fromBase58String(eq)
851+ let ej = if ((dY > 0))
852+ then [ScriptTransfer(aD, dY, eC)]
856853 else nil
857854 let bS = if ((bN >= bO))
858855 then bN
859856 else bO
860857 if ((bS == bS))
861858 then {
862- let eE = ba(C(bV, bS), C(bT, bS))
863- let eF = F(eE, a)
864- let cf = [ScriptTransfer(bJ, eC, eD), StringEntry(X(toString(bJ), bG), aU(ey, ez, cp, eF, height, lastBlock.timestamp)), IntegerEntry(Q(), eF), IntegerEntry(R(height, lastBlock.timestamp), eF)]
859+ let eD = ba(C(bV, bS), C(bT, bS))
860+ let eE = F(eD, a)
861+ let cf = [ScriptTransfer(bJ, eB, eC), StringEntry(X(toString(bJ), bG), aU(ex, ey, cp, eE, height, lastBlock.timestamp)), IntegerEntry(Q(), eE), IntegerEntry(R(height, lastBlock.timestamp), eE)]
865862 if ((cf == cf))
866863 then {
867- let eG = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
868- if ((eG == eG))
869- then (cf ++ ek)
864+ let eF = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
865+ if ((eF == eF))
866+ then (cf ++ ej)
870867 else throw("Strict value is not equal to itself.")
871868 }
872869 else throw("Strict value is not equal to itself.")
873870 }
874871 else throw("Strict value is not equal to itself.")
875872 }
876873 else throw("Strict value is not equal to itself.")
877874 }
878875 else throw("Strict value is not equal to itself.")
879876 }
880877 }
881878 }
882879
883880
884881
885-@Callable(dj)
886-func getNoLess (eH,eI) = {
887- let cy = di(dj)
882+@Callable(di)
883+func getNoLess (eG,eH) = {
884+ let cy = dh(di)
888885 let cd = cy._1
889886 let ce = cy._2
890887 let cp = cy._3
891888 let bH = cy._4
892889 let cf = cy._5
893- let eJ = if ((cd >= eH))
890+ let eI = if ((cd >= eG))
894891 then true
895- else am(((("Failed: " + toString(cd)) + " < ") + toString(eH)))
896- if ((eJ == eJ))
892+ else am(((("Failed: " + toString(cd)) + " < ") + toString(eG)))
893+ if ((eI == eI))
897894 then {
898- let eK = if ((ce >= eI))
895+ let eJ = if ((ce >= eH))
899896 then true
900- else am(((("Failed: " + toString(ce)) + " < ") + toString(eI)))
901- if ((eK == eK))
897+ else am(((("Failed: " + toString(ce)) + " < ") + toString(eH)))
898+ if ((eJ == eJ))
902899 then {
903- let eL = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
904- if ((eL == eL))
900+ let eK = invoke(az, "burn", [cp], [AttachedPayment(bH, cp)])
901+ if ((eK == eK))
905902 then cf
906903 else throw("Strict value is not equal to itself.")
907904 }
908905 else throw("Strict value is not equal to itself.")
909906 }
910907 else throw("Strict value is not equal to itself.")
911908 }
912909
913910
914911
915-@Callable(dj)
916-func unstakeAndGet (dr) = {
917- let dk = if ((size(dj.payments) != 0))
912+@Callable(di)
913+func unstakeAndGet (dq) = {
914+ let dj = if ((size(di.payments) != 0))
918915 then am("no payments expected")
919916 else true
920- if ((dk == dk))
917+ if ((dj == dj))
921918 then {
922919 let bw = aE()
923- let eM = aI()
920+ let eL = aI()
924921 let bK = fromBase58String(bw[r])
925- let eN = valueOrErrorMessage(addressFromString(eM[y]), "wrong")
926- let eO = invoke(eN, "unstake", [toBase58String(bK), dr], nil)
927- if ((eO == eO))
922+ let eM = valueOrErrorMessage(addressFromString(eL[y]), "wrong")
923+ let eN = invoke(eM, "unstake", [toBase58String(bK), dq], nil)
924+ if ((eN == eN))
928925 then {
929- let cy = bF(toBase58String(dj.transactionId), toBase58String(bK), dr, dj.caller)
926+ let cy = bF(toBase58String(di.transactionId), toBase58String(bK), dq, di.caller)
930927 let bP = parseIntValue(cy._9)
931928 let cf = cy._10
932- let eP = if (if (aB())
929+ let eO = if (if (aB())
933930 then true
934931 else (bP == o))
935932 then am(("Blocked: " + toString(bP)))
936933 else true
937- if ((eP == eP))
934+ if ((eO == eO))
938935 then {
939- let eQ = invoke(az, "burn", [dr], [AttachedPayment(bK, dr)])
940- if ((eQ == eQ))
936+ let eP = invoke(az, "burn", [dq], [AttachedPayment(bK, dq)])
937+ if ((eP == eP))
941938 then cf
942939 else throw("Strict value is not equal to itself.")
943940 }
944941 else throw("Strict value is not equal to itself.")
945942 }
946943 else throw("Strict value is not equal to itself.")
947944 }
948945 else throw("Strict value is not equal to itself.")
949946 }
950947
951948
952949
953-@Callable(dj)
954-func activate (eR,eS) = if ((toString(dj.caller) != toString(az)))
950+@Callable(di)
951+func activate (eQ,eR) = if ((toString(di.caller) != toString(az)))
955952 then am("denied")
956- else $Tuple2([StringEntry(Y(), eR), StringEntry(Z(), eS)], "success")
953+ else $Tuple2([StringEntry(Y(), eQ), StringEntry(Z(), eR)], "success")
957954
958955
959956
960-@Callable(dj)
961-func setS (eT,eP) = if ((toString(dj.caller) != av(this, ab())))
962- then dw
963- else [StringEntry(eT, eP)]
957+@Callable(di)
958+func setS (eS,eO) = if ((toString(di.caller) != av(this, ab())))
959+ then dv
960+ else [StringEntry(eS, eO)]
964961
965962
966963
967-@Callable(dj)
968-func setI (eT,eP) = if ((toString(dj.caller) != av(this, ab())))
969- then dw
970- else [IntegerEntry(eT, eP)]
964+@Callable(di)
965+func setI (eS,eO) = if ((toString(di.caller) != av(this, ab())))
966+ then dv
967+ else [IntegerEntry(eS, eO)]
971968
972969
973970
974-@Callable(dj)
971+@Callable(di)
975972 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aE())
976973
977974
978975
979-@Callable(dj)
976+@Callable(di)
980977 func getAccBalanceWrapperREADONLY (aZ) = $Tuple2(nil, aY(aZ))
981978
982979
983980
984-@Callable(dj)
981+@Callable(di)
985982 func calcPricesWrapperREADONLY (bq,br,bv) = {
986- let eU = bu(bq, br, bv)
987- $Tuple2(nil, [toString(eU[0]), toString(eU[1]), toString(eU[2])])
983+ let eT = bu(bq, br, bv)
984+ $Tuple2(nil, [toString(eT[0]), toString(eT[1]), toString(eT[2])])
988985 }
989986
990987
991988
992-@Callable(dj)
993-func fromX18WrapperREADONLY (G,eV) = $Tuple2(nil, F(parseBigIntValue(G), eV))
989+@Callable(di)
990+func fromX18WrapperREADONLY (G,eU) = $Tuple2(nil, F(parseBigIntValue(G), eU))
994991
995992
996993
997-@Callable(dj)
994+@Callable(di)
998995 func toX18WrapperREADONLY (D,E) = $Tuple2(nil, toString(C(D, E)))
999996
1000997
1001998
1002-@Callable(dj)
999+@Callable(di)
10031000 func calcPriceBigIntWrapperREADONLY (bb,bc) = $Tuple2(nil, toString(ba(parseBigIntValue(bb), parseBigIntValue(bc))))
10041001
10051002
10061003
1007-@Callable(dj)
1008-func estimatePutOperationWrapperREADONLY (bG,bg,ci,eW,ck,eX,eY,cm,cn) = $Tuple2(nil, cg(bG, bg, ci, eW, ck, eX, eY, cm, cn, false, 0, ""))
1004+@Callable(di)
1005+func estimatePutOperationWrapperREADONLY (bG,bg,ci,eV,ck,eW,eX,cm,cn) = $Tuple2(nil, cg(bG, bg, ci, eV, ck, eW, eX, cm, cn, false, 0, ""))
10091006
10101007
10111008
1012-@Callable(dj)
1013-func estimateGetOperationWrapperREADONLY (bG,eZ,bI,eY) = {
1014- let cy = bF(bG, eZ, bI, addressFromStringValue(eY))
1009+@Callable(di)
1010+func estimateGetOperationWrapperREADONLY (bG,eY,bI,eX) = {
1011+ let cy = bF(bG, eY, bI, addressFromStringValue(eX))
10151012 $Tuple2(nil, $Tuple10(cy._1, cy._2, cy._3, cy._4, cy._5, cy._6, cy._7, toString(cy._8), cy._9, cy._10))
10161013 }
10171014
10181015
1019-@Verifier(fa)
1020-func fb () = {
1021- let at = fa
1016+@Verifier(eZ)
1017+func fa () = {
1018+ let at = eZ
10221019 if ($isInstanceOf(at, "Order"))
10231020 then {
1024- let cW = at
1025- let fc = aC()
1026- let ap = cV(cW)
1027- let fd = sigVerify(cW.bodyBytes, cW.proofs[0], cW.senderPublicKey)
1028- let fe = sigVerify(cW.bodyBytes, cW.proofs[1], fc)
1021+ let cV = at
1022+ let fb = aC()
1023+ let ap = cU(cV)
1024+ let fc = sigVerify(cV.bodyBytes, cV.proofs[0], cV.senderPublicKey)
1025+ let fd = sigVerify(cV.bodyBytes, cV.proofs[1], fb)
10291026 if (if (if (ap)
1027+ then fc
1028+ else false)
10301029 then fd
10311030 else false)
1032- then fe
1033- else false)
10341031 then true
1035- else ao(ap, fd, fe)
1032+ else ao(ap, fc, fd)
10361033 }
10371034 else {
1038- let ff = {
1039- let fg = dt()
1040- if ($isInstanceOf(fg, "ByteVector"))
1035+ let fe = {
1036+ let ff = ds()
1037+ if ($isInstanceOf(ff, "ByteVector"))
10411038 then {
1042- let dy = fg
1043- dy
1039+ let dx = ff
1040+ dx
10441041 }
1045- else if ($isInstanceOf(fg, "Unit"))
1046- then fa.senderPublicKey
1042+ else if ($isInstanceOf(ff, "Unit"))
1043+ then eZ.senderPublicKey
10471044 else throw("Match error")
10481045 }
1049- sigVerify(fa.bodyBytes, fa.proofs[0], ff)
1046+ sigVerify(eZ.bodyBytes, eZ.proofs[0], fe)
10501047 }
10511048 }
10521049

github/deemru/w8io/c3f4982 
278.45 ms