tx · BiDZhjyUFfyTvguPDuX7xF3g2m8JosqkNZW6mKVyGisZ

3PCBL2vbjAVFbiCwmGsPmT6QdATutQnM8ov:  -0.01600000 Waves

2024.03.15 11:50 [4084750] smart account 3PCBL2vbjAVFbiCwmGsPmT6QdATutQnM8ov > SELF 0.00000000 Waves

{ "type": 13, "id": "BiDZhjyUFfyTvguPDuX7xF3g2m8JosqkNZW6mKVyGisZ", "fee": 1600000, "feeAssetId": null, "timestamp": 1710492611154, "version": 2, "chainId": 87, "sender": "3PCBL2vbjAVFbiCwmGsPmT6QdATutQnM8ov", "senderPublicKey": "5BKRz3VCmywzUUoj3kTwCzrCiP8waYbkaymD8B1kdRH2", "proofs": [ "K2YcL5eReCgj75eFbQt5vn4Hf82F1PvunCgiUuBL6rADJJdXz8hpcj3U6vfJYcEm7DxH9ctchoLnUCiYbLoiiCR" ], "script": "base64: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CAIJAQhfbG9hZEludAICDVRBUkdFVF9IRUlHSFQAAAkAzAgCBQZoZWlnaHQFA25pbAAPbGFzdFJhdGVVcGRhdGVkCQC3AgIFCGxhc3RSYXRlCQC5AgIFC2N1cnJlbnRSYXRlCQC2AgEJAGUCBQx0YXJnZXRIZWlnaHQFCmxhc3RIZWlnaHQACmJhc2VBbW91bnQJAKADAQkAvQIECQC2AgEJAPAHAgUQV1hfQlVSTlhUTl9XQVZFUwUGc3dhdmVzBQ9sYXN0UmF0ZVVwZGF0ZWQJALYCAQCAoJSljR0FBUZMT09SAAl3YXZlc0luV1gJAGQCCAkA7wcBBRBXWF9CVVJOWFROX1dBVkVTB3JlZ3VsYXIFCmJhc2VBbW91bnQAC2J1cm54dG5JbldYCQDwBwIFEFdYX0JVUk5YVE5fV0FWRVMFCWJ1cm54dG5JZAARYnVybnh0bndhdmVzcHJpY2UJAGsDBQJkOAUJd2F2ZXNJbldYBQtidXJueHRuSW5XWAAPYnVybnh0bmJhbGFuY2UyCQDwBwIJAQdBZGRyZXNzAQUFcG9vbDIFCWJ1cm54dG5JZAAKdXNkYmFsYW5jZQkAaQIJAGQCCQBkAgkAZAIJAPAHAgkBB0FkZHJlc3MBBQVwb29sMgUHdXNkdGVyYwkA8AcCCQEHQWRkcmVzcwEFBXBvb2wyBQd1c2RjZXJjCQDwBwIJAQdBZGRyZXNzAQUFcG9vbDIFB3VzZHRic2MJAPAHAgkBB0FkZHJlc3MBBQVwb29sMgUHdXNkY2JzYwAEAA9idXJueHRudXNkcHJpY2UJAGsDBQJkOAUKdXNkYmFsYW5jZQUPYnVybnh0bmJhbGFuY2UyAANBVEgDCQBmAgURYnVybnh0bndhdmVzcHJpY2UJARFAZXh0ck5hdGl2ZSgxMDU1KQECD0FUSCBpbiB3YXZlbGV0cwURYnVybnh0bndhdmVzcHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCD0FUSCBpbiB3YXZlbGV0cwAGQVRIdXNkAwkAZgIFD2J1cm54dG51c2RwcmljZQkBEUBleHRyTmF0aXZlKDEwNTUpAQIPQVRIIGluIGNlbnRsZXRzBQ9idXJueHRudXNkcHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCD0FUSCBpbiBjZW50bGV0cwALd2F2ZXNpbnBvb2wJARFAZXh0ck5hdGl2ZSgxMDUwKQIJAQdBZGRyZXNzAQUGcG9vbElkCQCsAgIJAKwCAgIHZ2xvYmFsXwkA2AQBBQd3YXZlc0lkAghfYmFsYW5jZQAMcHJvamVjdHN0YWtlCQERQGV4dHJOYXRpdmUoMTA1MCkCCQEHQWRkcmVzcwEFBnBvb2xJZAkArAICAiMzUEF1Y2JidW1kVVhtaHpjUjQyMXpHaWF5cGhFZG8ydFJvegIMX2luZGV4U3Rha2VkAAp0b3RhbHN0YWtlCQERQGV4dHJOYXRpdmUoMTA1MCkCCQEHQWRkcmVzcwEFBnBvb2xJZAIXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQACnR2bGlud2F2ZXMJAGsDCQBrAwULd2F2ZXNpbnBvb2wFDHByb2plY3RzdGFrZQUKdG90YWxzdGFrZQAJBQJkOAAHdHZscG9vbAkAawMFC3dhdmVzaW5wb29sAAkFAmQ4AAtwcmljZWdyb3d0aAkAaQIJAGUCCQBrAwUCZDgFEWJ1cm54dG53YXZlc3ByaWNlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAiFpbnRpYWwgcHJpY2UgQlVSTi1YVE4gaW4gd2F2ZWxldHMFAmQ4AMCEPQAHUExfRGVmaQkBB0FkZHJlc3MBARoBVxkLO48/zcX1AFJDuOumjMisvxQ5MT4kvgEIUExfdmFsdWUCC2RBcHBBZGRyZXNzBWFzc2V0CQBrAwkBEUBleHRyTmF0aXZlKDEwNTApAgULZEFwcEFkZHJlc3MJAKwCAgkArAICCQClCAEFBHRoaXMCCl9zdXBwbGllZF8JANgEAQUFYXNzZXQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFC2RBcHBBZGRyZXNzCQCsAgIJANgEAQUFYXNzZXQCBl9zUmF0ZQUDZDE2AQZzd2FwV1gDB2Fzc2V0SW4IYXNzZXRPdXQIYW1vdW50SW4JAPwHBAkBB0FkZHJlc3MBARoBVy4qNTWxDbfxeT7ht0bQnnRSTXsx0IOuBgIEc3dhcAkAzAgCCQBrAwUIYW1vdW50SW4ACwAKCQDMCAIJANgEAQUIYXNzZXRPdXQJAMwIAgkApQgBBQR0aGlzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB2Fzc2V0SW4FCGFtb3VudEluBQNuaWwAD1ZWWFROTFBfWFROX0FNTQkBB0FkZHJlc3MBARoBV1K6ANH7OoZtNahjr1MiXzrd2/dsTiAMWwAKWFROYmFsYW5jZQkA8AcCBQ9WVlhUTkxQX1hUTl9BTU0FBXh0bklkAA5WVlhUTkxQYmFsYW5jZQkA8AcCBQ9WVlhUTkxQX1hUTl9BTU0FB3Z2eHRubHAADFZWWFROTFBwcmljZQkAawMFClhUTmJhbGFuY2UAZAUOVlZYVE5MUGJhbGFuY2UUAWkBBVBaYmJiAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIECHN3YXBTd29wCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIJANgEAQUJYnVybnh0bklkCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZzd29wSWQJAPAHAgUEdGhpcwUGc3dvcElkBQNuaWwDCQAAAgUIc3dhcFN3b3AFCHN3YXBTd29wBANpbnYJAPwHBAkBB0FkZHJlc3MBBQZwb29sTFACFGdlbmVyYXRlV2l0aE9uZVRva2VuCQDMCAIJANgEAQUHcG9vbEJCQgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQlidXJueHRuSWQJAPAHAgUEdGhpcwUJYnVybnh0bklkBQNuaWwDCQAAAgUDaW52BQNpbnYJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleUludm9rZU5leHQAHwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCGJ1cm5TVVJGAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIECXN3YXBXaGlybAkA/AcECQEHQWRkcmVzcwEFB3Bvb2xCQkICBHN3YXAJAMwIAgkA2AQBBQlidXJueHRuSWQJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCXdoaXJscG9vbAkA8AcCBQR0aGlzBQl3aGlybHBvb2wFA25pbAMJAAACBQlzd2FwV2hpcmwFCXN3YXBXaGlybAQIc3dhcFJvbWUJAPwHBAkBB0FkZHJlc3MBBQdwb29sQkJCAgRzd2FwCQDMCAIJANgEAQUJYnVybnh0bklkCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQRyb21lCQDwBwIFBHRoaXMFBHJvbWUFA25pbAMJAAACBQhzd2FwUm9tZQUIc3dhcFJvbWUECXN3YXBXYXZlcwkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCCQDYBAEFBnN1cmZJZAkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAkBDXRyeUdldEludGVnZXICBQR0aGlzAhR3YXZlcyBhbW91bnQgdG8gc3dhcAUDbmlsAwkAAAIFCXN3YXBXYXZlcwUJc3dhcFdhdmVzBA5zdXJmQnVybkFtb3VudAkA8AcCBQR0aGlzBQZzdXJmSWQECHN1cmZCdXJuCQEEQnVybgIFBnN1cmZJZAUOc3VyZkJ1cm5BbW91bnQJAMwIAgUIc3VyZkJ1cm4JAMwIAgkBDEludGVnZXJFbnRyeQICEVNVUkYgdG90YWwgYnVybmVkCQBkAgkBDXRyeUdldEludGVnZXICBQR0aGlzAhFTVVJGIHRvdGFsIGJ1cm5lZAUOc3VyZkJ1cm5BbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleUludm9rZU5leHQAIQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDlNVUkZhbmRWVlhUTkxQAAQJc3Rha2VTdXJmCQD8BwQJAQdBZGRyZXNzAQEaAVcZCzuPP83F9QBSQ7jrpozIrL8UOTE+JL4CBnN1cHBseQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZzdXJmSWQJAPAHAgUEdGhpcwUGc3VyZklkBQNuaWwDCQAAAgUJc3Rha2VTdXJmBQlzdGFrZVN1cmYEEHN3YXBYVE50b1ZWWFROTFADCQBmAgBQBQxWVlhUTkxQcHJpY2UJAQZzd2FwV1gDBQV4dG5JZAUHdnZ4dG5scAkA8AcCBQR0aGlzBQV4dG5JZAUEdW5pdAMJAAACBRBzd2FwWFROdG9WVlhUTkxQBRBzd2FwWFROdG9WVlhUTkxQCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0ADIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQZkRW50cnkAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgkAzAgCCQEMSW50ZWdlckVudHJ5AgIiQlVSTi1YVE4gLyBXQVZFUyBwcmljZSBpbiB3YXZlbGV0cwURYnVybnh0bndhdmVzcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQICDlByaWNlIGdyb3d0aCAlBQtwcmljZWdyb3d0aAkAzAgCCQEMSW50ZWdlckVudHJ5AgIPQVRIIGluIHdhdmVsZXRzBQNBVEgJAMwIAgkBDEludGVnZXJFbnRyeQICIEJVUk4tWFROIC8gVVNEIHByaWNlIGluIGNlbnRsZXRzBQ9idXJueHRudXNkcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQICD0FUSCBpbiBjZW50bGV0cwUGQVRIdXNkCQDMCAIJAQxJbnRlZ2VyRW50cnkCAidUVkwgcHJvamVjdCBpbiBXQVZFUyBleGNsdWRpbmcgQlVSTi1YVE4FCnR2bGlud2F2ZXMJAMwIAgkBDEludGVnZXJFbnRyeQICJFRWTCBwb29sIGluIFdBVkVTIGV4Y2x1ZGluZyBCVVJOLVhUTgUHdHZscG9vbAkAzAgCCQEMSW50ZWdlckVudHJ5AgIVQWN0aXZhdGVkIGJsb2NraGVpZ2h0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQICD0JVUk4tWFROIHN1cHBseQQHJG1hdGNoMAkA7AcBBQlidXJueHRuSWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCQBpAggFBWFzc2V0CHF1YW50aXR5BQJkOAkAAgECEENhbid0IGZpbmQgYXNzZXQJAMwIAgkBDEludGVnZXJFbnRyeQICFUJVUk4tWFROIHRvdGFsIGJ1cm5lZAkAZQIAgJTr3AMEByRtYXRjaDAJAOwHAQUJYnVybnh0bklkAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAkAaQIIBQVhc3NldAhxdWFudGl0eQUCZDgJAAIBAhBDYW4ndCBmaW5kIGFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgtTVVJGIHN1cHBseQQHJG1hdGNoMAkA7AcBBQZzdXJmSWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCQBpAggFBWFzc2V0CHF1YW50aXR5BQJkNgkAAgECEENhbid0IGZpbmQgYXNzZXQJAMwIAgkBDEludGVnZXJFbnRyeQICGHRvdGFsIFNVUkYgUEwgV2F2ZXMgRGVmaQkBCFBMX3ZhbHVlAgUHUExfRGVmaQUGc3VyZklkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0AAAFA25pbAFpAQtidXJuQlVSTlhUTgADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAtidXJueHRuQnVybgkBBEJ1cm4CBQlidXJueHRuSWQJAPAHAgUEdGhpcwUJYnVybnh0bklkCQDMCAIFC2J1cm54dG5CdXJuCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0AAsFA25pbAFpAQRwdW1wAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEBXN3ZXN0CQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIFDWJ1cm54dG5TdHJpbmcJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBndlc3RJZAkA8AcCBQR0aGlzBQZ3ZXN0SWQFA25pbAMJAAACBQVzd2VzdAUFc3dlc3QEBnN2aXJlcwkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCBQ1idXJueHRuU3RyaW5nCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQd2aXJlc0lkCQDwBwIFBHRoaXMFB3ZpcmVzSWQFA25pbAMJAAACBQZzdmlyZXMFBnN2aXJlcwQEc2VnZwkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCBQ1idXJueHRuU3RyaW5nCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQVlZ2dJZAkA8AcCBQR0aGlzBQVlZ2dJZAUDbmlsAwkAAAIFBHNlZ2cFBHNlZ2cEBXNuc2J0CQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIFDWJ1cm54dG5TdHJpbmcJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBm5zYnRJZAkA8AcCBQR0aGlzBQZuc2J0SWQFA25pbAMJAAACBQVzbnNidAUFc25zYnQECXN3YXB3YXZlcwkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCBQ1idXJueHRuU3RyaW5nCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQR1bml0AwkAZgIJAGUCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUCZDgAAAkAZQIICQDvBwEFBHRoaXMJYXZhaWxhYmxlBQJkOAAABQNuaWwDCQAAAgUJc3dhcHdhdmVzBQlzd2Fwd2F2ZXMJAMwIAgkBBEJ1cm4CBQlidXJueHRuSWQJAPAHAgUEdGhpcwUJYnVybnh0bklkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0AB4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ1QdW1wQnlBbnlib2R5AAMJAGYCCQBkAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIVQWN0aXZhdGVkIGJsb2NraGVpZ2h0CQBoAgAIAKALBQZoZWlnaHQJAAIBCQCsAgICFldhaXQgdGlsbCBibG9ja2hlaWdodDoJAKQDAQkAZAIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCFUFjdGl2YXRlZCBibG9ja2hlaWdodAkAaAIACACgCwQIY2xhaW1JbnYJAPwHBAkBB0FkZHJlc3MBARoBV4WdLDDV/AM+YcWt3pK/xSqR85muGkFACgIRY2xhaW1JbmRleFJld2FyZHMFA25pbAUDbmlsAwkAAAIFCGNsYWltSW52BQhjbGFpbUludgQFc3dlc3QJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgUNYnVybnh0blN0cmluZwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGd2VzdElkCQDwBwIFBHRoaXMFBndlc3RJZAUDbmlsAwkAAAIFBXN3ZXN0BQVzd2VzdAQGc3ZpcmVzCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIFDWJ1cm54dG5TdHJpbmcJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB3ZpcmVzSWQJAPAHAgUEdGhpcwUHdmlyZXNJZAUDbmlsAwkAAAIFBnN2aXJlcwUGc3ZpcmVzBARzZWdnCQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIFDWJ1cm54dG5TdHJpbmcJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBWVnZ0lkCQDwBwIFBHRoaXMFBWVnZ0lkBQNuaWwDCQAAAgUEc2VnZwUEc2VnZwQFc3N1cmYJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgUNYnVybnh0blN0cmluZwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGc3VyZklkCQDwBwIFBHRoaXMFBnN1cmZJZAUDbmlsAwkAAAIFBXNzdXJmBQVzc3VyZgQFc25zYnQJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgUNYnVybnh0blN0cmluZwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGbnNidElkCQDwBwIFBHRoaXMFBm5zYnRJZAUDbmlsAwkAAAIFBXNuc2J0BQVzbnNidAQDc3d4CQD8BwQJAQdBZGRyZXNzAQUGcG9vbElkAgRzd2FwCQDMCAIFDWJ1cm54dG5TdHJpbmcJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHd4SWQJAPAHAgUEdGhpcwUEd3hJZAUDbmlsAwkAAAIFA3N3eAUDc3d4BAVzc3dvcAkA/AcECQEHQWRkcmVzcwEFBnBvb2xJZAIEc3dhcAkAzAgCBQ1idXJueHRuU3RyaW5nCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZzd29wSWQJAPAHAgUEdGhpcwUGc3dvcElkBQNuaWwDCQAAAgUFc3N3b3AFBXNzd29wBAlzd2Fwd2F2ZXMJAPwHBAkBB0FkZHJlc3MBBQZwb29sSWQCBHN3YXAJAMwIAgUNYnVybnh0blN0cmluZwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAMJAGYCCQBlAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFAmQ4AAAJAGUCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUCZDgAAAUDbmlsAwkAAAIFCXN3YXB3YXZlcwUJc3dhcHdhdmVzBA14dG5idXJuYW1vdW50CQDwBwIFBHRoaXMFBXh0bklkBAd4dG5CdXJuCQEEQnVybgIFBXh0bklkBQ14dG5idXJuYW1vdW50BAtidXJueHRuQnVybgkBBEJ1cm4CBQlidXJueHRuSWQJAPAHAgUEdGhpcwUJYnVybnh0bklkCQDMCAIFB3h0bkJ1cm4JAMwIAgULYnVybnh0bkJ1cm4JAMwIAgkBDEludGVnZXJFbnRyeQICD0JVUk4tWFROIHN1cHBseQQHJG1hdGNoMAkA7AcBBQlidXJueHRuSWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCQBpAggFBWFzc2V0CHF1YW50aXR5BQJkOAkAAgECEENhbid0IGZpbmQgYXNzZXQJAMwIAgkBDEludGVnZXJFbnRyeQICFUJVUk4tWFROIHRvdGFsIGJ1cm5lZAkAZQIAgJTr3AMEByRtYXRjaDAJAOwHAQUJYnVybnh0bklkAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAkAaQIIBQVhc3NldAhxdWFudGl0eQUCZDgJAAIBAhBDYW4ndCBmaW5kIGFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhBYVE4gdG90YWwgYnVybmVkCQBkAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIQWFROIHRvdGFsIGJ1cm5lZAUNeHRuYnVybmFtb3VudAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCHdpdGhkcmF3AAMJAQIhPQIIBQFpBmNhbGxlcgkBB0FkZHJlc3MBARoBVxiJGyRtL+JEpbK5LtBkI1AuKd9yMNoyWQkAAgECCW5vIGFjY2VzcwQId2l0aGRyYXcJAPwHBAkBB0FkZHJlc3MBARoBV3US3ZOCD1veJXYVOctJ1R9TKAnE6HFeJwIVd2l0aGRyYXdWZXN0ZWRBbGxVU0ROCQDMCAIHCQDMCAIGBQNuaWwFA25pbAMJAAACBQh3aXRoZHJhdwUId2l0aGRyYXcFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ1pbXBvcnRWVlhUTkxQAAMJAQIhPQIIBQFpBmNhbGxlcgkBB0FkZHJlc3MBARoBVxiJGyRtL+JEpbK5LtBkI1AuKd9yMNoyWQkAAgECCW5vIGFjY2VzcwQGaW1wb3J0CQD8BwQJAQdBZGRyZXNzAQEaAVd1Et2Tgg9b3iV2FTnLSdUfUygJxOhxXicCCGltcG9ydExQBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB3Z2eHRubHAJAPAHAgUEdGhpcwUHdnZ4dG5scAUDbmlsAwkAAAIFBmltcG9ydAUGaW1wb3J0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEPYnVyblhUTmFuZENsYWltAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEBGludmMJAPwHBAkBB0FkZHJlc3MBARoBV4WdLDDV/AM+YcWt3pK/xSqR85muGkFACgIRY2xhaW1JbmRleFJld2FyZHMFA25pbAUDbmlsAwkAAAIFBGludmMFBGludmMEDXh0bmJ1cm5hbW91bnQJAPAHAgUEdGhpcwUFeHRuSWQEB3h0bkJ1cm4JAQRCdXJuAgUFeHRuSWQFDXh0bmJ1cm5hbW91bnQJAMwIAgUHeHRuQnVybgkAzAgCCQEMSW50ZWdlckVudHJ5AgIQWFROIHRvdGFsIGJ1cm5lZAkAZAIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCEFhUTiB0b3RhbCBidXJuZWQFDXh0bmJ1cm5hbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQICClhUTiBzdXBwbHkEByRtYXRjaDAJAOwHAQUFeHRuSWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCQBpAgkAZQIIBQVhc3NldAhxdWFudGl0eQkA8AcCCQEHQWRkcmVzcwEBGgFXcARipkeb6a1WaJTL74WMMIIgKJoIFJayBQV4dG5JZAUCZDYJAAIBAhBDYW4ndCBmaW5kIGFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0AwkAZwIFEWJ1cm54dG53YXZlc3ByaWNlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAg9BVEggaW4gd2F2ZWxldHMACgAUBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIY2xhaW1CQkIAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQSd2F2ZXNCYWxhbmNlQmVmb3JlCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQMJAAACBRJ3YXZlc0JhbGFuY2VCZWZvcmUFEndhdmVzQmFsYW5jZUJlZm9yZQQIY2xhaW1JbnYJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQkA2AQBBQdwb29sQkJCAhFjbGFpbUluZGV4UmV3YXJkcwUDbmlsBQNuaWwDCQAAAgUIY2xhaW1JbnYFCGNsYWltSW52BA93YXZlc0RpZmZlcmVuY2UJAGUCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUSd2F2ZXNCYWxhbmNlQmVmb3JlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0ACAJAMwIAgkBDEludGVnZXJFbnRyeQICFHdhdmVzIGFtb3VudCB0byBzd2FwBQ93YXZlc0RpZmZlcmVuY2UFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQtwdXp6bGVQWmJiYgADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAdzcHV6emxlCQD8BwQJAQdBZGRyZXNzAQUGcG9vbExQAhRnZW5lcmF0ZVdpdGhPbmVUb2tlbgkAzAgCBQdwb29sQkJCBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBnB1enpsZQkA8AcCBQR0aGlzBQZwdXp6bGUFA25pbAMJAAACBQdzcHV6emxlBQdzcHV6emxlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0ACgFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpzdGFrZVBaYmJiAAMDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAQIhPQIIBQFpBmNhbGxlcgUHaW52b2tlcgcJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBApzdGFrZVBaYmJiCQD8BwQJAQdBZGRyZXNzAQUHcG9vbEJCQgINc3Rha2VJbmRleEZvcgkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUFcHpCQkIJAPAHAgUEdGhpcwUFcHpCQkIFA25pbAMJAAACBQpzdGFrZVBaYmJiBQpzdGFrZVBaYmJiCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0ACgFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVncm93MQADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAVzd2VzdAkA/AcECQEHQWRkcmVzcwEFBnBvb2xMUAIUZ2VuZXJhdGVXaXRoT25lVG9rZW4JAMwIAgUKcG9vbFN0cmluZwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZ3ZXN0SWQJAPAHAgUEdGhpcwUGd2VzdElkBQNuaWwDCQAAAgUFc3dlc3QFBXN3ZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlJbnZva2VOZXh0AAwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVncm93MgADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAZzdmlyZXMJAPwHBAkBB0FkZHJlc3MBBQZwb29sTFACFGdlbmVyYXRlV2l0aE9uZVRva2VuCQDMCAIFCnBvb2xTdHJpbmcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHdmlyZXNJZAkA8AcCBQR0aGlzBQd2aXJlc0lkBQNuaWwDCQAAAgUGc3ZpcmVzBQZzdmlyZXMJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleUludm9rZU5leHQADQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBWdyb3czAAMDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAQIhPQIIBQFpBmNhbGxlcgUHaW52b2tlcgcJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBARzZWdnCQD8BwQJAQdBZGRyZXNzAQUGcG9vbExQAhRnZW5lcmF0ZVdpdGhPbmVUb2tlbgkAzAgCBQpwb29sU3RyaW5nBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBWVnZ0lkCQDwBwIFBHRoaXMFBWVnZ0lkBQNuaWwDCQAAAgUEc2VnZwUEc2VnZwkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa2V5SW52b2tlTmV4dAAOBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFZ3JvdzQAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQFc25zYnQJAPwHBAkBB0FkZHJlc3MBBQZwb29sTFACFGdlbmVyYXRlV2l0aE9uZVRva2VuCQDMCAIFCnBvb2xTdHJpbmcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUGbnNidElkCQDwBwIFBHRoaXMFBm5zYnRJZAUDbmlsAwkAAAIFBXNuc2J0BQVzbnNidAkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa2V5SW52b2tlTmV4dAAPBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFZ3JvdzUAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQJc3dhcHdhdmVzCQD8BwQJAQdBZGRyZXNzAQUGcG9vbExQAhRnZW5lcmF0ZVdpdGhPbmVUb2tlbgkAzAgCBQpwb29sU3RyaW5nBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQDCQBmAgkAZQIICQDvBwEFBHRoaXMJYXZhaWxhYmxlBQJkOAAACQBlAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFAmQ4AAAFA25pbAMJAAACBQlzd2Fwd2F2ZXMFCXN3YXB3YXZlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa2V5SW52b2tlTmV4dAAQBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFZ3JvdzYAAwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkBAiE9AggFAWkGY2FsbGVyBQdpbnZva2VyBwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEDnN0YWtlUFpidXJueHRuCQD8BwQJAQdBZGRyZXNzAQEaAVeFnSww1fwDPmHFrd6Sv8UqkfOZrhpBQAoCDXN0YWtlSW5kZXhGb3IJAMwIAgkApQgBBQR0aGlzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCXB6QnVybnh0bgkA8AcCBQR0aGlzBQlwekJ1cm54dG4FA25pbAMJAAACBQ5zdGFrZVBaYnVybnh0bgUOc3Rha2VQWmJ1cm54dG4JAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleUludm9rZU5leHQAHgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCHNlbGVjdG9yAAMJAQIhPQIIBQFpBmNhbGxlcgkBB0FkZHJlc3MBARoBVxiJGyRtL+JEpbK5LtBkI1AuKd9yMNoyWQkAAgECCW5vIGFjY2VzcwQFaW52MDADCQAAAgkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlJbnZva2VOZXh0AAAJAPwHBAUEdGhpcwIPYnVyblhUTmFuZENsYWltBQNuaWwFA25pbAMJAAACCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleUludm9rZU5leHQACgkA/AcEBQR0aGlzAgtidXJuQlVSTlhUTgUDbmlsBQNuaWwDCQAAAgkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlJbnZva2VOZXh0AAsJAPwHBAUEdGhpcwIFZ3JvdzEFA25pbAUDbmlsAwkAAAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUNa2V5SW52b2tlTmV4dAAMCQD8BwQFBHRoaXMCBWdyb3cyBQNuaWwFA25pbAMJAAACCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleUludm9rZU5leHQADQkA/AcEBQR0aGlzAgVncm93MwUDbmlsBQNuaWwDCQAAAgkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlJbnZva2VOZXh0AA4JAPwHBAUEdGhpcwIFZ3JvdzQFA25pbAUDbmlsAwkAAAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUNa2V5SW52b2tlTmV4dAAPCQD8BwQFBHRoaXMCBWdyb3c1BQNuaWwFA25pbAMJAAACCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleUludm9rZU5leHQAEAkA/AcEBQR0aGlzAgVncm93MgUDbmlsBQNuaWwDCQAAAgkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlJbnZva2VOZXh0ABQJAPwHBAUEdGhpcwIEcHVtcAUDbmlsBQNuaWwDCQAAAgkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlJbnZva2VOZXh0AB4JAPwHBAUEdGhpcwIFUFpiYmIFA25pbAUDbmlsAwkAAAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUNa2V5SW52b2tlTmV4dAAfCQD8BwQFBHRoaXMCCGNsYWltQkJCBQNuaWwFA25pbAMJAAACCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleUludm9rZU5leHQAIAkA/AcEBQR0aGlzAghidXJuU1VSRgUDbmlsBQNuaWwDCQAAAgkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlJbnZva2VOZXh0ACEJAPwHBAUEdGhpcwILcHV6emxlUFpiYmIFA25pbAUDbmlsAwkAAAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUNa2V5SW52b2tlTmV4dAAiCQD8BwQFBHRoaXMCCnN0YWtlUFpiYmIFA25pbAUDbmlsAwkAAAIJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUNa2V5SW52b2tlTmV4dAAoCQD8BwQFBHRoaXMCDlNVUkZhbmRWVlhUTkxQBQNuaWwFA25pbAMJAAACCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleUludm9rZU5leHQAMgkA/AcEBQR0aGlzAgZkRW50cnkFA25pbAUDbmlsBQR1bml0AwkAAAIFBWludjAwBQVpbnYwMAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAEtsAC8=", "height": 4084750, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GN8rEypRE54NdTJDv1TtZ56e2B7CGrcqhMoKKpxUk16c Next: CZ6xPKfUb2nZeWhsX5ShxUaUcJG4U1M3t4PnvD18bJRd Diff:
OldNewDifferences
373373
374374
375375 @Callable(i)
376-func burnXTN () = if ((i.caller != this))
376+func burnXTNandClaim () = if ((i.caller != this))
377377 then throw("access only by project owner")
378378 else {
379- let xtnburnamount = assetBalance(this, xtnId)
380- let xtnBurn = Burn(xtnId, xtnburnamount)
381-[xtnBurn, IntegerEntry("XTN total burned", (getIntegerValue(this, "XTN total burned") + xtnburnamount)), IntegerEntry("XTN supply", match assetInfo(xtnId) {
382- case asset: Asset =>
383- ((asset.quantity - assetBalance(Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo'), xtnId)) / d6)
384- case _ =>
385- throw("Can't find asset")
386- }), IntegerEntry(keyInvokeNext, if ((burnxtnwavesprice >= getIntegerValue(this, "ATH in wavelets")))
387- then 10
388- else 20)]
379+ let invc = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "claimIndexRewards", nil, nil)
380+ if ((invc == invc))
381+ then {
382+ let xtnburnamount = assetBalance(this, xtnId)
383+ let xtnBurn = Burn(xtnId, xtnburnamount)
384+[xtnBurn, IntegerEntry("XTN total burned", (getIntegerValue(this, "XTN total burned") + xtnburnamount)), IntegerEntry("XTN supply", match assetInfo(xtnId) {
385+ case asset: Asset =>
386+ ((asset.quantity - assetBalance(Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo'), xtnId)) / d6)
387+ case _ =>
388+ throw("Can't find asset")
389+ }), IntegerEntry(keyInvokeNext, if ((burnxtnwavesprice >= getIntegerValue(this, "ATH in wavelets")))
390+ then 10
391+ else 20)]
392+ }
393+ else throw("Strict value is not equal to itself.")
389394 }
390395
391396
519524 then throw("no access")
520525 else {
521526 let inv00 = if ((tryGetInteger(this, keyInvokeNext) == 0))
522- then invoke(this, "burnXTN", nil, nil)
523- else unit
527+ then invoke(this, "burnXTNandClaim", nil, nil)
528+ else if ((tryGetInteger(this, keyInvokeNext) == 10))
529+ then invoke(this, "burnBURNXTN", nil, nil)
530+ else if ((tryGetInteger(this, keyInvokeNext) == 11))
531+ then invoke(this, "grow1", nil, nil)
532+ else if ((tryGetInteger(this, keyInvokeNext) == 12))
533+ then invoke(this, "grow2", nil, nil)
534+ else if ((tryGetInteger(this, keyInvokeNext) == 13))
535+ then invoke(this, "grow3", nil, nil)
536+ else if ((tryGetInteger(this, keyInvokeNext) == 14))
537+ then invoke(this, "grow4", nil, nil)
538+ else if ((tryGetInteger(this, keyInvokeNext) == 15))
539+ then invoke(this, "grow5", nil, nil)
540+ else if ((tryGetInteger(this, keyInvokeNext) == 16))
541+ then invoke(this, "grow2", nil, nil)
542+ else if ((tryGetInteger(this, keyInvokeNext) == 20))
543+ then invoke(this, "pump", nil, nil)
544+ else if ((tryGetInteger(this, keyInvokeNext) == 30))
545+ then invoke(this, "PZbbb", nil, nil)
546+ else if ((tryGetInteger(this, keyInvokeNext) == 31))
547+ then invoke(this, "claimBBB", nil, nil)
548+ else if ((tryGetInteger(this, keyInvokeNext) == 32))
549+ then invoke(this, "burnSURF", nil, nil)
550+ else if ((tryGetInteger(this, keyInvokeNext) == 33))
551+ then invoke(this, "puzzlePZbbb", nil, nil)
552+ else if ((tryGetInteger(this, keyInvokeNext) == 34))
553+ then invoke(this, "stakePZbbb", nil, nil)
554+ else if ((tryGetInteger(this, keyInvokeNext) == 40))
555+ then invoke(this, "SURFandVVXTNLP", nil, nil)
556+ else if ((tryGetInteger(this, keyInvokeNext) == 50))
557+ then invoke(this, "dEntry", nil, nil)
558+ else unit
524559 if ((inv00 == inv00))
525- then {
526- let inv01 = if ((tryGetInteger(this, keyInvokeNext) == 0))
527- then invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "claimIndexRewards", nil, nil)
528- else unit
529- if ((inv01 == inv01))
530- then nil
531- else throw("Strict value is not equal to itself.")
532- }
560+ then nil
533561 else throw("Strict value is not equal to itself.")
534562 }
535563
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)
376-func burnXTN () = if ((i.caller != this))
376+func burnXTNandClaim () = if ((i.caller != this))
377377 then throw("access only by project owner")
378378 else {
379- let xtnburnamount = assetBalance(this, xtnId)
380- let xtnBurn = Burn(xtnId, xtnburnamount)
381-[xtnBurn, IntegerEntry("XTN total burned", (getIntegerValue(this, "XTN total burned") + xtnburnamount)), IntegerEntry("XTN supply", match assetInfo(xtnId) {
382- case asset: Asset =>
383- ((asset.quantity - assetBalance(Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo'), xtnId)) / d6)
384- case _ =>
385- throw("Can't find asset")
386- }), IntegerEntry(keyInvokeNext, if ((burnxtnwavesprice >= getIntegerValue(this, "ATH in wavelets")))
387- then 10
388- else 20)]
379+ let invc = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "claimIndexRewards", nil, nil)
380+ if ((invc == invc))
381+ then {
382+ let xtnburnamount = assetBalance(this, xtnId)
383+ let xtnBurn = Burn(xtnId, xtnburnamount)
384+[xtnBurn, IntegerEntry("XTN total burned", (getIntegerValue(this, "XTN total burned") + xtnburnamount)), IntegerEntry("XTN supply", match assetInfo(xtnId) {
385+ case asset: Asset =>
386+ ((asset.quantity - assetBalance(Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo'), xtnId)) / d6)
387+ case _ =>
388+ throw("Can't find asset")
389+ }), IntegerEntry(keyInvokeNext, if ((burnxtnwavesprice >= getIntegerValue(this, "ATH in wavelets")))
390+ then 10
391+ else 20)]
392+ }
393+ else throw("Strict value is not equal to itself.")
389394 }
390395
391396
392397
393398 @Callable(i)
394399 func claimBBB () = if ((i.caller != this))
395400 then throw("access only by project owner")
396401 else {
397402 let wavesBalanceBefore = wavesBalance(this).available
398403 if ((wavesBalanceBefore == wavesBalanceBefore))
399404 then {
400405 let claimInv = invoke(addressFromStringValue(toBase58String(poolBBB)), "claimIndexRewards", nil, nil)
401406 if ((claimInv == claimInv))
402407 then {
403408 let wavesDifference = (wavesBalance(this).available - wavesBalanceBefore)
404409 [IntegerEntry(keyInvokeNext, 32), IntegerEntry("waves amount to swap", wavesDifference)]
405410 }
406411 else throw("Strict value is not equal to itself.")
407412 }
408413 else throw("Strict value is not equal to itself.")
409414 }
410415
411416
412417
413418 @Callable(i)
414419 func puzzlePZbbb () = if ((i.caller != this))
415420 then throw("access only by project owner")
416421 else {
417422 let spuzzle = invoke(Address(poolLP), "generateWithOneToken", [poolBBB], [AttachedPayment(puzzle, assetBalance(this, puzzle))])
418423 if ((spuzzle == spuzzle))
419424 then [IntegerEntry(keyInvokeNext, 40)]
420425 else throw("Strict value is not equal to itself.")
421426 }
422427
423428
424429
425430 @Callable(i)
426431 func stakePZbbb () = if (if ((i.caller != this))
427432 then (i.caller != invoker)
428433 else false)
429434 then throw("access only by project owner")
430435 else {
431436 let stakePZbbb = invoke(Address(poolBBB), "stakeIndexFor", [toString(this)], [AttachedPayment(pzBBB, assetBalance(this, pzBBB))])
432437 if ((stakePZbbb == stakePZbbb))
433438 then [IntegerEntry(keyInvokeNext, 40)]
434439 else throw("Strict value is not equal to itself.")
435440 }
436441
437442
438443
439444 @Callable(i)
440445 func grow1 () = if ((i.caller != this))
441446 then throw("access only by project owner")
442447 else {
443448 let swest = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(westId, assetBalance(this, westId))])
444449 if ((swest == swest))
445450 then [IntegerEntry(keyInvokeNext, 12)]
446451 else throw("Strict value is not equal to itself.")
447452 }
448453
449454
450455
451456 @Callable(i)
452457 func grow2 () = if ((i.caller != this))
453458 then throw("access only by project owner")
454459 else {
455460 let svires = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(viresId, assetBalance(this, viresId))])
456461 if ((svires == svires))
457462 then [IntegerEntry(keyInvokeNext, 13)]
458463 else throw("Strict value is not equal to itself.")
459464 }
460465
461466
462467
463468 @Callable(i)
464469 func grow3 () = if (if ((i.caller != this))
465470 then (i.caller != invoker)
466471 else false)
467472 then throw("access only by project owner")
468473 else {
469474 let segg = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(eggId, assetBalance(this, eggId))])
470475 if ((segg == segg))
471476 then [IntegerEntry(keyInvokeNext, 14)]
472477 else throw("Strict value is not equal to itself.")
473478 }
474479
475480
476481
477482 @Callable(i)
478483 func grow4 () = if ((i.caller != this))
479484 then throw("access only by project owner")
480485 else {
481486 let snsbt = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(nsbtId, assetBalance(this, nsbtId))])
482487 if ((snsbt == snsbt))
483488 then [IntegerEntry(keyInvokeNext, 15)]
484489 else throw("Strict value is not equal to itself.")
485490 }
486491
487492
488493
489494 @Callable(i)
490495 func grow5 () = if ((i.caller != this))
491496 then throw("access only by project owner")
492497 else {
493498 let swapwaves = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0))
494499 then (wavesBalance(this).available - d8)
495500 else 0)])
496501 if ((swapwaves == swapwaves))
497502 then [IntegerEntry(keyInvokeNext, 16)]
498503 else throw("Strict value is not equal to itself.")
499504 }
500505
501506
502507
503508 @Callable(i)
504509 func grow6 () = if (if ((i.caller != this))
505510 then (i.caller != invoker)
506511 else false)
507512 then throw("access only by project owner")
508513 else {
509514 let stakePZburnxtn = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "stakeIndexFor", [toString(this)], [AttachedPayment(pzBurnxtn, assetBalance(this, pzBurnxtn))])
510515 if ((stakePZburnxtn == stakePZburnxtn))
511516 then [IntegerEntry(keyInvokeNext, 30)]
512517 else throw("Strict value is not equal to itself.")
513518 }
514519
515520
516521
517522 @Callable(i)
518523 func selector () = if ((i.caller != Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt')))
519524 then throw("no access")
520525 else {
521526 let inv00 = if ((tryGetInteger(this, keyInvokeNext) == 0))
522- then invoke(this, "burnXTN", nil, nil)
523- else unit
527+ then invoke(this, "burnXTNandClaim", nil, nil)
528+ else if ((tryGetInteger(this, keyInvokeNext) == 10))
529+ then invoke(this, "burnBURNXTN", nil, nil)
530+ else if ((tryGetInteger(this, keyInvokeNext) == 11))
531+ then invoke(this, "grow1", nil, nil)
532+ else if ((tryGetInteger(this, keyInvokeNext) == 12))
533+ then invoke(this, "grow2", nil, nil)
534+ else if ((tryGetInteger(this, keyInvokeNext) == 13))
535+ then invoke(this, "grow3", nil, nil)
536+ else if ((tryGetInteger(this, keyInvokeNext) == 14))
537+ then invoke(this, "grow4", nil, nil)
538+ else if ((tryGetInteger(this, keyInvokeNext) == 15))
539+ then invoke(this, "grow5", nil, nil)
540+ else if ((tryGetInteger(this, keyInvokeNext) == 16))
541+ then invoke(this, "grow2", nil, nil)
542+ else if ((tryGetInteger(this, keyInvokeNext) == 20))
543+ then invoke(this, "pump", nil, nil)
544+ else if ((tryGetInteger(this, keyInvokeNext) == 30))
545+ then invoke(this, "PZbbb", nil, nil)
546+ else if ((tryGetInteger(this, keyInvokeNext) == 31))
547+ then invoke(this, "claimBBB", nil, nil)
548+ else if ((tryGetInteger(this, keyInvokeNext) == 32))
549+ then invoke(this, "burnSURF", nil, nil)
550+ else if ((tryGetInteger(this, keyInvokeNext) == 33))
551+ then invoke(this, "puzzlePZbbb", nil, nil)
552+ else if ((tryGetInteger(this, keyInvokeNext) == 34))
553+ then invoke(this, "stakePZbbb", nil, nil)
554+ else if ((tryGetInteger(this, keyInvokeNext) == 40))
555+ then invoke(this, "SURFandVVXTNLP", nil, nil)
556+ else if ((tryGetInteger(this, keyInvokeNext) == 50))
557+ then invoke(this, "dEntry", nil, nil)
558+ else unit
524559 if ((inv00 == inv00))
525- then {
526- let inv01 = if ((tryGetInteger(this, keyInvokeNext) == 0))
527- then invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "claimIndexRewards", nil, nil)
528- else unit
529- if ((inv01 == inv01))
530- then nil
531- else throw("Strict value is not equal to itself.")
532- }
560+ then nil
533561 else throw("Strict value is not equal to itself.")
534562 }
535563
536564

github/deemru/w8io/3ef1775 
87.81 ms