tx · 5ifMM8dPiZ7dWFGqw4TSnFr2dnkDQrVkRAbNxZVp7YsU

3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh:  -0.01400000 Waves

2023.05.04 12:27 [2562830] smart account 3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh > SELF 0.00000000 Waves

{ "type": 13, "id": "5ifMM8dPiZ7dWFGqw4TSnFr2dnkDQrVkRAbNxZVp7YsU", "fee": 1400000, "feeAssetId": null, "timestamp": 1683192443064, "version": 2, "chainId": 84, "sender": "3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh", "senderPublicKey": "Ap7CkWd6fzBU34kGo4GJJzC5q4qWXuLVunzE25PchdGS", "proofs": [ "5tY9s9z9SzdTxUnrK89LCqTbdKKrxH6dcEM2biLA2ftdwQNG4GyEUSjgvXeAhS1poJ5ihZL95tyd2ae1X4jyi2Xo" ], "script": "base64:BgLiEAgCEgkKBwgICBgBCAESABIAEggKBggICAgICBIDCgEYEgMKAQgSABIAEgQKAggIIhBjb250cmFjdEZpbGVuYW1lIgNTRVAiDHdhdmVzQXNzZXRJZCIHVkxUUE9PTCIIU1RCTFBPT0wiEWludmFsaWRQcmljZUFzc2V0Igd3cmFwRXJyIgNtc2ciCHRocm93RXJyIgd0aHJvd1BEIhR0aHJvd0NyZWF0ZU5vdENhbGxlZCIRdGhyb3dZb3VOb3RJc3N1ZXIiD3Rocm93UG9vbEV4aXN0cyIVdGhyb3dBc3NldE5vdFZlcmlmaWVkIhZ0aHJvd0ludmFsaWRQcmljZUFzc2V0IhR0aHJvd0ludmFsaWRGZWVBc3NldCIXdGhyb3dJbnZhbGlkQW1vdW50QXNzZXQiEnRocm93SW52YWxpZFN0YXR1cyIfdGhyb3dDYW5BY3RpdmF0ZU9ubHlQZW5kaW5nUG9vbCIddGhyb3dGYWN0b3J5UmV0dXJuZWROb3RTdHJpbmciHHRocm93SW52YWxpZFByaWNlQXNzZXRBbW91bnQiD3Rocm93SW52YWxpZEZlZSIVdGhyb3dJbnZhbGlkQXNzZXRQYWlyIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIPa2V5QWRtaW5QdWJLZXlzIglrZXlTdGF0dXMiDWFtb3VudEFzc2V0SWQiDHByaWNlQXNzZXRJZCISa2V5RmFjdG9yeUNvbnRyYWN0IhZrZXlBc3NldHNTdG9yZUNvbnRyYWN0IhNrZXlFbWlzc2lvbkNvbnRyYWN0IglrZXlTdWZmaXgiDGtleUxhc3RJbmRleCILaW5kZXhTdWZmaXgiDXN0YXR1c1BlbmRpbmciDnN0YXR1c0RlY2xpbmVkIgxzdGF0dXNBY3RpdmUiCHN0YXR1c2VzIg9rZXlDcmVhdGVDYWxsZWQiD2tleUNyZWF0ZUNhbGxlciIUa2V5QW1vdW50QXNzZXRBbW91bnQiE2tleVByaWNlQXNzZXRBbW91bnQiCWtleUhlaWdodCILa2V5UG9vbFR5cGUiDWtleUZlZUFzc2V0SWQiDGtleUZlZUFtb3VudCIXa2V5QW1vdW50QXNzZXRNaW5BbW91bnQiF2tleVByaWNlQXNzZXRzTWluQW1vdW50Ig5rZXlQcmljZUFzc2V0cyIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiEnN0cmluZ09wdGlvblRvTGlzdCIMc3RyaW5nT3JVbml0IgckbWF0Y2gwIgFzIg9mYWN0b3J5Q29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiImtleVZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QiH3ZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QiDmlzQ3JlYXRlQ2FsbGVkIhBtdXN0Q3JlYXRlQ2FsbGVkIhZtYW5hZ2VyUHVibGljS2V5T3JVbml0Ih1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCIJaXNNYW5hZ2VyIgFpIgJwayILbXVzdE1hbmFnZXIiCW11c3RBZG1pbiIIYWRtaW5QS3MiCmlzVmVyaWZpZWQiB2Fzc2V0SWQiDGdldElkQW5kSW5mbyIHcGF5bWVudCICaWQiBGluZm8iC3ZhbGlkU3RhdHVzIgZzdGF0dXMiB19jcmVhdGUiCHBvb2xUeXBlIg1hc3NldDFQYXltZW50Ig1hc3NldDJQYXltZW50Ig9mZWVBc3NldFBheW1lbnQiCyR0MDY0MDc2NDY0Ighhc3NldDFJZCIKYXNzZXQxSW5mbyILJHQwNjQ2NzY1MjQiCGFzc2V0MklkIgphc3NldDJJbmZvIgskdDA2NTI3NjU5MCIKZmVlQXNzZXRJZCIMZmVlQXNzZXRJbmZvIg9wcmljZUFzc2V0c0xpc3QiE2NoZWNrQXNzZXRzTm90RXF1YWwiCyR0MDY3NjQ3MjI1IhFhbW91bnRBc3NldEFtb3VudCIQcHJpY2VBc3NldEFtb3VudCIabWFuYWdlclByaWNlQXNzZXRNaW5BbW91bnQiE3ByaWNlQXNzZXRNaW5BbW91bnQiEHByaWNlQXNzZXRzSW5kZXgiCWxhc3RJbmRleCIIY3VySW5kZXgiEGVtaXNzaW9uQ29udHJhY3QiCnBvb2xFeGlzdHMiAUAiBmNoZWNrcyITcGF5bWVudHNXaXRoRmVlU2l6ZSIPYnVybkVtaXNzaW9uSW52IhBmYWN0b3J5VjJBZGRyZXNzIhJhc3NldHNTdG9yZUFkZHJlc3MiD2VtaXNzaW9uQWRkcmVzcyIUcHJpY2VBc3NldHNNaW5BbW91bnQiFGFtb3VudEFzc2V0TWluQW1vdW50IglmZWVBbW91bnQiC2NoZWNrQ2FsbGVyIgtwb29sQWRkcmVzcyIRYW1vdW50QXNzZXRUaWNrZXIiEHByaWNlQXNzZXRUaWNrZXIiBGxvZ28iDnBvb2xUeXBlT3B0aW9uIhJhY3RpdmF0ZU5ld1Bvb2xJbnYiCWxwQXNzZXRJZCIJYmVmb3JlUHV0IgNwdXQiCGFmdGVyUHV0IgR1c2VyIgNyZXMiDGFkbWluUHViS2V5cyIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXlBAAFhAg91c2VyX3Bvb2xzLnJpZGUAAWICAl9fAAFjAgVXQVZFUwABZAIHVkxUUE9PTAABZQIIU1RCTFBPT0wAAWYCE0ludmFsaWQgcHJpY2UgYXNzZXQBAWcBAWgJALkJAgkAzAgCBQFhCQDMCAICAjogCQDMCAIFAWgFA25pbAIAAQFpAQFoCQACAQkBAWcBBQFoAQFqAAkBAWkBAhFQZXJtaXNzaW9uIGRlbmllZAEBawAJAQFpAQIkQ3JlYXRlIGlzIG5vdCBjYWxsZWQgZm9yIGFzc2V0cyBwYWlyAQFsAAkBAWkBAh5Zb3UgYXJlIG5vdCBhbW91bnRBc3NldCBpc3N1ZXIBAW0ACQEBaQECJFBvb2wgd2l0aCBzdWNoIGFzc2V0cyBhbHJlYWR5IGV4aXN0cwEBbgAJAQFpAQIVQXNzZXQgaXMgbm90IHZlcmlmaWVkAQFvAAkBAWkBBQFmAQFwAAkBAWkBAhFJbnZhbGlkIGZlZSBhc3NldAEBcQAJAQFpAQIdSW52YWxpZCBhbW91bnQgYXNzZXQgYXR0YWNoZWQBAXIACQEBaQECDkludmFsaWQgc3RhdHVzAQFzAAkBAWkBAipDYW4gYWN0aXZhdGUgcG9vbCBvbmx5IGluICdwZW5kaW5nJyBzdGF0dXMBAXQACQEBaQECHUZhY3RvcnlWMiByZXR1cm5lZCBub3Qgc3RyaW5nAQF1AAkBAWkBAhppbnZhbGlkIHByaWNlIGFzc2V0IGFtb3VudAEBdgAJAQFpAQILaW52YWxpZCBmZWUBAXcACQEBaQECEmludmFsaWQgYXNzZXQgcGFpcgEBeAAJALkJAgkAzAgCAgIlcwkAzAgCAhBtYW5hZ2VyUHVibGljS2V5BQNuaWwFAWIBAXkACQC5CQIJAMwIAgICJXMJAMwIAgIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFA25pbAUBYgEBegAJALkJAgkAzAgCAgIlcwkAzAgCAgxhZG1pblB1YktleXMFA25pbAUBYgEBQQIBQgFDCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICBnN0YXR1cwkAzAgCBQFCCQDMCAIFAUMFA25pbAUBYgEBRAAJALkJAgkAzAgCAgIlcwkAzAgCAg9mYWN0b3J5Q29udHJhY3QFA25pbAUBYgEBRQAJALkJAgkAzAgCAgIlcwkAzAgCAhNhc3NldHNTdG9yZUNvbnRyYWN0BQNuaWwFAWIBAUYACQC5CQIJAMwIAgICJXMJAMwIAgIQZW1pc3Npb25Db250cmFjdAUDbmlsBQFiAQFHAgFCAUMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGc3VmZml4CQDMCAIFAUIJAMwIAgUBQwUDbmlsBQFiAQFIAAkAuQkCCQDMCAICAiVzCQDMCAICCWxhc3RJbmRleAUDbmlsBQFiAAFJAgF1AAFKAgdwZW5kaW5nAAFLAghkZWNsaW5lZAABTAIGYWN0aXZlAAFNCQDMCAIFAUoJAMwIAgUBSwkAzAgCBQFMBQNuaWwBAU4CAUIBQwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgxjcmVhdGVDYWxsZWQJAMwIAgUBQgkAzAgCBQFDBQNuaWwFAWIBAU8CAUIBQwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgxjcmVhdGVDYWxsZXIJAMwIAgUBQgkAzAgCBQFDBQNuaWwFAWIBAVACAUIBQwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhFhbW91bnRBc3NldEFtb3VudAkAzAgCBQFCCQDMCAIFAUMFA25pbAUBYgEBUQIBQgFDCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICEHByaWNlQXNzZXRBbW91bnQJAMwIAgUBQgkAzAgCBQFDBQNuaWwFAWIBAVICAUIBQwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZoZWlnaHQJAMwIAgUBQgkAzAgCBQFDBQNuaWwFAWIBAVMCAUIBQwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAghwb29sVHlwZQkAzAgCBQFCCQDMCAIFAUMFA25pbAUBYgEBVAAJALkJAgkAzAgCAgIlcwkAzAgCAgpmZWVBc3NldElkBQNuaWwFAWIBAVUACQC5CQIJAMwIAgICJXMJAMwIAgIJZmVlQW1vdW50BQNuaWwFAWIBAVYACQC5CQIJAMwIAgICJXMJAMwIAgIUYW1vdW50QXNzZXRNaW5BbW91bnQFA25pbAUBYgEBVwAJALkJAgkAzAgCAgIlcwkAzAgCAhRwcmljZUFzc2V0c01pbkFtb3VudAUDbmlsBQFiAQFYAAkAuQkCCQDMCAICAiVzCQDMCAICC3ByaWNlQXNzZXRzBQNuaWwFAWIBAVkBAVoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQFaCQCsAgIFAVoCDyBpcyBub3QgZGVmaW5lZAECYWEBAmFiBAJhYwUCYWIDCQABAgUCYWMCBlN0cmluZwQCYWQFAmFjAwkAAAIJALECAQUCYWQAAAUDbmlsCQC1CQIFAmFkBQFiAwkAAQIFAmFjAgRVbml0BQNuaWwJAAIBAgtNYXRjaCBlcnJvcgACYWUJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFZAQkBAUQAAAJhZgkAuQkCCQDMCAICAiVzCQDMCAICFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QFA25pbAUBYgACYWcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhZQUCYWYJAQFnAQIsdm90aW5nIGVtaXNzaW9uIGNvbnRyYWN0IGFkZHJlc3MgaXMgcmVxdWlyZWQAAmFoCQC5CQIJAMwIAgICJXMJAMwIAgIfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdAUDbmlsBQFiAAJhaQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmFnBQJhaAkBAWcBAjZ2b3RpbmcgZW1pc3Npb24gY2FuZGlkYXRlIGNvbnRyYWN0IGFkZHJlc3MgaXMgcmVxdWlyZWQBAmFqAgFCAUMJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAU4CBQFCBQFDBwECYWsCAUIBQwMJAQJhagIFAUIFAUMGCQEBawABAmFsAAQCYWMJAKIIAQkBAXgAAwkAAQIFAmFjAgZTdHJpbmcEAmFkBQJhYwkA2QQBBQJhZAMJAAECBQJhYwIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJhbQAEAmFjCQCiCAEJAQF5AAMJAAECBQJhYwIGU3RyaW5nBAJhZAUCYWMJANkEAQUCYWQDCQABAgUCYWMCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYW4BAmFvBAJhYwkBAmFsAAMJAAECBQJhYwIKQnl0ZVZlY3RvcgQCYXAFAmFjCQAAAggFAmFvD2NhbGxlclB1YmxpY0tleQUCYXADCQABAgUCYWMCBFVuaXQJAAACCAUCYW8GY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAmFxAQJhbwMJAQJhbgEFAmFvBgkBAWoAAQJhcgECYW8EAmFzCQECYWEBCQCiCAEJAQF6AAMJAQ9jb250YWluc0VsZW1lbnQCBQJhcwkA2AQBCAUCYW8PY2FsbGVyUHVibGljS2V5BgkBAmFxAQUCYW8BAmF0AQJhdQkAAAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAVkBCQEBRQAJAKwCAgkArAICAghzdGF0dXNfPAUCYXUCAT4AAAACAQJhdgECYXcEAmFjCAUCYXcHYXNzZXRJZAMJAAECBQJhYwIKQnl0ZVZlY3RvcgQCYXgFAmFjBAJheQkBBXZhbHVlAQkA7AcBBQJheAkAlAoCCQDYBAEFAmF4BQJheQMJAAECBQJhYwIEVW5pdAkAlAoCBQFjBQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmF6AQJhQQkBD2NvbnRhaW5zRWxlbWVudAIFAU0FAmFBAQJhQgICYW8CYUMEAmFECQEFdmFsdWUBCQCRAwIIBQJhbwhwYXltZW50cwAABAJhRQkBBXZhbHVlAQkAkQMCCAUCYW8IcGF5bWVudHMAAQQCYUYJAQV2YWx1ZQEJAJEDAggFAmFvCHBheW1lbnRzAAIEAmFHCQECYXYBBQJhRAQCYUgIBQJhRwJfMQQCYUkIBQJhRwJfMgQCYUoJAQJhdgEFAmFFBAJhSwgFAmFKAl8xBAJhTAgFAmFKAl8yBAJhTQkBAmF2AQUCYUYEAmFOCAUCYU0CXzEEAmFPCAUCYU0CXzIEAmFQCQECYWEBCQCdCAIFAmFlCQEBWAAEAmFRAwkBAiE9AgUCYUgFAmFLBgkBAXcAAwkAAAIFAmFRBQJhUQQCYVIDAwkBAmFuAQUCYW8GAwkBD2NvbnRhaW5zRWxlbWVudAIFAmFQBQJhSwkBAmF0AQUCYUgHCQCWCgQFAmFICAUCYUQGYW1vdW50BQJhSwgFAmFFBmFtb3VudAMDCQEPY29udGFpbnNFbGVtZW50AgUCYVAFAmFICQECYXQBBQJhSwcJAJYKBAUCYUsIBQJhRQZhbW91bnQFAmFICAUCYUQGYW1vdW50CQEBdwAEAUIIBQJhUgJfMQQCYVMIBQJhUgJfMgQBQwgFAmFSAl8zBAJhVAgFAmFSAl80BAJhVQABBAJhVgMJAQJhbgEFAmFvBQJhVQQCYVcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAzwgCBQJhUAUBQwUBZgkBBXZhbHVlAQkAtgkBCQCRAwIJAQJhYQEJAKIIAQkBAVcABQJhVwQCYVgJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAUgAAAAEAmFZCQBkAgUCYVgAAQQCYVoJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFZAQkBAUYABAJiYQoAAmJiCQD8BwQFAmFlAhJwb29sRXhpc3RzUkVBRE9OTFkJAMwIAgUBQgkAzAgCBQFDBQNuaWwFA25pbAMJAAECBQJiYgIHQm9vbGVhbgUCYmIJAAIBCQCsAgIJAAMBBQJiYgIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCYmMJAMwIAgMJAQEhAQkBAmFqAgUBQgUBQwYJAQFtAAkAzAgCAwkBASEBBQJiYQYJAQFtAAkAzAgCAwMJAQJhbgEFAmFvBgkAAAIJAKIIAQkBAVQABQJhTgYJAQFwAAkAzAgCAwMJAQJhbgEFAmFvBgkAZwIFAmFTCQERQGV4dHJOYXRpdmUoMTA1NSkBCQEBVgAGCQEBcQAJAMwIAgMDCQECYW4BBQJhbwYJAGcCBQJhVAUCYVYGCQEBdQAJAMwIAgMDCQECYW4BBQJhbwYJAAACCAUCYUYGYW1vdW50CQCfCAEJAQFVAAYJAQF2AAUDbmlsAwkAAAIFAmJjBQJiYwQCYmQAAwQCYmUDCQBnAgkAkAMBCAUCYW8IcGF5bWVudHMFAmJkCQD8BwQFAmFaAgRidXJuBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUCYU4IBQJhRgZhbW91bnQFA25pbAUEdW5pdAMJAAACBQJiZQUCYmUJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQFOAgUBQgUBQwYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8CBQFCBQFDCQClCAEIBQJhbwZjYWxsZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFIAAUCYVkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUcCBQFCBQFDCQCsAgIJAKQDAQUCYVkFAUkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFSAgUBQgUBQwUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFBAgUBQgUBQwUBSgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVACBQFCBQFDBQJhUwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVECBQFCBQFDBQJhVAkAzAgCCQELU3RyaW5nRW50cnkCCQEBUwIFAUIFAUMFAmFDBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAmFvAQtjb25zdHJ1Y3RvcgcCYmYCYmcCYmgCYmkCYmoCYU4CYmsEAmJsCQECYXEBBQJhbwMJAAACBQJibAUCYmwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUQABQJiZgkAzAgCCQELU3RyaW5nRW50cnkCCQEBRQAFAmJnCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFGAAUCYmgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVcACQC5CQIFAmJpBQFiCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVgAFAmJqCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFUAAUCYU4JAMwIAgkBDEludGVnZXJFbnRyeQIJAQFVAAUCYmsFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhbwEGY3JlYXRlAAkBAmFCAgUCYW8FAWQCYW8BDGNyZWF0ZVN0YWJsZQAEAmJsCQECYXEBBQJhbwMJAAACBQJibAUCYmwJAQJhQgIFAmFvBQFlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFvAQhhY3RpdmF0ZQYCYm0BQgJibgFDAmJvAmJwBAJiYwkAzAgCCQECYXIBBQJhbwkAzAgCAwkBAmFqAgUBQgUBQwYJAQFrAAkAzAgCAwkAAAIJAQV2YWx1ZQEJAKIIAQkBAUECBQFCBQFDBQFKBgkBAXMABQNuaWwDCQAAAgUCYmMFAmJjBAJicQkAnQgCBQR0aGlzCQEBUwIFAUIFAUMEAmJyCQD8BwQFAmFlAg9hY3RpdmF0ZU5ld1Bvb2wJAMwIAgUCYm0JAMwIAgUBQgkAzAgCBQFDCQDMCAIJAKwCAgkArAICBQJibgUCYm8CAkxQCQDMCAIJAKwCAgkArAICCQCsAgIFAmJuAgEvBQJibwIeIHBvb2wgbGlxdWlkaXR5IHByb3ZpZGVyIHRva2VuCQDMCAIAAAkAzAgCAwkAAAIFAmJxBQR1bml0AgdWTFRQT09MCQEFdmFsdWUBBQJicQkAzAgCBQJicAUDbmlsBQNuaWwDCQAAAgUCYnIFAmJyBAJicwQCYWMFAmJyAwkAAQIFAmFjAgZTdHJpbmcEAmF4BQJhYwUCYXgJAQF0AAMJAAACBQJicwUCYnMEAmJ0CQDwBwIFBHRoaXMJANkEAQUCYnMDCQAAAgUCYnQFAmJ0BAJidQkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQJibQIDcHV0CQDMCAIAAAkAzAgCBwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCAwkAAAIFAUICBVdBVkVTBQR1bml0CQDZBAEFAUIJAQV2YWx1ZQEJAJ8IAQkBAVACBQFCBQFDCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCAwkAAAIFAUMCBVdBVkVTBQR1bml0CQDZBAEFAUMJAQV2YWx1ZQEJAJ8IAQkBAVECBQFCBQFDBQNuaWwDCQAAAgUCYnUFAmJ1BAJidgkA8AcCBQR0aGlzCQDZBAEFAmJzAwkAAAIFAmJ2BQJidgQCYncJAQV2YWx1ZQEJAKYIAQkBBXZhbHVlAQkAoggBCQEBTwIFAUIFAUMEAmJ4CQD8BwQFAmFpAgdhcHByb3ZlCQDMCAIFAUIJAMwIAgUBQwUDbmlsBQNuaWwDCQAAAgUCYngFAmJ4CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFBAgUBQgUBQwUBTAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJidwkAZQIFAmJ2BQJidAkA2QQBBQJicwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFvAQlzZXRBZG1pbnMBAmJ5BAJibAkBAmFxAQUCYW8DCQAAAgUCYmwFAmJsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQF6AAkAuQkCBQJieQUBYgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFvAQpzZXRNYW5hZ2VyAQJiegQCYmwJAQJhcQEFAmFvAwkAAAIFAmJsBQJibAQCYkEJANkEAQUCYnoDCQAAAgUCYkEFAmJBCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQF5AAUCYnoFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhbwEOY29uZmlybU1hbmFnZXIABAJiQgkBAmFtAAQCYkMDCQEJaXNEZWZpbmVkAQUCYkIGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmJDBQJiQwQCYkQDCQAAAggFAmFvD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCYkIGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmJEBQJiRAkAzAgCCQELU3RyaW5nRW50cnkCCQEBeAAJANgEAQkBBXZhbHVlAQUCYkIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAXkABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYW8BE3ByaWNlQXNzZXRzUkVBRE9OTFkACQCUCgIFA25pbAkBAmFhAQkAoggBCQEBWAACYW8BDnN0YXR1c1JFQURPTkxZAgFCAUMEAmFBBAJhYwkAoggBCQEBQQIFAUIFAUMDCQABAgUCYWMCBlN0cmluZwQCYWQFAmFjBQJhZAUEdW5pdAkAlAoCBQNuaWwFAmFBAQJiRQECYkYABAJiRwQCYWMJAQJhbAADCQABAgUCYWMCCkJ5dGVWZWN0b3IEAmFwBQJhYwUCYXADCQABAgUCYWMCBFVuaXQIBQJiRQ9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCYkUJYm9keUJ5dGVzCQCRAwIIBQJiRQZwcm9vZnMAAAUCYkecq8VI", "height": 2562830, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5LWRgKxspmWRZ5VApBsmk7A3vWPYYNiVPVnfrbFocqcg Next: EJLspSb7yyEbxUC9rjtAW6t767SsgtqZUCxaEKhJrV3e Diff:
OldNewDifferences
342342
343343
344344 @Callable(ao)
345-func createStable () = aB(ao, e)
345+func createStable () = {
346+ let bl = aq(ao)
347+ if ((bl == bl))
348+ then aB(ao, e)
349+ else throw("Strict value is not equal to itself.")
350+ }
346351
347352
348353
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "user_pools.ride"
55
66 let b = "__"
77
88 let c = "WAVES"
99
1010 let d = "VLTPOOL"
1111
1212 let e = "STBLPOOL"
1313
1414 let f = "Invalid price asset"
1515
1616 func g (h) = makeString([a, ": ", h], "")
1717
1818
1919 func i (h) = throw(g(h))
2020
2121
2222 func j () = i("Permission denied")
2323
2424
2525 func k () = i("Create is not called for assets pair")
2626
2727
2828 func l () = i("You are not amountAsset issuer")
2929
3030
3131 func m () = i("Pool with such assets already exists")
3232
3333
3434 func n () = i("Asset is not verified")
3535
3636
3737 func o () = i(f)
3838
3939
4040 func p () = i("Invalid fee asset")
4141
4242
4343 func q () = i("Invalid amount asset attached")
4444
4545
4646 func r () = i("Invalid status")
4747
4848
4949 func s () = i("Can activate pool only in 'pending' status")
5050
5151
5252 func t () = i("FactoryV2 returned not string")
5353
5454
5555 func u () = i("invalid price asset amount")
5656
5757
5858 func v () = i("invalid fee")
5959
6060
6161 func w () = i("invalid asset pair")
6262
6363
6464 func x () = makeString(["%s", "managerPublicKey"], b)
6565
6666
6767 func y () = makeString(["%s", "pendingManagerPublicKey"], b)
6868
6969
7070 func z () = makeString(["%s", "adminPubKeys"], b)
7171
7272
7373 func A (B,C) = makeString(["%s%s%s", "status", B, C], b)
7474
7575
7676 func D () = makeString(["%s", "factoryContract"], b)
7777
7878
7979 func E () = makeString(["%s", "assetsStoreContract"], b)
8080
8181
8282 func F () = makeString(["%s", "emissionContract"], b)
8383
8484
8585 func G (B,C) = makeString(["%s%s%s", "suffix", B, C], b)
8686
8787
8888 func H () = makeString(["%s", "lastIndex"], b)
8989
9090
9191 let I = "u"
9292
9393 let J = "pending"
9494
9595 let K = "declined"
9696
9797 let L = "active"
9898
9999 let M = [J, K, L]
100100
101101 func N (B,C) = makeString(["%s%s%s", "createCalled", B, C], b)
102102
103103
104104 func O (B,C) = makeString(["%s%s%s", "createCaller", B, C], b)
105105
106106
107107 func P (B,C) = makeString(["%s%s%s", "amountAssetAmount", B, C], b)
108108
109109
110110 func Q (B,C) = makeString(["%s%s%s", "priceAssetAmount", B, C], b)
111111
112112
113113 func R (B,C) = makeString(["%s%s%s", "height", B, C], b)
114114
115115
116116 func S (B,C) = makeString(["%s%s%s", "poolType", B, C], b)
117117
118118
119119 func T () = makeString(["%s", "feeAssetId"], b)
120120
121121
122122 func U () = makeString(["%s", "feeAmount"], b)
123123
124124
125125 func V () = makeString(["%s", "amountAssetMinAmount"], b)
126126
127127
128128 func W () = makeString(["%s", "priceAssetsMinAmount"], b)
129129
130130
131131 func X () = makeString(["%s", "priceAssets"], b)
132132
133133
134134 func Y (Z) = valueOrErrorMessage(getString(this, Z), (Z + " is not defined"))
135135
136136
137137 func aa (ab) = {
138138 let ac = ab
139139 if ($isInstanceOf(ac, "String"))
140140 then {
141141 let ad = ac
142142 if ((size(ad) == 0))
143143 then nil
144144 else split(ad, b)
145145 }
146146 else if ($isInstanceOf(ac, "Unit"))
147147 then nil
148148 else throw("Match error")
149149 }
150150
151151
152152 let ae = addressFromStringValue(Y(D()))
153153
154154 let af = makeString(["%s", "votingEmissionContract"], b)
155155
156156 let ag = addressFromStringValue(valueOrErrorMessage(getString(ae, af), g("voting emission contract address is required")))
157157
158158 let ah = makeString(["%s", "votingEmissionCandidateContract"], b)
159159
160160 let ai = addressFromStringValue(valueOrErrorMessage(getString(ag, ah), g("voting emission candidate contract address is required")))
161161
162162 func aj (B,C) = valueOrElse(getBoolean(N(B, C)), false)
163163
164164
165165 func ak (B,C) = if (aj(B, C))
166166 then true
167167 else k()
168168
169169
170170 func al () = {
171171 let ac = getString(x())
172172 if ($isInstanceOf(ac, "String"))
173173 then {
174174 let ad = ac
175175 fromBase58String(ad)
176176 }
177177 else if ($isInstanceOf(ac, "Unit"))
178178 then unit
179179 else throw("Match error")
180180 }
181181
182182
183183 func am () = {
184184 let ac = getString(y())
185185 if ($isInstanceOf(ac, "String"))
186186 then {
187187 let ad = ac
188188 fromBase58String(ad)
189189 }
190190 else if ($isInstanceOf(ac, "Unit"))
191191 then unit
192192 else throw("Match error")
193193 }
194194
195195
196196 func an (ao) = {
197197 let ac = al()
198198 if ($isInstanceOf(ac, "ByteVector"))
199199 then {
200200 let ap = ac
201201 (ao.callerPublicKey == ap)
202202 }
203203 else if ($isInstanceOf(ac, "Unit"))
204204 then (ao.caller == this)
205205 else throw("Match error")
206206 }
207207
208208
209209 func aq (ao) = if (an(ao))
210210 then true
211211 else j()
212212
213213
214214 func ar (ao) = {
215215 let as = aa(getString(z()))
216216 if (containsElement(as, toBase58String(ao.callerPublicKey)))
217217 then true
218218 else aq(ao)
219219 }
220220
221221
222222 func at (au) = (valueOrElse(getInteger(addressFromStringValue(Y(E())), (("status_<" + au) + ">")), 0) == 2)
223223
224224
225225 func av (aw) = {
226226 let ac = aw.assetId
227227 if ($isInstanceOf(ac, "ByteVector"))
228228 then {
229229 let ax = ac
230230 let ay = value(assetInfo(ax))
231231 $Tuple2(toBase58String(ax), ay)
232232 }
233233 else if ($isInstanceOf(ac, "Unit"))
234234 then $Tuple2(c, unit)
235235 else throw("Match error")
236236 }
237237
238238
239239 func az (aA) = containsElement(M, aA)
240240
241241
242242 func aB (ao,aC) = {
243243 let aD = value(ao.payments[0])
244244 let aE = value(ao.payments[1])
245245 let aF = value(ao.payments[2])
246246 let aG = av(aD)
247247 let aH = aG._1
248248 let aI = aG._2
249249 let aJ = av(aE)
250250 let aK = aJ._1
251251 let aL = aJ._2
252252 let aM = av(aF)
253253 let aN = aM._1
254254 let aO = aM._2
255255 let aP = aa(getString(ae, X()))
256256 let aQ = if ((aH != aK))
257257 then true
258258 else w()
259259 if ((aQ == aQ))
260260 then {
261261 let aR = if (if (an(ao))
262262 then true
263263 else if (containsElement(aP, aK))
264264 then at(aH)
265265 else false)
266266 then $Tuple4(aH, aD.amount, aK, aE.amount)
267267 else if (if (containsElement(aP, aH))
268268 then at(aK)
269269 else false)
270270 then $Tuple4(aK, aE.amount, aH, aD.amount)
271271 else w()
272272 let B = aR._1
273273 let aS = aR._2
274274 let C = aR._3
275275 let aT = aR._4
276276 let aU = 1
277277 let aV = if (an(ao))
278278 then aU
279279 else {
280280 let aW = valueOrErrorMessage(indexOf(aP, C), f)
281281 value(parseInt(aa(getString(W()))[aW]))
282282 }
283283 let aX = valueOrElse(getInteger(H()), 0)
284284 let aY = (aX + 1)
285285 let aZ = addressFromStringValue(Y(F()))
286286 let ba = {
287287 let bb = invoke(ae, "poolExistsREADONLY", [B, C], nil)
288288 if ($isInstanceOf(bb, "Boolean"))
289289 then bb
290290 else throw(($getType(bb) + " couldn't be cast to Boolean"))
291291 }
292292 let bc = [if (!(aj(B, C)))
293293 then true
294294 else m(), if (!(ba))
295295 then true
296296 else m(), if (if (an(ao))
297297 then true
298298 else (getString(T()) == aN))
299299 then true
300300 else p(), if (if (an(ao))
301301 then true
302302 else (aS >= getIntegerValue(V())))
303303 then true
304304 else q(), if (if (an(ao))
305305 then true
306306 else (aT >= aV))
307307 then true
308308 else u(), if (if (an(ao))
309309 then true
310310 else (aF.amount == getInteger(U())))
311311 then true
312312 else v()]
313313 if ((bc == bc))
314314 then {
315315 let bd = 3
316316 let be = if ((size(ao.payments) >= bd))
317317 then invoke(aZ, "burn", nil, [AttachedPayment(fromBase58String(aN), aF.amount)])
318318 else unit
319319 if ((be == be))
320320 then [BooleanEntry(N(B, C), true), StringEntry(O(B, C), toString(ao.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), aS), IntegerEntry(Q(B, C), aT), StringEntry(S(B, C), aC)]
321321 else throw("Strict value is not equal to itself.")
322322 }
323323 else throw("Strict value is not equal to itself.")
324324 }
325325 else throw("Strict value is not equal to itself.")
326326 }
327327
328328
329329 @Callable(ao)
330330 func constructor (bf,bg,bh,bi,bj,aN,bk) = {
331331 let bl = aq(ao)
332332 if ((bl == bl))
333333 then [StringEntry(D(), bf), StringEntry(E(), bg), StringEntry(F(), bh), StringEntry(W(), makeString(bi, b)), IntegerEntry(V(), bj), StringEntry(T(), aN), IntegerEntry(U(), bk)]
334334 else throw("Strict value is not equal to itself.")
335335 }
336336
337337
338338
339339 @Callable(ao)
340340 func create () = aB(ao, d)
341341
342342
343343
344344 @Callable(ao)
345-func createStable () = aB(ao, e)
345+func createStable () = {
346+ let bl = aq(ao)
347+ if ((bl == bl))
348+ then aB(ao, e)
349+ else throw("Strict value is not equal to itself.")
350+ }
346351
347352
348353
349354 @Callable(ao)
350355 func activate (bm,B,bn,C,bo,bp) = {
351356 let bc = [ar(ao), if (aj(B, C))
352357 then true
353358 else k(), if ((value(getString(A(B, C))) == J))
354359 then true
355360 else s()]
356361 if ((bc == bc))
357362 then {
358363 let bq = getString(this, S(B, C))
359364 let br = invoke(ae, "activateNewPool", [bm, B, C, ((bn + bo) + "LP"), (((bn + "/") + bo) + " pool liquidity provider token"), 0, if ((bq == unit))
360365 then "VLTPOOL"
361366 else value(bq), bp], nil)
362367 if ((br == br))
363368 then {
364369 let bs = {
365370 let ac = br
366371 if ($isInstanceOf(ac, "String"))
367372 then {
368373 let ax = ac
369374 ax
370375 }
371376 else t()
372377 }
373378 if ((bs == bs))
374379 then {
375380 let bt = assetBalance(this, fromBase58String(bs))
376381 if ((bt == bt))
377382 then {
378383 let bu = invoke(addressFromStringValue(bm), "put", [0, false], [AttachedPayment(if ((B == "WAVES"))
379384 then unit
380385 else fromBase58String(B), value(getInteger(P(B, C)))), AttachedPayment(if ((C == "WAVES"))
381386 then unit
382387 else fromBase58String(C), value(getInteger(Q(B, C))))])
383388 if ((bu == bu))
384389 then {
385390 let bv = assetBalance(this, fromBase58String(bs))
386391 if ((bv == bv))
387392 then {
388393 let bw = value(addressFromString(value(getString(O(B, C)))))
389394 let bx = invoke(ai, "approve", [B, C], nil)
390395 if ((bx == bx))
391396 then [StringEntry(A(B, C), L), ScriptTransfer(bw, (bv - bt), fromBase58String(bs))]
392397 else throw("Strict value is not equal to itself.")
393398 }
394399 else throw("Strict value is not equal to itself.")
395400 }
396401 else throw("Strict value is not equal to itself.")
397402 }
398403 else throw("Strict value is not equal to itself.")
399404 }
400405 else throw("Strict value is not equal to itself.")
401406 }
402407 else throw("Strict value is not equal to itself.")
403408 }
404409 else throw("Strict value is not equal to itself.")
405410 }
406411
407412
408413
409414 @Callable(ao)
410415 func setAdmins (by) = {
411416 let bl = aq(ao)
412417 if ((bl == bl))
413418 then [StringEntry(z(), makeString(by, b))]
414419 else throw("Strict value is not equal to itself.")
415420 }
416421
417422
418423
419424 @Callable(ao)
420425 func setManager (bz) = {
421426 let bl = aq(ao)
422427 if ((bl == bl))
423428 then {
424429 let bA = fromBase58String(bz)
425430 if ((bA == bA))
426431 then [StringEntry(y(), bz)]
427432 else throw("Strict value is not equal to itself.")
428433 }
429434 else throw("Strict value is not equal to itself.")
430435 }
431436
432437
433438
434439 @Callable(ao)
435440 func confirmManager () = {
436441 let bB = am()
437442 let bC = if (isDefined(bB))
438443 then true
439444 else throw("No pending manager")
440445 if ((bC == bC))
441446 then {
442447 let bD = if ((ao.callerPublicKey == value(bB)))
443448 then true
444449 else throw("You are not pending manager")
445450 if ((bD == bD))
446451 then [StringEntry(x(), toBase58String(value(bB))), DeleteEntry(y())]
447452 else throw("Strict value is not equal to itself.")
448453 }
449454 else throw("Strict value is not equal to itself.")
450455 }
451456
452457
453458
454459 @Callable(ao)
455460 func priceAssetsREADONLY () = $Tuple2(nil, aa(getString(X())))
456461
457462
458463
459464 @Callable(ao)
460465 func statusREADONLY (B,C) = {
461466 let aA = {
462467 let ac = getString(A(B, C))
463468 if ($isInstanceOf(ac, "String"))
464469 then {
465470 let ad = ac
466471 ad
467472 }
468473 else unit
469474 }
470475 $Tuple2(nil, aA)
471476 }
472477
473478
474479 @Verifier(bE)
475480 func bF () = {
476481 let bG = {
477482 let ac = al()
478483 if ($isInstanceOf(ac, "ByteVector"))
479484 then {
480485 let ap = ac
481486 ap
482487 }
483488 else if ($isInstanceOf(ac, "Unit"))
484489 then bE.senderPublicKey
485490 else throw("Match error")
486491 }
487492 sigVerify(bE.bodyBytes, bE.proofs[0], bG)
488493 }
489494

github/deemru/w8io/026f985 
50.62 ms