tx · EyaCuH3qBuzELXSdNZ4cccKJb2hmznJknsrLmrSByGCu

3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh:  -0.01400000 Waves

2023.09.25 14:00 [2770844] smart account 3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh > SELF 0.00000000 Waves

{ "type": 13, "id": "EyaCuH3qBuzELXSdNZ4cccKJb2hmznJknsrLmrSByGCu", "fee": 1400000, "feeAssetId": null, "timestamp": 1695639623195, "version": 2, "chainId": 84, "sender": "3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh", "senderPublicKey": "Ap7CkWd6fzBU34kGo4GJJzC5q4qWXuLVunzE25PchdGS", "proofs": [ "2CSQVVoxigtfPcDH5YSzyP9PtcXcfRsRHPSREBrNx948LarQY6XPbsxeYNcWG8T3QQxhCiZSvccDVekDPdQ2VQJT" ], "script": "base64:BgK8EAgCEgkKBwgICBgBCAESABIAEggKBggICAgICBIDCgEYEgASBAoCCAgSBAoCCAgSBAoCCAgiEGNvbnRyYWN0RmlsZW5hbWUiA1NFUCIMd2F2ZXNBc3NldElkIgdWTFRQT09MIghTVEJMUE9PTCIRaW52YWxpZFByaWNlQXNzZXQiB3dyYXBFcnIiA21zZyIIdGhyb3dFcnIiB3Rocm93UEQiFHRocm93Q3JlYXRlTm90Q2FsbGVkIhF0aHJvd1lvdU5vdElzc3VlciIPdGhyb3dQb29sRXhpc3RzIhV0aHJvd0Fzc2V0Tm90VmVyaWZpZWQiFnRocm93SW52YWxpZFByaWNlQXNzZXQiFHRocm93SW52YWxpZEZlZUFzc2V0Ihd0aHJvd0ludmFsaWRBbW91bnRBc3NldCISdGhyb3dJbnZhbGlkU3RhdHVzIh90aHJvd0NhbkFjdGl2YXRlT25seVBlbmRpbmdQb29sIh10aHJvd0ZhY3RvcnlSZXR1cm5lZE5vdFN0cmluZyIcdGhyb3dJbnZhbGlkUHJpY2VBc3NldEFtb3VudCIPdGhyb3dJbnZhbGlkRmVlIhV0aHJvd0ludmFsaWRBc3NldFBhaXIiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiD2tleUFkbWluUHViS2V5cyIJa2V5U3RhdHVzIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiEmtleUZhY3RvcnlDb250cmFjdCIWa2V5QXNzZXRzU3RvcmVDb250cmFjdCITa2V5RW1pc3Npb25Db250cmFjdCIJa2V5U3VmZml4IgxrZXlMYXN0SW5kZXgiC2luZGV4U3VmZml4Ig1zdGF0dXNQZW5kaW5nIg5zdGF0dXNEZWNsaW5lZCIMc3RhdHVzQWN0aXZlIghzdGF0dXNlcyIPa2V5Q3JlYXRlQ2FsbGVkIg9rZXlDcmVhdGVDYWxsZXIiFGtleUFtb3VudEFzc2V0QW1vdW50IhNrZXlQcmljZUFzc2V0QW1vdW50IglrZXlIZWlnaHQiC2tleVBvb2xUeXBlIg1rZXlGZWVBc3NldElkIgxrZXlGZWVBbW91bnQiF2tleUFtb3VudEFzc2V0TWluQW1vdW50IhdrZXlQcmljZUFzc2V0c01pbkFtb3VudCIOa2V5UHJpY2VBc3NldHMiHGdldE1hbmFnZXJWYXVsdEFkZHJlc3NPclRoaXMiByRtYXRjaDAiAXMiD2dldFN0cmluZ09yRmFpbCIDa2V5IhJzdHJpbmdPcHRpb25Ub0xpc3QiDHN0cmluZ09yVW5pdCIPZmFjdG9yeUNvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0IiJrZXlWb3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0Ih92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0Ig5pc0NyZWF0ZUNhbGxlZCIQbXVzdENyZWF0ZUNhbGxlZCIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyIJaXNNYW5hZ2VyIgFpIgJwayILbXVzdE1hbmFnZXIiCW11c3RBZG1pbiIIYWRtaW5QS3MiCmlzVmVyaWZpZWQiB2Fzc2V0SWQiDGdldElkQW5kSW5mbyIHcGF5bWVudCICaWQiBGluZm8iC3ZhbGlkU3RhdHVzIgZzdGF0dXMiB19jcmVhdGUiCHBvb2xUeXBlIhJhbW91bnRBc3NldFBheW1lbnQiEXByaWNlQXNzZXRQYXltZW50Ig9mZWVBc3NldFBheW1lbnQiCyR0MDY0ODY2NTU4Ig9hbW91bnRBc3NldEluZm8iCyR0MDY1NjE2NjMwIg5wcmljZUFzc2V0SW5mbyILJHQwNjYzMzY2OTYiCmZlZUFzc2V0SWQiDGZlZUFzc2V0SW5mbyIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDmZlZUFzc2V0QW1vdW50Ig9wcmljZUFzc2V0c0xpc3QiFWFzc2V0TWluQW1vdW50RGVmYXVsdCIXYWxsb3dlZEFzc2V0c01pbkFtb3VudHMiFGFtb3VudEFzc2V0TWluQW1vdW50IhBwcmljZUFzc2V0c0luZGV4IhNwcmljZUFzc2V0TWluQW1vdW50IglsYXN0SW5kZXgiCGN1ckluZGV4IhBlbWlzc2lvbkNvbnRyYWN0Igpwb29sRXhpc3RzIgFAIgZjaGVja3MiE3BheW1lbnRzV2l0aEZlZVNpemUiD2J1cm5FbWlzc2lvbkludiIQZmFjdG9yeVYyQWRkcmVzcyISYXNzZXRzU3RvcmVBZGRyZXNzIg9lbWlzc2lvbkFkZHJlc3MiFHByaWNlQXNzZXRzTWluQW1vdW50IglmZWVBbW91bnQiC2NoZWNrQ2FsbGVyIgtwb29sQWRkcmVzcyIRYW1vdW50QXNzZXRUaWNrZXIiEHByaWNlQXNzZXRUaWNrZXIiBGxvZ28iDnBvb2xUeXBlT3B0aW9uIhJhY3RpdmF0ZU5ld1Bvb2xJbnYiCWxwQXNzZXRJZCIJYmVmb3JlUHV0IgNwdXQiCGFmdGVyUHV0IgR1c2VyIgNyZXMiDGFkbWluUHViS2V5cyIHY3JlYXRvciICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5QQABYQIPdXNlcl9wb29scy5yaWRlAAFiAgJfXwABYwIFV0FWRVMAAWQCB1ZMVFBPT0wAAWUCCFNUQkxQT09MAAFmAhNJbnZhbGlkIHByaWNlIGFzc2V0AQFnAQFoCQC5CQIJAMwIAgUBYQkAzAgCAgI6IAkAzAgCBQFoBQNuaWwCAAEBaQEBaAkAAgEJAQFnAQUBaAEBagAJAQFpAQIRUGVybWlzc2lvbiBkZW5pZWQBAWsACQEBaQECJENyZWF0ZSBpcyBub3QgY2FsbGVkIGZvciBhc3NldHMgcGFpcgEBbAAJAQFpAQIeWW91IGFyZSBub3QgYW1vdW50QXNzZXQgaXNzdWVyAQFtAAkBAWkBAiRQb29sIHdpdGggc3VjaCBhc3NldHMgYWxyZWFkeSBleGlzdHMBAW4ACQEBaQECFUFzc2V0IGlzIG5vdCB2ZXJpZmllZAEBbwAJAQFpAQUBZgEBcAAJAQFpAQIRSW52YWxpZCBmZWUgYXNzZXQBAXEACQEBaQECHUludmFsaWQgYW1vdW50IGFzc2V0IGF0dGFjaGVkAQFyAAkBAWkBAg5JbnZhbGlkIHN0YXR1cwEBcwAJAQFpAQIqQ2FuIGFjdGl2YXRlIHBvb2wgb25seSBpbiAncGVuZGluZycgc3RhdHVzAQF0AAkBAWkBAh1GYWN0b3J5VjIgcmV0dXJuZWQgbm90IHN0cmluZwEBdQAJAQFpAQIaaW52YWxpZCBwcmljZSBhc3NldCBhbW91bnQBAXYACQEBaQECC2ludmFsaWQgZmVlAQF3AAkBAWkBAhJpbnZhbGlkIGFzc2V0IHBhaXIBAXgACQC5CQIJAMwIAgICJXMJAMwIAgIQbWFuYWdlclB1YmxpY0tleQUDbmlsBQFiAQF5AAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAXoACQC5CQIJAMwIAgICJXMJAMwIAgIMYWRtaW5QdWJLZXlzBQNuaWwFAWIBAUECAUIBQwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZzdGF0dXMJAMwIAgUBQgkAzAgCBQFDBQNuaWwFAWIBAUQACQC5CQIJAMwIAgICJXMJAMwIAgIPZmFjdG9yeUNvbnRyYWN0BQNuaWwFAWIBAUUACQC5CQIJAMwIAgICJXMJAMwIAgITYXNzZXRzU3RvcmVDb250cmFjdAUDbmlsBQFiAQFGAAkAuQkCCQDMCAICAiVzCQDMCAICEGVtaXNzaW9uQ29udHJhY3QFA25pbAUBYgEBRwIBQgFDCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICBnN1ZmZpeAkAzAgCBQFCCQDMCAIFAUMFA25pbAUBYgEBSAAJALkJAgkAzAgCAgIlcwkAzAgCAglsYXN0SW5kZXgFA25pbAUBYgABSQIBdQABSgIHcGVuZGluZwABSwIIZGVjbGluZWQAAUwCBmFjdGl2ZQABTQkAzAgCBQFKCQDMCAIFAUsJAMwIAgUBTAUDbmlsAQFOAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIMY3JlYXRlQ2FsbGVkCQDMCAIFAUIJAMwIAgUBQwUDbmlsBQFiAQFPAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIMY3JlYXRlQ2FsbGVyCQDMCAIFAUIJAMwIAgUBQwUDbmlsBQFiAQFQAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIRYW1vdW50QXNzZXRBbW91bnQJAMwIAgUBQgkAzAgCBQFDBQNuaWwFAWIBAVECAUIBQwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhBwcmljZUFzc2V0QW1vdW50CQDMCAIFAUIJAMwIAgUBQwUDbmlsBQFiAQFSAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGaGVpZ2h0CQDMCAIFAUIJAMwIAgUBQwUDbmlsBQFiAQFTAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIIcG9vbFR5cGUJAMwIAgUBQgkAzAgCBQFDBQNuaWwFAWIBAVQACQC5CQIJAMwIAgICJXMJAMwIAgIKZmVlQXNzZXRJZAUDbmlsBQFiAQFVAAkAuQkCCQDMCAICAiVzCQDMCAICCWZlZUFtb3VudAUDbmlsBQFiAQFWAAkAuQkCCQDMCAICAiVzCQDMCAICFGFtb3VudEFzc2V0TWluQW1vdW50BQNuaWwFAWIBAVcACQC5CQIJAMwIAgICJXMJAMwIAgIUcHJpY2VBc3NldHNNaW5BbW91bnQFA25pbAUBYgEBWAAJALkJAgkAzAgCAgIlcwkAzAgCAgtwcmljZUFzc2V0cwUDbmlsBQFiAQFZAAQBWgkAoggBCQEBeQADCQABAgUBWgIGU3RyaW5nBAJhYQUBWgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWEFBHRoaXMBAmFiAQJhYwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFAmFjCQCsAgIFAmFjAg8gaXMgbm90IGRlZmluZWQBAmFkAQJhZQQBWgUCYWUDCQABAgUBWgIGU3RyaW5nBAJhYQUBWgMJAAACCQCxAgEFAmFhAAAFA25pbAkAvAkCBQJhYQUBYgMJAAECBQFaAgRVbml0BQNuaWwJAAIBAgtNYXRjaCBlcnJvcgACYWYJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhYgEJAQFEAAACYWcJALkJAgkAzAgCAgIlcwkAzAgCAhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0BQNuaWwFAWIAAmFoCQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYWYFAmFnCQEBZwECLHZvdGluZyBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzIGlzIHJlcXVpcmVkAAJhaQkAuQkCCQDMCAICAiVzCQDMCAICH3ZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QFA25pbAUBYgACYWoJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhaAUCYWkJAQFnAQI2dm90aW5nIGVtaXNzaW9uIGNhbmRpZGF0ZSBjb250cmFjdCBhZGRyZXNzIGlzIHJlcXVpcmVkAQJhawIBQgFDCQELdmFsdWVPckVsc2UCCQCgCAEJAQFOAgUBQgUBQwcBAmFsAgFCAUMDCQECYWsCBQFCBQFDBgkBAWsAAQJhbQAEAmFuCQEBWQAEAVoJAJ0IAgUCYW4JAQF4AAMJAAECBQFaAgZTdHJpbmcEAmFhBQFaCQDZBAEFAmFhAwkAAQIFAVoCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYW8BAmFwBAFaCQECYW0AAwkAAQIFAVoCCkJ5dGVWZWN0b3IEAmFxBQFaCQAAAggFAmFwD2NhbGxlclB1YmxpY0tleQUCYXEDCQABAgUBWgIEVW5pdAkAAAIIBQJhcAZjYWxsZXIFBHRoaXMJAAIBAgtNYXRjaCBlcnJvcgECYXIBAmFwAwkBAmFvAQUCYXAGCQEBagABAmFzAQJhcAQCYXQJAQJhZAEJAKIIAQkBAXoAAwkBD2NvbnRhaW5zRWxlbWVudAIFAmF0CQDYBAEIBQJhcA9jYWxsZXJQdWJsaWNLZXkGCQECYXIBBQJhcAECYXUBAmF2CQAAAgkBC3ZhbHVlT3JFbHNlAgkAmggCCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYWIBCQEBRQAJAKwCAgkArAICAghzdGF0dXNfPAUCYXYCAT4AAAACAQJhdwECYXgEAVoIBQJheAdhc3NldElkAwkAAQIFAVoCCkJ5dGVWZWN0b3IEAmF5BQFaBAJhegkBBXZhbHVlAQkA7AcBBQJheQkAlAoCCQDYBAEFAmF5BQJhegMJAAECBQFaAgRVbml0CQCUCgIFAWMFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYUEBAmFCCQEPY29udGFpbnNFbGVtZW50AgUBTQUCYUIBAmFDAgJhcAJhRAQCYUUJAQV2YWx1ZQEJAJEDAggFAmFwCHBheW1lbnRzAAAEAmFGCQEFdmFsdWUBCQCRAwIIBQJhcAhwYXltZW50cwABBAJhRwkBBXZhbHVlAQkAkQMCCAUCYXAIcGF5bWVudHMAAgQCYUgJAQJhdwEFAmFFBAFCCAUCYUgCXzEEAmFJCAUCYUgCXzIEAmFKCQECYXcBBQJhRgQBQwgFAmFKAl8xBAJhSwgFAmFKAl8yBAJhTAkBAmF3AQUCYUcEAmFNCAUCYUwCXzEEAmFOCAUCYUwCXzIEAmFPCAUCYUUGYW1vdW50BAJhUAgFAmFGBmFtb3VudAQCYVEIBQJhRwZhbW91bnQEAmFSCQECYWQBCQCdCAIFAmFmCQEBWAAEAmFTCQERQGV4dHJOYXRpdmUoMTA1NSkBCQEBVgAEAmFUCQECYWQBCQCiCAEJAQFXAAQCYVUDCQEPY29udGFpbnNFbGVtZW50AgUCYVIFAUIEAmFWCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAM8IAgUCYVIFAUIFAWYJAQV2YWx1ZQEJALYJAQkAkQMCBQJhVAUCYVYFAmFTBAJhVwMJAQ9jb250YWluc0VsZW1lbnQCBQJhUgUBQwQCYVYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAzwgCBQJhUgUBQwUBZgkBBXZhbHVlAQkAtgkBCQCRAwIFAmFUBQJhVgUCYVMEAmFYCQELdmFsdWVPckVsc2UCCQCfCAEJAQFIAAAABAJhWQkAZAIFAmFYAAEEAmFaCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYWIBCQEBRgAEAmJhCgACYmIJAPwHBAUCYWYCEnBvb2xFeGlzdHNSRUFET05MWQkAzAgCBQFCCQDMCAIFAUMFA25pbAUDbmlsAwkAAQIFAmJiAgdCb29sZWFuBQJiYgkAAgEJAKwCAgkAAwEFAmJiAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJiYwkAzAgCAwkBASEBCQECYWsCBQFCBQFDBgkBAW0ACQDMCAIDCQEBIQEFAmJhBgkBAW0ACQDMCAIDCQECIT0CBQFCBQFDBgkBAXcACQDMCAIDAwkBAmFvAQUCYXAGAwkBAmF1AQUBQgkBAmF1AQUBQwcGCQEBdwAJAMwIAgMDCQEPY29udGFpbnNFbGVtZW50AgUCYVIFAUIGCQEPY29udGFpbnNFbGVtZW50AgUCYVIFAUMGCQEBdwAJAMwIAgMDCQECYW8BBQJhcAYJAAACCQCiCAEJAQFUAAUCYU0GCQEBcAAJAMwIAgMDCQECYW8BBQJhcAYJAGcCBQJhTwkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAVYABgkBAXEACQDMCAIDAwkBAmFvAQUCYXAGCQBnAgUCYVAFAmFXBgkBAXUACQDMCAIDAwkBAmFvAQUCYXAGCQAAAgUCYVEJAJ8IAQkBAVUABgkBAXYABQNuaWwDCQAAAgUCYmMFAmJjBAJiZAADBAJiZQMJAGcCCQCQAwEIBQJhcAhwYXltZW50cwUCYmQJAPwHBAUCYVoCBGJ1cm4FA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQJhTQUCYVEFA25pbAUEdW5pdAMJAAACBQJiZQUCYmUJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQFOAgUBQgUBQwYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8CBQFCBQFDCQClCAEIBQJhcAZjYWxsZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFIAAUCYVkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUcCBQFCBQFDCQCsAgIJAKQDAQUCYVkFAUkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFSAgUBQgUBQwUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFBAgUBQgUBQwUBSgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVACBQFCBQFDBQJhTwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVECBQFCBQFDBQJhUAkAzAgCCQELU3RyaW5nRW50cnkCCQEBUwIFAUIFAUMFAmFEBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAmFwAQtjb25zdHJ1Y3RvcgcCYmYCYmcCYmgCYmkCYVUCYU0CYmoEAmJrCQECYXIBBQJhcAMJAAACBQJiawUCYmsJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUQABQJiZgkAzAgCCQELU3RyaW5nRW50cnkCCQEBRQAFAmJnCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFGAAUCYmgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVcACQC5CQIFAmJpBQFiCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVgAFAmFVCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFUAAUCYU0JAMwIAgkBDEludGVnZXJFbnRyeQIJAQFVAAUCYmoFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhcAEGY3JlYXRlAAkBAmFDAgUCYXAFAWQCYXABDGNyZWF0ZVN0YWJsZQAEAmJrCQECYXIBBQJhcAMJAAACBQJiawUCYmsJAQJhQwIFAmFwBQFlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFwAQhhY3RpdmF0ZQYCYmwBQgJibQFDAmJuAmJvBAJiYwkAzAgCCQECYXMBBQJhcAkAzAgCAwkBAmFrAgUBQgUBQwYJAQFrAAkAzAgCAwkAAAIJAQV2YWx1ZQEJAKIIAQkBAUECBQFCBQFDBQFKBgkBAXMABQNuaWwDCQAAAgUCYmMFAmJjBAJicAkAnQgCBQR0aGlzCQEBUwIFAUIFAUMEAmJxCQD8BwQFAmFmAg9hY3RpdmF0ZU5ld1Bvb2wJAMwIAgUCYmwJAMwIAgUBQgkAzAgCBQFDCQDMCAIJAKwCAgkArAICBQJibQUCYm4CAkxQCQDMCAIJAKwCAgkArAICCQCsAgIFAmJtAgEvBQJibgIeIHBvb2wgbGlxdWlkaXR5IHByb3ZpZGVyIHRva2VuCQDMCAIAAAkAzAgCAwkAAAIFAmJwBQR1bml0AgdWTFRQT09MCQEFdmFsdWUBBQJicAkAzAgCBQJibwUDbmlsBQNuaWwDCQAAAgUCYnEFAmJxBAJicgQBWgUCYnEDCQABAgUBWgIGU3RyaW5nBAJheQUBWgUCYXkJAQF0AAMJAAACBQJicgUCYnIEAmJzCQDwBwIFBHRoaXMJANkEAQUCYnIDCQAAAgUCYnMFAmJzBAJidAkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQJibAIDcHV0CQDMCAIAAAkAzAgCBwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCAwkAAAIFAUICBVdBVkVTBQR1bml0CQDZBAEFAUIJAQV2YWx1ZQEJAJ8IAQkBAVACBQFCBQFDCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCAwkAAAIFAUMCBVdBVkVTBQR1bml0CQDZBAEFAUMJAQV2YWx1ZQEJAJ8IAQkBAVECBQFCBQFDBQNuaWwDCQAAAgUCYnQFAmJ0BAJidQkA8AcCBQR0aGlzCQDZBAEFAmJyAwkAAAIFAmJ1BQJidQQCYnYJAQV2YWx1ZQEJAKYIAQkBBXZhbHVlAQkAoggBCQEBTwIFAUIFAUMEAmJ3CQD8BwQFAmFqAgdhcHByb3ZlCQDMCAIFAUIJAMwIAgUBQwUDbmlsBQNuaWwDCQAAAgUCYncFAmJ3CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFBAgUBQgUBQwUBTAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJidgkAZQIFAmJ1BQJicwkA2QQBBQJicgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFwAQlzZXRBZG1pbnMBAmJ4BAJiawkBAmFyAQUCYXADCQAAAgUCYmsFAmJrCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQF6AAkAuQkCBQJieAUBYgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFwARNwcmljZUFzc2V0c1JFQURPTkxZAAkAlAoCBQNuaWwJAQJhZAEJAKIIAQkBAVgAAmFwAQ5zdGF0dXNSRUFET05MWQIBQgFDBAJhQgQBWgkAoggBCQEBQQIFAUIFAUMDCQABAgUBWgIGU3RyaW5nBAJhYQUBWgUCYWEFBHVuaXQJAJQKAgUDbmlsBQJhQgJhcAEWZ2V0UG9vbENyZWF0b3JSRUFET05MWQIBQgFDBAJieQkBC3ZhbHVlT3JFbHNlAgkAoggBCQEBTwIFAUIFAUMCAAkAlAoCBQNuaWwFAmJ5AmFwAQpkZWxldGVQb29sAgFCAUMEAmJrAwMJAAACCAUCYXAGY2FsbGVyBQJhZgYJAQJhcgEFAmFwBgkBAWkBAhFQZXJtaXNzaW9uIGRlbmllZAMJAAACBQJiawUCYmsJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAU4CBQFCBQFDCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFPAgUBQgUBQwkAzAgCCQELRGVsZXRlRW50cnkBCQEBRwIFAUIFAUMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVICBQFCBQFDCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFBAgUBQgUBQwkAzAgCCQELRGVsZXRlRW50cnkBCQEBUAIFAUIFAUMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVECBQFCBQFDCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFTAgUBQgUBQwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJiegECYkEABAJiQgQBWgkBAmFtAAMJAAECBQFaAgpCeXRlVmVjdG9yBAJhcQUBWgUCYXEDCQABAgUBWgIEVW5pdAgFAmJ6D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJieglib2R5Qnl0ZXMJAJEDAggFAmJ6BnByb29mcwAABQJiQrNxask=", "height": 2770844, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4E2ZGZuAwiDitm8oKXkoQtuMSfoAKW2mxQxZYSKzjyvu Next: C1WDv6ANK9MfpBf6GG3xXmP7H2tEPibczdoYiuDT8Am2 Diff:
OldNewDifferences
122122 func U () = makeString(["%s", "feeAmount"], b)
123123
124124
125-func V () = makeString(["%s", "poolAssetDefaultMinAmount"], b)
125+func V () = makeString(["%s", "amountAssetMinAmount"], b)
126126
127127
128-func W (X) = makeString(["%s%s", "poolAssetMinAmount", X], b)
128+func W () = makeString(["%s", "priceAssetsMinAmount"], b)
129129
130130
131-func Y () = makeString(["%s", "priceAssets"], b)
131+func X () = makeString(["%s", "priceAssets"], b)
132132
133133
134-func Z () = {
135- let aa = getString(y())
136- if ($isInstanceOf(aa, "String"))
134+func Y () = {
135+ let Z = getString(y())
136+ if ($isInstanceOf(Z, "String"))
137137 then {
138- let ab = aa
139- addressFromStringValue(ab)
138+ let aa = Z
139+ addressFromStringValue(aa)
140140 }
141141 else this
142142 }
143143
144144
145-func ac (ad) = valueOrErrorMessage(getString(this, ad), (ad + " is not defined"))
145+func ab (ac) = valueOrErrorMessage(getString(this, ac), (ac + " is not defined"))
146146
147147
148-func ae (af) = {
149- let aa = af
150- if ($isInstanceOf(aa, "String"))
148+func ad (ae) = {
149+ let Z = ae
150+ if ($isInstanceOf(Z, "String"))
151151 then {
152- let ab = aa
153- if ((size(ab) == 0))
152+ let aa = Z
153+ if ((size(aa) == 0))
154154 then nil
155- else split_4C(ab, b)
155+ else split_4C(aa, b)
156156 }
157- else if ($isInstanceOf(aa, "Unit"))
157+ else if ($isInstanceOf(Z, "Unit"))
158158 then nil
159159 else throw("Match error")
160160 }
161161
162162
163-let ag = addressFromStringValue(ac(D()))
163+let af = addressFromStringValue(ab(D()))
164164
165-let ah = makeString(["%s", "votingEmissionContract"], b)
165+let ag = makeString(["%s", "votingEmissionContract"], b)
166166
167-let ai = addressFromStringValue(valueOrErrorMessage(getString(ag, ah), g("voting emission contract address is required")))
167+let ah = addressFromStringValue(valueOrErrorMessage(getString(af, ag), g("voting emission contract address is required")))
168168
169-let aj = makeString(["%s", "votingEmissionCandidateContract"], b)
169+let ai = makeString(["%s", "votingEmissionCandidateContract"], b)
170170
171-let ak = addressFromStringValue(valueOrErrorMessage(getString(ai, aj), g("voting emission candidate contract address is required")))
171+let aj = addressFromStringValue(valueOrErrorMessage(getString(ah, ai), g("voting emission candidate contract address is required")))
172172
173-func al (B,C) = valueOrElse(getBoolean(N(B, C)), false)
173+func ak (B,C) = valueOrElse(getBoolean(N(B, C)), false)
174174
175175
176-func am (B,C) = if (al(B, C))
176+func al (B,C) = if (ak(B, C))
177177 then true
178178 else k()
179179
180180
181-func an () = {
182- let ao = Z()
183- let aa = getString(ao, x())
184- if ($isInstanceOf(aa, "String"))
181+func am () = {
182+ let an = Y()
183+ let Z = getString(an, x())
184+ if ($isInstanceOf(Z, "String"))
185185 then {
186- let ab = aa
187- fromBase58String(ab)
186+ let aa = Z
187+ fromBase58String(aa)
188188 }
189- else if ($isInstanceOf(aa, "Unit"))
189+ else if ($isInstanceOf(Z, "Unit"))
190190 then unit
191191 else throw("Match error")
192192 }
193193
194194
195-func ap (aq) = {
196- let aa = an()
197- if ($isInstanceOf(aa, "ByteVector"))
195+func ao (ap) = {
196+ let Z = am()
197+ if ($isInstanceOf(Z, "ByteVector"))
198198 then {
199- let ar = aa
200- (aq.callerPublicKey == ar)
199+ let aq = Z
200+ (ap.callerPublicKey == aq)
201201 }
202- else if ($isInstanceOf(aa, "Unit"))
203- then (aq.caller == this)
202+ else if ($isInstanceOf(Z, "Unit"))
203+ then (ap.caller == this)
204204 else throw("Match error")
205205 }
206206
207207
208-func as (aq) = if (ap(aq))
208+func ar (ap) = if (ao(ap))
209209 then true
210210 else j()
211211
212212
213-func at (aq) = {
214- let au = ae(getString(z()))
215- if (containsElement(au, toBase58String(aq.callerPublicKey)))
213+func as (ap) = {
214+ let at = ad(getString(z()))
215+ if (containsElement(at, toBase58String(ap.callerPublicKey)))
216216 then true
217- else as(aq)
217+ else ar(ap)
218218 }
219219
220220
221-func av (X) = (valueOrElse(getInteger(addressFromStringValue(ac(E())), (("status_<" + X) + ">")), 0) == 2)
221+func au (av) = (valueOrElse(getInteger(addressFromStringValue(ab(E())), (("status_<" + av) + ">")), 0) == 2)
222222
223223
224224 func aw (ax) = {
225- let aa = ax.assetId
226- if ($isInstanceOf(aa, "ByteVector"))
225+ let Z = ax.assetId
226+ if ($isInstanceOf(Z, "ByteVector"))
227227 then {
228- let ay = aa
228+ let ay = Z
229229 let az = value(assetInfo(ay))
230230 $Tuple2(toBase58String(ay), az)
231231 }
232- else if ($isInstanceOf(aa, "Unit"))
232+ else if ($isInstanceOf(Z, "Unit"))
233233 then $Tuple2(c, unit)
234234 else throw("Match error")
235235 }
238238 func aA (aB) = containsElement(M, aB)
239239
240240
241-func aC (aq,aD) = {
242- let aE = value(aq.payments[0])
243- let aF = value(aq.payments[1])
244- let aG = value(aq.payments[2])
241+func aC (ap,aD) = {
242+ let aE = value(ap.payments[0])
243+ let aF = value(ap.payments[1])
244+ let aG = value(ap.payments[2])
245245 let aH = aw(aE)
246246 let B = aH._1
247247 let aI = aH._2
254254 let aO = aE.amount
255255 let aP = aF.amount
256256 let aQ = aG.amount
257- let aR = ae(getString(ag, Y()))
258- let aS = getIntegerValue(ag, V())
259- let aT = valueOrElse(getInteger(ag, W(B)), aS)
260- let aU = valueOrElse(getInteger(ag, W(C)), aS)
261- let aV = valueOrElse(getInteger(H()), 0)
262- let aW = (aV + 1)
263- let aX = addressFromStringValue(ac(F()))
264- let aY = {
265- let aZ = invoke(ag, "poolExistsREADONLY", [B, C], nil)
266- if ($isInstanceOf(aZ, "Boolean"))
267- then aZ
268- else throw(($getType(aZ) + " couldn't be cast to Boolean"))
257+ let aR = ad(getString(af, X()))
258+ let aS = getIntegerValue(V())
259+ let aT = ad(getString(W()))
260+ let aU = if (containsElement(aR, B))
261+ then {
262+ let aV = valueOrErrorMessage(indexOf(aR, B), f)
263+ value(parseInt(aT[aV]))
264+ }
265+ else aS
266+ let aW = if (containsElement(aR, C))
267+ then {
268+ let aV = valueOrErrorMessage(indexOf(aR, C), f)
269+ value(parseInt(aT[aV]))
270+ }
271+ else aS
272+ let aX = valueOrElse(getInteger(H()), 0)
273+ let aY = (aX + 1)
274+ let aZ = addressFromStringValue(ab(F()))
275+ let ba = {
276+ let bb = invoke(af, "poolExistsREADONLY", [B, C], nil)
277+ if ($isInstanceOf(bb, "Boolean"))
278+ then bb
279+ else throw(($getType(bb) + " couldn't be cast to Boolean"))
269280 }
270- let ba = [if (!(al(B, C)))
281+ let bc = [if (!(ak(B, C)))
271282 then true
272- else m(), if (!(aY))
283+ else m(), if (!(ba))
273284 then true
274285 else m(), if ((B != C))
275286 then true
276- else w(), if (if (ap(aq))
287+ else w(), if (if (ao(ap))
277288 then true
278- else if (av(B))
279- then av(C)
289+ else if (au(B))
290+ then au(C)
280291 else false)
281292 then true
282293 else w(), if (if (containsElement(aR, B))
283294 then true
284295 else containsElement(aR, C))
285296 then true
286- else w(), if (if (ap(aq))
297+ else w(), if (if (ao(ap))
287298 then true
288299 else (getString(T()) == aM))
289300 then true
290- else p(), if (if (ap(aq))
301+ else p(), if (if (ao(ap))
291302 then true
292- else (aO >= aT))
303+ else (aO >= getIntegerValue(V())))
293304 then true
294- else q(), if (if (ap(aq))
305+ else q(), if (if (ao(ap))
295306 then true
296- else (aP >= aU))
307+ else (aP >= aW))
297308 then true
298- else u(), if (if (ap(aq))
309+ else u(), if (if (ao(ap))
299310 then true
300311 else (aQ == getInteger(U())))
301312 then true
302313 else v()]
303- if ((ba == ba))
314+ if ((bc == bc))
304315 then {
305- let bb = 3
306- let bc = if ((size(aq.payments) >= bb))
307- then invoke(aX, "burn", nil, [AttachedPayment(fromBase58String(aM), aQ)])
316+ let bd = 3
317+ let be = if ((size(ap.payments) >= bd))
318+ then invoke(aZ, "burn", nil, [AttachedPayment(fromBase58String(aM), aQ)])
308319 else unit
309- if ((bc == bc))
310- then [BooleanEntry(N(B, C), true), StringEntry(O(B, C), toString(aq.caller)), IntegerEntry(H(), aW), StringEntry(G(B, C), (toString(aW) + 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)]
320+ if ((be == be))
321+ 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)]
311322 else throw("Strict value is not equal to itself.")
312323 }
313324 else throw("Strict value is not equal to itself.")
314325 }
315326
316327
317-@Callable(aq)
318-func constructor (bd,be,bf,aM,bg) = {
319- let bh = as(aq)
320- if ((bh == bh))
321- then [StringEntry(D(), bd), StringEntry(E(), be), StringEntry(F(), bf), StringEntry(T(), aM), IntegerEntry(U(), bg)]
328+@Callable(ap)
329+func constructor (bf,bg,bh,bi,aU,aM,bj) = {
330+ let bk = ar(ap)
331+ if ((bk == bk))
332+ then [StringEntry(D(), bf), StringEntry(E(), bg), StringEntry(F(), bh), StringEntry(W(), makeString(bi, b)), IntegerEntry(V(), aU), StringEntry(T(), aM), IntegerEntry(U(), bj)]
322333 else throw("Strict value is not equal to itself.")
323334 }
324335
325336
326337
327-@Callable(aq)
328-func create () = aC(aq, d)
338+@Callable(ap)
339+func create () = aC(ap, d)
329340
330341
331342
332-@Callable(aq)
343+@Callable(ap)
333344 func createStable () = {
334- let bh = as(aq)
335- if ((bh == bh))
336- then aC(aq, e)
345+ let bk = ar(ap)
346+ if ((bk == bk))
347+ then aC(ap, e)
337348 else throw("Strict value is not equal to itself.")
338349 }
339350
340351
341352
342-@Callable(aq)
343-func activate (bi,B,bj,C,bk,bl) = {
344- let ba = [at(aq), if (al(B, C))
353+@Callable(ap)
354+func activate (bl,B,bm,C,bn,bo) = {
355+ let bc = [as(ap), if (ak(B, C))
345356 then true
346357 else k(), if ((value(getString(A(B, C))) == J))
347358 then true
348359 else s()]
349- if ((ba == ba))
360+ if ((bc == bc))
350361 then {
351- let bm = getString(this, S(B, C))
352- let bn = invoke(ag, "activateNewPool", [bi, B, C, ((bj + bk) + "LP"), (((bj + "/") + bk) + " pool liquidity provider token"), 0, if ((bm == unit))
362+ let bp = getString(this, S(B, C))
363+ let bq = invoke(af, "activateNewPool", [bl, B, C, ((bm + bn) + "LP"), (((bm + "/") + bn) + " pool liquidity provider token"), 0, if ((bp == unit))
353364 then "VLTPOOL"
354- else value(bm), bl], nil)
355- if ((bn == bn))
365+ else value(bp), bo], nil)
366+ if ((bq == bq))
356367 then {
357- let bo = {
358- let aa = bn
359- if ($isInstanceOf(aa, "String"))
368+ let br = {
369+ let Z = bq
370+ if ($isInstanceOf(Z, "String"))
360371 then {
361- let ay = aa
372+ let ay = Z
362373 ay
363374 }
364375 else t()
365376 }
366- if ((bo == bo))
377+ if ((br == br))
367378 then {
368- let bp = assetBalance(this, fromBase58String(bo))
369- if ((bp == bp))
379+ let bs = assetBalance(this, fromBase58String(br))
380+ if ((bs == bs))
370381 then {
371- let bq = invoke(addressFromStringValue(bi), "put", [0, false], [AttachedPayment(if ((B == "WAVES"))
382+ let bt = invoke(addressFromStringValue(bl), "put", [0, false], [AttachedPayment(if ((B == "WAVES"))
372383 then unit
373384 else fromBase58String(B), value(getInteger(P(B, C)))), AttachedPayment(if ((C == "WAVES"))
374385 then unit
375386 else fromBase58String(C), value(getInteger(Q(B, C))))])
376- if ((bq == bq))
387+ if ((bt == bt))
377388 then {
378- let br = assetBalance(this, fromBase58String(bo))
379- if ((br == br))
389+ let bu = assetBalance(this, fromBase58String(br))
390+ if ((bu == bu))
380391 then {
381- let bs = value(addressFromString(value(getString(O(B, C)))))
382- let bt = invoke(ak, "approve", [B, C], nil)
383- if ((bt == bt))
384- then [StringEntry(A(B, C), L), ScriptTransfer(bs, (br - bp), fromBase58String(bo))]
392+ let bv = value(addressFromString(value(getString(O(B, C)))))
393+ let bw = invoke(aj, "approve", [B, C], nil)
394+ if ((bw == bw))
395+ then [StringEntry(A(B, C), L), ScriptTransfer(bv, (bu - bs), fromBase58String(br))]
385396 else throw("Strict value is not equal to itself.")
386397 }
387398 else throw("Strict value is not equal to itself.")
399410
400411
401412
402-@Callable(aq)
403-func setAdmins (bu) = {
404- let bh = as(aq)
405- if ((bh == bh))
406- then [StringEntry(z(), makeString(bu, b))]
413+@Callable(ap)
414+func setAdmins (bx) = {
415+ let bk = ar(ap)
416+ if ((bk == bk))
417+ then [StringEntry(z(), makeString(bx, b))]
407418 else throw("Strict value is not equal to itself.")
408419 }
409420
410421
411422
412-@Callable(aq)
413-func priceAssetsREADONLY () = $Tuple2(nil, ae(getString(Y())))
423+@Callable(ap)
424+func priceAssetsREADONLY () = $Tuple2(nil, ad(getString(X())))
414425
415426
416427
417-@Callable(aq)
428+@Callable(ap)
418429 func statusREADONLY (B,C) = {
419430 let aB = {
420- let aa = getString(A(B, C))
421- if ($isInstanceOf(aa, "String"))
431+ let Z = getString(A(B, C))
432+ if ($isInstanceOf(Z, "String"))
422433 then {
423- let ab = aa
424- ab
434+ let aa = Z
435+ aa
425436 }
426437 else unit
427438 }
430441
431442
432443
433-@Callable(aq)
444+@Callable(ap)
434445 func getPoolCreatorREADONLY (B,C) = {
435- let bv = valueOrElse(getString(O(B, C)), "")
436- $Tuple2(nil, bv)
446+ let by = valueOrElse(getString(O(B, C)), "")
447+ $Tuple2(nil, by)
437448 }
438449
439450
440451
441-@Callable(aq)
452+@Callable(ap)
442453 func deletePool (B,C) = {
443- let bh = if (if ((aq.caller == ag))
454+ let bk = if (if ((ap.caller == af))
444455 then true
445- else as(aq))
456+ else ar(ap))
446457 then true
447458 else i("Permission denied")
448- if ((bh == bh))
459+ if ((bk == bk))
449460 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))]
450461 else throw("Strict value is not equal to itself.")
451462 }
452463
453464
454-@Verifier(bw)
455-func bx () = {
456- let by = {
457- let aa = an()
458- if ($isInstanceOf(aa, "ByteVector"))
465+@Verifier(bz)
466+func bA () = {
467+ let bB = {
468+ let Z = am()
469+ if ($isInstanceOf(Z, "ByteVector"))
459470 then {
460- let ar = aa
461- ar
471+ let aq = Z
472+ aq
462473 }
463- else if ($isInstanceOf(aa, "Unit"))
464- then bw.senderPublicKey
474+ else if ($isInstanceOf(Z, "Unit"))
475+ then bz.senderPublicKey
465476 else throw("Match error")
466477 }
467- sigVerify(bw.bodyBytes, bw.proofs[0], by)
478+ sigVerify(bz.bodyBytes, bz.proofs[0], bB)
468479 }
469480
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
125-func V () = makeString(["%s", "poolAssetDefaultMinAmount"], b)
125+func V () = makeString(["%s", "amountAssetMinAmount"], b)
126126
127127
128-func W (X) = makeString(["%s%s", "poolAssetMinAmount", X], b)
128+func W () = makeString(["%s", "priceAssetsMinAmount"], b)
129129
130130
131-func Y () = makeString(["%s", "priceAssets"], b)
131+func X () = makeString(["%s", "priceAssets"], b)
132132
133133
134-func Z () = {
135- let aa = getString(y())
136- if ($isInstanceOf(aa, "String"))
134+func Y () = {
135+ let Z = getString(y())
136+ if ($isInstanceOf(Z, "String"))
137137 then {
138- let ab = aa
139- addressFromStringValue(ab)
138+ let aa = Z
139+ addressFromStringValue(aa)
140140 }
141141 else this
142142 }
143143
144144
145-func ac (ad) = valueOrErrorMessage(getString(this, ad), (ad + " is not defined"))
145+func ab (ac) = valueOrErrorMessage(getString(this, ac), (ac + " is not defined"))
146146
147147
148-func ae (af) = {
149- let aa = af
150- if ($isInstanceOf(aa, "String"))
148+func ad (ae) = {
149+ let Z = ae
150+ if ($isInstanceOf(Z, "String"))
151151 then {
152- let ab = aa
153- if ((size(ab) == 0))
152+ let aa = Z
153+ if ((size(aa) == 0))
154154 then nil
155- else split_4C(ab, b)
155+ else split_4C(aa, b)
156156 }
157- else if ($isInstanceOf(aa, "Unit"))
157+ else if ($isInstanceOf(Z, "Unit"))
158158 then nil
159159 else throw("Match error")
160160 }
161161
162162
163-let ag = addressFromStringValue(ac(D()))
163+let af = addressFromStringValue(ab(D()))
164164
165-let ah = makeString(["%s", "votingEmissionContract"], b)
165+let ag = makeString(["%s", "votingEmissionContract"], b)
166166
167-let ai = addressFromStringValue(valueOrErrorMessage(getString(ag, ah), g("voting emission contract address is required")))
167+let ah = addressFromStringValue(valueOrErrorMessage(getString(af, ag), g("voting emission contract address is required")))
168168
169-let aj = makeString(["%s", "votingEmissionCandidateContract"], b)
169+let ai = makeString(["%s", "votingEmissionCandidateContract"], b)
170170
171-let ak = addressFromStringValue(valueOrErrorMessage(getString(ai, aj), g("voting emission candidate contract address is required")))
171+let aj = addressFromStringValue(valueOrErrorMessage(getString(ah, ai), g("voting emission candidate contract address is required")))
172172
173-func al (B,C) = valueOrElse(getBoolean(N(B, C)), false)
173+func ak (B,C) = valueOrElse(getBoolean(N(B, C)), false)
174174
175175
176-func am (B,C) = if (al(B, C))
176+func al (B,C) = if (ak(B, C))
177177 then true
178178 else k()
179179
180180
181-func an () = {
182- let ao = Z()
183- let aa = getString(ao, x())
184- if ($isInstanceOf(aa, "String"))
181+func am () = {
182+ let an = Y()
183+ let Z = getString(an, x())
184+ if ($isInstanceOf(Z, "String"))
185185 then {
186- let ab = aa
187- fromBase58String(ab)
186+ let aa = Z
187+ fromBase58String(aa)
188188 }
189- else if ($isInstanceOf(aa, "Unit"))
189+ else if ($isInstanceOf(Z, "Unit"))
190190 then unit
191191 else throw("Match error")
192192 }
193193
194194
195-func ap (aq) = {
196- let aa = an()
197- if ($isInstanceOf(aa, "ByteVector"))
195+func ao (ap) = {
196+ let Z = am()
197+ if ($isInstanceOf(Z, "ByteVector"))
198198 then {
199- let ar = aa
200- (aq.callerPublicKey == ar)
199+ let aq = Z
200+ (ap.callerPublicKey == aq)
201201 }
202- else if ($isInstanceOf(aa, "Unit"))
203- then (aq.caller == this)
202+ else if ($isInstanceOf(Z, "Unit"))
203+ then (ap.caller == this)
204204 else throw("Match error")
205205 }
206206
207207
208-func as (aq) = if (ap(aq))
208+func ar (ap) = if (ao(ap))
209209 then true
210210 else j()
211211
212212
213-func at (aq) = {
214- let au = ae(getString(z()))
215- if (containsElement(au, toBase58String(aq.callerPublicKey)))
213+func as (ap) = {
214+ let at = ad(getString(z()))
215+ if (containsElement(at, toBase58String(ap.callerPublicKey)))
216216 then true
217- else as(aq)
217+ else ar(ap)
218218 }
219219
220220
221-func av (X) = (valueOrElse(getInteger(addressFromStringValue(ac(E())), (("status_<" + X) + ">")), 0) == 2)
221+func au (av) = (valueOrElse(getInteger(addressFromStringValue(ab(E())), (("status_<" + av) + ">")), 0) == 2)
222222
223223
224224 func aw (ax) = {
225- let aa = ax.assetId
226- if ($isInstanceOf(aa, "ByteVector"))
225+ let Z = ax.assetId
226+ if ($isInstanceOf(Z, "ByteVector"))
227227 then {
228- let ay = aa
228+ let ay = Z
229229 let az = value(assetInfo(ay))
230230 $Tuple2(toBase58String(ay), az)
231231 }
232- else if ($isInstanceOf(aa, "Unit"))
232+ 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
241-func aC (aq,aD) = {
242- let aE = value(aq.payments[0])
243- let aF = value(aq.payments[1])
244- let aG = value(aq.payments[2])
241+func aC (ap,aD) = {
242+ let aE = value(ap.payments[0])
243+ let aF = value(ap.payments[1])
244+ 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
257- let aR = ae(getString(ag, Y()))
258- let aS = getIntegerValue(ag, V())
259- let aT = valueOrElse(getInteger(ag, W(B)), aS)
260- let aU = valueOrElse(getInteger(ag, W(C)), aS)
261- let aV = valueOrElse(getInteger(H()), 0)
262- let aW = (aV + 1)
263- let aX = addressFromStringValue(ac(F()))
264- let aY = {
265- let aZ = invoke(ag, "poolExistsREADONLY", [B, C], nil)
266- if ($isInstanceOf(aZ, "Boolean"))
267- then aZ
268- else throw(($getType(aZ) + " couldn't be cast to Boolean"))
257+ let aR = ad(getString(af, X()))
258+ let aS = getIntegerValue(V())
259+ let aT = ad(getString(W()))
260+ let aU = if (containsElement(aR, B))
261+ then {
262+ let aV = valueOrErrorMessage(indexOf(aR, B), f)
263+ value(parseInt(aT[aV]))
264+ }
265+ else aS
266+ let aW = if (containsElement(aR, C))
267+ then {
268+ let aV = valueOrErrorMessage(indexOf(aR, C), f)
269+ value(parseInt(aT[aV]))
270+ }
271+ else aS
272+ let aX = valueOrElse(getInteger(H()), 0)
273+ let aY = (aX + 1)
274+ let aZ = addressFromStringValue(ab(F()))
275+ let ba = {
276+ let bb = invoke(af, "poolExistsREADONLY", [B, C], nil)
277+ if ($isInstanceOf(bb, "Boolean"))
278+ then bb
279+ else throw(($getType(bb) + " couldn't be cast to Boolean"))
269280 }
270- let ba = [if (!(al(B, C)))
281+ let bc = [if (!(ak(B, C)))
271282 then true
272- else m(), if (!(aY))
283+ else m(), if (!(ba))
273284 then true
274285 else m(), if ((B != C))
275286 then true
276- else w(), if (if (ap(aq))
287+ else w(), if (if (ao(ap))
277288 then true
278- else if (av(B))
279- then av(C)
289+ else if (au(B))
290+ then au(C)
280291 else false)
281292 then true
282293 else w(), if (if (containsElement(aR, B))
283294 then true
284295 else containsElement(aR, C))
285296 then true
286- else w(), if (if (ap(aq))
297+ else w(), if (if (ao(ap))
287298 then true
288299 else (getString(T()) == aM))
289300 then true
290- else p(), if (if (ap(aq))
301+ else p(), if (if (ao(ap))
291302 then true
292- else (aO >= aT))
303+ else (aO >= getIntegerValue(V())))
293304 then true
294- else q(), if (if (ap(aq))
305+ else q(), if (if (ao(ap))
295306 then true
296- else (aP >= aU))
307+ else (aP >= aW))
297308 then true
298- else u(), if (if (ap(aq))
309+ else u(), if (if (ao(ap))
299310 then true
300311 else (aQ == getInteger(U())))
301312 then true
302313 else v()]
303- if ((ba == ba))
314+ if ((bc == bc))
304315 then {
305- let bb = 3
306- let bc = if ((size(aq.payments) >= bb))
307- then invoke(aX, "burn", nil, [AttachedPayment(fromBase58String(aM), aQ)])
316+ let bd = 3
317+ let be = if ((size(ap.payments) >= bd))
318+ then invoke(aZ, "burn", nil, [AttachedPayment(fromBase58String(aM), aQ)])
308319 else unit
309- if ((bc == bc))
310- then [BooleanEntry(N(B, C), true), StringEntry(O(B, C), toString(aq.caller)), IntegerEntry(H(), aW), StringEntry(G(B, C), (toString(aW) + 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)]
320+ if ((be == be))
321+ 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)]
311322 else throw("Strict value is not equal to itself.")
312323 }
313324 else throw("Strict value is not equal to itself.")
314325 }
315326
316327
317-@Callable(aq)
318-func constructor (bd,be,bf,aM,bg) = {
319- let bh = as(aq)
320- if ((bh == bh))
321- then [StringEntry(D(), bd), StringEntry(E(), be), StringEntry(F(), bf), StringEntry(T(), aM), IntegerEntry(U(), bg)]
328+@Callable(ap)
329+func constructor (bf,bg,bh,bi,aU,aM,bj) = {
330+ let bk = ar(ap)
331+ if ((bk == bk))
332+ then [StringEntry(D(), bf), StringEntry(E(), bg), StringEntry(F(), bh), StringEntry(W(), makeString(bi, b)), IntegerEntry(V(), aU), StringEntry(T(), aM), IntegerEntry(U(), bj)]
322333 else throw("Strict value is not equal to itself.")
323334 }
324335
325336
326337
327-@Callable(aq)
328-func create () = aC(aq, d)
338+@Callable(ap)
339+func create () = aC(ap, d)
329340
330341
331342
332-@Callable(aq)
343+@Callable(ap)
333344 func createStable () = {
334- let bh = as(aq)
335- if ((bh == bh))
336- then aC(aq, e)
345+ let bk = ar(ap)
346+ if ((bk == bk))
347+ then aC(ap, e)
337348 else throw("Strict value is not equal to itself.")
338349 }
339350
340351
341352
342-@Callable(aq)
343-func activate (bi,B,bj,C,bk,bl) = {
344- let ba = [at(aq), if (al(B, C))
353+@Callable(ap)
354+func activate (bl,B,bm,C,bn,bo) = {
355+ let bc = [as(ap), if (ak(B, C))
345356 then true
346357 else k(), if ((value(getString(A(B, C))) == J))
347358 then true
348359 else s()]
349- if ((ba == ba))
360+ if ((bc == bc))
350361 then {
351- let bm = getString(this, S(B, C))
352- let bn = invoke(ag, "activateNewPool", [bi, B, C, ((bj + bk) + "LP"), (((bj + "/") + bk) + " pool liquidity provider token"), 0, if ((bm == unit))
362+ let bp = getString(this, S(B, C))
363+ let bq = invoke(af, "activateNewPool", [bl, B, C, ((bm + bn) + "LP"), (((bm + "/") + bn) + " pool liquidity provider token"), 0, if ((bp == unit))
353364 then "VLTPOOL"
354- else value(bm), bl], nil)
355- if ((bn == bn))
365+ else value(bp), bo], nil)
366+ if ((bq == bq))
356367 then {
357- let bo = {
358- let aa = bn
359- if ($isInstanceOf(aa, "String"))
368+ let br = {
369+ let Z = bq
370+ if ($isInstanceOf(Z, "String"))
360371 then {
361- let ay = aa
372+ let ay = Z
362373 ay
363374 }
364375 else t()
365376 }
366- if ((bo == bo))
377+ if ((br == br))
367378 then {
368- let bp = assetBalance(this, fromBase58String(bo))
369- if ((bp == bp))
379+ let bs = assetBalance(this, fromBase58String(br))
380+ if ((bs == bs))
370381 then {
371- let bq = invoke(addressFromStringValue(bi), "put", [0, false], [AttachedPayment(if ((B == "WAVES"))
382+ let bt = invoke(addressFromStringValue(bl), "put", [0, false], [AttachedPayment(if ((B == "WAVES"))
372383 then unit
373384 else fromBase58String(B), value(getInteger(P(B, C)))), AttachedPayment(if ((C == "WAVES"))
374385 then unit
375386 else fromBase58String(C), value(getInteger(Q(B, C))))])
376- if ((bq == bq))
387+ if ((bt == bt))
377388 then {
378- let br = assetBalance(this, fromBase58String(bo))
379- if ((br == br))
389+ let bu = assetBalance(this, fromBase58String(br))
390+ if ((bu == bu))
380391 then {
381- let bs = value(addressFromString(value(getString(O(B, C)))))
382- let bt = invoke(ak, "approve", [B, C], nil)
383- if ((bt == bt))
384- then [StringEntry(A(B, C), L), ScriptTransfer(bs, (br - bp), fromBase58String(bo))]
392+ let bv = value(addressFromString(value(getString(O(B, C)))))
393+ let bw = invoke(aj, "approve", [B, C], nil)
394+ if ((bw == bw))
395+ then [StringEntry(A(B, C), L), ScriptTransfer(bv, (bu - bs), fromBase58String(br))]
385396 else throw("Strict value is not equal to itself.")
386397 }
387398 else throw("Strict value is not equal to itself.")
388399 }
389400 else throw("Strict value is not equal to itself.")
390401 }
391402 else throw("Strict value is not equal to itself.")
392403 }
393404 else throw("Strict value is not equal to itself.")
394405 }
395406 else throw("Strict value is not equal to itself.")
396407 }
397408 else throw("Strict value is not equal to itself.")
398409 }
399410
400411
401412
402-@Callable(aq)
403-func setAdmins (bu) = {
404- let bh = as(aq)
405- if ((bh == bh))
406- then [StringEntry(z(), makeString(bu, b))]
413+@Callable(ap)
414+func setAdmins (bx) = {
415+ let bk = ar(ap)
416+ if ((bk == bk))
417+ then [StringEntry(z(), makeString(bx, b))]
407418 else throw("Strict value is not equal to itself.")
408419 }
409420
410421
411422
412-@Callable(aq)
413-func priceAssetsREADONLY () = $Tuple2(nil, ae(getString(Y())))
423+@Callable(ap)
424+func priceAssetsREADONLY () = $Tuple2(nil, ad(getString(X())))
414425
415426
416427
417-@Callable(aq)
428+@Callable(ap)
418429 func statusREADONLY (B,C) = {
419430 let aB = {
420- let aa = getString(A(B, C))
421- if ($isInstanceOf(aa, "String"))
431+ let Z = getString(A(B, C))
432+ if ($isInstanceOf(Z, "String"))
422433 then {
423- let ab = aa
424- ab
434+ let aa = Z
435+ aa
425436 }
426437 else unit
427438 }
428439 $Tuple2(nil, aB)
429440 }
430441
431442
432443
433-@Callable(aq)
444+@Callable(ap)
434445 func getPoolCreatorREADONLY (B,C) = {
435- let bv = valueOrElse(getString(O(B, C)), "")
436- $Tuple2(nil, bv)
446+ let by = valueOrElse(getString(O(B, C)), "")
447+ $Tuple2(nil, by)
437448 }
438449
439450
440451
441-@Callable(aq)
452+@Callable(ap)
442453 func deletePool (B,C) = {
443- let bh = if (if ((aq.caller == ag))
454+ let bk = if (if ((ap.caller == af))
444455 then true
445- else as(aq))
456+ else ar(ap))
446457 then true
447458 else i("Permission denied")
448- if ((bh == bh))
459+ if ((bk == bk))
449460 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))]
450461 else throw("Strict value is not equal to itself.")
451462 }
452463
453464
454-@Verifier(bw)
455-func bx () = {
456- let by = {
457- let aa = an()
458- if ($isInstanceOf(aa, "ByteVector"))
465+@Verifier(bz)
466+func bA () = {
467+ let bB = {
468+ let Z = am()
469+ if ($isInstanceOf(Z, "ByteVector"))
459470 then {
460- let ar = aa
461- ar
471+ let aq = Z
472+ aq
462473 }
463- else if ($isInstanceOf(aa, "Unit"))
464- then bw.senderPublicKey
474+ else if ($isInstanceOf(Z, "Unit"))
475+ then bz.senderPublicKey
465476 else throw("Match error")
466477 }
467- sigVerify(bw.bodyBytes, bw.proofs[0], by)
478+ sigVerify(bz.bodyBytes, bz.proofs[0], bB)
468479 }
469480

github/deemru/w8io/026f985 
109.12 ms