tx · AbKzGgoyXD78oYVqqA8tzZ8HChnQzyoDg9V168np9vLL

3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T:  -0.01400000 Waves

2023.05.10 13:18 [2571658] smart account 3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T > SELF 0.00000000 Waves

{ "type": 13, "id": "AbKzGgoyXD78oYVqqA8tzZ8HChnQzyoDg9V168np9vLL", "fee": 1400000, "feeAssetId": null, "timestamp": 1683713888978, "version": 2, "chainId": 84, "sender": "3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T", "senderPublicKey": "7iXEgsFNsnbLZ3ca4tmz8jffnyxMu9keuBV6CuQPJLuA", "proofs": [ "3kEos3gpx3oWZcG6WUZesSHjboNCPKAFjyWSs52U8f1EporDV9KngRujWL9RcAzRbeC6EVwTiiPjX6LTqjs9dkU3" ], "script": "base64:BgKiDAgCEg0KCwgICAgICAEIAQgBEgMKAQESBAoCCAgSBQoDCAgEEgQKAggIEgMKAQESAwoBARIECgIICBIECgIICCIJc2VwYXJhdG9yIgxrZXlGZWVBbW91bnQiDmtleVVzZG5Bc3NldElkIg5rZXlFcG9jaExlbmd0aCIRa2V5RmluYWxpemVSZXdhcmQiDGtleVd4QXNzZXRJZCIWa2V5QXNzZXRzU3RvcmVDb250cmFjdCITa2V5VXNlclBvb2xDb250cmFjdCITa2V5RW1pc3Npb25Db250cmFjdCITa2V5Qm9vc3RpbmdDb250cmFjdCISa2V5RmFjdG9yeUNvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0IgxrZXlUaHJlc2hvbGQiD2dldFN0cmluZ09yRmFpbCIDa2V5IgxnZXRJbnRPckZhaWwiEGtleUluTGlzdEFzc2V0SWQiDWFtb3VudEFzc2V0SWQiDHByaWNlQXNzZXRJZCIPa2V5U3VnZ2VzdEluZGV4Ig5rZXlTdGFydEhlaWdodCIMc3VnZ2VzdEluZGV4Ig9rZXlWb3RpbmdSZXN1bHQiCnRvdGFsVm90ZXMiCHRvdGFsWWVzIgd0b3RhbE5vIgdrZXlWb3RlIgx2b3RlckFkZHJlc3MiDGtleVZvdGVWYWx1ZSIJZ3d4QW1vdW50IgR2b3RlIglrZXlJbkxpc3QiBHBvb2wiCyR0MDI0NjMyNTAzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzIhxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzIgckbWF0Y2gwIgFzIhNhc3NldHNTdG9yZUNvbnRyYWN0IhBib29zdGluZ0NvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0Ig9mYWN0b3J5Q29udHJhY3QiEHVzZXJQb29sQ29udHJhY3QiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiE21hbmFnZXJWYXVsdEFkZHJlc3MiCWlzTWFuYWdlciIBaSICcGsiC211c3RNYW5hZ2VyIgVhc0ludCIDdmFsIgZ2YWxJbnQiFmFzc2V0c1N0b3JlQ29udHJhY3RQcm0iE2Jvb3N0aW5nQ29udHJhY3RQcm0iE2VtaXNzaW9uQ29udHJhY3RQcm0iEmZhY3RvcnlDb250cmFjdFBybSITdXNlclBvb2xDb250cmFjdFBybSIZdm90aW5nRW1pc3Npb25Db250cmFjdFBybSIMZmVlQW1vdW50UHJtIgx3eEFzc2V0SWRQcm0iEXZvdGluZ0R1cmF0aW9uUHJtIg51c2RuQXNzZXRJZFBybSIRZmluYWxpemVSZXdhcmRQcm0iBmNoZWNrcyIJdGhyZXNob2xkIgdwYXltZW50IhBjaGVja0Ftb3VudEFzc2V0IgRpbmZvIgxlbnN1cmVBY3RpdmUiGWVuc3VyZUFtb3VudEFzc2V0VmVyaWZpZWQiA2ludiIBYiIKYnVybkZlZUludiIPbmV3U3VnZ2VzdEluZGV4IgNpbnQiB2luRmF2b3IiEnZvdGluZ0ZpbmlzaEhlaWdodCIHbm90WmVybyIJdm90ZVZhbHVlIgh2b3RlVHlwZSIRaXNWb3RlVHlwZVNpbWlsYXIiEmlzVm90ZVZhbHVlU2ltaWxhciIQaXNOZXdWb3RlU2ltaWxhciIBdSIMdm90aW5nUmVzdWx0Ig1wb3NpdGl2ZVZvdGVzIg1uZWdhdGl2ZVZvdGVzIhtuZXdQb3NpdGl2ZUFuZE5lZ2F0aXZlVm90ZXMiEG5ld1Bvc2l0aXZlVm90ZXMiEG5ld05lZ2F0aXZlVm90ZXMiB3ZvdGVLZXkiC3VzZXJBZGRyZXNzIgdhY3Rpb25zIgZuZXdGZWUiDG5ld1RocmVzaG9sZCIIYWxsVm90ZXMiA3JlcyIRdm90aW5nRW1pc3Npb25JbnYiC2NoZWNrQ2FsbGVyIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkkAAFhAgJfXwABYgkAuQkCCQDMCAICAiVzCQDMCAICA2ZlZQUDbmlsBQFhAAFjCQC5CQIJAMwIAgICJXMJAMwIAgILdXNkbkFzc2V0SWQFA25pbAUBYQABZAkAuQkCCQDMCAICAiVzCQDMCAICC2Vwb2NoTGVuZ3RoBQNuaWwFAWEAAWUJALkJAgkAzAgCAgIlcwkAzAgCAg5maW5hbGl6ZVJld2FyZAUDbmlsBQFhAAFmCQC5CQIJAMwIAgICJXMJAMwIAgIJd3hBc3NldElkBQNuaWwFAWEAAWcJALkJAgkAzAgCAgIlcwkAzAgCAhNhc3NldHNTdG9yZUNvbnRyYWN0BQNuaWwFAWEAAWgJALkJAgkAzAgCAgIlcwkAzAgCAhB1c2VyUG9vbENvbnRyYWN0BQNuaWwFAWEAAWkJALkJAgkAzAgCAgIlcwkAzAgCAhBlbWlzc2lvbkNvbnRyYWN0BQNuaWwFAWEAAWoJALkJAgkAzAgCAgIlcwkAzAgCAhBib29zdGluZ0NvbnRyYWN0BQNuaWwFAWEAAWsJALkJAgkAzAgCAgIlcwkAzAgCAg9mYWN0b3J5Q29udHJhY3QFA25pbAUBYQABbAkAuQkCCQDMCAICAiVzCQDMCAICFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QFA25pbAUBYQABbQkAuQkCCQDMCAICAiVzCQDMCAICD3ZvdGluZ1RocmVzaG9sZAUDbmlsBQFhAQFuAQFvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUBbwkArAICBQFvAg8gaXMgbm90IGRlZmluZWQBAXABAW8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBQFvCQCsAgIFAW8CDyBpcyBub3QgZGVmaW5lZAEBcQIBcgFzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICBmluTGlzdAkAzAgCBQFyCQDMCAIFAXMFA25pbAUBYQEBdAIBcgFzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICDHN1Z2dlc3RJbmRleAkAzAgCBQFyCQDMCAIFAXMFA25pbAUBYQEBdQMBcgFzAXYJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAgtzdGFydEhlaWdodAkAzAgCBQFyCQDMCAIFAXMJAMwIAgkApAMBBQF2BQNuaWwFAWEBAXcDAXIBcwF2CQC5CQIJAMwIAgIIJXMlcyVzJWQJAMwIAgIMdm90aW5nUmVzdWx0CQDMCAIFAXIJAMwIAgUBcwkAzAgCCQCkAwEFAXYFA25pbAUBYQEBeAIBeQF6CQC5CQIJAMwIAgIEJWQlZAkAzAgCBQF5CQDMCAIFAXoFA25pbAUBYQEBQQQBcgFzAXYBQgkAuQkCCQDMCAICCiVzJXMlcyVkJXMJAMwIAgIEdm90ZQkAzAgCBQFyCQDMCAIFAXMJAMwIAgkApAMBBQF2CQDMCAIFAUIFA25pbAUBYQEBQwIBRAFFBAFvAwUBRQkAuQkCCQDMCAICBCVkJXMJAMwIAgUBRAkAzAgCAgN5ZXMFA25pbAUBYQkAuQkCCQDMCAICBCVkJXMJAMwIAgUBRAkAzAgCAgJubwUDbmlsBQFhBQFvAQFGAQFHBAFIBQFHBAFyCAUBSAJfMQQBcwgFAUgCXzIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGaW5MaXN0CQDMCAIFAXIJAMwIAgUBcwUDbmlsBQFhAQFJAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAUoAAhclc19fbWFuYWdlclZhdWx0QWRkcmVzcwEBSwAEAUwJAKIIAQkBAUoAAwkAAQIFAUwCBlN0cmluZwQBTQUBTAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBTQUEdGhpcwABTgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAW4BBQFnAAFPCQERQGV4dHJOYXRpdmUoMTA2MikBCQEBbgEFAWoAAVAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFuAQUBaQABUQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAW4BBQFrAAFSCQERQGV4dHJOYXRpdmUoMTA2MikBCQEBbgEFAWgAAVMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFuAQUBbAEBVAAEAVUJAQFLAAQBTAkAnQgCBQFVCQEBSQADCQABAgUBTAIGU3RyaW5nBAFNBQFMCQDZBAEFAU0DCQABAgUBTAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQFWAQFXBAFMCQEBVAADCQABAgUBTAIKQnl0ZVZlY3RvcgQBWAUBTAkAAAIIBQFXD2NhbGxlclB1YmxpY0tleQUBWAMJAAECBQFMAgRVbml0CQAAAggFAVcGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAVkBAVcDCQEBVgEFAVcGCQACAQIRcGVybWlzc2lvbiBkZW5pZWQBAVoBAmFhBAFMBQJhYQMJAAECBQFMAgNJbnQEAmFiBQFMBQJhYgkAAgECG2ZhaWxlZCB0byBjYXN0IGludG8gSW50ZWdlcgkBVwELY29uc3RydWN0b3ILAmFjAmFkAmFlAmFmAmFnAmFoAmFpAmFqAmFrAmFsAmFtBAJhbgkAzAgCCQEBWQEFAVcJAMwIAgMJAQlpc0RlZmluZWQBCQCmCAEFAmFjBgkAAgECJEludmFsaWQgYXNzZXRfc3RvcmUgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBCWlzRGVmaW5lZAEJAKYIAQUCYWQGCQACAQIhSW52YWxpZCBib29zdGluZyBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQEJaXNEZWZpbmVkAQkApggBBQJhZwYJAAIBAiNJbnZhbGlkIHVzZXJfcG9vbHMgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBCWlzRGVmaW5lZAEJAKYIAQUCYWUGCQACAQIhSW52YWxpZCBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQEJaXNEZWZpbmVkAQkApggBBQJhZgYJAAIBAiBJbnZhbGlkIGZhY3RvcnkgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkAZwIFAmFpAAAGCQACAQISSW52YWxpZCBmZWUgYW1vdW50CQDMCAIDCQBmAgUCYWsAAAYJAAIBAhdJbnZhbGlkIHZvdGluZyBkdXJhdGlvbgkAzAgCAwkAZwIFAmFtAAAGCQACAQIXSW52YWxpZCBmaW5hbGl6ZSByZXdhcmQJAMwIAgMJAQlpc0RlZmluZWQBCQDsBwEJANkEAQUCYWoGCQACAQITSW52YWxpZCBXWCBhc3NldCBJRAkAzAgCAwkBCWlzRGVmaW5lZAEJAOwHAQkA2QQBBQJhbAYJAAIBAhVJbnZhbGlkIFVTRE4gYXNzZXQgSUQFA25pbAMJAAACBQJhbgUCYW4JAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQFnBQJhYwkAzAgCCQELU3RyaW5nRW50cnkCBQFqBQJhZAkAzAgCCQELU3RyaW5nRW50cnkCBQFpBQJhZQkAzAgCCQELU3RyaW5nRW50cnkCBQFrBQJhZgkAzAgCCQELU3RyaW5nRW50cnkCBQFoBQJhZwkAzAgCCQELU3RyaW5nRW50cnkCBQFsBQJhaAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBYgUCYWkJAMwIAgkBDEludGVnZXJFbnRyeQIFAWQFAmFrCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFlBQJhbQkAzAgCCQELU3RyaW5nRW50cnkCBQFmBQJhagkAzAgCCQELU3RyaW5nRW50cnkCBQFjBQJhbAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVcBDWNvbnN0cnVjdG9yVjIBAmFvBAJhbgkAzAgCCQEBWQEFAVcJAMwIAgMJAGYCBQJhbwAABgkAAgECEWludmFsaWQgdGhyZXNob2xkBQNuaWwDCQAAAgUCYW4FAmFuCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAW0FAmFvBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BVwEHc3VnZ2VzdAIBcgFzBAFHCQCUCgIFAXIFAXMEAmFwCQEFdmFsdWUBCQCRAwIIBQFXCHBheW1lbnRzAAAEAmFxAwkAAAIFAXICBVdBVkVTBQR1bml0BAJhcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUBcgIYaW52YWxpZCBhbW91bnRBc3NldElkIElEAwkAAAIIBQJhcghzY3JpcHRlZAcGCQACAQIOYXNzZXQgaXMgc21hcnQDCQAAAgUCYXEFAmFxBAJhbgkAzAgCAwkAAAIJANgEAQkBBXZhbHVlAQgFAmFwB2Fzc2V0SWQJAQV2YWx1ZQEJAKIIAQUBZgYJAAIBAhFpbnZhbGlkIGZlZSBhc3NldAkAzAgCAwkAAAIIBQJhcAZhbW91bnQJAQV2YWx1ZQEJAJ8IAQUBYgYJAAIBAhJpbnZhbGlkIGZlZSBhbW91bnQJAMwIAgMJAAACCQCfCAEJAQFxAgUBcgUBcwUEdW5pdAYJAAIBAhZhbHJlYWR5IGluIHZvdGluZyBsaXN0CQDMCAIDCQEBIQEJAQt2YWx1ZU9yRWxzZQIJAJsIAgUBUwkBAUYBBQFHBwYJAAIBAh9wb29sIGlzIGluIGVtaXNzaW9uIHZvdGluZyBsaXN0BQNuaWwDCQAAAgUCYW4FAmFuBAJhcwQBTAkA/AcEBQFSAg5zdGF0dXNSRUFET05MWQkAzAgCBQFyCQDMCAIFAXMFA25pbAUDbmlsAwkAAQIFAUwCBlN0cmluZwQBTQUBTAMJAAACBQFNAgZhY3RpdmUGCQACAQIXdXNlciBwb29sIGlzIG5vdCBhY3RpdmUJAAIBAhd1c2VyIHBvb2wgaXMgbm90IGFjdGl2ZQMJAAACBQJhcwUCYXMEAmF0AwkBAVYBBQFXBQR1bml0BAJhdQQBTAkA/AcEBQFOAhJpc1ZlcmlmaWVkUkVBRE9OTFkJAMwIAgUBcgUDbmlsBQNuaWwDCQABAgUBTAIHQm9vbGVhbgQCYXYFAUwDBQJhdgYJAAIBAhVhc3NldCBpcyBub3QgdmVyaWZpZWQJAAIBAhVhc3NldCBpcyBub3QgdmVyaWZpZWQDCQAAAgUCYXUFAmF1BQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFAmF0BQJhdAQCYXcJAPwHBAUBUAIEYnVybgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCAUCYXAHYXNzZXRJZAgFAmFwBmFtb3VudAUDbmlsAwkAAAIFAmF3BQJhdwQCYXgEAUwJAJ8IAQkBAXQCBQFyBQFzAwkAAQIFAUwCA0ludAQCYXkFAUwJAGQCBQJheQABAAAJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAXECBQFyBQFzBQJheAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAXUDBQFyBQFzBQJheAUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQF3AwUBcgUBcwUCYXgJAQF4AgIBMAIBMAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAXQCBQFyBQFzBQJheAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVcBBHZvdGUDAXIBcwJhegQBdgkBBXZhbHVlAQkAnwgBCQEBcQIFAXIFAXMEAmFBCQBkAgkBBXZhbHVlAQkAnwgBCQEBdQMFAXIFAXMFAXYJAQV2YWx1ZQEJAJ8IAQUBZAQCYW4JAMwIAgMJAQlpc0RlZmluZWQBCQCfCAEJAQFxAgUBcgUBcwYJAAIBAiJ0aGUgdG9rZW4gaXNuJ3Qgb24gdGhlIHZvdGluZyBsaXN0CQDMCAIDCQBmAgUCYUEFBmhlaWdodAYJAAIBAhB0b28gbGF0ZSB0byB2b3RlBQNuaWwDCQAAAgUCYW4FAmFuBAFECQD8BwQFAU8CIGdldFVzZXJHd3hBbW91bnRBdEhlaWdodFJFQURPTkxZCQDMCAIJAKUIAQgFAVcGY2FsbGVyCQDMCAIFAmFBBQNuaWwFA25pbAQCYUIDCQBmAgkBAVoBBQFEAAAGCQACAQISeW91IGRvbid0IGhhdmUgZ3d4AwkAAAIFAmFCBQJhQgQBRQQBTAkAoggBCQEBQQQFAXIFAXMFAXYJAKUIAQgFAVcGY2FsbGVyAwkAAQIFAUwCBlN0cmluZwQBTQUBTAQBRQkAtQkCBQFNBQFhBAJhQwkAkQMCBQFFAAEEAmFECQCRAwIFAUUAAgQCYUUDAwkAAAIFAmFEAgN5ZXMJAAACBQJhegYHBgMJAAACBQJhRAICbm8JAAACBQJhegcHBAJhRgMFAmFFCQAAAgkBAVoBBQFECQENcGFyc2VJbnRWYWx1ZQEFAmFDBwQCYUcDAwUCYUUFAmFGBwkAAgECEXlvdSBhbHJlYWR5IHZvdGVkCQD8BwQFBHRoaXMCCmNhbmNlbFZvdGUJAMwIAgUBcgkAzAgCBQFzBQNuaWwFA25pbAUCYUcDCQABAgUBTAIEVW5pdAQCYUgFAUwFAmFICQACAQILTWF0Y2ggZXJyb3IDCQAAAgUBRQUBRQQCYUkJALUJAgkBBXZhbHVlAQkAoggBCQEBdwMFAXIFAXMFAXYFAWEEAmFKCQCRAwIFAmFJAAEEAmFLCQCRAwIFAmFJAAIEAmFMAwUCYXoEAmFNCQBkAgkBDXBhcnNlSW50VmFsdWUBBQJhSgkBAVoBBQFECQDMCAIJAKQDAQUCYU0JAMwIAgUCYUsFA25pbAQCYU4JAGQCCQENcGFyc2VJbnRWYWx1ZQEFAmFLCQEBWgEFAUQJAMwIAgUCYUoJAMwIAgkApAMBBQJhTgUDbmlsBAJhTwkBAUEEBQFyBQFzBQF2CQClCAEIBQFXBmNhbGxlcgQCYUMJAQFDAgkApAMBCQEBWgEFAUQFAmF6CQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAXcDBQFyBQFzBQF2CQEBeAIJAJEDAgUCYUwAAAkAkQMCBQJhTAABCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmFPBQJhQwUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVcBCmNhbmNlbFZvdGUCAXIBcwQCYVADCQAAAggFAVcGY2FsbGVyBQR0aGlzCQClCAEIBQFXDG9yaWdpbkNhbGxlcgkApQgBCAUBVwZjYWxsZXIEAXYJAQV2YWx1ZQEJAJ8IAQkBAXECBQFyBQFzBAJhbgkAzAgCAwkBCWlzRGVmaW5lZAEJAKIIAQkBAXcDBQFyBQFzBQF2BgkAAgECF25vIHZvdGUgZm9yIGFzc2V0cyBwYWlyBQNuaWwDCQAAAgUCYW4FAmFuBAFFCQC1CQIJAQV2YWx1ZQEJAKIIAQkBAUEEBQFyBQFzBQF2BQJhUAUBYQQCYUMJAJEDAgUBRQABBAJhRAkAkQMCBQFFAAIEAmFJCQC1CQIJAQV2YWx1ZQEJAKIIAQkBAXcDBQFyBQFzBQF2BQFhBAJhSgkAkQMCBQJhSQABBAJhSwkAkQMCBQJhSQACBAJhUQMJAAACBQJhRAIDeWVzBAJhTQkAZQIJAQ1wYXJzZUludFZhbHVlAQUCYUoJAQ1wYXJzZUludFZhbHVlAQUCYUMJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQEBdwMFAXIFAXMFAXYJAQF4AgkApAMBBQJhTQUCYUsJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAUEEBQFyBQFzBQF2BQJhUAUDbmlsBQR1bml0BAJhTgkAZQIJAQ1wYXJzZUludFZhbHVlAQUCYUsJAQ1wYXJzZUludFZhbHVlAQUCYUMJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQEBdwMFAXIFAXMFAXYJAQF4AgUCYUoJAKQDAQUCYU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAUEEBQFyBQFzBQF2BQJhUAUDbmlsBQR1bml0BQJhUQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFXAQZzZXRGZWUBAmFSBAJhbgkAzAgCCQEBWQEFAVcFA25pbAMJAAACBQJhbgUCYW4JAMwIAgkBDEludGVnZXJFbnRyeQIFAWIFAmFSBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BVwEMc2V0VGhyZXNob2xkAQJhUwQCYW4JAMwIAgkBAVkBBQFXCQDMCAIDCQBmAgUCYVMAAAYJAAIBAhFpbnZhbGlkIHRocmVzaG9sZAUDbmlsAwkAAAIFAmFuBQJhbgkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFtBQJhUwUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVcBCGZpbmFsaXplAgFyAXMEAXYJAQV2YWx1ZQEJAJ8IAQkBAXECBQFyBQFzBAJhQQkAZAIJAQV2YWx1ZQEJAJ8IAQkBAXUDBQFyBQFzBQF2CQEFdmFsdWUBCQCfCAEFAWQEAmFuCQDMCAIDCQEJaXNEZWZpbmVkAQkAnwgBCQEBcQIFAXIFAXMGCQACAQIObm8gYXNzZXRzIHBhaXIJAMwIAgMJAGcCBQZoZWlnaHQFAmFBBgkAAgECImluc3VmZmljaWVudCBoZWlnaHQgZm9yIGNvbXBsZXRpb24FA25pbAMJAAACBQJhbgUCYW4EAmFJCQC1CQIJAQV2YWx1ZQEJAKIIAQkBAXcDBQFyBQFzBQF2BQFhBAJhSgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFJAAEEAmFLCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYUkAAgQCYVQJAGQCBQJhSgUCYUsEAmFvCQEBcAEFAW0EAmFRAwMJAGcCBQJhVAUCYW8JAGYCBQJhSgUCYUsHBAJhVQkA/AcEBQFRAhZzZXRXeEVtaXNzaW9uUG9vbExhYmVsCQDMCAIFAXIJAMwIAgUBcwUDbmlsBQNuaWwDCQAAAgUCYVUFAmFVBAJhVgkA/AcEBQFTAgZjcmVhdGUJAMwIAgUBcgkAzAgCBQFzBQNuaWwFA25pbAMJAAACBQJhVgUCYVYJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQEBcQIFAXIFAXMFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAlAoCCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFxAgUBcgUBcwUDbmlsBQR1bml0BQJhUQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFXAQdhcHByb3ZlAgFyAXMEAmFXAwkAAAIIBQFXBmNhbGxlcgUBUgYJAQFZAQUBVwMJAAACBQJhVwUCYVcEAmFVCQDMCAIJAPwHBAUBUQIWc2V0V3hFbWlzc2lvblBvb2xMYWJlbAkAzAgCBQFyCQDMCAIFAXMFA25pbAUDbmlsCQDMCAIJAPwHBAUBUwIGY3JlYXRlCQDMCAIFAXIJAMwIAgUBcwUDbmlsBQNuaWwFA25pbAMJAAACBQJhVQUCYVUJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJhWAECYVkABAJhWgQBTAkBAVQAAwkAAQIFAUwCCkJ5dGVWZWN0b3IEAVgFAUwFAVgDCQABAgUBTAIEVW5pdAgFAmFYD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJhWAlib2R5Qnl0ZXMJAJEDAggFAmFYBnByb29mcwAABQJhWlVPg14=", "height": 2571658, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6mJoi84NMtLPsVKujuiyDpB2TUDHx7qcAZE9KoSqQSZj Next: none Diff:
OldNewDifferences
7070 func I () = "%s__managerPublicKey"
7171
7272
73-func J () = "%s__pendingManagerPublicKey"
73+func J () = "%s__managerVaultAddress"
7474
7575
76-let K = addressFromStringValue(n(g))
76+func K () = {
77+ let L = getString(J())
78+ if ($isInstanceOf(L, "String"))
79+ then {
80+ let M = L
81+ addressFromStringValue(M)
82+ }
83+ else this
84+ }
7785
78-let L = addressFromStringValue(n(j))
7986
80-let M = addressFromStringValue(n(i))
87+let N = addressFromStringValue(n(g))
8188
82-let N = addressFromStringValue(n(k))
89+let O = addressFromStringValue(n(j))
8390
84-let O = addressFromStringValue(n(h))
91+let P = addressFromStringValue(n(i))
8592
86-let P = addressFromStringValue(n(l))
93+let Q = addressFromStringValue(n(k))
8794
88-func Q () = {
89- let R = getString(I())
90- if ($isInstanceOf(R, "String"))
95+let R = addressFromStringValue(n(h))
96+
97+let S = addressFromStringValue(n(l))
98+
99+func T () = {
100+ let U = K()
101+ let L = getString(U, I())
102+ if ($isInstanceOf(L, "String"))
91103 then {
92- let S = R
93- fromBase58String(S)
104+ let M = L
105+ fromBase58String(M)
94106 }
95- else if ($isInstanceOf(R, "Unit"))
107+ else if ($isInstanceOf(L, "Unit"))
96108 then unit
97109 else throw("Match error")
98110 }
99111
100112
101-func T () = {
102- let R = getString(J())
103- if ($isInstanceOf(R, "String"))
113+func V (W) = {
114+ let L = T()
115+ if ($isInstanceOf(L, "ByteVector"))
104116 then {
105- let S = R
106- fromBase58String(S)
117+ let X = L
118+ (W.callerPublicKey == X)
107119 }
108- else if ($isInstanceOf(R, "Unit"))
109- then unit
120+ else if ($isInstanceOf(L, "Unit"))
121+ then (W.caller == this)
110122 else throw("Match error")
111123 }
112124
113125
114-func U (V) = {
115- let R = Q()
116- if ($isInstanceOf(R, "ByteVector"))
117- then {
118- let W = R
119- (V.callerPublicKey == W)
120- }
121- else if ($isInstanceOf(R, "Unit"))
122- then (V.caller == this)
123- else throw("Match error")
124- }
125-
126-
127-func X (V) = if (U(V))
126+func Y (W) = if (V(W))
128127 then true
129128 else throw("permission denied")
130129
131130
132-func Y (Z) = {
133- let R = Z
134- if ($isInstanceOf(R, "Int"))
131+func Z (aa) = {
132+ let L = aa
133+ if ($isInstanceOf(L, "Int"))
135134 then {
136- let aa = R
137- aa
135+ let ab = L
136+ ab
138137 }
139138 else throw("failed to cast into Integer")
140139 }
141140
142141
143-@Callable(V)
144-func constructor (ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al) = {
145- let am = [X(V), if (isDefined(addressFromString(ab)))
142+@Callable(W)
143+func constructor (ac,ad,ae,af,ag,ah,ai,aj,ak,al,am) = {
144+ let an = [Y(W), if (isDefined(addressFromString(ac)))
146145 then true
147- else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(ac)))
146+ else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(ad)))
148147 then true
149- else throw("Invalid boosting contract address"), if (isDefined(addressFromString(af)))
148+ else throw("Invalid boosting contract address"), if (isDefined(addressFromString(ag)))
150149 then true
151- else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(ad)))
150+ else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(ae)))
152151 then true
153- else throw("Invalid emission contract address"), if (isDefined(addressFromString(ae)))
152+ else throw("Invalid emission contract address"), if (isDefined(addressFromString(af)))
154153 then true
155- else throw("Invalid factory contract address"), if ((ah >= 0))
154+ else throw("Invalid factory contract address"), if ((ai >= 0))
156155 then true
157- else throw("Invalid fee amount"), if ((aj > 0))
156+ else throw("Invalid fee amount"), if ((ak > 0))
158157 then true
159- else throw("Invalid voting duration"), if ((al >= 0))
158+ else throw("Invalid voting duration"), if ((am >= 0))
160159 then true
161- else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(ai))))
160+ else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(aj))))
162161 then true
163- else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(ak))))
162+ else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(al))))
164163 then true
165164 else throw("Invalid USDN asset ID")]
166- if ((am == am))
167- then $Tuple2([StringEntry(g, ab), StringEntry(j, ac), StringEntry(i, ad), StringEntry(k, ae), StringEntry(h, af), StringEntry(l, ag), IntegerEntry(b, ah), IntegerEntry(d, aj), IntegerEntry(e, al), StringEntry(f, ai), StringEntry(c, ak)], unit)
165+ if ((an == an))
166+ then $Tuple2([StringEntry(g, ac), StringEntry(j, ad), StringEntry(i, ae), StringEntry(k, af), StringEntry(h, ag), StringEntry(l, ah), IntegerEntry(b, ai), IntegerEntry(d, ak), IntegerEntry(e, am), StringEntry(f, aj), StringEntry(c, al)], unit)
168167 else throw("Strict value is not equal to itself.")
169168 }
170169
171170
172171
173-@Callable(V)
174-func constructorV2 (an) = {
175- let am = [X(V), if ((an > 0))
172+@Callable(W)
173+func constructorV2 (ao) = {
174+ let an = [Y(W), if ((ao > 0))
176175 then true
177176 else throw("invalid threshold")]
178- if ((am == am))
179- then $Tuple2([IntegerEntry(m, an)], unit)
177+ if ((an == an))
178+ then $Tuple2([IntegerEntry(m, ao)], unit)
180179 else throw("Strict value is not equal to itself.")
181180 }
182181
183182
184183
185-@Callable(V)
184+@Callable(W)
186185 func suggest (r,s) = {
187186 let G = $Tuple2(r, s)
188- let ao = value(V.payments[0])
189- let ap = if ((r == "WAVES"))
187+ let ap = value(W.payments[0])
188+ let aq = if ((r == "WAVES"))
190189 then unit
191190 else {
192- let aq = valueOrErrorMessage(assetInfo(fromBase58String(r)), "invalid amountAssetId ID")
193- if ((aq.scripted == false))
191+ let ar = valueOrErrorMessage(assetInfo(fromBase58String(r)), "invalid amountAssetId ID")
192+ if ((ar.scripted == false))
194193 then true
195194 else throw("asset is smart")
196195 }
197- if ((ap == ap))
196+ if ((aq == aq))
198197 then {
199- let am = [if ((toBase58String(value(ao.assetId)) == value(getString(f))))
198+ let an = [if ((toBase58String(value(ap.assetId)) == value(getString(f))))
200199 then true
201- else throw("invalid fee asset"), if ((ao.amount == value(getInteger(b))))
200+ else throw("invalid fee asset"), if ((ap.amount == value(getInteger(b))))
202201 then true
203202 else throw("invalid fee amount"), if ((getInteger(q(r, s)) == unit))
204203 then true
205- else throw("already in voting list"), if (!(valueOrElse(getBoolean(P, F(G)), false)))
204+ else throw("already in voting list"), if (!(valueOrElse(getBoolean(S, F(G)), false)))
206205 then true
207206 else throw("pool is in emission voting list")]
208- if ((am == am))
207+ if ((an == an))
209208 then {
210- let ar = {
211- let R = invoke(O, "statusREADONLY", [r, s], nil)
212- if ($isInstanceOf(R, "String"))
209+ let as = {
210+ let L = invoke(R, "statusREADONLY", [r, s], nil)
211+ if ($isInstanceOf(L, "String"))
213212 then {
214- let S = R
215- if ((S == "active"))
213+ let M = L
214+ if ((M == "active"))
216215 then true
217216 else throw("user pool is not active")
218217 }
219218 else throw("user pool is not active")
220219 }
221- if ((ar == ar))
220+ if ((as == as))
222221 then {
223- let as = if (U(V))
222+ let at = if (V(W))
224223 then unit
225224 else {
226- let at = {
227- let R = invoke(K, "isVerifiedREADONLY", [r], nil)
228- if ($isInstanceOf(R, "Boolean"))
225+ let au = {
226+ let L = invoke(N, "isVerifiedREADONLY", [r], nil)
227+ if ($isInstanceOf(L, "Boolean"))
229228 then {
230- let au = R
231- if (au)
229+ let av = L
230+ if (av)
232231 then true
233232 else throw("asset is not verified")
234233 }
235234 else throw("asset is not verified")
236235 }
237- if ((at == at))
236+ if ((au == au))
238237 then unit
239238 else throw("Strict value is not equal to itself.")
240239 }
241- if ((as == as))
240+ if ((at == at))
242241 then {
243- let av = invoke(M, "burn", nil, [AttachedPayment(ao.assetId, ao.amount)])
244- if ((av == av))
242+ let aw = invoke(P, "burn", nil, [AttachedPayment(ap.assetId, ap.amount)])
243+ if ((aw == aw))
245244 then {
246- let aw = {
247- let R = getInteger(t(r, s))
248- if ($isInstanceOf(R, "Int"))
245+ let ax = {
246+ let L = getInteger(t(r, s))
247+ if ($isInstanceOf(L, "Int"))
249248 then {
250- let ax = R
251- (ax + 1)
249+ let ay = L
250+ (ay + 1)
252251 }
253252 else 0
254253 }
255- $Tuple2([IntegerEntry(q(r, s), aw), IntegerEntry(u(r, s, aw), height), StringEntry(w(r, s, aw), x("0", "0")), IntegerEntry(t(r, s), aw)], unit)
254+ $Tuple2([IntegerEntry(q(r, s), ax), IntegerEntry(u(r, s, ax), height), StringEntry(w(r, s, ax), x("0", "0")), IntegerEntry(t(r, s), ax)], unit)
256255 }
257256 else throw("Strict value is not equal to itself.")
258257 }
267266
268267
269268
270-@Callable(V)
271-func vote (r,s,ay) = {
269+@Callable(W)
270+func vote (r,s,az) = {
272271 let v = value(getInteger(q(r, s)))
273- let az = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
274- let am = [if (isDefined(getInteger(q(r, s))))
272+ let aA = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
273+ let an = [if (isDefined(getInteger(q(r, s))))
275274 then true
276- else throw("the token isn't on the voting list"), if ((az > height))
275+ else throw("the token isn't on the voting list"), if ((aA > height))
277276 then true
278277 else throw("too late to vote")]
279- if ((am == am))
278+ if ((an == an))
280279 then {
281- let D = invoke(L, "getUserGwxAmountAtHeightREADONLY", [toString(V.caller), az], nil)
282- let aA = if ((Y(D) > 0))
280+ let D = invoke(O, "getUserGwxAmountAtHeightREADONLY", [toString(W.caller), aA], nil)
281+ let aB = if ((Z(D) > 0))
283282 then true
284283 else throw("you don't have gwx")
285- if ((aA == aA))
284+ if ((aB == aB))
286285 then {
287286 let E = {
288- let R = getString(A(r, s, v, toString(V.caller)))
289- if ($isInstanceOf(R, "String"))
287+ let L = getString(A(r, s, v, toString(W.caller)))
288+ if ($isInstanceOf(L, "String"))
290289 then {
291- let S = R
292- let E = split(S, a)
293- let aB = E[1]
294- let aC = E[2]
295- let aD = if (if ((aC == "yes"))
296- then (ay == true)
290+ let M = L
291+ let E = split(M, a)
292+ let aC = E[1]
293+ let aD = E[2]
294+ let aE = if (if ((aD == "yes"))
295+ then (az == true)
297296 else false)
298297 then true
299- else if ((aC == "no"))
300- then (ay == false)
298+ else if ((aD == "no"))
299+ then (az == false)
301300 else false
302- let aE = if (aD)
303- then (Y(D) == parseIntValue(aB))
301+ let aF = if (aE)
302+ then (Z(D) == parseIntValue(aC))
304303 else false
305- let aF = if (if (aD)
306- then aE
304+ let aG = if (if (aE)
305+ then aF
307306 else false)
308307 then throw("you already voted")
309308 else invoke(this, "cancelVote", [r, s], nil)
310- aF
309+ aG
311310 }
312- else if ($isInstanceOf(R, "Unit"))
311+ else if ($isInstanceOf(L, "Unit"))
313312 then {
314- let aG = R
315- aG
313+ let aH = L
314+ aH
316315 }
317316 else throw("Match error")
318317 }
319318 if ((E == E))
320319 then {
321- let aH = split(value(getString(w(r, s, v))), a)
322- let aI = aH[1]
323- let aJ = aH[2]
324- let aK = if (ay)
320+ let aI = split(value(getString(w(r, s, v))), a)
321+ let aJ = aI[1]
322+ let aK = aI[2]
323+ let aL = if (az)
325324 then {
326- let aL = (parseIntValue(aI) + Y(D))
327-[toString(aL), aJ]
325+ let aM = (parseIntValue(aJ) + Z(D))
326+[toString(aM), aK]
328327 }
329328 else {
330- let aM = (parseIntValue(aJ) + Y(D))
331-[aI, toString(aM)]
329+ let aN = (parseIntValue(aK) + Z(D))
330+[aJ, toString(aN)]
332331 }
333- let aN = A(r, s, v, toString(V.caller))
334- let aB = C(toString(Y(D)), ay)
335- $Tuple2([StringEntry(w(r, s, v), x(aK[0], aK[1])), StringEntry(aN, aB)], unit)
332+ let aO = A(r, s, v, toString(W.caller))
333+ let aC = C(toString(Z(D)), az)
334+ $Tuple2([StringEntry(w(r, s, v), x(aL[0], aL[1])), StringEntry(aO, aC)], unit)
336335 }
337336 else throw("Strict value is not equal to itself.")
338337 }
343342
344343
345344
346-@Callable(V)
345+@Callable(W)
347346 func cancelVote (r,s) = {
348- let aO = if ((V.caller == this))
349- then toString(V.originCaller)
350- else toString(V.caller)
347+ let aP = if ((W.caller == this))
348+ then toString(W.originCaller)
349+ else toString(W.caller)
351350 let v = value(getInteger(q(r, s)))
352- let am = [if (isDefined(getString(w(r, s, v))))
351+ let an = [if (isDefined(getString(w(r, s, v))))
353352 then true
354353 else throw("no vote for assets pair")]
355- if ((am == am))
354+ if ((an == an))
356355 then {
357- let E = split(value(getString(A(r, s, v, aO))), a)
358- let aB = E[1]
359- let aC = E[2]
360- let aH = split(value(getString(w(r, s, v))), a)
361- let aI = aH[1]
362- let aJ = aH[2]
363- let aP = if ((aC == "yes"))
356+ let E = split(value(getString(A(r, s, v, aP))), a)
357+ let aC = E[1]
358+ let aD = E[2]
359+ let aI = split(value(getString(w(r, s, v))), a)
360+ let aJ = aI[1]
361+ let aK = aI[2]
362+ let aQ = if ((aD == "yes"))
364363 then {
365- let aL = (parseIntValue(aI) - parseIntValue(aB))
366- $Tuple2([StringEntry(w(r, s, v), x(toString(aL), aJ)), DeleteEntry(A(r, s, v, aO))], unit)
364+ let aM = (parseIntValue(aJ) - parseIntValue(aC))
365+ $Tuple2([StringEntry(w(r, s, v), x(toString(aM), aK)), DeleteEntry(A(r, s, v, aP))], unit)
367366 }
368367 else {
369- let aM = (parseIntValue(aJ) - parseIntValue(aB))
370- $Tuple2([StringEntry(w(r, s, v), x(aI, toString(aM))), DeleteEntry(A(r, s, v, aO))], unit)
368+ let aN = (parseIntValue(aK) - parseIntValue(aC))
369+ $Tuple2([StringEntry(w(r, s, v), x(aJ, toString(aN))), DeleteEntry(A(r, s, v, aP))], unit)
371370 }
372- aP
371+ aQ
373372 }
374373 else throw("Strict value is not equal to itself.")
375374 }
376375
377376
378377
379-@Callable(V)
380-func setFee (aQ) = {
381- let am = [X(V)]
382- if ((am == am))
383- then [IntegerEntry(b, aQ)]
378+@Callable(W)
379+func setFee (aR) = {
380+ let an = [Y(W)]
381+ if ((an == an))
382+ then [IntegerEntry(b, aR)]
384383 else throw("Strict value is not equal to itself.")
385384 }
386385
387386
388387
389-@Callable(V)
390-func setThreshold (aR) = {
391- let am = [X(V), if ((aR > 0))
388+@Callable(W)
389+func setThreshold (aS) = {
390+ let an = [Y(W), if ((aS > 0))
392391 then true
393392 else throw("invalid threshold")]
394- if ((am == am))
395- then $Tuple2([IntegerEntry(m, aR)], unit)
393+ if ((an == an))
394+ then $Tuple2([IntegerEntry(m, aS)], unit)
396395 else throw("Strict value is not equal to itself.")
397396 }
398397
399398
400399
401-@Callable(V)
400+@Callable(W)
402401 func finalize (r,s) = {
403402 let v = value(getInteger(q(r, s)))
404- let az = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
405- let am = [if (isDefined(getInteger(q(r, s))))
403+ let aA = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
404+ let an = [if (isDefined(getInteger(q(r, s))))
406405 then true
407- else throw("no assets pair"), if ((height >= az))
406+ else throw("no assets pair"), if ((height >= aA))
408407 then true
409408 else throw("insufficient height for completion")]
410- if ((am == am))
409+ if ((an == an))
411410 then {
412- let aH = split(value(getString(w(r, s, v))), a)
413- let aI = parseIntValue(aH[1])
414- let aJ = parseIntValue(aH[2])
415- let aS = (aI + aJ)
416- let an = p(m)
417- let aP = if (if ((aS >= an))
418- then (aI > aJ)
411+ let aI = split(value(getString(w(r, s, v))), a)
412+ let aJ = parseIntValue(aI[1])
413+ let aK = parseIntValue(aI[2])
414+ let aT = (aJ + aK)
415+ let ao = p(m)
416+ let aQ = if (if ((aT >= ao))
417+ then (aJ > aK)
419418 else false)
420419 then {
421- let aT = invoke(N, "setWxEmissionPoolLabel", [r, s], nil)
422- if ((aT == aT))
420+ let aU = invoke(Q, "setWxEmissionPoolLabel", [r, s], nil)
421+ if ((aU == aU))
423422 then {
424- let aU = invoke(P, "create", [r, s], nil)
425- if ((aU == aU))
423+ let aV = invoke(S, "create", [r, s], nil)
424+ if ((aV == aV))
426425 then $Tuple2([DeleteEntry(q(r, s))], unit)
427426 else throw("Strict value is not equal to itself.")
428427 }
429428 else throw("Strict value is not equal to itself.")
430429 }
431430 else $Tuple2([DeleteEntry(q(r, s))], unit)
432- aP
431+ aQ
433432 }
434433 else throw("Strict value is not equal to itself.")
435434 }
436435
437436
438437
439-@Callable(V)
438+@Callable(W)
440439 func approve (r,s) = {
441- let aV = if ((V.caller == O))
440+ let aW = if ((W.caller == R))
442441 then true
443- else X(V)
444- if ((aV == aV))
442+ else Y(W)
443+ if ((aW == aW))
445444 then {
446- let aT = [invoke(N, "setWxEmissionPoolLabel", [r, s], nil), invoke(P, "create", [r, s], nil)]
447- if ((aT == aT))
445+ let aU = [invoke(Q, "setWxEmissionPoolLabel", [r, s], nil), invoke(S, "create", [r, s], nil)]
446+ if ((aU == aU))
448447 then $Tuple2(nil, unit)
449448 else throw("Strict value is not equal to itself.")
450449 }
452451 }
453452
454453
455-
456-@Callable(V)
457-func setManager (aW) = {
458- let aV = X(V)
459- if ((aV == aV))
460- then {
461- let aX = fromBase58String(aW)
462- if ((aX == aX))
463- then [StringEntry(J(), aW)]
464- else throw("Strict value is not equal to itself.")
465- }
466- else throw("Strict value is not equal to itself.")
467- }
468-
469-
470-
471-@Callable(V)
472-func confirmManager () = {
473- let aY = T()
474- let aZ = if (isDefined(aY))
475- then true
476- else throw("no pending manager")
477- if ((aZ == aZ))
478- then {
479- let ba = if ((V.callerPublicKey == value(aY)))
480- then true
481- else throw("you are not pending manager")
482- if ((ba == ba))
483- then [StringEntry(I(), toBase58String(value(aY))), DeleteEntry(J())]
484- else throw("Strict value is not equal to itself.")
485- }
486- else throw("Strict value is not equal to itself.")
487- }
488-
489-
490-@Verifier(bb)
491-func bc () = {
492- let bd = {
493- let R = Q()
494- if ($isInstanceOf(R, "ByteVector"))
454+@Verifier(aX)
455+func aY () = {
456+ let aZ = {
457+ let L = T()
458+ if ($isInstanceOf(L, "ByteVector"))
495459 then {
496- let W = R
497- W
460+ let X = L
461+ X
498462 }
499- else if ($isInstanceOf(R, "Unit"))
500- then bb.senderPublicKey
463+ else if ($isInstanceOf(L, "Unit"))
464+ then aX.senderPublicKey
501465 else throw("Match error")
502466 }
503- sigVerify(bb.bodyBytes, bb.proofs[0], bd)
467+ sigVerify(aX.bodyBytes, aX.proofs[0], aZ)
504468 }
505469
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = makeString(["%s", "fee"], a)
77
88 let c = makeString(["%s", "usdnAssetId"], a)
99
1010 let d = makeString(["%s", "epochLength"], a)
1111
1212 let e = makeString(["%s", "finalizeReward"], a)
1313
1414 let f = makeString(["%s", "wxAssetId"], a)
1515
1616 let g = makeString(["%s", "assetsStoreContract"], a)
1717
1818 let h = makeString(["%s", "userPoolContract"], a)
1919
2020 let i = makeString(["%s", "emissionContract"], a)
2121
2222 let j = makeString(["%s", "boostingContract"], a)
2323
2424 let k = makeString(["%s", "factoryContract"], a)
2525
2626 let l = makeString(["%s", "votingEmissionContract"], a)
2727
2828 let m = makeString(["%s", "votingThreshold"], a)
2929
3030 func n (o) = valueOrErrorMessage(getString(this, o), (o + " is not defined"))
3131
3232
3333 func p (o) = valueOrErrorMessage(getInteger(this, o), (o + " is not defined"))
3434
3535
3636 func q (r,s) = makeString(["%s%s%s", "inList", r, s], a)
3737
3838
3939 func t (r,s) = makeString(["%s%s%s", "suggestIndex", r, s], a)
4040
4141
4242 func u (r,s,v) = makeString(["%s%s%s%d", "startHeight", r, s, toString(v)], a)
4343
4444
4545 func w (r,s,v) = makeString(["%s%s%s%d", "votingResult", r, s, toString(v)], a)
4646
4747
4848 func x (y,z) = makeString(["%d%d", y, z], a)
4949
5050
5151 func A (r,s,v,B) = makeString(["%s%s%s%d%s", "vote", r, s, toString(v), B], a)
5252
5353
5454 func C (D,E) = {
5555 let o = if (E)
5656 then makeString(["%d%s", D, "yes"], a)
5757 else makeString(["%d%s", D, "no"], a)
5858 o
5959 }
6060
6161
6262 func F (G) = {
6363 let H = G
6464 let r = H._1
6565 let s = H._2
6666 makeString(["%s%s%s", "inList", r, s], a)
6767 }
6868
6969
7070 func I () = "%s__managerPublicKey"
7171
7272
73-func J () = "%s__pendingManagerPublicKey"
73+func J () = "%s__managerVaultAddress"
7474
7575
76-let K = addressFromStringValue(n(g))
76+func K () = {
77+ let L = getString(J())
78+ if ($isInstanceOf(L, "String"))
79+ then {
80+ let M = L
81+ addressFromStringValue(M)
82+ }
83+ else this
84+ }
7785
78-let L = addressFromStringValue(n(j))
7986
80-let M = addressFromStringValue(n(i))
87+let N = addressFromStringValue(n(g))
8188
82-let N = addressFromStringValue(n(k))
89+let O = addressFromStringValue(n(j))
8390
84-let O = addressFromStringValue(n(h))
91+let P = addressFromStringValue(n(i))
8592
86-let P = addressFromStringValue(n(l))
93+let Q = addressFromStringValue(n(k))
8794
88-func Q () = {
89- let R = getString(I())
90- if ($isInstanceOf(R, "String"))
95+let R = addressFromStringValue(n(h))
96+
97+let S = addressFromStringValue(n(l))
98+
99+func T () = {
100+ let U = K()
101+ let L = getString(U, I())
102+ if ($isInstanceOf(L, "String"))
91103 then {
92- let S = R
93- fromBase58String(S)
104+ let M = L
105+ fromBase58String(M)
94106 }
95- else if ($isInstanceOf(R, "Unit"))
107+ else if ($isInstanceOf(L, "Unit"))
96108 then unit
97109 else throw("Match error")
98110 }
99111
100112
101-func T () = {
102- let R = getString(J())
103- if ($isInstanceOf(R, "String"))
113+func V (W) = {
114+ let L = T()
115+ if ($isInstanceOf(L, "ByteVector"))
104116 then {
105- let S = R
106- fromBase58String(S)
117+ let X = L
118+ (W.callerPublicKey == X)
107119 }
108- else if ($isInstanceOf(R, "Unit"))
109- then unit
120+ else if ($isInstanceOf(L, "Unit"))
121+ then (W.caller == this)
110122 else throw("Match error")
111123 }
112124
113125
114-func U (V) = {
115- let R = Q()
116- if ($isInstanceOf(R, "ByteVector"))
117- then {
118- let W = R
119- (V.callerPublicKey == W)
120- }
121- else if ($isInstanceOf(R, "Unit"))
122- then (V.caller == this)
123- else throw("Match error")
124- }
125-
126-
127-func X (V) = if (U(V))
126+func Y (W) = if (V(W))
128127 then true
129128 else throw("permission denied")
130129
131130
132-func Y (Z) = {
133- let R = Z
134- if ($isInstanceOf(R, "Int"))
131+func Z (aa) = {
132+ let L = aa
133+ if ($isInstanceOf(L, "Int"))
135134 then {
136- let aa = R
137- aa
135+ let ab = L
136+ ab
138137 }
139138 else throw("failed to cast into Integer")
140139 }
141140
142141
143-@Callable(V)
144-func constructor (ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al) = {
145- let am = [X(V), if (isDefined(addressFromString(ab)))
142+@Callable(W)
143+func constructor (ac,ad,ae,af,ag,ah,ai,aj,ak,al,am) = {
144+ let an = [Y(W), if (isDefined(addressFromString(ac)))
146145 then true
147- else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(ac)))
146+ else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(ad)))
148147 then true
149- else throw("Invalid boosting contract address"), if (isDefined(addressFromString(af)))
148+ else throw("Invalid boosting contract address"), if (isDefined(addressFromString(ag)))
150149 then true
151- else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(ad)))
150+ else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(ae)))
152151 then true
153- else throw("Invalid emission contract address"), if (isDefined(addressFromString(ae)))
152+ else throw("Invalid emission contract address"), if (isDefined(addressFromString(af)))
154153 then true
155- else throw("Invalid factory contract address"), if ((ah >= 0))
154+ else throw("Invalid factory contract address"), if ((ai >= 0))
156155 then true
157- else throw("Invalid fee amount"), if ((aj > 0))
156+ else throw("Invalid fee amount"), if ((ak > 0))
158157 then true
159- else throw("Invalid voting duration"), if ((al >= 0))
158+ else throw("Invalid voting duration"), if ((am >= 0))
160159 then true
161- else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(ai))))
160+ else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(aj))))
162161 then true
163- else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(ak))))
162+ else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(al))))
164163 then true
165164 else throw("Invalid USDN asset ID")]
166- if ((am == am))
167- then $Tuple2([StringEntry(g, ab), StringEntry(j, ac), StringEntry(i, ad), StringEntry(k, ae), StringEntry(h, af), StringEntry(l, ag), IntegerEntry(b, ah), IntegerEntry(d, aj), IntegerEntry(e, al), StringEntry(f, ai), StringEntry(c, ak)], unit)
165+ if ((an == an))
166+ then $Tuple2([StringEntry(g, ac), StringEntry(j, ad), StringEntry(i, ae), StringEntry(k, af), StringEntry(h, ag), StringEntry(l, ah), IntegerEntry(b, ai), IntegerEntry(d, ak), IntegerEntry(e, am), StringEntry(f, aj), StringEntry(c, al)], unit)
168167 else throw("Strict value is not equal to itself.")
169168 }
170169
171170
172171
173-@Callable(V)
174-func constructorV2 (an) = {
175- let am = [X(V), if ((an > 0))
172+@Callable(W)
173+func constructorV2 (ao) = {
174+ let an = [Y(W), if ((ao > 0))
176175 then true
177176 else throw("invalid threshold")]
178- if ((am == am))
179- then $Tuple2([IntegerEntry(m, an)], unit)
177+ if ((an == an))
178+ then $Tuple2([IntegerEntry(m, ao)], unit)
180179 else throw("Strict value is not equal to itself.")
181180 }
182181
183182
184183
185-@Callable(V)
184+@Callable(W)
186185 func suggest (r,s) = {
187186 let G = $Tuple2(r, s)
188- let ao = value(V.payments[0])
189- let ap = if ((r == "WAVES"))
187+ let ap = value(W.payments[0])
188+ let aq = if ((r == "WAVES"))
190189 then unit
191190 else {
192- let aq = valueOrErrorMessage(assetInfo(fromBase58String(r)), "invalid amountAssetId ID")
193- if ((aq.scripted == false))
191+ let ar = valueOrErrorMessage(assetInfo(fromBase58String(r)), "invalid amountAssetId ID")
192+ if ((ar.scripted == false))
194193 then true
195194 else throw("asset is smart")
196195 }
197- if ((ap == ap))
196+ if ((aq == aq))
198197 then {
199- let am = [if ((toBase58String(value(ao.assetId)) == value(getString(f))))
198+ let an = [if ((toBase58String(value(ap.assetId)) == value(getString(f))))
200199 then true
201- else throw("invalid fee asset"), if ((ao.amount == value(getInteger(b))))
200+ else throw("invalid fee asset"), if ((ap.amount == value(getInteger(b))))
202201 then true
203202 else throw("invalid fee amount"), if ((getInteger(q(r, s)) == unit))
204203 then true
205- else throw("already in voting list"), if (!(valueOrElse(getBoolean(P, F(G)), false)))
204+ else throw("already in voting list"), if (!(valueOrElse(getBoolean(S, F(G)), false)))
206205 then true
207206 else throw("pool is in emission voting list")]
208- if ((am == am))
207+ if ((an == an))
209208 then {
210- let ar = {
211- let R = invoke(O, "statusREADONLY", [r, s], nil)
212- if ($isInstanceOf(R, "String"))
209+ let as = {
210+ let L = invoke(R, "statusREADONLY", [r, s], nil)
211+ if ($isInstanceOf(L, "String"))
213212 then {
214- let S = R
215- if ((S == "active"))
213+ let M = L
214+ if ((M == "active"))
216215 then true
217216 else throw("user pool is not active")
218217 }
219218 else throw("user pool is not active")
220219 }
221- if ((ar == ar))
220+ if ((as == as))
222221 then {
223- let as = if (U(V))
222+ let at = if (V(W))
224223 then unit
225224 else {
226- let at = {
227- let R = invoke(K, "isVerifiedREADONLY", [r], nil)
228- if ($isInstanceOf(R, "Boolean"))
225+ let au = {
226+ let L = invoke(N, "isVerifiedREADONLY", [r], nil)
227+ if ($isInstanceOf(L, "Boolean"))
229228 then {
230- let au = R
231- if (au)
229+ let av = L
230+ if (av)
232231 then true
233232 else throw("asset is not verified")
234233 }
235234 else throw("asset is not verified")
236235 }
237- if ((at == at))
236+ if ((au == au))
238237 then unit
239238 else throw("Strict value is not equal to itself.")
240239 }
241- if ((as == as))
240+ if ((at == at))
242241 then {
243- let av = invoke(M, "burn", nil, [AttachedPayment(ao.assetId, ao.amount)])
244- if ((av == av))
242+ let aw = invoke(P, "burn", nil, [AttachedPayment(ap.assetId, ap.amount)])
243+ if ((aw == aw))
245244 then {
246- let aw = {
247- let R = getInteger(t(r, s))
248- if ($isInstanceOf(R, "Int"))
245+ let ax = {
246+ let L = getInteger(t(r, s))
247+ if ($isInstanceOf(L, "Int"))
249248 then {
250- let ax = R
251- (ax + 1)
249+ let ay = L
250+ (ay + 1)
252251 }
253252 else 0
254253 }
255- $Tuple2([IntegerEntry(q(r, s), aw), IntegerEntry(u(r, s, aw), height), StringEntry(w(r, s, aw), x("0", "0")), IntegerEntry(t(r, s), aw)], unit)
254+ $Tuple2([IntegerEntry(q(r, s), ax), IntegerEntry(u(r, s, ax), height), StringEntry(w(r, s, ax), x("0", "0")), IntegerEntry(t(r, s), ax)], unit)
256255 }
257256 else throw("Strict value is not equal to itself.")
258257 }
259258 else throw("Strict value is not equal to itself.")
260259 }
261260 else throw("Strict value is not equal to itself.")
262261 }
263262 else throw("Strict value is not equal to itself.")
264263 }
265264 else throw("Strict value is not equal to itself.")
266265 }
267266
268267
269268
270-@Callable(V)
271-func vote (r,s,ay) = {
269+@Callable(W)
270+func vote (r,s,az) = {
272271 let v = value(getInteger(q(r, s)))
273- let az = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
274- let am = [if (isDefined(getInteger(q(r, s))))
272+ let aA = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
273+ let an = [if (isDefined(getInteger(q(r, s))))
275274 then true
276- else throw("the token isn't on the voting list"), if ((az > height))
275+ else throw("the token isn't on the voting list"), if ((aA > height))
277276 then true
278277 else throw("too late to vote")]
279- if ((am == am))
278+ if ((an == an))
280279 then {
281- let D = invoke(L, "getUserGwxAmountAtHeightREADONLY", [toString(V.caller), az], nil)
282- let aA = if ((Y(D) > 0))
280+ let D = invoke(O, "getUserGwxAmountAtHeightREADONLY", [toString(W.caller), aA], nil)
281+ let aB = if ((Z(D) > 0))
283282 then true
284283 else throw("you don't have gwx")
285- if ((aA == aA))
284+ if ((aB == aB))
286285 then {
287286 let E = {
288- let R = getString(A(r, s, v, toString(V.caller)))
289- if ($isInstanceOf(R, "String"))
287+ let L = getString(A(r, s, v, toString(W.caller)))
288+ if ($isInstanceOf(L, "String"))
290289 then {
291- let S = R
292- let E = split(S, a)
293- let aB = E[1]
294- let aC = E[2]
295- let aD = if (if ((aC == "yes"))
296- then (ay == true)
290+ let M = L
291+ let E = split(M, a)
292+ let aC = E[1]
293+ let aD = E[2]
294+ let aE = if (if ((aD == "yes"))
295+ then (az == true)
297296 else false)
298297 then true
299- else if ((aC == "no"))
300- then (ay == false)
298+ else if ((aD == "no"))
299+ then (az == false)
301300 else false
302- let aE = if (aD)
303- then (Y(D) == parseIntValue(aB))
301+ let aF = if (aE)
302+ then (Z(D) == parseIntValue(aC))
304303 else false
305- let aF = if (if (aD)
306- then aE
304+ let aG = if (if (aE)
305+ then aF
307306 else false)
308307 then throw("you already voted")
309308 else invoke(this, "cancelVote", [r, s], nil)
310- aF
309+ aG
311310 }
312- else if ($isInstanceOf(R, "Unit"))
311+ else if ($isInstanceOf(L, "Unit"))
313312 then {
314- let aG = R
315- aG
313+ let aH = L
314+ aH
316315 }
317316 else throw("Match error")
318317 }
319318 if ((E == E))
320319 then {
321- let aH = split(value(getString(w(r, s, v))), a)
322- let aI = aH[1]
323- let aJ = aH[2]
324- let aK = if (ay)
320+ let aI = split(value(getString(w(r, s, v))), a)
321+ let aJ = aI[1]
322+ let aK = aI[2]
323+ let aL = if (az)
325324 then {
326- let aL = (parseIntValue(aI) + Y(D))
327-[toString(aL), aJ]
325+ let aM = (parseIntValue(aJ) + Z(D))
326+[toString(aM), aK]
328327 }
329328 else {
330- let aM = (parseIntValue(aJ) + Y(D))
331-[aI, toString(aM)]
329+ let aN = (parseIntValue(aK) + Z(D))
330+[aJ, toString(aN)]
332331 }
333- let aN = A(r, s, v, toString(V.caller))
334- let aB = C(toString(Y(D)), ay)
335- $Tuple2([StringEntry(w(r, s, v), x(aK[0], aK[1])), StringEntry(aN, aB)], unit)
332+ let aO = A(r, s, v, toString(W.caller))
333+ let aC = C(toString(Z(D)), az)
334+ $Tuple2([StringEntry(w(r, s, v), x(aL[0], aL[1])), StringEntry(aO, aC)], unit)
336335 }
337336 else throw("Strict value is not equal to itself.")
338337 }
339338 else throw("Strict value is not equal to itself.")
340339 }
341340 else throw("Strict value is not equal to itself.")
342341 }
343342
344343
345344
346-@Callable(V)
345+@Callable(W)
347346 func cancelVote (r,s) = {
348- let aO = if ((V.caller == this))
349- then toString(V.originCaller)
350- else toString(V.caller)
347+ let aP = if ((W.caller == this))
348+ then toString(W.originCaller)
349+ else toString(W.caller)
351350 let v = value(getInteger(q(r, s)))
352- let am = [if (isDefined(getString(w(r, s, v))))
351+ let an = [if (isDefined(getString(w(r, s, v))))
353352 then true
354353 else throw("no vote for assets pair")]
355- if ((am == am))
354+ if ((an == an))
356355 then {
357- let E = split(value(getString(A(r, s, v, aO))), a)
358- let aB = E[1]
359- let aC = E[2]
360- let aH = split(value(getString(w(r, s, v))), a)
361- let aI = aH[1]
362- let aJ = aH[2]
363- let aP = if ((aC == "yes"))
356+ let E = split(value(getString(A(r, s, v, aP))), a)
357+ let aC = E[1]
358+ let aD = E[2]
359+ let aI = split(value(getString(w(r, s, v))), a)
360+ let aJ = aI[1]
361+ let aK = aI[2]
362+ let aQ = if ((aD == "yes"))
364363 then {
365- let aL = (parseIntValue(aI) - parseIntValue(aB))
366- $Tuple2([StringEntry(w(r, s, v), x(toString(aL), aJ)), DeleteEntry(A(r, s, v, aO))], unit)
364+ let aM = (parseIntValue(aJ) - parseIntValue(aC))
365+ $Tuple2([StringEntry(w(r, s, v), x(toString(aM), aK)), DeleteEntry(A(r, s, v, aP))], unit)
367366 }
368367 else {
369- let aM = (parseIntValue(aJ) - parseIntValue(aB))
370- $Tuple2([StringEntry(w(r, s, v), x(aI, toString(aM))), DeleteEntry(A(r, s, v, aO))], unit)
368+ let aN = (parseIntValue(aK) - parseIntValue(aC))
369+ $Tuple2([StringEntry(w(r, s, v), x(aJ, toString(aN))), DeleteEntry(A(r, s, v, aP))], unit)
371370 }
372- aP
371+ aQ
373372 }
374373 else throw("Strict value is not equal to itself.")
375374 }
376375
377376
378377
379-@Callable(V)
380-func setFee (aQ) = {
381- let am = [X(V)]
382- if ((am == am))
383- then [IntegerEntry(b, aQ)]
378+@Callable(W)
379+func setFee (aR) = {
380+ let an = [Y(W)]
381+ if ((an == an))
382+ then [IntegerEntry(b, aR)]
384383 else throw("Strict value is not equal to itself.")
385384 }
386385
387386
388387
389-@Callable(V)
390-func setThreshold (aR) = {
391- let am = [X(V), if ((aR > 0))
388+@Callable(W)
389+func setThreshold (aS) = {
390+ let an = [Y(W), if ((aS > 0))
392391 then true
393392 else throw("invalid threshold")]
394- if ((am == am))
395- then $Tuple2([IntegerEntry(m, aR)], unit)
393+ if ((an == an))
394+ then $Tuple2([IntegerEntry(m, aS)], unit)
396395 else throw("Strict value is not equal to itself.")
397396 }
398397
399398
400399
401-@Callable(V)
400+@Callable(W)
402401 func finalize (r,s) = {
403402 let v = value(getInteger(q(r, s)))
404- let az = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
405- let am = [if (isDefined(getInteger(q(r, s))))
403+ let aA = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
404+ let an = [if (isDefined(getInteger(q(r, s))))
406405 then true
407- else throw("no assets pair"), if ((height >= az))
406+ else throw("no assets pair"), if ((height >= aA))
408407 then true
409408 else throw("insufficient height for completion")]
410- if ((am == am))
409+ if ((an == an))
411410 then {
412- let aH = split(value(getString(w(r, s, v))), a)
413- let aI = parseIntValue(aH[1])
414- let aJ = parseIntValue(aH[2])
415- let aS = (aI + aJ)
416- let an = p(m)
417- let aP = if (if ((aS >= an))
418- then (aI > aJ)
411+ let aI = split(value(getString(w(r, s, v))), a)
412+ let aJ = parseIntValue(aI[1])
413+ let aK = parseIntValue(aI[2])
414+ let aT = (aJ + aK)
415+ let ao = p(m)
416+ let aQ = if (if ((aT >= ao))
417+ then (aJ > aK)
419418 else false)
420419 then {
421- let aT = invoke(N, "setWxEmissionPoolLabel", [r, s], nil)
422- if ((aT == aT))
420+ let aU = invoke(Q, "setWxEmissionPoolLabel", [r, s], nil)
421+ if ((aU == aU))
423422 then {
424- let aU = invoke(P, "create", [r, s], nil)
425- if ((aU == aU))
423+ let aV = invoke(S, "create", [r, s], nil)
424+ if ((aV == aV))
426425 then $Tuple2([DeleteEntry(q(r, s))], unit)
427426 else throw("Strict value is not equal to itself.")
428427 }
429428 else throw("Strict value is not equal to itself.")
430429 }
431430 else $Tuple2([DeleteEntry(q(r, s))], unit)
432- aP
431+ aQ
433432 }
434433 else throw("Strict value is not equal to itself.")
435434 }
436435
437436
438437
439-@Callable(V)
438+@Callable(W)
440439 func approve (r,s) = {
441- let aV = if ((V.caller == O))
440+ let aW = if ((W.caller == R))
442441 then true
443- else X(V)
444- if ((aV == aV))
442+ else Y(W)
443+ if ((aW == aW))
445444 then {
446- let aT = [invoke(N, "setWxEmissionPoolLabel", [r, s], nil), invoke(P, "create", [r, s], nil)]
447- if ((aT == aT))
445+ let aU = [invoke(Q, "setWxEmissionPoolLabel", [r, s], nil), invoke(S, "create", [r, s], nil)]
446+ if ((aU == aU))
448447 then $Tuple2(nil, unit)
449448 else throw("Strict value is not equal to itself.")
450449 }
451450 else throw("Strict value is not equal to itself.")
452451 }
453452
454453
455-
456-@Callable(V)
457-func setManager (aW) = {
458- let aV = X(V)
459- if ((aV == aV))
460- then {
461- let aX = fromBase58String(aW)
462- if ((aX == aX))
463- then [StringEntry(J(), aW)]
464- else throw("Strict value is not equal to itself.")
465- }
466- else throw("Strict value is not equal to itself.")
467- }
468-
469-
470-
471-@Callable(V)
472-func confirmManager () = {
473- let aY = T()
474- let aZ = if (isDefined(aY))
475- then true
476- else throw("no pending manager")
477- if ((aZ == aZ))
478- then {
479- let ba = if ((V.callerPublicKey == value(aY)))
480- then true
481- else throw("you are not pending manager")
482- if ((ba == ba))
483- then [StringEntry(I(), toBase58String(value(aY))), DeleteEntry(J())]
484- else throw("Strict value is not equal to itself.")
485- }
486- else throw("Strict value is not equal to itself.")
487- }
488-
489-
490-@Verifier(bb)
491-func bc () = {
492- let bd = {
493- let R = Q()
494- if ($isInstanceOf(R, "ByteVector"))
454+@Verifier(aX)
455+func aY () = {
456+ let aZ = {
457+ let L = T()
458+ if ($isInstanceOf(L, "ByteVector"))
495459 then {
496- let W = R
497- W
460+ let X = L
461+ X
498462 }
499- else if ($isInstanceOf(R, "Unit"))
500- then bb.senderPublicKey
463+ else if ($isInstanceOf(L, "Unit"))
464+ then aX.senderPublicKey
501465 else throw("Match error")
502466 }
503- sigVerify(bb.bodyBytes, bb.proofs[0], bd)
467+ sigVerify(aX.bodyBytes, aX.proofs[0], aZ)
504468 }
505469

github/deemru/w8io/169f3d6 
139.63 ms