tx · H6Z8jxwUa72kBbh1sUYPe9xXtAopb5RLGchN4S6gP5oq

3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh:  -0.01400000 Waves

2023.07.17 14:56 [2669829] smart account 3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh > SELF 0.00000000 Waves

{ "type": 13, "id": "H6Z8jxwUa72kBbh1sUYPe9xXtAopb5RLGchN4S6gP5oq", "fee": 1400000, "feeAssetId": null, "timestamp": 1689595043044, "version": 2, "chainId": 84, "sender": "3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh", "senderPublicKey": "Ap7CkWd6fzBU34kGo4GJJzC5q4qWXuLVunzE25PchdGS", "proofs": [ "4HT44G7rm8fkXECMeFGoHKSsTg9fbZPA6QBUhk3T5F8YdtS9NPHFNLG4qHHio6x71sjaz8Rouis9o45GBCru4veW" ], "script": "base64:BgK8EAgCEgkKBwgICBgBCAESABIAEggKBggICAgICBIDCgEYEgASBAoCCAgSBAoCCAgSBAoCCAgiEGNvbnRyYWN0RmlsZW5hbWUiA1NFUCIMd2F2ZXNBc3NldElkIgdWTFRQT09MIghTVEJMUE9PTCIRaW52YWxpZFByaWNlQXNzZXQiB3dyYXBFcnIiA21zZyIIdGhyb3dFcnIiB3Rocm93UEQiFHRocm93Q3JlYXRlTm90Q2FsbGVkIhF0aHJvd1lvdU5vdElzc3VlciIPdGhyb3dQb29sRXhpc3RzIhV0aHJvd0Fzc2V0Tm90VmVyaWZpZWQiFnRocm93SW52YWxpZFByaWNlQXNzZXQiFHRocm93SW52YWxpZEZlZUFzc2V0Ihd0aHJvd0ludmFsaWRBbW91bnRBc3NldCISdGhyb3dJbnZhbGlkU3RhdHVzIh90aHJvd0NhbkFjdGl2YXRlT25seVBlbmRpbmdQb29sIh10aHJvd0ZhY3RvcnlSZXR1cm5lZE5vdFN0cmluZyIcdGhyb3dJbnZhbGlkUHJpY2VBc3NldEFtb3VudCIPdGhyb3dJbnZhbGlkRmVlIhV0aHJvd0ludmFsaWRBc3NldFBhaXIiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiD2tleUFkbWluUHViS2V5cyIJa2V5U3RhdHVzIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiEmtleUZhY3RvcnlDb250cmFjdCIWa2V5QXNzZXRzU3RvcmVDb250cmFjdCITa2V5RW1pc3Npb25Db250cmFjdCIJa2V5U3VmZml4IgxrZXlMYXN0SW5kZXgiC2luZGV4U3VmZml4Ig1zdGF0dXNQZW5kaW5nIg5zdGF0dXNEZWNsaW5lZCIMc3RhdHVzQWN0aXZlIghzdGF0dXNlcyIPa2V5Q3JlYXRlQ2FsbGVkIg9rZXlDcmVhdGVDYWxsZXIiFGtleUFtb3VudEFzc2V0QW1vdW50IhNrZXlQcmljZUFzc2V0QW1vdW50IglrZXlIZWlnaHQiC2tleVBvb2xUeXBlIg1rZXlGZWVBc3NldElkIgxrZXlGZWVBbW91bnQiF2tleUFtb3VudEFzc2V0TWluQW1vdW50IhdrZXlQcmljZUFzc2V0c01pbkFtb3VudCIOa2V5UHJpY2VBc3NldHMiHGdldE1hbmFnZXJWYXVsdEFkZHJlc3NPclRoaXMiByRtYXRjaDAiAXMiD2dldFN0cmluZ09yRmFpbCIDa2V5IhJzdHJpbmdPcHRpb25Ub0xpc3QiDHN0cmluZ09yVW5pdCIPZmFjdG9yeUNvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0IiJrZXlWb3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0Ih92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0Ig5pc0NyZWF0ZUNhbGxlZCIQbXVzdENyZWF0ZUNhbGxlZCIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyIJaXNNYW5hZ2VyIgFpIgJwayILbXVzdE1hbmFnZXIiCW11c3RBZG1pbiIIYWRtaW5QS3MiCmlzVmVyaWZpZWQiB2Fzc2V0SWQiDGdldElkQW5kSW5mbyIHcGF5bWVudCICaWQiBGluZm8iC3ZhbGlkU3RhdHVzIgZzdGF0dXMiB19jcmVhdGUiCHBvb2xUeXBlIhJhbW91bnRBc3NldFBheW1lbnQiEXByaWNlQXNzZXRQYXltZW50Ig9mZWVBc3NldFBheW1lbnQiCyR0MDY0ODM2NTU1Ig9hbW91bnRBc3NldEluZm8iCyR0MDY1NTg2NjI3Ig5wcmljZUFzc2V0SW5mbyILJHQwNjYzMDY2OTMiCmZlZUFzc2V0SWQiDGZlZUFzc2V0SW5mbyIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDmZlZUFzc2V0QW1vdW50Ig9wcmljZUFzc2V0c0xpc3QiFWFzc2V0TWluQW1vdW50RGVmYXVsdCIXYWxsb3dlZEFzc2V0c01pbkFtb3VudHMiFGFtb3VudEFzc2V0TWluQW1vdW50IhBwcmljZUFzc2V0c0luZGV4IhNwcmljZUFzc2V0TWluQW1vdW50IglsYXN0SW5kZXgiCGN1ckluZGV4IhBlbWlzc2lvbkNvbnRyYWN0Igpwb29sRXhpc3RzIgFAIgZjaGVja3MiE3BheW1lbnRzV2l0aEZlZVNpemUiD2J1cm5FbWlzc2lvbkludiIQZmFjdG9yeVYyQWRkcmVzcyISYXNzZXRzU3RvcmVBZGRyZXNzIg9lbWlzc2lvbkFkZHJlc3MiFHByaWNlQXNzZXRzTWluQW1vdW50IglmZWVBbW91bnQiC2NoZWNrQ2FsbGVyIgtwb29sQWRkcmVzcyIRYW1vdW50QXNzZXRUaWNrZXIiEHByaWNlQXNzZXRUaWNrZXIiBGxvZ28iDnBvb2xUeXBlT3B0aW9uIhJhY3RpdmF0ZU5ld1Bvb2xJbnYiCWxwQXNzZXRJZCIJYmVmb3JlUHV0IgNwdXQiCGFmdGVyUHV0IgR1c2VyIgNyZXMiDGFkbWluUHViS2V5cyIHY3JlYXRvciICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5QQABYQIPdXNlcl9wb29scy5yaWRlAAFiAgJfXwABYwIFV0FWRVMAAWQCB1ZMVFBPT0wAAWUCCFNUQkxQT09MAAFmAhNJbnZhbGlkIHByaWNlIGFzc2V0AQFnAQFoCQC5CQIJAMwIAgUBYQkAzAgCAgI6IAkAzAgCBQFoBQNuaWwCAAEBaQEBaAkAAgEJAQFnAQUBaAEBagAJAQFpAQIRUGVybWlzc2lvbiBkZW5pZWQBAWsACQEBaQECJENyZWF0ZSBpcyBub3QgY2FsbGVkIGZvciBhc3NldHMgcGFpcgEBbAAJAQFpAQIeWW91IGFyZSBub3QgYW1vdW50QXNzZXQgaXNzdWVyAQFtAAkBAWkBAiRQb29sIHdpdGggc3VjaCBhc3NldHMgYWxyZWFkeSBleGlzdHMBAW4ACQEBaQECFUFzc2V0IGlzIG5vdCB2ZXJpZmllZAEBbwAJAQFpAQUBZgEBcAAJAQFpAQIRSW52YWxpZCBmZWUgYXNzZXQBAXEACQEBaQECHUludmFsaWQgYW1vdW50IGFzc2V0IGF0dGFjaGVkAQFyAAkBAWkBAg5JbnZhbGlkIHN0YXR1cwEBcwAJAQFpAQIqQ2FuIGFjdGl2YXRlIHBvb2wgb25seSBpbiAncGVuZGluZycgc3RhdHVzAQF0AAkBAWkBAh1GYWN0b3J5VjIgcmV0dXJuZWQgbm90IHN0cmluZwEBdQAJAQFpAQIaaW52YWxpZCBwcmljZSBhc3NldCBhbW91bnQBAXYACQEBaQECC2ludmFsaWQgZmVlAQF3AAkBAWkBAhJpbnZhbGlkIGFzc2V0IHBhaXIBAXgACQC5CQIJAMwIAgICJXMJAMwIAgIQbWFuYWdlclB1YmxpY0tleQUDbmlsBQFiAQF5AAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAXoACQC5CQIJAMwIAgICJXMJAMwIAgIMYWRtaW5QdWJLZXlzBQNuaWwFAWIBAUECAUIBQwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZzdGF0dXMJAMwIAgUBQgkAzAgCBQFDBQNuaWwFAWIBAUQACQC5CQIJAMwIAgICJXMJAMwIAgIPZmFjdG9yeUNvbnRyYWN0BQNuaWwFAWIBAUUACQC5CQIJAMwIAgICJXMJAMwIAgITYXNzZXRzU3RvcmVDb250cmFjdAUDbmlsBQFiAQFGAAkAuQkCCQDMCAICAiVzCQDMCAICEGVtaXNzaW9uQ29udHJhY3QFA25pbAUBYgEBRwIBQgFDCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICBnN1ZmZpeAkAzAgCBQFCCQDMCAIFAUMFA25pbAUBYgEBSAAJALkJAgkAzAgCAgIlcwkAzAgCAglsYXN0SW5kZXgFA25pbAUBYgABSQIBdQABSgIHcGVuZGluZwABSwIIZGVjbGluZWQAAUwCBmFjdGl2ZQABTQkAzAgCBQFKCQDMCAIFAUsJAMwIAgUBTAUDbmlsAQFOAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIMY3JlYXRlQ2FsbGVkCQDMCAIFAUIJAMwIAgUBQwUDbmlsBQFiAQFPAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIMY3JlYXRlQ2FsbGVyCQDMCAIFAUIJAMwIAgUBQwUDbmlsBQFiAQFQAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIRYW1vdW50QXNzZXRBbW91bnQJAMwIAgUBQgkAzAgCBQFDBQNuaWwFAWIBAVECAUIBQwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhBwcmljZUFzc2V0QW1vdW50CQDMCAIFAUIJAMwIAgUBQwUDbmlsBQFiAQFSAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGaGVpZ2h0CQDMCAIFAUIJAMwIAgUBQwUDbmlsBQFiAQFTAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIIcG9vbFR5cGUJAMwIAgUBQgkAzAgCBQFDBQNuaWwFAWIBAVQACQC5CQIJAMwIAgICJXMJAMwIAgIKZmVlQXNzZXRJZAUDbmlsBQFiAQFVAAkAuQkCCQDMCAICAiVzCQDMCAICCWZlZUFtb3VudAUDbmlsBQFiAQFWAAkAuQkCCQDMCAICAiVzCQDMCAICFGFtb3VudEFzc2V0TWluQW1vdW50BQNuaWwFAWIBAVcACQC5CQIJAMwIAgICJXMJAMwIAgIUcHJpY2VBc3NldHNNaW5BbW91bnQFA25pbAUBYgEBWAAJALkJAgkAzAgCAgIlcwkAzAgCAgtwcmljZUFzc2V0cwUDbmlsBQFiAQFZAAQBWgkAoggBCQEBeQADCQABAgUBWgIGU3RyaW5nBAJhYQUBWgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWEFBHRoaXMBAmFiAQJhYwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFAmFjCQCsAgIFAmFjAg8gaXMgbm90IGRlZmluZWQBAmFkAQJhZQQBWgUCYWUDCQABAgUBWgIGU3RyaW5nBAJhYQUBWgMJAAACCQCxAgEFAmFhAAAFA25pbAkAtQkCBQJhYQUBYgMJAAECBQFaAgRVbml0BQNuaWwJAAIBAgtNYXRjaCBlcnJvcgACYWYJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhYgEJAQFEAAACYWcJALkJAgkAzAgCAgIlcwkAzAgCAhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0BQNuaWwFAWIAAmFoCQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYWYFAmFnCQEBZwECLHZvdGluZyBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzIGlzIHJlcXVpcmVkAAJhaQkAuQkCCQDMCAICAiVzCQDMCAICH3ZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QFA25pbAUBYgACYWoJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhaAUCYWkJAQFnAQI2dm90aW5nIGVtaXNzaW9uIGNhbmRpZGF0ZSBjb250cmFjdCBhZGRyZXNzIGlzIHJlcXVpcmVkAQJhawIBQgFDCQELdmFsdWVPckVsc2UCCQCgCAEJAQFOAgUBQgUBQwcBAmFsAgFCAUMDCQECYWsCBQFCBQFDBgkBAWsAAQJhbQAEAmFuCQEBWQAEAVoJAJ0IAgUCYW4JAQF4AAMJAAECBQFaAgZTdHJpbmcEAmFhBQFaCQDZBAEFAmFhAwkAAQIFAVoCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYW8BAmFwBAFaCQECYW0AAwkAAQIFAVoCCkJ5dGVWZWN0b3IEAmFxBQFaCQAAAggFAmFwD2NhbGxlclB1YmxpY0tleQUCYXEDCQABAgUBWgIEVW5pdAkAAAIIBQJhcAZjYWxsZXIFBHRoaXMJAAIBAgtNYXRjaCBlcnJvcgECYXIBAmFwAwkBAmFvAQUCYXAGCQEBagABAmFzAQJhcAQCYXQJAQJhZAEJAKIIAQkBAXoAAwkBD2NvbnRhaW5zRWxlbWVudAIFAmF0CQDYBAEIBQJhcA9jYWxsZXJQdWJsaWNLZXkGCQECYXIBBQJhcAECYXUBAmF2CQAAAgkBC3ZhbHVlT3JFbHNlAgkAmggCCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYWIBCQEBRQAJAKwCAgkArAICAghzdGF0dXNfPAUCYXYCAT4AAAACAQJhdwECYXgEAVoIBQJheAdhc3NldElkAwkAAQIFAVoCCkJ5dGVWZWN0b3IEAmF5BQFaBAJhegkBBXZhbHVlAQkA7AcBBQJheQkAlAoCCQDYBAEFAmF5BQJhegMJAAECBQFaAgRVbml0CQCUCgIFAWMFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYUEBAmFCCQEPY29udGFpbnNFbGVtZW50AgUBTQUCYUIBAmFDAgJhcAJhRAQCYUUJAQV2YWx1ZQEJAJEDAggFAmFwCHBheW1lbnRzAAAEAmFGCQEFdmFsdWUBCQCRAwIIBQJhcAhwYXltZW50cwABBAJhRwkBBXZhbHVlAQkAkQMCCAUCYXAIcGF5bWVudHMAAgQCYUgJAQJhdwEFAmFFBAFCCAUCYUgCXzEEAmFJCAUCYUgCXzIEAmFKCQECYXcBBQJhRgQBQwgFAmFKAl8xBAJhSwgFAmFKAl8yBAJhTAkBAmF3AQUCYUcEAmFNCAUCYUwCXzEEAmFOCAUCYUwCXzIEAmFPCAUCYUUGYW1vdW50BAJhUAgFAmFGBmFtb3VudAQCYVEIBQJhRwZhbW91bnQEAmFSCQECYWQBCQCdCAIFAmFmCQEBWAAEAmFTCQERQGV4dHJOYXRpdmUoMTA1NSkBCQEBVgAEAmFUCQECYWQBCQCiCAEJAQFXAAQCYVUDCQEPY29udGFpbnNFbGVtZW50AgUCYVIFAUIEAmFWCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAM8IAgUCYVIFAUIFAWYJAQV2YWx1ZQEJALYJAQkAkQMCBQJhVAUCYVYFAmFTBAJhVwMJAQ9jb250YWluc0VsZW1lbnQCBQJhUgUBQwQCYVYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAzwgCBQJhUgUBQwUBZgkBBXZhbHVlAQkAtgkBCQCRAwIFAmFUBQJhVgUCYVMEAmFYCQELdmFsdWVPckVsc2UCCQCfCAEJAQFIAAAABAJhWQkAZAIFAmFYAAEEAmFaCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYWIBCQEBRgAEAmJhCgACYmIJAPwHBAUCYWYCEnBvb2xFeGlzdHNSRUFET05MWQkAzAgCBQFCCQDMCAIFAUMFA25pbAUDbmlsAwkAAQIFAmJiAgdCb29sZWFuBQJiYgkAAgEJAKwCAgkAAwEFAmJiAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJiYwkAzAgCAwkBASEBCQECYWsCBQFCBQFDBgkBAW0ACQDMCAIDCQEBIQEFAmJhBgkBAW0ACQDMCAIDCQECIT0CBQFCBQFDBgkBAXcACQDMCAIDAwkBAmFvAQUCYXAGAwkBAmF1AQUBQgkBAmF1AQUBQwcGCQEBdwAJAMwIAgMDCQEPY29udGFpbnNFbGVtZW50AgUCYVIFAUIGCQEPY29udGFpbnNFbGVtZW50AgUCYVIFAUMGCQEBdwAJAMwIAgMDCQECYW8BBQJhcAYJAAACCQCiCAEJAQFUAAUCYU0GCQEBcAAJAMwIAgMDCQECYW8BBQJhcAYJAGcCBQJhTwkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAVYABgkBAXEACQDMCAIDAwkBAmFvAQUCYXAGCQBnAgUCYVAFAmFXBgkBAXUACQDMCAIDAwkBAmFvAQUCYXAGCQAAAgUCYVEJAJ8IAQkBAVUABgkBAXYABQNuaWwDCQAAAgUCYmMFAmJjBAJiZAADBAJiZQMJAGcCCQCQAwEIBQJhcAhwYXltZW50cwUCYmQJAPwHBAUCYVoCBGJ1cm4FA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQJhTQUCYVEFA25pbAUEdW5pdAMJAAACBQJiZQUCYmUJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQFOAgUBQgUBQwYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8CBQFCBQFDCQClCAEIBQJhcAZjYWxsZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFIAAUCYVkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUcCBQFCBQFDCQCsAgIJAKQDAQUCYVkFAUkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFSAgUBQgUBQwUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFBAgUBQgUBQwUBSgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVACBQFCBQFDBQJhTwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVECBQFCBQFDBQJhUAkAzAgCCQELU3RyaW5nRW50cnkCCQEBUwIFAUIFAUMFAmFEBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAmFwAQtjb25zdHJ1Y3RvcgcCYmYCYmcCYmgCYmkCYVUCYU0CYmoEAmJrCQECYXIBBQJhcAMJAAACBQJiawUCYmsJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUQABQJiZgkAzAgCCQELU3RyaW5nRW50cnkCCQEBRQAFAmJnCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFGAAUCYmgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVcACQC5CQIFAmJpBQFiCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVgAFAmFVCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFUAAUCYU0JAMwIAgkBDEludGVnZXJFbnRyeQIJAQFVAAUCYmoFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhcAEGY3JlYXRlAAkBAmFDAgUCYXAFAWQCYXABDGNyZWF0ZVN0YWJsZQAEAmJrCQECYXIBBQJhcAMJAAACBQJiawUCYmsJAQJhQwIFAmFwBQFlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFwAQhhY3RpdmF0ZQYCYmwBQgJibQFDAmJuAmJvBAJiYwkAzAgCCQECYXMBBQJhcAkAzAgCAwkBAmFrAgUBQgUBQwYJAQFrAAkAzAgCAwkAAAIJAQV2YWx1ZQEJAKIIAQkBAUECBQFCBQFDBQFKBgkBAXMABQNuaWwDCQAAAgUCYmMFAmJjBAJicAkAnQgCBQR0aGlzCQEBUwIFAUIFAUMEAmJxCQD8BwQFAmFmAg9hY3RpdmF0ZU5ld1Bvb2wJAMwIAgUCYmwJAMwIAgUBQgkAzAgCBQFDCQDMCAIJAKwCAgkArAICBQJibQUCYm4CAkxQCQDMCAIJAKwCAgkArAICCQCsAgIFAmJtAgEvBQJibgIeIHBvb2wgbGlxdWlkaXR5IHByb3ZpZGVyIHRva2VuCQDMCAIAAAkAzAgCAwkAAAIFAmJwBQR1bml0AgdWTFRQT09MCQEFdmFsdWUBBQJicAkAzAgCBQJibwUDbmlsBQNuaWwDCQAAAgUCYnEFAmJxBAJicgQBWgUCYnEDCQABAgUBWgIGU3RyaW5nBAJheQUBWgUCYXkJAQF0AAMJAAACBQJicgUCYnIEAmJzCQDwBwIFBHRoaXMJANkEAQUCYnIDCQAAAgUCYnMFAmJzBAJidAkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQJibAIDcHV0CQDMCAIAAAkAzAgCBwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCAwkAAAIFAUICBVdBVkVTBQR1bml0CQDZBAEFAUIJAQV2YWx1ZQEJAJ8IAQkBAVACBQFCBQFDCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCAwkAAAIFAUMCBVdBVkVTBQR1bml0CQDZBAEFAUMJAQV2YWx1ZQEJAJ8IAQkBAVECBQFCBQFDBQNuaWwDCQAAAgUCYnQFAmJ0BAJidQkA8AcCBQR0aGlzCQDZBAEFAmJyAwkAAAIFAmJ1BQJidQQCYnYJAQV2YWx1ZQEJAKYIAQkBBXZhbHVlAQkAoggBCQEBTwIFAUIFAUMEAmJ3CQD8BwQFAmFqAgdhcHByb3ZlCQDMCAIFAUIJAMwIAgUBQwUDbmlsBQNuaWwDCQAAAgUCYncFAmJ3CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFBAgUBQgUBQwUBTAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJidgkAZQIFAmJ1BQJicwkA2QQBBQJicgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFwAQlzZXRBZG1pbnMBAmJ4BAJiawkBAmFyAQUCYXADCQAAAgUCYmsFAmJrCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQF6AAkAuQkCBQJieAUBYgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFwARNwcmljZUFzc2V0c1JFQURPTkxZAAkAlAoCBQNuaWwJAQJhZAEJAKIIAQkBAVgAAmFwAQ5zdGF0dXNSRUFET05MWQIBQgFDBAJhQgQBWgkAoggBCQEBQQIFAUIFAUMDCQABAgUBWgIGU3RyaW5nBAJhYQUBWgUCYWEFBHVuaXQJAJQKAgUDbmlsBQJhQgJhcAEWZ2V0UG9vbENyZWF0b3JSRUFET05MWQIBQgFDBAJieQkBC3ZhbHVlT3JFbHNlAgkAoggBCQEBTwIFAUIFAUMCAAkAlAoCBQNuaWwFAmJ5AmFwAQpkZWxldGVQb29sAgFCAUMEAmJrAwMJAAACCAUCYXAGY2FsbGVyBQJhZgYJAQJhcgEFAmFwBgkBAWkBAhFQZXJtaXNzaW9uIGRlbmllZAMJAAACBQJiawUCYmsJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAU4CBQFCBQFDCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFPAgUBQgUBQwkAzAgCCQELRGVsZXRlRW50cnkBCQEBRwIFAUIFAUMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVICBQFCBQFDCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFBAgUBQgUBQwkAzAgCCQELRGVsZXRlRW50cnkBCQEBUAIFAUIFAUMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVECBQFCBQFDCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFTAgUBQgUBQwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJiegECYkEABAJiQgQBWgkBAmFtAAMJAAECBQFaAgpCeXRlVmVjdG9yBAJhcQUBWgUCYXEDCQABAgUBWgIEVW5pdAgFAmJ6D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJieglib2R5Qnl0ZXMJAJEDAggFAmJ6BnByb29mcwAABQJiQudRDo0=", "height": 2669829, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DGAwnEAky4Wbr9ZALyEtrrvy18ajrhH3AYfxQxiSaAGF Next: 2ueTCDCPtVL1YEctUj96QqVyped7oExYRjDmS7pnrJnV Diff:
OldNewDifferences
440440 }
441441
442442
443-@Verifier(by)
444-func bz () = {
445- let bA = {
443+
444+@Callable(ap)
445+func getPoolCreatorREADONLY (B,C) = {
446+ let by = valueOrElse(getString(O(B, C)), "")
447+ $Tuple2(nil, by)
448+ }
449+
450+
451+
452+@Callable(ap)
453+func deletePool (B,C) = {
454+ let bk = if (if ((ap.caller == af))
455+ then true
456+ else ar(ap))
457+ then true
458+ else i("Permission denied")
459+ if ((bk == bk))
460+ then [DeleteEntry(N(B, C)), DeleteEntry(O(B, C)), DeleteEntry(G(B, C)), DeleteEntry(R(B, C)), DeleteEntry(A(B, C)), DeleteEntry(P(B, C)), DeleteEntry(Q(B, C)), DeleteEntry(S(B, C))]
461+ else throw("Strict value is not equal to itself.")
462+ }
463+
464+
465+@Verifier(bz)
466+func bA () = {
467+ let bB = {
446468 let Z = am()
447469 if ($isInstanceOf(Z, "ByteVector"))
448470 then {
450472 aq
451473 }
452474 else if ($isInstanceOf(Z, "Unit"))
453- then by.senderPublicKey
475+ then bz.senderPublicKey
454476 else throw("Match error")
455477 }
456- sigVerify(by.bodyBytes, by.proofs[0], bA)
478+ sigVerify(bz.bodyBytes, bz.proofs[0], bB)
457479 }
458480
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "user_pools.ride"
55
66 let b = "__"
77
88 let c = "WAVES"
99
1010 let d = "VLTPOOL"
1111
1212 let e = "STBLPOOL"
1313
1414 let f = "Invalid price asset"
1515
1616 func g (h) = makeString([a, ": ", h], "")
1717
1818
1919 func i (h) = throw(g(h))
2020
2121
2222 func j () = i("Permission denied")
2323
2424
2525 func k () = i("Create is not called for assets pair")
2626
2727
2828 func l () = i("You are not amountAsset issuer")
2929
3030
3131 func m () = i("Pool with such assets already exists")
3232
3333
3434 func n () = i("Asset is not verified")
3535
3636
3737 func o () = i(f)
3838
3939
4040 func p () = i("Invalid fee asset")
4141
4242
4343 func q () = i("Invalid amount asset attached")
4444
4545
4646 func r () = i("Invalid status")
4747
4848
4949 func s () = i("Can activate pool only in 'pending' status")
5050
5151
5252 func t () = i("FactoryV2 returned not string")
5353
5454
5555 func u () = i("invalid price asset amount")
5656
5757
5858 func v () = i("invalid fee")
5959
6060
6161 func w () = i("invalid asset pair")
6262
6363
6464 func x () = makeString(["%s", "managerPublicKey"], b)
6565
6666
6767 func y () = "%s__managerVaultAddress"
6868
6969
7070 func z () = makeString(["%s", "adminPubKeys"], b)
7171
7272
7373 func A (B,C) = makeString(["%s%s%s", "status", B, C], b)
7474
7575
7676 func D () = makeString(["%s", "factoryContract"], b)
7777
7878
7979 func E () = makeString(["%s", "assetsStoreContract"], b)
8080
8181
8282 func F () = makeString(["%s", "emissionContract"], b)
8383
8484
8585 func G (B,C) = makeString(["%s%s%s", "suffix", B, C], b)
8686
8787
8888 func H () = makeString(["%s", "lastIndex"], b)
8989
9090
9191 let I = "u"
9292
9393 let J = "pending"
9494
9595 let K = "declined"
9696
9797 let L = "active"
9898
9999 let M = [J, K, L]
100100
101101 func N (B,C) = makeString(["%s%s%s", "createCalled", B, C], b)
102102
103103
104104 func O (B,C) = makeString(["%s%s%s", "createCaller", B, C], b)
105105
106106
107107 func P (B,C) = makeString(["%s%s%s", "amountAssetAmount", B, C], b)
108108
109109
110110 func Q (B,C) = makeString(["%s%s%s", "priceAssetAmount", B, C], b)
111111
112112
113113 func R (B,C) = makeString(["%s%s%s", "height", B, C], b)
114114
115115
116116 func S (B,C) = makeString(["%s%s%s", "poolType", B, C], b)
117117
118118
119119 func T () = makeString(["%s", "feeAssetId"], b)
120120
121121
122122 func U () = makeString(["%s", "feeAmount"], b)
123123
124124
125125 func V () = makeString(["%s", "amountAssetMinAmount"], b)
126126
127127
128128 func W () = makeString(["%s", "priceAssetsMinAmount"], b)
129129
130130
131131 func X () = makeString(["%s", "priceAssets"], b)
132132
133133
134134 func Y () = {
135135 let Z = getString(y())
136136 if ($isInstanceOf(Z, "String"))
137137 then {
138138 let aa = Z
139139 addressFromStringValue(aa)
140140 }
141141 else this
142142 }
143143
144144
145145 func ab (ac) = valueOrErrorMessage(getString(this, ac), (ac + " is not defined"))
146146
147147
148148 func ad (ae) = {
149149 let Z = ae
150150 if ($isInstanceOf(Z, "String"))
151151 then {
152152 let aa = Z
153153 if ((size(aa) == 0))
154154 then nil
155155 else split(aa, b)
156156 }
157157 else if ($isInstanceOf(Z, "Unit"))
158158 then nil
159159 else throw("Match error")
160160 }
161161
162162
163163 let af = addressFromStringValue(ab(D()))
164164
165165 let ag = makeString(["%s", "votingEmissionContract"], b)
166166
167167 let ah = addressFromStringValue(valueOrErrorMessage(getString(af, ag), g("voting emission contract address is required")))
168168
169169 let ai = makeString(["%s", "votingEmissionCandidateContract"], b)
170170
171171 let aj = addressFromStringValue(valueOrErrorMessage(getString(ah, ai), g("voting emission candidate contract address is required")))
172172
173173 func ak (B,C) = valueOrElse(getBoolean(N(B, C)), false)
174174
175175
176176 func al (B,C) = if (ak(B, C))
177177 then true
178178 else k()
179179
180180
181181 func am () = {
182182 let an = Y()
183183 let Z = getString(an, x())
184184 if ($isInstanceOf(Z, "String"))
185185 then {
186186 let aa = Z
187187 fromBase58String(aa)
188188 }
189189 else if ($isInstanceOf(Z, "Unit"))
190190 then unit
191191 else throw("Match error")
192192 }
193193
194194
195195 func ao (ap) = {
196196 let Z = am()
197197 if ($isInstanceOf(Z, "ByteVector"))
198198 then {
199199 let aq = Z
200200 (ap.callerPublicKey == aq)
201201 }
202202 else if ($isInstanceOf(Z, "Unit"))
203203 then (ap.caller == this)
204204 else throw("Match error")
205205 }
206206
207207
208208 func ar (ap) = if (ao(ap))
209209 then true
210210 else j()
211211
212212
213213 func as (ap) = {
214214 let at = ad(getString(z()))
215215 if (containsElement(at, toBase58String(ap.callerPublicKey)))
216216 then true
217217 else ar(ap)
218218 }
219219
220220
221221 func au (av) = (valueOrElse(getInteger(addressFromStringValue(ab(E())), (("status_<" + av) + ">")), 0) == 2)
222222
223223
224224 func aw (ax) = {
225225 let Z = ax.assetId
226226 if ($isInstanceOf(Z, "ByteVector"))
227227 then {
228228 let ay = Z
229229 let az = value(assetInfo(ay))
230230 $Tuple2(toBase58String(ay), az)
231231 }
232232 else if ($isInstanceOf(Z, "Unit"))
233233 then $Tuple2(c, unit)
234234 else throw("Match error")
235235 }
236236
237237
238238 func aA (aB) = containsElement(M, aB)
239239
240240
241241 func aC (ap,aD) = {
242242 let aE = value(ap.payments[0])
243243 let aF = value(ap.payments[1])
244244 let aG = value(ap.payments[2])
245245 let aH = aw(aE)
246246 let B = aH._1
247247 let aI = aH._2
248248 let aJ = aw(aF)
249249 let C = aJ._1
250250 let aK = aJ._2
251251 let aL = aw(aG)
252252 let aM = aL._1
253253 let aN = aL._2
254254 let aO = aE.amount
255255 let aP = aF.amount
256256 let aQ = aG.amount
257257 let aR = ad(getString(af, X()))
258258 let aS = getIntegerValue(V())
259259 let aT = ad(getString(W()))
260260 let aU = if (containsElement(aR, B))
261261 then {
262262 let aV = valueOrErrorMessage(indexOf(aR, B), f)
263263 value(parseInt(aT[aV]))
264264 }
265265 else aS
266266 let aW = if (containsElement(aR, C))
267267 then {
268268 let aV = valueOrErrorMessage(indexOf(aR, C), f)
269269 value(parseInt(aT[aV]))
270270 }
271271 else aS
272272 let aX = valueOrElse(getInteger(H()), 0)
273273 let aY = (aX + 1)
274274 let aZ = addressFromStringValue(ab(F()))
275275 let ba = {
276276 let bb = invoke(af, "poolExistsREADONLY", [B, C], nil)
277277 if ($isInstanceOf(bb, "Boolean"))
278278 then bb
279279 else throw(($getType(bb) + " couldn't be cast to Boolean"))
280280 }
281281 let bc = [if (!(ak(B, C)))
282282 then true
283283 else m(), if (!(ba))
284284 then true
285285 else m(), if ((B != C))
286286 then true
287287 else w(), if (if (ao(ap))
288288 then true
289289 else if (au(B))
290290 then au(C)
291291 else false)
292292 then true
293293 else w(), if (if (containsElement(aR, B))
294294 then true
295295 else containsElement(aR, C))
296296 then true
297297 else w(), if (if (ao(ap))
298298 then true
299299 else (getString(T()) == aM))
300300 then true
301301 else p(), if (if (ao(ap))
302302 then true
303303 else (aO >= getIntegerValue(V())))
304304 then true
305305 else q(), if (if (ao(ap))
306306 then true
307307 else (aP >= aW))
308308 then true
309309 else u(), if (if (ao(ap))
310310 then true
311311 else (aQ == getInteger(U())))
312312 then true
313313 else v()]
314314 if ((bc == bc))
315315 then {
316316 let bd = 3
317317 let be = if ((size(ap.payments) >= bd))
318318 then invoke(aZ, "burn", nil, [AttachedPayment(fromBase58String(aM), aQ)])
319319 else unit
320320 if ((be == be))
321321 then [BooleanEntry(N(B, C), true), StringEntry(O(B, C), toString(ap.caller)), IntegerEntry(H(), aY), StringEntry(G(B, C), (toString(aY) + I)), IntegerEntry(R(B, C), height), StringEntry(A(B, C), J), IntegerEntry(P(B, C), aO), IntegerEntry(Q(B, C), aP), StringEntry(S(B, C), aD)]
322322 else throw("Strict value is not equal to itself.")
323323 }
324324 else throw("Strict value is not equal to itself.")
325325 }
326326
327327
328328 @Callable(ap)
329329 func constructor (bf,bg,bh,bi,aU,aM,bj) = {
330330 let bk = ar(ap)
331331 if ((bk == bk))
332332 then [StringEntry(D(), bf), StringEntry(E(), bg), StringEntry(F(), bh), StringEntry(W(), makeString(bi, b)), IntegerEntry(V(), aU), StringEntry(T(), aM), IntegerEntry(U(), bj)]
333333 else throw("Strict value is not equal to itself.")
334334 }
335335
336336
337337
338338 @Callable(ap)
339339 func create () = aC(ap, d)
340340
341341
342342
343343 @Callable(ap)
344344 func createStable () = {
345345 let bk = ar(ap)
346346 if ((bk == bk))
347347 then aC(ap, e)
348348 else throw("Strict value is not equal to itself.")
349349 }
350350
351351
352352
353353 @Callable(ap)
354354 func activate (bl,B,bm,C,bn,bo) = {
355355 let bc = [as(ap), if (ak(B, C))
356356 then true
357357 else k(), if ((value(getString(A(B, C))) == J))
358358 then true
359359 else s()]
360360 if ((bc == bc))
361361 then {
362362 let bp = getString(this, S(B, C))
363363 let bq = invoke(af, "activateNewPool", [bl, B, C, ((bm + bn) + "LP"), (((bm + "/") + bn) + " pool liquidity provider token"), 0, if ((bp == unit))
364364 then "VLTPOOL"
365365 else value(bp), bo], nil)
366366 if ((bq == bq))
367367 then {
368368 let br = {
369369 let Z = bq
370370 if ($isInstanceOf(Z, "String"))
371371 then {
372372 let ay = Z
373373 ay
374374 }
375375 else t()
376376 }
377377 if ((br == br))
378378 then {
379379 let bs = assetBalance(this, fromBase58String(br))
380380 if ((bs == bs))
381381 then {
382382 let bt = invoke(addressFromStringValue(bl), "put", [0, false], [AttachedPayment(if ((B == "WAVES"))
383383 then unit
384384 else fromBase58String(B), value(getInteger(P(B, C)))), AttachedPayment(if ((C == "WAVES"))
385385 then unit
386386 else fromBase58String(C), value(getInteger(Q(B, C))))])
387387 if ((bt == bt))
388388 then {
389389 let bu = assetBalance(this, fromBase58String(br))
390390 if ((bu == bu))
391391 then {
392392 let bv = value(addressFromString(value(getString(O(B, C)))))
393393 let bw = invoke(aj, "approve", [B, C], nil)
394394 if ((bw == bw))
395395 then [StringEntry(A(B, C), L), ScriptTransfer(bv, (bu - bs), fromBase58String(br))]
396396 else throw("Strict value is not equal to itself.")
397397 }
398398 else throw("Strict value is not equal to itself.")
399399 }
400400 else throw("Strict value is not equal to itself.")
401401 }
402402 else throw("Strict value is not equal to itself.")
403403 }
404404 else throw("Strict value is not equal to itself.")
405405 }
406406 else throw("Strict value is not equal to itself.")
407407 }
408408 else throw("Strict value is not equal to itself.")
409409 }
410410
411411
412412
413413 @Callable(ap)
414414 func setAdmins (bx) = {
415415 let bk = ar(ap)
416416 if ((bk == bk))
417417 then [StringEntry(z(), makeString(bx, b))]
418418 else throw("Strict value is not equal to itself.")
419419 }
420420
421421
422422
423423 @Callable(ap)
424424 func priceAssetsREADONLY () = $Tuple2(nil, ad(getString(X())))
425425
426426
427427
428428 @Callable(ap)
429429 func statusREADONLY (B,C) = {
430430 let aB = {
431431 let Z = getString(A(B, C))
432432 if ($isInstanceOf(Z, "String"))
433433 then {
434434 let aa = Z
435435 aa
436436 }
437437 else unit
438438 }
439439 $Tuple2(nil, aB)
440440 }
441441
442442
443-@Verifier(by)
444-func bz () = {
445- let bA = {
443+
444+@Callable(ap)
445+func getPoolCreatorREADONLY (B,C) = {
446+ let by = valueOrElse(getString(O(B, C)), "")
447+ $Tuple2(nil, by)
448+ }
449+
450+
451+
452+@Callable(ap)
453+func deletePool (B,C) = {
454+ let bk = if (if ((ap.caller == af))
455+ then true
456+ else ar(ap))
457+ then true
458+ else i("Permission denied")
459+ if ((bk == bk))
460+ then [DeleteEntry(N(B, C)), DeleteEntry(O(B, C)), DeleteEntry(G(B, C)), DeleteEntry(R(B, C)), DeleteEntry(A(B, C)), DeleteEntry(P(B, C)), DeleteEntry(Q(B, C)), DeleteEntry(S(B, C))]
461+ else throw("Strict value is not equal to itself.")
462+ }
463+
464+
465+@Verifier(bz)
466+func bA () = {
467+ let bB = {
446468 let Z = am()
447469 if ($isInstanceOf(Z, "ByteVector"))
448470 then {
449471 let aq = Z
450472 aq
451473 }
452474 else if ($isInstanceOf(Z, "Unit"))
453- then by.senderPublicKey
475+ then bz.senderPublicKey
454476 else throw("Match error")
455477 }
456- sigVerify(by.bodyBytes, by.proofs[0], bA)
478+ sigVerify(bz.bodyBytes, bz.proofs[0], bB)
457479 }
458480

github/deemru/w8io/873ac7e 
79.51 ms