tx · CZ6xPKfUb2nZeWhsX5ShxUaUcJG4U1M3t4PnvD18bJRd

3PCBL2vbjAVFbiCwmGsPmT6QdATutQnM8ov:  -0.01700000 Waves

2024.03.15 12:02 [4084761] smart account 3PCBL2vbjAVFbiCwmGsPmT6QdATutQnM8ov > SELF 0.00000000 Waves

{ "type": 13, "id": "CZ6xPKfUb2nZeWhsX5ShxUaUcJG4U1M3t4PnvD18bJRd", "fee": 1700000, "feeAssetId": null, "timestamp": 1710493377482, "version": 2, "chainId": 87, "sender": "3PCBL2vbjAVFbiCwmGsPmT6QdATutQnM8ov", "senderPublicKey": "5BKRz3VCmywzUUoj3kTwCzrCiP8waYbkaymD8B1kdRH2", "proofs": [ "2ePP9WKq1EZAde9BWfCQ1LTzA8nDBdsN3V9N9o3iStAhPEgE2ykt3guUTvWNjFyXgd1d6uSpX7VAbnNp97N4u2ww" ], "script": "base64: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CAIJAQhfbG9hZEludAICDVRBUkdFVF9IRUlHSFQAAAkAzAgCBQZoZWlnaHQFA25pbAAPbGFzdFJhdGVVcGRhdGVkCQC3AgIFCGxhc3RSYXRlCQC5AgIFC2N1cnJlbnRSYXRlCQC2AgEJAGUCBQx0YXJnZXRIZWlnaHQFCmxhc3RIZWlnaHQACmJhc2VBbW91bnQJAKADAQkAvQIECQC2AgEJAPAHAgUQV1hfQlVSTlhUTl9XQVZFUwUGc3dhdmVzBQ9sYXN0UmF0ZVVwZGF0ZWQJALYCAQCAoJSljR0FBUZMT09SAAl3YXZlc0luV1gJAGQCCAkA7wcBBRBXWF9CVVJOWFROX1dBVkVTB3JlZ3VsYXIFCmJhc2VBbW91bnQAC2J1cm54dG5JbldYCQDwBwIFEFdYX0JVUk5YVE5fV0FWRVMFCWJ1cm54dG5JZAARYnVybnh0bndhdmVzcHJpY2UJAGsDBQJkOAUJd2F2ZXNJbldYBQtidXJueHRuSW5XWAAPYnVybnh0bmJhbGFuY2UyCQDwBwIJAQdBZGRyZXNzAQUFcG9vbDIFCWJ1cm54dG5JZAAKdXNkYmFsYW5jZQkAaQIJAGQCCQBkAgkAZAIJAPAHAgkBB0FkZHJlc3MBBQVwb29sMgUHdXNkdGVyYwkA8AcCCQEHQWRkcmVzcwEFBXBvb2wyBQd1c2RjZXJjCQDwBwIJAQdBZGRyZXNzAQUFcG9vbDIFB3VzZHRic2MJAPAHAgkBB0FkZHJlc3MBBQVwb29sMgUHdXNkY2JzYwAEAA9idXJueHRudXNkcHJpY2UJAGsDBQJkOAUKdXNkYmFsYW5jZQUPYnVybnh0bmJhbGFuY2UyAANBVEgDCQBmAgURYnVybnh0bndhdmVzcHJpY2UJARFAZXh0ck5hdGl2ZSgxMDU1KQECD0FUSCBpbiB3YXZlbGV0cwURYnVybnh0bndhdmVzcHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCD0FUSCBpbiB3YXZlbGV0cwAGQVRIdXNkAwkAZgIFD2J1cm54dG51c2RwcmljZQkBEUBleHRyTmF0aXZlKDEwNTUpAQIPQVRIIGluIGNlbnRsZXRzBQ9idXJueHRudXNkcHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCD0FUSCBpbiBjZW50bGV0cwALd2F2ZXNpbnBvb2wJARFAZXh0ck5hdGl2ZSgxMDUwKQIJAQdBZGRyZXNzAQUGcG9vbElkCQCsAgIJAKwCAgIHZ2xvYmFsXwkA2AQBBQd3YXZlc0lkAghfYmFsYW5jZQAMcHJvamVjdHN0YWtlCQERQGV4dHJOYXRpdmUoMTA1MCkCCQEHQWRkcmVzcwEFBnBvb2xJZAkArAICAiMzUEF1Y2JidW1kVVhtaHpjUjQyMXpHaWF5cGhFZG8ydFJvegIMX2luZGV4U3Rha2VkAAp0b3RhbHN0YWtlCQERQGV4dHJOYXRpdmUoMTA1MCkCCQEHQWRkcmVzcwEFBnBvb2xJZAIXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQACnR2bGlud2F2ZXMJAGsDCQBrAwULd2F2ZXNpbnBvb2wFDHByb2plY3RzdGFrZQUKdG90YWxzdGFrZQAJBQJkOAAHdHZscG9vbAkAawMFC3dhdmVzaW5wb29sAAkFAmQ4AAtwcmljZWdyb3d0aAkAaQIJAGUCCQBrAwUCZDgFEWJ1cm54dG53YXZlc3ByaWNlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAiFpbnRpYWwgcHJpY2UgQlVSTi1YVE4gaW4gd2F2ZWxldHMFAmQ4AMCEPQAHUExfRGVmaQkBB0FkZHJlc3MBARoBVxkLO48/zcX1AFJDuOumjMisvxQ5MT4kvgEIUExfdmFsdWUCC2RBcHBBZGRyZXNzBWFzc2V0CQBrAwkBEUBleHRyTmF0aXZlKDEwNTApAgULZEFwcEFkZHJlc3MJAKwCAgkArAICCQClCAEFBHRoaXMCCl9zdXBwbGllZF8JANgEAQUFYXNzZXQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFC2RBcHBBZGRyZXNzCQCsAgIJANgEAQUFYXNzZXQCBl9zUmF0ZQUDZDE2AQZzd2FwV1gDB2Fzc2V0SW4IYXNzZXRPdXQIYW1vdW50SW4JAPwHBAkBB0FkZHJlc3MBARoBVy4qNTWxDbfxeT7ht0bQnnRSTXsx0IOuBgIEc3dhcAkAzAgCCQBrAwUIYW1vdW50SW4ACwAKCQDMCAIJANgEAQUIYXNzZXRPdXQJAMwIAgkApQgBBQR0aGlzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB2Fzc2V0SW4FCGFtb3VudEluBQNuaWwAD1ZWWFROTFBfWFROX0FNTQkBB0FkZHJlc3MBARoBV1K6ANH7OoZtNahjr1MiXzrd2/dsTiAMWwAKWFROYmFsYW5jZQkA8AcCBQ9WVlhUTkxQX1hUTl9BTU0FBXh0bklkAA5WVlhUTkxQYmFsYW5jZQkA8AcCBQ9WVlhUTkxQX1hUTl9BTU0FB3Z2eHRubHAADFZWWFROTFBwcmljZQkAawMFClhUTmJhbGFuY2UAZAUOVlZYVE5MUGJhbGFuY2UUAWkBBVBaYmJiAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIECHN3YXBTd29wCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIJANgEAQUJYnVybnh0bklkCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZzd29wSWQJAPAHAgUEdGhpcwUGc3dvcElkBQNuaWwDCQAAAgUIc3dhcFN3b3AFCHN3YXBTd29wBANpbnYJAPwHBAkBB0FkZHJlc3MBBQZwb29sTFACFGdlbmVyYXRlV2l0aE9uZVRva2VuCQDMCAIJANgEAQUHcG9vbEJCQgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQlidXJueHRuSWQJAPAHAgUEdGhpcwUJYnVybnh0bklkBQNuaWwDCQAAAgUDaW52BQNpbnYJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleUludm9rZU5leHQAHwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCGJ1cm5TVVJGAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIECXN3YXBXaGlybAkA/AcECQEHQWRkcmVzcwEFB3Bvb2xCQkICBHN3YXAJAMwIAgkA2AQBBQlidXJueHRuSWQJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCXdoaXJscG9vbAkA8AcCBQR0aGlzBQl3aGlybHBvb2wFA25pbAMJAAACBQlzd2FwV2hpcmwFCXN3YXBXaGlybAQIc3dhcFJvbWUJAPwHBAkBB0FkZHJlc3MBBQdwb29sQkJCAgRzd2FwCQDMCAIJANgEAQUJYnVybnh0bklkCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQRyb21lCQDwBwIFBHRoaXMFBHJvbWUFA25pbAMJAAACBQhzd2FwUm9tZQUIc3dhcFJvbWUECXN3YXBXYXZlcwkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCCQDYBAEFBnN1cmZJZAkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAkBDXRyeUdldEludGVnZXICBQR0aGlzAhR3YXZlcyBhbW91bnQgdG8gc3dhcAUDbmlsAwkAAAIFCXN3YXBXYXZlcwUJc3dhcFdhdmVzBA5zdXJmQnVybkFtb3VudAkA8AcCBQR0aGlzBQZzdXJmSWQECHN1cmZCdXJuCQEEQnVybgIFBnN1cmZJZAUOc3VyZkJ1cm5BbW91bnQJAMwIAgUIc3VyZkJ1cm4JAMwIAgkBDEludGVnZXJFbnRyeQICEVNVUkYgdG90YWwgYnVybmVkCQBkAgkBDXRyeUdldEludGVnZXICBQR0aGlzAhFTVVJGIHRvdGFsIGJ1cm5lZAUOc3VyZkJ1cm5BbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleUludm9rZU5leHQAIQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDlNVUkZhbmRWVlhUTkxQAAQJc3Rha2VTdXJmCQD8BwQJAQdBZGRyZXNzAQEaAVcZCzuPP83F9QBSQ7jrpozIrL8UOTE+JL4CBnN1cHBseQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZzdXJmSWQJAPAHAgUEdGhpcwUGc3VyZklkBQNuaWwDCQAAAgUJc3Rha2VTdXJmBQlzdGFrZVN1cmYEEHN3YXBYVE50b1ZWWFROTFADCQBmAgBQBQxWVlhUTkxQcHJpY2UJAQZzd2FwV1gDBQV4dG5JZAUHdnZ4dG5scAkA8AcCBQR0aGlzBQV4dG5JZAUEdW5pdAMJAAACBRBzd2FwWFROdG9WVlhUTkxQBRBzd2FwWFROdG9WVlhUTkxQCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0ADIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQZkRW50cnkAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgkAzAgCCQEMSW50ZWdlckVudHJ5AgIiQlVSTi1YVE4gLyBXQVZFUyBwcmljZSBpbiB3YXZlbGV0cwURYnVybnh0bndhdmVzcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQICDlByaWNlIGdyb3d0aCAlBQtwcmljZWdyb3d0aAkAzAgCCQEMSW50ZWdlckVudHJ5AgIPQVRIIGluIHdhdmVsZXRzBQNBVEgJAMwIAgkBDEludGVnZXJFbnRyeQICIEJVUk4tWFROIC8gVVNEIHByaWNlIGluIGNlbnRsZXRzBQ9idXJueHRudXNkcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQICD0FUSCBpbiBjZW50bGV0cwUGQVRIdXNkCQDMCAIJAQxJbnRlZ2VyRW50cnkCAidUVkwgcHJvamVjdCBpbiBXQVZFUyBleGNsdWRpbmcgQlVSTi1YVE4FCnR2bGlud2F2ZXMJAMwIAgkBDEludGVnZXJFbnRyeQICJFRWTCBwb29sIGluIFdBVkVTIGV4Y2x1ZGluZyBCVVJOLVhUTgUHdHZscG9vbAkAzAgCCQEMSW50ZWdlckVudHJ5AgIVQWN0aXZhdGVkIGJsb2NraGVpZ2h0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQICD0JVUk4tWFROIHN1cHBseQQHJG1hdGNoMAkA7AcBBQlidXJueHRuSWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCQBpAggFBWFzc2V0CHF1YW50aXR5BQJkOAkAAgECEENhbid0IGZpbmQgYXNzZXQJAMwIAgkBDEludGVnZXJFbnRyeQICFUJVUk4tWFROIHRvdGFsIGJ1cm5lZAkAZQIAgJTr3AMEByRtYXRjaDAJAOwHAQUJYnVybnh0bklkAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAkAaQIIBQVhc3NldAhxdWFudGl0eQUCZDgJAAIBAhBDYW4ndCBmaW5kIGFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgtTVVJGIHN1cHBseQQHJG1hdGNoMAkA7AcBBQZzdXJmSWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCQBpAggFBWFzc2V0CHF1YW50aXR5BQJkNgkAAgECEENhbid0IGZpbmQgYXNzZXQJAMwIAgkBDEludGVnZXJFbnRyeQICGHRvdGFsIFNVUkYgUEwgV2F2ZXMgRGVmaQkBCFBMX3ZhbHVlAgUHUExfRGVmaQUGc3VyZklkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0AAAFA25pbAFpAQtidXJuQlVSTlhUTgADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAtidXJueHRuQnVybgkBBEJ1cm4CBQlidXJueHRuSWQJAPAHAgUEdGhpcwUJYnVybnh0bklkCQDMCAIFC2J1cm54dG5CdXJuCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0AAsFA25pbAFpAQRwdW1wAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEBXN3ZXN0CQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIFDWJ1cm54dG5TdHJpbmcJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBndlc3RJZAkA8AcCBQR0aGlzBQZ3ZXN0SWQFA25pbAMJAAACBQVzd2VzdAUFc3dlc3QEBnN2aXJlcwkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCBQ1idXJueHRuU3RyaW5nCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQd2aXJlc0lkCQDwBwIFBHRoaXMFB3ZpcmVzSWQFA25pbAMJAAACBQZzdmlyZXMFBnN2aXJlcwQEc2VnZwkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCBQ1idXJueHRuU3RyaW5nCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQVlZ2dJZAkA8AcCBQR0aGlzBQVlZ2dJZAUDbmlsAwkAAAIFBHNlZ2cFBHNlZ2cEBXNuc2J0CQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIFDWJ1cm54dG5TdHJpbmcJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBm5zYnRJZAkA8AcCBQR0aGlzBQZuc2J0SWQFA25pbAMJAAACBQVzbnNidAUFc25zYnQECXN3YXB3YXZlcwkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCBQ1idXJueHRuU3RyaW5nCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0AwkAZgIJAGUCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUCZDgAAAkAZQIICQDvBwEFBHRoaXMJYXZhaWxhYmxlBQJkOAAABQNuaWwDCQAAAgUJc3dhcHdhdmVzBQlzd2Fwd2F2ZXMJAMwIAgkBBEJ1cm4CBQlidXJueHRuSWQJAPAHAgUEdGhpcwUJYnVybnh0bklkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0AB4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ1QdW1wQnlBbnlib2R5AAMJAGYCCQBkAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIVQWN0aXZhdGVkIGJsb2NraGVpZ2h0CQBoAgAIAKALBQZoZWlnaHQJAAIBCQCsAgICFldhaXQgdGlsbCBibG9ja2hlaWdodDoJAKQDAQkAZAIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCFUFjdGl2YXRlZCBibG9ja2hlaWdodAkAaAIACACgCwQIY2xhaW1JbnYJAPwHBAkBB0FkZHJlc3MBARoBV4WdLDDV/AM+YcWt3pK/xSqR85muGkFACgIRY2xhaW1JbmRleFJld2FyZHMFA25pbAUDbmlsAwkAAAIFCGNsYWltSW52BQhjbGFpbUludgQFc3dlc3QJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgUNYnVybnh0blN0cmluZwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGd2VzdElkCQDwBwIFBHRoaXMFBndlc3RJZAUDbmlsAwkAAAIFBXN3ZXN0BQVzd2VzdAQGc3ZpcmVzCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIFDWJ1cm54dG5TdHJpbmcJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB3ZpcmVzSWQJAPAHAgUEdGhpcwUHdmlyZXNJZAUDbmlsAwkAAAIFBnN2aXJlcwUGc3ZpcmVzBARzZWdnCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIFDWJ1cm54dG5TdHJpbmcJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBWVnZ0lkCQDwBwIFBHRoaXMFBWVnZ0lkBQNuaWwDCQAAAgUEc2VnZwUEc2VnZwQFc3N1cmYJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgUNYnVybnh0blN0cmluZwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGc3VyZklkCQDwBwIFBHRoaXMFBnN1cmZJZAUDbmlsAwkAAAIFBXNzdXJmBQVzc3VyZgQFc25zYnQJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgUNYnVybnh0blN0cmluZwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGbnNidElkCQDwBwIFBHRoaXMFBm5zYnRJZAUDbmlsAwkAAAIFBXNuc2J0BQVzbnNidAQDc3d4CQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIFDWJ1cm54dG5TdHJpbmcJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHd4SWQJAPAHAgUEdGhpcwUEd3hJZAUDbmlsAwkAAAIFA3N3eAUDc3d4BAVzc3dvcAkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCBQ1idXJueHRuU3RyaW5nCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZzd29wSWQJAPAHAgUEdGhpcwUGc3dvcElkBQNuaWwDCQAAAgUFc3N3b3AFBXNzd29wBAlzd2Fwd2F2ZXMJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgUNYnVybnh0blN0cmluZwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAMJAGYCCQBlAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFAmQ4AAAJAGUCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUCZDgAAAUDbmlsAwkAAAIFCXN3YXB3YXZlcwUJc3dhcHdhdmVzBA14dG5idXJuYW1vdW50CQDwBwIFBHRoaXMFBXh0bklkBAd4dG5CdXJuCQEEQnVybgIFBXh0bklkBQ14dG5idXJuYW1vdW50BAtidXJueHRuQnVybgkBBEJ1cm4CBQlidXJueHRuSWQJAPAHAgUEdGhpcwUJYnVybnh0bklkCQDMCAIFB3h0bkJ1cm4JAMwIAgULYnVybnh0bkJ1cm4JAMwIAgkBDEludGVnZXJFbnRyeQICD0JVUk4tWFROIHN1cHBseQQHJG1hdGNoMAkA7AcBBQlidXJueHRuSWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCQBpAggFBWFzc2V0CHF1YW50aXR5BQJkOAkAAgECEENhbid0IGZpbmQgYXNzZXQJAMwIAgkBDEludGVnZXJFbnRyeQICFUJVUk4tWFROIHRvdGFsIGJ1cm5lZAkAZQIAgJTr3AMEByRtYXRjaDAJAOwHAQUJYnVybnh0bklkAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAkAaQIIBQVhc3NldAhxdWFudGl0eQUCZDgJAAIBAhBDYW4ndCBmaW5kIGFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhBYVE4gdG90YWwgYnVybmVkCQBkAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIQWFROIHRvdGFsIGJ1cm5lZAUNeHRuYnVybmFtb3VudAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCHdpdGhkcmF3AAMJAQIhPQIIBQFpBmNhbGxlcgkBB0FkZHJlc3MBARoBVxiJGyRtL+JEpbK5LtBkI1AuKd9yMNoyWQkAAgECCW5vIGFjY2VzcwQId2l0aGRyYXcJAPwHBAkBB0FkZHJlc3MBARoBV3US3ZOCD1veJXYVOctJ1R9TKAnE6HFeJwIVd2l0aGRyYXdWZXN0ZWRBbGxVU0ROCQDMCAIHCQDMCAIGBQNuaWwFA25pbAMJAAACBQh3aXRoZHJhdwUId2l0aGRyYXcFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ1pbXBvcnRWVlhUTkxQAAMJAQIhPQIIBQFpBmNhbGxlcgkBB0FkZHJlc3MBARoBVxiJGyRtL+JEpbK5LtBkI1AuKd9yMNoyWQkAAgECCW5vIGFjY2VzcwQGaW1wb3J0CQD8BwQJAQdBZGRyZXNzAQEaAVd1Et2Tgg9b3iV2FTnLSdUfUygJxOhxXicCCGltcG9ydExQBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB3Z2eHRubHAJAPAHAgUEdGhpcwUHdnZ4dG5scAUDbmlsAwkAAAIFBmltcG9ydAUGaW1wb3J0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEPYnVyblhUTmFuZENsYWltAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEBGludmMJAPwHBAkBB0FkZHJlc3MBARoBV4WdLDDV/AM+YcWt3pK/xSqR85muGkFACgIRY2xhaW1JbmRleFJld2FyZHMFA25pbAUDbmlsAwkAAAIFBGludmMFBGludmMEDXh0bmJ1cm5hbW91bnQJAPAHAgUEdGhpcwUFeHRuSWQEB3h0bkJ1cm4JAQRCdXJuAgUFeHRuSWQFDXh0bmJ1cm5hbW91bnQJAMwIAgUHeHRuQnVybgkAzAgCCQEMSW50ZWdlckVudHJ5AgIQWFROIHRvdGFsIGJ1cm5lZAkAZAIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCEFhUTiB0b3RhbCBidXJuZWQFDXh0bmJ1cm5hbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQICClhUTiBzdXBwbHkEByRtYXRjaDAJAOwHAQUFeHRuSWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCQBpAgkAZQIIBQVhc3NldAhxdWFudGl0eQkA8AcCCQEHQWRkcmVzcwEBGgFXcARipkeb6a1WaJTL74WMMIIgKJoIFJayBQV4dG5JZAUCZDYJAAIBAhBDYW4ndCBmaW5kIGFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0AwkAZwIFEWJ1cm54dG53YXZlc3ByaWNlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAg9BVEggaW4gd2F2ZWxldHMACgAUBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIY2xhaW1CQkIAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQSd2F2ZXNCYWxhbmNlQmVmb3JlCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQMJAAACBRJ3YXZlc0JhbGFuY2VCZWZvcmUFEndhdmVzQmFsYW5jZUJlZm9yZQQIY2xhaW1JbnYJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQkA2AQBBQdwb29sQkJCAhFjbGFpbUluZGV4UmV3YXJkcwUDbmlsBQNuaWwDCQAAAgUIY2xhaW1JbnYFCGNsYWltSW52BA93YXZlc0RpZmZlcmVuY2UJAGUCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUSd2F2ZXNCYWxhbmNlQmVmb3JlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0ACAJAMwIAgkBDEludGVnZXJFbnRyeQICFHdhdmVzIGFtb3VudCB0byBzd2FwBQ93YXZlc0RpZmZlcmVuY2UFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQtwdXp6bGVQWmJiYgADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAdzcHV6emxlCQD8BwQJAQdBZGRyZXNzAQUGcG9vbExQAhRnZW5lcmF0ZVdpdGhPbmVUb2tlbgkAzAgCBQdwb29sQkJCBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBnB1enpsZQkA8AcCBQR0aGlzBQZwdXp6bGUFA25pbAMJAAACBQdzcHV6emxlBQdzcHV6emxlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0ACgFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpzdGFrZVBaYmJiAAMDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAQIhPQIIBQFpBmNhbGxlcgUHaW52b2tlcgcJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBApzdGFrZVBaYmJiCQD8BwQJAQdBZGRyZXNzAQUHcG9vbEJCQgINc3Rha2VJbmRleEZvcgkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUFcHpCQkIJAPAHAgUEdGhpcwUFcHpCQkIFA25pbAMJAAACBQpzdGFrZVBaYmJiBQpzdGFrZVBaYmJiCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0ACgFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVncm93MQADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAVzd2VzdAMJAGYCCQDwBwIFBHRoaXMFBndlc3RJZAAACQD8BwQJAQdBZGRyZXNzAQUGcG9vbExQAhRnZW5lcmF0ZVdpdGhPbmVUb2tlbgkAzAgCBQpwb29sU3RyaW5nBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBndlc3RJZAkA8AcCBQR0aGlzBQZ3ZXN0SWQFA25pbAUEdW5pdAMJAAACBQVzd2VzdAUFc3dlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleUludm9rZU5leHQADAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBWdyb3cyAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEBnN2aXJlcwMJAGYCCQDwBwIFBHRoaXMFB3ZpcmVzSWQAAAkA/AcECQEHQWRkcmVzcwEFBnBvb2xMUAIUZ2VuZXJhdGVXaXRoT25lVG9rZW4JAMwIAgUKcG9vbFN0cmluZwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQd2aXJlc0lkCQDwBwIFBHRoaXMFB3ZpcmVzSWQFA25pbAUEdW5pdAMJAAACBQZzdmlyZXMFBnN2aXJlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa2V5SW52b2tlTmV4dAANBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFZ3JvdzMAAwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkBAiE9AggFAWkGY2FsbGVyBQdpbnZva2VyBwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEBHNlZ2cDCQBmAgkA8AcCBQR0aGlzBQVlZ2dJZAAACQD8BwQJAQdBZGRyZXNzAQUGcG9vbExQAhRnZW5lcmF0ZVdpdGhPbmVUb2tlbgkAzAgCBQpwb29sU3RyaW5nBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBWVnZ0lkCQDwBwIFBHRoaXMFBWVnZ0lkBQNuaWwFBHVuaXQDCQAAAgUEc2VnZwUEc2VnZwkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa2V5SW52b2tlTmV4dAAOBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFZ3JvdzQAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQFc25zYnQDCQBmAgkA8AcCBQR0aGlzBQZuc2J0SWQAAAkA/AcECQEHQWRkcmVzcwEFBnBvb2xMUAIUZ2VuZXJhdGVXaXRoT25lVG9rZW4JAMwIAgUKcG9vbFN0cmluZwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZuc2J0SWQJAPAHAgUEdGhpcwUGbnNidElkBQNuaWwFBHVuaXQDCQAAAgUFc25zYnQFBXNuc2J0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0AA8FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVncm93NQADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAlzd2Fwd2F2ZXMDCQBmAgkAZQIICQDvBwEFBHRoaXMJYXZhaWxhYmxlBQJkOAAACQD8BwQJAQdBZGRyZXNzAQUGcG9vbExQAhRnZW5lcmF0ZVdpdGhPbmVUb2tlbgkAzAgCBQpwb29sU3RyaW5nBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQJAGUCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUCZDgFA25pbAUEdW5pdAMJAAACBQlzd2Fwd2F2ZXMFCXN3YXB3YXZlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa2V5SW52b2tlTmV4dAAQBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFZ3JvdzYAAwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkBAiE9AggFAWkGY2FsbGVyBQdpbnZva2VyBwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEDnN0YWtlUFpidXJueHRuAwkAZgIJAPAHAgUEdGhpcwUJcHpCdXJueHRuAAAJAPwHBAkBB0FkZHJlc3MBARoBV4WdLDDV/AM+YcWt3pK/xSqR85muGkFACgINc3Rha2VJbmRleEZvcgkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUJcHpCdXJueHRuCQDwBwIFBHRoaXMFCXB6QnVybnh0bgUDbmlsBQR1bml0AwkAAAIFDnN0YWtlUFpidXJueHRuBQ5zdGFrZVBaYnVybnh0bgkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa2V5SW52b2tlTmV4dAAeBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIc2VsZWN0b3IAAwkBAiE9AggFAWkGY2FsbGVyCQEHQWRkcmVzcwEBGgFXGIkbJG0v4kSlsrku0GQjUC4p33Iw2jJZCQACAQIJbm8gYWNjZXNzBAVpbnYwMAMJAAACCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleUludm9rZU5leHQAAAkA/AcEBQR0aGlzAg9idXJuWFROYW5kQ2xhaW0FA25pbAUDbmlsAwkAAAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUNa2V5SW52b2tlTmV4dAAKCQD8BwQFBHRoaXMCC2J1cm5CVVJOWFROBQNuaWwFA25pbAMJAAACCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleUludm9rZU5leHQACwkA/AcEBQR0aGlzAgVncm93MQUDbmlsBQNuaWwDCQAAAgkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlJbnZva2VOZXh0AAwJAPwHBAUEdGhpcwIFZ3JvdzIFA25pbAUDbmlsAwkAAAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUNa2V5SW52b2tlTmV4dAANCQD8BwQFBHRoaXMCBWdyb3czBQNuaWwFA25pbAMJAAACCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleUludm9rZU5leHQADgkA/AcEBQR0aGlzAgVncm93NAUDbmlsBQNuaWwDCQAAAgkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlJbnZva2VOZXh0AA8JAPwHBAUEdGhpcwIFZ3JvdzUFA25pbAUDbmlsAwkAAAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUNa2V5SW52b2tlTmV4dAAQCQD8BwQFBHRoaXMCBWdyb3cyBQNuaWwFA25pbAMJAAACCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleUludm9rZU5leHQAFAkA/AcEBQR0aGlzAgRwdW1wBQNuaWwFA25pbAMJAAACCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleUludm9rZU5leHQAHgkA/AcEBQR0aGlzAgVQWmJiYgUDbmlsBQNuaWwDCQAAAgkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlJbnZva2VOZXh0AB8JAPwHBAUEdGhpcwIIY2xhaW1CQkIFA25pbAUDbmlsAwkAAAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUNa2V5SW52b2tlTmV4dAAgCQD8BwQFBHRoaXMCCGJ1cm5TVVJGBQNuaWwFA25pbAMJAAACCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleUludm9rZU5leHQAIQkA/AcEBQR0aGlzAgtwdXp6bGVQWmJiYgUDbmlsBQNuaWwDCQAAAgkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlJbnZva2VOZXh0ACIJAPwHBAUEdGhpcwIKc3Rha2VQWmJiYgUDbmlsBQNuaWwDCQAAAgkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlJbnZva2VOZXh0ACgJAPwHBAUEdGhpcwIOU1VSRmFuZFZWWFROTFAFA25pbAUDbmlsAwkAAAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUNa2V5SW52b2tlTmV4dAAyCQD8BwQFBHRoaXMCBmRFbnRyeQUDbmlsBQNuaWwFBHVuaXQDCQAAAgUFaW52MDAFBWludjAwBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AnBcWmg==", "height": 4084761, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BiDZhjyUFfyTvguPDuX7xF3g2m8JosqkNZW6mKVyGisZ Next: 4caSbJUKF8MoxxPt9tr1Bgg9ME2xUkG4Qk8T7dUDckY5 Diff:
OldNewDifferences
445445 func grow1 () = if ((i.caller != this))
446446 then throw("access only by project owner")
447447 else {
448- let swest = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(westId, assetBalance(this, westId))])
448+ let swest = if ((assetBalance(this, westId) > 0))
449+ then invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(westId, assetBalance(this, westId))])
450+ else unit
449451 if ((swest == swest))
450452 then [IntegerEntry(keyInvokeNext, 12)]
451453 else throw("Strict value is not equal to itself.")
457459 func grow2 () = if ((i.caller != this))
458460 then throw("access only by project owner")
459461 else {
460- let svires = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(viresId, assetBalance(this, viresId))])
462+ let svires = if ((assetBalance(this, viresId) > 0))
463+ then invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(viresId, assetBalance(this, viresId))])
464+ else unit
461465 if ((svires == svires))
462466 then [IntegerEntry(keyInvokeNext, 13)]
463467 else throw("Strict value is not equal to itself.")
471475 else false)
472476 then throw("access only by project owner")
473477 else {
474- let segg = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(eggId, assetBalance(this, eggId))])
478+ let segg = if ((assetBalance(this, eggId) > 0))
479+ then invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(eggId, assetBalance(this, eggId))])
480+ else unit
475481 if ((segg == segg))
476482 then [IntegerEntry(keyInvokeNext, 14)]
477483 else throw("Strict value is not equal to itself.")
483489 func grow4 () = if ((i.caller != this))
484490 then throw("access only by project owner")
485491 else {
486- let snsbt = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(nsbtId, assetBalance(this, nsbtId))])
492+ let snsbt = if ((assetBalance(this, nsbtId) > 0))
493+ then invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(nsbtId, assetBalance(this, nsbtId))])
494+ else unit
487495 if ((snsbt == snsbt))
488496 then [IntegerEntry(keyInvokeNext, 15)]
489497 else throw("Strict value is not equal to itself.")
495503 func grow5 () = if ((i.caller != this))
496504 then throw("access only by project owner")
497505 else {
498- let swapwaves = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0))
499- then (wavesBalance(this).available - d8)
500- else 0)])
506+ let swapwaves = if (((wavesBalance(this).available - d8) > 0))
507+ then invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(unit, (wavesBalance(this).available - d8))])
508+ else unit
501509 if ((swapwaves == swapwaves))
502510 then [IntegerEntry(keyInvokeNext, 16)]
503511 else throw("Strict value is not equal to itself.")
511519 else false)
512520 then throw("access only by project owner")
513521 else {
514- let stakePZburnxtn = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "stakeIndexFor", [toString(this)], [AttachedPayment(pzBurnxtn, assetBalance(this, pzBurnxtn))])
522+ let stakePZburnxtn = if ((assetBalance(this, pzBurnxtn) > 0))
523+ then invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "stakeIndexFor", [toString(this)], [AttachedPayment(pzBurnxtn, assetBalance(this, pzBurnxtn))])
524+ else unit
515525 if ((stakePZburnxtn == stakePZburnxtn))
516526 then [IntegerEntry(keyInvokeNext, 30)]
517527 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetInteger (address,key) = match getInteger(address, key) {
55 case b: Int =>
66 b
77 case _ =>
88 0
99 }
1010
1111
1212 let d6 = 1000000
1313
1414 let d8 = 100000000
1515
1616 let d16 = (d8 * d8)
1717
1818 let invoker = Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt')
1919
2020 let poolId = base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'
2121
2222 let poolString = toBase58String(poolId)
2323
2424 let pool2 = base58'3PQHndCUVrv3wBuQjbvVP9SnGmfbfitGxfx'
2525
2626 let poolBBB = base58'3P9VPwVfNj3dDevQZt1Z951A4K57cmQmCgk'
2727
2828 let poolLP = base58'3PQoBfUKHkJAeGWhooLP7WS8ovb54av9Jp2'
2929
3030 let pzBurnxtn = base58'GdrDHazRGcCYeCgDEZzLpsZ3E7jmrxYB7EDUiGfiVAr1'
3131
3232 let pzBBB = base58'AE12ZN9PQyPKHR5CqR2Qau31JqS68rZbVYxaJbRM8kFj'
3333
3434 let xtnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
3535
3636 let burnxtnId = base58'3SjxA2YLdfF9fTRbzLm9xFn27C6MW34W1YsdJ6Axefns'
3737
3838 let burnxtnString = toBase58String(burnxtnId)
3939
4040 let westId = base58'4LHHvYGNKJUg5hj65aGD5vgScvCBmLpdRFtjokvCjSL8'
4141
4242 let viresId = base58'DSbbhLsSTeDg5Lsiufk2Aneh3DjVqJuPr2M9uU1gwy5p'
4343
4444 let eggId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
4545
4646 let surfId = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL'
4747
4848 let nsbtId = base58'6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g'
4949
5050 let wxId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
5151
5252 let swopId = base58'Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT'
5353
5454 let wavesId = base58'WAVES'
5555
5656 let usdterc = base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
5757
5858 let usdcerc = base58'HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW'
5959
6060 let usdtbsc = base58'A81p1LTRyoq2rDR2TNxB2dWYxsiNwCSSi8sXef2SEkwb'
6161
6262 let usdcbsc = base58'4BKKSp6NoNcrFHyorZogDyctq1fq6w7114Ym1pw6HUtC'
6363
6464 let swaves = base58'YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7'
6565
6666 let puzzle = base58'HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS'
6767
6868 let whirlpool = base58'73tY3E6Gd5AWYmsuq8m8Kek7KnJNAYyS3GoveTbc6jCi'
6969
7070 let rome = base58'AP4Cb5xLYGH6ZigHreCZHoXpQTWDkPsG2BHqfDUx6taJ'
7171
7272 let vvxtnlp = base58'8KEtor9aSsSj38MknyAE7k1uRThHY9prAXgiE4D7WpyL'
7373
7474 let keyInvokeNext = "invoke next"
7575
7676 let SWAVES_stake = Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV')
7777
7878 func _loadInt (key_,default_) = match getInteger(SWAVES_stake, key_) {
7979 case a: Int =>
8080 a
8181 case _ =>
8282 default_
8383 }
8484
8585
8686 func _loadBigInt (key_,default_) = match getBinary(SWAVES_stake, key_) {
8787 case a: ByteVector =>
8888 toBigInt(a)
8989 case _ =>
9090 default_
9191 }
9292
9393
9494 let WX_BURNXTN_WAVES = Address(base58'3P5vwLbXddLWpsRspftMxLuzfsjk3dLT3n5')
9595
9696 let lastRate = _loadBigInt("LAST_RATE", toBigInt(1000000000000))
9797
9898 let currentRate = _loadBigInt("CURRENT_RATE", toBigInt(0))
9999
100100 let lastHeight = _loadInt("LAST_HEIGHT", 0)
101101
102102 let targetHeight = min([_loadInt("TARGET_HEIGHT", 0), height])
103103
104104 let lastRateUpdated = (lastRate + (currentRate * toBigInt((targetHeight - lastHeight))))
105105
106106 let baseAmount = toInt(fraction(toBigInt(assetBalance(WX_BURNXTN_WAVES, swaves)), lastRateUpdated, toBigInt(1000000000000), FLOOR))
107107
108108 let wavesInWX = (wavesBalance(WX_BURNXTN_WAVES).regular + baseAmount)
109109
110110 let burnxtnInWX = assetBalance(WX_BURNXTN_WAVES, burnxtnId)
111111
112112 let burnxtnwavesprice = fraction(d8, wavesInWX, burnxtnInWX)
113113
114114 let burnxtnbalance2 = assetBalance(Address(pool2), burnxtnId)
115115
116116 let usdbalance = ((((assetBalance(Address(pool2), usdterc) + assetBalance(Address(pool2), usdcerc)) + assetBalance(Address(pool2), usdtbsc)) + assetBalance(Address(pool2), usdcbsc)) / 4)
117117
118118 let burnxtnusdprice = fraction(d8, usdbalance, burnxtnbalance2)
119119
120120 let ATH = if ((burnxtnwavesprice > getIntegerValue("ATH in wavelets")))
121121 then burnxtnwavesprice
122122 else getIntegerValue(this, "ATH in wavelets")
123123
124124 let ATHusd = if ((burnxtnusdprice > getIntegerValue("ATH in centlets")))
125125 then burnxtnusdprice
126126 else getIntegerValue(this, "ATH in centlets")
127127
128128 let wavesinpool = getIntegerValue(Address(poolId), (("global_" + toBase58String(wavesId)) + "_balance"))
129129
130130 let projectstake = getIntegerValue(Address(poolId), ("3PAucbbumdUXmhzcR421zGiayphEdo2tRoz" + "_indexStaked"))
131131
132132 let totalstake = getIntegerValue(Address(poolId), "global_poolToken_amount")
133133
134134 let tvlinwaves = fraction(fraction(wavesinpool, projectstake, totalstake), 9, d8)
135135
136136 let tvlpool = fraction(wavesinpool, 9, d8)
137137
138138 let pricegrowth = ((fraction(d8, burnxtnwavesprice, getIntegerValue(this, "intial price BURN-XTN in wavelets")) - d8) / 1000000)
139139
140140 let PL_Defi = Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X')
141141
142142 func PL_value (dAppAddress,asset) = fraction(getIntegerValue(dAppAddress, ((toString(this) + "_supplied_") + toBase58String(asset))), getIntegerValue(dAppAddress, (toBase58String(asset) + "_sRate")), d16)
143143
144144
145145 func swapWX (assetIn,assetOut,amountIn) = invoke(Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93'), "swap", [fraction(amountIn, 11, 10), toBase58String(assetOut), toString(this)], [AttachedPayment(assetIn, amountIn)])
146146
147147
148148 let VVXTNLP_XTN_AMM = Address(base58'3P9UJxhsqj1UkqPDtM16yi9aGE26V5tdH6i')
149149
150150 let XTNbalance = assetBalance(VVXTNLP_XTN_AMM, xtnId)
151151
152152 let VVXTNLPbalance = assetBalance(VVXTNLP_XTN_AMM, vvxtnlp)
153153
154154 let VVXTNLPprice = fraction(XTNbalance, 100, VVXTNLPbalance)
155155
156156 @Callable(i)
157157 func PZbbb () = if ((i.caller != this))
158158 then throw("access only by project owner")
159159 else {
160160 let swapSwop = invoke(Address(poolId), "swap", [toBase58String(burnxtnId), 0], [AttachedPayment(swopId, assetBalance(this, swopId))])
161161 if ((swapSwop == swapSwop))
162162 then {
163163 let inv = invoke(Address(poolLP), "generateWithOneToken", [toBase58String(poolBBB)], [AttachedPayment(burnxtnId, assetBalance(this, burnxtnId))])
164164 if ((inv == inv))
165165 then [IntegerEntry(keyInvokeNext, 31)]
166166 else throw("Strict value is not equal to itself.")
167167 }
168168 else throw("Strict value is not equal to itself.")
169169 }
170170
171171
172172
173173 @Callable(i)
174174 func burnSURF () = if ((i.caller != this))
175175 then throw("access only by project owner")
176176 else {
177177 let swapWhirl = invoke(Address(poolBBB), "swap", [toBase58String(burnxtnId), 0], [AttachedPayment(whirlpool, assetBalance(this, whirlpool))])
178178 if ((swapWhirl == swapWhirl))
179179 then {
180180 let swapRome = invoke(Address(poolBBB), "swap", [toBase58String(burnxtnId), 0], [AttachedPayment(rome, assetBalance(this, rome))])
181181 if ((swapRome == swapRome))
182182 then {
183183 let swapWaves = invoke(Address(poolId), "swap", [toBase58String(surfId), 0], [AttachedPayment(unit, tryGetInteger(this, "waves amount to swap"))])
184184 if ((swapWaves == swapWaves))
185185 then {
186186 let surfBurnAmount = assetBalance(this, surfId)
187187 let surfBurn = Burn(surfId, surfBurnAmount)
188188 [surfBurn, IntegerEntry("SURF total burned", (tryGetInteger(this, "SURF total burned") + surfBurnAmount)), IntegerEntry(keyInvokeNext, 33)]
189189 }
190190 else throw("Strict value is not equal to itself.")
191191 }
192192 else throw("Strict value is not equal to itself.")
193193 }
194194 else throw("Strict value is not equal to itself.")
195195 }
196196
197197
198198
199199 @Callable(i)
200200 func SURFandVVXTNLP () = {
201201 let stakeSurf = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(surfId, assetBalance(this, surfId))])
202202 if ((stakeSurf == stakeSurf))
203203 then {
204204 let swapXTNtoVVXTNLP = if ((80 > VVXTNLPprice))
205205 then swapWX(xtnId, vvxtnlp, assetBalance(this, xtnId))
206206 else unit
207207 if ((swapXTNtoVVXTNLP == swapXTNtoVVXTNLP))
208208 then [IntegerEntry(keyInvokeNext, 50)]
209209 else throw("Strict value is not equal to itself.")
210210 }
211211 else throw("Strict value is not equal to itself.")
212212 }
213213
214214
215215
216216 @Callable(i)
217217 func dEntry () = if ((i.caller != this))
218218 then throw("access only by project owner")
219219 else [IntegerEntry("BURN-XTN / WAVES price in wavelets", burnxtnwavesprice), IntegerEntry("Price growth %", pricegrowth), IntegerEntry("ATH in wavelets", ATH), IntegerEntry("BURN-XTN / USD price in centlets", burnxtnusdprice), IntegerEntry("ATH in centlets", ATHusd), IntegerEntry("TVL project in WAVES excluding BURN-XTN", tvlinwaves), IntegerEntry("TVL pool in WAVES excluding BURN-XTN", tvlpool), IntegerEntry("Activated blockheight", height), IntegerEntry("BURN-XTN supply", match assetInfo(burnxtnId) {
220220 case asset: Asset =>
221221 (asset.quantity / d8)
222222 case _ =>
223223 throw("Can't find asset")
224224 }), IntegerEntry("BURN-XTN total burned", (1000000000 - match assetInfo(burnxtnId) {
225225 case asset: Asset =>
226226 (asset.quantity / d8)
227227 case _ =>
228228 throw("Can't find asset")
229229 })), IntegerEntry("SURF supply", match assetInfo(surfId) {
230230 case asset: Asset =>
231231 (asset.quantity / d6)
232232 case _ =>
233233 throw("Can't find asset")
234234 }), IntegerEntry("total SURF PL Waves Defi", PL_value(PL_Defi, surfId)), IntegerEntry(keyInvokeNext, 0)]
235235
236236
237237
238238 @Callable(i)
239239 func burnBURNXTN () = if ((i.caller != this))
240240 then throw("access only by project owner")
241241 else {
242242 let burnxtnBurn = Burn(burnxtnId, assetBalance(this, burnxtnId))
243243 [burnxtnBurn, IntegerEntry(keyInvokeNext, 11)]
244244 }
245245
246246
247247
248248 @Callable(i)
249249 func pump () = if ((i.caller != this))
250250 then throw("access only by project owner")
251251 else {
252252 let swest = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(westId, assetBalance(this, westId))])
253253 if ((swest == swest))
254254 then {
255255 let svires = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(viresId, assetBalance(this, viresId))])
256256 if ((svires == svires))
257257 then {
258258 let segg = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(eggId, assetBalance(this, eggId))])
259259 if ((segg == segg))
260260 then {
261261 let snsbt = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(nsbtId, assetBalance(this, nsbtId))])
262262 if ((snsbt == snsbt))
263263 then {
264264 let swapwaves = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0))
265265 then (wavesBalance(this).available - d8)
266266 else 0)])
267267 if ((swapwaves == swapwaves))
268268 then [Burn(burnxtnId, assetBalance(this, burnxtnId)), IntegerEntry(keyInvokeNext, 30)]
269269 else throw("Strict value is not equal to itself.")
270270 }
271271 else throw("Strict value is not equal to itself.")
272272 }
273273 else throw("Strict value is not equal to itself.")
274274 }
275275 else throw("Strict value is not equal to itself.")
276276 }
277277 else throw("Strict value is not equal to itself.")
278278 }
279279
280280
281281
282282 @Callable(i)
283283 func PumpByAnybody () = if (((getIntegerValue(this, "Activated blockheight") + (8 * 1440)) > height))
284284 then throw(("Wait till blockheight:" + toString((getIntegerValue(this, "Activated blockheight") + (8 * 1440)))))
285285 else {
286286 let claimInv = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "claimIndexRewards", nil, nil)
287287 if ((claimInv == claimInv))
288288 then {
289289 let swest = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(westId, assetBalance(this, westId))])
290290 if ((swest == swest))
291291 then {
292292 let svires = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(viresId, assetBalance(this, viresId))])
293293 if ((svires == svires))
294294 then {
295295 let segg = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(eggId, assetBalance(this, eggId))])
296296 if ((segg == segg))
297297 then {
298298 let ssurf = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(surfId, assetBalance(this, surfId))])
299299 if ((ssurf == ssurf))
300300 then {
301301 let snsbt = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(nsbtId, assetBalance(this, nsbtId))])
302302 if ((snsbt == snsbt))
303303 then {
304304 let swx = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(wxId, assetBalance(this, wxId))])
305305 if ((swx == swx))
306306 then {
307307 let sswop = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(swopId, assetBalance(this, swopId))])
308308 if ((sswop == sswop))
309309 then {
310310 let swapwaves = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0))
311311 then (wavesBalance(this).available - d8)
312312 else 0)])
313313 if ((swapwaves == swapwaves))
314314 then {
315315 let xtnburnamount = assetBalance(this, xtnId)
316316 let xtnBurn = Burn(xtnId, xtnburnamount)
317317 let burnxtnBurn = Burn(burnxtnId, assetBalance(this, burnxtnId))
318318 [xtnBurn, burnxtnBurn, IntegerEntry("BURN-XTN supply", match assetInfo(burnxtnId) {
319319 case asset: Asset =>
320320 (asset.quantity / d8)
321321 case _ =>
322322 throw("Can't find asset")
323323 }), IntegerEntry("BURN-XTN total burned", (1000000000 - match assetInfo(burnxtnId) {
324324 case asset: Asset =>
325325 (asset.quantity / d8)
326326 case _ =>
327327 throw("Can't find asset")
328328 })), IntegerEntry("XTN total burned", (getIntegerValue(this, "XTN total burned") + xtnburnamount))]
329329 }
330330 else throw("Strict value is not equal to itself.")
331331 }
332332 else throw("Strict value is not equal to itself.")
333333 }
334334 else throw("Strict value is not equal to itself.")
335335 }
336336 else throw("Strict value is not equal to itself.")
337337 }
338338 else throw("Strict value is not equal to itself.")
339339 }
340340 else throw("Strict value is not equal to itself.")
341341 }
342342 else throw("Strict value is not equal to itself.")
343343 }
344344 else throw("Strict value is not equal to itself.")
345345 }
346346 else throw("Strict value is not equal to itself.")
347347 }
348348
349349
350350
351351 @Callable(i)
352352 func withdraw () = if ((i.caller != Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt')))
353353 then throw("no access")
354354 else {
355355 let withdraw = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "withdrawVestedAllUSDN", [false, true], nil)
356356 if ((withdraw == withdraw))
357357 then nil
358358 else throw("Strict value is not equal to itself.")
359359 }
360360
361361
362362
363363 @Callable(i)
364364 func importVVXTNLP () = if ((i.caller != Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt')))
365365 then throw("no access")
366366 else {
367367 let import = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "importLP", nil, [AttachedPayment(vvxtnlp, assetBalance(this, vvxtnlp))])
368368 if ((import == import))
369369 then nil
370370 else throw("Strict value is not equal to itself.")
371371 }
372372
373373
374374
375375 @Callable(i)
376376 func burnXTNandClaim () = if ((i.caller != this))
377377 then throw("access only by project owner")
378378 else {
379379 let invc = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "claimIndexRewards", nil, nil)
380380 if ((invc == invc))
381381 then {
382382 let xtnburnamount = assetBalance(this, xtnId)
383383 let xtnBurn = Burn(xtnId, xtnburnamount)
384384 [xtnBurn, IntegerEntry("XTN total burned", (getIntegerValue(this, "XTN total burned") + xtnburnamount)), IntegerEntry("XTN supply", match assetInfo(xtnId) {
385385 case asset: Asset =>
386386 ((asset.quantity - assetBalance(Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo'), xtnId)) / d6)
387387 case _ =>
388388 throw("Can't find asset")
389389 }), IntegerEntry(keyInvokeNext, if ((burnxtnwavesprice >= getIntegerValue(this, "ATH in wavelets")))
390390 then 10
391391 else 20)]
392392 }
393393 else throw("Strict value is not equal to itself.")
394394 }
395395
396396
397397
398398 @Callable(i)
399399 func claimBBB () = if ((i.caller != this))
400400 then throw("access only by project owner")
401401 else {
402402 let wavesBalanceBefore = wavesBalance(this).available
403403 if ((wavesBalanceBefore == wavesBalanceBefore))
404404 then {
405405 let claimInv = invoke(addressFromStringValue(toBase58String(poolBBB)), "claimIndexRewards", nil, nil)
406406 if ((claimInv == claimInv))
407407 then {
408408 let wavesDifference = (wavesBalance(this).available - wavesBalanceBefore)
409409 [IntegerEntry(keyInvokeNext, 32), IntegerEntry("waves amount to swap", wavesDifference)]
410410 }
411411 else throw("Strict value is not equal to itself.")
412412 }
413413 else throw("Strict value is not equal to itself.")
414414 }
415415
416416
417417
418418 @Callable(i)
419419 func puzzlePZbbb () = if ((i.caller != this))
420420 then throw("access only by project owner")
421421 else {
422422 let spuzzle = invoke(Address(poolLP), "generateWithOneToken", [poolBBB], [AttachedPayment(puzzle, assetBalance(this, puzzle))])
423423 if ((spuzzle == spuzzle))
424424 then [IntegerEntry(keyInvokeNext, 40)]
425425 else throw("Strict value is not equal to itself.")
426426 }
427427
428428
429429
430430 @Callable(i)
431431 func stakePZbbb () = if (if ((i.caller != this))
432432 then (i.caller != invoker)
433433 else false)
434434 then throw("access only by project owner")
435435 else {
436436 let stakePZbbb = invoke(Address(poolBBB), "stakeIndexFor", [toString(this)], [AttachedPayment(pzBBB, assetBalance(this, pzBBB))])
437437 if ((stakePZbbb == stakePZbbb))
438438 then [IntegerEntry(keyInvokeNext, 40)]
439439 else throw("Strict value is not equal to itself.")
440440 }
441441
442442
443443
444444 @Callable(i)
445445 func grow1 () = if ((i.caller != this))
446446 then throw("access only by project owner")
447447 else {
448- let swest = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(westId, assetBalance(this, westId))])
448+ let swest = if ((assetBalance(this, westId) > 0))
449+ then invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(westId, assetBalance(this, westId))])
450+ else unit
449451 if ((swest == swest))
450452 then [IntegerEntry(keyInvokeNext, 12)]
451453 else throw("Strict value is not equal to itself.")
452454 }
453455
454456
455457
456458 @Callable(i)
457459 func grow2 () = if ((i.caller != this))
458460 then throw("access only by project owner")
459461 else {
460- let svires = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(viresId, assetBalance(this, viresId))])
462+ let svires = if ((assetBalance(this, viresId) > 0))
463+ then invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(viresId, assetBalance(this, viresId))])
464+ else unit
461465 if ((svires == svires))
462466 then [IntegerEntry(keyInvokeNext, 13)]
463467 else throw("Strict value is not equal to itself.")
464468 }
465469
466470
467471
468472 @Callable(i)
469473 func grow3 () = if (if ((i.caller != this))
470474 then (i.caller != invoker)
471475 else false)
472476 then throw("access only by project owner")
473477 else {
474- let segg = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(eggId, assetBalance(this, eggId))])
478+ let segg = if ((assetBalance(this, eggId) > 0))
479+ then invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(eggId, assetBalance(this, eggId))])
480+ else unit
475481 if ((segg == segg))
476482 then [IntegerEntry(keyInvokeNext, 14)]
477483 else throw("Strict value is not equal to itself.")
478484 }
479485
480486
481487
482488 @Callable(i)
483489 func grow4 () = if ((i.caller != this))
484490 then throw("access only by project owner")
485491 else {
486- let snsbt = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(nsbtId, assetBalance(this, nsbtId))])
492+ let snsbt = if ((assetBalance(this, nsbtId) > 0))
493+ then invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(nsbtId, assetBalance(this, nsbtId))])
494+ else unit
487495 if ((snsbt == snsbt))
488496 then [IntegerEntry(keyInvokeNext, 15)]
489497 else throw("Strict value is not equal to itself.")
490498 }
491499
492500
493501
494502 @Callable(i)
495503 func grow5 () = if ((i.caller != this))
496504 then throw("access only by project owner")
497505 else {
498- let swapwaves = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0))
499- then (wavesBalance(this).available - d8)
500- else 0)])
506+ let swapwaves = if (((wavesBalance(this).available - d8) > 0))
507+ then invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(unit, (wavesBalance(this).available - d8))])
508+ else unit
501509 if ((swapwaves == swapwaves))
502510 then [IntegerEntry(keyInvokeNext, 16)]
503511 else throw("Strict value is not equal to itself.")
504512 }
505513
506514
507515
508516 @Callable(i)
509517 func grow6 () = if (if ((i.caller != this))
510518 then (i.caller != invoker)
511519 else false)
512520 then throw("access only by project owner")
513521 else {
514- let stakePZburnxtn = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "stakeIndexFor", [toString(this)], [AttachedPayment(pzBurnxtn, assetBalance(this, pzBurnxtn))])
522+ let stakePZburnxtn = if ((assetBalance(this, pzBurnxtn) > 0))
523+ then invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "stakeIndexFor", [toString(this)], [AttachedPayment(pzBurnxtn, assetBalance(this, pzBurnxtn))])
524+ else unit
515525 if ((stakePZburnxtn == stakePZburnxtn))
516526 then [IntegerEntry(keyInvokeNext, 30)]
517527 else throw("Strict value is not equal to itself.")
518528 }
519529
520530
521531
522532 @Callable(i)
523533 func selector () = if ((i.caller != Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt')))
524534 then throw("no access")
525535 else {
526536 let inv00 = if ((tryGetInteger(this, keyInvokeNext) == 0))
527537 then invoke(this, "burnXTNandClaim", nil, nil)
528538 else if ((tryGetInteger(this, keyInvokeNext) == 10))
529539 then invoke(this, "burnBURNXTN", nil, nil)
530540 else if ((tryGetInteger(this, keyInvokeNext) == 11))
531541 then invoke(this, "grow1", nil, nil)
532542 else if ((tryGetInteger(this, keyInvokeNext) == 12))
533543 then invoke(this, "grow2", nil, nil)
534544 else if ((tryGetInteger(this, keyInvokeNext) == 13))
535545 then invoke(this, "grow3", nil, nil)
536546 else if ((tryGetInteger(this, keyInvokeNext) == 14))
537547 then invoke(this, "grow4", nil, nil)
538548 else if ((tryGetInteger(this, keyInvokeNext) == 15))
539549 then invoke(this, "grow5", nil, nil)
540550 else if ((tryGetInteger(this, keyInvokeNext) == 16))
541551 then invoke(this, "grow2", nil, nil)
542552 else if ((tryGetInteger(this, keyInvokeNext) == 20))
543553 then invoke(this, "pump", nil, nil)
544554 else if ((tryGetInteger(this, keyInvokeNext) == 30))
545555 then invoke(this, "PZbbb", nil, nil)
546556 else if ((tryGetInteger(this, keyInvokeNext) == 31))
547557 then invoke(this, "claimBBB", nil, nil)
548558 else if ((tryGetInteger(this, keyInvokeNext) == 32))
549559 then invoke(this, "burnSURF", nil, nil)
550560 else if ((tryGetInteger(this, keyInvokeNext) == 33))
551561 then invoke(this, "puzzlePZbbb", nil, nil)
552562 else if ((tryGetInteger(this, keyInvokeNext) == 34))
553563 then invoke(this, "stakePZbbb", nil, nil)
554564 else if ((tryGetInteger(this, keyInvokeNext) == 40))
555565 then invoke(this, "SURFandVVXTNLP", nil, nil)
556566 else if ((tryGetInteger(this, keyInvokeNext) == 50))
557567 then invoke(this, "dEntry", nil, nil)
558568 else unit
559569 if ((inv00 == inv00))
560570 then nil
561571 else throw("Strict value is not equal to itself.")
562572 }
563573
564574

github/deemru/w8io/873ac7e 
63.74 ms