tx · 4Ec9jXGPbgeFMgLFotmguau9CGrYp8mnT4SdNdVk1jnF

3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh:  -0.01300000 Waves

2023.05.10 13:17 [2571657] smart account 3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh > SELF 0.00000000 Waves

{ "type": 13, "id": "4Ec9jXGPbgeFMgLFotmguau9CGrYp8mnT4SdNdVk1jnF", "fee": 1300000, "feeAssetId": null, "timestamp": 1683713846972, "version": 2, "chainId": 84, "sender": "3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh", "senderPublicKey": "Ap7CkWd6fzBU34kGo4GJJzC5q4qWXuLVunzE25PchdGS", "proofs": [ "u935n3RUM4cZmRgThhL2WcfsuqENxFu596zCxTnjkpL2mdLTurkiur9Te1pwjpnrgBuPExz5inaRg3wQwVDyxFT" ], "script": "base64:BgLiDwgCEgkKBwgICBgBCAESABIICgYICAgICAgSAwoBGBIAEgQKAggIIhBjb250cmFjdEZpbGVuYW1lIgNTRVAiDHdhdmVzQXNzZXRJZCIRaW52YWxpZFByaWNlQXNzZXQiB3dyYXBFcnIiA21zZyIIdGhyb3dFcnIiB3Rocm93UEQiFHRocm93Q3JlYXRlTm90Q2FsbGVkIhF0aHJvd1lvdU5vdElzc3VlciIPdGhyb3dQb29sRXhpc3RzIhV0aHJvd0Fzc2V0Tm90VmVyaWZpZWQiFnRocm93SW52YWxpZFByaWNlQXNzZXQiFHRocm93SW52YWxpZEZlZUFzc2V0Ihd0aHJvd0ludmFsaWRBbW91bnRBc3NldCISdGhyb3dJbnZhbGlkU3RhdHVzIh90aHJvd0NhbkFjdGl2YXRlT25seVBlbmRpbmdQb29sIh10aHJvd0ZhY3RvcnlSZXR1cm5lZE5vdFN0cmluZyIcdGhyb3dJbnZhbGlkUHJpY2VBc3NldEFtb3VudCIPdGhyb3dJbnZhbGlkRmVlIhV0aHJvd0ludmFsaWRBc3NldFBhaXIiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiD2tleUFkbWluUHViS2V5cyIJa2V5U3RhdHVzIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiEmtleUZhY3RvcnlDb250cmFjdCIWa2V5QXNzZXRzU3RvcmVDb250cmFjdCITa2V5RW1pc3Npb25Db250cmFjdCIJa2V5U3VmZml4IgxrZXlMYXN0SW5kZXgiC2luZGV4U3VmZml4Ig1zdGF0dXNQZW5kaW5nIg5zdGF0dXNEZWNsaW5lZCIMc3RhdHVzQWN0aXZlIghzdGF0dXNlcyIPa2V5Q3JlYXRlQ2FsbGVkIg9rZXlDcmVhdGVDYWxsZXIiFGtleUFtb3VudEFzc2V0QW1vdW50IhNrZXlQcmljZUFzc2V0QW1vdW50IglrZXlIZWlnaHQiDWtleUZlZUFzc2V0SWQiDGtleUZlZUFtb3VudCIXa2V5QW1vdW50QXNzZXRNaW5BbW91bnQiF2tleVByaWNlQXNzZXRzTWluQW1vdW50Ig5rZXlQcmljZUFzc2V0cyIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIHJG1hdGNoMCIBcyIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiEnN0cmluZ09wdGlvblRvTGlzdCIMc3RyaW5nT3JVbml0Ig9mYWN0b3J5Q29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiImtleVZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QiH3ZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QiDmlzQ3JlYXRlQ2FsbGVkIhBtdXN0Q3JlYXRlQ2FsbGVkIhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IhNtYW5hZ2VyVmF1bHRBZGRyZXNzIglpc01hbmFnZXIiAWkiAnBrIgttdXN0TWFuYWdlciIJbXVzdEFkbWluIghhZG1pblBLcyIKaXNWZXJpZmllZCIHYXNzZXRJZCIMZ2V0SWRBbmRJbmZvIgdwYXltZW50IgJpZCIEaW5mbyILdmFsaWRTdGF0dXMiBnN0YXR1cyIQZmFjdG9yeVYyQWRkcmVzcyISYXNzZXRzU3RvcmVBZGRyZXNzIg9lbWlzc2lvbkFkZHJlc3MiFHByaWNlQXNzZXRzTWluQW1vdW50IhRhbW91bnRBc3NldE1pbkFtb3VudCIKZmVlQXNzZXRJZCIJZmVlQW1vdW50IgtjaGVja0NhbGxlciINYXNzZXQxUGF5bWVudCINYXNzZXQyUGF5bWVudCIPZmVlQXNzZXRQYXltZW50IgskdDA3NTMxNzU4OCIIYXNzZXQxSWQiCmFzc2V0MUluZm8iCyR0MDc1OTE3NjQ4Ighhc3NldDJJZCIKYXNzZXQySW5mbyILJHQwNzY1MTc3MTQiDGZlZUFzc2V0SW5mbyIPcHJpY2VBc3NldHNMaXN0IhNjaGVja0Fzc2V0c05vdEVxdWFsIgskdDA3ODg4ODM0OSIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiGm1hbmFnZXJQcmljZUFzc2V0TWluQW1vdW50IhNwcmljZUFzc2V0TWluQW1vdW50IhBwcmljZUFzc2V0c0luZGV4IglsYXN0SW5kZXgiCGN1ckluZGV4IhBlbWlzc2lvbkNvbnRyYWN0Igpwb29sRXhpc3RzIgFAIgZjaGVja3MiE3BheW1lbnRzV2l0aEZlZVNpemUiD2J1cm5FbWlzc2lvbkludiILcG9vbEFkZHJlc3MiEWFtb3VudEFzc2V0VGlja2VyIhBwcmljZUFzc2V0VGlja2VyIgRsb2dvIhJhY3RpdmF0ZU5ld1Bvb2xJbnYiCWxwQXNzZXRJZCIJYmVmb3JlUHV0IgNwdXQiCGFmdGVyUHV0IgR1c2VyIgNyZXMiDGFkbWluUHViS2V5cyICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5PQABYQIPdXNlcl9wb29scy5yaWRlAAFiAgJfXwABYwIFV0FWRVMAAWQCE0ludmFsaWQgcHJpY2UgYXNzZXQBAWUBAWYJALkJAgkAzAgCBQFhCQDMCAICAjogCQDMCAIFAWYFA25pbAIAAQFnAQFmCQACAQkBAWUBBQFmAQFoAAkBAWcBAhFQZXJtaXNzaW9uIGRlbmllZAEBaQAJAQFnAQIkQ3JlYXRlIGlzIG5vdCBjYWxsZWQgZm9yIGFzc2V0cyBwYWlyAQFqAAkBAWcBAh5Zb3UgYXJlIG5vdCBhbW91bnRBc3NldCBpc3N1ZXIBAWsACQEBZwECJFBvb2wgd2l0aCBzdWNoIGFzc2V0cyBhbHJlYWR5IGV4aXN0cwEBbAAJAQFnAQIVQXNzZXQgaXMgbm90IHZlcmlmaWVkAQFtAAkBAWcBBQFkAQFuAAkBAWcBAhFJbnZhbGlkIGZlZSBhc3NldAEBbwAJAQFnAQIdSW52YWxpZCBhbW91bnQgYXNzZXQgYXR0YWNoZWQBAXAACQEBZwECDkludmFsaWQgc3RhdHVzAQFxAAkBAWcBAipDYW4gYWN0aXZhdGUgcG9vbCBvbmx5IGluICdwZW5kaW5nJyBzdGF0dXMBAXIACQEBZwECHUZhY3RvcnlWMiByZXR1cm5lZCBub3Qgc3RyaW5nAQFzAAkBAWcBAhppbnZhbGlkIHByaWNlIGFzc2V0IGFtb3VudAEBdAAJAQFnAQILaW52YWxpZCBmZWUBAXUACQEBZwECEmludmFsaWQgYXNzZXQgcGFpcgEBdgAJALkJAgkAzAgCAgIlcwkAzAgCAhBtYW5hZ2VyUHVibGljS2V5BQNuaWwFAWIBAXcAAhclc19fbWFuYWdlclZhdWx0QWRkcmVzcwEBeAAJALkJAgkAzAgCAgIlcwkAzAgCAgxhZG1pblB1YktleXMFA25pbAUBYgEBeQIBegFBCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICBnN0YXR1cwkAzAgCBQF6CQDMCAIFAUEFA25pbAUBYgEBQgAJALkJAgkAzAgCAgIlcwkAzAgCAg9mYWN0b3J5Q29udHJhY3QFA25pbAUBYgEBQwAJALkJAgkAzAgCAgIlcwkAzAgCAhNhc3NldHNTdG9yZUNvbnRyYWN0BQNuaWwFAWIBAUQACQC5CQIJAMwIAgICJXMJAMwIAgIQZW1pc3Npb25Db250cmFjdAUDbmlsBQFiAQFFAgF6AUEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGc3VmZml4CQDMCAIFAXoJAMwIAgUBQQUDbmlsBQFiAQFGAAkAuQkCCQDMCAICAiVzCQDMCAICCWxhc3RJbmRleAUDbmlsBQFiAAFHAgF1AAFIAgdwZW5kaW5nAAFJAghkZWNsaW5lZAABSgIGYWN0aXZlAAFLCQDMCAIFAUgJAMwIAgUBSQkAzAgCBQFKBQNuaWwBAUwCAXoBQQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgxjcmVhdGVDYWxsZWQJAMwIAgUBegkAzAgCBQFBBQNuaWwFAWIBAU0CAXoBQQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgxjcmVhdGVDYWxsZXIJAMwIAgUBegkAzAgCBQFBBQNuaWwFAWIBAU4CAXoBQQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhFhbW91bnRBc3NldEFtb3VudAkAzAgCBQF6CQDMCAIFAUEFA25pbAUBYgEBTwIBegFBCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICEHByaWNlQXNzZXRBbW91bnQJAMwIAgUBegkAzAgCBQFBBQNuaWwFAWIBAVACAXoBQQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZoZWlnaHQJAMwIAgUBegkAzAgCBQFBBQNuaWwFAWIBAVEACQC5CQIJAMwIAgICJXMJAMwIAgIKZmVlQXNzZXRJZAUDbmlsBQFiAQFSAAkAuQkCCQDMCAICAiVzCQDMCAICCWZlZUFtb3VudAUDbmlsBQFiAQFTAAkAuQkCCQDMCAICAiVzCQDMCAICFGFtb3VudEFzc2V0TWluQW1vdW50BQNuaWwFAWIBAVQACQC5CQIJAMwIAgICJXMJAMwIAgIUcHJpY2VBc3NldHNNaW5BbW91bnQFA25pbAUBYgEBVQAJALkJAgkAzAgCAgIlcwkAzAgCAgtwcmljZUFzc2V0cwUDbmlsBQFiAQFWAAQBVwkAoggBCQEBdwADCQABAgUBVwIGU3RyaW5nBAFYBQFXCQERQGV4dHJOYXRpdmUoMTA2MikBBQFYBQR0aGlzAQFZAQFaCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUBWgkArAICBQFaAg8gaXMgbm90IGRlZmluZWQBAmFhAQJhYgQBVwUCYWIDCQABAgUBVwIGU3RyaW5nBAFYBQFXAwkAAAIJALECAQUBWAAABQNuaWwJALUJAgUBWAUBYgMJAAECBQFXAgRVbml0BQNuaWwJAAIBAgtNYXRjaCBlcnJvcgACYWMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFZAQkBAUIAAAJhZAkAuQkCCQDMCAICAiVzCQDMCAICFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QFA25pbAUBYgACYWUJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhYwUCYWQJAQFlAQIsdm90aW5nIGVtaXNzaW9uIGNvbnRyYWN0IGFkZHJlc3MgaXMgcmVxdWlyZWQAAmFmCQC5CQIJAMwIAgICJXMJAMwIAgIfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdAUDbmlsBQFiAAJhZwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmFlBQJhZgkBAWUBAjZ2b3RpbmcgZW1pc3Npb24gY2FuZGlkYXRlIGNvbnRyYWN0IGFkZHJlc3MgaXMgcmVxdWlyZWQBAmFoAgF6AUEJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAUwCBQF6BQFBBwECYWkCAXoBQQMJAQJhaAIFAXoFAUEGCQEBaQABAmFqAAQCYWsJAQFWAAQBVwkAnQgCBQJhawkBAXYAAwkAAQIFAVcCBlN0cmluZwQBWAUBVwkA2QQBBQFYAwkAAQIFAVcCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYWwBAmFtBAFXCQECYWoAAwkAAQIFAVcCCkJ5dGVWZWN0b3IEAmFuBQFXCQAAAggFAmFtD2NhbGxlclB1YmxpY0tleQUCYW4DCQABAgUBVwIEVW5pdAkAAAIIBQJhbQZjYWxsZXIFBHRoaXMJAAIBAgtNYXRjaCBlcnJvcgECYW8BAmFtAwkBAmFsAQUCYW0GCQEBaAABAmFwAQJhbQQCYXEJAQJhYQEJAKIIAQkBAXgAAwkBD2NvbnRhaW5zRWxlbWVudAIFAmFxCQDYBAEIBQJhbQ9jYWxsZXJQdWJsaWNLZXkGCQECYW8BBQJhbQECYXIBAmFzCQAAAgkBC3ZhbHVlT3JFbHNlAgkAmggCCQERQGV4dHJOYXRpdmUoMTA2MikBCQEBWQEJAQFDAAkArAICCQCsAgICCHN0YXR1c188BQJhcwIBPgAAAAIBAmF0AQJhdQQBVwgFAmF1B2Fzc2V0SWQDCQABAgUBVwIKQnl0ZVZlY3RvcgQCYXYFAVcEAmF3CQEFdmFsdWUBCQDsBwEFAmF2CQCUCgIJANgEAQUCYXYFAmF3AwkAAQIFAVcCBFVuaXQJAJQKAgUBYwUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJheAECYXkJAQ9jb250YWluc0VsZW1lbnQCBQFLBQJheQYCYW0BC2NvbnN0cnVjdG9yBwJhegJhQQJhQgJhQwJhRAJhRQJhRgQCYUcJAQJhbwEFAmFtAwkAAAIFAmFHBQJhRwkAzAgCCQELU3RyaW5nRW50cnkCCQEBQgAFAmF6CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFDAAUCYUEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUQABQJhQgkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAAJALkJAgUCYUMFAWIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFTAAUCYUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVEABQJhRQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVIABQJhRgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFtAQZjcmVhdGUABAJhSAkBBXZhbHVlAQkAkQMCCAUCYW0IcGF5bWVudHMAAAQCYUkJAQV2YWx1ZQEJAJEDAggFAmFtCHBheW1lbnRzAAEEAmFKCQEFdmFsdWUBCQCRAwIIBQJhbQhwYXltZW50cwACBAJhSwkBAmF0AQUCYUgEAmFMCAUCYUsCXzEEAmFNCAUCYUsCXzIEAmFOCQECYXQBBQJhSQQCYU8IBQJhTgJfMQQCYVAIBQJhTgJfMgQCYVEJAQJhdAEFAmFKBAJhRQgFAmFRAl8xBAJhUggFAmFRAl8yBAJhUwkBAmFhAQkAnQgCBQJhYwkBAVUABAJhVAMJAQIhPQIFAmFMBQJhTwYJAQF1AAMJAAACBQJhVAUCYVQEAmFVAwMJAQJhbAEFAmFtBgMJAQ9jb250YWluc0VsZW1lbnQCBQJhUwUCYU8JAQJhcgEFAmFMBwkAlgoEBQJhTAgFAmFIBmFtb3VudAUCYU8IBQJhSQZhbW91bnQDAwkBD2NvbnRhaW5zRWxlbWVudAIFAmFTBQJhTAkBAmFyAQUCYU8HCQCWCgQFAmFPCAUCYUkGYW1vdW50BQJhTAgFAmFIBmFtb3VudAkBAXUABAF6CAUCYVUCXzEEAmFWCAUCYVUCXzIEAUEIBQJhVQJfMwQCYVcIBQJhVQJfNAQCYVgAAQQCYVkDCQECYWwBBQJhbQUCYVgEAmFaCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAM8IAgUCYVMFAUEFAWQJAQV2YWx1ZQEJALYJAQkAkQMCCQECYWEBCQCiCAEJAQFUAAUCYVoEAmJhCQELdmFsdWVPckVsc2UCCQCfCAEJAQFGAAAABAJiYgkAZAIFAmJhAAEEAmJjCQERQGV4dHJOYXRpdmUoMTA2MikBCQEBWQEJAQFEAAQCYmQKAAJiZQkA/AcEBQJhYwIScG9vbEV4aXN0c1JFQURPTkxZCQDMCAIFAXoJAMwIAgUBQQUDbmlsBQNuaWwDCQABAgUCYmUCB0Jvb2xlYW4FAmJlCQACAQkArAICCQADAQUCYmUCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmJmCQDMCAIDCQEBIQEJAQJhaAIFAXoFAUEGCQEBawAJAMwIAgMJAQEhAQUCYmQGCQEBawAJAMwIAgMDCQECYWwBBQJhbQYJAAACCQCiCAEJAQFRAAUCYUUGCQEBbgAJAMwIAgMDCQECYWwBBQJhbQYJAGcCBQJhVgkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAVMABgkBAW8ACQDMCAIDAwkBAmFsAQUCYW0GCQBnAgUCYVcFAmFZBgkBAXMACQDMCAIDAwkBAmFsAQUCYW0GCQAAAggFAmFKBmFtb3VudAkAnwgBCQEBUgAGCQEBdAAFA25pbAMJAAACBQJiZgUCYmYEAmJnAAMEAmJoAwkAZwIJAJADAQgFAmFtCHBheW1lbnRzBQJiZwkA/AcEBQJiYwIEYnVybgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFAmFFCAUCYUoGYW1vdW50BQNuaWwFBHVuaXQDCQAAAgUCYmgFAmJoCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBTAIFAXoFAUEGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFNAgUBegUBQQkApQgBCAUCYW0GY2FsbGVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBRgAFAmJiCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFFAgUBegUBQQkArAICCQCkAwEFAmJiBQFHCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUAIFAXoFAUEFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCCQEBeQIFAXoFAUEFAUgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFOAgUBegUBQQUCYVYJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFPAgUBegUBQQUCYVcFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhbQEIYWN0aXZhdGUGAmJpAXoCYmoBQQJiawJibAQCYmYJAMwIAgkBAmFwAQUCYW0JAMwIAgMJAQJhaAIFAXoFAUEGCQEBaQAJAMwIAgMJAAACCQEFdmFsdWUBCQCiCAEJAQF5AgUBegUBQQUBSAYJAQFxAAUDbmlsAwkAAAIFAmJmBQJiZgQCYm0JAPwHBAUCYWMCD2FjdGl2YXRlTmV3UG9vbAkAzAgCBQJiaQkAzAgCBQF6CQDMCAIFAUEJAMwIAgkArAICCQCsAgIFAmJqBQJiawICTFAJAMwIAgkArAICCQCsAgIJAKwCAgUCYmoCAS8FAmJrAh4gcG9vbCBsaXF1aWRpdHkgcHJvdmlkZXIgdG9rZW4JAMwIAgAACQDMCAICB1ZMVFBPT0wJAMwIAgUCYmwFA25pbAUDbmlsAwkAAAIFAmJtBQJibQQCYm4EAVcFAmJtAwkAAQIFAVcCBlN0cmluZwQCYXYFAVcFAmF2CQEBcgADCQAAAgUCYm4FAmJuBAJibwkA8AcCBQR0aGlzCQDZBAEFAmJuAwkAAAIFAmJvBQJibwQCYnAJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYmkCA3B1dAkAzAgCAAAJAMwIAgcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgMJAAACBQF6AgVXQVZFUwUEdW5pdAkA2QQBBQF6CQEFdmFsdWUBCQCfCAEJAQFOAgUBegUBQQkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgMJAAACBQFBAgVXQVZFUwUEdW5pdAkA2QQBBQFBCQEFdmFsdWUBCQCfCAEJAQFPAgUBegUBQQUDbmlsAwkAAAIFAmJwBQJicAQCYnEJAPAHAgUEdGhpcwkA2QQBBQJibgMJAAACBQJicQUCYnEEAmJyCQEFdmFsdWUBCQCmCAEJAQV2YWx1ZQEJAKIIAQkBAU0CBQF6BQFBBAJicwkA/AcEBQJhZwIHYXBwcm92ZQkAzAgCBQF6CQDMCAIFAUEFA25pbAUDbmlsAwkAAAIFAmJzBQJicwkAzAgCCQELU3RyaW5nRW50cnkCCQEBeQIFAXoFAUEFAUoJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYnIJAGUCBQJicQUCYm8JANkEAQUCYm4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhbQEJc2V0QWRtaW5zAQJidAQCYUcJAQJhbwEFAmFtAwkAAAIFAmFHBQJhRwkAzAgCCQELU3RyaW5nRW50cnkCCQEBeAAJALkJAgUCYnQFAWIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhbQETcHJpY2VBc3NldHNSRUFET05MWQAJAJQKAgUDbmlsCQECYWEBCQCiCAEJAQFVAAJhbQEOc3RhdHVzUkVBRE9OTFkCAXoBQQQCYXkEAVcJAKIIAQkBAXkCBQF6BQFBAwkAAQIFAVcCBlN0cmluZwQBWAUBVwUBWAUEdW5pdAkAlAoCBQNuaWwFAmF5AQJidQECYnYABAJidwQBVwkBAmFqAAMJAAECBQFXAgpCeXRlVmVjdG9yBAJhbgUBVwUCYW4DCQABAgUBVwIEVW5pdAgFAmJ1D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJidQlib2R5Qnl0ZXMJAJEDAggFAmJ1BnByb29mcwAABQJid0ZWy58=", "height": 2571657, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4pAh3mrJUeHMi8nxU6tiKTbUTDVovY6CR5E5STvVv8sc Next: Bcqq9bGEuN49RvHfog8bCyPom58HDDuTAGPCW6xYYaGT Diff:
OldNewDifferences
6060 func v () = makeString(["%s", "managerPublicKey"], b)
6161
6262
63-func w () = makeString(["%s", "pendingManagerPublicKey"], b)
63+func w () = "%s__managerVaultAddress"
6464
6565
6666 func x () = makeString(["%s", "adminPubKeys"], b)
124124 func U () = makeString(["%s", "priceAssets"], b)
125125
126126
127-func V (W) = valueOrErrorMessage(getString(this, W), (W + " is not defined"))
127+func V () = {
128+ let W = getString(w())
129+ if ($isInstanceOf(W, "String"))
130+ then {
131+ let X = W
132+ addressFromStringValue(X)
133+ }
134+ else this
135+ }
128136
129137
130-func X (Y) = {
131- let Z = Y
132- if ($isInstanceOf(Z, "String"))
138+func Y (Z) = valueOrErrorMessage(getString(this, Z), (Z + " is not defined"))
139+
140+
141+func aa (ab) = {
142+ let W = ab
143+ if ($isInstanceOf(W, "String"))
133144 then {
134- let aa = Z
135- if ((size(aa) == 0))
145+ let X = W
146+ if ((size(X) == 0))
136147 then nil
137- else split(aa, b)
148+ else split(X, b)
138149 }
139- else if ($isInstanceOf(Z, "Unit"))
150+ else if ($isInstanceOf(W, "Unit"))
140151 then nil
141152 else throw("Match error")
142153 }
143154
144155
145-let ab = addressFromStringValue(V(B()))
156+let ac = addressFromStringValue(Y(B()))
146157
147-let ac = makeString(["%s", "votingEmissionContract"], b)
158+let ad = makeString(["%s", "votingEmissionContract"], b)
148159
149-let ad = addressFromStringValue(valueOrErrorMessage(getString(ab, ac), e("voting emission contract address is required")))
160+let ae = addressFromStringValue(valueOrErrorMessage(getString(ac, ad), e("voting emission contract address is required")))
150161
151-let ae = makeString(["%s", "votingEmissionCandidateContract"], b)
162+let af = makeString(["%s", "votingEmissionCandidateContract"], b)
152163
153-let af = addressFromStringValue(valueOrErrorMessage(getString(ad, ae), e("voting emission candidate contract address is required")))
164+let ag = addressFromStringValue(valueOrErrorMessage(getString(ae, af), e("voting emission candidate contract address is required")))
154165
155-func ag (z,A) = valueOrElse(getBoolean(L(z, A)), false)
166+func ah (z,A) = valueOrElse(getBoolean(L(z, A)), false)
156167
157168
158-func ah (z,A) = if (ag(z, A))
169+func ai (z,A) = if (ah(z, A))
159170 then true
160171 else i()
161172
162173
163-func ai () = {
164- let Z = getString(v())
165- if ($isInstanceOf(Z, "String"))
174+func aj () = {
175+ let ak = V()
176+ let W = getString(ak, v())
177+ if ($isInstanceOf(W, "String"))
166178 then {
167- let aa = Z
168- fromBase58String(aa)
179+ let X = W
180+ fromBase58String(X)
169181 }
170- else if ($isInstanceOf(Z, "Unit"))
182+ else if ($isInstanceOf(W, "Unit"))
171183 then unit
172184 else throw("Match error")
173185 }
174186
175187
176-func aj () = {
177- let Z = getString(w())
178- if ($isInstanceOf(Z, "String"))
188+func al (am) = {
189+ let W = aj()
190+ if ($isInstanceOf(W, "ByteVector"))
179191 then {
180- let aa = Z
181- fromBase58String(aa)
192+ let an = W
193+ (am.callerPublicKey == an)
182194 }
183- else if ($isInstanceOf(Z, "Unit"))
184- then unit
195+ else if ($isInstanceOf(W, "Unit"))
196+ then (am.caller == this)
185197 else throw("Match error")
186198 }
187199
188200
189-func ak (al) = {
190- let Z = ai()
191- if ($isInstanceOf(Z, "ByteVector"))
192- then {
193- let am = Z
194- (al.callerPublicKey == am)
195- }
196- else if ($isInstanceOf(Z, "Unit"))
197- then (al.caller == this)
198- else throw("Match error")
199- }
200-
201-
202-func an (al) = if (ak(al))
201+func ao (am) = if (al(am))
203202 then true
204203 else h()
205204
206205
207-func ao (al) = {
208- let ap = X(getString(x()))
209- if (containsElement(ap, toBase58String(al.callerPublicKey)))
206+func ap (am) = {
207+ let aq = aa(getString(x()))
208+ if (containsElement(aq, toBase58String(am.callerPublicKey)))
210209 then true
211- else an(al)
210+ else ao(am)
212211 }
213212
214213
215-func aq (ar) = (valueOrElse(getInteger(addressFromStringValue(V(C())), (("status_<" + ar) + ">")), 0) == 2)
214+func ar (as) = (valueOrElse(getInteger(addressFromStringValue(Y(C())), (("status_<" + as) + ">")), 0) == 2)
216215
217216
218-func as (at) = {
219- let Z = at.assetId
220- if ($isInstanceOf(Z, "ByteVector"))
217+func at (au) = {
218+ let W = au.assetId
219+ if ($isInstanceOf(W, "ByteVector"))
221220 then {
222- let au = Z
223- let av = value(assetInfo(au))
224- $Tuple2(toBase58String(au), av)
221+ let av = W
222+ let aw = value(assetInfo(av))
223+ $Tuple2(toBase58String(av), aw)
225224 }
226- else if ($isInstanceOf(Z, "Unit"))
225+ else if ($isInstanceOf(W, "Unit"))
227226 then $Tuple2(c, unit)
228227 else throw("Match error")
229228 }
230229
231230
232-func aw (ax) = containsElement(K, ax)
231+func ax (ay) = containsElement(K, ay)
233232
234233
235-@Callable(al)
236-func constructor (ay,az,aA,aB,aC,aD,aE) = {
237- let aF = an(al)
238- if ((aF == aF))
239- then [StringEntry(B(), ay), StringEntry(C(), az), StringEntry(D(), aA), StringEntry(T(), makeString(aB, b)), IntegerEntry(S(), aC), StringEntry(Q(), aD), IntegerEntry(R(), aE)]
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)]
240239 else throw("Strict value is not equal to itself.")
241240 }
242241
243242
244243
245-@Callable(al)
244+@Callable(am)
246245 func create () = {
247- let aG = value(al.payments[0])
248- let aH = value(al.payments[1])
249- let aI = value(al.payments[2])
250- let aJ = as(aG)
251- let z = aJ._1
252- let aK = aJ._2
253- let aL = as(aH)
254- let A = aL._1
255- let aM = aL._2
256- let aN = as(aI)
257- let aD = aN._1
258- let aO = aN._2
259- let aP = aG.amount
260- let aQ = aH.amount
261- let aR = aI.amount
262- let aS = X(getString(ab, U()))
263- let aT = getIntegerValue(S())
264- let aU = X(getString(T()))
265- let aC = if (containsElement(aS, z))
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 aL = aK._1
251+ let aM = aK._2
252+ let aN = at(aI)
253+ let aO = aN._1
254+ let aP = aN._2
255+ let aQ = at(aJ)
256+ let aE = aQ._1
257+ let aR = aQ._2
258+ let aS = aa(getString(ac, U()))
259+ let aT = if ((aL != aO))
260+ then true
261+ else u()
262+ if ((aT == aT))
266263 then {
267- let aV = valueOrErrorMessage(indexOf(aS, z), d)
268- value(parseInt(aU[aV]))
269- }
270- else aT
271- let aW = if (containsElement(aS, A))
272- then {
273- let aV = valueOrErrorMessage(indexOf(aS, A), d)
274- value(parseInt(aU[aV]))
275- }
276- else aT
277- let aX = valueOrElse(getInteger(F()), 0)
278- let aY = (aX + 1)
279- let aZ = addressFromStringValue(V(D()))
280- let ba = {
281- let bb = invoke(ab, "poolExistsREADONLY", [z, A], nil)
282- if ($isInstanceOf(bb, "Boolean"))
283- then bb
284- else throw(($getType(bb) + " couldn't be cast to Boolean"))
285- }
286- let bc = [if (!(ag(z, A)))
287- then true
288- else k(), if (!(ba))
289- then true
290- else k(), if ((z != A))
291- then true
292- else u(), if (if (aq(z))
293- then aq(A)
294- else false)
295- then true
296- else u(), if (if (containsElement(aS, z))
297- then true
298- else containsElement(aS, A))
299- then true
300- else u(), if (if (ak(al))
301- then true
302- else (getString(Q()) == aD))
303- then true
304- else n(), if (if (ak(al))
305- then true
306- else (aP >= getIntegerValue(S())))
307- then true
308- else o(), if (if (ak(al))
309- then true
310- else (aQ >= aW))
311- then true
312- else s(), if (if (ak(al))
313- then true
314- else (aR == getInteger(R())))
315- then true
316- else t()]
317- if ((bc == bc))
318- then {
319- let bd = 3
320- let be = if ((size(al.payments) >= bd))
321- then invoke(aZ, "burn", nil, [AttachedPayment(fromBase58String(aD), aR)])
322- else unit
323- if ((be == be))
324- then [BooleanEntry(L(z, A), true), StringEntry(M(z, A), toString(al.caller)), IntegerEntry(F(), aY), StringEntry(E(z, A), (toString(aY) + G)), IntegerEntry(P(z, A), height), StringEntry(y(z, A), H), IntegerEntry(N(z, A), aP), IntegerEntry(O(z, A), aQ)]
264+ let aU = if (if (al(am))
265+ then true
266+ else if (containsElement(aS, aO))
267+ then ar(aL)
268+ else false)
269+ then $Tuple4(aL, aH.amount, aO, aI.amount)
270+ else if (if (containsElement(aS, aL))
271+ then ar(aO)
272+ else false)
273+ then $Tuple4(aO, aI.amount, aL, aH.amount)
274+ else u()
275+ let z = aU._1
276+ let aV = aU._2
277+ let A = aU._3
278+ let aW = aU._4
279+ let aX = 1
280+ let aY = if (al(am))
281+ then aX
282+ else {
283+ let aZ = valueOrErrorMessage(indexOf(aS, A), d)
284+ value(parseInt(aa(getString(T()))[aZ]))
285+ }
286+ let ba = valueOrElse(getInteger(F()), 0)
287+ let bb = (ba + 1)
288+ let bc = addressFromStringValue(Y(D()))
289+ let bd = {
290+ let be = invoke(ac, "poolExistsREADONLY", [z, A], nil)
291+ if ($isInstanceOf(be, "Boolean"))
292+ then be
293+ else throw(($getType(be) + " couldn't be cast to Boolean"))
294+ }
295+ let bf = [if (!(ah(z, A)))
296+ then true
297+ else k(), if (!(bd))
298+ then true
299+ else k(), if (if (al(am))
300+ then true
301+ else (getString(Q()) == aE))
302+ then true
303+ else n(), if (if (al(am))
304+ then true
305+ else (aV >= getIntegerValue(S())))
306+ then true
307+ else o(), if (if (al(am))
308+ then true
309+ else (aW >= aY))
310+ then true
311+ else s(), if (if (al(am))
312+ then true
313+ else (aJ.amount == getInteger(R())))
314+ then true
315+ else t()]
316+ if ((bf == bf))
317+ then {
318+ let bg = 3
319+ let bh = if ((size(am.payments) >= bg))
320+ then invoke(bc, "burn", nil, [AttachedPayment(fromBase58String(aE), aJ.amount)])
321+ else unit
322+ if ((bh == bh))
323+ then [BooleanEntry(L(z, A), true), StringEntry(M(z, A), toString(am.caller)), IntegerEntry(F(), bb), StringEntry(E(z, A), (toString(bb) + G)), IntegerEntry(P(z, A), height), StringEntry(y(z, A), H), IntegerEntry(N(z, A), aV), IntegerEntry(O(z, A), aW)]
324+ else throw("Strict value is not equal to itself.")
325+ }
325326 else throw("Strict value is not equal to itself.")
326327 }
327328 else throw("Strict value is not equal to itself.")
329330
330331
331332
332-@Callable(al)
333-func activate (bf,z,bg,A,bh,bi) = {
334- let bc = [ao(al), if (ag(z, A))
333+@Callable(am)
334+func activate (bi,z,bj,A,bk,bl) = {
335+ let bf = [ap(am), if (ah(z, A))
335336 then true
336337 else i(), if ((value(getString(y(z, A))) == H))
337338 then true
338339 else q()]
339- if ((bc == bc))
340+ if ((bf == bf))
340341 then {
341- let bj = invoke(ab, "activateNewPool", [bf, z, A, ((bg + bh) + "LP"), (((bg + "/") + bh) + " pool liquidity provider token"), 0, "VLTPOOL", bi], nil)
342- if ((bj == bj))
342+ let bm = invoke(ac, "activateNewPool", [bi, z, A, ((bj + bk) + "LP"), (((bj + "/") + bk) + " pool liquidity provider token"), 0, "VLTPOOL", bl], nil)
343+ if ((bm == bm))
343344 then {
344- let bk = {
345- let Z = bj
346- if ($isInstanceOf(Z, "String"))
345+ let bn = {
346+ let W = bm
347+ if ($isInstanceOf(W, "String"))
347348 then {
348- let au = Z
349- au
349+ let av = W
350+ av
350351 }
351352 else r()
352353 }
353- if ((bk == bk))
354+ if ((bn == bn))
354355 then {
355- let bl = assetBalance(this, fromBase58String(bk))
356- if ((bl == bl))
356+ let bo = assetBalance(this, fromBase58String(bn))
357+ if ((bo == bo))
357358 then {
358- let bm = invoke(addressFromStringValue(bf), "put", [0, false], [AttachedPayment(if ((z == "WAVES"))
359+ let bp = invoke(addressFromStringValue(bi), "put", [0, false], [AttachedPayment(if ((z == "WAVES"))
359360 then unit
360361 else fromBase58String(z), value(getInteger(N(z, A)))), AttachedPayment(if ((A == "WAVES"))
361362 then unit
362363 else fromBase58String(A), value(getInteger(O(z, A))))])
363- if ((bm == bm))
364+ if ((bp == bp))
364365 then {
365- let bn = assetBalance(this, fromBase58String(bk))
366- if ((bn == bn))
366+ let bq = assetBalance(this, fromBase58String(bn))
367+ if ((bq == bq))
367368 then {
368- let bo = value(addressFromString(value(getString(M(z, A)))))
369- let bp = invoke(af, "approve", [z, A], nil)
370- if ((bp == bp))
371- then [StringEntry(y(z, A), J), ScriptTransfer(bo, (bn - bl), fromBase58String(bk))]
369+ let br = value(addressFromString(value(getString(M(z, A)))))
370+ let bs = invoke(ag, "approve", [z, A], nil)
371+ if ((bs == bs))
372+ then [StringEntry(y(z, A), J), ScriptTransfer(br, (bq - bo), fromBase58String(bn))]
372373 else throw("Strict value is not equal to itself.")
373374 }
374375 else throw("Strict value is not equal to itself.")
386387
387388
388389
389-@Callable(al)
390-func setAdmins (bq) = {
391- let aF = an(al)
392- if ((aF == aF))
393- then [StringEntry(x(), makeString(bq, b))]
390+@Callable(am)
391+func setAdmins (bt) = {
392+ let aG = ao(am)
393+ if ((aG == aG))
394+ then [StringEntry(x(), makeString(bt, b))]
394395 else throw("Strict value is not equal to itself.")
395396 }
396397
397398
398399
399-@Callable(al)
400-func setManager (br) = {
401- let aF = an(al)
402- if ((aF == aF))
403- then {
404- let bs = fromBase58String(br)
405- if ((bs == bs))
406- then [StringEntry(w(), br)]
407- else throw("Strict value is not equal to itself.")
408- }
409- else throw("Strict value is not equal to itself.")
400+@Callable(am)
401+func priceAssetsREADONLY () = $Tuple2(nil, aa(getString(U())))
402+
403+
404+
405+@Callable(am)
406+func statusREADONLY (z,A) = {
407+ let ay = {
408+ let W = getString(y(z, A))
409+ if ($isInstanceOf(W, "String"))
410+ then {
411+ let X = W
412+ X
413+ }
414+ else unit
415+ }
416+ $Tuple2(nil, ay)
410417 }
411418
412419
413-
414-@Callable(al)
415-func confirmManager () = {
416- let bt = aj()
417- let bu = if (isDefined(bt))
418- then true
419- else throw("No pending manager")
420- if ((bu == bu))
421- then {
422- let bv = if ((al.callerPublicKey == value(bt)))
423- then true
424- else throw("You are not pending manager")
425- if ((bv == bv))
426- then [StringEntry(v(), toBase58String(value(bt))), DeleteEntry(w())]
427- else throw("Strict value is not equal to itself.")
428- }
429- else throw("Strict value is not equal to itself.")
430- }
431-
432-
433-
434-@Callable(al)
435-func priceAssetsREADONLY () = $Tuple2(nil, X(getString(U())))
436-
437-
438-
439-@Callable(al)
440-func statusREADONLY (z,A) = {
441- let ax = {
442- let Z = getString(y(z, A))
443- if ($isInstanceOf(Z, "String"))
420+@Verifier(bu)
421+func bv () = {
422+ let bw = {
423+ let W = aj()
424+ if ($isInstanceOf(W, "ByteVector"))
444425 then {
445- let aa = Z
446- aa
426+ let an = W
427+ an
447428 }
448- else unit
449- }
450- $Tuple2(nil, ax)
451- }
452-
453-
454-@Verifier(bw)
455-func bx () = {
456- let by = {
457- let Z = ai()
458- if ($isInstanceOf(Z, "ByteVector"))
459- then {
460- let am = Z
461- am
462- }
463- else if ($isInstanceOf(Z, "Unit"))
464- then bw.senderPublicKey
429+ else if ($isInstanceOf(W, "Unit"))
430+ then bu.senderPublicKey
465431 else throw("Match error")
466432 }
467- sigVerify(bw.bodyBytes, bw.proofs[0], by)
433+ sigVerify(bu.bodyBytes, bu.proofs[0], bw)
468434 }
469435
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 = "Invalid price asset"
1111
1212 func e (f) = makeString([a, ": ", f], "")
1313
1414
1515 func g (f) = throw(e(f))
1616
1717
1818 func h () = g("Permission denied")
1919
2020
2121 func i () = g("Create is not called for assets pair")
2222
2323
2424 func j () = g("You are not amountAsset issuer")
2525
2626
2727 func k () = g("Pool with such assets already exists")
2828
2929
3030 func l () = g("Asset is not verified")
3131
3232
3333 func m () = g(d)
3434
3535
3636 func n () = g("Invalid fee asset")
3737
3838
3939 func o () = g("Invalid amount asset attached")
4040
4141
4242 func p () = g("Invalid status")
4343
4444
4545 func q () = g("Can activate pool only in 'pending' status")
4646
4747
4848 func r () = g("FactoryV2 returned not string")
4949
5050
5151 func s () = g("invalid price asset amount")
5252
5353
5454 func t () = g("invalid fee")
5555
5656
5757 func u () = g("invalid asset pair")
5858
5959
6060 func v () = makeString(["%s", "managerPublicKey"], b)
6161
6262
63-func w () = makeString(["%s", "pendingManagerPublicKey"], b)
63+func w () = "%s__managerVaultAddress"
6464
6565
6666 func x () = makeString(["%s", "adminPubKeys"], b)
6767
6868
6969 func y (z,A) = makeString(["%s%s%s", "status", z, A], b)
7070
7171
7272 func B () = makeString(["%s", "factoryContract"], b)
7373
7474
7575 func C () = makeString(["%s", "assetsStoreContract"], b)
7676
7777
7878 func D () = makeString(["%s", "emissionContract"], b)
7979
8080
8181 func E (z,A) = makeString(["%s%s%s", "suffix", z, A], b)
8282
8383
8484 func F () = makeString(["%s", "lastIndex"], b)
8585
8686
8787 let G = "u"
8888
8989 let H = "pending"
9090
9191 let I = "declined"
9292
9393 let J = "active"
9494
9595 let K = [H, I, J]
9696
9797 func L (z,A) = makeString(["%s%s%s", "createCalled", z, A], b)
9898
9999
100100 func M (z,A) = makeString(["%s%s%s", "createCaller", z, A], b)
101101
102102
103103 func N (z,A) = makeString(["%s%s%s", "amountAssetAmount", z, A], b)
104104
105105
106106 func O (z,A) = makeString(["%s%s%s", "priceAssetAmount", z, A], b)
107107
108108
109109 func P (z,A) = makeString(["%s%s%s", "height", z, A], b)
110110
111111
112112 func Q () = makeString(["%s", "feeAssetId"], b)
113113
114114
115115 func R () = makeString(["%s", "feeAmount"], b)
116116
117117
118118 func S () = makeString(["%s", "amountAssetMinAmount"], b)
119119
120120
121121 func T () = makeString(["%s", "priceAssetsMinAmount"], b)
122122
123123
124124 func U () = makeString(["%s", "priceAssets"], b)
125125
126126
127-func V (W) = valueOrErrorMessage(getString(this, W), (W + " is not defined"))
127+func V () = {
128+ let W = getString(w())
129+ if ($isInstanceOf(W, "String"))
130+ then {
131+ let X = W
132+ addressFromStringValue(X)
133+ }
134+ else this
135+ }
128136
129137
130-func X (Y) = {
131- let Z = Y
132- if ($isInstanceOf(Z, "String"))
138+func Y (Z) = valueOrErrorMessage(getString(this, Z), (Z + " is not defined"))
139+
140+
141+func aa (ab) = {
142+ let W = ab
143+ if ($isInstanceOf(W, "String"))
133144 then {
134- let aa = Z
135- if ((size(aa) == 0))
145+ let X = W
146+ if ((size(X) == 0))
136147 then nil
137- else split(aa, b)
148+ else split(X, b)
138149 }
139- else if ($isInstanceOf(Z, "Unit"))
150+ else if ($isInstanceOf(W, "Unit"))
140151 then nil
141152 else throw("Match error")
142153 }
143154
144155
145-let ab = addressFromStringValue(V(B()))
156+let ac = addressFromStringValue(Y(B()))
146157
147-let ac = makeString(["%s", "votingEmissionContract"], b)
158+let ad = makeString(["%s", "votingEmissionContract"], b)
148159
149-let ad = addressFromStringValue(valueOrErrorMessage(getString(ab, ac), e("voting emission contract address is required")))
160+let ae = addressFromStringValue(valueOrErrorMessage(getString(ac, ad), e("voting emission contract address is required")))
150161
151-let ae = makeString(["%s", "votingEmissionCandidateContract"], b)
162+let af = makeString(["%s", "votingEmissionCandidateContract"], b)
152163
153-let af = addressFromStringValue(valueOrErrorMessage(getString(ad, ae), e("voting emission candidate contract address is required")))
164+let ag = addressFromStringValue(valueOrErrorMessage(getString(ae, af), e("voting emission candidate contract address is required")))
154165
155-func ag (z,A) = valueOrElse(getBoolean(L(z, A)), false)
166+func ah (z,A) = valueOrElse(getBoolean(L(z, A)), false)
156167
157168
158-func ah (z,A) = if (ag(z, A))
169+func ai (z,A) = if (ah(z, A))
159170 then true
160171 else i()
161172
162173
163-func ai () = {
164- let Z = getString(v())
165- if ($isInstanceOf(Z, "String"))
174+func aj () = {
175+ let ak = V()
176+ let W = getString(ak, v())
177+ if ($isInstanceOf(W, "String"))
166178 then {
167- let aa = Z
168- fromBase58String(aa)
179+ let X = W
180+ fromBase58String(X)
169181 }
170- else if ($isInstanceOf(Z, "Unit"))
182+ else if ($isInstanceOf(W, "Unit"))
171183 then unit
172184 else throw("Match error")
173185 }
174186
175187
176-func aj () = {
177- let Z = getString(w())
178- if ($isInstanceOf(Z, "String"))
188+func al (am) = {
189+ let W = aj()
190+ if ($isInstanceOf(W, "ByteVector"))
179191 then {
180- let aa = Z
181- fromBase58String(aa)
192+ let an = W
193+ (am.callerPublicKey == an)
182194 }
183- else if ($isInstanceOf(Z, "Unit"))
184- then unit
195+ else if ($isInstanceOf(W, "Unit"))
196+ then (am.caller == this)
185197 else throw("Match error")
186198 }
187199
188200
189-func ak (al) = {
190- let Z = ai()
191- if ($isInstanceOf(Z, "ByteVector"))
192- then {
193- let am = Z
194- (al.callerPublicKey == am)
195- }
196- else if ($isInstanceOf(Z, "Unit"))
197- then (al.caller == this)
198- else throw("Match error")
199- }
200-
201-
202-func an (al) = if (ak(al))
201+func ao (am) = if (al(am))
203202 then true
204203 else h()
205204
206205
207-func ao (al) = {
208- let ap = X(getString(x()))
209- if (containsElement(ap, toBase58String(al.callerPublicKey)))
206+func ap (am) = {
207+ let aq = aa(getString(x()))
208+ if (containsElement(aq, toBase58String(am.callerPublicKey)))
210209 then true
211- else an(al)
210+ else ao(am)
212211 }
213212
214213
215-func aq (ar) = (valueOrElse(getInteger(addressFromStringValue(V(C())), (("status_<" + ar) + ">")), 0) == 2)
214+func ar (as) = (valueOrElse(getInteger(addressFromStringValue(Y(C())), (("status_<" + as) + ">")), 0) == 2)
216215
217216
218-func as (at) = {
219- let Z = at.assetId
220- if ($isInstanceOf(Z, "ByteVector"))
217+func at (au) = {
218+ let W = au.assetId
219+ if ($isInstanceOf(W, "ByteVector"))
221220 then {
222- let au = Z
223- let av = value(assetInfo(au))
224- $Tuple2(toBase58String(au), av)
221+ let av = W
222+ let aw = value(assetInfo(av))
223+ $Tuple2(toBase58String(av), aw)
225224 }
226- else if ($isInstanceOf(Z, "Unit"))
225+ else if ($isInstanceOf(W, "Unit"))
227226 then $Tuple2(c, unit)
228227 else throw("Match error")
229228 }
230229
231230
232-func aw (ax) = containsElement(K, ax)
231+func ax (ay) = containsElement(K, ay)
233232
234233
235-@Callable(al)
236-func constructor (ay,az,aA,aB,aC,aD,aE) = {
237- let aF = an(al)
238- if ((aF == aF))
239- then [StringEntry(B(), ay), StringEntry(C(), az), StringEntry(D(), aA), StringEntry(T(), makeString(aB, b)), IntegerEntry(S(), aC), StringEntry(Q(), aD), IntegerEntry(R(), aE)]
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)]
240239 else throw("Strict value is not equal to itself.")
241240 }
242241
243242
244243
245-@Callable(al)
244+@Callable(am)
246245 func create () = {
247- let aG = value(al.payments[0])
248- let aH = value(al.payments[1])
249- let aI = value(al.payments[2])
250- let aJ = as(aG)
251- let z = aJ._1
252- let aK = aJ._2
253- let aL = as(aH)
254- let A = aL._1
255- let aM = aL._2
256- let aN = as(aI)
257- let aD = aN._1
258- let aO = aN._2
259- let aP = aG.amount
260- let aQ = aH.amount
261- let aR = aI.amount
262- let aS = X(getString(ab, U()))
263- let aT = getIntegerValue(S())
264- let aU = X(getString(T()))
265- let aC = if (containsElement(aS, z))
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 aL = aK._1
251+ let aM = aK._2
252+ let aN = at(aI)
253+ let aO = aN._1
254+ let aP = aN._2
255+ let aQ = at(aJ)
256+ let aE = aQ._1
257+ let aR = aQ._2
258+ let aS = aa(getString(ac, U()))
259+ let aT = if ((aL != aO))
260+ then true
261+ else u()
262+ if ((aT == aT))
266263 then {
267- let aV = valueOrErrorMessage(indexOf(aS, z), d)
268- value(parseInt(aU[aV]))
269- }
270- else aT
271- let aW = if (containsElement(aS, A))
272- then {
273- let aV = valueOrErrorMessage(indexOf(aS, A), d)
274- value(parseInt(aU[aV]))
275- }
276- else aT
277- let aX = valueOrElse(getInteger(F()), 0)
278- let aY = (aX + 1)
279- let aZ = addressFromStringValue(V(D()))
280- let ba = {
281- let bb = invoke(ab, "poolExistsREADONLY", [z, A], nil)
282- if ($isInstanceOf(bb, "Boolean"))
283- then bb
284- else throw(($getType(bb) + " couldn't be cast to Boolean"))
285- }
286- let bc = [if (!(ag(z, A)))
287- then true
288- else k(), if (!(ba))
289- then true
290- else k(), if ((z != A))
291- then true
292- else u(), if (if (aq(z))
293- then aq(A)
294- else false)
295- then true
296- else u(), if (if (containsElement(aS, z))
297- then true
298- else containsElement(aS, A))
299- then true
300- else u(), if (if (ak(al))
301- then true
302- else (getString(Q()) == aD))
303- then true
304- else n(), if (if (ak(al))
305- then true
306- else (aP >= getIntegerValue(S())))
307- then true
308- else o(), if (if (ak(al))
309- then true
310- else (aQ >= aW))
311- then true
312- else s(), if (if (ak(al))
313- then true
314- else (aR == getInteger(R())))
315- then true
316- else t()]
317- if ((bc == bc))
318- then {
319- let bd = 3
320- let be = if ((size(al.payments) >= bd))
321- then invoke(aZ, "burn", nil, [AttachedPayment(fromBase58String(aD), aR)])
322- else unit
323- if ((be == be))
324- then [BooleanEntry(L(z, A), true), StringEntry(M(z, A), toString(al.caller)), IntegerEntry(F(), aY), StringEntry(E(z, A), (toString(aY) + G)), IntegerEntry(P(z, A), height), StringEntry(y(z, A), H), IntegerEntry(N(z, A), aP), IntegerEntry(O(z, A), aQ)]
264+ let aU = if (if (al(am))
265+ then true
266+ else if (containsElement(aS, aO))
267+ then ar(aL)
268+ else false)
269+ then $Tuple4(aL, aH.amount, aO, aI.amount)
270+ else if (if (containsElement(aS, aL))
271+ then ar(aO)
272+ else false)
273+ then $Tuple4(aO, aI.amount, aL, aH.amount)
274+ else u()
275+ let z = aU._1
276+ let aV = aU._2
277+ let A = aU._3
278+ let aW = aU._4
279+ let aX = 1
280+ let aY = if (al(am))
281+ then aX
282+ else {
283+ let aZ = valueOrErrorMessage(indexOf(aS, A), d)
284+ value(parseInt(aa(getString(T()))[aZ]))
285+ }
286+ let ba = valueOrElse(getInteger(F()), 0)
287+ let bb = (ba + 1)
288+ let bc = addressFromStringValue(Y(D()))
289+ let bd = {
290+ let be = invoke(ac, "poolExistsREADONLY", [z, A], nil)
291+ if ($isInstanceOf(be, "Boolean"))
292+ then be
293+ else throw(($getType(be) + " couldn't be cast to Boolean"))
294+ }
295+ let bf = [if (!(ah(z, A)))
296+ then true
297+ else k(), if (!(bd))
298+ then true
299+ else k(), if (if (al(am))
300+ then true
301+ else (getString(Q()) == aE))
302+ then true
303+ else n(), if (if (al(am))
304+ then true
305+ else (aV >= getIntegerValue(S())))
306+ then true
307+ else o(), if (if (al(am))
308+ then true
309+ else (aW >= aY))
310+ then true
311+ else s(), if (if (al(am))
312+ then true
313+ else (aJ.amount == getInteger(R())))
314+ then true
315+ else t()]
316+ if ((bf == bf))
317+ then {
318+ let bg = 3
319+ let bh = if ((size(am.payments) >= bg))
320+ then invoke(bc, "burn", nil, [AttachedPayment(fromBase58String(aE), aJ.amount)])
321+ else unit
322+ if ((bh == bh))
323+ then [BooleanEntry(L(z, A), true), StringEntry(M(z, A), toString(am.caller)), IntegerEntry(F(), bb), StringEntry(E(z, A), (toString(bb) + G)), IntegerEntry(P(z, A), height), StringEntry(y(z, A), H), IntegerEntry(N(z, A), aV), IntegerEntry(O(z, A), aW)]
324+ else throw("Strict value is not equal to itself.")
325+ }
325326 else throw("Strict value is not equal to itself.")
326327 }
327328 else throw("Strict value is not equal to itself.")
328329 }
329330
330331
331332
332-@Callable(al)
333-func activate (bf,z,bg,A,bh,bi) = {
334- let bc = [ao(al), if (ag(z, A))
333+@Callable(am)
334+func activate (bi,z,bj,A,bk,bl) = {
335+ let bf = [ap(am), if (ah(z, A))
335336 then true
336337 else i(), if ((value(getString(y(z, A))) == H))
337338 then true
338339 else q()]
339- if ((bc == bc))
340+ if ((bf == bf))
340341 then {
341- let bj = invoke(ab, "activateNewPool", [bf, z, A, ((bg + bh) + "LP"), (((bg + "/") + bh) + " pool liquidity provider token"), 0, "VLTPOOL", bi], nil)
342- if ((bj == bj))
342+ let bm = invoke(ac, "activateNewPool", [bi, z, A, ((bj + bk) + "LP"), (((bj + "/") + bk) + " pool liquidity provider token"), 0, "VLTPOOL", bl], nil)
343+ if ((bm == bm))
343344 then {
344- let bk = {
345- let Z = bj
346- if ($isInstanceOf(Z, "String"))
345+ let bn = {
346+ let W = bm
347+ if ($isInstanceOf(W, "String"))
347348 then {
348- let au = Z
349- au
349+ let av = W
350+ av
350351 }
351352 else r()
352353 }
353- if ((bk == bk))
354+ if ((bn == bn))
354355 then {
355- let bl = assetBalance(this, fromBase58String(bk))
356- if ((bl == bl))
356+ let bo = assetBalance(this, fromBase58String(bn))
357+ if ((bo == bo))
357358 then {
358- let bm = invoke(addressFromStringValue(bf), "put", [0, false], [AttachedPayment(if ((z == "WAVES"))
359+ let bp = invoke(addressFromStringValue(bi), "put", [0, false], [AttachedPayment(if ((z == "WAVES"))
359360 then unit
360361 else fromBase58String(z), value(getInteger(N(z, A)))), AttachedPayment(if ((A == "WAVES"))
361362 then unit
362363 else fromBase58String(A), value(getInteger(O(z, A))))])
363- if ((bm == bm))
364+ if ((bp == bp))
364365 then {
365- let bn = assetBalance(this, fromBase58String(bk))
366- if ((bn == bn))
366+ let bq = assetBalance(this, fromBase58String(bn))
367+ if ((bq == bq))
367368 then {
368- let bo = value(addressFromString(value(getString(M(z, A)))))
369- let bp = invoke(af, "approve", [z, A], nil)
370- if ((bp == bp))
371- then [StringEntry(y(z, A), J), ScriptTransfer(bo, (bn - bl), fromBase58String(bk))]
369+ let br = value(addressFromString(value(getString(M(z, A)))))
370+ let bs = invoke(ag, "approve", [z, A], nil)
371+ if ((bs == bs))
372+ then [StringEntry(y(z, A), J), ScriptTransfer(br, (bq - bo), fromBase58String(bn))]
372373 else throw("Strict value is not equal to itself.")
373374 }
374375 else throw("Strict value is not equal to itself.")
375376 }
376377 else throw("Strict value is not equal to itself.")
377378 }
378379 else throw("Strict value is not equal to itself.")
379380 }
380381 else throw("Strict value is not equal to itself.")
381382 }
382383 else throw("Strict value is not equal to itself.")
383384 }
384385 else throw("Strict value is not equal to itself.")
385386 }
386387
387388
388389
389-@Callable(al)
390-func setAdmins (bq) = {
391- let aF = an(al)
392- if ((aF == aF))
393- then [StringEntry(x(), makeString(bq, b))]
390+@Callable(am)
391+func setAdmins (bt) = {
392+ let aG = ao(am)
393+ if ((aG == aG))
394+ then [StringEntry(x(), makeString(bt, b))]
394395 else throw("Strict value is not equal to itself.")
395396 }
396397
397398
398399
399-@Callable(al)
400-func setManager (br) = {
401- let aF = an(al)
402- if ((aF == aF))
403- then {
404- let bs = fromBase58String(br)
405- if ((bs == bs))
406- then [StringEntry(w(), br)]
407- else throw("Strict value is not equal to itself.")
408- }
409- else throw("Strict value is not equal to itself.")
400+@Callable(am)
401+func priceAssetsREADONLY () = $Tuple2(nil, aa(getString(U())))
402+
403+
404+
405+@Callable(am)
406+func statusREADONLY (z,A) = {
407+ let ay = {
408+ let W = getString(y(z, A))
409+ if ($isInstanceOf(W, "String"))
410+ then {
411+ let X = W
412+ X
413+ }
414+ else unit
415+ }
416+ $Tuple2(nil, ay)
410417 }
411418
412419
413-
414-@Callable(al)
415-func confirmManager () = {
416- let bt = aj()
417- let bu = if (isDefined(bt))
418- then true
419- else throw("No pending manager")
420- if ((bu == bu))
421- then {
422- let bv = if ((al.callerPublicKey == value(bt)))
423- then true
424- else throw("You are not pending manager")
425- if ((bv == bv))
426- then [StringEntry(v(), toBase58String(value(bt))), DeleteEntry(w())]
427- else throw("Strict value is not equal to itself.")
428- }
429- else throw("Strict value is not equal to itself.")
430- }
431-
432-
433-
434-@Callable(al)
435-func priceAssetsREADONLY () = $Tuple2(nil, X(getString(U())))
436-
437-
438-
439-@Callable(al)
440-func statusREADONLY (z,A) = {
441- let ax = {
442- let Z = getString(y(z, A))
443- if ($isInstanceOf(Z, "String"))
420+@Verifier(bu)
421+func bv () = {
422+ let bw = {
423+ let W = aj()
424+ if ($isInstanceOf(W, "ByteVector"))
444425 then {
445- let aa = Z
446- aa
426+ let an = W
427+ an
447428 }
448- else unit
449- }
450- $Tuple2(nil, ax)
451- }
452-
453-
454-@Verifier(bw)
455-func bx () = {
456- let by = {
457- let Z = ai()
458- if ($isInstanceOf(Z, "ByteVector"))
459- then {
460- let am = Z
461- am
462- }
463- else if ($isInstanceOf(Z, "Unit"))
464- then bw.senderPublicKey
429+ else if ($isInstanceOf(W, "Unit"))
430+ then bu.senderPublicKey
465431 else throw("Match error")
466432 }
467- sigVerify(bw.bodyBytes, bw.proofs[0], by)
433+ sigVerify(bu.bodyBytes, bu.proofs[0], bw)
468434 }
469435

github/deemru/w8io/026f985 
80.30 ms