tx · E1UXDS5fsEjMasUfBUjQ6KVFsnLR3ei2P2FNT2JjFuqh

3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr:  -0.02300000 Waves

2023.09.07 10:50 [2744682] smart account 3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr > SELF 0.00000000 Waves

{ "type": 13, "id": "E1UXDS5fsEjMasUfBUjQ6KVFsnLR3ei2P2FNT2JjFuqh", "fee": 2300000, "feeAssetId": null, "timestamp": 1694073122954, "version": 2, "chainId": 84, "sender": "3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr", "senderPublicKey": "GFbasS3jufhZkK4xR7tdTjjnP8K33KvJFEDHRtxXDkaJ", "proofs": [ "XvWzPRa7XhjH8DfAibSq2BZHw7n6VwGYq7H2JVK71tYSC8esQkRifZdh7aoDnN8gKJ5uGBKV4PLmzDsC7pwKeQK" ], "script": "base64:BgKEFwgCEgQKAggBEgcKBQgICAgBEgQKAggIEgUKAwgIARIECgIICBIDCgEBEgMKAQESBAoCCAgSBAoCCAQSABIDCgEBEgASBAoCCAgSBAoCCAgSBAoCCAgSABIECgIICCIJc2VwYXJhdG9yIg5wb29sV2VpZ2h0TXVsdCIPbWF4RGVwdGhEZWZhdWx0IhZmaW5hbGl6YXRpb25TdGFnZVRvdGFsIhdmaW5hbGl6YXRpb25TdGFnZVNoYXJlcyIOa2V5RXBvY2hMZW5ndGgiEWtleUVwb2NoTGVuZ3RoTmV3IhVrZXlFcG9jaExlbmd0aEJ5RXBvY2giBWVwb2NoIg9rZXlDdXJyZW50RXBvY2giC2tleU1heERlcHRoIiJrZXlWb3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0Ih1rZXlWb3RpbmdFbWlzc2lvblJhdGVDb250cmFjdCISa2V5RmFjdG9yeUNvbnRyYWN0IhNrZXlCb29zdGluZ0NvbnRyYWN0IhJrZXlTdGFraW5nQ29udHJhY3QiFGtleUZpbmFsaXphdGlvblN0YWdlIgtrZXlOZXh0UG9vbCILa2V5TmV4dFVzZXIiDmtleVN0YXJ0SGVpZ2h0IhFrZXlDdXJyZW50RXBvY2hVaSIQa2V5U3RhcnRIZWlnaHRVaSIda2V5RmluYWxpemF0aW9uU2hvdWxkQmVGb3JjZWQiFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaCIMa2V5RmluYWxpemVkIglrZXlJbkxpc3QiBHBvb2wiCyR0MDE3ODgxODI4Ig1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiB2tleVVzZWQiB2FkZHJlc3MiB2tleVZvdGUiCyR0MDIxMDIyMTQyIg9rZXlWb3RpbmdSZXN1bHQiCyR0MDIzMjQyMzY0IhVrZXlWb3RpbmdSZXN1bHRTdGFrZWQiDGxwQXNzZXRJZFN0ciIMa2V5UG9vbFNoYXJlIgskdDAyNjg1MjcyNSINa2V5VG90YWxWb3RlcyIPa2V5U3Rha2VkQnlVc2VyIg51c2VyQWRkcmVzc1N0ciIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIOZ2V0VmFsdWVPckZhaWwiA2tleSIEdHlwZSIFZXJyb3IiByRtYXRjaDAiA3N0ciIDaW50IgxnZXRTdHJPckZhaWwiAUAiDGdldEludE9yRmFpbCIMcG9vbFRvU3RyaW5nIgxzdHJpbmdUb1Bvb2wiBXBhcnRzIg9mYWN0b3J5Q29udHJhY3QiGklkeEZhY3RvcnlDZmdHd3hSZXdhcmREYXBwIg1rZXlGYWN0b3J5Q2ZnIhRyZWFkRmFjdG9yeUNmZ09yRmFpbCIHZmFjdG9yeSIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIWZ2V0THBBc3NldEJ5UG9vbEFzc2V0cyIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIilrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcyIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyIhdpbnRlcm5hbFByaWNlQXNzZXRJZFN0ciIfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldCITcG9vbENvbnRyYWN0QWRkcmVzcyIVYW1vdW50QXNzZXRJbnRlcm5hbElkIhRwcmljZUFzc2V0SW50ZXJuYWxJZCIJbHBBc3NldElkIhhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwiCyR0MDU1NjU1NjA1IhBnd3hSZXdhcmREZXBvc2l0IhJnd3hSZXdhcmRzQ29udHJhY3QiDXBvb2xzTGlzdE5hbWUiEGdldFZvdGVzTGlzdE5hbWUiCyR0MDYwMjI2MDYyIgtrZXlMaXN0SGVhZCIIbGlzdE5hbWUiBG1ldGEiC2tleUxpc3RTaXplIgtrZXlMaXN0UHJldiICaWQiC2tleUxpc3ROZXh0Igxjb250YWluc05vZGUiCmhlYWRPclVuaXQiCnByZXZPclVuaXQiCm5leHRPclVuaXQiEWluc2VydE5vZGVBY3Rpb25zIghsaXN0U2l6ZSIJY2hlY2tOb2RlIhFkZWxldGVOb2RlQWN0aW9ucyIWa2V5TWFuYWdlclZhdWx0QWRkcmVzcyITa2V5TWFuYWdlclB1YmxpY0tleSIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIBcyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyIJaXNNYW5hZ2VyIgFpIgJwayILbXVzdE1hbmFnZXIiCG11c3RUaGlzIgt1c2VyQWRkcmVzcyIMdGFyZ2V0SGVpZ2h0Ihdib29zdGluZ0NvbnRyYWN0QWRkcmVzcyIfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdCIQYm9vc3RpbmdDb250cmFjdCIPc3Rha2luZ0NvbnRyYWN0IgtlcG9jaExlbmd0aCIGY2hlY2tzIg1pbkxpc3RBY3Rpb25zIhhjdXJyZW50RXBvY2hJc05vdERlZmluZWQiEnN0YXJ0SGVpZ2h0QWN0aW9ucyIGYW1vdW50IgtzdGFydEhlaWdodCIJZW5kSGVpZ2h0IhdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdCIEdXNlZCIEdm90ZSIKcG9vbFJlc3VsdCIKdG90YWxWb3RlcyITZ3d4QW1vdW50QXRFbmRUb3RhbCIJYXZhaWxhYmxlIgduZXdWb3RlIgp3eEVtaXNzaW9uIg12b3Rlc0xpc3ROYW1lIhB2b3Rlc0xpc3RBY3Rpb25zIg5uZXdFcG9jaExlbmd0aCILbmV3TWF4RGVwdGgiB3Bvb2xTdHIiC2NoZWNrQ2FsbGVyIg1lcG9jaFByZXZpb3VzIhNzdGFydEhlaWdodFByZXZpb3VzIhNlcG9jaExlbmd0aFByZXZpb3VzIhFlbmRIZWlnaHRQcmV2aW91cyIQY2hlY2tUYXJnZXRFcG9jaCINJHQwMTgwNjUxODEwNSIbZ3d4QW1vdW50QXRFbmRUb3RhbFByZXZpb3VzIgx2b3RpbmdSZXN1bHQiDHZvdGVQcmV2aW91cyIadm90aW5nUmVzdWx0U3Rha2VkUHJldmlvdXMiDHN0YWtlZEJ5VXNlciIZdm90aW5nUmVzdWx0U3Rha2VkQWN0aW9ucyIHYWN0aW9ucyIFZm9yY2UiC3RhcmdldEVwb2NoIgxjdXJyZW50RXBvY2giDSR0MDIwNDYyMjA1MDIiAXIiBXNoYXJlIg9tb2RpZnlXZWlnaHRJbnYiEHBvb2xzTGlzdEFjdGlvbnMiDXByZXZpb3VzRXBvY2giCG5ld0Vwb2NoIhRuZXdFcG9jaExlbmd0aE9wdGlvbiIVbmV3RXBvY2hMZW5ndGhBY3Rpb25zIgpwb29sT3JVbml0Igp1c2VyT3JVbml0IgckbWF0Y2gxIgxwb29sc0hlYWRTdHIiDm5leHRVc2VyT3JVbml0IgR1c2VyIgRuZXh0Ig5wcm9jZXNzVm90ZUludiIObmV4dFBvb2xPclVuaXQiByRtYXRjaDIiCG5leHRVc2VyIhNnd3hSZXdhcmREZXBvc2l0SW52IgtuZXh0UG9vbFN0ciIHY291bnRlciIadm90aW5nRW1pc3Npb25SYXRlQ29udHJhY3QiBnJlc3VsdCIDaW52IghtYXhEZXB0aCIWZmluYWxpemF0aW9uSW5Qcm9ncmVzcyICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5PwABYQICX18AAWIAgMLXLwABYwAKAAFkAAAAAWUAAQABZgkAuQkCCQDMCAICAiVzCQDMCAICC2Vwb2NoTGVuZ3RoBQNuaWwFAWEAAWcJALkJAgkAzAgCAgQlcyVzCQDMCAICEGVwb2NoTGVuZ3RoX19uZXcFA25pbAUBYQEBaAEBaQkAuQkCCQDMCAICBCVzJWQJAMwIAgILZXBvY2hMZW5ndGgJAMwIAgkApAMBBQFpBQNuaWwFAWEAAWoJALkJAgkAzAgCAgIlcwkAzAgCAgxjdXJyZW50RXBvY2gFA25pbAUBYQABawkAuQkCCQDMCAICAiVzCQDMCAICCG1heERlcHRoBQNuaWwFAWEAAWwJALkJAgkAzAgCAgIlcwkAzAgCAh92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0BQNuaWwFAWEAAW0JALkJAgkAzAgCAgIlcwkAzAgCAhp2b3RpbmdFbWlzc2lvblJhdGVDb250cmFjdAUDbmlsBQFhAAFuCQC5CQIJAMwIAgICJXMJAMwIAgIPZmFjdG9yeUNvbnRyYWN0BQNuaWwFAWEAAW8JALkJAgkAzAgCAgIlcwkAzAgCAhBib29zdGluZ0NvbnRyYWN0BQNuaWwFAWEAAXAJALkJAgkAzAgCAgIlcwkAzAgCAg9zdGFraW5nQ29udHJhY3QFA25pbAUBYQABcQkAuQkCCQDMCAICAiVzCQDMCAICEWZpbmFsaXphdGlvblN0YWdlBQNuaWwFAWEAAXIJALkJAgkAzAgCAgIlcwkAzAgCAghuZXh0UG9vbAUDbmlsBQFhAAFzCQC5CQIJAMwIAgICJXMJAMwIAgIIbmV4dFVzZXIFA25pbAUBYQABdAkAuQkCCQDMCAICAiVzCQDMCAICC3N0YXJ0SGVpZ2h0BQNuaWwFAWEAAXUJALkJAgkAzAgCAgIlcwkAzAgCAg5jdXJyZW50RXBvY2hVaQUDbmlsBQFhAAF2CQC5CQIJAMwIAgICJXMJAMwIAgINc3RhcnRIZWlnaHRVaQUDbmlsBQFhAAF3CQC5CQIJAMwIAgICJXMJAMwIAgIFZm9yY2UFA25pbAUBYQEBeAEBaQkAuQkCCQDMCAICBCVzJWQJAMwIAgILc3RhcnRIZWlnaHQJAMwIAgkApAMBBQFpBQNuaWwFAWEBAXkBAWkJALkJAgkAzAgCAgQlcyVkCQDMCAICCWZpbmFsaXplZAkAzAgCCQCkAwEFAWkFA25pbAUBYQEBegEBQQQBQgUBQQQBQwgFAUICXzEEAUQIBQFCAl8yCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICBmluTGlzdAkAzAgCBQFDCQDMCAIFAUQFA25pbAUBYQEBRQIBRgFpCQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICBHVzZWQJAMwIAgkApQgBBQFGCQDMCAIJAKQDAQUBaQUDbmlsBQFhAQFHAwFBAUYBaQQBSAUBQQQBQwgFAUgCXzEEAUQIBQFIAl8yCQC5CQIJAMwIAgIKJXMlcyVzJXMlZAkAzAgCAgR2b3RlCQDMCAIFAUMJAMwIAgUBRAkAzAgCCQClCAEFAUYJAMwIAgkApAMBBQFpBQNuaWwFAWEBAUkCAUEBaQQBSgUBQQQBQwgFAUoCXzEEAUQIBQFKAl8yCQC5CQIJAMwIAgIIJXMlcyVzJWQJAMwIAgIMdm90aW5nUmVzdWx0CQDMCAIFAUMJAMwIAgUBRAkAzAgCCQCkAwEFAWkFA25pbAUBYQEBSwIBTAFpCQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICEnZvdGluZ1Jlc3VsdFN0YWtlZAkAzAgCBQFMCQDMCAIJAKQDAQUBaQUDbmlsBQFhAQFNAgFBAWkEAU4FAUEEAUMIBQFOAl8xBAFECAUBTgJfMgkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICCXBvb2xTaGFyZQkAzAgCBQFDCQDMCAIFAUQJAMwIAgkApAMBBQFpBQNuaWwFAWEBAU8BAWkJALkJAgkAzAgCAgQlcyVkCQDMCAICCnRvdGFsVm90ZXMJAMwIAgkApAMBBQFpBQNuaWwFAWEBAVACAUwBUQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZzdGFrZWQJAMwIAgUBUQkAzAgCBQFMBQNuaWwFAWEBAVIBAVMJALkJAgkAzAgCAhV2b3RpbmdfZW1pc3Npb24ucmlkZToJAMwIAgUBUwUDbmlsAgEgAQFUAQFTCQACAQkBAVIBBQFTAQFVAwFGAVYBVwQBWAkBAVIBCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAUYJAMwIAgIBLgkAzAgCBQFWCQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgQBWQUBVwMJAAECBQFZAgZTdHJpbmcEAVoFAVkJAJ0IAgUBRgUBVgMJAAECBQFZAgNJbnQEAmFhBQFZCQCaCAIFAUYFAVYJAQFUAQISaW52YWxpZCBlbnRyeSB0eXBlBQFYAQJhYgIBRgFWCgACYWMJAQFVAwUBRgUBVgIAAwkAAQIFAmFjAgZTdHJpbmcFAmFjCQACAQkArAICCQADAQUCYWMCGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwECYWQCAUYBVgoAAmFjCQEBVQMFAUYFAVYAAAMJAAECBQJhYwIDSW50BQJhYwkAAgEJAKwCAgkAAwEFAmFjAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBAmFlAQFBCQCsAgIJAKwCAggFAUECXzEFAWEIBQFBAl8yAQJhZgEBWgQCYWcJALUJAgUBWgUBYQMJAAACCQCQAwEFAmFnAAIJAJQKAgkAkQMCBQJhZwAACQCRAwIFAmFnAAEJAQFUAQITaW52YWxpZCBwb29sIHN0cmluZwACYWgJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhYgIFBHRoaXMFAW4AAmFpAAoBAmFqAAIRJXNfX2ZhY3RvcnlDb25maWcBAmFrAQJhbAkAtQkCCQECYWICBQJhbAkBAmFqAAUBYQECYW0BAmFuCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFuBQJhaQECYW8CAUMBRAoBAmFwAQJhcQkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQJhcQoBAmFyAgJhcwJhdAkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fCQCkAwEFAmFzAgJfXwkApAMBBQJhdAIjX19tYXBwaW5nc19fcG9vbEFzc2V0czJQb29sQ29udHJhY3QKAQJhdQECYXYJAKwCAgkArAICAgglcyVzJXNfXwUCYXYCIF9fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJMcEFzc2V0BAJhdwkBAmFkAgUCYWgJAQJhcAEFAUMEAmF4CQECYWQCBQJhaAkBAmFwAQUBRAQCYXYJAQJhYgIFAmFoCQECYXICBQJhdwUCYXgEAmF5CQECYWICBQJhaAkBAmF1AQUCYXYFAmF5AQJhegEBQQQCYUEFAUEEAUMIBQJhQQJfMQQBRAgFAmFBAl8yCgACYWMJAPwHBAUCYWgCGGNoZWNrV3hFbWlzc2lvblBvb2xMYWJlbAkAzAgCBQFDCQDMCAIFAUQFA25pbAUDbmlsAwkAAQIFAmFjAgdCb29sZWFuBQJhYwkAAgEJAKwCAgkAAwEFAmFjAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAQJhQgAEAmFuCQECYWsBBQJhaAQCYUMJAQJhbQEFAmFuCQD8BwQFAmFDAgdkZXBvc2l0BQNuaWwFA25pbAACYUQCBXBvb2xzAQJhRQEBQQQCYUYFAUEEAUMIBQJhRgJfMQQBRAgFAmFGAl8yCQC5CQIJAMwIAgIFdm90ZXMJAMwIAgUBQwkAzAgCBQFEBQNuaWwFAWEBAmFHAQJhSAQCYUkDCQAAAgUCYUgFAmFEAgQlcyVzAgglcyVzJXMlcwkAuQkCCQDMCAIFAmFJCQDMCAIFAmFICQDMCAICBGhlYWQFA25pbAUBYQECYUoBAmFIBAJhSQMJAAACBQJhSAUCYUQCBCVzJXMCCCVzJXMlcyVzCQC5CQIJAMwIAgUCYUkJAMwIAgUCYUgJAMwIAgIEc2l6ZQUDbmlsBQFhAQJhSwICYUgCYUwEAmFJAwkAAAIFAmFIBQJhRAIIJXMlcyVzJXMCCiVzJXMlcyVzJXMJALkJAgkAzAgCBQJhSQkAzAgCBQJhSAkAzAgCBQJhTAkAzAgCAgRwcmV2BQNuaWwFAWEBAmFNAgJhSAJhTAQCYUkDCQAAAgUCYUgFAmFEAgglcyVzJXMlcwIKJXMlcyVzJXMlcwkAuQkCCQDMCAIFAmFJCQDMCAIFAmFICQDMCAIFAmFMCQDMCAICBG5leHQFA25pbAUBYQECYU4CAmFIAmFMBAJhTwkAnQgCBQR0aGlzCQECYUcBBQJhSAQCYVAJAJ0IAgUEdGhpcwkBAmFLAgUCYUgFAmFMBAJhUQkAnQgCBQR0aGlzCQECYU0CBQJhSAUCYUwDAwkAAAIFAmFMCQELdmFsdWVPckVsc2UCBQJhTwIABgkBAiE9AgUCYVAFBHVuaXQGCQECIT0CBQJhUQUEdW5pdAECYVICAmFIAmFMBAJhTwkAnQgCBQR0aGlzCQECYUcBBQJhSAQCYVMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFKAQUCYUgAAAQCYVQDCQEBIQEJAQJhTgIFAmFIBQJhTAYJAQFUAQILTm9kZSBleGlzdHMDCQAAAgUCYVQFAmFUCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFKAQUCYUgJAGQCBQJhUwABBQNuaWwDCQECIT0CBQJhTwUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQECYU0CBQJhSAUCYUwJAQV2YWx1ZQEFAmFPCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhSwIFAmFICQEFdmFsdWUBBQJhTwUCYUwFA25pbAUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhRwEFAmFIBQJhTAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJhVQICYUgCYUwEAmFPCQCdCAIFBHRoaXMJAQJhRwEFAmFIBAJhUwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYUoBBQJhSAAABAJhUAkAnQgCBQR0aGlzCQECYUsCBQJhSAUCYUwEAmFRCQCdCAIFBHRoaXMJAQJhTQIFAmFIBQJhTAkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYUoBBQJhSAkAZQIFAmFTAAEFA25pbAMDCQECIT0CBQJhUAUEdW5pdAkBAiE9AgUCYVEFBHVuaXQHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhTQIFAmFICQEFdmFsdWUBBQJhUAkBBXZhbHVlAQUCYVEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFLAgUCYUgJAQV2YWx1ZQEFAmFRCQEFdmFsdWUBBQJhUAkAzAgCCQELRGVsZXRlRW50cnkBCQECYUsCBQJhSAUCYUwJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFNAgUCYUgFAmFMBQNuaWwDCQECIT0CBQJhUQUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQECYUcBBQJhSAkBBXZhbHVlAQUCYVEJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFNAgUCYUgFAmFMCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhSwIFAmFICQEFdmFsdWUBBQJhUQUDbmlsAwkBAiE9AgUCYVAFBHVuaXQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFLAgUCYUgFAmFMCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhTQIFAmFICQEFdmFsdWUBBQJhUAUDbmlsAwkAAAIFAmFMCQELdmFsdWVPckVsc2UCBQJhTwIACQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRwEFAmFIBQNuaWwJAQFUAQkArAICCQCsAgIJAKwCAgIOaW52YWxpZCBub2RlOiAFAmFIAgEuBQJhTAECYVYAAhclc19fbWFuYWdlclZhdWx0QWRkcmVzcwECYVcAAhQlc19fbWFuYWdlclB1YmxpY0tleQECYVgABAFZCQCiCAEJAQJhVgADCQABAgUBWQIGU3RyaW5nBAJhWQUBWQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYVkFBHRoaXMBAmFaAAQCYmEJAQJhWAAEAVkJAJ0IAgUCYmEJAQJhVwADCQABAgUBWQIGU3RyaW5nBAJhWQUBWQkA2QQBBQJhWQMJAAECBQFZAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmJiAQJiYwQBWQkBAmFaAAMJAAECBQFZAgpCeXRlVmVjdG9yBAJiZAUBWQkAAAIIBQJiYw9jYWxsZXJQdWJsaWNLZXkFAmJkAwkAAQIFAVkCBFVuaXQJAAACCAUCYmMGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAmJlAQJiYwMJAQJiYgEFAmJjBgkAAgECEXBlcm1pc3Npb24gZGVuaWVkAQJiZgECYmMDCQAAAggFAmJjBmNhbGxlcgUEdGhpcwYJAAIBAhFwZXJtaXNzaW9uIGRlbmllZBECYmMBGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAICYmcCYmgEAmJpCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBAmFiAgUEdGhpcwUBbwkBAVIBAiFpbnZhbGlkIGJvb3N0aW5nIGNvbnRyYWN0IGFkZHJlc3MJAJQKAgUDbmlsCgACYWMJAPwHBAUCYmkCIGdldFVzZXJHd3hBbW91bnRBdEhlaWdodFJFQURPTkxZCQDMCAIFAmJnCQDMCAIFAmJoBQNuaWwFA25pbAMJAAECBQJhYwIDSW50BQJhYwkAAgEJAKwCAgkAAwEFAmFjAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQCYmMBC2NvbnN0cnVjdG9yBQJhaAJiagJiawJibAJibQQCYm4JAMwIAgkBAmJlAQUCYmMJAMwIAgMJAQIhPQIJAKYIAQUCYWgFBHVuaXQGAiBpbnZhbGlkIGZhY3RvcnkgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBQJiagUEdW5pdAYCMmludmFsaWQgdm90aW5nIGVtaXNzaW9uIGNhbmRpZGF0ZSBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQECIT0CCQCmCAEFAmJrBQR1bml0BgIhaW52YWxpZCBib29zdGluZyBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQECIT0CCQCmCAEFAmJsBQR1bml0BgIgaW52YWxpZCBzdGFraW5nIGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAGYCBQJibQAABgkBAVQBAhRpbnZhbGlkIGVwb2NoIGxlbmd0aAUDbmlsAwkAAAIFAmJuBQJibgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAW4FAmFoCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWwFAmJqCQDMCAIJAQtTdHJpbmdFbnRyeQIFAW8FAmJrCQDMCAIJAQtTdHJpbmdFbnRyeQIFAXAFAmJsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFmBQJibQUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjAQZjcmVhdGUCAUMBRAQCYm4JAMwIAgMJAAACCQDYBAEICAUCYmMGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAWwCAAYJAQJiZQEFAmJjBQNuaWwDCQAAAgUCYm4FAmJuBAFBCQCUCgIFAUMFAUQEAmJvCQDOCAIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQF6AQUBQQYFA25pbAkBAmFSAgUCYUQJAQJhZQEFAUEEAmJwCQAAAgkAmggCBQR0aGlzBQFqBQR1bml0BAJicQMFAmJwBAFpAAAJAMwIAgkBDEludGVnZXJFbnRyeQIFAWoFAWkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQF4AQUBaQUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFAXUFAWkJAMwIAgkBDEludGVnZXJFbnRyeQIFAXYFBmhlaWdodAUDbmlsBQNuaWwJAJQKAgkAzggCBQJibwUCYnEFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmMBBHZvdGUDAUMBRAJicgQBQQkAlAoCBQFDBQFEBAFpCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAWoAAAQCYnMJAQJhZAIFBHRoaXMJAQF4AQUBaQQCYm0JAQJhZAIFBHRoaXMFAWYEAmJ0CQBkAgUCYnMFAmJtBAJidQkAmggCBQR0aGlzBQFxBAJidgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBRQIIBQJiYwZjYWxsZXIFAWkAAAQCYncJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAUcDBQFBCAUCYmMGY2FsbGVyBQFpAAAEAmJ4CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFJAgUBQQUBaQAABAJieQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBTwEFAWkAAAQCYnoKAAJhYwkA/AcEBQR0aGlzAhhnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHQJAMwIAgkA2AQBCAgFAmJjBmNhbGxlcgVieXRlcwkAzAgCBQJidAUDbmlsBQNuaWwDCQABAgUCYWMCA0ludAUCYWMJAAIBCQCsAgIJAAMBBQJhYwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJiQQkAZQIFAmJ6BQJidgQCYkIJAGQCBQJidwUCYnIEAmJDCQECYXoBBQFBBAJibgkAzAgCAwkBAiE9AgkAoAgBCQEBegEFAUEFBHVuaXQGCQEBVAECDmludmFsaWQgYXNzZXRzCQDMCAIDCQBmAgUCYnQFBmhlaWdodAYJAQFUAQIOaW52YWxpZCBoZWlnaHQJAMwIAgMJAAACBQJidQUEdW5pdAYJAQFUAQIYZmluYWxpemF0aW9uIGluIHByb2dyZXNzCQDMCAIDCQBmAgUCYnoAAAYJAQFUAQITeW91IGRvIG5vdCBoYXZlIGdXWAkAzAgCAwMJAGYCBQJicgAACQBnAgUCYkEFAmJyBwYJAQFUAQIOaW52YWxpZCBhbW91bnQJAMwIAgMFAmJDBgkBAVQBAh1wb29sIGhhc24ndCBXWF9FTUlTU0lPTiBsYWJlbAUDbmlsAwkAAAIFAmJuBQJibgQCYkQJAQJhRQEFAUEEAVEJAKUIAQgFAmJjBmNhbGxlcgQCYkUDCQECYU4CBQJiRAUBUQUDbmlsCQECYVICBQJiRAUBUQkAlAoCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFFAggFAmJjBmNhbGxlcgUBaQkAZAIFAmJ2BQJicgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUcDBQFBCAUCYmMGY2FsbGVyBQFpBQJiQgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUkCBQFBBQFpCQBkAgUCYngFAmJyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBTwEFAWkJAGQCBQJieQUCYnIFA25pbAUCYkUFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmMBCmNhbmNlbFZvdGUCAUMBRAQBQQkAlAoCBQFDBQFEBAFpCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAWoAAAQCYnMJAQJhZAIFBHRoaXMJAQF4AQUBaQQCYm0JAQJhZAIFBHRoaXMFAWYEAmJ0CQBkAgUCYnMFAmJtBAJidQkAmggCBQR0aGlzBQFxBAJidgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBRQIIBQJiYwZjYWxsZXIFAWkAAAQCYncJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAUcDBQFBCAUCYmMGY2FsbGVyBQFpAAAEAmJ4CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFJAgUBQQUBaQAABAJieQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBTwEFAWkAAAQCYm4JAMwIAgMJAQIhPQIJAKAIAQkBAXoBBQFBBQR1bml0BgkBAVQBAg5pbnZhbGlkIGFzc2V0cwkAzAgCAwkAZgIFAmJ0BQZoZWlnaHQGCQEBVAECDmludmFsaWQgaGVpZ2h0CQDMCAIDCQAAAgUCYnUFBHVuaXQGCQEBVAECGGZpbmFsaXphdGlvbiBpbiBwcm9ncmVzcwkAzAgCAwkAZgIFAmJ3AAAGCQEBVAECB25vIHZvdGUFA25pbAMJAAACBQJibgUCYm4EAmJECQECYUUBBQFBBAFRCQClCAEIBQJiYwZjYWxsZXIJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBRQIIBQJiYwZjYWxsZXIFAWkJAJYDAQkAzAgCCQBlAgUCYnYFAmJ3CQDMCAIAAAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFHAwUBQQgFAmJjBmNhbGxlcgUBaQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUkCBQFBBQFpCQBlAgUCYngFAmJ3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBTwEFAWkJAGUCBQJieQUCYncFA25pbAkBAmFVAgUCYkQFAVEFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmMBDnNldEVwb2NoTGVuZ3RoAQJiRgQCYm4JAMwIAgkBAmJlAQUCYmMJAMwIAgMJAGYCBQJiRgAABgkBAVQBAhRpbnZhbGlkIGVwb2NoIGxlbmd0aAUDbmlsAwkAAAIFAmJuBQJibgkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFnBQJiRgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjAQtzZXRNYXhEZXB0aAECYkcEAmJuCQDMCAIJAQJiZQEFAmJjCQDMCAIDCQBmAgUCYkcAAAYJAQFUAQIRaW52YWxpZCBtYXggZGVwdGgFA25pbAMJAAACBQJibgUCYm4JAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBawUCYkcFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiYwETcHJvY2Vzc1ZvdGVJTlRFUk5BTAICYkgBUQQCYkkJAQJiZgEFAmJjAwkAAAIFAmJJBQJiSQQCYmcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQFRCQEBUgEJAKwCAgIqcHJvY2Vzc1ZvdGVJTlRFUk5BTDogaW52YWxpZCB1c2VyIGFkZHJlc3MgBQFRBAFpCQECYWQCBQR0aGlzBQFqBAJiSgkAZQIFAWkAAQQCYm0JAQJhZAIFBHRoaXMFAWYEAmJzCQECYWQCBQR0aGlzCQEBeAEFAWkEAmJ0CQBkAgUCYnMFAmJtBAJiSwkBAmFkAgUEdGhpcwkBAXgBBQJiSgQCYkwJAQJhZAIFBHRoaXMJAQFoAQUCYkoEAmJNCQBkAgUCYksFAmJMBAJiTgMJAGcCBQJiSgAABgkBAVQBAitwcm9jZXNzVm90ZUlOVEVSTkFMOiBpbnZhbGlkIHByZXZpb3VzIGVwb2NoAwkAAAIFAmJOBQJiTgQBQQkBAmFmAQUCYkgEAmJPBQFBBAFDCAUCYk8CXzEEAUQIBQJiTwJfMgQCYkMJAQJhegEFAUEEAmJ6CgACYWMJAPwHBAUEdGhpcwIYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0CQDMCAIFAVEJAMwIAgUCYnQFA25pbAUDbmlsAwkAAQIFAmFjAgNJbnQFAmFjCQACAQkArAICCQADAQUCYWMCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCYlAKAAJhYwkA/AcEBQR0aGlzAhhnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHQJAMwIAgUBUQkAzAgCBQJiTQUDbmlsBQNuaWwDCQABAgUCYWMCA0ludAUCYWMJAAIBCQCsAgIJAAMBBQJhYwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJieQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBTwEFAWkAAAQCYlEJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAUkCBQFBBQFpAAAEAmJSCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQkBAUcDBQFBBQJiZwUCYkoJAQFSAQkArAICCQCsAgIJAKwCAgkArAICAhRwcm9jZXNzVm90ZUlOVEVSTkFMIAUCYkgCASAFAVECEjogbm8gcHJldmlvdXMgdm90ZQQCYnYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAUUCBQJiZwUBaQAABAFMCQECYW8CBQFDBQFEBAJiUwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBSwIFAUwFAmJKAAAEAmJsCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYWICBQR0aGlzBQFwBAJiVAkBC3ZhbHVlT3JFbHNlAgkAmggCBQJibAkBAVACBQFMBQFRAAAEAmJVAwkAAAIFAmJUAAAFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUsCBQFMBQJiSgkAZAIFAmJTBQJiUgUDbmlsBAJiQgMJAGYCBQJiUAAACQBrAwUCYlIFAmJ6BQJiUAAABAJiVgMDCQBmAgUCYkIAAAUCYkMHCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBRwMFAUEFAmJnBQFpBQJiQgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAU8BBQFpCQBkAgUCYnkFAmJCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBSQIFAUEFAWkJAGQCBQJiUQUCYkIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFFAgUCYmcFAWkJAGQCBQJidgUCYkIFA25pbAkBAmFVAgkBAmFFAQUBQQUBUQkAlAoCCQDOCAIFAmJWBQJiVQUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiYwETcHJvY2Vzc1Bvb2xJTlRFUk5BTAICYkgCYlcEAmJJCQECYmYBBQJiYwMJAAACBQJiSQUCYkkEAmJYBAJiWQkBAmFkAgUEdGhpcwUBagMFAmJXBQJiWQkAZQIFAmJZAAEEAmJOAwkAZwIFAmJYAAAGCQEBVAECKXByb2Nlc3NQb29sSU5URVJOQUw6IGludmFsaWQgdGFyZ2V0IGVwb2NoAwkAAAIFAmJOBQJiTgQBQQkBAmFmAQUCYkgEAmJaBQFBBAFDCAUCYloCXzEEAUQIBQJiWgJfMgQCYmwJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhYgIFBHRoaXMFAXAEAmF5CQECYW8CBQFDBQFEBAJjYQoAAmFjCQD8BwQFAmJsAhJ1c2Vyc0xpc3RUcmF2ZXJzYWwJAMwIAgUCYXkFA25pbAUDbmlsAwkAAQIFAmFjAgdCb29sZWFuBQJhYwkAAgEJAKwCAgkAAwEFAmFjAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAwkAAAIFAmNhBQJjYQMFAmNhCQCUCgIFA25pbAYEAmJDCQECYXoBBQFBBAJieQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBTwEFAmJYAAAEAmJRCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFJAgUBQQUCYlgAAAQCY2IDAwkAAAIFAmJ5AAAGCQEBIQEFAmJDAAAJAGsDBQJiUQUBYgUCYnkEAmNjCQD8BwQFAmFoAgxtb2RpZnlXZWlnaHQJAMwIAgUCYXkJAMwIAgUCY2IFA25pbAUDbmlsAwkAAAIFAmNjBQJjYwQCY2QDAwUCYkMGBQJiVwUDbmlsCQDOCAIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAXoBBQFBBQNuaWwJAQJhVQIFAmFEBQJiSAkAlAoCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFNAgUBQQUCYlgFAmNiBQNuaWwFAmNkBwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiYwEOZmluYWxpemVIZWxwZXIABAJiVwkBC3ZhbHVlT3JFbHNlAgkAoAgBBQF3BwQBaQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFqAAAEAmNlCQBlAgUBaQABBAJicwkBAmFkAgUEdGhpcwkBAXgBBQFpBAJibQkBAmFkAgUEdGhpcwUBZgQCYnQJAGQCBQJicwUCYm0EAmJ1CQCaCAIFBHRoaXMFAXEDAwMJAGcCBQZoZWlnaHQFAmJ0CQAAAgUCYnUFBHVuaXQHCQEBIQEFAmJXBwQCY2YJAGQCBQFpAAEEAmNnCQCaCAIFBHRoaXMFAWcEAmNoBAFZBQJjZwMJAAECBQFZAgNJbnQEAmJGBQFZCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFmBQJiRgkAzAgCCQELRGVsZXRlRW50cnkBBQFnBQNuaWwDCQABAgUBWQIEVW5pdAUDbmlsCQACAQILTWF0Y2ggZXJyb3IJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBeAEFAmNmBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFAXQFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBagUCY2YJAMwIAgkBDEludGVnZXJFbnRyeQIFAXEFAWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFoAQUBaQUCYm0FA25pbAUCY2gGAwMFAmJXCQAAAgUCYnUFBHVuaXQHCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAXEFAWUFA25pbAYDCQAAAgUCYnUFBHVuaXQJAJQKAgUDbmlsBwMJAAACBQJidQUBZAQCY2kJAKIIAQUBcgQCY2oJAKIIAQUBcwQBWQUCY2kDCQABAgUBWQIEVW5pdAQCY2sJAKIIAQkBAmFHAQUCYUQDCQABAgUCY2sCBFVuaXQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBcQUBZQkAzAgCCQELRGVsZXRlRW50cnkBBQFyCQDMCAIJAQtEZWxldGVFbnRyeQEFAXMFA25pbAYDCQABAgUCY2sCBlN0cmluZwQCY2wFAmNrCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBcgUCY2wFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQFZAgZTdHJpbmcEAmJIBQFZBAFBCQECYWYBBQJiSAQCY20EAmNrBQJjagMJAAECBQJjawIEVW5pdAkAoggBCQECYUcBCQECYUUBBQFBAwkAAQIFAmNrAgZTdHJpbmcEAmNuBQJjawQCY28JAKIIAQkBAmFNAgkBAmFFAQUBQQUCY24DCQAAAgUCY28FAmNvBAJjcAkA/AcEBQR0aGlzAhNwcm9jZXNzVm90ZUlOVEVSTkFMCQDMCAIFAmJICQDMCAIFAmNuBQNuaWwFA25pbAMJAAACBQJjcAUCY3AFAmNvCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQILTWF0Y2ggZXJyb3IEAmNrBQJjbQMJAAECBQJjawIEVW5pdAQCY3EJAKIIAQkBAmFNAgUCYUQFAmJIBAJjcgUCY3EDCQABAgUCY3ICBFVuaXQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBcQUBZQkAzAgCCQELRGVsZXRlRW50cnkBBQFyCQDMCAIJAQtEZWxldGVFbnRyeQEFAXMFA25pbAYDCQABAgUCY3ICBlN0cmluZwQCYVkFAmNyCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBcgUCYVkJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBcwUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFAmNrAgZTdHJpbmcEAmNzBQJjawkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAXMFAmNzBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IJAAIBAgtNYXRjaCBlcnJvcgMJAAACBQJidQUBZQQCY2kJAKIIAQUBcgQBWQUCY2kDCQABAgUBWQIEVW5pdAQCY2sJAKIIAQkBAmFHAQUCYUQDCQABAgUCY2sCBFVuaXQEAmJWAwUCYlcJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBcQkAzAgCCQELRGVsZXRlRW50cnkBBQF3BQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBcQkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBAXkBBQJjZQYJAMwIAgkBDEludGVnZXJFbnRyeQIFAXUFAWkJAMwIAgkBDEludGVnZXJFbnRyeQIFAXYFAmJzBQNuaWwEAmN0CQECYUIAAwkAAAIFAmN0BQJjdAkAlAoCBQJiVgYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQABAgUCY2sCBlN0cmluZwQCY3UFAmNrCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBcgUCY3UFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQFZAgZTdHJpbmcEAmJIBQFZBAJjcQkAoggBCQECYU0CBQJhRAUCYkgDCQAAAgUCY3EFAmNxBAJjYQoAAmFjCQD8BwQFBHRoaXMCE3Byb2Nlc3NQb29sSU5URVJOQUwJAMwIAgUCYkgJAMwIAgUCYlcFA25pbAUDbmlsAwkAAQIFAmFjAgdCb29sZWFuBQJhYwkAAgEJAKwCAgkAAwEFAmFjAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAwkAAAIFAmNhBQJjYQMFAmNhCQCUCgIFA25pbAYEAmNrBQJjcQMJAAECBQJjawIEVW5pdAQCYlYDBQJiVwkAzAgCCQELRGVsZXRlRW50cnkBBQFxCQDMCAIJAQtEZWxldGVFbnRyeQEFAXcJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBcgUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEFAXEJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQF5AQUCY2UGCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF1BQFpCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF2BQJicwkAzAgCCQELRGVsZXRlRW50cnkBBQFyBQNuaWwEAmN0CQECYUIAAwkAAAIFAmN0BQJjdAkAlAoCBQJiVgYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQABAgUCY2sCBlN0cmluZwQCY3UFAmNrCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBcgUCY3UFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC01hdGNoIGVycm9yCQEBVAECFmZpbmFsaXphdGlvbiBpcyBicm9rZW4CYmMBD2ZpbmFsaXplV3JhcHBlcgECY3YEAmN3CQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBQFtBAJjeAoAAmFjCQD8BwQFBHRoaXMCDmZpbmFsaXplSGVscGVyBQNuaWwFA25pbAMJAAECBQJhYwIHQm9vbGVhbgUCYWMJAAIBCQCsAgIJAAMBBQJhYwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgMJAAACBQJjeAUCY3gDCQEBIQEFAmN4AwkAAAIFAmN2AAAJAQFUAQIeQ3VycmVudCB2b3RpbmcgaXMgbm90IG92ZXIgeWV0BAJjeQkA/AcEBQJjdwIIZmluYWxpemUFA25pbAUDbmlsAwkAAAIFAmN5BQJjeQkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmN6CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAWsFAWMDCQBmAgUCY3oFAmN2BAJjeQkA/AcEBQR0aGlzAg9maW5hbGl6ZVdyYXBwZXIJAMwIAgkAZAIFAmN2AAEFA25pbAUDbmlsAwkAAAIFAmN5BQJjeQkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjAQhmaW5hbGl6ZQAEAmN5CQD8BwQFBHRoaXMCD2ZpbmFsaXplV3JhcHBlcgkAzAgCAAAFA25pbAUDbmlsAwkAAAIFAmN5BQJjeQkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmMBFGNvbnRhaW5zTm9kZVJFQURPTkxZAgJhSAJhTAkAlAoCBQNuaWwJAQJhTgIFAmFIBQJhTAJiYwEKaW5zZXJ0Tm9kZQICYUgCYUwEAmJJCQECYmUBBQJiYwMJAAACBQJiSQUCYkkJAJQKAgkBAmFSAgUCYUgFAmFMBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjAQpkZWxldGVOb2RlAgJhSAJhTAQCYkkJAQJiZQEFAmJjAwkAAAIFAmJJBQJiSQkAlAoCCQECYVUCBQJhSAUCYUwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmMBGGlzRmluYWxpemF0aW9uSW5Qcm9ncmVzcwAEAmJ1CQCaCAIFBHRoaXMFAXEEAmNBCQECIT0CBQJidQUEdW5pdAkAlAoCBQNuaWwFAmNBAmJjAQpkZWxldGVQb29sAgFDAUQEAmJJAwMJAAACCAUCYmMGY2FsbGVyBQJhaAYJAQJiZQEFAmJjBgkBAVQBAhFQZXJtaXNzaW9uIGRlbmllZAMJAAACBQJiSQUCYkkEAmFIAgVwb29scwQBQQkAlAoCBQFDBQFEBAJhTAkAuQkCCQDMCAIFAUMJAMwIAgUBRAUDbmlsBQFhBAJiVgMJAQJhTgIFAmFIBQJhTAkBAmFVAgUCYUgFAmFMBQNuaWwJAM4IAgkAzAgCCQELRGVsZXRlRW50cnkBCQEBegEFAUEFA25pbAUCYlYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmNCAQJjQwAEAmNEBAFZCQECYVoAAwkAAQIFAVkCCkJ5dGVWZWN0b3IEAmJkBQFZBQJiZAMJAAECBQFZAgRVbml0CAUCY0IPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmNCCWJvZHlCeXRlcwkAkQMCCAUCY0IGcHJvb2ZzAAAFAmNEebn+Cw==", "height": 2744682, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DTuYfjDy1KPGyDeNqgrLo3sfyUBECphu2Dyu3hMwZQ5A Next: 6qBFadnFQ5qUzzraGbXFMkseSEujpAasVYF8jLtqTto1 Diff:
OldNewDifferences
187187 }
188188
189189
190-let aB = "pools"
190+func aB () = {
191+ let an = ak(ah)
192+ let aC = am(an)
193+ invoke(aC, "deposit", nil, nil)
194+ }
191195
192-func aC (A) = {
193- let aD = A
194- let C = aD._1
195- let D = aD._2
196+
197+let aD = "pools"
198+
199+func aE (A) = {
200+ let aF = A
201+ let C = aF._1
202+ let D = aF._2
196203 makeString(["votes", C, D], a)
197204 }
198205
199206
200-func aE (aF) = {
201- let aG = if ((aF == aB))
207+func aG (aH) = {
208+ let aI = if ((aH == aD))
202209 then "%s%s"
203210 else "%s%s%s%s"
204- makeString([aG, aF, "head"], a)
211+ makeString([aI, aH, "head"], a)
205212 }
206213
207214
208-func aH (aF) = {
209- let aG = if ((aF == aB))
215+func aJ (aH) = {
216+ let aI = if ((aH == aD))
210217 then "%s%s"
211218 else "%s%s%s%s"
212- makeString([aG, aF, "size"], a)
219+ makeString([aI, aH, "size"], a)
213220 }
214221
215222
216-func aI (aF,aJ) = {
217- let aG = if ((aF == aB))
223+func aK (aH,aL) = {
224+ let aI = if ((aH == aD))
218225 then "%s%s%s%s"
219226 else "%s%s%s%s%s"
220- makeString([aG, aF, aJ, "prev"], a)
227+ makeString([aI, aH, aL, "prev"], a)
221228 }
222229
223230
224-func aK (aF,aJ) = {
225- let aG = if ((aF == aB))
231+func aM (aH,aL) = {
232+ let aI = if ((aH == aD))
226233 then "%s%s%s%s"
227234 else "%s%s%s%s%s"
228- makeString([aG, aF, aJ, "next"], a)
235+ makeString([aI, aH, aL, "next"], a)
229236 }
230237
231238
232-func aL (aF,aJ) = {
233- let aM = getString(this, aE(aF))
234- let aN = getString(this, aI(aF, aJ))
235- let aO = getString(this, aK(aF, aJ))
236- if (if ((aJ == valueOrElse(aM, "")))
239+func aN (aH,aL) = {
240+ let aO = getString(this, aG(aH))
241+ let aP = getString(this, aK(aH, aL))
242+ let aQ = getString(this, aM(aH, aL))
243+ if (if ((aL == valueOrElse(aO, "")))
237244 then true
238- else (aN != unit))
245+ else (aP != unit))
239246 then true
240- else (aO != unit)
247+ else (aQ != unit)
241248 }
242249
243250
244-func aP (aF,aJ) = {
245- let aM = getString(this, aE(aF))
246- let aQ = valueOrElse(getInteger(this, aH(aF)), 0)
247- let aR = if (!(aL(aF, aJ)))
251+func aR (aH,aL) = {
252+ let aO = getString(this, aG(aH))
253+ let aS = valueOrElse(getInteger(this, aJ(aH)), 0)
254+ let aT = if (!(aN(aH, aL)))
248255 then true
249256 else T("Node exists")
250- if ((aR == aR))
251- then (([IntegerEntry(aH(aF), (aQ + 1))] ++ (if ((aM != unit))
252- then [StringEntry(aK(aF, aJ), value(aM)), StringEntry(aI(aF, value(aM)), aJ)]
253- else nil)) ++ [StringEntry(aE(aF), aJ)])
257+ if ((aT == aT))
258+ then (([IntegerEntry(aJ(aH), (aS + 1))] ++ (if ((aO != unit))
259+ then [StringEntry(aM(aH, aL), value(aO)), StringEntry(aK(aH, value(aO)), aL)]
260+ else nil)) ++ [StringEntry(aG(aH), aL)])
254261 else throw("Strict value is not equal to itself.")
255262 }
256263
257264
258-func aS (aF,aJ) = {
259- let aM = getString(this, aE(aF))
260- let aQ = valueOrElse(getInteger(this, aH(aF)), 0)
261- let aN = getString(this, aI(aF, aJ))
262- let aO = getString(this, aK(aF, aJ))
263- ([IntegerEntry(aH(aF), (aQ - 1))] ++ (if (if ((aN != unit))
264- then (aO != unit)
265+func aU (aH,aL) = {
266+ let aO = getString(this, aG(aH))
267+ let aS = valueOrElse(getInteger(this, aJ(aH)), 0)
268+ let aP = getString(this, aK(aH, aL))
269+ let aQ = getString(this, aM(aH, aL))
270+ ([IntegerEntry(aJ(aH), (aS - 1))] ++ (if (if ((aP != unit))
271+ then (aQ != unit)
265272 else false)
266- then [StringEntry(aK(aF, value(aN)), value(aO)), StringEntry(aI(aF, value(aO)), value(aN)), DeleteEntry(aI(aF, aJ)), DeleteEntry(aK(aF, aJ))]
267- else if ((aO != unit))
268- then [StringEntry(aE(aF), value(aO)), DeleteEntry(aK(aF, aJ)), DeleteEntry(aI(aF, value(aO)))]
269- else if ((aN != unit))
270- then [DeleteEntry(aI(aF, aJ)), DeleteEntry(aK(aF, value(aN)))]
271- else if ((aJ == valueOrElse(aM, "")))
272- then [DeleteEntry(aE(aF))]
273- else T(((("invalid node: " + aF) + ".") + aJ))))
273+ then [StringEntry(aM(aH, value(aP)), value(aQ)), StringEntry(aK(aH, value(aQ)), value(aP)), DeleteEntry(aK(aH, aL)), DeleteEntry(aM(aH, aL))]
274+ else if ((aQ != unit))
275+ then [StringEntry(aG(aH), value(aQ)), DeleteEntry(aM(aH, aL)), DeleteEntry(aK(aH, value(aQ)))]
276+ else if ((aP != unit))
277+ then [DeleteEntry(aK(aH, aL)), DeleteEntry(aM(aH, value(aP)))]
278+ else if ((aL == valueOrElse(aO, "")))
279+ then [DeleteEntry(aG(aH))]
280+ else T(((("invalid node: " + aH) + ".") + aL))))
274281 }
275282
276283
277-func aT () = "%s__managerVaultAddress"
284+func aV () = "%s__managerVaultAddress"
278285
279286
280-func aU () = "%s__managerPublicKey"
287+func aW () = "%s__managerPublicKey"
281288
282289
283-func aV () = {
284- let Y = getString(aT())
290+func aX () = {
291+ let Y = getString(aV())
285292 if ($isInstanceOf(Y, "String"))
286293 then {
287- let aW = Y
288- addressFromStringValue(aW)
294+ let aY = Y
295+ addressFromStringValue(aY)
289296 }
290297 else this
291298 }
292299
293300
294-func aX () = {
295- let aY = aV()
296- let Y = getString(aY, aU())
301+func aZ () = {
302+ let ba = aX()
303+ let Y = getString(ba, aW())
297304 if ($isInstanceOf(Y, "String"))
298305 then {
299- let aW = Y
300- fromBase58String(aW)
306+ let aY = Y
307+ fromBase58String(aY)
301308 }
302309 else if ($isInstanceOf(Y, "Unit"))
303310 then unit
305312 }
306313
307314
308-func aZ (ba) = {
309- let Y = aX()
315+func bb (bc) = {
316+ let Y = aZ()
310317 if ($isInstanceOf(Y, "ByteVector"))
311318 then {
312- let bb = Y
313- (ba.callerPublicKey == bb)
319+ let bd = Y
320+ (bc.callerPublicKey == bd)
314321 }
315322 else if ($isInstanceOf(Y, "Unit"))
316- then (ba.caller == this)
323+ then (bc.caller == this)
317324 else throw("Match error")
318325 }
319326
320327
321-func bc (ba) = if (aZ(ba))
328+func be (bc) = if (bb(bc))
322329 then true
323330 else throw("permission denied")
324331
325332
326-func bd (ba) = if ((ba.caller == this))
333+func bf (bc) = if ((bc.caller == this))
327334 then true
328335 else throw("permission denied")
329336
330337
331-@Callable(ba)
332-func getUserGwxAmountAtHeight (be,bf) = {
333- let bg = valueOrErrorMessage(addressFromString(ab(this, o)), R("invalid boosting contract address"))
338+@Callable(bc)
339+func getUserGwxAmountAtHeight (bg,bh) = {
340+ let bi = valueOrErrorMessage(addressFromString(ab(this, o)), R("invalid boosting contract address"))
334341 $Tuple2(nil, {
335- let ac = invoke(bg, "getUserGwxAmountAtHeightREADONLY", [be, bf], nil)
342+ let ac = invoke(bi, "getUserGwxAmountAtHeightREADONLY", [bg, bh], nil)
336343 if ($isInstanceOf(ac, "Int"))
337344 then ac
338345 else throw(($getType(ac) + " couldn't be cast to Int"))
341348
342349
343350
344-@Callable(ba)
345-func constructor (ah,bh,bi,bj,bk) = {
346- let bl = [bc(ba), if ((addressFromString(ah) != unit))
351+@Callable(bc)
352+func constructor (ah,bj,bk,bl,bm) = {
353+ let bn = [be(bc), if ((addressFromString(ah) != unit))
347354 then true
348- else "invalid factory contract address", if ((addressFromString(bh) != unit))
355+ else "invalid factory contract address", if ((addressFromString(bj) != unit))
349356 then true
350- else "invalid voting emission candidate contract address", if ((addressFromString(bi) != unit))
357+ else "invalid voting emission candidate contract address", if ((addressFromString(bk) != unit))
351358 then true
352- else "invalid boosting contract address", if ((addressFromString(bj) != unit))
359+ else "invalid boosting contract address", if ((addressFromString(bl) != unit))
353360 then true
354- else "invalid staking contract address", if ((bk > 0))
361+ else "invalid staking contract address", if ((bm > 0))
355362 then true
356363 else T("invalid epoch length")]
357- if ((bl == bl))
358- then $Tuple2([StringEntry(n, ah), StringEntry(l, bh), StringEntry(o, bi), StringEntry(p, bj), IntegerEntry(f, bk)], unit)
364+ if ((bn == bn))
365+ then $Tuple2([StringEntry(n, ah), StringEntry(l, bj), StringEntry(o, bk), StringEntry(p, bl), IntegerEntry(f, bm)], unit)
359366 else throw("Strict value is not equal to itself.")
360367 }
361368
362369
363370
364-@Callable(ba)
371+@Callable(bc)
365372 func create (C,D) = {
366- let bl = [if ((toBase58String(ba.caller.bytes) == valueOrElse(getString(this, l), "")))
373+ let bn = [if ((toBase58String(bc.caller.bytes) == valueOrElse(getString(this, l), "")))
367374 then true
368- else bc(ba)]
369- if ((bl == bl))
375+ else be(bc)]
376+ if ((bn == bn))
370377 then {
371378 let A = $Tuple2(C, D)
372- let bm = ([BooleanEntry(z(A), true)] ++ aP(aB, ae(A)))
373- let bn = (getInteger(this, j) == unit)
374- let bo = if (bn)
379+ let bo = ([BooleanEntry(z(A), true)] ++ aR(aD, ae(A)))
380+ let bp = (getInteger(this, j) == unit)
381+ let bq = if (bp)
375382 then {
376383 let i = 0
377384 [IntegerEntry(j, i), IntegerEntry(x(i), height), IntegerEntry(t, height), IntegerEntry(u, i), IntegerEntry(v, height)]
378385 }
379386 else nil
380- $Tuple2((bm ++ bo), unit)
387+ $Tuple2((bo ++ bq), unit)
381388 }
382389 else throw("Strict value is not equal to itself.")
383390 }
384391
385392
386393
387-@Callable(ba)
388-func vote (C,D,bp) = {
394+@Callable(bc)
395+func vote (C,D,br) = {
389396 let A = $Tuple2(C, D)
390397 let i = valueOrElse(getInteger(this, j), 0)
391- let bq = ad(this, x(i))
392- let bk = ad(this, f)
393- let br = (bq + bk)
394- let bs = getInteger(this, q)
395- let bt = valueOrElse(getInteger(this, E(ba.caller, i)), 0)
396- let bu = valueOrElse(getInteger(this, G(A, ba.caller, i)), 0)
397- let bv = valueOrElse(getInteger(this, I(A, i)), 0)
398- let bw = valueOrElse(getInteger(this, O(i)), 0)
399- let bx = {
400- let ac = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(ba.caller.bytes), br], nil)
398+ let bs = ad(this, x(i))
399+ let bm = ad(this, f)
400+ let bt = (bs + bm)
401+ let bu = getInteger(this, q)
402+ let bv = valueOrElse(getInteger(this, E(bc.caller, i)), 0)
403+ let bw = valueOrElse(getInteger(this, G(A, bc.caller, i)), 0)
404+ let bx = valueOrElse(getInteger(this, I(A, i)), 0)
405+ let by = valueOrElse(getInteger(this, O(i)), 0)
406+ let bz = {
407+ let ac = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(bc.caller.bytes), bt], nil)
401408 if ($isInstanceOf(ac, "Int"))
402409 then ac
403410 else throw(($getType(ac) + " couldn't be cast to Int"))
404411 }
405- let by = (bx - bt)
406- let bz = (bu + bp)
407- let bA = az(A)
408- let bl = [if ((getBoolean(z(A)) != unit))
412+ let bA = (bz - bv)
413+ let bB = (bw + br)
414+ let bC = az(A)
415+ let bn = [if ((getBoolean(z(A)) != unit))
409416 then true
410- else T("invalid assets"), if ((br > height))
417+ else T("invalid assets"), if ((bt > height))
411418 then true
412- else T("invalid height"), if ((bs == unit))
419+ else T("invalid height"), if ((bu == unit))
413420 then true
414- else T("finalization in progress"), if ((bx > 0))
421+ else T("finalization in progress"), if ((bz > 0))
415422 then true
416- else T("you do not have gWX"), if (if ((bp > 0))
417- then (by >= bp)
423+ else T("you do not have gWX"), if (if ((br > 0))
424+ then (bA >= br)
418425 else false)
419426 then true
420- else T("invalid amount"), if (bA)
427+ else T("invalid amount"), if (bC)
421428 then true
422429 else T("pool hasn't WX_EMISSION label")]
423- if ((bl == bl))
430+ if ((bn == bn))
424431 then {
425- let bB = aC(A)
426- let Q = toString(ba.caller)
427- let bC = if (aL(bB, Q))
432+ let bD = aE(A)
433+ let Q = toString(bc.caller)
434+ let bE = if (aN(bD, Q))
428435 then nil
429- else aP(bB, Q)
430- $Tuple2(([IntegerEntry(E(ba.caller, i), (bt + bp)), IntegerEntry(G(A, ba.caller, i), bz), IntegerEntry(I(A, i), (bv + bp)), IntegerEntry(O(i), (bw + bp))] ++ bC), unit)
436+ else aR(bD, Q)
437+ $Tuple2(([IntegerEntry(E(bc.caller, i), (bv + br)), IntegerEntry(G(A, bc.caller, i), bB), IntegerEntry(I(A, i), (bx + br)), IntegerEntry(O(i), (by + br))] ++ bE), unit)
431438 }
432439 else throw("Strict value is not equal to itself.")
433440 }
434441
435442
436443
437-@Callable(ba)
444+@Callable(bc)
438445 func cancelVote (C,D) = {
439446 let A = $Tuple2(C, D)
440447 let i = valueOrElse(getInteger(this, j), 0)
441- let bq = ad(this, x(i))
442- let bk = ad(this, f)
443- let br = (bq + bk)
444- let bs = getInteger(this, q)
445- let bt = valueOrElse(getInteger(this, E(ba.caller, i)), 0)
446- let bu = valueOrElse(getInteger(this, G(A, ba.caller, i)), 0)
447- let bv = valueOrElse(getInteger(this, I(A, i)), 0)
448- let bw = valueOrElse(getInteger(this, O(i)), 0)
449- let bl = [if ((getBoolean(z(A)) != unit))
448+ let bs = ad(this, x(i))
449+ let bm = ad(this, f)
450+ let bt = (bs + bm)
451+ let bu = getInteger(this, q)
452+ let bv = valueOrElse(getInteger(this, E(bc.caller, i)), 0)
453+ let bw = valueOrElse(getInteger(this, G(A, bc.caller, i)), 0)
454+ let bx = valueOrElse(getInteger(this, I(A, i)), 0)
455+ let by = valueOrElse(getInteger(this, O(i)), 0)
456+ let bn = [if ((getBoolean(z(A)) != unit))
450457 then true
451- else T("invalid assets"), if ((br > height))
458+ else T("invalid assets"), if ((bt > height))
452459 then true
453- else T("invalid height"), if ((bs == unit))
460+ else T("invalid height"), if ((bu == unit))
454461 then true
455- else T("finalization in progress"), if ((bu > 0))
462+ else T("finalization in progress"), if ((bw > 0))
456463 then true
457464 else T("no vote")]
458- if ((bl == bl))
465+ if ((bn == bn))
459466 then {
460- let bB = aC(A)
461- let Q = toString(ba.caller)
462- $Tuple2(([IntegerEntry(E(ba.caller, i), max([(bt - bu), 0])), DeleteEntry(G(A, ba.caller, i)), IntegerEntry(I(A, i), (bv - bu)), IntegerEntry(O(i), (bw - bu))] ++ aS(bB, Q)), unit)
467+ let bD = aE(A)
468+ let Q = toString(bc.caller)
469+ $Tuple2(([IntegerEntry(E(bc.caller, i), max([(bv - bw), 0])), DeleteEntry(G(A, bc.caller, i)), IntegerEntry(I(A, i), (bx - bw)), IntegerEntry(O(i), (by - bw))] ++ aU(bD, Q)), unit)
463470 }
464471 else throw("Strict value is not equal to itself.")
465472 }
466473
467474
468475
469-@Callable(ba)
470-func setEpochLength (bD) = {
471- let bl = [bc(ba), if ((bD > 0))
476+@Callable(bc)
477+func setEpochLength (bF) = {
478+ let bn = [be(bc), if ((bF > 0))
472479 then true
473480 else T("invalid epoch length")]
474- if ((bl == bl))
475- then $Tuple2([IntegerEntry(g, bD)], unit)
481+ if ((bn == bn))
482+ then $Tuple2([IntegerEntry(g, bF)], unit)
476483 else throw("Strict value is not equal to itself.")
477484 }
478485
479486
480487
481-@Callable(ba)
482-func setMaxDepth (bE) = {
483- let bl = [bc(ba), if ((bE > 0))
488+@Callable(bc)
489+func setMaxDepth (bG) = {
490+ let bn = [be(bc), if ((bG > 0))
484491 then true
485492 else T("invalid max depth")]
486- if ((bl == bl))
487- then $Tuple2([IntegerEntry(k, bE)], unit)
493+ if ((bn == bn))
494+ then $Tuple2([IntegerEntry(k, bG)], unit)
488495 else throw("Strict value is not equal to itself.")
489496 }
490497
491498
492499
493-@Callable(ba)
494-func processVoteINTERNAL (bF,Q) = {
495- let bG = bd(ba)
496- if ((bG == bG))
500+@Callable(bc)
501+func processVoteINTERNAL (bH,Q) = {
502+ let bI = bf(bc)
503+ if ((bI == bI))
497504 then {
498- let be = valueOrErrorMessage(addressFromString(Q), R(("processVoteINTERNAL: invalid user address " + Q)))
505+ let bg = valueOrErrorMessage(addressFromString(Q), R(("processVoteINTERNAL: invalid user address " + Q)))
499506 let i = ad(this, j)
500- let bH = (i - 1)
501- let bk = ad(this, f)
502- let bq = ad(this, x(i))
503- let br = (bq + bk)
504- let bI = ad(this, x(bH))
505- let bJ = ad(this, h(bH))
506- let bK = (bI + bJ)
507- let bL = if ((bH >= 0))
507+ let bJ = (i - 1)
508+ let bm = ad(this, f)
509+ let bs = ad(this, x(i))
510+ let bt = (bs + bm)
511+ let bK = ad(this, x(bJ))
512+ let bL = ad(this, h(bJ))
513+ let bM = (bK + bL)
514+ let bN = if ((bJ >= 0))
508515 then true
509516 else T("processVoteINTERNAL: invalid previous epoch")
510- if ((bL == bL))
517+ if ((bN == bN))
511518 then {
512- let A = af(bF)
513- let bM = A
514- let C = bM._1
515- let D = bM._2
516- let bA = az(A)
517- let bx = {
518- let ac = invoke(this, "getUserGwxAmountAtHeight", [Q, br], nil)
519+ let A = af(bH)
520+ let bO = A
521+ let C = bO._1
522+ let D = bO._2
523+ let bC = az(A)
524+ let bz = {
525+ let ac = invoke(this, "getUserGwxAmountAtHeight", [Q, bt], nil)
519526 if ($isInstanceOf(ac, "Int"))
520527 then ac
521528 else throw(($getType(ac) + " couldn't be cast to Int"))
522529 }
523- let bN = {
524- let ac = invoke(this, "getUserGwxAmountAtHeight", [Q, bK], nil)
530+ let bP = {
531+ let ac = invoke(this, "getUserGwxAmountAtHeight", [Q, bM], nil)
525532 if ($isInstanceOf(ac, "Int"))
526533 then ac
527534 else throw(($getType(ac) + " couldn't be cast to Int"))
528535 }
529- let bw = valueOrElse(getInteger(O(i)), 0)
530- let bO = valueOrElse(getInteger(I(A, i)), 0)
531- let bP = valueOrErrorMessage(getInteger(G(A, be, bH)), R((((("processVoteINTERNAL " + bF) + " ") + Q) + ": no previous vote")))
532- let bt = valueOrElse(getInteger(this, E(be, i)), 0)
536+ let by = valueOrElse(getInteger(O(i)), 0)
537+ let bQ = valueOrElse(getInteger(I(A, i)), 0)
538+ let bR = valueOrErrorMessage(getInteger(G(A, bg, bJ)), R((((("processVoteINTERNAL " + bH) + " ") + Q) + ": no previous vote")))
539+ let bv = valueOrElse(getInteger(this, E(bg, i)), 0)
533540 let L = ao(C, D)
534- let bQ = valueOrElse(getInteger(K(L, bH)), 0)
535- let bj = addressFromStringValue(ab(this, p))
536- let bR = valueOrElse(getInteger(bj, P(L, Q)), 0)
537- let bS = if ((bR == 0))
541+ let bS = valueOrElse(getInteger(K(L, bJ)), 0)
542+ let bl = addressFromStringValue(ab(this, p))
543+ let bT = valueOrElse(getInteger(bl, P(L, Q)), 0)
544+ let bU = if ((bT == 0))
538545 then nil
539- else [IntegerEntry(K(L, bH), (bQ + bP))]
540- let bz = if ((bN > 0))
541- then fraction(bP, bx, bN)
546+ else [IntegerEntry(K(L, bJ), (bS + bR))]
547+ let bB = if ((bP > 0))
548+ then fraction(bR, bz, bP)
542549 else 0
543- let bT = if (if ((bz > 0))
544- then bA
550+ let bV = if (if ((bB > 0))
551+ then bC
545552 else false)
546- then [IntegerEntry(G(A, be, i), bz), IntegerEntry(O(i), (bw + bz)), IntegerEntry(I(A, i), (bO + bz)), IntegerEntry(E(be, i), (bt + bz))]
547- else aS(aC(A), Q)
548- $Tuple2((bT ++ bS), unit)
553+ then [IntegerEntry(G(A, bg, i), bB), IntegerEntry(O(i), (by + bB)), IntegerEntry(I(A, i), (bQ + bB)), IntegerEntry(E(bg, i), (bv + bB))]
554+ else aU(aE(A), Q)
555+ $Tuple2((bV ++ bU), unit)
549556 }
550557 else throw("Strict value is not equal to itself.")
551558 }
554561
555562
556563
557-@Callable(ba)
558-func processPoolINTERNAL (bF,bU) = {
559- let bG = bd(ba)
560- if ((bG == bG))
564+@Callable(bc)
565+func processPoolINTERNAL (bH,bW) = {
566+ let bI = bf(bc)
567+ if ((bI == bI))
561568 then {
562- let bV = {
563- let bW = ad(this, j)
564- if (bU)
565- then bW
566- else (bW - 1)
569+ let bX = {
570+ let bY = ad(this, j)
571+ if (bW)
572+ then bY
573+ else (bY - 1)
567574 }
568- let bL = if ((bV >= 0))
575+ let bN = if ((bX >= 0))
569576 then true
570577 else T("processPoolINTERNAL: invalid target epoch")
571- if ((bL == bL))
578+ if ((bN == bN))
572579 then {
573- let A = af(bF)
574- let bX = A
575- let C = bX._1
576- let D = bX._2
577- let bj = addressFromStringValue(ab(this, p))
580+ let A = af(bH)
581+ let bZ = A
582+ let C = bZ._1
583+ let D = bZ._2
584+ let bl = addressFromStringValue(ab(this, p))
578585 let ay = ao(C, D)
579- let bA = az(A)
580- let bw = valueOrElse(getInteger(this, O(bV)), 0)
581- let bO = valueOrElse(getInteger(this, I(A, bV)), 0)
582- let bY = if (if ((bw == 0))
583- then true
584- else !(bA))
585- then 0
586- else fraction(bO, b, bw)
587- let bZ = invoke(ah, "modifyWeight", [ay, bY], nil)
588- if ((bZ == bZ))
589- then {
590- let ca = if (if (bA)
591- then true
592- else bU)
593- then nil
594- else ([DeleteEntry(z(A))] ++ aS(aB, bF))
595- $Tuple2(([IntegerEntry(M(A, bV), bY)] ++ ca), false)
596- }
586+ let ca = {
587+ let ac = invoke(bl, "usersListTraversal", [ay], nil)
588+ if ($isInstanceOf(ac, "Boolean"))
589+ then ac
590+ else throw(($getType(ac) + " couldn't be cast to Boolean"))
591+ }
592+ if ((ca == ca))
593+ then if (ca)
594+ then $Tuple2(nil, true)
595+ else {
596+ let bC = az(A)
597+ let by = valueOrElse(getInteger(this, O(bX)), 0)
598+ let bQ = valueOrElse(getInteger(this, I(A, bX)), 0)
599+ let cb = if (if ((by == 0))
600+ then true
601+ else !(bC))
602+ then 0
603+ else fraction(bQ, b, by)
604+ let cc = invoke(ah, "modifyWeight", [ay, cb], nil)
605+ if ((cc == cc))
606+ then {
607+ let cd = if (if (bC)
608+ then true
609+ else bW)
610+ then nil
611+ else ([DeleteEntry(z(A))] ++ aU(aD, bH))
612+ $Tuple2(([IntegerEntry(M(A, bX), cb)] ++ cd), false)
613+ }
614+ else throw("Strict value is not equal to itself.")
615+ }
597616 else throw("Strict value is not equal to itself.")
598617 }
599618 else throw("Strict value is not equal to itself.")
603622
604623
605624
606-@Callable(ba)
625+@Callable(bc)
607626 func finalizeHelper () = {
608- let bU = valueOrElse(getBoolean(w), false)
627+ let bW = valueOrElse(getBoolean(w), false)
609628 let i = valueOrElse(getInteger(this, j), 0)
610- let cb = (i - 1)
611- let bq = ad(this, x(i))
612- let bk = ad(this, f)
613- let br = (bq + bk)
614- let bs = getInteger(this, q)
615- if (if (if ((height >= br))
616- then (bs == unit)
629+ let ce = (i - 1)
630+ let bs = ad(this, x(i))
631+ let bm = ad(this, f)
632+ let bt = (bs + bm)
633+ let bu = getInteger(this, q)
634+ if (if (if ((height >= bt))
635+ then (bu == unit)
617636 else false)
618- then !(bU)
637+ then !(bW)
619638 else false)
620639 then {
621- let cc = (i + 1)
622- let cd = getInteger(this, g)
623- let ce = {
624- let Y = cd
640+ let cf = (i + 1)
641+ let cg = getInteger(this, g)
642+ let ch = {
643+ let Y = cg
625644 if ($isInstanceOf(Y, "Int"))
626645 then {
627- let bD = Y
628-[IntegerEntry(f, bD), DeleteEntry(g)]
646+ let bF = Y
647+[IntegerEntry(f, bF), DeleteEntry(g)]
629648 }
630649 else if ($isInstanceOf(Y, "Unit"))
631650 then nil
632651 else throw("Match error")
633652 }
634- $Tuple2(([IntegerEntry(x(cc), height), IntegerEntry(t, height), IntegerEntry(j, cc), IntegerEntry(q, d), IntegerEntry(h(i), bk)] ++ ce), true)
653+ $Tuple2(([IntegerEntry(x(cf), height), IntegerEntry(t, height), IntegerEntry(j, cf), IntegerEntry(q, d), IntegerEntry(h(i), bm)] ++ ch), true)
635654 }
636- else if (if (bU)
637- then (bs == unit)
655+ else if (if (bW)
656+ then (bu == unit)
638657 else false)
639658 then $Tuple2([IntegerEntry(q, e)], true)
640- else if ((bs == unit))
659+ else if ((bu == unit))
641660 then $Tuple2(nil, false)
642- else if ((bs == d))
661+ else if ((bu == d))
643662 then {
644- let cf = getString(r)
645- let cg = getString(s)
646- let Y = cf
663+ let ci = getString(r)
664+ let cj = getString(s)
665+ let Y = ci
647666 if ($isInstanceOf(Y, "Unit"))
648667 then {
649- let ch = getString(aE(aB))
650- if ($isInstanceOf(ch, "Unit"))
668+ let ck = getString(aG(aD))
669+ if ($isInstanceOf(ck, "Unit"))
651670 then $Tuple2([IntegerEntry(q, e), DeleteEntry(r), DeleteEntry(s)], true)
652- else if ($isInstanceOf(ch, "String"))
671+ else if ($isInstanceOf(ck, "String"))
653672 then {
654- let ci = ch
655- $Tuple2([StringEntry(r, ci)], true)
673+ let cl = ck
674+ $Tuple2([StringEntry(r, cl)], true)
656675 }
657676 else throw("Match error")
658677 }
659678 else if ($isInstanceOf(Y, "String"))
660679 then {
661- let bF = Y
662- let A = af(bF)
663- let cj = {
664- let ch = cg
665- if ($isInstanceOf(ch, "Unit"))
666- then getString(aE(aC(A)))
667- else if ($isInstanceOf(ch, "String"))
680+ let bH = Y
681+ let A = af(bH)
682+ let cm = {
683+ let ck = cj
684+ if ($isInstanceOf(ck, "Unit"))
685+ then getString(aG(aE(A)))
686+ else if ($isInstanceOf(ck, "String"))
668687 then {
669- let ck = ch
670- let cl = getString(aK(aC(A), ck))
671- if ((cl == cl))
688+ let cn = ck
689+ let co = getString(aM(aE(A), cn))
690+ if ((co == co))
672691 then {
673- let cm = invoke(this, "processVoteINTERNAL", [bF, ck], nil)
674- if ((cm == cm))
675- then cl
692+ let cp = invoke(this, "processVoteINTERNAL", [bH, cn], nil)
693+ if ((cp == cp))
694+ then co
676695 else throw("Strict value is not equal to itself.")
677696 }
678697 else throw("Strict value is not equal to itself.")
679698 }
680699 else throw("Match error")
681700 }
682- let ch = cj
683- if ($isInstanceOf(ch, "Unit"))
701+ let ck = cm
702+ if ($isInstanceOf(ck, "Unit"))
684703 then {
685- let cn = getString(aK(aB, bF))
686- let co = cn
687- if ($isInstanceOf(co, "Unit"))
704+ let cq = getString(aM(aD, bH))
705+ let cr = cq
706+ if ($isInstanceOf(cr, "Unit"))
688707 then $Tuple2([IntegerEntry(q, e), DeleteEntry(r), DeleteEntry(s)], true)
689- else if ($isInstanceOf(co, "String"))
708+ else if ($isInstanceOf(cr, "String"))
690709 then {
691- let aW = co
692- $Tuple2([StringEntry(r, aW), DeleteEntry(s)], true)
710+ let aY = cr
711+ $Tuple2([StringEntry(r, aY), DeleteEntry(s)], true)
693712 }
694713 else throw("Match error")
695714 }
696- else if ($isInstanceOf(ch, "String"))
715+ else if ($isInstanceOf(ck, "String"))
697716 then {
698- let cp = ch
699- $Tuple2([StringEntry(s, cp)], true)
717+ let cs = ck
718+ $Tuple2([StringEntry(s, cs)], true)
700719 }
701720 else throw("Match error")
702721 }
703722 else throw("Match error")
704723 }
705- else if ((bs == e))
724+ else if ((bu == e))
706725 then {
707- let cf = getString(r)
708- let Y = cf
726+ let ci = getString(r)
727+ let Y = ci
709728 if ($isInstanceOf(Y, "Unit"))
710729 then {
711- let ch = getString(aE(aB))
712- if ($isInstanceOf(ch, "Unit"))
730+ let ck = getString(aG(aD))
731+ if ($isInstanceOf(ck, "Unit"))
713732 then {
714- let bT = if (bU)
733+ let bV = if (bW)
715734 then [DeleteEntry(q), DeleteEntry(w)]
716- else [DeleteEntry(q), BooleanEntry(y(cb), true), IntegerEntry(u, i), IntegerEntry(v, bq)]
717- $Tuple2(bT, true)
735+ else [DeleteEntry(q), BooleanEntry(y(ce), true), IntegerEntry(u, i), IntegerEntry(v, bs)]
736+ let ct = aB()
737+ if ((ct == ct))
738+ then $Tuple2(bV, true)
739+ else throw("Strict value is not equal to itself.")
718740 }
719- else if ($isInstanceOf(ch, "String"))
741+ else if ($isInstanceOf(ck, "String"))
720742 then {
721- let cq = ch
722- $Tuple2([StringEntry(r, cq)], true)
743+ let cu = ck
744+ $Tuple2([StringEntry(r, cu)], true)
723745 }
724746 else throw("Match error")
725747 }
726748 else if ($isInstanceOf(Y, "String"))
727749 then {
728- let bF = Y
729- let cn = getString(aK(aB, bF))
730- if ((cn == cn))
750+ let bH = Y
751+ let cq = getString(aM(aD, bH))
752+ if ((cq == cq))
731753 then {
732- let cr = {
733- let ac = invoke(this, "processPoolINTERNAL", [bF, bU], nil)
754+ let ca = {
755+ let ac = invoke(this, "processPoolINTERNAL", [bH, bW], nil)
734756 if ($isInstanceOf(ac, "Boolean"))
735757 then ac
736758 else throw(($getType(ac) + " couldn't be cast to Boolean"))
737759 }
738- if ((cr == cr))
739- then if (cr)
760+ if ((ca == ca))
761+ then if (ca)
740762 then $Tuple2(nil, true)
741763 else {
742- let ch = cn
743- if ($isInstanceOf(ch, "Unit"))
764+ let ck = cq
765+ if ($isInstanceOf(ck, "Unit"))
744766 then {
745- let bT = if (bU)
767+ let bV = if (bW)
746768 then [DeleteEntry(q), DeleteEntry(w), DeleteEntry(r)]
747- else [DeleteEntry(q), BooleanEntry(y(cb), true), IntegerEntry(u, i), IntegerEntry(v, bq), DeleteEntry(r)]
748- $Tuple2(bT, true)
769+ else [DeleteEntry(q), BooleanEntry(y(ce), true), IntegerEntry(u, i), IntegerEntry(v, bs), DeleteEntry(r)]
770+ let ct = aB()
771+ if ((ct == ct))
772+ then $Tuple2(bV, true)
773+ else throw("Strict value is not equal to itself.")
749774 }
750- else if ($isInstanceOf(ch, "String"))
775+ else if ($isInstanceOf(ck, "String"))
751776 then {
752- let cq = ch
753- $Tuple2([StringEntry(r, cq)], true)
777+ let cu = ck
778+ $Tuple2([StringEntry(r, cu)], true)
754779 }
755780 else throw("Match error")
756781 }
765790
766791
767792
768-@Callable(ba)
769-func finalizeWrapper (cs) = {
770- let ct = addressFromStringValue(getStringValue(this, m))
771- let cu = {
793+@Callable(bc)
794+func finalizeWrapper (cv) = {
795+ let cw = addressFromStringValue(getStringValue(this, m))
796+ let cx = {
772797 let ac = invoke(this, "finalizeHelper", nil, nil)
773798 if ($isInstanceOf(ac, "Boolean"))
774799 then ac
775800 else throw(($getType(ac) + " couldn't be cast to Boolean"))
776801 }
777- if ((cu == cu))
778- then if (!(cu))
779- then if ((cs == 0))
802+ if ((cx == cx))
803+ then if (!(cx))
804+ then if ((cv == 0))
780805 then T("Current voting is not over yet")
781806 else {
782- let cv = invoke(ct, "finalize", nil, nil)
783- if ((cv == cv))
807+ let cy = invoke(cw, "finalize", nil, nil)
808+ if ((cy == cy))
784809 then $Tuple2(nil, unit)
785810 else throw("Strict value is not equal to itself.")
786811 }
787812 else {
788- let cw = valueOrElse(getInteger(this, k), c)
789- if ((cw > cs))
813+ let cz = valueOrElse(getInteger(this, k), c)
814+ if ((cz > cv))
790815 then {
791- let cv = invoke(this, "finalizeWrapper", [(cs + 1)], nil)
792- if ((cv == cv))
816+ let cy = invoke(this, "finalizeWrapper", [(cv + 1)], nil)
817+ if ((cy == cy))
793818 then $Tuple2(nil, unit)
794819 else throw("Strict value is not equal to itself.")
795820 }
800825
801826
802827
803-@Callable(ba)
828+@Callable(bc)
804829 func finalize () = {
805- let cv = invoke(this, "finalizeWrapper", [0], nil)
806- if ((cv == cv))
830+ let cy = invoke(this, "finalizeWrapper", [0], nil)
831+ if ((cy == cy))
807832 then $Tuple2(nil, unit)
808833 else throw("Strict value is not equal to itself.")
809834 }
810835
811836
812837
813-@Callable(ba)
814-func containsNodeREADONLY (aF,aJ) = $Tuple2(nil, aL(aF, aJ))
838+@Callable(bc)
839+func containsNodeREADONLY (aH,aL) = $Tuple2(nil, aN(aH, aL))
815840
816841
817842
818-@Callable(ba)
819-func insertNode (aF,aJ) = {
820- let bG = bc(ba)
821- if ((bG == bG))
822- then $Tuple2(aP(aF, aJ), unit)
843+@Callable(bc)
844+func insertNode (aH,aL) = {
845+ let bI = be(bc)
846+ if ((bI == bI))
847+ then $Tuple2(aR(aH, aL), unit)
823848 else throw("Strict value is not equal to itself.")
824849 }
825850
826851
827852
828-@Callable(ba)
829-func deleteNode (aF,aJ) = {
830- let bG = bc(ba)
831- if ((bG == bG))
832- then $Tuple2(aS(aF, aJ), unit)
853+@Callable(bc)
854+func deleteNode (aH,aL) = {
855+ let bI = be(bc)
856+ if ((bI == bI))
857+ then $Tuple2(aU(aH, aL), unit)
833858 else throw("Strict value is not equal to itself.")
834859 }
835860
836861
837862
838-@Callable(ba)
863+@Callable(bc)
839864 func isFinalizationInProgress () = {
840- let bs = getInteger(this, q)
841- let cx = (bs != unit)
842- $Tuple2(nil, cx)
865+ let bu = getInteger(this, q)
866+ let cA = (bu != unit)
867+ $Tuple2(nil, cA)
843868 }
844869
845870
846871
847-@Callable(ba)
872+@Callable(bc)
848873 func deletePool (C,D) = {
849- let bG = if (if ((ba.caller == ah))
874+ let bI = if (if ((bc.caller == ah))
850875 then true
851- else bc(ba))
876+ else be(bc))
852877 then true
853878 else T("Permission denied")
854- if ((bG == bG))
879+ if ((bI == bI))
855880 then {
856- let aF = "pools"
881+ let aH = "pools"
857882 let A = $Tuple2(C, D)
858- let aJ = makeString([C, D], a)
859- let bT = if (aL(aF, aJ))
860- then aS(aF, aJ)
883+ let aL = makeString([C, D], a)
884+ let bV = if (aN(aH, aL))
885+ then aU(aH, aL)
861886 else nil
862- ([DeleteEntry(z(A))] ++ bT)
887+ ([DeleteEntry(z(A))] ++ bV)
863888 }
864889 else throw("Strict value is not equal to itself.")
865890 }
866891
867892
868-
869-@Callable(ba)
870-func getLockedGwxAmount (Q) = {
871- let be = valueOrErrorMessage(addressFromString(Q), R("invalid user address"))
872- let i = valueOrElse(getInteger(this, j), 0)
873- let cy = {
874- let Y = getInteger(this, E(be, i))
875- if ($isInstanceOf(Y, "Unit"))
876- then 0
877- else if ($isInstanceOf(Y, "Int"))
878- then {
879- let cz = Y
880- cz
881- }
893+@Verifier(cB)
894+func cC () = {
895+ let cD = {
896+ let Y = aZ()
897+ if ($isInstanceOf(Y, "ByteVector"))
898+ then {
899+ let bd = Y
900+ bd
901+ }
902+ else if ($isInstanceOf(Y, "Unit"))
903+ then cB.senderPublicKey
882904 else throw("Match error")
883905 }
884- $Tuple2(nil, cy)
885- }
886-
887-
888-@Verifier(cA)
889-func cB () = {
890- let cC = {
891- let Y = aX()
892- if ($isInstanceOf(Y, "ByteVector"))
893- then {
894- let bb = Y
895- bb
896- }
897- else if ($isInstanceOf(Y, "Unit"))
898- then cA.senderPublicKey
899- else throw("Match error")
900- }
901- sigVerify(cA.bodyBytes, cA.proofs[0], cC)
906+ sigVerify(cB.bodyBytes, cB.proofs[0], cD)
902907 }
903908
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 100000000
77
88 let c = 10
99
1010 let d = 0
1111
1212 let e = 1
1313
1414 let f = makeString(["%s", "epochLength"], a)
1515
1616 let g = makeString(["%s%s", "epochLength__new"], a)
1717
1818 func h (i) = makeString(["%s%d", "epochLength", toString(i)], a)
1919
2020
2121 let j = makeString(["%s", "currentEpoch"], a)
2222
2323 let k = makeString(["%s", "maxDepth"], a)
2424
2525 let l = makeString(["%s", "votingEmissionCandidateContract"], a)
2626
2727 let m = makeString(["%s", "votingEmissionRateContract"], a)
2828
2929 let n = makeString(["%s", "factoryContract"], a)
3030
3131 let o = makeString(["%s", "boostingContract"], a)
3232
3333 let p = makeString(["%s", "stakingContract"], a)
3434
3535 let q = makeString(["%s", "finalizationStage"], a)
3636
3737 let r = makeString(["%s", "nextPool"], a)
3838
3939 let s = makeString(["%s", "nextUser"], a)
4040
4141 let t = makeString(["%s", "startHeight"], a)
4242
4343 let u = makeString(["%s", "currentEpochUi"], a)
4444
4545 let v = makeString(["%s", "startHeightUi"], a)
4646
4747 let w = makeString(["%s", "force"], a)
4848
4949 func x (i) = makeString(["%s%d", "startHeight", toString(i)], a)
5050
5151
5252 func y (i) = makeString(["%s%d", "finalized", toString(i)], a)
5353
5454
5555 func z (A) = {
5656 let B = A
5757 let C = B._1
5858 let D = B._2
5959 makeString(["%s%s%s", "inList", C, D], a)
6060 }
6161
6262
6363 func E (F,i) = makeString(["%s%s%d", "used", toString(F), toString(i)], a)
6464
6565
6666 func G (A,F,i) = {
6767 let H = A
6868 let C = H._1
6969 let D = H._2
7070 makeString(["%s%s%s%s%d", "vote", C, D, toString(F), toString(i)], a)
7171 }
7272
7373
7474 func I (A,i) = {
7575 let J = A
7676 let C = J._1
7777 let D = J._2
7878 makeString(["%s%s%s%d", "votingResult", C, D, toString(i)], a)
7979 }
8080
8181
8282 func K (L,i) = makeString(["%s%s%d", "votingResultStaked", L, toString(i)], a)
8383
8484
8585 func M (A,i) = {
8686 let N = A
8787 let C = N._1
8888 let D = N._2
8989 makeString(["%s%s%s%d", "poolShare", C, D, toString(i)], a)
9090 }
9191
9292
9393 func O (i) = makeString(["%s%d", "totalVotes", toString(i)], a)
9494
9595
9696 func P (L,Q) = makeString(["%s%s%s", "staked", Q, L], a)
9797
9898
9999 func R (S) = makeString(["voting_emission.ride:", S], " ")
100100
101101
102102 func T (S) = throw(R(S))
103103
104104
105105 func U (F,V,W) = {
106106 let X = R(makeString(["mandatory ", toString(F), ".", V, " is not defined"], ""))
107107 valueOrErrorMessage({
108108 let Y = W
109109 if ($isInstanceOf(Y, "String"))
110110 then {
111111 let Z = Y
112112 getString(F, V)
113113 }
114114 else if ($isInstanceOf(Y, "Int"))
115115 then {
116116 let aa = Y
117117 getInteger(F, V)
118118 }
119119 else T("invalid entry type")
120120 }, X)
121121 }
122122
123123
124124 func ab (F,V) = {
125125 let ac = U(F, V, "")
126126 if ($isInstanceOf(ac, "String"))
127127 then ac
128128 else throw(($getType(ac) + " couldn't be cast to String"))
129129 }
130130
131131
132132 func ad (F,V) = {
133133 let ac = U(F, V, 0)
134134 if ($isInstanceOf(ac, "Int"))
135135 then ac
136136 else throw(($getType(ac) + " couldn't be cast to Int"))
137137 }
138138
139139
140140 func ae (A) = ((A._1 + a) + A._2)
141141
142142
143143 func af (Z) = {
144144 let ag = split(Z, a)
145145 if ((size(ag) == 2))
146146 then $Tuple2(ag[0], ag[1])
147147 else T("invalid pool string")
148148 }
149149
150150
151151 let ah = addressFromStringValue(ab(this, n))
152152
153153 let ai = 10
154154
155155 func aj () = "%s__factoryConfig"
156156
157157
158158 func ak (al) = split(ab(al, aj()), a)
159159
160160
161161 func am (an) = addressFromStringValue(an[ai])
162162
163163
164164 func ao (C,D) = {
165165 func ap (aq) = ("%s%s%s__mappings__baseAsset2internalId__" + aq)
166166
167167 func ar (as,at) = (((("%d%d%s%s__" + toString(as)) + "__") + toString(at)) + "__mappings__poolAssets2PoolContract")
168168
169169 func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
170170
171171 let aw = ad(ah, ap(C))
172172 let ax = ad(ah, ap(D))
173173 let av = ab(ah, ar(aw, ax))
174174 let ay = ab(ah, au(av))
175175 ay
176176 }
177177
178178
179179 func az (A) = {
180180 let aA = A
181181 let C = aA._1
182182 let D = aA._2
183183 let ac = invoke(ah, "checkWxEmissionPoolLabel", [C, D], nil)
184184 if ($isInstanceOf(ac, "Boolean"))
185185 then ac
186186 else throw(($getType(ac) + " couldn't be cast to Boolean"))
187187 }
188188
189189
190-let aB = "pools"
190+func aB () = {
191+ let an = ak(ah)
192+ let aC = am(an)
193+ invoke(aC, "deposit", nil, nil)
194+ }
191195
192-func aC (A) = {
193- let aD = A
194- let C = aD._1
195- let D = aD._2
196+
197+let aD = "pools"
198+
199+func aE (A) = {
200+ let aF = A
201+ let C = aF._1
202+ let D = aF._2
196203 makeString(["votes", C, D], a)
197204 }
198205
199206
200-func aE (aF) = {
201- let aG = if ((aF == aB))
207+func aG (aH) = {
208+ let aI = if ((aH == aD))
202209 then "%s%s"
203210 else "%s%s%s%s"
204- makeString([aG, aF, "head"], a)
211+ makeString([aI, aH, "head"], a)
205212 }
206213
207214
208-func aH (aF) = {
209- let aG = if ((aF == aB))
215+func aJ (aH) = {
216+ let aI = if ((aH == aD))
210217 then "%s%s"
211218 else "%s%s%s%s"
212- makeString([aG, aF, "size"], a)
219+ makeString([aI, aH, "size"], a)
213220 }
214221
215222
216-func aI (aF,aJ) = {
217- let aG = if ((aF == aB))
223+func aK (aH,aL) = {
224+ let aI = if ((aH == aD))
218225 then "%s%s%s%s"
219226 else "%s%s%s%s%s"
220- makeString([aG, aF, aJ, "prev"], a)
227+ makeString([aI, aH, aL, "prev"], a)
221228 }
222229
223230
224-func aK (aF,aJ) = {
225- let aG = if ((aF == aB))
231+func aM (aH,aL) = {
232+ let aI = if ((aH == aD))
226233 then "%s%s%s%s"
227234 else "%s%s%s%s%s"
228- makeString([aG, aF, aJ, "next"], a)
235+ makeString([aI, aH, aL, "next"], a)
229236 }
230237
231238
232-func aL (aF,aJ) = {
233- let aM = getString(this, aE(aF))
234- let aN = getString(this, aI(aF, aJ))
235- let aO = getString(this, aK(aF, aJ))
236- if (if ((aJ == valueOrElse(aM, "")))
239+func aN (aH,aL) = {
240+ let aO = getString(this, aG(aH))
241+ let aP = getString(this, aK(aH, aL))
242+ let aQ = getString(this, aM(aH, aL))
243+ if (if ((aL == valueOrElse(aO, "")))
237244 then true
238- else (aN != unit))
245+ else (aP != unit))
239246 then true
240- else (aO != unit)
247+ else (aQ != unit)
241248 }
242249
243250
244-func aP (aF,aJ) = {
245- let aM = getString(this, aE(aF))
246- let aQ = valueOrElse(getInteger(this, aH(aF)), 0)
247- let aR = if (!(aL(aF, aJ)))
251+func aR (aH,aL) = {
252+ let aO = getString(this, aG(aH))
253+ let aS = valueOrElse(getInteger(this, aJ(aH)), 0)
254+ let aT = if (!(aN(aH, aL)))
248255 then true
249256 else T("Node exists")
250- if ((aR == aR))
251- then (([IntegerEntry(aH(aF), (aQ + 1))] ++ (if ((aM != unit))
252- then [StringEntry(aK(aF, aJ), value(aM)), StringEntry(aI(aF, value(aM)), aJ)]
253- else nil)) ++ [StringEntry(aE(aF), aJ)])
257+ if ((aT == aT))
258+ then (([IntegerEntry(aJ(aH), (aS + 1))] ++ (if ((aO != unit))
259+ then [StringEntry(aM(aH, aL), value(aO)), StringEntry(aK(aH, value(aO)), aL)]
260+ else nil)) ++ [StringEntry(aG(aH), aL)])
254261 else throw("Strict value is not equal to itself.")
255262 }
256263
257264
258-func aS (aF,aJ) = {
259- let aM = getString(this, aE(aF))
260- let aQ = valueOrElse(getInteger(this, aH(aF)), 0)
261- let aN = getString(this, aI(aF, aJ))
262- let aO = getString(this, aK(aF, aJ))
263- ([IntegerEntry(aH(aF), (aQ - 1))] ++ (if (if ((aN != unit))
264- then (aO != unit)
265+func aU (aH,aL) = {
266+ let aO = getString(this, aG(aH))
267+ let aS = valueOrElse(getInteger(this, aJ(aH)), 0)
268+ let aP = getString(this, aK(aH, aL))
269+ let aQ = getString(this, aM(aH, aL))
270+ ([IntegerEntry(aJ(aH), (aS - 1))] ++ (if (if ((aP != unit))
271+ then (aQ != unit)
265272 else false)
266- then [StringEntry(aK(aF, value(aN)), value(aO)), StringEntry(aI(aF, value(aO)), value(aN)), DeleteEntry(aI(aF, aJ)), DeleteEntry(aK(aF, aJ))]
267- else if ((aO != unit))
268- then [StringEntry(aE(aF), value(aO)), DeleteEntry(aK(aF, aJ)), DeleteEntry(aI(aF, value(aO)))]
269- else if ((aN != unit))
270- then [DeleteEntry(aI(aF, aJ)), DeleteEntry(aK(aF, value(aN)))]
271- else if ((aJ == valueOrElse(aM, "")))
272- then [DeleteEntry(aE(aF))]
273- else T(((("invalid node: " + aF) + ".") + aJ))))
273+ then [StringEntry(aM(aH, value(aP)), value(aQ)), StringEntry(aK(aH, value(aQ)), value(aP)), DeleteEntry(aK(aH, aL)), DeleteEntry(aM(aH, aL))]
274+ else if ((aQ != unit))
275+ then [StringEntry(aG(aH), value(aQ)), DeleteEntry(aM(aH, aL)), DeleteEntry(aK(aH, value(aQ)))]
276+ else if ((aP != unit))
277+ then [DeleteEntry(aK(aH, aL)), DeleteEntry(aM(aH, value(aP)))]
278+ else if ((aL == valueOrElse(aO, "")))
279+ then [DeleteEntry(aG(aH))]
280+ else T(((("invalid node: " + aH) + ".") + aL))))
274281 }
275282
276283
277-func aT () = "%s__managerVaultAddress"
284+func aV () = "%s__managerVaultAddress"
278285
279286
280-func aU () = "%s__managerPublicKey"
287+func aW () = "%s__managerPublicKey"
281288
282289
283-func aV () = {
284- let Y = getString(aT())
290+func aX () = {
291+ let Y = getString(aV())
285292 if ($isInstanceOf(Y, "String"))
286293 then {
287- let aW = Y
288- addressFromStringValue(aW)
294+ let aY = Y
295+ addressFromStringValue(aY)
289296 }
290297 else this
291298 }
292299
293300
294-func aX () = {
295- let aY = aV()
296- let Y = getString(aY, aU())
301+func aZ () = {
302+ let ba = aX()
303+ let Y = getString(ba, aW())
297304 if ($isInstanceOf(Y, "String"))
298305 then {
299- let aW = Y
300- fromBase58String(aW)
306+ let aY = Y
307+ fromBase58String(aY)
301308 }
302309 else if ($isInstanceOf(Y, "Unit"))
303310 then unit
304311 else throw("Match error")
305312 }
306313
307314
308-func aZ (ba) = {
309- let Y = aX()
315+func bb (bc) = {
316+ let Y = aZ()
310317 if ($isInstanceOf(Y, "ByteVector"))
311318 then {
312- let bb = Y
313- (ba.callerPublicKey == bb)
319+ let bd = Y
320+ (bc.callerPublicKey == bd)
314321 }
315322 else if ($isInstanceOf(Y, "Unit"))
316- then (ba.caller == this)
323+ then (bc.caller == this)
317324 else throw("Match error")
318325 }
319326
320327
321-func bc (ba) = if (aZ(ba))
328+func be (bc) = if (bb(bc))
322329 then true
323330 else throw("permission denied")
324331
325332
326-func bd (ba) = if ((ba.caller == this))
333+func bf (bc) = if ((bc.caller == this))
327334 then true
328335 else throw("permission denied")
329336
330337
331-@Callable(ba)
332-func getUserGwxAmountAtHeight (be,bf) = {
333- let bg = valueOrErrorMessage(addressFromString(ab(this, o)), R("invalid boosting contract address"))
338+@Callable(bc)
339+func getUserGwxAmountAtHeight (bg,bh) = {
340+ let bi = valueOrErrorMessage(addressFromString(ab(this, o)), R("invalid boosting contract address"))
334341 $Tuple2(nil, {
335- let ac = invoke(bg, "getUserGwxAmountAtHeightREADONLY", [be, bf], nil)
342+ let ac = invoke(bi, "getUserGwxAmountAtHeightREADONLY", [bg, bh], nil)
336343 if ($isInstanceOf(ac, "Int"))
337344 then ac
338345 else throw(($getType(ac) + " couldn't be cast to Int"))
339346 })
340347 }
341348
342349
343350
344-@Callable(ba)
345-func constructor (ah,bh,bi,bj,bk) = {
346- let bl = [bc(ba), if ((addressFromString(ah) != unit))
351+@Callable(bc)
352+func constructor (ah,bj,bk,bl,bm) = {
353+ let bn = [be(bc), if ((addressFromString(ah) != unit))
347354 then true
348- else "invalid factory contract address", if ((addressFromString(bh) != unit))
355+ else "invalid factory contract address", if ((addressFromString(bj) != unit))
349356 then true
350- else "invalid voting emission candidate contract address", if ((addressFromString(bi) != unit))
357+ else "invalid voting emission candidate contract address", if ((addressFromString(bk) != unit))
351358 then true
352- else "invalid boosting contract address", if ((addressFromString(bj) != unit))
359+ else "invalid boosting contract address", if ((addressFromString(bl) != unit))
353360 then true
354- else "invalid staking contract address", if ((bk > 0))
361+ else "invalid staking contract address", if ((bm > 0))
355362 then true
356363 else T("invalid epoch length")]
357- if ((bl == bl))
358- then $Tuple2([StringEntry(n, ah), StringEntry(l, bh), StringEntry(o, bi), StringEntry(p, bj), IntegerEntry(f, bk)], unit)
364+ if ((bn == bn))
365+ then $Tuple2([StringEntry(n, ah), StringEntry(l, bj), StringEntry(o, bk), StringEntry(p, bl), IntegerEntry(f, bm)], unit)
359366 else throw("Strict value is not equal to itself.")
360367 }
361368
362369
363370
364-@Callable(ba)
371+@Callable(bc)
365372 func create (C,D) = {
366- let bl = [if ((toBase58String(ba.caller.bytes) == valueOrElse(getString(this, l), "")))
373+ let bn = [if ((toBase58String(bc.caller.bytes) == valueOrElse(getString(this, l), "")))
367374 then true
368- else bc(ba)]
369- if ((bl == bl))
375+ else be(bc)]
376+ if ((bn == bn))
370377 then {
371378 let A = $Tuple2(C, D)
372- let bm = ([BooleanEntry(z(A), true)] ++ aP(aB, ae(A)))
373- let bn = (getInteger(this, j) == unit)
374- let bo = if (bn)
379+ let bo = ([BooleanEntry(z(A), true)] ++ aR(aD, ae(A)))
380+ let bp = (getInteger(this, j) == unit)
381+ let bq = if (bp)
375382 then {
376383 let i = 0
377384 [IntegerEntry(j, i), IntegerEntry(x(i), height), IntegerEntry(t, height), IntegerEntry(u, i), IntegerEntry(v, height)]
378385 }
379386 else nil
380- $Tuple2((bm ++ bo), unit)
387+ $Tuple2((bo ++ bq), unit)
381388 }
382389 else throw("Strict value is not equal to itself.")
383390 }
384391
385392
386393
387-@Callable(ba)
388-func vote (C,D,bp) = {
394+@Callable(bc)
395+func vote (C,D,br) = {
389396 let A = $Tuple2(C, D)
390397 let i = valueOrElse(getInteger(this, j), 0)
391- let bq = ad(this, x(i))
392- let bk = ad(this, f)
393- let br = (bq + bk)
394- let bs = getInteger(this, q)
395- let bt = valueOrElse(getInteger(this, E(ba.caller, i)), 0)
396- let bu = valueOrElse(getInteger(this, G(A, ba.caller, i)), 0)
397- let bv = valueOrElse(getInteger(this, I(A, i)), 0)
398- let bw = valueOrElse(getInteger(this, O(i)), 0)
399- let bx = {
400- let ac = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(ba.caller.bytes), br], nil)
398+ let bs = ad(this, x(i))
399+ let bm = ad(this, f)
400+ let bt = (bs + bm)
401+ let bu = getInteger(this, q)
402+ let bv = valueOrElse(getInteger(this, E(bc.caller, i)), 0)
403+ let bw = valueOrElse(getInteger(this, G(A, bc.caller, i)), 0)
404+ let bx = valueOrElse(getInteger(this, I(A, i)), 0)
405+ let by = valueOrElse(getInteger(this, O(i)), 0)
406+ let bz = {
407+ let ac = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(bc.caller.bytes), bt], nil)
401408 if ($isInstanceOf(ac, "Int"))
402409 then ac
403410 else throw(($getType(ac) + " couldn't be cast to Int"))
404411 }
405- let by = (bx - bt)
406- let bz = (bu + bp)
407- let bA = az(A)
408- let bl = [if ((getBoolean(z(A)) != unit))
412+ let bA = (bz - bv)
413+ let bB = (bw + br)
414+ let bC = az(A)
415+ let bn = [if ((getBoolean(z(A)) != unit))
409416 then true
410- else T("invalid assets"), if ((br > height))
417+ else T("invalid assets"), if ((bt > height))
411418 then true
412- else T("invalid height"), if ((bs == unit))
419+ else T("invalid height"), if ((bu == unit))
413420 then true
414- else T("finalization in progress"), if ((bx > 0))
421+ else T("finalization in progress"), if ((bz > 0))
415422 then true
416- else T("you do not have gWX"), if (if ((bp > 0))
417- then (by >= bp)
423+ else T("you do not have gWX"), if (if ((br > 0))
424+ then (bA >= br)
418425 else false)
419426 then true
420- else T("invalid amount"), if (bA)
427+ else T("invalid amount"), if (bC)
421428 then true
422429 else T("pool hasn't WX_EMISSION label")]
423- if ((bl == bl))
430+ if ((bn == bn))
424431 then {
425- let bB = aC(A)
426- let Q = toString(ba.caller)
427- let bC = if (aL(bB, Q))
432+ let bD = aE(A)
433+ let Q = toString(bc.caller)
434+ let bE = if (aN(bD, Q))
428435 then nil
429- else aP(bB, Q)
430- $Tuple2(([IntegerEntry(E(ba.caller, i), (bt + bp)), IntegerEntry(G(A, ba.caller, i), bz), IntegerEntry(I(A, i), (bv + bp)), IntegerEntry(O(i), (bw + bp))] ++ bC), unit)
436+ else aR(bD, Q)
437+ $Tuple2(([IntegerEntry(E(bc.caller, i), (bv + br)), IntegerEntry(G(A, bc.caller, i), bB), IntegerEntry(I(A, i), (bx + br)), IntegerEntry(O(i), (by + br))] ++ bE), unit)
431438 }
432439 else throw("Strict value is not equal to itself.")
433440 }
434441
435442
436443
437-@Callable(ba)
444+@Callable(bc)
438445 func cancelVote (C,D) = {
439446 let A = $Tuple2(C, D)
440447 let i = valueOrElse(getInteger(this, j), 0)
441- let bq = ad(this, x(i))
442- let bk = ad(this, f)
443- let br = (bq + bk)
444- let bs = getInteger(this, q)
445- let bt = valueOrElse(getInteger(this, E(ba.caller, i)), 0)
446- let bu = valueOrElse(getInteger(this, G(A, ba.caller, i)), 0)
447- let bv = valueOrElse(getInteger(this, I(A, i)), 0)
448- let bw = valueOrElse(getInteger(this, O(i)), 0)
449- let bl = [if ((getBoolean(z(A)) != unit))
448+ let bs = ad(this, x(i))
449+ let bm = ad(this, f)
450+ let bt = (bs + bm)
451+ let bu = getInteger(this, q)
452+ let bv = valueOrElse(getInteger(this, E(bc.caller, i)), 0)
453+ let bw = valueOrElse(getInteger(this, G(A, bc.caller, i)), 0)
454+ let bx = valueOrElse(getInteger(this, I(A, i)), 0)
455+ let by = valueOrElse(getInteger(this, O(i)), 0)
456+ let bn = [if ((getBoolean(z(A)) != unit))
450457 then true
451- else T("invalid assets"), if ((br > height))
458+ else T("invalid assets"), if ((bt > height))
452459 then true
453- else T("invalid height"), if ((bs == unit))
460+ else T("invalid height"), if ((bu == unit))
454461 then true
455- else T("finalization in progress"), if ((bu > 0))
462+ else T("finalization in progress"), if ((bw > 0))
456463 then true
457464 else T("no vote")]
458- if ((bl == bl))
465+ if ((bn == bn))
459466 then {
460- let bB = aC(A)
461- let Q = toString(ba.caller)
462- $Tuple2(([IntegerEntry(E(ba.caller, i), max([(bt - bu), 0])), DeleteEntry(G(A, ba.caller, i)), IntegerEntry(I(A, i), (bv - bu)), IntegerEntry(O(i), (bw - bu))] ++ aS(bB, Q)), unit)
467+ let bD = aE(A)
468+ let Q = toString(bc.caller)
469+ $Tuple2(([IntegerEntry(E(bc.caller, i), max([(bv - bw), 0])), DeleteEntry(G(A, bc.caller, i)), IntegerEntry(I(A, i), (bx - bw)), IntegerEntry(O(i), (by - bw))] ++ aU(bD, Q)), unit)
463470 }
464471 else throw("Strict value is not equal to itself.")
465472 }
466473
467474
468475
469-@Callable(ba)
470-func setEpochLength (bD) = {
471- let bl = [bc(ba), if ((bD > 0))
476+@Callable(bc)
477+func setEpochLength (bF) = {
478+ let bn = [be(bc), if ((bF > 0))
472479 then true
473480 else T("invalid epoch length")]
474- if ((bl == bl))
475- then $Tuple2([IntegerEntry(g, bD)], unit)
481+ if ((bn == bn))
482+ then $Tuple2([IntegerEntry(g, bF)], unit)
476483 else throw("Strict value is not equal to itself.")
477484 }
478485
479486
480487
481-@Callable(ba)
482-func setMaxDepth (bE) = {
483- let bl = [bc(ba), if ((bE > 0))
488+@Callable(bc)
489+func setMaxDepth (bG) = {
490+ let bn = [be(bc), if ((bG > 0))
484491 then true
485492 else T("invalid max depth")]
486- if ((bl == bl))
487- then $Tuple2([IntegerEntry(k, bE)], unit)
493+ if ((bn == bn))
494+ then $Tuple2([IntegerEntry(k, bG)], unit)
488495 else throw("Strict value is not equal to itself.")
489496 }
490497
491498
492499
493-@Callable(ba)
494-func processVoteINTERNAL (bF,Q) = {
495- let bG = bd(ba)
496- if ((bG == bG))
500+@Callable(bc)
501+func processVoteINTERNAL (bH,Q) = {
502+ let bI = bf(bc)
503+ if ((bI == bI))
497504 then {
498- let be = valueOrErrorMessage(addressFromString(Q), R(("processVoteINTERNAL: invalid user address " + Q)))
505+ let bg = valueOrErrorMessage(addressFromString(Q), R(("processVoteINTERNAL: invalid user address " + Q)))
499506 let i = ad(this, j)
500- let bH = (i - 1)
501- let bk = ad(this, f)
502- let bq = ad(this, x(i))
503- let br = (bq + bk)
504- let bI = ad(this, x(bH))
505- let bJ = ad(this, h(bH))
506- let bK = (bI + bJ)
507- let bL = if ((bH >= 0))
507+ let bJ = (i - 1)
508+ let bm = ad(this, f)
509+ let bs = ad(this, x(i))
510+ let bt = (bs + bm)
511+ let bK = ad(this, x(bJ))
512+ let bL = ad(this, h(bJ))
513+ let bM = (bK + bL)
514+ let bN = if ((bJ >= 0))
508515 then true
509516 else T("processVoteINTERNAL: invalid previous epoch")
510- if ((bL == bL))
517+ if ((bN == bN))
511518 then {
512- let A = af(bF)
513- let bM = A
514- let C = bM._1
515- let D = bM._2
516- let bA = az(A)
517- let bx = {
518- let ac = invoke(this, "getUserGwxAmountAtHeight", [Q, br], nil)
519+ let A = af(bH)
520+ let bO = A
521+ let C = bO._1
522+ let D = bO._2
523+ let bC = az(A)
524+ let bz = {
525+ let ac = invoke(this, "getUserGwxAmountAtHeight", [Q, bt], nil)
519526 if ($isInstanceOf(ac, "Int"))
520527 then ac
521528 else throw(($getType(ac) + " couldn't be cast to Int"))
522529 }
523- let bN = {
524- let ac = invoke(this, "getUserGwxAmountAtHeight", [Q, bK], nil)
530+ let bP = {
531+ let ac = invoke(this, "getUserGwxAmountAtHeight", [Q, bM], nil)
525532 if ($isInstanceOf(ac, "Int"))
526533 then ac
527534 else throw(($getType(ac) + " couldn't be cast to Int"))
528535 }
529- let bw = valueOrElse(getInteger(O(i)), 0)
530- let bO = valueOrElse(getInteger(I(A, i)), 0)
531- let bP = valueOrErrorMessage(getInteger(G(A, be, bH)), R((((("processVoteINTERNAL " + bF) + " ") + Q) + ": no previous vote")))
532- let bt = valueOrElse(getInteger(this, E(be, i)), 0)
536+ let by = valueOrElse(getInteger(O(i)), 0)
537+ let bQ = valueOrElse(getInteger(I(A, i)), 0)
538+ let bR = valueOrErrorMessage(getInteger(G(A, bg, bJ)), R((((("processVoteINTERNAL " + bH) + " ") + Q) + ": no previous vote")))
539+ let bv = valueOrElse(getInteger(this, E(bg, i)), 0)
533540 let L = ao(C, D)
534- let bQ = valueOrElse(getInteger(K(L, bH)), 0)
535- let bj = addressFromStringValue(ab(this, p))
536- let bR = valueOrElse(getInteger(bj, P(L, Q)), 0)
537- let bS = if ((bR == 0))
541+ let bS = valueOrElse(getInteger(K(L, bJ)), 0)
542+ let bl = addressFromStringValue(ab(this, p))
543+ let bT = valueOrElse(getInteger(bl, P(L, Q)), 0)
544+ let bU = if ((bT == 0))
538545 then nil
539- else [IntegerEntry(K(L, bH), (bQ + bP))]
540- let bz = if ((bN > 0))
541- then fraction(bP, bx, bN)
546+ else [IntegerEntry(K(L, bJ), (bS + bR))]
547+ let bB = if ((bP > 0))
548+ then fraction(bR, bz, bP)
542549 else 0
543- let bT = if (if ((bz > 0))
544- then bA
550+ let bV = if (if ((bB > 0))
551+ then bC
545552 else false)
546- then [IntegerEntry(G(A, be, i), bz), IntegerEntry(O(i), (bw + bz)), IntegerEntry(I(A, i), (bO + bz)), IntegerEntry(E(be, i), (bt + bz))]
547- else aS(aC(A), Q)
548- $Tuple2((bT ++ bS), unit)
553+ then [IntegerEntry(G(A, bg, i), bB), IntegerEntry(O(i), (by + bB)), IntegerEntry(I(A, i), (bQ + bB)), IntegerEntry(E(bg, i), (bv + bB))]
554+ else aU(aE(A), Q)
555+ $Tuple2((bV ++ bU), unit)
549556 }
550557 else throw("Strict value is not equal to itself.")
551558 }
552559 else throw("Strict value is not equal to itself.")
553560 }
554561
555562
556563
557-@Callable(ba)
558-func processPoolINTERNAL (bF,bU) = {
559- let bG = bd(ba)
560- if ((bG == bG))
564+@Callable(bc)
565+func processPoolINTERNAL (bH,bW) = {
566+ let bI = bf(bc)
567+ if ((bI == bI))
561568 then {
562- let bV = {
563- let bW = ad(this, j)
564- if (bU)
565- then bW
566- else (bW - 1)
569+ let bX = {
570+ let bY = ad(this, j)
571+ if (bW)
572+ then bY
573+ else (bY - 1)
567574 }
568- let bL = if ((bV >= 0))
575+ let bN = if ((bX >= 0))
569576 then true
570577 else T("processPoolINTERNAL: invalid target epoch")
571- if ((bL == bL))
578+ if ((bN == bN))
572579 then {
573- let A = af(bF)
574- let bX = A
575- let C = bX._1
576- let D = bX._2
577- let bj = addressFromStringValue(ab(this, p))
580+ let A = af(bH)
581+ let bZ = A
582+ let C = bZ._1
583+ let D = bZ._2
584+ let bl = addressFromStringValue(ab(this, p))
578585 let ay = ao(C, D)
579- let bA = az(A)
580- let bw = valueOrElse(getInteger(this, O(bV)), 0)
581- let bO = valueOrElse(getInteger(this, I(A, bV)), 0)
582- let bY = if (if ((bw == 0))
583- then true
584- else !(bA))
585- then 0
586- else fraction(bO, b, bw)
587- let bZ = invoke(ah, "modifyWeight", [ay, bY], nil)
588- if ((bZ == bZ))
589- then {
590- let ca = if (if (bA)
591- then true
592- else bU)
593- then nil
594- else ([DeleteEntry(z(A))] ++ aS(aB, bF))
595- $Tuple2(([IntegerEntry(M(A, bV), bY)] ++ ca), false)
596- }
586+ let ca = {
587+ let ac = invoke(bl, "usersListTraversal", [ay], nil)
588+ if ($isInstanceOf(ac, "Boolean"))
589+ then ac
590+ else throw(($getType(ac) + " couldn't be cast to Boolean"))
591+ }
592+ if ((ca == ca))
593+ then if (ca)
594+ then $Tuple2(nil, true)
595+ else {
596+ let bC = az(A)
597+ let by = valueOrElse(getInteger(this, O(bX)), 0)
598+ let bQ = valueOrElse(getInteger(this, I(A, bX)), 0)
599+ let cb = if (if ((by == 0))
600+ then true
601+ else !(bC))
602+ then 0
603+ else fraction(bQ, b, by)
604+ let cc = invoke(ah, "modifyWeight", [ay, cb], nil)
605+ if ((cc == cc))
606+ then {
607+ let cd = if (if (bC)
608+ then true
609+ else bW)
610+ then nil
611+ else ([DeleteEntry(z(A))] ++ aU(aD, bH))
612+ $Tuple2(([IntegerEntry(M(A, bX), cb)] ++ cd), false)
613+ }
614+ else throw("Strict value is not equal to itself.")
615+ }
597616 else throw("Strict value is not equal to itself.")
598617 }
599618 else throw("Strict value is not equal to itself.")
600619 }
601620 else throw("Strict value is not equal to itself.")
602621 }
603622
604623
605624
606-@Callable(ba)
625+@Callable(bc)
607626 func finalizeHelper () = {
608- let bU = valueOrElse(getBoolean(w), false)
627+ let bW = valueOrElse(getBoolean(w), false)
609628 let i = valueOrElse(getInteger(this, j), 0)
610- let cb = (i - 1)
611- let bq = ad(this, x(i))
612- let bk = ad(this, f)
613- let br = (bq + bk)
614- let bs = getInteger(this, q)
615- if (if (if ((height >= br))
616- then (bs == unit)
629+ let ce = (i - 1)
630+ let bs = ad(this, x(i))
631+ let bm = ad(this, f)
632+ let bt = (bs + bm)
633+ let bu = getInteger(this, q)
634+ if (if (if ((height >= bt))
635+ then (bu == unit)
617636 else false)
618- then !(bU)
637+ then !(bW)
619638 else false)
620639 then {
621- let cc = (i + 1)
622- let cd = getInteger(this, g)
623- let ce = {
624- let Y = cd
640+ let cf = (i + 1)
641+ let cg = getInteger(this, g)
642+ let ch = {
643+ let Y = cg
625644 if ($isInstanceOf(Y, "Int"))
626645 then {
627- let bD = Y
628-[IntegerEntry(f, bD), DeleteEntry(g)]
646+ let bF = Y
647+[IntegerEntry(f, bF), DeleteEntry(g)]
629648 }
630649 else if ($isInstanceOf(Y, "Unit"))
631650 then nil
632651 else throw("Match error")
633652 }
634- $Tuple2(([IntegerEntry(x(cc), height), IntegerEntry(t, height), IntegerEntry(j, cc), IntegerEntry(q, d), IntegerEntry(h(i), bk)] ++ ce), true)
653+ $Tuple2(([IntegerEntry(x(cf), height), IntegerEntry(t, height), IntegerEntry(j, cf), IntegerEntry(q, d), IntegerEntry(h(i), bm)] ++ ch), true)
635654 }
636- else if (if (bU)
637- then (bs == unit)
655+ else if (if (bW)
656+ then (bu == unit)
638657 else false)
639658 then $Tuple2([IntegerEntry(q, e)], true)
640- else if ((bs == unit))
659+ else if ((bu == unit))
641660 then $Tuple2(nil, false)
642- else if ((bs == d))
661+ else if ((bu == d))
643662 then {
644- let cf = getString(r)
645- let cg = getString(s)
646- let Y = cf
663+ let ci = getString(r)
664+ let cj = getString(s)
665+ let Y = ci
647666 if ($isInstanceOf(Y, "Unit"))
648667 then {
649- let ch = getString(aE(aB))
650- if ($isInstanceOf(ch, "Unit"))
668+ let ck = getString(aG(aD))
669+ if ($isInstanceOf(ck, "Unit"))
651670 then $Tuple2([IntegerEntry(q, e), DeleteEntry(r), DeleteEntry(s)], true)
652- else if ($isInstanceOf(ch, "String"))
671+ else if ($isInstanceOf(ck, "String"))
653672 then {
654- let ci = ch
655- $Tuple2([StringEntry(r, ci)], true)
673+ let cl = ck
674+ $Tuple2([StringEntry(r, cl)], true)
656675 }
657676 else throw("Match error")
658677 }
659678 else if ($isInstanceOf(Y, "String"))
660679 then {
661- let bF = Y
662- let A = af(bF)
663- let cj = {
664- let ch = cg
665- if ($isInstanceOf(ch, "Unit"))
666- then getString(aE(aC(A)))
667- else if ($isInstanceOf(ch, "String"))
680+ let bH = Y
681+ let A = af(bH)
682+ let cm = {
683+ let ck = cj
684+ if ($isInstanceOf(ck, "Unit"))
685+ then getString(aG(aE(A)))
686+ else if ($isInstanceOf(ck, "String"))
668687 then {
669- let ck = ch
670- let cl = getString(aK(aC(A), ck))
671- if ((cl == cl))
688+ let cn = ck
689+ let co = getString(aM(aE(A), cn))
690+ if ((co == co))
672691 then {
673- let cm = invoke(this, "processVoteINTERNAL", [bF, ck], nil)
674- if ((cm == cm))
675- then cl
692+ let cp = invoke(this, "processVoteINTERNAL", [bH, cn], nil)
693+ if ((cp == cp))
694+ then co
676695 else throw("Strict value is not equal to itself.")
677696 }
678697 else throw("Strict value is not equal to itself.")
679698 }
680699 else throw("Match error")
681700 }
682- let ch = cj
683- if ($isInstanceOf(ch, "Unit"))
701+ let ck = cm
702+ if ($isInstanceOf(ck, "Unit"))
684703 then {
685- let cn = getString(aK(aB, bF))
686- let co = cn
687- if ($isInstanceOf(co, "Unit"))
704+ let cq = getString(aM(aD, bH))
705+ let cr = cq
706+ if ($isInstanceOf(cr, "Unit"))
688707 then $Tuple2([IntegerEntry(q, e), DeleteEntry(r), DeleteEntry(s)], true)
689- else if ($isInstanceOf(co, "String"))
708+ else if ($isInstanceOf(cr, "String"))
690709 then {
691- let aW = co
692- $Tuple2([StringEntry(r, aW), DeleteEntry(s)], true)
710+ let aY = cr
711+ $Tuple2([StringEntry(r, aY), DeleteEntry(s)], true)
693712 }
694713 else throw("Match error")
695714 }
696- else if ($isInstanceOf(ch, "String"))
715+ else if ($isInstanceOf(ck, "String"))
697716 then {
698- let cp = ch
699- $Tuple2([StringEntry(s, cp)], true)
717+ let cs = ck
718+ $Tuple2([StringEntry(s, cs)], true)
700719 }
701720 else throw("Match error")
702721 }
703722 else throw("Match error")
704723 }
705- else if ((bs == e))
724+ else if ((bu == e))
706725 then {
707- let cf = getString(r)
708- let Y = cf
726+ let ci = getString(r)
727+ let Y = ci
709728 if ($isInstanceOf(Y, "Unit"))
710729 then {
711- let ch = getString(aE(aB))
712- if ($isInstanceOf(ch, "Unit"))
730+ let ck = getString(aG(aD))
731+ if ($isInstanceOf(ck, "Unit"))
713732 then {
714- let bT = if (bU)
733+ let bV = if (bW)
715734 then [DeleteEntry(q), DeleteEntry(w)]
716- else [DeleteEntry(q), BooleanEntry(y(cb), true), IntegerEntry(u, i), IntegerEntry(v, bq)]
717- $Tuple2(bT, true)
735+ else [DeleteEntry(q), BooleanEntry(y(ce), true), IntegerEntry(u, i), IntegerEntry(v, bs)]
736+ let ct = aB()
737+ if ((ct == ct))
738+ then $Tuple2(bV, true)
739+ else throw("Strict value is not equal to itself.")
718740 }
719- else if ($isInstanceOf(ch, "String"))
741+ else if ($isInstanceOf(ck, "String"))
720742 then {
721- let cq = ch
722- $Tuple2([StringEntry(r, cq)], true)
743+ let cu = ck
744+ $Tuple2([StringEntry(r, cu)], true)
723745 }
724746 else throw("Match error")
725747 }
726748 else if ($isInstanceOf(Y, "String"))
727749 then {
728- let bF = Y
729- let cn = getString(aK(aB, bF))
730- if ((cn == cn))
750+ let bH = Y
751+ let cq = getString(aM(aD, bH))
752+ if ((cq == cq))
731753 then {
732- let cr = {
733- let ac = invoke(this, "processPoolINTERNAL", [bF, bU], nil)
754+ let ca = {
755+ let ac = invoke(this, "processPoolINTERNAL", [bH, bW], nil)
734756 if ($isInstanceOf(ac, "Boolean"))
735757 then ac
736758 else throw(($getType(ac) + " couldn't be cast to Boolean"))
737759 }
738- if ((cr == cr))
739- then if (cr)
760+ if ((ca == ca))
761+ then if (ca)
740762 then $Tuple2(nil, true)
741763 else {
742- let ch = cn
743- if ($isInstanceOf(ch, "Unit"))
764+ let ck = cq
765+ if ($isInstanceOf(ck, "Unit"))
744766 then {
745- let bT = if (bU)
767+ let bV = if (bW)
746768 then [DeleteEntry(q), DeleteEntry(w), DeleteEntry(r)]
747- else [DeleteEntry(q), BooleanEntry(y(cb), true), IntegerEntry(u, i), IntegerEntry(v, bq), DeleteEntry(r)]
748- $Tuple2(bT, true)
769+ else [DeleteEntry(q), BooleanEntry(y(ce), true), IntegerEntry(u, i), IntegerEntry(v, bs), DeleteEntry(r)]
770+ let ct = aB()
771+ if ((ct == ct))
772+ then $Tuple2(bV, true)
773+ else throw("Strict value is not equal to itself.")
749774 }
750- else if ($isInstanceOf(ch, "String"))
775+ else if ($isInstanceOf(ck, "String"))
751776 then {
752- let cq = ch
753- $Tuple2([StringEntry(r, cq)], true)
777+ let cu = ck
778+ $Tuple2([StringEntry(r, cu)], true)
754779 }
755780 else throw("Match error")
756781 }
757782 else throw("Strict value is not equal to itself.")
758783 }
759784 else throw("Strict value is not equal to itself.")
760785 }
761786 else throw("Match error")
762787 }
763788 else T("finalization is broken")
764789 }
765790
766791
767792
768-@Callable(ba)
769-func finalizeWrapper (cs) = {
770- let ct = addressFromStringValue(getStringValue(this, m))
771- let cu = {
793+@Callable(bc)
794+func finalizeWrapper (cv) = {
795+ let cw = addressFromStringValue(getStringValue(this, m))
796+ let cx = {
772797 let ac = invoke(this, "finalizeHelper", nil, nil)
773798 if ($isInstanceOf(ac, "Boolean"))
774799 then ac
775800 else throw(($getType(ac) + " couldn't be cast to Boolean"))
776801 }
777- if ((cu == cu))
778- then if (!(cu))
779- then if ((cs == 0))
802+ if ((cx == cx))
803+ then if (!(cx))
804+ then if ((cv == 0))
780805 then T("Current voting is not over yet")
781806 else {
782- let cv = invoke(ct, "finalize", nil, nil)
783- if ((cv == cv))
807+ let cy = invoke(cw, "finalize", nil, nil)
808+ if ((cy == cy))
784809 then $Tuple2(nil, unit)
785810 else throw("Strict value is not equal to itself.")
786811 }
787812 else {
788- let cw = valueOrElse(getInteger(this, k), c)
789- if ((cw > cs))
813+ let cz = valueOrElse(getInteger(this, k), c)
814+ if ((cz > cv))
790815 then {
791- let cv = invoke(this, "finalizeWrapper", [(cs + 1)], nil)
792- if ((cv == cv))
816+ let cy = invoke(this, "finalizeWrapper", [(cv + 1)], nil)
817+ if ((cy == cy))
793818 then $Tuple2(nil, unit)
794819 else throw("Strict value is not equal to itself.")
795820 }
796821 else $Tuple2(nil, unit)
797822 }
798823 else throw("Strict value is not equal to itself.")
799824 }
800825
801826
802827
803-@Callable(ba)
828+@Callable(bc)
804829 func finalize () = {
805- let cv = invoke(this, "finalizeWrapper", [0], nil)
806- if ((cv == cv))
830+ let cy = invoke(this, "finalizeWrapper", [0], nil)
831+ if ((cy == cy))
807832 then $Tuple2(nil, unit)
808833 else throw("Strict value is not equal to itself.")
809834 }
810835
811836
812837
813-@Callable(ba)
814-func containsNodeREADONLY (aF,aJ) = $Tuple2(nil, aL(aF, aJ))
838+@Callable(bc)
839+func containsNodeREADONLY (aH,aL) = $Tuple2(nil, aN(aH, aL))
815840
816841
817842
818-@Callable(ba)
819-func insertNode (aF,aJ) = {
820- let bG = bc(ba)
821- if ((bG == bG))
822- then $Tuple2(aP(aF, aJ), unit)
843+@Callable(bc)
844+func insertNode (aH,aL) = {
845+ let bI = be(bc)
846+ if ((bI == bI))
847+ then $Tuple2(aR(aH, aL), unit)
823848 else throw("Strict value is not equal to itself.")
824849 }
825850
826851
827852
828-@Callable(ba)
829-func deleteNode (aF,aJ) = {
830- let bG = bc(ba)
831- if ((bG == bG))
832- then $Tuple2(aS(aF, aJ), unit)
853+@Callable(bc)
854+func deleteNode (aH,aL) = {
855+ let bI = be(bc)
856+ if ((bI == bI))
857+ then $Tuple2(aU(aH, aL), unit)
833858 else throw("Strict value is not equal to itself.")
834859 }
835860
836861
837862
838-@Callable(ba)
863+@Callable(bc)
839864 func isFinalizationInProgress () = {
840- let bs = getInteger(this, q)
841- let cx = (bs != unit)
842- $Tuple2(nil, cx)
865+ let bu = getInteger(this, q)
866+ let cA = (bu != unit)
867+ $Tuple2(nil, cA)
843868 }
844869
845870
846871
847-@Callable(ba)
872+@Callable(bc)
848873 func deletePool (C,D) = {
849- let bG = if (if ((ba.caller == ah))
874+ let bI = if (if ((bc.caller == ah))
850875 then true
851- else bc(ba))
876+ else be(bc))
852877 then true
853878 else T("Permission denied")
854- if ((bG == bG))
879+ if ((bI == bI))
855880 then {
856- let aF = "pools"
881+ let aH = "pools"
857882 let A = $Tuple2(C, D)
858- let aJ = makeString([C, D], a)
859- let bT = if (aL(aF, aJ))
860- then aS(aF, aJ)
883+ let aL = makeString([C, D], a)
884+ let bV = if (aN(aH, aL))
885+ then aU(aH, aL)
861886 else nil
862- ([DeleteEntry(z(A))] ++ bT)
887+ ([DeleteEntry(z(A))] ++ bV)
863888 }
864889 else throw("Strict value is not equal to itself.")
865890 }
866891
867892
868-
869-@Callable(ba)
870-func getLockedGwxAmount (Q) = {
871- let be = valueOrErrorMessage(addressFromString(Q), R("invalid user address"))
872- let i = valueOrElse(getInteger(this, j), 0)
873- let cy = {
874- let Y = getInteger(this, E(be, i))
875- if ($isInstanceOf(Y, "Unit"))
876- then 0
877- else if ($isInstanceOf(Y, "Int"))
878- then {
879- let cz = Y
880- cz
881- }
893+@Verifier(cB)
894+func cC () = {
895+ let cD = {
896+ let Y = aZ()
897+ if ($isInstanceOf(Y, "ByteVector"))
898+ then {
899+ let bd = Y
900+ bd
901+ }
902+ else if ($isInstanceOf(Y, "Unit"))
903+ then cB.senderPublicKey
882904 else throw("Match error")
883905 }
884- $Tuple2(nil, cy)
885- }
886-
887-
888-@Verifier(cA)
889-func cB () = {
890- let cC = {
891- let Y = aX()
892- if ($isInstanceOf(Y, "ByteVector"))
893- then {
894- let bb = Y
895- bb
896- }
897- else if ($isInstanceOf(Y, "Unit"))
898- then cA.senderPublicKey
899- else throw("Match error")
900- }
901- sigVerify(cA.bodyBytes, cA.proofs[0], cC)
906+ sigVerify(cB.bodyBytes, cB.proofs[0], cD)
902907 }
903908

github/deemru/w8io/026f985 
233.59 ms