tx · Duo9txVVnFQJBVSx9QubDAYiQF579MJuFCuonS7KnFDB

3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh:  -0.01300000 Waves

2023.05.19 10:45 [2584549] smart account 3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh > SELF 0.00000000 Waves

{ "type": 13, "id": "Duo9txVVnFQJBVSx9QubDAYiQF579MJuFCuonS7KnFDB", "fee": 1300000, "feeAssetId": null, "timestamp": 1684482399801, "version": 2, "chainId": 84, "sender": "3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh", "senderPublicKey": "Ap7CkWd6fzBU34kGo4GJJzC5q4qWXuLVunzE25PchdGS", "proofs": [ "3n7fyU7eB8wkEsULyfun2k3Us1u5We4EQVztMXciG5S21EU1Jp6jrThQrFbSYA6znWtFExJucZPyeUBvyBAkb5s3" ], "script": "base64:BgKnEAgCEgkKBwgICBgBCAESABIAEggKBggICAgICBIDCgEYEgASBAoCCAgiEGNvbnRyYWN0RmlsZW5hbWUiA1NFUCIMd2F2ZXNBc3NldElkIgdWTFRQT09MIghTVEJMUE9PTCIRaW52YWxpZFByaWNlQXNzZXQiB3dyYXBFcnIiA21zZyIIdGhyb3dFcnIiB3Rocm93UEQiFHRocm93Q3JlYXRlTm90Q2FsbGVkIhF0aHJvd1lvdU5vdElzc3VlciIPdGhyb3dQb29sRXhpc3RzIhV0aHJvd0Fzc2V0Tm90VmVyaWZpZWQiFnRocm93SW52YWxpZFByaWNlQXNzZXQiFHRocm93SW52YWxpZEZlZUFzc2V0Ihd0aHJvd0ludmFsaWRBbW91bnRBc3NldCISdGhyb3dJbnZhbGlkU3RhdHVzIh90aHJvd0NhbkFjdGl2YXRlT25seVBlbmRpbmdQb29sIh10aHJvd0ZhY3RvcnlSZXR1cm5lZE5vdFN0cmluZyIcdGhyb3dJbnZhbGlkUHJpY2VBc3NldEFtb3VudCIPdGhyb3dJbnZhbGlkRmVlIhV0aHJvd0ludmFsaWRBc3NldFBhaXIiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiD2tleUFkbWluUHViS2V5cyIJa2V5U3RhdHVzIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiEmtleUZhY3RvcnlDb250cmFjdCIWa2V5QXNzZXRzU3RvcmVDb250cmFjdCITa2V5RW1pc3Npb25Db250cmFjdCIJa2V5U3VmZml4IgxrZXlMYXN0SW5kZXgiC2luZGV4U3VmZml4Ig1zdGF0dXNQZW5kaW5nIg5zdGF0dXNEZWNsaW5lZCIMc3RhdHVzQWN0aXZlIghzdGF0dXNlcyIPa2V5Q3JlYXRlQ2FsbGVkIg9rZXlDcmVhdGVDYWxsZXIiFGtleUFtb3VudEFzc2V0QW1vdW50IhNrZXlQcmljZUFzc2V0QW1vdW50IglrZXlIZWlnaHQiC2tleVBvb2xUeXBlIg1rZXlGZWVBc3NldElkIgxrZXlGZWVBbW91bnQiF2tleUFtb3VudEFzc2V0TWluQW1vdW50IhdrZXlQcmljZUFzc2V0c01pbkFtb3VudCIOa2V5UHJpY2VBc3NldHMiHGdldE1hbmFnZXJWYXVsdEFkZHJlc3NPclRoaXMiByRtYXRjaDAiAXMiD2dldFN0cmluZ09yRmFpbCIDa2V5IhJzdHJpbmdPcHRpb25Ub0xpc3QiDHN0cmluZ09yVW5pdCIPZmFjdG9yeUNvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0IiJrZXlWb3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0Ih92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0Ig5pc0NyZWF0ZUNhbGxlZCIQbXVzdENyZWF0ZUNhbGxlZCIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyIJaXNNYW5hZ2VyIgFpIgJwayILbXVzdE1hbmFnZXIiCW11c3RBZG1pbiIIYWRtaW5QS3MiCmlzVmVyaWZpZWQiB2Fzc2V0SWQiDGdldElkQW5kSW5mbyIHcGF5bWVudCICaWQiBGluZm8iC3ZhbGlkU3RhdHVzIgZzdGF0dXMiB19jcmVhdGUiCHBvb2xUeXBlIhJhbW91bnRBc3NldFBheW1lbnQiEXByaWNlQXNzZXRQYXltZW50Ig9mZWVBc3NldFBheW1lbnQiCyR0MDY0ODM2NTU1Ig9hbW91bnRBc3NldEluZm8iCyR0MDY1NTg2NjI3Ig5wcmljZUFzc2V0SW5mbyILJHQwNjYzMDY2OTMiCmZlZUFzc2V0SWQiDGZlZUFzc2V0SW5mbyIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDmZlZUFzc2V0QW1vdW50Ig9wcmljZUFzc2V0c0xpc3QiFWFzc2V0TWluQW1vdW50RGVmYXVsdCIXYWxsb3dlZEFzc2V0c01pbkFtb3VudHMiFGFtb3VudEFzc2V0TWluQW1vdW50IhBwcmljZUFzc2V0c0luZGV4IhNwcmljZUFzc2V0TWluQW1vdW50IglsYXN0SW5kZXgiCGN1ckluZGV4IhBlbWlzc2lvbkNvbnRyYWN0Igpwb29sRXhpc3RzIgFAIgZjaGVja3MiE3BheW1lbnRzV2l0aEZlZVNpemUiD2J1cm5FbWlzc2lvbkludiIQZmFjdG9yeVYyQWRkcmVzcyISYXNzZXRzU3RvcmVBZGRyZXNzIg9lbWlzc2lvbkFkZHJlc3MiFHByaWNlQXNzZXRzTWluQW1vdW50IglmZWVBbW91bnQiC2NoZWNrQ2FsbGVyIgtwb29sQWRkcmVzcyIRYW1vdW50QXNzZXRUaWNrZXIiEHByaWNlQXNzZXRUaWNrZXIiBGxvZ28iDnBvb2xUeXBlT3B0aW9uIhJhY3RpdmF0ZU5ld1Bvb2xJbnYiCWxwQXNzZXRJZCIJYmVmb3JlUHV0IgNwdXQiCGFmdGVyUHV0IgR1c2VyIgNyZXMiDGFkbWluUHViS2V5cyICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5QQABYQIPdXNlcl9wb29scy5yaWRlAAFiAgJfXwABYwIFV0FWRVMAAWQCB1ZMVFBPT0wAAWUCCFNUQkxQT09MAAFmAhNJbnZhbGlkIHByaWNlIGFzc2V0AQFnAQFoCQC5CQIJAMwIAgUBYQkAzAgCAgI6IAkAzAgCBQFoBQNuaWwCAAEBaQEBaAkAAgEJAQFnAQUBaAEBagAJAQFpAQIRUGVybWlzc2lvbiBkZW5pZWQBAWsACQEBaQECJENyZWF0ZSBpcyBub3QgY2FsbGVkIGZvciBhc3NldHMgcGFpcgEBbAAJAQFpAQIeWW91IGFyZSBub3QgYW1vdW50QXNzZXQgaXNzdWVyAQFtAAkBAWkBAiRQb29sIHdpdGggc3VjaCBhc3NldHMgYWxyZWFkeSBleGlzdHMBAW4ACQEBaQECFUFzc2V0IGlzIG5vdCB2ZXJpZmllZAEBbwAJAQFpAQUBZgEBcAAJAQFpAQIRSW52YWxpZCBmZWUgYXNzZXQBAXEACQEBaQECHUludmFsaWQgYW1vdW50IGFzc2V0IGF0dGFjaGVkAQFyAAkBAWkBAg5JbnZhbGlkIHN0YXR1cwEBcwAJAQFpAQIqQ2FuIGFjdGl2YXRlIHBvb2wgb25seSBpbiAncGVuZGluZycgc3RhdHVzAQF0AAkBAWkBAh1GYWN0b3J5VjIgcmV0dXJuZWQgbm90IHN0cmluZwEBdQAJAQFpAQIaaW52YWxpZCBwcmljZSBhc3NldCBhbW91bnQBAXYACQEBaQECC2ludmFsaWQgZmVlAQF3AAkBAWkBAhJpbnZhbGlkIGFzc2V0IHBhaXIBAXgACQC5CQIJAMwIAgICJXMJAMwIAgIQbWFuYWdlclB1YmxpY0tleQUDbmlsBQFiAQF5AAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAXoACQC5CQIJAMwIAgICJXMJAMwIAgIMYWRtaW5QdWJLZXlzBQNuaWwFAWIBAUECAUIBQwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZzdGF0dXMJAMwIAgUBQgkAzAgCBQFDBQNuaWwFAWIBAUQACQC5CQIJAMwIAgICJXMJAMwIAgIPZmFjdG9yeUNvbnRyYWN0BQNuaWwFAWIBAUUACQC5CQIJAMwIAgICJXMJAMwIAgITYXNzZXRzU3RvcmVDb250cmFjdAUDbmlsBQFiAQFGAAkAuQkCCQDMCAICAiVzCQDMCAICEGVtaXNzaW9uQ29udHJhY3QFA25pbAUBYgEBRwIBQgFDCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICBnN1ZmZpeAkAzAgCBQFCCQDMCAIFAUMFA25pbAUBYgEBSAAJALkJAgkAzAgCAgIlcwkAzAgCAglsYXN0SW5kZXgFA25pbAUBYgABSQIBdQABSgIHcGVuZGluZwABSwIIZGVjbGluZWQAAUwCBmFjdGl2ZQABTQkAzAgCBQFKCQDMCAIFAUsJAMwIAgUBTAUDbmlsAQFOAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIMY3JlYXRlQ2FsbGVkCQDMCAIFAUIJAMwIAgUBQwUDbmlsBQFiAQFPAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIMY3JlYXRlQ2FsbGVyCQDMCAIFAUIJAMwIAgUBQwUDbmlsBQFiAQFQAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIRYW1vdW50QXNzZXRBbW91bnQJAMwIAgUBQgkAzAgCBQFDBQNuaWwFAWIBAVECAUIBQwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhBwcmljZUFzc2V0QW1vdW50CQDMCAIFAUIJAMwIAgUBQwUDbmlsBQFiAQFSAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGaGVpZ2h0CQDMCAIFAUIJAMwIAgUBQwUDbmlsBQFiAQFTAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIIcG9vbFR5cGUJAMwIAgUBQgkAzAgCBQFDBQNuaWwFAWIBAVQACQC5CQIJAMwIAgICJXMJAMwIAgIKZmVlQXNzZXRJZAUDbmlsBQFiAQFVAAkAuQkCCQDMCAICAiVzCQDMCAICCWZlZUFtb3VudAUDbmlsBQFiAQFWAAkAuQkCCQDMCAICAiVzCQDMCAICFGFtb3VudEFzc2V0TWluQW1vdW50BQNuaWwFAWIBAVcACQC5CQIJAMwIAgICJXMJAMwIAgIUcHJpY2VBc3NldHNNaW5BbW91bnQFA25pbAUBYgEBWAAJALkJAgkAzAgCAgIlcwkAzAgCAgtwcmljZUFzc2V0cwUDbmlsBQFiAQFZAAQBWgkAoggBCQEBeQADCQABAgUBWgIGU3RyaW5nBAJhYQUBWgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWEFBHRoaXMBAmFiAQJhYwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFAmFjCQCsAgIFAmFjAg8gaXMgbm90IGRlZmluZWQBAmFkAQJhZQQBWgUCYWUDCQABAgUBWgIGU3RyaW5nBAJhYQUBWgMJAAACCQCxAgEFAmFhAAAFA25pbAkAtQkCBQJhYQUBYgMJAAECBQFaAgRVbml0BQNuaWwJAAIBAgtNYXRjaCBlcnJvcgACYWYJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhYgEJAQFEAAACYWcJALkJAgkAzAgCAgIlcwkAzAgCAhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0BQNuaWwFAWIAAmFoCQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYWYFAmFnCQEBZwECLHZvdGluZyBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzIGlzIHJlcXVpcmVkAAJhaQkAuQkCCQDMCAICAiVzCQDMCAICH3ZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QFA25pbAUBYgACYWoJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhaAUCYWkJAQFnAQI2dm90aW5nIGVtaXNzaW9uIGNhbmRpZGF0ZSBjb250cmFjdCBhZGRyZXNzIGlzIHJlcXVpcmVkAQJhawIBQgFDCQELdmFsdWVPckVsc2UCCQCgCAEJAQFOAgUBQgUBQwcBAmFsAgFCAUMDCQECYWsCBQFCBQFDBgkBAWsAAQJhbQAEAmFuCQEBWQAEAVoJAJ0IAgUCYW4JAQF4AAMJAAECBQFaAgZTdHJpbmcEAmFhBQFaCQDZBAEFAmFhAwkAAQIFAVoCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYW8BAmFwBAFaCQECYW0AAwkAAQIFAVoCCkJ5dGVWZWN0b3IEAmFxBQFaCQAAAggFAmFwD2NhbGxlclB1YmxpY0tleQUCYXEDCQABAgUBWgIEVW5pdAkAAAIIBQJhcAZjYWxsZXIFBHRoaXMJAAIBAgtNYXRjaCBlcnJvcgECYXIBAmFwAwkBAmFvAQUCYXAGCQEBagABAmFzAQJhcAQCYXQJAQJhZAEJAKIIAQkBAXoAAwkBD2NvbnRhaW5zRWxlbWVudAIFAmF0CQDYBAEIBQJhcA9jYWxsZXJQdWJsaWNLZXkGCQECYXIBBQJhcAECYXUBAmF2CQAAAgkBC3ZhbHVlT3JFbHNlAgkAmggCCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYWIBCQEBRQAJAKwCAgkArAICAghzdGF0dXNfPAUCYXYCAT4AAAACAQJhdwECYXgEAVoIBQJheAdhc3NldElkAwkAAQIFAVoCCkJ5dGVWZWN0b3IEAmF5BQFaBAJhegkBBXZhbHVlAQkA7AcBBQJheQkAlAoCCQDYBAEFAmF5BQJhegMJAAECBQFaAgRVbml0CQCUCgIFAWMFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYUEBAmFCCQEPY29udGFpbnNFbGVtZW50AgUBTQUCYUIBAmFDAgJhcAJhRAQCYUUJAQV2YWx1ZQEJAJEDAggFAmFwCHBheW1lbnRzAAAEAmFGCQEFdmFsdWUBCQCRAwIIBQJhcAhwYXltZW50cwABBAJhRwkBBXZhbHVlAQkAkQMCCAUCYXAIcGF5bWVudHMAAgQCYUgJAQJhdwEFAmFFBAFCCAUCYUgCXzEEAmFJCAUCYUgCXzIEAmFKCQECYXcBBQJhRgQBQwgFAmFKAl8xBAJhSwgFAmFKAl8yBAJhTAkBAmF3AQUCYUcEAmFNCAUCYUwCXzEEAmFOCAUCYUwCXzIEAmFPCAUCYUUGYW1vdW50BAJhUAgFAmFGBmFtb3VudAQCYVEIBQJhRwZhbW91bnQEAmFSCQECYWQBCQCdCAIFAmFmCQEBWAAEAmFTCQERQGV4dHJOYXRpdmUoMTA1NSkBCQEBVgAEAmFUCQECYWQBCQCiCAEJAQFXAAQCYVUDCQEPY29udGFpbnNFbGVtZW50AgUCYVIFAUIEAmFWCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAM8IAgUCYVIFAUIFAWYJAQV2YWx1ZQEJALYJAQkAkQMCBQJhVAUCYVYFAmFTBAJhVwMJAQ9jb250YWluc0VsZW1lbnQCBQJhUgUBQwQCYVYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAzwgCBQJhUgUBQwUBZgkBBXZhbHVlAQkAtgkBCQCRAwIFAmFUBQJhVgUCYVMEAmFYCQELdmFsdWVPckVsc2UCCQCfCAEJAQFIAAAABAJhWQkAZAIFAmFYAAEEAmFaCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYWIBCQEBRgAEAmJhCgACYmIJAPwHBAUCYWYCEnBvb2xFeGlzdHNSRUFET05MWQkAzAgCBQFCCQDMCAIFAUMFA25pbAUDbmlsAwkAAQIFAmJiAgdCb29sZWFuBQJiYgkAAgEJAKwCAgkAAwEFAmJiAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJiYwkAzAgCAwkBASEBCQECYWsCBQFCBQFDBgkBAW0ACQDMCAIDCQEBIQEFAmJhBgkBAW0ACQDMCAIDCQECIT0CBQFCBQFDBgkBAXcACQDMCAIDAwkBAmF1AQUBQgkBAmF1AQUBQwcGCQEBdwAJAMwIAgMDCQEPY29udGFpbnNFbGVtZW50AgUCYVIFAUIGCQEPY29udGFpbnNFbGVtZW50AgUCYVIFAUMGCQEBdwAJAMwIAgMDCQECYW8BBQJhcAYJAAACCQCiCAEJAQFUAAUCYU0GCQEBcAAJAMwIAgMDCQECYW8BBQJhcAYJAGcCBQJhTwkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAVYABgkBAXEACQDMCAIDAwkBAmFvAQUCYXAGCQBnAgUCYVAFAmFXBgkBAXUACQDMCAIDAwkBAmFvAQUCYXAGCQAAAgUCYVEJAJ8IAQkBAVUABgkBAXYABQNuaWwDCQAAAgUCYmMFAmJjBAJiZAADBAJiZQMJAGcCCQCQAwEIBQJhcAhwYXltZW50cwUCYmQJAPwHBAUCYVoCBGJ1cm4FA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQJhTQUCYVEFA25pbAUEdW5pdAMJAAACBQJiZQUCYmUJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQFOAgUBQgUBQwYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8CBQFCBQFDCQClCAEIBQJhcAZjYWxsZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFIAAUCYVkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUcCBQFCBQFDCQCsAgIJAKQDAQUCYVkFAUkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFSAgUBQgUBQwUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFBAgUBQgUBQwUBSgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVACBQFCBQFDBQJhTwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVECBQFCBQFDBQJhUAkAzAgCCQELU3RyaW5nRW50cnkCCQEBUwIFAUIFAUMFAmFEBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4HAmFwAQtjb25zdHJ1Y3RvcgcCYmYCYmcCYmgCYmkCYVUCYU0CYmoEAmJrCQECYXIBBQJhcAMJAAACBQJiawUCYmsJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUQABQJiZgkAzAgCCQELU3RyaW5nRW50cnkCCQEBRQAFAmJnCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFGAAUCYmgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVcACQC5CQIFAmJpBQFiCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVgAFAmFVCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFUAAUCYU0JAMwIAgkBDEludGVnZXJFbnRyeQIJAQFVAAUCYmoFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhcAEGY3JlYXRlAAkBAmFDAgUCYXAFAWQCYXABDGNyZWF0ZVN0YWJsZQAEAmJrCQECYXIBBQJhcAMJAAACBQJiawUCYmsJAQJhQwIFAmFwBQFlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFwAQhhY3RpdmF0ZQYCYmwBQgJibQFDAmJuAmJvBAJiYwkAzAgCCQECYXMBBQJhcAkAzAgCAwkBAmFrAgUBQgUBQwYJAQFrAAkAzAgCAwkAAAIJAQV2YWx1ZQEJAKIIAQkBAUECBQFCBQFDBQFKBgkBAXMABQNuaWwDCQAAAgUCYmMFAmJjBAJicAkAnQgCBQR0aGlzCQEBUwIFAUIFAUMEAmJxCQD8BwQFAmFmAg9hY3RpdmF0ZU5ld1Bvb2wJAMwIAgUCYmwJAMwIAgUBQgkAzAgCBQFDCQDMCAIJAKwCAgkArAICBQJibQUCYm4CAkxQCQDMCAIJAKwCAgkArAICCQCsAgIFAmJtAgEvBQJibgIeIHBvb2wgbGlxdWlkaXR5IHByb3ZpZGVyIHRva2VuCQDMCAIAAAkAzAgCAwkAAAIFAmJwBQR1bml0AgdWTFRQT09MCQEFdmFsdWUBBQJicAkAzAgCBQJibwUDbmlsBQNuaWwDCQAAAgUCYnEFAmJxBAJicgQBWgUCYnEDCQABAgUBWgIGU3RyaW5nBAJheQUBWgUCYXkJAQF0AAMJAAACBQJicgUCYnIEAmJzCQDwBwIFBHRoaXMJANkEAQUCYnIDCQAAAgUCYnMFAmJzBAJidAkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQJibAIDcHV0CQDMCAIAAAkAzAgCBwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCAwkAAAIFAUICBVdBVkVTBQR1bml0CQDZBAEFAUIJAQV2YWx1ZQEJAJ8IAQkBAVACBQFCBQFDCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCAwkAAAIFAUMCBVdBVkVTBQR1bml0CQDZBAEFAUMJAQV2YWx1ZQEJAJ8IAQkBAVECBQFCBQFDBQNuaWwDCQAAAgUCYnQFAmJ0BAJidQkA8AcCBQR0aGlzCQDZBAEFAmJyAwkAAAIFAmJ1BQJidQQCYnYJAQV2YWx1ZQEJAKYIAQkBBXZhbHVlAQkAoggBCQEBTwIFAUIFAUMEAmJ3CQD8BwQFAmFqAgdhcHByb3ZlCQDMCAIFAUIJAMwIAgUBQwUDbmlsBQNuaWwDCQAAAgUCYncFAmJ3CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFBAgUBQgUBQwUBTAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJidgkAZQIFAmJ1BQJicwkA2QQBBQJicgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFwAQlzZXRBZG1pbnMBAmJ4BAJiawkBAmFyAQUCYXADCQAAAgUCYmsFAmJrCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQF6AAkAuQkCBQJieAUBYgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFwARNwcmljZUFzc2V0c1JFQURPTkxZAAkAlAoCBQNuaWwJAQJhZAEJAKIIAQkBAVgAAmFwAQ5zdGF0dXNSRUFET05MWQIBQgFDBAJhQgQBWgkAoggBCQEBQQIFAUIFAUMDCQABAgUBWgIGU3RyaW5nBAJhYQUBWgUCYWEFBHVuaXQJAJQKAgUDbmlsBQJhQgECYnkBAmJ6AAQCYkEEAVoJAQJhbQADCQABAgUBWgIKQnl0ZVZlY3RvcgQCYXEFAVoFAmFxAwkAAQIFAVoCBFVuaXQIBQJieQ9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCYnkJYm9keUJ5dGVzCQCRAwIIBQJieQZwcm9vZnMAAAUCYkGvmamI", "height": 2584549, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Bcqq9bGEuN49RvHfog8bCyPom58HDDuTAGPCW6xYYaGT Next: 7pjDAjxCiUJpaW7vJrDnBfidGpLzYh8A3HC724Vdbr16 Diff:
OldNewDifferences
77
88 let c = "WAVES"
99
10-let d = "Invalid price asset"
10+let d = "VLTPOOL"
1111
12-func e (f) = makeString([a, ": ", f], "")
12+let e = "STBLPOOL"
13+
14+let f = "Invalid price asset"
15+
16+func g (h) = makeString([a, ": ", h], "")
1317
1418
15-func g (f) = throw(e(f))
19+func i (h) = throw(g(h))
1620
1721
18-func h () = g("Permission denied")
22+func j () = i("Permission denied")
1923
2024
21-func i () = g("Create is not called for assets pair")
25+func k () = i("Create is not called for assets pair")
2226
2327
24-func j () = g("You are not amountAsset issuer")
28+func l () = i("You are not amountAsset issuer")
2529
2630
27-func k () = g("Pool with such assets already exists")
31+func m () = i("Pool with such assets already exists")
2832
2933
30-func l () = g("Asset is not verified")
34+func n () = i("Asset is not verified")
3135
3236
33-func m () = g(d)
37+func o () = i(f)
3438
3539
36-func n () = g("Invalid fee asset")
40+func p () = i("Invalid fee asset")
3741
3842
39-func o () = g("Invalid amount asset attached")
43+func q () = i("Invalid amount asset attached")
4044
4145
42-func p () = g("Invalid status")
46+func r () = i("Invalid status")
4347
4448
45-func q () = g("Can activate pool only in 'pending' status")
49+func s () = i("Can activate pool only in 'pending' status")
4650
4751
48-func r () = g("FactoryV2 returned not string")
52+func t () = i("FactoryV2 returned not string")
4953
5054
51-func s () = g("invalid price asset amount")
55+func u () = i("invalid price asset amount")
5256
5357
54-func t () = g("invalid fee")
58+func v () = i("invalid fee")
5559
5660
57-func u () = g("invalid asset pair")
61+func w () = i("invalid asset pair")
5862
5963
60-func v () = makeString(["%s", "managerPublicKey"], b)
64+func x () = makeString(["%s", "managerPublicKey"], b)
6165
6266
63-func w () = "%s__managerVaultAddress"
67+func y () = "%s__managerVaultAddress"
6468
6569
66-func x () = makeString(["%s", "adminPubKeys"], b)
70+func z () = makeString(["%s", "adminPubKeys"], b)
6771
6872
69-func y (z,A) = makeString(["%s%s%s", "status", z, A], b)
73+func A (B,C) = makeString(["%s%s%s", "status", B, C], b)
7074
7175
72-func B () = makeString(["%s", "factoryContract"], b)
76+func D () = makeString(["%s", "factoryContract"], b)
7377
7478
75-func C () = makeString(["%s", "assetsStoreContract"], b)
79+func E () = makeString(["%s", "assetsStoreContract"], b)
7680
7781
78-func D () = makeString(["%s", "emissionContract"], b)
82+func F () = makeString(["%s", "emissionContract"], b)
7983
8084
81-func E (z,A) = makeString(["%s%s%s", "suffix", z, A], b)
85+func G (B,C) = makeString(["%s%s%s", "suffix", B, C], b)
8286
8387
84-func F () = makeString(["%s", "lastIndex"], b)
88+func H () = makeString(["%s", "lastIndex"], b)
8589
8690
87-let G = "u"
91+let I = "u"
8892
89-let H = "pending"
93+let J = "pending"
9094
91-let I = "declined"
95+let K = "declined"
9296
93-let J = "active"
97+let L = "active"
9498
95-let K = [H, I, J]
99+let M = [J, K, L]
96100
97-func L (z,A) = makeString(["%s%s%s", "createCalled", z, A], b)
101+func N (B,C) = makeString(["%s%s%s", "createCalled", B, C], b)
98102
99103
100-func M (z,A) = makeString(["%s%s%s", "createCaller", z, A], b)
104+func O (B,C) = makeString(["%s%s%s", "createCaller", B, C], b)
101105
102106
103-func N (z,A) = makeString(["%s%s%s", "amountAssetAmount", z, A], b)
107+func P (B,C) = makeString(["%s%s%s", "amountAssetAmount", B, C], b)
104108
105109
106-func O (z,A) = makeString(["%s%s%s", "priceAssetAmount", z, A], b)
110+func Q (B,C) = makeString(["%s%s%s", "priceAssetAmount", B, C], b)
107111
108112
109-func P (z,A) = makeString(["%s%s%s", "height", z, A], b)
113+func R (B,C) = makeString(["%s%s%s", "height", B, C], b)
110114
111115
112-func Q () = makeString(["%s", "feeAssetId"], b)
116+func S (B,C) = makeString(["%s%s%s", "poolType", B, C], b)
113117
114118
115-func R () = makeString(["%s", "feeAmount"], b)
119+func T () = makeString(["%s", "feeAssetId"], b)
116120
117121
118-func S () = makeString(["%s", "amountAssetMinAmount"], b)
122+func U () = makeString(["%s", "feeAmount"], b)
119123
120124
121-func T () = makeString(["%s", "priceAssetsMinAmount"], b)
125+func V () = makeString(["%s", "amountAssetMinAmount"], b)
122126
123127
124-func U () = makeString(["%s", "priceAssets"], b)
128+func W () = makeString(["%s", "priceAssetsMinAmount"], b)
125129
126130
127-func V () = {
128- let W = getString(w())
129- if ($isInstanceOf(W, "String"))
131+func X () = makeString(["%s", "priceAssets"], b)
132+
133+
134+func Y () = {
135+ let Z = getString(y())
136+ if ($isInstanceOf(Z, "String"))
130137 then {
131- let X = W
132- addressFromStringValue(X)
138+ let aa = Z
139+ addressFromStringValue(aa)
133140 }
134141 else this
135142 }
136143
137144
138-func Y (Z) = valueOrErrorMessage(getString(this, Z), (Z + " is not defined"))
145+func ab (ac) = valueOrErrorMessage(getString(this, ac), (ac + " is not defined"))
139146
140147
141-func aa (ab) = {
142- let W = ab
143- if ($isInstanceOf(W, "String"))
148+func ad (ae) = {
149+ let Z = ae
150+ if ($isInstanceOf(Z, "String"))
144151 then {
145- let X = W
146- if ((size(X) == 0))
152+ let aa = Z
153+ if ((size(aa) == 0))
147154 then nil
148- else split(X, b)
155+ else split(aa, b)
149156 }
150- else if ($isInstanceOf(W, "Unit"))
157+ else if ($isInstanceOf(Z, "Unit"))
151158 then nil
152159 else throw("Match error")
153160 }
154161
155162
156-let ac = addressFromStringValue(Y(B()))
163+let af = addressFromStringValue(ab(D()))
157164
158-let ad = makeString(["%s", "votingEmissionContract"], b)
165+let ag = makeString(["%s", "votingEmissionContract"], b)
159166
160-let ae = addressFromStringValue(valueOrErrorMessage(getString(ac, ad), e("voting emission contract address is required")))
167+let ah = addressFromStringValue(valueOrErrorMessage(getString(af, ag), g("voting emission contract address is required")))
161168
162-let af = makeString(["%s", "votingEmissionCandidateContract"], b)
169+let ai = makeString(["%s", "votingEmissionCandidateContract"], b)
163170
164-let ag = addressFromStringValue(valueOrErrorMessage(getString(ae, af), e("voting emission candidate contract address is required")))
171+let aj = addressFromStringValue(valueOrErrorMessage(getString(ah, ai), g("voting emission candidate contract address is required")))
165172
166-func ah (z,A) = valueOrElse(getBoolean(L(z, A)), false)
173+func ak (B,C) = valueOrElse(getBoolean(N(B, C)), false)
167174
168175
169-func ai (z,A) = if (ah(z, A))
176+func al (B,C) = if (ak(B, C))
170177 then true
171- else i()
178+ else k()
172179
173180
174-func aj () = {
175- let ak = V()
176- let W = getString(ak, v())
177- if ($isInstanceOf(W, "String"))
181+func am () = {
182+ let an = Y()
183+ let Z = getString(an, x())
184+ if ($isInstanceOf(Z, "String"))
178185 then {
179- let X = W
180- fromBase58String(X)
186+ let aa = Z
187+ fromBase58String(aa)
181188 }
182- else if ($isInstanceOf(W, "Unit"))
189+ else if ($isInstanceOf(Z, "Unit"))
183190 then unit
184191 else throw("Match error")
185192 }
186193
187194
188-func al (am) = {
189- let W = aj()
190- if ($isInstanceOf(W, "ByteVector"))
195+func ao (ap) = {
196+ let Z = am()
197+ if ($isInstanceOf(Z, "ByteVector"))
191198 then {
192- let an = W
193- (am.callerPublicKey == an)
199+ let aq = Z
200+ (ap.callerPublicKey == aq)
194201 }
195- else if ($isInstanceOf(W, "Unit"))
196- then (am.caller == this)
202+ else if ($isInstanceOf(Z, "Unit"))
203+ then (ap.caller == this)
197204 else throw("Match error")
198205 }
199206
200207
201-func ao (am) = if (al(am))
208+func ar (ap) = if (ao(ap))
202209 then true
203- else h()
210+ else j()
204211
205212
206-func ap (am) = {
207- let aq = aa(getString(x()))
208- if (containsElement(aq, toBase58String(am.callerPublicKey)))
213+func as (ap) = {
214+ let at = ad(getString(z()))
215+ if (containsElement(at, toBase58String(ap.callerPublicKey)))
209216 then true
210- else ao(am)
217+ else ar(ap)
211218 }
212219
213220
214-func ar (as) = (valueOrElse(getInteger(addressFromStringValue(Y(C())), (("status_<" + as) + ">")), 0) == 2)
221+func au (av) = (valueOrElse(getInteger(addressFromStringValue(ab(E())), (("status_<" + av) + ">")), 0) == 2)
215222
216223
217-func at (au) = {
218- let W = au.assetId
219- if ($isInstanceOf(W, "ByteVector"))
224+func aw (ax) = {
225+ let Z = ax.assetId
226+ if ($isInstanceOf(Z, "ByteVector"))
220227 then {
221- let av = W
222- let aw = value(assetInfo(av))
223- $Tuple2(toBase58String(av), aw)
228+ let ay = Z
229+ let az = value(assetInfo(ay))
230+ $Tuple2(toBase58String(ay), az)
224231 }
225- else if ($isInstanceOf(W, "Unit"))
232+ else if ($isInstanceOf(Z, "Unit"))
226233 then $Tuple2(c, unit)
227234 else throw("Match error")
228235 }
229236
230237
231-func ax (ay) = containsElement(K, ay)
238+func aA (aB) = containsElement(M, aB)
232239
233240
234-@Callable(am)
235-func constructor (az,aA,aB,aC,aD,aE,aF) = {
236- let aG = ao(am)
237- if ((aG == aG))
238- then [StringEntry(B(), az), StringEntry(C(), aA), StringEntry(D(), aB), StringEntry(T(), makeString(aC, b)), IntegerEntry(S(), aD), StringEntry(Q(), aE), IntegerEntry(R(), aF)]
239- else throw("Strict value is not equal to itself.")
240- }
241-
242-
243-
244-@Callable(am)
245-func create () = {
246- let aH = value(am.payments[0])
247- let aI = value(am.payments[1])
248- let aJ = value(am.payments[2])
249- let aK = at(aH)
250- let z = aK._1
251- let aL = aK._2
252- let aM = at(aI)
253- let A = aM._1
254- let aN = aM._2
255- let aO = at(aJ)
256- let aE = aO._1
257- let aP = aO._2
258- let aQ = aH.amount
259- let aR = aI.amount
260- let aS = aJ.amount
261- let aT = aa(getString(ac, U()))
262- let aU = getIntegerValue(S())
263- let aV = aa(getString(T()))
264- let aD = if (containsElement(aT, z))
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])
245+ let aH = aw(aE)
246+ let B = aH._1
247+ let aI = aH._2
248+ let aJ = aw(aF)
249+ let C = aJ._1
250+ let aK = aJ._2
251+ let aL = aw(aG)
252+ let aM = aL._1
253+ let aN = aL._2
254+ let aO = aE.amount
255+ let aP = aF.amount
256+ let aQ = aG.amount
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))
265261 then {
266- let aW = valueOrErrorMessage(indexOf(aT, z), d)
267- value(parseInt(aV[aW]))
262+ let aV = valueOrErrorMessage(indexOf(aR, B), f)
263+ value(parseInt(aT[aV]))
268264 }
269- else aU
270- let aX = if (containsElement(aT, A))
265+ else aS
266+ let aW = if (containsElement(aR, C))
271267 then {
272- let aW = valueOrErrorMessage(indexOf(aT, A), d)
273- value(parseInt(aV[aW]))
268+ let aV = valueOrErrorMessage(indexOf(aR, C), f)
269+ value(parseInt(aT[aV]))
274270 }
275- else aU
276- let aY = valueOrElse(getInteger(F()), 0)
277- let aZ = (aY + 1)
278- let ba = addressFromStringValue(Y(D()))
279- let bb = {
280- let bc = invoke(ac, "poolExistsREADONLY", [z, A], nil)
281- if ($isInstanceOf(bc, "Boolean"))
282- then bc
283- else throw(($getType(bc) + " couldn't be cast to Boolean"))
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"))
284280 }
285- let bd = [if (!(ah(z, A)))
281+ let bc = [if (!(ak(B, C)))
286282 then true
287- else k(), if (!(bb))
283+ else m(), if (!(ba))
288284 then true
289- else k(), if ((z != A))
285+ else m(), if ((B != C))
290286 then true
291- else u(), if (if (ar(z))
292- then ar(A)
287+ else w(), if (if (au(B))
288+ then au(C)
293289 else false)
294290 then true
295- else u(), if (if (containsElement(aT, z))
291+ else w(), if (if (containsElement(aR, B))
296292 then true
297- else containsElement(aT, A))
293+ else containsElement(aR, C))
298294 then true
299- else u(), if (if (al(am))
295+ else w(), if (if (ao(ap))
300296 then true
301- else (getString(Q()) == aE))
297+ else (getString(T()) == aM))
302298 then true
303- else n(), if (if (al(am))
299+ else p(), if (if (ao(ap))
304300 then true
305- else (aQ >= getIntegerValue(S())))
301+ else (aO >= getIntegerValue(V())))
306302 then true
307- else o(), if (if (al(am))
303+ else q(), if (if (ao(ap))
308304 then true
309- else (aR >= aX))
305+ else (aP >= aW))
310306 then true
311- else s(), if (if (al(am))
307+ else u(), if (if (ao(ap))
312308 then true
313- else (aS == getInteger(R())))
309+ else (aQ == getInteger(U())))
314310 then true
315- else t()]
316- if ((bd == bd))
311+ else v()]
312+ if ((bc == bc))
317313 then {
318- let be = 3
319- let bf = if ((size(am.payments) >= be))
320- then invoke(ba, "burn", nil, [AttachedPayment(fromBase58String(aE), aS)])
314+ let bd = 3
315+ let be = if ((size(ap.payments) >= bd))
316+ then invoke(aZ, "burn", nil, [AttachedPayment(fromBase58String(aM), aQ)])
321317 else unit
322- if ((bf == bf))
323- then [BooleanEntry(L(z, A), true), StringEntry(M(z, A), toString(am.caller)), IntegerEntry(F(), aZ), StringEntry(E(z, A), (toString(aZ) + G)), IntegerEntry(P(z, A), height), StringEntry(y(z, A), H), IntegerEntry(N(z, A), aQ), IntegerEntry(O(z, A), aR)]
318+ if ((be == be))
319+ 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)]
324320 else throw("Strict value is not equal to itself.")
325321 }
326322 else throw("Strict value is not equal to itself.")
327323 }
328324
329325
326+@Callable(ap)
327+func constructor (bf,bg,bh,bi,aU,aM,bj) = {
328+ let bk = ar(ap)
329+ if ((bk == bk))
330+ then [StringEntry(D(), bf), StringEntry(E(), bg), StringEntry(F(), bh), StringEntry(W(), makeString(bi, b)), IntegerEntry(V(), aU), StringEntry(T(), aM), IntegerEntry(U(), bj)]
331+ else throw("Strict value is not equal to itself.")
332+ }
330333
331-@Callable(am)
332-func activate (bg,z,bh,A,bi,bj) = {
333- let bd = [ap(am), if (ah(z, A))
334+
335+
336+@Callable(ap)
337+func create () = aC(ap, d)
338+
339+
340+
341+@Callable(ap)
342+func createStable () = {
343+ let bk = ar(ap)
344+ if ((bk == bk))
345+ then aC(ap, e)
346+ else throw("Strict value is not equal to itself.")
347+ }
348+
349+
350+
351+@Callable(ap)
352+func activate (bl,B,bm,C,bn,bo) = {
353+ let bc = [as(ap), if (ak(B, C))
334354 then true
335- else i(), if ((value(getString(y(z, A))) == H))
355+ else k(), if ((value(getString(A(B, C))) == J))
336356 then true
337- else q()]
338- if ((bd == bd))
357+ else s()]
358+ if ((bc == bc))
339359 then {
340- let bk = invoke(ac, "activateNewPool", [bg, z, A, ((bh + bi) + "LP"), (((bh + "/") + bi) + " pool liquidity provider token"), 0, "VLTPOOL", bj], nil)
341- if ((bk == bk))
360+ let bp = getString(this, S(B, C))
361+ let bq = invoke(af, "activateNewPool", [bl, B, C, ((bm + bn) + "LP"), (((bm + "/") + bn) + " pool liquidity provider token"), 0, if ((bp == unit))
362+ then "VLTPOOL"
363+ else value(bp), bo], nil)
364+ if ((bq == bq))
342365 then {
343- let bl = {
344- let W = bk
345- if ($isInstanceOf(W, "String"))
366+ let br = {
367+ let Z = bq
368+ if ($isInstanceOf(Z, "String"))
346369 then {
347- let av = W
348- av
370+ let ay = Z
371+ ay
349372 }
350- else r()
373+ else t()
351374 }
352- if ((bl == bl))
375+ if ((br == br))
353376 then {
354- let bm = assetBalance(this, fromBase58String(bl))
355- if ((bm == bm))
377+ let bs = assetBalance(this, fromBase58String(br))
378+ if ((bs == bs))
356379 then {
357- let bn = invoke(addressFromStringValue(bg), "put", [0, false], [AttachedPayment(if ((z == "WAVES"))
380+ let bt = invoke(addressFromStringValue(bl), "put", [0, false], [AttachedPayment(if ((B == "WAVES"))
358381 then unit
359- else fromBase58String(z), value(getInteger(N(z, A)))), AttachedPayment(if ((A == "WAVES"))
382+ else fromBase58String(B), value(getInteger(P(B, C)))), AttachedPayment(if ((C == "WAVES"))
360383 then unit
361- else fromBase58String(A), value(getInteger(O(z, A))))])
362- if ((bn == bn))
384+ else fromBase58String(C), value(getInteger(Q(B, C))))])
385+ if ((bt == bt))
363386 then {
364- let bo = assetBalance(this, fromBase58String(bl))
365- if ((bo == bo))
387+ let bu = assetBalance(this, fromBase58String(br))
388+ if ((bu == bu))
366389 then {
367- let bp = value(addressFromString(value(getString(M(z, A)))))
368- let bq = invoke(ag, "approve", [z, A], nil)
369- if ((bq == bq))
370- then [StringEntry(y(z, A), J), ScriptTransfer(bp, (bo - bm), fromBase58String(bl))]
390+ let bv = value(addressFromString(value(getString(O(B, C)))))
391+ let bw = invoke(aj, "approve", [B, C], nil)
392+ if ((bw == bw))
393+ then [StringEntry(A(B, C), L), ScriptTransfer(bv, (bu - bs), fromBase58String(br))]
371394 else throw("Strict value is not equal to itself.")
372395 }
373396 else throw("Strict value is not equal to itself.")
385408
386409
387410
388-@Callable(am)
389-func setAdmins (br) = {
390- let aG = ao(am)
391- if ((aG == aG))
392- then [StringEntry(x(), makeString(br, b))]
411+@Callable(ap)
412+func setAdmins (bx) = {
413+ let bk = ar(ap)
414+ if ((bk == bk))
415+ then [StringEntry(z(), makeString(bx, b))]
393416 else throw("Strict value is not equal to itself.")
394417 }
395418
396419
397420
398-@Callable(am)
399-func priceAssetsREADONLY () = $Tuple2(nil, aa(getString(U())))
421+@Callable(ap)
422+func priceAssetsREADONLY () = $Tuple2(nil, ad(getString(X())))
400423
401424
402425
403-@Callable(am)
404-func statusREADONLY (z,A) = {
405- let ay = {
406- let W = getString(y(z, A))
407- if ($isInstanceOf(W, "String"))
426+@Callable(ap)
427+func statusREADONLY (B,C) = {
428+ let aB = {
429+ let Z = getString(A(B, C))
430+ if ($isInstanceOf(Z, "String"))
408431 then {
409- let X = W
410- X
432+ let aa = Z
433+ aa
411434 }
412435 else unit
413436 }
414- $Tuple2(nil, ay)
437+ $Tuple2(nil, aB)
415438 }
416439
417440
418-@Verifier(bs)
419-func bt () = {
420- let bu = {
421- let W = aj()
422- if ($isInstanceOf(W, "ByteVector"))
441+@Verifier(by)
442+func bz () = {
443+ let bA = {
444+ let Z = am()
445+ if ($isInstanceOf(Z, "ByteVector"))
423446 then {
424- let an = W
425- an
447+ let aq = Z
448+ aq
426449 }
427- else if ($isInstanceOf(W, "Unit"))
428- then bs.senderPublicKey
450+ else if ($isInstanceOf(Z, "Unit"))
451+ then by.senderPublicKey
429452 else throw("Match error")
430453 }
431- sigVerify(bs.bodyBytes, bs.proofs[0], bu)
454+ sigVerify(by.bodyBytes, by.proofs[0], bA)
432455 }
433456
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
10-let d = "Invalid price asset"
10+let d = "VLTPOOL"
1111
12-func e (f) = makeString([a, ": ", f], "")
12+let e = "STBLPOOL"
13+
14+let f = "Invalid price asset"
15+
16+func g (h) = makeString([a, ": ", h], "")
1317
1418
15-func g (f) = throw(e(f))
19+func i (h) = throw(g(h))
1620
1721
18-func h () = g("Permission denied")
22+func j () = i("Permission denied")
1923
2024
21-func i () = g("Create is not called for assets pair")
25+func k () = i("Create is not called for assets pair")
2226
2327
24-func j () = g("You are not amountAsset issuer")
28+func l () = i("You are not amountAsset issuer")
2529
2630
27-func k () = g("Pool with such assets already exists")
31+func m () = i("Pool with such assets already exists")
2832
2933
30-func l () = g("Asset is not verified")
34+func n () = i("Asset is not verified")
3135
3236
33-func m () = g(d)
37+func o () = i(f)
3438
3539
36-func n () = g("Invalid fee asset")
40+func p () = i("Invalid fee asset")
3741
3842
39-func o () = g("Invalid amount asset attached")
43+func q () = i("Invalid amount asset attached")
4044
4145
42-func p () = g("Invalid status")
46+func r () = i("Invalid status")
4347
4448
45-func q () = g("Can activate pool only in 'pending' status")
49+func s () = i("Can activate pool only in 'pending' status")
4650
4751
48-func r () = g("FactoryV2 returned not string")
52+func t () = i("FactoryV2 returned not string")
4953
5054
51-func s () = g("invalid price asset amount")
55+func u () = i("invalid price asset amount")
5256
5357
54-func t () = g("invalid fee")
58+func v () = i("invalid fee")
5559
5660
57-func u () = g("invalid asset pair")
61+func w () = i("invalid asset pair")
5862
5963
60-func v () = makeString(["%s", "managerPublicKey"], b)
64+func x () = makeString(["%s", "managerPublicKey"], b)
6165
6266
63-func w () = "%s__managerVaultAddress"
67+func y () = "%s__managerVaultAddress"
6468
6569
66-func x () = makeString(["%s", "adminPubKeys"], b)
70+func z () = makeString(["%s", "adminPubKeys"], b)
6771
6872
69-func y (z,A) = makeString(["%s%s%s", "status", z, A], b)
73+func A (B,C) = makeString(["%s%s%s", "status", B, C], b)
7074
7175
72-func B () = makeString(["%s", "factoryContract"], b)
76+func D () = makeString(["%s", "factoryContract"], b)
7377
7478
75-func C () = makeString(["%s", "assetsStoreContract"], b)
79+func E () = makeString(["%s", "assetsStoreContract"], b)
7680
7781
78-func D () = makeString(["%s", "emissionContract"], b)
82+func F () = makeString(["%s", "emissionContract"], b)
7983
8084
81-func E (z,A) = makeString(["%s%s%s", "suffix", z, A], b)
85+func G (B,C) = makeString(["%s%s%s", "suffix", B, C], b)
8286
8387
84-func F () = makeString(["%s", "lastIndex"], b)
88+func H () = makeString(["%s", "lastIndex"], b)
8589
8690
87-let G = "u"
91+let I = "u"
8892
89-let H = "pending"
93+let J = "pending"
9094
91-let I = "declined"
95+let K = "declined"
9296
93-let J = "active"
97+let L = "active"
9498
95-let K = [H, I, J]
99+let M = [J, K, L]
96100
97-func L (z,A) = makeString(["%s%s%s", "createCalled", z, A], b)
101+func N (B,C) = makeString(["%s%s%s", "createCalled", B, C], b)
98102
99103
100-func M (z,A) = makeString(["%s%s%s", "createCaller", z, A], b)
104+func O (B,C) = makeString(["%s%s%s", "createCaller", B, C], b)
101105
102106
103-func N (z,A) = makeString(["%s%s%s", "amountAssetAmount", z, A], b)
107+func P (B,C) = makeString(["%s%s%s", "amountAssetAmount", B, C], b)
104108
105109
106-func O (z,A) = makeString(["%s%s%s", "priceAssetAmount", z, A], b)
110+func Q (B,C) = makeString(["%s%s%s", "priceAssetAmount", B, C], b)
107111
108112
109-func P (z,A) = makeString(["%s%s%s", "height", z, A], b)
113+func R (B,C) = makeString(["%s%s%s", "height", B, C], b)
110114
111115
112-func Q () = makeString(["%s", "feeAssetId"], b)
116+func S (B,C) = makeString(["%s%s%s", "poolType", B, C], b)
113117
114118
115-func R () = makeString(["%s", "feeAmount"], b)
119+func T () = makeString(["%s", "feeAssetId"], b)
116120
117121
118-func S () = makeString(["%s", "amountAssetMinAmount"], b)
122+func U () = makeString(["%s", "feeAmount"], b)
119123
120124
121-func T () = makeString(["%s", "priceAssetsMinAmount"], b)
125+func V () = makeString(["%s", "amountAssetMinAmount"], b)
122126
123127
124-func U () = makeString(["%s", "priceAssets"], b)
128+func W () = makeString(["%s", "priceAssetsMinAmount"], b)
125129
126130
127-func V () = {
128- let W = getString(w())
129- if ($isInstanceOf(W, "String"))
131+func X () = makeString(["%s", "priceAssets"], b)
132+
133+
134+func Y () = {
135+ let Z = getString(y())
136+ if ($isInstanceOf(Z, "String"))
130137 then {
131- let X = W
132- addressFromStringValue(X)
138+ let aa = Z
139+ addressFromStringValue(aa)
133140 }
134141 else this
135142 }
136143
137144
138-func Y (Z) = valueOrErrorMessage(getString(this, Z), (Z + " is not defined"))
145+func ab (ac) = valueOrErrorMessage(getString(this, ac), (ac + " is not defined"))
139146
140147
141-func aa (ab) = {
142- let W = ab
143- if ($isInstanceOf(W, "String"))
148+func ad (ae) = {
149+ let Z = ae
150+ if ($isInstanceOf(Z, "String"))
144151 then {
145- let X = W
146- if ((size(X) == 0))
152+ let aa = Z
153+ if ((size(aa) == 0))
147154 then nil
148- else split(X, b)
155+ else split(aa, b)
149156 }
150- else if ($isInstanceOf(W, "Unit"))
157+ else if ($isInstanceOf(Z, "Unit"))
151158 then nil
152159 else throw("Match error")
153160 }
154161
155162
156-let ac = addressFromStringValue(Y(B()))
163+let af = addressFromStringValue(ab(D()))
157164
158-let ad = makeString(["%s", "votingEmissionContract"], b)
165+let ag = makeString(["%s", "votingEmissionContract"], b)
159166
160-let ae = addressFromStringValue(valueOrErrorMessage(getString(ac, ad), e("voting emission contract address is required")))
167+let ah = addressFromStringValue(valueOrErrorMessage(getString(af, ag), g("voting emission contract address is required")))
161168
162-let af = makeString(["%s", "votingEmissionCandidateContract"], b)
169+let ai = makeString(["%s", "votingEmissionCandidateContract"], b)
163170
164-let ag = addressFromStringValue(valueOrErrorMessage(getString(ae, af), e("voting emission candidate contract address is required")))
171+let aj = addressFromStringValue(valueOrErrorMessage(getString(ah, ai), g("voting emission candidate contract address is required")))
165172
166-func ah (z,A) = valueOrElse(getBoolean(L(z, A)), false)
173+func ak (B,C) = valueOrElse(getBoolean(N(B, C)), false)
167174
168175
169-func ai (z,A) = if (ah(z, A))
176+func al (B,C) = if (ak(B, C))
170177 then true
171- else i()
178+ else k()
172179
173180
174-func aj () = {
175- let ak = V()
176- let W = getString(ak, v())
177- if ($isInstanceOf(W, "String"))
181+func am () = {
182+ let an = Y()
183+ let Z = getString(an, x())
184+ if ($isInstanceOf(Z, "String"))
178185 then {
179- let X = W
180- fromBase58String(X)
186+ let aa = Z
187+ fromBase58String(aa)
181188 }
182- else if ($isInstanceOf(W, "Unit"))
189+ else if ($isInstanceOf(Z, "Unit"))
183190 then unit
184191 else throw("Match error")
185192 }
186193
187194
188-func al (am) = {
189- let W = aj()
190- if ($isInstanceOf(W, "ByteVector"))
195+func ao (ap) = {
196+ let Z = am()
197+ if ($isInstanceOf(Z, "ByteVector"))
191198 then {
192- let an = W
193- (am.callerPublicKey == an)
199+ let aq = Z
200+ (ap.callerPublicKey == aq)
194201 }
195- else if ($isInstanceOf(W, "Unit"))
196- then (am.caller == this)
202+ else if ($isInstanceOf(Z, "Unit"))
203+ then (ap.caller == this)
197204 else throw("Match error")
198205 }
199206
200207
201-func ao (am) = if (al(am))
208+func ar (ap) = if (ao(ap))
202209 then true
203- else h()
210+ else j()
204211
205212
206-func ap (am) = {
207- let aq = aa(getString(x()))
208- if (containsElement(aq, toBase58String(am.callerPublicKey)))
213+func as (ap) = {
214+ let at = ad(getString(z()))
215+ if (containsElement(at, toBase58String(ap.callerPublicKey)))
209216 then true
210- else ao(am)
217+ else ar(ap)
211218 }
212219
213220
214-func ar (as) = (valueOrElse(getInteger(addressFromStringValue(Y(C())), (("status_<" + as) + ">")), 0) == 2)
221+func au (av) = (valueOrElse(getInteger(addressFromStringValue(ab(E())), (("status_<" + av) + ">")), 0) == 2)
215222
216223
217-func at (au) = {
218- let W = au.assetId
219- if ($isInstanceOf(W, "ByteVector"))
224+func aw (ax) = {
225+ let Z = ax.assetId
226+ if ($isInstanceOf(Z, "ByteVector"))
220227 then {
221- let av = W
222- let aw = value(assetInfo(av))
223- $Tuple2(toBase58String(av), aw)
228+ let ay = Z
229+ let az = value(assetInfo(ay))
230+ $Tuple2(toBase58String(ay), az)
224231 }
225- else if ($isInstanceOf(W, "Unit"))
232+ else if ($isInstanceOf(Z, "Unit"))
226233 then $Tuple2(c, unit)
227234 else throw("Match error")
228235 }
229236
230237
231-func ax (ay) = containsElement(K, ay)
238+func aA (aB) = containsElement(M, aB)
232239
233240
234-@Callable(am)
235-func constructor (az,aA,aB,aC,aD,aE,aF) = {
236- let aG = ao(am)
237- if ((aG == aG))
238- then [StringEntry(B(), az), StringEntry(C(), aA), StringEntry(D(), aB), StringEntry(T(), makeString(aC, b)), IntegerEntry(S(), aD), StringEntry(Q(), aE), IntegerEntry(R(), aF)]
239- else throw("Strict value is not equal to itself.")
240- }
241-
242-
243-
244-@Callable(am)
245-func create () = {
246- let aH = value(am.payments[0])
247- let aI = value(am.payments[1])
248- let aJ = value(am.payments[2])
249- let aK = at(aH)
250- let z = aK._1
251- let aL = aK._2
252- let aM = at(aI)
253- let A = aM._1
254- let aN = aM._2
255- let aO = at(aJ)
256- let aE = aO._1
257- let aP = aO._2
258- let aQ = aH.amount
259- let aR = aI.amount
260- let aS = aJ.amount
261- let aT = aa(getString(ac, U()))
262- let aU = getIntegerValue(S())
263- let aV = aa(getString(T()))
264- let aD = if (containsElement(aT, z))
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])
245+ let aH = aw(aE)
246+ let B = aH._1
247+ let aI = aH._2
248+ let aJ = aw(aF)
249+ let C = aJ._1
250+ let aK = aJ._2
251+ let aL = aw(aG)
252+ let aM = aL._1
253+ let aN = aL._2
254+ let aO = aE.amount
255+ let aP = aF.amount
256+ let aQ = aG.amount
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))
265261 then {
266- let aW = valueOrErrorMessage(indexOf(aT, z), d)
267- value(parseInt(aV[aW]))
262+ let aV = valueOrErrorMessage(indexOf(aR, B), f)
263+ value(parseInt(aT[aV]))
268264 }
269- else aU
270- let aX = if (containsElement(aT, A))
265+ else aS
266+ let aW = if (containsElement(aR, C))
271267 then {
272- let aW = valueOrErrorMessage(indexOf(aT, A), d)
273- value(parseInt(aV[aW]))
268+ let aV = valueOrErrorMessage(indexOf(aR, C), f)
269+ value(parseInt(aT[aV]))
274270 }
275- else aU
276- let aY = valueOrElse(getInteger(F()), 0)
277- let aZ = (aY + 1)
278- let ba = addressFromStringValue(Y(D()))
279- let bb = {
280- let bc = invoke(ac, "poolExistsREADONLY", [z, A], nil)
281- if ($isInstanceOf(bc, "Boolean"))
282- then bc
283- else throw(($getType(bc) + " couldn't be cast to Boolean"))
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"))
284280 }
285- let bd = [if (!(ah(z, A)))
281+ let bc = [if (!(ak(B, C)))
286282 then true
287- else k(), if (!(bb))
283+ else m(), if (!(ba))
288284 then true
289- else k(), if ((z != A))
285+ else m(), if ((B != C))
290286 then true
291- else u(), if (if (ar(z))
292- then ar(A)
287+ else w(), if (if (au(B))
288+ then au(C)
293289 else false)
294290 then true
295- else u(), if (if (containsElement(aT, z))
291+ else w(), if (if (containsElement(aR, B))
296292 then true
297- else containsElement(aT, A))
293+ else containsElement(aR, C))
298294 then true
299- else u(), if (if (al(am))
295+ else w(), if (if (ao(ap))
300296 then true
301- else (getString(Q()) == aE))
297+ else (getString(T()) == aM))
302298 then true
303- else n(), if (if (al(am))
299+ else p(), if (if (ao(ap))
304300 then true
305- else (aQ >= getIntegerValue(S())))
301+ else (aO >= getIntegerValue(V())))
306302 then true
307- else o(), if (if (al(am))
303+ else q(), if (if (ao(ap))
308304 then true
309- else (aR >= aX))
305+ else (aP >= aW))
310306 then true
311- else s(), if (if (al(am))
307+ else u(), if (if (ao(ap))
312308 then true
313- else (aS == getInteger(R())))
309+ else (aQ == getInteger(U())))
314310 then true
315- else t()]
316- if ((bd == bd))
311+ else v()]
312+ if ((bc == bc))
317313 then {
318- let be = 3
319- let bf = if ((size(am.payments) >= be))
320- then invoke(ba, "burn", nil, [AttachedPayment(fromBase58String(aE), aS)])
314+ let bd = 3
315+ let be = if ((size(ap.payments) >= bd))
316+ then invoke(aZ, "burn", nil, [AttachedPayment(fromBase58String(aM), aQ)])
321317 else unit
322- if ((bf == bf))
323- then [BooleanEntry(L(z, A), true), StringEntry(M(z, A), toString(am.caller)), IntegerEntry(F(), aZ), StringEntry(E(z, A), (toString(aZ) + G)), IntegerEntry(P(z, A), height), StringEntry(y(z, A), H), IntegerEntry(N(z, A), aQ), IntegerEntry(O(z, A), aR)]
318+ if ((be == be))
319+ 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)]
324320 else throw("Strict value is not equal to itself.")
325321 }
326322 else throw("Strict value is not equal to itself.")
327323 }
328324
329325
326+@Callable(ap)
327+func constructor (bf,bg,bh,bi,aU,aM,bj) = {
328+ let bk = ar(ap)
329+ if ((bk == bk))
330+ then [StringEntry(D(), bf), StringEntry(E(), bg), StringEntry(F(), bh), StringEntry(W(), makeString(bi, b)), IntegerEntry(V(), aU), StringEntry(T(), aM), IntegerEntry(U(), bj)]
331+ else throw("Strict value is not equal to itself.")
332+ }
330333
331-@Callable(am)
332-func activate (bg,z,bh,A,bi,bj) = {
333- let bd = [ap(am), if (ah(z, A))
334+
335+
336+@Callable(ap)
337+func create () = aC(ap, d)
338+
339+
340+
341+@Callable(ap)
342+func createStable () = {
343+ let bk = ar(ap)
344+ if ((bk == bk))
345+ then aC(ap, e)
346+ else throw("Strict value is not equal to itself.")
347+ }
348+
349+
350+
351+@Callable(ap)
352+func activate (bl,B,bm,C,bn,bo) = {
353+ let bc = [as(ap), if (ak(B, C))
334354 then true
335- else i(), if ((value(getString(y(z, A))) == H))
355+ else k(), if ((value(getString(A(B, C))) == J))
336356 then true
337- else q()]
338- if ((bd == bd))
357+ else s()]
358+ if ((bc == bc))
339359 then {
340- let bk = invoke(ac, "activateNewPool", [bg, z, A, ((bh + bi) + "LP"), (((bh + "/") + bi) + " pool liquidity provider token"), 0, "VLTPOOL", bj], nil)
341- if ((bk == bk))
360+ let bp = getString(this, S(B, C))
361+ let bq = invoke(af, "activateNewPool", [bl, B, C, ((bm + bn) + "LP"), (((bm + "/") + bn) + " pool liquidity provider token"), 0, if ((bp == unit))
362+ then "VLTPOOL"
363+ else value(bp), bo], nil)
364+ if ((bq == bq))
342365 then {
343- let bl = {
344- let W = bk
345- if ($isInstanceOf(W, "String"))
366+ let br = {
367+ let Z = bq
368+ if ($isInstanceOf(Z, "String"))
346369 then {
347- let av = W
348- av
370+ let ay = Z
371+ ay
349372 }
350- else r()
373+ else t()
351374 }
352- if ((bl == bl))
375+ if ((br == br))
353376 then {
354- let bm = assetBalance(this, fromBase58String(bl))
355- if ((bm == bm))
377+ let bs = assetBalance(this, fromBase58String(br))
378+ if ((bs == bs))
356379 then {
357- let bn = invoke(addressFromStringValue(bg), "put", [0, false], [AttachedPayment(if ((z == "WAVES"))
380+ let bt = invoke(addressFromStringValue(bl), "put", [0, false], [AttachedPayment(if ((B == "WAVES"))
358381 then unit
359- else fromBase58String(z), value(getInteger(N(z, A)))), AttachedPayment(if ((A == "WAVES"))
382+ else fromBase58String(B), value(getInteger(P(B, C)))), AttachedPayment(if ((C == "WAVES"))
360383 then unit
361- else fromBase58String(A), value(getInteger(O(z, A))))])
362- if ((bn == bn))
384+ else fromBase58String(C), value(getInteger(Q(B, C))))])
385+ if ((bt == bt))
363386 then {
364- let bo = assetBalance(this, fromBase58String(bl))
365- if ((bo == bo))
387+ let bu = assetBalance(this, fromBase58String(br))
388+ if ((bu == bu))
366389 then {
367- let bp = value(addressFromString(value(getString(M(z, A)))))
368- let bq = invoke(ag, "approve", [z, A], nil)
369- if ((bq == bq))
370- then [StringEntry(y(z, A), J), ScriptTransfer(bp, (bo - bm), fromBase58String(bl))]
390+ let bv = value(addressFromString(value(getString(O(B, C)))))
391+ let bw = invoke(aj, "approve", [B, C], nil)
392+ if ((bw == bw))
393+ then [StringEntry(A(B, C), L), ScriptTransfer(bv, (bu - bs), fromBase58String(br))]
371394 else throw("Strict value is not equal to itself.")
372395 }
373396 else throw("Strict value is not equal to itself.")
374397 }
375398 else throw("Strict value is not equal to itself.")
376399 }
377400 else throw("Strict value is not equal to itself.")
378401 }
379402 else throw("Strict value is not equal to itself.")
380403 }
381404 else throw("Strict value is not equal to itself.")
382405 }
383406 else throw("Strict value is not equal to itself.")
384407 }
385408
386409
387410
388-@Callable(am)
389-func setAdmins (br) = {
390- let aG = ao(am)
391- if ((aG == aG))
392- then [StringEntry(x(), makeString(br, b))]
411+@Callable(ap)
412+func setAdmins (bx) = {
413+ let bk = ar(ap)
414+ if ((bk == bk))
415+ then [StringEntry(z(), makeString(bx, b))]
393416 else throw("Strict value is not equal to itself.")
394417 }
395418
396419
397420
398-@Callable(am)
399-func priceAssetsREADONLY () = $Tuple2(nil, aa(getString(U())))
421+@Callable(ap)
422+func priceAssetsREADONLY () = $Tuple2(nil, ad(getString(X())))
400423
401424
402425
403-@Callable(am)
404-func statusREADONLY (z,A) = {
405- let ay = {
406- let W = getString(y(z, A))
407- if ($isInstanceOf(W, "String"))
426+@Callable(ap)
427+func statusREADONLY (B,C) = {
428+ let aB = {
429+ let Z = getString(A(B, C))
430+ if ($isInstanceOf(Z, "String"))
408431 then {
409- let X = W
410- X
432+ let aa = Z
433+ aa
411434 }
412435 else unit
413436 }
414- $Tuple2(nil, ay)
437+ $Tuple2(nil, aB)
415438 }
416439
417440
418-@Verifier(bs)
419-func bt () = {
420- let bu = {
421- let W = aj()
422- if ($isInstanceOf(W, "ByteVector"))
441+@Verifier(by)
442+func bz () = {
443+ let bA = {
444+ let Z = am()
445+ if ($isInstanceOf(Z, "ByteVector"))
423446 then {
424- let an = W
425- an
447+ let aq = Z
448+ aq
426449 }
427- else if ($isInstanceOf(W, "Unit"))
428- then bs.senderPublicKey
450+ else if ($isInstanceOf(Z, "Unit"))
451+ then by.senderPublicKey
429452 else throw("Match error")
430453 }
431- sigVerify(bs.bodyBytes, bs.proofs[0], bu)
454+ sigVerify(by.bodyBytes, by.proofs[0], bA)
432455 }
433456

github/deemru/w8io/026f985 
142.92 ms